mesa: move vertex array objects from shared state to per-context

The ARB version requires VAOs to be per-context while the Apple extension
was ambiguous.
This commit is contained in:
Brian Paul
2009-06-19 17:58:47 -06:00
parent bda551898a
commit 12cf98f5fc
6 changed files with 42 additions and 41 deletions

View File

@@ -100,8 +100,6 @@ _mesa_alloc_shared_state(GLcontext *ctx)
shared->NullBufferObj = ctx->Driver.NewBufferObject(ctx, 0, 0);
shared->NullBufferObj->RefCount = 1000 * 1000 * 1000;
shared->ArrayObjects = _mesa_NewHashTable();
/* Create default texture objects */
for (i = 0; i < NUM_TEXTURE_TARGETS; i++) {
/* NOTE: the order of these enums matches the TEXTURE_x_INDEX values */
@@ -206,18 +204,6 @@ delete_bufferobj_cb(GLuint id, void *data, void *userData)
}
/**
* Callback for deleting an array object. Called by _mesa_HashDeleteAll().
*/
static void
delete_arrayobj_cb(GLuint id, void *data, void *userData)
{
struct gl_array_object *arrayObj = (struct gl_array_object *) data;
GLcontext *ctx = (GLcontext *) userData;
_mesa_delete_array_object(ctx, arrayObj);
}
/**
* Callback for freeing shader program data. Call it before delete_shader_cb
* to avoid memory access error.
@@ -320,9 +306,6 @@ _mesa_free_shared_state(GLcontext *ctx, struct gl_shared_state *shared)
_mesa_HashDeleteAll(shared->Programs, delete_program_cb, ctx);
_mesa_DeleteHashTable(shared->Programs);
_mesa_HashDeleteAll(shared->ArrayObjects, delete_arrayobj_cb, ctx);
_mesa_DeleteHashTable(shared->ArrayObjects);
#if FEATURE_ARB_vertex_program
_mesa_reference_vertprog(ctx, &shared->DefaultVertexProgram, NULL);
#endif