Autor Beitrag
Nano-Ware
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: Sa 01.10.11 18:53 
Hey,

ich möchte einen Bildschirmschoner programmieren, der aber auch sehr performant sein muss. Deshalb interessiert mich der Unterschied zwischen GDI+ von Microsoft und den Canvas funktionen, die Delphi bereitstellt.
- Ist GDI+ auch so einfach?
- Ist Canvas überhaupt für schnelle Bewegungen geeignet? Es flackert nämlich doch manchmal sehr.
- Kann man mit GDI+ ohne riesen Aufwand alles realisieren, was mit Canvas geht?


Danke

//Ich suche einfach eine sehr performante Möglichkeit zu malen.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 01.10.11 20:09 
Das Canvas flackert ist meist eher ein Problem des Programmierers, der den Code geschrieben hat.

Zudem bietet GDI+ zusätzlich zu den Funktionen vom Canvas nur Support für ein paar mehr Grafikformate und Support von Transparenzen. Auf Hardware läuft AFAIR beides, wenn dies der Treiber zulässt.

Wenn Du aber mehr als nur ein paar Linien zu zeichnen hast, taugt beides nicht. Hier bieten OpenGL und DirectX wesentlich bessere Möglichkeiten und vor allem wesentlich bessere Performance.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Nano-Ware Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: So 02.10.11 00:09 
Okay die Frage bei OpenGL und DirectX ist nur, was der Anwender dann alles auf dem PC braucht.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 02.10.11 00:17 
Bei OpenGL idR nix. Bei DirectX für ältere Windows die Runtime, bei aktuelleren Versionen aber auch nix. Nur nen Grafikkarten-Treiber braucht es bei beiden.

OT: Die Runtime von OpenGL ist kleiner.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Nano-Ware Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: So 02.10.11 00:19 
Okay und was verstehst du unter älterem Windows?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 02.10.11 03:47 
Ich musste DirectX auch bei Windows 7 noch installieren, vorher ließ sich zumindest ein Programm nicht starten. Allerdings wird DirectX für sehr viele Programme gebraucht, unter anderem für Spiele, so dass es kein Problem sein sollte das vorauszusetzen.

GDI+ wird (oder wurde zumindest) zum Beispiel für die Ribbon Oberfläche von TMS benutzt. Das funktionierte (außer auf einem mehr als 10 Jahre alten Rechner) auch sehr gut. Es ist ab XP auch schon bei Windows dabei, vorher wird die gdi32.dll (oder so ähnlich) zusätzlich benötigt. Es wird Hardwarebeschleunigung benutzt (genau wie bei GDI bis XP, ab Vista ist GDI ohne Plus nicht mehr hardwarebeschleunigt und daher ziemlich langsam).

Für einen Bildschirmschoner würde ich aber auch DirectX oder OpenGL nehmen. Da bietet sich Delphi XE2 mit Firemonkey an, weil du da 3D Objekte usw. bereits vorgefertigt hast. Da ist der Aufwand relativ gering, je nachdem was du genau vorhast.