[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