228 lines
15 KiB
C
228 lines
15 KiB
C
/******************************Module*Header*******************************\
|
|
* Module Name: glapi.h
|
|
*
|
|
* OpenGL API function table indices and cached fast dispatch table
|
|
*
|
|
* Created: 12/27/1993
|
|
* Author: Hock San Lee [hockl]
|
|
*
|
|
* Copyright (c) 1993 Microsoft Corporation
|
|
\**************************************************************************/
|
|
|
|
#ifndef __GLAPI_H__
|
|
#define __GLAPI_H__
|
|
|
|
// Opengl dispatch table indices
|
|
#include "dispindx.h"
|
|
|
|
// OpenGL fast function dispatch table in the TEB's glDispatchTable field.
|
|
// These cached functions have less overhead because we can avoid
|
|
// dereferencing the dispatch table pointer stored in the TEB (save one
|
|
// level of indirection).
|
|
//
|
|
// NOTE: If you modify the table, you also need to modify the above fast
|
|
// indices.
|
|
|
|
typedef struct _GLDISPATCHTABLE_FAST {
|
|
void (APIENTRY *glCallList )( GLuint list );
|
|
void (APIENTRY *glCallLists )( GLsizei n, GLenum type, const GLvoid *lists );
|
|
void (APIENTRY *glBegin )( GLenum mode );
|
|
void (APIENTRY *glColor3b )( GLbyte red, GLbyte green, GLbyte blue );
|
|
void (APIENTRY *glColor3bv )( const GLbyte *v );
|
|
void (APIENTRY *glColor3d )( GLdouble red, GLdouble green, GLdouble blue );
|
|
void (APIENTRY *glColor3dv )( const GLdouble *v );
|
|
void (APIENTRY *glColor3f )( GLfloat red, GLfloat green, GLfloat blue );
|
|
void (APIENTRY *glColor3fv )( const GLfloat *v );
|
|
void (APIENTRY *glColor3i )( GLint red, GLint green, GLint blue );
|
|
void (APIENTRY *glColor3iv )( const GLint *v );
|
|
void (APIENTRY *glColor3s )( GLshort red, GLshort green, GLshort blue );
|
|
void (APIENTRY *glColor3sv )( const GLshort *v );
|
|
void (APIENTRY *glColor3ub )( GLubyte red, GLubyte green, GLubyte blue );
|
|
void (APIENTRY *glColor3ubv )( const GLubyte *v );
|
|
void (APIENTRY *glColor3ui )( GLuint red, GLuint green, GLuint blue );
|
|
void (APIENTRY *glColor3uiv )( const GLuint *v );
|
|
void (APIENTRY *glColor3us )( GLushort red, GLushort green, GLushort blue );
|
|
void (APIENTRY *glColor3usv )( const GLushort *v );
|
|
void (APIENTRY *glColor4b )( GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha );
|
|
void (APIENTRY *glColor4bv )( const GLbyte *v );
|
|
void (APIENTRY *glColor4d )( GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha );
|
|
void (APIENTRY *glColor4dv )( const GLdouble *v );
|
|
void (APIENTRY *glColor4f )( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha );
|
|
void (APIENTRY *glColor4fv )( const GLfloat *v );
|
|
void (APIENTRY *glColor4i )( GLint red, GLint green, GLint blue, GLint alpha );
|
|
void (APIENTRY *glColor4iv )( const GLint *v );
|
|
void (APIENTRY *glColor4s )( GLshort red, GLshort green, GLshort blue, GLshort alpha );
|
|
void (APIENTRY *glColor4sv )( const GLshort *v );
|
|
void (APIENTRY *glColor4ub )( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha );
|
|
void (APIENTRY *glColor4ubv )( const GLubyte *v );
|
|
void (APIENTRY *glColor4ui )( GLuint red, GLuint green, GLuint blue, GLuint alpha );
|
|
void (APIENTRY *glColor4uiv )( const GLuint *v );
|
|
void (APIENTRY *glColor4us )( GLushort red, GLushort green, GLushort blue, GLushort alpha );
|
|
void (APIENTRY *glColor4usv )( const GLushort *v );
|
|
void (APIENTRY *glEdgeFlag )( GLboolean flag );
|
|
void (APIENTRY *glEdgeFlagv )( const GLboolean *flag );
|
|
void (APIENTRY *glEnd )( void );
|
|
void (APIENTRY *glIndexd )( GLdouble c );
|
|
void (APIENTRY *glIndexdv )( const GLdouble *c );
|
|
void (APIENTRY *glIndexf )( GLfloat c );
|
|
void (APIENTRY *glIndexfv )( const GLfloat *c );
|
|
void (APIENTRY *glIndexi )( GLint c );
|
|
void (APIENTRY *glIndexiv )( const GLint *c );
|
|
void (APIENTRY *glIndexs )( GLshort c );
|
|
void (APIENTRY *glIndexsv )( const GLshort *c );
|
|
void (APIENTRY *glNormal3b )( GLbyte nx, GLbyte ny, GLbyte nz );
|
|
void (APIENTRY *glNormal3bv )( const GLbyte *v );
|
|
void (APIENTRY *glNormal3d )( GLdouble nx, GLdouble ny, GLdouble nz );
|
|
void (APIENTRY *glNormal3dv )( const GLdouble *v );
|
|
void (APIENTRY *glNormal3f )( GLfloat nx, GLfloat ny, GLfloat nz );
|
|
void (APIENTRY *glNormal3fv )( const GLfloat *v );
|
|
void (APIENTRY *glNormal3i )( GLint nx, GLint ny, GLint nz );
|
|
void (APIENTRY *glNormal3iv )( const GLint *v );
|
|
void (APIENTRY *glNormal3s )( GLshort nx, GLshort ny, GLshort nz );
|
|
void (APIENTRY *glNormal3sv )( const GLshort *v );
|
|
void (APIENTRY *glTexCoord1d )( GLdouble s );
|
|
void (APIENTRY *glTexCoord1dv )( const GLdouble *v );
|
|
void (APIENTRY *glTexCoord1f )( GLfloat s );
|
|
void (APIENTRY *glTexCoord1fv )( const GLfloat *v );
|
|
void (APIENTRY *glTexCoord1i )( GLint s );
|
|
void (APIENTRY *glTexCoord1iv )( const GLint *v );
|
|
void (APIENTRY *glTexCoord1s )( GLshort s );
|
|
void (APIENTRY *glTexCoord1sv )( const GLshort *v );
|
|
void (APIENTRY *glTexCoord2d )( GLdouble s, GLdouble t );
|
|
void (APIENTRY *glTexCoord2dv )( const GLdouble *v );
|
|
void (APIENTRY *glTexCoord2f )( GLfloat s, GLfloat t );
|
|
void (APIENTRY *glTexCoord2fv )( const GLfloat *v );
|
|
void (APIENTRY *glTexCoord2i )( GLint s, GLint t );
|
|
void (APIENTRY *glTexCoord2iv )( const GLint *v );
|
|
void (APIENTRY *glTexCoord2s )( GLshort s, GLshort t );
|
|
void (APIENTRY *glTexCoord2sv )( const GLshort *v );
|
|
void (APIENTRY *glTexCoord3d )( GLdouble s, GLdouble t, GLdouble r );
|
|
void (APIENTRY *glTexCoord3dv )( const GLdouble *v );
|
|
void (APIENTRY *glTexCoord3f )( GLfloat s, GLfloat t, GLfloat r );
|
|
void (APIENTRY *glTexCoord3fv )( const GLfloat *v );
|
|
void (APIENTRY *glTexCoord3i )( GLint s, GLint t, GLint r );
|
|
void (APIENTRY *glTexCoord3iv )( const GLint *v );
|
|
void (APIENTRY *glTexCoord3s )( GLshort s, GLshort t, GLshort r );
|
|
void (APIENTRY *glTexCoord3sv )( const GLshort *v );
|
|
void (APIENTRY *glTexCoord4d )( GLdouble s, GLdouble t, GLdouble r, GLdouble q );
|
|
void (APIENTRY *glTexCoord4dv )( const GLdouble *v );
|
|
void (APIENTRY *glTexCoord4f )( GLfloat s, GLfloat t, GLfloat r, GLfloat q );
|
|
void (APIENTRY *glTexCoord4fv )( const GLfloat *v );
|
|
void (APIENTRY *glTexCoord4i )( GLint s, GLint t, GLint r, GLint q );
|
|
void (APIENTRY *glTexCoord4iv )( const GLint *v );
|
|
void (APIENTRY *glTexCoord4s )( GLshort s, GLshort t, GLshort r, GLshort q );
|
|
void (APIENTRY *glTexCoord4sv )( const GLshort *v );
|
|
void (APIENTRY *glVertex2d )( GLdouble x, GLdouble y );
|
|
void (APIENTRY *glVertex2dv )( const GLdouble *v );
|
|
void (APIENTRY *glVertex2f )( GLfloat x, GLfloat y );
|
|
void (APIENTRY *glVertex2fv )( const GLfloat *v );
|
|
void (APIENTRY *glVertex2i )( GLint x, GLint y );
|
|
void (APIENTRY *glVertex2iv )( const GLint *v );
|
|
void (APIENTRY *glVertex2s )( GLshort x, GLshort y );
|
|
void (APIENTRY *glVertex2sv )( const GLshort *v );
|
|
void (APIENTRY *glVertex3d )( GLdouble x, GLdouble y, GLdouble z );
|
|
void (APIENTRY *glVertex3dv )( const GLdouble *v );
|
|
void (APIENTRY *glVertex3f )( GLfloat x, GLfloat y, GLfloat z );
|
|
void (APIENTRY *glVertex3fv )( const GLfloat *v );
|
|
void (APIENTRY *glVertex3i )( GLint x, GLint y, GLint z );
|
|
void (APIENTRY *glVertex3iv )( const GLint *v );
|
|
void (APIENTRY *glVertex3s )( GLshort x, GLshort y, GLshort z );
|
|
void (APIENTRY *glVertex3sv )( const GLshort *v );
|
|
void (APIENTRY *glVertex4d )( GLdouble x, GLdouble y, GLdouble z, GLdouble w );
|
|
void (APIENTRY *glVertex4dv )( const GLdouble *v );
|
|
void (APIENTRY *glVertex4f )( GLfloat x, GLfloat y, GLfloat z, GLfloat w );
|
|
void (APIENTRY *glVertex4fv )( const GLfloat *v );
|
|
void (APIENTRY *glVertex4i )( GLint x, GLint y, GLint z, GLint w );
|
|
void (APIENTRY *glVertex4iv )( const GLint *v );
|
|
void (APIENTRY *glVertex4s )( GLshort x, GLshort y, GLshort z, GLshort w );
|
|
void (APIENTRY *glVertex4sv )( const GLshort *v );
|
|
void (APIENTRY *glMaterialf )( GLenum face, GLenum pname, GLfloat param );
|
|
void (APIENTRY *glMaterialfv )( GLenum face, GLenum pname, const GLfloat *params );
|
|
void (APIENTRY *glMateriali )( GLenum face, GLenum pname, GLint param );
|
|
void (APIENTRY *glMaterialiv )( GLenum face, GLenum pname, const GLint *params );
|
|
void (APIENTRY *glDisable )( GLenum cap );
|
|
void (APIENTRY *glEnable )( GLenum cap );
|
|
void (APIENTRY *glPopAttrib )( void );
|
|
void (APIENTRY *glPushAttrib )( GLbitfield mask );
|
|
void (APIENTRY *glEvalCoord1d )( GLdouble u );
|
|
void (APIENTRY *glEvalCoord1dv )( const GLdouble *u );
|
|
void (APIENTRY *glEvalCoord1f )( GLfloat u );
|
|
void (APIENTRY *glEvalCoord1fv )( const GLfloat *u );
|
|
void (APIENTRY *glEvalCoord2d )( GLdouble u, GLdouble v );
|
|
void (APIENTRY *glEvalCoord2dv )( const GLdouble *u );
|
|
void (APIENTRY *glEvalCoord2f )( GLfloat u, GLfloat v );
|
|
void (APIENTRY *glEvalCoord2fv )( const GLfloat *u );
|
|
void (APIENTRY *glEvalPoint1 )( GLint i );
|
|
void (APIENTRY *glEvalPoint2 )( GLint i, GLint j );
|
|
void (APIENTRY *glLoadIdentity )( void );
|
|
void (APIENTRY *glLoadMatrixf )( const GLfloat *m );
|
|
void (APIENTRY *glLoadMatrixd )( const GLdouble *m );
|
|
void (APIENTRY *glMatrixMode )( GLenum mode );
|
|
void (APIENTRY *glMultMatrixf )( const GLfloat *m );
|
|
void (APIENTRY *glMultMatrixd )( const GLdouble *m );
|
|
void (APIENTRY *glPopMatrix )( void );
|
|
void (APIENTRY *glPushMatrix )( void );
|
|
void (APIENTRY *glRotated )( GLdouble angle, GLdouble x, GLdouble y, GLdouble z );
|
|
void (APIENTRY *glRotatef )( GLfloat angle, GLfloat x, GLfloat y, GLfloat z );
|
|
void (APIENTRY *glScaled )( GLdouble x, GLdouble y, GLdouble z );
|
|
void (APIENTRY *glScalef )( GLfloat x, GLfloat y, GLfloat z );
|
|
void (APIENTRY *glTranslated )( GLdouble x, GLdouble y, GLdouble z );
|
|
void (APIENTRY *glTranslatef )( GLfloat x, GLfloat y, GLfloat z );
|
|
void (APIENTRY *glArrayElement )(GLint i);
|
|
void (APIENTRY *glBindTexture )(GLenum target, GLuint texture);
|
|
void (APIENTRY *glColorPointer )(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
|
|
void (APIENTRY *glDisableClientState )(GLenum array);
|
|
void (APIENTRY *glDrawArrays )(GLenum mode, GLint first, GLsizei count);
|
|
void (APIENTRY *glDrawElements )(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
|
|
void (APIENTRY *glEdgeFlagPointer )(GLsizei stride, const GLvoid* *pointer);
|
|
void (APIENTRY *glEnableClientState )(GLenum array);
|
|
void (APIENTRY *glIndexPointer )(GLenum type, GLsizei stride, const GLvoid *pointer);
|
|
void (APIENTRY *glIndexub )(GLubyte c);
|
|
void (APIENTRY *glIndexubv )(const GLubyte *c);
|
|
void (APIENTRY *glInterleavedArrays )(GLenum format, GLsizei stride, const GLvoid *pointer);
|
|
void (APIENTRY *glNormalPointer )(GLenum type, GLsizei stride, const GLvoid *pointer);
|
|
void (APIENTRY *glPolygonOffset )(GLfloat factor, GLfloat units);
|
|
void (APIENTRY *glTexCoordPointer )(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
|
|
void (APIENTRY *glVertexPointer )(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
|
|
void (APIENTRY *glGetPointerv )(GLenum pname, GLvoid* *params);
|
|
void (APIENTRY *glPopClientAttrib )(void);
|
|
void (APIENTRY *glPushClientAttrib )(GLbitfield mask);
|
|
void (APIENTRY *glDrawRangeElementsWIN)
|
|
(GLenum mode, GLuint start, GLuint end, GLsizei count,
|
|
GLenum type, const GLvoid *indices);
|
|
void (APIENTRY *glColorTableEXT)
|
|
(GLenum target, GLenum internalFormat, GLsizei width, GLenum format,
|
|
GLenum type, const GLvoid *data);
|
|
void (APIENTRY *glColorSubTableEXT)
|
|
(GLenum target, GLsizei start, GLsizei count, GLenum format,
|
|
GLenum type, const GLvoid *data);
|
|
#ifdef GL_WIN_multiple_textures
|
|
void (APIENTRY *glCurrentTextureIndexWIN)
|
|
(GLuint index);
|
|
void (APIENTRY *glBindNthTextureWIN)
|
|
(GLenum index, GLenum target, GLuint texture);
|
|
void (APIENTRY *glNthTexCombineFuncWIN)
|
|
(GLenum index,
|
|
GLenum leftColorFactor, GLenum colorOp, GLenum rightColorFactor,
|
|
GLenum leftAlphaFactor, GLenum alphaOp, GLenum rightAlphaFactor);
|
|
void (APIENTRY *glMultiTexCoord1fWIN)
|
|
(GLbitfield mask, GLfloat s);
|
|
void (APIENTRY *glMultiTexCoord1fvWIN)
|
|
(GLbitfield mask, const GLfloat *v);
|
|
void (APIENTRY *glMultiTexCoord1iWIN)
|
|
(GLbitfield mask, GLint s);
|
|
void (APIENTRY *glMultiTexCoord1ivWIN)
|
|
(GLbitfield mask, const GLint *v);
|
|
void (APIENTRY *glMultiTexCoord2fWIN)
|
|
(GLbitfield mask, GLfloat s, GLfloat t);
|
|
void (APIENTRY *glMultiTexCoord2fvWIN)
|
|
(GLbitfield mask, const GLfloat *v);
|
|
void (APIENTRY *glMultiTexCoord2iWIN)
|
|
(GLbitfield mask, GLint s, GLint t);
|
|
void (APIENTRY *glMultiTexCoord2ivWIN)
|
|
(GLbitfield mask, const GLint *v);
|
|
#endif // GL_WIN_multiple_textures
|
|
} GLDISPATCHTABLE_FAST, *PGLDISPATCHTABLE_FAST;
|
|
|
|
#endif /* !__GLAPI_H__ */
|