core | glapi | vbo | math | shader | swrast | swrast_setup | tnl | tnl_dd

mtypes.h File Reference


Detailed Description

Main Mesa data structures.

Please try to mark derived values with a leading underscore ('_').

#include "glheader.h"
#include <GL/internal/glcore.h>
#include "config.h"
#include "glapi/glapi.h"
#include "math/m_matrix.h"
#include "bitset.h"
#include "dd.h"

Data Structures

struct  gl_color_table
 Data structure for color tables. More...
struct  gl_shine_tab
 Material shininess lookup table. More...
struct  gl_light
 Light source state. More...
struct  gl_lightmodel
 Light model state. More...
struct  gl_material
 Material state. More...
struct  gl_accum_attrib
 Accumulation buffer attribute group (GL_ACCUM_BUFFER_BIT). More...
struct  gl_colorbuffer_attrib
 Color buffer attribute group (GL_COLOR_BUFFER_BIT). More...
struct  gl_current_attrib
 Current attribute group (GL_CURRENT_BIT). More...
struct  gl_depthbuffer_attrib
 Depth buffer attribute group (GL_DEPTH_BUFFER_BIT). More...
struct  gl_enable_attrib
 glEnable()/glDisable() attribute group (GL_ENABLE_BIT). More...
struct  gl_eval_attrib
 Evaluator attribute group (GL_EVAL_BIT). More...
struct  gl_fog_attrib
 Fog attribute group (GL_FOG_BIT). More...
struct  gl_hint_attrib
 Hint attribute group (GL_HINT_BIT). More...
struct  gl_histogram_attrib
 Histogram attributes. More...
struct  gl_minmax_attrib
 Color Min/max state. More...
struct  gl_convolution_attrib
 Image convolution state. More...
struct  gl_light_attrib
 Lighting attribute group (GL_LIGHT_BIT). More...
struct  gl_line_attrib
 Line attribute group (GL_LINE_BIT). More...
struct  gl_list_attrib
 Display list attribute group (GL_LIST_BIT). More...
struct  gl_list_instruction
 Used by device drivers to hook new commands into display lists. More...
struct  gl_list_extensions
 Used by device drivers to hook new commands into display lists. More...
struct  gl_multisample_attrib
 Multisample attribute group (GL_MULTISAMPLE_BIT). More...
struct  gl_pixelmap
 A pixelmap (see glPixelMap). More...
struct  gl_pixelmaps
 Collection of all pixelmaps. More...
struct  gl_pixel_attrib
 Pixel attribute group (GL_PIXEL_MODE_BIT). More...
struct  gl_point_attrib
 Point attribute group (GL_POINT_BIT). More...
struct  gl_polygon_attrib
 Polygon attribute group (GL_POLYGON_BIT). More...
struct  gl_scissor_attrib
 Scissor attributes (GL_SCISSOR_BIT). More...
struct  gl_stencil_attrib
 Stencil attribute group (GL_STENCIL_BUFFER_BIT). More...
struct  gl_texture_format
 Texture format record. More...
struct  gl_texture_image
 Texture image state. More...
struct  gl_texture_object
 Texture object state. More...
struct  gl_tex_env_combine_state
 Texture combine environment state. More...
struct  gl_texture_unit
 Texture unit state. More...
struct  gl_texture_attrib
 Texture attribute group (GL_TEXTURE_BIT). More...
struct  gl_transform_attrib
 Transformation attribute group (GL_TRANSFORM_BIT). More...
struct  gl_viewport_attrib
 Viewport attribute group (GL_VIEWPORT_BIT). More...
struct  gl_attrib_node
 Node for the attribute stack. More...
struct  gl_buffer_object
 GL_ARB_vertex/pixel_buffer_object buffer object. More...
struct  gl_pixelstore_attrib
 Client pixel packing/unpacking attributes. More...
struct  gl_client_array
 Client vertex array attributes. More...
struct  gl_array_object
 Collection of vertex arrays. More...
struct  gl_array_attrib
 Vertex array state. More...
struct  gl_feedback
 Feedback buffer state. More...
struct  gl_selection
 Selection buffer state. More...
struct  gl_1d_map
 1-D Evaluator control points More...
struct  gl_2d_map
 2-D Evaluator control points More...
struct  gl_evaluators
 All evaluator control point state. More...
struct  gl_program
 Base class for any kind of program object. More...
struct  gl_vertex_program
 Vertex program object. More...
struct  gl_fragment_program
 Fragment program object. More...
struct  gl_program_state
 State common to vertex and fragment programs. More...
struct  gl_vertex_program_state
 Context state for vertex programs. More...
struct  gl_fragment_program_state
 Context state for fragment programs. More...
struct  ati_fragment_shader
 ATI fragment shader. More...
struct  gl_ati_fragment_shader_state
 Context state for GL_ATI_fragment_shader. More...
struct  gl_query_object
 Occlusion/timer query object. More...
struct  gl_query_state
 Context state for query objects. More...
struct  gl_shader
 A GLSL vertex or fragment shader object. More...
struct  gl_shader_program
 A GLSL program object. More...
struct  gl_shader_state
 Context state for GLSL vertex/fragment shaders. More...
struct  gl_shared_state
 State which can be shared by multiple contexts:. More...
struct  gl_renderbuffer
 A renderbuffer stores colors or depth values or stencil values. More...
struct  gl_renderbuffer_attachment
 A renderbuffer attachment point points to either a texture object (and specifies a mipmap level, cube face or 3D texture slice) or points to a renderbuffer. More...
struct  gl_framebuffer
 A framebuffer is a collection of renderbuffers (color, depth, stencil, etc). More...
struct  gl_program_constants
 Limits for vertex and fragment programs. More...
struct  gl_constants
 Constants which may be overridden by device driver during context creation but are never changed after that. More...
struct  gl_extensions
 Enable flag for each OpenGL extension. More...
struct  gl_matrix_stack
 A stack of matrices (projection, modelview, color, texture, etc). More...
struct  gl_tnl_module
 Core Mesa's support for tnl modules:. More...
struct  mesa_display_list
struct  gl_dlist_state
 State used during display list compilation and execution. More...
struct  __GLcontextRec
 Mesa rendering context. More...

Defines

#define GL_SHADER_PROGRAM_MESA   0x9999
 Special, internal token.
#define CHAN_MAX   255
#define CHAN_MAXF   255.0F
#define CHAN_TYPE   GL_UNSIGNED_BYTE
#define FIXED_FRAC_BITS   11
#define FIXED_SHIFT   FIXED_FRAC_BITS
#define FIXED_ONE   (1 << FIXED_SHIFT)
#define FIXED_HALF   (1 << (FIXED_SHIFT-1))
#define FIXED_FRAC_MASK   (FIXED_ONE - 1)
#define FIXED_INT_MASK   (~FIXED_FRAC_MASK)
#define FIXED_EPSILON   1
#define FIXED_SCALE   ((float) FIXED_ONE)
#define FIXED_DBL_SCALE   ((double) FIXED_ONE)
#define FloatToFixed(X)   (IROUND((X) * FIXED_SCALE))
#define FixedToDouble(X)   ((X) * (1.0 / FIXED_DBL_SCALE))
#define IntToFixed(I)   ((I) << FIXED_SHIFT)
#define FixedToInt(X)   ((X) >> FIXED_SHIFT)
#define FixedToUns(X)   (((unsigned int)(X)) >> FIXED_SHIFT)
#define FixedCeil(X)   (((X) + FIXED_ONE - FIXED_EPSILON) & FIXED_INT_MASK)
#define FixedFloor(X)   ((X) & FIXED_INT_MASK)
#define FixedToFloat(X)   ((X) * (1.0F / FIXED_SCALE))
#define PosFloatToFixed(X)   FloatToFixed(X)
#define SignedFloatToFixed(X)   FloatToFixed(X)
#define BUFFER_BIT_FRONT_LEFT   (1 << BUFFER_FRONT_LEFT)
 Bit flags for all renderbuffers.
#define BUFFER_BIT_BACK_LEFT   (1 << BUFFER_BACK_LEFT)
#define BUFFER_BIT_FRONT_RIGHT   (1 << BUFFER_FRONT_RIGHT)
#define BUFFER_BIT_BACK_RIGHT   (1 << BUFFER_BACK_RIGHT)
#define BUFFER_BIT_AUX0   (1 << BUFFER_AUX0)
#define BUFFER_BIT_AUX1   (1 << BUFFER_AUX1)
#define BUFFER_BIT_AUX2   (1 << BUFFER_AUX2)
#define BUFFER_BIT_AUX3   (1 << BUFFER_AUX3)
#define BUFFER_BIT_DEPTH   (1 << BUFFER_DEPTH)
#define BUFFER_BIT_STENCIL   (1 << BUFFER_STENCIL)
#define BUFFER_BIT_ACCUM   (1 << BUFFER_ACCUM)
#define BUFFER_BIT_COLOR0   (1 << BUFFER_COLOR0)
#define BUFFER_BIT_COLOR1   (1 << BUFFER_COLOR1)
#define BUFFER_BIT_COLOR2   (1 << BUFFER_COLOR2)
#define BUFFER_BIT_COLOR3   (1 << BUFFER_COLOR3)
#define BUFFER_BIT_COLOR4   (1 << BUFFER_COLOR4)
#define BUFFER_BIT_COLOR5   (1 << BUFFER_COLOR5)
#define BUFFER_BIT_COLOR6   (1 << BUFFER_COLOR6)
#define BUFFER_BIT_COLOR7   (1 << BUFFER_COLOR7)
#define BUFFER_BITS_COLOR
 Mask of all the color buffer bits (but not accum).
#define EXP_TABLE_SIZE   512
 Specular exponent lookup table sizes.
#define SHINE_TABLE_SIZE   256
 Material shininess lookup table sizes.
#define MAX_DLIST_EXT_OPCODES   16
#define NUM_TEXTURE_TARGETS   7
#define ENABLE_TEXGEN0   0x1
#define ENABLE_TEXGEN1   0x2
#define ENABLE_TEXGEN2   0x4
#define ENABLE_TEXGEN3   0x8
#define ENABLE_TEXGEN4   0x10
#define ENABLE_TEXGEN5   0x20
#define ENABLE_TEXGEN6   0x40
#define ENABLE_TEXGEN7   0x80
#define ENABLE_TEXMAT0   0x1
#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))
#define TEXSTORE_PARAMS
 This macro defines the (many) parameters to the texstore functions.
#define ATI_FS_INPUT_PRIMARY   0
 ATI_fragment_shader runtime state.
#define ATI_FS_INPUT_SECONDARY   1
#define RB_MAGIC   0xaabbccdd
#define _MESA_NEW_NEED_EYE_COORDS
#define _MESA_NEW_NEED_NORMALS
#define _IMAGE_NEW_TRANSFER_STATE   (_NEW_PIXEL | _NEW_COLOR_MATRIX)
#define NUM_VERTEX_FORMAT_ENTRIES   (sizeof(GLvertexformat) / sizeof(void *))
#define MESA_DLIST_DANGLING_REFS   0x1
#define MESA_VERBOSE   0
#define MESA_DEBUG_FLAGS   0
#define MESA_FUNCTION   "a function"
#define Elements(x)   sizeof(x)/sizeof(*(x))
#define VERT_BIT_POS   (1 << VERT_ATTRIB_POS)
 Bitflags for vertex attributes.
#define VERT_BIT_WEIGHT   (1 << VERT_ATTRIB_WEIGHT)
#define VERT_BIT_NORMAL   (1 << VERT_ATTRIB_NORMAL)
#define VERT_BIT_COLOR0   (1 << VERT_ATTRIB_COLOR0)
#define VERT_BIT_COLOR1   (1 << VERT_ATTRIB_COLOR1)
#define VERT_BIT_FOG   (1 << VERT_ATTRIB_FOG)
#define VERT_BIT_COLOR_INDEX   (1 << VERT_ATTRIB_COLOR_INDEX)
#define VERT_BIT_EDGEFLAG   (1 << VERT_ATTRIB_EDGEFLAG)
#define VERT_BIT_TEX0   (1 << VERT_ATTRIB_TEX0)
#define VERT_BIT_TEX1   (1 << VERT_ATTRIB_TEX1)
#define VERT_BIT_TEX2   (1 << VERT_ATTRIB_TEX2)
#define VERT_BIT_TEX3   (1 << VERT_ATTRIB_TEX3)
#define VERT_BIT_TEX4   (1 << VERT_ATTRIB_TEX4)
#define VERT_BIT_TEX5   (1 << VERT_ATTRIB_TEX5)
#define VERT_BIT_TEX6   (1 << VERT_ATTRIB_TEX6)
#define VERT_BIT_TEX7   (1 << VERT_ATTRIB_TEX7)
#define VERT_BIT_GENERIC0   (1 << VERT_ATTRIB_GENERIC0)
#define VERT_BIT_GENERIC1   (1 << VERT_ATTRIB_GENERIC1)
#define VERT_BIT_GENERIC2   (1 << VERT_ATTRIB_GENERIC2)
#define VERT_BIT_GENERIC3   (1 << VERT_ATTRIB_GENERIC3)
#define VERT_BIT_GENERIC4   (1 << VERT_ATTRIB_GENERIC4)
#define VERT_BIT_GENERIC5   (1 << VERT_ATTRIB_GENERIC5)
#define VERT_BIT_GENERIC6   (1 << VERT_ATTRIB_GENERIC6)
#define VERT_BIT_GENERIC7   (1 << VERT_ATTRIB_GENERIC7)
#define VERT_BIT_GENERIC8   (1 << VERT_ATTRIB_GENERIC8)
#define VERT_BIT_GENERIC9   (1 << VERT_ATTRIB_GENERIC9)
#define VERT_BIT_GENERIC10   (1 << VERT_ATTRIB_GENERIC10)
#define VERT_BIT_GENERIC11   (1 << VERT_ATTRIB_GENERIC11)
#define VERT_BIT_GENERIC12   (1 << VERT_ATTRIB_GENERIC12)
#define VERT_BIT_GENERIC13   (1 << VERT_ATTRIB_GENERIC13)
#define VERT_BIT_GENERIC14   (1 << VERT_ATTRIB_GENERIC14)
#define VERT_BIT_GENERIC15   (1 << VERT_ATTRIB_GENERIC15)
#define VERT_BIT_TEX(u)   (1 << (VERT_ATTRIB_TEX0 + (u)))
#define VERT_BIT_GENERIC(g)   (1 << (VERT_ATTRIB_GENERIC0 + (g)))
#define VERT_RESULT_HPOS   0
 Indexes for vertex program result attributes.
#define VERT_RESULT_COL0   1
#define VERT_RESULT_COL1   2
#define VERT_RESULT_FOGC   3
#define VERT_RESULT_TEX0   4
#define VERT_RESULT_TEX1   5
#define VERT_RESULT_TEX2   6
#define VERT_RESULT_TEX3   7
#define VERT_RESULT_TEX4   8
#define VERT_RESULT_TEX5   9
#define VERT_RESULT_TEX6   10
#define VERT_RESULT_TEX7   11
#define VERT_RESULT_PSIZ   12
#define VERT_RESULT_BFC0   13
#define VERT_RESULT_BFC1   14
#define VERT_RESULT_EDGE   15
#define VERT_RESULT_VAR0   16
 shader varying
#define VERT_RESULT_MAX   (VERT_RESULT_VAR0 + MAX_VARYING)
#define FRAG_BIT_WPOS   (1 << FRAG_ATTRIB_WPOS)
 Bitflags for fragment program input attributes.
#define FRAG_BIT_COL0   (1 << FRAG_ATTRIB_COL0)
#define FRAG_BIT_COL1   (1 << FRAG_ATTRIB_COL1)
#define FRAG_BIT_FOGC   (1 << FRAG_ATTRIB_FOGC)
#define FRAG_BIT_TEX0   (1 << FRAG_ATTRIB_TEX0)
#define FRAG_BIT_TEX1   (1 << FRAG_ATTRIB_TEX1)
#define FRAG_BIT_TEX2   (1 << FRAG_ATTRIB_TEX2)
#define FRAG_BIT_TEX3   (1 << FRAG_ATTRIB_TEX3)
#define FRAG_BIT_TEX4   (1 << FRAG_ATTRIB_TEX4)
#define FRAG_BIT_TEX5   (1 << FRAG_ATTRIB_TEX5)
#define FRAG_BIT_TEX6   (1 << FRAG_ATTRIB_TEX6)
#define FRAG_BIT_TEX7   (1 << FRAG_ATTRIB_TEX7)
#define FRAG_BIT_VAR0   (1 << FRAG_ATTRIB_VAR0)
#define FRAG_BIT_TEX(U)   (FRAG_BIT_TEX0 << (U))
#define FRAG_BIT_VAR(V)   (FRAG_BIT_VAR0 << (V))
#define FRAG_BITS_TEX_ANY
#define COLORTABLE_PRECONVOLUTION   0
 The pixel transfer path has three color tables:.
#define COLORTABLE_POSTCONVOLUTION   1
#define COLORTABLE_POSTCOLORMATRIX   2
#define COLORTABLE_MAX   3
Bit flags used for updating material values.
#define MAT_ATTRIB_FRONT_AMBIENT   0
#define MAT_ATTRIB_BACK_AMBIENT   1
#define MAT_ATTRIB_FRONT_DIFFUSE   2
#define MAT_ATTRIB_BACK_DIFFUSE   3
#define MAT_ATTRIB_FRONT_SPECULAR   4
#define MAT_ATTRIB_BACK_SPECULAR   5
#define MAT_ATTRIB_FRONT_EMISSION   6
#define MAT_ATTRIB_BACK_EMISSION   7
#define MAT_ATTRIB_FRONT_SHININESS   8
#define MAT_ATTRIB_BACK_SHININESS   9
#define MAT_ATTRIB_FRONT_INDEXES   10
#define MAT_ATTRIB_BACK_INDEXES   11
#define MAT_ATTRIB_MAX   12
#define MAT_ATTRIB_AMBIENT(f)   (MAT_ATTRIB_FRONT_AMBIENT+(f))
#define MAT_ATTRIB_DIFFUSE(f)   (MAT_ATTRIB_FRONT_DIFFUSE+(f))
#define MAT_ATTRIB_SPECULAR(f)   (MAT_ATTRIB_FRONT_SPECULAR+(f))
#define MAT_ATTRIB_EMISSION(f)   (MAT_ATTRIB_FRONT_EMISSION+(f))
#define MAT_ATTRIB_SHININESS(f)   (MAT_ATTRIB_FRONT_SHININESS+(f))
#define MAT_ATTRIB_INDEXES(f)   (MAT_ATTRIB_FRONT_INDEXES+(f))
#define MAT_INDEX_AMBIENT   0
#define MAT_INDEX_DIFFUSE   1
#define MAT_INDEX_SPECULAR   2
#define MAT_BIT_FRONT_AMBIENT   (1<<MAT_ATTRIB_FRONT_AMBIENT)
#define MAT_BIT_BACK_AMBIENT   (1<<MAT_ATTRIB_BACK_AMBIENT)
#define MAT_BIT_FRONT_DIFFUSE   (1<<MAT_ATTRIB_FRONT_DIFFUSE)
#define MAT_BIT_BACK_DIFFUSE   (1<<MAT_ATTRIB_BACK_DIFFUSE)
#define MAT_BIT_FRONT_SPECULAR   (1<<MAT_ATTRIB_FRONT_SPECULAR)
#define MAT_BIT_BACK_SPECULAR   (1<<MAT_ATTRIB_BACK_SPECULAR)
#define MAT_BIT_FRONT_EMISSION   (1<<MAT_ATTRIB_FRONT_EMISSION)
#define MAT_BIT_BACK_EMISSION   (1<<MAT_ATTRIB_BACK_EMISSION)
#define MAT_BIT_FRONT_SHININESS   (1<<MAT_ATTRIB_FRONT_SHININESS)
#define MAT_BIT_BACK_SHININESS   (1<<MAT_ATTRIB_BACK_SHININESS)
#define MAT_BIT_FRONT_INDEXES   (1<<MAT_ATTRIB_FRONT_INDEXES)
#define MAT_BIT_BACK_INDEXES   (1<<MAT_ATTRIB_BACK_INDEXES)
#define FRONT_MATERIAL_BITS
#define BACK_MATERIAL_BITS
#define ALL_MATERIAL_BITS   (FRONT_MATERIAL_BITS | BACK_MATERIAL_BITS)
#define LIGHT_SPOT   0x1
 Light state flags.
#define LIGHT_LOCAL_VIEWER   0x2
#define LIGHT_POSITIONAL   0x4
#define LIGHT_NEED_VERTICES   (LIGHT_POSITIONAL|LIGHT_LOCAL_VIEWER)
#define TEXTURE_1D_INDEX   0
 An index for each type of texture object.
#define TEXTURE_2D_INDEX   1
#define TEXTURE_3D_INDEX   2
#define TEXTURE_CUBE_INDEX   3
#define TEXTURE_RECT_INDEX   4
#define TEXTURE_1D_ARRAY_INDEX   5
#define TEXTURE_2D_ARRAY_INDEX   6
#define TEXTURE_1D_BIT   (1 << TEXTURE_1D_INDEX)
 Bit flags for each type of texture object Used for Texture.Unit[]._ReallyEnabled flags.
#define TEXTURE_2D_BIT   (1 << TEXTURE_2D_INDEX)
#define TEXTURE_3D_BIT   (1 << TEXTURE_3D_INDEX)
#define TEXTURE_CUBE_BIT   (1 << TEXTURE_CUBE_INDEX)
#define TEXTURE_RECT_BIT   (1 << TEXTURE_RECT_INDEX)
#define TEXTURE_1D_ARRAY_BIT   (1 << TEXTURE_1D_ARRAY_INDEX)
#define TEXTURE_2D_ARRAY_BIT   (1 << TEXTURE_2D_ARRAY_INDEX)
#define S_BIT   1
 TexGenEnabled flags.
#define T_BIT   2
#define R_BIT   4
#define Q_BIT   8
#define TEXGEN_SPHERE_MAP   0x1
 Bit flag versions of the corresponding GL_ constants.
#define TEXGEN_OBJ_LINEAR   0x2
#define TEXGEN_EYE_LINEAR   0x4
#define TEXGEN_REFLECTION_MAP_NV   0x8
#define TEXGEN_NORMAL_MAP_NV   0x10
#define TEXGEN_NEED_NORMALS
#define TEXGEN_NEED_EYE_COORD
#define FACE_POS_X   0
 Indexes for cube map faces.
#define FACE_NEG_X   1
#define FACE_POS_Y   2
#define FACE_NEG_Y   3
#define FACE_POS_Z   4
#define FACE_NEG_Z   5
#define MAX_FACES   6
Bits for image transfer operations
See also:
__GLcontextRec::ImageTransferState.


#define IMAGE_SCALE_BIAS_BIT   0x1
#define IMAGE_SHIFT_OFFSET_BIT   0x2
#define IMAGE_MAP_COLOR_BIT   0x4
#define IMAGE_COLOR_TABLE_BIT   0x8
#define IMAGE_CONVOLUTION_BIT   0x10
#define IMAGE_POST_CONVOLUTION_SCALE_BIAS   0x20
#define IMAGE_POST_CONVOLUTION_COLOR_TABLE_BIT   0x40
#define IMAGE_COLOR_MATRIX_BIT   0x80
#define IMAGE_POST_COLOR_MATRIX_COLOR_TABLE_BIT   0x100
#define IMAGE_HISTOGRAM_BIT   0x200
#define IMAGE_MIN_MAX_BIT   0x400
#define IMAGE_CLAMP_BIT   0x800
#define IMAGE_PRE_CONVOLUTION_BITS
 Pixel Transfer ops up to convolution.
#define IMAGE_POST_CONVOLUTION_BITS
 Pixel transfer ops after convolution.
Bits to indicate what state has changed.
4 unused flags.

#define _NEW_MODELVIEW   0x1
 __GLcontextRec::ModelView
#define _NEW_PROJECTION   0x2
 __GLcontextRec::Projection
#define _NEW_TEXTURE_MATRIX   0x4
 __GLcontextRec::TextureMatrix
#define _NEW_COLOR_MATRIX   0x8
 __GLcontextRec::ColorMatrix
#define _NEW_ACCUM   0x10
 __GLcontextRec::Accum
#define _NEW_COLOR   0x20
 __GLcontextRec::Color
#define _NEW_DEPTH   0x40
 __GLcontextRec::Depth
#define _NEW_EVAL   0x80
 __GLcontextRec::Eval, __GLcontextRec::EvalMap
#define _NEW_FOG   0x100
 __GLcontextRec::Fog
#define _NEW_HINT   0x200
 __GLcontextRec::Hint
#define _NEW_LIGHT   0x400
 __GLcontextRec::Light
#define _NEW_LINE   0x800
 __GLcontextRec::Line
#define _NEW_PIXEL   0x1000
 __GLcontextRec::Pixel
#define _NEW_POINT   0x2000
 __GLcontextRec::Point
#define _NEW_POLYGON   0x4000
 __GLcontextRec::Polygon
#define _NEW_POLYGONSTIPPLE   0x8000
 __GLcontextRec::PolygonStipple
#define _NEW_SCISSOR   0x10000
 __GLcontextRec::Scissor
#define _NEW_STENCIL   0x20000
 __GLcontextRec::Stencil
#define _NEW_TEXTURE   0x40000
 __GLcontextRec::Texture
#define _NEW_TRANSFORM   0x80000
 __GLcontextRec::Transform
#define _NEW_VIEWPORT   0x100000
 __GLcontextRec::Viewport
#define _NEW_PACKUNPACK   0x200000
 __GLcontextRec::Pack, __GLcontextRec::Unpack
#define _NEW_ARRAY   0x400000
 __GLcontextRec::Array
#define _NEW_RENDERMODE   0x800000
 __GLcontextRec::RenderMode, __GLcontextRec::Feedback, __GLcontextRec::Select
#define _NEW_BUFFERS   0x1000000
 __GLcontextRec::Visual, __GLcontextRec::DrawBuffer,
#define _NEW_MULTISAMPLE   0x2000000
 __GLcontextRec::Multisample
#define _NEW_TRACK_MATRIX   0x4000000
 __GLcontextRec::VertexProgram
#define _NEW_PROGRAM   0x8000000
 __GLcontextRec::VertexProgram
#define _NEW_ALL   ~0
Bits to track array state changes
Also used to summarize array enabled.

#define _NEW_ARRAY_VERTEX   VERT_BIT_POS
#define _NEW_ARRAY_WEIGHT   VERT_BIT_WEIGHT
#define _NEW_ARRAY_NORMAL   VERT_BIT_NORMAL
#define _NEW_ARRAY_COLOR0   VERT_BIT_COLOR0
#define _NEW_ARRAY_COLOR1   VERT_BIT_COLOR1
#define _NEW_ARRAY_FOGCOORD   VERT_BIT_FOG
#define _NEW_ARRAY_INDEX   VERT_BIT_COLOR_INDEX
#define _NEW_ARRAY_EDGEFLAG   VERT_BIT_EDGEFLAG
#define _NEW_ARRAY_POINT_SIZE   VERT_BIT_COLOR_INDEX
#define _NEW_ARRAY_TEXCOORD_0   VERT_BIT_TEX0
#define _NEW_ARRAY_TEXCOORD_1   VERT_BIT_TEX1
#define _NEW_ARRAY_TEXCOORD_2   VERT_BIT_TEX2
#define _NEW_ARRAY_TEXCOORD_3   VERT_BIT_TEX3
#define _NEW_ARRAY_TEXCOORD_4   VERT_BIT_TEX4
#define _NEW_ARRAY_TEXCOORD_5   VERT_BIT_TEX5
#define _NEW_ARRAY_TEXCOORD_6   VERT_BIT_TEX6
#define _NEW_ARRAY_TEXCOORD_7   VERT_BIT_TEX7
#define _NEW_ARRAY_ATTRIB_0   VERT_BIT_GENERIC0
#define _NEW_ARRAY_ALL   0xffffffff
#define _NEW_ARRAY_TEXCOORD(i)   (_NEW_ARRAY_TEXCOORD_0 << (i))
#define _NEW_ARRAY_ATTRIB(i)   (_NEW_ARRAY_ATTRIB_0 << (i))
A bunch of flags that we think might be useful to drivers.
Set in the __GLcontextRec::_TriangleCaps bitfield.

#define DD_FLATSHADE   0x1
#define DD_SEPARATE_SPECULAR   0x2
#define DD_TRI_CULL_FRONT_BACK   0x4
#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 DD_TRI_TWOSTENCIL   0x4000
Define the state changes under which each of these bits might change
#define _DD_NEW_FLATSHADE   _NEW_LIGHT
#define _DD_NEW_SEPARATE_SPECULAR   (_NEW_LIGHT | _NEW_FOG | _NEW_PROGRAM)
#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
#define _DD_NEW_TRI_STIPPLE   _NEW_POLYGON
#define _DD_NEW_TRI_OFFSET   _NEW_POLYGON
#define _DD_NEW_LINE_SMOOTH   _NEW_LINE
#define _DD_NEW_LINE_STIPPLE   _NEW_LINE
#define _DD_NEW_LINE_WIDTH   _NEW_LINE
#define _DD_NEW_POINT_SMOOTH   _NEW_POINT
#define _DD_NEW_POINT_SIZE   _NEW_POINT
#define _DD_NEW_POINT_ATTEN   _NEW_POINT

Typedefs

typedef GLubyte GLchan
 Color channel data type.
typedef GLubyte GLstencil
 Stencil buffer data type.
typedef int GLfixed
 Fixed point data type.
typedef void(* FetchTexelFuncC )(const struct gl_texture_image *texImage, GLint col, GLint row, GLint img, GLchan *texelOut)
 Texel fetch function prototype.
typedef void(* FetchTexelFuncF )(const struct gl_texture_image *texImage, GLint col, GLint row, GLint img, GLfloat *texelOut)
 As above, but returns floats.
typedef void(* StoreTexelFunc )(struct gl_texture_image *texImage, GLint col, GLint row, GLint img, const void *texel)
typedef GLboolean(* StoreTexImageFunc )(TEXSTORE_PARAMS)
 Texture image storage function.
typedef union node Node
Some forward type declarations
typedef struct __GLcontextRec GLcontext
typedef struct __GLcontextModesRec GLvisual
typedef struct gl_framebuffer GLframebuffer

Enumerations

enum  {
  VERT_ATTRIB_POS = 0, VERT_ATTRIB_WEIGHT = 1, VERT_ATTRIB_NORMAL = 2, VERT_ATTRIB_COLOR0 = 3,
  VERT_ATTRIB_COLOR1 = 4, VERT_ATTRIB_FOG = 5, VERT_ATTRIB_COLOR_INDEX = 6, VERT_ATTRIB_POINT_SIZE = 6,
  VERT_ATTRIB_EDGEFLAG = 7, VERT_ATTRIB_TEX0 = 8, VERT_ATTRIB_TEX1 = 9, VERT_ATTRIB_TEX2 = 10,
  VERT_ATTRIB_TEX3 = 11, VERT_ATTRIB_TEX4 = 12, VERT_ATTRIB_TEX5 = 13, VERT_ATTRIB_TEX6 = 14,
  VERT_ATTRIB_TEX7 = 15, VERT_ATTRIB_GENERIC0 = 16, VERT_ATTRIB_GENERIC1 = 17, VERT_ATTRIB_GENERIC2 = 18,
  VERT_ATTRIB_GENERIC3 = 19, VERT_ATTRIB_GENERIC4 = 20, VERT_ATTRIB_GENERIC5 = 21, VERT_ATTRIB_GENERIC6 = 22,
  VERT_ATTRIB_GENERIC7 = 23, VERT_ATTRIB_GENERIC8 = 24,