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

Paul Berry stereotype441 at gmail.com
Tue Sep 25 15:00:33 PDT 2012


On 25 September 2012 14:50, Jordan Justen <jljusten at gmail.com> wrote:

> 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?
>

Yes, it should be, since GLES2 implementations don't support any SRGB
formats, and GL_FRAMEBUFFER_SRGB only has an effect when rendering to an
SRGB format framebuffer.  I'll add a note to the commit message to clarify
that.


>
> SRG => SRGB
>

Gah!  My fingers must be color-blind.  Thanks.


>
> 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
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20120925/74941dce/attachment.html>


More information about the mesa-dev mailing list