[Mesa-dev] [PATCH 3/3] gles3: Prohibit set/get of GL_FRAMEBUFFER_SRGB.

Jordan Justen jljusten at gmail.com
Tue Sep 25 14:50:32 PDT 2012


On Mon, Sep 24, 2012 at 4:49 PM, Paul Berry <stereotype441 at gmail.com> wrote:
> 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_SRG) is initially true in GLES 2/3 contexts,

And, changing this default state is okay for GLES2?

SRG => SRGB

Series:
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>

> and that it cannot be modified through the GLES 3 API.
> ---
>  src/mesa/main/blend.c  | 7 +++++++
>  src/mesa/main/enable.c | 4 ++--
>  2 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/main/blend.c b/src/mesa/main/blend.c
> index de871a9..5d55311 100644
> --- a/src/mesa/main/blend.c
> +++ b/src/mesa/main/blend.c
> @@ -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;
> +   }
>  }
>
>  /*@}*/
> diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c
> index 676cd9b..a607bdc 100644
> --- a/src/mesa/main/enable.c
> +++ b/src/mesa/main/enable.c
> @@ -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;
> --
> 1.7.12.1
>


More information about the mesa-dev mailing list