EGL: Added support for sRGB system framebuffers, when the required EGL extension is present.
parent
c57f409fe8
commit
5a3cc7f580
|
@ -340,6 +340,18 @@ SDL_EGL_ChooseConfig(_THIS)
|
||||||
attribs[i++] = _this->gl_config.multisamplesamples;
|
attribs[i++] = _this->gl_config.multisamplesamples;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_this->gl_config.framebuffer_srgb_capable) {
|
||||||
|
#ifdef EGL_KHR_gl_colorspace
|
||||||
|
if (SDL_EGL_HasExtension(_this, "EGL_KHR_gl_colorspace")) {
|
||||||
|
attribs[i++] = EGL_GL_COLORSPACE_KHR;
|
||||||
|
attribs[i++] = EGL_GL_COLORSPACE_SRGB_KHR;
|
||||||
|
} else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
return SDL_SetError("EGL implementation does not support sRGB system framebuffers");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
attribs[i++] = EGL_RENDERABLE_TYPE;
|
attribs[i++] = EGL_RENDERABLE_TYPE;
|
||||||
if (_this->gl_config.profile_mask == SDL_GL_CONTEXT_PROFILE_ES) {
|
if (_this->gl_config.profile_mask == SDL_GL_CONTEXT_PROFILE_ES) {
|
||||||
#ifdef EGL_KHR_create_context
|
#ifdef EGL_KHR_create_context
|
||||||
|
@ -358,9 +370,9 @@ SDL_EGL_ChooseConfig(_THIS)
|
||||||
attribs[i++] = EGL_OPENGL_BIT;
|
attribs[i++] = EGL_OPENGL_BIT;
|
||||||
_this->egl_data->eglBindAPI(EGL_OPENGL_API);
|
_this->egl_data->eglBindAPI(EGL_OPENGL_API);
|
||||||
}
|
}
|
||||||
|
|
||||||
attribs[i++] = EGL_NONE;
|
attribs[i++] = EGL_NONE;
|
||||||
|
|
||||||
if (_this->egl_data->eglChooseConfig(_this->egl_data->egl_display,
|
if (_this->egl_data->eglChooseConfig(_this->egl_data->egl_display,
|
||||||
attribs,
|
attribs,
|
||||||
configs, SDL_arraysize(configs),
|
configs, SDL_arraysize(configs),
|
||||||
|
@ -368,7 +380,7 @@ SDL_EGL_ChooseConfig(_THIS)
|
||||||
found_configs == 0) {
|
found_configs == 0) {
|
||||||
return SDL_SetError("Couldn't find matching EGL config");
|
return SDL_SetError("Couldn't find matching EGL config");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* eglChooseConfig returns a number of configurations that match or exceed the requested attribs. */
|
/* eglChooseConfig returns a number of configurations that match or exceed the requested attribs. */
|
||||||
/* From those, we select the one that matches our requirements more closely via a makeshift algorithm */
|
/* From those, we select the one that matches our requirements more closely via a makeshift algorithm */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue