added GL_EXT_texture_env_add extension
authorBrian Paul <brian.paul@tungstengraphics.com>
Fri, 12 Nov 1999 02:07:56 +0000 (02:07 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Fri, 12 Nov 1999 02:07:56 +0000 (02:07 +0000)
include/GL/gl.h
src/mesa/main/extensions.c
src/mesa/main/texstate.c

index 22477924deebd4c38e494a10de6390085731b107..a0f71bed0b97f7ed10c0c4243de4c9779fa325cb 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: gl.h,v 1.20 1999/11/11 17:48:32 brianp Exp $ */
+/* $Id: gl.h,v 1.21 1999/11/12 02:08:59 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -2308,6 +2308,17 @@ GLAPI void GLAPIENTRY glResizeBuffersMESA( void );
 
 
 
+/*
+ * GL_EXT_texture_env_add
+ */
+#ifndef GL_EXT_texture_env_add
+#define GL_EXT_texture_env_add 1
+
+/* No new tokens or functions */
+
+#endif /* GL_EXT_texture_env_add */
+
+
 
 
 #if defined(__BEOS__) || defined(__QUICKDRAW__)
index c8b154d0613051be97d1cb81641354f85f83d812..98a7551191d16b9d9b0d841fb6b51485d3e35e8c 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: extensions.c,v 1.12 1999/11/12 02:05:46 brianp Exp $ */
+/* $Id: extensions.c,v 1.13 1999/11/12 02:07:56 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -74,6 +74,7 @@ static struct { int enabled; const char *name; } default_extensions[] = {
    { DEFAULT_ON,     "GL_EXT_compiled_vertex_array" },
    { DEFAULT_OFF,    "GL_EXT_vertex_array_set" },
    { DEFAULT_ON,     "GL_EXT_clip_volume_hint" },
+   { DEFAULT_ON,     "GL_EXT_texture_env_add" },
 };
 
 
index 7e5ce3085a03f869fd61d250d436fd4199e2c6a4..fa893e7f2d7bdcc92b8ad4d2154a96ff412b744a 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: texstate.c,v 1.5 1999/11/11 01:22:28 brianp Exp $ */
+/* $Id: texstate.c,v 1.6 1999/11/12 02:07:56 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -31,6 +31,7 @@
 #include "glheader.h"
 #include "context.h"
 #include "enums.h"
+#include "extensions.h"
 #include "macros.h"
 #include "matrix.h"
 #include "texobj.h"
@@ -84,10 +85,16 @@ _mesa_TexEnvfv( GLenum target, GLenum pname, const GLfloat *param )
    if (pname==GL_TEXTURE_ENV_MODE) {
       GLenum mode = (GLenum) (GLint) *param;
       switch (mode) {
-        case GL_MODULATE:
-        case GL_BLEND:
-        case GL_DECAL:
-        case GL_REPLACE:
+         case GL_ADD:
+            if (!gl_extension_is_enabled(ctx, "GL_EXT_texture_env_add")) {
+               gl_error(ctx, GL_INVALID_ENUM, "glTexEnv(param)");
+               return;
+            }
+            /* FALL-THROUGH */
+         case GL_MODULATE:
+         case GL_BLEND:
+         case GL_DECAL:
+         case GL_REPLACE:
            /* A small optimization for drivers */ 
            if (texUnit->EnvMode == mode)
                return;