Um die Geschwindigkeit der reinen Ausführung Ihres Skripts zu erhöhen, können
Sie die Hollywood-Funktion "LineHook" mit den Befehlen DisableLineHook()
deaktivieren
und mit EnableLineHook()
wieder aktivieren. Dies wird die Ausführungsgeschwindigkeit
Ihres Skripts erheblich verbessern, falls viel Hollywood-Code ausgeführt
werden muss, um das nächste Einzelbild zu zeichnen. Beachten Sie jedoch, dass
Sie den "LineHook" für jedes von Ihnen gezeichnete Einzelbild wieder aktivieren müssen,
oder Ihr Fenster reagiert nicht mehr. So könnte eine geschwindigkeitsoptimierte
Implementierung der Hauptschleife aussehen:
@REQUIRE "glgalore" BeginDoubleBuffer(True) ; richtet einen Hardware-Doppelpuffer ein Repeat DisableLineHook() ; deaktiviert den "LineHook" p_DrawFrame() ; zeichnet hier das nächste Einzelbild EnableLineHook() ; aktiviert den "LineHook" erneut Flip() ; wartet auf die vertikale Aktualisierung, ... ; und tauschet dann die Puffer aus CheckEvent() ; Callback-Funktion ausführen Forever |
Beachten Sie, dass Sie hier nur einen Geschwindigkeitsunterschied bemerken,
wenn p_DrawFrame()
viele Zeilen Hollywood-Code ausführt. Wenn p_DrawFrame()
nur aus 20 Codezeilen besteht, werden Sie keinen Unterschied bemerken. Es ist
nur mit Hunderten von Codezeilen oder langen Schleifen bemerkbar.
Weitere Informationen finden Sie in der Dokumentation von DisableLineHook()
und EnableLineHook()
im Hollywood-Handbuch.