mirror of
https://git.freebsd.org/ports.git
synced 2025-06-06 05:10:29 -04:00
70 lines
2.6 KiB
Text
70 lines
2.6 KiB
Text
From 8babda2c206949ad9c4f42e64bf8ae3e35b2e709 Mon Sep 17 00:00:00 2001
|
|
From: "Ryan C. Gordon" <icculus@icculus.org>
|
|
Date: Thu, 16 Jul 2020 13:18:19 -0400
|
|
Subject: [PATCH] egl: SDL_EGL_LoadLibaryOnly() shouldn't set
|
|
_this->gl_config.driver_loaded = 1
|
|
|
|
This is handled in in the higher-level SDL_GL_LoadLibrary().
|
|
|
|
All uses of SDL_EGL_LoadLibrary (which calls the Only version) are just
|
|
target-specific wrappers for their own GL_LoadLibrary hook, with two
|
|
exceptions which now handle driver_loaded correctly (although it's
|
|
questionable if these init-if-no-one-did-it-correctly-already code blocks
|
|
should exist at all, fwiw).
|
|
|
|
Fixes Bugzilla #5190.
|
|
---
|
|
src/video/SDL_egl.c | 2 --
|
|
src/video/cocoa/SDL_cocoaopengles.m | 2 ++
|
|
src/video/windows/SDL_windowsopengles.c | 3 ++-
|
|
3 files changed, 4 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/src/video/SDL_egl.c b/src/video/SDL_egl.c
|
|
index 58939053c..3358f47b8 100644
|
|
--- src/video/SDL_egl.c
|
|
+++ src/video/SDL_egl.c
|
|
@@ -438,8 +438,6 @@ SDL_EGL_LoadLibraryOnly(_THIS, const char *egl_path)
|
|
LOAD_FUNC_EGLEXT(eglQueryDevicesEXT);
|
|
LOAD_FUNC_EGLEXT(eglGetPlatformDisplayEXT);
|
|
|
|
- _this->gl_config.driver_loaded = 1;
|
|
-
|
|
if (path) {
|
|
SDL_strlcpy(_this->gl_config.driver_path, path, sizeof(_this->gl_config.driver_path) - 1);
|
|
} else {
|
|
diff --git a/src/video/cocoa/SDL_cocoaopengles.m b/src/video/cocoa/SDL_cocoaopengles.m
|
|
index a45a9f57c..0f551de10 100644
|
|
--- src/video/cocoa/SDL_cocoaopengles.m
|
|
+++ src/video/cocoa/SDL_cocoaopengles.m
|
|
@@ -109,10 +109,12 @@
|
|
|
|
|
|
if (_this->egl_data == NULL) {
|
|
+ SDL_assert(!_this->gl_config.driver_loaded);
|
|
if (SDL_EGL_LoadLibrary(_this, NULL, EGL_DEFAULT_DISPLAY, 0) < 0) {
|
|
SDL_EGL_UnloadLibrary(_this);
|
|
return -1;
|
|
}
|
|
+ _this->gl_config.driver_loaded = 1;
|
|
}
|
|
|
|
/* Create the GLES window surface */
|
|
diff --git a/src/video/windows/SDL_windowsopengles.c b/src/video/windows/SDL_windowsopengles.c
|
|
index e4bfe49cc..5ee46d83c 100644
|
|
--- src/video/windows/SDL_windowsopengles.c
|
|
+++ src/video/windows/SDL_windowsopengles.c
|
|
@@ -107,12 +107,13 @@ WIN_GLES_SetupWindow(_THIS, SDL_Window * window)
|
|
SDL_Window *current_win = SDL_GL_GetCurrentWindow();
|
|
SDL_GLContext current_ctx = SDL_GL_GetCurrentContext();
|
|
|
|
-
|
|
if (_this->egl_data == NULL) {
|
|
+ SDL_assert(!_this->gl_config.driver_loaded);
|
|
if (SDL_EGL_LoadLibrary(_this, NULL, EGL_DEFAULT_DISPLAY, 0) < 0) {
|
|
SDL_EGL_UnloadLibrary(_this);
|
|
return -1;
|
|
}
|
|
+ _this->gl_config.driver_loaded = 1;
|
|
}
|
|
|
|
/* Create the GLES window surface */
|