core  array_cache  math  swrast  swrast_setup  tnl  tnl_dd 
Main Page   Data Structures   File List   Data Fields   Globals   Related Pages  

dd_function_table Struct Reference

Device driver function table. More...

#include <dd.h>


Data Fields

const GLubyte *(* GetString )(GLcontext *ctx, GLenum name)
 Return a string as needed by glGetString(). More...

void(* UpdateState )(GLcontext *ctx, GLuint new_state)
 Notify the driver after Mesa has made some internal state changes. More...

void(* GetBufferSize )(GLframebuffer *buffer, GLuint *width, GLuint *height)
 Get the width and height of the named buffer/window. More...

void(* ResizeBuffers )(GLframebuffer *buffer)
 Resize the driver's depth/stencil/accum/back buffers to match the size given in the GLframebuffer struct. More...

void(* Error )(GLcontext *ctx)
 Called whenever an error is generated. More...

void(* Finish )(GLcontext *ctx)
 This is called whenever glFinish() is called. More...

void(* Flush )(GLcontext *ctx)
 This is called whenever glFlush() is called. More...

void(* Clear )(GLcontext *ctx, GLbitfield mask, GLboolean all, GLint x, GLint y, GLint width, GLint height)
 Clear the color/depth/stencil/accum buffer(s). More...

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

void(* ValidateTnlModule )(GLcontext *ctx, GLuint new_state)
 Validate the current T&L module. More...

GLuint CurrentExecPrimitive
 Set by the driver-supplied T&L engine. More...

GLuint CurrentSavePrimitive
 Current state of an in-progress compilation. More...

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

GLuint SaveNeedFlush
void(* FlushVertices )(GLcontext *ctx, GLuint flags)
 If inside glBegin()/glEnd(), it should ASSERT(0). More...

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. More...

void(* LightingSpaceChange )(GLcontext *ctx)
 Notify driver that the special derived value _NeedEyeCoords has changed. More...

void(* MakeCurrent )(GLcontext *ctx, GLframebuffer *drawBuffer, GLframebuffer *readBuffer)
 Let the T&L component know when the context becomes current. More...

void(* NewList )(GLcontext *ctx, GLuint list, GLenum mode)
 Called by glNewList(). More...

void(* EndList )(GLcontext *ctx)
 Called by glEndList(). More...

void(* BeginCallList )(GLcontext *ctx, GLuint list)
 Called by glCallList(s), but not recursively. More...

void(* EndCallList )(GLcontext *ctx)
 Called by glEndCallList(). More...

For hardware accumulation buffer
void(* Accum )(GLcontext *ctx, GLenum op, GLfloat value, GLint xpos, GLint ypos, GLint width, GLint height)
 Execute glAccum command within the given scissor region. More...

glDraw(), glRead(), glCopyPixels() and glBitmap() 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)
 This is called by glDrawPixels(). More...

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(). More...

void(* CopyPixels )(GLcontext *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint dstx, GLint dsty, GLenum type)
 Do a glCopyPixels(). More...

void(* Bitmap )(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap)
 This is called by glBitmap(). More...

Texture image functions
const struct gl_texture_format *(* ChooseTextureFormat )(GLcontext *ctx, GLint internalFormat, GLenum srcFormat, GLenum srcType)
 Choose texture format. More...

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(). More...

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(). More...

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(). More...

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(). More...

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(). More...

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(). More...

void(* CopyTexImage1D )(GLcontext *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
 Called by glCopyTexImage1D(). More...

void(* CopyTexImage2D )(GLcontext *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
 Called by glCopyTexImage2D(). More...

void(* CopyTexSubImage1D )(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
 Called by glCopyTexSubImage1D(). More...

void(* CopyTexSubImage2D )(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
 Called by glCopyTexSubImage2D(). More...

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(). More...

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. More...

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(). More...

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(). More...

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(). More...

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(). More...

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(). More...

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(). More...

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. More...

Texture object functions
void(* BindTexture )(GLcontext *ctx, GLenum target, struct gl_texture_object *tObj)
 Called by glBindTexture(). More...

gl_texture_object *(* NewTextureObject )(GLcontext *ctx, GLuint name, GLenum target)
 Called to allocate a new texture object. More...

void(* DeleteTexture )(GLcontext *ctx, struct gl_texture_object *tObj)
 Called when a texture object is about to be deallocated. More...

gl_texture_image *(* NewTextureImage )(GLcontext *ctx)
 Called to allocate a new texture image object. More...

GLboolean(* IsTextureResident )(GLcontext *ctx, struct gl_texture_object *t)
 Called by glAreTextureResident(). More...

void(* PrioritizeTexture )(GLcontext *ctx, struct gl_texture_object *t, GLclampf priority)
 Called by glPrioritizeTextures(). More...

void(* ActiveTexture )(GLcontext *ctx, GLuint texUnitNumber)
 Called by glActiveTextureARB() to set current texture unit. More...

void(* UpdateTexturePalette )(GLcontext *ctx, struct gl_texture_object *tObj)
 Called when the texture's color lookup table is changed. More...

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 program *prog)
 Bind a vertex/fragment program. More...

program *(* NewProgram )(GLcontext *ctx, GLenum target, GLuint id)
 Allocate a new program. More...

void(* DeleteProgram )(GLcontext *ctx, struct program *prog)
 Delete a program. More...

void(* ProgramStringNotify )(GLcontext *ctx, GLenum target, struct program *prog)
 Notify driver that a program string has been specified. More...

GLboolean(* IsProgramNative )(GLcontext *ctx, GLenum target, struct program *prog)
 Query if program can be loaded onto hardware. More...

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. More...

void(* BlendColor )(GLcontext *ctx, const GLfloat color[4])
 Set the blend color. More...

void(* BlendEquationSeparate )(GLcontext *ctx, GLenum modeRGB, GLenum modeA)
 Set the blend equation. More...

void(* BlendFuncSeparate )(GLcontext *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA)
 Specify pixel arithmetic. More...

void(* ClearColor )(GLcontext *ctx, const GLfloat color[4])
 Specify clear values for the color buffers. More...

void(* ClearDepth )(GLcontext *ctx, GLclampd d)
 Specify the clear value for the depth buffer. More...

void(* ClearIndex )(GLcontext *ctx, GLuint index)
 Specify the clear value for the color index buffers. More...

void(* ClearStencil )(GLcontext *ctx, GLint s)
 Specify the clear value for the stencil buffer. More...

void(* ClipPlane )(GLcontext *ctx, GLenum plane, const GLfloat *equation)
 Specify a plane against which all geometry is clipped. More...

void(* ColorMask )(GLcontext *ctx, GLboolean rmask, GLboolean gmask, GLboolean bmask, GLboolean amask)
 Enable and disable writing of frame buffer color components. More...

void(* ColorMaterial )(GLcontext *ctx, GLenum face, GLenum mode)
 Cause a material color to track the current color. More...

void(* CullFace )(GLcontext *ctx, GLenum mode)
 Specify whether front- or back-facing facets can be culled. More...

void(* FrontFace )(GLcontext *ctx, GLenum mode)
 Define front- and back-facing polygons. More...

void(* DepthFunc )(GLcontext *ctx, GLenum func)
 Specify the value used for depth buffer comparisons. More...

void(* DepthMask )(GLcontext *ctx, GLboolean flag)
 Enable or disable writing into the depth buffer. More...

void(* DepthRange )(GLcontext *ctx, GLclampd nearval, GLclampd farval)
 Specify mapping of depth values from NDC to window coordinates. More...

void(* DrawBuffer )(GLcontext *ctx, GLenum buffer)
 Specify the current buffer for writing. More...

void(* Enable )(GLcontext *ctx, GLenum cap, GLboolean state)
 Enable or disable server-side gl capabilities. More...

void(* Fogfv )(GLcontext *ctx, GLenum pname, const GLfloat *params)
 Specify fog parameters. More...

void(* Hint )(GLcontext *ctx, GLenum target, GLenum mode)
 Specify implementation-specific hints. More...

void(* IndexMask )(GLcontext *ctx, GLuint mask)
 Control the writing of individual bits in the color index buffers. More...

void(* Lightfv )(GLcontext *ctx, GLenum light, GLenum pname, const GLfloat *params)
 Set light source parameters. More...

void(* LightModelfv )(GLcontext *ctx, GLenum pname, const GLfloat *params)
 Set the lighting model parameters. More...

void(* LineStipple )(GLcontext *ctx, GLint factor, GLushort pattern)
 Specify the line stipple pattern. More...

void(* LineWidth )(GLcontext *ctx, GLfloat width)
 Specify the width of rasterized lines. More...

void(* LogicOpcode )(GLcontext *ctx, GLenum opcode)
 Specify a logical pixel operation for color index rendering. More...

void(* PointParameterfv )(GLcontext *ctx, GLenum pname, const GLfloat *params)
void(* PointSize )(GLcontext *ctx, GLfloat size)
 Specify the diameter of rasterized points. More...

void(* PolygonMode )(GLcontext *ctx, GLenum face, GLenum mode)
 Select a polygon rasterization mode. More...

void(* PolygonOffset )(GLcontext *ctx, GLfloat factor, GLfloat units)
 Set the scale and units used to calculate depth values. More...

void(* PolygonStipple )(GLcontext *ctx, const GLubyte *mask)
 Set the polygon stippling pattern. More...

void(* ReadBuffer )(GLcontext *ctx, GLenum buffer)
void(* RenderMode )(GLcontext *ctx, GLenum mode)
 Set rasterization mode. More...

void(* Scissor )(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h)
 Define the scissor box. More...

void(* ShadeModel )(GLcontext *ctx, GLenum mode)
 Select flat or smooth shading. More...

void(* StencilFunc )(GLcontext *ctx, GLenum func, GLint ref, GLuint mask)
 Set function and reference value for stencil testing. More...

void(* StencilMask )(GLcontext *ctx, GLuint mask)
 Control the writing of individual bits in the stencil planes. More...

void(* StencilOp )(GLcontext *ctx, GLenum fail, GLenum zfail, GLenum zpass)
 Set stencil test actions. More...

void(* ActiveStencilFace )(GLcontext *ctx, GLuint face)
void(* TexGen )(GLcontext *ctx, GLenum coord, GLenum pname, const GLfloat *params)
 Control the generation of texture coordinates. More...

void(* TexEnv )(GLcontext *ctx, GLenum target, GLenum pname, const GLfloat *param)
 Set texture environment parameters. More...

void(* TexParameter )(GLcontext *ctx, GLenum target, struct gl_texture_object *texObj, GLenum pname, const GLfloat *params)
 Set texture parameters. More...

void(* TextureMatrix )(GLcontext *ctx, GLuint unit, const GLmatrix *mat)
void(* Viewport )(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h)
 Set the viewport. More...

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. More...

GLboolean(* GetDoublev )(GLcontext *ctx, GLenum pname, GLdouble *result)
 Return the value or values of a selected parameter. More...

GLboolean(* GetFloatv )(GLcontext *ctx, GLenum pname, GLfloat *result)
 Return the value or values of a selected parameter. More...

GLboolean(* GetIntegerv )(GLcontext *ctx, GLenum pname, GLint *result)
 Return the value or values of a selected parameter. More...

GLboolean(* GetPointerv )(GLcontext *ctx, GLenum pname, GLvoid **result)
 Return the value or values of a selected parameter. More...


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!!!


Field Documentation

void(* dd_function_table::Accum)( GLcontext *ctx, GLenum op, GLfloat value, GLint xpos, GLint ypos, GLint width, GLint height )
 

Execute glAccum command within the given scissor region.

void(* dd_function_table::ActiveStencilFace)(GLcontext *ctx, GLuint face)
 

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

Called by glActiveTextureARB() to set current texture unit.

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

Specify the alpha test function.

void(* dd_function_table::BeginCallList)( GLcontext *ctx, GLuint list )
 

Called by glCallList(s), but not recursively.

Notify the T&L component before and after calling a display list. Called by glCallList(s), but not recursively.

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

Bind a vertex/fragment program.

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

Called by glBindTexture().

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

This is called by glBitmap().

Works the same as dd_function_table::DrawPixels, above.

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.

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

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::Clear)( GLcontext *ctx, GLbitfield mask, GLboolean all, GLint x, GLint y, GLint width, GLint height )
 

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

Parameters:
mask  a bitmask of the DD_*_BIT values defined above that indicates which buffers need to be cleared.
all  if true then clear the whole buffer, else clear only the region defined by (x, y, width, height).
This function must obey the glColorMask(), glIndexMask() and glStencilMask() settings! Software Mesa can do masked clears if the device driver can't.

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::ColorPointer)(GLcontext *ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
 

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.

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::CopyColorSubTable)( GLcontext *ctx, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width )
 

void(* dd_function_table::CopyColorTable)( GLcontext *ctx, GLenum target, GLenum internalformat, 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::CopyPixels)( GLcontext *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint dstx, GLint dsty, GLenum type )
 

Do a glCopyPixels().

This function must respect all rasterization state, glPixelTransfer(), glPixelZoom(), etc.

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::CullFace)(GLcontext *ctx, GLenum mode)
 

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

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.

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

Delete a program.

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.

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::DrawPixels)( GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, const GLvoid *pixels )
 

This is called by glDrawPixels().

unpack describes how to unpack the source image data.

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

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

Enable or disable server-side gl capabilities.

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

Called by glEndCallList().

See also:
dd_function_table::BeginCallList.

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

Called by glEndList().

See also:
dd_function_table::NewList.

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::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::FogCoordPointer)(GLcontext *ctx, GLenum type, GLsizei stride, const GLvoid *ptr)
 

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

Specify fog parameters.

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

Define front- and back-facing polygons.

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

Return the value or values of a selected parameter.

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.

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::GetPointerv)(GLcontext *ctx, GLenum pname, GLvoid **result)
 

Return the value or values of a selected parameter.

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

Return a string as needed by glGetString().

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

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::IndexPointer)(GLcontext *ctx, GLenum type, GLsizei stride, const GLvoid *ptr)
 

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

Query if program can be loaded onto hardware.

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

Called by glAreTextureResident().

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

Set light source parameters.

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

Notify driver that the special derived value _NeedEyeCoords has changed.

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::LockArraysEXT)( GLcontext *ctx, GLint first, GLsizei count )
 

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

Specify a logical pixel operation for color index rendering.

void(* dd_function_table::MakeCurrent)( GLcontext *ctx, GLframebuffer *drawBuffer, GLframebuffer *readBuffer )
 

Let the T&L component know when the context becomes current.

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::NeedValidate
 

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

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.

struct program*(* dd_function_table::NewProgram)(GLcontext *ctx, GLenum target, GLuint id)
 

Allocate a new program.

struct gl_texture_image*(* dd_function_table::NewTextureImage)( GLcontext *ctx )
 

Called to allocate a new texture image object.

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

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::NormalPointer)(GLcontext *ctx, GLenum type, GLsizei stride, const GLvoid *ptr)
 

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::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::PrioritizeTexture)( GLcontext *ctx, struct gl_texture_object *t, GLclampf priority )
 

Called by glPrioritizeTextures().

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

Notify driver that a program string has been specified.

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

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::RenderMode)(GLcontext *ctx, GLenum mode )
 

Set rasterization mode.

void(* dd_function_table::ResizeBuffers)( GLframebuffer *buffer )
 

Resize the driver's depth/stencil/accum/back buffers to match the size given in the GLframebuffer struct.

This is typically called when Mesa detects that a window size has changed.

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

GLuint dd_function_table::SaveNeedFlush
 

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

Define the scissor box.

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

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

Select flat or smooth shading.

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

Set function and reference value for stencil testing.

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

Control the writing of individual bits in the stencil planes.

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

Set stencil test actions.

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::TexCoordPointer)(GLcontext *ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
 

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

Set texture environment parameters.

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

Control the generation of texture coordinates.

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::TexParameter)(GLcontext *ctx, GLenum target, struct gl_texture_object *texObj, GLenum pname, const GLfloat *params)
 

Set texture parameters.

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::TextureMatrix)(GLcontext *ctx, GLuint unit, const GLmatrix *mat)
 

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

void(* dd_function_table::UpdateState)( GLcontext *ctx, GLuint 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::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::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.

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

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

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

Set the viewport.


The documentation for this struct was generated from the following file:
Generated on Sun May 16 15:55:13 2004 for Mesa Core by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001