rearranged order of some functions
[mesa.git] / src / mesa / main / state.c
index f6449a8467fca24866dc2c215cc9252a45143c27..d82ffa574486828532c3d72da618450d92f68014 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: state.c,v 1.1 2000/02/02 19:15:19 brianp Exp $ */
+/* $Id: state.c,v 1.5 2000/03/11 23:23:26 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
  */
 
 
+/*
+ * This file initializes the immediate-mode dispatch table (which may
+ * be state-dependant) and manages internal Mesa state update.
+ */
+
 
 #ifdef PC_HEADER
 #include "all.h"
@@ -83,8 +88,6 @@
 
 
 
-
-
 static int
 generic_noop(void)
 {
@@ -506,17 +509,21 @@ _mesa_init_exec_table(struct _glapi_table *exec)
    exec->ResetMinmax = _mesa_ResetMinmax;
    exec->SeparableFilter2D = _mesa_SeparableFilter2D;
 
-   /* 6. GL_EXT_texture3d */
+   /* GL_EXT_texture3d */
+#if 0
    exec->CopyTexSubImage3DEXT = _mesa_CopyTexSubImage3D;
    exec->TexImage3DEXT = _mesa_TexImage3DEXT;
    exec->TexSubImage3DEXT = _mesa_TexSubImage3D;
+#endif
 
    /* GL_EXT_paletted_texture */
+#if 0
    exec->ColorTableEXT = _mesa_ColorTableEXT;
    exec->ColorSubTableEXT = _mesa_ColorSubTableEXT;
-   exec->GetColorTableEXT = _mesa_GetColorTableEXT;
-   exec->GetColorTableParameterfvEXT = _mesa_GetColorTableParameterfvEXT;
-   exec->GetColorTableParameterivEXT = _mesa_GetColorTableParameterivEXT;
+#endif
+   exec->GetColorTableEXT = _mesa_GetColorTable;
+   exec->GetColorTableParameterfvEXT = _mesa_GetColorTableParameterfv;
+   exec->GetColorTableParameterivEXT = _mesa_GetColorTableParameteriv;
 
    /* GL_EXT_compiled_vertex_array */
    exec->LockArraysEXT = _mesa_LockArraysEXT;
@@ -526,17 +533,21 @@ _mesa_init_exec_table(struct _glapi_table *exec)
    exec->PointParameterfEXT = _mesa_PointParameterfEXT;
    exec->PointParameterfvEXT = _mesa_PointParameterfvEXT;
 
-   /* 77. GL_PGI_misc_hints */
+   /* GL_PGI_misc_hints */
    exec->HintPGI = _mesa_HintPGI;
 
    /* GL_EXT_polygon_offset */
    exec->PolygonOffsetEXT = _mesa_PolygonOffsetEXT;
 
    /* GL_EXT_blend_minmax */
+#if 0
    exec->BlendEquationEXT = _mesa_BlendEquationEXT;
+#endif
 
    /* GL_EXT_blend_color */
+#if 0
    exec->BlendColorEXT = _mesa_BlendColorEXT;
+#endif
 
    /* GL_ARB_multitexture */
    exec->ActiveTextureARB = _mesa_ActiveTextureARB;
@@ -575,10 +586,33 @@ _mesa_init_exec_table(struct _glapi_table *exec)
    exec->MultiTexCoord4svARB = _mesa_MultiTexCoord4svARB;
 
    /* GL_INGR_blend_func_separate */
-   exec->BlendFuncSeparateINGR = _mesa_BlendFuncSeparateINGR;
+   exec->BlendFuncSeparateEXT = _mesa_BlendFuncSeparateEXT;
 
    /* GL_MESA_window_pos */
+   exec->WindowPos2dMESA = _mesa_WindowPos2dMESA;
+   exec->WindowPos2dvMESA = _mesa_WindowPos2dvMESA;
+   exec->WindowPos2fMESA = _mesa_WindowPos2fMESA;
+   exec->WindowPos2fvMESA = _mesa_WindowPos2fvMESA;
+   exec->WindowPos2iMESA = _mesa_WindowPos2iMESA;
+   exec->WindowPos2ivMESA = _mesa_WindowPos2ivMESA;
+   exec->WindowPos2sMESA = _mesa_WindowPos2sMESA;
+   exec->WindowPos2svMESA = _mesa_WindowPos2svMESA;
+   exec->WindowPos3dMESA = _mesa_WindowPos3dMESA;
+   exec->WindowPos3dvMESA = _mesa_WindowPos3dvMESA;
+   exec->WindowPos3fMESA = _mesa_WindowPos3fMESA;
+   exec->WindowPos3fvMESA = _mesa_WindowPos3fvMESA;
+   exec->WindowPos3iMESA = _mesa_WindowPos3iMESA;
+   exec->WindowPos3ivMESA = _mesa_WindowPos3ivMESA;
+   exec->WindowPos3sMESA = _mesa_WindowPos3sMESA;
+   exec->WindowPos3svMESA = _mesa_WindowPos3svMESA;
+   exec->WindowPos4dMESA = _mesa_WindowPos4dMESA;
+   exec->WindowPos4dvMESA = _mesa_WindowPos4dvMESA;
    exec->WindowPos4fMESA = _mesa_WindowPos4fMESA;
+   exec->WindowPos4fvMESA = _mesa_WindowPos4fvMESA;
+   exec->WindowPos4iMESA = _mesa_WindowPos4iMESA;
+   exec->WindowPos4ivMESA = _mesa_WindowPos4ivMESA;
+   exec->WindowPos4sMESA = _mesa_WindowPos4sMESA;
+   exec->WindowPos4svMESA = _mesa_WindowPos4svMESA;
 
    /* GL_MESA_resize_buffers */
    exec->ResizeBuffersMESA = _mesa_ResizeBuffersMESA;
@@ -757,11 +791,21 @@ static void update_rasterflags( GLcontext *ctx )
       ctx->RasterMask |= WINCLIP_BIT;
    }
 
+   if (ctx->Depth.OcclusionTest) {
+      if (ctx->Color.ColorMask[0] == 0 && 
+          ctx->Color.ColorMask[1] == 0 && 
+          ctx->Color.ColorMask[2] == 0 &&
+          ctx->Color.ColorMask[3] == 0 && 
+          ctx->Depth.Mask == GL_FALSE &&
+          !ctx->Stencil.Enabled) {
+         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) {