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