mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 11:20:20 +01:00
gles3: Prohibit set/get of GL_FRAMEBUFFER_SRGB.
GLES 3 supports sRGB functionality, but it does not expose the GL_FRAMEBUFFER_SRGB enable/disable bit. Instead the implementation is expected to behave as though that bit is always enabled. This patch ensures that ctx->Color.sRGBEnabled (the internal variable tracking GL_FRAMEBUFFER_SRGB) is initially true in GLES 2/3 contexts, and that it cannot be modified through the GLES 3 API. This is safe for GLES 2, since ctx->Color.sRGBEnabled has no effect on non-sRGB formats, and GLES 2 doesn't support any sRGB formats. Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
This commit is contained in:
parent
414f69aaad
commit
112caa853d
2 changed files with 9 additions and 2 deletions
|
|
@ -858,6 +858,13 @@ void _mesa_init_color( struct gl_context * ctx )
|
|||
ctx->Color._ClampFragmentColor = GL_TRUE;
|
||||
ctx->Color.ClampReadColor = GL_FIXED_ONLY_ARB;
|
||||
ctx->Color._ClampReadColor = GL_TRUE;
|
||||
|
||||
if (ctx->API == API_OPENGLES2) {
|
||||
/* GLES 3 behaves as though GL_FRAMEBUFFER_SRGB is always enabled. */
|
||||
ctx->Color.sRGBEnabled = GL_TRUE;
|
||||
} else {
|
||||
ctx->Color.sRGBEnabled = GL_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
/*@}*/
|
||||
|
|
|
|||
|
|
@ -1061,7 +1061,7 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
|
|||
|
||||
/* GL3.0 - GL_framebuffer_sRGB */
|
||||
case GL_FRAMEBUFFER_SRGB_EXT:
|
||||
if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx))
|
||||
if (!_mesa_is_desktop_gl(ctx))
|
||||
goto invalid_enum_error;
|
||||
CHECK_EXTENSION(EXT_framebuffer_sRGB, cap);
|
||||
_mesa_set_framebuffer_srgb(ctx, state);
|
||||
|
|
@ -1715,7 +1715,7 @@ _mesa_IsEnabled( GLenum cap )
|
|||
|
||||
/* GL3.0 - GL_framebuffer_sRGB */
|
||||
case GL_FRAMEBUFFER_SRGB_EXT:
|
||||
if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx))
|
||||
if (!_mesa_is_desktop_gl(ctx))
|
||||
goto invalid_enum_error;
|
||||
CHECK_EXTENSION(EXT_framebuffer_sRGB);
|
||||
return ctx->Color.sRGBEnabled;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue