nouveau: Use gl_constants::MinMapBufferAlignment as the alignment in nouveau_bo_new
[mesa.git] / src / mesa / tnl_dd / t_dd_vb.c
index b3937c29a000596a0fcd960c2a4caad5bf704b6d..6360ef17d5c7ba5f1e54b0e94a59bff01b48f7b6 100644 (file)
@@ -1,7 +1,6 @@
 
 /*
  * Mesa 3-D graphics library
- * Version:  3.5
  *
  * Copyright (C) 1999-2001  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 "math/m_translate.h"
 
@@ -46,7 +46,7 @@
  * really convenient to put them.  Need to build some actual .o files in
  * this directory?
  */
-static void copy_pv_rgba4_spec5( GLcontext *ctx, GLuint edst, GLuint esrc )
+static void copy_pv_rgba4_spec5( struct gl_context *ctx, GLuint edst, GLuint esrc )
 {
    LOCALVARS   
    GLubyte *verts = GET_VERTEX_STORE();
@@ -57,7 +57,7 @@ static void copy_pv_rgba4_spec5( GLcontext *ctx, GLuint edst, GLuint esrc )
    dst[5] = src[5];
 }
 
-static void copy_pv_rgba4( GLcontext *ctx, GLuint edst, GLuint esrc )
+static void copy_pv_rgba4( struct gl_context *ctx, GLuint edst, GLuint esrc )
 {
    LOCALVARS
    GLubyte *verts = GET_VERTEX_STORE();
@@ -67,7 +67,7 @@ static void copy_pv_rgba4( GLcontext *ctx, GLuint edst, GLuint esrc )
    dst[4] = src[4];
 }
 
-static void copy_pv_rgba3( GLcontext *ctx, GLuint edst, GLuint esrc )
+static void copy_pv_rgba3( struct gl_context *ctx, GLuint edst, GLuint esrc )
 {
    LOCALVARS
    GLubyte *verts = GET_VERTEX_STORE();
@@ -78,7 +78,7 @@ static void copy_pv_rgba3( GLcontext *ctx, GLuint edst, GLuint esrc )
 }
 
 
-void TAG(translate_vertex)(GLcontext *ctx,
+void TAG(translate_vertex)(struct gl_context *ctx,
                           const VERTEX *src,
                           SWvertex *dst)
 {
@@ -89,15 +89,15 @@ void TAG(translate_vertex)(GLcontext *ctx,
 
    if (format == TINY_VERTEX_FORMAT) {
       if (HAVE_HW_VIEWPORT) {
-        dst->attrib[FRAG_ATTRIB_WPOS][0] = s[0]  * src->v.x + s[12];
-        dst->attrib[FRAG_ATTRIB_WPOS][1] = s[5]  * src->v.y + s[13];
-        dst->attrib[FRAG_ATTRIB_WPOS][2] = s[10] * src->v.z + s[14];
-        dst->attrib[FRAG_ATTRIB_WPOS][3] = 1.0;
+        dst->attrib[VARYING_SLOT_POS][0] = s[0]  * src->v.x + s[12];
+        dst->attrib[VARYING_SLOT_POS][1] = s[5]  * src->v.y + s[13];
+        dst->attrib[VARYING_SLOT_POS][2] = s[10] * src->v.z + s[14];
+        dst->attrib[VARYING_SLOT_POS][3] = 1.0;
       } else {
-        dst->attrib[FRAG_ATTRIB_WPOS][0] = UNVIEWPORT_X( src->v.x );
-        dst->attrib[FRAG_ATTRIB_WPOS][1] = UNVIEWPORT_Y( src->v.y );
-        dst->attrib[FRAG_ATTRIB_WPOS][2] = UNVIEWPORT_Z( src->v.z );
-        dst->attrib[FRAG_ATTRIB_WPOS][3] = 1.0;
+        dst->attrib[VARYING_SLOT_POS][0] = UNVIEWPORT_X( src->v.x );
+        dst->attrib[VARYING_SLOT_POS][1] = UNVIEWPORT_Y( src->v.y );
+        dst->attrib[VARYING_SLOT_POS][2] = UNVIEWPORT_Z( src->v.z );
+        dst->attrib[VARYING_SLOT_POS][3] = 1.0;
       }
 
       dst->color[0] = src->tv.color.red;
@@ -109,21 +109,21 @@ void TAG(translate_vertex)(GLcontext *ctx,
       if (HAVE_HW_VIEWPORT) {
         if (HAVE_HW_DIVIDE && CHECK_HW_DIVIDE) {
            GLfloat oow = 1.0 / src->v.w;
-           dst->attrib[FRAG_ATTRIB_WPOS][0] = s[0]  * src->v.x * oow + s[12];
-           dst->attrib[FRAG_ATTRIB_WPOS][1] = s[5]  * src->v.y * oow + s[13];
-           dst->attrib[FRAG_ATTRIB_WPOS][2] = s[10] * src->v.z * oow + s[14];
-           dst->attrib[FRAG_ATTRIB_WPOS][3] = oow;
+           dst->attrib[VARYING_SLOT_POS][0] = s[0]  * src->v.x * oow + s[12];
+           dst->attrib[VARYING_SLOT_POS][1] = s[5]  * src->v.y * oow + s[13];
+           dst->attrib[VARYING_SLOT_POS][2] = s[10] * src->v.z * oow + s[14];
+           dst->attrib[VARYING_SLOT_POS][3] = oow;
         } else {
-           dst->attrib[FRAG_ATTRIB_WPOS][0] = s[0]  * src->v.x + s[12];
-           dst->attrib[FRAG_ATTRIB_WPOS][1] = s[5]  * src->v.y + s[13];
-           dst->attrib[FRAG_ATTRIB_WPOS][2] = s[10] * src->v.z + s[14];
-           dst->attrib[FRAG_ATTRIB_WPOS][3] = src->v.w;
+           dst->attrib[VARYING_SLOT_POS][0] = s[0]  * src->v.x + s[12];
+           dst->attrib[VARYING_SLOT_POS][1] = s[5]  * src->v.y + s[13];
+           dst->attrib[VARYING_SLOT_POS][2] = s[10] * src->v.z + s[14];
+           dst->attrib[VARYING_SLOT_POS][3] = src->v.w;
         }
       } else {
-        dst->attrib[FRAG_ATTRIB_WPOS][0] = UNVIEWPORT_X( src->v.x );
-        dst->attrib[FRAG_ATTRIB_WPOS][1] = UNVIEWPORT_Y( src->v.y );
-        dst->attrib[FRAG_ATTRIB_WPOS][2] = UNVIEWPORT_Z( src->v.z );
-        dst->attrib[FRAG_ATTRIB_WPOS][3] = src->v.w;
+        dst->attrib[VARYING_SLOT_POS][0] = UNVIEWPORT_X( src->v.x );
+        dst->attrib[VARYING_SLOT_POS][1] = UNVIEWPORT_Y( src->v.y );
+        dst->attrib[VARYING_SLOT_POS][2] = UNVIEWPORT_Z( src->v.z );
+        dst->attrib[VARYING_SLOT_POS][3] = src->v.w;
       }
 
       dst->color[0] = src->v.color.red;
@@ -131,55 +131,55 @@ void TAG(translate_vertex)(GLcontext *ctx,
       dst->color[2] = src->v.color.blue;
       dst->color[3] = src->v.color.alpha;
 
-      dst->attrib[FRAG_ATTRIB_COL1][0] = UBYTE_TO_FLOAT(src->v.specular.red);
-      dst->attrib[FRAG_ATTRIB_COL1][1] = UBYTE_TO_FLOAT(src->v.specular.green);
-      dst->attrib[FRAG_ATTRIB_COL1][2] = UBYTE_TO_FLOAT(src->v.specular.blue);
+      dst->attrib[VARYING_SLOT_COL1][0] = UBYTE_TO_FLOAT(src->v.specular.red);
+      dst->attrib[VARYING_SLOT_COL1][1] = UBYTE_TO_FLOAT(src->v.specular.green);
+      dst->attrib[VARYING_SLOT_COL1][2] = UBYTE_TO_FLOAT(src->v.specular.blue);
 
-      dst->attrib[FRAG_ATTRIB_FOGC][0] = UBYTE_TO_FLOAT(src->v.specular.alpha);
+      dst->attrib[VARYING_SLOT_FOGC][0] = UBYTE_TO_FLOAT(src->v.specular.alpha);
 
       if (HAVE_PTEX_VERTICES &&
          ((HAVE_TEX2_VERTICES && format == PROJ_TEX3_VERTEX_FORMAT) ||
           (format == PROJ_TEX1_VERTEX_FORMAT))) {
 
-        dst->attrib[FRAG_ATTRIB_TEX0][0] = src->pv.u0;
-        dst->attrib[FRAG_ATTRIB_TEX0][1] = src->pv.v0;
-        dst->attrib[FRAG_ATTRIB_TEX0][3] = src->pv.q0;
+        dst->attrib[VARYING_SLOT_TEX0][0] = src->pv.u0;
+        dst->attrib[VARYING_SLOT_TEX0][1] = src->pv.v0;
+        dst->attrib[VARYING_SLOT_TEX0][3] = src->pv.q0;
 
-        dst->attrib[FRAG_ATTRIB_TEX1][0] = src->pv.u1;
-        dst->attrib[FRAG_ATTRIB_TEX1][1] = src->pv.v1;
-        dst->attrib[FRAG_ATTRIB_TEX1][3] = src->pv.q1;
+        dst->attrib[VARYING_SLOT_TEX1][0] = src->pv.u1;
+        dst->attrib[VARYING_SLOT_TEX1][1] = src->pv.v1;
+        dst->attrib[VARYING_SLOT_TEX1][3] = src->pv.q1;
 
         if (HAVE_TEX2_VERTICES) {
-           dst->attrib[FRAG_ATTRIB_TEX2][0] = src->pv.u2;
-           dst->attrib[FRAG_ATTRIB_TEX2][1] = src->pv.v2;
-           dst->attrib[FRAG_ATTRIB_TEX2][3] = src->pv.q2;
+           dst->attrib[VARYING_SLOT_TEX2][0] = src->pv.u2;
+           dst->attrib[VARYING_SLOT_TEX2][1] = src->pv.v2;
+           dst->attrib[VARYING_SLOT_TEX2][3] = src->pv.q2;
         }
 
         if (HAVE_TEX3_VERTICES) {
-           dst->attrib[FRAG_ATTRIB_TEX3][0] = src->pv.u3;
-           dst->attrib[FRAG_ATTRIB_TEX3][1] = src->pv.v3;
-           dst->attrib[FRAG_ATTRIB_TEX3][3] = src->pv.q3;
+           dst->attrib[VARYING_SLOT_TEX3][0] = src->pv.u3;
+           dst->attrib[VARYING_SLOT_TEX3][1] = src->pv.v3;
+           dst->attrib[VARYING_SLOT_TEX3][3] = src->pv.q3;
         }
       }
       else {
-        dst->attrib[FRAG_ATTRIB_TEX0][0] = src->v.u0;
-        dst->attrib[FRAG_ATTRIB_TEX0][1] = src->v.v0;
-        dst->attrib[FRAG_ATTRIB_TEX0][3] = 1.0;
+        dst->attrib[VARYING_SLOT_TEX0][0] = src->v.u0;
+        dst->attrib[VARYING_SLOT_TEX0][1] = src->v.v0;
+        dst->attrib[VARYING_SLOT_TEX0][3] = 1.0;
 
-        dst->attrib[FRAG_ATTRIB_TEX1][0] = src->v.u1;
-        dst->attrib[FRAG_ATTRIB_TEX1][1] = src->v.v1;
-        dst->attrib[FRAG_ATTRIB_TEX1][3] = 1.0;
+        dst->attrib[VARYING_SLOT_TEX1][0] = src->v.u1;
+        dst->attrib[VARYING_SLOT_TEX1][1] = src->v.v1;
+        dst->attrib[VARYING_SLOT_TEX1][3] = 1.0;
 
         if (HAVE_TEX2_VERTICES) {
-           dst->attrib[FRAG_ATTRIB_TEX2][0] = src->v.u2;
-           dst->attrib[FRAG_ATTRIB_TEX2][1] = src->v.v2;
-           dst->attrib[FRAG_ATTRIB_TEX2][3] = 1.0;
+           dst->attrib[VARYING_SLOT_TEX2][0] = src->v.u2;
+           dst->attrib[VARYING_SLOT_TEX2][1] = src->v.v2;
+           dst->attrib[VARYING_SLOT_TEX2][3] = 1.0;
         }
 
         if (HAVE_TEX3_VERTICES) {
-           dst->attrib[FRAG_ATTRIB_TEX3][0] = src->v.u3;
-           dst->attrib[FRAG_ATTRIB_TEX3][1] = src->v.v3;
-           dst->attrib[FRAG_ATTRIB_TEX3][3] = 1.0;
+           dst->attrib[VARYING_SLOT_TEX3][0] = src->v.u3;
+           dst->attrib[VARYING_SLOT_TEX3][1] = src->v.v3;
+           dst->attrib[VARYING_SLOT_TEX3][3] = 1.0;
         }
       }
    }
@@ -189,10 +189,10 @@ void TAG(translate_vertex)(GLcontext *ctx,
 
 
 /* prototype to silence warning */
-void TAG(print_vertex)( GLcontext *ctx, const VERTEX *v );
+void TAG(print_vertex)( struct gl_context *ctx, const VERTEX *v );
 
 
-void TAG(print_vertex)( GLcontext *ctx, const VERTEX *v )
+void TAG(print_vertex)( struct gl_context *ctx, const VERTEX *v )
 {
    LOCALVARS
    GLuint format = GET_VERTEX_FORMAT();
@@ -289,7 +289,7 @@ void TAG(print_vertex)( GLcontext *ctx, const VERTEX *v )
 #define GET_COLOR(ptr, idx) ((ptr)->data[idx])
 
 
-INTERP_QUALIFIER void TAG(interp_extras)( GLcontext *ctx,
+INTERP_QUALIFIER void TAG(interp_extras)( struct gl_context *ctx,
                                          GLfloat t,
                                          GLuint dst, GLuint out, GLuint in,
                                          GLboolean force_boundary )
@@ -297,19 +297,19 @@ INTERP_QUALIFIER void TAG(interp_extras)( GLcontext *ctx,
    LOCALVARS
    struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
 
-   if (VB->ColorPtr[1]) {
-      assert(VB->ColorPtr[1]->stride == 4 * sizeof(GLfloat));
+   if (VB->BackfaceColorPtr) {
+      assert(VB->BackfaceColorPtr->stride == 4 * sizeof(GLfloat));
 
       INTERP_4F( t,
-                   GET_COLOR(VB->ColorPtr[1], dst),
-                   GET_COLOR(VB->ColorPtr[1], out),
-                   GET_COLOR(VB->ColorPtr[1], in) );
+                   GET_COLOR(VB->BackfaceColorPtr, dst),
+                   GET_COLOR(VB->BackfaceColorPtr, out),
+                   GET_COLOR(VB->BackfaceColorPtr, in) );
 
-      if (VB->SecondaryColorPtr[1]) {
+      if (VB->BackfaceSecondaryColorPtr) {
         INTERP_3F( t,
-                      GET_COLOR(VB->SecondaryColorPtr[1], dst),
-                      GET_COLOR(VB->SecondaryColorPtr[1], out),
-                      GET_COLOR(VB->SecondaryColorPtr[1], in) );
+                      GET_COLOR(VB->BackfaceSecondaryColorPtr, dst),
+                      GET_COLOR(VB->BackfaceSecondaryColorPtr, out),
+                      GET_COLOR(VB->BackfaceSecondaryColorPtr, in) );
       }
    }
 
@@ -320,19 +320,19 @@ INTERP_QUALIFIER void TAG(interp_extras)( GLcontext *ctx,
    INTERP_VERTEX(ctx, t, dst, out, in, force_boundary);
 }
 
-INTERP_QUALIFIER void TAG(copy_pv_extras)( GLcontext *ctx, 
+INTERP_QUALIFIER void TAG(copy_pv_extras)( struct gl_context *ctx, 
                                           GLuint dst, GLuint src )
 {
    LOCALVARS
       struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
 
-   if (VB->ColorPtr[1]) {
-      COPY_4FV( GET_COLOR(VB->ColorPtr[1], dst), 
-               GET_COLOR(VB->ColorPtr[1], src) );
+   if (VB->BackfaceColorPtr) {
+      COPY_4FV( GET_COLOR(VB->BackfaceColorPtr, dst),
+               GET_COLOR(VB->BackfaceColorPtr, src) );
 
-      if (VB->SecondaryColorPtr[1]) {
-        COPY_4FV( GET_COLOR(VB->SecondaryColorPtr[1], dst), 
-                  GET_COLOR(VB->SecondaryColorPtr[1], src) );
+      if (VB->BackfaceSecondaryColorPtr) {
+        COPY_4FV( GET_COLOR(VB->BackfaceSecondaryColorPtr, dst),
+                  GET_COLOR(VB->BackfaceSecondaryColorPtr, src) );
       }
    }