swrast_setup: Remove more color-index rendering support
authorIan Romanick <ian.d.romanick@intel.com>
Thu, 25 Feb 2010 02:15:40 +0000 (18:15 -0800)
committerIan Romanick <ian.d.romanick@intel.com>
Wed, 3 Mar 2010 20:37:04 +0000 (12:37 -0800)
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
src/mesa/swrast_setup/ss_context.c
src/mesa/swrast_setup/ss_triangle.c
src/mesa/swrast_setup/ss_tritmp.h

index 23d3cb38070499a10bdf6570ff23214ef52ff81a..bc1ec5899242c44873083d8cf6dddc6103cfc5f8 100644 (file)
@@ -294,18 +294,12 @@ _swsetup_Translate( GLcontext *ctx, const void *vertex, SWvertex *dest )
       _tnl_get_attr( ctx, vertex, _TNL_ATTRIB_GENERIC0 + i,
                      dest->attrib[FRAG_ATTRIB_VAR0 + i] );
 
-   if (ctx->Visual.rgbMode) {
-      _tnl_get_attr( ctx, vertex, _TNL_ATTRIB_COLOR0,
-                     dest->attrib[FRAG_ATTRIB_COL0] );
-      UNCLAMPED_FLOAT_TO_RGBA_CHAN( dest->color, tmp );
+   _tnl_get_attr( ctx, vertex, _TNL_ATTRIB_COLOR0,
+                  dest->attrib[FRAG_ATTRIB_COL0] );
+   UNCLAMPED_FLOAT_TO_RGBA_CHAN( dest->color, tmp );
 
-      _tnl_get_attr( ctx, vertex, _TNL_ATTRIB_COLOR1,
-                     dest->attrib[FRAG_ATTRIB_COL1]);
-   }
-   else {
-      _tnl_get_attr( ctx, vertex, _TNL_ATTRIB_COLOR_INDEX, tmp );
-      dest->attrib[FRAG_ATTRIB_CI][0] = tmp[0];
-   }
+   _tnl_get_attr( ctx, vertex, _TNL_ATTRIB_COLOR1,
+                  dest->attrib[FRAG_ATTRIB_COL1]);
 
    _tnl_get_attr( ctx, vertex, _TNL_ATTRIB_FOG, tmp );
    dest->attrib[FRAG_ATTRIB_FOGC][0] = tmp[0];
index e15b1348d805b22330c9f8d4b1b1320eda203f96..bad0d819460168d56fecb9421ee321aaafe73464 100644 (file)
 #include "ss_triangle.h"
 #include "ss_context.h"
 
-#define SS_RGBA_BIT         0x1
-#define SS_OFFSET_BIT      0x2
-#define SS_TWOSIDE_BIT     0x4
-#define SS_UNFILLED_BIT            0x8
-#define SS_MAX_TRIFUNC      0x10
+#define SS_OFFSET_BIT      0x1
+#define SS_TWOSIDE_BIT     0x2
+#define SS_UNFILLED_BIT            0x4
+#define SS_MAX_TRIFUNC      0x8
 
 static tnl_triangle_func tri_tab[SS_MAX_TRIFUNC];
 static tnl_quad_func     quad_tab[SS_MAX_TRIFUNC];
@@ -134,23 +133,18 @@ static void _swsetup_render_tri(GLcontext *ctx,
    if (ctx->Light.ShadeModel == GL_FLAT) {
       GLchan c[2][4];
       GLfloat s[2][4];
-      GLfloat i[2];
 
       /* save colors/indexes for v0, v1 vertices */
       COPY_CHAN4(c[0], v0->color);
       COPY_CHAN4(c[1], v1->color);
       COPY_4V(s[0], v0->attrib[FRAG_ATTRIB_COL1]);
       COPY_4V(s[1], v1->attrib[FRAG_ATTRIB_COL1]);
-      i[0] = v0->attrib[FRAG_ATTRIB_CI][0];
-      i[1] = v1->attrib[FRAG_ATTRIB_CI][0];
 
       /* copy v2 color/indexes to v0, v1 indexes */
       COPY_CHAN4(v0->color, v2->color);
       COPY_CHAN4(v1->color, v2->color);
       COPY_4V(v0->attrib[FRAG_ATTRIB_COL1], v2->attrib[FRAG_ATTRIB_COL1]);
       COPY_4V(v1->attrib[FRAG_ATTRIB_COL1], v2->attrib[FRAG_ATTRIB_COL1]);
-      v0->attrib[FRAG_ATTRIB_CI][0] = v2->attrib[FRAG_ATTRIB_CI][0];
-      v1->attrib[FRAG_ATTRIB_CI][0] = v2->attrib[FRAG_ATTRIB_CI][0];
 
       render(ctx, ef, e0, e1, e2, v0, v1, v2);
 
@@ -158,8 +152,6 @@ static void _swsetup_render_tri(GLcontext *ctx,
       COPY_CHAN4(v1->color, c[1]);
       COPY_4V(v0->attrib[FRAG_ATTRIB_COL1], s[0]);
       COPY_4V(v1->attrib[FRAG_ATTRIB_COL1], s[1]);
-      v0->attrib[FRAG_ATTRIB_CI][0] = i[0];
-      v1->attrib[FRAG_ATTRIB_CI][0] = i[1];
    }
    else {
       render(ctx, ef, e0, e1, e2, v0, v1, v2);
@@ -171,66 +163,34 @@ static void _swsetup_render_tri(GLcontext *ctx,
 #define SS_IND(a,b) (a = b)
 
 #define IND (0)
-#define TAG(x) x
-#include "ss_tritmp.h"
-
-#define IND (SS_OFFSET_BIT)
-#define TAG(x) x##_offset
-#include "ss_tritmp.h"
-
-#define IND (SS_TWOSIDE_BIT)
-#define TAG(x) x##_twoside
-#include "ss_tritmp.h"
-
-#define IND (SS_OFFSET_BIT|SS_TWOSIDE_BIT)
-#define TAG(x) x##_offset_twoside
-#include "ss_tritmp.h"
-
-#define IND (SS_UNFILLED_BIT)
-#define TAG(x) x##_unfilled
-#include "ss_tritmp.h"
-
-#define IND (SS_OFFSET_BIT|SS_UNFILLED_BIT)
-#define TAG(x) x##_offset_unfilled
-#include "ss_tritmp.h"
-
-#define IND (SS_TWOSIDE_BIT|SS_UNFILLED_BIT)
-#define TAG(x) x##_twoside_unfilled
-#include "ss_tritmp.h"
-
-#define IND (SS_OFFSET_BIT|SS_TWOSIDE_BIT|SS_UNFILLED_BIT)
-#define TAG(x) x##_offset_twoside_unfilled
-#include "ss_tritmp.h"
-
-#define IND (0|SS_RGBA_BIT)
 #define TAG(x) x##_rgba
 #include "ss_tritmp.h"
 
-#define IND (SS_OFFSET_BIT|SS_RGBA_BIT)
+#define IND (SS_OFFSET_BIT)
 #define TAG(x) x##_offset_rgba
 #include "ss_tritmp.h"
 
-#define IND (SS_TWOSIDE_BIT|SS_RGBA_BIT)
+#define IND (SS_TWOSIDE_BIT)
 #define TAG(x) x##_twoside_rgba
 #include "ss_tritmp.h"
 
-#define IND (SS_OFFSET_BIT|SS_TWOSIDE_BIT|SS_RGBA_BIT)
+#define IND (SS_OFFSET_BIT|SS_TWOSIDE_BIT)
 #define TAG(x) x##_offset_twoside_rgba
 #include "ss_tritmp.h"
 
-#define IND (SS_UNFILLED_BIT|SS_RGBA_BIT)
+#define IND (SS_UNFILLED_BIT)
 #define TAG(x) x##_unfilled_rgba
 #include "ss_tritmp.h"
 
-#define IND (SS_OFFSET_BIT|SS_UNFILLED_BIT|SS_RGBA_BIT)
+#define IND (SS_OFFSET_BIT|SS_UNFILLED_BIT)
 #define TAG(x) x##_offset_unfilled_rgba
 #include "ss_tritmp.h"
 
-#define IND (SS_TWOSIDE_BIT|SS_UNFILLED_BIT|SS_RGBA_BIT)
+#define IND (SS_TWOSIDE_BIT|SS_UNFILLED_BIT)
 #define TAG(x) x##_twoside_unfilled_rgba
 #include "ss_tritmp.h"
 
-#define IND (SS_OFFSET_BIT|SS_TWOSIDE_BIT|SS_UNFILLED_BIT|SS_RGBA_BIT)
+#define IND (SS_OFFSET_BIT|SS_TWOSIDE_BIT|SS_UNFILLED_BIT)
 #define TAG(x) x##_offset_twoside_unfilled_rgba
 #include "ss_tritmp.h"
 
@@ -239,15 +199,6 @@ void _swsetup_trifuncs_init( GLcontext *ctx )
 {
    (void) ctx;
 
-   init();
-   init_offset();
-   init_twoside();
-   init_offset_twoside();
-   init_unfilled();
-   init_offset_unfilled();
-   init_twoside_unfilled();
-   init_offset_twoside_unfilled();
-
    init_rgba();
    init_offset_rgba();
    init_twoside_rgba();
@@ -307,9 +258,6 @@ void _swsetup_choose_trifuncs( GLcontext *ctx )
        (ctx->Stencil.Enabled && ctx->Stencil._TestTwoSide))
       ind |= SS_UNFILLED_BIT;
 
-   if (ctx->Visual.rgbMode)
-      ind |= SS_RGBA_BIT;
-
    tnl->Driver.Render.Triangle = tri_tab[ind];
    tnl->Driver.Render.Quad = quad_tab[ind];
    tnl->Driver.Render.Line = swsetup_line;
index b9b78e16b01a6bd503dcbe5bc82b2d2c3fe0a55f..8e9fa1bd559c794a8e9c7d0d8ce596fa684b8346 100644 (file)
@@ -43,7 +43,6 @@ static void TAG(triangle)(GLcontext *ctx, GLuint e0, GLuint e1, GLuint e2 )
    GLchan saved_color[3][4] = { { 0 } };
    GLfloat saved_col0[3][4] = { { 0 } };
    GLfloat saved_spec[3][4] = { { 0 } };
-   GLfloat saved_index[3] = { 0 };
 
    v[0] = &verts[e0];
    v[1] = &verts[e1];
@@ -66,75 +65,64 @@ static void TAG(triangle)(GLcontext *ctx, GLuint e0, GLuint e1, GLuint e2 )
 
         if (facing == 1) {
            if (IND & SS_TWOSIDE_BIT) {
-              if (IND & SS_RGBA_BIT) {
-                  if (VB->BackfaceColorPtr) {
-                     GLfloat (*vbcolor)[4] = VB->BackfaceColorPtr->data;
+               if (VB->BackfaceColorPtr) {
+                  GLfloat (*vbcolor)[4] = VB->BackfaceColorPtr->data;
 
+                  if (swsetup->intColors) {
+                     COPY_CHAN4(saved_color[0], v[0]->color);
+                     COPY_CHAN4(saved_color[1], v[1]->color);
+                     COPY_CHAN4(saved_color[2], v[2]->color);
+                  }
+                  else {
+                     COPY_4V(saved_col0[0], v[0]->attrib[FRAG_ATTRIB_COL0]);
+                     COPY_4V(saved_col0[1], v[1]->attrib[FRAG_ATTRIB_COL0]);
+                     COPY_4V(saved_col0[2], v[2]->attrib[FRAG_ATTRIB_COL0]);
+                  }
+
+                  if (VB->BackfaceColorPtr->stride) {
                      if (swsetup->intColors) {
-                        COPY_CHAN4(saved_color[0], v[0]->color);
-                        COPY_CHAN4(saved_color[1], v[1]->color);
-                        COPY_CHAN4(saved_color[2], v[2]->color);
+                        SS_COLOR(v[0]->color, vbcolor[e0]);
+                        SS_COLOR(v[1]->color, vbcolor[e1]);
+                        SS_COLOR(v[2]->color, vbcolor[e2]);
                      }
                      else {
-                        COPY_4V(saved_col0[0], v[0]->attrib[FRAG_ATTRIB_COL0]);
-                        COPY_4V(saved_col0[1], v[1]->attrib[FRAG_ATTRIB_COL0]);
-                        COPY_4V(saved_col0[2], v[2]->attrib[FRAG_ATTRIB_COL0]);
+                        COPY_4V(v[0]->attrib[FRAG_ATTRIB_COL0], vbcolor[e0]);
+                        COPY_4V(v[1]->attrib[FRAG_ATTRIB_COL0], vbcolor[e1]);
+                        COPY_4V(v[2]->attrib[FRAG_ATTRIB_COL0], vbcolor[e2]);
                      }
-
-                     if (VB->BackfaceColorPtr->stride) {
-                        if (swsetup->intColors) {
-                           SS_COLOR(v[0]->color, vbcolor[e0]);
-                           SS_COLOR(v[1]->color, vbcolor[e1]);
-                           SS_COLOR(v[2]->color, vbcolor[e2]);
-                        }
-                        else {
-                           COPY_4V(v[0]->attrib[FRAG_ATTRIB_COL0], vbcolor[e0]);
-                           COPY_4V(v[1]->attrib[FRAG_ATTRIB_COL0], vbcolor[e1]);
-                           COPY_4V(v[2]->attrib[FRAG_ATTRIB_COL0], vbcolor[e2]);
-                        }
+                  }
+                  else {
+                     /* flat shade */
+                     if (swsetup->intColors) {
+                        SS_COLOR(v[0]->color, vbcolor[0]);
+                        SS_COLOR(v[1]->color, vbcolor[0]);
+                        SS_COLOR(v[2]->color, vbcolor[0]);
                      }
                      else {
-                        /* flat shade */
-                        if (swsetup->intColors) {
-                           SS_COLOR(v[0]->color, vbcolor[0]);
-                           SS_COLOR(v[1]->color, vbcolor[0]);
-                           SS_COLOR(v[2]->color, vbcolor[0]);
-                        }
-                        else {
-                           COPY_4V(v[0]->attrib[FRAG_ATTRIB_COL0], vbcolor[0]);
-                           COPY_4V(v[1]->attrib[FRAG_ATTRIB_COL0], vbcolor[0]);
-                           COPY_4V(v[2]->attrib[FRAG_ATTRIB_COL0], vbcolor[0]);
-                        }
+                        COPY_4V(v[0]->attrib[FRAG_ATTRIB_COL0], vbcolor[0]);
+                        COPY_4V(v[1]->attrib[FRAG_ATTRIB_COL0], vbcolor[0]);
+                        COPY_4V(v[2]->attrib[FRAG_ATTRIB_COL0], vbcolor[0]);
                      }
                   }
+               }
 
-                 if (VB->BackfaceSecondaryColorPtr) {
-                    GLfloat (*vbspec)[4] = VB->BackfaceSecondaryColorPtr->data;
+               if (VB->BackfaceSecondaryColorPtr) {
+                 GLfloat (*vbspec)[4] = VB->BackfaceSecondaryColorPtr->data;
 
-                    COPY_4V(saved_spec[0], v[0]->attrib[FRAG_ATTRIB_COL1]);
-                    COPY_4V(saved_spec[1], v[1]->attrib[FRAG_ATTRIB_COL1]);
-                    COPY_4V(saved_spec[2], v[2]->attrib[FRAG_ATTRIB_COL1]);
+                 COPY_4V(saved_spec[0], v[0]->attrib[FRAG_ATTRIB_COL1]);
+                 COPY_4V(saved_spec[1], v[1]->attrib[FRAG_ATTRIB_COL1]);
+                 COPY_4V(saved_spec[2], v[2]->attrib[FRAG_ATTRIB_COL1]);
 
-                    if (VB->BackfaceSecondaryColorPtr->stride) {
-                       SS_SPEC(v[0]->attrib[FRAG_ATTRIB_COL1], vbspec[e0]);
-                       SS_SPEC(v[1]->attrib[FRAG_ATTRIB_COL1], vbspec[e1]);
-                       SS_SPEC(v[2]->attrib[FRAG_ATTRIB_COL1], vbspec[e2]);
-                    }
-                    else {
-                       SS_SPEC(v[0]->attrib[FRAG_ATTRIB_COL1], vbspec[0]);
-                       SS_SPEC(v[1]->attrib[FRAG_ATTRIB_COL1], vbspec[0]);
-                       SS_SPEC(v[2]->attrib[FRAG_ATTRIB_COL1], vbspec[0]);
-                    }
+                 if (VB->BackfaceSecondaryColorPtr->stride) {
+                   SS_SPEC(v[0]->attrib[FRAG_ATTRIB_COL1], vbspec[e0]);
+                   SS_SPEC(v[1]->attrib[FRAG_ATTRIB_COL1], vbspec[e1]);
+                   SS_SPEC(v[2]->attrib[FRAG_ATTRIB_COL1], vbspec[e2]);
+                 }
+                 else {
+                   SS_SPEC(v[0]->attrib[FRAG_ATTRIB_COL1], vbspec[0]);
+                   SS_SPEC(v[1]->attrib[FRAG_ATTRIB_COL1], vbspec[0]);
+                   SS_SPEC(v[2]->attrib[FRAG_ATTRIB_COL1], vbspec[0]);
                  }
-              } else {
-                 GLfloat *vbindex = (GLfloat *)VB->BackfaceIndexPtr->data;
-                 saved_index[0] = v[0]->attrib[FRAG_ATTRIB_CI][0];
-                 saved_index[1] = v[1]->attrib[FRAG_ATTRIB_CI][0];
-                 saved_index[2] = v[2]->attrib[FRAG_ATTRIB_CI][0];
-                 
-                 SS_IND(v[0]->attrib[FRAG_ATTRIB_CI][0], vbindex[e0]);
-                 SS_IND(v[1]->attrib[FRAG_ATTRIB_CI][0], vbindex[e1]);
-                 SS_IND(v[2]->attrib[FRAG_ATTRIB_CI][0], vbindex[e2]);
               }
            }
         }
@@ -199,30 +187,24 @@ static void TAG(triangle)(GLcontext *ctx, GLuint e0, GLuint e1, GLuint e2 )
 
    if (IND & SS_TWOSIDE_BIT) {
       if (facing == 1) {
-        if (IND & SS_RGBA_BIT) {
-            if (VB->BackfaceColorPtr) {
-               if (swsetup->intColors) {
-                  COPY_CHAN4(v[0]->color, saved_color[0]);
-                  COPY_CHAN4(v[1]->color, saved_color[1]);
-                  COPY_CHAN4(v[2]->color, saved_color[2]);
-               }
-               else {
-                  COPY_4V(v[0]->attrib[FRAG_ATTRIB_COL0], saved_col0[0]);
-                  COPY_4V(v[1]->attrib[FRAG_ATTRIB_COL0], saved_col0[1]);
-                  COPY_4V(v[2]->attrib[FRAG_ATTRIB_COL0], saved_col0[2]);
-               }
-            }
-
-           if (VB->BackfaceSecondaryColorPtr) {
-              COPY_4V(v[0]->attrib[FRAG_ATTRIB_COL1], saved_spec[0]);
-              COPY_4V(v[1]->attrib[FRAG_ATTRIB_COL1], saved_spec[1]);
-              COPY_4V(v[2]->attrib[FRAG_ATTRIB_COL1], saved_spec[2]);
-           }
-        } else {
-           v[0]->attrib[FRAG_ATTRIB_CI][0] = saved_index[0];
-           v[1]->attrib[FRAG_ATTRIB_CI][0] = saved_index[1];
-           v[2]->attrib[FRAG_ATTRIB_CI][0] = saved_index[2];
-        }
+       if (VB->BackfaceColorPtr) {
+         if (swsetup->intColors) {
+           COPY_CHAN4(v[0]->color, saved_color[0]);
+           COPY_CHAN4(v[1]->color, saved_color[1]);
+           COPY_CHAN4(v[2]->color, saved_color[2]);
+         }
+         else {
+           COPY_4V(v[0]->attrib[FRAG_ATTRIB_COL0], saved_col0[0]);
+           COPY_4V(v[1]->attrib[FRAG_ATTRIB_COL0], saved_col0[1]);
+           COPY_4V(v[2]->attrib[FRAG_ATTRIB_COL0], saved_col0[2]);
+         }
+       }
+
+       if (VB->BackfaceSecondaryColorPtr) {
+         COPY_4V(v[0]->attrib[FRAG_ATTRIB_COL1], saved_spec[0]);
+         COPY_4V(v[1]->attrib[FRAG_ATTRIB_COL1], saved_spec[1]);
+         COPY_4V(v[2]->attrib[FRAG_ATTRIB_COL1], saved_spec[2]);
+       }
       }
    }
 }