====== Vega.Canvas — Software-Rasterizer auf einem BGRA-Puffer ====== Die Schicht, die „auf allen Systemen gleich aussehen“ einlöst: **jedes Pixel entsteht hier**, nicht im Betriebssystem. Das Backend bekommt am Ende nur den fertigen Puffer. Zwei Mechanismen tragen das gesamte Zeichnen — ''Origin'' (Controls zeichnen in lokalen Koordinaten) und der Clip-Stapel (ein Kind malt nie über den Rand des Elternteils hinaus). Quelldatei: ''Vega/Canvas.lyx'' → [[lyx_-_programmiersprache:vega:units|Alle Units]] · [[lyx_-_programmiersprache:vega:controls|Alle Steuerelemente]] · [[lyx_-_programmiersprache:vega|Vega VCL]] ---- ===== Klassen ===== ^ Klasse ^ Basis ^ Zweck ^ | ''TCanvas'' | — | Zeichenfläche: Linien, Flächen, Text, Bilder, Clip und Ursprung | ===== Konstanten ===== ^ Name ^ Typ ^ Wert ^ Bedeutung ^ | ''VEGA_CLIP_DEPTH'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''32'' | Wie tief der Clip-Stapel geschachtelt werden darf | ===== Freie Funktionen ===== ^ Signatur ^ Zweck ^ | ''NewCanvas(): TCanvas'' | Erzeugt eine leere Zeichenfläche | ---- ===== Zu beachten ===== * Koordinaten sind **lokal**: (0,0) ist die linke obere Ecke des zeichnenden Controls. Den Versatz besorgt ''Origin'', gesetzt vom Zeichendurchlauf. * Der Clip-Stapel arbeitet nach dem Schachtelprinzip — jedes ''PushClip'' muss sein ''PopClip'' bekommen, sonst schneidet der nächste Zweig falsch. * Der Puffer ist BGRA, 32 Bit je Pixel — dieselbe Anordnung wie in [[lyx_-_programmiersprache:vega:controls:tbitmap|TBitmap]], deshalb kostet ''DrawTo'' kein Umsortieren. * Wer eigene Darstellung braucht, überschreibt ''Paint'' oder nimmt eine [[lyx_-_programmiersprache:vega:controls:tpaintbox|TPaintBox]] — der Guide [[lyx_-_programmiersprache:vega:guides:zeichnen|Zeichnen]] zeigt beide Wege. ---- ===== Abhängigkeiten ===== **Importiert:** [[lyx_-_programmiersprache:vega:units:types|Vega.Types]], ''Vega.Mem'' **Wird importiert von:** [[lyx_-_programmiersprache:vega:units:actions|Vega.Actions]], [[lyx_-_programmiersprache:vega:units:calendar|Vega.Calendar]], [[lyx_-_programmiersprache:vega:units:chrome|Vega.Chrome]], [[lyx_-_programmiersprache:vega:units:colorctrls|Vega.ColorCtrls]], [[lyx_-_programmiersprache:vega:units:colordlg|Vega.ColorDlg]], [[lyx_-_programmiersprache:vega:units:control|Vega.Control]], [[lyx_-_programmiersprache:vega:units:datetimepicker|Vega.DateTimePicker]], [[lyx_-_programmiersprache:vega:units:dialogs|Vega.Dialogs]], [[lyx_-_programmiersprache:vega:units:editbtn|Vega.EditBtn]], [[lyx_-_programmiersprache:vega:units:edits|Vega.Edits]], [[lyx_-_programmiersprache:vega:units:extctrls|Vega.ExtCtrls]], [[lyx_-_programmiersprache:vega:units:extras|Vega.Extras]], [[lyx_-_programmiersprache:vega:units:filedlg|Vega.FileDlg]], [[lyx_-_programmiersprache:vega:units:font|Vega.Font]], [[lyx_-_programmiersprache:vega:units:fontdlg|Vega.FontDlg]], [[lyx_-_programmiersprache:vega:units:forms|Vega.Forms]], [[lyx_-_programmiersprache:vega:units:grids|Vega.Grids]], [[lyx_-_programmiersprache:vega:units:hints|Vega.Hints]], [[lyx_-_programmiersprache:vega:units:images|Vega.Images]], [[lyx_-_programmiersprache:vega:units:layout|Vega.Layout]], [[lyx_-_programmiersprache:vega:units:lfmclasses|Vega.LfmClasses]], [[lyx_-_programmiersprache:vega:units:lfmload|Vega.LfmLoad]], [[lyx_-_programmiersprache:vega:units:lfmsave|Vega.LfmSave]], [[lyx_-_programmiersprache:vega:units:listctrls|Vega.ListCtrls]], [[lyx_-_programmiersprache:vega:units:listview|Vega.ListView]], [[lyx_-_programmiersprache:vega:units:maskedit|Vega.MaskEdit]], [[lyx_-_programmiersprache:vega:units:menus|Vega.Menus]], [[lyx_-_programmiersprache:vega:units:picture|Vega.Picture]], [[lyx_-_programmiersprache:vega:units:stdctrls|Vega.StdCtrls]], [[lyx_-_programmiersprache:vega:units:trees|Vega.Trees]], [[lyx_-_programmiersprache:vega:units:valuelist|Vega.ValueList]] Letzte Aktualisierung: 2026-08-20 — Klassen, Aufzählungen, Konstanten und freie Funktionen maschinell aus ''Vega/Canvas.lyx'' erhoben.