ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

dd.h
Go to the documentation of this file.
00001 
00006 /*
00007  * Mesa 3-D graphics library
00008  * Version:  6.5.2
00009  *
00010  * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved.
00011  *
00012  * Permission is hereby granted, free of charge, to any person obtaining a
00013  * copy of this software and associated documentation files (the "Software"),
00014  * to deal in the Software without restriction, including without limitation
00015  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00016  * and/or sell copies of the Software, and to permit persons to whom the
00017  * Software is furnished to do so, subject to the following conditions:
00018  *
00019  * The above copyright notice and this permission notice shall be included
00020  * in all copies or substantial portions of the Software.
00021  *
00022  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
00023  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00024  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00025  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
00026  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
00027  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
00028  */
00029 
00030 
00031 #ifndef DD_INCLUDED
00032 #define DD_INCLUDED
00033 
00034 /* THIS FILE ONLY INCLUDED BY mtypes.h !!!!! */
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    /* Specifies the current buffer for reading */
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    /* XXX many more to come */
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 ); /* NOTE */
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 );          /* NOTE */
01041    void (GLAPIENTRYP EvalCoord1fv)( const GLfloat * ); /* NOTE */
01042    void (GLAPIENTRYP EvalCoord2f)( GLfloat, GLfloat ); /* NOTE */
01043    void (GLAPIENTRYP EvalCoord2fv)( const GLfloat * ); /* NOTE */
01044    void (GLAPIENTRYP EvalPoint1)( GLint );             /* NOTE */
01045    void (GLAPIENTRYP EvalPoint2)( GLint, GLint );      /* NOTE */
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 * ); /* NOTE */
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 );   /* NOTE */
01078    void (GLAPIENTRYP CallLists)( GLsizei, GLenum, const GLvoid * ); /* NOTE */
01079    void (GLAPIENTRYP Begin)( GLenum );
01080    void (GLAPIENTRYP End)( void );
01081    /* GL_NV_vertex_program */
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 /* DD_INCLUDED */

Generated on Fri May 25 2012 04:18:19 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.