work on GL_SGI_color_table
[mesa.git] / src / mesa / main / context.c
index ca95e430c0b0fff0bcf9be7be9a2a8301b7b2180..9ff18aca609b5ae3ec156d15521d6152c732d94a 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: context.c,v 1.53 2000/04/04 15:14:10 brianp Exp $ */
+/* $Id: context.c,v 1.59 2000/04/12 00:27:37 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -787,6 +787,12 @@ static void init_color_table( struct gl_color_table *p )
    p->Size = 1;
    p->IntFormat = GL_RGBA;
    p->Format = GL_RGBA;
+   p->RedSize = 8;
+   p->GreenSize = 8;
+   p->BlueSize = 8;
+   p->AlphaSize = 8;
+   p->IntensitySize = 0;
+   p->LuminanceSize = 0;
 }
 
 
@@ -853,6 +859,13 @@ static void init_attrib_groups( GLcontext *ctx )
       }
    }
 
+   /* Color matrix */
+   gl_matrix_ctr(&ctx->ColorMatrix);
+   ctx->ColorStackDepth = 0;
+   for (j = 0; j < MAX_COLOR_STACK_DEPTH - 1; j++) {
+      gl_matrix_ctr(&ctx->ColorStack[j]);
+   }
+
    /* Accumulate buffer group */
    ASSIGN_4V( ctx->Accum.ClearColor, 0.0, 0.0, 0.0, 0.0 );
 
@@ -989,10 +1002,36 @@ static void init_attrib_groups( GLcontext *ctx )
    ctx->Hint.Fog = GL_DONT_CARE;
 
    ctx->Hint.AllowDrawWin = GL_TRUE;
-   ctx->Hint.AllowDrawSpn = GL_TRUE;
+   ctx->Hint.AllowDrawFrg = GL_TRUE;
    ctx->Hint.AllowDrawMem = GL_TRUE;
    ctx->Hint.StrictLighting = GL_TRUE;
 
+   /* Histogram group */
+   ctx->Histogram.Width = 0;
+   ctx->Histogram.Format = GL_RGBA;
+   ctx->Histogram.Sink = GL_FALSE;
+   ctx->Histogram.RedSize       = 0xffffffff;
+   ctx->Histogram.GreenSize     = 0xffffffff;
+   ctx->Histogram.BlueSize      = 0xffffffff;
+   ctx->Histogram.AlphaSize     = 0xffffffff;
+   ctx->Histogram.LuminanceSize = 0xffffffff;
+   for (i = 0; i < HISTOGRAM_TABLE_SIZE; i++) {
+      ctx->Histogram.Count[i][0] = 0;
+      ctx->Histogram.Count[i][1] = 0;
+      ctx->Histogram.Count[i][2] = 0;
+      ctx->Histogram.Count[i][3] = 0;
+   }
+
+   /* Min/Max group */
+   ctx->MinMax.Format = GL_RGBA;
+   ctx->MinMax.Sink = GL_FALSE;
+   ctx->MinMax.Min[RCOMP] = 1000;    ctx->MinMax.Max[RCOMP] = -1000;
+   ctx->MinMax.Min[GCOMP] = 1000;    ctx->MinMax.Max[GCOMP] = -1000;
+   ctx->MinMax.Min[BCOMP] = 1000;    ctx->MinMax.Max[BCOMP] = -1000;
+   ctx->MinMax.Min[ACOMP] = 1000;    ctx->MinMax.Max[ACOMP] = -1000;
+
+
+
    /* Pipeline */
    gl_pipeline_init( ctx );
    gl_cva_init( ctx );
@@ -1089,6 +1128,30 @@ static void init_attrib_groups( GLcontext *ctx )
    ctx->Pixel.MapGtoG[0] = 0.0;
    ctx->Pixel.MapBtoB[0] = 0.0;
    ctx->Pixel.MapAtoA[0] = 0.0;
+   ctx->Pixel.HistogramEnabled = GL_FALSE;
+   ctx->Pixel.MinMaxEnabled = GL_FALSE;
+   ctx->Pixel.PixelTextureEnabled = GL_FALSE;
+   ctx->Pixel.FragmentRgbSource = GL_PIXEL_GROUP_COLOR_SGIS;
+   ctx->Pixel.FragmentAlphaSource = GL_PIXEL_GROUP_COLOR_SGIS;
+   ctx->Pixel.PostColorMatrixRedBias = 0.0;
+   ctx->Pixel.PostColorMatrixRedScale = 1.0;
+   ctx->Pixel.PostColorMatrixGreenBias = 0.0;
+   ctx->Pixel.PostColorMatrixGreenScale = 1.0;
+   ctx->Pixel.PostColorMatrixBlueBias = 0.0;
+   ctx->Pixel.PostColorMatrixBlueScale = 1.0;
+   ctx->Pixel.PostColorMatrixAlphaBias = 0.0;
+   ctx->Pixel.PostColorMatrixAlphaScale = 1.0;
+   ctx->Pixel.ColorTableScale[0] = 1.0F;
+   ctx->Pixel.ColorTableScale[1] = 1.0F;
+   ctx->Pixel.ColorTableScale[2] = 1.0F;
+   ctx->Pixel.ColorTableScale[3] = 1.0F;
+   ctx->Pixel.ColorTableBias[0] = 0.0F;
+   ctx->Pixel.ColorTableBias[1] = 0.0F;
+   ctx->Pixel.ColorTableBias[2] = 0.0F;
+   ctx->Pixel.ColorTableBias[3] = 0.0F;
+   ctx->Pixel.ColorTableEnabled = GL_FALSE;
+   ctx->Pixel.PostConvolutionColorTableEnabled = GL_FALSE;
+   ctx->Pixel.PostColorMatrixColorTableEnabled = GL_FALSE;
 
    /* Point group */
    ctx->Point.SmoothFlag = GL_FALSE;
@@ -1252,6 +1315,23 @@ static void init_attrib_groups( GLcontext *ctx )
    ctx->AttribStackDepth = 0;
    ctx->ClientAttribStackDepth = 0;
 
+   /* Display list */
+   ctx->CallDepth = 0;
+   ctx->ExecuteFlag = GL_TRUE;
+   ctx->CompileFlag = GL_FALSE;
+   ctx->CurrentListPtr = NULL;
+   ctx->CurrentBlock = NULL;
+   ctx->CurrentListNum = 0;
+   ctx->CurrentPos = 0;
+
+   /* Color tables */
+   init_color_table(&ctx->ColorTable);
+   init_color_table(&ctx->ProxyColorTable);
+   init_color_table(&ctx->PostConvolutionColorTable);
+   init_color_table(&ctx->ProxyPostConvolutionColorTable);
+   init_color_table(&ctx->PostColorMatrixColorTable);
+   init_color_table(&ctx->ProxyPostColorMatrixColorTable);
+
    /* Miscellaneous */
    ctx->NewState = NEW_ALL;
    ctx->RenderMode = GL_RENDER;
@@ -1263,15 +1343,6 @@ static void init_attrib_groups( GLcontext *ctx )
    ctx->NeedEyeNormals = GL_FALSE;
    ctx->vb_proj_matrix = &ctx->ModelProjectMatrix;
 
-   /* Display list */
-   ctx->CallDepth = 0;
-   ctx->ExecuteFlag = GL_TRUE;
-   ctx->CompileFlag = GL_FALSE;
-   ctx->CurrentListPtr = NULL;
-   ctx->CurrentBlock = NULL;
-   ctx->CurrentListNum = 0;
-   ctx->CurrentPos = 0;
-
    ctx->ErrorValue = (GLenum) GL_NO_ERROR;
 
    ctx->CatchSignals = GL_TRUE;