Fix pow <small> and a very stypid bug with dummy srcs(0 equals to tmp0.x)</small...
[mesa.git] / src / mesa / main / api_noop.c
index e5e6717e835ba90141378804c82d6bd1161a6ea4..af7e1f9ac70e059aff67b0e75bc79ed78416b59d 100644 (file)
@@ -1,8 +1,8 @@
 /*
  * Mesa 3-D graphics library
- * Version:  6.1
+ * Version:  6.5
  *
- * Copyright (C) 1999-2004  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2005  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -33,6 +33,7 @@
 #include "macros.h"
 #include "mtypes.h"
 #include "dlist.h"
+#include "dispatch.h"
 
 
 /* In states where certain vertex components are required for t&l or
@@ -81,7 +82,7 @@ void GLAPIENTRY _mesa_noop_FogCoordfEXT( GLfloat a )
 void GLAPIENTRY _mesa_noop_FogCoordfvEXT( const GLfloat *v )
 {
    GET_CURRENT_CONTEXT(ctx);
-   GLfloat *dest = ctx->Current.Attrib[VERT_ATTRIB_NORMAL];
+   GLfloat *dest = ctx->Current.Attrib[VERT_ATTRIB_FOG];
    dest[0] = v[0];
    dest[1] = 0.0;
    dest[2] = 0.0;
@@ -394,7 +395,7 @@ void GLAPIENTRY _mesa_noop_VertexAttrib1fNV( GLuint index, GLfloat x )
       ASSIGN_4V(ctx->Current.Attrib[index], x, 0, 0, 1);
    }
    else
-      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib1f" );
+      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib1fNV" );
 }
 
 void GLAPIENTRY _mesa_noop_VertexAttrib1fvNV( GLuint index, const GLfloat *v )
@@ -404,7 +405,7 @@ void GLAPIENTRY _mesa_noop_VertexAttrib1fvNV( GLuint index, const GLfloat *v )
       ASSIGN_4V(ctx->Current.Attrib[index], v[0], 0, 0, 1);
    }
    else
-      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib1fv" );
+      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib1fvNV" );
 }
 
 void GLAPIENTRY _mesa_noop_VertexAttrib2fNV( GLuint index, GLfloat x, GLfloat y )
@@ -414,7 +415,7 @@ void GLAPIENTRY _mesa_noop_VertexAttrib2fNV( GLuint index, GLfloat x, GLfloat y
       ASSIGN_4V(ctx->Current.Attrib[index], x, y, 0, 1);
    }
    else
-      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib2f" );
+      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib2fNV" );
 }
 
 void GLAPIENTRY _mesa_noop_VertexAttrib2fvNV( GLuint index, const GLfloat *v )
@@ -424,7 +425,7 @@ void GLAPIENTRY _mesa_noop_VertexAttrib2fvNV( GLuint index, const GLfloat *v )
       ASSIGN_4V(ctx->Current.Attrib[index], v[0], v[1], 0, 1);
    }
    else
-      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib2fv" );
+      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib2fvNV" );
 }
 
 void GLAPIENTRY _mesa_noop_VertexAttrib3fNV( GLuint index, GLfloat x,
@@ -435,7 +436,7 @@ void GLAPIENTRY _mesa_noop_VertexAttrib3fNV( GLuint index, GLfloat x,
       ASSIGN_4V(ctx->Current.Attrib[index], x, y, z, 1);
    }
    else
-      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib3f" );
+      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib3fNV" );
 }
 
 void GLAPIENTRY _mesa_noop_VertexAttrib3fvNV( GLuint index, const GLfloat *v )
@@ -445,7 +446,7 @@ void GLAPIENTRY _mesa_noop_VertexAttrib3fvNV( GLuint index, const GLfloat *v )
       ASSIGN_4V(ctx->Current.Attrib[index], v[0], v[1], v[2], 1);
    }
    else
-      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib3fv" );
+      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib3fvNV" );
 }
 
 void GLAPIENTRY _mesa_noop_VertexAttrib4fNV( GLuint index, GLfloat x,
@@ -456,7 +457,7 @@ void GLAPIENTRY _mesa_noop_VertexAttrib4fNV( GLuint index, GLfloat x,
       ASSIGN_4V(ctx->Current.Attrib[index], x, y, z, w);
    }
    else
-      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib4f" );
+      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib4fNV" );
 }
 
 void GLAPIENTRY _mesa_noop_VertexAttrib4fvNV( GLuint index, const GLfloat *v )
@@ -466,9 +467,98 @@ void GLAPIENTRY _mesa_noop_VertexAttrib4fvNV( GLuint index, const GLfloat *v )
       ASSIGN_4V(ctx->Current.Attrib[index], v[0], v[1], v[2], v[3]);
    }
    else
-      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib4fv" );
+      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib4fvNV" );
+}
+
+
+/*
+ * XXX Un-alias attribs here
+ */
+
+void GLAPIENTRY _mesa_noop_VertexAttrib1fARB( GLuint index, GLfloat x )
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VERT_ATTRIB_MAX) {
+      ASSIGN_4V(ctx->Current.Attrib[index], x, 0, 0, 1);
+   }
+   else
+      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib1fARB" );
+}
+
+void GLAPIENTRY _mesa_noop_VertexAttrib1fvARB( GLuint index, const GLfloat *v )
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VERT_ATTRIB_MAX) {
+      ASSIGN_4V(ctx->Current.Attrib[index], v[0], 0, 0, 1);
+   }
+   else
+      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib1fvARB" );
+}
+
+void GLAPIENTRY _mesa_noop_VertexAttrib2fARB( GLuint index, GLfloat x, GLfloat y )
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VERT_ATTRIB_MAX) {
+      ASSIGN_4V(ctx->Current.Attrib[index], x, y, 0, 1);
+   }
+   else
+      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib2fARB" );
+}
+
+void GLAPIENTRY _mesa_noop_VertexAttrib2fvARB( GLuint index, const GLfloat *v )
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VERT_ATTRIB_MAX) {
+      ASSIGN_4V(ctx->Current.Attrib[index], v[0], v[1], 0, 1);
+   }
+   else
+      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib2fvARB" );
+}
+
+void GLAPIENTRY _mesa_noop_VertexAttrib3fARB( GLuint index, GLfloat x,
+                                  GLfloat y, GLfloat z )
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VERT_ATTRIB_MAX) {
+      ASSIGN_4V(ctx->Current.Attrib[index], x, y, z, 1);
+   }
+   else
+      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib3fARB" );
+}
+
+void GLAPIENTRY _mesa_noop_VertexAttrib3fvARB( GLuint index, const GLfloat *v )
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VERT_ATTRIB_MAX) {
+      ASSIGN_4V(ctx->Current.Attrib[index], v[0], v[1], v[2], 1);
+   }
+   else
+      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib3fvARB" );
+}
+
+void GLAPIENTRY _mesa_noop_VertexAttrib4fARB( GLuint index, GLfloat x,
+                                  GLfloat y, GLfloat z, GLfloat w )
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VERT_ATTRIB_MAX) {
+      ASSIGN_4V(ctx->Current.Attrib[index], x, y, z, w);
+   }
+   else
+      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib4fARB" );
+}
+
+void GLAPIENTRY _mesa_noop_VertexAttrib4fvARB( GLuint index, const GLfloat *v )
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VERT_ATTRIB_MAX) {
+      ASSIGN_4V(ctx->Current.Attrib[index], v[0], v[1], v[2], v[3]);
+   }
+   else
+      _mesa_error( ctx, GL_INVALID_ENUM, "glVertexAttrib4fvARB" );
 }
 
+
+
 /* Material
  */
 void GLAPIENTRY _mesa_noop_Materialfv( GLenum face, GLenum pname, const GLfloat *params )
@@ -485,7 +575,7 @@ void GLAPIENTRY _mesa_noop_Materialfv( GLenum face, GLenum pname, const GLfloat
    if (bitmask == 0)
       return;
 
-   switch (face) {
+   switch (pname) {
    case GL_SHININESS: nr = 1; break;
    case GL_COLOR_INDEXES: nr = 3; break;
    default: nr = 4 ; break;
@@ -568,6 +658,7 @@ void GLAPIENTRY _mesa_noop_EvalPoint2( GLint a, GLint b )
  */
 void GLAPIENTRY _mesa_noop_Begin( GLenum mode )
 {
+   (void) mode;
 }
 
 
@@ -595,12 +686,12 @@ void GLAPIENTRY _mesa_noop_Rectf( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2
       ASSERT_OUTSIDE_BEGIN_END(ctx);
    }
 
-   GL_CALL(Begin)( GL_QUADS );
-   GL_CALL(Vertex2f)( x1, y1 );
-   GL_CALL(Vertex2f)( x2, y1 );
-   GL_CALL(Vertex2f)( x2, y2 );
-   GL_CALL(Vertex2f)( x1, y2 );
-   GL_CALL(End)();
+   CALL_Begin(GET_DISPATCH(), (GL_QUADS));
+   CALL_Vertex2f(GET_DISPATCH(), (x1, y1));
+   CALL_Vertex2f(GET_DISPATCH(), (x2, y1));
+   CALL_Vertex2f(GET_DISPATCH(), (x2, y2));
+   CALL_Vertex2f(GET_DISPATCH(), (x1, y2));
+   CALL_End(GET_DISPATCH(), ());
 }
 
 
@@ -616,10 +707,10 @@ void GLAPIENTRY _mesa_noop_DrawArrays(GLenum mode, GLint start, GLsizei count)
    if (!_mesa_validate_DrawArrays( ctx, mode, start, count ))
       return;
 
-   GL_CALL(Begin)(mode);
+   CALL_Begin(GET_DISPATCH(), (mode));
    for (i = 0; i < count; i++)
-       GL_CALL(ArrayElement)(start + i);
-   GL_CALL(End)();
+       CALL_ArrayElement(GET_DISPATCH(), (start + i));
+   CALL_End(GET_DISPATCH(), ());
 }
 
 
@@ -632,27 +723,27 @@ void GLAPIENTRY _mesa_noop_DrawElements(GLenum mode, GLsizei count, GLenum type,
    if (!_mesa_validate_DrawElements( ctx, mode, count, type, indices ))
       return;
 
-   GL_CALL(Begin)(mode);
+   CALL_Begin(GET_DISPATCH(), (mode));
 
    switch (type) {
    case GL_UNSIGNED_BYTE:
       for (i = 0 ; i < count ; i++)
-         GL_CALL(ArrayElement)( ((GLubyte *)indices)[i] );
+         CALL_ArrayElement(GET_DISPATCH(), ( ((GLubyte *)indices)[i] ));
       break;
    case GL_UNSIGNED_SHORT:
       for (i = 0 ; i < count ; i++)
-         GL_CALL(ArrayElement)( ((GLushort *)indices)[i] );
+         CALL_ArrayElement(GET_DISPATCH(), ( ((GLushort *)indices)[i] ));
       break;
    case GL_UNSIGNED_INT:
       for (i = 0 ; i < count ; i++)
-         GL_CALL(ArrayElement)( ((GLuint *)indices)[i] );
+         CALL_ArrayElement(GET_DISPATCH(), ( ((GLuint *)indices)[i] ));
       break;
    default:
       _mesa_error( ctx, GL_INVALID_ENUM, "glDrawElements(type)" );
       break;
    }
 
-   GL_CALL(End)();
+   CALL_End(GET_DISPATCH(), ());
 }
 
 void GLAPIENTRY _mesa_noop_DrawRangeElements(GLenum mode,
@@ -665,7 +756,7 @@ void GLAPIENTRY _mesa_noop_DrawRangeElements(GLenum mode,
    if (_mesa_validate_DrawRangeElements( ctx, mode,
                                         start, end,
                                         count, type, indices ))
-       GL_CALL(DrawElements)( mode, count, type, indices );
+       CALL_DrawElements(GET_DISPATCH(), (mode, count, type, indices));
 }
 
 /*
@@ -710,11 +801,11 @@ void GLAPIENTRY _mesa_noop_EvalMesh1( GLenum mode, GLint i1, GLint i2 )
    du = ctx->Eval.MapGrid1du;
    u = ctx->Eval.MapGrid1u1 + i1 * du;
 
-   GL_CALL(Begin)( prim );
+   CALL_Begin(GET_DISPATCH(), (prim));
    for (i=i1;i<=i2;i++,u+=du) {
-      GL_CALL(EvalCoord1f)( u );
+      CALL_EvalCoord1f(GET_DISPATCH(), (u));
    }
-   GL_CALL(End)();
+   CALL_End(GET_DISPATCH(), ());
 }
 
 
@@ -749,38 +840,38 @@ void GLAPIENTRY _mesa_noop_EvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1,
 
    switch (mode) {
    case GL_POINT:
-      GL_CALL(Begin)( GL_POINTS );
+      CALL_Begin(GET_DISPATCH(), (GL_POINTS));
       for (v=v1,j=j1;j<=j2;j++,v+=dv) {
         for (u=u1,i=i1;i<=i2;i++,u+=du) {
-           GL_CALL(EvalCoord2f)(u, v );
+           CALL_EvalCoord2f(GET_DISPATCH(), (u, v));
         }
       }
-      GL_CALL(End)();
+      CALL_End(GET_DISPATCH(), ());
       break;
    case GL_LINE:
       for (v=v1,j=j1;j<=j2;j++,v+=dv) {
-        GL_CALL(Begin)( GL_LINE_STRIP );
+        CALL_Begin(GET_DISPATCH(), (GL_LINE_STRIP));
         for (u=u1,i=i1;i<=i2;i++,u+=du) {
-           GL_CALL(EvalCoord2f)(u, v );
+           CALL_EvalCoord2f(GET_DISPATCH(), (u, v));
         }
-        GL_CALL(End)();
+        CALL_End(GET_DISPATCH(), ());
       }
       for (u=u1,i=i1;i<=i2;i++,u+=du) {
-        GL_CALL(Begin)( GL_LINE_STRIP );
+        CALL_Begin(GET_DISPATCH(), (GL_LINE_STRIP));
         for (v=v1,j=j1;j<=j2;j++,v+=dv) {
-           GL_CALL(EvalCoord2f)(u, v );
+           CALL_EvalCoord2f(GET_DISPATCH(), (u, v));
         }
-        GL_CALL(End)();
+        CALL_End(GET_DISPATCH(), ());
       }
       break;
    case GL_FILL:
       for (v=v1,j=j1;j<j2;j++,v+=dv) {
-        GL_CALL(Begin)( GL_TRIANGLE_STRIP );
+        CALL_Begin(GET_DISPATCH(), (GL_TRIANGLE_STRIP));
         for (u=u1,i=i1;i<=i2;i++,u+=du) {
-           GL_CALL(EvalCoord2f)(u, v );
-           GL_CALL(EvalCoord2f)(u, v+dv );
+           CALL_EvalCoord2f(GET_DISPATCH(), (u, v));
+           CALL_EvalCoord2f(GET_DISPATCH(), (u, v+dv));
         }
-        GL_CALL(End)();
+        CALL_End(GET_DISPATCH(), ());
       }
       break;
    default:
@@ -854,6 +945,14 @@ void _mesa_noop_vtxfmt_init( GLvertexformat *vfmt )
    vfmt->VertexAttrib3fvNV = _mesa_noop_VertexAttrib3fvNV;
    vfmt->VertexAttrib4fNV = _mesa_noop_VertexAttrib4fNV;
    vfmt->VertexAttrib4fvNV = _mesa_noop_VertexAttrib4fvNV;
+   vfmt->VertexAttrib1fARB = _mesa_noop_VertexAttrib1fARB;
+   vfmt->VertexAttrib1fvARB = _mesa_noop_VertexAttrib1fvARB;
+   vfmt->VertexAttrib2fARB = _mesa_noop_VertexAttrib2fARB;
+   vfmt->VertexAttrib2fvARB = _mesa_noop_VertexAttrib2fvARB;
+   vfmt->VertexAttrib3fARB = _mesa_noop_VertexAttrib3fARB;
+   vfmt->VertexAttrib3fvARB = _mesa_noop_VertexAttrib3fvARB;
+   vfmt->VertexAttrib4fARB = _mesa_noop_VertexAttrib4fARB;
+   vfmt->VertexAttrib4fvARB = _mesa_noop_VertexAttrib4fvARB;
 
    vfmt->Rectf = _mesa_noop_Rectf;