(Moderator)
Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
Delphi 2006 Professional
|
Re: Eigene einfache 2D Grafik Engine
7. Okt 2006, 11:37
Also ich hab mir vor kurzem (für meine Firma) eine recht performante Engine gebastelt die wie folgt funktioniert.
Ich habe eine Anzeigefläsche (Display) worauf später das fertige Bild kommt.
Wenn irgend ein Object neu gezeichnet werden muss teilt dieses Object dem Display mit das es neu gezeichnet werden müsste.
Das Display hat einen Timer in dem geprüft wird ob seit dem letzten malen 40ms vergangen sind und prüft ob überhaupt ein neuemalen erforderlich ist (ob also irgend ein Object das malen Flag gesetzt hat).
Nur wenn mindestens 40ms vergangen sind und das Malenflag gesetzt ist ruft das Display von allen Objekten die Malen-Methode auf und übergibt ein Bitmap worauf gemalt werden muss.
Wenn also kein Object ein neu malen braucht bleibt das Display auch unverändert und die cpu-last sinkt auf 0%.
Zusätzlich wird im Paint des Displays noch das Bitmap (worauf die Objecte gemalt haben) ausgegeben.
Auf diese Art und Weise habe ich locker über 100 Frames pro Sekunde geschaft (die 40ms heruntergesetzt zum test).
Das war jetzt nur grob umrissen wie man sowas machen kann. In meinem speziellen Fall sorgt das Display auch dafür das ebenen welche auf der Z-Achse weiter hinten leigen als erstes gemalt werden etc.
Jens Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
|