Răsfoiți Sursa

`SDL_RenderSetVSync()`: Restrict `vsync` to 0 or 1

In the future, we might want to support special swap intervals. To
prevent applications from expecting nonzero values of vsync to be the
same as "on", fail with SDL_Unsupported() if the value passed is neither
0 nor 1.
Misa 3 ani în urmă
părinte
comite
4a9947336c
2 a modificat fișierele cu 5 adăugiri și 1 ștergeri
  1. 1 1
      include/SDL_render.h
  2. 4 0
      src/render/SDL_render.c

+ 1 - 1
include/SDL_render.h

@@ -1698,7 +1698,7 @@ extern DECLSPEC void *SDLCALL SDL_RenderGetMetalCommandEncoder(SDL_Renderer * re
  * Toggle VSync of the given renderer.
  *
  * \param renderer The renderer to toggle
- * \param vsync Non-zero for on, zero for off
+ * \param vsync 1 for on, 0 for off. All other values are reserved
  * \returns a 0 int on success, or non-zero on failure
  */
 extern DECLSPEC int SDLCALL SDL_RenderSetVSync(SDL_Renderer* renderer, int vsync);

+ 4 - 0
src/render/SDL_render.c

@@ -4129,6 +4129,10 @@ SDL_RenderSetVSync(SDL_Renderer * renderer, int vsync)
 {
     CHECK_RENDERER_MAGIC(renderer, -1);
 
+    if (vsync != 0 && vsync != 1) {
+        return SDL_Unsupported();
+    }
+
     if (renderer->SetVSync) {
         return renderer->SetVSync(renderer, vsync);
     }