Wenn Sie möchten, dass Ihr Skript von den hardwarebeschleunigten Zeichnungsfunktionen von OpenGL 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 OpenGL zu erhalten, sollte Ihre Hauptschleife immer so aussehen:
@REQUIRE "glgalore" 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() ; Callback-Funktion ausführen Forever |
Der Aufruf von CheckEvent()
ist nur erforderlich, wenn Ihr Skript auf
Ereignis-Handler warten muss, die mit InstallEventHandler()
installiert
wurden. Beachten Sie, dass Sie das nächste Bild nicht in einem Intervall-Callback
zeichnen sollten, der mit einer konstanten Bildrate (etwa 50 fps) läuft.
Ein solches Setup garantiert nicht, dass die Zeichnung mit der vertikalen
Aktualisierung synchronisiert wird, weil verschiedene Monitore unterschiedliche
Bildwiederholraten verwenden und somit Sie flackernde Grafiken erhalten. 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 gedreht 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 Grafik zeichnen für Details.
Wichtig: OpenGL ist für die Verwendung mit doppelten Puffern vorgesehen. Daher müssen alle OpenGL-Zeichenbefehle innerhalb eines Doppelpuffers aufgerufen werden. Das Zeichnen außerhalb eines Doppelpuffers mit OpenGL wird nicht unterstützt.