[gelöst/beantwortet] Wie werden Grafiken in der LCL z.B. TAChart Koordinatenachen erstellt? GDI?

Rund um die LCL und andere Komponenten
Antworten
Helios
Lazarusforum e. V.
Beiträge: 107
Registriert: Mi 29. Jun 2011, 22:36
OS, Lazarus, FPC: Lazarus 2.2.6 Windows 10 64Bit / Lazarus 2.0.12 Debian 11.7 „Bullseye" 64Bit
CPU-Target: 64Bit
Wohnort: Leonberg

[gelöst/beantwortet] Wie werden Grafiken in der LCL z.B. TAChart Koordinatenachen erstellt? GDI?

Beitrag von Helios »

Hallo zusammen,
eine generelle Frage zu Grafiken in LCL oder entsprechenden Komponenten z.B. Koordinatenachsen im TAChart.
Wird da unter Windows die GDI verwendet und wie sieht das unter Linux aus (GTK, QT)? Gibt es da evtl. auch Abhängigkeiten zu OpenGL?
Ich beschäftige mich in letzter Zeit wieder etwas mehr mit der Grafikprogrammierung unter Windows mit OpenGL und bzgl.
der LCL Komponentenentwicklung ist mir dann gleich diese Frage in den Sinn gekommen.
Danke für jede Rückmeldung (und sorry für diese allgemeine Frage).
Gruß
Helios
Zuletzt geändert von Helios am Di 25. Okt 2022, 17:37, insgesamt 2-mal geändert.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Wie werden Grafiken in der LCL z.B. TAChart Koordinatenachen erstellt? GDI?

Beitrag von af0815 »

Nur so als Anmerkung, die LCL ist OpenSource. Es ist also erlaubt dort hineinzusehen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

wp_xyz
Beiträge: 4886
Registriert: Fr 8. Apr 2011, 09:01

Re: Wie werden Grafiken in der LCL z.B. TAChart Koordinatenachen erstellt? GDI?

Beitrag von wp_xyz »

So wie die ganze LCL auch, verwendet TAChart für die Graphik die entsprechenden Funktionen des aktuellen Widgetset, d.h. GDI für Windows, GTK/bzw QT unter Linux, usw. OpenGL wird in der Grundeinstellung nicht verwendet. Die gesamte Graphik bei TAChart im Speziellen ist jedoch mit Hilfe von sog. Drawer-Klassen sehr flexibel gestaltet, so dass man sich den Chart auch von OpenGL malen lassen kann: Package TAChartOpenGL installieren, unit TADrawerOpenGL in "uses", und dann in OpenGL die Draw-Methode von TChart aufrufen (mit dem TOpenGLDrawer als Parameter). Siehe Beispiel im Ordner components/tachart/demo/opengl der Lazarus-Installation.

Generell die Graphik bei allen LCL-Klassen auf OpenGL umzustellen, ist meiner Meinung nach ein größeres Projekt.

Helios
Lazarusforum e. V.
Beiträge: 107
Registriert: Mi 29. Jun 2011, 22:36
OS, Lazarus, FPC: Lazarus 2.2.6 Windows 10 64Bit / Lazarus 2.0.12 Debian 11.7 „Bullseye" 64Bit
CPU-Target: 64Bit
Wohnort: Leonberg

[gelöst/beantwortet] Wie werden Grafiken in der LCL z.B. TAChart Koordinatenachen erstellt? GDI?

Beitrag von Helios »

Hallo af0815 und wp_xyz,
Danke für eure Antworten.
@af0815: Ja, stimmt die LCL ist im Source vorhanden, aber so ganz einfach ist das nicht zu erkennen was genau da (hauptsächlich) unter der grafischen "Motorhaube" werkelt :roll: .
@wp_xyz: Das Package TAChartOpenGL hatte ich noch gar nicht gesehen, Danke für den Tip! Das es möglich wäre die ganze LCL auf OpenGL umzustellen, darauf wäre
ich so gar nicht gekommen. Das wäre dann vielleicht meine übernächste (und hypothetische(!)) Frage von mir gewesen.
Auf jeden Fall ist die Frage beantwortet.
Vielen Dank euch zwei und schönen Abend!
Gruß
Helios

PascalDragon
Beiträge: 829
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: [gelöst/beantwortet] Wie werden Grafiken in der LCL z.B. TAChart Koordinatenachen erstellt? GDI?

Beitrag von PascalDragon »

Helios hat geschrieben:
Di 25. Okt 2022, 17:36
@wp_xyz: Das Package TAChartOpenGL hatte ich noch gar nicht gesehen, Danke für den Tip! Das es möglich wäre die ganze LCL auf OpenGL umzustellen, darauf wäre
ich so gar nicht gekommen. Das wäre dann vielleicht meine übernächste (und hypothetische(!)) Frage von mir gewesen.
Nicht die ganze LCL. Nur TAChart.
FPC Compiler Entwickler

Antworten