X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fmtypes.h;h=42a8b28c58aad07963e35f56763667decadf8b3c;hb=bcfe3936a8722f43639ad853649c7f0ea8591cf3;hp=5aa3619e62fafe48b7be4c13afcbaa2d5cf39df7;hpb=19d1e432612cf7db797da11793b13a6c1c6aac16;p=mesa.git diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 5aa3619e62f..42a8b28c58a 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -1,4 +1,4 @@ -/* $Id: mtypes.h,v 1.33 2001/03/27 19:18:02 gareth Exp $ */ +/* $Id: mtypes.h,v 1.39 2001/04/17 21:25:53 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -41,12 +41,6 @@ #endif -/* This is a macro on IRIX */ -#ifdef _P -#undef _P -#endif - - /* Please try to mark derived values with a leading underscore ('_'). */ @@ -680,22 +674,22 @@ struct gl_stencil_attrib { #define TEXTURE3_3D (TEXTURE0_3D << 12) #define TEXTURE3_CUBE (TEXTURE0_CUBE << 12) #define TEXTURE3_ANY (TEXTURE3_1D | TEXTURE3_2D | TEXTURE3_3D | TEXTURE3_CUBE) -#define TEXTURE4_1D (TEXTURE0_1D << 16) /* Texture unit 3 */ +#define TEXTURE4_1D (TEXTURE0_1D << 16) /* Texture unit 4 */ #define TEXTURE4_2D (TEXTURE0_2D << 16) #define TEXTURE4_3D (TEXTURE0_3D << 16) #define TEXTURE4_CUBE (TEXTURE0_CUBE << 16) #define TEXTURE5_ANY (TEXTURE3_1D | TEXTURE3_2D | TEXTURE3_3D | TEXTURE3_CUBE) -#define TEXTURE5_1D (TEXTURE0_1D << 20) /* Texture unit 3 */ +#define TEXTURE5_1D (TEXTURE0_1D << 20) /* Texture unit 5 */ #define TEXTURE5_2D (TEXTURE0_2D << 20) #define TEXTURE5_3D (TEXTURE0_3D << 20) #define TEXTURE5_CUBE (TEXTURE0_CUBE << 20) #define TEXTURE5_ANY (TEXTURE3_1D | TEXTURE3_2D | TEXTURE3_3D | TEXTURE3_CUBE) -#define TEXTURE6_1D (TEXTURE0_1D << 24) /* Texture unit 3 */ +#define TEXTURE6_1D (TEXTURE0_1D << 24) /* Texture unit 6 */ #define TEXTURE6_2D (TEXTURE0_2D << 24) #define TEXTURE6_3D (TEXTURE0_3D << 24) #define TEXTURE6_CUBE (TEXTURE0_CUBE << 24) #define TEXTURE6_ANY (TEXTURE3_1D | TEXTURE3_2D | TEXTURE3_3D | TEXTURE3_CUBE) -#define TEXTURE7_1D (TEXTURE0_1D << 28) /* Texture unit 3 */ +#define TEXTURE7_1D (TEXTURE0_1D << 28) /* Texture unit 7 */ #define TEXTURE7_2D (TEXTURE0_2D << 28) #define TEXTURE7_3D (TEXTURE0_3D << 28) #define TEXTURE7_CUBE (TEXTURE0_CUBE << 28) @@ -709,16 +703,9 @@ struct gl_stencil_attrib { #define TEXGEN_REFLECTION_MAP_NV 0x8 #define TEXGEN_NORMAL_MAP_NV 0x10 -#define TEXGEN_NEED_M (TEXGEN_SPHERE_MAP) -#define TEXGEN_NEED_F (TEXGEN_SPHERE_MAP | \ - TEXGEN_REFLECTION_MAP_NV) #define TEXGEN_NEED_NORMALS (TEXGEN_SPHERE_MAP | \ TEXGEN_REFLECTION_MAP_NV | \ TEXGEN_NORMAL_MAP_NV) -#define TEXGEN_NEED_VERTICES (TEXGEN_OBJ_LINEAR | \ - TEXGEN_EYE_LINEAR | \ - TEXGEN_REFLECTION_MAP_NV | \ - TEXGEN_SPHERE_MAP ) #define TEXGEN_NEED_EYE_COORD (TEXGEN_SPHERE_MAP | \ TEXGEN_REFLECTION_MAP_NV | \ TEXGEN_NORMAL_MAP_NV | \ @@ -736,36 +723,19 @@ struct gl_stencil_attrib { #define ENABLE_TEXGEN5 0x20 #define ENABLE_TEXGEN6 0x40 #define ENABLE_TEXGEN7 0x80 -#define ENABLE_TEXMAT0 0x100 /* Ie. not the identity matrix */ -#define ENABLE_TEXMAT1 0x200 -#define ENABLE_TEXMAT2 0x400 -#define ENABLE_TEXMAT3 0x800 -#define ENABLE_TEXMAT4 0x1000 -#define ENABLE_TEXMAT5 0x2000 -#define ENABLE_TEXMAT6 0x4000 -#define ENABLE_TEXMAT7 0x8000 -#define ENABLE_LIGHT 0x10000 -#define ENABLE_FOG 0x20000 -#define ENABLE_USERCLIP 0x40000 -#define ENABLE_NORMALIZE 0x100000 -#define ENABLE_RESCALE 0x200000 -#define ENABLE_POINT_ATTEN 0x400000 - - -#define ENABLE_TEXGEN_ANY (ENABLE_TEXGEN0 | ENABLE_TEXGEN1 | \ - ENABLE_TEXGEN2 | ENABLE_TEXGEN3 | \ - ENABLE_TEXGEN4 | ENABLE_TEXGEN5 | \ - ENABLE_TEXGEN6 | ENABLE_TEXGEN7) - -#define ENABLE_TEXMAT_ANY (ENABLE_TEXMAT0 | ENABLE_TEXMAT1 | \ - ENABLE_TEXMAT2 | ENABLE_TEXMAT3 | \ - ENABLE_TEXMAT4 | ENABLE_TEXMAT5 | \ - ENABLE_TEXMAT6 | ENABLE_TEXMAT7) + +#define ENABLE_TEXMAT0 0x1 /* Ie. not the identity matrix */ +#define ENABLE_TEXMAT1 0x2 +#define ENABLE_TEXMAT2 0x4 +#define ENABLE_TEXMAT3 0x8 +#define ENABLE_TEXMAT4 0x10 +#define ENABLE_TEXMAT5 0x20 +#define ENABLE_TEXMAT6 0x40 +#define ENABLE_TEXMAT7 0x80 #define ENABLE_TEXGEN(i) (ENABLE_TEXGEN0 << (i)) #define ENABLE_TEXMAT(i) (ENABLE_TEXMAT0 << (i)) - /* * If teximage is color-index, texelOut returns GLchan[1]. * If teximage is depth, texelOut returns GLfloat[1]. @@ -777,10 +747,10 @@ typedef void (*FetchTexelFunc)( const struct gl_texture_image *texImage, /* Texture format record */ struct gl_texture_format { - GLint IntFormat; /* One of the MESA_FORMAT_* values */ + GLint MesaFormat; /* One of the MESA_FORMAT_* values */ - GLenum BaseFormat; - GLenum BaseType; + GLenum IntFormat; /* Internal format as GL enum value */ + GLenum Type; /* Internal type as GL enum value */ GLubyte RedBits; /* Bits per texel component */ GLubyte GreenBits; @@ -804,8 +774,7 @@ struct gl_texture_image { * GL_INTENSITY, GL_RGB, GL_RGBA, * GL_COLOR_INDEX or GL_DEPTH_COMPONENT only. */ - GLenum Type; /* Texel type: GL_UNSIGNED_BYTE, etc. */ - GLenum IntFormat; /* Internal format as given by the user */ + GLint IntFormat; /* Internal format as given by the user */ GLuint Border; /* 0 or 1 */ GLuint Width; /* = 2^WidthLog2 + 2*Border */ GLuint Height; /* = 2^HeightLog2 + 2*Border */ @@ -938,7 +907,10 @@ struct gl_texture_attrib { /* = (Unit[0]._ReallyEnabled << 0) | */ /* (Unit[1]._ReallyEnabled << 4) | */ /* (Unit[2]._ReallyEnabled << 8) | etc... */ + GLuint _GenFlags; /* for texgen */ + GLuint _TexGenEnabled; + GLuint _TexMatEnabled; struct gl_texture_unit Unit[MAX_TEXTURE_UNITS]; @@ -980,7 +952,6 @@ struct gl_attrib_node { }; - /* * Client pixel packing/unpacking attributes */ @@ -1009,8 +980,6 @@ struct gl_client_array { }; - - struct gl_array_attrib { struct gl_client_array Vertex; /* client data descriptors */ struct gl_client_array Normal; @@ -1031,8 +1000,6 @@ struct gl_array_attrib { }; - - struct gl_feedback { GLenum Type; GLuint _Mask; /* FB_* bits */ @@ -1042,7 +1009,6 @@ struct gl_feedback { }; - struct gl_selection { GLuint *Buffer; GLuint BufferSize; /* size of SelectBuffer */ @@ -1055,7 +1021,6 @@ struct gl_selection { }; - /* * 1-D Evaluator control points */ @@ -1106,7 +1071,6 @@ struct gl_evaluators { }; - /* * State which can be shared by multiple contexts: */ @@ -1127,7 +1091,6 @@ struct gl_shared_state { }; - /* * A "frame buffer" is a color buffer and its optional ancillary buffers: * depth, accum, stencil, and software-simulated alpha buffers. @@ -1167,7 +1130,8 @@ struct gl_frame_buffer { /* - * Constants which may be overriden by device driver. + * Constants which may be overriden by device driver during context creation + * but are never changed after that. */ struct gl_constants { GLint MaxTextureSize; @@ -1209,6 +1173,8 @@ struct gl_extensions { GLboolean ARB_texture_border_clamp; GLboolean ARB_texture_compression; GLboolean ARB_texture_cube_map; + GLboolean ARB_texture_env_combine; + GLboolean ARB_texture_env_dot3; GLboolean EXT_blend_color; GLboolean EXT_blend_func_separate; GLboolean EXT_blend_logic_op; @@ -1299,25 +1265,21 @@ struct gl_extensions { #define _NEW_EVAL 0x80 /* ctx->Eval, ctx->EvalMap */ #define _NEW_FOG 0x100 /* ctx->Fog */ #define _NEW_HINT 0x200 /* ctx->Hint */ -#define _NEW_400 0x400 /* */ -#define _NEW_LIGHT 0x800 /* ctx->Light */ -#define _NEW_1000 0x1000 /* */ -#define _NEW_LINE 0x2000 /* ctx->Line */ -#define _NEW_4000 0x4000 /* */ -#define _NEW_PIXEL 0x8000 /* ctx->Pixel */ -#define _NEW_POINT 0x10000 /* ctx->Point */ -#define _NEW_POLYGON 0x20000 /* ctx->Polygon */ -#define _NEW_POLYGONSTIPPLE 0x40000 /* ctx->PolygonStipple */ -#define _NEW_SCISSOR 0x80000 /* ctx->Scissor */ -#define _NEW_STENCIL 0x100000 /* ctx->Stencil */ -#define _NEW_TEXTURE 0x200000 /* ctx->Texture */ -#define _NEW_TRANSFORM 0x400000 /* ctx->Transform */ -#define _NEW_VIEWPORT 0x800000 /* ctx->Viewport */ -#define _NEW_PACKUNPACK 0x1000000 /* ctx->Pack, ctx->Unpack */ -#define _NEW_ARRAY 0x2000000 /* ctx->Array */ -#define _NEW_COLORTABLE 0x4000000 /* ctx->{*}ColorTable */ -#define _NEW_RENDERMODE 0x8000000 /* RenderMode, Feedback, Select */ -#define _NEW_BUFFERS 0x10000000 /* ctx->Visual, ctx->DrawBuffer, */ +#define _NEW_LIGHT 0x400 /* ctx->Light */ +#define _NEW_LINE 0x800 /* ctx->Line */ +#define _NEW_PIXEL 0x1000 /* ctx->Pixel */ +#define _NEW_POINT 0x2000 /* ctx->Point */ +#define _NEW_POLYGON 0x4000 /* ctx->Polygon */ +#define _NEW_POLYGONSTIPPLE 0x8000 /* ctx->PolygonStipple */ +#define _NEW_SCISSOR 0x10000 /* ctx->Scissor */ +#define _NEW_STENCIL 0x20000 /* ctx->Stencil */ +#define _NEW_TEXTURE 0x40000 /* ctx->Texture */ +#define _NEW_TRANSFORM 0x80000 /* ctx->Transform */ +#define _NEW_VIEWPORT 0x100000 /* ctx->Viewport */ +#define _NEW_PACKUNPACK 0x200000 /* ctx->Pack, ctx->Unpack */ +#define _NEW_ARRAY 0x400000 /* ctx->Array */ +#define _NEW_RENDERMODE 0x800000 /* RenderMode, Feedback, Select */ +#define _NEW_BUFFERS 0x1000000 /* ctx->Visual, ctx->DrawBuffer, */ #define _NEW_ALL ~0 @@ -1342,36 +1304,30 @@ struct gl_extensions { #define _NEW_ARRAY_TEXCOORD_7 0x4000 #define _NEW_ARRAY_ALL 0x7fff -#define _NEW_ARRAY_TEXCOORD(i) (_NEW_ARRAY_TEXCOORD_0<<(i)) +#define _NEW_ARRAY_TEXCOORD(i) (_NEW_ARRAY_TEXCOORD_0 << (i)) /* A bunch of flags that we think might be useful to drivers. */ -#define DD_FEEDBACK 0x1 -#define DD_SELECT 0x2 -#define DD_FLATSHADE 0x4 -#define DD_SEPERATE_SPECULAR 0x10 -#define DD_TRI_LIGHT_TWOSIDE 0x20 -#define DD_TRI_UNFILLED 0x40 -#define DD_TRI_SMOOTH 0x80 -#define DD_TRI_STIPPLE 0x100 -#define DD_TRI_OFFSET 0x200 -#define DD_LINE_SMOOTH 0x800 -#define DD_LINE_STIPPLE 0x1000 -#define DD_LINE_WIDTH 0x2000 -#define DD_POINT_SMOOTH 0x4000 -#define DD_POINT_SIZE 0x8000 -#define DD_POINT_ATTEN 0x10000 -#define DD_TRI_CULL_FRONT_BACK 0x400000 /* special case on some hw */ -#define DD_Z_NEVER 0x800000 /* special case on some hw */ -#define DD_STENCIL 0x1000000 +#define DD_FLATSHADE 0x1 +#define DD_SEPARATE_SPECULAR 0x2 +#define DD_TRI_CULL_FRONT_BACK 0x4 /* special case on some hw */ +#define DD_TRI_LIGHT_TWOSIDE 0x8 +#define DD_TRI_UNFILLED 0x10 +#define DD_TRI_SMOOTH 0x20 +#define DD_TRI_STIPPLE 0x40 +#define DD_TRI_OFFSET 0x80 +#define DD_LINE_SMOOTH 0x100 +#define DD_LINE_STIPPLE 0x200 +#define DD_LINE_WIDTH 0x400 +#define DD_POINT_SMOOTH 0x800 +#define DD_POINT_SIZE 0x1000 +#define DD_POINT_ATTEN 0x2000 /* Define the state changes under which each of these bits might change */ -#define _DD_NEW_FEEDBACK _NEW_RENDERMODE -#define _DD_NEW_SELECT _NEW_RENDERMODE #define _DD_NEW_FLATSHADE _NEW_LIGHT -#define _DD_NEW_MULTIDRAW _NEW_COLOR -#define _DD_NEW_SEPERATE_SPECULAR (_NEW_LIGHT|_NEW_FOG) +#define _DD_NEW_SEPARATE_SPECULAR (_NEW_LIGHT | _NEW_FOG) +#define _DD_NEW_TRI_CULL_FRONT_BACK _NEW_POLYGON #define _DD_NEW_TRI_LIGHT_TWOSIDE _NEW_LIGHT #define _DD_NEW_TRI_UNFILLED _NEW_POLYGON #define _DD_NEW_TRI_SMOOTH _NEW_POLYGON @@ -1383,19 +1339,16 @@ struct gl_extensions { #define _DD_NEW_POINT_SMOOTH _NEW_POINT #define _DD_NEW_POINT_SIZE _NEW_POINT #define _DD_NEW_POINT_ATTEN _NEW_POINT -#define _DD_NEW_TRI_CULL_FRONT_BACK _NEW_POLYGON -#define _DD_NEW_Z_NEVER _NEW_DEPTH -#define _DD_NEW_STENCIL _NEW_STENCIL +#define _MESA_NEW_NEED_EYE_COORDS (_NEW_LIGHT | \ + _NEW_TEXTURE | \ + _NEW_POINT | \ + _NEW_MODELVIEW) -#define _MESA_NEW_NEED_EYE_COORDS (_NEW_LIGHT| \ - _NEW_TEXTURE| \ - _NEW_POINT| \ - _NEW_MODELVIEW) +#define _MESA_NEW_NEED_NORMALS (_NEW_LIGHT | \ + _NEW_TEXTURE) -#define _MESA_NEW_NEED_NORMALS (_NEW_LIGHT| \ - _NEW_TEXTURE) -#define _IMAGE_NEW_TRANSFER_STATE (_NEW_PIXEL|_NEW_COLOR_MATRIX) +#define _IMAGE_NEW_TRANSFER_STATE (_NEW_PIXEL | _NEW_COLOR_MATRIX) #define NEED_NORMALS_TEXGEN 0x1 @@ -1407,7 +1360,6 @@ struct gl_extensions { #define NEED_EYE_POINT_ATTEN 0x8 - /* * Forward declaration of display list datatypes: */ @@ -1415,14 +1367,10 @@ union node; typedef union node Node; - - /* This has to be included here. */ #include "dd.h" - - /* * Core Mesa's support for tnl modules: */ @@ -1569,7 +1517,6 @@ struct __GLcontextRec { GLuint NewState; /* bitwise-or of _NEW_* flags */ /* Derived */ - GLuint _Enabled; /* bitwise-or of ENABLE_* flags */ GLuint _TriangleCaps; /* bitwise-or of DD_* flags */ GLuint _ImageTransferState;/* bitwise-or of IMAGE_*_BIT flags */ GLfloat _EyeZDir[3];