Browse Source

Added SDL_HINT_VIDEO_X11_NODIRECTCOLOR

Sam Lantinga 8 months ago
parent
commit
175f28f59f
2 changed files with 18 additions and 1 deletions
  1. 14 0
      include/SDL3/SDL_hints.h
  2. 4 1
      src/video/x11/SDL_x11video.c

+ 14 - 0
include/SDL3/SDL_hints.h

@@ -3300,6 +3300,20 @@ extern "C" {
  */
 #define SDL_HINT_VIDEO_X11_NET_WM_PING      "SDL_VIDEO_X11_NET_WM_PING"
 
+/**
+ * A variable controlling whether SDL uses DirectColor visuals.
+ *
+ * The variable can be set to the following values:
+ *
+ * - "0": Disable DirectColor visuals.
+ * - "1": Enable DirectColor visuals. (default)
+ *
+ * This hint should be set before initializing the video subsystem.
+ *
+ * \since This hint is available since SDL 3.0.0.
+ */
+#define SDL_HINT_VIDEO_X11_NODIRECTCOLOR "SDL_VIDEO_X11_NODIRECTCOLOR"
+
 /**
  * A variable forcing the content scaling factor for X11 displays.
  *

+ 4 - 1
src/video/x11/SDL_x11video.c

@@ -491,7 +491,10 @@ void X11_VideoQuit(SDL_VideoDevice *_this)
 
 SDL_bool X11_UseDirectColorVisuals(void)
 {
-    return (SDL_getenv("SDL_VIDEO_X11_NODIRECTCOLOR") == NULL);
+    if (SDL_GetHintBoolean(SDL_HINT_VIDEO_X11_NODIRECTCOLOR, SDL_FALSE)) {
+        return SDL_FALSE;
+    }
+    return SDL_TRUE;
 }
 
 #endif /* SDL_VIDEO_DRIVER_X11 */