diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index bbf99ecfa6..b896e99875 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -51,10 +51,14 @@ #include #endif // SDL_VIDEO_OPENGL_ES2 && !SDL_VIDEO_OPENGL -#ifndef SDL_VIDEO_OPENGL -#ifndef GL_CONTEXT_RELEASE_BEHAVIOR_KHR -#define GL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x82FB +// GL_CONTEXT_RELEASE_BEHAVIOR and GL_CONTEXT_RELEASE_BEHAVIOR_KHR have the same number. +#ifndef GL_CONTEXT_RELEASE_BEHAVIOR +#define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB #endif + +// GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH and GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR have the same number. +#ifndef GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH +#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC #endif #ifdef SDL_PLATFORM_EMSCRIPTEN @@ -4820,11 +4824,7 @@ bool SDL_GL_GetAttribute(SDL_GLAttr attr, int *value) attrib = GL_SAMPLES; break; case SDL_GL_CONTEXT_RELEASE_BEHAVIOR: -#ifdef SDL_VIDEO_OPENGL attrib = GL_CONTEXT_RELEASE_BEHAVIOR; -#else - attrib = GL_CONTEXT_RELEASE_BEHAVIOR_KHR; -#endif break; case SDL_GL_BUFFER_SIZE: { @@ -4969,6 +4969,12 @@ bool SDL_GL_GetAttribute(SDL_GLAttr attr, int *value) } return SDL_SetError("OpenGL error: %08X", error); } + + // convert GL_CONTEXT_RELEASE_BEHAVIOR values back to SDL_GL_CONTEXT_RELEASE_BEHAVIOR values + if (attr == SDL_GL_CONTEXT_RELEASE_BEHAVIOR) { + *value = (*value == GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH) ? SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH : SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE; + } + return true; #else return SDL_Unsupported();