-/* $Id: varray.c,v 1.19 2000/02/02 19:17:57 brianp Exp $ */
+/* $Id: varray.c,v 1.21 2000/02/25 03:55:40 keithw Exp $ */
/*
* Mesa 3-D graphics library
VB->NextPrimitive[VB->CopyStart] = VB->Count;
VB->Primitive[VB->CopyStart] = mode;
+ ctx->Array.Flag[count] |= VERT_END_VB;
/* Transform and render.
*/
return;
}
- if (mode > GL_POLYGON) {
+ if (mode < 0 || mode > GL_POLYGON) {
gl_error( ctx, GL_INVALID_ENUM, "glDrawArrays(mode)" );
return;
}
return;
}
+#if 0
+ /*
+ * XXX something in locked arrays is broken! If start = 0,
+ * end = 1 and count = 2 we'll take the LockArrays path and
+ * get incorrect results. See Scott McMillan's bug of 3 Jan 2000.
+ * For now, don't use locked arrays.
+ */
if (!ctx->Array.LockCount && 2*count > (GLint) 3*(end-start)) {
glLockArraysEXT( start, end );
glDrawElements( mode, count, type, indices );
} else {
glDrawElements( mode, count, type, indices );
}
+#else
+ glDrawElements( mode, count, type, indices );
+#endif
}