added macros for converting vsync mode string and integer values
authorHolger Schemel <info@artsoft.org>
Sat, 5 Sep 2020 18:45:45 +0000 (20:45 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 5 Sep 2020 18:45:45 +0000 (20:45 +0200)
src/libgame/sdl.c
src/libgame/system.h

index c7a87297821c5fecb4e4c0cdae20f406711fc4a6..d34feb4cd2b93af6c4319b210a13520313bf669a 100644 (file)
@@ -877,10 +877,7 @@ void SDLSetScreenRenderingMode(char *screen_rendering_mode)
 
 void SDLSetScreenVsyncMode(char *vsync_mode)
 {
-  int interval =
-    (strEqual(vsync_mode, STR_VSYNC_MODE_NORMAL)   ? VSYNC_MODE_NORMAL :
-     strEqual(vsync_mode, STR_VSYNC_MODE_ADAPTIVE) ? VSYNC_MODE_ADAPTIVE :
-     VSYNC_MODE_OFF);
+  int interval = VSYNC_MODE_STR_TO_INT(vsync_mode);
   int result = SDL_GL_SetSwapInterval(interval);
 
   // if adaptive vsync requested, but not supported, retry with normal vsync
index e3f0fba93d7cc6d5be48f90f3c531debbfe2ba3d..6e0296ef182a0a7c4dc2600e95d248705c474c00 100644 (file)
 
 #define VSYNC_MODE_DEFAULT             VSYNC_MODE_OFF
 
+#define VSYNC_MODE_STR_TO_INT(s)                                       \
+  (strEqual((s), STR_VSYNC_MODE_NORMAL)                ? VSYNC_MODE_NORMAL :   \
+   strEqual((s), STR_VSYNC_MODE_ADAPTIVE)      ? VSYNC_MODE_ADAPTIVE : \
+   VSYNC_MODE_OFF)
+
+#define VSYNC_MODE_INT_TO_STR(i)                                       \
+  ((i) == VSYNC_MODE_NORMAL            ? STR_VSYNC_MODE_NORMAL :       \
+   (i) == VSYNC_MODE_ADAPTIVE          ? STR_VSYNC_MODE_ADAPTIVE :     \
+   STR_VSYNC_MODE_OFF)
+
 // values for network server settings
 #define STR_NETWORK_AUTO_DETECT                "auto_detect_network_server"
 #define STR_NETWORK_AUTO_DETECT_SETUP  "(auto detect network server)"