LCL und Cairo

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Mathias
Beiträge: 6165
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

LCL und Cairo

Beitrag von Mathias »

Ich bin mit Cairo am experimentieren.
Ich habe nun Cairo Grafiken mit SDL2 und GTK2 hingekriegt.
Nun zu Frage: Gibt es für die LCL auch einen Cairo-Context ?
So etwas ähnliche wie der TOpenGLControl für OpenGL.

Ich habe bei den Components von Lazarus cairocanvas gefunden. Dies Package konnte ich installieren.
Nur so wie dies aussieht, ist die eher für Drucker und Grafik-Dateien geeignet.
Oder habe ich da etwas übersehen ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: LCL und Cairo

Beitrag von Soner »

Ein brasilianischer Lazarus-Benutzer hat es umgesetzt. In Package gab es auch einige Demo-Programme. Ich denke, er hat auch Virtualtreeview zu Lazarus portiert er hat auch LCLExt oder Lazext package erstellt, ich glaube "blikblum" hieß er oder Silvio.
Ich habe in mein Archiv gesucht, aber nicht mehr gefunden.

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: LCL und Cairo

Beitrag von Winni »

Hi!

Vielleicht hilft ja mal wieder die UCSD (University of Southern California):

[url]https:/fossies.org/linux/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazcairo1.pas[/url]

Winni

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: LCL und Cairo

Beitrag von theo »

Winni hat geschrieben:
Do 26. Jan 2023, 21:10
Vielleicht hilft ja mal wieder die UCSD (University of Southern California):
Das ist bei jeder Lazarus Installation im Quelltext dabei, da brauchst du nicht nach Kalifornien. :roll:

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: LCL und Cairo

Beitrag von Soner »

Es ist doch Luis Americo Blikblum gewesen. Hier ist seine github-Seite und hier auf Youtube einer seiner Beispiele die ich auch selbst compiliert hatte.
Such mal auf seiner Seiten nach "TCairoControl" oder ähnliches.

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: LCL und Cairo

Beitrag von Soner »

Ich habe es doch gefunden, es ist bei Online-Packages dabei, such nach LuiPack.
Ein Wunder, dass niemand es kennt, weil es gute Sachen dabei hat.

Benutzeravatar
Roland Chastain
Beiträge: 156
Registriert: Sa 7. Jul 2012, 21:50
Wohnort: Saargemünd
Kontaktdaten:

Re: LCL und Cairo

Beitrag von Roland Chastain »

Hallo!

Hier ist etwas, was ich mit TCairoPaintBox getan hatte. (Es ist eine Adaption von Corpsman's Pong).

Um die TCairoPaintBox-Komponente zu haben, habe ich dieses Paket installiert.
Dateianhänge
bouncingballs-tcairopaintbox.zip
(7.97 KiB) 49-mal heruntergeladen
Zuletzt geändert von Roland Chastain am Mi 1. Feb 2023, 07:09, insgesamt 1-mal geändert.
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.

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

Re: LCL und Cairo

Beitrag von Mathias »

Da staune ich jetzt, das dies so eine Zangengeburt ist.
Ich dachte die ganze LCL basiere auf GTK2 und, GTK" und Cairo sei ein hervorragendes Gespann.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
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: LCL und Cairo

Beitrag von af0815 »

Mathias hat geschrieben:
Sa 28. Jan 2023, 12:51
Ich dachte die ganze LCL basiere auf GTK2 und, GTK" und Cairo sei ein hervorragendes Gespann.
Die LCL basiert nicht auf GTK, GTK2, QT,... sondern verwendet das einfach. Der ursprünglich Vorläufer der LCL war ja Windowsbasierend. Die LCL versucht eine mehr oder weniger Idente Oberflächengestaltung mit Hilfe der verschiedenen Widgetsets für den RAD Programmierer bereitzustellen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

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

Re: LCL und Cairo

Beitrag von Mathias »

Der ursprünglich Vorläufer der LCL war ja Windowsbasierend.
Das wird wohl der Grund sein, das man viele WinAPI ähnliche Begriffe in der LCL findet, welche man viele in der Unit LCLTypes findet ?
Die LCL basiert nicht auf GTK, GTK2, QT,... sondern verwendet das einfach.
Wen ich das richtig verstehe, wird man keine Hardwarebeschleunigte Grafik-Ausgabe finden, so wie es Cairo macht ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
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: LCL und Cairo

Beitrag von af0815 »

Mathias hat geschrieben:
Sa 28. Jan 2023, 13:59
Der ursprünglich Vorläufer der LCL war ja Windowsbasierend.
Das wird wohl der Grund sein, das man viele WinAPI ähnliche Begriffe in der LCL findet, welche man viele in der Unit LCLTypes findet ?
Die LCL basiert nicht auf GTK, GTK2, QT,... sondern verwendet das einfach.
Wen ich das richtig verstehe, wird man keine Hardwarebeschleunigte Grafik-Ausgabe finden, so wie es Cairo macht ?
Das Widgetset kann durchaus Cairo verwenden (Schau mal in die Sourcen von Gtk2), der LCL als solches ist das ja egal. Die LCL stellet ein Element zur Verfügung, ob das selbst gezeichnet wird, oder wem es im Betriebssystem übergeben wird, bestimmt das Widgetset dann selbst. Einige Sachen werden vom Widgetset weitergegeben, deswegen auch das leicht unterschiedliche Verhalten auf allen Plattformen (manchmal lässt sich ein Button einfärben, manchmal nicht).
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

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

Re: LCL und Cairo

Beitrag von Mathias »

Ich habe mal folgendes probiert mit der Package "cairocanvas_pkg".

Code: Alles auswählen

...uses
  ..., CairoGraphics;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    CPB: TCairoPaintBox;
  public
  end;
....
procedure TForm1.FormCreate(Sender: TObject);
begin
  CPB := TCairoPaintBox.Create(Self);
  CPB.Parent := Self;
end;
Kompilieren tut er es, aber er schmiert mit einem SIGSEGV an einem total unlogischen Ort ab.
Was hat ein Printer damit zu tun ?

Code: Alles auswählen

constructor TCairoPrinterCanvas.Create;
begin
  Create(nil);
end;
Die Vererbung von der PaintBox sieht so aus:
TCairoPaintBox ->TCairoGraphicControl -> TControl -> TLCLComponent -> TComponent -> TPersistent....
Eine normale TPaintBox sieht etwa gleich aus.
TPaintBox ->TGraphicControl -> TControl -> TLCLComponent -> TComponent -> TPersistent....
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: LCL und Cairo

Beitrag von Soner »

Bei mir funktioniert es, siehe Bildschirmfoto.

Vielleicht solltest du cairolcl_package einbinden und bei uses CairoLCL schreiben.
Dateianhänge
cairofx.JPG
cairofx.JPG (81.79 KiB) 1107 mal betrachtet

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: LCL und Cairo

Beitrag von Soner »

Ich würde in deiner Stellle, meine Zeit nicht mit Cairo-Graphics verschwenden, die größten Cairo-Benutzer haben zu Google's Skia-Graphics gewechselt, z.B, Firefox.
Wenn schon dann Skia oder lazarus/components/aggpas.
Haiku-OS verwendet AGG-Graphics für alle Graphicausgaben.

Jemand hat hier Skia für Delphi convertiert.

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

Re: LCL und Cairo

Beitrag von Mathias »

Vielleicht solltest du cairolcl_package einbinden und bei uses CairoLCL schreiben.
Wo hast du die "cairolcl_package" und Cairo_LCL her ?

Ich habe vorhin in den "luipack" geguckt, welche ich mit der Online Package heruntergeladen habe. Dort hat es Demos und die brauchen auch die von dir beschrieben Package.
Auch Google findet nicht schlaues über CairoLCL..
Und "cairolcl_package" findet google nicht mal.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten