3.2 Verwendung eines Hardware-Doppelpuffers

Wenn Sie möchten, dass Ihr Skript von den hardwarebeschleunigten Zeichenfunktionen von RebelSDL profitiert, müssen Sie einen Hardware-Doppelpuffer verwenden und alle Ihre Zeichnungen innerhalb dieses Doppelpuffers ausführen. Durch die Verwendung eines Hardware-Doppelpuffers wird außerdem sichergestellt, dass die Grafikausgabe mit der Aktualisierungsrate des Monitors synchronisiert wird, um Flimmern zu vermeiden. Um eine optimale Leistung mit RebelSDL zu erhalten, sollte Ihre Hauptschleife immer so aussehen:

 
@REQUIRE "rebelsdl"

BeginDoubleBuffer(True)  ; Richtet einen Hardware-Doppelpuffer ein

Repeat
    ....          ; zeichnet hier das nächste Einzelbild
    Flip()        ; wartet auf die vertikale Aktualisierung,
                  ; und tauscht dann die Puffer aus
    CheckEvent()  ; Ereignis-Callback ausführen
Forever

Der Aufruf von CheckEvent() ist nur erforderlich, wenn Ihr Skript auf den Ereignishandler warten muss, die mit InstallEventHandler() installiert wurden. Beachten Sie, dass Sie das nächste Einzelbild nicht in einem Intervall-Callback zeichnen sollten, welcher mit einer konstanten Bildrate (etwa 50 fps) läuft. Dies garantiert nicht, dass die Zeichnung mit der vertikalen Aktualisierung synchronisiert wird, da verschiedene Monitore unterschiedliche Bildwiederholraten verwenden und somit erhalten Sie flackernde Grafiken. Wenn Sie Ihre Zeichnung wie oben beschrieben ausführen, können Sie sicher sein, dass die vorderen und hinteren Puffer in perfekter Synchronisation mit der vertikalen Aktualisierung des Monitors getauscht werden.

Darüber hinaus müssen Sie darauf achten, wie Sie Ihre Grafiken tatsächlich zeichnen, da die meisten Zeichnungsbefehle von Hollywood vollständig im Softwaremodus arbeiten und daher nicht von der Hardwarebeschleunigung profitieren. Siehe Zeichnen von Grafiken für Details.

Stellen Sie beim Zeichnen von Pinseln in einem Hardware-Doppelbuffer sicher, dass Sie nur Hardwarepinsel verwenden, da nur diese direkt mithilfe der Hardwarebeschleunigung gezeichnet werden können. Es ist auch möglich, normale Pinsel auf Hardware-Doppelpuffer zu zeichnen, aber das wird sehr langsam. Siehe Verwendung von Hardwarepinseln für Details.

Wichtig: SDL ist für die Verwendung des Doppelpuffers vorgesehen. Daher können Sie nur von der Hardwarebeschleunigung profitieren, wenn Sie in einem Doppelpuffer zeichnen. Das Zeichnen außerhalb eines Doppelpuffers ist möglich, aber es wird viel langsamer.


Navigation zeigen