To increase the raw execution speed of your script, you can disable Hollywood's line hook
using the DisableLineHook() and EnableLineHook() commands. This will improve your script's
execution speed significantly in case lots of Hollywood code needs to be run to draw the next
frame. Keep in mind, though, that you have to enable the line hook for every frame you draw
or your window will become unresponsive. Here's what a speed-optimized implemention of the
main loop could look like:
@REQUIRE "rebelsdl"
BeginDoubleBuffer(True) ; set up a hardware double buffer
Repeat
DisableLineHook() ; disable line hook while drawing the next frame
p_DrawFrame() ; draw the next frame here
EnableLineHook() ; enable line hook again
Flip() ; wait for vertical refresh, then flip buffers
CheckEvent() ; run event callbacks
Forever
|
Note that you'll only notice a speed difference here if p_DrawFrame() executes many lines
of Hollywood code. If p_DrawFrame() only consists of 20 lines of code, you won't notice
any difference. It's only noticeable with hundreds of code lines or long loops.
See the documentation of DisableLineHook() and EnableLineHook() in the Hollywood manual
for more information.