-/* $Id: state.c,v 1.2 2000/02/02 19:34:08 brianp Exp $ */
+/* $Id: state.c,v 1.9 2000/04/09 17:08:09 brianp Exp $ */
/*
* Mesa 3-D graphics library
#include "mmath.h"
#include "pipeline.h"
#include "pixel.h"
+#include "pixeltex.h"
#include "points.h"
#include "polygon.h"
#include "quads.h"
-
-
static int
generic_noop(void)
{
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_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->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;
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;
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) {
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
*/