work on GL_SGI_color_table
[mesa.git] / src / mesa / main / state.c
index 667953a65caebb812fa088a43235e6b74465f80d..fd718372469c4e605afa1bf9c1e6937066980dd9 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: state.c,v 1.4 2000/02/24 22:04:03 brianp Exp $ */
+/* $Id: state.c,v 1.9 2000/04/09 17:08:09 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -64,6 +64,7 @@
 #include "mmath.h"
 #include "pipeline.h"
 #include "pixel.h"
+#include "pixeltex.h"
 #include "points.h"
 #include "polygon.h"
 #include "quads.h"
@@ -525,6 +526,17 @@ _mesa_init_exec_table(struct _glapi_table *exec)
    exec->GetColorTableParameterfvEXT = _mesa_GetColorTableParameterfv;
    exec->GetColorTableParameterivEXT = _mesa_GetColorTableParameteriv;
 
+   /* GL_SGIX_pixel_texture */
+   exec->PixelTexGenSGIX = _mesa_PixelTexGenSGIX;
+
+   /* GL_SGIS_pixel_texture */
+   exec->PixelTexGenParameteriSGIS = _mesa_PixelTexGenParameteriSGIS;
+   exec->PixelTexGenParameterivSGIS = _mesa_PixelTexGenParameterivSGIS;
+   exec->PixelTexGenParameterfSGIS = _mesa_PixelTexGenParameterfSGIS;
+   exec->PixelTexGenParameterfvSGIS = _mesa_PixelTexGenParameterfvSGIS;
+   exec->GetPixelTexGenParameterivSGIS = _mesa_GetPixelTexGenParameterivSGIS;
+   exec->GetPixelTexGenParameterfvSGIS = _mesa_GetPixelTexGenParameterfvSGIS;
+
    /* GL_EXT_compiled_vertex_array */
    exec->LockArraysEXT = _mesa_LockArraysEXT;
    exec->UnlockArraysEXT = _mesa_UnlockArraysEXT;
@@ -791,11 +803,14 @@ static void update_rasterflags( GLcontext *ctx )
       ctx->RasterMask |= WINCLIP_BIT;
    }
 
+   if (ctx->Depth.OcclusionTest)
+      ctx->RasterMask |= OCCLUSION_BIT;
+
+
    /* If we're not drawing to exactly one color buffer set the
     * MULTI_DRAW_BIT flag.  Also set it if we're drawing to no
     * buffers or the RGBA or CI mask disables all writes.
     */
-
    ctx->TriangleCaps &= ~DD_MULTIDRAW;
 
    if (ctx->Color.MultiDrawBuffer) {
@@ -1133,6 +1148,10 @@ void gl_update_state( GLcontext *ctx )
       ctx->ModelProjectWinMatrixUptodate = 0;
    }
 
+   if (ctx->NewState & NEW_COLOR_MATRIX) {
+      gl_matrix_analyze( &ctx->ColorMatrix );
+   }
+
    /* Figure out whether we can light in object space or not.  If we
     * can, find the current positions of the lights in object space
     */