mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 02:28:10 +02:00
fix VBO clean-up in vbo_exec_vtx_destroy()
This commit is contained in:
parent
df1df82f16
commit
f252974121
1 changed files with 13 additions and 4 deletions
|
|
@ -673,7 +673,8 @@ void vbo_exec_vtx_init( struct vbo_exec_context *exec )
|
|||
GLuint i;
|
||||
|
||||
/* Allocate a buffer object. Will just reuse this object
|
||||
* continuously.
|
||||
* continuously, unless vbo_use_buffer_objects() is called to enable
|
||||
* use of real VBOs.
|
||||
*/
|
||||
exec->vtx.bufferobj = ctx->Array.NullBufferObj;
|
||||
exec->vtx.buffer_map = ALIGN_MALLOC(VBO_VERT_BUFFER_SIZE * sizeof(GLfloat), 64);
|
||||
|
|
@ -702,9 +703,17 @@ void vbo_exec_vtx_init( struct vbo_exec_context *exec )
|
|||
|
||||
void vbo_exec_vtx_destroy( struct vbo_exec_context *exec )
|
||||
{
|
||||
if (exec->vtx.buffer_map) {
|
||||
ALIGN_FREE(exec->vtx.buffer_map);
|
||||
exec->vtx.buffer_map = NULL;
|
||||
GLcontext *ctx = exec->ctx;
|
||||
if (exec->vtx.bufferobj->Name) {
|
||||
ctx->Driver.UnmapBuffer(ctx, GL_ARRAY_BUFFER_ARB, exec->vtx.bufferobj);
|
||||
ctx->Driver.DeleteBuffer(ctx, exec->vtx.bufferobj);
|
||||
exec->vtx.bufferobj = NULL;
|
||||
}
|
||||
else {
|
||||
if (exec->vtx.buffer_map) {
|
||||
ALIGN_FREE(exec->vtx.buffer_map);
|
||||
exec->vtx.buffer_map = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue