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

dd_function_table Struct Reference

#include <dd.h>


Detailed Description

Device driver function table.

Core Mesa uses these function pointers to call into device drivers. Most of these functions directly correspond to OpenGL state commands. Core Mesa will call these functions after error checking has been done so that the drivers don't have to worry about error testing.

Vertex transformation/clipping/lighting is patched into the T&L module. Rasterization functions are patched into the swrast module.

Note: when new functions are added here, the drivers/common/driverfuncs.c file should be updated too!!!

Data Fields

const GLubyte *(* GetString )(GLcontext *ctx, GLenum name)
 Return a string as needed by glGetString().
void(* UpdateState )(GLcontext *ctx, GLbitfield new_state)
 Notify the driver after Mesa has made some internal state changes.
void(* GetBufferSize )(GLframebuffer *buffer, GLuint *width, GLuint *height)
 Get the width and height of the named buffer/window.
void(* ResizeBuffers )(GLcontext *ctx, GLframebuffer *fb, GLuint width, GLuint height)
 Resize the given framebuffer to the given size.
void(* Error )(GLcontext *ctx)
 Called whenever an error is generated.
void(* Finish )(GLcontext *ctx)
 This is called whenever glFinish() is called.
void(* Flush )(GLcontext *ctx)
 This is called whenever glFlush() is called.
void(* Clear )(GLcontext *ctx, GLbitfield buffers)
 Clear the color/depth/stencil/accum buffer(s).
void(* Accum )(GLcontext *ctx, GLenum op, GLfloat value)
 Execute glAccum command.
void(* RasterPos )(GLcontext *ctx, const GLfloat v[4])
 Execute glRasterPos, updating the ctx->Current.Raster fields.
Image-related functions
void(* DrawPixels )(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, const GLvoid *pixels)
 Called by glDrawPixels().
void(* ReadPixels )(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, GLvoid *dest)
 Called by glReadPixels().
void(* CopyPixels )(GLcontext *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint dstx, GLint dsty, GLenum type)
 Called by glCopyPixels().
void(* Bitmap )(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap)
 Called by glBitmap().
Texture image functions
struct gl_texture_format *(* ChooseTextureFormat )(GLcontext *ctx, GLint internalFormat, GLenum srcFormat, GLenum srcType)
 Choose texture format.
void(* TexImage1D )(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage)
 Called by glTexImage1D().
void(* TexImage2D )(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage)
 Called by glTexImage2D().
void(* TexImage3D )(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage)
 Called by glTexImage3D().
void(* TexSubImage1D )(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage)
 Called by glTexSubImage1D().
void(* TexSubImage2D )(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage)
 Called by glTexSubImage2D().
void(* TexSubImage3D )(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLint depth, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage)
 Called by glTexSubImage3D().
void(* GetTexImage )(GLcontext *ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage)
 Called by glGetTexImage().
void(* CopyTexImage1D )(GLcontext *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
 Called by glCopyTexImage1D().
void(* CopyTexImage2D )(GLcontext *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
 Called by glCopyTexImage2D().
void(* CopyTexSubImage1D )(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
 Called by glCopyTexSubImage1D().
void(* CopyTexSubImage2D )(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
 Called by glCopyTexSubImage2D().
void(* CopyTexSubImage3D )(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
 Called by glCopyTexSubImage3D().
void(* GenerateMipmap )(GLcontext *ctx, GLenum target, struct gl_texture_object *texObj)
 Called by glGenerateMipmap() or when GL_GENERATE_MIPMAP_SGIS is enabled.
GLboolean(* TestProxyTexImage )(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLenum format, GLenum type, GLint width, GLint height, GLint depth, GLint border)
 Called by glTexImage[123]D when user specifies a proxy texture target.
Compressed texture functions
void(* CompressedTexImage1D )(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data, struct gl_texture_object *texObj, struct gl_texture_image *texImage)
 Called by glCompressedTexImage1D().
void(* CompressedTexImage2D )(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data, struct gl_texture_object *texObj, struct gl_texture_image *texImage)
 Called by glCompressedTexImage2D().
void(* CompressedTexImage3D )(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data, struct gl_texture_object *texObj, struct gl_texture_image *texImage)
 Called by glCompressedTexImage3D().
void(* CompressedTexSubImage1D )(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data, struct gl_texture_object *texObj, struct gl_texture_image *texImage)
 Called by glCompressedTexSubImage1D().
void(* CompressedTexSubImage2D )(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLint height, GLenum format, GLsizei imageSize, const GLvoid *data, struct gl_texture_object *texObj, struct gl_texture_image *texImage)
 Called by glCompressedTexSubImage2D().
void(* CompressedTexSubImage3D )(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLint height, GLint depth, GLenum format, GLsizei imageSize, const GLvoid *data, struct gl_texture_object *texObj, struct gl_texture_image *texImage)
 Called by glCompressedTexSubImage3D().
void(* GetCompressedTexImage )(GLcontext *ctx, GLenum target, GLint level, GLvoid *img, struct gl_texture_object *texObj, struct gl_texture_image *texImage)
 Called by glGetCompressedTexImage.
GLuint(* CompressedTextureSize )(GLcontext *ctx, GLsizei width, GLsizei height, GLsizei depth, GLenum format)
 Called to query number of bytes of storage needed to store the specified compressed texture.
Texture object functions
void(* BindTexture )(GLcontext *ctx, GLenum target, struct gl_texture_object *tObj)
 Called by glBindTexture().
struct gl_texture_object *(* NewTextureObject )(GLcontext *ctx, GLuint name, GLenum target)
 Called to allocate a new texture object.
void(* DeleteTexture )(GLcontext *ctx, struct gl_texture_object *tObj)
 Called when a texture object is about to be deallocated.
struct gl_texture_image *(* NewTextureImage )(GLcontext *ctx)
 Called to allocate a new texture image object.
void(* FreeTexImageData )(GLcontext *ctx, struct gl_texture_image *tImage)
 Called to free tImage->Data.
void(* MapTexture )(GLcontext *ctx, struct gl_texture_object *tObj)
 Map texture image data into user space.
void(* UnmapTexture )(GLcontext *ctx, struct gl_texture_object *tObj)
 Unmap texture images from user space.
void *(* TextureMemCpy )(void *to, const void *from, size_t sz)
 Note: no context argument.
GLboolean(* IsTextureResident )(GLcontext *ctx, struct gl_texture_object *t)
 Called by glAreTextureResident().
void(* PrioritizeTexture )(GLcontext *ctx, struct gl_texture_object *t, GLclampf priority)
 Called by glPrioritizeTextures().
void(* ActiveTexture )(GLcontext *ctx, GLuint texUnitNumber)
 Called by glActiveTextureARB() to set current texture unit.
void(* UpdateTexturePalette )(GLcontext *ctx, struct gl_texture_object *tObj)
 Called when the texture's color lookup table is changed.
Imaging functionality
void(* CopyColorTable )(GLcontext *ctx, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
void(* CopyColorSubTable )(GLcontext *ctx, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
void(* CopyConvolutionFilter1D )(GLcontext *ctx, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
void(* CopyConvolutionFilter2D )(GLcontext *ctx, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height)
Vertex/fragment program functions
void(* BindProgram )(GLcontext *ctx, GLenum target, struct gl_program *prog)
 Bind a vertex/fragment program.
struct gl_program *(* NewProgram )(GLcontext *ctx, GLenum target, GLuint id)
 Allocate a new program.
void(* DeleteProgram )(GLcontext *ctx, struct gl_program *prog)
 Delete a program.
void(* ProgramStringNotify )(GLcontext *ctx, GLenum target, struct gl_program *prog)
 Notify driver that a program string has been specified.
GLboolean(* IsProgramNative )(GLcontext *ctx, GLenum target, struct gl_program *prog)
 Query if program can be loaded onto hardware.
State-changing functions.
Note:
drawing functions are above.
These functions are called by their corresponding OpenGL API functions. They are also called by the gl_PopAttrib() function!!! May add more functions like these to the device driver in the future.

void(* AlphaFunc )(GLcontext *ctx, GLenum func, GLfloat ref)
 Specify the alpha test function.
void(* BlendColor )(GLcontext *ctx, const GLfloat color[4])
 Set the blend color.
void(* BlendEquationSeparate )(GLcontext *ctx, GLenum modeRGB, GLenum modeA)
 Set the blend equation.
void(* BlendFuncSeparate )(GLcontext *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA)
 Specify pixel arithmetic.
void(* ClearColor )(GLcontext *ctx, const GLfloat color[4])
 Specify clear values for the color buffers.
void(* ClearDepth )(GLcontext *ctx, GLclampd d)
 Specify the clear value for the depth buffer.
void(* ClearIndex )(GLcontext *ctx, GLuint index)
 Specify the clear value for the color index buffers.
void(* ClearStencil )(GLcontext *ctx, GLint s)
 Specify the clear value for the stencil buffer.
void(* ClipPlane )(GLcontext *ctx, GLenum plane, const GLfloat *equation)
 Specify a plane against which all geometry is clipped.
void(* ColorMask )(GLcontext *ctx, GLboolean rmask, GLboolean gmask, GLboolean bmask, GLboolean amask)
 Enable and disable writing of frame buffer color components.
void(* ColorMaterial )(GLcontext *ctx, GLenum face, GLenum mode)
 Cause a material color to track the current color.
void(* CullFace )(GLcontext *ctx, GLenum mode)
 Specify whether front- or back-facing facets can be culled.
void(* FrontFace )(GLcontext *ctx, GLenum mode)
 Define front- and back-facing polygons.
void(* DepthFunc )(GLcontext *ctx, GLenum func)
 Specify the value used for depth buffer comparisons.
void(* DepthMask )(GLcontext *ctx, GLboolean flag)
 Enable or disable writing into the depth buffer.
void(* DepthRange )(GLcontext *ctx, GLclampd nearval, GLclampd farval)
 Specify mapping of depth values from NDC to window coordinates.
void(* DrawBuffer )(GLcontext *ctx, GLenum buffer)
 Specify the current buffer for writing.
void(* DrawBuffers )(GLcontext *ctx, GLsizei n, const GLenum *buffers)
 Specify the buffers for writing for fragment programs.
void(* Enable )(GLcontext *ctx, GLenum cap, GLboolean state)
 Enable or disable server-side gl capabilities.
void(* Fogfv )(GLcontext *ctx, GLenum pname, const GLfloat *params)
 Specify fog parameters.
void(* Hint )(GLcontext *ctx, GLenum target, GLenum mode)
 Specify implementation-specific hints.
void(* IndexMask )(GLcontext *ctx, GLuint mask)
 Control the writing of individual bits in the color index buffers.
void(* Lightfv )(GLcontext *ctx, GLenum light, GLenum pname, const GLfloat *params)
 Set light source parameters.
void(* LightModelfv )(GLcontext *ctx, GLenum pname, const GLfloat *params)
 Set the lighting model parameters.
void(* LineStipple )(GLcontext *ctx, GLint factor, GLushort pattern)
 Specify the line stipple pattern.
void(* LineWidth )(GLcontext *ctx, GLfloat width)
 Specify the width of rasterized lines.
void(* LogicOpcode )(GLcontext *ctx, GLenum opcode)
 Specify a logical pixel operation for color index rendering.
void(* PointParameterfv )(GLcontext *ctx, GLenum pname, const GLfloat *params)
void(* PointSize )(GLcontext *ctx, GLfloat size)
 Specify the diameter of rasterized points.
void(* PolygonMode )(GLcontext *ctx, GLenum face, GLenum mode)
 Select a polygon rasterization mode.
void(* PolygonOffset )(GLcontext *ctx, GLfloat factor, GLfloat units)
 Set the scale and units used to calculate depth values.
void(* PolygonStipple )(GLcontext *ctx, const GLubyte *mask)
 Set the polygon stippling pattern.
void(* ReadBuffer )(GLcontext *ctx, GLenum buffer)
void(* RenderMode )(GLcontext *ctx, GLenum mode)
 Set rasterization mode.
void(* Scissor )(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h)
 Define the scissor box.
void(* ShadeModel )(GLcontext *ctx, GLenum mode)
 Select flat or smooth shading.
void(* StencilFuncSeparate )(GLcontext *ctx, GLenum face, GLenum func, GLint ref, GLuint mask)
 OpenGL 2.0 two-sided StencilFunc.
void(* StencilMaskSeparate )(GLcontext *ctx, GLenum face, GLuint mask)
 OpenGL 2.0 two-sided StencilMask.
void(* StencilOpSeparate )(GLcontext *ctx, GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
 OpenGL 2.0 two-sided StencilOp.
void(* TexGen )(GLcontext *ctx, GLenum coord, GLenum pname, const GLfloat *params)
 Control the generation of texture coordinates.
void(* TexEnv )(GLcontext *ctx, GLenum target, GLenum pname, const GLfloat *param)
 Set texture environment parameters.
void(* TexParameter )(GLcontext *ctx, GLenum target, struct gl_texture_object *texObj, GLenum pname, const GLfloat *params)
 Set texture parameters.
void(* TextureMatrix )(GLcontext *ctx, GLuint unit, const GLmatrix *mat)
void(* Viewport )(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h)
 Set the viewport.
Vertex array functions
Called by the corresponding OpenGL functions.

void(* VertexPointer )(GLcontext *ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
void(* NormalPointer )(GLcontext *ctx, GLenum type, GLsizei stride, const GLvoid *ptr)
void(* ColorPointer )(GLcontext *ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
void(* FogCoordPointer )(GLcontext *ctx, GLenum type, GLsizei stride, const GLvoid *ptr)
void(* IndexPointer )(GLcontext *ctx, GLenum type, GLsizei stride, const GLvoid *ptr)
void(* SecondaryColorPointer )(GLcontext *ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
void(* TexCoordPointer )(GLcontext *ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
void(* EdgeFlagPointer )(GLcontext *ctx, GLsizei stride, const GLvoid *ptr)
void(* VertexAttribPointer )(GLcontext *ctx, GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
void(* LockArraysEXT )(GLcontext *ctx, GLint first, GLsizei count)
void(* UnlockArraysEXT )(GLcontext *ctx)
State-query functions
Return GL_TRUE if query was completed, GL_FALSE otherwise.

GLboolean(* GetBooleanv )(GLcontext *ctx, GLenum pname, GLboolean *result)
 Return the value or values of a selected parameter.
GLboolean(* GetDoublev )(GLcontext *ctx, GLenum pname, GLdouble *result)
 Return the value or values of a selected parameter.
GLboolean(* GetFloatv )(GLcontext *ctx, GLenum pname, GLfloat *result)
 Return the value or values of a selected parameter.
GLboolean(* GetIntegerv )(GLcontext *ctx, GLenum pname, GLint *result)
 Return the value or values of a selected parameter.
GLboolean(* GetInteger64v )(GLcontext *ctx, GLenum pname, GLint64 *result)
 Return the value or values of a selected parameter.
GLboolean(* GetPointerv )(GLcontext *ctx, GLenum pname, GLvoid **result)
 Return the value or values of a selected parameter.
Query objects
struct gl_query_object *(* NewQueryObject )(GLcontext *ctx, GLuint id)
void(* DeleteQuery )(GLcontext *ctx, struct gl_query_object *q)
void(* BeginQuery )(GLcontext *ctx, struct gl_query_object *q)
void(* EndQuery )(GLcontext *ctx, struct gl_query_object *q)
void(* CheckQuery )(GLcontext *ctx, struct gl_query_object *q)
void(* WaitQuery )(GLcontext *ctx, struct gl_query_object *q)
Vertex Array objects
struct gl_array_object *(* NewArrayObject )(GLcontext *ctx, GLuint id)
void(* DeleteArrayObject )(GLcontext *ctx, struct gl_array_object *obj)
void(* BindArrayObject )(GLcontext *ctx, struct gl_array_object *obj)
GLSL-related functions (ARB extensions and OpenGL 2.x)
void(* AttachShader )(GLcontext *ctx, GLuint program, GLuint shader)
void(* BindAttribLocation )(GLcontext *ctx, GLuint program, GLuint index, const GLcharARB *name)
void(* CompileShader )(GLcontext *ctx, GLuint shader)
GLuint(* CreateShader )(GLcontext *ctx, GLenum type)
GLuint(* CreateProgram )(GLcontext *ctx)
void(* DeleteProgram2 )(GLcontext *ctx, GLuint program)
void(* DeleteShader )(GLcontext *ctx, GLuint shader)
void(* DetachShader )(GLcontext *ctx, GLuint program, GLuint shader)
void(* GetActiveAttrib )(GLcontext *ctx, GLuint program, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name)
void(* GetActiveUniform )(GLcontext *ctx, GLuint program, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name)
void(* GetAttachedShaders )(GLcontext *ctx, GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj)
GLint(* GetAttribLocation )(GLcontext *ctx, GLuint program, const GLcharARB *name)
GLuint(* GetHandle )(GLcontext *ctx, GLenum pname)
void(* GetProgramiv )(GLcontext *ctx, GLuint program, GLenum pname, GLint *params)
void(* GetProgramInfoLog )(GLcontext *ctx, GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog)
void(* GetShaderiv )(GLcontext *ctx, GLuint shader, GLenum pname, GLint *params)
void(* GetShaderInfoLog )(GLcontext *ctx, GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog)
void(* GetShaderSource )(GLcontext *ctx, GLuint shader, GLsizei maxLength, GLsizei *length, GLcharARB *sourceOut)
void(* GetUniformfv )(GLcontext *ctx, GLuint program, GLint location, GLfloat *params)
void(* GetUniformiv )(GLcontext *ctx, GLuint program, GLint location, GLint *params)
GLint(* GetUniformLocation )(GLcontext *ctx, GLuint program, const GLcharARB *name)
GLboolean(* IsProgram )(GLcontext *ctx, GLuint name)
GLboolean(* IsShader )(GLcontext *ctx, GLuint name)
void(* LinkProgram )(GLcontext *ctx, GLuint program)
void(* ShaderSource )(GLcontext *ctx, GLuint shader, const GLchar *source)
void(* Uniform )(GLcontext *ctx, GLint location, GLsizei count, const GLvoid *values, GLenum type)
void(* UniformMatrix )(GLcontext *ctx, GLint cols, GLint rows, GLint location, GLsizei count, GLboolean transpose, const GLfloat *values)
void(* UseProgram )(GLcontext *ctx, GLuint program)
void(* ValidateProgram )(GLcontext *ctx, GLuint program)
Support for multiple T&L engines
GLuint NeedValidate
 Bitmask of state changes that require the current T&L module to be validated, using ValidateTnlModule() below.
void(* ValidateTnlModule )(GLcontext *ctx, GLuint new_state)
 Validate the current T&L module.
GLuint CurrentExecPrimitive
 Set by the driver-supplied T&L engine.
GLuint CurrentSavePrimitive
 Current state of an in-progress compilation.
GLuint NeedFlush
 Set by the driver-supplied T&L engine whenever vertices are buffered between glBegin()/glEnd() objects or __GLcontextRec::Current is not updated.
GLuint SaveNeedFlush
void(* BeginVertices )(GLcontext *ctx)
void(* FlushVertices )(GLcontext *ctx, GLuint flags)
 If inside glBegin()/glEnd(), it should ASSERT(0).
void(* SaveFlushVertices )(GLcontext *ctx)
GLboolean(* NotifySaveBegin )(GLcontext *ctx, GLenum mode)
 Give the driver the opportunity to hook in its own vtxfmt for compiling optimized display lists.
void(* LightingSpaceChange )(GLcontext *ctx)
 Notify driver that the special derived value _NeedEyeCoords has changed.
void(* NewList )(GLcontext *ctx, GLuint list, GLenum mode)
 Called by glNewList().
void(* EndList )(GLcontext *ctx)
 Called by glEndList().
void(* BeginCallList )(GLcontext *ctx, struct gl_display_list *dlist)
 Called by glCallList(s).
void(* EndCallList )(GLcontext *ctx)
 Called by glEndCallList().


Field Documentation

const GLubyte*(* dd_function_table::GetString)(GLcontext *ctx, GLenum name)

Return a string as needed by glGetString().

Only the GL_RENDERER query must be implemented. Otherwise, NULL can be returned.

void(* dd_function_table::UpdateState)(GLcontext *ctx, GLbitfield new_state)

Notify the driver after Mesa has made some internal state changes.

This is in addition to any state change callbacks Mesa may already have made.

void(* dd_function_table::GetBufferSize)(GLframebuffer *buffer, GLuint *width, GLuint *height)

Get the width and height of the named buffer/window.

Mesa uses this to determine when the driver's window size has changed. XXX OBSOLETE: this function will be removed in the future.

void(* dd_function_table::ResizeBuffers)(GLcontext *ctx, GLframebuffer *fb, GLuint width, GLuint height)

Resize the given framebuffer to the given size.

XXX OBSOLETE: this function will be removed in the future.

void(* dd_function_table::Error)(GLcontext *ctx)

Called whenever an error is generated.

__GLcontextRec::ErrorValue contains the error value.

void(* dd_function_table::Finish)(GLcontext *ctx)

This is called whenever glFinish() is called.

void(* dd_function_table::Flush)(GLcontext *ctx)

This is called whenever glFlush() is called.

void(* dd_function_table::Clear)(GLcontext *ctx, GLbitfield buffers)

Clear the color/depth/stencil/accum buffer(s).

Parameters:
buffers a bitmask of BUFFER_BIT_* flags indicating which renderbuffers need to be cleared.

void(* dd_function_table::Accum)(GLcontext *ctx, GLenum op, GLfloat value)

Execute glAccum command.

void(* dd_function_table::RasterPos)(GLcontext *ctx, const GLfloat v[4])

Execute glRasterPos, updating the ctx->Current.Raster fields.

void(* dd_function_table::DrawPixels)(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, const GLvoid *pixels)

Called by glDrawPixels().

unpack describes how to unpack the source image data.

void(* dd_function_table::ReadPixels)(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, GLvoid *dest)

Called by glReadPixels().

void(* dd_function_table::CopyPixels)(GLcontext *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint dstx, GLint dsty, GLenum type)

Called by glCopyPixels().

void(* dd_function_table::Bitmap)(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap)

Called by glBitmap().

struct gl_texture_format*(* dd_function_table::ChooseTextureFormat)(GLcontext *ctx, GLint internalFormat, GLenum srcFormat, GLenum srcType) [read]

Choose texture format.

This is called by the _mesa_store_tex[sub]image[123]d() fallback functions. The driver should examine internalFormat and return a pointer to an appropriate gl_texture_format.

void(* dd_function_table::TexImage1D)(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage)

Called by glTexImage1D().

Parameters:
target user specified.
format user specified.
type user specified.
pixels user specified.
packing indicates the image packing of pixels.
texObj is the target texture object.
texImage is the target texture image. It will have the texture width, height, depth, border and internalFormat information.
retainInternalCopy is returned by this function and indicates whether core Mesa should keep an internal copy of the texture image.

Drivers should call a fallback routine from texstore.c if needed.

void(* dd_function_table::TexImage2D)(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage)

Called by glTexImage2D().

See also:
dd_function_table::TexImage1D.

void(* dd_function_table::TexImage3D)(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage)

Called by glTexImage3D().

See also:
dd_function_table::TexImage1D.

void(* dd_function_table::TexSubImage1D)(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage)

Called by glTexSubImage1D().

Parameters:
target user specified.
level user specified.
xoffset user specified.
yoffset user specified.
zoffset user specified.
width user specified.
height user specified.
depth user specified.
format user specified.
type user specified.
pixels user specified.
packing indicates the image packing of pixels.
texObj is the target texture object.
texImage is the target texture image. It will have the texture width, height, border and internalFormat information.
The driver should use a fallback routine from texstore.c if needed.

void(* dd_function_table::TexSubImage2D)(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage)

Called by glTexSubImage2D().

See also:
dd_function_table::TexSubImage1D.

void(* dd_function_table::TexSubImage3D)(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLint depth, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage)

Called by glTexSubImage3D().

See also:
dd_function_table::TexSubImage1D.

void(* dd_function_table::GetTexImage)(GLcontext *ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage)

Called by glGetTexImage().

void(* dd_function_table::CopyTexImage1D)(GLcontext *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)

Called by glCopyTexImage1D().

Drivers should use a fallback routine from texstore.c if needed.

void(* dd_function_table::CopyTexImage2D)(GLcontext *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)

Called by glCopyTexImage2D().

Drivers should use a fallback routine from texstore.c if needed.

void(* dd_function_table::CopyTexSubImage1D)(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)

Called by glCopyTexSubImage1D().

Drivers should use a fallback routine from texstore.c if needed.

void(* dd_function_table::CopyTexSubImage2D)(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)

Called by glCopyTexSubImage2D().

Drivers should use a fallback routine from texstore.c if needed.

void(* dd_function_table::CopyTexSubImage3D)(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)

Called by glCopyTexSubImage3D().

Drivers should use a fallback routine from texstore.c if needed.

void(* dd_function_table::GenerateMipmap)(GLcontext *ctx, GLenum target, struct gl_texture_object *texObj)

Called by glGenerateMipmap() or when GL_GENERATE_MIPMAP_SGIS is enabled.

GLboolean(* dd_function_table::TestProxyTexImage)(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLenum format, GLenum type, GLint width, GLint height, GLint depth, GLint border)

Called by glTexImage[123]D when user specifies a proxy texture target.

Returns:
GL_TRUE if the proxy test passes, or GL_FALSE if the test fails.

void(* dd_function_table::CompressedTexImage1D)(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data, struct gl_texture_object *texObj, struct gl_texture_image *texImage)

Called by glCompressedTexImage1D().

Parameters:
target user specified.
format user specified.
type user specified.
pixels user specified.
packing indicates the image packing of pixels.
texObj is the target texture object.
texImage is the target texture image. It will have the texture width, height, depth, border and internalFormat information.
retainInternalCopy is returned by this function and indicates whether core Mesa should keep an internal copy of the texture image.

void(* dd_function_table::CompressedTexImage2D)(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data, struct gl_texture_object *texObj, struct gl_texture_image *texImage)

Called by glCompressedTexImage2D().

See also:
dd_function_table::CompressedTexImage1D.

void(* dd_function_table::CompressedTexImage3D)(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data, struct gl_texture_object *texObj, struct gl_texture_image *texImage)

Called by glCompressedTexImage3D().

See also:
dd_function_table::CompressedTexImage3D.

void(* dd_function_table::CompressedTexSubImage1D)(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data, struct gl_texture_object *texObj, struct gl_texture_image *texImage)

Called by glCompressedTexSubImage1D().

Parameters:
target user specified.
level user specified.
xoffset user specified.
yoffset user specified.
zoffset user specified.
width user specified.
height user specified.
depth user specified.
imageSize user specified.
data user specified.
texObj is the target texture object.
texImage is the target texture image. It will have the texture width, height, depth, border and internalFormat information.

void(* dd_function_table::CompressedTexSubImage2D)(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLint height, GLenum format, GLsizei imageSize, const GLvoid *data, struct gl_texture_object *texObj, struct gl_texture_image *texImage)

Called by glCompressedTexSubImage2D().

See also:
dd_function_table::CompressedTexImage3D.

void(* dd_function_table::CompressedTexSubImage3D)(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLint height, GLint depth, GLenum format, GLsizei imageSize, const GLvoid *data, struct gl_texture_object *texObj, struct gl_texture_image *texImage)

Called by glCompressedTexSubImage3D().

See also:
dd_function_table::CompressedTexImage3D.

void(* dd_function_table::GetCompressedTexImage)(GLcontext *ctx, GLenum target, GLint level, GLvoid *img, struct gl_texture_object *texObj, struct gl_texture_image *texImage)

Called by glGetCompressedTexImage.

GLuint(* dd_function_table::CompressedTextureSize)(GLcontext *ctx, GLsizei width, GLsizei height, GLsizei depth, GLenum format)

Called to query number of bytes of storage needed to store the specified compressed texture.

void(* dd_function_table::BindTexture)(GLcontext *ctx, GLenum target, struct gl_texture_object *tObj)

Called by glBindTexture().

struct gl_texture_object*(* dd_function_table::NewTextureObject)(GLcontext *ctx, GLuint name, GLenum target) [read]

Called to allocate a new texture object.

A new gl_texture_object should be returned. The driver should attach to it any device-specific info it needs.

void(* dd_function_table::DeleteTexture)(GLcontext *ctx, struct gl_texture_object *tObj)

Called when a texture object is about to be deallocated.

Driver should delete the gl_texture_object object and anything hanging off of it.

struct gl_texture_image*(* dd_function_table::NewTextureImage)(GLcontext *ctx) [read]

Called to allocate a new texture image object.

void(* dd_function_table::FreeTexImageData)(GLcontext *ctx, struct gl_texture_image *tImage)

Called to free tImage->Data.

void(* dd_function_table::MapTexture)(GLcontext *ctx, struct gl_texture_object *tObj)

Map texture image data into user space.

void(* dd_function_table::UnmapTexture)(GLcontext *ctx, struct gl_texture_object *tObj)

Unmap texture images from user space.

void*(* dd_function_table::TextureMemCpy)(void *to, const void *from, size_t sz)

Note: no context argument.

This function doesn't initially look like it belongs here, except that the driver is the only entity that knows for sure how the texture memory is allocated - via the above callbacks. There is then an argument that the driver knows what memcpy paths might be fast. Typically this is invoked with

to -- a pointer into texture memory allocated by NewTextureImage() above. from -- a pointer into client memory or a mesa temporary. sz -- nr bytes to copy.

GLboolean(* dd_function_table::IsTextureResident)(GLcontext *ctx, struct gl_texture_object *t)

Called by glAreTextureResident().

void(* dd_function_table::PrioritizeTexture)(GLcontext *ctx, struct gl_texture_object *t, GLclampf priority)

Called by glPrioritizeTextures().

void(* dd_function_table::ActiveTexture)(GLcontext *ctx, GLuint texUnitNumber)

Called by glActiveTextureARB() to set current texture unit.

void(* dd_function_table::UpdateTexturePalette)(GLcontext *ctx, struct gl_texture_object *tObj)

Called when the texture's color lookup table is changed.

If tObj is NULL then the shared texture palette gl_texture_object::Palette is to be updated.

void(* dd_function_table::CopyColorTable)(GLcontext *ctx, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)

void(* dd_function_table::CopyColorSubTable)(GLcontext *ctx, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)

void(* dd_function_table::CopyConvolutionFilter1D)(GLcontext *ctx, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)

void(* dd_function_table::CopyConvolutionFilter2D)(GLcontext *ctx, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height)

void(* dd_function_table::BindProgram)(GLcontext *ctx, GLenum target, struct gl_program *prog)

Bind a vertex/fragment program.

struct gl_program*(* dd_function_table::NewProgram)(GLcontext *ctx, GLenum target, GLuint id) [read]

Allocate a new program.

void(* dd_function_table::DeleteProgram)(GLcontext *ctx, struct gl_program *prog)

Delete a program.

void(* dd_function_table::ProgramStringNotify)(GLcontext *ctx, GLenum target, struct gl_program *prog)

Notify driver that a program string has been specified.

GLboolean(* dd_function_table::IsProgramNative)(GLcontext *ctx, GLenum target, struct gl_program *prog)

Query if program can be loaded onto hardware.

void(* dd_function_table::AlphaFunc)(GLcontext *ctx, GLenum func, GLfloat ref)

Specify the alpha test function.

void(* dd_function_table::BlendColor)(GLcontext *ctx, const GLfloat color[4])

Set the blend color.

void(* dd_function_table::BlendEquationSeparate)(GLcontext *ctx, GLenum modeRGB, GLenum modeA)

Set the blend equation.

void(* dd_function_table::BlendFuncSeparate)(GLcontext *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA)

Specify pixel arithmetic.

void(* dd_function_table::ClearColor)(GLcontext *ctx, const GLfloat color[4])

Specify clear values for the color buffers.

void(* dd_function_table::ClearDepth)(GLcontext *ctx, GLclampd d)

Specify the clear value for the depth buffer.

void(* dd_function_table::ClearIndex)(GLcontext *ctx, GLuint index)

Specify the clear value for the color index buffers.

void(* dd_function_table::ClearStencil)(GLcontext *ctx, GLint s)

Specify the clear value for the stencil buffer.

void(* dd_function_table::ClipPlane)(GLcontext *ctx, GLenum plane, const GLfloat *equation)

Specify a plane against which all geometry is clipped.

void(* dd_function_table::ColorMask)(GLcontext *ctx, GLboolean rmask, GLboolean gmask, GLboolean bmask, GLboolean amask)

Enable and disable writing of frame buffer color components.

void(* dd_function_table::ColorMaterial)(GLcontext *ctx, GLenum face, GLenum mode)

Cause a material color to track the current color.

void(* dd_function_table::CullFace)(GLcontext *ctx, GLenum mode)

Specify whether front- or back-facing facets can be culled.

void(* dd_function_table::FrontFace)(GLcontext *ctx, GLenum mode)

Define front- and back-facing polygons.

void(* dd_function_table::DepthFunc)(GLcontext *ctx, GLenum func)

Specify the value used for depth buffer comparisons.

void(* dd_function_table::DepthMask)(GLcontext *ctx, GLboolean flag)

Enable or disable writing into the depth buffer.

void(* dd_function_table::DepthRange)(GLcontext *ctx, GLclampd nearval, GLclampd farval)

Specify mapping of depth values from NDC to window coordinates.

void(* dd_function_table::DrawBuffer)(GLcontext *ctx, GLenum buffer)

Specify the current buffer for writing.

void(* dd_function_table::DrawBuffers)(GLcontext *ctx, GLsizei n, const GLenum *buffers)

Specify the buffers for writing for fragment programs.

void(* dd_function_table::Enable)(GLcontext *ctx, GLenum cap, GLboolean state)

Enable or disable server-side gl capabilities.

void(* dd_function_table::Fogfv)(GLcontext *ctx, GLenum pname, const GLfloat *params)

Specify fog parameters.

void(* dd_function_table::Hint)(GLcontext *ctx, GLenum target, GLenum mode)

Specify implementation-specific hints.

void(* dd_function_table::IndexMask)(GLcontext *ctx, GLuint mask)

Control the writing of individual bits in the color index buffers.

void(* dd_function_table::Lightfv)(GLcontext *ctx, GLenum light, GLenum pname, const GLfloat *params)

Set light source parameters.

Note: for GL_POSITION and GL_SPOT_DIRECTION, params will have already been transformed to eye-space.

void(* dd_function_table::LightModelfv)(GLcontext *ctx, GLenum pname, const GLfloat *params)

Set the lighting model parameters.

void(* dd_function_table::LineStipple)(GLcontext *ctx, GLint factor, GLushort pattern)

Specify the line stipple pattern.

void(* dd_function_table::LineWidth)(GLcontext *ctx, GLfloat width)

Specify the width of rasterized lines.

void(* dd_function_table::LogicOpcode)(GLcontext *ctx, GLenum opcode)

Specify a logical pixel operation for color index rendering.

void(* dd_function_table::PointParameterfv)(GLcontext *ctx, GLenum pname, const GLfloat *params)

void(* dd_function_table::PointSize)(GLcontext *ctx, GLfloat size)

Specify the diameter of rasterized points.

void(* dd_function_table::PolygonMode)(GLcontext *ctx, GLenum face, GLenum mode)

Select a polygon rasterization mode.

void(* dd_function_table::PolygonOffset)(GLcontext *ctx, GLfloat factor, GLfloat units)

Set the scale and units used to calculate depth values.

void(* dd_function_table::PolygonStipple)(GLcontext *ctx, const GLubyte *mask)

Set the polygon stippling pattern.

void(* dd_function_table::ReadBuffer)(GLcontext *ctx, GLenum buffer)

void(* dd_function_table::RenderMode)(GLcontext *ctx, GLenum mode)

Set rasterization mode.

void(* dd_function_table::Scissor)(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h)

Define the scissor box.

void(* dd_function_table::ShadeModel)(GLcontext *ctx, GLenum mode)

Select flat or smooth shading.

void(* dd_function_table::StencilFuncSeparate)(GLcontext *ctx, GLenum face, GLenum func, GLint ref, GLuint mask)

OpenGL 2.0 two-sided StencilFunc.

void(* dd_function_table::StencilMaskSeparate)(GLcontext *ctx, GLenum face, GLuint mask)

OpenGL 2.0 two-sided StencilMask.

void(* dd_function_table::StencilOpSeparate)(GLcontext *ctx, GLenum face, GLenum fail, GLenum zfail, GLenum zpass)

OpenGL 2.0 two-sided StencilOp.

void(* dd_function_table::TexGen)(GLcontext *ctx, GLenum coord, GLenum pname, const GLfloat *params)

Control the generation of texture coordinates.

void(* dd_function_table::TexEnv)(GLcontext *ctx, GLenum target, GLenum pname, const GLfloat *param)

Set texture environment parameters.

void(* dd_function_table::TexParameter)(GLcontext *ctx, GLenum target, struct gl_texture_object *texObj, GLenum pname, const GLfloat *params)

Set texture parameters.

void(* dd_function_table::TextureMatrix)(GLcontext *ctx, GLuint unit, const GLmatrix *mat)

void(* dd_function_table::Viewport)(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h)

Set the viewport.

void(* dd_function_table::VertexPointer)(GLcontext *ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)

void(* dd_function_table::NormalPointer)(GLcontext *ctx, GLenum type, GLsizei stride, const GLvoid *ptr)

void(* dd_function_table::ColorPointer)(GLcontext *ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)

void(* dd_function_table::FogCoordPointer)(GLcontext *ctx, GLenum type, GLsizei stride, const GLvoid *ptr)

void(* dd_function_table::IndexPointer)(GLcontext *ctx, GLenum type, GLsizei stride, const GLvoid *ptr)

void(* dd_function_table::SecondaryColorPointer)(GLcontext *ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)

void(* dd_function_table::TexCoordPointer)(GLcontext *ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)

void(* dd_function_table::EdgeFlagPointer)(GLcontext *ctx, GLsizei stride, const GLvoid *ptr)

void(* dd_function_table::VertexAttribPointer)(GLcontext *ctx, GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)

void(* dd_function_table::LockArraysEXT)(GLcontext *ctx, GLint first, GLsizei count)

void(* dd_function_table::UnlockArraysEXT)(GLcontext *ctx)

GLboolean(* dd_function_table::GetBooleanv)(GLcontext *ctx, GLenum pname, GLboolean *result)

Return the value or values of a selected parameter.

GLboolean(* dd_function_table::GetDoublev)(GLcontext *ctx, GLenum pname, GLdouble *result)

Return the value or values of a selected parameter.

GLboolean(* dd_function_table::GetFloatv)(GLcontext *ctx, GLenum pname, GLfloat *result)

Return the value or values of a selected parameter.

GLboolean(* dd_function_table::GetIntegerv)(GLcontext *ctx, GLenum pname, GLint *result)

Return the value or values of a selected parameter.

GLboolean(* dd_function_table::GetInteger64v)(GLcontext *ctx, GLenum pname, GLint64 *result)

Return the value or values of a selected parameter.

GLboolean(* dd_function_table::GetPointerv)(GLcontext *ctx, GLenum pname, GLvoid **result)

Return the value or values of a selected parameter.

struct gl_query_object*(* dd_function_table::NewQueryObject)(GLcontext *ctx, GLuint id) [read]

void(* dd_function_table::DeleteQuery)(GLcontext *ctx, struct gl_query_object *q)

void(* dd_function_table::BeginQuery)(GLcontext *ctx, struct gl_query_object *q)

void(* dd_function_table::EndQuery)(GLcontext *ctx, struct gl_query_object *q)

void(* dd_function_table::CheckQuery)(GLcontext *ctx, struct gl_query_object *q)

void(* dd_function_table::WaitQuery)(GLcontext *ctx, struct gl_query_object *q)

struct gl_array_object*(* dd_function_table::NewArrayObject)(GLcontext *ctx, GLuint id) [read]

void(* dd_function_table::DeleteArrayObject)(GLcontext *ctx, struct gl_array_object *obj)

void(* dd_function_table::BindArrayObject)(GLcontext *ctx, struct gl_array_object *obj)

void(* dd_function_table::AttachShader)(GLcontext *ctx, GLuint program, GLuint shader)

void(* dd_function_table::BindAttribLocation)(GLcontext *ctx, GLuint program, GLuint index, const GLcharARB *name)

void(* dd_function_table::CompileShader)(GLcontext *ctx, GLuint shader)

GLuint(* dd_function_table::CreateShader)(GLcontext *ctx, GLenum type)

GLuint(* dd_function_table::CreateProgram)(GLcontext *ctx)

void(* dd_function_table::DeleteProgram2)(GLcontext *ctx, GLuint program)

void(* dd_function_table::DeleteShader)(GLcontext *ctx, GLuint shader)

void(* dd_function_table::DetachShader)(GLcontext *ctx, GLuint program, GLuint shader)

void(* dd_function_table::GetActiveAttrib)(GLcontext *ctx, GLuint program, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name)

void(* dd_function_table::GetActiveUniform)(GLcontext *ctx, GLuint program, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name)

void(* dd_function_table::GetAttachedShaders)(GLcontext *ctx, GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj)

GLint(* dd_function_table::GetAttribLocation)(GLcontext *ctx, GLuint program, const GLcharARB *name)

GLuint(* dd_function_table::GetHandle)(GLcontext *ctx, GLenum pname)

void(* dd_function_table::GetProgramiv)(GLcontext *ctx, GLuint program, GLenum pname, GLint *params)

void(* dd_function_table::GetProgramInfoLog)(GLcontext *ctx, GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog)

void(* dd_function_table::GetShaderiv)(GLcontext *ctx, GLuint shader, GLenum pname, GLint *params)

void(* dd_function_table::GetShaderInfoLog)(GLcontext *ctx, GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog)

void(* dd_function_table::GetShaderSource)(GLcontext *ctx, GLuint shader, GLsizei maxLength, GLsizei *length, GLcharARB *sourceOut)

void(* dd_function_table::GetUniformfv)(GLcontext *ctx, GLuint program, GLint location, GLfloat *params)

void(* dd_function_table::GetUniformiv)(GLcontext *ctx, GLuint program, GLint location, GLint *params)

GLint(* dd_function_table::GetUniformLocation)(GLcontext *ctx, GLuint program, const GLcharARB *name)

GLboolean(* dd_function_table::IsProgram)(GLcontext *ctx, GLuint name)

GLboolean(* dd_function_table::IsShader)(GLcontext *ctx, GLuint name)

void(* dd_function_table::LinkProgram)(GLcontext *ctx, GLuint program)

void(* dd_function_table::ShaderSource)(GLcontext *ctx, GLuint shader, const GLchar *source)

void(* dd_function_table::Uniform)(GLcontext *ctx, GLint location, GLsizei count, const GLvoid *values, GLenum type)

void(* dd_function_table::UniformMatrix)(GLcontext *ctx, GLint cols, GLint rows, GLint location, GLsizei count, GLboolean transpose, const GLfloat *values)

void(* dd_function_table::UseProgram)(GLcontext *ctx, GLuint program)

void(* dd_function_table::ValidateProgram)(GLcontext *ctx, GLuint program)

GLuint dd_function_table::NeedValidate

Bitmask of state changes that require the current T&L module to be validated, using ValidateTnlModule() below.

void(* dd_function_table::ValidateTnlModule)(GLcontext *ctx, GLuint new_state)

Validate the current T&L module.

This is called directly after UpdateState() when a state change that has occurred matches the dd_function_table::NeedValidate bitmask above. This ensures all computed values are up to date, thus allowing the driver to decide if the current T&L module needs to be swapped out.

This must be non-NULL if a driver installs a custom T&L module and sets the dd_function_table::NeedValidate bitmask, but may be NULL otherwise.

GLuint dd_function_table::CurrentExecPrimitive

Set by the driver-supplied T&L engine.

Set to PRIM_OUTSIDE_BEGIN_END when outside glBegin()/glEnd().

GLuint dd_function_table::CurrentSavePrimitive

Current state of an in-progress compilation.

May take on any of the additional values PRIM_OUTSIDE_BEGIN_END, PRIM_INSIDE_UNKNOWN_PRIM or PRIM_UNKNOWN defined above.

GLuint dd_function_table::NeedFlush

Set by the driver-supplied T&L engine whenever vertices are buffered between glBegin()/glEnd() objects or __GLcontextRec::Current is not updated.

The dd_function_table::FlushVertices call below may be used to resolve these conditions.

GLuint dd_function_table::SaveNeedFlush

void(* dd_function_table::BeginVertices)(GLcontext *ctx)

void(* dd_function_table::FlushVertices)(GLcontext *ctx, GLuint flags)

If inside glBegin()/glEnd(), it should ASSERT(0).

Otherwise, if FLUSH_STORED_VERTICES bit in flags is set flushes any buffered vertices, if FLUSH_UPDATE_CURRENT bit is set updates __GLcontextRec::Current and gl_light_attrib::Material

Note that the default T&L engine never clears the FLUSH_UPDATE_CURRENT bit, even after performing the update.

void(* dd_function_table::SaveFlushVertices)(GLcontext *ctx)

GLboolean(* dd_function_table::NotifySaveBegin)(GLcontext *ctx, GLenum mode)

Give the driver the opportunity to hook in its own vtxfmt for compiling optimized display lists.

This is called on each valid glBegin() during list compilation.

void(* dd_function_table::LightingSpaceChange)(GLcontext *ctx)

Notify driver that the special derived value _NeedEyeCoords has changed.

void(* dd_function_table::NewList)(GLcontext *ctx, GLuint list, GLenum mode)

Called by glNewList().

Let the T&L component know what is going on with display lists in time to make changes to dispatch tables, etc.

void(* dd_function_table::EndList)(GLcontext *ctx)

Called by glEndList().

See also:
dd_function_table::NewList.

void(* dd_function_table::BeginCallList)(GLcontext *ctx, struct gl_display_list *dlist)

Called by glCallList(s).

Notify the T&L component before and after calling a display list.

void(* dd_function_table::EndCallList)(GLcontext *ctx)

Called by glEndCallList().

See also:
dd_function_table::BeginCallList.


The documentation for this struct was generated from the following file:
Generated on Sun Sep 27 06:47:46 2009 for Mesa Main by  doxygen 1.5.4