diff options
Diffstat (limited to 'src/mesa/main/shared.c')
-rw-r--r-- | src/mesa/main/shared.c | 23 |
1 files changed, 3 insertions, 20 deletions
diff --git a/src/mesa/main/shared.c b/src/mesa/main/shared.c index 759883743da..ad6e6ce7cd3 100644 --- a/src/mesa/main/shared.c +++ b/src/mesa/main/shared.c @@ -97,10 +97,8 @@ _mesa_alloc_shared_state(GLcontext *ctx) * it never gets deleted. * XXX with recent/improved refcounting this may not longer be needed. */ - shared->NullBufferObj = _mesa_new_buffer_object(ctx, 0, 0); - shared->NullBufferObj->RefCount = 1000; - - shared->ArrayObjects = _mesa_NewHashTable(); + shared->NullBufferObj = ctx->Driver.NewBufferObject(ctx, 0, 0); + shared->NullBufferObj->RefCount = 1000 * 1000 * 1000; /* Create default texture objects */ for (i = 0; i < NUM_TEXTURE_TARGETS; i++) { @@ -207,18 +205,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 @@ -350,7 +333,7 @@ _mesa_free_shared_state(GLcontext *ctx, struct gl_shared_state *shared) #endif #if FEATURE_ARB_vertex_buffer_object - _mesa_delete_buffer_object(ctx, shared->NullBufferObj); + ctx->Driver.DeleteBuffer(ctx, shared->NullBufferObj); #endif /* |