Fixed bug 3943 - General SDL_HINT_VIDEO_DOUBLE_BUFFER hint support

This commit is contained in:
Brandon Schaefer 2017-11-07 09:10:32 -08:00
parent 5cc46f3d30
commit 9f4e4be8e0
5 changed files with 78 additions and 9 deletions

View file

@ -798,14 +798,22 @@ extern "C" {
#define SDL_HINT_RPI_VIDEO_LAYER "SDL_RPI_VIDEO_LAYER"
/**
* \brief Tell SDL the KMS/DRM video driver that we want double buffer only.
* \brief Tell the video driver that we only want a double buffer.
*
* By default KMS/DRM will use a triple buffer solution that wastes no CPU
* time on waiting for vsync after issuing a flip, but introduces a frame of
* latency. Waiting for vsync immediately after issuing a flip on the other
* hand is recommended for cases where low latency is an important factor.
* By default, most lowlevel 2D APIs will use a triple buffer scheme that
* wastes no CPU time on waiting for vsync after issuing a flip, but
* introduces a frame of latency. On the other hand, using a double buffer
* scheme instead is recommended for cases where low latency is an important
* factor because we save a whole frame of latency.
* We do so by waiting for vsync immediately after issuing a flip, usually just
* after eglSwapBuffers call in the backend's *_SwapWindow function.
*
* Since it's driver-specific, it's only supported where possible and
* implemented. Currently supported the following drivers:
* - KMSDRM (kmsdrm)
* - Raspberry Pi (raspberrypi)
*/
#define SDL_HINT_KMSDRM_DOUBLE_BUFFER "SDL_KMSDRM_DOUBLE_BUFFER"
#define SDL_HINT_VIDEO_DOUBLE_BUFFER "SDL_VIDEO_DOUBLE_BUFFER"
/**
* \brief A variable controlling what driver to use for OpenGL ES contexts.