glUnmapBufferARB can fail
authormalc <av1474@comtv.ru>
Fri, 14 Dec 2012 23:02:25 +0000 (15 03:02 +0400)
committermalc <av1474@comtv.ru>
Fri, 14 Dec 2012 23:02:25 +0000 (15 03:02 +0400)
Print an error message and die if it does.

link.c

diff --git a/link.c b/link.c
index f76c269..ad4561e 100644 (file)
--- a/link.c
+++ b/link.c
@@ -231,7 +231,7 @@ struct {
 
     int pbo_usable;
     void (*glBindBufferARB) (GLenum, GLuint);
-    void (*glUnmapBufferARB) (GLenum);
+    GLboolean (*glUnmapBufferARB) (GLenum);
     void *(*glMapBufferARB) (GLenum, GLenum);
     void (*glBufferDataARB) (GLenum, GLsizei, void *, GLenum);
     void (*glGenBuffersARB) (GLsizei, GLuint *);
@@ -3455,7 +3455,9 @@ CAMLprim value ml_unmappbo (value s_v)
 
     if (tile->pbo) {
         state.glBindBufferARB (GL_PIXEL_UNPACK_BUFFER_ARB, tile->pbo->id);
-        state.glUnmapBufferARB (GL_PIXEL_UNPACK_BUFFER_ARB);
+        if (state.glUnmapBufferARB (GL_PIXEL_UNPACK_BUFFER_ARB) == GL_FALSE) {
+            errx (1, "glUnmapBufferARB failed: %#x\n", glGetError ());
+        }
         tile->pbo->ptr = NULL;
         state.glBindBufferARB (GL_PIXEL_UNPACK_BUFFER_ARB, 0);
     }