00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef DD_INCLUDED
00032 #define DD_INCLUDED
00033
00034
00035
00036 struct gl_pixelstore_attrib;
00037 struct mesa_display_list;
00038
00052 struct dd_function_table {
00058 const GLubyte * (*GetString)( GLcontext *ctx, GLenum name );
00059
00066 void (*UpdateState)( GLcontext *ctx, GLbitfield new_state );
00067
00074 void (*GetBufferSize)( GLframebuffer *buffer,
00075 GLuint *width, GLuint *height );
00076
00081 void (*ResizeBuffers)( GLcontext *ctx, GLframebuffer *fb,
00082 GLuint width, GLuint height);
00083
00088 void (*Error)( GLcontext *ctx );
00089
00093 void (*Finish)( GLcontext *ctx );
00094
00098 void (*Flush)( GLcontext *ctx );
00099
00105 void (*Clear)( GLcontext *ctx, GLbitfield buffers );
00106
00110 void (*Accum)( GLcontext *ctx, GLenum op, GLfloat value );
00111
00112
00116 void (*RasterPos)( GLcontext *ctx, const GLfloat v[4] );
00117
00122
00127 void (*DrawPixels)( GLcontext *ctx,
00128 GLint x, GLint y, GLsizei width, GLsizei height,
00129 GLenum format, GLenum type,
00130 const struct gl_pixelstore_attrib *unpack,
00131 const GLvoid *pixels );
00132
00136 void (*ReadPixels)( GLcontext *ctx,
00137 GLint x, GLint y, GLsizei width, GLsizei height,
00138 GLenum format, GLenum type,
00139 const struct gl_pixelstore_attrib *unpack,
00140 GLvoid *dest );
00141
00145 void (*CopyPixels)( GLcontext *ctx, GLint srcx, GLint srcy,
00146 GLsizei width, GLsizei height,
00147 GLint dstx, GLint dsty, GLenum type );
00148
00152 void (*Bitmap)( GLcontext *ctx,
00153 GLint x, GLint y, GLsizei width, GLsizei height,
00154 const struct gl_pixelstore_attrib *unpack,
00155 const GLubyte *bitmap );
00163
00171 const struct gl_texture_format *(*ChooseTextureFormat)( GLcontext *ctx,
00172 GLint internalFormat, GLenum srcFormat, GLenum srcType );
00173
00191 void (*TexImage1D)( GLcontext *ctx, GLenum target, GLint level,
00192 GLint internalFormat,
00193 GLint width, GLint border,
00194 GLenum format, GLenum type, const GLvoid *pixels,
00195 const struct gl_pixelstore_attrib *packing,
00196 struct gl_texture_object *texObj,
00197 struct gl_texture_image *texImage );
00198
00204 void (*TexImage2D)( GLcontext *ctx, GLenum target, GLint level,
00205 GLint internalFormat,
00206 GLint width, GLint height, GLint border,
00207 GLenum format, GLenum type, const GLvoid *pixels,
00208 const struct gl_pixelstore_attrib *packing,
00209 struct gl_texture_object *texObj,
00210 struct gl_texture_image *texImage );
00211
00217 void (*TexImage3D)( GLcontext *ctx, GLenum target, GLint level,
00218 GLint internalFormat,
00219 GLint width, GLint height, GLint depth, GLint border,
00220 GLenum format, GLenum type, const GLvoid *pixels,
00221 const struct gl_pixelstore_attrib *packing,
00222 struct gl_texture_object *texObj,
00223 struct gl_texture_image *texImage );
00224
00246 void (*TexSubImage1D)( GLcontext *ctx, GLenum target, GLint level,
00247 GLint xoffset, GLsizei width,
00248 GLenum format, GLenum type,
00249 const GLvoid *pixels,
00250 const struct gl_pixelstore_attrib *packing,
00251 struct gl_texture_object *texObj,
00252 struct gl_texture_image *texImage );
00253
00259 void (*TexSubImage2D)( GLcontext *ctx, GLenum target, GLint level,
00260 GLint xoffset, GLint yoffset,
00261 GLsizei width, GLsizei height,
00262 GLenum format, GLenum type,
00263 const GLvoid *pixels,
00264 const struct gl_pixelstore_attrib *packing,
00265 struct gl_texture_object *texObj,
00266 struct gl_texture_image *texImage );
00267
00273 void (*TexSubImage3D)( GLcontext *ctx, GLenum target, GLint level,
00274 GLint xoffset, GLint yoffset, GLint zoffset,
00275 GLsizei width, GLsizei height, GLint depth,
00276 GLenum format, GLenum type,
00277 const GLvoid *pixels,
00278 const struct gl_pixelstore_attrib *packing,
00279 struct gl_texture_object *texObj,
00280 struct gl_texture_image *texImage );
00281
00285 void (*GetTexImage)( GLcontext *ctx, GLenum target, GLint level,
00286 GLenum format, GLenum type, GLvoid *pixels,
00287 struct gl_texture_object *texObj,
00288 struct gl_texture_image *texImage );
00289
00295 void (*CopyTexImage1D)( GLcontext *ctx, GLenum target, GLint level,
00296 GLenum internalFormat, GLint x, GLint y,
00297 GLsizei width, GLint border );
00298
00304 void (*CopyTexImage2D)( GLcontext *ctx, GLenum target, GLint level,
00305 GLenum internalFormat, GLint x, GLint y,
00306 GLsizei width, GLsizei height, GLint border );
00307
00313 void (*CopyTexSubImage1D)( GLcontext *ctx, GLenum target, GLint level,
00314 GLint xoffset,
00315 GLint x, GLint y, GLsizei width );
00321 void (*CopyTexSubImage2D)( GLcontext *ctx, GLenum target, GLint level,
00322 GLint xoffset, GLint yoffset,
00323 GLint x, GLint y,
00324 GLsizei width, GLsizei height );
00330 void (*CopyTexSubImage3D)( GLcontext *ctx, GLenum target, GLint level,
00331 GLint xoffset, GLint yoffset, GLint zoffset,
00332 GLint x, GLint y,
00333 GLsizei width, GLsizei height );
00334
00338 void (*GenerateMipmap)(GLcontext *ctx, GLenum target,
00339 struct gl_texture_object *texObj);
00340
00347 GLboolean (*TestProxyTexImage)(GLcontext *ctx, GLenum target,
00348 GLint level, GLint internalFormat,
00349 GLenum format, GLenum type,
00350 GLint width, GLint height,
00351 GLint depth, GLint border);
00359
00375 void (*CompressedTexImage1D)( GLcontext *ctx, GLenum target,
00376 GLint level, GLint internalFormat,
00377 GLsizei width, GLint border,
00378 GLsizei imageSize, const GLvoid *data,
00379 struct gl_texture_object *texObj,
00380 struct gl_texture_image *texImage );
00386 void (*CompressedTexImage2D)( GLcontext *ctx, GLenum target,
00387 GLint level, GLint internalFormat,
00388 GLsizei width, GLsizei height, GLint border,
00389 GLsizei imageSize, const GLvoid *data,
00390 struct gl_texture_object *texObj,
00391 struct gl_texture_image *texImage );
00397 void (*CompressedTexImage3D)( GLcontext *ctx, GLenum target,
00398 GLint level, GLint internalFormat,
00399 GLsizei width, GLsizei height, GLsizei depth,
00400 GLint border,
00401 GLsizei imageSize, const GLvoid *data,
00402 struct gl_texture_object *texObj,
00403 struct gl_texture_image *texImage );
00404
00422 void (*CompressedTexSubImage1D)(GLcontext *ctx, GLenum target, GLint level,
00423 GLint xoffset, GLsizei width,
00424 GLenum format,
00425 GLsizei imageSize, const GLvoid *data,
00426 struct gl_texture_object *texObj,
00427 struct gl_texture_image *texImage);
00433 void (*CompressedTexSubImage2D)(GLcontext *ctx, GLenum target, GLint level,
00434 GLint xoffset, GLint yoffset,
00435 GLsizei width, GLint height,
00436 GLenum format,
00437 GLsizei imageSize, const GLvoid *data,
00438 struct gl_texture_object *texObj,
00439 struct gl_texture_image *texImage);
00445 void (*CompressedTexSubImage3D)(GLcontext *ctx, GLenum target, GLint level,
00446 GLint xoffset, GLint yoffset, GLint zoffset,
00447 GLsizei width, GLint height, GLint depth,
00448 GLenum format,
00449 GLsizei imageSize, const GLvoid *data,
00450 struct gl_texture_object *texObj,
00451 struct gl_texture_image *texImage);
00452
00453
00457 void (*GetCompressedTexImage)(GLcontext *ctx, GLenum target, GLint level,
00458 GLvoid *img,
00459 struct gl_texture_object *texObj,
00460 struct gl_texture_image *texImage);
00461
00466 GLuint (*CompressedTextureSize)( GLcontext *ctx, GLsizei width,
00467 GLsizei height, GLsizei depth,
00468 GLenum format );
00475
00479 void (*BindTexture)( GLcontext *ctx, GLenum target,
00480 struct gl_texture_object *tObj );
00481
00487 struct gl_texture_object * (*NewTextureObject)( GLcontext *ctx, GLuint name,
00488 GLenum target );
00495 void (*DeleteTexture)( GLcontext *ctx, struct gl_texture_object *tObj );
00496
00500 struct gl_texture_image * (*NewTextureImage)( GLcontext *ctx );
00501
00505 void (*FreeTexImageData)( GLcontext *ctx, struct gl_texture_image *tImage );
00506
00508 void (*MapTexture)( GLcontext *ctx, struct gl_texture_object *tObj );
00510 void (*UnmapTexture)( GLcontext *ctx, struct gl_texture_object *tObj );
00511
00523 void* (*TextureMemCpy)( void *to, const void *from, size_t sz );
00524
00528 GLboolean (*IsTextureResident)( GLcontext *ctx,
00529 struct gl_texture_object *t );
00530
00534 void (*PrioritizeTexture)( GLcontext *ctx, struct gl_texture_object *t,
00535 GLclampf priority );
00536
00540 void (*ActiveTexture)( GLcontext *ctx, GLuint texUnitNumber );
00541
00548 void (*UpdateTexturePalette)( GLcontext *ctx,
00549 struct gl_texture_object *tObj );
00557 void (*CopyColorTable)( GLcontext *ctx,
00558 GLenum target, GLenum internalformat,
00559 GLint x, GLint y, GLsizei width );
00560
00561 void (*CopyColorSubTable)( GLcontext *ctx,
00562 GLenum target, GLsizei start,
00563 GLint x, GLint y, GLsizei width );
00564
00565 void (*CopyConvolutionFilter1D)( GLcontext *ctx, GLenum target,
00566 GLenum internalFormat,
00567 GLint x, GLint y, GLsizei width );
00568
00569 void (*CopyConvolutionFilter2D)( GLcontext *ctx, GLenum target,
00570 GLenum internalFormat,
00571 GLint x, GLint y,
00572 GLsizei width, GLsizei height );
00581 void (*BindProgram)(GLcontext *ctx, GLenum target, struct gl_program *prog);
00583 struct gl_program * (*NewProgram)(GLcontext *ctx, GLenum target, GLuint id);
00585 void (*DeleteProgram)(GLcontext *ctx, struct gl_program *prog);
00587 void (*ProgramStringNotify)(GLcontext *ctx, GLenum target,
00588 struct gl_program *prog);
00590 void (*GetProgramRegister)(GLcontext *ctx, enum register_file file,
00591 GLuint index, GLfloat val[4]);
00592
00594 GLboolean (*IsProgramNative)(GLcontext *ctx, GLenum target,
00595 struct gl_program *prog);
00596
00611 void (*AlphaFunc)(GLcontext *ctx, GLenum func, GLfloat ref);
00613 void (*BlendColor)(GLcontext *ctx, const GLfloat color[4]);
00615 void (*BlendEquationSeparate)(GLcontext *ctx, GLenum modeRGB, GLenum modeA);
00617 void (*BlendFuncSeparate)(GLcontext *ctx,
00618 GLenum sfactorRGB, GLenum dfactorRGB,
00619 GLenum sfactorA, GLenum dfactorA);
00621 void (*ClearColor)(GLcontext *ctx, const GLfloat color[4]);
00623 void (*ClearDepth)(GLcontext *ctx, GLclampd d);
00625 void (*ClearIndex)(GLcontext *ctx, GLuint index);
00627 void (*ClearStencil)(GLcontext *ctx, GLint s);
00629 void (*ClipPlane)(GLcontext *ctx, GLenum plane, const GLfloat *equation );
00631 void (*ColorMask)(GLcontext *ctx, GLboolean rmask, GLboolean gmask,
00632 GLboolean bmask, GLboolean amask );
00634 void (*ColorMaterial)(GLcontext *ctx, GLenum face, GLenum mode);
00636 void (*CullFace)(GLcontext *ctx, GLenum mode);
00638 void (*FrontFace)(GLcontext *ctx, GLenum mode);
00640 void (*DepthFunc)(GLcontext *ctx, GLenum func);
00642 void (*DepthMask)(GLcontext *ctx, GLboolean flag);
00644 void (*DepthRange)(GLcontext *ctx, GLclampd nearval, GLclampd farval);
00646 void (*DrawBuffer)( GLcontext *ctx, GLenum buffer );
00648 void (*DrawBuffers)( GLcontext *ctx, GLsizei n, const GLenum *buffers );
00650 void (*Enable)(GLcontext *ctx, GLenum cap, GLboolean state);
00652 void (*Fogfv)(GLcontext *ctx, GLenum pname, const GLfloat *params);
00654 void (*Hint)(GLcontext *ctx, GLenum target, GLenum mode);
00656 void (*IndexMask)(GLcontext *ctx, GLuint mask);
00661 void (*Lightfv)(GLcontext *ctx, GLenum light,
00662 GLenum pname, const GLfloat *params );
00664 void (*LightModelfv)(GLcontext *ctx, GLenum pname, const GLfloat *params);
00666 void (*LineStipple)(GLcontext *ctx, GLint factor, GLushort pattern );
00668 void (*LineWidth)(GLcontext *ctx, GLfloat width);
00670 void (*LogicOpcode)(GLcontext *ctx, GLenum opcode);
00671 void (*PointParameterfv)(GLcontext *ctx, GLenum pname,
00672 const GLfloat *params);
00674 void (*PointSize)(GLcontext *ctx, GLfloat size);
00676 void (*PolygonMode)(GLcontext *ctx, GLenum face, GLenum mode);
00678 void (*PolygonOffset)(GLcontext *ctx, GLfloat factor, GLfloat units);
00680 void (*PolygonStipple)(GLcontext *ctx, const GLubyte *mask );
00681
00682 void (*ReadBuffer)( GLcontext *ctx, GLenum buffer );
00684 void (*RenderMode)(GLcontext *ctx, GLenum mode );
00686 void (*Scissor)(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h);
00688 void (*ShadeModel)(GLcontext *ctx, GLenum mode);
00690 void (*StencilFuncSeparate)(GLcontext *ctx, GLenum face, GLenum func,
00691 GLint ref, GLuint mask);
00693 void (*StencilMaskSeparate)(GLcontext *ctx, GLenum face, GLuint mask);
00695 void (*StencilOpSeparate)(GLcontext *ctx, GLenum face, GLenum fail,
00696 GLenum zfail, GLenum zpass);
00698 void (*TexGen)(GLcontext *ctx, GLenum coord, GLenum pname,
00699 const GLfloat *params);
00701 void (*TexEnv)(GLcontext *ctx, GLenum target, GLenum pname,
00702 const GLfloat *param);
00704 void (*TexParameter)(GLcontext *ctx, GLenum target,
00705 struct gl_texture_object *texObj,
00706 GLenum pname, const GLfloat *params);
00707 void (*TextureMatrix)(GLcontext *ctx, GLuint unit, const GLmatrix *mat);
00709 void (*Viewport)(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h);
00719 void (*VertexPointer)(GLcontext *ctx, GLint size, GLenum type,
00720 GLsizei stride, const GLvoid *ptr);
00721 void (*NormalPointer)(GLcontext *ctx, GLenum type,
00722 GLsizei stride, const GLvoid *ptr);
00723 void (*ColorPointer)(GLcontext *ctx, GLint size, GLenum type,
00724 GLsizei stride, const GLvoid *ptr);
00725 void (*FogCoordPointer)(GLcontext *ctx, GLenum type,
00726 GLsizei stride, const GLvoid *ptr);
00727 void (*IndexPointer)(GLcontext *ctx, GLenum type,
00728 GLsizei stride, const GLvoid *ptr);
00729 void (*SecondaryColorPointer)(GLcontext *ctx, GLint size, GLenum type,
00730 GLsizei stride, const GLvoid *ptr);
00731 void (*TexCoordPointer)(GLcontext *ctx, GLint size, GLenum type,
00732 GLsizei stride, const GLvoid *ptr);
00733 void (*EdgeFlagPointer)(GLcontext *ctx, GLsizei stride, const GLvoid *ptr);
00734 void (*VertexAttribPointer)(GLcontext *ctx, GLuint index, GLint size,
00735 GLenum type, GLsizei stride, const GLvoid *ptr);
00736 void (*LockArraysEXT)( GLcontext *ctx, GLint first, GLsizei count );
00737 void (*UnlockArraysEXT)( GLcontext *ctx );
00748 GLboolean (*GetBooleanv)(GLcontext *ctx, GLenum pname, GLboolean *result);
00750 GLboolean (*GetDoublev)(GLcontext *ctx, GLenum pname, GLdouble *result);
00752 GLboolean (*GetFloatv)(GLcontext *ctx, GLenum pname, GLfloat *result);
00754 GLboolean (*GetIntegerv)(GLcontext *ctx, GLenum pname, GLint *result);
00756 GLboolean (*GetPointerv)(GLcontext *ctx, GLenum pname, GLvoid **result);
00763 #if FEATURE_ARB_vertex_buffer_object
00764
00765 void (*BindBuffer)( GLcontext *ctx, GLenum target,
00766 struct gl_buffer_object *obj );
00767
00768 struct gl_buffer_object * (*NewBufferObject)( GLcontext *ctx, GLuint buffer,
00769 GLenum target );
00770
00771 void (*DeleteBuffer)( GLcontext *ctx, struct gl_buffer_object *obj );
00772
00773 void (*BufferData)( GLcontext *ctx, GLenum target, GLsizeiptrARB size,
00774 const GLvoid *data, GLenum usage,
00775 struct gl_buffer_object *obj );
00776
00777 void (*BufferSubData)( GLcontext *ctx, GLenum target, GLintptrARB offset,
00778 GLsizeiptrARB size, const GLvoid *data,
00779 struct gl_buffer_object *obj );
00780
00781 void (*GetBufferSubData)( GLcontext *ctx, GLenum target,
00782 GLintptrARB offset, GLsizeiptrARB size,
00783 GLvoid *data, struct gl_buffer_object *obj );
00784
00785 void * (*MapBuffer)( GLcontext *ctx, GLenum target, GLenum access,
00786 struct gl_buffer_object *obj );
00787
00788 GLboolean (*UnmapBuffer)( GLcontext *ctx, GLenum target,
00789 struct gl_buffer_object *obj );
00791 #endif
00792
00796 #if FEATURE_EXT_framebuffer_object
00797
00798 struct gl_framebuffer * (*NewFramebuffer)(GLcontext *ctx, GLuint name);
00799 struct gl_renderbuffer * (*NewRenderbuffer)(GLcontext *ctx, GLuint name);
00800 void (*BindFramebuffer)(GLcontext *ctx, GLenum target,
00801 struct gl_framebuffer *fb, struct gl_framebuffer *fbread);
00802 void (*FramebufferRenderbuffer)(GLcontext *ctx,
00803 struct gl_framebuffer *fb,
00804 GLenum attachment,
00805 struct gl_renderbuffer *rb);
00806 void (*RenderTexture)(GLcontext *ctx,
00807 struct gl_framebuffer *fb,
00808 struct gl_renderbuffer_attachment *att);
00809 void (*FinishRenderTexture)(GLcontext *ctx,
00810 struct gl_renderbuffer_attachment *att);
00812 #endif
00813 #if FEATURE_EXT_framebuffer_blit
00814 void (*BlitFramebuffer)(GLcontext *ctx,
00815 GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
00816 GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
00817 GLbitfield mask, GLenum filter);
00818 #endif
00819
00824 struct gl_query_object * (*NewQueryObject)(GLcontext *ctx, GLuint id);
00825 void (*DeleteQuery)(GLcontext *ctx, struct gl_query_object *q);
00826 void (*BeginQuery)(GLcontext *ctx, struct gl_query_object *q);
00827 void (*EndQuery)(GLcontext *ctx, struct gl_query_object *q);
00828 void (*CheckQuery)(GLcontext *ctx, struct gl_query_object *q);
00829 void (*WaitQuery)(GLcontext *ctx, struct gl_query_object *q);
00837 struct gl_array_object * (*NewArrayObject)(GLcontext *ctx, GLuint id);
00838 void (*DeleteArrayObject)(GLcontext *ctx, struct gl_array_object *obj);
00839 void (*BindArrayObject)(GLcontext *ctx, struct gl_array_object *obj);
00846 void (*AttachShader)(GLcontext *ctx, GLuint program, GLuint shader);
00847 void (*BindAttribLocation)(GLcontext *ctx, GLuint program, GLuint index,
00848 const GLcharARB *name);
00849 void (*CompileShader)(GLcontext *ctx, GLuint shader);
00850 GLuint (*CreateShader)(GLcontext *ctx, GLenum type);
00851 GLuint (*CreateProgram)(GLcontext *ctx);
00852 void (*DeleteProgram2)(GLcontext *ctx, GLuint program);
00853 void (*DeleteShader)(GLcontext *ctx, GLuint shader);
00854 void (*DetachShader)(GLcontext *ctx, GLuint program, GLuint shader);
00855 void (*GetActiveAttrib)(GLcontext *ctx, GLuint program, GLuint index,
00856 GLsizei maxLength, GLsizei * length, GLint * size,
00857 GLenum * type, GLcharARB * name);
00858 void (*GetActiveUniform)(GLcontext *ctx, GLuint program, GLuint index,
00859 GLsizei maxLength, GLsizei *length, GLint *size,
00860 GLenum *type, GLcharARB *name);
00861 void (*GetAttachedShaders)(GLcontext *ctx, GLuint program, GLsizei maxCount,
00862 GLsizei *count, GLuint *obj);
00863 GLint (*GetAttribLocation)(GLcontext *ctx, GLuint program,
00864 const GLcharARB *name);
00865 GLuint (*GetHandle)(GLcontext *ctx, GLenum pname);
00866 void (*GetProgramiv)(GLcontext *ctx, GLuint program,
00867 GLenum pname, GLint *params);
00868 void (*GetProgramInfoLog)(GLcontext *ctx, GLuint program, GLsizei bufSize,
00869 GLsizei *length, GLchar *infoLog);
00870 void (*GetShaderiv)(GLcontext *ctx, GLuint shader,
00871 GLenum pname, GLint *params);
00872 void (*GetShaderInfoLog)(GLcontext *ctx, GLuint shader, GLsizei bufSize,
00873 GLsizei *length, GLchar *infoLog);
00874 void (*GetShaderSource)(GLcontext *ctx, GLuint shader, GLsizei maxLength,
00875 GLsizei *length, GLcharARB *sourceOut);
00876 void (*GetUniformfv)(GLcontext *ctx, GLuint program, GLint location,
00877 GLfloat *params);
00878 void (*GetUniformiv)(GLcontext *ctx, GLuint program, GLint location,
00879 GLint *params);
00880 GLint (*GetUniformLocation)(GLcontext *ctx, GLuint program,
00881 const GLcharARB *name);
00882 GLboolean (*IsProgram)(GLcontext *ctx, GLuint name);
00883 GLboolean (*IsShader)(GLcontext *ctx, GLuint name);
00884 void (*LinkProgram)(GLcontext *ctx, GLuint program);
00885 void (*ShaderSource)(GLcontext *ctx, GLuint shader, const GLchar *source);
00886 void (*Uniform)(GLcontext *ctx, GLint location, GLsizei count,
00887 const GLvoid *values, GLenum type);
00888 void (*UniformMatrix)(GLcontext *ctx, GLint cols, GLint rows,
00889 GLenum matrixType, GLint location, GLsizei count,
00890 GLboolean transpose, const GLfloat *values);
00891 void (*UseProgram)(GLcontext *ctx, GLuint program);
00892 void (*ValidateProgram)(GLcontext *ctx, GLuint program);
00893
00901
00906 GLuint NeedValidate;
00907
00919 void (*ValidateTnlModule)( GLcontext *ctx, GLuint new_state );
00920
00921
00922 #define PRIM_OUTSIDE_BEGIN_END (GL_POLYGON+1)
00923 #define PRIM_INSIDE_UNKNOWN_PRIM (GL_POLYGON+2)
00924 #define PRIM_UNKNOWN (GL_POLYGON+3)
00925
00931 GLuint CurrentExecPrimitive;
00932
00939 GLuint CurrentSavePrimitive;
00940
00941
00942 #define FLUSH_STORED_VERTICES 0x1
00943 #define FLUSH_UPDATE_CURRENT 0x2
00944
00952 GLuint NeedFlush;
00953 GLuint SaveNeedFlush;
00954
00964 void (*FlushVertices)( GLcontext *ctx, GLuint flags );
00965 void (*SaveFlushVertices)( GLcontext *ctx );
00966
00972 GLboolean (*NotifySaveBegin)( GLcontext *ctx, GLenum mode );
00973
00978 void (*LightingSpaceChange)( GLcontext *ctx );
00979
00986 void (*NewList)( GLcontext *ctx, GLuint list, GLenum mode );
00992 void (*EndList)( GLcontext *ctx );
00993
00999 void (*BeginCallList)( GLcontext *ctx,
01000 struct mesa_display_list *dlist );
01006 void (*EndCallList)( GLcontext *ctx );
01007
01008 };
01009
01010
01029 typedef struct {
01034 void (GLAPIENTRYP ArrayElement)( GLint );
01035 void (GLAPIENTRYP Color3f)( GLfloat, GLfloat, GLfloat );
01036 void (GLAPIENTRYP Color3fv)( const GLfloat * );
01037 void (GLAPIENTRYP Color4f)( GLfloat, GLfloat, GLfloat, GLfloat );
01038 void (GLAPIENTRYP Color4fv)( const GLfloat * );
01039 void (GLAPIENTRYP EdgeFlag)( GLboolean );
01040 void (GLAPIENTRYP EvalCoord1f)( GLfloat );
01041 void (GLAPIENTRYP EvalCoord1fv)( const GLfloat * );
01042 void (GLAPIENTRYP EvalCoord2f)( GLfloat, GLfloat );
01043 void (GLAPIENTRYP EvalCoord2fv)( const GLfloat * );
01044 void (GLAPIENTRYP EvalPoint1)( GLint );
01045 void (GLAPIENTRYP EvalPoint2)( GLint, GLint );
01046 void (GLAPIENTRYP FogCoordfEXT)( GLfloat );
01047 void (GLAPIENTRYP FogCoordfvEXT)( const GLfloat * );
01048 void (GLAPIENTRYP Indexf)( GLfloat );
01049 void (GLAPIENTRYP Indexfv)( const GLfloat * );
01050 void (GLAPIENTRYP Materialfv)( GLenum face, GLenum pname, const GLfloat * );
01051 void (GLAPIENTRYP MultiTexCoord1fARB)( GLenum, GLfloat );
01052 void (GLAPIENTRYP MultiTexCoord1fvARB)( GLenum, const GLfloat * );
01053 void (GLAPIENTRYP MultiTexCoord2fARB)( GLenum, GLfloat, GLfloat );
01054 void (GLAPIENTRYP MultiTexCoord2fvARB)( GLenum, const GLfloat * );
01055 void (GLAPIENTRYP MultiTexCoord3fARB)( GLenum, GLfloat, GLfloat, GLfloat );
01056 void (GLAPIENTRYP MultiTexCoord3fvARB)( GLenum, const GLfloat * );
01057 void (GLAPIENTRYP MultiTexCoord4fARB)( GLenum, GLfloat, GLfloat, GLfloat, GLfloat );
01058 void (GLAPIENTRYP MultiTexCoord4fvARB)( GLenum, const GLfloat * );
01059 void (GLAPIENTRYP Normal3f)( GLfloat, GLfloat, GLfloat );
01060 void (GLAPIENTRYP Normal3fv)( const GLfloat * );
01061 void (GLAPIENTRYP SecondaryColor3fEXT)( GLfloat, GLfloat, GLfloat );
01062 void (GLAPIENTRYP SecondaryColor3fvEXT)( const GLfloat * );
01063 void (GLAPIENTRYP TexCoord1f)( GLfloat );
01064 void (GLAPIENTRYP TexCoord1fv)( const GLfloat * );
01065 void (GLAPIENTRYP TexCoord2f)( GLfloat, GLfloat );
01066 void (GLAPIENTRYP TexCoord2fv)( const GLfloat * );
01067 void (GLAPIENTRYP TexCoord3f)( GLfloat, GLfloat, GLfloat );
01068 void (GLAPIENTRYP TexCoord3fv)( const GLfloat * );
01069 void (GLAPIENTRYP TexCoord4f)( GLfloat, GLfloat, GLfloat, GLfloat );
01070 void (GLAPIENTRYP TexCoord4fv)( const GLfloat * );
01071 void (GLAPIENTRYP Vertex2f)( GLfloat, GLfloat );
01072 void (GLAPIENTRYP Vertex2fv)( const GLfloat * );
01073 void (GLAPIENTRYP Vertex3f)( GLfloat, GLfloat, GLfloat );
01074 void (GLAPIENTRYP Vertex3fv)( const GLfloat * );
01075 void (GLAPIENTRYP Vertex4f)( GLfloat, GLfloat, GLfloat, GLfloat );
01076 void (GLAPIENTRYP Vertex4fv)( const GLfloat * );
01077 void (GLAPIENTRYP CallList)( GLuint );
01078 void (GLAPIENTRYP CallLists)( GLsizei, GLenum, const GLvoid * );
01079 void (GLAPIENTRYP Begin)( GLenum );
01080 void (GLAPIENTRYP End)( void );
01081
01082 void (GLAPIENTRYP VertexAttrib1fNV)( GLuint index, GLfloat x );
01083 void (GLAPIENTRYP VertexAttrib1fvNV)( GLuint index, const GLfloat *v );
01084 void (GLAPIENTRYP VertexAttrib2fNV)( GLuint index, GLfloat x, GLfloat y );
01085 void (GLAPIENTRYP VertexAttrib2fvNV)( GLuint index, const GLfloat *v );
01086 void (GLAPIENTRYP VertexAttrib3fNV)( GLuint index, GLfloat x, GLfloat y, GLfloat z );
01087 void (GLAPIENTRYP VertexAttrib3fvNV)( GLuint index, const GLfloat *v );
01088 void (GLAPIENTRYP VertexAttrib4fNV)( GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w );
01089 void (GLAPIENTRYP VertexAttrib4fvNV)( GLuint index, const GLfloat *v );
01090 #if FEATURE_ARB_vertex_program
01091 void (GLAPIENTRYP VertexAttrib1fARB)( GLuint index, GLfloat x );
01092 void (GLAPIENTRYP VertexAttrib1fvARB)( GLuint index, const GLfloat *v );
01093 void (GLAPIENTRYP VertexAttrib2fARB)( GLuint index, GLfloat x, GLfloat y );
01094 void (GLAPIENTRYP VertexAttrib2fvARB)( GLuint index, const GLfloat *v );
01095 void (GLAPIENTRYP VertexAttrib3fARB)( GLuint index, GLfloat x, GLfloat y, GLfloat z );
01096 void (GLAPIENTRYP VertexAttrib3fvARB)( GLuint index, const GLfloat *v );
01097 void (GLAPIENTRYP VertexAttrib4fARB)( GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w );
01098 void (GLAPIENTRYP VertexAttrib4fvARB)( GLuint index, const GLfloat *v );
01099 #endif
01100
01102
01103
01104 void (GLAPIENTRYP Rectf)( GLfloat, GLfloat, GLfloat, GLfloat );
01105
01110 void (GLAPIENTRYP DrawArrays)( GLenum mode, GLint start, GLsizei count );
01111 void (GLAPIENTRYP DrawElements)( GLenum mode, GLsizei count, GLenum type,
01112 const GLvoid *indices );
01113 void (GLAPIENTRYP DrawRangeElements)( GLenum mode, GLuint start,
01114 GLuint end, GLsizei count,
01115 GLenum type, const GLvoid *indices );
01129 void (GLAPIENTRYP EvalMesh1)( GLenum mode, GLint i1, GLint i2 );
01130 void (GLAPIENTRYP EvalMesh2)( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 );
01133 } GLvertexformat;
01134
01135
01136 #endif