vbo: seed initial max_element value with a more likely candidate
authorKeith Whitwell <keith@tungstengraphics.com>
Mon, 25 Aug 2008 09:59:45 +0000 (10:59 +0100)
committerKeith Whitwell <keith@tungstengraphics.com>
Tue, 26 Aug 2008 08:36:47 +0000 (09:36 +0100)
src/mesa/vbo/vbo_exec_array.c

index bf97956286a8b92365f84b3def857c8f47d26de9..0f9d8da3568d918d0267b43e9862b56586104b95 100644 (file)
@@ -47,9 +47,9 @@ static void get_minmax_index( GLuint count, GLuint type,
    switch(type) {
    case GL_UNSIGNED_INT: {
       const GLuint *ui_indices = (const GLuint *)indices;
-      GLuint max_ui = ui_indices[0];
+      GLuint max_ui = ui_indices[count-1];
       GLuint min_ui = ui_indices[0];
-      for (i = 1; i < count; i++) {
+      for (i = 0; i < count; i++) {
         if (ui_indices[i] > max_ui) max_ui = ui_indices[i];
         if (ui_indices[i] < min_ui) min_ui = ui_indices[i];
       }
@@ -59,9 +59,9 @@ static void get_minmax_index( GLuint count, GLuint type,
    }
    case GL_UNSIGNED_SHORT: {
       const GLushort *us_indices = (const GLushort *)indices;
-      GLuint max_us = us_indices[0];
+      GLuint max_us = us_indices[count-1];
       GLuint min_us = us_indices[0];
-      for (i = 1; i < count; i++) {
+      for (i = 0; i < count; i++) {
         if (us_indices[i] > max_us) max_us = us_indices[i];
         if (us_indices[i] < min_us) min_us = us_indices[i];
       }
@@ -71,9 +71,9 @@ static void get_minmax_index( GLuint count, GLuint type,
    }
    case GL_UNSIGNED_BYTE: {
       const GLubyte *ub_indices = (const GLubyte *)indices;
-      GLuint max_ub = ub_indices[0];
+      GLuint max_ub = ub_indices[count-1];
       GLuint min_ub = ub_indices[0];
-      for (i = 1; i < count; i++) {
+      for (i = 0; i < count; i++) {
         if (ub_indices[i] > max_ub) max_ub = ub_indices[i];
         if (ub_indices[i] < min_ub) min_ub = ub_indices[i];
       }