From 1f54b228ff7ce0ce93f49cbda869b93f247a01a9 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Mon, 6 Jan 2025 11:15:26 -0500 Subject: [PATCH] video: Convert some EGL environment variables to SDL hints. Fixes #10479. --- include/SDL3/SDL_hints.h | 15 ++++++++++++++- src/video/SDL_egl.c | 4 ++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/include/SDL3/SDL_hints.h b/include/SDL3/SDL_hints.h index 8f8db4615..f3686934e 100644 --- a/include/SDL3/SDL_hints.h +++ b/include/SDL3/SDL_hints.h @@ -2635,12 +2635,25 @@ extern "C" { * Specify the OpenGL library to load. * * This hint should be set before creating an OpenGL window or creating an - * OpenGL context. + * OpenGL context. If this hint isn't set, SDL will choose a reasonable + * default. * * \since This hint is available since SDL 3.1.3. */ #define SDL_HINT_OPENGL_LIBRARY "SDL_OPENGL_LIBRARY" +/** + * Specify the EGL library to load. + * + * This hint should be set before creating an OpenGL window or creating an + * OpenGL context. This hint is only considered if SDL is using EGL to + * manage OpenGL contexts. If this hint isn't set, SDL will choose a + * reasonable default. + * + * \since This hint is available since SDL 3.2.0. + */ +#define SDL_HINT_EGL_LIBRARY "SDL_EGL_LIBRARY" + /** * A variable controlling what driver to use for OpenGL ES contexts. * diff --git a/src/video/SDL_egl.c b/src/video/SDL_egl.c index e3128b3e3..edeb033fc 100644 --- a/src/video/SDL_egl.c +++ b/src/video/SDL_egl.c @@ -344,7 +344,7 @@ static bool SDL_EGL_LoadLibraryInternal(SDL_VideoDevice *_this, const char *egl_ #if !defined(SDL_VIDEO_STATIC_ANGLE) && !defined(SDL_VIDEO_DRIVER_VITA) /* A funny thing, loading EGL.so first does not work on the Raspberry, so we load libGL* first */ - path = SDL_getenv("SDL_VIDEO_GL_DRIVER"); + path = SDL_GetHint(SDL_HINT_OPENGL_LIBRARY); if (path) { opengl_dll_handle = SDL_LoadObject(path); } @@ -404,7 +404,7 @@ static bool SDL_EGL_LoadLibraryInternal(SDL_VideoDevice *_this, const char *egl_ if (egl_dll_handle) { SDL_UnloadObject(egl_dll_handle); } - path = SDL_getenv("SDL_VIDEO_EGL_DRIVER"); + path = SDL_GetHint(SDL_HINT_EGL_LIBRARY); if (!path) { path = DEFAULT_EGL; }