struct gl_program * (*NewProgram)(GLcontext *ctx, GLenum target, GLuint id);
/** Delete a program */
void (*DeleteProgram)(GLcontext *ctx, struct gl_program *prog);
- /** Notify driver that a program string has been specified. */
- void (*ProgramStringNotify)(GLcontext *ctx, GLenum target,
- struct gl_program *prog);
+ /**
+ * Notify driver that a program string (and GPU code) has been specified
+ * or modified. Return GL_TRUE or GL_FALSE to indicate if the program is
+ * supported by the driver.
+ */
+ GLboolean (*ProgramStringNotify)(GLcontext *ctx, GLenum target,
+ struct gl_program *prog);
/** Query if program can be loaded onto hardware */
GLboolean (*IsProgramNative)(GLcontext *ctx, GLenum target,
void (*ClearColor)(GLcontext *ctx, const GLfloat color[4]);
/** Specify the clear value for the depth buffer */
void (*ClearDepth)(GLcontext *ctx, GLclampd d);
- /** Specify the clear value for the color index buffers */
- void (*ClearIndex)(GLcontext *ctx, GLuint index);
/** Specify the clear value for the stencil buffer */
void (*ClearStencil)(GLcontext *ctx, GLint s);
/** Specify a plane against which all geometry is clipped */
void (*Fogfv)(GLcontext *ctx, GLenum pname, const GLfloat *params);
/** Specify implementation-specific hints */
void (*Hint)(GLcontext *ctx, GLenum target, GLenum mode);
- /** Control the writing of individual bits in the color index buffers */
- void (*IndexMask)(GLcontext *ctx, GLuint mask);
/** Set light source parameters.
* Note: for GL_POSITION and GL_SPOT_DIRECTION, params will have already
* been transformed to eye-space.
/*@}*/
- /**
- * \name State-query functions
- *
- * Return GL_TRUE if query was completed, GL_FALSE otherwise.
- */
- /*@{*/
- /** Return the value or values of a selected parameter */
- GLboolean (*GetBooleanv)(GLcontext *ctx, GLenum pname, GLboolean *result);
- /** Return the value or values of a selected parameter */
- GLboolean (*GetDoublev)(GLcontext *ctx, GLenum pname, GLdouble *result);
- /** Return the value or values of a selected parameter */
- GLboolean (*GetFloatv)(GLcontext *ctx, GLenum pname, GLfloat *result);
- /** Return the value or values of a selected parameter */
- GLboolean (*GetIntegerv)(GLcontext *ctx, GLenum pname, GLint *result);
- /** Return the value or values of a selected parameter */
- GLboolean (*GetInteger64v)(GLcontext *ctx, GLenum pname, GLint64 *result);
- /** Return the value or values of a selected parameter */
- GLboolean (*GetPointerv)(GLcontext *ctx, GLenum pname, GLvoid **result);
- /*@}*/
-
-
/**
* \name Vertex/pixel buffer object functions
*/
/*@}*/
#endif
+ /**
+ * \name Functions for GL_APPLE_object_purgeable
+ */
+#if FEATURE_APPLE_object_purgeable
+ /*@{*/
+ /* variations on ObjectPurgeable */
+ GLenum (*BufferObjectPurgeable)( GLcontext *ctx, struct gl_buffer_object *obj, GLenum option );
+ GLenum (*RenderObjectPurgeable)( GLcontext *ctx, struct gl_renderbuffer *obj, GLenum option );
+ GLenum (*TextureObjectPurgeable)( GLcontext *ctx, struct gl_texture_object *obj, GLenum option );
+
+ /* variations on ObjectUnpurgeable */
+ GLenum (*BufferObjectUnpurgeable)( GLcontext *ctx, struct gl_buffer_object *obj, GLenum option );
+ GLenum (*RenderObjectUnpurgeable)( GLcontext *ctx, struct gl_renderbuffer *obj, GLenum option );
+ GLenum (*TextureObjectUnpurgeable)( GLcontext *ctx, struct gl_texture_object *obj, GLenum option );
+ /*@}*/
+#endif
+
/**
* \name Functions for GL_EXT_framebuffer_object
*/
void (*BeginConditionalRender)(GLcontext *ctx, struct gl_query_object *q,
GLenum mode);
void (*EndConditionalRender)(GLcontext *ctx, struct gl_query_object *q);
+
+#if FEATURE_OES_draw_texture
+ /**
+ * \name GL_OES_draw_texture interface
+ */
+ /*@{*/
+ void (*DrawTex)(GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z,
+ GLfloat width, GLfloat height);
+ /*@}*/
+#endif
+
+#if FEATURE_OES_EGL_image
+ void (*EGLImageTargetTexture2D)(GLcontext *ctx, GLenum target,
+ struct gl_texture_object *texObj,
+ struct gl_texture_image *texImage,
+ GLeglImageOES image_handle);
+ void (*EGLImageTargetRenderbufferStorage)(GLcontext *ctx,
+ struct gl_renderbuffer *rb,
+ void *image_handle);
+#endif
+
};
* These are the initial values to be installed into dispatch by
* mesa. If the T&L driver wants to modify the dispatch table
* while installed, it must do so itself. It would be possible for
- * the vertexformat to install it's own initial values for these
+ * the vertexformat to install its own initial values for these
* functions, but this way there is an obvious list of what is
* expected of the driver.
*
* \name Vertex
*/
/*@{*/
- void (GLAPIENTRYP ArrayElement)( GLint ); /* NOTE */
+ void (GLAPIENTRYP ArrayElement)( GLint );
void (GLAPIENTRYP Color3f)( GLfloat, GLfloat, GLfloat );
void (GLAPIENTRYP Color3fv)( const GLfloat * );
void (GLAPIENTRYP Color4f)( GLfloat, GLfloat, GLfloat, GLfloat );
void (GLAPIENTRYP Color4fv)( const GLfloat * );
void (GLAPIENTRYP EdgeFlag)( GLboolean );
- void (GLAPIENTRYP EvalCoord1f)( GLfloat ); /* NOTE */
- void (GLAPIENTRYP EvalCoord1fv)( const GLfloat * ); /* NOTE */
- void (GLAPIENTRYP EvalCoord2f)( GLfloat, GLfloat ); /* NOTE */
- void (GLAPIENTRYP EvalCoord2fv)( const GLfloat * ); /* NOTE */
- void (GLAPIENTRYP EvalPoint1)( GLint ); /* NOTE */
- void (GLAPIENTRYP EvalPoint2)( GLint, GLint ); /* NOTE */
+ void (GLAPIENTRYP EvalCoord1f)( GLfloat );
+ void (GLAPIENTRYP EvalCoord1fv)( const GLfloat * );
+ void (GLAPIENTRYP EvalCoord2f)( GLfloat, GLfloat );
+ void (GLAPIENTRYP EvalCoord2fv)( const GLfloat * );
+ void (GLAPIENTRYP EvalPoint1)( GLint );
+ void (GLAPIENTRYP EvalPoint2)( GLint, GLint );
void (GLAPIENTRYP FogCoordfEXT)( GLfloat );
void (GLAPIENTRYP FogCoordfvEXT)( const GLfloat * );
void (GLAPIENTRYP Indexf)( GLfloat );
void (GLAPIENTRYP Indexfv)( const GLfloat * );
- void (GLAPIENTRYP Materialfv)( GLenum face, GLenum pname, const GLfloat * ); /* NOTE */
+ void (GLAPIENTRYP Materialfv)( GLenum face, GLenum pname, const GLfloat * );
void (GLAPIENTRYP MultiTexCoord1fARB)( GLenum, GLfloat );
void (GLAPIENTRYP MultiTexCoord1fvARB)( GLenum, const GLfloat * );
void (GLAPIENTRYP MultiTexCoord2fARB)( GLenum, GLfloat, GLfloat );
void (GLAPIENTRYP Vertex3fv)( const GLfloat * );
void (GLAPIENTRYP Vertex4f)( GLfloat, GLfloat, GLfloat, GLfloat );
void (GLAPIENTRYP Vertex4fv)( const GLfloat * );
- void (GLAPIENTRYP CallList)( GLuint ); /* NOTE */
- void (GLAPIENTRYP CallLists)( GLsizei, GLenum, const GLvoid * ); /* NOTE */
+ void (GLAPIENTRYP CallList)( GLuint );
+ void (GLAPIENTRYP CallLists)( GLsizei, GLenum, const GLvoid * );
void (GLAPIENTRYP Begin)( GLenum );
void (GLAPIENTRYP End)( void );
/* GL_NV_vertex_program */
#endif
/*@}*/
- /*
- */
void (GLAPIENTRYP Rectf)( GLfloat, GLfloat, GLfloat, GLfloat );
/**
const GLvoid **indices,
GLsizei primcount,
const GLint *basevertex);
+ void (GLAPIENTRYP DrawArraysInstanced)(GLenum mode, GLint first,
+ GLsizei count, GLsizei primcount);
+ void (GLAPIENTRYP DrawElementsInstanced)(GLenum mode, GLsizei count,
+ GLenum type, const GLvoid *indices,
+ GLsizei primcount);
/*@}*/
/**