vbo: fix broken glMultiDrawElements()
authorBrian Paul <brianp@vmware.com>
Mon, 15 Feb 2010 15:57:17 +0000 (08:57 -0700)
committerBrian Paul <brianp@vmware.com>
Mon, 15 Feb 2010 15:57:17 +0000 (08:57 -0700)
Seems to be a regression from commit 60b08eb1fdf287d28ec66b9282513ab35a61aee0.

(cherry picked from commit c5a4cfb03ff17955c049f16ac805f5837ea4b633)

src/mesa/vbo/vbo_exec_array.c

index 88502f3d355de0f320b6a06e64921aa792308ea7..a284e4047f30c586961f442c2b399d769be10d8c 100644 (file)
@@ -935,13 +935,13 @@ vbo_validated_multidrawelements(GLcontext *ctx, GLenum mode,
       vbo->draw_prims(ctx, exec->array.inputs, prim, primcount, &ib,
                      GL_FALSE, ~0, ~0);
    } else {
+      /* render one prim at a time */
       for (i = 0; i < primcount; i++) {
         ib.count = count[i];
         ib.type = type;
         ib.obj = ctx->Array.ElementArrayBufferObj;
         ib.ptr = indices[i];
 
-
         prim[0].begin = 1;
         prim[0].end = 1;
         prim[0].weak = 0;
@@ -954,11 +954,12 @@ vbo_validated_multidrawelements(GLcontext *ctx, GLenum mode,
            prim[0].basevertex = basevertex[i];
         else
            prim[0].basevertex = 0;
-      }
 
-      vbo->draw_prims(ctx, exec->array.inputs, prim, 1, &ib,
-                     GL_FALSE, ~0, ~0);
+         vbo->draw_prims(ctx, exec->array.inputs, prim, 1, &ib,
+                         GL_FALSE, ~0, ~0);
+      }
    }
+
    _mesa_free(prim);
 }