Use correct conversions when translating array colors.
authorKeith Whitwell <keith@tungstengraphics.com>
Wed, 20 Aug 2003 07:21:41 +0000 (07:21 +0000)
committerKeith Whitwell <keith@tungstengraphics.com>
Wed, 20 Aug 2003 07:21:41 +0000 (07:21 +0000)
src/mesa/array_cache/ac_import.c
src/mesa/math/m_trans_tmp.h
src/mesa/math/m_translate.c
src/mesa/math/m_translate.h
src/mesa/tnl/t_imm_elt.c
src/mesa/tnl/t_vb_light.c

index 5d5c24f526b6bed0ee361fabdcd4780a54c44185..ee15a6d7490d0578ce9bce109172c49e83d12eab 100644 (file)
@@ -209,13 +209,13 @@ static void import( GLcontext *ctx,
 
    switch (type) {
    case GL_FLOAT:
-      _math_trans_4f( (GLfloat (*)[4]) to->Ptr,
-                     from->Ptr,
-                     from->StrideB,
-                     from->Type,
-                     from->Size,
-                     0,
-                     ac->count - ac->start);
+      _math_trans_4fc( (GLfloat (*)[4]) to->Ptr,
+                      from->Ptr,
+                      from->StrideB,
+                      from->Type,
+                      from->Size,
+                      0,
+                      ac->count - ac->start);
 
       to->StrideB = 4 * sizeof(GLfloat);
       to->Type = GL_FLOAT;
index 2ade71e4b61ba2e799296fa933de43f2da1d6fd1..c1f0f76743645cfecfe1c11e5a8436b15337e953 100644 (file)
@@ -58,6 +58,32 @@ static void DEST_4F( GLfloat (*t)[4],
 #endif
 
 
+
+#ifdef DEST_4FC
+static void DEST_4FC( GLfloat (*t)[4],
+                     CONST void *ptr,
+                     GLuint stride,
+                     ARGS )
+{
+   const GLubyte *f = (GLubyte *) ptr + SRC_START * stride;
+   const GLubyte *first = f;
+   GLuint i;
+
+   (void) first;
+   (void) start;
+   for (i = DST_START ; i < n ; i++, NEXT_F) {
+      CHECK {
+         NEXT_F2;
+        if (SZ >= 1) t[i][0] = TRX_4FC(f, 0);
+        if (SZ >= 2) t[i][1] = TRX_4FC(f, 1);
+        if (SZ >= 3) t[i][2] = TRX_4FC(f, 2);
+        if (SZ == 4) t[i][3] = TRX_4FC(f, 3); else t[i][3] = 1.0;
+      }
+   }
+}
+#endif
+
+
 #ifdef DEST_3F
 static void DEST_3F( GLfloat (*t)[3],
                     CONST void *ptr,
@@ -218,6 +244,9 @@ static void INIT(void)
 #ifdef DEST_4F
    TAB(_4f)[SZ][SRC_IDX] = DEST_4F;
 #endif
+#ifdef DEST_4FC
+   TAB(_4fc)[SZ][SRC_IDX] = DEST_4FC;
+#endif
 
 }
 
@@ -243,6 +272,9 @@ static void INIT(void)
 #ifdef DEST_4F
 #undef DEST_4F
 #endif
+#ifdef DEST_4FC
+#undef DEST_4FC
+#endif
 #ifdef DEST_1F
 #undef DEST_1F
 #endif
index def657e1c85c7f775e421264e423ff62e9187a2f..14beabb978d8f554eac71e8149f02d3987ed1bbc 100644 (file)
@@ -95,6 +95,7 @@ static trans_3f_func  _math_trans_3f_tab[MAX_TYPES];
 static trans_4ub_func _math_trans_4ub_tab[5][MAX_TYPES];
 static trans_4us_func _math_trans_4us_tab[5][MAX_TYPES];
 static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
+static trans_4f_func  _math_trans_4fc_tab[5][MAX_TYPES];
 
 
 #define PTR_ELT(ptr, elt) (((SRC *)ptr)[elt])
@@ -118,6 +119,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SRC_IDX TYPE_IDX(GL_BYTE)
 #define TRX_3F(f,n)   BYTE_TO_FLOAT( PTR_ELT(f,n) )
 #define TRX_4F(f,n)   BYTE_TO_FLOAT( PTR_ELT(f,n) )
+#define TRX_4FC(f,n)   BYTE_TO_FLOAT( PTR_ELT(f,n) )
 #define TRX_UB(ub, f,n)  ub = BYTE_TO_UBYTE( PTR_ELT(f,n) )
 #define TRX_US(ch, f,n)  ch = BYTE_TO_USHORT( PTR_ELT(f,n) )
 #define TRX_UI(f,n)  (PTR_ELT(f,n) < 0 ? 0 : (GLuint)  PTR_ELT(f,n))
@@ -126,6 +128,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 4
 #define INIT init_trans_4_GLbyte_raw
 #define DEST_4F trans_4_GLbyte_4f_raw
+#define DEST_4FC trans_4_GLbyte_4fc_raw
 #define DEST_4UB trans_4_GLbyte_4ub_raw
 #define DEST_4US trans_4_GLbyte_4us_raw
 #include "m_trans_tmp.h"
@@ -133,6 +136,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 3
 #define INIT init_trans_3_GLbyte_raw
 #define DEST_4F trans_3_GLbyte_4f_raw
+#define DEST_4FC trans_3_GLbyte_4fc_raw
 #define DEST_4UB trans_3_GLbyte_4ub_raw
 #define DEST_4US trans_3_GLbyte_4us_raw
 #define DEST_3F trans_3_GLbyte_3f_raw
@@ -141,11 +145,13 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 2
 #define INIT init_trans_2_GLbyte_raw
 #define DEST_4F trans_2_GLbyte_4f_raw
+#define DEST_4FC trans_2_GLbyte_4fc_raw
 #include "m_trans_tmp.h"
 
 #define SZ 1
 #define INIT init_trans_1_GLbyte_raw
 #define DEST_4F trans_1_GLbyte_4f_raw
+#define DEST_4FC trans_1_GLbyte_4fc_raw
 #define DEST_1UB trans_1_GLbyte_1ub_raw
 #define DEST_1UI trans_1_GLbyte_1ui_raw
 #include "m_trans_tmp.h"
@@ -153,6 +159,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #undef SRC
 #undef TRX_3F
 #undef TRX_4F
+#undef TRX_4FC
 #undef TRX_UB
 #undef TRX_US
 #undef TRX_UI
@@ -165,6 +172,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SRC_IDX TYPE_IDX(GL_UNSIGNED_BYTE)
 #define TRX_3F(f,n)         UBYTE_TO_FLOAT(PTR_ELT(f,n))
 #define TRX_4F(f,n)         UBYTE_TO_FLOAT(PTR_ELT(f,n))
+#define TRX_4FC(f,n)        UBYTE_TO_FLOAT(PTR_ELT(f,n))
 #define TRX_UB(ub, f,n)             ub = PTR_ELT(f,n)
 #define TRX_US(us, f,n)      us = UBYTE_TO_USHORT(PTR_ELT(f,n))
 #define TRX_UI(f,n)          (GLuint)PTR_ELT(f,n)
@@ -174,6 +182,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 4
 #define INIT init_trans_4_GLubyte_raw
 #define DEST_4F trans_4_GLubyte_4f_raw
+#define DEST_4FC trans_4_GLubyte_4fc_raw
 #define DEST_4US trans_4_GLubyte_4us_raw
 #include "m_trans_tmp.h"
 
@@ -184,6 +193,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define DEST_4US trans_3_GLubyte_4us_raw
 #define DEST_3F trans_3_GLubyte_3f_raw
 #define DEST_4F trans_3_GLubyte_4f_raw
+#define DEST_4FC trans_3_GLubyte_4fc_raw
 #include "m_trans_tmp.h"
 
 
@@ -197,6 +207,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #undef SRC_IDX
 #undef TRX_3F
 #undef TRX_4F
+#undef TRX_4FC
 #undef TRX_UB
 #undef TRX_US
 #undef TRX_UI
@@ -208,6 +219,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SRC_IDX TYPE_IDX(GL_SHORT)
 #define TRX_3F(f,n)   SHORT_TO_FLOAT( PTR_ELT(f,n) )
 #define TRX_4F(f,n)   (GLfloat)( PTR_ELT(f,n) )
+#define TRX_4FC(f,n)   (GLfloat)( PTR_ELT(f,n) )
 #define TRX_UB(ub, f,n)  ub = SHORT_TO_UBYTE(PTR_ELT(f,n))
 #define TRX_US(us, f,n)  us = SHORT_TO_USHORT(PTR_ELT(f,n))
 #define TRX_UI(f,n)  (PTR_ELT(f,n) < 0 ? 0 : (GLuint)  PTR_ELT(f,n))
@@ -216,6 +228,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ  4
 #define INIT init_trans_4_GLshort_raw
 #define DEST_4F trans_4_GLshort_4f_raw
+#define DEST_4FC trans_4_GLshort_4fc_raw
 #define DEST_4UB trans_4_GLshort_4ub_raw
 #define DEST_4US trans_4_GLshort_4us_raw
 #include "m_trans_tmp.h"
@@ -223,6 +236,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 3
 #define INIT init_trans_3_GLshort_raw
 #define DEST_4F trans_3_GLshort_4f_raw
+#define DEST_4FC trans_3_GLshort_4fc_raw
 #define DEST_4UB trans_3_GLshort_4ub_raw
 #define DEST_4US trans_3_GLshort_4us_raw
 #define DEST_3F trans_3_GLshort_3f_raw
@@ -231,11 +245,13 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 2
 #define INIT init_trans_2_GLshort_raw
 #define DEST_4F trans_2_GLshort_4f_raw
+#define DEST_4FC trans_2_GLshort_4fc_raw
 #include "m_trans_tmp.h"
 
 #define SZ 1
 #define INIT init_trans_1_GLshort_raw
 #define DEST_4F trans_1_GLshort_4f_raw
+#define DEST_4FC trans_1_GLshort_4fc_raw
 #define DEST_1UB trans_1_GLshort_1ub_raw
 #define DEST_1UI trans_1_GLshort_1ui_raw
 #include "m_trans_tmp.h"
@@ -245,6 +261,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #undef SRC_IDX
 #undef TRX_3F
 #undef TRX_4F
+#undef TRX_4FC
 #undef TRX_UB
 #undef TRX_US
 #undef TRX_UI
@@ -256,6 +273,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SRC_IDX TYPE_IDX(GL_UNSIGNED_SHORT)
 #define TRX_3F(f,n)   USHORT_TO_FLOAT( PTR_ELT(f,n) )
 #define TRX_4F(f,n)   (GLfloat)( PTR_ELT(f,n) )
+#define TRX_4FC(f,n)   (GLfloat)( PTR_ELT(f,n) )
 #define TRX_UB(ub,f,n)  ub = (GLubyte) (PTR_ELT(f,n) >> 8)
 #define TRX_US(us,f,n)  us = (GLushort) (PTR_ELT(f,n) >> 8)
 #define TRX_UI(f,n)  (GLuint)   PTR_ELT(f,n)
@@ -264,6 +282,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 4
 #define INIT init_trans_4_GLushort_raw
 #define DEST_4F trans_4_GLushort_4f_raw
+#define DEST_4FC trans_4_GLushort_4fc_raw
 #define DEST_4UB trans_4_GLushort_4ub_raw
 #define DEST_4US trans_4_GLushort_4us_raw
 #include "m_trans_tmp.h"
@@ -271,6 +290,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 3
 #define INIT init_trans_3_GLushort_raw
 #define DEST_4F trans_3_GLushort_4f_raw
+#define DEST_4FC trans_3_GLushort_4fc_raw
 #define DEST_4UB trans_3_GLushort_4ub_raw
 #define DEST_4US trans_3_GLushort_4us_raw
 #define DEST_3F trans_3_GLushort_3f_raw
@@ -279,11 +299,13 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 2
 #define INIT init_trans_2_GLushort_raw
 #define DEST_4F trans_2_GLushort_4f_raw
+#define DEST_4FC trans_2_GLushort_4fc_raw
 #include "m_trans_tmp.h"
 
 #define SZ 1
 #define INIT init_trans_1_GLushort_raw
 #define DEST_4F trans_1_GLushort_4f_raw
+#define DEST_4FC trans_1_GLushort_4fc_raw
 #define DEST_1UB trans_1_GLushort_1ub_raw
 #define DEST_1UI trans_1_GLushort_1ui_raw
 #include "m_trans_tmp.h"
@@ -292,6 +314,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #undef SRC_IDX
 #undef TRX_3F
 #undef TRX_4F
+#undef TRX_4FC
 #undef TRX_UB
 #undef TRX_US
 #undef TRX_UI
@@ -303,6 +326,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SRC_IDX TYPE_IDX(GL_INT)
 #define TRX_3F(f,n)   INT_TO_FLOAT( PTR_ELT(f,n) )
 #define TRX_4F(f,n)   (GLfloat)( PTR_ELT(f,n) )
+#define TRX_4FC(f,n)   (GLfloat)( PTR_ELT(f,n) )
 #define TRX_UB(ub, f,n)  ub = INT_TO_UBYTE(PTR_ELT(f,n))
 #define TRX_US(us, f,n)  us = INT_TO_USHORT(PTR_ELT(f,n))
 #define TRX_UI(f,n)  (PTR_ELT(f,n) < 0 ? 0 : (GLuint)  PTR_ELT(f,n))
@@ -311,6 +335,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 4
 #define INIT init_trans_4_GLint_raw
 #define DEST_4F trans_4_GLint_4f_raw
+#define DEST_4FC trans_4_GLint_4fc_raw
 #define DEST_4UB trans_4_GLint_4ub_raw
 #define DEST_4US trans_4_GLint_4us_raw
 #include "m_trans_tmp.h"
@@ -318,6 +343,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 3
 #define INIT init_trans_3_GLint_raw
 #define DEST_4F trans_3_GLint_4f_raw
+#define DEST_4FC trans_3_GLint_4fc_raw
 #define DEST_4UB trans_3_GLint_4ub_raw
 #define DEST_4US trans_3_GLint_4us_raw
 #define DEST_3F trans_3_GLint_3f_raw
@@ -326,11 +352,13 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 2
 #define INIT init_trans_2_GLint_raw
 #define DEST_4F trans_2_GLint_4f_raw
+#define DEST_4FC trans_2_GLint_4fc_raw
 #include "m_trans_tmp.h"
 
 #define SZ 1
 #define INIT init_trans_1_GLint_raw
 #define DEST_4F trans_1_GLint_4f_raw
+#define DEST_4FC trans_1_GLint_4fc_raw
 #define DEST_1UB trans_1_GLint_1ub_raw
 #define DEST_1UI trans_1_GLint_1ui_raw
 #include "m_trans_tmp.h"
@@ -340,6 +368,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #undef SRC_IDX
 #undef TRX_3F
 #undef TRX_4F
+#undef TRX_4FC
 #undef TRX_UB
 #undef TRX_US
 #undef TRX_UI
@@ -351,6 +380,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SRC_IDX TYPE_IDX(GL_UNSIGNED_INT)
 #define TRX_3F(f,n)   INT_TO_FLOAT( PTR_ELT(f,n) )
 #define TRX_4F(f,n)   (GLfloat)( PTR_ELT(f,n) )
+#define TRX_4FC(f,n)   (GLfloat)( PTR_ELT(f,n) )
 #define TRX_UB(ub, f,n)  ub = (GLubyte) (PTR_ELT(f,n) >> 24)
 #define TRX_US(us, f,n)  us = (GLshort) (PTR_ELT(f,n) >> 16)
 #define TRX_UI(f,n)            PTR_ELT(f,n)
@@ -359,6 +389,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 4
 #define INIT init_trans_4_GLuint_raw
 #define DEST_4F trans_4_GLuint_4f_raw
+#define DEST_4FC trans_4_GLuint_4fc_raw
 #define DEST_4UB trans_4_GLuint_4ub_raw
 #define DEST_4US trans_4_GLuint_4us_raw
 #include "m_trans_tmp.h"
@@ -366,6 +397,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 3
 #define INIT init_trans_3_GLuint_raw
 #define DEST_4F trans_3_GLuint_4f_raw
+#define DEST_4FC trans_3_GLuint_4fc_raw
 #define DEST_4UB trans_3_GLuint_4ub_raw
 #define DEST_4US trans_3_GLuint_4us_raw
 #define DEST_3F trans_3_GLuint_3f_raw
@@ -374,11 +406,13 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 2
 #define INIT init_trans_2_GLuint_raw
 #define DEST_4F trans_2_GLuint_4f_raw
+#define DEST_4FC trans_2_GLuint_4fc_raw
 #include "m_trans_tmp.h"
 
 #define SZ 1
 #define INIT init_trans_1_GLuint_raw
 #define DEST_4F trans_1_GLuint_4f_raw
+#define DEST_4FC trans_1_GLuint_4fc_raw
 #define DEST_1UB trans_1_GLuint_1ub_raw
 #define DEST_1UI trans_1_GLuint_1ui_raw
 #include "m_trans_tmp.h"
@@ -387,6 +421,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #undef SRC_IDX
 #undef TRX_3F
 #undef TRX_4F
+#undef TRX_4FC
 #undef TRX_UB
 #undef TRX_US
 #undef TRX_UI
@@ -398,6 +433,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SRC_IDX TYPE_IDX(GL_DOUBLE)
 #define TRX_3F(f,n)   (GLfloat) PTR_ELT(f,n)
 #define TRX_4F(f,n)   (GLfloat) PTR_ELT(f,n)
+#define TRX_4FC(f,n)   (GLfloat) PTR_ELT(f,n)
 #define TRX_UB(ub,f,n) UNCLAMPED_FLOAT_TO_UBYTE(ub, PTR_ELT(f,n))
 #define TRX_US(us,f,n) UNCLAMPED_FLOAT_TO_USHORT(us, PTR_ELT(f,n))
 #define TRX_UI(f,n)  (GLuint) (GLint) PTR_ELT(f,n)
@@ -407,6 +443,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 4
 #define INIT init_trans_4_GLdouble_raw
 #define DEST_4F trans_4_GLdouble_4f_raw
+#define DEST_4FC trans_4_GLdouble_4fc_raw
 #define DEST_4UB trans_4_GLdouble_4ub_raw
 #define DEST_4US trans_4_GLdouble_4us_raw
 #include "m_trans_tmp.h"
@@ -414,6 +451,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 3
 #define INIT init_trans_3_GLdouble_raw
 #define DEST_4F trans_3_GLdouble_4f_raw
+#define DEST_4FC trans_3_GLdouble_4fc_raw
 #define DEST_4UB trans_3_GLdouble_4ub_raw
 #define DEST_4US trans_3_GLdouble_4us_raw
 #define DEST_3F trans_3_GLdouble_3f_raw
@@ -422,11 +460,13 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 2
 #define INIT init_trans_2_GLdouble_raw
 #define DEST_4F trans_2_GLdouble_4f_raw
+#define DEST_4FC trans_2_GLdouble_4fc_raw
 #include "m_trans_tmp.h"
 
 #define SZ 1
 #define INIT init_trans_1_GLdouble_raw
 #define DEST_4F trans_1_GLdouble_4f_raw
+#define DEST_4FC trans_1_GLdouble_4fc_raw
 #define DEST_1UB trans_1_GLdouble_1ub_raw
 #define DEST_1UI trans_1_GLdouble_1ui_raw
 #define DEST_1F trans_1_GLdouble_1f_raw
@@ -444,11 +484,13 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define DEST_4UB trans_4_GLfloat_4ub_raw
 #define DEST_4US trans_4_GLfloat_4us_raw
 #define DEST_4F  trans_4_GLfloat_4f_raw
+#define DEST_4FC  trans_4_GLfloat_4fc_raw
 #include "m_trans_tmp.h"
 
 #define SZ 3
 #define INIT init_trans_3_GLfloat_raw
 #define DEST_4F  trans_3_GLfloat_4f_raw
+#define DEST_4FC  trans_3_GLfloat_4fc_raw
 #define DEST_4UB trans_3_GLfloat_4ub_raw
 #define DEST_4US trans_3_GLfloat_4us_raw
 #define DEST_3F trans_3_GLfloat_3f_raw
@@ -457,11 +499,13 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #define SZ 2
 #define INIT init_trans_2_GLfloat_raw
 #define DEST_4F trans_2_GLfloat_4f_raw
+#define DEST_4FC trans_2_GLfloat_4fc_raw
 #include "m_trans_tmp.h"
 
 #define SZ 1
 #define INIT init_trans_1_GLfloat_raw
 #define DEST_4F  trans_1_GLfloat_4f_raw
+#define DEST_4FC  trans_1_GLfloat_4fc_raw
 #define DEST_1UB trans_1_GLfloat_1ub_raw
 #define DEST_1UI trans_1_GLfloat_1ui_raw
 #define DEST_1F trans_1_GLfloat_1f_raw
@@ -472,6 +516,7 @@ static trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
 #undef SRC_IDX
 #undef TRX_3F
 #undef TRX_4F
+#undef TRX_4FC
 #undef TRX_UB
 #undef TRX_US
 #undef TRX_UI
@@ -510,6 +555,7 @@ static void init_translate_raw(void)
    MEMSET( TAB(_4ub), 0, sizeof(TAB(_4ub)) );
    MEMSET( TAB(_4us), 0, sizeof(TAB(_4us)) );
    MEMSET( TAB(_4f),  0, sizeof(TAB(_4f)) );
+   MEMSET( TAB(_4fc),  0, sizeof(TAB(_4fc)) );
 
    init_trans_4_GLbyte_raw();
    init_trans_3_GLbyte_raw();
@@ -624,7 +670,7 @@ void _math_trans_4chan( GLchan (*to)[4],
 #elif CHAN_TYPE == GL_UNSIGNED_SHORT
    _math_trans_4us( to, ptr, stride, type, size, start, n );
 #elif CHAN_TYPE == GL_FLOAT
-   _math_trans_4f( to, ptr, stride, type, size, start, n );
+   _math_trans_4fc( to, ptr, stride, type, size, start, n );
 #endif
 }
 
@@ -650,6 +696,17 @@ void _math_trans_4f(GLfloat (*to)[4],
    _math_trans_4f_tab[size][TYPE_IDX(type)]( to, ptr, stride, start, n );
 }
 
+void _math_trans_4fc(GLfloat (*to)[4],
+                   CONST void *ptr,
+                   GLuint stride,
+                   GLenum type,
+                   GLuint size,
+                   GLuint start,
+                   GLuint n )
+{
+   _math_trans_4fc_tab[size][TYPE_IDX(type)]( to, ptr, stride, start, n );
+}
+
 void _math_trans_3f(GLfloat (*to)[3],
                    CONST void *ptr,
                    GLuint stride,
index c473f83d6fbc2dbfd112e85e9e6cb082d28f209d..527c7063d63bd75a8a6566e2e0f6bdb8ec91eb10 100644 (file)
@@ -85,6 +85,14 @@ extern void _math_trans_4f(GLfloat (*to)[4],
                           GLuint start,
                           GLuint n );
 
+extern void _math_trans_4fc(GLfloat (*to)[4],
+                           CONST void *ptr,
+                           GLuint stride,
+                           GLenum type,
+                           GLuint size,
+                           GLuint start,
+                           GLuint n );
+
 extern void _math_trans_3f(GLfloat (*to)[3],
                           CONST void *ptr,
                           GLuint stride,
index f9a3069a17139b1fba2e65294ccc8cfaadaaf368..44c2a32c8588a401839d43ba1bb4d74751048a1c 100644 (file)
 
 
 
-typedef void (*trans_elt_1f_func)(GLfloat *to,
-                                 CONST void *ptr,
-                                 GLuint stride,
-                                 const GLuint *flags,
-                                 const GLuint *elts,
-                                 GLuint match,
-                                 GLuint start,
-                                 GLuint n );
-
 typedef void (*trans_elt_1ui_func)(GLuint *to,
                                   CONST void *ptr,
                                   GLuint stride,
@@ -65,24 +56,6 @@ typedef void (*trans_elt_1ub_func)(GLubyte *to,
                                   GLuint start,
                                   GLuint n );
 
-typedef void (*trans_elt_4ub_func)(GLubyte (*to)[4],
-                                   CONST void *ptr,
-                                   GLuint stride,
-                                   const GLuint *flags,
-                                   const GLuint *elts,
-                                   GLuint match,
-                                   GLuint start,
-                                   GLuint n );
-
-typedef void (*trans_elt_4us_func)(GLushort (*to)[4],
-                                   CONST void *ptr,
-                                   GLuint stride,
-                                   const GLuint *flags,
-                                   const GLuint *elts,
-                                   GLuint match,
-                                   GLuint start,
-                                   GLuint n );
-
 typedef void (*trans_elt_4f_func)(GLfloat (*to)[4],
                                  CONST void *ptr,
                                  GLuint stride,
@@ -92,33 +65,18 @@ typedef void (*trans_elt_4f_func)(GLfloat (*to)[4],
                                  GLuint start,
                                  GLuint n );
 
-typedef void (*trans_elt_3f_func)(GLfloat (*to)[3],
-                                 CONST void *ptr,
-                                 GLuint stride,
-                                 const GLuint *flags,
-                                 const GLuint *elts,
-                                 GLuint match,
-                                 GLuint start,
-                                 GLuint n );
-
-
 
 
-static trans_elt_1f_func _tnl_trans_elt_1f_tab[MAX_TYPES];
 static trans_elt_1ui_func _tnl_trans_elt_1ui_tab[MAX_TYPES];
 static trans_elt_1ub_func _tnl_trans_elt_1ub_tab[MAX_TYPES];
-static trans_elt_3f_func  _tnl_trans_elt_3f_tab[MAX_TYPES];
-static trans_elt_4ub_func _tnl_trans_elt_4ub_tab[5][MAX_TYPES];
-static trans_elt_4us_func _tnl_trans_elt_4us_tab[5][MAX_TYPES];
 static trans_elt_4f_func  _tnl_trans_elt_4f_tab[5][MAX_TYPES];
+static trans_elt_4f_func  _tnl_trans_elt_4fc_tab[5][MAX_TYPES];
 
 
 #define PTR_ELT(ptr, elt) (((SRC *)ptr)[elt])
 
 
 
-
-
 /* Code specific to array element implementation.  There is a small
  * subtlety in the bits CHECK() tests, and the way bits are set in
  * glArrayElement which ensures that if, eg, in the case that the
@@ -145,45 +103,42 @@ static trans_elt_4f_func  _tnl_trans_elt_4f_tab[5][MAX_TYPES];
  */
 #define SRC GLbyte
 #define SRC_IDX TYPE_IDX(GL_BYTE)
-#define TRX_3F(f,n)   BYTE_TO_FLOAT( PTR_ELT(f,n) )
 #define TRX_4F(f,n)   BYTE_TO_FLOAT( PTR_ELT(f,n) )
+#define TRX_4FC(f,n)   BYTE_TO_FLOAT( PTR_ELT(f,n) )
 #define TRX_UB(ub, f,n)  ub = BYTE_TO_UBYTE( PTR_ELT(f,n) )
-#define TRX_US(us, f,n)  us = BYTE_TO_USHORT( PTR_ELT(f,n) )
 #define TRX_UI(f,n)  (PTR_ELT(f,n) < 0 ? 0 : (GLuint)  PTR_ELT(f,n))
 
 
 #define SZ 4
 #define INIT init_trans_4_GLbyte_elt
 #define DEST_4F trans_4_GLbyte_4f_elt
-#define DEST_4UB trans_4_GLbyte_4ub_elt
-#define DEST_4US trans_4_GLbyte_4us_elt
+#define DEST_4FC trans_4_GLbyte_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 3
 #define INIT init_trans_3_GLbyte_elt
 #define DEST_4F trans_3_GLbyte_4f_elt
-#define DEST_4UB trans_3_GLbyte_4ub_elt
-#define DEST_4US trans_3_GLbyte_4us_elt
-#define DEST_3F trans_3_GLbyte_3f_elt
+#define DEST_4FC trans_3_GLbyte_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 2
 #define INIT init_trans_2_GLbyte_elt
 #define DEST_4F trans_2_GLbyte_4f_elt
+#define DEST_4FC trans_2_GLbyte_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 1
 #define INIT init_trans_1_GLbyte_elt
 #define DEST_4F trans_1_GLbyte_4f_elt
+#define DEST_4FC trans_1_GLbyte_4fc_elt
 #define DEST_1UB trans_1_GLbyte_1ub_elt
 #define DEST_1UI trans_1_GLbyte_1ui_elt
 #include "math/m_trans_tmp.h"
 
 #undef SRC
-#undef TRX_3F
 #undef TRX_4F
+#undef TRX_4FC
 #undef TRX_UB
-#undef TRX_US
 #undef TRX_UI
 #undef SRC_IDX
 
@@ -191,10 +146,9 @@ static trans_elt_4f_func  _tnl_trans_elt_4f_tab[5][MAX_TYPES];
  */
 #define SRC GLubyte
 #define SRC_IDX TYPE_IDX(GL_UNSIGNED_BYTE)
-#define TRX_3F(f,n)         UBYTE_TO_FLOAT( PTR_ELT(f,n) )
 #define TRX_4F(f,n)         UBYTE_TO_FLOAT( PTR_ELT(f,n) )
+#define TRX_4FC(f,n)        UBYTE_TO_FLOAT( PTR_ELT(f,n) )
 #define TRX_UB(ub, f,n)             ub = PTR_ELT(f,n)
-#define TRX_US(us, f,n)             us = PTR_ELT(f,n)
 #define TRX_UI(f,n)          (GLuint)PTR_ELT(f,n)
 
 /* 4ub->4ub handled in special case below.
@@ -202,30 +156,29 @@ static trans_elt_4f_func  _tnl_trans_elt_4f_tab[5][MAX_TYPES];
 #define SZ 4
 #define INIT init_trans_4_GLubyte_elt
 #define DEST_4F trans_4_GLubyte_4f_elt
-#define DEST_4US trans_4_GLubyte_4us_elt
+#define DEST_4FC trans_4_GLubyte_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 3
 #define INIT init_trans_3_GLubyte_elt
 #define DEST_4F trans_3_GLubyte_4f_elt
-#define DEST_3F trans_3_GLubyte_3f_elt
-#define DEST_4UB trans_3_GLubyte_4ub_elt
-#define DEST_4US trans_3_GLubyte_4us_elt
+#define DEST_4FC trans_3_GLubyte_4fc_elt
 #include "math/m_trans_tmp.h"
 
 
 #define SZ 1
 #define INIT init_trans_1_GLubyte_elt
-#define DEST_1UI trans_1_GLubyte_1ui_elt
+#define DEST_4F  trans_1_GLubyte_4f_elt
+#define DEST_4FC  trans_1_GLubyte_4fc_elt
 #define DEST_1UB trans_1_GLubyte_1ub_elt
+#define DEST_1UI trans_1_GLubyte_1ui_elt
 #include "math/m_trans_tmp.h"
 
 #undef SRC
 #undef SRC_IDX
-#undef TRX_3F
 #undef TRX_4F
+#undef TRX_4FC
 #undef TRX_UB
-#undef TRX_US
 #undef TRX_UI
 
 
@@ -233,36 +186,34 @@ static trans_elt_4f_func  _tnl_trans_elt_4f_tab[5][MAX_TYPES];
  */
 #define SRC GLshort
 #define SRC_IDX TYPE_IDX(GL_SHORT)
-#define TRX_3F(f,n)   SHORT_TO_FLOAT( PTR_ELT(f,n) )
 #define TRX_4F(f,n)   (GLfloat)( PTR_ELT(f,n) )
+#define TRX_4FC(f,n)   SHORT_TO_FLOAT( PTR_ELT(f,n) )
 #define TRX_UB(ub, f,n)  ub = SHORT_TO_UBYTE(PTR_ELT(f,n))
-#define TRX_US(us, f,n)  us = SHORT_TO_USHORT(PTR_ELT(f,n))
 #define TRX_UI(f,n)  (PTR_ELT(f,n) < 0 ? 0 : (GLuint)  PTR_ELT(f,n))
 
 
 #define SZ  4
 #define INIT init_trans_4_GLshort_elt
 #define DEST_4F trans_4_GLshort_4f_elt
-#define DEST_4UB trans_4_GLshort_4ub_elt
-#define DEST_4US trans_4_GLshort_4us_elt
+#define DEST_4FC trans_4_GLshort_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 3
 #define INIT init_trans_3_GLshort_elt
 #define DEST_4F trans_3_GLshort_4f_elt
-#define DEST_4UB trans_3_GLshort_4ub_elt
-#define DEST_4US trans_3_GLshort_4us_elt
-#define DEST_3F trans_3_GLshort_3f_elt
+#define DEST_4FC trans_3_GLshort_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 2
 #define INIT init_trans_2_GLshort_elt
 #define DEST_4F trans_2_GLshort_4f_elt
+#define DEST_4FC trans_2_GLshort_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 1
 #define INIT init_trans_1_GLshort_elt
 #define DEST_4F trans_1_GLshort_4f_elt
+#define DEST_4FC trans_1_GLshort_4fc_elt
 #define DEST_1UB trans_1_GLshort_1ub_elt
 #define DEST_1UI trans_1_GLshort_1ui_elt
 #include "math/m_trans_tmp.h"
@@ -270,10 +221,9 @@ static trans_elt_4f_func  _tnl_trans_elt_4f_tab[5][MAX_TYPES];
 
 #undef SRC
 #undef SRC_IDX
-#undef TRX_3F
 #undef TRX_4F
+#undef TRX_4FC
 #undef TRX_UB
-#undef TRX_US
 #undef TRX_UI
 
 
@@ -281,46 +231,43 @@ static trans_elt_4f_func  _tnl_trans_elt_4f_tab[5][MAX_TYPES];
  */
 #define SRC GLushort
 #define SRC_IDX TYPE_IDX(GL_UNSIGNED_SHORT)
-#define TRX_3F(f,n)   USHORT_TO_FLOAT( PTR_ELT(f,n) )
 #define TRX_4F(f,n)   (GLfloat)( PTR_ELT(f,n) )
+#define TRX_4FC(f,n)   USHORT_TO_FLOAT( PTR_ELT(f,n) )
 #define TRX_UB(ub,f,n)  ub = (GLubyte) (PTR_ELT(f,n) >> 8)
-#define TRX_US(us,f,n)  us = PTR_ELT(f,n)
 #define TRX_UI(f,n)  (GLuint)   PTR_ELT(f,n)
 
 
 #define SZ 4
 #define INIT init_trans_4_GLushort_elt
 #define DEST_4F trans_4_GLushort_4f_elt
-#define DEST_4UB trans_4_GLushort_4ub_elt
-#define DEST_4US trans_4_GLushort_4us_elt
+#define DEST_4FC trans_4_GLushort_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 3
 #define INIT init_trans_3_GLushort_elt
 #define DEST_4F trans_3_GLushort_4f_elt
-#define DEST_4UB trans_3_GLushort_4ub_elt
-#define DEST_4US trans_3_GLushort_4us_elt
-#define DEST_3F trans_3_GLushort_3f_elt
+#define DEST_4FC trans_3_GLushort_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 2
 #define INIT init_trans_2_GLushort_elt
 #define DEST_4F trans_2_GLushort_4f_elt
+#define DEST_4FC trans_2_GLushort_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 1
 #define INIT init_trans_1_GLushort_elt
 #define DEST_4F trans_1_GLushort_4f_elt
+#define DEST_4FC trans_1_GLushort_4fc_elt
 #define DEST_1UB trans_1_GLushort_1ub_elt
 #define DEST_1UI trans_1_GLushort_1ui_elt
 #include "math/m_trans_tmp.h"
 
 #undef SRC
 #undef SRC_IDX
-#undef TRX_3F
 #undef TRX_4F
+#undef TRX_4FC
 #undef TRX_UB
-#undef TRX_US
 #undef TRX_UI
 
 
@@ -328,36 +275,34 @@ static trans_elt_4f_func  _tnl_trans_elt_4f_tab[5][MAX_TYPES];
  */
 #define SRC GLint
 #define SRC_IDX TYPE_IDX(GL_INT)
-#define TRX_3F(f,n)   INT_TO_FLOAT( PTR_ELT(f,n) )
 #define TRX_4F(f,n)   (GLfloat)( PTR_ELT(f,n) )
+#define TRX_4FC(f,n)   INT_TO_FLOAT( PTR_ELT(f,n) )
 #define TRX_UB(ub, f,n)  ub = INT_TO_UBYTE(PTR_ELT(f,n))
-#define TRX_US(us, f,n)  us = INT_TO_USHORT(PTR_ELT(f,n))
 #define TRX_UI(f,n)  (PTR_ELT(f,n) < 0 ? 0 : (GLuint)  PTR_ELT(f,n))
 
 
 #define SZ 4
 #define INIT init_trans_4_GLint_elt
 #define DEST_4F trans_4_GLint_4f_elt
-#define DEST_4UB trans_4_GLint_4ub_elt
-#define DEST_4US trans_4_GLint_4us_elt
+#define DEST_4FC trans_4_GLint_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 3
 #define INIT init_trans_3_GLint_elt
 #define DEST_4F trans_3_GLint_4f_elt
-#define DEST_4UB trans_3_GLint_4ub_elt
-#define DEST_4US trans_3_GLint_4us_elt
-#define DEST_3F trans_3_GLint_3f_elt
+#define DEST_4FC trans_3_GLint_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 2
 #define INIT init_trans_2_GLint_elt
 #define DEST_4F trans_2_GLint_4f_elt
+#define DEST_4FC trans_2_GLint_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 1
 #define INIT init_trans_1_GLint_elt
 #define DEST_4F trans_1_GLint_4f_elt
+#define DEST_4FC trans_1_GLint_4fc_elt
 #define DEST_1UB trans_1_GLint_1ub_elt
 #define DEST_1UI trans_1_GLint_1ui_elt
 #include "math/m_trans_tmp.h"
@@ -365,10 +310,9 @@ static trans_elt_4f_func  _tnl_trans_elt_4f_tab[5][MAX_TYPES];
 
 #undef SRC
 #undef SRC_IDX
-#undef TRX_3F
 #undef TRX_4F
+#undef TRX_4FC
 #undef TRX_UB
-#undef TRX_US
 #undef TRX_UI
 
 
@@ -376,46 +320,43 @@ static trans_elt_4f_func  _tnl_trans_elt_4f_tab[5][MAX_TYPES];
  */
 #define SRC GLuint
 #define SRC_IDX TYPE_IDX(GL_UNSIGNED_INT)
-#define TRX_3F(f,n)   UINT_TO_FLOAT( PTR_ELT(f,n) )
 #define TRX_4F(f,n)   (GLfloat)( PTR_ELT(f,n) )
+#define TRX_4FC(f,n)   UINT_TO_FLOAT( PTR_ELT(f,n) )
 #define TRX_UB(ub, f,n)  ub = (GLubyte) (PTR_ELT(f,n) >> 24)
-#define TRX_US(us, f,n)  us = (GLushort) (PTR_ELT(f,n) >> 16)
 #define TRX_UI(f,n)            PTR_ELT(f,n)
 
 
 #define SZ 4
 #define INIT init_trans_4_GLuint_elt
 #define DEST_4F trans_4_GLuint_4f_elt
-#define DEST_4UB trans_4_GLuint_4ub_elt
-#define DEST_4US trans_4_GLuint_4us_elt
+#define DEST_4FC trans_4_GLuint_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 3
 #define INIT init_trans_3_GLuint_elt
 #define DEST_4F trans_3_GLuint_4f_elt
-#define DEST_4UB trans_3_GLuint_4ub_elt
-#define DEST_4US trans_3_GLuint_4us_elt
-#define DEST_3F trans_3_GLuint_3f_elt
+#define DEST_4FC trans_3_GLuint_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 2
 #define INIT init_trans_2_GLuint_elt
 #define DEST_4F trans_2_GLuint_4f_elt
+#define DEST_4FC trans_2_GLuint_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 1
 #define INIT init_trans_1_GLuint_elt
 #define DEST_4F trans_1_GLuint_4f_elt
+#define DEST_4FC trans_1_GLuint_4fc_elt
 #define DEST_1UB trans_1_GLuint_1ub_elt
 #define DEST_1UI trans_1_GLuint_1ui_elt
 #include "math/m_trans_tmp.h"
 
 #undef SRC
 #undef SRC_IDX
-#undef TRX_3F
 #undef TRX_4F
+#undef TRX_4FC
 #undef TRX_UB
-#undef TRX_US
 #undef TRX_UI
 
 
@@ -423,10 +364,9 @@ static trans_elt_4f_func  _tnl_trans_elt_4f_tab[5][MAX_TYPES];
  */
 #define SRC GLdouble
 #define SRC_IDX TYPE_IDX(GL_DOUBLE)
-#define TRX_3F(f,n)    (GLfloat) PTR_ELT(f,n)
 #define TRX_4F(f,n)    (GLfloat) PTR_ELT(f,n)
+#define TRX_4FC(f,n)    (GLfloat) PTR_ELT(f,n)
 #define TRX_UB(ub,f,n) UNCLAMPED_FLOAT_TO_UBYTE(ub, PTR_ELT(f,n))
-#define TRX_US(us,f,n) UNCLAMPED_FLOAT_TO_USHORT(us, PTR_ELT(f,n))
 #define TRX_UI(f,n)    (GLuint) (GLint) PTR_ELT(f,n)
 #define TRX_1F(f,n)    (GLfloat) PTR_ELT(f,n)
 
@@ -434,117 +374,89 @@ static trans_elt_4f_func  _tnl_trans_elt_4f_tab[5][MAX_TYPES];
 #define SZ 4
 #define INIT init_trans_4_GLdouble_elt
 #define DEST_4F trans_4_GLdouble_4f_elt
-#define DEST_4UB trans_4_GLdouble_4ub_elt
-#define DEST_4US trans_4_GLdouble_4us_elt
+#define DEST_4FC trans_4_GLdouble_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 3
 #define INIT init_trans_3_GLdouble_elt
 #define DEST_4F trans_3_GLdouble_4f_elt
-#define DEST_4UB trans_3_GLdouble_4ub_elt
-#define DEST_4US trans_3_GLdouble_4us_elt
-#define DEST_3F trans_3_GLdouble_3f_elt
+#define DEST_4FC trans_3_GLdouble_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 2
 #define INIT init_trans_2_GLdouble_elt
 #define DEST_4F trans_2_GLdouble_4f_elt
+#define DEST_4FC trans_2_GLdouble_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 1
 #define INIT init_trans_1_GLdouble_elt
 #define DEST_4F trans_1_GLdouble_4f_elt
+#define DEST_4FC trans_1_GLdouble_4fc_elt
 #define DEST_1UB trans_1_GLdouble_1ub_elt
 #define DEST_1UI trans_1_GLdouble_1ui_elt
-#define DEST_1F trans_1_GLdouble_1f_elt
 #include "math/m_trans_tmp.h"
 
 #undef SRC
 #undef SRC_IDX
+#undef TRX_4F
+#undef TRX_4FC
+#undef TRX_UB
+#undef TRX_UI
 
 /* GL_FLOAT
  */
 #define SRC GLfloat
 #define SRC_IDX TYPE_IDX(GL_FLOAT)
+#define TRX_4F(f,n)    (GLfloat) PTR_ELT(f,n)
+#define TRX_4FC(f,n)    (GLfloat) PTR_ELT(f,n)
+#define TRX_UB(ub,f,n) UNCLAMPED_FLOAT_TO_UBYTE(ub, PTR_ELT(f,n))
+#define TRX_UI(f,n)    (GLuint) (GLint) PTR_ELT(f,n)
+#define TRX_1F(f,n)    (GLfloat) PTR_ELT(f,n)
+
+
 #define SZ 4
 #define INIT init_trans_4_GLfloat_elt
-#define DEST_4UB trans_4_GLfloat_4ub_elt
-#define DEST_4US trans_4_GLfloat_4us_elt
 #define DEST_4F  trans_4_GLfloat_4f_elt
+#define DEST_4FC  trans_4_GLfloat_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 3
 #define INIT init_trans_3_GLfloat_elt
 #define DEST_4F  trans_3_GLfloat_4f_elt
-#define DEST_4UB trans_3_GLfloat_4ub_elt
-#define DEST_4US trans_3_GLfloat_4us_elt
-#define DEST_3F trans_3_GLfloat_3f_elt
+#define DEST_4FC  trans_3_GLfloat_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 2
 #define INIT init_trans_2_GLfloat_elt
 #define DEST_4F trans_2_GLfloat_4f_elt
+#define DEST_4FC trans_2_GLfloat_4fc_elt
 #include "math/m_trans_tmp.h"
 
 #define SZ 1
 #define INIT init_trans_1_GLfloat_elt
-#define DEST_4F  trans_1_GLfloat_3f_elt
+#define DEST_4F  trans_1_GLfloat_4f_elt
+#define DEST_4FC  trans_1_GLfloat_4fc_elt
 #define DEST_1UB trans_1_GLfloat_1ub_elt
 #define DEST_1UI trans_1_GLfloat_1ui_elt
-#define DEST_1F trans_1_GLfloat_1f_elt
 #include "math/m_trans_tmp.h"
 
 #undef SRC
 #undef SRC_IDX
-#undef TRX_3F
 #undef TRX_4F
+#undef TRX_4FC
 #undef TRX_UB
-#undef TRX_US
 #undef TRX_UI
 
 
-static void trans_4_GLubyte_4ub(GLubyte (*t)[4],
-                                CONST void *Ptr,
-                                GLuint stride,
-                                ARGS )
-{
-   const GLubyte *f = (GLubyte *) Ptr + SRC_START * stride;
-   const GLubyte *first = f;
-   GLuint i;
-   (void) start;
-   if (((((long) f | (long) stride)) & 3L) == 0L) {
-      /* Aligned.
-       */
-      for (i = DST_START ; i < n ; i++, NEXT_F) {
-        CHECK {
-           NEXT_F2;
-           COPY_4UBV( t[i], f );
-        }
-      }
-   } else {
-      for (i = DST_START ; i < n ; i++, NEXT_F) {
-        CHECK {
-           NEXT_F2;
-           t[i][0] = f[0];
-           t[i][1] = f[1];
-           t[i][2] = f[2];
-           t[i][3] = f[3];
-        }
-      }
-   }
-}
 
 
 static void init_translate_elt(void)
 {
    MEMSET( TAB(_1ui), 0, sizeof(TAB(_1ui)) );
    MEMSET( TAB(_1ub), 0, sizeof(TAB(_1ub)) );
-   MEMSET( TAB(_3f),  0, sizeof(TAB(_3f)) );
-   MEMSET( TAB(_4ub), 0, sizeof(TAB(_4ub)) );
-   MEMSET( TAB(_4us), 0, sizeof(TAB(_4us)) );
    MEMSET( TAB(_4f),  0, sizeof(TAB(_4f)) );
-
-   TAB(_4ub)[4][TYPE_IDX(GL_UNSIGNED_BYTE)] = trans_4_GLubyte_4ub;
+   MEMSET( TAB(_4fc),  0, sizeof(TAB(_4fc)) );
 
    init_trans_4_GLbyte_elt();
    init_trans_3_GLbyte_elt();
@@ -596,27 +508,6 @@ void _tnl_imm_elt_init( void )
 }
 
 
-#if 00
-static void _tnl_trans_elt_1f(GLfloat *to,
-                      const struct gl_client_array *from,
-                      const GLuint *flags,
-                      const GLuint *elts,
-                      GLuint match,
-                      GLuint start,
-                      GLuint n )
-{
-   _tnl_trans_elt_1f_tab[TYPE_IDX(from->Type)]( to,
-                                             from->Ptr,
-                                             from->StrideB,
-                                             flags,
-                                             elts,
-                                             match,
-                                             start,
-                                             n );
-
-}
-#endif
-
 static void _tnl_trans_elt_1ui(GLuint *to,
                        const struct gl_client_array *from,
                        const GLuint *flags,
@@ -656,49 +547,6 @@ static void _tnl_trans_elt_1ub(GLubyte *to,
 
 }
 
-
-#if 0
-static void _tnl_trans_elt_4ub(GLubyte (*to)[4],
-                               const struct gl_client_array *from,
-                               const GLuint *flags,
-                               const GLuint *elts,
-                               GLuint match,
-                               GLuint start,
-                               GLuint n )
-{
-   _tnl_trans_elt_4ub_tab[from->Size][TYPE_IDX(from->Type)]( to,
-                                                             from->Ptr,
-                                                             from->StrideB,
-                                                             flags,
-                                                             elts,
-                                                             match,
-                                                             start,
-                                                             n );
-
-}
-#endif
-
-#if 0
-static void _tnl_trans_elt_4us(GLushort (*to)[4],
-                               const struct gl_client_array *from,
-                               const GLuint *flags,
-                               const GLuint *elts,
-                               GLuint match,
-                               GLuint start,
-                               GLuint n )
-{
-   _tnl_trans_elt_4us_tab[from->Size][TYPE_IDX(from->Type)]( to,
-                                                             from->Ptr,
-                                                             from->StrideB,
-                                                             flags,
-                                                             elts,
-                                                             match,
-                                                             start,
-                                                             n );
-
-}
-#endif
-
 static void _tnl_trans_elt_4f(GLfloat (*to)[4],
                               const struct gl_client_array *from,
                               const GLuint *flags,
@@ -719,17 +567,15 @@ static void _tnl_trans_elt_4f(GLfloat (*to)[4],
 }
 
 
-
-#if 0
-static void _tnl_trans_elt_3f(GLfloat (*to)[3],
-                      const struct gl_client_array *from,
-                      const GLuint *flags,
-                      const GLuint *elts,
-                      GLuint match,
-                      GLuint start,
-                      GLuint n )
+static void _tnl_trans_elt_4fc(GLfloat (*to)[4],
+                              const struct gl_client_array *from,
+                              const GLuint *flags,
+                              const GLuint *elts,
+                              GLuint match,
+                              GLuint start,
+                              GLuint n )
 {
-   _tnl_trans_elt_3f_tab[TYPE_IDX(from->Type)]( to,
+   _tnl_trans_elt_4fc_tab[from->Size][TYPE_IDX(from->Type)]( to,
                                              from->Ptr,
                                              from->StrideB,
                                              flags,
@@ -737,8 +583,9 @@ static void _tnl_trans_elt_3f(GLfloat (*to)[3],
                                              match,
                                              start,
                                              n );
+
 }
-#endif
+
 
 
 
@@ -834,17 +681,17 @@ void _tnl_translate_array_elts( GLcontext *ctx, struct immediate *IM,
    }
 
    if (translateConventional & VERT_BIT_COLOR0) {
-      _tnl_trans_elt_4f( IM->Attrib[VERT_ATTRIB_COLOR0],
-                         &ctx->Array.Color,
-                         flags, elts, (VERT_BIT_ELT|VERT_BIT_COLOR0),
-                         start, count);
+      _tnl_trans_elt_4fc( IM->Attrib[VERT_ATTRIB_COLOR0],
+                         &ctx->Array.Color,
+                         flags, elts, (VERT_BIT_ELT|VERT_BIT_COLOR0),
+                         start, count);
    }
 
    if (translateConventional & VERT_BIT_COLOR1) {
-      _tnl_trans_elt_4f( IM->Attrib[VERT_ATTRIB_COLOR1],
-                         &ctx->Array.SecondaryColor,
-                         flags, elts, (VERT_BIT_ELT|VERT_BIT_COLOR1),
-                         start, count);
+      _tnl_trans_elt_4fc( IM->Attrib[VERT_ATTRIB_COLOR1],
+                         &ctx->Array.SecondaryColor,
+                         flags, elts, (VERT_BIT_ELT|VERT_BIT_COLOR1),
+                         start, count);
    }
 
    if (translateConventional & VERT_BIT_FOG) {
index aedbad4254f74e283b1ef44c8e119112cbedd3d0..154c3d2961ab95b5b756e04567b5affda4a35142 100644 (file)
@@ -82,13 +82,13 @@ static void import_color_material( GLcontext *ctx,
    else
       to->StrideB = 4 * sizeof(GLfloat);
    
-   _math_trans_4f( (GLfloat (*)[4]) to->Ptr,
-                  from->Ptr,
-                  from->StrideB,
-                  from->Type,
-                  from->Size,
-                  0,
-                  count);
+   _math_trans_4fc( (GLfloat (*)[4]) to->Ptr,
+                   from->Ptr,
+                   from->StrideB,
+                   from->Type,
+                   from->Size,
+                   0,
+                   count);
 
    VB->ColorPtr[0] = to;
 }