[Mesa-dev] [PATCH 8/9] mesa: Add support for glGetIntegeri_v from GL_ARB_uniform_buffer_object.

Kristian Høgsberg krh at bitplanet.net
Wed Jun 20 07:00:51 PDT 2012


On Tue, Jun 19, 2012 at 3:26 PM, Eric Anholt <eric at anholt.net> wrote:
> On Tue, 19 Jun 2012 08:10:25 -0600, Brian Paul <brianp at vmware.com> wrote:
>> On 06/18/2012 07:35 PM, Eric Anholt wrote:
>> > Fixes piglit ARB_uniform_buffer_object/getintegeri_v.
>> > ---
>> >   src/mesa/main/get.c |   24 ++++++++++++++++++++++++
>> >   1 file changed, 24 insertions(+)
>> >
>> > diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
>> > index 933bfe7..4798c02 100644
>> > --- a/src/mesa/main/get.c
>> > +++ b/src/mesa/main/get.c
>> > @@ -2566,6 +2566,30 @@ find_value_indexed(const char *func, GLenum pname, int index, union value *v)
>> >      goto invalid_enum;
>> >         v->value_int = ctx->TransformFeedback.CurrentObject->BufferNames[index];
>> >         return TYPE_INT;
>> > +
>> > +   case GL_UNIFORM_BUFFER_BINDING:
>> > +      if (index>= ctx->Const.MaxUniformBufferBindings)
>> > +    goto invalid_value;
>> > +      if (!ctx->Extensions.ARB_uniform_buffer_object)
>> > +    goto invalid_enum;
>>
>> I think it's a bit more natural to do the extension check before the
>> index check.
>
> Since all the other enums are handled in this order, too, I'd rather
> that be an independent change.  It does seem like a silly ordering,
> though.

You can use the "extra" mechanism to check the extension automatically
before even getting into find_value_indexed. Add:

  EXTRA_EXT(ARB_uniform_buffer_object);

and then add &extra_ARB_uniform_buffer_object instead of NO_EXTRA
where the token is defined.

Kristian


More information about the mesa-dev mailing list