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 "main/glheader.h"
#include "main/config.h"
#include "main/compiler.h"
#include "main/mfeatures.h"
#include "glapi/glapi.h"
#include "math/m_matrix.h"
#include "main/simple_list.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_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_texgen
 Texture coord generation 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_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_sync_object
 Sync object state. More...
struct  gl_sl_pragmas
 Set by pragma directives. 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 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  gl_display_list
 Provide a location where information about a display list can be collected. More...
struct  gl_dlist_state
 State used during display list compilation and execution. More...
struct  __GLcontextRec
 Mesa rendering context. More...

Defines

#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 ENABLE_TEXGEN(unit)   (1 << (unit))
 Tex-gen enabled for texture unit?
#define ENABLE_TEXMAT(unit)   (1 << (unit))
 Non-identity texture matrix for texture unit?
#define TEXSTORE_PARAMS
 This macro defines the (many) parameters to the texstore functions.
#define MAX_COMBINER_TERMS   4
 Up to four combiner sources are possible with GL_NV_texture_env_combine4.
#define ATI_FS_INPUT_PRIMARY   0
 ATI_fragment_shader runtime state.
#define ATI_FS_INPUT_SECONDARY   1
#define GLSL_DUMP   0x1
 Dump shaders to stdout.
#define GLSL_LOG   0x2
 Write shaders to files.
#define GLSL_OPT   0x4
 Force optimizations (override pragmas).
#define GLSL_NO_OPT   0x8
 Force no optimizations (override pragmas).
#define GLSL_UNIFORMS   0x10
 Print glUniform calls.
#define RB_MAGIC   0xaabbccdd
#define NUM_VERTEX_FORMAT_ENTRIES   (sizeof(GLvertexformat) / sizeof(void *))
#define DLIST_DANGLING_REFS   0x1
 Display list flags.
#define MESA_VERBOSE   0
#define MESA_DEBUG_FLAGS   0
#define MESA_FUNCTION   "a function"
#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 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_FACE   (1 << FRAG_ATTRIB_FACE)
#define FRAG_BIT_PNTC   (1 << FRAG_ATTRIB_PNTC)
#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
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_2D_ARRAY_BIT   (1 << TEXTURE_2D_ARRAY_INDEX)
 Bit flags for each type of texture object Used for Texture.Unit[]._ReallyEnabled flags.
#define TEXTURE_1D_ARRAY_BIT   (1 << TEXTURE_1D_ARRAY_INDEX)
#define TEXTURE_CUBE_BIT   (1 << TEXTURE_CUBE_INDEX)
#define TEXTURE_3D_BIT   (1 << TEXTURE_3D_INDEX)
#define TEXTURE_RECT_BIT   (1 << TEXTURE_RECT_INDEX)
#define TEXTURE_2D_BIT   (1 << TEXTURE_2D_INDEX)
#define TEXTURE_1D_BIT   (1 << TEXTURE_1D_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
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_CURRENT_ATTRIB   0x10000000
 __GLcontextRec::Current
#define _NEW_PROGRAM_CONSTANTS   0x20000000
#define _NEW_BUFFER_OBJECT   0x40000000
#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
#define _MESA_NEW_NEED_EYE_COORDS
 Composite state flags.
#define _MESA_NEW_NEED_NORMALS
#define _MESA_NEW_TRANSFER_STATE

Typedefs

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.
Some forward type declarations
Color channel data type.

Stencil buffer data type.

typedef struct __GLcontextRec GLcontext
typedef struct __GLcontextModesRec GLvisual
typedef struct gl_framebuffer GLframebuffer

Enumerations

enum  gl_vert_attrib {
  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, VERT_ATTRIB_GENERIC9 = 25, VERT_ATTRIB_GENERIC10 = 26,
  VERT_ATTRIB_GENERIC11 = 27, VERT_ATTRIB_GENERIC12 = 28, VERT_ATTRIB_GENERIC13 = 29, VERT_ATTRIB_GENERIC14 = 30,
  VERT_ATTRIB_GENERIC15 = 31, VERT_ATTRIB_MAX = 32
}
 Indexes for vertex program attributes. More...
enum  gl_vert_result {
  VERT_RESULT_HPOS = 0, VERT_RESULT_COL0 = 1, VERT_RESULT_COL1 = 2, VERT_RESULT_FOGC = 3,
  VERT_RESULT_TEX0 = 4, VERT_RESULT_TEX1 = 5, VERT_RESULT_TEX2 = 6, VERT_RESULT_TEX3 = 7,
  VERT_RESULT_TEX4 = 8, VERT_RESULT_TEX5 = 9, VERT_RESULT_TEX6 = 10, VERT_RESULT_TEX7 = 11,
  VERT_RESULT_PSIZ = 12, VERT_RESULT_BFC0 = 13, VERT_RESULT_BFC1 = 14, VERT_RESULT_EDGE = 15,
  VERT_RESULT_VAR0 = 16, VERT_RESULT_MAX = (VERT_RESULT_VAR0 + MAX_VARYING)
}
 Indexes for vertex program result attributes. More...
enum  gl_frag_attrib {
  FRAG_ATTRIB_WPOS = 0, FRAG_ATTRIB_COL0 = 1, FRAG_ATTRIB_COL1 = 2, FRAG_ATTRIB_FOGC = 3,
  FRAG_ATTRIB_TEX0 = 4, FRAG_ATTRIB_TEX1 = 5, FRAG_ATTRIB_TEX2 = 6, FRAG_ATTRIB_TEX3 = 7,
  FRAG_ATTRIB_TEX4 = 8, FRAG_ATTRIB_TEX5 = 9, FRAG_ATTRIB_TEX6 = 10, FRAG_ATTRIB_TEX7 = 11,
  FRAG_ATTRIB_FACE = 12, FRAG_ATTRIB_PNTC = 13, FRAG_ATTRIB_VAR0 = 14, FRAG_ATTRIB_MAX = (FRAG_ATTRIB_VAR0 + MAX_VARYING)
}
 Indexes for fragment program input attributes. More...
enum  gl_frag_result { FRAG_RESULT_DEPTH = 0, FRAG_RESULT_COLOR = 1, FRAG_RESULT_DATA0 = 2, FRAG_RESULT_MAX = (FRAG_RESULT_DATA0 + MAX_DRAW_BUFFERS) }
 Fragment program results. More...
enum  gl_buffer_index {
  BUFFER_FRONT_LEFT, BUFFER_BACK_LEFT, BUFFER_FRONT_RIGHT, BUFFER_BACK_RIGHT,
  BUFFER_DEPTH, BUFFER_STENCIL, BUFFER_ACCUM, BUFFER_AUX0,
  BUFFER_COLOR0, BUFFER_COLOR1, BUFFER_COLOR2, BUFFER_COLOR3,
  BUFFER_COLOR4, BUFFER_COLOR5, BUFFER_COLOR6, BUFFER_COLOR7,
  BUFFER_COUNT
}
 Indexes for all renderbuffers. More...
enum  gl_colortable_index { COLORTABLE_PRECONVOLUTION, COLORTABLE_POSTCONVOLUTION, COLORTABLE_POSTCOLORMATRIX, COLORTABLE_MAX }
 The pixel transfer path has three color tables:. More...
enum  gl_texture_index {
  TEXTURE_2D_ARRAY_INDEX, TEXTURE_1D_ARRAY_INDEX, TEXTURE_CUBE_INDEX, TEXTURE_3D_INDEX,
  TEXTURE_RECT_INDEX, TEXTURE_2D_INDEX, TEXTURE_1D_INDEX, NUM_TEXTURE_TARGETS
}
 An index for each type of texture object. More...
enum  gl_face_index {
  FACE_POS_X = 0, FACE_NEG_X = 1, FACE_POS_Y = 2, FACE_NEG_Y = 3,
  FACE_POS_Z = 4, FACE_NEG_Z = 5, MAX_FACES = 6
}
 Indexes for cube map faces. More...
enum  gl_register_file {
  PROGRAM_TEMPORARY, PROGRAM_INPUT, PROGRAM_OUTPUT, PROGRAM_VARYING,
  PROGRAM_LOCAL_PARAM, PROGRAM_ENV_PARAM, PROGRAM_STATE_VAR, PROGRAM_NAMED_PARAM,
  PROGRAM_CONSTANT, PROGRAM_UNIFORM, PROGRAM_WRITE_ONLY, PROGRAM_ADDRESS,
  PROGRAM_SAMPLER, PROGRAM_UNDEFINED, PROGRAM_FILE_MAX
}
 Names of the various vertex/fragment program register files, etc. More...
enum  _verbose {
  VERBOSE_VARRAY = 0x0001, VERBOSE_TEXTURE = 0x0002, VERBOSE_IMMEDIATE = 0x0004, VERBOSE_PIPELINE = 0x0008,
  VERBOSE_DRIVER = 0x0010, VERBOSE_STATE = 0x0020, VERBOSE_API = 0x0040, VERBOSE_DISPLAY_LIST = 0x0100,
  VERBOSE_LIGHTING = 0x0200, VERBOSE_PRIMS = 0x0400, VERBOSE_VERTS = 0x0800, VERBOSE_DISASSEM = 0x1000
}
enum  _debug { DEBUG_ALWAYS_FLUSH = 0x1 }

Variables

const char * _mesa_prim_name [GL_POLYGON+4]
 The string names for GL_POINT, GL_LINE_LOOP, etc.


Define Documentation

#define _DD_NEW_FLATSHADE   _NEW_LIGHT

#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_ATTEN   _NEW_POINT

#define _DD_NEW_POINT_SIZE   _NEW_POINT

#define _DD_NEW_POINT_SMOOTH   _NEW_POINT

#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_OFFSET   _NEW_POLYGON

#define _DD_NEW_TRI_SMOOTH   _NEW_POLYGON

#define _DD_NEW_TRI_STIPPLE   _NEW_POLYGON

#define _DD_NEW_TRI_UNFILLED   _NEW_POLYGON

#define _MESA_NEW_NEED_EYE_COORDS

Value:

Composite state flags.

#define _MESA_NEW_NEED_NORMALS

Value:

#define _MESA_NEW_TRANSFER_STATE

Value:

#define _NEW_ACCUM   0x10

__GLcontextRec::Accum

#define _NEW_ALL   ~0

#define _NEW_ARRAY   0x400000

__GLcontextRec::Array

#define _NEW_ARRAY_ALL   0xffffffff

#define _NEW_ARRAY_ATTRIB (  )     (_NEW_ARRAY_ATTRIB_0 << (i))

#define _NEW_ARRAY_ATTRIB_0   VERT_BIT_GENERIC0

#define _NEW_ARRAY_COLOR0   VERT_BIT_COLOR0

#define _NEW_ARRAY_COLOR1   VERT_BIT_COLOR1

#define _NEW_ARRAY_EDGEFLAG   VERT_BIT_EDGEFLAG

#define _NEW_ARRAY_FOGCOORD   VERT_BIT_FOG

#define _NEW_ARRAY_INDEX   VERT_BIT_COLOR_INDEX

#define _NEW_ARRAY_NORMAL   VERT_BIT_NORMAL

#define _NEW_ARRAY_POINT_SIZE   VERT_BIT_COLOR_INDEX

#define _NEW_ARRAY_TEXCOORD (  )     (_NEW_ARRAY_TEXCOORD_0 << (i))

#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_VERTEX   VERT_BIT_POS

#define _NEW_ARRAY_WEIGHT   VERT_BIT_WEIGHT

#define _NEW_BUFFER_OBJECT   0x40000000

#define _NEW_BUFFERS   0x1000000

__GLcontextRec::Visual, __GLcontextRec::DrawBuffer,

#define _NEW_COLOR   0x20

__GLcontextRec::Color

#define _NEW_COLOR_MATRIX   0x8

__GLcontextRec::ColorMatrix

#define _NEW_CURRENT_ATTRIB   0x10000000

__GLcontextRec::Current

#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_MODELVIEW   0x1

__GLcontextRec::ModelView

#define _NEW_MULTISAMPLE   0x2000000

__GLcontextRec::Multisample

#define _NEW_PACKUNPACK   0x200000

__GLcontextRec::Pack, __GLcontextRec::Unpack

#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_PROGRAM   0x8000000

__GLcontextRec::VertexProgram

#define _NEW_PROGRAM_CONSTANTS   0x20000000

#define _NEW_PROJECTION   0x2

__GLcontextRec::Projection

#define _NEW_RENDERMODE   0x800000

__GLcontextRec::RenderMode, __GLcontextRec::Feedback, __GLcontextRec::Select

#define _NEW_SCISSOR   0x10000

__GLcontextRec::Scissor

#define _NEW_STENCIL   0x20000

__GLcontextRec::Stencil

#define _NEW_TEXTURE   0x40000

__GLcontextRec::Texture

#define _NEW_TEXTURE_MATRIX   0x4

__GLcontextRec::TextureMatrix

#define _NEW_TRACK_MATRIX   0x4000000

__GLcontextRec::VertexProgram

#define _NEW_TRANSFORM   0x80000

__GLcontextRec::Transform

#define _NEW_VIEWPORT   0x100000

__GLcontextRec::Viewport

#define ALL_MATERIAL_BITS   (FRONT_MATERIAL_BITS | BACK_MATERIAL_BITS)

#define ATI_FS_INPUT_PRIMARY   0

ATI_fragment_shader runtime state.

#define ATI_FS_INPUT_SECONDARY   1

#define BACK_MATERIAL_BITS

Value:

#define BUFFER_BIT_ACCUM   (1 << BUFFER_ACCUM)

#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_BACK_LEFT   (1 << BUFFER_BACK_LEFT)

#define BUFFER_BIT_BACK_RIGHT   (1 << BUFFER_BACK_RIGHT)

#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_BIT_DEPTH   (1 << BUFFER_DEPTH)

#define BUFFER_BIT_FRONT_LEFT   (1 << BUFFER_FRONT_LEFT)

Bit flags for all renderbuffers.

#define BUFFER_BIT_FRONT_RIGHT   (1 << BUFFER_FRONT_RIGHT)

#define BUFFER_BIT_STENCIL   (1 << BUFFER_STENCIL)

#define BUFFER_BITS_COLOR

Value:

Mask of all the color buffer bits (but not accum).

#define DD_FLATSHADE   0x1

#define DD_LINE_SMOOTH   0x100

#define DD_LINE_STIPPLE   0x200

#define DD_LINE_WIDTH   0x400

#define DD_POINT_ATTEN   0x2000

#define DD_POINT_SIZE   0x1000

#define DD_POINT_SMOOTH   0x800

#define DD_SEPARATE_SPECULAR   0x2

#define DD_TRI_CULL_FRONT_BACK   0x4

#define DD_TRI_LIGHT_TWOSIDE   0x8

#define DD_TRI_OFFSET   0x80

#define DD_TRI_SMOOTH   0x20

#define DD_TRI_STIPPLE   0x40

#define DD_TRI_TWOSTENCIL   0x4000

#define DD_TRI_UNFILLED   0x10

#define DLIST_DANGLING_REFS   0x1

Display list flags.

Strictly this is a tnl-private concept, but it doesn't seem worthwhile adding a tnl private structure just to hold this one bit of information:

#define ENABLE_TEXGEN ( unit   )     (1 << (unit))

Tex-gen enabled for texture unit?

#define ENABLE_TEXMAT ( unit   )     (1 << (unit))

Non-identity texture matrix for texture unit?

#define EXP_TABLE_SIZE   512

Specular exponent lookup table sizes.

#define FRAG_BIT_COL0   (1 << FRAG_ATTRIB_COL0)

#define FRAG_BIT_COL1   (1 << FRAG_ATTRIB_COL1)

#define FRAG_BIT_FACE   (1 << FRAG_ATTRIB_FACE)

#define FRAG_BIT_FOGC   (1 << FRAG_ATTRIB_FOGC)

#define FRAG_BIT_PNTC   (1 << FRAG_ATTRIB_PNTC)

#define FRAG_BIT_TEX (  )     (FRAG_BIT_TEX0 << (U))

#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_VAR (  )     (FRAG_BIT_VAR0 << (V))

#define FRAG_BIT_VAR0   (1 << FRAG_ATTRIB_VAR0)

#define FRAG_BIT_WPOS   (1 << FRAG_ATTRIB_WPOS)

Bitflags for fragment program input attributes.

#define FRAG_BITS_TEX_ANY

Value:

#define FRONT_MATERIAL_BITS

Value:

#define GLSL_DUMP   0x1

Dump shaders to stdout.

#define GLSL_LOG   0x2

Write shaders to files.

#define GLSL_NO_OPT   0x8

Force no optimizations (override pragmas).

#define GLSL_OPT   0x4

Force optimizations (override pragmas).

#define GLSL_UNIFORMS   0x10

Print glUniform calls.

#define IMAGE_CLAMP_BIT   0x800

#define IMAGE_COLOR_MATRIX_BIT   0x80

#define IMAGE_COLOR_TABLE_BIT   0x8

#define IMAGE_CONVOLUTION_BIT   0x10

#define IMAGE_HISTOGRAM_BIT   0x200

#define IMAGE_MAP_COLOR_BIT   0x4

#define IMAGE_MIN_MAX_BIT   0x400

#define IMAGE_POST_COLOR_MATRIX_COLOR_TABLE_BIT   0x100

#define IMAGE_POST_CONVOLUTION_BITS

Value:

Pixel transfer ops after convolution.

#define IMAGE_POST_CONVOLUTION_COLOR_TABLE_BIT   0x40

#define IMAGE_POST_CONVOLUTION_SCALE_BIAS   0x20

#define IMAGE_PRE_CONVOLUTION_BITS

Value:

Pixel Transfer ops up to convolution.

#define IMAGE_SCALE_BIAS_BIT   0x1

#define IMAGE_SHIFT_OFFSET_BIT   0x2

#define LIGHT_LOCAL_VIEWER   0x2

#define LIGHT_NEED_VERTICES   (LIGHT_POSITIONAL|LIGHT_LOCAL_VIEWER)

#define LIGHT_POSITIONAL   0x4

#define LIGHT_SPOT   0x1

Light state flags.

#define MAT_ATTRIB_AMBIENT (  )     (MAT_ATTRIB_FRONT_AMBIENT+(f))

#define MAT_ATTRIB_BACK_AMBIENT   1

#define MAT_ATTRIB_BACK_DIFFUSE   3

#define MAT_ATTRIB_BACK_EMISSION   7

#define MAT_ATTRIB_BACK_INDEXES   11

#define MAT_ATTRIB_BACK_SHININESS   9

#define MAT_ATTRIB_BACK_SPECULAR   5

#define MAT_ATTRIB_DIFFUSE (  )     (MAT_ATTRIB_FRONT_DIFFUSE+(f))

#define MAT_ATTRIB_EMISSION (  )     (MAT_ATTRIB_FRONT_EMISSION+(f))

#define MAT_ATTRIB_FRONT_AMBIENT   0

#define MAT_ATTRIB_FRONT_DIFFUSE   2

#define MAT_ATTRIB_FRONT_EMISSION   6

#define MAT_ATTRIB_FRONT_INDEXES   10

#define MAT_ATTRIB_FRONT_SHININESS   8

#define MAT_ATTRIB_FRONT_SPECULAR   4

#define MAT_ATTRIB_INDEXES (  )     (MAT_ATTRIB_FRONT_INDEXES+(f))

#define MAT_ATTRIB_MAX   12

#define MAT_ATTRIB_SHININESS (  )     (MAT_ATTRIB_FRONT_SHININESS+(f))

#define MAT_ATTRIB_SPECULAR (  )     (MAT_ATTRIB_FRONT_SPECULAR+(f))

#define MAT_BIT_BACK_AMBIENT   (1<<MAT_ATTRIB_BACK_AMBIENT)

#define MAT_BIT_BACK_DIFFUSE   (1<<MAT_ATTRIB_BACK_DIFFUSE)

#define MAT_BIT_BACK_EMISSION   (1<<MAT_ATTRIB_BACK_EMISSION)

#define MAT_BIT_BACK_INDEXES   (1<<MAT_ATTRIB_BACK_INDEXES)

#define MAT_BIT_BACK_SHININESS   (1<<MAT_ATTRIB_BACK_SHININESS)

#define MAT_BIT_BACK_SPECULAR   (1<<MAT_ATTRIB_BACK_SPECULAR)

#define MAT_BIT_FRONT_AMBIENT   (1<<MAT_ATTRIB_FRONT_AMBIENT)

#define MAT_BIT_FRONT_DIFFUSE   (1<<MAT_ATTRIB_FRONT_DIFFUSE)

#define MAT_BIT_FRONT_EMISSION   (1<<MAT_ATTRIB_FRONT_EMISSION)

#define MAT_BIT_FRONT_INDEXES   (1<<MAT_ATTRIB_FRONT_INDEXES)

#define MAT_BIT_FRONT_SHININESS   (1<<MAT_ATTRIB_FRONT_SHININESS)

#define MAT_BIT_FRONT_SPECULAR   (1<<MAT_ATTRIB_FRONT_SPECULAR)

#define MAT_INDEX_AMBIENT   0

#define MAT_INDEX_DIFFUSE   1

#define MAT_INDEX_SPECULAR   2

#define MAX_COMBINER_TERMS   4

Up to four combiner sources are possible with GL_NV_texture_env_combine4.

#define MAX_DLIST_EXT_OPCODES   16

#define MESA_DEBUG_FLAGS   0

#define MESA_FUNCTION   "a function"

#define MESA_VERBOSE   0

#define NUM_VERTEX_FORMAT_ENTRIES   (sizeof(GLvertexformat) / sizeof(void *))

#define Q_BIT   8

#define R_BIT   4

#define RB_MAGIC   0xaabbccdd

#define S_BIT   1

TexGenEnabled flags.

#define SHINE_TABLE_SIZE   256

Material shininess lookup table sizes.

#define T_BIT   2

#define TEXGEN_EYE_LINEAR   0x4

#define TEXGEN_NEED_EYE_COORD

Value:

#define TEXGEN_NEED_NORMALS

Value:

#define TEXGEN_NORMAL_MAP_NV   0x10

#define TEXGEN_OBJ_LINEAR   0x2

#define TEXGEN_REFLECTION_MAP_NV   0x8

#define TEXGEN_SPHERE_MAP   0x1

Bit flag versions of the corresponding GL_ constants.

#define TEXSTORE_PARAMS

Value:

GLcontext *ctx, GLuint dims, \
        GLenum baseInternalFormat, \
        const struct gl_texture_format *dstFormat, \
        GLvoid *dstAddr, \
        GLint dstXoffset, GLint dstYoffset, GLint dstZoffset, \
        GLint dstRowStride, const GLuint *dstImageOffsets, \
        GLint srcWidth, GLint srcHeight, GLint srcDepth, \
        GLenum srcFormat, GLenum srcType, \
        const GLvoid *srcAddr, \
        const struct gl_pixelstore_attrib *srcPacking
This macro defines the (many) parameters to the texstore functions.

Parameters:
dims either 1 or 2 or 3
baseInternalFormat user-specified base internal format
dstFormat destination Mesa texture format
dstAddr destination image address
dstX/Y/Zoffset destination x/y/z offset (ala TexSubImage), in texels
dstRowStride destination image row stride, in bytes
dstImageOffsets offset of each 2D slice within 3D texture, in texels
srcWidth/Height/Depth source image size, in pixels
srcFormat incoming image format
srcType incoming image data type
srcAddr source image address
srcPacking source image packing parameters

#define TEXTURE_1D_ARRAY_BIT   (1 << TEXTURE_1D_ARRAY_INDEX)

#define TEXTURE_1D_BIT   (1 << TEXTURE_1D_INDEX)

#define TEXTURE_2D_ARRAY_BIT   (1 << TEXTURE_2D_ARRAY_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 VERT_BIT_COLOR0   (1 << VERT_ATTRIB_COLOR0)

#define VERT_BIT_COLOR1   (1 << VERT_ATTRIB_COLOR1)

#define VERT_BIT_COLOR_INDEX   (1 << VERT_ATTRIB_COLOR_INDEX)

#define VERT_BIT_EDGEFLAG   (1 << VERT_ATTRIB_EDGEFLAG)

#define VERT_BIT_FOG   (1 << VERT_ATTRIB_FOG)

#define VERT_BIT_GENERIC (  )     (1 << (VERT_ATTRIB_GENERIC0 + (g)))

#define VERT_BIT_GENERIC0   (1 << VERT_ATTRIB_GENERIC0)

#define VERT_BIT_GENERIC1   (1 << VERT_ATTRIB_GENERIC1)

#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_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_NORMAL   (1 << VERT_ATTRIB_NORMAL)

#define VERT_BIT_POS   (1 << VERT_ATTRIB_POS)

Bitflags for vertex attributes.

These are used in bitfields in many places.

#define VERT_BIT_TEX (  )     (1 << (VERT_ATTRIB_TEX0 + (u)))

#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_WEIGHT   (1 << VERT_ATTRIB_WEIGHT)


Typedef Documentation

typedef void(* FetchTexelFuncC)(const struct gl_texture_image *texImage, GLint col, GLint row, GLint img, GLchan *texelOut)

Texel fetch function prototype.

We use texel fetch functions to extract RGBA, color indexes and depth components out of 1D, 2D and 3D texture images. These functions help to isolate us from the gritty details of all the various texture image encodings.

Parameters:
texImage texture image.
col texel column.
row texel row.
img texel image level/layer.
texelOut output texel (up to 4 GLchans)

typedef void(* FetchTexelFuncF)(const struct gl_texture_image *texImage, GLint col, GLint row, GLint img, GLfloat *texelOut)

As above, but returns floats.

Used for depth component images and for upcoming signed/float texture images.

typedef struct __GLcontextRec GLcontext

typedef struct gl_framebuffer GLframebuffer

typedef struct __GLcontextModesRec GLvisual

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.


Enumeration Type Documentation

enum _debug

Enumerator:
DEBUG_ALWAYS_FLUSH 

enum _verbose

Enumerator:
VERBOSE_VARRAY 
VERBOSE_TEXTURE 
VERBOSE_IMMEDIATE 
VERBOSE_PIPELINE 
VERBOSE_DRIVER 
VERBOSE_STATE 
VERBOSE_API 
VERBOSE_DISPLAY_LIST 
VERBOSE_LIGHTING 
VERBOSE_PRIMS 
VERBOSE_VERTS 
VERBOSE_DISASSEM 

enum gl_buffer_index

Indexes for all renderbuffers.

Enumerator:
BUFFER_FRONT_LEFT 
BUFFER_BACK_LEFT 
BUFFER_FRONT_RIGHT 
BUFFER_BACK_RIGHT 
BUFFER_DEPTH 
BUFFER_STENCIL 
BUFFER_ACCUM 
BUFFER_AUX0 
BUFFER_COLOR0 
BUFFER_COLOR1 
BUFFER_COLOR2 
BUFFER_COLOR3 
BUFFER_COLOR4 
BUFFER_COLOR5 
BUFFER_COLOR6 
BUFFER_COLOR7 
BUFFER_COUNT 

enum gl_colortable_index

The pixel transfer path has three color tables:.

Enumerator:
COLORTABLE_PRECONVOLUTION 
COLORTABLE_POSTCONVOLUTION 
COLORTABLE_POSTCOLORMATRIX 
COLORTABLE_MAX 

enum gl_face_index

Indexes for cube map faces.

Enumerator:
FACE_POS_X 
FACE_NEG_X 
FACE_POS_Y 
FACE_NEG_Y 
FACE_POS_Z 
FACE_NEG_Z 
MAX_FACES 

enum gl_frag_attrib

Indexes for fragment program input attributes.

Enumerator:
FRAG_ATTRIB_WPOS 
FRAG_ATTRIB_COL0 
FRAG_ATTRIB_COL1 
FRAG_ATTRIB_FOGC 
FRAG_ATTRIB_TEX0 
FRAG_ATTRIB_TEX1 
FRAG_ATTRIB_TEX2 
FRAG_ATTRIB_TEX3 
FRAG_ATTRIB_TEX4 
FRAG_ATTRIB_TEX5 
FRAG_ATTRIB_TEX6 
FRAG_ATTRIB_TEX7 
FRAG_ATTRIB_FACE  front/back face
FRAG_ATTRIB_PNTC  sprite/point coord
FRAG_ATTRIB_VAR0  shader varying
FRAG_ATTRIB_MAX 

enum gl_frag_result

Fragment program results.

Enumerator:
FRAG_RESULT_DEPTH 
FRAG_RESULT_COLOR 
FRAG_RESULT_DATA0 
FRAG_RESULT_MAX 

enum gl_register_file

Names of the various vertex/fragment program register files, etc.

NOTE: first four tokens must fit into 2 bits (see t_vb_arbprogram.c) All values should fit in a 4-bit field.

NOTE: PROGRAM_ENV_PARAM, PROGRAM_STATE_VAR, PROGRAM_NAMED_PARAM, PROGRAM_CONSTANT, and PROGRAM_UNIFORM can all be considered to be "uniform" variables since they can only be set outside glBegin/End. They're also all stored in the same Parameters array.

Enumerator:
PROGRAM_TEMPORARY  machine->Temporary[]
PROGRAM_INPUT  machine->Inputs[]
PROGRAM_OUTPUT  machine->Outputs[]
PROGRAM_VARYING  machine->Inputs[]/Outputs[]
PROGRAM_LOCAL_PARAM  gl_program->LocalParams[]
PROGRAM_ENV_PARAM  gl_program->Parameters[]
PROGRAM_STATE_VAR  gl_program->Parameters[]
PROGRAM_NAMED_PARAM  gl_program->Parameters[]
PROGRAM_CONSTANT  gl_program->Parameters[]
PROGRAM_UNIFORM  gl_program->Parameters[]
PROGRAM_WRITE_ONLY  A dummy, write-only register.
PROGRAM_ADDRESS  machine->AddressReg
PROGRAM_SAMPLER  for shader samplers, compile-time only
PROGRAM_UNDEFINED  Invalid/TBD value.
PROGRAM_FILE_MAX 

enum gl_texture_index

An index for each type of texture object.

These correspond to the GL texture target enums, such as GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP, etc. Note: the order is from highest priority to lowest priority.

Enumerator:
TEXTURE_2D_ARRAY_INDEX 
TEXTURE_1D_ARRAY_INDEX 
TEXTURE_CUBE_INDEX 
TEXTURE_3D_INDEX 
TEXTURE_RECT_INDEX 
TEXTURE_2D_INDEX 
TEXTURE_1D_INDEX 
NUM_TEXTURE_TARGETS 

enum gl_vert_attrib

Indexes for vertex program attributes.

GL_NV_vertex_program aliases generic attributes over the conventional attributes. In GL_ARB_vertex_program shader the aliasing is optional. In GL_ARB_vertex_shader / OpenGL 2.0 the aliasing is disallowed (the generic attributes are distinct/separate).

Enumerator:
VERT_ATTRIB_POS 
VERT_ATTRIB_WEIGHT 
VERT_ATTRIB_NORMAL 
VERT_ATTRIB_COLOR0 
VERT_ATTRIB_COLOR1 
VERT_ATTRIB_FOG 
VERT_ATTRIB_COLOR_INDEX 
VERT_ATTRIB_POINT_SIZE 
VERT_ATTRIB_EDGEFLAG 
VERT_ATTRIB_TEX0 
VERT_ATTRIB_TEX1 
VERT_ATTRIB_TEX2 
VERT_ATTRIB_TEX3 
VERT_ATTRIB_TEX4 
VERT_ATTRIB_TEX5 
VERT_ATTRIB_TEX6 
VERT_ATTRIB_TEX7 
VERT_ATTRIB_GENERIC0 
VERT_ATTRIB_GENERIC1 
VERT_ATTRIB_GENERIC2 
VERT_ATTRIB_GENERIC3 
VERT_ATTRIB_GENERIC4 
VERT_ATTRIB_GENERIC5 
VERT_ATTRIB_GENERIC6 
VERT_ATTRIB_GENERIC7 
VERT_ATTRIB_GENERIC8 
VERT_ATTRIB_GENERIC9 
VERT_ATTRIB_GENERIC10 
VERT_ATTRIB_GENERIC11 
VERT_ATTRIB_GENERIC12 
VERT_ATTRIB_GENERIC13 
VERT_ATTRIB_GENERIC14 
VERT_ATTRIB_GENERIC15 
VERT_ATTRIB_MAX 

enum gl_vert_result

Indexes for vertex program result attributes.

Enumerator:
VERT_RESULT_HPOS 
VERT_RESULT_COL0 
VERT_RESULT_COL1 
VERT_RESULT_FOGC 
VERT_RESULT_TEX0 
VERT_RESULT_TEX1 
VERT_RESULT_TEX2 
VERT_RESULT_TEX3 
VERT_RESULT_TEX4 
VERT_RESULT_TEX5 
VERT_RESULT_TEX6 
VERT_RESULT_TEX7 
VERT_RESULT_PSIZ 
VERT_RESULT_BFC0 
VERT_RESULT_BFC1 
VERT_RESULT_EDGE 
VERT_RESULT_VAR0  shader varying
VERT_RESULT_MAX 


Variable Documentation

const char* _mesa_prim_name[GL_POLYGON+4]

The string names for GL_POINT, GL_LINE_LOOP, etc.


Generated on Sun Sep 27 06:47:46 2009 for Mesa Main by  doxygen 1.5.4