vbo: remove dead code in vbo_can_merge_prims
[mesa.git] / src / mesa / vbo / vbo_exec_eval.c
index 23ad12608fcb30dcebf7b1b6cedc42abb4473b20..9754c2058ca71dc5ca74c7deb6e8644e69eb320c 100644 (file)
@@ -1,6 +1,5 @@
 /*
  * Mesa 3-D graphics library
- * Version:  6.1
  *
  * Copyright (C) 1999-2004  Brian Paul   All Rights Reserved.
  *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
  *
  * Authors:
- *    Keith Whitwell <keith@tungstengraphics.com>
+ *    Keith Whitwell <keithw@vmware.com>
  */
 
 #include "main/glheader.h"
 
 static void clear_active_eval1( struct vbo_exec_context *exec, GLuint attr ) 
 {
-   assert(attr < Elements(exec->eval.map1));
+   assert(attr < ARRAY_SIZE(exec->eval.map1));
    exec->eval.map1[attr].map = NULL;
 }
 
 static void clear_active_eval2( struct vbo_exec_context *exec, GLuint attr ) 
 {
-   assert(attr < Elements(exec->eval.map2));
+   assert(attr < ARRAY_SIZE(exec->eval.map2));
    exec->eval.map2[attr].map = NULL;
 }
 
 static void set_active_eval1( struct vbo_exec_context *exec, GLuint attr, GLuint dim, 
                              struct gl_1d_map *map )
 {
-   assert(attr < Elements(exec->eval.map1));
+   assert(attr < ARRAY_SIZE(exec->eval.map1));
    if (!exec->eval.map1[attr].map) {
       exec->eval.map1[attr].map = map;
       exec->eval.map1[attr].sz = dim;
@@ -58,7 +58,7 @@ static void set_active_eval1( struct vbo_exec_context *exec, GLuint attr, GLuint
 static void set_active_eval2( struct vbo_exec_context *exec, GLuint attr, GLuint dim, 
                              struct gl_2d_map *map )
 {
-   assert(attr < Elements(exec->eval.map2));
+   assert(attr < ARRAY_SIZE(exec->eval.map2));
    if (!exec->eval.map2[attr].map) {
       exec->eval.map2[attr].map = map;
       exec->eval.map2[attr].sz = dim;
@@ -67,7 +67,7 @@ static void set_active_eval2( struct vbo_exec_context *exec, GLuint attr, GLuint
 
 void vbo_exec_eval_update( struct vbo_exec_context *exec )
 {
-   GLcontext *ctx = exec->ctx;
+   struct gl_context *ctx = exec->ctx;
    GLuint attr;
 
    /* Vertex program maps have priority over conventional attribs */
@@ -117,24 +117,7 @@ void vbo_exec_eval_update( struct vbo_exec_context *exec )
    else if (ctx->Eval.Map2Vertex3) 
       set_active_eval2( exec, VBO_ATTRIB_POS, 3, &ctx->EvalMap.Map2Vertex3 );
 
-   /* _NEW_PROGRAM */
-   if (ctx->VertexProgram._Enabled) {
-      /* These are the 16 evaluators which GL_NV_vertex_program defines.
-       * They alias and override the conventional vertex attributs.
-       */
-      for (attr = 0; attr < 16; attr++) {
-         /* _NEW_EVAL */
-         assert(attr < Elements(ctx->Eval.Map1Attrib));
-         if (ctx->Eval.Map1Attrib[attr]) 
-            set_active_eval1( exec, attr, 4, &ctx->EvalMap.Map1Attrib[attr] );
-
-         assert(attr < Elements(ctx->Eval.Map2Attrib));
-         if (ctx->Eval.Map2Attrib[attr]) 
-            set_active_eval2( exec, attr, 4, &ctx->EvalMap.Map2Attrib[attr] );
-      }
-   }
-
-   exec->eval.recalculate_maps = 0;
+   exec->eval.recalculate_maps = GL_FALSE;
 }
 
 
@@ -147,16 +130,17 @@ void vbo_exec_do_EvalCoord1f(struct vbo_exec_context *exec, GLfloat u)
       struct gl_1d_map *map = exec->eval.map1[attr].map;
       if (map) {
         GLfloat uu = (u - map->u1) * map->du;
-        GLfloat data[4];
+        fi_type data[4];
 
-        ASSIGN_4V(data, 0, 0, 0, 1);
+        ASSIGN_4V(data, FLOAT_AS_UNION(0), FLOAT_AS_UNION(0),
+                  FLOAT_AS_UNION(0), FLOAT_AS_UNION(1));
 
-        _math_horner_bezier_curve(map->Points, data, uu, 
+        _math_horner_bezier_curve(map->Points, &data[0].f, uu,
                                   exec->eval.map1[attr].sz, 
                                   map->Order);
 
         COPY_SZ_4V( exec->vtx.attrptr[attr],
-                    exec->vtx.attrsz[attr],
+                    exec->vtx.attr[attr].size,
                     data );
       }
    }
@@ -193,18 +177,19 @@ void vbo_exec_do_EvalCoord2f( struct vbo_exec_context *exec,
       if (map) {
         GLfloat uu = (u - map->u1) * map->du;
         GLfloat vv = (v - map->v1) * map->dv;
-        GLfloat data[4];
+        fi_type data[4];
 
-        ASSIGN_4V(data, 0, 0, 0, 1);
+        ASSIGN_4V(data, FLOAT_AS_UNION(0), FLOAT_AS_UNION(0),
+                  FLOAT_AS_UNION(0), FLOAT_AS_UNION(1));
 
         _math_horner_bezier_surf(map->Points, 
-                                 data, 
+                                 &data[0].f,
                                  uu, vv, 
                                  exec->eval.map2[attr].sz, 
                                  map->Uorder, map->Vorder);
 
         COPY_SZ_4V( exec->vtx.attrptr[attr],
-                    exec->vtx.attrsz[attr],
+                    exec->vtx.attr[attr].size,
                     data );
       }
    }
@@ -220,7 +205,7 @@ void vbo_exec_do_EvalCoord2f( struct vbo_exec_context *exec,
       ASSIGN_4V(vertex, 0, 0, 0, 1);
 
       if (exec->ctx->Eval.AutoNormal) {
-        GLfloat normal[4];
+        fi_type normal[4];
          GLfloat du[4], dv[4];
 
          _math_de_casteljau_surf(map->Points, vertex, du, dv, uu, vv, 
@@ -238,12 +223,12 @@ void vbo_exec_do_EvalCoord2f( struct vbo_exec_context *exec,
         }
 
 
-         CROSS3(normal, du, dv);
-         NORMALIZE_3FV(normal);
-        normal[3] = 1.0;
+         CROSS3(&normal[0].f, du, dv);
+         NORMALIZE_3FV(&normal[0].f);
+        normal[3] = FLOAT_AS_UNION(1.0);
 
-        COPY_SZ_4V( exec->vtx.attrptr[VBO_ATTRIB_NORMAL],
-                    exec->vtx.attrsz[VBO_ATTRIB_NORMAL],
+        COPY_SZ_4V( exec->vtx.attrptr[VBO_ATTRIB_NORMAL],
+                    exec->vtx.attr[VBO_ATTRIB_NORMAL].size,
                     normal );
 
       }
@@ -253,7 +238,7 @@ void vbo_exec_do_EvalCoord2f( struct vbo_exec_context *exec,
                                  map->Uorder, map->Vorder);
       }
 
-      if (exec->vtx.attrsz[0] == 4) 
+      if (exec->vtx.attr[VBO_ATTRIB_POS].size == 4)
         CALL_Vertex4fv(GET_DISPATCH(), ( vertex ));
       else
         CALL_Vertex3fv(GET_DISPATCH(), ( vertex ));