-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ian Romanick wrote:
> I've just posted a patch that implements GL_APPLE_vertex_array_object at:
> 
>     http://users.freedesktop.org/~idr/patches/

There is an updated patch available at the same location.  This is a
pretty straight forward change to the previous patch (see below).
Unless there are significant concerns, I'm going to commit this patch on
Friday.  SF mailing lists seem to be going very slowly, so I want to
give plenty of lead time.

> The patch, which is quite large anyway, does *NOT* include changes to
> any generated files.  To test this patch you'll need to regenerate
> src/mesa/main/get.c and do a make in src/mesa/glapi.
> 
> The patch is pretty straight forward, and no attempts are made at doing
> optimal object switching.  Ideally a driver would want to store some
> additional state with the array object and hook BindArrayObject.  The
> driver would then use the state stored in the object to quickly restore
> the old array state.
> 
> I'm also not convinced that this patch handles PushAttrib / PopAttrib
> correctly.  Although, most parts of OpenGL are pretty busted when you
> push an object, delete it, then pop it.  In this particular case, the
> pop will restore a pointer to freed memory.
> 
> The text describing the behavior in the extension spec is a bit
> squirlely.  It almost sounds like the push has to save the bind and all
> of the individual attribute values.  The pop the repeats the binding
> (which may re-create the deleted object) and resets the values.  That's
> pretty different from the way texture objects work (e.g., popping a
> texture object doesn't redo the bind then reset the filter mode).

The new patch adds two test programs that probe this behavior.  Apple's
implementation functions as described above.  The object ID is popped
and rebound, then the enables and pointers are restored.  The
implementation in the new patch matches this.

There is a FIXME comment in attrib.c that I'd like to see resolved
eventually.  It seems like Array->NewState should be updated when
popping state from the stack.  The old code didn't do this, so it may
not be needed.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

iD8DBQFEhexLX1gOwKyEAw8RAlvqAJ9b4uXkL6QZ+0Ac4uij0DSwZOuWywCcDFyt
yLI3MUpeNDvl3NN0UtzrLkI=
=hW1c
-----END PGP SIGNATURE-----


_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to