On Fri, Jul 26, 2013 at 10:55 PM, Ian Romanick <i...@freedesktop.org> wrote: > From: Ian Romanick <ian.d.roman...@intel.com> > > Allow user-generated names for glBindRenderbufferEXT on desktop GL. > Disallow its use altogether for core profiles. > > Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> > Cc: mesa-sta...@lists.freedesktop.org > --- > src/mesa/main/fbobject.c | 32 +++++++++++++++++++++++++------- > 1 file changed, 25 insertions(+), 7 deletions(-) > > diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c > index a29f1ab..1cc0966 100644 > --- a/src/mesa/main/fbobject.c > +++ b/src/mesa/main/fbobject.c > @@ -1104,11 +1104,11 @@ _mesa_IsRenderbuffer(GLuint renderbuffer) > } > > > -void GLAPIENTRY > -_mesa_BindRenderbuffer(GLenum target, GLuint renderbuffer) > +static void > +bind_renderbuffer(struct gl_context *ctx, GLenum target, GLuint renderbuffer, > + bool allow_user_names) > { > struct gl_renderbuffer *newRb; > - GET_CURRENT_CONTEXT(ctx); > > if (target != GL_RENDERBUFFER_EXT) { > _mesa_error(ctx, GL_INVALID_ENUM, "glBindRenderbufferEXT(target)"); > @@ -1125,9 +1125,7 @@ _mesa_BindRenderbuffer(GLenum target, GLuint > renderbuffer) > /* ID was reserved, but no real renderbuffer object made yet */ > newRb = NULL; > } > - else if (!newRb > - && _mesa_is_desktop_gl(ctx) > - && ctx->Extensions.ARB_framebuffer_object) { > + else if (!newRb && !allow_user_names) { > /* All RB IDs must be Gen'd */ > _mesa_error(ctx, GL_INVALID_OPERATION, > "glBindRenderbuffer(buffer)"); > return; > @@ -1154,11 +1152,31 @@ _mesa_BindRenderbuffer(GLenum target, GLuint > renderbuffer) > _mesa_reference_renderbuffer(&ctx->CurrentRenderbuffer, newRb); > } > > +void GLAPIENTRY > +_mesa_BindRenderbuffer(GLenum target, GLuint renderbuffer) > +{ > + GET_CURRENT_CONTEXT(ctx); > + > + /* OpenGL ES glBindRenderbuffer and glBindRenderbufferOES use this same > + * entry point, but they allow the use of user-generated names. > + */ > + bind_renderbuffer(ctx, target, renderbuffer, _mesa_is_gles(ctx)); > +} > > void GLAPIENTRY > _mesa_BindRenderbufferEXT(GLenum target, GLuint renderbuffer) > { > - _mesa_BindRenderbuffer(target, renderbuffer); > + GET_CURRENT_CONTEXT(ctx); > + > + /* Disallowing the EXT function altogether prevents a loop-hole from > + * allowing user-generated names in a core profile / OpenGL 3.1. > + */ > + if (ctx->API == API_OPENGL_CORE) { > + _mesa_generic_nop(); > + return;
Could we make the api_exec.c generation not bind BindRenderbufferEXT/BindFramebufferEXT for CORE contexts? Series Reviewed-by: Jordan Justen <jordan.l.jus...@intel.com> > + } > + > + bind_renderbuffer(ctx, target, renderbuffer, true); > } > > > -- > 1.8.1.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev