windows-nt/Source/XPSP1/NT/multimedia/opengl/inc/glapi.h
2020-09-26 16:20:57 +08:00

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__ */