mesa: refactor: move glTexGen-related functions into new texgen.c file
authorBrian Paul <brian.paul@tungstengraphics.com>
Thu, 12 Jun 2008 01:48:01 +0000 (19:48 -0600)
committerKeith Whitwell <keith@tungstengraphics.com>
Mon, 22 Sep 2008 05:13:52 +0000 (22:13 -0700)
(cherry picked from commit 27049189d6221fefe43eb55846efaa51742dcdf4)

src/mesa/main/api_exec.c
src/mesa/main/attrib.c
src/mesa/main/sources
src/mesa/main/texgen.c [new file with mode: 0644]
src/mesa/main/texgen.h [new file with mode: 0644]
src/mesa/main/texstate.c
src/mesa/main/texstate.h
src/mesa/sources

index f7cf42f60041ff275f5aba6ecd9db59f60993c71..e27c6073077d25268abfcacf777bcf7e3c6747a9 100644 (file)
 #include "state.h"
 #include "stencil.h"
 #include "teximage.h"
+#if FEATURE_texgen
+#include "texgen.h"
+#endif
 #include "texobj.h"
 #include "texstate.h"
 #include "mtypes.h"
index 0ef58efd47fc31b81c94f86a9df95008d65976f7..53e3ea7a04489609fb08502193309606411aa3a1 100644 (file)
@@ -48,6 +48,7 @@
 #include "scissor.h"
 #include "simple_list.h"
 #include "stencil.h"
+#include "texgen.h"
 #include "texobj.h"
 #include "texstate.h"
 #include "varray.h"
index 5379fa08f4c5a3271a9534a835ee8de37327dc1a..2f980051303a00ccf808209f6041a55237f7bd49 100644 (file)
@@ -60,6 +60,7 @@ texcompress_fxt1.c \
 texcompress_s3tc.c \
 texenvprogram.c \
 texformat.c \
+texgen.c \
 teximage.c \
 texobj.c \
 texrender.c \
@@ -139,6 +140,7 @@ texcompress.h \
 texenvprogram.h \
 texformat.h \
 texformat_tmp.h \
+texgen.h \
 teximage.h \
 texobj.h \
 texrender.h \
diff --git a/src/mesa/main/texgen.c b/src/mesa/main/texgen.c
new file mode 100644 (file)
index 0000000..1018c30
--- /dev/null
@@ -0,0 +1,605 @@
+/*
+ * Mesa 3-D graphics library
+ * Version:  7.1
+ *
+ * Copyright (C) 1999-2008  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"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * 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.
+ */
+
+/** 
+ * \file texgen.c
+ *
+ * glTexGen-related functions
+ */
+
+
+#include "main/glheader.h"
+#include "main/context.h"
+#include "main/enums.h"
+#include "main/macros.h"
+#include "main/texgen.h"
+#include "math/m_xform.h"
+
+
+#define ENUM_TO_FLOAT(X) ((GLfloat)(GLint)(X))
+#define ENUM_TO_DOUBLE(X) ((GLdouble)(GLint)(X))
+
+
+
+void GLAPIENTRY
+_mesa_TexGenfv( GLenum coord, GLenum pname, const GLfloat *params )
+{
+   GET_CURRENT_CONTEXT(ctx);
+   struct gl_texture_unit *texUnit;
+   ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+   if (MESA_VERBOSE&(VERBOSE_API|VERBOSE_TEXTURE))
+      _mesa_debug(ctx, "glTexGen %s %s %.1f(%s)...\n",
+                  _mesa_lookup_enum_by_nr(coord),
+                  _mesa_lookup_enum_by_nr(pname),
+                  *params,
+                 _mesa_lookup_enum_by_nr((GLenum) (GLint) *params));
+
+   if (ctx->Texture.CurrentUnit >= ctx->Const.MaxTextureCoordUnits) {
+      _mesa_error(ctx, GL_INVALID_OPERATION, "glTexGen(current unit)");
+      return;
+   }
+
+   texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
+
+   switch (coord) {
+      case GL_S:
+         if (pname==GL_TEXTURE_GEN_MODE) {
+           GLenum mode = (GLenum) (GLint) *params;
+           GLbitfield bits;
+           switch (mode) {
+           case GL_OBJECT_LINEAR:
+              bits = TEXGEN_OBJ_LINEAR;
+              break;
+           case GL_EYE_LINEAR:
+              bits = TEXGEN_EYE_LINEAR;
+              break;
+           case GL_REFLECTION_MAP_NV:
+              bits = TEXGEN_REFLECTION_MAP_NV;
+              break;
+           case GL_NORMAL_MAP_NV:
+              bits = TEXGEN_NORMAL_MAP_NV;
+              break;
+           case GL_SPHERE_MAP:
+              bits = TEXGEN_SPHERE_MAP;
+              break;
+           default:
+              _mesa_error( ctx, GL_INVALID_ENUM, "glTexGenfv(param)" );
+              return;
+           }
+           if (texUnit->GenModeS == mode)
+              return;
+           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
+           texUnit->GenModeS = mode;
+           texUnit->_GenBitS = bits;
+        }
+        else if (pname==GL_OBJECT_PLANE) {
+           if (TEST_EQ_4V(texUnit->ObjectPlaneS, params))
+               return;
+           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
+            COPY_4FV(texUnit->ObjectPlaneS, params);
+        }
+        else if (pname==GL_EYE_PLANE) {
+           GLfloat tmp[4];
+            /* Transform plane equation by the inverse modelview matrix */
+            if (_math_matrix_is_dirty(ctx->ModelviewMatrixStack.Top)) {
+               _math_matrix_analyse( ctx->ModelviewMatrixStack.Top );
+            }
+            _mesa_transform_vector( tmp, params, ctx->ModelviewMatrixStack.Top->inv );
+           if (TEST_EQ_4V(texUnit->EyePlaneS, tmp))
+              return;
+           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
+           COPY_4FV(texUnit->EyePlaneS, tmp);
+        }
+        else {
+           _mesa_error( ctx, GL_INVALID_ENUM, "glTexGenfv(pname)" );
+           return;
+        }
+        break;
+      case GL_T:
+         if (pname==GL_TEXTURE_GEN_MODE) {
+           GLenum mode = (GLenum) (GLint) *params;
+           GLbitfield bitt;
+           switch (mode) {
+               case GL_OBJECT_LINEAR:
+                  bitt = TEXGEN_OBJ_LINEAR;
+                  break;
+               case GL_EYE_LINEAR:
+                  bitt = TEXGEN_EYE_LINEAR;
+                  break;
+               case GL_REFLECTION_MAP_NV:
+                  bitt = TEXGEN_REFLECTION_MAP_NV;
+                  break;
+               case GL_NORMAL_MAP_NV:
+                  bitt = TEXGEN_NORMAL_MAP_NV;
+                  break;
+               case GL_SPHERE_MAP:
+                  bitt = TEXGEN_SPHERE_MAP;
+                  break;
+               default:
+                  _mesa_error( ctx, GL_INVALID_ENUM, "glTexGenfv(param)" );
+                  return;
+           }
+           if (texUnit->GenModeT == mode)
+              return;
+           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
+           texUnit->GenModeT = mode;
+           texUnit->_GenBitT = bitt;
+        }
+        else if (pname==GL_OBJECT_PLANE) {
+           if (TEST_EQ_4V(texUnit->ObjectPlaneT, params))
+               return;
+           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
+            COPY_4FV(texUnit->ObjectPlaneT, params);
+        }
+        else if (pname==GL_EYE_PLANE) {
+           GLfloat tmp[4];
+            /* Transform plane equation by the inverse modelview matrix */
+           if (_math_matrix_is_dirty(ctx->ModelviewMatrixStack.Top)) {
+               _math_matrix_analyse( ctx->ModelviewMatrixStack.Top );
+            }
+            _mesa_transform_vector( tmp, params, ctx->ModelviewMatrixStack.Top->inv );
+           if (TEST_EQ_4V(texUnit->EyePlaneT, tmp))
+               return;
+           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
+           COPY_4FV(texUnit->EyePlaneT, tmp);
+        }
+        else {
+           _mesa_error( ctx, GL_INVALID_ENUM, "glTexGenfv(pname)" );
+           return;
+        }
+        break;
+      case GL_R:
+         if (pname==GL_TEXTURE_GEN_MODE) {
+           GLenum mode = (GLenum) (GLint) *params;
+           GLbitfield bitr;
+           switch (mode) {
+           case GL_OBJECT_LINEAR:
+              bitr = TEXGEN_OBJ_LINEAR;
+              break;
+           case GL_REFLECTION_MAP_NV:
+              bitr = TEXGEN_REFLECTION_MAP_NV;
+              break;
+           case GL_NORMAL_MAP_NV:
+              bitr = TEXGEN_NORMAL_MAP_NV;
+              break;
+           case GL_EYE_LINEAR:
+              bitr = TEXGEN_EYE_LINEAR;
+              break;
+           default:
+              _mesa_error( ctx, GL_INVALID_ENUM, "glTexGenfv(param)" );
+              return;
+           }
+           if (texUnit->GenModeR == mode)
+              return;
+           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
+           texUnit->GenModeR = mode;
+           texUnit->_GenBitR = bitr;
+        }
+        else if (pname==GL_OBJECT_PLANE) {
+           if (TEST_EQ_4V(texUnit->ObjectPlaneR, params))
+               return;
+           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
+           COPY_4FV(texUnit->ObjectPlaneR, params);
+        }
+        else if (pname==GL_EYE_PLANE) {
+           GLfloat tmp[4];
+            /* Transform plane equation by the inverse modelview matrix */
+            if (_math_matrix_is_dirty(ctx->ModelviewMatrixStack.Top)) {
+               _math_matrix_analyse( ctx->ModelviewMatrixStack.Top );
+            }
+            _mesa_transform_vector( tmp, params, ctx->ModelviewMatrixStack.Top->inv );
+           if (TEST_EQ_4V(texUnit->EyePlaneR, tmp))
+              return;
+           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
+           COPY_4FV(texUnit->EyePlaneR, tmp);
+        }
+        else {
+           _mesa_error( ctx, GL_INVALID_ENUM, "glTexGenfv(pname)" );
+           return;
+        }
+        break;
+      case GL_Q:
+         if (pname==GL_TEXTURE_GEN_MODE) {
+           GLenum mode = (GLenum) (GLint) *params;
+           GLbitfield bitq;
+           switch (mode) {
+           case GL_OBJECT_LINEAR:
+              bitq = TEXGEN_OBJ_LINEAR;
+              break;
+           case GL_EYE_LINEAR:
+              bitq = TEXGEN_EYE_LINEAR;
+              break;
+           default:
+              _mesa_error( ctx, GL_INVALID_ENUM, "glTexGenfv(param)" );
+              return;
+           }
+           if (texUnit->GenModeQ == mode)
+              return;
+           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
+           texUnit->GenModeQ = mode;
+           texUnit->_GenBitQ = bitq;
+        }
+        else if (pname==GL_OBJECT_PLANE) {
+           if (TEST_EQ_4V(texUnit->ObjectPlaneQ, params))
+               return;
+           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
+            COPY_4FV(texUnit->ObjectPlaneQ, params);
+        }
+        else if (pname==GL_EYE_PLANE) {
+           GLfloat tmp[4];
+            /* Transform plane equation by the inverse modelview matrix */
+            if (_math_matrix_is_dirty(ctx->ModelviewMatrixStack.Top)) {
+               _math_matrix_analyse( ctx->ModelviewMatrixStack.Top );
+            }
+            _mesa_transform_vector( tmp, params, ctx->ModelviewMatrixStack.Top->inv );
+           if (TEST_EQ_4V(texUnit->EyePlaneQ, tmp))
+              return;
+           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
+           COPY_4FV(texUnit->EyePlaneQ, tmp);
+        }
+        else {
+           _mesa_error( ctx, GL_INVALID_ENUM, "glTexGenfv(pname)" );
+           return;
+        }
+        break;
+      default:
+         _mesa_error( ctx, GL_INVALID_ENUM, "glTexGenfv(coord)" );
+        return;
+   }
+
+   if (ctx->Driver.TexGen)
+      ctx->Driver.TexGen( ctx, coord, pname, params );
+}
+
+
+void GLAPIENTRY
+_mesa_TexGeniv(GLenum coord, GLenum pname, const GLint *params )
+{
+   GLfloat p[4];
+   p[0] = (GLfloat) params[0];
+   if (pname == GL_TEXTURE_GEN_MODE) {
+      p[1] = p[2] = p[3] = 0.0F;
+   }
+   else {
+      p[1] = (GLfloat) params[1];
+      p[2] = (GLfloat) params[2];
+      p[3] = (GLfloat) params[3];
+   }
+   _mesa_TexGenfv(coord, pname, p);
+}
+
+
+void GLAPIENTRY
+_mesa_TexGend(GLenum coord, GLenum pname, GLdouble param )
+{
+   GLfloat p = (GLfloat) param;
+   _mesa_TexGenfv( coord, pname, &p );
+}
+
+
+void GLAPIENTRY
+_mesa_TexGendv(GLenum coord, GLenum pname, const GLdouble *params )
+{
+   GLfloat p[4];
+   p[0] = (GLfloat) params[0];
+   if (pname == GL_TEXTURE_GEN_MODE) {
+      p[1] = p[2] = p[3] = 0.0F;
+   }
+   else {
+      p[1] = (GLfloat) params[1];
+      p[2] = (GLfloat) params[2];
+      p[3] = (GLfloat) params[3];
+   }
+   _mesa_TexGenfv( coord, pname, p );
+}
+
+
+void GLAPIENTRY
+_mesa_TexGenf( GLenum coord, GLenum pname, GLfloat param )
+{
+   _mesa_TexGenfv(coord, pname, &param);
+}
+
+
+void GLAPIENTRY
+_mesa_TexGeni( GLenum coord, GLenum pname, GLint param )
+{
+   _mesa_TexGeniv( coord, pname, &param );
+}
+
+
+
+void GLAPIENTRY
+_mesa_GetTexGendv( GLenum coord, GLenum pname, GLdouble *params )
+{
+   const struct gl_texture_unit *texUnit;
+   GET_CURRENT_CONTEXT(ctx);
+   ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+   if (ctx->Texture.CurrentUnit >= ctx->Const.MaxTextureCoordUnits) {
+      _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexGendv(current unit)");
+      return;
+   }
+
+   texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
+
+   switch (coord) {
+      case GL_S:
+         if (pname==GL_TEXTURE_GEN_MODE) {
+            params[0] = ENUM_TO_DOUBLE(texUnit->GenModeS);
+        }
+        else if (pname==GL_OBJECT_PLANE) {
+            COPY_4V( params, texUnit->ObjectPlaneS );
+        }
+        else if (pname==GL_EYE_PLANE) {
+            COPY_4V( params, texUnit->EyePlaneS );
+        }
+        else {
+           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGendv(pname)" );
+           return;
+        }
+        break;
+      case GL_T:
+         if (pname==GL_TEXTURE_GEN_MODE) {
+            params[0] = ENUM_TO_DOUBLE(texUnit->GenModeT);
+        }
+        else if (pname==GL_OBJECT_PLANE) {
+            COPY_4V( params, texUnit->ObjectPlaneT );
+        }
+        else if (pname==GL_EYE_PLANE) {
+            COPY_4V( params, texUnit->EyePlaneT );
+        }
+        else {
+           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGendv(pname)" );
+           return;
+        }
+        break;
+      case GL_R:
+         if (pname==GL_TEXTURE_GEN_MODE) {
+            params[0] = ENUM_TO_DOUBLE(texUnit->GenModeR);
+        }
+        else if (pname==GL_OBJECT_PLANE) {
+            COPY_4V( params, texUnit->ObjectPlaneR );
+        }
+        else if (pname==GL_EYE_PLANE) {
+            COPY_4V( params, texUnit->EyePlaneR );
+        }
+        else {
+           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGendv(pname)" );
+           return;
+        }
+        break;
+      case GL_Q:
+         if (pname==GL_TEXTURE_GEN_MODE) {
+            params[0] = ENUM_TO_DOUBLE(texUnit->GenModeQ);
+        }
+        else if (pname==GL_OBJECT_PLANE) {
+            COPY_4V( params, texUnit->ObjectPlaneQ );
+        }
+        else if (pname==GL_EYE_PLANE) {
+            COPY_4V( params, texUnit->EyePlaneQ );
+        }
+        else {
+           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGendv(pname)" );
+           return;
+        }
+        break;
+      default:
+         _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGendv(coord)" );
+        return;
+   }
+}
+
+
+
+void GLAPIENTRY
+_mesa_GetTexGenfv( GLenum coord, GLenum pname, GLfloat *params )
+{
+   const struct gl_texture_unit *texUnit;
+   GET_CURRENT_CONTEXT(ctx);
+   ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+   if (ctx->Texture.CurrentUnit >= ctx->Const.MaxTextureCoordUnits) {
+      _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexGenfv(current unit)");
+      return;
+   }
+
+   texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
+
+   switch (coord) {
+      case GL_S:
+         if (pname==GL_TEXTURE_GEN_MODE) {
+            params[0] = ENUM_TO_FLOAT(texUnit->GenModeS);
+        }
+        else if (pname==GL_OBJECT_PLANE) {
+            COPY_4V( params, texUnit->ObjectPlaneS );
+        }
+        else if (pname==GL_EYE_PLANE) {
+            COPY_4V( params, texUnit->EyePlaneS );
+        }
+        else {
+           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGenfv(pname)" );
+           return;
+        }
+        break;
+      case GL_T:
+         if (pname==GL_TEXTURE_GEN_MODE) {
+            params[0] = ENUM_TO_FLOAT(texUnit->GenModeT);
+        }
+        else if (pname==GL_OBJECT_PLANE) {
+            COPY_4V( params, texUnit->ObjectPlaneT );
+        }
+        else if (pname==GL_EYE_PLANE) {
+            COPY_4V( params, texUnit->EyePlaneT );
+        }
+        else {
+           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGenfv(pname)" );
+           return;
+        }
+        break;
+      case GL_R:
+         if (pname==GL_TEXTURE_GEN_MODE) {
+            params[0] = ENUM_TO_FLOAT(texUnit->GenModeR);
+        }
+        else if (pname==GL_OBJECT_PLANE) {
+            COPY_4V( params, texUnit->ObjectPlaneR );
+        }
+        else if (pname==GL_EYE_PLANE) {
+            COPY_4V( params, texUnit->EyePlaneR );
+        }
+        else {
+           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGenfv(pname)" );
+           return;
+        }
+        break;
+      case GL_Q:
+         if (pname==GL_TEXTURE_GEN_MODE) {
+            params[0] = ENUM_TO_FLOAT(texUnit->GenModeQ);
+        }
+        else if (pname==GL_OBJECT_PLANE) {
+            COPY_4V( params, texUnit->ObjectPlaneQ );
+        }
+        else if (pname==GL_EYE_PLANE) {
+            COPY_4V( params, texUnit->EyePlaneQ );
+        }
+        else {
+           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGenfv(pname)" );
+           return;
+        }
+        break;
+      default:
+         _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGenfv(coord)" );
+        return;
+   }
+}
+
+
+
+void GLAPIENTRY
+_mesa_GetTexGeniv( GLenum coord, GLenum pname, GLint *params )
+{
+   const struct gl_texture_unit *texUnit;
+   GET_CURRENT_CONTEXT(ctx);
+   ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+   if (ctx->Texture.CurrentUnit >= ctx->Const.MaxTextureCoordUnits) {
+      _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexGeniv(current unit)");
+      return;
+   }
+
+   texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
+
+   switch (coord) {
+      case GL_S:
+         if (pname==GL_TEXTURE_GEN_MODE) {
+            params[0] = texUnit->GenModeS;
+        }
+        else if (pname==GL_OBJECT_PLANE) {
+            params[0] = (GLint) texUnit->ObjectPlaneS[0];
+            params[1] = (GLint) texUnit->ObjectPlaneS[1];
+            params[2] = (GLint) texUnit->ObjectPlaneS[2];
+            params[3] = (GLint) texUnit->ObjectPlaneS[3];
+        }
+        else if (pname==GL_EYE_PLANE) {
+            params[0] = (GLint) texUnit->EyePlaneS[0];
+            params[1] = (GLint) texUnit->EyePlaneS[1];
+            params[2] = (GLint) texUnit->EyePlaneS[2];
+            params[3] = (GLint) texUnit->EyePlaneS[3];
+        }
+        else {
+           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGeniv(pname)" );
+           return;
+        }
+        break;
+      case GL_T:
+         if (pname==GL_TEXTURE_GEN_MODE) {
+            params[0] = texUnit->GenModeT;
+        }
+        else if (pname==GL_OBJECT_PLANE) {
+            params[0] = (GLint) texUnit->ObjectPlaneT[0];
+            params[1] = (GLint) texUnit->ObjectPlaneT[1];
+            params[2] = (GLint) texUnit->ObjectPlaneT[2];
+            params[3] = (GLint) texUnit->ObjectPlaneT[3];
+        }
+        else if (pname==GL_EYE_PLANE) {
+            params[0] = (GLint) texUnit->EyePlaneT[0];
+            params[1] = (GLint) texUnit->EyePlaneT[1];
+            params[2] = (GLint) texUnit->EyePlaneT[2];
+            params[3] = (GLint) texUnit->EyePlaneT[3];
+        }
+        else {
+           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGeniv(pname)" );
+           return;
+        }
+        break;
+      case GL_R:
+         if (pname==GL_TEXTURE_GEN_MODE) {
+            params[0] = texUnit->GenModeR;
+        }
+        else if (pname==GL_OBJECT_PLANE) {
+            params[0] = (GLint) texUnit->ObjectPlaneR[0];
+            params[1] = (GLint) texUnit->ObjectPlaneR[1];
+            params[2] = (GLint) texUnit->ObjectPlaneR[2];
+            params[3] = (GLint) texUnit->ObjectPlaneR[3];
+        }
+        else if (pname==GL_EYE_PLANE) {
+            params[0] = (GLint) texUnit->EyePlaneR[0];
+            params[1] = (GLint) texUnit->EyePlaneR[1];
+            params[2] = (GLint) texUnit->EyePlaneR[2];
+            params[3] = (GLint) texUnit->EyePlaneR[3];
+        }
+        else {
+           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGeniv(pname)" );
+           return;
+        }
+        break;
+      case GL_Q:
+         if (pname==GL_TEXTURE_GEN_MODE) {
+            params[0] = texUnit->GenModeQ;
+        }
+        else if (pname==GL_OBJECT_PLANE) {
+            params[0] = (GLint) texUnit->ObjectPlaneQ[0];
+            params[1] = (GLint) texUnit->ObjectPlaneQ[1];
+            params[2] = (GLint) texUnit->ObjectPlaneQ[2];
+            params[3] = (GLint) texUnit->ObjectPlaneQ[3];
+        }
+        else if (pname==GL_EYE_PLANE) {
+            params[0] = (GLint) texUnit->EyePlaneQ[0];
+            params[1] = (GLint) texUnit->EyePlaneQ[1];
+            params[2] = (GLint) texUnit->EyePlaneQ[2];
+            params[3] = (GLint) texUnit->EyePlaneQ[3];
+         }
+        else {
+           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGeniv(pname)" );
+           return;
+        }
+        break;
+      default:
+         _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGeniv(coord)" );
+        return;
+   }
+}
+
+
diff --git a/src/mesa/main/texgen.h b/src/mesa/main/texgen.h
new file mode 100644 (file)
index 0000000..073588e
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Mesa 3-D graphics library
+ * Version:  7.1
+ *
+ * Copyright (C) 1999-2008  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"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * 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.
+ */
+
+
+#ifndef TEXGEN_H
+#define TEXGEN_H
+
+
+#include "main/glheader.h"
+
+
+extern void GLAPIENTRY
+_mesa_GetTexGendv( GLenum coord, GLenum pname, GLdouble *params );
+
+extern void GLAPIENTRY
+_mesa_GetTexGenfv( GLenum coord, GLenum pname, GLfloat *params );
+
+extern void GLAPIENTRY
+_mesa_GetTexGeniv( GLenum coord, GLenum pname, GLint *params );
+
+extern void GLAPIENTRY
+_mesa_TexGend( GLenum coord, GLenum pname, GLdouble param );
+
+extern void GLAPIENTRY
+_mesa_TexGendv( GLenum coord, GLenum pname, const GLdouble *params );
+
+extern void GLAPIENTRY
+_mesa_TexGenf( GLenum coord, GLenum pname, GLfloat param );
+
+extern void GLAPIENTRY
+_mesa_TexGenfv( GLenum coord, GLenum pname, const GLfloat *params );
+
+extern void GLAPIENTRY
+_mesa_TexGeni( GLenum coord, GLenum pname, GLint param );
+
+extern void GLAPIENTRY
+_mesa_TexGeniv( GLenum coord, GLenum pname, const GLint *params );
+
+
+
+#endif /* TEXGEN_H */
index 2d5e34f5b594e6aa80dde633e369cac86c767398..a58c1db4a57acd169ddc1a4039a213dafe6314c3 100644 (file)
@@ -2121,574 +2121,6 @@ _mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params )
 
 
 
-
-/**********************************************************************/
-/*                    Texture Coord Generation                        */
-/**********************************************************************/
-
-#if FEATURE_texgen
-void GLAPIENTRY
-_mesa_TexGenfv( GLenum coord, GLenum pname, const GLfloat *params )
-{
-   GET_CURRENT_CONTEXT(ctx);
-   struct gl_texture_unit *texUnit;
-   ASSERT_OUTSIDE_BEGIN_END(ctx);
-
-   if (MESA_VERBOSE&(VERBOSE_API|VERBOSE_TEXTURE))
-      _mesa_debug(ctx, "glTexGen %s %s %.1f(%s)...\n",
-                  _mesa_lookup_enum_by_nr(coord),
-                  _mesa_lookup_enum_by_nr(pname),
-                  *params,
-                 _mesa_lookup_enum_by_nr((GLenum) (GLint) *params));
-
-   if (ctx->Texture.CurrentUnit >= ctx->Const.MaxTextureCoordUnits) {
-      _mesa_error(ctx, GL_INVALID_OPERATION, "glTexGen(current unit)");
-      return;
-   }
-
-   texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
-
-   switch (coord) {
-      case GL_S:
-         if (pname==GL_TEXTURE_GEN_MODE) {
-           GLenum mode = (GLenum) (GLint) *params;
-           GLbitfield bits;
-           switch (mode) {
-           case GL_OBJECT_LINEAR:
-              bits = TEXGEN_OBJ_LINEAR;
-              break;
-           case GL_EYE_LINEAR:
-              bits = TEXGEN_EYE_LINEAR;
-              break;
-           case GL_REFLECTION_MAP_NV:
-              bits = TEXGEN_REFLECTION_MAP_NV;
-              break;
-           case GL_NORMAL_MAP_NV:
-              bits = TEXGEN_NORMAL_MAP_NV;
-              break;
-           case GL_SPHERE_MAP:
-              bits = TEXGEN_SPHERE_MAP;
-              break;
-           default:
-              _mesa_error( ctx, GL_INVALID_ENUM, "glTexGenfv(param)" );
-              return;
-           }
-           if (texUnit->GenModeS == mode)
-              return;
-           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
-           texUnit->GenModeS = mode;
-           texUnit->_GenBitS = bits;
-        }
-        else if (pname==GL_OBJECT_PLANE) {
-           if (TEST_EQ_4V(texUnit->ObjectPlaneS, params))
-               return;
-           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
-            COPY_4FV(texUnit->ObjectPlaneS, params);
-        }
-        else if (pname==GL_EYE_PLANE) {
-           GLfloat tmp[4];
-            /* Transform plane equation by the inverse modelview matrix */
-            if (_math_matrix_is_dirty(ctx->ModelviewMatrixStack.Top)) {
-               _math_matrix_analyse( ctx->ModelviewMatrixStack.Top );
-            }
-            _mesa_transform_vector( tmp, params, ctx->ModelviewMatrixStack.Top->inv );
-           if (TEST_EQ_4V(texUnit->EyePlaneS, tmp))
-              return;
-           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
-           COPY_4FV(texUnit->EyePlaneS, tmp);
-        }
-        else {
-           _mesa_error( ctx, GL_INVALID_ENUM, "glTexGenfv(pname)" );
-           return;
-        }
-        break;
-      case GL_T:
-         if (pname==GL_TEXTURE_GEN_MODE) {
-           GLenum mode = (GLenum) (GLint) *params;
-           GLbitfield bitt;
-           switch (mode) {
-               case GL_OBJECT_LINEAR:
-                  bitt = TEXGEN_OBJ_LINEAR;
-                  break;
-               case GL_EYE_LINEAR:
-                  bitt = TEXGEN_EYE_LINEAR;
-                  break;
-               case GL_REFLECTION_MAP_NV:
-                  bitt = TEXGEN_REFLECTION_MAP_NV;
-                  break;
-               case GL_NORMAL_MAP_NV:
-                  bitt = TEXGEN_NORMAL_MAP_NV;
-                  break;
-               case GL_SPHERE_MAP:
-                  bitt = TEXGEN_SPHERE_MAP;
-                  break;
-               default:
-                  _mesa_error( ctx, GL_INVALID_ENUM, "glTexGenfv(param)" );
-                  return;
-           }
-           if (texUnit->GenModeT == mode)
-              return;
-           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
-           texUnit->GenModeT = mode;
-           texUnit->_GenBitT = bitt;
-        }
-        else if (pname==GL_OBJECT_PLANE) {
-           if (TEST_EQ_4V(texUnit->ObjectPlaneT, params))
-               return;
-           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
-            COPY_4FV(texUnit->ObjectPlaneT, params);
-        }
-        else if (pname==GL_EYE_PLANE) {
-           GLfloat tmp[4];
-            /* Transform plane equation by the inverse modelview matrix */
-           if (_math_matrix_is_dirty(ctx->ModelviewMatrixStack.Top)) {
-               _math_matrix_analyse( ctx->ModelviewMatrixStack.Top );
-            }
-            _mesa_transform_vector( tmp, params, ctx->ModelviewMatrixStack.Top->inv );
-           if (TEST_EQ_4V(texUnit->EyePlaneT, tmp))
-               return;
-           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
-           COPY_4FV(texUnit->EyePlaneT, tmp);
-        }
-        else {
-           _mesa_error( ctx, GL_INVALID_ENUM, "glTexGenfv(pname)" );
-           return;
-        }
-        break;
-      case GL_R:
-         if (pname==GL_TEXTURE_GEN_MODE) {
-           GLenum mode = (GLenum) (GLint) *params;
-           GLbitfield bitr;
-           switch (mode) {
-           case GL_OBJECT_LINEAR:
-              bitr = TEXGEN_OBJ_LINEAR;
-              break;
-           case GL_REFLECTION_MAP_NV:
-              bitr = TEXGEN_REFLECTION_MAP_NV;
-              break;
-           case GL_NORMAL_MAP_NV:
-              bitr = TEXGEN_NORMAL_MAP_NV;
-              break;
-           case GL_EYE_LINEAR:
-              bitr = TEXGEN_EYE_LINEAR;
-              break;
-           default:
-              _mesa_error( ctx, GL_INVALID_ENUM, "glTexGenfv(param)" );
-              return;
-           }
-           if (texUnit->GenModeR == mode)
-              return;
-           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
-           texUnit->GenModeR = mode;
-           texUnit->_GenBitR = bitr;
-        }
-        else if (pname==GL_OBJECT_PLANE) {
-           if (TEST_EQ_4V(texUnit->ObjectPlaneR, params))
-               return;
-           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
-           COPY_4FV(texUnit->ObjectPlaneR, params);
-        }
-        else if (pname==GL_EYE_PLANE) {
-           GLfloat tmp[4];
-            /* Transform plane equation by the inverse modelview matrix */
-            if (_math_matrix_is_dirty(ctx->ModelviewMatrixStack.Top)) {
-               _math_matrix_analyse( ctx->ModelviewMatrixStack.Top );
-            }
-            _mesa_transform_vector( tmp, params, ctx->ModelviewMatrixStack.Top->inv );
-           if (TEST_EQ_4V(texUnit->EyePlaneR, tmp))
-              return;
-           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
-           COPY_4FV(texUnit->EyePlaneR, tmp);
-        }
-        else {
-           _mesa_error( ctx, GL_INVALID_ENUM, "glTexGenfv(pname)" );
-           return;
-        }
-        break;
-      case GL_Q:
-         if (pname==GL_TEXTURE_GEN_MODE) {
-           GLenum mode = (GLenum) (GLint) *params;
-           GLbitfield bitq;
-           switch (mode) {
-           case GL_OBJECT_LINEAR:
-              bitq = TEXGEN_OBJ_LINEAR;
-              break;
-           case GL_EYE_LINEAR:
-              bitq = TEXGEN_EYE_LINEAR;
-              break;
-           default:
-              _mesa_error( ctx, GL_INVALID_ENUM, "glTexGenfv(param)" );
-              return;
-           }
-           if (texUnit->GenModeQ == mode)
-              return;
-           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
-           texUnit->GenModeQ = mode;
-           texUnit->_GenBitQ = bitq;
-        }
-        else if (pname==GL_OBJECT_PLANE) {
-           if (TEST_EQ_4V(texUnit->ObjectPlaneQ, params))
-               return;
-           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
-            COPY_4FV(texUnit->ObjectPlaneQ, params);
-        }
-        else if (pname==GL_EYE_PLANE) {
-           GLfloat tmp[4];
-            /* Transform plane equation by the inverse modelview matrix */
-            if (_math_matrix_is_dirty(ctx->ModelviewMatrixStack.Top)) {
-               _math_matrix_analyse( ctx->ModelviewMatrixStack.Top );
-            }
-            _mesa_transform_vector( tmp, params, ctx->ModelviewMatrixStack.Top->inv );
-           if (TEST_EQ_4V(texUnit->EyePlaneQ, tmp))
-              return;
-           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
-           COPY_4FV(texUnit->EyePlaneQ, tmp);
-        }
-        else {
-           _mesa_error( ctx, GL_INVALID_ENUM, "glTexGenfv(pname)" );
-           return;
-        }
-        break;
-      default:
-         _mesa_error( ctx, GL_INVALID_ENUM, "glTexGenfv(coord)" );
-        return;
-   }
-
-   if (ctx->Driver.TexGen)
-      ctx->Driver.TexGen( ctx, coord, pname, params );
-}
-
-
-void GLAPIENTRY
-_mesa_TexGeniv(GLenum coord, GLenum pname, const GLint *params )
-{
-   GLfloat p[4];
-   p[0] = (GLfloat) params[0];
-   if (pname == GL_TEXTURE_GEN_MODE) {
-      p[1] = p[2] = p[3] = 0.0F;
-   }
-   else {
-      p[1] = (GLfloat) params[1];
-      p[2] = (GLfloat) params[2];
-      p[3] = (GLfloat) params[3];
-   }
-   _mesa_TexGenfv(coord, pname, p);
-}
-
-
-void GLAPIENTRY
-_mesa_TexGend(GLenum coord, GLenum pname, GLdouble param )
-{
-   GLfloat p = (GLfloat) param;
-   _mesa_TexGenfv( coord, pname, &p );
-}
-
-
-void GLAPIENTRY
-_mesa_TexGendv(GLenum coord, GLenum pname, const GLdouble *params )
-{
-   GLfloat p[4];
-   p[0] = (GLfloat) params[0];
-   if (pname == GL_TEXTURE_GEN_MODE) {
-      p[1] = p[2] = p[3] = 0.0F;
-   }
-   else {
-      p[1] = (GLfloat) params[1];
-      p[2] = (GLfloat) params[2];
-      p[3] = (GLfloat) params[3];
-   }
-   _mesa_TexGenfv( coord, pname, p );
-}
-
-
-void GLAPIENTRY
-_mesa_TexGenf( GLenum coord, GLenum pname, GLfloat param )
-{
-   _mesa_TexGenfv(coord, pname, &param);
-}
-
-
-void GLAPIENTRY
-_mesa_TexGeni( GLenum coord, GLenum pname, GLint param )
-{
-   _mesa_TexGeniv( coord, pname, &param );
-}
-
-
-
-void GLAPIENTRY
-_mesa_GetTexGendv( GLenum coord, GLenum pname, GLdouble *params )
-{
-   const struct gl_texture_unit *texUnit;
-   GET_CURRENT_CONTEXT(ctx);
-   ASSERT_OUTSIDE_BEGIN_END(ctx);
-
-   if (ctx->Texture.CurrentUnit >= ctx->Const.MaxTextureCoordUnits) {
-      _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexGendv(current unit)");
-      return;
-   }
-
-   texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
-
-   switch (coord) {
-      case GL_S:
-         if (pname==GL_TEXTURE_GEN_MODE) {
-            params[0] = ENUM_TO_DOUBLE(texUnit->GenModeS);
-        }
-        else if (pname==GL_OBJECT_PLANE) {
-            COPY_4V( params, texUnit->ObjectPlaneS );
-        }
-        else if (pname==GL_EYE_PLANE) {
-            COPY_4V( params, texUnit->EyePlaneS );
-        }
-        else {
-           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGendv(pname)" );
-           return;
-        }
-        break;
-      case GL_T:
-         if (pname==GL_TEXTURE_GEN_MODE) {
-            params[0] = ENUM_TO_DOUBLE(texUnit->GenModeT);
-        }
-        else if (pname==GL_OBJECT_PLANE) {
-            COPY_4V( params, texUnit->ObjectPlaneT );
-        }
-        else if (pname==GL_EYE_PLANE) {
-            COPY_4V( params, texUnit->EyePlaneT );
-        }
-        else {
-           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGendv(pname)" );
-           return;
-        }
-        break;
-      case GL_R:
-         if (pname==GL_TEXTURE_GEN_MODE) {
-            params[0] = ENUM_TO_DOUBLE(texUnit->GenModeR);
-        }
-        else if (pname==GL_OBJECT_PLANE) {
-            COPY_4V( params, texUnit->ObjectPlaneR );
-        }
-        else if (pname==GL_EYE_PLANE) {
-            COPY_4V( params, texUnit->EyePlaneR );
-        }
-        else {
-           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGendv(pname)" );
-           return;
-        }
-        break;
-      case GL_Q:
-         if (pname==GL_TEXTURE_GEN_MODE) {
-            params[0] = ENUM_TO_DOUBLE(texUnit->GenModeQ);
-        }
-        else if (pname==GL_OBJECT_PLANE) {
-            COPY_4V( params, texUnit->ObjectPlaneQ );
-        }
-        else if (pname==GL_EYE_PLANE) {
-            COPY_4V( params, texUnit->EyePlaneQ );
-        }
-        else {
-           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGendv(pname)" );
-           return;
-        }
-        break;
-      default:
-         _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGendv(coord)" );
-        return;
-   }
-}
-
-
-
-void GLAPIENTRY
-_mesa_GetTexGenfv( GLenum coord, GLenum pname, GLfloat *params )
-{
-   const struct gl_texture_unit *texUnit;
-   GET_CURRENT_CONTEXT(ctx);
-   ASSERT_OUTSIDE_BEGIN_END(ctx);
-
-   if (ctx->Texture.CurrentUnit >= ctx->Const.MaxTextureCoordUnits) {
-      _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexGenfv(current unit)");
-      return;
-   }
-
-   texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
-
-   switch (coord) {
-      case GL_S:
-         if (pname==GL_TEXTURE_GEN_MODE) {
-            params[0] = ENUM_TO_FLOAT(texUnit->GenModeS);
-        }
-        else if (pname==GL_OBJECT_PLANE) {
-            COPY_4V( params, texUnit->ObjectPlaneS );
-        }
-        else if (pname==GL_EYE_PLANE) {
-            COPY_4V( params, texUnit->EyePlaneS );
-        }
-        else {
-           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGenfv(pname)" );
-           return;
-        }
-        break;
-      case GL_T:
-         if (pname==GL_TEXTURE_GEN_MODE) {
-            params[0] = ENUM_TO_FLOAT(texUnit->GenModeT);
-        }
-        else if (pname==GL_OBJECT_PLANE) {
-            COPY_4V( params, texUnit->ObjectPlaneT );
-        }
-        else if (pname==GL_EYE_PLANE) {
-            COPY_4V( params, texUnit->EyePlaneT );
-        }
-        else {
-           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGenfv(pname)" );
-           return;
-        }
-        break;
-      case GL_R:
-         if (pname==GL_TEXTURE_GEN_MODE) {
-            params[0] = ENUM_TO_FLOAT(texUnit->GenModeR);
-        }
-        else if (pname==GL_OBJECT_PLANE) {
-            COPY_4V( params, texUnit->ObjectPlaneR );
-        }
-        else if (pname==GL_EYE_PLANE) {
-            COPY_4V( params, texUnit->EyePlaneR );
-        }
-        else {
-           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGenfv(pname)" );
-           return;
-        }
-        break;
-      case GL_Q:
-         if (pname==GL_TEXTURE_GEN_MODE) {
-            params[0] = ENUM_TO_FLOAT(texUnit->GenModeQ);
-        }
-        else if (pname==GL_OBJECT_PLANE) {
-            COPY_4V( params, texUnit->ObjectPlaneQ );
-        }
-        else if (pname==GL_EYE_PLANE) {
-            COPY_4V( params, texUnit->EyePlaneQ );
-        }
-        else {
-           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGenfv(pname)" );
-           return;
-        }
-        break;
-      default:
-         _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGenfv(coord)" );
-        return;
-   }
-}
-
-
-
-void GLAPIENTRY
-_mesa_GetTexGeniv( GLenum coord, GLenum pname, GLint *params )
-{
-   const struct gl_texture_unit *texUnit;
-   GET_CURRENT_CONTEXT(ctx);
-   ASSERT_OUTSIDE_BEGIN_END(ctx);
-
-   if (ctx->Texture.CurrentUnit >= ctx->Const.MaxTextureCoordUnits) {
-      _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexGeniv(current unit)");
-      return;
-   }
-
-   texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
-
-   switch (coord) {
-      case GL_S:
-         if (pname==GL_TEXTURE_GEN_MODE) {
-            params[0] = texUnit->GenModeS;
-        }
-        else if (pname==GL_OBJECT_PLANE) {
-            params[0] = (GLint) texUnit->ObjectPlaneS[0];
-            params[1] = (GLint) texUnit->ObjectPlaneS[1];
-            params[2] = (GLint) texUnit->ObjectPlaneS[2];
-            params[3] = (GLint) texUnit->ObjectPlaneS[3];
-        }
-        else if (pname==GL_EYE_PLANE) {
-            params[0] = (GLint) texUnit->EyePlaneS[0];
-            params[1] = (GLint) texUnit->EyePlaneS[1];
-            params[2] = (GLint) texUnit->EyePlaneS[2];
-            params[3] = (GLint) texUnit->EyePlaneS[3];
-        }
-        else {
-           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGeniv(pname)" );
-           return;
-        }
-        break;
-      case GL_T:
-         if (pname==GL_TEXTURE_GEN_MODE) {
-            params[0] = texUnit->GenModeT;
-        }
-        else if (pname==GL_OBJECT_PLANE) {
-            params[0] = (GLint) texUnit->ObjectPlaneT[0];
-            params[1] = (GLint) texUnit->ObjectPlaneT[1];
-            params[2] = (GLint) texUnit->ObjectPlaneT[2];
-            params[3] = (GLint) texUnit->ObjectPlaneT[3];
-        }
-        else if (pname==GL_EYE_PLANE) {
-            params[0] = (GLint) texUnit->EyePlaneT[0];
-            params[1] = (GLint) texUnit->EyePlaneT[1];
-            params[2] = (GLint) texUnit->EyePlaneT[2];
-            params[3] = (GLint) texUnit->EyePlaneT[3];
-        }
-        else {
-           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGeniv(pname)" );
-           return;
-        }
-        break;
-      case GL_R:
-         if (pname==GL_TEXTURE_GEN_MODE) {
-            params[0] = texUnit->GenModeR;
-        }
-        else if (pname==GL_OBJECT_PLANE) {
-            params[0] = (GLint) texUnit->ObjectPlaneR[0];
-            params[1] = (GLint) texUnit->ObjectPlaneR[1];
-            params[2] = (GLint) texUnit->ObjectPlaneR[2];
-            params[3] = (GLint) texUnit->ObjectPlaneR[3];
-        }
-        else if (pname==GL_EYE_PLANE) {
-            params[0] = (GLint) texUnit->EyePlaneR[0];
-            params[1] = (GLint) texUnit->EyePlaneR[1];
-            params[2] = (GLint) texUnit->EyePlaneR[2];
-            params[3] = (GLint) texUnit->EyePlaneR[3];
-        }
-        else {
-           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGeniv(pname)" );
-           return;
-        }
-        break;
-      case GL_Q:
-         if (pname==GL_TEXTURE_GEN_MODE) {
-            params[0] = texUnit->GenModeQ;
-        }
-        else if (pname==GL_OBJECT_PLANE) {
-            params[0] = (GLint) texUnit->ObjectPlaneQ[0];
-            params[1] = (GLint) texUnit->ObjectPlaneQ[1];
-            params[2] = (GLint) texUnit->ObjectPlaneQ[2];
-            params[3] = (GLint) texUnit->ObjectPlaneQ[3];
-        }
-        else if (pname==GL_EYE_PLANE) {
-            params[0] = (GLint) texUnit->EyePlaneQ[0];
-            params[1] = (GLint) texUnit->EyePlaneQ[1];
-            params[2] = (GLint) texUnit->EyePlaneQ[2];
-            params[3] = (GLint) texUnit->EyePlaneQ[3];
-         }
-        else {
-           _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGeniv(pname)" );
-           return;
-        }
-        break;
-      default:
-         _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGeniv(coord)" );
-        return;
-   }
-}
-#endif
-
-
 /* GL_ARB_multitexture */
 void GLAPIENTRY
 _mesa_ActiveTextureARB(GLenum texture)
index b978654116e1437673394035326aacd48dab412c..ca205a3a579ec1d10235ef84665d127b1d3ca03a 100644 (file)
@@ -54,15 +54,6 @@ _mesa_GetTexEnvfv( GLenum target, GLenum pname, GLfloat *params );
 extern void GLAPIENTRY
 _mesa_GetTexEnviv( GLenum target, GLenum pname, GLint *params );
 
-extern void GLAPIENTRY
-_mesa_GetTexGendv( GLenum coord, GLenum pname, GLdouble *params );
-
-extern void GLAPIENTRY
-_mesa_GetTexGenfv( GLenum coord, GLenum pname, GLfloat *params );
-
-extern void GLAPIENTRY
-_mesa_GetTexGeniv( GLenum coord, GLenum pname, GLint *params );
-
 extern void GLAPIENTRY
 _mesa_GetTexLevelParameterfv( GLenum target, GLint level,
                               GLenum pname, GLfloat *params );
@@ -105,25 +96,6 @@ extern void GLAPIENTRY
 _mesa_TexParameteriv( GLenum target, GLenum pname, const GLint *params );
 
 
-extern void GLAPIENTRY
-_mesa_TexGend( GLenum coord, GLenum pname, GLdouble param );
-
-extern void GLAPIENTRY
-_mesa_TexGendv( GLenum coord, GLenum pname, const GLdouble *params );
-
-extern void GLAPIENTRY
-_mesa_TexGenf( GLenum coord, GLenum pname, GLfloat param );
-
-extern void GLAPIENTRY
-_mesa_TexGenfv( GLenum coord, GLenum pname, const GLfloat *params );
-
-extern void GLAPIENTRY
-_mesa_TexGeni( GLenum coord, GLenum pname, GLint param );
-
-extern void GLAPIENTRY
-_mesa_TexGeniv( GLenum coord, GLenum pname, const GLint *params );
-
-
 /*
  * GL_ARB_multitexture
  */
index 30348a4cb2f788957377b4bf053824f422a062ec..2cd77517e24d217d2c45c5b4cc0cc2f373078578 100644 (file)
@@ -63,6 +63,7 @@ MAIN_SOURCES = \
        main/texcompress_fxt1.c \
        main/texenvprogram.c \
        main/texformat.c \
+       main/texgen.c \
        main/teximage.c \
        main/texobj.c \
        main/texrender.c \