diff options
author | Brian <brian@yutani.localnet.net> | 2007-03-14 14:33:46 -0600 |
---|---|---|
committer | Brian <brian@yutani.localnet.net> | 2007-03-14 14:33:46 -0600 |
commit | b6adf336f41d2f0ed0ea33eaf53faee9635a2405 (patch) | |
tree | b4676a4e10ca3331990dac29b344746173f99741 /src/mesa/main/mtypes.h | |
parent | 3049946fa742b654afa9b24f8bc79f387f01aea9 (diff) |
Re-org of gl_pixel_attrib struct.
Reorder fields according to the order in which the pixel transfer operations
take place. Improve comments.
Move the pixel maps out of gl_pixel_attrib since they're not supposed to be
pushed/popped by glPush/PopAttrib.
New gl_pixelmap and gl_pixelmaps structs to contain the pixelmaps.
Diffstat (limited to 'src/mesa/main/mtypes.h')
-rw-r--r-- | src/mesa/main/mtypes.h | 121 |
1 files changed, 76 insertions, 45 deletions
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 7caa1f8d7f..bced1a64d9 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -965,74 +965,104 @@ struct gl_multisample_attrib /** + * A pixelmap (see glPixelMap) + */ +struct gl_pixelmap +{ + GLint Size; + GLfloat Map[MAX_PIXEL_MAP_TABLE]; + GLubyte Map8[MAX_PIXEL_MAP_TABLE]; /**< converted to 8-bit color */ +}; + + +/** + * Collection of all pixelmaps + */ +struct gl_pixelmaps +{ + struct gl_pixelmap RtoR; /**< i.e. GL_PIXEL_MAP_R_TO_R */ + struct gl_pixelmap GtoG; + struct gl_pixelmap BtoB; + struct gl_pixelmap AtoA; + struct gl_pixelmap ItoR; + struct gl_pixelmap ItoG; + struct gl_pixelmap ItoB; + struct gl_pixelmap ItoA; + struct gl_pixelmap ItoI; + struct gl_pixelmap StoS; +}; + + +/** * Pixel attribute group (GL_PIXEL_MODE_BIT). */ struct gl_pixel_attrib { GLenum ReadBuffer; /**< source buffer for glRead/CopyPixels() */ + + /*--- Begin Pixel Transfer State ---*/ + /* Fields are in the order in which they're applied... */ + + /* Scale & Bias (index shift, offset) */ GLfloat RedBias, RedScale; GLfloat GreenBias, GreenScale; GLfloat BlueBias, BlueScale; GLfloat AlphaBias, AlphaScale; GLfloat DepthBias, DepthScale; GLint IndexShift, IndexOffset; + + /* Pixel Maps */ + /* Note: actual pixel maps are not part of this attrib group */ GLboolean MapColorFlag; GLboolean MapStencilFlag; - GLfloat ZoomX, ZoomY; - /* XXX move these out of gl_pixel_attrib */ - GLint MapStoSsize; /**< Size of each pixel map */ - GLint MapItoIsize; - GLint MapItoRsize; - GLint MapItoGsize; - GLint MapItoBsize; - GLint MapItoAsize; - GLint MapRtoRsize; - GLint MapGtoGsize; - GLint MapBtoBsize; - GLint MapAtoAsize; - GLint MapStoS[MAX_PIXEL_MAP_TABLE]; /**< Pixel map tables */ - GLfloat MapItoI[MAX_PIXEL_MAP_TABLE]; - GLfloat MapItoR[MAX_PIXEL_MAP_TABLE]; - GLfloat MapItoG[MAX_PIXEL_MAP_TABLE]; - GLfloat MapItoB[MAX_PIXEL_MAP_TABLE]; - GLfloat MapItoA[MAX_PIXEL_MAP_TABLE]; - GLubyte MapItoR8[MAX_PIXEL_MAP_TABLE]; /**< converted to 8-bit color */ - GLubyte MapItoG8[MAX_PIXEL_MAP_TABLE]; - GLubyte MapItoB8[MAX_PIXEL_MAP_TABLE]; - GLubyte MapItoA8[MAX_PIXEL_MAP_TABLE]; - GLfloat MapRtoR[MAX_PIXEL_MAP_TABLE]; - GLfloat MapGtoG[MAX_PIXEL_MAP_TABLE]; - GLfloat MapBtoB[MAX_PIXEL_MAP_TABLE]; - GLfloat MapAtoA[MAX_PIXEL_MAP_TABLE]; - /** GL_EXT_histogram */ - GLboolean HistogramEnabled; - GLboolean MinMaxEnabled; - /** GL_SGI_color_matrix */ - GLfloat PostColorMatrixScale[4]; /**< RGBA */ - GLfloat PostColorMatrixBias[4]; /**< RGBA */ - /** GL_SGI_color_table */ + + /* Color table lookup (GL_SGI_color_table) */ + /* Note: actual table is not part of this attrib group */ GLfloat ColorTableScale[4]; GLfloat ColorTableBias[4]; GLboolean ColorTableEnabled; - GLfloat PCCTscale[4]; - GLfloat PCCTbias[4]; - GLboolean PostConvolutionColorTableEnabled; - GLfloat PCMCTscale[4]; - GLfloat PCMCTbias[4]; - GLboolean PostColorMatrixColorTableEnabled; - /** GL_SGI_texture_color_table */ - GLfloat TextureColorTableScale[4]; - GLfloat TextureColorTableBias[4]; - /** Convolution */ + + /* Convolution (GL_EXT_convolution) */ GLboolean Convolution1DEnabled; GLboolean Convolution2DEnabled; GLboolean Separable2DEnabled; GLfloat ConvolutionBorderColor[3][4]; GLenum ConvolutionBorderMode[3]; - GLfloat ConvolutionFilterScale[3][4]; - GLfloat ConvolutionFilterBias[3][4]; + GLfloat ConvolutionFilterScale[3][4]; /**< RGBA */ + GLfloat ConvolutionFilterBias[3][4]; /**< RGBA */ GLfloat PostConvolutionScale[4]; /**< RGBA */ GLfloat PostConvolutionBias[4]; /**< RGBA */ + + /* Post-convolution color table */ + /* Note: actual table is not part of this attrib group */ + GLboolean PostConvolutionColorTableEnabled; + GLfloat PCCTscale[4]; /** Post Convolution Color Table scale */ + GLfloat PCCTbias[4]; /** Post Convolution Color Table bias */ + + /* Color matrix (GL_SGI_color_matrix) */ + /* Note: the color matrix is not part of this attrib group */ + GLfloat PostColorMatrixScale[4]; /**< RGBA */ + GLfloat PostColorMatrixBias[4]; /**< RGBA */ + + /* Post color matrix color table */ + /* Note: actual table is not part of this attrib group */ + GLboolean PostColorMatrixColorTableEnabled; + GLfloat PCMCTscale[4]; /** Post Color Matrix Color Table scale */ + GLfloat PCMCTbias[4]; /** Post Color Matrix Color Table bias */ + + /* Histogram & minmax (GL_EXT_histogram) */ + /* Note: histogram and minmax data are not part of this attrib group */ + GLboolean HistogramEnabled; + GLboolean MinMaxEnabled; + + /*--- End Pixel Transfer State ---*/ + + /* Pixel Zoom */ + GLfloat ZoomX, ZoomY; + + /** GL_SGI_texture_color_table */ + GLfloat TextureColorTableScale[4]; + GLfloat TextureColorTableBias[4]; }; @@ -2893,6 +2923,7 @@ struct __GLcontextRec /** \name Other assorted state (not pushed/popped on attribute stack) */ /*@{*/ + struct gl_pixelmaps PixelMaps; struct gl_histogram_attrib Histogram; struct gl_minmax_attrib MinMax; struct gl_convolution_attrib Convolution1D; |