mirror of https://github.com/libsdl-org/SDL.git
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:
parent
05877f2cea
commit
3424ec948c
|
|
@ -51,10 +51,14 @@
|
||||||
#include <SDL3/SDL_opengles2.h>
|
#include <SDL3/SDL_opengles2.h>
|
||||||
#endif // SDL_VIDEO_OPENGL_ES2 && !SDL_VIDEO_OPENGL
|
#endif // SDL_VIDEO_OPENGL_ES2 && !SDL_VIDEO_OPENGL
|
||||||
|
|
||||||
#ifndef SDL_VIDEO_OPENGL
|
// GL_CONTEXT_RELEASE_BEHAVIOR and GL_CONTEXT_RELEASE_BEHAVIOR_KHR have the same number.
|
||||||
#ifndef GL_CONTEXT_RELEASE_BEHAVIOR_KHR
|
#ifndef GL_CONTEXT_RELEASE_BEHAVIOR
|
||||||
#define GL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x82FB
|
#define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB
|
||||||
#endif
|
#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
|
#endif
|
||||||
|
|
||||||
#ifdef SDL_PLATFORM_EMSCRIPTEN
|
#ifdef SDL_PLATFORM_EMSCRIPTEN
|
||||||
|
|
@ -4820,11 +4824,7 @@ bool SDL_GL_GetAttribute(SDL_GLAttr attr, int *value)
|
||||||
attrib = GL_SAMPLES;
|
attrib = GL_SAMPLES;
|
||||||
break;
|
break;
|
||||||
case SDL_GL_CONTEXT_RELEASE_BEHAVIOR:
|
case SDL_GL_CONTEXT_RELEASE_BEHAVIOR:
|
||||||
#ifdef SDL_VIDEO_OPENGL
|
|
||||||
attrib = GL_CONTEXT_RELEASE_BEHAVIOR;
|
attrib = GL_CONTEXT_RELEASE_BEHAVIOR;
|
||||||
#else
|
|
||||||
attrib = GL_CONTEXT_RELEASE_BEHAVIOR_KHR;
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
case SDL_GL_BUFFER_SIZE:
|
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);
|
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;
|
return true;
|
||||||
#else
|
#else
|
||||||
return SDL_Unsupported();
|
return SDL_Unsupported();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue