![]() |
AW: GDI, GDI+ oder doch Direct2D?
Gut, dann änder ich mal schnell meine Begründung: TImage ist zwar toll, aber es kann nicht mit GDI+ zusammen arbeiten. Dazu muss man zuerst das Bild in ein Delphi-kompatibles Format bringen und kann es erst dann anzeigen. Da GDI+ selber zeichnen kann, würde ich diese Zeichenroutinen bevorzugen.
Zitat:
Bernhard |
AW: GDI, GDI+ oder doch Direct2D?
Zitat:
Delphi-Quellcode:
uses
..., GDIPAPI, GDIPObj, GDIPUTIL; //... procedure TForm1.Button1Click(Sender: TObject); var Graphics : TGPGraphics; Brush: TGPSolidBrush; begin Graphics:=TGPGraphics.Create(TPNGImage(Image1.Picture.Graphic).Canvas.Handle); try Brush:=TGPSolidBrush.Create(MakeColor(128,255,0,0)); //Alpha=128 entspricht 50%!!! try Graphics.FillRectangle(Brush,10,10,20,20); finally Brush.Free; end; finally Graphics.Free; end; Image1.Invalidate; end; |
AW: GDI, GDI+ oder doch Direct2D?
[OT]
Zitat:
[/OT] |
AW: GDI, GDI+ oder doch Direct2D?
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,
ich kram diesen Thread aus dem Mai noch einmal hervor, da hier noch Fragen unbeantwortet sind, welche mich aber derzeit ebenfalls beschäftigen und dieser Thread über die Suche einem entgegenspringt :). Die Ursprüngliche Frage war ja: GDI, GDI+ oder Direct2D (per TDirect2DCanvas)? Die Infos im Netz verwirren hauptsächlich, da jeder eine Meinung hat (schön), die aber meist das Gegenteil der anderen Meinung darstellt (das ist nicht so schön *g*). Nun die Frage: Kann mir jemand eine Aussage geben, welche Zeichen-Methode die optimale Lösung ist, um bei Windows 7 mit Hardwarebeschleunigung eine Oberfläche zu zeichnen? Unter "Oberfläche" verstehe ich:
Hier noch eine Quelle, wo auch (eher ergebnislos) zwischen Direct2DCanvas und GDI+ diskutiert wurde: ![]() Noch einmal: was wäre die optimale Zeichenmethode, um möglichst schnell mit oben angegebenen Voraussetzungen zu zeichnen? vielen Dank, Christian :wink: |
AW: GDI, GDI+ oder doch Direct2D?
Was spricht gegen eine kombination von GDI+ und OpenGL ?
Ich mach nichts anderes und läuft hervorragend. Was die Hardware beschleunigung angeht.. na ja und das andere halt auch. Transparentes OpenGL Fenster in verbindung mit Blur/Crytal Effekt und aufgesetzen *.PNG's mit GDI+ feine sache wenn man drauf steht natürlich. gruss |
AW: GDI, GDI+ oder doch Direct2D?
Warum nicht ganz einfach FMX nutzen wenn man schon XE2 hat, das ist doch OpenGL oder DirectX und schön schnell.
|
AW: GDI, GDI+ oder doch Direct2D?
Zitat:
Eine VCL-Anwendung komplett auf eine FMX-Anwendung umzugestalten ist aufwendig und die Zeit bezahlt einen keiner. |
AW: GDI, GDI+ oder doch Direct2D?
Hallo,
danke schon einmal für die Antworten. Firemonkey kann ich nicht einsetzen, da das Hauptprogramm ein herkömmliches VCL-Programm ist. Die Anzeige soll als Docking in die Hauptanwendung eingebaut werden. Soweit mir bekannt ist kann ich FMX-Fenster nur per DLL (oder mit sehr teuren Tools) in die VCL-Anwendung integrieren. @EWeiss: wie sähe die Kombination von GDI+ und OpenGL aus? Google spuckt da zwar viel aus, aber wenn Du nen kleinen Tipp hast wäre das gut. Kann einer eine Aussage zum Vergleich TDirect2DCanvas <-> GDI(+) machen? Wenn das TDirect2DCanvas flott genug für 25 FPS ist, wäre ich damit ja schon zufrieden :) Ich kanns auch selber ausprobieren, aber wenn da jemand schon Erfahrung hat, brauch ich nicht extra zig Zeilen Code schreiben, um dann festzustellen, dass die Lösung langsamer als die Alte ist. besten Dank, Chris |
AW: GDI, GDI+ oder doch Direct2D?
Zitat:
Vorteil liegt auf der Hand: Volle Leistung der GPU und kein CPU-Krüppelding :-) Kann zwar gut sein, dass GDI+ in vielen Fällen 25fps schafft, aber der Leistungs-Spielraum nach oben ist bei einer GPU-basierten Lösung um mehrere Faktoren höher. OpenGL hätte dann sogar den Vorteil, solltest du deine Anwendung irgendwann mal auf mobile Geräte bringen wollen (ist ja zur Zeit nicht so abwegig), kannst du zumindest den OpenGL Code schon teilweise übernehmen, da OpenGL (ES) auf mobilen Geräten der Standard ist. GDI+ ist etwas, auf das ich bei einer Neuentwicklung nicht mehr setzen wurde. @EWeiss: wenn du schon OpenGL benutzt, für was brauchst du dann noch GDI+ ? Kann gut sein, dass es in manchen Fällen sinnvoll ist, allerdings fällt mir jetzt spontan nichts ein, worin GDI+ irgend einen Vorteil hätte gegenüber OpenGL, im Gegenteil. Würd mich deswegen interessieren, warum du die beiden Techniken verbindest und für was? |
AW: GDI, GDI+ oder doch Direct2D?
@blackfin
bei mir Transparenzen in Komponenten incl. Zoom/Scale/Rotate Antialiasing etc. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz