Browse Source

offscreen: Don't ever use this backend unless explicitly requested.

Reference PR #10202.
Ryan C. Gordon 9 months ago
parent
commit
d78ef58b4b
1 changed files with 16 additions and 1 deletions
  1. 16 1
      src/video/offscreen/SDL_offscreenvideo.c

+ 16 - 1
src/video/offscreen/SDL_offscreenvideo.c

@@ -51,14 +51,29 @@ static void OFFSCREEN_DeleteDevice(SDL_VideoDevice *device)
     SDL_free(device);
 }
 
+static SDL_bool OFFSCREEN_Available(const char *enable_hint)
+{
+    const char *hint = SDL_GetHint(SDL_HINT_VIDEO_DRIVER);
+    if (hint) {
+        if (SDL_strcmp(hint, enable_hint) == 0) {
+            return SDL_TRUE;
+        }
+    }
+    return SDL_FALSE;
+}
+
 static SDL_VideoDevice *OFFSCREEN_CreateDevice(void)
 {
     SDL_VideoDevice *device;
 
+    if (!OFFSCREEN_Available(OFFSCREENVID_DRIVER_NAME)) {
+        return NULL;
+    }
+
     /* Initialize all variables that we clean on shutdown */
     device = (SDL_VideoDevice *)SDL_calloc(1, sizeof(SDL_VideoDevice));
     if (!device) {
-        return 0;
+        return NULL;
     }
 
     /* General video */