author Ryan C. Gordon <>
Wed, 06 Mar 2019 03:08:45 -0500
changeset 103 685c0014eda1
parent 47 6753afa26ee6
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 Please distribute this file with the SDL runtime environment:
     4 The Simple DirectMedia Layer (SDL for short) is a cross-platfrom library
     5 designed to make it easy to write multi-media software, such as games and
     6 emulators.
     8 This implementation is a simple compatibility library that bridges the
     9 SDL 1.2 API to SDL 2.0.
    11 The Simple DirectMedia Layer library source code is available from:
    14 This library is distributed under the terms of the zlib license: