mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
patch by blight with help from Royce3 for ICD behavioral research:
Changed GLFUNCS_MACRO to support C implementation of functions, added MSVC asm version of gl functions, links now, driver and GLRC lists protected by mutexes, added some breakpoints, and fixed 1 or 2 Drv prototypes. svn path=/trunk/; revision=8035
This commit is contained in:
parent
270099086f
commit
49f02ee444
7 changed files with 1244 additions and 1482 deletions
|
@ -28,33 +28,58 @@
|
|||
|
||||
#include "opengl32.h"
|
||||
|
||||
/*#if defined(_M_IX86)*/
|
||||
#if 1
|
||||
#define X(func, ret, args) \
|
||||
void WINAPI func () \
|
||||
{ \
|
||||
__asm__( \
|
||||
"movl %%fs:0x18, %%eax" "\n\t" \
|
||||
"addl %0, %%eax" "\n\t" \
|
||||
"jmpl *(%%eax)" "\n\t" \
|
||||
: \
|
||||
: "n"(0x714+(GLIDX_##func*sizeof(PVOID))) ); \
|
||||
/* GL data types - x86 typedefs */
|
||||
typedef unsigned int GLenum;
|
||||
typedef unsigned char GLboolean;
|
||||
typedef unsigned int GLbitfield;
|
||||
typedef signed char GLbyte;
|
||||
typedef short GLshort;
|
||||
typedef int GLint;
|
||||
typedef int GLsizei;
|
||||
typedef unsigned char GLubyte;
|
||||
typedef unsigned short GLushort;
|
||||
typedef unsigned int GLuint;
|
||||
typedef unsigned short GLhalf;
|
||||
typedef float GLfloat;
|
||||
typedef float GLclampf;
|
||||
typedef double GLdouble;
|
||||
typedef double GLclampd;
|
||||
typedef void GLvoid;
|
||||
|
||||
#if defined(__GNUC__) && defined(_M_IX86) /* use GCC extended inline asm */
|
||||
|
||||
# define X(func, ret, typeargs, args) \
|
||||
void WINAPI func typeargs \
|
||||
{ \
|
||||
__asm__( \
|
||||
"movl %%fs:0x18, %%eax" "\n\t" \
|
||||
"addl %0, %%eax" "\n\t" \
|
||||
"jmpl *(%%eax)" "\n\t" \
|
||||
: \
|
||||
: "n"(0x714+(GLIDX_##func*sizeof(PVOID))) ); \
|
||||
}
|
||||
|
||||
#elif defined(_MSC_VER) && defined(_M_IX86) /* use MSVC intel inline asm */
|
||||
|
||||
# define X(func, ret, typeargs, args) \
|
||||
ret WINAPI func typeargs \
|
||||
{ \
|
||||
__asm { \
|
||||
mov eax, fs:[00000018] \
|
||||
jmp *GLIDX_##func(eax) \
|
||||
} \
|
||||
}
|
||||
|
||||
#else /* use C code */
|
||||
#error C
|
||||
# define X(func, ret, typeargs, args) \
|
||||
ret WINAPI func typeargs \
|
||||
{ \
|
||||
PVOID fn = (PVOID)(NtCurrentTeb()->glDispatch[GLIDX_##func]); \
|
||||
return (ret)((ret (*) typeargs)fn)args; \
|
||||
}
|
||||
|
||||
#else /* defined(_M_IX86) */
|
||||
|
||||
/* FIXME: need more info for X (to pass on arguments) */
|
||||
/*
|
||||
#define X(func, ret, args) \
|
||||
|
||||
ret func args
|
||||
{
|
||||
PVOID fn = (PVOID)( ((char *)NtCurrentTeb()) +
|
||||
(0x714+(GLIDX_func*sizeof(PVOID))) );
|
||||
return (ret)((ret (*func) args)fn)();
|
||||
}*/
|
||||
|
||||
#endif /* !defined(_M_IX86) */
|
||||
#endif
|
||||
|
||||
GLFUNCS_MACRO
|
||||
#undef X
|
||||
|
|
|
@ -5,486 +5,484 @@
|
|||
* PURPOSE: OpenGL32 lib, GLFUNCS_MACRO
|
||||
* PROGRAMMER: gen_glfuncs_macro.sh
|
||||
* UPDATE HISTORY:
|
||||
* !!! AUTOMATICALLY CREATED FROM gl.h !!!
|
||||
* !!! AUTOMATICALLY CREATED FROM glfuncs.csv !!!
|
||||
*/
|
||||
|
||||
/* To use this macro define a macro X(name, ret, args).
|
||||
/* To use this macro define a macro X(name, ret, typeargs, args).
|
||||
* It gets called for every glXXX function. For glVertex3f name would be "glVertex3f",
|
||||
* ret would be "void" and args would be "(GLfloat x, GLfloat y, GLfloat z)".
|
||||
* ret would be "void", typeargs would be "(GLfloat x, GLfloat y, GLfloat z)" and
|
||||
* args would be "(x,y,z)".
|
||||
* Don't forget to undefine X ;-)
|
||||
*/
|
||||
|
||||
#define GLFUNCS_MACRO \
|
||||
X(glAccum, void, (GLenum op, GLfloat value)) \
|
||||
X(glActiveTexture, void, (GLenum texture)) \
|
||||
X(glAddSwapHintRectWIN, void, (GLint x, GLint y, GLsizei width, GLsizei height)) \
|
||||
X(glAlphaFunc, void, (GLenum func, GLclampf ref)) \
|
||||
X(glAreTexturesResident, GLboolean, (GLsizei n, const GLuint *textures, GLboolean *residences)) \
|
||||
X(glArrayElement, void, (GLint i)) \
|
||||
X(glBegin, void, (GLenum mode)) \
|
||||
X(glBindTexture, void, (GLenum target, GLuint texture)) \
|
||||
X(glBitmap, void, (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap)) \
|
||||
X(glBlendColor, void, (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)) \
|
||||
X(glBlendEquation, void, (GLenum mode)) \
|
||||
X(glBlendFunc, void, (GLenum sfactor, GLenum dfactor)) \
|
||||
X(glBlendFuncSeparate, void, (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)) \
|
||||
X(glCallList, void, (GLuint list)) \
|
||||
X(glCallLists, void, (GLsizei n, GLenum type, const GLvoid *lists)) \
|
||||
X(glClear, void, (GLbitfield mask)) \
|
||||
X(glClearAccum, void, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)) \
|
||||
X(glClearColor, void, (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)) \
|
||||
X(glClearDepth, void, (GLclampd depth)) \
|
||||
X(glClearIndex, void, (GLfloat c)) \
|
||||
X(glClearStencil, void, (GLint s)) \
|
||||
X(glClientActiveTexture, void, (GLenum texture)) \
|
||||
X(glClipPlane, void, (GLenum plane, const GLdouble *equation)) \
|
||||
X(glColor3b, void, (GLbyte red, GLbyte green, GLbyte blue)) \
|
||||
X(glColor3bv, void, (const GLbyte *v)) \
|
||||
X(glColor3d, void, (GLdouble red, GLdouble green, GLdouble blue)) \
|
||||
X(glColor3dv, void, (const GLdouble *v)) \
|
||||
X(glColor3f, void, (GLfloat red, GLfloat green, GLfloat blue)) \
|
||||
X(glColor3fv, void, (const GLfloat *v)) \
|
||||
X(glColor3i, void, (GLint red, GLint green, GLint blue)) \
|
||||
X(glColor3iv, void, (const GLint *v)) \
|
||||
X(glColor3s, void, (GLshort red, GLshort green, GLshort blue)) \
|
||||
X(glColor3sv, void, (const GLshort *v)) \
|
||||
X(glColor3ub, void, (GLubyte red, GLubyte green, GLubyte blue)) \
|
||||
X(glColor3ubv, void, (const GLubyte *v)) \
|
||||
X(glColor3ui, void, (GLuint red, GLuint green, GLuint blue)) \
|
||||
X(glColor3uiv, void, (const GLuint *v)) \
|
||||
X(glColor3us, void, (GLushort red, GLushort green, GLushort blue)) \
|
||||
X(glColor3usv, void, (const GLushort *v)) \
|
||||
X(glColor4b, void, (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)) \
|
||||
X(glColor4bv, void, (const GLbyte *v)) \
|
||||
X(glColor4d, void, (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)) \
|
||||
X(glColor4dv, void, (const GLdouble *v)) \
|
||||
X(glColor4f, void, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)) \
|
||||
X(glColor4fv, void, (const GLfloat *v)) \
|
||||
X(glColor4i, void, (GLint red, GLint green, GLint blue, GLint alpha)) \
|
||||
X(glColor4iv, void, (const GLint *v)) \
|
||||
X(glColor4s, void, (GLshort red, GLshort green, GLshort blue, GLshort alpha)) \
|
||||
X(glColor4sv, void, (const GLshort *v)) \
|
||||
X(glColor4ub, void, (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)) \
|
||||
X(glColor4ubv, void, (const GLubyte *v)) \
|
||||
X(glColor4ui, void, (GLuint red, GLuint green, GLuint blue, GLuint alpha)) \
|
||||
X(glColor4uiv, void, (const GLuint *v)) \
|
||||
X(glColor4us, void, (GLushort red, GLushort green, GLushort blue, GLushort alpha)) \
|
||||
X(glColor4usv, void, (const GLushort *v)) \
|
||||
X(glColorMask, void, (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)) \
|
||||
X(glColorMaterial, void, (GLenum face, GLenum mode)) \
|
||||
X(glColorPointer, void, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)) \
|
||||
X(glColorSubTable, void, (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data)) \
|
||||
X(glColorTable, void, (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table)) \
|
||||
X(glColorTableParameterfv, void, (GLenum target, GLenum pname, const GLfloat *params)) \
|
||||
X(glColorTableParameteriv, void, (GLenum target, GLenum pname, const GLint *params)) \
|
||||
X(glCompressedTexImage1D, void, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data)) \
|
||||
X(glCompressedTexImage2D, void, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data)) \
|
||||
X(glCompressedTexImage3D, void, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data)) \
|
||||
X(glCompressedTexSubImage1D, void, (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data)) \
|
||||
X(glCompressedTexSubImage2D, void, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data)) \
|
||||
X(glCompressedTexSubImage3D, void, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data)) \
|
||||
X(glConvolutionFilter1D, void, (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image)) \
|
||||
X(glConvolutionFilter2D, void, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image)) \
|
||||
X(glConvolutionParameterf, void, (GLenum target, GLenum pname, GLfloat params)) \
|
||||
X(glConvolutionParameterfv, void, (GLenum target, GLenum pname, const GLfloat *params)) \
|
||||
X(glConvolutionParameteri, void, (GLenum target, GLenum pname, GLint params)) \
|
||||
X(glConvolutionParameteriv, void, (GLenum target, GLenum pname, const GLint *params)) \
|
||||
X(glCopyColorSubTable, void, (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)) \
|
||||
X(glCopyColorTable, void, (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)) \
|
||||
X(glCopyConvolutionFilter1D, void, (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)) \
|
||||
X(glCopyConvolutionFilter2D, void, (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height)) \
|
||||
X(glCopyPixels, void, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type)) \
|
||||
X(glCopyTexImage1D, void, (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)) \
|
||||
X(glCopyTexImage2D, void, (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)) \
|
||||
X(glCopyTexSubImage1D, void, (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)) \
|
||||
X(glCopyTexSubImage2D, void, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \
|
||||
X(glCopyTexSubImage3D, void, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \
|
||||
X(glCullFace, void, (GLenum mode)) \
|
||||
X(glDeleteLists, void, (GLuint list, GLsizei range)) \
|
||||
X(glDeleteTextures, void, (GLsizei n, const GLuint *textures)) \
|
||||
X(glDepthFunc, void, (GLenum func)) \
|
||||
X(glDepthMask, void, (GLboolean flag)) \
|
||||
X(glDepthRange, void, (GLclampd zNear, GLclampd zFar)) \
|
||||
X(glDisable, void, (GLenum cap)) \
|
||||
X(glDisableClientState, void, (GLenum array)) \
|
||||
X(glDrawArrays, void, (GLenum mode, GLint first, GLsizei count)) \
|
||||
X(glDrawBuffer, void, (GLenum mode)) \
|
||||
X(glDrawElements, void, (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices)) \
|
||||
X(glDrawPixels, void, (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)) \
|
||||
X(glDrawRangeElements, void, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices)) \
|
||||
X(glEdgeFlag, void, (GLboolean flag)) \
|
||||
X(glEdgeFlagPointer, void, (GLsizei stride, const GLboolean *pointer)) \
|
||||
X(glEdgeFlagv, void, (const GLboolean *flag)) \
|
||||
X(glEnable, void, (GLenum cap)) \
|
||||
X(glEnableClientState, void, (GLenum array)) \
|
||||
X(glEnd, void, (void)) \
|
||||
X(glEndList, void, (void)) \
|
||||
X(glEvalCoord1d, void, (GLdouble u)) \
|
||||
X(glEvalCoord1dv, void, (const GLdouble *u)) \
|
||||
X(glEvalCoord1f, void, (GLfloat u)) \
|
||||
X(glEvalCoord1fv, void, (const GLfloat *u)) \
|
||||
X(glEvalCoord2d, void, (GLdouble u, GLdouble v)) \
|
||||
X(glEvalCoord2dv, void, (const GLdouble *u)) \
|
||||
X(glEvalCoord2f, void, (GLfloat u, GLfloat v)) \
|
||||
X(glEvalCoord2fv, void, (const GLfloat *u)) \
|
||||
X(glEvalMesh1, void, (GLenum mode, GLint i1, GLint i2)) \
|
||||
X(glEvalMesh2, void, (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)) \
|
||||
X(glEvalPoint1, void, (GLint i)) \
|
||||
X(glEvalPoint2, void, (GLint i, GLint j)) \
|
||||
X(glFeedbackBuffer, void, (GLsizei size, GLenum type, GLfloat *buffer)) \
|
||||
X(glFinish, void, (void)) \
|
||||
X(glFlush, void, (void)) \
|
||||
X(glFlushHold, GLuint, (void)) \
|
||||
X(glFogCoordPointer, void, (GLenum type, GLsizei stride, const GLvoid *pointer)) \
|
||||
X(glFogCoordd, void, (GLdouble fog)) \
|
||||
X(glFogCoorddv, void, (const GLdouble *fog)) \
|
||||
X(glFogCoordf, void, (GLfloat fog)) \
|
||||
X(glFogCoordfv, void, (const GLfloat *fog)) \
|
||||
X(glFogf, void, (GLenum pname, GLfloat param)) \
|
||||
X(glFogfv, void, (GLenum pname, const GLfloat *params)) \
|
||||
X(glFogi, void, (GLenum pname, GLint param)) \
|
||||
X(glFogiv, void, (GLenum pname, const GLint *params)) \
|
||||
X(glFrontFace, void, (GLenum mode)) \
|
||||
X(glFrustum, void, (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)) \
|
||||
X(glGenLists, GLuint, (GLsizei range)) \
|
||||
X(glGenTextures, void, (GLsizei n, GLuint *textures)) \
|
||||
X(glGetBooleanv, void, (GLenum pname, GLboolean *params)) \
|
||||
X(glGetClipPlane, void, (GLenum plane, GLdouble *equation)) \
|
||||
X(glGetColorTable, void, (GLenum target, GLenum format, GLenum type, GLvoid *table)) \
|
||||
X(glGetColorTableParameterfv, void, (GLenum target, GLenum pname, GLfloat *params)) \
|
||||
X(glGetColorTableParameteriv, void, (GLenum target, GLenum pname, GLint *params)) \
|
||||
X(glGetCompressedTexImage, void, (GLenum target, GLint lod, GLvoid *img)) \
|
||||
X(glGetConvolutionFilter, void, (GLenum target, GLenum format, GLenum type, GLvoid *image)) \
|
||||
X(glGetConvolutionParameterfv, void, (GLenum target, GLenum pname, GLfloat *params)) \
|
||||
X(glGetConvolutionParameteriv, void, (GLenum target, GLenum pname, GLint *params)) \
|
||||
X(glGetDoublev, void, (GLenum pname, GLdouble *params)) \
|
||||
X(glGetError, GLenum, (void)) \
|
||||
X(glGetFloatv, void, (GLenum pname, GLfloat *params)) \
|
||||
X(glGetHistogram, void, (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values)) \
|
||||
X(glGetHistogramParameterfv, void, (GLenum target, GLenum pname, GLfloat *params)) \
|
||||
X(glGetHistogramParameteriv, void, (GLenum target, GLenum pname, GLint *params)) \
|
||||
X(glGetIntegerv, void, (GLenum pname, GLint *params)) \
|
||||
X(glGetLightfv, void, (GLenum light, GLenum pname, GLfloat *params)) \
|
||||
X(glGetLightiv, void, (GLenum light, GLenum pname, GLint *params)) \
|
||||
X(glGetMapdv, void, (GLenum target, GLenum query, GLdouble *v)) \
|
||||
X(glGetMapfv, void, (GLenum target, GLenum query, GLfloat *v)) \
|
||||
X(glGetMapiv, void, (GLenum target, GLenum query, GLint *v)) \
|
||||
X(glGetMaterialfv, void, (GLenum face, GLenum pname, GLfloat *params)) \
|
||||
X(glGetMaterialiv, void, (GLenum face, GLenum pname, GLint *params)) \
|
||||
X(glGetMinmax, void, (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values)) \
|
||||
X(glGetMinmaxParameterfv, void, (GLenum target, GLenum pname, GLfloat *params)) \
|
||||
X(glGetMinmaxParameteriv, void, (GLenum target, GLenum pname, GLint *params)) \
|
||||
X(glGetPixelMapfv, void, (GLenum map, GLfloat *values)) \
|
||||
X(glGetPixelMapuiv, void, (GLenum map, GLuint *values)) \
|
||||
X(glGetPixelMapusv, void, (GLenum map, GLushort *values)) \
|
||||
X(glGetPointerv, void, (GLenum pname, GLvoid* *params)) \
|
||||
X(glGetPolygonStipple, void, (GLubyte *mask)) \
|
||||
X(glGetSeparableFilter, void, (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span)) \
|
||||
X(glGetString, const, (GLenum name)) \
|
||||
X(glGetTexEnvfv, void, (GLenum target, GLenum pname, GLfloat *params)) \
|
||||
X(glGetTexEnviv, void, (GLenum target, GLenum pname, GLint *params)) \
|
||||
X(glGetTexGendv, void, (GLenum coord, GLenum pname, GLdouble *params)) \
|
||||
X(glGetTexGenfv, void, (GLenum coord, GLenum pname, GLfloat *params)) \
|
||||
X(glGetTexGeniv, void, (GLenum coord, GLenum pname, GLint *params)) \
|
||||
X(glGetTexImage, void, (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels)) \
|
||||
X(glGetTexLevelParameterfv, void, (GLenum target, GLint level, GLenum pname, GLfloat *params)) \
|
||||
X(glGetTexLevelParameteriv, void, (GLenum target, GLint level, GLenum pname, GLint *params)) \
|
||||
X(glGetTexParameterfv, void, (GLenum target, GLenum pname, GLfloat *params)) \
|
||||
X(glGetTexParameteriv, void, (GLenum target, GLenum pname, GLint *params)) \
|
||||
X(glHint, void, (GLenum target, GLenum mode)) \
|
||||
X(glHistogram, void, (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink)) \
|
||||
X(glIndexMask, void, (GLuint mask)) \
|
||||
X(glIndexPointer, void, (GLenum type, GLsizei stride, const GLvoid *pointer)) \
|
||||
X(glIndexd, void, (GLdouble c)) \
|
||||
X(glIndexdv, void, (const GLdouble *c)) \
|
||||
X(glIndexf, void, (GLfloat c)) \
|
||||
X(glIndexfv, void, (const GLfloat *c)) \
|
||||
X(glIndexi, void, (GLint c)) \
|
||||
X(glIndexiv, void, (const GLint *c)) \
|
||||
X(glIndexs, void, (GLshort c)) \
|
||||
X(glIndexsv, void, (const GLshort *c)) \
|
||||
X(glIndexub, void, (GLubyte c)) \
|
||||
X(glIndexubv, void, (const GLubyte *c)) \
|
||||
X(glInitNames, void, (void)) \
|
||||
X(glInterleavedArrays, void, (GLenum format, GLsizei stride, const GLvoid *pointer)) \
|
||||
X(glIsEnabled, GLboolean, (GLenum cap)) \
|
||||
X(glIsList, GLboolean, (GLuint list)) \
|
||||
X(glIsTexture, GLboolean, (GLuint texture)) \
|
||||
X(glLightModelf, void, (GLenum pname, GLfloat param)) \
|
||||
X(glLightModelfv, void, (GLenum pname, const GLfloat *params)) \
|
||||
X(glLightModeli, void, (GLenum pname, GLint param)) \
|
||||
X(glLightModeliv, void, (GLenum pname, const GLint *params)) \
|
||||
X(glLightf, void, (GLenum light, GLenum pname, GLfloat param)) \
|
||||
X(glLightfv, void, (GLenum light, GLenum pname, const GLfloat *params)) \
|
||||
X(glLighti, void, (GLenum light, GLenum pname, GLint param)) \
|
||||
X(glLightiv, void, (GLenum light, GLenum pname, const GLint *params)) \
|
||||
X(glLineStipple, void, (GLint factor, GLushort pattern)) \
|
||||
X(glLineWidth, void, (GLfloat width)) \
|
||||
X(glListBase, void, (GLuint base)) \
|
||||
X(glLoadIdentity, void, (void)) \
|
||||
X(glLoadMatrixd, void, (const GLdouble *m)) \
|
||||
X(glLoadMatrixf, void, (const GLfloat *m)) \
|
||||
X(glLoadName, void, (GLuint name)) \
|
||||
X(glLoadTransposeMatrixd, void, (const GLdouble *m)) \
|
||||
X(glLoadTransposeMatrixf, void, (const GLfloat *m)) \
|
||||
X(glLogicOp, void, (GLenum opcode)) \
|
||||
X(glMap1d, void, (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points)) \
|
||||
X(glMap1f, void, (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points)) \
|
||||
X(glMap2d, void, (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points)) \
|
||||
X(glMap2f, void, (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points)) \
|
||||
X(glMapGrid1d, void, (GLint un, GLdouble u1, GLdouble u2)) \
|
||||
X(glMapGrid1f, void, (GLint un, GLfloat u1, GLfloat u2)) \
|
||||
X(glMapGrid2d, void, (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)) \
|
||||
X(glMapGrid2f, void, (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)) \
|
||||
X(glMaterialf, void, (GLenum face, GLenum pname, GLfloat param)) \
|
||||
X(glMaterialfv, void, (GLenum face, GLenum pname, const GLfloat *params)) \
|
||||
X(glMateriali, void, (GLenum face, GLenum pname, GLint param)) \
|
||||
X(glMaterialiv, void, (GLenum face, GLenum pname, const GLint *params)) \
|
||||
X(glMatrixMode, void, (GLenum mode)) \
|
||||
X(glMinmax, void, (GLenum target, GLenum internalformat, GLboolean sink)) \
|
||||
X(glMultMatrixd, void, (const GLdouble *m)) \
|
||||
X(glMultMatrixf, void, (const GLfloat *m)) \
|
||||
X(glMultTransposeMatrixd, void, (const GLdouble *m)) \
|
||||
X(glMultTransposeMatrixf, void, (const GLfloat *m)) \
|
||||
X(glMultiDrawArrays, void, (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount)) \
|
||||
X(glMultiDrawElements, void, (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount)) \
|
||||
X(glMultiTexCoord1d, void, (GLenum target, GLdouble s)) \
|
||||
X(glMultiTexCoord1dv, void, (GLenum target, const GLdouble *v)) \
|
||||
X(glMultiTexCoord1f, void, (GLenum target, GLfloat s)) \
|
||||
X(glMultiTexCoord1fv, void, (GLenum target, const GLfloat *v)) \
|
||||
X(glMultiTexCoord1i, void, (GLenum target, GLint s)) \
|
||||
X(glMultiTexCoord1iv, void, (GLenum target, const GLint *v)) \
|
||||
X(glMultiTexCoord1s, void, (GLenum target, GLshort s)) \
|
||||
X(glMultiTexCoord1sv, void, (GLenum target, const GLshort *v)) \
|
||||
X(glMultiTexCoord2d, void, (GLenum target, GLdouble s, GLdouble t)) \
|
||||
X(glMultiTexCoord2dv, void, (GLenum target, const GLdouble *v)) \
|
||||
X(glMultiTexCoord2f, void, (GLenum target, GLfloat s, GLfloat t)) \
|
||||
X(glMultiTexCoord2fv, void, (GLenum target, const GLfloat *v)) \
|
||||
X(glMultiTexCoord2i, void, (GLenum target, GLint s, GLint t)) \
|
||||
X(glMultiTexCoord2iv, void, (GLenum target, const GLint *v)) \
|
||||
X(glMultiTexCoord2s, void, (GLenum target, GLshort s, GLshort t)) \
|
||||
X(glMultiTexCoord2sv, void, (GLenum target, const GLshort *v)) \
|
||||
X(glMultiTexCoord3d, void, (GLenum target, GLdouble s, GLdouble t, GLdouble r)) \
|
||||
X(glMultiTexCoord3dv, void, (GLenum target, const GLdouble *v)) \
|
||||
X(glMultiTexCoord3f, void, (GLenum target, GLfloat s, GLfloat t, GLfloat r)) \
|
||||
X(glMultiTexCoord3fv, void, (GLenum target, const GLfloat *v)) \
|
||||
X(glMultiTexCoord3i, void, (GLenum target, GLint s, GLint t, GLint r)) \
|
||||
X(glMultiTexCoord3iv, void, (GLenum target, const GLint *v)) \
|
||||
X(glMultiTexCoord3s, void, (GLenum target, GLshort s, GLshort t, GLshort r)) \
|
||||
X(glMultiTexCoord3sv, void, (GLenum target, const GLshort *v)) \
|
||||
X(glMultiTexCoord4d, void, (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)) \
|
||||
X(glMultiTexCoord4dv, void, (GLenum target, const GLdouble *v)) \
|
||||
X(glMultiTexCoord4f, void, (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)) \
|
||||
X(glMultiTexCoord4fv, void, (GLenum target, const GLfloat *v)) \
|
||||
X(glMultiTexCoord4i, void, (GLenum target, GLint s, GLint t, GLint r, GLint q)) \
|
||||
X(glMultiTexCoord4iv, void, (GLenum target, const GLint *v)) \
|
||||
X(glMultiTexCoord4s, void, (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)) \
|
||||
X(glMultiTexCoord4sv, void, (GLenum target, const GLshort *v)) \
|
||||
X(glNewList, void, (GLuint list, GLenum mode)) \
|
||||
X(glNormal3b, void, (GLbyte nx, GLbyte ny, GLbyte nz)) \
|
||||
X(glNormal3bv, void, (const GLbyte *v)) \
|
||||
X(glNormal3d, void, (GLdouble nx, GLdouble ny, GLdouble nz)) \
|
||||
X(glNormal3dv, void, (const GLdouble *v)) \
|
||||
X(glNormal3f, void, (GLfloat nx, GLfloat ny, GLfloat nz)) \
|
||||
X(glNormal3fv, void, (const GLfloat *v)) \
|
||||
X(glNormal3i, void, (GLint nx, GLint ny, GLint nz)) \
|
||||
X(glNormal3iv, void, (const GLint *v)) \
|
||||
X(glNormal3s, void, (GLshort nx, GLshort ny, GLshort nz)) \
|
||||
X(glNormal3sv, void, (const GLshort *v)) \
|
||||
X(glNormalPointer, void, (GLenum type, GLsizei stride, const GLvoid *pointer)) \
|
||||
X(glOrtho, void, (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)) \
|
||||
X(glPassThrough, void, (GLfloat token)) \
|
||||
X(glPixelMapfv, void, (GLenum map, GLint mapsize, const GLfloat *values)) \
|
||||
X(glPixelMapuiv, void, (GLenum map, GLint mapsize, const GLuint *values)) \
|
||||
X(glPixelMapusv, void, (GLenum map, GLint mapsize, const GLushort *values)) \
|
||||
X(glPixelStoref, void, (GLenum pname, GLfloat param)) \
|
||||
X(glPixelStorei, void, (GLenum pname, GLint param)) \
|
||||
X(glPixelTransferf, void, (GLenum pname, GLfloat param)) \
|
||||
X(glPixelTransferi, void, (GLenum pname, GLint param)) \
|
||||
X(glPixelZoom, void, (GLfloat xfactor, GLfloat yfactor)) \
|
||||
X(glPointParameterf, void, (GLenum pname, GLfloat param)) \
|
||||
X(glPointParameterfv, void, (GLenum pname, const GLfloat *params)) \
|
||||
X(glPointParameteri, void, (GLenum pname, GLint param)) \
|
||||
X(glPointParameteriv, void, (GLenum pname, const GLint *params)) \
|
||||
X(glPointSize, void, (GLfloat size)) \
|
||||
X(glPolygonMode, void, (GLenum face, GLenum mode)) \
|
||||
X(glPolygonOffset, void, (GLfloat factor, GLfloat units)) \
|
||||
X(glPolygonStipple, void, (const GLubyte *mask)) \
|
||||
X(glPopAttrib, void, (void)) \
|
||||
X(glPopClientAttrib, void, (void)) \
|
||||
X(glPopMatrix, void, (void)) \
|
||||
X(glPopName, void, (void)) \
|
||||
X(glPrioritizeTextures, void, (GLsizei n, const GLuint *textures, const GLclampf *priorities)) \
|
||||
X(glPushAttrib, void, (GLbitfield mask)) \
|
||||
X(glPushClientAttrib, void, (GLbitfield mask)) \
|
||||
X(glPushMatrix, void, (void)) \
|
||||
X(glPushName, void, (GLuint name)) \
|
||||
X(glRasterPos2d, void, (GLdouble x, GLdouble y)) \
|
||||
X(glRasterPos2dv, void, (const GLdouble *v)) \
|
||||
X(glRasterPos2f, void, (GLfloat x, GLfloat y)) \
|
||||
X(glRasterPos2fv, void, (const GLfloat *v)) \
|
||||
X(glRasterPos2i, void, (GLint x, GLint y)) \
|
||||
X(glRasterPos2iv, void, (const GLint *v)) \
|
||||
X(glRasterPos2s, void, (GLshort x, GLshort y)) \
|
||||
X(glRasterPos2sv, void, (const GLshort *v)) \
|
||||
X(glRasterPos3d, void, (GLdouble x, GLdouble y, GLdouble z)) \
|
||||
X(glRasterPos3dv, void, (const GLdouble *v)) \
|
||||
X(glRasterPos3f, void, (GLfloat x, GLfloat y, GLfloat z)) \
|
||||
X(glRasterPos3fv, void, (const GLfloat *v)) \
|
||||
X(glRasterPos3i, void, (GLint x, GLint y, GLint z)) \
|
||||
X(glRasterPos3iv, void, (const GLint *v)) \
|
||||
X(glRasterPos3s, void, (GLshort x, GLshort y, GLshort z)) \
|
||||
X(glRasterPos3sv, void, (const GLshort *v)) \
|
||||
X(glRasterPos4d, void, (GLdouble x, GLdouble y, GLdouble z, GLdouble w)) \
|
||||
X(glRasterPos4dv, void, (const GLdouble *v)) \
|
||||
X(glRasterPos4f, void, (GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \
|
||||
X(glRasterPos4fv, void, (const GLfloat *v)) \
|
||||
X(glRasterPos4i, void, (GLint x, GLint y, GLint z, GLint w)) \
|
||||
X(glRasterPos4iv, void, (const GLint *v)) \
|
||||
X(glRasterPos4s, void, (GLshort x, GLshort y, GLshort z, GLshort w)) \
|
||||
X(glRasterPos4sv, void, (const GLshort *v)) \
|
||||
X(glReadBuffer, void, (GLenum mode)) \
|
||||
X(glReadPixels, void, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)) \
|
||||
X(glRectd, void, (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)) \
|
||||
X(glRectdv, void, (const GLdouble *v1, const GLdouble *v2)) \
|
||||
X(glRectf, void, (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)) \
|
||||
X(glRectfv, void, (const GLfloat *v1, const GLfloat *v2)) \
|
||||
X(glRecti, void, (GLint x1, GLint y1, GLint x2, GLint y2)) \
|
||||
X(glRectiv, void, (const GLint *v1, const GLint *v2)) \
|
||||
X(glRects, void, (GLshort x1, GLshort y1, GLshort x2, GLshort y2)) \
|
||||
X(glRectsv, void, (const GLshort *v1, const GLshort *v2)) \
|
||||
X(glReleaseFlushHold, GLenum, (GLuint id)) \
|
||||
X(glRenderMode, GLint, (GLenum mode)) \
|
||||
X(glResetHistogram, void, (GLenum target)) \
|
||||
X(glResetMinmax, void, (GLenum target)) \
|
||||
X(glRotated, void, (GLdouble angle, GLdouble x, GLdouble y, GLdouble z)) \
|
||||
X(glRotatef, void, (GLfloat angle, GLfloat x, GLfloat y, GLfloat z)) \
|
||||
X(glSampleCoverage, void, (GLclampf value, GLboolean invert)) \
|
||||
X(glScaled, void, (GLdouble x, GLdouble y, GLdouble z)) \
|
||||
X(glScalef, void, (GLfloat x, GLfloat y, GLfloat z)) \
|
||||
X(glScissor, void, (GLint x, GLint y, GLsizei width, GLsizei height)) \
|
||||
X(glSecondaryColor3b, void, (GLbyte red, GLbyte green, GLbyte blue)) \
|
||||
X(glSecondaryColor3bv, void, (const GLbyte *v)) \
|
||||
X(glSecondaryColor3d, void, (GLdouble red, GLdouble green, GLdouble blue)) \
|
||||
X(glSecondaryColor3dv, void, (const GLdouble *v)) \
|
||||
X(glSecondaryColor3f, void, (GLfloat red, GLfloat green, GLfloat blue)) \
|
||||
X(glSecondaryColor3fv, void, (const GLfloat *v)) \
|
||||
X(glSecondaryColor3i, void, (GLint red, GLint green, GLint blue)) \
|
||||
X(glSecondaryColor3iv, void, (const GLint *v)) \
|
||||
X(glSecondaryColor3s, void, (GLshort red, GLshort green, GLshort blue)) \
|
||||
X(glSecondaryColor3sv, void, (const GLshort *v)) \
|
||||
X(glSecondaryColor3ub, void, (GLubyte red, GLubyte green, GLubyte blue)) \
|
||||
X(glSecondaryColor3ubv, void, (const GLubyte *v)) \
|
||||
X(glSecondaryColor3ui, void, (GLuint red, GLuint green, GLuint blue)) \
|
||||
X(glSecondaryColor3uiv, void, (const GLuint *v)) \
|
||||
X(glSecondaryColor3us, void, (GLushort red, GLushort green, GLushort blue)) \
|
||||
X(glSecondaryColor3usv, void, (const GLushort *v)) \
|
||||
X(glSecondaryColorPointer, void, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)) \
|
||||
X(glSelectBuffer, void, (GLsizei size, GLuint *buffer)) \
|
||||
X(glSeparableFilter2D, void, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column)) \
|
||||
X(glShadeModel, void, (GLenum mode)) \
|
||||
X(glStencilFunc, void, (GLenum func, GLint ref, GLuint mask)) \
|
||||
X(glStencilMask, void, (GLuint mask)) \
|
||||
X(glStencilOp, void, (GLenum fail, GLenum zfail, GLenum zpass)) \
|
||||
X(glTexCoord1d, void, (GLdouble s)) \
|
||||
X(glTexCoord1dv, void, (const GLdouble *v)) \
|
||||
X(glTexCoord1f, void, (GLfloat s)) \
|
||||
X(glTexCoord1fv, void, (const GLfloat *v)) \
|
||||
X(glTexCoord1i, void, (GLint s)) \
|
||||
X(glTexCoord1iv, void, (const GLint *v)) \
|
||||
X(glTexCoord1s, void, (GLshort s)) \
|
||||
X(glTexCoord1sv, void, (const GLshort *v)) \
|
||||
X(glTexCoord2d, void, (GLdouble s, GLdouble t)) \
|
||||
X(glTexCoord2dv, void, (const GLdouble *v)) \
|
||||
X(glTexCoord2f, void, (GLfloat s, GLfloat t)) \
|
||||
X(glTexCoord2fv, void, (const GLfloat *v)) \
|
||||
X(glTexCoord2i, void, (GLint s, GLint t)) \
|
||||
X(glTexCoord2iv, void, (const GLint *v)) \
|
||||
X(glTexCoord2s, void, (GLshort s, GLshort t)) \
|
||||
X(glTexCoord2sv, void, (const GLshort *v)) \
|
||||
X(glTexCoord3d, void, (GLdouble s, GLdouble t, GLdouble r)) \
|
||||
X(glTexCoord3dv, void, (const GLdouble *v)) \
|
||||
X(glTexCoord3f, void, (GLfloat s, GLfloat t, GLfloat r)) \
|
||||
X(glTexCoord3fv, void, (const GLfloat *v)) \
|
||||
X(glTexCoord3i, void, (GLint s, GLint t, GLint r)) \
|
||||
X(glTexCoord3iv, void, (const GLint *v)) \
|
||||
X(glTexCoord3s, void, (GLshort s, GLshort t, GLshort r)) \
|
||||
X(glTexCoord3sv, void, (const GLshort *v)) \
|
||||
X(glTexCoord4d, void, (GLdouble s, GLdouble t, GLdouble r, GLdouble q)) \
|
||||
X(glTexCoord4dv, void, (const GLdouble *v)) \
|
||||
X(glTexCoord4f, void, (GLfloat s, GLfloat t, GLfloat r, GLfloat q)) \
|
||||
X(glTexCoord4fv, void, (const GLfloat *v)) \
|
||||
X(glTexCoord4i, void, (GLint s, GLint t, GLint r, GLint q)) \
|
||||
X(glTexCoord4iv, void, (const GLint *v)) \
|
||||
X(glTexCoord4s, void, (GLshort s, GLshort t, GLshort r, GLshort q)) \
|
||||
X(glTexCoord4sv, void, (const GLshort *v)) \
|
||||
X(glTexCoordPointer, void, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)) \
|
||||
X(glTexEnvf, void, (GLenum target, GLenum pname, GLfloat param)) \
|
||||
X(glTexEnvfv, void, (GLenum target, GLenum pname, const GLfloat *params)) \
|
||||
X(glTexEnvi, void, (GLenum target, GLenum pname, GLint param)) \
|
||||
X(glTexEnviv, void, (GLenum target, GLenum pname, const GLint *params)) \
|
||||
X(glTexGend, void, (GLenum coord, GLenum pname, GLdouble param)) \
|
||||
X(glTexGendv, void, (GLenum coord, GLenum pname, const GLdouble *params)) \
|
||||
X(glTexGenf, void, (GLenum coord, GLenum pname, GLfloat param)) \
|
||||
X(glTexGenfv, void, (GLenum coord, GLenum pname, const GLfloat *params)) \
|
||||
X(glTexGeni, void, (GLenum coord, GLenum pname, GLint param)) \
|
||||
X(glTexGeniv, void, (GLenum coord, GLenum pname, const GLint *params)) \
|
||||
X(glTexImage1D, void, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels)) \
|
||||
X(glTexImage2D, void, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels)) \
|
||||
X(glTexImage3D, void, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels)) \
|
||||
X(glTexParameterf, void, (GLenum target, GLenum pname, GLfloat param)) \
|
||||
X(glTexParameterfv, void, (GLenum target, GLenum pname, const GLfloat *params)) \
|
||||
X(glTexParameteri, void, (GLenum target, GLenum pname, GLint param)) \
|
||||
X(glTexParameteriv, void, (GLenum target, GLenum pname, const GLint *params)) \
|
||||
X(glTexSubImage1D, void, (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels)) \
|
||||
X(glTexSubImage2D, void, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)) \
|
||||
X(glTexSubImage3D, void, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels)) \
|
||||
X(glTranslated, void, (GLdouble x, GLdouble y, GLdouble z)) \
|
||||
X(glTranslatef, void, (GLfloat x, GLfloat y, GLfloat z)) \
|
||||
X(glValidBackBufferHintAutodesk, GLboolean, (GLint x, GLint y, GLsizei width, GLsizei height)) \
|
||||
X(glVertex2d, void, (GLdouble x, GLdouble y)) \
|
||||
X(glVertex2dv, void, (const GLdouble *v)) \
|
||||
X(glVertex2f, void, (GLfloat x, GLfloat y)) \
|
||||
X(glVertex2fv, void, (const GLfloat *v)) \
|
||||
X(glVertex2i, void, (GLint x, GLint y)) \
|
||||
X(glVertex2iv, void, (const GLint *v)) \
|
||||
X(glVertex2s, void, (GLshort x, GLshort y)) \
|
||||
X(glVertex2sv, void, (const GLshort *v)) \
|
||||
X(glVertex3d, void, (GLdouble x, GLdouble y, GLdouble z)) \
|
||||
X(glVertex3dv, void, (const GLdouble *v)) \
|
||||
X(glVertex3f, void, (GLfloat x, GLfloat y, GLfloat z)) \
|
||||
X(glVertex3fv, void, (const GLfloat *v)) \
|
||||
X(glVertex3i, void, (GLint x, GLint y, GLint z)) \
|
||||
X(glVertex3iv, void, (const GLint *v)) \
|
||||
X(glVertex3s, void, (GLshort x, GLshort y, GLshort z)) \
|
||||
X(glVertex3sv, void, (const GLshort *v)) \
|
||||
X(glVertex4d, void, (GLdouble x, GLdouble y, GLdouble z, GLdouble w)) \
|
||||
X(glVertex4dv, void, (const GLdouble *v)) \
|
||||
X(glVertex4f, void, (GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \
|
||||
X(glVertex4fv, void, (const GLfloat *v)) \
|
||||
X(glVertex4i, void, (GLint x, GLint y, GLint z, GLint w)) \
|
||||
X(glVertex4iv, void, (const GLint *v)) \
|
||||
X(glVertex4s, void, (GLshort x, GLshort y, GLshort z, GLshort w)) \
|
||||
X(glVertex4sv, void, (const GLshort *v)) \
|
||||
X(glVertexPointer, void, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)) \
|
||||
X(glViewport, void, (GLint x, GLint y, GLsizei width, GLsizei height)) \
|
||||
X(glWindowBackBufferHintAutodesk, void, (void)) \
|
||||
X(glWindowPos2d, void, (GLdouble x, GLdouble y)) \
|
||||
X(glWindowPos2dv, void, (const GLdouble *p)) \
|
||||
X(glWindowPos2f, void, (GLfloat x, GLfloat y)) \
|
||||
X(glWindowPos2fv, void, (const GLfloat *p)) \
|
||||
X(glWindowPos2i, void, (GLint x, GLint y)) \
|
||||
X(glWindowPos2iv, void, (const GLint *p)) \
|
||||
X(glWindowPos2s, void, (GLshort x, GLshort y)) \
|
||||
X(glWindowPos2sv, void, (const GLshort *p)) \
|
||||
X(glWindowPos3d, void, (GLdouble x, GLdouble y, GLdouble z)) \
|
||||
X(glWindowPos3dv, void, (const GLdouble *p)) \
|
||||
X(glWindowPos3f, void, (GLfloat x, GLfloat y, GLfloat z)) \
|
||||
X(glWindowPos3fv, void, (const GLfloat *p)) \
|
||||
X(glWindowPos3i, void, (GLint x, GLint y, GLint z)) \
|
||||
X(glWindowPos3iv, void, (const GLint *p)) \
|
||||
X(glWindowPos3s, void, (GLshort x, GLshort y, GLshort z)) \
|
||||
X(glWindowPos3sv, void, (const GLshort *p)) \
|
||||
|
||||
|
||||
/* EOF */
|
||||
X(glAccum, void, (GLenum op, GLfloat value), (op,value)) \
|
||||
X(glActiveTexture, void, (GLenum texture), (texture)) \
|
||||
X(glAddSwapHintRectWIN, void, (GLint x, GLint y, GLsizei width, GLsizei height), (x,y,width,height)) \
|
||||
X(glAlphaFunc, void, (GLenum func, GLclampf ref), (func,ref)) \
|
||||
X(glAreTexturesResident, GLboolean, (GLsizei n, const GLuint *textures, GLboolean *residences), (n,textures,residences)) \
|
||||
X(glArrayElement, void, (GLint i), (i)) \
|
||||
X(glBegin, void, (GLenum mode), (mode)) \
|
||||
X(glBindTexture, void, (GLenum target, GLuint texture), (target,texture)) \
|
||||
X(glBitmap, void, (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap), (width,height,xorig,yorig,xmove,ymove,bitmap)) \
|
||||
X(glBlendColor, void, (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha), (red,green,blue,alpha)) \
|
||||
X(glBlendEquation, void, (GLenum mode), (mode)) \
|
||||
X(glBlendFunc, void, (GLenum sfactor, GLenum dfactor), (sfactor,dfactor)) \
|
||||
X(glBlendFuncSeparate, void, (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha), (sfactorRGB,dfactorRGB,sfactorAlpha,dfactorAlpha)) \
|
||||
X(glCallList, void, (GLuint list), (list)) \
|
||||
X(glCallLists, void, (GLsizei n, GLenum type, const GLvoid *lists), (n,type,lists)) \
|
||||
X(glClear, void, (GLbitfield mask), (mask)) \
|
||||
X(glClearAccum, void, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha), (red,green,blue,alpha)) \
|
||||
X(glClearColor, void, (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha), (red,green,blue,alpha)) \
|
||||
X(glClearDepth, void, (GLclampd depth), (depth)) \
|
||||
X(glClearIndex, void, (GLfloat c), (c)) \
|
||||
X(glClearStencil, void, (GLint s), (s)) \
|
||||
X(glClientActiveTexture, void, (GLenum texture), (texture)) \
|
||||
X(glClipPlane, void, (GLenum plane, const GLdouble *equation), (plane,equation)) \
|
||||
X(glColor3b, void, (GLbyte red, GLbyte green, GLbyte blue), (red,green,blue)) \
|
||||
X(glColor3bv, void, (const GLbyte *v), (v)) \
|
||||
X(glColor3d, void, (GLdouble red, GLdouble green, GLdouble blue), (red,green,blue)) \
|
||||
X(glColor3dv, void, (const GLdouble *v), (v)) \
|
||||
X(glColor3f, void, (GLfloat red, GLfloat green, GLfloat blue), (red,green,blue)) \
|
||||
X(glColor3fv, void, (const GLfloat *v), (v)) \
|
||||
X(glColor3i, void, (GLint red, GLint green, GLint blue), (red,green,blue)) \
|
||||
X(glColor3iv, void, (const GLint *v), (v)) \
|
||||
X(glColor3s, void, (GLshort red, GLshort green, GLshort blue), (red,green,blue)) \
|
||||
X(glColor3sv, void, (const GLshort *v), (v)) \
|
||||
X(glColor3ub, void, (GLubyte red, GLubyte green, GLubyte blue), (red,green,blue)) \
|
||||
X(glColor3ubv, void, (const GLubyte *v), (v)) \
|
||||
X(glColor3ui, void, (GLuint red, GLuint green, GLuint blue), (red,green,blue)) \
|
||||
X(glColor3uiv, void, (const GLuint *v), (v)) \
|
||||
X(glColor3us, void, (GLushort red, GLushort green, GLushort blue), (red,green,blue)) \
|
||||
X(glColor3usv, void, (const GLushort *v), (v)) \
|
||||
X(glColor4b, void, (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha), (red,green,blue,alpha)) \
|
||||
X(glColor4bv, void, (const GLbyte *v), (v)) \
|
||||
X(glColor4d, void, (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha), (red,green,blue,alpha)) \
|
||||
X(glColor4dv, void, (const GLdouble *v), (v)) \
|
||||
X(glColor4f, void, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha), (red,green,blue,alpha)) \
|
||||
X(glColor4fv, void, (const GLfloat *v), (v)) \
|
||||
X(glColor4i, void, (GLint red, GLint green, GLint blue, GLint alpha), (red,green,blue,alpha)) \
|
||||
X(glColor4iv, void, (const GLint *v), (v)) \
|
||||
X(glColor4s, void, (GLshort red, GLshort green, GLshort blue, GLshort alpha), (red,green,blue,alpha)) \
|
||||
X(glColor4sv, void, (const GLshort *v), (v)) \
|
||||
X(glColor4ub, void, (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha), (red,green,blue,alpha)) \
|
||||
X(glColor4ubv, void, (const GLubyte *v), (v)) \
|
||||
X(glColor4ui, void, (GLuint red, GLuint green, GLuint blue, GLuint alpha), (red,green,blue,alpha)) \
|
||||
X(glColor4uiv, void, (const GLuint *v), (v)) \
|
||||
X(glColor4us, void, (GLushort red, GLushort green, GLushort blue, GLushort alpha), (red,green,blue,alpha)) \
|
||||
X(glColor4usv, void, (const GLushort *v), (v)) \
|
||||
X(glColorMask, void, (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha), (red,green,blue,alpha)) \
|
||||
X(glColorMaterial, void, (GLenum face, GLenum mode), (face,mode)) \
|
||||
X(glColorPointer, void, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer), (size,type,stride,pointer)) \
|
||||
X(glColorSubTable, void, (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data), (target,start,count,format,type,data)) \
|
||||
X(glColorTable, void, (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table), (target,internalformat,width,format,type,table)) \
|
||||
X(glColorTableParameterfv, void, (GLenum target, GLenum pname, const GLfloat *params), (target,pname,params)) \
|
||||
X(glColorTableParameteriv, void, (GLenum target, GLenum pname, const GLint *params), (target,pname,params)) \
|
||||
X(glCompressedTexImage1D, void, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data), (target,level,internalformat,width,border,imageSize,data)) \
|
||||
X(glCompressedTexImage2D, void, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data), (target,level,internalformat,width,height,border,imageSize,data)) \
|
||||
X(glCompressedTexImage3D, void, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data), (target,level,internalformat,width,height,depth,border,imageSize,data)) \
|
||||
X(glCompressedTexSubImage1D, void, (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data), (target,level,xoffset,width,format,imageSize,data)) \
|
||||
X(glCompressedTexSubImage2D, void, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data), (target,level,xoffset,yoffset,width,height,format,imageSize,data)) \
|
||||
X(glCompressedTexSubImage3D, void, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data), (target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)) \
|
||||
X(glConvolutionFilter1D, void, (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image), (target,internalformat,width,format,type,image)) \
|
||||
X(glConvolutionFilter2D, void, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image), (target,internalformat,width,height,format,type,image)) \
|
||||
X(glConvolutionParameterf, void, (GLenum target, GLenum pname, GLfloat params), (target,pname,params)) \
|
||||
X(glConvolutionParameterfv, void, (GLenum target, GLenum pname, const GLfloat *params), (target,pname,params)) \
|
||||
X(glConvolutionParameteri, void, (GLenum target, GLenum pname, GLint params), (target,pname,params)) \
|
||||
X(glConvolutionParameteriv, void, (GLenum target, GLenum pname, const GLint *params), (target,pname,params)) \
|
||||
X(glCopyColorSubTable, void, (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width), (target,start,x,y,width)) \
|
||||
X(glCopyColorTable, void, (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width), (target,internalformat,x,y,width)) \
|
||||
X(glCopyConvolutionFilter1D, void, (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width), (target,internalformat,x,y,width)) \
|
||||
X(glCopyConvolutionFilter2D, void, (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height), (target,internalformat,x,y,width,height)) \
|
||||
X(glCopyPixels, void, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type), (x,y,width,height,type)) \
|
||||
X(glCopyTexImage1D, void, (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border), (target,level,internalformat,x,y,width,border)) \
|
||||
X(glCopyTexImage2D, void, (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border), (target,level,internalformat,x,y,width,height,border)) \
|
||||
X(glCopyTexSubImage1D, void, (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width), (target,level,xoffset,x,y,width)) \
|
||||
X(glCopyTexSubImage2D, void, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height), (target,level,xoffset,yoffset,x,y,width,height)) \
|
||||
X(glCopyTexSubImage3D, void, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height), (target,level,xoffset,yoffset,zoffset,x,y,width,height)) \
|
||||
X(glCullFace, void, (GLenum mode), (mode)) \
|
||||
X(glDeleteLists, void, (GLuint list, GLsizei range), (list,range)) \
|
||||
X(glDeleteTextures, void, (GLsizei n, const GLuint *textures), (n,textures)) \
|
||||
X(glDepthFunc, void, (GLenum func), (func)) \
|
||||
X(glDepthMask, void, (GLboolean flag), (flag)) \
|
||||
X(glDepthRange, void, (GLclampd zNear, GLclampd zFar), (zNear,zFar)) \
|
||||
X(glDisable, void, (GLenum cap), (cap)) \
|
||||
X(glDisableClientState, void, (GLenum array), (array)) \
|
||||
X(glDrawArrays, void, (GLenum mode, GLint first, GLsizei count), (mode,first,count)) \
|
||||
X(glDrawBuffer, void, (GLenum mode), (mode)) \
|
||||
X(glDrawElements, void, (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices), (mode,count,type,indices)) \
|
||||
X(glDrawPixels, void, (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels), (width,height,format,type,pixels)) \
|
||||
X(glDrawRangeElements, void, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices), (mode,start,end,count,type,indices)) \
|
||||
X(glEdgeFlag, void, (GLboolean flag), (flag)) \
|
||||
X(glEdgeFlagPointer, void, (GLsizei stride, const GLboolean *pointer), (stride,pointer)) \
|
||||
X(glEdgeFlagv, void, (const GLboolean *flag), (flag)) \
|
||||
X(glEnable, void, (GLenum cap), (cap)) \
|
||||
X(glEnableClientState, void, (GLenum array), (array)) \
|
||||
X(glEnd, void, (void), ()) \
|
||||
X(glEndList, void, (void), ()) \
|
||||
X(glEvalCoord1d, void, (GLdouble u), (u)) \
|
||||
X(glEvalCoord1dv, void, (const GLdouble *u), (u)) \
|
||||
X(glEvalCoord1f, void, (GLfloat u), (u)) \
|
||||
X(glEvalCoord1fv, void, (const GLfloat *u), (u)) \
|
||||
X(glEvalCoord2d, void, (GLdouble u, GLdouble v), (u,v)) \
|
||||
X(glEvalCoord2dv, void, (const GLdouble *u), (u)) \
|
||||
X(glEvalCoord2f, void, (GLfloat u, GLfloat v), (u,v)) \
|
||||
X(glEvalCoord2fv, void, (const GLfloat *u), (u)) \
|
||||
X(glEvalMesh1, void, (GLenum mode, GLint i1, GLint i2), (mode,i1,i2)) \
|
||||
X(glEvalMesh2, void, (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2), (mode,i1,i2,j1,j2)) \
|
||||
X(glEvalPoint1, void, (GLint i), (i)) \
|
||||
X(glEvalPoint2, void, (GLint i, GLint j), (i,j)) \
|
||||
X(glFeedbackBuffer, void, (GLsizei size, GLenum type, GLfloat *buffer), (size,type,buffer)) \
|
||||
X(glFinish, void, (void), ()) \
|
||||
X(glFlush, void, (void), ()) \
|
||||
X(glFlushHold, GLuint, (void), ()) \
|
||||
X(glFogCoordPointer, void, (GLenum type, GLsizei stride, const GLvoid *pointer), (type,stride,pointer)) \
|
||||
X(glFogCoordd, void, (GLdouble fog), (fog)) \
|
||||
X(glFogCoorddv, void, (const GLdouble *fog), (fog)) \
|
||||
X(glFogCoordf, void, (GLfloat fog), (fog)) \
|
||||
X(glFogCoordfv, void, (const GLfloat *fog), (fog)) \
|
||||
X(glFogf, void, (GLenum pname, GLfloat param), (pname,param)) \
|
||||
X(glFogfv, void, (GLenum pname, const GLfloat *params), (pname,params)) \
|
||||
X(glFogi, void, (GLenum pname, GLint param), (pname,param)) \
|
||||
X(glFogiv, void, (GLenum pname, const GLint *params), (pname,params)) \
|
||||
X(glFrontFace, void, (GLenum mode), (mode)) \
|
||||
X(glFrustum, void, (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar), (left,right,bottom,top,zNear,zFar)) \
|
||||
X(glGenLists, GLuint, (GLsizei range), (range)) \
|
||||
X(glGenTextures, void, (GLsizei n, GLuint *textures), (n,textures)) \
|
||||
X(glGetBooleanv, void, (GLenum pname, GLboolean *params), (pname,params)) \
|
||||
X(glGetClipPlane, void, (GLenum plane, GLdouble *equation), (plane,equation)) \
|
||||
X(glGetColorTable, void, (GLenum target, GLenum format, GLenum type, GLvoid *table), (target,format,type,table)) \
|
||||
X(glGetColorTableParameterfv, void, (GLenum target, GLenum pname, GLfloat *params), (target,pname,params)) \
|
||||
X(glGetColorTableParameteriv, void, (GLenum target, GLenum pname, GLint *params), (target,pname,params)) \
|
||||
X(glGetCompressedTexImage, void, (GLenum target, GLint lod, GLvoid *img), (target,lod,img)) \
|
||||
X(glGetConvolutionFilter, void, (GLenum target, GLenum format, GLenum type, GLvoid *image), (target,format,type,image)) \
|
||||
X(glGetConvolutionParameterfv, void, (GLenum target, GLenum pname, GLfloat *params), (target,pname,params)) \
|
||||
X(glGetConvolutionParameteriv, void, (GLenum target, GLenum pname, GLint *params), (target,pname,params)) \
|
||||
X(glGetDoublev, void, (GLenum pname, GLdouble *params), (pname,params)) \
|
||||
X(glGetError, GLenum, (void), ()) \
|
||||
X(glGetFloatv, void, (GLenum pname, GLfloat *params), (pname,params)) \
|
||||
X(glGetHistogram, void, (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values), (target,reset,format,type,values)) \
|
||||
X(glGetHistogramParameterfv, void, (GLenum target, GLenum pname, GLfloat *params), (target,pname,params)) \
|
||||
X(glGetHistogramParameteriv, void, (GLenum target, GLenum pname, GLint *params), (target,pname,params)) \
|
||||
X(glGetIntegerv, void, (GLenum pname, GLint *params), (pname,params)) \
|
||||
X(glGetLightfv, void, (GLenum light, GLenum pname, GLfloat *params), (light,pname,params)) \
|
||||
X(glGetLightiv, void, (GLenum light, GLenum pname, GLint *params), (light,pname,params)) \
|
||||
X(glGetMapdv, void, (GLenum target, GLenum query, GLdouble *v), (target,query,v)) \
|
||||
X(glGetMapfv, void, (GLenum target, GLenum query, GLfloat *v), (target,query,v)) \
|
||||
X(glGetMapiv, void, (GLenum target, GLenum query, GLint *v), (target,query,v)) \
|
||||
X(glGetMaterialfv, void, (GLenum face, GLenum pname, GLfloat *params), (face,pname,params)) \
|
||||
X(glGetMaterialiv, void, (GLenum face, GLenum pname, GLint *params), (face,pname,params)) \
|
||||
X(glGetMinmax, void, (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values), (target,reset,format,type,values)) \
|
||||
X(glGetMinmaxParameterfv, void, (GLenum target, GLenum pname, GLfloat *params), (target,pname,params)) \
|
||||
X(glGetMinmaxParameteriv, void, (GLenum target, GLenum pname, GLint *params), (target,pname,params)) \
|
||||
X(glGetPixelMapfv, void, (GLenum map, GLfloat *values), (map,values)) \
|
||||
X(glGetPixelMapuiv, void, (GLenum map, GLuint *values), (map,values)) \
|
||||
X(glGetPixelMapusv, void, (GLenum map, GLushort *values), (map,values)) \
|
||||
X(glGetPointerv, void, (GLenum pname, GLvoid* *params), (pname,params)) \
|
||||
X(glGetPolygonStipple, void, (GLubyte *mask), (mask)) \
|
||||
X(glGetSeparableFilter, void, (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span), (target,format,type,row,column,span)) \
|
||||
X(glGetString, const, (GLenum name), (name)) \
|
||||
X(glGetTexEnvfv, void, (GLenum target, GLenum pname, GLfloat *params), (target,pname,params)) \
|
||||
X(glGetTexEnviv, void, (GLenum target, GLenum pname, GLint *params), (target,pname,params)) \
|
||||
X(glGetTexGendv, void, (GLenum coord, GLenum pname, GLdouble *params), (coord,pname,params)) \
|
||||
X(glGetTexGenfv, void, (GLenum coord, GLenum pname, GLfloat *params), (coord,pname,params)) \
|
||||
X(glGetTexGeniv, void, (GLenum coord, GLenum pname, GLint *params), (coord,pname,params)) \
|
||||
X(glGetTexImage, void, (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels), (target,level,format,type,pixels)) \
|
||||
X(glGetTexLevelParameterfv, void, (GLenum target, GLint level, GLenum pname, GLfloat *params), (target,level,pname,params)) \
|
||||
X(glGetTexLevelParameteriv, void, (GLenum target, GLint level, GLenum pname, GLint *params), (target,level,pname,params)) \
|
||||
X(glGetTexParameterfv, void, (GLenum target, GLenum pname, GLfloat *params), (target,pname,params)) \
|
||||
X(glGetTexParameteriv, void, (GLenum target, GLenum pname, GLint *params), (target,pname,params)) \
|
||||
X(glHint, void, (GLenum target, GLenum mode), (target,mode)) \
|
||||
X(glHistogram, void, (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink), (target,width,internalformat,sink)) \
|
||||
X(glIndexMask, void, (GLuint mask), (mask)) \
|
||||
X(glIndexPointer, void, (GLenum type, GLsizei stride, const GLvoid *pointer), (type,stride,pointer)) \
|
||||
X(glIndexd, void, (GLdouble c), (c)) \
|
||||
X(glIndexdv, void, (const GLdouble *c), (c)) \
|
||||
X(glIndexf, void, (GLfloat c), (c)) \
|
||||
X(glIndexfv, void, (const GLfloat *c), (c)) \
|
||||
X(glIndexi, void, (GLint c), (c)) \
|
||||
X(glIndexiv, void, (const GLint *c), (c)) \
|
||||
X(glIndexs, void, (GLshort c), (c)) \
|
||||
X(glIndexsv, void, (const GLshort *c), (c)) \
|
||||
X(glIndexub, void, (GLubyte c), (c)) \
|
||||
X(glIndexubv, void, (const GLubyte *c), (c)) \
|
||||
X(glInitNames, void, (void), ()) \
|
||||
X(glInterleavedArrays, void, (GLenum format, GLsizei stride, const GLvoid *pointer), (format,stride,pointer)) \
|
||||
X(glIsEnabled, GLboolean, (GLenum cap), (cap)) \
|
||||
X(glIsList, GLboolean, (GLuint list), (list)) \
|
||||
X(glIsTexture, GLboolean, (GLuint texture), (texture)) \
|
||||
X(glLightModelf, void, (GLenum pname, GLfloat param), (pname,param)) \
|
||||
X(glLightModelfv, void, (GLenum pname, const GLfloat *params), (pname,params)) \
|
||||
X(glLightModeli, void, (GLenum pname, GLint param), (pname,param)) \
|
||||
X(glLightModeliv, void, (GLenum pname, const GLint *params), (pname,params)) \
|
||||
X(glLightf, void, (GLenum light, GLenum pname, GLfloat param), (light,pname,param)) \
|
||||
X(glLightfv, void, (GLenum light, GLenum pname, const GLfloat *params), (light,pname,params)) \
|
||||
X(glLighti, void, (GLenum light, GLenum pname, GLint param), (light,pname,param)) \
|
||||
X(glLightiv, void, (GLenum light, GLenum pname, const GLint *params), (light,pname,params)) \
|
||||
X(glLineStipple, void, (GLint factor, GLushort pattern), (factor,pattern)) \
|
||||
X(glLineWidth, void, (GLfloat width), (width)) \
|
||||
X(glListBase, void, (GLuint base), (base)) \
|
||||
X(glLoadIdentity, void, (void), ()) \
|
||||
X(glLoadMatrixd, void, (const GLdouble *m), (m)) \
|
||||
X(glLoadMatrixf, void, (const GLfloat *m), (m)) \
|
||||
X(glLoadName, void, (GLuint name), (name)) \
|
||||
X(glLoadTransposeMatrixd, void, (const GLdouble *m), (m)) \
|
||||
X(glLoadTransposeMatrixf, void, (const GLfloat *m), (m)) \
|
||||
X(glLogicOp, void, (GLenum opcode), (opcode)) \
|
||||
X(glMap1d, void, (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points), (target,u1,u2,stride,order,points)) \
|
||||
X(glMap1f, void, (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points), (target,u1,u2,stride,order,points)) \
|
||||
X(glMap2d, void, (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points), (target,u1,u2,ustride,uorder,v1,v2,vstride,vorder,points)) \
|
||||
X(glMap2f, void, (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points), (target,u1,u2,ustride,uorder,v1,v2,vstride,vorder,points)) \
|
||||
X(glMapGrid1d, void, (GLint un, GLdouble u1, GLdouble u2), (un,u1,u2)) \
|
||||
X(glMapGrid1f, void, (GLint un, GLfloat u1, GLfloat u2), (un,u1,u2)) \
|
||||
X(glMapGrid2d, void, (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2), (un,u1,u2,vn,v1,v2)) \
|
||||
X(glMapGrid2f, void, (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2), (un,u1,u2,vn,v1,v2)) \
|
||||
X(glMaterialf, void, (GLenum face, GLenum pname, GLfloat param), (face,pname,param)) \
|
||||
X(glMaterialfv, void, (GLenum face, GLenum pname, const GLfloat *params), (face,pname,params)) \
|
||||
X(glMateriali, void, (GLenum face, GLenum pname, GLint param), (face,pname,param)) \
|
||||
X(glMaterialiv, void, (GLenum face, GLenum pname, const GLint *params), (face,pname,params)) \
|
||||
X(glMatrixMode, void, (GLenum mode), (mode)) \
|
||||
X(glMinmax, void, (GLenum target, GLenum internalformat, GLboolean sink), (target,internalformat,sink)) \
|
||||
X(glMultMatrixd, void, (const GLdouble *m), (m)) \
|
||||
X(glMultMatrixf, void, (const GLfloat *m), (m)) \
|
||||
X(glMultTransposeMatrixd, void, (const GLdouble *m), (m)) \
|
||||
X(glMultTransposeMatrixf, void, (const GLfloat *m), (m)) \
|
||||
X(glMultiDrawArrays, void, (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount), (mode,first,count,primcount)) \
|
||||
X(glMultiDrawElements, void, (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount), (mode,count,type,indices,primcount)) \
|
||||
X(glMultiTexCoord1d, void, (GLenum target, GLdouble s), (target,s)) \
|
||||
X(glMultiTexCoord1dv, void, (GLenum target, const GLdouble *v), (target,v)) \
|
||||
X(glMultiTexCoord1f, void, (GLenum target, GLfloat s), (target,s)) \
|
||||
X(glMultiTexCoord1fv, void, (GLenum target, const GLfloat *v), (target,v)) \
|
||||
X(glMultiTexCoord1i, void, (GLenum target, GLint s), (target,s)) \
|
||||
X(glMultiTexCoord1iv, void, (GLenum target, const GLint *v), (target,v)) \
|
||||
X(glMultiTexCoord1s, void, (GLenum target, GLshort s), (target,s)) \
|
||||
X(glMultiTexCoord1sv, void, (GLenum target, const GLshort *v), (target,v)) \
|
||||
X(glMultiTexCoord2d, void, (GLenum target, GLdouble s, GLdouble t), (target,s,t)) \
|
||||
X(glMultiTexCoord2dv, void, (GLenum target, const GLdouble *v), (target,v)) \
|
||||
X(glMultiTexCoord2f, void, (GLenum target, GLfloat s, GLfloat t), (target,s,t)) \
|
||||
X(glMultiTexCoord2fv, void, (GLenum target, const GLfloat *v), (target,v)) \
|
||||
X(glMultiTexCoord2i, void, (GLenum target, GLint s, GLint t), (target,s,t)) \
|
||||
X(glMultiTexCoord2iv, void, (GLenum target, const GLint *v), (target,v)) \
|
||||
X(glMultiTexCoord2s, void, (GLenum target, GLshort s, GLshort t), (target,s,t)) \
|
||||
X(glMultiTexCoord2sv, void, (GLenum target, const GLshort *v), (target,v)) \
|
||||
X(glMultiTexCoord3d, void, (GLenum target, GLdouble s, GLdouble t, GLdouble r), (target,s,t,r)) \
|
||||
X(glMultiTexCoord3dv, void, (GLenum target, const GLdouble *v), (target,v)) \
|
||||
X(glMultiTexCoord3f, void, (GLenum target, GLfloat s, GLfloat t, GLfloat r), (target,s,t,r)) \
|
||||
X(glMultiTexCoord3fv, void, (GLenum target, const GLfloat *v), (target,v)) \
|
||||
X(glMultiTexCoord3i, void, (GLenum target, GLint s, GLint t, GLint r), (target,s,t,r)) \
|
||||
X(glMultiTexCoord3iv, void, (GLenum target, const GLint *v), (target,v)) \
|
||||
X(glMultiTexCoord3s, void, (GLenum target, GLshort s, GLshort t, GLshort r), (target,s,t,r)) \
|
||||
X(glMultiTexCoord3sv, void, (GLenum target, const GLshort *v), (target,v)) \
|
||||
X(glMultiTexCoord4d, void, (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q), (target,s,t,r,q)) \
|
||||
X(glMultiTexCoord4dv, void, (GLenum target, const GLdouble *v), (target,v)) \
|
||||
X(glMultiTexCoord4f, void, (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q), (target,s,t,r,q)) \
|
||||
X(glMultiTexCoord4fv, void, (GLenum target, const GLfloat *v), (target,v)) \
|
||||
X(glMultiTexCoord4i, void, (GLenum target, GLint s, GLint t, GLint r, GLint q), (target,s,t,r,q)) \
|
||||
X(glMultiTexCoord4iv, void, (GLenum target, const GLint *v), (target,v)) \
|
||||
X(glMultiTexCoord4s, void, (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q), (target,s,t,r,q)) \
|
||||
X(glMultiTexCoord4sv, void, (GLenum target, const GLshort *v), (target,v)) \
|
||||
X(glNewList, void, (GLuint list, GLenum mode), (list,mode)) \
|
||||
X(glNormal3b, void, (GLbyte nx, GLbyte ny, GLbyte nz), (nx,ny,nz)) \
|
||||
X(glNormal3bv, void, (const GLbyte *v), (v)) \
|
||||
X(glNormal3d, void, (GLdouble nx, GLdouble ny, GLdouble nz), (nx,ny,nz)) \
|
||||
X(glNormal3dv, void, (const GLdouble *v), (v)) \
|
||||
X(glNormal3f, void, (GLfloat nx, GLfloat ny, GLfloat nz), (nx,ny,nz)) \
|
||||
X(glNormal3fv, void, (const GLfloat *v), (v)) \
|
||||
X(glNormal3i, void, (GLint nx, GLint ny, GLint nz), (nx,ny,nz)) \
|
||||
X(glNormal3iv, void, (const GLint *v), (v)) \
|
||||
X(glNormal3s, void, (GLshort nx, GLshort ny, GLshort nz), (nx,ny,nz)) \
|
||||
X(glNormal3sv, void, (const GLshort *v), (v)) \
|
||||
X(glNormalPointer, void, (GLenum type, GLsizei stride, const GLvoid *pointer), (type,stride,pointer)) \
|
||||
X(glOrtho, void, (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar), (left,right,bottom,top,zNear,zFar)) \
|
||||
X(glPassThrough, void, (GLfloat token), (token)) \
|
||||
X(glPixelMapfv, void, (GLenum map, GLint mapsize, const GLfloat *values), (map,mapsize,values)) \
|
||||
X(glPixelMapuiv, void, (GLenum map, GLint mapsize, const GLuint *values), (map,mapsize,values)) \
|
||||
X(glPixelMapusv, void, (GLenum map, GLint mapsize, const GLushort *values), (map,mapsize,values)) \
|
||||
X(glPixelStoref, void, (GLenum pname, GLfloat param), (pname,param)) \
|
||||
X(glPixelStorei, void, (GLenum pname, GLint param), (pname,param)) \
|
||||
X(glPixelTransferf, void, (GLenum pname, GLfloat param), (pname,param)) \
|
||||
X(glPixelTransferi, void, (GLenum pname, GLint param), (pname,param)) \
|
||||
X(glPixelZoom, void, (GLfloat xfactor, GLfloat yfactor), (xfactor,yfactor)) \
|
||||
X(glPointParameterf, void, (GLenum pname, GLfloat param), (pname,param)) \
|
||||
X(glPointParameterfv, void, (GLenum pname, const GLfloat *params), (pname,params)) \
|
||||
X(glPointParameteri, void, (GLenum pname, GLint param), (pname,param)) \
|
||||
X(glPointParameteriv, void, (GLenum pname, const GLint *params), (pname,params)) \
|
||||
X(glPointSize, void, (GLfloat size), (size)) \
|
||||
X(glPolygonMode, void, (GLenum face, GLenum mode), (face,mode)) \
|
||||
X(glPolygonOffset, void, (GLfloat factor, GLfloat units), (factor,units)) \
|
||||
X(glPolygonStipple, void, (const GLubyte *mask), (mask)) \
|
||||
X(glPopAttrib, void, (void), ()) \
|
||||
X(glPopClientAttrib, void, (void), ()) \
|
||||
X(glPopMatrix, void, (void), ()) \
|
||||
X(glPopName, void, (void), ()) \
|
||||
X(glPrioritizeTextures, void, (GLsizei n, const GLuint *textures, const GLclampf *priorities), (n,textures,priorities)) \
|
||||
X(glPushAttrib, void, (GLbitfield mask), (mask)) \
|
||||
X(glPushClientAttrib, void, (GLbitfield mask), (mask)) \
|
||||
X(glPushMatrix, void, (void), ()) \
|
||||
X(glPushName, void, (GLuint name), (name)) \
|
||||
X(glRasterPos2d, void, (GLdouble x, GLdouble y), (x,y)) \
|
||||
X(glRasterPos2dv, void, (const GLdouble *v), (v)) \
|
||||
X(glRasterPos2f, void, (GLfloat x, GLfloat y), (x,y)) \
|
||||
X(glRasterPos2fv, void, (const GLfloat *v), (v)) \
|
||||
X(glRasterPos2i, void, (GLint x, GLint y), (x,y)) \
|
||||
X(glRasterPos2iv, void, (const GLint *v), (v)) \
|
||||
X(glRasterPos2s, void, (GLshort x, GLshort y), (x,y)) \
|
||||
X(glRasterPos2sv, void, (const GLshort *v), (v)) \
|
||||
X(glRasterPos3d, void, (GLdouble x, GLdouble y, GLdouble z), (x,y,z)) \
|
||||
X(glRasterPos3dv, void, (const GLdouble *v), (v)) \
|
||||
X(glRasterPos3f, void, (GLfloat x, GLfloat y, GLfloat z), (x,y,z)) \
|
||||
X(glRasterPos3fv, void, (const GLfloat *v), (v)) \
|
||||
X(glRasterPos3i, void, (GLint x, GLint y, GLint z), (x,y,z)) \
|
||||
X(glRasterPos3iv, void, (const GLint *v), (v)) \
|
||||
X(glRasterPos3s, void, (GLshort x, GLshort y, GLshort z), (x,y,z)) \
|
||||
X(glRasterPos3sv, void, (const GLshort *v), (v)) \
|
||||
X(glRasterPos4d, void, (GLdouble x, GLdouble y, GLdouble z, GLdouble w), (x,y,z,w)) \
|
||||
X(glRasterPos4dv, void, (const GLdouble *v), (v)) \
|
||||
X(glRasterPos4f, void, (GLfloat x, GLfloat y, GLfloat z, GLfloat w), (x,y,z,w)) \
|
||||
X(glRasterPos4fv, void, (const GLfloat *v), (v)) \
|
||||
X(glRasterPos4i, void, (GLint x, GLint y, GLint z, GLint w), (x,y,z,w)) \
|
||||
X(glRasterPos4iv, void, (const GLint *v), (v)) \
|
||||
X(glRasterPos4s, void, (GLshort x, GLshort y, GLshort z, GLshort w), (x,y,z,w)) \
|
||||
X(glRasterPos4sv, void, (const GLshort *v), (v)) \
|
||||
X(glReadBuffer, void, (GLenum mode), (mode)) \
|
||||
X(glReadPixels, void, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels), (x,y,width,height,format,type,pixels)) \
|
||||
X(glRectd, void, (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2), (x1,y1,x2,y2)) \
|
||||
X(glRectdv, void, (const GLdouble *v1, const GLdouble *v2), (v1,v2)) \
|
||||
X(glRectf, void, (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2), (x1,y1,x2,y2)) \
|
||||
X(glRectfv, void, (const GLfloat *v1, const GLfloat *v2), (v1,v2)) \
|
||||
X(glRecti, void, (GLint x1, GLint y1, GLint x2, GLint y2), (x1,y1,x2,y2)) \
|
||||
X(glRectiv, void, (const GLint *v1, const GLint *v2), (v1,v2)) \
|
||||
X(glRects, void, (GLshort x1, GLshort y1, GLshort x2, GLshort y2), (x1,y1,x2,y2)) \
|
||||
X(glRectsv, void, (const GLshort *v1, const GLshort *v2), (v1,v2)) \
|
||||
X(glReleaseFlushHold, GLenum, (GLuint id), (id)) \
|
||||
X(glRenderMode, GLint, (GLenum mode), (mode)) \
|
||||
X(glResetHistogram, void, (GLenum target), (target)) \
|
||||
X(glResetMinmax, void, (GLenum target), (target)) \
|
||||
X(glRotated, void, (GLdouble angle, GLdouble x, GLdouble y, GLdouble z), (angle,x,y,z)) \
|
||||
X(glRotatef, void, (GLfloat angle, GLfloat x, GLfloat y, GLfloat z), (angle,x,y,z)) \
|
||||
X(glSampleCoverage, void, (GLclampf value, GLboolean invert), (value,invert)) \
|
||||
X(glScaled, void, (GLdouble x, GLdouble y, GLdouble z), (x,y,z)) \
|
||||
X(glScalef, void, (GLfloat x, GLfloat y, GLfloat z), (x,y,z)) \
|
||||
X(glScissor, void, (GLint x, GLint y, GLsizei width, GLsizei height), (x,y,width,height)) \
|
||||
X(glSecondaryColor3b, void, (GLbyte red, GLbyte green, GLbyte blue), (red,green,blue)) \
|
||||
X(glSecondaryColor3bv, void, (const GLbyte *v), (v)) \
|
||||
X(glSecondaryColor3d, void, (GLdouble red, GLdouble green, GLdouble blue), (red,green,blue)) \
|
||||
X(glSecondaryColor3dv, void, (const GLdouble *v), (v)) \
|
||||
X(glSecondaryColor3f, void, (GLfloat red, GLfloat green, GLfloat blue), (red,green,blue)) \
|
||||
X(glSecondaryColor3fv, void, (const GLfloat *v), (v)) \
|
||||
X(glSecondaryColor3i, void, (GLint red, GLint green, GLint blue), (red,green,blue)) \
|
||||
X(glSecondaryColor3iv, void, (const GLint *v), (v)) \
|
||||
X(glSecondaryColor3s, void, (GLshort red, GLshort green, GLshort blue), (red,green,blue)) \
|
||||
X(glSecondaryColor3sv, void, (const GLshort *v), (v)) \
|
||||
X(glSecondaryColor3ub, void, (GLubyte red, GLubyte green, GLubyte blue), (red,green,blue)) \
|
||||
X(glSecondaryColor3ubv, void, (const GLubyte *v), (v)) \
|
||||
X(glSecondaryColor3ui, void, (GLuint red, GLuint green, GLuint blue), (red,green,blue)) \
|
||||
X(glSecondaryColor3uiv, void, (const GLuint *v), (v)) \
|
||||
X(glSecondaryColor3us, void, (GLushort red, GLushort green, GLushort blue), (red,green,blue)) \
|
||||
X(glSecondaryColor3usv, void, (const GLushort *v), (v)) \
|
||||
X(glSecondaryColorPointer, void, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer), (size,type,stride,pointer)) \
|
||||
X(glSelectBuffer, void, (GLsizei size, GLuint *buffer), (size,buffer)) \
|
||||
X(glSeparableFilter2D, void, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column), (target,internalformat,width,height,format,type,row,column)) \
|
||||
X(glShadeModel, void, (GLenum mode), (mode)) \
|
||||
X(glStencilFunc, void, (GLenum func, GLint ref, GLuint mask), (func,ref,mask)) \
|
||||
X(glStencilMask, void, (GLuint mask), (mask)) \
|
||||
X(glStencilOp, void, (GLenum fail, GLenum zfail, GLenum zpass), (fail,zfail,zpass)) \
|
||||
X(glTexCoord1d, void, (GLdouble s), (s)) \
|
||||
X(glTexCoord1dv, void, (const GLdouble *v), (v)) \
|
||||
X(glTexCoord1f, void, (GLfloat s), (s)) \
|
||||
X(glTexCoord1fv, void, (const GLfloat *v), (v)) \
|
||||
X(glTexCoord1i, void, (GLint s), (s)) \
|
||||
X(glTexCoord1iv, void, (const GLint *v), (v)) \
|
||||
X(glTexCoord1s, void, (GLshort s), (s)) \
|
||||
X(glTexCoord1sv, void, (const GLshort *v), (v)) \
|
||||
X(glTexCoord2d, void, (GLdouble s, GLdouble t), (s,t)) \
|
||||
X(glTexCoord2dv, void, (const GLdouble *v), (v)) \
|
||||
X(glTexCoord2f, void, (GLfloat s, GLfloat t), (s,t)) \
|
||||
X(glTexCoord2fv, void, (const GLfloat *v), (v)) \
|
||||
X(glTexCoord2i, void, (GLint s, GLint t), (s,t)) \
|
||||
X(glTexCoord2iv, void, (const GLint *v), (v)) \
|
||||
X(glTexCoord2s, void, (GLshort s, GLshort t), (s,t)) \
|
||||
X(glTexCoord2sv, void, (const GLshort *v), (v)) \
|
||||
X(glTexCoord3d, void, (GLdouble s, GLdouble t, GLdouble r), (s,t,r)) \
|
||||
X(glTexCoord3dv, void, (const GLdouble *v), (v)) \
|
||||
X(glTexCoord3f, void, (GLfloat s, GLfloat t, GLfloat r), (s,t,r)) \
|
||||
X(glTexCoord3fv, void, (const GLfloat *v), (v)) \
|
||||
X(glTexCoord3i, void, (GLint s, GLint t, GLint r), (s,t,r)) \
|
||||
X(glTexCoord3iv, void, (const GLint *v), (v)) \
|
||||
X(glTexCoord3s, void, (GLshort s, GLshort t, GLshort r), (s,t,r)) \
|
||||
X(glTexCoord3sv, void, (const GLshort *v), (v)) \
|
||||
X(glTexCoord4d, void, (GLdouble s, GLdouble t, GLdouble r, GLdouble q), (s,t,r,q)) \
|
||||
X(glTexCoord4dv, void, (const GLdouble *v), (v)) \
|
||||
X(glTexCoord4f, void, (GLfloat s, GLfloat t, GLfloat r, GLfloat q), (s,t,r,q)) \
|
||||
X(glTexCoord4fv, void, (const GLfloat *v), (v)) \
|
||||
X(glTexCoord4i, void, (GLint s, GLint t, GLint r, GLint q), (s,t,r,q)) \
|
||||
X(glTexCoord4iv, void, (const GLint *v), (v)) \
|
||||
X(glTexCoord4s, void, (GLshort s, GLshort t, GLshort r, GLshort q), (s,t,r,q)) \
|
||||
X(glTexCoord4sv, void, (const GLshort *v), (v)) \
|
||||
X(glTexCoordPointer, void, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer), (size,type,stride,pointer)) \
|
||||
X(glTexEnvf, void, (GLenum target, GLenum pname, GLfloat param), (target,pname,param)) \
|
||||
X(glTexEnvfv, void, (GLenum target, GLenum pname, const GLfloat *params), (target,pname,params)) \
|
||||
X(glTexEnvi, void, (GLenum target, GLenum pname, GLint param), (target,pname,param)) \
|
||||
X(glTexEnviv, void, (GLenum target, GLenum pname, const GLint *params), (target,pname,params)) \
|
||||
X(glTexGend, void, (GLenum coord, GLenum pname, GLdouble param), (coord,pname,param)) \
|
||||
X(glTexGendv, void, (GLenum coord, GLenum pname, const GLdouble *params), (coord,pname,params)) \
|
||||
X(glTexGenf, void, (GLenum coord, GLenum pname, GLfloat param), (coord,pname,param)) \
|
||||
X(glTexGenfv, void, (GLenum coord, GLenum pname, const GLfloat *params), (coord,pname,params)) \
|
||||
X(glTexGeni, void, (GLenum coord, GLenum pname, GLint param), (coord,pname,param)) \
|
||||
X(glTexGeniv, void, (GLenum coord, GLenum pname, const GLint *params), (coord,pname,params)) \
|
||||
X(glTexImage1D, void, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels), (target,level,internalformat,width,border,format,type,pixels)) \
|
||||
X(glTexImage2D, void, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels), (target,level,internalformat,width,height,border,format,type,pixels)) \
|
||||
X(glTexImage3D, void, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels), (target,level,internalformat,width,height,depth,border,format,type,pixels)) \
|
||||
X(glTexParameterf, void, (GLenum target, GLenum pname, GLfloat param), (target,pname,param)) \
|
||||
X(glTexParameterfv, void, (GLenum target, GLenum pname, const GLfloat *params), (target,pname,params)) \
|
||||
X(glTexParameteri, void, (GLenum target, GLenum pname, GLint param), (target,pname,param)) \
|
||||
X(glTexParameteriv, void, (GLenum target, GLenum pname, const GLint *params), (target,pname,params)) \
|
||||
X(glTexSubImage1D, void, (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels), (target,level,xoffset,width,format,type,pixels)) \
|
||||
X(glTexSubImage2D, void, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels), (target,level,xoffset,yoffset,width,height,format,type,pixels)) \
|
||||
X(glTexSubImage3D, void, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels), (target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)) \
|
||||
X(glTranslated, void, (GLdouble x, GLdouble y, GLdouble z), (x,y,z)) \
|
||||
X(glTranslatef, void, (GLfloat x, GLfloat y, GLfloat z), (x,y,z)) \
|
||||
X(glValidBackBufferHintAutodesk, GLboolean, (GLint x, GLint y, GLsizei width, GLsizei height), (x,y,width,height)) \
|
||||
X(glVertex2d, void, (GLdouble x, GLdouble y), (x,y)) \
|
||||
X(glVertex2dv, void, (const GLdouble *v), (v)) \
|
||||
X(glVertex2f, void, (GLfloat x, GLfloat y), (x,y)) \
|
||||
X(glVertex2fv, void, (const GLfloat *v), (v)) \
|
||||
X(glVertex2i, void, (GLint x, GLint y), (x,y)) \
|
||||
X(glVertex2iv, void, (const GLint *v), (v)) \
|
||||
X(glVertex2s, void, (GLshort x, GLshort y), (x,y)) \
|
||||
X(glVertex2sv, void, (const GLshort *v), (v)) \
|
||||
X(glVertex3d, void, (GLdouble x, GLdouble y, GLdouble z), (x,y,z)) \
|
||||
X(glVertex3dv, void, (const GLdouble *v), (v)) \
|
||||
X(glVertex3f, void, (GLfloat x, GLfloat y, GLfloat z), (x,y,z)) \
|
||||
X(glVertex3fv, void, (const GLfloat *v), (v)) \
|
||||
X(glVertex3i, void, (GLint x, GLint y, GLint z), (x,y,z)) \
|
||||
X(glVertex3iv, void, (const GLint *v), (v)) \
|
||||
X(glVertex3s, void, (GLshort x, GLshort y, GLshort z), (x,y,z)) \
|
||||
X(glVertex3sv, void, (const GLshort *v), (v)) \
|
||||
X(glVertex4d, void, (GLdouble x, GLdouble y, GLdouble z, GLdouble w), (x,y,z,w)) \
|
||||
X(glVertex4dv, void, (const GLdouble *v), (v)) \
|
||||
X(glVertex4f, void, (GLfloat x, GLfloat y, GLfloat z, GLfloat w), (x,y,z,w)) \
|
||||
X(glVertex4fv, void, (const GLfloat *v), (v)) \
|
||||
X(glVertex4i, void, (GLint x, GLint y, GLint z, GLint w), (x,y,z,w)) \
|
||||
X(glVertex4iv, void, (const GLint *v), (v)) \
|
||||
X(glVertex4s, void, (GLshort x, GLshort y, GLshort z, GLshort w), (x,y,z,w)) \
|
||||
X(glVertex4sv, void, (const GLshort *v), (v)) \
|
||||
X(glVertexPointer, void, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer), (size,type,stride,pointer)) \
|
||||
X(glViewport, void, (GLint x, GLint y, GLsizei width, GLsizei height), (x,y,width,height)) \
|
||||
X(glWindowBackBufferHintAutodesk, void, (void), ()) \
|
||||
X(glWindowPos2d, void, (GLdouble x, GLdouble y), (x,y)) \
|
||||
X(glWindowPos2dv, void, (const GLdouble *p), (p)) \
|
||||
X(glWindowPos2f, void, (GLfloat x, GLfloat y), (x,y)) \
|
||||
X(glWindowPos2fv, void, (const GLfloat *p), (p)) \
|
||||
X(glWindowPos2i, void, (GLint x, GLint y), (x,y)) \
|
||||
X(glWindowPos2iv, void, (const GLint *p), (p)) \
|
||||
X(glWindowPos2s, void, (GLshort x, GLshort y), (x,y)) \
|
||||
X(glWindowPos2sv, void, (const GLshort *p), (p)) \
|
||||
X(glWindowPos3d, void, (GLdouble x, GLdouble y, GLdouble z), (x,y,z)) \
|
||||
X(glWindowPos3dv, void, (const GLdouble *p), (p)) \
|
||||
X(glWindowPos3f, void, (GLfloat x, GLfloat y, GLfloat z), (x,y,z)) \
|
||||
X(glWindowPos3fv, void, (const GLfloat *p), (p)) \
|
||||
X(glWindowPos3i, void, (GLint x, GLint y, GLint z), (x,y,z)) \
|
||||
X(glWindowPos3iv, void, (const GLint *p), (p)) \
|
||||
X(glWindowPos3s, void, (GLshort x, GLshort y, GLshort z), (x,y,z)) \
|
||||
X(glWindowPos3sv, void, (const GLshort *p), (p))
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: opengl32.c,v 1.8 2004/02/03 14:23:42 royce Exp $
|
||||
/* $Id: opengl32.c,v 1.9 2004/02/05 04:28:11 royce Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -21,14 +21,14 @@
|
|||
/*static BOOL OPENGL32_LoadDrivers();*/
|
||||
static void OPENGL32_AppendICD( GLDRIVERDATA *icd );
|
||||
static void OPENGL32_RemoveICD( GLDRIVERDATA *icd );
|
||||
static GLDRIVERDATA *OPENGL32_LoadDriver ( LPCWSTR regKey );
|
||||
static GLDRIVERDATA *OPENGL32_LoadDriver( LPCWSTR regKey );
|
||||
static DWORD OPENGL32_InitializeDriver( GLDRIVERDATA *icd );
|
||||
static BOOL OPENGL32_UnloadDriver( GLDRIVERDATA *icd );
|
||||
|
||||
/* global vars */
|
||||
const char* OPENGL32_funcnames[GLIDX_COUNT] SHARED =
|
||||
{
|
||||
#define X(func, ret, args) #func,
|
||||
#define X(func, ret, typeargs, args) #func,
|
||||
GLFUNCS_MACRO
|
||||
#undef X
|
||||
};
|
||||
|
@ -54,8 +54,11 @@ static void OPENGL32_ThreadDetach()
|
|||
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD Reason, LPVOID Reserved)
|
||||
{
|
||||
GLTHREADDATA* lpData = NULL;
|
||||
DBGPRINT( "Info: Called!" );
|
||||
SECURITY_ATTRIBUTES attrib = { .nLength = sizeof (SECURITY_ATTRIBUTES),
|
||||
.lpSecurityDescriptor = NULL,
|
||||
.bInheritHandle = TRUE };
|
||||
|
||||
DBGPRINT( "Info: Called!" );
|
||||
switch ( Reason )
|
||||
{
|
||||
/* The DLL is loading due to process
|
||||
|
@ -68,8 +71,23 @@ BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD Reason, LPVOID Reserved)
|
|||
|
||||
memset( &OPENGL32_processdata, 0, sizeof (OPENGL32_processdata) );
|
||||
|
||||
/* get list of ICDs from registry: -- not needed (blight)*/
|
||||
/*OPENGL32_LoadDrivers();*/
|
||||
/* create driver & glrc list mutex */
|
||||
OPENGL32_processdata.driver_mutex = CreateMutex( &attrib, FALSE, NULL );
|
||||
if (OPENGL32_processdata.driver_mutex == NULL)
|
||||
{
|
||||
DBGPRINT( "Error: Couldn't create driver_list mutex (%d)",
|
||||
GetLastError() );
|
||||
TlsFree( OPENGL32_tls );
|
||||
}
|
||||
OPENGL32_processdata.glrc_mutex = CreateMutex( &attrib, FALSE, NULL );
|
||||
if (OPENGL32_processdata.glrc_mutex == NULL)
|
||||
{
|
||||
DBGPRINT( "Error: Couldn't create glrc_list mutex (%d)",
|
||||
GetLastError() );
|
||||
CloseHandle( OPENGL32_processdata.driver_mutex );
|
||||
TlsFree( OPENGL32_tls );
|
||||
}
|
||||
|
||||
/* No break: Initialize the index for first thread. */
|
||||
|
||||
/* The attached process creates a new thread. */
|
||||
|
@ -95,7 +113,10 @@ BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD Reason, LPVOID Reserved)
|
|||
/* DLL unload due to process termination or FreeLibrary. */
|
||||
case DLL_PROCESS_DETACH:
|
||||
OPENGL32_ThreadDetach();
|
||||
/* FIXME: free resources */
|
||||
|
||||
/* FIXME: free resources (driver list, glrc list) */
|
||||
CloseHandle( OPENGL32_processdata.driver_mutex );
|
||||
CloseHandle( OPENGL32_processdata.glrc_mutex );
|
||||
TlsFree(OPENGL32_tls);
|
||||
break;
|
||||
}
|
||||
|
@ -105,10 +126,17 @@ BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD Reason, LPVOID Reserved)
|
|||
|
||||
/* FUNCTION: Append ICD to linked list.
|
||||
* ARGUMENTS: [IN] icd: GLDRIVERDATA to append to list
|
||||
* TODO: protect from race conditions
|
||||
*/
|
||||
static void OPENGL32_AppendICD( GLDRIVERDATA *icd )
|
||||
{
|
||||
/* synchronize */
|
||||
if (WaitForSingleObject( OPENGL32_processdata.driver_mutex, INFINITE ) ==
|
||||
WAIT_FAILED)
|
||||
{
|
||||
DBGPRINT( "Error: WaitForSingleObject() failed (%d)", GetLastError() );
|
||||
return; /* FIXME: do we have to expect such an error and handle it? */
|
||||
}
|
||||
|
||||
if (OPENGL32_processdata.driver_list == NULL)
|
||||
OPENGL32_processdata.driver_list = icd;
|
||||
else
|
||||
|
@ -118,15 +146,26 @@ static void OPENGL32_AppendICD( GLDRIVERDATA *icd )
|
|||
p = p->next;
|
||||
p->next = icd;
|
||||
}
|
||||
|
||||
/* release mutex */
|
||||
if (!ReleaseMutex( OPENGL32_processdata.driver_mutex ))
|
||||
DBGPRINT( "Error: ReleaseMutex() failed (%d)", GetLastError() );
|
||||
}
|
||||
|
||||
|
||||
/* FUNCTION: Remove ICD from linked list.
|
||||
* ARGUMENTS: [IN] icd: GLDRIVERDATA to remove from list
|
||||
* TODO: protect from race conditions
|
||||
*/
|
||||
static void OPENGL32_RemoveICD( GLDRIVERDATA *icd )
|
||||
{
|
||||
/* synchronize */
|
||||
if (WaitForSingleObject( OPENGL32_processdata.driver_mutex, INFINITE ) ==
|
||||
WAIT_FAILED)
|
||||
{
|
||||
DBGPRINT( "Error: WaitForSingleObject() failed (%d)", GetLastError() );
|
||||
return; /* FIXME: do we have to expect such an error and handle it? */
|
||||
}
|
||||
|
||||
if (icd == OPENGL32_processdata.driver_list)
|
||||
OPENGL32_processdata.driver_list = icd->next;
|
||||
else
|
||||
|
@ -143,35 +182,12 @@ static void OPENGL32_RemoveICD( GLDRIVERDATA *icd )
|
|||
}
|
||||
DBGPRINT( "Error: ICD 0x%08x not found in list!", icd );
|
||||
}
|
||||
|
||||
/* release mutex */
|
||||
if (!ReleaseMutex( OPENGL32_processdata.driver_mutex ))
|
||||
DBGPRINT( "Error: ReleaseMutex() failed (%d)", GetLastError() );
|
||||
}
|
||||
|
||||
/* FIXME - I'm assuming we want to return TRUE if we find at least *one* ICD */
|
||||
/* not needed at the moment -- blight */
|
||||
#if 0
|
||||
static BOOL OPENGL32_LoadDrivers()
|
||||
{
|
||||
const WCHAR* OpenGLDrivers = L"SOFTWARE\\Microsoft\\Windows NT\\"
|
||||
"CurrentVersion\\OpenGLDrivers\\";
|
||||
HKEY hkey;
|
||||
WCHAR name[1024];
|
||||
|
||||
/* FIXME - detect if we've already done this from another process */
|
||||
/* FIXME - special-case load of MESA3D as generic implementation ICD. */
|
||||
|
||||
if ( ERROR_SUCCESS != RegOpenKey ( HKEY_LOCAL_MACHINE, OpenGLDrivers, &hkey ) )
|
||||
return FALSE;
|
||||
for ( int i = 0; RegEnumKeyW(hkey,i,name,sizeof(name)/sizeof(name[0])) == ERROR_SUCCESS; i++ )
|
||||
{
|
||||
/* ignoring return value, because OPENGL32_LoadICD() is doing *all* the work... */
|
||||
/*GLDRIVERDATA* gldd =*/ OPENGL32_LoadICD ( name );
|
||||
}
|
||||
RegCloseKey ( hkey );
|
||||
if ( i > 0 )
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
#endif /* 0 */
|
||||
|
||||
/* FUNCTION: Load an ICD.
|
||||
* ARGUMENTS: [IN] driver: Name of display driver.
|
||||
|
@ -179,95 +195,46 @@ static BOOL OPENGL32_LoadDrivers()
|
|||
*
|
||||
* TODO: call SetLastError() where appropriate
|
||||
*/
|
||||
static GLDRIVERDATA *OPENGL32_LoadDriver ( LPCWSTR driver )
|
||||
static GLDRIVERDATA *OPENGL32_LoadDriver( LPCWSTR driver )
|
||||
{
|
||||
HKEY hKey;
|
||||
WCHAR subKey[1024] = L"SOFTWARE\\Microsoft\\Windows NT\\"
|
||||
"CurrentVersion\\OpenGLDrivers\\";
|
||||
LONG ret;
|
||||
DWORD type, size;
|
||||
|
||||
DWORD version, driverVersion, flags; /* registry values */
|
||||
WCHAR dll[256];
|
||||
GLDRIVERDATA *icd;
|
||||
|
||||
DBGPRINT( "Info: Loading driver %ws...", driver );
|
||||
|
||||
/* open registry key */
|
||||
wcsncat( subKey, driver, 1024 );
|
||||
ret = RegOpenKeyExW( HKEY_LOCAL_MACHINE, subKey, 0, KEY_READ, &hKey );
|
||||
if (ret != ERROR_SUCCESS)
|
||||
{
|
||||
DBGPRINT( "Error: Couldn't open registry key '%ws'", subKey );
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* query values */
|
||||
size = sizeof (dll) * sizeof (dll[0]);
|
||||
ret = RegQueryValueExW( hKey, L"Dll", 0, &type, (LPBYTE)dll, &size );
|
||||
if (ret != ERROR_SUCCESS || type != REG_SZ)
|
||||
{
|
||||
DBGPRINT( "Error: Couldn't query Dll value or not a string" );
|
||||
RegCloseKey( hKey );
|
||||
return NULL;
|
||||
}
|
||||
|
||||
size = sizeof (DWORD);
|
||||
ret = RegQueryValueExW( hKey, L"Version", 0, &type, (LPBYTE)&version, &size );
|
||||
if (ret != ERROR_SUCCESS || type != REG_DWORD)
|
||||
{
|
||||
DBGPRINT( "Warning: Couldn't query Version value or not a DWORD" );
|
||||
version = 0;
|
||||
}
|
||||
|
||||
size = sizeof (DWORD);
|
||||
ret = RegQueryValueExW( hKey, L"DriverVersion", 0, &type,
|
||||
(LPBYTE)&driverVersion, &size );
|
||||
if (ret != ERROR_SUCCESS || type != REG_DWORD)
|
||||
{
|
||||
DBGPRINT( "Warning: Couldn't query DriverVersion value or not a DWORD" );
|
||||
driverVersion = 0;
|
||||
}
|
||||
|
||||
size = sizeof (DWORD);
|
||||
ret = RegQueryValueExW( hKey, L"Flags", 0, &type, (LPBYTE)&flags, &size );
|
||||
if (ret != ERROR_SUCCESS || type != REG_DWORD)
|
||||
{
|
||||
DBGPRINT( "Warning: Couldn't query Flags value or not a DWORD" );
|
||||
flags = 0;
|
||||
}
|
||||
|
||||
/* close key */
|
||||
RegCloseKey( hKey );
|
||||
|
||||
DBGPRINT( "Info: Dll = %ws", dll );
|
||||
DBGPRINT( "Info: Version = 0x%08x", version );
|
||||
DBGPRINT( "Info: DriverVersion = 0x%08x", driverVersion );
|
||||
DBGPRINT( "Info: Flags = 0x%08x", flags );
|
||||
|
||||
/* allocate driver data */
|
||||
icd = (GLDRIVERDATA*)HeapAlloc( GetProcessHeap(),
|
||||
HEAP_GENERATE_EXCEPTIONS | HEAP_ZERO_MEMORY,
|
||||
sizeof (GLDRIVERDATA) );
|
||||
if (icd == NULL)
|
||||
{
|
||||
DBGPRINT( "Error: Couldnt allocate GLDRIVERDATA!" );
|
||||
DBGPRINT( "Error: Couldn't allocate GLDRIVERDATA! (%d)", GetLastError() );
|
||||
return NULL;
|
||||
}
|
||||
wcsncpy( icd->driver_name, driver, 256 );
|
||||
wcsncpy( icd->dll, dll, 256 );
|
||||
icd->version = version;
|
||||
icd->driver_version = driverVersion;
|
||||
icd->flags = flags;
|
||||
|
||||
/* load ICD */
|
||||
ret = OPENGL32_InitializeDriver( icd );
|
||||
ret = OPENGL32_RegGetDriverInfo( driver, icd );
|
||||
if (ret != ERROR_SUCCESS)
|
||||
{
|
||||
DBGPRINT( "Error: Couldn't query driver information (%d)", ret );
|
||||
if (!HeapFree( GetProcessHeap(), 0, icd ))
|
||||
DBGPRINT( "Error: HeapFree() returned false, error code = %d",
|
||||
GetLastError() );
|
||||
return NULL;
|
||||
}
|
||||
|
||||
DBGPRINT( "Info: Dll = %ws", icd->dll );
|
||||
DBGPRINT( "Info: Version = 0x%08x", icd->version );
|
||||
DBGPRINT( "Info: DriverVersion = 0x%08x", icd->driverVersion );
|
||||
DBGPRINT( "Info: Flags = 0x%08x", icd->flags );
|
||||
|
||||
/* load/initialize ICD */
|
||||
ret = OPENGL32_InitializeDriver( icd );
|
||||
if (ret != ERROR_SUCCESS)
|
||||
{
|
||||
DBGPRINT( "Error: Couldnt initialize ICD!" );
|
||||
if (!HeapFree( GetProcessHeap(), 0, icd ))
|
||||
DBGPRINT( "Error: HeapFree() returned false, error code = %d",
|
||||
GetLastError() );
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -288,12 +255,15 @@ static GLDRIVERDATA *OPENGL32_LoadDriver ( LPCWSTR driver )
|
|||
((FARPROC)(icd->proc)) = GetProcAddress( icd->handle, #proc ); \
|
||||
if (required && icd->proc == NULL) { \
|
||||
DBGPRINT( "Error: GetProcAddress(\"%s\") failed!", #proc ); \
|
||||
FreeLibrary( icd->handle ); \
|
||||
return GetLastError(); \
|
||||
}
|
||||
|
||||
static DWORD OPENGL32_InitializeDriver( GLDRIVERDATA *icd )
|
||||
{
|
||||
UINT i;
|
||||
/* check version */
|
||||
if (icd->version > 2)
|
||||
DBGPRINT( "Warning: ICD version > 2 (%d)", icd->version );
|
||||
|
||||
/* load dll */
|
||||
icd->handle = LoadLibraryW( icd->dll );
|
||||
|
@ -304,10 +274,28 @@ static DWORD OPENGL32_InitializeDriver( GLDRIVERDATA *icd )
|
|||
return err;
|
||||
}
|
||||
|
||||
/* validate version */
|
||||
if (icd->driver_version > 1)
|
||||
{
|
||||
LOAD_DRV_PROC(icd, DrvValidateVersion, FALSE);
|
||||
if (icd->DrvValidateVersion != NULL)
|
||||
{
|
||||
if (!icd->DrvValidateVersion( icd->driver_version ))
|
||||
{
|
||||
DBGPRINT( "Error: DrvValidateVersion failed!" );
|
||||
DBGBREAK();
|
||||
FreeLibrary( icd->handle );
|
||||
return ERROR_INVALID_FUNCTION; /* FIXME: use better error code */
|
||||
}
|
||||
}
|
||||
else
|
||||
DBGPRINT( "Info: DrvValidateVersion not exported by ICD" );
|
||||
}
|
||||
|
||||
/* load DrvXXX procs */
|
||||
LOAD_DRV_PROC(icd, DrvCopyContext, TRUE);
|
||||
LOAD_DRV_PROC(icd, DrvCreateContext, TRUE);
|
||||
LOAD_DRV_PROC(icd, DrvCreateLayerContext, TRUE);
|
||||
LOAD_DRV_PROC(icd, DrvCreateContext, FALSE);
|
||||
LOAD_DRV_PROC(icd, DrvCreateLayerContext, FALSE);
|
||||
LOAD_DRV_PROC(icd, DrvDeleteContext, TRUE);
|
||||
LOAD_DRV_PROC(icd, DrvDescribeLayerPlane, TRUE);
|
||||
LOAD_DRV_PROC(icd, DrvDescribePixelFormat, TRUE);
|
||||
|
@ -321,16 +309,13 @@ static DWORD OPENGL32_InitializeDriver( GLDRIVERDATA *icd )
|
|||
LOAD_DRV_PROC(icd, DrvShareLists, TRUE);
|
||||
LOAD_DRV_PROC(icd, DrvSwapBuffers, TRUE);
|
||||
LOAD_DRV_PROC(icd, DrvSwapLayerBuffers, TRUE);
|
||||
LOAD_DRV_PROC(icd, DrvValidateVersion, TRUE);
|
||||
|
||||
/* now load the glXXX functions */
|
||||
for (i = 0; i < GLIDX_COUNT; i++)
|
||||
/* we require at least one of DrvCreateContext and DrvCreateLayerContext */
|
||||
if (icd->DrvCreateContext == NULL || icd->DrvCreateLayerContext == NULL)
|
||||
{
|
||||
icd->func_list[i] = (PVOID)(icd->DrvGetProcAddress( OPENGL32_funcnames[i] ));
|
||||
#ifdef DEBUG_OPENGL32_ICD_EXPORTS
|
||||
DBGPRINT( "Info: Function %s %sfound in ICD.", OPENGL32_funcnames[i],
|
||||
(icd->func_list[i] == NULL) ? ("NOT ") : ("") );
|
||||
#endif
|
||||
DBGPRINT( "Error: One of DrvCreateContext/DrvCreateLayerContext is required!" );
|
||||
FreeLibrary( icd->handle );
|
||||
return ERROR_INVALID_FUNCTION; /* FIXME: use better error code... */
|
||||
}
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
|
@ -352,17 +337,25 @@ static BOOL OPENGL32_UnloadDriver( GLDRIVERDATA *icd )
|
|||
if (!FreeLibrary( icd->handle ))
|
||||
{
|
||||
allOk = FALSE;
|
||||
DBGPRINT( "Warning: FreeLibrary on ICD %ws failed!", icd->dll );
|
||||
DBGPRINT( "Warning: FreeLibrary on ICD %ws failed! (%d)", icd->dll,
|
||||
GetLastError() );
|
||||
}
|
||||
|
||||
/* free resources */
|
||||
OPENGL32_RemoveICD( icd );
|
||||
HeapFree( GetProcessHeap(), 0, icd );
|
||||
if (!HeapFree( GetProcessHeap(), 0, icd ))
|
||||
{
|
||||
allOk = FALSE;
|
||||
DBGPRINT( "Warning: HeapFree() returned FALSE, error code = %d",
|
||||
GetLastError() );
|
||||
}
|
||||
|
||||
return allOk;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* FUNCTION: Load ICD (shared ICD data)
|
||||
* RETURNS: GLDRIVERDATA pointer on success, NULL otherwise.
|
||||
*/
|
||||
|
@ -381,7 +374,7 @@ GLDRIVERDATA *OPENGL32_LoadICD ( LPCWSTR driver )
|
|||
}
|
||||
|
||||
/* not found - try to load */
|
||||
icd = OPENGL32_LoadDriver ( driver );
|
||||
icd = OPENGL32_LoadDriver( driver );
|
||||
if (icd != NULL)
|
||||
icd->refcount = 1;
|
||||
return icd;
|
||||
|
@ -400,4 +393,125 @@ BOOL OPENGL32_UnloadICD( GLDRIVERDATA *icd )
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/* FUNCTION: Enumerate OpenGLDrivers (from registry)
|
||||
* ARGUMENTS: [IN] idx Index of the driver to get information about
|
||||
* [OUT] name Pointer to an array of WCHARs (can be NULL)
|
||||
* [I,O] cName Pointer to a DWORD. Input is len of name array;
|
||||
* Output is length of the drivername.
|
||||
* Can be NULL if name is NULL.
|
||||
* RETURNS: Error code (ERROR_NO_MORE_ITEMS at end of list); On failure all
|
||||
* OUT vars are left untouched.
|
||||
*/
|
||||
DWORD OPENGL32_RegEnumDrivers( DWORD idx, LPWSTR name, LPDWORD cName )
|
||||
{
|
||||
HKEY hKey;
|
||||
LPCWSTR subKey = L"SOFTWARE\\Microsoft\\Windows NT\\"
|
||||
"CurrentVersion\\OpenGLDrivers\\";
|
||||
LONG ret;
|
||||
DWORD size;
|
||||
WCHAR driver[256];
|
||||
|
||||
if (name == NULL)
|
||||
return ERROR_SUCCESS; /* nothing to do */
|
||||
|
||||
if (cName == NULL)
|
||||
return ERROR_INVALID_FUNCTION; /* we need cName when name is given */
|
||||
|
||||
/* open OpenGLDrivers registry key */
|
||||
ret = RegOpenKeyExW( HKEY_LOCAL_MACHINE, subKey, 0, KEY_READ, &hKey );
|
||||
if (ret != ERROR_SUCCESS)
|
||||
{
|
||||
DBGPRINT( "Error: Couldn't open registry key '%ws'", subKey );
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* get subkey name */
|
||||
size = sizeof (driver) / sizeof (driver[0]);
|
||||
ret = RegEnumKeyW( hKey, idx, name, *cName );
|
||||
if (ret != ERROR_SUCCESS)
|
||||
{
|
||||
DBGPRINT( "Error: Couldn't get OpenGLDrivers subkey name (%d)", ret );
|
||||
RegCloseKey( hKey );
|
||||
return ret;
|
||||
}
|
||||
*cName = wcslen( name );
|
||||
|
||||
/* close key */
|
||||
RegCloseKey( hKey );
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/* FUNCTION: Get registry values for a driver given a name
|
||||
* ARGUMENTS: [IN] idx Index of the driver to get information about
|
||||
* [OUT] icd Pointer to GLDRIVERDATA. On success the following
|
||||
* fields are filled: driver_name, dll, version,
|
||||
* driver_version and flags.
|
||||
* RETURNS: Error code; On failure all OUT vars are left untouched.
|
||||
*/
|
||||
DWORD OPENGL32_RegGetDriverInfo( LPCWSTR driver, GLDRIVERDATA *icd )
|
||||
{
|
||||
HKEY hKey;
|
||||
WCHAR subKey[1024] = L"SOFTWARE\\Microsoft\\Windows NT\\"
|
||||
"CurrentVersion\\OpenGLDrivers\\";
|
||||
LONG ret;
|
||||
DWORD type, size;
|
||||
|
||||
/* drivers registry values */
|
||||
DWORD version = 1, driverVersion = 0, flags = 0;
|
||||
WCHAR dll[256];
|
||||
|
||||
/* open driver registry key */
|
||||
wcsncat( subKey, driver, 1024 );
|
||||
ret = RegOpenKeyExW( HKEY_LOCAL_MACHINE, subKey, 0, KEY_READ, &hKey );
|
||||
if (ret != ERROR_SUCCESS)
|
||||
{
|
||||
DBGPRINT( "Error: Couldn't open registry key '%ws'", subKey );
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* query values */
|
||||
size = sizeof (dll);
|
||||
ret = RegQueryValueExW( hKey, L"Dll", 0, &type, (LPBYTE)dll, &size );
|
||||
if (ret != ERROR_SUCCESS || type != REG_SZ)
|
||||
{
|
||||
DBGPRINT( "Error: Couldn't query Dll value or not a string" );
|
||||
RegCloseKey( hKey );
|
||||
return ret;
|
||||
}
|
||||
|
||||
size = sizeof (DWORD);
|
||||
ret = RegQueryValueExW( hKey, L"Version", 0, &type, (LPBYTE)&version, &size );
|
||||
if (ret != ERROR_SUCCESS || type != REG_DWORD)
|
||||
DBGPRINT( "Warning: Couldn't query Version value or not a DWORD" );
|
||||
|
||||
size = sizeof (DWORD);
|
||||
ret = RegQueryValueExW( hKey, L"DriverVersion", 0, &type,
|
||||
(LPBYTE)&driverVersion, &size );
|
||||
if (ret != ERROR_SUCCESS || type != REG_DWORD)
|
||||
DBGPRINT( "Warning: Couldn't query DriverVersion value or not a DWORD" );
|
||||
|
||||
size = sizeof (DWORD);
|
||||
ret = RegQueryValueExW( hKey, L"Flags", 0, &type, (LPBYTE)&flags, &size );
|
||||
if (ret != ERROR_SUCCESS || type != REG_DWORD)
|
||||
DBGPRINT( "Warning: Couldn't query Flags value or not a DWORD" );
|
||||
|
||||
/* close key */
|
||||
RegCloseKey( hKey );
|
||||
|
||||
/* output data */
|
||||
/* FIXME: NUL-terminate strings? */
|
||||
wcsncpy( icd->driver_name, driver,
|
||||
sizeof (icd->driver_name) / sizeof (icd->driver_name[0]) - 1 );
|
||||
wcsncpy( icd->dll, dll,
|
||||
sizeof (icd->dll) / sizeof (icd->dll[0]) );
|
||||
icd->version = version;
|
||||
icd->driver_version = driverVersion;
|
||||
icd->flags = flags;
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; $Id: opengl32.def,v 1.1 2004/02/03 14:23:42 royce Exp $
|
||||
; $Id: opengl32.def,v 1.2 2004/02/05 04:28:11 royce Exp $
|
||||
;
|
||||
; opengl32.edf
|
||||
;
|
||||
|
@ -8,394 +8,394 @@ LIBRARY opengl32.dll
|
|||
EXPORTS
|
||||
;DllInitialize
|
||||
|
||||
glAccum=glAccum@8
|
||||
glAlphaFunc=glAlphaFunc@8
|
||||
glAreTexturesResident=glAreTexturesResident@12
|
||||
glArrayElement=glArrayElement@4
|
||||
glBegin=glBegin@4
|
||||
glBindTexture=glBindTexture@8
|
||||
glBitmap=glBitmap@28
|
||||
glBlendFunc=glBlendFunc@8
|
||||
glCallList=glCallList@4
|
||||
glCallLists=glCallLists@12
|
||||
glClear=glClear@4
|
||||
glClearAccum=glClearAccum@16
|
||||
glClearColor=glClearColor@16
|
||||
glClearDepth=glClearDepth@4
|
||||
glClearIndex=glClearIndex@4
|
||||
glClearStencil=glClearStencil@4
|
||||
glClipPlane=glClipPlane@8
|
||||
glAccum
|
||||
glAlphaFunc
|
||||
glAreTexturesResident
|
||||
glArrayElement
|
||||
glBegin
|
||||
glBindTexture
|
||||
glBitmap
|
||||
glBlendFunc
|
||||
glCallList
|
||||
glCallLists
|
||||
glClear
|
||||
glClearAccum
|
||||
glClearColor
|
||||
glClearDepth
|
||||
glClearIndex
|
||||
glClearStencil
|
||||
glClipPlane
|
||||
|
||||
glColor3b=glColor3b@3
|
||||
glColor3bv=glColor3b@4
|
||||
glColor3d=glColor3d@24
|
||||
glColor3dv=glColor3d@4
|
||||
glColor3f=glColor3f@12
|
||||
glColor3fv=glColor3fv@4
|
||||
glColor3i=glColor3i@12
|
||||
glColor3iv=glColor3iv@4
|
||||
glColor3s=glColor3s@6
|
||||
glColor3sv=glColor3sv@4
|
||||
glColor3ub=glColor3ub@3
|
||||
glColor3ubv=glColor3ubv@4
|
||||
glColor3ui=glColor3ui@12
|
||||
glColor3uiv=glColor3uiv@4
|
||||
glColor3us=glColor3us@6
|
||||
glColor3usv=glColor3usv@4
|
||||
glColor3b
|
||||
glColor3bv
|
||||
glColor3d
|
||||
glColor3dv
|
||||
glColor3f
|
||||
glColor3fv
|
||||
glColor3i
|
||||
glColor3iv
|
||||
glColor3s
|
||||
glColor3sv
|
||||
glColor3ub
|
||||
glColor3ubv
|
||||
glColor3ui
|
||||
glColor3uiv
|
||||
glColor3us
|
||||
glColor3usv
|
||||
|
||||
glColor4b=glColor4b@4
|
||||
glColor4bv=glColor4bv@4
|
||||
glColor4d=glColor4d@32
|
||||
glColor4dv=glColor4dv@4
|
||||
glColor4f=glColor4f@16
|
||||
glColor4fv=glColor4fv@4
|
||||
glColor4i=glColor4i@16
|
||||
glColor4iv=glColor4iv@4
|
||||
glColor4s=glColor4s@8
|
||||
glColor4sv=glColor4sv@4
|
||||
glColor4ub=glColor4ub@4
|
||||
glColor4ubv=glColor4ubv@4
|
||||
glColor4ui=glColor4ui@16
|
||||
glColor4uiv=glColor4uiv@4
|
||||
glColor4us=glColor4us@8
|
||||
glColor4usv=glColor4usv@4
|
||||
glColor4b
|
||||
glColor4bv
|
||||
glColor4d
|
||||
glColor4dv
|
||||
glColor4f
|
||||
glColor4fv
|
||||
glColor4i
|
||||
glColor4iv
|
||||
glColor4s
|
||||
glColor4sv
|
||||
glColor4ub
|
||||
glColor4ubv
|
||||
glColor4ui
|
||||
glColor4uiv
|
||||
glColor4us
|
||||
glColor4usv
|
||||
|
||||
glColorMask=glColorMask@4
|
||||
glColorMaterial=glColorMaterial@8
|
||||
glColorPointer=glColorPointer@16
|
||||
glCopyPixels=glCopyPixels@20
|
||||
glCopyTexImage1D=glCopyTexImage1D@28
|
||||
glCopyTexImage2D=glCopyTexImage2D@32
|
||||
glCopyTexSubImage1D=glCopyTexSubImage1D@24
|
||||
glCopyTexSubImage2D=glCopyTexSubImage2D@32
|
||||
glCullFace=glCullFace@4
|
||||
glColorMask
|
||||
glColorMaterial
|
||||
glColorPointer
|
||||
glCopyPixels
|
||||
glCopyTexImage1D
|
||||
glCopyTexImage2D
|
||||
glCopyTexSubImage1D
|
||||
glCopyTexSubImage2D
|
||||
glCullFace
|
||||
;glDebugEntry
|
||||
glDeleteLists=glDeleteLists@8
|
||||
glDeleteTextures=glDeleteTextues@8
|
||||
glDepthFunc=glDepthFunc@4
|
||||
glDepthMask=glDepthMask@4
|
||||
glDepthRange=glDepthRange@8
|
||||
glDisable=glDisable@4
|
||||
glDisableClientState=glDisableClientState@4
|
||||
glDrawArrays=glDrawArrays@12
|
||||
glDrawBuffer=glDrawBuffer@4
|
||||
glDrawElements=glDrawElements@16
|
||||
glDrawPixels=glDrawPixels@20
|
||||
glEdgeFlag=glEdgeFlag@1
|
||||
glEdgeFlagPointer=glEdgeFlagPointer@8
|
||||
glEdgeFlagv=glEdgeFlagv@4
|
||||
glEnable=glEnable@4
|
||||
glEnableClientState=glEnableClientState@4
|
||||
glEnd=glEnd@0
|
||||
glEndList=glEndList@0
|
||||
glDeleteLists
|
||||
glDeleteTextures
|
||||
glDepthFunc
|
||||
glDepthMask
|
||||
glDepthRange
|
||||
glDisable
|
||||
glDisableClientState
|
||||
glDrawArrays
|
||||
glDrawBuffer
|
||||
glDrawElements
|
||||
glDrawPixels
|
||||
glEdgeFlag
|
||||
glEdgeFlagPointer
|
||||
glEdgeFlagv
|
||||
glEnable
|
||||
glEnableClientState
|
||||
glEnd
|
||||
glEndList
|
||||
|
||||
glEvalCoord1d=glEvalCoord1d@8
|
||||
glEvalCoord1dv=glEvalCoord1dv@4
|
||||
glEvalCoord1f=glEvalCoord1f@4
|
||||
glEvalCoord1fv=glEvalCoord1fv@4
|
||||
glEvalCoord2d=glEvalCoord2d@16
|
||||
glEvalCoord2dv=glEvalCoord2dv@4
|
||||
glEvalCoord2f=glEvalCoord2f@8
|
||||
glEvalCoord2fv=glEvalCoord2fv@4
|
||||
glEvalCoord1d
|
||||
glEvalCoord1dv
|
||||
glEvalCoord1f
|
||||
glEvalCoord1fv
|
||||
glEvalCoord2d
|
||||
glEvalCoord2dv
|
||||
glEvalCoord2f
|
||||
glEvalCoord2fv
|
||||
|
||||
glEvalMesh1=glEvalMesh1@12
|
||||
glEvalMesh2=glEvalMesh2@12
|
||||
glEvalPoint1=glEvalPoint1@4
|
||||
glEvalPoint2=glEvalPoint2@8
|
||||
glFeedbackBuffer=glFeedbackBuffer@12
|
||||
glFinish=glFinish@0
|
||||
glFlush=glFlush@0
|
||||
glFogf=glFogf@8
|
||||
glFogfv=glFogv@8
|
||||
glFogi=glFogi@8
|
||||
glFogiv=glFogiv@8
|
||||
glFrontFace=glFrontFace@4
|
||||
glFrustum=glFrustum@48
|
||||
glGenLists=glGenLists@4
|
||||
glGenTextures=glGenTextires@8
|
||||
glGetBooleanv=glGetBooleanv@8
|
||||
glGetClipPlane=glGetClipPlane@8
|
||||
glGetDoublev=glGetDoublev@8
|
||||
glGetError=glGetError@0
|
||||
glGetFloatv=glGetFloatv@8
|
||||
glGetIntegerv=glGetIntegerv@8
|
||||
glGetLightfv=glGetLightfv@12
|
||||
glGetLightiv=glGetLightiv@12
|
||||
glGetMapdv=glGetMapdv@12
|
||||
glGetMapfv=glGetMapfv@12
|
||||
glGetMapiv=glGetMapiv@12
|
||||
glGetMaterialfv=glGetMaterialfv@12
|
||||
glGetMaterialiv=glGetMaterialiv@12
|
||||
glGetPixelMapfv=glGetPixelMapfv@8
|
||||
glGetPixelMapuiv=glGetPixelMapuiv@8
|
||||
glGetPixelMapusv=glGetPixelMapusv@8
|
||||
glGetPointerv=glGetPointerv@8
|
||||
glGetPolygonStipple=glGetPolygonStipple@4
|
||||
glGetString=glGetString@4
|
||||
glGetTexEnvfv=glGetTexEnvfv@12
|
||||
glGetTexEnviv=glGetTexEnviv@12
|
||||
glGetTexGendv=glGetTexGendv@12
|
||||
glGetTexGenfv=glGetTexGenfv@12
|
||||
glGetTexGeniv=glGetTexGeniv@12
|
||||
glGetTexImage=glGetTexImage@20
|
||||
glGetTexLevelParameterfv=glGetTexLevelParameterfv@16
|
||||
glGetTexLevelParameteriv=glGetTexLevelParameteriv@16
|
||||
glGetTexParameterfv=glGetTexParameterfv@12
|
||||
glGetTexParameteriv=glGetTexParameteriv@12
|
||||
glHint=glHint@8
|
||||
glIndexd=glIndexd@8
|
||||
glIndexdv=glIndexdv@4
|
||||
glIndexf=glIndexf@4
|
||||
glIndexfv=glIndexfv@4
|
||||
glIndexi=glIndexi@4
|
||||
glIndexiv=glIndexiv@4
|
||||
glIndexMask=glIndexMask@4
|
||||
glIndexPointer=glIndexPointer@12
|
||||
glIndexs=glIndexs@2
|
||||
glIndexsv=glIndexsv@4
|
||||
glIndexub=glIndexub@1
|
||||
glIndexubv=glIndexubv@4
|
||||
glInitNames=glInitNames@0
|
||||
glInterleavedArrays=glInterleavedArrays@12
|
||||
glIsEnabled=glIsEnabled@4
|
||||
glIsList=glIsList@4
|
||||
glIsTexture=glTexture@4
|
||||
glEvalMesh1
|
||||
glEvalMesh2
|
||||
glEvalPoint1
|
||||
glEvalPoint2
|
||||
glFeedbackBuffer
|
||||
glFinish
|
||||
glFlush
|
||||
glFogf
|
||||
glFogfv
|
||||
glFogi
|
||||
glFogiv
|
||||
glFrontFace
|
||||
glFrustum
|
||||
glGenLists
|
||||
glGenTextures
|
||||
glGetBooleanv
|
||||
glGetClipPlane
|
||||
glGetDoublev
|
||||
glGetError
|
||||
glGetFloatv
|
||||
glGetIntegerv
|
||||
glGetLightfv
|
||||
glGetLightiv
|
||||
glGetMapdv
|
||||
glGetMapfv
|
||||
glGetMapiv
|
||||
glGetMaterialfv
|
||||
glGetMaterialiv
|
||||
glGetPixelMapfv
|
||||
glGetPixelMapuiv
|
||||
glGetPixelMapusv
|
||||
glGetPointerv
|
||||
glGetPolygonStipple
|
||||
glGetString
|
||||
glGetTexEnvfv
|
||||
glGetTexEnviv
|
||||
glGetTexGendv
|
||||
glGetTexGenfv
|
||||
glGetTexGeniv
|
||||
glGetTexImage
|
||||
glGetTexLevelParameterfv
|
||||
glGetTexLevelParameteriv
|
||||
glGetTexParameterfv
|
||||
glGetTexParameteriv
|
||||
glHint
|
||||
glIndexd
|
||||
glIndexdv
|
||||
glIndexf
|
||||
glIndexfv
|
||||
glIndexi
|
||||
glIndexiv
|
||||
glIndexMask
|
||||
glIndexPointer
|
||||
glIndexs
|
||||
glIndexsv
|
||||
glIndexub
|
||||
glIndexubv
|
||||
glInitNames
|
||||
glInterleavedArrays
|
||||
glIsEnabled
|
||||
glIsList
|
||||
glIsTexture
|
||||
|
||||
glLightf=glLightf@12
|
||||
glLightfv=glLightfv@12
|
||||
glLighti=glLighti@12
|
||||
glLightiv=glLightiv@12
|
||||
glLightModelf=glLightModelf@8
|
||||
glLightModelfv=glLightModelfv@8
|
||||
glLightModeli=glLightModeli@8
|
||||
glLightModeliv=glLightModeliv@8
|
||||
glLightf
|
||||
glLightfv
|
||||
glLighti
|
||||
glLightiv
|
||||
glLightModelf
|
||||
glLightModelfv
|
||||
glLightModeli
|
||||
glLightModeliv
|
||||
|
||||
glLineStipple=glLineStipple@6
|
||||
glLineWidth=glLineWidth@4
|
||||
glListBase=glListBase@4
|
||||
glLoadIdentity=glLoadIdentity@0
|
||||
glLoadMatrixd=glLoadMatrixd@4
|
||||
glLoadMatrixf=glLoadMatrixf@4
|
||||
glLoadName=glLoadName@4
|
||||
glLogicOp=glLogicOp@4
|
||||
glLineStipple
|
||||
glLineWidth
|
||||
glListBase
|
||||
glLoadIdentity
|
||||
glLoadMatrixd
|
||||
glLoadMatrixf
|
||||
glLoadName
|
||||
glLogicOp
|
||||
|
||||
glMap1d=glMap1d@32
|
||||
glMap1f=glMap1f@24
|
||||
glMap2d=glMap2d@56
|
||||
glMap2f=glMap2f@40
|
||||
glMapGrid1d=glMapGrid1d@20
|
||||
glMapGrid1f=glMapGrid1f@12
|
||||
glMapGrid2d=glMapGrid2d@40
|
||||
glMapGrid2f=glMapGrid2f@24
|
||||
glMap1d
|
||||
glMap1f
|
||||
glMap2d
|
||||
glMap2f
|
||||
glMapGrid1d
|
||||
glMapGrid1f
|
||||
glMapGrid2d
|
||||
glMapGrid2f
|
||||
|
||||
glMaterialf=glMaterialf@12
|
||||
glMaterialfv=glMaterialfv@12
|
||||
glMateriali=glMateriali@12
|
||||
glMaterialiv=glMaterialiv@12
|
||||
glMaterialf
|
||||
glMaterialfv
|
||||
glMateriali
|
||||
glMaterialiv
|
||||
|
||||
glMatrixMode=glMatrixMode@4
|
||||
glMatrixMode
|
||||
;GlmfBeginGlsBlock
|
||||
;GlmfCloseMetaFile
|
||||
;GlmfEndGlsBlock
|
||||
;GlmfEndPlayback
|
||||
;GlmfInitPlayback
|
||||
;GlmfPlayGlsRecord
|
||||
glMultMatrixd=glMultMatrixd@4
|
||||
glMultMatrixf=glMultMatrixf@4
|
||||
glNewList=glNewList@8
|
||||
glMultMatrixd
|
||||
glMultMatrixf
|
||||
glNewList
|
||||
|
||||
glNormal3b=glNormal3b@3
|
||||
glNormal3bv=glNormal3bv@4
|
||||
glNormal3d=glNormal3d@24
|
||||
glNormal3dv=glNormal3dv@4
|
||||
glNormal3f=glNormal3f@12
|
||||
glNormal3fv=glNormal3fv@4
|
||||
glNormal3i=glNormal3i@12
|
||||
glNormal3iv=glNormal3iv@4
|
||||
glNormal3s=glNormal3s@6
|
||||
glNormal3sv=glNormal3sv@4
|
||||
glNormalPointer=glNormalPointer@12
|
||||
glNormal3b
|
||||
glNormal3bv
|
||||
glNormal3d
|
||||
glNormal3dv
|
||||
glNormal3f
|
||||
glNormal3fv
|
||||
glNormal3i
|
||||
glNormal3iv
|
||||
glNormal3s
|
||||
glNormal3sv
|
||||
glNormalPointer
|
||||
|
||||
glOrtho=glOrtho@24
|
||||
glPassThrough=glPassThrough@4
|
||||
glPixelMapfv=glPixelMapfv@12
|
||||
glPixelMapuiv=glPixelMapuiv@12
|
||||
glPixelMapusv=glPixelMapusv@12
|
||||
glPixelStoref=glPixelStoref@8
|
||||
glPixelStorei=glPixelStorei@8
|
||||
glPixelTransferf=glPixelTransferf@8
|
||||
glPixelTransferi=glPixelTransferi@8
|
||||
glPixelZoom=glPixelZoom@8
|
||||
glPointSize=glPointSize@4
|
||||
glPolygonMode=glPolygonMode@8
|
||||
glPolygonOffset=glPolygonOffset@8
|
||||
glPolygonStipple=glPolygonStipple@4
|
||||
glPopAttrib=glPopAttrib@0
|
||||
glPopClientAttrib=glPopClientAttrib@0
|
||||
glPopMatrix=glPopMatrix@0
|
||||
glPopName=glPopName@0
|
||||
glPrioritizeTextures=glPrioritizeTextures@12
|
||||
glPushAttrib=glPushAttrib@4
|
||||
glPushClientAttrib=glPushClientAttrib@4
|
||||
glPushMatrix=glPushMatrix@0
|
||||
glPushName=glPushName@4
|
||||
glRasterPos2d=glRasterPos2d@16
|
||||
glRasterPos2dv=glRasterPos2dv@4
|
||||
glRasterPos2f=glRasterPos2f@8
|
||||
glRasterPos2fv=glRasterPos2fv@4
|
||||
glRasterPos2i=glRasterPos2i@8
|
||||
glRasterPos2iv=glRasterPos2iv@4
|
||||
glRasterPos2s=glRasterPos2s@8
|
||||
glRasterPos2sv=glRasterPos2sv@8
|
||||
glRasterPos3d=glRasterPos3d@24
|
||||
glRasterPos3dv=glRasterPos3dv@4
|
||||
glRasterPos3f=glRasterPos3f@12
|
||||
glRasterPos3fv=glRasterPos3fv@4
|
||||
glRasterPos3i=glRasterPos3i@12
|
||||
glRasterPos3iv=glRasterPos3iv@4
|
||||
glRasterPos3s=glRasterPos3s@12
|
||||
glRasterPos3sv=glRasterPos3sv@4
|
||||
glRasterPos4d=glRasterPos4d@32
|
||||
glRasterPos4dv=glRasterPos4dv@4
|
||||
glRasterPos4f=glRasterPos4f@16
|
||||
glRasterPos4fv=glRasterPos4fv@4
|
||||
glRasterPos4i=glRasterPos4i@16
|
||||
glRasterPos4iv=glRasterPos4iv@4
|
||||
glRasterPos4s=glRasterPos4s@16
|
||||
glRasterPos4sv=glRasterPos4sv@4
|
||||
glReadBuffer=glReadBuffer@4
|
||||
glReadPixels=glReadPixels@28
|
||||
glRectd=glRectd@32
|
||||
glRectdv=glRectdv@4
|
||||
glRectf=glRectf@16
|
||||
glRectfv=glRectfv@4
|
||||
glRecti=glRecti@16
|
||||
glRectiv=glRectiv@4
|
||||
glRects=glRects@16
|
||||
glRectsv=glRectsv@4
|
||||
glRenderMode=glRenderMode@4
|
||||
glRotated=glRotated@32
|
||||
glRotatef=glRotatef@16
|
||||
glScaled=glScaled@24
|
||||
glScalef=glScalef@12
|
||||
glScissor=glScissor@16
|
||||
glSelectBuffer=glSelectBuffer@8
|
||||
glShadeModel=glShadeModel@4
|
||||
glStencilFunc=glStencilFunc@12
|
||||
glStencilMask=glStencilMask@4
|
||||
glStencilOp=glStencilOp@12
|
||||
glOrtho
|
||||
glPassThrough
|
||||
glPixelMapfv
|
||||
glPixelMapuiv
|
||||
glPixelMapusv
|
||||
glPixelStoref
|
||||
glPixelStorei
|
||||
glPixelTransferf
|
||||
glPixelTransferi
|
||||
glPixelZoom
|
||||
glPointSize
|
||||
glPolygonMode
|
||||
glPolygonOffset
|
||||
glPolygonStipple
|
||||
glPopAttrib
|
||||
glPopClientAttrib
|
||||
glPopMatrix
|
||||
glPopName
|
||||
glPrioritizeTextures
|
||||
glPushAttrib
|
||||
glPushClientAttrib
|
||||
glPushMatrix
|
||||
glPushName
|
||||
glRasterPos2d
|
||||
glRasterPos2dv
|
||||
glRasterPos2f
|
||||
glRasterPos2fv
|
||||
glRasterPos2i
|
||||
glRasterPos2iv
|
||||
glRasterPos2s
|
||||
glRasterPos2sv
|
||||
glRasterPos3d
|
||||
glRasterPos3dv
|
||||
glRasterPos3f
|
||||
glRasterPos3fv
|
||||
glRasterPos3i
|
||||
glRasterPos3iv
|
||||
glRasterPos3s
|
||||
glRasterPos3sv
|
||||
glRasterPos4d
|
||||
glRasterPos4dv
|
||||
glRasterPos4f
|
||||
glRasterPos4fv
|
||||
glRasterPos4i
|
||||
glRasterPos4iv
|
||||
glRasterPos4s
|
||||
glRasterPos4sv
|
||||
glReadBuffer
|
||||
glReadPixels
|
||||
glRectd
|
||||
glRectdv
|
||||
glRectf
|
||||
glRectfv
|
||||
glRecti
|
||||
glRectiv
|
||||
glRects
|
||||
glRectsv
|
||||
glRenderMode
|
||||
glRotated
|
||||
glRotatef
|
||||
glScaled
|
||||
glScalef
|
||||
glScissor
|
||||
glSelectBuffer
|
||||
glShadeModel
|
||||
glStencilFunc
|
||||
glStencilMask
|
||||
glStencilOp
|
||||
|
||||
glTexCoord1d=glTexCoord1d@8
|
||||
glTexCoord1dv=glTexCoord1dv@4
|
||||
glTexCoord1f=glTexCoord1f@4
|
||||
glTexCoord1fv=glTexCoord1fv@4
|
||||
glTexCoord1i=glTexCoord1i@4
|
||||
glTexCoord1iv=glTexCoord1iv@4
|
||||
glTexCoord1s=glTexCoord1s@2
|
||||
glTexCoord1sv=glTexCoord1sv@4
|
||||
glTexCoord1d
|
||||
glTexCoord1dv
|
||||
glTexCoord1f
|
||||
glTexCoord1fv
|
||||
glTexCoord1i
|
||||
glTexCoord1iv
|
||||
glTexCoord1s
|
||||
glTexCoord1sv
|
||||
|
||||
glTexCoord2d=glTexCoord2d@16
|
||||
glTexCoord2dv=glTexCoord2dv@4
|
||||
glTexCoord2f=glTexCoord2f@8
|
||||
glTexCoord2fv=glTexCoord2fv@4
|
||||
glTexCoord2i=glTexCoord2i@8
|
||||
glTexCoord2iv=glTexCoord2iv@4
|
||||
glTexCoord2s=glTexCoord2s@4
|
||||
glTexCoord2sv=glTexCoord2sv@4
|
||||
glTexCoord2d
|
||||
glTexCoord2dv
|
||||
glTexCoord2f
|
||||
glTexCoord2fv
|
||||
glTexCoord2i
|
||||
glTexCoord2iv
|
||||
glTexCoord2s
|
||||
glTexCoord2sv
|
||||
|
||||
glTexCoord3d=glTexCoord3d@24
|
||||
glTexCoord3dv=glTexCoord3dv@4
|
||||
glTexCoord3f=glTexCoord3f@12
|
||||
glTexCoord3fv=glTexCoord3fv@4
|
||||
glTexCoord3i=glTexCoord3i@12
|
||||
glTexCoord3iv=glTexCoord3iv@4
|
||||
glTexCoord3s=glTexCoord3s@6
|
||||
glTexCoord3sv=glTexCoord3sv@4
|
||||
glTexCoord3d
|
||||
glTexCoord3dv
|
||||
glTexCoord3f
|
||||
glTexCoord3fv
|
||||
glTexCoord3i
|
||||
glTexCoord3iv
|
||||
glTexCoord3s
|
||||
glTexCoord3sv
|
||||
|
||||
glTexCoord4d=glTexCoord4d@32
|
||||
glTexCoord4dv=glTexCoord4dv@4
|
||||
glTexCoord4f=glTexCoord4f@16
|
||||
glTexCoord4fv=glTexCoord4fv@4
|
||||
glTexCoord4i=glTexCoord4i@16
|
||||
glTexCoord4iv=glTexCoord4iv@4
|
||||
glTexCoord4s=glTexCoord4s@8
|
||||
glTexCoord4sv=glTexCoord4sv@4
|
||||
glTexCoord4d
|
||||
glTexCoord4dv
|
||||
glTexCoord4f
|
||||
glTexCoord4fv
|
||||
glTexCoord4i
|
||||
glTexCoord4iv
|
||||
glTexCoord4s
|
||||
glTexCoord4sv
|
||||
|
||||
glTexCoordPointer=glTexCoordPointer@16
|
||||
glTexEnvf=glTexEnvf@12
|
||||
glTexEnvfv=glTexEnvfv@12
|
||||
glTexEnvi=glTexEnvi@12
|
||||
glTexEnviv=glTexEnviv@12
|
||||
glTexGend=glTexGend@16
|
||||
glTexGendv=glTexGendv@12
|
||||
glTexGenf=glTexGenf@12
|
||||
glTexGenfv=glTexGenfv@12
|
||||
glTexGeni=glTexGeni@12
|
||||
glTexGeniv=glTexGeniv@12
|
||||
glTexImage1D=glTexImage1D@32
|
||||
glTexImage2D=glTexImage2d@36
|
||||
glTexParameterf=glTexParameterf@12
|
||||
glTexParameterfv=glTexParameterfv@12
|
||||
glTexParameteri=glTexParameteri@12
|
||||
glTexParameteriv=glTexParameteriv@12
|
||||
glTexSubImage1D=glTexSubImage1D@28
|
||||
glTexSubImage2D=glTexSubImage2D@36
|
||||
glTexCoordPointer
|
||||
glTexEnvf
|
||||
glTexEnvfv
|
||||
glTexEnvi
|
||||
glTexEnviv
|
||||
glTexGend
|
||||
glTexGendv
|
||||
glTexGenf
|
||||
glTexGenfv
|
||||
glTexGeni
|
||||
glTexGeniv
|
||||
glTexImage1D
|
||||
glTexImage2D
|
||||
glTexParameterf
|
||||
glTexParameterfv
|
||||
glTexParameteri
|
||||
glTexParameteriv
|
||||
glTexSubImage1D
|
||||
glTexSubImage2D
|
||||
|
||||
glTranslated=glTranslated@32
|
||||
glTranslatef=glTranslated@16
|
||||
glTranslated
|
||||
glTranslatef
|
||||
|
||||
glVertex2d=glVertex2d@16
|
||||
glVertex2dv=glVertex2dv@4
|
||||
glVertex2f=glVertex2f@8
|
||||
glVertex2fv=glVertex2fv@4
|
||||
glVertex2i=glVertex2i@8
|
||||
glVertex2iv=glVertex2iv@4
|
||||
glVertex2s=glVertex2s@4
|
||||
glVertex2sv=glVertex2sv@4
|
||||
glVertex2d
|
||||
glVertex2dv
|
||||
glVertex2f
|
||||
glVertex2fv
|
||||
glVertex2i
|
||||
glVertex2iv
|
||||
glVertex2s
|
||||
glVertex2sv
|
||||
|
||||
glVertex3d=glVertex3d@24
|
||||
glVertex3dv=glVertex3dv@4
|
||||
glVertex3f=glVertex3f@12
|
||||
glVertex3fv=glVertex3fv@4
|
||||
glVertex3i=glVertex3i@12
|
||||
glVertex3iv=glVertex3iv@4
|
||||
glVertex3s=glVertex3s@6
|
||||
glVertex3sv=glVertex3sv@4
|
||||
glVertex3d
|
||||
glVertex3dv
|
||||
glVertex3f
|
||||
glVertex3fv
|
||||
glVertex3i
|
||||
glVertex3iv
|
||||
glVertex3s
|
||||
glVertex3sv
|
||||
|
||||
glVertex4d=glVertex4d@32
|
||||
glVertex4dv=glVertex4dv@4
|
||||
glVertex4f=glVertex4f@16
|
||||
glVertex4fv=glVertex4fv@4
|
||||
glVertex4i=glVertex4i@16
|
||||
glVertex4iv=glVertex4iv@4
|
||||
glVertex4s=glVertex4s@8
|
||||
glVertex4sv=glVertex4sv@4
|
||||
glVertex4d
|
||||
glVertex4dv
|
||||
glVertex4f
|
||||
glVertex4fv
|
||||
glVertex4i
|
||||
glVertex4iv
|
||||
glVertex4s
|
||||
glVertex4sv
|
||||
|
||||
glVertexPointer=glVertexPointer@16
|
||||
glViewport=glViewport@16
|
||||
glVertexPointer
|
||||
glViewport
|
||||
|
||||
wglChoosePixelFormat=GDI32.ChoosePixelFormat
|
||||
wglCopyContext=wglCopyContext@12
|
||||
wglCreateContext=wglCreateContext@4
|
||||
wglCreateLayerContext=wglCreateLayerContext@8
|
||||
wglDeleteContext=wglDeleteContext@4
|
||||
wglDescribeLayerPlane=wglDescribeLayerPlane@20
|
||||
wglDescribePixelFormat=GDI32.DescribePixelFormat
|
||||
wglGetCurrentContext=wglGetCurrentContext@0
|
||||
wglGetCurrentDC=wglGetCurrentDC@0
|
||||
;wglGetDefaultProcAddress=wglGetDefaultProcAddress@
|
||||
wglGetLayerPaletteEntries=wglGetLayerPaletteEntries@20
|
||||
wglGetPixelFormat=GDI32.GetPixelFormat
|
||||
wglGetProcAddress=wglGetProcAddress@4
|
||||
wglMakeCurrent=wglMakeCurrent@8
|
||||
wglRealizeLayerPalette=wglRealizeLayerPalette@12
|
||||
wglSetLayerPaletteEntries=wglSetLayerPaletteEntries@20
|
||||
wglSetPixelFormat=GDI32.SetPixelFormat
|
||||
wglShareLists=wglShareLists@8
|
||||
wglSwapBuffers=GDI32.SwapBuffers
|
||||
wglSwapLayerBuffers=wglSwapLayerBuffers@8
|
||||
;wglSwapMultipleBuffers=wglSwapMultipleBuffers@
|
||||
wglUseFontBitmapsA=wglUseFontBitmapsA@16
|
||||
wglUseFontBitmapsW=wglUseFontBitmapsW@16
|
||||
wglUseFontOutlinesA=wglUseFontOutlinesA@32
|
||||
wglUseFontOutlinesW=wglUseFontOutlinesW@32
|
||||
wglChoosePixelFormat
|
||||
wglCopyContext
|
||||
wglCreateContext
|
||||
wglCreateLayerContext
|
||||
wglDeleteContext
|
||||
wglDescribeLayerPlane
|
||||
wglDescribePixelFormat
|
||||
wglGetCurrentContext
|
||||
wglGetCurrentDC
|
||||
;wglGetDefaultProcAddress
|
||||
wglGetLayerPaletteEntries
|
||||
wglGetPixelFormat
|
||||
wglGetProcAddress
|
||||
wglMakeCurrent
|
||||
wglRealizeLayerPalette
|
||||
wglSetLayerPaletteEntries
|
||||
wglSetPixelFormat
|
||||
wglShareLists
|
||||
wglSwapBuffers
|
||||
wglSwapLayerBuffers
|
||||
;wglSwapMultipleBuffers
|
||||
wglUseFontBitmapsA
|
||||
wglUseFontBitmapsW
|
||||
wglUseFontOutlinesA
|
||||
wglUseFontOutlinesW
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; $Id: opengl32.edf,v 1.2 2004/02/01 17:07:16 royce Exp $
|
||||
; $Id: opengl32.edf,v 1.3 2004/02/05 04:28:11 royce Exp $
|
||||
;
|
||||
; opengl32.edf
|
||||
;
|
||||
|
@ -21,29 +21,29 @@ glCallLists=glCallLists@12
|
|||
glClear=glClear@4
|
||||
glClearAccum=glClearAccum@16
|
||||
glClearColor=glClearColor@16
|
||||
glClearDepth=glClearDepth@4
|
||||
glClearDepth=glClearDepth@8
|
||||
glClearIndex=glClearIndex@4
|
||||
glClearStencil=glClearStencil@4
|
||||
glClipPlane=glClipPlane@8
|
||||
|
||||
glColor3b=glColor3b@3
|
||||
glColor3bv=glColor3b@4
|
||||
glColor3b=glColor3b@12
|
||||
glColor3bv=glColor3bv@4
|
||||
glColor3d=glColor3d@24
|
||||
glColor3dv=glColor3d@4
|
||||
glColor3dv=glColor3dv@4
|
||||
glColor3f=glColor3f@12
|
||||
glColor3fv=glColor3fv@4
|
||||
glColor3i=glColor3i@12
|
||||
glColor3iv=glColor3iv@4
|
||||
glColor3s=glColor3s@6
|
||||
glColor3s=glColor3s@12
|
||||
glColor3sv=glColor3sv@4
|
||||
glColor3ub=glColor3ub@3
|
||||
glColor3ub=glColor3ub@12
|
||||
glColor3ubv=glColor3ubv@4
|
||||
glColor3ui=glColor3ui@12
|
||||
glColor3uiv=glColor3uiv@4
|
||||
glColor3us=glColor3us@6
|
||||
glColor3us=glColor3us@12
|
||||
glColor3usv=glColor3usv@4
|
||||
|
||||
glColor4b=glColor4b@4
|
||||
glColor4b=glColor4b@16
|
||||
glColor4bv=glColor4bv@4
|
||||
glColor4d=glColor4d@32
|
||||
glColor4dv=glColor4dv@4
|
||||
|
@ -51,16 +51,16 @@ glColor4f=glColor4f@16
|
|||
glColor4fv=glColor4fv@4
|
||||
glColor4i=glColor4i@16
|
||||
glColor4iv=glColor4iv@4
|
||||
glColor4s=glColor4s@8
|
||||
glColor4s=glColor4s@16
|
||||
glColor4sv=glColor4sv@4
|
||||
glColor4ub=glColor4ub@4
|
||||
glColor4ub=glColor4ub@16
|
||||
glColor4ubv=glColor4ubv@4
|
||||
glColor4ui=glColor4ui@16
|
||||
glColor4uiv=glColor4uiv@4
|
||||
glColor4us=glColor4us@8
|
||||
glColor4us=glColor4us@16
|
||||
glColor4usv=glColor4usv@4
|
||||
|
||||
glColorMask=glColorMask@4
|
||||
glColorMask=glColorMask@16
|
||||
glColorMaterial=glColorMaterial@8
|
||||
glColorPointer=glColorPointer@16
|
||||
glCopyPixels=glCopyPixels@20
|
||||
|
@ -71,17 +71,17 @@ glCopyTexSubImage2D=glCopyTexSubImage2D@32
|
|||
glCullFace=glCullFace@4
|
||||
;glDebugEntry
|
||||
glDeleteLists=glDeleteLists@8
|
||||
glDeleteTextures=glDeleteTextues@8
|
||||
glDeleteTextures=glDeleteTextures@8
|
||||
glDepthFunc=glDepthFunc@4
|
||||
glDepthMask=glDepthMask@4
|
||||
glDepthRange=glDepthRange@8
|
||||
glDepthRange=glDepthRange@16
|
||||
glDisable=glDisable@4
|
||||
glDisableClientState=glDisableClientState@4
|
||||
glDrawArrays=glDrawArrays@12
|
||||
glDrawBuffer=glDrawBuffer@4
|
||||
glDrawElements=glDrawElements@16
|
||||
glDrawPixels=glDrawPixels@20
|
||||
glEdgeFlag=glEdgeFlag@1
|
||||
glEdgeFlag=glEdgeFlag@4
|
||||
glEdgeFlagPointer=glEdgeFlagPointer@8
|
||||
glEdgeFlagv=glEdgeFlagv@4
|
||||
glEnable=glEnable@4
|
||||
|
@ -99,20 +99,20 @@ glEvalCoord2f=glEvalCoord2f@8
|
|||
glEvalCoord2fv=glEvalCoord2fv@4
|
||||
|
||||
glEvalMesh1=glEvalMesh1@12
|
||||
glEvalMesh2=glEvalMesh2@12
|
||||
glEvalMesh2=glEvalMesh2@20
|
||||
glEvalPoint1=glEvalPoint1@4
|
||||
glEvalPoint2=glEvalPoint2@8
|
||||
glFeedbackBuffer=glFeedbackBuffer@12
|
||||
glFinish=glFinish@0
|
||||
glFlush=glFlush@0
|
||||
glFogf=glFogf@8
|
||||
glFogfv=glFogv@8
|
||||
glFogfv=glFogfv@8
|
||||
glFogi=glFogi@8
|
||||
glFogiv=glFogiv@8
|
||||
glFrontFace=glFrontFace@4
|
||||
glFrustum=glFrustum@48
|
||||
glGenLists=glGenLists@4
|
||||
glGenTextures=glGenTextires@8
|
||||
glGenTextures=glGenTextures@8
|
||||
glGetBooleanv=glGetBooleanv@8
|
||||
glGetClipPlane=glGetClipPlane@8
|
||||
glGetDoublev=glGetDoublev@8
|
||||
|
@ -151,15 +151,15 @@ glIndexi=glIndexi@4
|
|||
glIndexiv=glIndexiv@4
|
||||
glIndexMask=glIndexMask@4
|
||||
glIndexPointer=glIndexPointer@12
|
||||
glIndexs=glIndexs@2
|
||||
glIndexs=glIndexs@4
|
||||
glIndexsv=glIndexsv@4
|
||||
glIndexub=glIndexub@1
|
||||
glIndexub=glIndexub@4
|
||||
glIndexubv=glIndexubv@4
|
||||
glInitNames=glInitNames@0
|
||||
glInterleavedArrays=glInterleavedArrays@12
|
||||
glIsEnabled=glIsEnabled@4
|
||||
glIsList=glIsList@4
|
||||
glIsTexture=glTexture@4
|
||||
glIsTexture=glIsTexture@4
|
||||
|
||||
glLightf=glLightf@12
|
||||
glLightfv=glLightfv@12
|
||||
|
@ -170,7 +170,7 @@ glLightModelfv=glLightModelfv@8
|
|||
glLightModeli=glLightModeli@8
|
||||
glLightModeliv=glLightModeliv@8
|
||||
|
||||
glLineStipple=glLineStipple@6
|
||||
glLineStipple=glLineStipple@8
|
||||
glLineWidth=glLineWidth@4
|
||||
glListBase=glListBase@4
|
||||
glLoadIdentity=glLoadIdentity@0
|
||||
|
@ -204,7 +204,7 @@ glMultMatrixd=glMultMatrixd@4
|
|||
glMultMatrixf=glMultMatrixf@4
|
||||
glNewList=glNewList@8
|
||||
|
||||
glNormal3b=glNormal3b@3
|
||||
glNormal3b=glNormal3b@12
|
||||
glNormal3bv=glNormal3bv@4
|
||||
glNormal3d=glNormal3d@24
|
||||
glNormal3dv=glNormal3dv@4
|
||||
|
@ -212,11 +212,11 @@ glNormal3f=glNormal3f@12
|
|||
glNormal3fv=glNormal3fv@4
|
||||
glNormal3i=glNormal3i@12
|
||||
glNormal3iv=glNormal3iv@4
|
||||
glNormal3s=glNormal3s@6
|
||||
glNormal3s=glNormal3s@12
|
||||
glNormal3sv=glNormal3sv@4
|
||||
glNormalPointer=glNormalPointer@12
|
||||
|
||||
glOrtho=glOrtho@24
|
||||
glOrtho=glOrtho@48
|
||||
glPassThrough=glPassThrough@4
|
||||
glPixelMapfv=glPixelMapfv@12
|
||||
glPixelMapuiv=glPixelMapuiv@12
|
||||
|
@ -246,7 +246,7 @@ glRasterPos2fv=glRasterPos2fv@4
|
|||
glRasterPos2i=glRasterPos2i@8
|
||||
glRasterPos2iv=glRasterPos2iv@4
|
||||
glRasterPos2s=glRasterPos2s@8
|
||||
glRasterPos2sv=glRasterPos2sv@8
|
||||
glRasterPos2sv=glRasterPos2sv@4
|
||||
glRasterPos3d=glRasterPos3d@24
|
||||
glRasterPos3dv=glRasterPos3dv@4
|
||||
glRasterPos3f=glRasterPos3f@12
|
||||
|
@ -266,13 +266,13 @@ glRasterPos4sv=glRasterPos4sv@4
|
|||
glReadBuffer=glReadBuffer@4
|
||||
glReadPixels=glReadPixels@28
|
||||
glRectd=glRectd@32
|
||||
glRectdv=glRectdv@4
|
||||
glRectdv=glRectdv@8
|
||||
glRectf=glRectf@16
|
||||
glRectfv=glRectfv@4
|
||||
glRectfv=glRectfv@8
|
||||
glRecti=glRecti@16
|
||||
glRectiv=glRectiv@4
|
||||
glRectiv=glRectiv@8
|
||||
glRects=glRects@16
|
||||
glRectsv=glRectsv@4
|
||||
glRectsv=glRectsv@8
|
||||
glRenderMode=glRenderMode@4
|
||||
glRotated=glRotated@32
|
||||
glRotatef=glRotatef@16
|
||||
|
@ -291,7 +291,7 @@ glTexCoord1f=glTexCoord1f@4
|
|||
glTexCoord1fv=glTexCoord1fv@4
|
||||
glTexCoord1i=glTexCoord1i@4
|
||||
glTexCoord1iv=glTexCoord1iv@4
|
||||
glTexCoord1s=glTexCoord1s@2
|
||||
glTexCoord1s=glTexCoord1s@4
|
||||
glTexCoord1sv=glTexCoord1sv@4
|
||||
|
||||
glTexCoord2d=glTexCoord2d@16
|
||||
|
@ -300,7 +300,7 @@ glTexCoord2f=glTexCoord2f@8
|
|||
glTexCoord2fv=glTexCoord2fv@4
|
||||
glTexCoord2i=glTexCoord2i@8
|
||||
glTexCoord2iv=glTexCoord2iv@4
|
||||
glTexCoord2s=glTexCoord2s@4
|
||||
glTexCoord2s=glTexCoord2s@8
|
||||
glTexCoord2sv=glTexCoord2sv@4
|
||||
|
||||
glTexCoord3d=glTexCoord3d@24
|
||||
|
@ -309,7 +309,7 @@ glTexCoord3f=glTexCoord3f@12
|
|||
glTexCoord3fv=glTexCoord3fv@4
|
||||
glTexCoord3i=glTexCoord3i@12
|
||||
glTexCoord3iv=glTexCoord3iv@4
|
||||
glTexCoord3s=glTexCoord3s@6
|
||||
glTexCoord3s=glTexCoord3s@12
|
||||
glTexCoord3sv=glTexCoord3sv@4
|
||||
|
||||
glTexCoord4d=glTexCoord4d@32
|
||||
|
@ -318,7 +318,7 @@ glTexCoord4f=glTexCoord4f@16
|
|||
glTexCoord4fv=glTexCoord4fv@4
|
||||
glTexCoord4i=glTexCoord4i@16
|
||||
glTexCoord4iv=glTexCoord4iv@4
|
||||
glTexCoord4s=glTexCoord4s@8
|
||||
glTexCoord4s=glTexCoord4s@16
|
||||
glTexCoord4sv=glTexCoord4sv@4
|
||||
|
||||
glTexCoordPointer=glTexCoordPointer@16
|
||||
|
@ -333,7 +333,7 @@ glTexGenfv=glTexGenfv@12
|
|||
glTexGeni=glTexGeni@12
|
||||
glTexGeniv=glTexGeniv@12
|
||||
glTexImage1D=glTexImage1D@32
|
||||
glTexImage2D=glTexImage2d@36
|
||||
glTexImage2D=glTexImage2D@36
|
||||
glTexParameterf=glTexParameterf@12
|
||||
glTexParameterfv=glTexParameterfv@12
|
||||
glTexParameteri=glTexParameteri@12
|
||||
|
@ -341,8 +341,8 @@ glTexParameteriv=glTexParameteriv@12
|
|||
glTexSubImage1D=glTexSubImage1D@28
|
||||
glTexSubImage2D=glTexSubImage2D@36
|
||||
|
||||
glTranslated=glTranslated@32
|
||||
glTranslatef=glTranslated@16
|
||||
glTranslated=glTranslated@24
|
||||
glTranslatef=glTranslatef@12
|
||||
|
||||
glVertex2d=glVertex2d@16
|
||||
glVertex2dv=glVertex2dv@4
|
||||
|
@ -350,7 +350,7 @@ glVertex2f=glVertex2f@8
|
|||
glVertex2fv=glVertex2fv@4
|
||||
glVertex2i=glVertex2i@8
|
||||
glVertex2iv=glVertex2iv@4
|
||||
glVertex2s=glVertex2s@4
|
||||
glVertex2s=glVertex2s@8
|
||||
glVertex2sv=glVertex2sv@4
|
||||
|
||||
glVertex3d=glVertex3d@24
|
||||
|
@ -359,7 +359,7 @@ glVertex3f=glVertex3f@12
|
|||
glVertex3fv=glVertex3fv@4
|
||||
glVertex3i=glVertex3i@12
|
||||
glVertex3iv=glVertex3iv@4
|
||||
glVertex3s=glVertex3s@6
|
||||
glVertex3s=glVertex3s@12
|
||||
glVertex3sv=glVertex3sv@4
|
||||
|
||||
glVertex4d=glVertex4d@32
|
||||
|
@ -368,7 +368,7 @@ glVertex4f=glVertex4f@16
|
|||
glVertex4fv=glVertex4fv@4
|
||||
glVertex4i=glVertex4i@16
|
||||
glVertex4iv=glVertex4iv@4
|
||||
glVertex4s=glVertex4s@8
|
||||
glVertex4s=glVertex4s@16
|
||||
glVertex4sv=glVertex4sv@4
|
||||
|
||||
glVertexPointer=glVertexPointer@16
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: opengl32.h,v 1.7 2004/02/03 14:23:42 royce Exp $
|
||||
/* $Id: opengl32.h,v 1.8 2004/02/05 04:28:11 royce Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -13,374 +13,45 @@
|
|||
#define OPENGL32_PRIVATE_H
|
||||
|
||||
/* debug flags */
|
||||
#define DEBUG_OPENGL32
|
||||
#define DEBUG_OPENGL32_ICD_EXPORTS /* dumps the list of (un)supported glXXX
|
||||
#if !defined(NDEBUG)
|
||||
# define DEBUG_OPENGL32
|
||||
# define DEBUG_OPENGL32_BRKPTS /* enable breakpoints */
|
||||
# define DEBUG_OPENGL32_ICD_EXPORTS /* dumps the list of (un)supported glXXX
|
||||
functions when an ICD is loaded. */
|
||||
#endif /* !NDEBUG */
|
||||
|
||||
/* debug macros */
|
||||
#if 0//def DEBUG_OPENGL32
|
||||
#if 0//def DEBUG_OPENGL32 /* FIXME: DPRINT wants DbgPrint - where is it? */
|
||||
# include <debug.h>
|
||||
# define DBGPRINT( fmt, args... ) \
|
||||
DPRINT( "OpenGL32.DLL: %s: "fmt, __FUNCTION__, ##args )
|
||||
DPRINT( "OpenGL32.DLL: %s: "fmt"\n", __FUNCTION__, ##args )
|
||||
#else
|
||||
# define DBGPRINT( ... ) do {} while (0)
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_OPENGL32_BRKPTS
|
||||
# if defined(__GNUC__)
|
||||
# define DBGBREAK() __asm__( "int $3" );
|
||||
# elif defined(_MSC_VER)
|
||||
# define DBGBREAK() __asm { int 3 }
|
||||
# else
|
||||
# error Unsupported compiler!
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* function/data attributes */
|
||||
#define EXPORT __declspec(dllexport)
|
||||
#define NAKED __attribute__((naked))
|
||||
#define SHARED __attribute__((section("shared"), shared))
|
||||
|
||||
|
||||
/* gl function list */
|
||||
#include "glfuncs.h"
|
||||
#if 0
|
||||
#define GLFUNCS_MACRO \
|
||||
X(glAccum) \
|
||||
X(glAddSwapHintRectWIN) \
|
||||
X(glAlphaFunc) \
|
||||
X(glAreTexturesResident) \
|
||||
X(glArrayElement) \
|
||||
X(glBegin) \
|
||||
X(glBindTexture) \
|
||||
X(glBitmap) \
|
||||
X(glBlendFunc) \
|
||||
X(glCallList) \
|
||||
X(glCallLists) \
|
||||
X(glClear) \
|
||||
X(glClearAccum) \
|
||||
X(glClearColor) \
|
||||
X(glClearDepth) \
|
||||
X(glClearIndex) \
|
||||
X(glClearStencil) \
|
||||
X(glClipPlane) \
|
||||
X(glColor3b) \
|
||||
X(glColor3bv) \
|
||||
X(glColor3d) \
|
||||
X(glColor3dv) \
|
||||
X(glColor3f) \
|
||||
X(glColor3fv) \
|
||||
X(glColor3i) \
|
||||
X(glColor3iv) \
|
||||
X(glColor3s) \
|
||||
X(glColor3sv) \
|
||||
X(glColor3ub) \
|
||||
X(glColor3ubv) \
|
||||
X(glColor3ui) \
|
||||
X(glColor3uiv) \
|
||||
X(glColor3us) \
|
||||
X(glColor3usv) \
|
||||
X(glColor4b) \
|
||||
X(glColor4bv) \
|
||||
X(glColor4d) \
|
||||
X(glColor4dv) \
|
||||
X(glColor4f) \
|
||||
X(glColor4fv) \
|
||||
X(glColor4i) \
|
||||
X(glColor4iv) \
|
||||
X(glColor4s) \
|
||||
X(glColor4sv) \
|
||||
X(glColor4ub) \
|
||||
X(glColor4ubv) \
|
||||
X(glColor4ui) \
|
||||
X(glColor4uiv) \
|
||||
X(glColor4us) \
|
||||
X(glColor4usv) \
|
||||
X(glColorMask) \
|
||||
X(glColorMaterial) \
|
||||
X(glColorPointer) \
|
||||
X(glCopyPixels) \
|
||||
X(glCopyTexImage1D) \
|
||||
X(glCopyTexImage2D) \
|
||||
X(glCopyTexSubImage1D) \
|
||||
X(glCopyTexSubImage2D) \
|
||||
X(glCullFace) \
|
||||
X(glDebugEntry) \
|
||||
X(glDeleteLists) \
|
||||
X(glDeleteTextures) \
|
||||
X(glDepthFunc) \
|
||||
X(glDepthMask) \
|
||||
X(glDepthRange) \
|
||||
X(glDisable) \
|
||||
X(glDisableClientState) \
|
||||
X(glDrawArrays) \
|
||||
X(glDrawBuffer) \
|
||||
X(glDrawElements) \
|
||||
X(glDrawPixels) \
|
||||
X(glEdgeFlag) \
|
||||
X(glEdgeFlagPointer) \
|
||||
X(glEdgeFlagv) \
|
||||
X(glEnable) \
|
||||
X(glEnableClientState) \
|
||||
X(glEnd) \
|
||||
X(glEndList) \
|
||||
X(glEvalCoord1d) \
|
||||
X(glEvalCoord1dv) \
|
||||
X(glEvalCoord1f) \
|
||||
X(glEvalCoord1fv) \
|
||||
X(glEvalCoord2d) \
|
||||
X(glEvalCoord2dv) \
|
||||
X(glEvalCoord2f) \
|
||||
X(glEvalCoord2fv) \
|
||||
X(glEvalMesh1) \
|
||||
X(glEvalMesh2) \
|
||||
X(glEvalPoint1) \
|
||||
X(glEvalPoint2) \
|
||||
X(glFeedbackBuffer) \
|
||||
X(glFinish) \
|
||||
X(glFlush) \
|
||||
X(glFogf) \
|
||||
X(glFogfv) \
|
||||
X(glFogi) \
|
||||
X(glFogiv) \
|
||||
X(glFrontFace) \
|
||||
X(glFrustum) \
|
||||
X(glGenLists) \
|
||||
X(glGenTextures) \
|
||||
X(glGetBooleanv) \
|
||||
X(glGetClipPlane) \
|
||||
X(glGetDoublev) \
|
||||
X(glGetError) \
|
||||
X(glGetFloatv) \
|
||||
X(glGetIntegerv) \
|
||||
X(glGetLightfv) \
|
||||
X(glGetLightiv) \
|
||||
X(glGetMapdv) \
|
||||
X(glGetMapfv) \
|
||||
X(glGetMapiv) \
|
||||
X(glGetMaterialfv) \
|
||||
X(glGetMaterialiv) \
|
||||
X(glGetPixelMapfv) \
|
||||
X(glGetPixelMapuiv) \
|
||||
X(glGetPixelMapusv) \
|
||||
X(glGetPointerv) \
|
||||
X(glGetPolygonStipple) \
|
||||
X(glGetString) \
|
||||
X(glGetTexEnvfv) \
|
||||
X(glGetTexEnviv) \
|
||||
X(glGetTexGendv) \
|
||||
X(glGetTexGenfv) \
|
||||
X(glGetTexGeniv) \
|
||||
X(glGetTexImage) \
|
||||
X(glGetTexLevelParameterfv) \
|
||||
X(glGetTexLevelParameteriv) \
|
||||
X(glGetTexParameterfv) \
|
||||
X(glGetTexParameteriv) \
|
||||
X(glHint) \
|
||||
X(glIndexd) \
|
||||
X(glIndexdv) \
|
||||
X(glIndexf) \
|
||||
X(glIndexfv) \
|
||||
X(glIndexi) \
|
||||
X(glIndexiv) \
|
||||
X(glIndexMask) \
|
||||
X(glIndexPointer) \
|
||||
X(glIndexs) \
|
||||
X(glIndexsv) \
|
||||
X(glIndexub) \
|
||||
X(glIndexubv) \
|
||||
X(glInitNames) \
|
||||
X(glInterleavedArrays) \
|
||||
X(glIsEnabled) \
|
||||
X(glIsList) \
|
||||
X(glIsTexture) \
|
||||
X(glLightf) \
|
||||
X(glLightfv) \
|
||||
X(glLighti) \
|
||||
X(glLightiv) \
|
||||
X(glLightModelf) \
|
||||
X(glLightModelfv) \
|
||||
X(glLightModeli) \
|
||||
X(glLightModeliv) \
|
||||
X(glLineStipple) \
|
||||
X(glLineWidth) \
|
||||
X(glListBase) \
|
||||
X(glLoadIdentity) \
|
||||
X(glLoadMatrixd) \
|
||||
X(glLoadMatrixf) \
|
||||
X(glLoadName) \
|
||||
X(glLogicOp) \
|
||||
X(glMap1d) \
|
||||
X(glMap1f) \
|
||||
X(glMap2d) \
|
||||
X(glMap2f) \
|
||||
X(glMapGrid1d) \
|
||||
X(glMapGrid1f) \
|
||||
X(glMapGrid2d) \
|
||||
X(glMapGrid2f) \
|
||||
X(glMaterialf) \
|
||||
X(glMaterialfv) \
|
||||
X(glMateriali) \
|
||||
X(glMaterialiv) \
|
||||
X(glMatrixMode) \
|
||||
X(glMultMatrixd) \
|
||||
X(glMultMatrixf) \
|
||||
X(glNewList) \
|
||||
X(glNormal3b) \
|
||||
X(glNormal3bv) \
|
||||
X(glNormal3d) \
|
||||
X(glNormal3dv) \
|
||||
X(glNormal3f) \
|
||||
X(glNormal3fv) \
|
||||
X(glNormal3i) \
|
||||
X(glNormal3iv) \
|
||||
X(glNormal3s) \
|
||||
X(glNormal3sv) \
|
||||
X(glNormalPointer) \
|
||||
X(glOrtho) \
|
||||
X(glPassThrough) \
|
||||
X(glPixelMapfv) \
|
||||
X(glPixelMapuiv) \
|
||||
X(glPixelMapusv) \
|
||||
X(glPixelStoref) \
|
||||
X(glPixelStorei) \
|
||||
X(glPixelTransferf) \
|
||||
X(glPixelTransferi) \
|
||||
X(glPixelZoom) \
|
||||
X(glPointSize) \
|
||||
X(glPolygonMode) \
|
||||
X(glPolygonOffset) \
|
||||
X(glPolygonStipple) \
|
||||
X(glPopAttrib) \
|
||||
X(glPopClientAttrib) \
|
||||
X(glPopMatrix) \
|
||||
X(glPopName) \
|
||||
X(glPrioritizeTextures) \
|
||||
X(glPushAttrib) \
|
||||
X(glPushClientAttrib) \
|
||||
X(glPushMatrix) \
|
||||
X(glPushName) \
|
||||
X(glRasterPos2d) \
|
||||
X(glRasterPos2dv) \
|
||||
X(glRasterPos2f) \
|
||||
X(glRasterPos2fv) \
|
||||
X(glRasterPos2i) \
|
||||
X(glRasterPos2iv) \
|
||||
X(glRasterPos2s) \
|
||||
X(glRasterPos2sv) \
|
||||
X(glRasterPos3d) \
|
||||
X(glRasterPos3dv) \
|
||||
X(glRasterPos3f) \
|
||||
X(glRasterPos3fv) \
|
||||
X(glRasterPos3i) \
|
||||
X(glRasterPos3iv) \
|
||||
X(glRasterPos3s) \
|
||||
X(glRasterPos3sv) \
|
||||
X(glRasterPos4d) \
|
||||
X(glRasterPos4dv) \
|
||||
X(glRasterPos4f) \
|
||||
X(glRasterPos4fv) \
|
||||
X(glRasterPos4i) \
|
||||
X(glRasterPos4iv) \
|
||||
X(glRasterPos4s) \
|
||||
X(glRasterPos4sv) \
|
||||
X(glReadBuffer) \
|
||||
X(glReadPixels) \
|
||||
X(glRectd) \
|
||||
X(glRectdv) \
|
||||
X(glRectf) \
|
||||
X(glRectfv) \
|
||||
X(glRecti) \
|
||||
X(glRectiv) \
|
||||
X(glRects) \
|
||||
X(glRectsv) \
|
||||
X(glRenderMode) \
|
||||
X(glRotated) \
|
||||
X(glRotatef) \
|
||||
X(glScaled) \
|
||||
X(glScalef) \
|
||||
X(glScissor) \
|
||||
X(glSelectBuffer) \
|
||||
X(glShadeModel) \
|
||||
X(glStencilFunc) \
|
||||
X(glStencilMask) \
|
||||
X(glStencilOp) \
|
||||
X(glTexCoord1d) \
|
||||
X(glTexCoord1dv) \
|
||||
X(glTexCoord1f) \
|
||||
X(glTexCoord1fv) \
|
||||
X(glTexCoord1i) \
|
||||
X(glTexCoord1iv) \
|
||||
X(glTexCoord1s) \
|
||||
X(glTexCoord1sv) \
|
||||
X(glTexCoord2d) \
|
||||
X(glTexCoord2dv) \
|
||||
X(glTexCoord2f) \
|
||||
X(glTexCoord2fv) \
|
||||
X(glTexCoord2i) \
|
||||
X(glTexCoord2iv) \
|
||||
X(glTexCoord2s) \
|
||||
X(glTexCoord2sv) \
|
||||
X(glTexCoord3d) \
|
||||
X(glTexCoord3dv) \
|
||||
X(glTexCoord3f) \
|
||||
X(glTexCoord3fv) \
|
||||
X(glTexCoord3i) \
|
||||
X(glTexCoord3iv) \
|
||||
X(glTexCoord3s) \
|
||||
X(glTexCoord3sv) \
|
||||
X(glTexCoord4d) \
|
||||
X(glTexCoord4dv) \
|
||||
X(glTexCoord4f) \
|
||||
X(glTexCoord4fv) \
|
||||
X(glTexCoord4i) \
|
||||
X(glTexCoord4iv) \
|
||||
X(glTexCoord4s) \
|
||||
X(glTexCoord4sv) \
|
||||
X(glTexCoordPointer) \
|
||||
X(glTexEnvf) \
|
||||
X(glTexEnvfv) \
|
||||
X(glTexEnvi) \
|
||||
X(glTexEnviv) \
|
||||
X(glTexGend) \
|
||||
X(glTexGendv) \
|
||||
X(glTexGenf) \
|
||||
X(glTexGenfv) \
|
||||
X(glTexGeni) \
|
||||
X(glTexGeniv) \
|
||||
X(glTexImage1D) \
|
||||
X(glTexImage2D) \
|
||||
X(glTexParameterf) \
|
||||
X(glTexParameterfv) \
|
||||
X(glTexParameteri) \
|
||||
X(glTexParameteriv) \
|
||||
X(glTexSubImage1D) \
|
||||
X(glTexSubImage2D) \
|
||||
X(glTranslated) \
|
||||
X(glTranslatef) \
|
||||
X(glVertex2d) \
|
||||
X(glVertex2dv) \
|
||||
X(glVertex2f) \
|
||||
X(glVertex2fv) \
|
||||
X(glVertex2i) \
|
||||
X(glVertex2iv) \
|
||||
X(glVertex2s) \
|
||||
X(glVertex2sv) \
|
||||
X(glVertex3d) \
|
||||
X(glVertex3dv) \
|
||||
X(glVertex3f) \
|
||||
X(glVertex3fv) \
|
||||
X(glVertex3i) \
|
||||
X(glVertex3iv) \
|
||||
X(glVertex3s) \
|
||||
X(glVertex3sv) \
|
||||
X(glVertex4d) \
|
||||
X(glVertex4dv) \
|
||||
X(glVertex4f) \
|
||||
X(glVertex4fv) \
|
||||
X(glVertex4i) \
|
||||
X(glVertex4iv) \
|
||||
X(glVertex4s) \
|
||||
X(glVertex4sv) \
|
||||
X(glVertexPointer) \
|
||||
X(glViewport)
|
||||
#endif /* 0 */
|
||||
|
||||
/* table indices for funcnames and function pointers */
|
||||
enum glfunc_indices
|
||||
{
|
||||
GLIDX_INVALID = -1,
|
||||
#define X(func, ret, args) GLIDX_##func,
|
||||
#define X(func, ret, typeargs, args) GLIDX_##func,
|
||||
GLFUNCS_MACRO
|
||||
#undef X
|
||||
GLIDX_COUNT
|
||||
|
@ -420,7 +91,7 @@ typedef struct tagGLDRIVERDATA
|
|||
BOOL (*DrvShareLists)( HGLRC, HGLRC );
|
||||
BOOL (*DrvSwapBuffers)( HDC );
|
||||
BOOL (*DrvSwapLayerBuffers)( HDC, UINT );
|
||||
void (*DrvValidateVersion)();
|
||||
BOOL (*DrvValidateVersion)( DWORD );
|
||||
|
||||
PVOID func_list[GLIDX_COUNT]; /* glXXX functions supported by ICD */
|
||||
|
||||
|
@ -446,7 +117,9 @@ typedef struct tagGLRC
|
|||
typedef struct tagGLPROCESSDATA
|
||||
{
|
||||
GLDRIVERDATA *driver_list; /* list of loaded drivers */
|
||||
GLRC *glrc_list; /* list of GL rendering contexts */
|
||||
HANDLE driver_mutex; /* mutex to protect driver list */
|
||||
GLRC *glrc_list; /* list of GL rendering contexts */
|
||||
HANDLE glrc_mutex; /* mutex to protect glrc list */
|
||||
} GLPROCESSDATA;
|
||||
|
||||
/* TLS data */
|
||||
|
@ -462,6 +135,8 @@ extern GLPROCESSDATA OPENGL32_processdata;
|
|||
/* function prototypes */
|
||||
GLDRIVERDATA *OPENGL32_LoadICD( LPCWSTR driver );
|
||||
BOOL OPENGL32_UnloadICD( GLDRIVERDATA *icd );
|
||||
DWORD OPENGL32_RegEnumDrivers( DWORD idx, LPWSTR name, LPDWORD cName );
|
||||
DWORD OPENGL32_RegGetDriverInfo( LPCWSTR driver, GLDRIVERDATA *icd );
|
||||
|
||||
#endif//OPENGL32_PRIVATE_H
|
||||
|
||||
|
|
|
@ -10,17 +10,23 @@
|
|||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include <winreg.h>
|
||||
|
||||
#include "opengl32.h"
|
||||
|
||||
|
||||
/* FUNCTION: Append OpenGL Rendering Context (GLRC) to list
|
||||
* ARGUMENTS: [IN] glrc: GLRC to append to list
|
||||
* TODO: protect from race conditions
|
||||
*/
|
||||
static void WGL_AppendContext( GLRC *glrc )
|
||||
{
|
||||
/* synchronize */
|
||||
if (WaitForSingleObject( OPENGL32_processdata.glrc_mutex, INFINITE ) ==
|
||||
WAIT_FAILED)
|
||||
{
|
||||
DBGPRINT( "Error: WaitForSingleObject() failed (%d)", GetLastError() );
|
||||
return; /* FIXME: do we have to expect such an error and handle it? */
|
||||
}
|
||||
|
||||
if (OPENGL32_processdata.glrc_list == NULL)
|
||||
OPENGL32_processdata.glrc_list = glrc;
|
||||
else
|
||||
|
@ -30,15 +36,26 @@ static void WGL_AppendContext( GLRC *glrc )
|
|||
p = p->next;
|
||||
p->next = glrc;
|
||||
}
|
||||
|
||||
/* release mutex */
|
||||
if (!ReleaseMutex( OPENGL32_processdata.glrc_mutex ))
|
||||
DBGPRINT( "Error: ReleaseMutex() failed (%d)", GetLastError() );
|
||||
}
|
||||
|
||||
|
||||
/* FUNCTION: Remove OpenGL Rendering Context (GLRC) from list
|
||||
* ARGUMENTS: [IN] glrc: GLRC to remove from list
|
||||
* TODO: protect from race conditions
|
||||
*/
|
||||
static void WGL_RemoveContext( GLRC *glrc )
|
||||
{
|
||||
/* synchronize */
|
||||
if (WaitForSingleObject( OPENGL32_processdata.glrc_mutex, INFINITE ) ==
|
||||
WAIT_FAILED)
|
||||
{
|
||||
DBGPRINT( "Error: WaitForSingleObject() failed (%d)", GetLastError() );
|
||||
return; /* FIXME: do we have to expect such an error and handle it? */
|
||||
}
|
||||
|
||||
if (glrc == OPENGL32_processdata.glrc_list)
|
||||
OPENGL32_processdata.glrc_list = glrc->next;
|
||||
else
|
||||
|
@ -55,6 +72,10 @@ static void WGL_RemoveContext( GLRC *glrc )
|
|||
}
|
||||
DBGPRINT( "Error: GLRC 0x%08x not found in list!", glrc );
|
||||
}
|
||||
|
||||
/* release mutex */
|
||||
if (!ReleaseMutex( OPENGL32_processdata.glrc_mutex ))
|
||||
DBGPRINT( "Error: ReleaseMutex() failed (%d)", GetLastError() );
|
||||
}
|
||||
|
||||
/* FUNCTION: Check wether a GLRC is in the list
|
||||
|
@ -75,6 +96,19 @@ static BOOL WGL_ContainsContext( GLRC *glrc )
|
|||
}
|
||||
|
||||
|
||||
/* FUNCTION: SetContextCallBack passed to DrvSetContext. Gets called whenever
|
||||
* the current GL context (dispatch table) is to be changed - can
|
||||
* be multiple times for one DrvSetContext call.
|
||||
* ARGUMENTS: [IN] table Function pointer table (first DWORD is number of
|
||||
* functions)
|
||||
* RETURNS: unkown
|
||||
*/
|
||||
DWORD CALLBACK WGL_SetContextCallBack( void *table )
|
||||
{
|
||||
DBGPRINT( "Function count: %d\n", *(DWORD *)table );
|
||||
DBGBREAK();
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/* FUNCTION: Copy data specified by mask from one GLRC to another.
|
||||
|
@ -118,88 +152,7 @@ BOOL WINAPI wglCopyContext( HGLRC hsrc, HGLRC hdst, UINT mask )
|
|||
*/
|
||||
HGLRC WINAPI wglCreateContext( HDC hdc )
|
||||
{
|
||||
HKEY hKey;
|
||||
WCHAR subKey[1024] = L"SOFTWARE\\Microsoft\\Windows NT\\"
|
||||
"CurrentVersion\\OpenGLDrivers";
|
||||
LONG ret;
|
||||
WCHAR driver[256];
|
||||
DWORD size;
|
||||
DWORD dw;
|
||||
FILETIME time;
|
||||
|
||||
GLDRIVERDATA *icd;
|
||||
GLRC *glrc;
|
||||
HGLRC drvHglrc = NULL;
|
||||
|
||||
if (GetObjectType( hdc ) != OBJ_DC)
|
||||
{
|
||||
DBGPRINT( "Error: hdc is not a DC handle!" );
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* open "OpenGLDrivers" key */
|
||||
ret = RegOpenKeyExW( HKEY_LOCAL_MACHINE, subKey, 0, KEY_READ, &hKey );
|
||||
if (ret != ERROR_SUCCESS)
|
||||
{
|
||||
DBGPRINT( "Error: Couldn't open registry key '%ws'", subKey );
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* allocate our GLRC */
|
||||
glrc = (GLRC*)HeapAlloc( GetProcessHeap(),
|
||||
HEAP_ZERO_MEMORY | HEAP_GENERATE_EXCEPTIONS, sizeof (GLRC) );
|
||||
if (!glrc)
|
||||
return NULL;
|
||||
|
||||
/* try to find an ICD */
|
||||
for (dw = 0; ; dw++)
|
||||
{
|
||||
size = 256;
|
||||
ret = RegEnumKeyExW( hKey, dw, driver, &size, NULL, NULL, NULL, &time );
|
||||
if (ret != ERROR_SUCCESS )
|
||||
break;
|
||||
|
||||
icd = OPENGL32_LoadICD( driver );
|
||||
if (icd == NULL) /* try next ICD */
|
||||
continue;
|
||||
|
||||
drvHglrc = icd->DrvCreateContext( hdc );
|
||||
if (drvHglrc == NULL) /* try next ICD */
|
||||
{
|
||||
DBGPRINT( "Info: DrvCreateContext (driver = %ws) failed: %d",
|
||||
icd->driver_name, GetLastError() );
|
||||
OPENGL32_UnloadICD( icd );
|
||||
continue;
|
||||
}
|
||||
|
||||
/* the ICD was loaded successfully and we got a HGLRC in drvHglrc */
|
||||
break;
|
||||
}
|
||||
RegCloseKey( hKey );
|
||||
|
||||
if (drvHglrc == NULL) /* no ICD was found */
|
||||
{
|
||||
/* FIXME: fallback to mesa */
|
||||
DBGPRINT( "Error: No ICD found!" );
|
||||
HeapFree( GetProcessHeap(), 0, glrc );
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* we have our GLRC in glrc and the ICD's GLRC in drvHglrc */
|
||||
glrc->hglrc = drvHglrc;
|
||||
glrc->iFormat = -1; /* what is this used for? */
|
||||
glrc->icd = icd;
|
||||
memcpy( glrc->func_list, icd->func_list, sizeof (PVOID) * GLIDX_COUNT );
|
||||
|
||||
/* FIXME: fill NULL-pointers in glrc->func_list with mesa functions */
|
||||
|
||||
/* append glrc to context list */
|
||||
WGL_AppendContext( glrc );
|
||||
|
||||
return (HGLRC)glrc;
|
||||
|
||||
/* FIXME: dunno if this is right, would be nice :) */
|
||||
/*return wglCreateLayerContext( hdc, 0 );*/
|
||||
return wglCreateLayerContext( hdc, 0 );
|
||||
}
|
||||
|
||||
|
||||
|
@ -211,14 +164,9 @@ HGLRC WINAPI wglCreateContext( HDC hdc )
|
|||
*/
|
||||
HGLRC WINAPI wglCreateLayerContext( HDC hdc, int layer )
|
||||
{
|
||||
HKEY hKey;
|
||||
WCHAR subKey[1024] = L"SOFTWARE\\Microsoft\\Windows NT\\"
|
||||
"CurrentVersion\\OpenGLDrivers";
|
||||
LONG ret;
|
||||
WCHAR driver[256];
|
||||
DWORD size;
|
||||
DWORD dw;
|
||||
FILETIME time;
|
||||
DWORD dw, size;
|
||||
|
||||
GLDRIVERDATA *icd;
|
||||
GLRC *glrc;
|
||||
|
@ -230,36 +178,36 @@ HGLRC WINAPI wglCreateLayerContext( HDC hdc, int layer )
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/* open "OpenGLDrivers" key */
|
||||
ret = RegOpenKeyExW( HKEY_LOCAL_MACHINE, subKey, 0, KEY_READ, &hKey );
|
||||
if (ret != ERROR_SUCCESS)
|
||||
{
|
||||
DBGPRINT( "Error: Couldn't open registry key '%ws'", subKey );
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* allocate our GLRC */
|
||||
glrc = (GLRC*)HeapAlloc( GetProcessHeap(),
|
||||
HEAP_ZERO_MEMORY | HEAP_GENERATE_EXCEPTIONS, sizeof (GLRC) );
|
||||
if (!glrc)
|
||||
if (glrc == NULL)
|
||||
return NULL;
|
||||
|
||||
/* try to find an ICD */
|
||||
for (dw = 0; ; dw++)
|
||||
for (dw = 0; drvHglrc == NULL; dw++) /* enumerate values */
|
||||
{
|
||||
size = 256;
|
||||
ret = RegEnumKeyExW( hKey, dw, driver, &size, NULL, NULL, NULL, &time );
|
||||
if (ret != ERROR_SUCCESS )
|
||||
size = sizeof (driver) / sizeof (driver[0]);
|
||||
ret = OPENGL32_RegEnumDrivers( dw, driver, &size );
|
||||
if (ret != ERROR_SUCCESS)
|
||||
break;
|
||||
|
||||
icd = OPENGL32_LoadICD( driver );
|
||||
if (icd == NULL) /* try next ICD */
|
||||
continue;
|
||||
|
||||
drvHglrc = icd->DrvCreateLayerContext( hdc, layer );
|
||||
if (icd->DrvCreateLayerContext)
|
||||
drvHglrc = icd->DrvCreateLayerContext( hdc, layer );
|
||||
else
|
||||
{
|
||||
if (layer == 0)
|
||||
drvHglrc = icd->DrvCreateContext( hdc );
|
||||
else
|
||||
DBGPRINT( "Warning: CreateLayerContext not supported by ICD!" );
|
||||
}
|
||||
if (drvHglrc == NULL) /* try next ICD */
|
||||
{
|
||||
DBGPRINT( "Info: DrvCreateLayerContext (driver = %ws) failed: %d",
|
||||
DBGPRINT( "Info: DrvCreateContext (driver = %ws) failed: %d",
|
||||
icd->driver_name, GetLastError() );
|
||||
OPENGL32_UnloadICD( icd );
|
||||
continue;
|
||||
|
@ -268,12 +216,11 @@ HGLRC WINAPI wglCreateLayerContext( HDC hdc, int layer )
|
|||
/* the ICD was loaded successfully and we got a HGLRC in drvHglrc */
|
||||
break;
|
||||
}
|
||||
RegCloseKey( hKey );
|
||||
|
||||
if (drvHglrc == NULL) /* no ICD was found */
|
||||
{
|
||||
/* FIXME: fallback to mesa */
|
||||
DBGPRINT( "Error: No ICD found!" );
|
||||
DBGPRINT( "Error: No working ICD found!" );
|
||||
HeapFree( GetProcessHeap(), 0, glrc );
|
||||
return NULL;
|
||||
}
|
||||
|
@ -395,13 +342,14 @@ PROC WINAPI wglGetProcAddress( LPCSTR proc )
|
|||
/* FIXME: go through own functions? */
|
||||
DBGPRINT( "Unsupported GL extension: %s", proc );
|
||||
}
|
||||
else if (proc[0] == 'w' && proc[1] == 'g' && proc[2] == 'l') /* wglXXX */
|
||||
if (proc[0] == 'w' && proc[1] == 'g' && proc[2] == 'l') /* wglXXX */
|
||||
{
|
||||
/* FIXME: support wgl extensions? (there are such IIRC) */
|
||||
DBGPRINT( "Unsupported WGL extension: %s", proc );
|
||||
}
|
||||
else if (proc[0] == 'g' && proc[1] == 'l' && proc[2] == 'u') /* gluXXX */
|
||||
if (proc[0] == 'g' && proc[1] == 'l' && proc[2] == 'u') /* gluXXX */
|
||||
{
|
||||
/* FIXME: do we support these as well? */
|
||||
DBGPRINT( "GLU extension %s requested, returning NULL", proc );
|
||||
}
|
||||
|
||||
|
@ -418,6 +366,8 @@ BOOL WINAPI wglMakeCurrent( HDC hdc, HGLRC hglrc )
|
|||
{
|
||||
GLRC *glrc = (GLRC *)hglrc;
|
||||
|
||||
/* FIXME: glFlush() current context */
|
||||
|
||||
/* check hdc */
|
||||
if (GetObjectType( hdc ) != OBJ_DC)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue