GDI langsam?



  • Ich wollte mal ein Spiel mit der WinAPI und GDI programmieren. Als ich also ein bisschen mit den Grafikfunktionen rumprobiert habe, ist mir aufgefallen: Wenn ich eine Ausgabe von 256*256 Pixeln habe und ein Sprite von 16*32 Pixeln und das so schnell wie möglich über den Bildschirm bewege, geht das noch recht flott. Es dauert weniger als eine Sekunde. Wenn ich aber das Bild vergrößere, dann wird das ganze merklich langsamer. Und das, obwohl ich nur das letzte Bild, also die Ausgabe des Back-Buffers auf das Fenster, vergrößere. Alle Schritte davor, Hintergrund auf Back-Buffer blitten und Sprite auf Back-Buffer blitten, werden in Originalgröße durchgeführt, und nur Back-Buffer auf Fenster blitten wird dann vergrößert gemacht. Und trotzdem kann ich bei einfacher Größe das Sprite noch in einigen Millisekunden von links nach rechts huschen lassen, während ich bei dreifacher Vergrößerung schon bequem jeden Einzelschritt mitzählen kann.
    Gibt es da etwas, um das zu verhindern?


  • Mod

    Wie machst Du es denn?

    Man zeichnet auch nicht den gesamten Bereich.
    Man zeichnet nur den Bereich neu, der auch eine Änderung braucht.

    Dazu benutzt man das Rectangle das als Argument von InvalidateRect unddas Paintrect das durch BeginPaint angeboten wird.


Anmelden zum Antworten