progs/tests: fix a couple bugs in the getprocaddress.c test
[mesa.git] / progs / tests / getprocaddress.c
index 38ca7000df24b081a2368ac5abda6975098fa25b..1ff6f29a6f1c4663f3fd0085db87d8bbb3ffe4c9 100644 (file)
@@ -1189,6 +1189,7 @@ exercise_buffer_objects(enum Map_Buffer_Usage usage)
    GLint bufferMapped;
    static GLubyte data[BUFFER_DATA_SIZE] = {0};
    float *dataPtr = NULL;
+   const char *extensions = (const char *) glGetString(GL_EXTENSIONS);
 
    /* Get the function pointers we need.  These are from
     * GL_ARB_vertex_buffer_object and are required in all
@@ -1216,6 +1217,9 @@ exercise_buffer_objects(enum Map_Buffer_Usage usage)
     * we're given Use_Map_Buffer_Range.  Test it before using it.
     */
    DECLARE_GLFUNC_PTR(BufferParameteriAPPLE, PFNGLBUFFERPARAMETERIAPPLEPROC);
+   if (!strstr("GL_APPLE_flush_buffer_range", extensions)) {
+      BufferParameteriAPPLE = NULL;
+   }
 
    /* Make sure we have all the function pointers we need. */
    if (GenBuffersARB == NULL ||
@@ -1286,7 +1290,7 @@ exercise_buffer_objects(enum Map_Buffer_Usage usage)
     * using MapBufferRange, we first have to flush the range we modified.
     */
    if (usage == Use_Map_Buffer_Range) {
-      (*FlushMappedBufferRange)(GL_ARRAY_BUFFER_ARB, 4, 16);
+      (*FlushMappedBufferRange)(GL_ARRAY_BUFFER_ARB, 0, 16);
    }
    if (!(*UnmapBufferARB)(GL_ARRAY_BUFFER_ARB)) {
       fprintf(stderr, "%s: UnmapBuffer failed\n", __FUNCTION__);