Fixed conform feedback and drawelements tests.
authorKeith Whitwell <keith@tungstengraphics.com>
Sun, 14 Jan 2001 06:14:21 +0000 (06:14 +0000)
committerKeith Whitwell <keith@tungstengraphics.com>
Sun, 14 Jan 2001 06:14:21 +0000 (06:14 +0000)
Use correct pv when rasterizing unfilled polys.

src/mesa/main/feedback.c
src/mesa/main/lines.c
src/mesa/main/points.c
src/mesa/swrast_setup/ss_triangle.c
src/mesa/swrast_setup/ss_vbtmp.h
src/mesa/tnl/t_array_api.c
src/mesa/tnl/t_context.h
src/mesa/tnl/t_imm_exec.c
src/mesa/tnl/t_pipeline.c
src/mesa/tnl/t_vb_rendertmp.h

index 4d6941a57668d5daf9bdb3b9fcb4078df774ea2e..b67e8146c33708a49faefe6f333564fbdde1f89e 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: feedback.c,v 1.19 2001/01/08 04:09:41 keithw Exp $ */
+/* $Id: feedback.c,v 1.20 2001/01/14 06:14:21 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -58,14 +58,13 @@ _mesa_FeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer )
       gl_error( ctx, GL_INVALID_OPERATION, "glFeedbackBuffer" );
       return;
    }
-
    if (size<0) {
       gl_error( ctx, GL_INVALID_VALUE, "glFeedbackBuffer(size<0)" );
       return;
    }
    if (!buffer) {
       gl_error( ctx, GL_INVALID_VALUE, "glFeedbackBuffer(buffer==NULL)" );
-      ctx->Feedback.BufferSize = 0; /* XXX -- Sould this be here??? */
+      ctx->Feedback.BufferSize = 0; 
       return;
    }
 
@@ -103,7 +102,6 @@ _mesa_FeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer )
 }
 
 
-
 void
 _mesa_PassThrough( GLfloat token )
 {
@@ -153,6 +151,7 @@ void gl_feedback_vertex( GLcontext *ctx,
    }
 }
 
+
 /**********************************************************************/
 /*                              Selection                             */
 /**********************************************************************/
index 8a9256c1789bc973dae77b630d5473b183a82cb3..520010c1a18ec6c5e947e794c1f65df5dd2228d0 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: lines.c,v 1.26 2001/01/13 05:48:25 keithw Exp $ */
+/* $Id: lines.c,v 1.27 2001/01/14 06:14:21 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -31,7 +31,6 @@
 #include "glheader.h"
 #include "context.h"
 #include "depth.h"
-#include "feedback.h"
 #include "lines.h"
 #include "macros.h"
 #include "mmath.h"
index c24b1b4eef39cd1ae6f792407e40ec3a67090417..41788352a166078e7413968128a9a4f83e4b2480 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: points.c,v 1.27 2001/01/09 00:02:55 brianp Exp $ */
+/* $Id: points.c,v 1.28 2001/01/14 06:14:21 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -30,7 +30,6 @@
 #else
 #include "glheader.h"
 #include "context.h"
-#include "feedback.h"
 #include "macros.h"
 #include "mmath.h"
 #include "points.h"
index 5fd5cd0f57f954f2d2bd097b5beb8fcde4e5d5cb..73a19ad38af4a04f9fbdf2adc272362b8b7b3770 100644 (file)
@@ -144,11 +144,11 @@ static void swsetup_points( GLcontext *ctx, GLuint first, GLuint last )
    int i;
    
    if (VB->Elts) {
-      for(i=first;i<=last;i++) 
+      for(i=first;i<last;i++) 
         if(VB->ClipMask[VB->Elts[i]]==0)
            _swrast_Point( ctx, &verts[VB->Elts[i]] );
    } else {
-      for(i=first;i<=last;i++) 
+      for(i=first;i<last;i++) 
         if(VB->ClipMask[i]==0)
            _swrast_Point( ctx, &verts[i] );
    }
index f5a4c449e746aecce762e66ecf3a51430eb0b8da..15d51a41df33f793d4f7b12848b25e6fd737f512 100644 (file)
@@ -110,7 +110,7 @@ static void TAG(rs)(GLcontext *ctx, GLuint start, GLuint end, GLuint newinputs )
         if (IND & MULTITEX) {
            GLuint u;
            for (u = 0 ; u < maxtex ; u++)
-              if (tc[u])
+              if (tc[u]) 
                  COPY_CLEAN_4V( v->texcoord[u], tsz[u], tc[u][i] );
         }
 
index 587f1b43d7b28012cb4007e3b0c74e2e6a3c9e11..908328513d834f5ae4ab222297f9ee408a830f7f 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: t_array_api.c,v 1.2 2001/01/08 21:56:00 keithw Exp $ */
+/* $Id: t_array_api.c,v 1.3 2001/01/14 06:14:21 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -148,7 +148,7 @@ static void _tnl_draw_range_elements( GLcontext *ctx, GLenum mode,
 {
    TNLcontext *tnl = TNL_CONTEXT(ctx);
    FLUSH_CURRENT( ctx, 0 );
-   
+
    _tnl_vb_bind_arrays( ctx, start, end );
 
    tnl->vb.FirstPrimitive = 0;
@@ -260,11 +260,11 @@ _tnl_DrawRangeElements(GLenum mode,
                     "elements outside locked range.");
       }
    }
-   else if (end - start < ctx->Const.MaxArrayLockSize) {
+   else if (end + 1 - start < ctx->Const.MaxArrayLockSize) {
       /* The arrays aren't locked but we can still fit them inside a single
        * vertexbuffer.
        */
-      _tnl_draw_range_elements( ctx, mode, start, end, count, ui_indices );
+      _tnl_draw_range_elements( ctx, mode, start, end + 1, count, ui_indices );
    } else {
       /* Range is too big to optimize:
        */
@@ -292,7 +292,8 @@ _tnl_DrawElements(GLenum mode, GLsizei count, GLenum type,
 
    ui_indices = (GLuint *)_ac_import_elements( ctx, GL_UNSIGNED_INT, 
                                               count, type, indices );
-            
+
+#if 1            
    if (ctx->Array.LockCount) {
       _tnl_draw_range_elements( ctx, mode, 
                                ctx->Array.LockFirst,
@@ -309,11 +310,14 @@ _tnl_DrawElements(GLenum mode, GLsizei count, GLenum type,
         if (ui_indices[i] > max_elt) max_elt = ui_indices[i];
 
       if (max_elt < ctx->Const.MaxArrayLockSize && /* can we use it? */
-         max_elt < count)                         /* do we want to use it? */
-        _tnl_draw_range_elements( ctx, mode, 0, max_elt, count, ui_indices );
+         max_elt < count)                         /* do we want to use it? */
+        _tnl_draw_range_elements( ctx, mode, 0, max_elt + 1, count, ui_indices );
       else
         _tnl_draw_elements( ctx, mode, count, ui_indices );
    }
+#else
+        _tnl_draw_elements( ctx, mode, count, ui_indices );
+#endif
 }
 
 
index d49c854241850f45a9c6c8627919603d62beeb73..41be51e4e250070bcf8f1f5c6ed9fd713cd3fa53 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: t_context.h,v 1.10 2001/01/13 05:48:26 keithw Exp $ */
+/* $Id: t_context.h,v 1.11 2001/01/14 06:14:21 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
 /* Flags for IM->TexCoordSize.  Enough flags for 16 units.
  */
 #define TEX_0_SIZE_3          0x1
-#define TEX_0_SIZE_4          0x1000
+#define TEX_0_SIZE_4          0x1001
 #define TEX_SIZE_3(unit)      (TEX_0_SIZE_3<<unit)
 #define TEX_SIZE_4(unit)      (TEX_0_SIZE_4<<unit)
 
index 6feff8464fd7e62af94b26ae7ef50a9e88f6aea0..4d3f874ce4ddb0a26f0b507a5d655bafadfe76ac 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: t_imm_exec.c,v 1.7 2001/01/13 05:48:26 keithw Exp $ */
+/* $Id: t_imm_exec.c,v 1.8 2001/01/14 06:14:21 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -278,9 +278,9 @@ static void _tnl_vb_bind_immediate( GLcontext *ctx, struct immediate *IM )
            tmp->TexCoord[i].data = IM->TexCoord[i] + start;
            tmp->TexCoord[i].start = (GLfloat *)(IM->TexCoord[i] + start);
            tmp->TexCoord[i].size = 2;
-           if (IM->TexSize & i) {
+           if (IM->TexSize & TEX_SIZE_3(i)) {
               tmp->TexCoord[i].size = 3;
-              if (IM->TexSize & (i<<16)) 
+              if (IM->TexSize & TEX_SIZE_4(i)) 
                  tmp->TexCoord[i].size = 4;
            }
            VB->TexCoordPtr[i] = &tmp->TexCoord[i];
index 8ee814841b19e14b283be2c23d65b27f00434a6e..11a17849b6a973c933cb1c3c47100b0859da5d15 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: t_pipeline.c,v 1.8 2001/01/08 21:56:00 keithw Exp $ */
+/* $Id: t_pipeline.c,v 1.9 2001/01/14 06:14:21 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -142,6 +142,7 @@ void _tnl_run_pipeline( GLcontext *ctx )
            changed_inputs |= stage[i].outputs;
 
         if (running) {
+/*         fprintf(stderr, "run %s\n", stage[i].name); */
            running = stage[i].run( ctx, &stage[i] );
         }
       }
index 194dd85190cf22ddb0bf1cc74d4a0a0dd2da4040..c2e1c9051e08a5ade06e290c66be6afc353c2903 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: t_vb_rendertmp.h,v 1.5 2001/01/08 04:09:42 keithw Exp $ */
+/* $Id: t_vb_rendertmp.h,v 1.6 2001/01/14 06:14:21 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -287,7 +287,7 @@ static void TAG(render_poly)( GLcontext *ctx,
       if (j<count-1) {
         GLboolean ef = EDGEFLAG_GET( ELT(j) );
         EDGEFLAG_SET( ELT(j), GL_FALSE );
-        RENDER_TRI( ELT(start), ELT(j-1), ELT(j) );
+        RENDER_TRI( ELT(j-1), ELT(j), ELT(start) );
         EDGEFLAG_SET( ELT(j), ef );
         j++;
            
@@ -298,7 +298,7 @@ static void TAG(render_poly)( GLcontext *ctx,
         for (;j<count-1;j++) {
            GLboolean efj = EDGEFLAG_GET( ELT(j) );
            EDGEFLAG_SET( ELT(j), GL_FALSE );
-           RENDER_TRI( ELT(start), ELT(j-1), ELT(j) );
+           RENDER_TRI( ELT(j-1), ELT(j), ELT(start) );
            EDGEFLAG_SET( ELT(j), efj );
         }
       }