OSDN Git Service

drawarrayrange fix
authorKeith Whitwell <keith@tungstengraphics.com>
Thu, 10 Apr 2003 10:03:30 +0000 (10:03 +0000)
committerKeith Whitwell <keith@tungstengraphics.com>
Thu, 10 Apr 2003 10:03:30 +0000 (10:03 +0000)
src/mesa/tnl/t_array_api.c

index 19cb19b..76fc607 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: t_array_api.c,v 1.31 2003/03/01 01:50:26 brianp Exp $ */
+/* $Id: t_array_api.c,v 1.32 2003/04/10 10:03:30 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -77,6 +77,7 @@ static void _tnl_draw_range_elements( GLcontext *ctx, GLenum mode,
 
 {
    TNLcontext *tnl = TNL_CONTEXT(ctx);
+   int i;
    FLUSH_CURRENT( ctx, 0 );
    
    /*  _mesa_debug(ctx, "%s\n", __FUNCTION__); */
@@ -90,6 +91,9 @@ static void _tnl_draw_range_elements( GLcontext *ctx, GLenum mode,
    tnl->vb.PrimitiveLength[0] = count;
    tnl->vb.Elts = (GLuint *)indices;
 
+   for (i = 0 ; i < count ; i++)
+      indices[i] -= start;
+
    if (ctx->Array.LockCount)
       tnl->Driver.RunPipeline( ctx );
    else {
@@ -99,6 +103,9 @@ static void _tnl_draw_range_elements( GLcontext *ctx, GLenum mode,
       tnl->Driver.RunPipeline( ctx );
       tnl->pipeline.run_input_changes |= ctx->Array._Enabled;
    }
+
+   for (i = 0 ; i < count ; i++)
+      indices[i] += start;
 }