AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Eigene einfache 2D Grafik Engine
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene einfache 2D Grafik Engine

Ein Thema von ferby · begonnen am 6. Okt 2006 · letzter Beitrag vom 15. Nov 2006
Antwort Antwort
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#1

Re: Eigene einfache 2D Grafik Engine

  Alt 7. Okt 2006, 10: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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 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