Fixed handling framebuffer_srgb_capable for EGL and iOS

This commit is contained in:
Sam Lantinga
2025-11-15 07:32:49 -08:00
parent 0f763da015
commit a4c269cd10
3 changed files with 6 additions and 6 deletions

View File

@@ -1268,14 +1268,14 @@ EGLSurface SDL_EGL_CreateSurface(SDL_VideoDevice *_this, SDL_Window *window, Nat
ANativeWindow_setBuffersGeometry(nw, 0, 0, format_wanted);
#endif
if (_this->gl_config.framebuffer_srgb_capable) {
if (_this->gl_config.framebuffer_srgb_capable >= 0) {
#ifdef EGL_KHR_gl_colorspace
if (SDL_EGL_HasExtension(_this, SDL_EGL_DISPLAY_EXTENSION, "EGL_KHR_gl_colorspace")) {
attribs[attr++] = EGL_GL_COLORSPACE_KHR;
attribs[attr++] = EGL_GL_COLORSPACE_SRGB_KHR;
attribs[attr++] = _this->gl_config.framebuffer_srgb_capable ? EGL_GL_COLORSPACE_SRGB_KHR : EGL_GL_COLORSPACE_LINEAR_KHR;
} else
#endif
{
if (_this->gl_config.framebuffer_srgb_capable > 0) {
SDL_SetError("EGL implementation does not support sRGB system framebuffers");
return EGL_NO_SURFACE;
}

View File

@@ -39,7 +39,7 @@
aBits:(int)aBits
depthBits:(int)depthBits
stencilBits:(int)stencilBits
sRGB:(BOOL)sRGB
sRGB:(int)sRGB
multisamples:(int)multisamples
context:(EAGLContext *)glcontext;

View File

@@ -67,7 +67,7 @@
aBits:(int)aBits
depthBits:(int)depthBits
stencilBits:(int)stencilBits
sRGB:(BOOL)sRGB
sRGB:(int)sRGB
multisamples:(int)multisamples
context:(EAGLContext *)glcontext
{
@@ -93,7 +93,7 @@
samples = SDL_min(samples, maxsamples);
}
if (sRGB) {
if (sRGB > 0) {
colorFormat = kEAGLColorFormatSRGBA8;
colorBufferFormat = GL_SRGB8_ALPHA8;
} else if (rBits >= 8 || gBits >= 8 || bBits >= 8 || aBits > 0) {