mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-09-05 19:08:12 +00:00
video: SDL_GL_GetAttribute gets correct SDL_GL_CONTEXT_RELEASE_BEHAVIOR value.
Original patch was from @ramezgerges (thanks!). Fixes #11697.
This commit is contained in:
@@ -51,10 +51,14 @@
|
||||
#include <SDL3/SDL_opengles2.h>
|
||||
#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();
|
||||
|
Reference in New Issue
Block a user