/* =========================================================================== Doom 3 BFG Edition GPL Source Code Copyright (C) 1993-2012 id Software LLC, a ZeniMax Media company. This file is part of the Doom 3 BFG Edition GPL Source Code ("Doom 3 BFG Edition Source Code"). Doom 3 BFG Edition Source Code is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Doom 3 BFG Edition Source Code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Doom 3 BFG Edition Source Code. If not, see . In addition, the Doom 3 BFG Edition Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the Doom 3 BFG Edition Source Code. If not, please request a copy in writing from id Software at the address below. If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA. =========================================================================== */ /* ** QGL.H */ #ifndef __QGL_H__ #define __QGL_H__ #include #ifndef APIENTRY #define APIENTRY #endif #ifndef WINAPI #define WINAPI #endif // only use local glext.h if we are not using the system one already // http://oss.sgi.com/projects/ogl-sample/ABI/ #ifndef GL_GLEXT_VERSION #include "glext.h" #endif typedef void ( *GLExtension_t )( void ); #ifdef __cplusplus extern "C" { #endif GLExtension_t GLimp_ExtensionPointer( const char* name ); #ifdef __cplusplus } #endif // GL_EXT_direct_state_access extern PFNGLBINDMULTITEXTUREEXTPROC qglBindMultiTextureEXT; // GL_ARB_texture_compression extern PFNGLCOMPRESSEDTEXIMAGE2DARBPROC qglCompressedTexImage2DARB; extern PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC qglCompressedTexSubImage2DARB; extern PFNGLGETCOMPRESSEDTEXIMAGEARBPROC qglGetCompressedTexImageARB; // GL_ARB_vertex_buffer_object extern PFNGLBINDBUFFERARBPROC qglBindBufferARB; extern PFNGLBINDBUFFERRANGEPROC qglBindBufferRange; extern PFNGLDELETEBUFFERSARBPROC qglDeleteBuffersARB; extern PFNGLGENBUFFERSARBPROC qglGenBuffersARB; extern PFNGLISBUFFERARBPROC qglIsBufferARB; extern PFNGLBUFFERDATAARBPROC qglBufferDataARB; extern PFNGLBUFFERSUBDATAARBPROC qglBufferSubDataARB; extern PFNGLGETBUFFERSUBDATAARBPROC qglGetBufferSubDataARB; extern PFNGLMAPBUFFERARBPROC qglMapBufferARB; extern PFNGLUNMAPBUFFERARBPROC qglUnmapBufferARB; extern PFNGLGETBUFFERPARAMETERIVARBPROC qglGetBufferParameterivARB; extern PFNGLGETBUFFERPOINTERVARBPROC qglGetBufferPointervARB; // GL_ARB_map_buffer_Range extern PFNGLMAPBUFFERRANGEPROC qglMapBufferRange; // GL_ARB_draw_elements_base_vertex extern PFNGLDRAWELEMENTSBASEVERTEXPROC qglDrawElementsBaseVertex; // GL_ARB_vertex_array_object extern PFNGLGENVERTEXARRAYSPROC qglGenVertexArrays; extern PFNGLBINDVERTEXARRAYPROC qglBindVertexArray; extern PFNGLDELETEVERTEXARRAYSPROC qglDeleteVertexArrays; // GL_ARB_vertex_program / GL_ARB_fragment_program extern PFNGLVERTEXATTRIBPOINTERARBPROC qglVertexAttribPointerARB; extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC qglEnableVertexAttribArrayARB; extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC qglDisableVertexAttribArrayARB; extern PFNGLPROGRAMSTRINGARBPROC qglProgramStringARB; extern PFNGLBINDPROGRAMARBPROC qglBindProgramARB; extern PFNGLGENPROGRAMSARBPROC qglGenProgramsARB; extern PFNGLDELETEPROGRAMSARBPROC qglDeleteProgramsARB; extern PFNGLPROGRAMENVPARAMETER4FVARBPROC qglProgramEnvParameter4fvARB; extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC qglProgramLocalParameter4fvARB; // GLSL / OpenGL 2.0 extern PFNGLCREATESHADERPROC qglCreateShader; extern PFNGLDELETESHADERPROC qglDeleteShader; extern PFNGLSHADERSOURCEPROC qglShaderSource; extern PFNGLCOMPILESHADERPROC qglCompileShader; extern PFNGLGETSHADERIVPROC qglGetShaderiv; extern PFNGLGETSHADERINFOLOGPROC qglGetShaderInfoLog; extern PFNGLCREATEPROGRAMPROC qglCreateProgram; extern PFNGLDELETEPROGRAMPROC qglDeleteProgram; extern PFNGLATTACHSHADERPROC qglAttachShader; extern PFNGLDETACHSHADERPROC qglDetachShader; extern PFNGLLINKPROGRAMPROC qglLinkProgram; extern PFNGLUSEPROGRAMPROC qglUseProgram; extern PFNGLGETPROGRAMIVPROC qglGetProgramiv; extern PFNGLGETPROGRAMINFOLOGPROC qglGetProgramInfoLog; extern PFNGLPROGRAMPARAMETERIPROC qglProgramParameteri; extern PFNGLBINDATTRIBLOCATIONPROC qglBindAttribLocation; extern PFNGLGETUNIFORMLOCATIONPROC qglGetUniformLocation; extern PFNGLUNIFORM1IPROC qglUniform1i; extern PFNGLUNIFORM4FVPROC qglUniform4fv; // GL_ARB_uniform_buffer_object extern PFNGLGETUNIFORMBLOCKINDEXPROC qglGetUniformBlockIndex; extern PFNGLUNIFORMBLOCKBINDINGPROC qglUniformBlockBinding; // GL_ATI_separate_stencil / OpenGL 2.0 separate stencil extern PFNGLSTENCILOPSEPARATEATIPROC qglStencilOpSeparate; extern PFNGLSTENCILFUNCSEPARATEATIPROC qglStencilFuncSeparate; // GL_EXT_depth_bounds_test extern PFNGLDEPTHBOUNDSEXTPROC qglDepthBoundsEXT; // GL_ARB_sync extern PFNGLFENCESYNCPROC qglFenceSync; extern PFNGLISSYNCPROC qglIsSync; extern PFNGLCLIENTWAITSYNCPROC qglClientWaitSync; extern PFNGLDELETESYNCPROC qglDeleteSync; // GL_ARB_occlusion_query extern PFNGLGENQUERIESARBPROC qglGenQueriesARB; extern PFNGLDELETEQUERIESARBPROC qglDeleteQueriesARB; extern PFNGLISQUERYARBPROC qglIsQueryARB; extern PFNGLBEGINQUERYARBPROC qglBeginQueryARB; extern PFNGLENDQUERYARBPROC qglEndQueryARB; extern PFNGLGETQUERYIVARBPROC qglGetQueryivARB; extern PFNGLGETQUERYOBJECTIVARBPROC qglGetQueryObjectivARB; extern PFNGLGETQUERYOBJECTUIVARBPROC qglGetQueryObjectuivARB; // GL_ARB_timer_query / GL_EXT_timer_query extern PFNGLGETQUERYOBJECTUI64VEXTPROC qglGetQueryObjectui64vEXT; // GL_ARB_debug_output extern PFNGLDEBUGMESSAGECONTROLARBPROC qglDebugMessageControlARB; extern PFNGLDEBUGMESSAGEINSERTARBPROC qglDebugMessageInsertARB; extern PFNGLDEBUGMESSAGECALLBACKARBPROC qglDebugMessageCallbackARB; extern PFNGLGETDEBUGMESSAGELOGARBPROC qglGetDebugMessageLogARB; //=========================================================================== // non-windows systems will just redefine qgl* to gl* #if defined( __APPLE__ ) || defined( ID_GL_HARDLINK ) #include "qgl_linked.h" #else // windows systems use a function pointer for each call so we can do our log file intercepts extern void ( APIENTRY* qglAccum )( GLenum op, GLfloat value ); extern void ( APIENTRY* qglAlphaFunc )( GLenum func, GLclampf ref ); extern GLboolean( APIENTRY* qglAreTexturesResident )( GLsizei n, const GLuint* textures, GLboolean* residences ); extern void ( APIENTRY* qglArrayElement )( GLint i ); extern void ( APIENTRY* qglBegin )( GLenum mode ); extern void ( APIENTRY* qglBindTexture )( GLenum target, GLuint texture ); extern void ( APIENTRY* qglBitmap )( GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap ); extern void ( APIENTRY* qglBlendFunc )( GLenum sfactor, GLenum dfactor ); extern void ( APIENTRY* qglCallList )( GLuint list ); extern void ( APIENTRY* qglCallLists )( GLsizei n, GLenum type, const GLvoid* lists ); extern void ( APIENTRY* qglClear )( GLbitfield mask ); extern void ( APIENTRY* qglClearAccum )( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ); extern void ( APIENTRY* qglClearColor )( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ); extern void ( APIENTRY* qglClearDepth )( GLclampd depth ); extern void ( APIENTRY* qglClearIndex )( GLfloat c ); extern void ( APIENTRY* qglClearStencil )( GLint s ); extern void ( APIENTRY* qglClipPlane )( GLenum plane, const GLdouble* equation ); extern void ( APIENTRY* qglColor3b )( GLbyte red, GLbyte green, GLbyte blue ); extern void ( APIENTRY* qglColor3bv )( const GLbyte* v ); extern void ( APIENTRY* qglColor3d )( GLdouble red, GLdouble green, GLdouble blue ); extern void ( APIENTRY* qglColor3dv )( const GLdouble* v ); extern void ( APIENTRY* qglColor3f )( GLfloat red, GLfloat green, GLfloat blue ); extern void ( APIENTRY* qglColor3fv )( const GLfloat* v ); extern void ( APIENTRY* qglColor3i )( GLint red, GLint green, GLint blue ); extern void ( APIENTRY* qglColor3iv )( const GLint* v ); extern void ( APIENTRY* qglColor3s )( GLshort red, GLshort green, GLshort blue ); extern void ( APIENTRY* qglColor3sv )( const GLshort* v ); extern void ( APIENTRY* qglColor3ub )( GLubyte red, GLubyte green, GLubyte blue ); extern void ( APIENTRY* qglColor3ubv )( const GLubyte* v ); extern void ( APIENTRY* qglColor3ui )( GLuint red, GLuint green, GLuint blue ); extern void ( APIENTRY* qglColor3uiv )( const GLuint* v ); extern void ( APIENTRY* qglColor3us )( GLushort red, GLushort green, GLushort blue ); extern void ( APIENTRY* qglColor3usv )( const GLushort* v ); extern void ( APIENTRY* qglColor4b )( GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha ); extern void ( APIENTRY* qglColor4bv )( const GLbyte* v ); extern void ( APIENTRY* qglColor4d )( GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha ); extern void ( APIENTRY* qglColor4dv )( const GLdouble* v ); extern void ( APIENTRY* qglColor4f )( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ); extern void ( APIENTRY* qglColor4fv )( const GLfloat* v ); extern void ( APIENTRY* qglColor4i )( GLint red, GLint green, GLint blue, GLint alpha ); extern void ( APIENTRY* qglColor4iv )( const GLint* v ); extern void ( APIENTRY* qglColor4s )( GLshort red, GLshort green, GLshort blue, GLshort alpha ); extern void ( APIENTRY* qglColor4sv )( const GLshort* v ); extern void ( APIENTRY* qglColor4ub )( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ); extern void ( APIENTRY* qglColor4ubv )( const GLubyte* v ); extern void ( APIENTRY* qglColor4ui )( GLuint red, GLuint green, GLuint blue, GLuint alpha ); extern void ( APIENTRY* qglColor4uiv )( const GLuint* v ); extern void ( APIENTRY* qglColor4us )( GLushort red, GLushort green, GLushort blue, GLushort alpha ); extern void ( APIENTRY* qglColor4usv )( const GLushort* v ); extern void ( APIENTRY* qglColorMask )( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ); extern void ( APIENTRY* qglColorMaterial )( GLenum face, GLenum mode ); extern void ( APIENTRY* qglColorPointer )( GLint size, GLenum type, GLsizei stride, const GLvoid* pointer ); extern void ( APIENTRY* qglCopyPixels )( GLint x, GLint y, GLsizei width, GLsizei height, GLenum type ); extern void ( APIENTRY* qglCopyTexImage1D )( GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border ); extern void ( APIENTRY* qglCopyTexImage2D )( GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ); extern void ( APIENTRY* qglCopyTexSubImage1D )( GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width ); extern void ( APIENTRY* qglCopyTexSubImage2D )( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ); extern void ( APIENTRY* qglCullFace )( GLenum mode ); extern void ( APIENTRY* qglDeleteLists )( GLuint list, GLsizei range ); extern void ( APIENTRY* qglDeleteTextures )( GLsizei n, const GLuint* textures ); extern void ( APIENTRY* qglDepthFunc )( GLenum func ); extern void ( APIENTRY* qglDepthMask )( GLboolean flag ); extern void ( APIENTRY* qglDepthRange )( GLclampd zNear, GLclampd zFar ); extern void ( APIENTRY* qglDisable )( GLenum cap ); extern void ( APIENTRY* qglDisableClientState )( GLenum array ); extern void ( APIENTRY* qglDrawArrays )( GLenum mode, GLint first, GLsizei count ); extern void ( APIENTRY* qglDrawBuffer )( GLenum mode ); extern void ( APIENTRY* qglDrawElements )( GLenum mode, GLsizei count, GLenum type, const GLvoid* indices ); extern void ( APIENTRY* qglDrawPixels )( GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels ); extern void ( APIENTRY* qglEdgeFlag )( GLboolean flag ); extern void ( APIENTRY* qglEdgeFlagPointer )( GLsizei stride, const GLvoid* pointer ); extern void ( APIENTRY* qglEdgeFlagv )( const GLboolean* flag ); extern void ( APIENTRY* qglEnable )( GLenum cap ); extern void ( APIENTRY* qglEnableClientState )( GLenum array ); extern void ( APIENTRY* qglEnd )( void ); extern void ( APIENTRY* qglEndList )( void ); extern void ( APIENTRY* qglEvalCoord1d )( GLdouble u ); extern void ( APIENTRY* qglEvalCoord1dv )( const GLdouble* u ); extern void ( APIENTRY* qglEvalCoord1f )( GLfloat u ); extern void ( APIENTRY* qglEvalCoord1fv )( const GLfloat* u ); extern void ( APIENTRY* qglEvalCoord2d )( GLdouble u, GLdouble v ); extern void ( APIENTRY* qglEvalCoord2dv )( const GLdouble* u ); extern void ( APIENTRY* qglEvalCoord2f )( GLfloat u, GLfloat v ); extern void ( APIENTRY* qglEvalCoord2fv )( const GLfloat* u ); extern void ( APIENTRY* qglEvalMesh1 )( GLenum mode, GLint i1, GLint i2 ); extern void ( APIENTRY* qglEvalMesh2 )( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 ); extern void ( APIENTRY* qglEvalPoint1 )( GLint i ); extern void ( APIENTRY* qglEvalPoint2 )( GLint i, GLint j ); extern void ( APIENTRY* qglFeedbackBuffer )( GLsizei size, GLenum type, GLfloat* buffer ); extern void ( APIENTRY* qglFinish )( void ); extern void ( APIENTRY* qglFlush )( void ); extern void ( APIENTRY* qglFogf )( GLenum pname, GLfloat param ); extern void ( APIENTRY* qglFogfv )( GLenum pname, const GLfloat* params ); extern void ( APIENTRY* qglFogi )( GLenum pname, GLint param ); extern void ( APIENTRY* qglFogiv )( GLenum pname, const GLint* params ); extern void ( APIENTRY* qglFrontFace )( GLenum mode ); extern void ( APIENTRY* qglFrustum )( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar ); extern GLuint( APIENTRY* qglGenLists )( GLsizei range ); extern void ( APIENTRY* qglGenTextures )( GLsizei n, GLuint* textures ); extern void ( APIENTRY* qglGetBooleanv )( GLenum pname, GLboolean* params ); extern void ( APIENTRY* qglGetClipPlane )( GLenum plane, GLdouble* equation ); extern void ( APIENTRY* qglGetDoublev )( GLenum pname, GLdouble* params ); extern GLenum( APIENTRY* qglGetError )( void ); extern void ( APIENTRY* qglGetFloatv )( GLenum pname, GLfloat* params ); extern void ( APIENTRY* qglGetIntegerv )( GLenum pname, GLint* params ); extern void ( APIENTRY* qglGetLightfv )( GLenum light, GLenum pname, GLfloat* params ); extern void ( APIENTRY* qglGetLightiv )( GLenum light, GLenum pname, GLint* params ); extern void ( APIENTRY* qglGetMapdv )( GLenum target, GLenum query, GLdouble* v ); extern void ( APIENTRY* qglGetMapfv )( GLenum target, GLenum query, GLfloat* v ); extern void ( APIENTRY* qglGetMapiv )( GLenum target, GLenum query, GLint* v ); extern void ( APIENTRY* qglGetMaterialfv )( GLenum face, GLenum pname, GLfloat* params ); extern void ( APIENTRY* qglGetMaterialiv )( GLenum face, GLenum pname, GLint* params ); extern void ( APIENTRY* qglGetPixelMapfv )( GLenum map, GLfloat* values ); extern void ( APIENTRY* qglGetPixelMapuiv )( GLenum map, GLuint* values ); extern void ( APIENTRY* qglGetPixelMapusv )( GLenum map, GLushort* values ); extern void ( APIENTRY* qglGetPointerv )( GLenum pname, GLvoid* *params ); extern void ( APIENTRY* qglGetPolygonStipple )( GLubyte* mask ); extern const GLubyte* ( APIENTRY* qglGetString )( GLenum name ); extern void ( APIENTRY* qglGetTexEnvfv )( GLenum target, GLenum pname, GLfloat* params ); extern void ( APIENTRY* qglGetTexEnviv )( GLenum target, GLenum pname, GLint* params ); extern void ( APIENTRY* qglGetTexGendv )( GLenum coord, GLenum pname, GLdouble* params ); extern void ( APIENTRY* qglGetTexGenfv )( GLenum coord, GLenum pname, GLfloat* params ); extern void ( APIENTRY* qglGetTexGeniv )( GLenum coord, GLenum pname, GLint* params ); extern void ( APIENTRY* qglGetTexImage )( GLenum target, GLint level, GLenum format, GLenum type, GLvoid* pixels ); extern void ( APIENTRY* qglGetTexLevelParameterfv )( GLenum target, GLint level, GLenum pname, GLfloat* params ); extern void ( APIENTRY* qglGetTexLevelParameteriv )( GLenum target, GLint level, GLenum pname, GLint* params ); extern void ( APIENTRY* qglGetTexParameterfv )( GLenum target, GLenum pname, GLfloat* params ); extern void ( APIENTRY* qglGetTexParameteriv )( GLenum target, GLenum pname, GLint* params ); extern void ( APIENTRY* qglHint )( GLenum target, GLenum mode ); extern void ( APIENTRY* qglIndexMask )( GLuint mask ); extern void ( APIENTRY* qglIndexPointer )( GLenum type, GLsizei stride, const GLvoid* pointer ); extern void ( APIENTRY* qglIndexd )( GLdouble c ); extern void ( APIENTRY* qglIndexdv )( const GLdouble* c ); extern void ( APIENTRY* qglIndexf )( GLfloat c ); extern void ( APIENTRY* qglIndexfv )( const GLfloat* c ); extern void ( APIENTRY* qglIndexi )( GLint c ); extern void ( APIENTRY* qglIndexiv )( const GLint* c ); extern void ( APIENTRY* qglIndexs )( GLshort c ); extern void ( APIENTRY* qglIndexsv )( const GLshort* c ); extern void ( APIENTRY* qglIndexub )( GLubyte c ); extern void ( APIENTRY* qglIndexubv )( const GLubyte* c ); extern void ( APIENTRY* qglInitNames )( void ); extern void ( APIENTRY* qglInterleavedArrays )( GLenum format, GLsizei stride, const GLvoid* pointer ); extern GLboolean( APIENTRY* qglIsEnabled )( GLenum cap ); extern GLboolean( APIENTRY* qglIsList )( GLuint list ); extern GLboolean( APIENTRY* qglIsTexture )( GLuint texture ); extern void ( APIENTRY* qglLightModelf )( GLenum pname, GLfloat param ); extern void ( APIENTRY* qglLightModelfv )( GLenum pname, const GLfloat* params ); extern void ( APIENTRY* qglLightModeli )( GLenum pname, GLint param ); extern void ( APIENTRY* qglLightModeliv )( GLenum pname, const GLint* params ); extern void ( APIENTRY* qglLightf )( GLenum light, GLenum pname, GLfloat param ); extern void ( APIENTRY* qglLightfv )( GLenum light, GLenum pname, const GLfloat* params ); extern void ( APIENTRY* qglLighti )( GLenum light, GLenum pname, GLint param ); extern void ( APIENTRY* qglLightiv )( GLenum light, GLenum pname, const GLint* params ); extern void ( APIENTRY* qglLineStipple )( GLint factor, GLushort pattern ); extern void ( APIENTRY* qglLineWidth )( GLfloat width ); extern void ( APIENTRY* qglListBase )( GLuint base ); extern void ( APIENTRY* qglLoadIdentity )( void ); extern void ( APIENTRY* qglLoadMatrixd )( const GLdouble* m ); extern void ( APIENTRY* qglLoadMatrixf )( const GLfloat* m ); extern void ( APIENTRY* qglLoadName )( GLuint name ); extern void ( APIENTRY* qglLogicOp )( GLenum opcode ); extern void ( APIENTRY* qglMap1d )( GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points ); extern void ( APIENTRY* qglMap1f )( GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points ); extern void ( APIENTRY* qglMap2d )( GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points ); extern void ( APIENTRY* qglMap2f )( GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points ); extern void ( APIENTRY* qglMapGrid1d )( GLint un, GLdouble u1, GLdouble u2 ); extern void ( APIENTRY* qglMapGrid1f )( GLint un, GLfloat u1, GLfloat u2 ); extern void ( APIENTRY* qglMapGrid2d )( GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2 ); extern void ( APIENTRY* qglMapGrid2f )( GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2 ); extern void ( APIENTRY* qglMaterialf )( GLenum face, GLenum pname, GLfloat param ); extern void ( APIENTRY* qglMaterialfv )( GLenum face, GLenum pname, const GLfloat* params ); extern void ( APIENTRY* qglMateriali )( GLenum face, GLenum pname, GLint param ); extern void ( APIENTRY* qglMaterialiv )( GLenum face, GLenum pname, const GLint* params ); extern void ( APIENTRY* qglMatrixMode )( GLenum mode ); extern void ( APIENTRY* qglMultMatrixd )( const GLdouble* m ); extern void ( APIENTRY* qglMultMatrixf )( const GLfloat* m ); extern void ( APIENTRY* qglNewList )( GLuint list, GLenum mode ); extern void ( APIENTRY* qglNormal3b )( GLbyte nx, GLbyte ny, GLbyte nz ); extern void ( APIENTRY* qglNormal3bv )( const GLbyte* v ); extern void ( APIENTRY* qglNormal3d )( GLdouble nx, GLdouble ny, GLdouble nz ); extern void ( APIENTRY* qglNormal3dv )( const GLdouble* v ); extern void ( APIENTRY* qglNormal3f )( GLfloat nx, GLfloat ny, GLfloat nz ); extern void ( APIENTRY* qglNormal3fv )( const GLfloat* v ); extern void ( APIENTRY* qglNormal3i )( GLint nx, GLint ny, GLint nz ); extern void ( APIENTRY* qglNormal3iv )( const GLint* v ); extern void ( APIENTRY* qglNormal3s )( GLshort nx, GLshort ny, GLshort nz ); extern void ( APIENTRY* qglNormal3sv )( const GLshort* v ); extern void ( APIENTRY* qglNormalPointer )( GLenum type, GLsizei stride, const GLvoid* pointer ); extern void ( APIENTRY* qglOrtho )( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar ); extern void ( APIENTRY* qglPassThrough )( GLfloat token ); extern void ( APIENTRY* qglPixelMapfv )( GLenum map, GLsizei mapsize, const GLfloat* values ); extern void ( APIENTRY* qglPixelMapuiv )( GLenum map, GLsizei mapsize, const GLuint* values ); extern void ( APIENTRY* qglPixelMapusv )( GLenum map, GLsizei mapsize, const GLushort* values ); extern void ( APIENTRY* qglPixelStoref )( GLenum pname, GLfloat param ); extern void ( APIENTRY* qglPixelStorei )( GLenum pname, GLint param ); extern void ( APIENTRY* qglPixelTransferf )( GLenum pname, GLfloat param ); extern void ( APIENTRY* qglPixelTransferi )( GLenum pname, GLint param ); extern void ( APIENTRY* qglPixelZoom )( GLfloat xfactor, GLfloat yfactor ); extern void ( APIENTRY* qglPointSize )( GLfloat size ); extern void ( APIENTRY* qglPolygonMode )( GLenum face, GLenum mode ); extern void ( APIENTRY* qglPolygonOffset )( GLfloat factor, GLfloat units ); extern void ( APIENTRY* qglPolygonStipple )( const GLubyte* mask ); extern void ( APIENTRY* qglPopAttrib )( void ); extern void ( APIENTRY* qglPopClientAttrib )( void ); extern void ( APIENTRY* qglPopMatrix )( void ); extern void ( APIENTRY* qglPopName )( void ); extern void ( APIENTRY* qglPrioritizeTextures )( GLsizei n, const GLuint* textures, const GLclampf* priorities ); extern void ( APIENTRY* qglPushAttrib )( GLbitfield mask ); extern void ( APIENTRY* qglPushClientAttrib )( GLbitfield mask ); extern void ( APIENTRY* qglPushMatrix )( void ); extern void ( APIENTRY* qglPushName )( GLuint name ); extern void ( APIENTRY* qglRasterPos2d )( GLdouble x, GLdouble y ); extern void ( APIENTRY* qglRasterPos2dv )( const GLdouble* v ); extern void ( APIENTRY* qglRasterPos2f )( GLfloat x, GLfloat y ); extern void ( APIENTRY* qglRasterPos2fv )( const GLfloat* v ); extern void ( APIENTRY* qglRasterPos2i )( GLint x, GLint y ); extern void ( APIENTRY* qglRasterPos2iv )( const GLint* v ); extern void ( APIENTRY* qglRasterPos2s )( GLshort x, GLshort y ); extern void ( APIENTRY* qglRasterPos2sv )( const GLshort* v ); extern void ( APIENTRY* qglRasterPos3d )( GLdouble x, GLdouble y, GLdouble z ); extern void ( APIENTRY* qglRasterPos3dv )( const GLdouble* v ); extern void ( APIENTRY* qglRasterPos3f )( GLfloat x, GLfloat y, GLfloat z ); extern void ( APIENTRY* qglRasterPos3fv )( const GLfloat* v ); extern void ( APIENTRY* qglRasterPos3i )( GLint x, GLint y, GLint z ); extern void ( APIENTRY* qglRasterPos3iv )( const GLint* v ); extern void ( APIENTRY* qglRasterPos3s )( GLshort x, GLshort y, GLshort z ); extern void ( APIENTRY* qglRasterPos3sv )( const GLshort* v ); extern void ( APIENTRY* qglRasterPos4d )( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); extern void ( APIENTRY* qglRasterPos4dv )( const GLdouble* v ); extern void ( APIENTRY* qglRasterPos4f )( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); extern void ( APIENTRY* qglRasterPos4fv )( const GLfloat* v ); extern void ( APIENTRY* qglRasterPos4i )( GLint x, GLint y, GLint z, GLint w ); extern void ( APIENTRY* qglRasterPos4iv )( const GLint* v ); extern void ( APIENTRY* qglRasterPos4s )( GLshort x, GLshort y, GLshort z, GLshort w ); extern void ( APIENTRY* qglRasterPos4sv )( const GLshort* v ); extern void ( APIENTRY* qglReadBuffer )( GLenum mode ); extern void ( APIENTRY* qglReadPixels )( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels ); extern void ( APIENTRY* qglRectd )( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 ); extern void ( APIENTRY* qglRectdv )( const GLdouble* v1, const GLdouble* v2 ); extern void ( APIENTRY* qglRectf )( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 ); extern void ( APIENTRY* qglRectfv )( const GLfloat* v1, const GLfloat* v2 ); extern void ( APIENTRY* qglRecti )( GLint x1, GLint y1, GLint x2, GLint y2 ); extern void ( APIENTRY* qglRectiv )( const GLint* v1, const GLint* v2 ); extern void ( APIENTRY* qglRects )( GLshort x1, GLshort y1, GLshort x2, GLshort y2 ); extern void ( APIENTRY* qglRectsv )( const GLshort* v1, const GLshort* v2 ); extern GLint( APIENTRY* qglRenderMode )( GLenum mode ); extern void ( APIENTRY* qglRotated )( GLdouble angle, GLdouble x, GLdouble y, GLdouble z ); extern void ( APIENTRY* qglRotatef )( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ); extern void ( APIENTRY* qglScaled )( GLdouble x, GLdouble y, GLdouble z ); extern void ( APIENTRY* qglScalef )( GLfloat x, GLfloat y, GLfloat z ); extern void ( APIENTRY* qglScissor )( GLint x, GLint y, GLsizei width, GLsizei height ); extern void ( APIENTRY* qglSelectBuffer )( GLsizei size, GLuint* buffer ); extern void ( APIENTRY* qglShadeModel )( GLenum mode ); extern void ( APIENTRY* qglStencilFunc )( GLenum func, GLint ref, GLuint mask ); extern void ( APIENTRY* qglStencilMask )( GLuint mask ); extern void ( APIENTRY* qglStencilOp )( GLenum fail, GLenum zfail, GLenum zpass ); extern void ( APIENTRY* qglTexCoord1d )( GLdouble s ); extern void ( APIENTRY* qglTexCoord1dv )( const GLdouble* v ); extern void ( APIENTRY* qglTexCoord1f )( GLfloat s ); extern void ( APIENTRY* qglTexCoord1fv )( const GLfloat* v ); extern void ( APIENTRY* qglTexCoord1i )( GLint s ); extern void ( APIENTRY* qglTexCoord1iv )( const GLint* v ); extern void ( APIENTRY* qglTexCoord1s )( GLshort s ); extern void ( APIENTRY* qglTexCoord1sv )( const GLshort* v ); extern void ( APIENTRY* qglTexCoord2d )( GLdouble s, GLdouble t ); extern void ( APIENTRY* qglTexCoord2dv )( const GLdouble* v ); extern void ( APIENTRY* qglTexCoord2f )( GLfloat s, GLfloat t ); extern void ( APIENTRY* qglTexCoord2fv )( const GLfloat* v ); extern void ( APIENTRY* qglTexCoord2i )( GLint s, GLint t ); extern void ( APIENTRY* qglTexCoord2iv )( const GLint* v ); extern void ( APIENTRY* qglTexCoord2s )( GLshort s, GLshort t ); extern void ( APIENTRY* qglTexCoord2sv )( const GLshort* v ); extern void ( APIENTRY* qglTexCoord3d )( GLdouble s, GLdouble t, GLdouble r ); extern void ( APIENTRY* qglTexCoord3dv )( const GLdouble* v ); extern void ( APIENTRY* qglTexCoord3f )( GLfloat s, GLfloat t, GLfloat r ); extern void ( APIENTRY* qglTexCoord3fv )( const GLfloat* v ); extern void ( APIENTRY* qglTexCoord3i )( GLint s, GLint t, GLint r ); extern void ( APIENTRY* qglTexCoord3iv )( const GLint* v ); extern void ( APIENTRY* qglTexCoord3s )( GLshort s, GLshort t, GLshort r ); extern void ( APIENTRY* qglTexCoord3sv )( const GLshort* v ); extern void ( APIENTRY* qglTexCoord4d )( GLdouble s, GLdouble t, GLdouble r, GLdouble q ); extern void ( APIENTRY* qglTexCoord4dv )( const GLdouble* v ); extern void ( APIENTRY* qglTexCoord4f )( GLfloat s, GLfloat t, GLfloat r, GLfloat q ); extern void ( APIENTRY* qglTexCoord4fv )( const GLfloat* v ); extern void ( APIENTRY* qglTexCoord4i )( GLint s, GLint t, GLint r, GLint q ); extern void ( APIENTRY* qglTexCoord4iv )( const GLint* v ); extern void ( APIENTRY* qglTexCoord4s )( GLshort s, GLshort t, GLshort r, GLshort q ); extern void ( APIENTRY* qglTexCoord4sv )( const GLshort* v ); extern void ( APIENTRY* qglTexCoordPointer )( GLint size, GLenum type, GLsizei stride, const GLvoid* pointer ); extern void ( APIENTRY* qglTexEnvf )( GLenum target, GLenum pname, GLfloat param ); extern void ( APIENTRY* qglTexEnvfv )( GLenum target, GLenum pname, const GLfloat* params ); extern void ( APIENTRY* qglTexEnvi )( GLenum target, GLenum pname, GLint param ); extern void ( APIENTRY* qglTexEnviv )( GLenum target, GLenum pname, const GLint* params ); extern void ( APIENTRY* qglTexGend )( GLenum coord, GLenum pname, GLdouble param ); extern void ( APIENTRY* qglTexGendv )( GLenum coord, GLenum pname, const GLdouble* params ); extern void ( APIENTRY* qglTexGenf )( GLenum coord, GLenum pname, GLfloat param ); extern void ( APIENTRY* qglTexGenfv )( GLenum coord, GLenum pname, const GLfloat* params ); extern void ( APIENTRY* qglTexGeni )( GLenum coord, GLenum pname, GLint param ); extern void ( APIENTRY* qglTexGeniv )( GLenum coord, GLenum pname, const GLint* params ); extern void ( APIENTRY* qglTexImage1D )( GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid* pixels ); extern void ( APIENTRY* qglTexImage2D )( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels ); extern void ( APIENTRY* qglTexParameterf )( GLenum target, GLenum pname, GLfloat param ); extern void ( APIENTRY* qglTexParameterfv )( GLenum target, GLenum pname, const GLfloat* params ); extern void ( APIENTRY* qglTexParameteri )( GLenum target, GLenum pname, GLint param ); extern void ( APIENTRY* qglTexParameteriv )( GLenum target, GLenum pname, const GLint* params ); extern void ( APIENTRY* qglTexSubImage1D )( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid* pixels ); extern void ( APIENTRY* qglTexSubImage2D )( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels ); extern void ( APIENTRY* qglTranslated )( GLdouble x, GLdouble y, GLdouble z ); extern void ( APIENTRY* qglTranslatef )( GLfloat x, GLfloat y, GLfloat z ); extern void ( APIENTRY* qglVertex2d )( GLdouble x, GLdouble y ); extern void ( APIENTRY* qglVertex2dv )( const GLdouble* v ); extern void ( APIENTRY* qglVertex2f )( GLfloat x, GLfloat y ); extern void ( APIENTRY* qglVertex2fv )( const GLfloat* v ); extern void ( APIENTRY* qglVertex2i )( GLint x, GLint y ); extern void ( APIENTRY* qglVertex2iv )( const GLint* v ); extern void ( APIENTRY* qglVertex2s )( GLshort x, GLshort y ); extern void ( APIENTRY* qglVertex2sv )( const GLshort* v ); extern void ( APIENTRY* qglVertex3d )( GLdouble x, GLdouble y, GLdouble z ); extern void ( APIENTRY* qglVertex3dv )( const GLdouble* v ); extern void ( APIENTRY* qglVertex3f )( GLfloat x, GLfloat y, GLfloat z ); extern void ( APIENTRY* qglVertex3fv )( const GLfloat* v ); extern void ( APIENTRY* qglVertex3i )( GLint x, GLint y, GLint z ); extern void ( APIENTRY* qglVertex3iv )( const GLint* v ); extern void ( APIENTRY* qglVertex3s )( GLshort x, GLshort y, GLshort z ); extern void ( APIENTRY* qglVertex3sv )( const GLshort* v ); extern void ( APIENTRY* qglVertex4d )( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); extern void ( APIENTRY* qglVertex4dv )( const GLdouble* v ); extern void ( APIENTRY* qglVertex4f )( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); extern void ( APIENTRY* qglVertex4fv )( const GLfloat* v ); extern void ( APIENTRY* qglVertex4i )( GLint x, GLint y, GLint z, GLint w ); extern void ( APIENTRY* qglVertex4iv )( const GLint* v ); extern void ( APIENTRY* qglVertex4s )( GLshort x, GLshort y, GLshort z, GLshort w ); extern void ( APIENTRY* qglVertex4sv )( const GLshort* v ); extern void ( APIENTRY* qglVertexPointer )( GLint size, GLenum type, GLsizei stride, const GLvoid* pointer ); extern void ( APIENTRY* qglViewport )( GLint x, GLint y, GLsizei width, GLsizei height ); extern int ( WINAPI* qwglChoosePixelFormat )( HDC, CONST PIXELFORMATDESCRIPTOR* ); extern int ( WINAPI* qwglDescribePixelFormat )( HDC, int, UINT, LPPIXELFORMATDESCRIPTOR ); extern int ( WINAPI* qwglGetPixelFormat )( HDC ); extern BOOL ( WINAPI* qwglSetPixelFormat )( HDC, int, CONST PIXELFORMATDESCRIPTOR* ); extern BOOL ( WINAPI* qwglSwapBuffers )( HDC ); extern BOOL ( WINAPI* qwglCopyContext )( HGLRC, HGLRC, UINT ); extern HGLRC( WINAPI* qwglCreateContext )( HDC ); extern HGLRC( WINAPI* qwglCreateLayerContext )( HDC, int ); extern BOOL ( WINAPI* qwglDeleteContext )( HGLRC ); extern HGLRC( WINAPI* qwglGetCurrentContext )( VOID ); extern HDC( WINAPI* qwglGetCurrentDC )( VOID ); extern PROC( WINAPI* qwglGetProcAddress )( LPCSTR ); extern BOOL ( WINAPI* qwglMakeCurrent )( HDC, HGLRC ); extern BOOL ( WINAPI* qwglShareLists )( HGLRC, HGLRC ); extern BOOL ( WINAPI* qwglUseFontBitmaps )( HDC, DWORD, DWORD, DWORD ); extern BOOL ( WINAPI* qwglUseFontOutlines )( HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT ); extern BOOL ( WINAPI* qwglDescribeLayerPlane )( HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR ); extern int ( WINAPI* qwglSetLayerPaletteEntries )( HDC, int, int, int, CONST COLORREF* ); extern int ( WINAPI* qwglGetLayerPaletteEntries )( HDC, int, int, int, COLORREF* ); extern BOOL ( WINAPI* qwglRealizeLayerPalette )( HDC, int, BOOL ); extern BOOL ( WINAPI* qwglSwapLayerBuffers )( HDC, UINT ); #endif // hardlinlk vs dlopen #endif