Mesa (mesa_7_4_branch): mesa: fix incorrect error handling in glBufferDataARB()
Brian Paul
brianp at kemper.freedesktop.org
Fri Feb 27 19:58:34 UTC 2009
Module: Mesa
Branch: mesa_7_4_branch
Commit: c79079895f526828beb0e9e1bb9fc76f4c6e3b9d
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c79079895f526828beb0e9e1bb9fc76f4c6e3b9d
Author: Brian Paul <brianp at vmware.com>
Date: Fri Feb 27 12:58:07 2009 -0700
mesa: fix incorrect error handling in glBufferDataARB()
If glBufferDataARB() is called while a buffer object is currently mapped
we're supposed to unmap the current buffer, then replace it. Don't generate
an error.
(cherry picked from master, commit 75e3ccf6a5b639834bcda0ff6f9035b148fca8f1)
---
src/mesa/main/bufferobj.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
index 59fe8e2..7fce9e7 100644
--- a/src/mesa/main/bufferobj.c
+++ b/src/mesa/main/bufferobj.c
@@ -944,8 +944,10 @@ _mesa_BufferDataARB(GLenum target, GLsizeiptrARB size,
}
if (bufObj->Pointer) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glBufferDataARB(buffer is mapped)" );
- return;
+ /* Unmap the existing buffer. We'll replace it now. Not an error. */
+ ctx->Driver.UnmapBuffer(ctx, target, bufObj);
+ bufObj->Access = GL_READ_WRITE_ARB;
+ bufObj->Pointer = NULL;
}
ASSERT(ctx->Driver.BufferData);
More information about the mesa-commit
mailing list