Linien mit LCL --> der Weg

Rund um die LCL und andere Komponenten
Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Linien mit LCL --> der Weg

Beitrag von Mathias »

Kann da die GPU beim zeichnen auf die Bitmap helfen, oder muss dies alles die CPU erledigen ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Linien mit LCL --> der Weg

Beitrag von Socke »

Mathias hat geschrieben:
Do 29. Dez 2022, 18:42
Kann da die GPU beim zeichnen auf die Bitmap helfen, oder muss dies alles die CPU erledigen ?
Grundsätzlich ist das möglich. Deshalb gibt es auch Bibliotheken wie Cairo, die genau das machen.
https://de.wikipedia.org/wiki/Cairo_(Grafikbibliothek)#Verwendung_in_GUI-Toolkits hat geschrieben:Cairo wird ab Version 2.8.0 von GTK unterstützt. Damit ist es möglich, von GTK+-Widgets einen Cairokontext (cairo_t, siehe Zeile fünf im Beispiel) zu erlangen und dann mit Cairofunktionen in diesen zu zeichnen. Mit den gleichen Methoden zeichnet GTK+ intern ab dieser Version die meisten seiner Widgets mit Cairo und kann damit von hardwarebeschleunigtem Rendering profitieren.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Linien mit LCL --> der Weg

Beitrag von Mathias »

Grundsätzlich ist das möglich. Deshalb gibt es auch Bibliotheken wie Cairo, die genau das machen.
Daher wurde mir empfohlen, Cairo anzugucken ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Linien mit LCL --> der Weg

Beitrag von Socke »

Mathias hat geschrieben:
Fr 30. Dez 2022, 19:49
Grundsätzlich ist das möglich. Deshalb gibt es auch Bibliotheken wie Cairo, die genau das machen.
Daher wurde mir empfohlen, Cairo anzugucken ?
Ja, damit kannst du besser und zukunftssicherer arbeiten als mit X11. Wie bereits in den Posts vorher ist ja die Verwendung:
  • Deine Anwendung nutzt die LCL um plattformunabhüngige Grafikausgabe und Steuerelemente bereitzustellen. Dazu greift sie auf ein bestimmtes Widgetset wie GTK 2/3 zurück.
  • Das Widgetset zeichnet seine Steuerelemente selbst. GTK nutzt hier zu cairo. GTK bietet aber auch die Möglichkeit, direkt mit cairo-Befehlen im eigenen Programm eigene Dinge zu zeichnen.
  • Das Widgetset sorgt dafür, dass die gezeichneten Bilder über den Displaymanager auf dem Bildschirm landen. X11, und Wayland stellen hier nur die unterste Ebene zur Ausgabe des Bildes (oder aber zur Eingabe von Maus und Tastatur) bereit.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Linien mit LCL --> der Weg

Beitrag von Mathias »

Jetzt sehe ich so langsam die Vorteile, das man eine Linie nicht mit X11 zeichnet.
Da man mit GTK Cairo verwendet, spielt es keine Rolle auf welcher Plattform man ist.

Ich nehme mal an, das Cairo was ähnliche ist wie OpenGL und GPU Beschleunigung nutzt, wen vorhanden, nur mit dem Unterschied, das es nur 2D kann.
OpenGL zeichnet eine Linie auch nicht mit X11, sondern rendert in einen Frame Buffer, und schreibt diesen dann auf den Bildschirm.
Und unter dem Strich, grob gesagt, wird bei Linux X11 nur noch für XCreateWindow() und XPutImage(...) gebraucht.

So wie ich mich erinnern mag, war KDE1 der erste Schritt in dieser Richtung ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten