/** * Deallocate/free a vertex/pixel buffer object. * Called via glDeleteBuffersARB(). */ static void intel_bufferobj_free( GLcontext *ctx, struct gl_buffer_object *obj ) { struct intel_context *intel = intel_context(ctx); struct intel_buffer_object *intel_obj = intel_buffer_object(obj); assert(intel_obj); if (intel_obj->buffer) bmDeleteBuffers( intel->bm, 1, &intel_obj->buffer ); _mesa_free(intel_obj); }
void intel_region_release( struct intel_context *intel, struct intel_region **region ) { if (!*region) return; DBG("%s %d\n", __FUNCTION__, (*region)->refcount-1); if (--(*region)->refcount == 0) { assert((*region)->map_refcount == 0); bmDeleteBuffers(intel, 1, &(*region)->buffer); free(*region); } *region = NULL; }