author Ryan C. Gordon <>
Wed, 06 Mar 2019 03:08:45 -0500
changeset 103 685c0014eda1
parent 44 071ea2306704
permissions -rw-r--r--
Optimize dirty rectangle rendering.

Only push the video surface to a texture immediately when the app does
SDL_Flip() or SDL_UpdateRect(0,0,0,0). If it looks like dirty rectangle
rendering, only push when we're in a PumpEvents that's close to 60Hz, under
the assumption that the app isn't in the middle of rendering if they're
pumping the event queue, and that updates to the texture faster than the
refresh rate aren't seen anyhow.

This lets things that render a little in response to every mouse event, like
TuxPaint, run at reasonable speeds and still look correct.

This probably needs to not hardcode for 60Hz, but get the actual refresh rate
from SDL2.
     2 To compile and install SDL:
     4     1.  Point CMake ( ) at this directory. Generate
     5         a project file of your liking and build.
     7     2.  Look at the example programs in ./test, and check out the HTML
     8         documentation in ./docs to see how to use the SDL library.
    10     3.  Join the SDL developer forums at
    12 That's it!
    13 Sam Lantinga <>