Dann musst du deine zeichenroutine (die zu langsam ist) optimieren oder eine alternative finden. Schnelleres zeichnen ist per gdi nicht möglich...
EDIT:
Ausführungszeit Zeichenroutine = (1000 - 60*10) / 60 = 6,6ms
In deiner Threaded-Variante wird also ein backbuffer (bitmap) bezeichnet und dieser dann ausgegeben. das erklärt das hier:
Dieses Ergebnis kannst du nicht mit meiner Methode vergleichen....
..du siehst nur, dass das zeichnen des backbufferst unperformant ist. Zeichne NICHT auf einen backbuffer. Die Zeichenroutine soll direkt auf das graphics-objekt zeichnen und nicht auf ieine bitmap!
Nach Adam Riese braucht deine Grahpics-Zeichenmethode ca. 7ms. Um 60 FPS konstant zu halten sind da nohc knapp 10ms Luft nach oben. Um nicht mehr als 60FPS zu erreichen wird durch meine Klasse das neuzeichnen verzögert. Braucht die Zeichenmehtode mal länger wird das ganze automatisch angepasst um eine konstante Framerate zu erhalten
Da der Backbuffer hier extrem viele "ms frisst": weglassen!
Da habe ich dir ja den quellcode gegeben, nur den backbuffer vergessen (bedenke, dass alle 1/60Sekunde neugezeichnet wird, da braucht man keinen backbuffer)^^
EDIT:
ein Threading.Thread.Sleep(10) eingebaut, damit die FPS ungefähr bei 60 liegen
Ausführungszeit Zeichenroutine = (1000 - 60*10) / 60 = 6,6ms
In deiner Threaded-Variante wird also ein backbuffer (bitmap) bezeichnet und dieser dann ausgegeben. das erklärt das hier:
Da habe ich ~6 Frames pro Sekunde
Dieses Ergebnis kannst du nicht mit meiner Methode vergleichen....
Das ist genauso schlimm wie die Threaded-Variante
..du siehst nur, dass das zeichnen des backbufferst unperformant ist. Zeichne NICHT auf einen backbuffer. Die Zeichenroutine soll direkt auf das graphics-objekt zeichnen und nicht auf ieine bitmap!
Nach Adam Riese braucht deine Grahpics-Zeichenmethode ca. 7ms. Um 60 FPS konstant zu halten sind da nohc knapp 10ms Luft nach oben. Um nicht mehr als 60FPS zu erreichen wird durch meine Klasse das neuzeichnen verzögert. Braucht die Zeichenmehtode mal länger wird das ganze automatisch angepasst um eine konstante Framerate zu erhalten
Da der Backbuffer hier extrem viele "ms frisst": weglassen!
Dabei habe ich leider keinen Ansatz, wie ich es anstellen könnte die FPS gescheit konstant zu halten.
Da habe ich dir ja den quellcode gegeben, nur den backbuffer vergessen (bedenke, dass alle 1/60Sekunde neugezeichnet wird, da braucht man keinen backbuffer)^^
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „FreakJNS“ ()