DOOM-3-BFG

DOOM 3 BFG Edition
Log | Files | Refs

qgl.h (34213B)


      1 /*
      2 ===========================================================================
      3 
      4 Doom 3 BFG Edition GPL Source Code
      5 Copyright (C) 1993-2012 id Software LLC, a ZeniMax Media company. 
      6 
      7 This file is part of the Doom 3 BFG Edition GPL Source Code ("Doom 3 BFG Edition Source Code").  
      8 
      9 Doom 3 BFG Edition Source Code is free software: you can redistribute it and/or modify
     10 it under the terms of the GNU General Public License as published by
     11 the Free Software Foundation, either version 3 of the License, or
     12 (at your option) any later version.
     13 
     14 Doom 3 BFG Edition Source Code is distributed in the hope that it will be useful,
     15 but WITHOUT ANY WARRANTY; without even the implied warranty of
     16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     17 GNU General Public License for more details.
     18 
     19 You should have received a copy of the GNU General Public License
     20 along with Doom 3 BFG Edition Source Code.  If not, see <http://www.gnu.org/licenses/>.
     21 
     22 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.
     23 
     24 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.
     25 
     26 ===========================================================================
     27 */
     28 /*
     29 ** QGL.H
     30 */
     31 
     32 #ifndef __QGL_H__
     33 #define __QGL_H__
     34 
     35 
     36 #include <gl/gl.h>
     37 
     38 
     39 #ifndef APIENTRY
     40 #define APIENTRY
     41 #endif
     42 #ifndef WINAPI
     43 #define WINAPI
     44 #endif
     45 
     46 // only use local glext.h if we are not using the system one already
     47 // http://oss.sgi.com/projects/ogl-sample/ABI/
     48 #ifndef GL_GLEXT_VERSION
     49 
     50 #include "glext.h"
     51 
     52 #endif
     53 
     54 typedef void (*GLExtension_t)(void);
     55 
     56 #ifdef __cplusplus
     57 	extern "C" {
     58 #endif
     59 
     60 GLExtension_t GLimp_ExtensionPointer( const char *name );
     61 
     62 #ifdef __cplusplus
     63 	}
     64 #endif
     65 
     66 // GL_EXT_direct_state_access
     67 extern PFNGLBINDMULTITEXTUREEXTPROC			qglBindMultiTextureEXT;
     68 
     69 // GL_ARB_texture_compression
     70 extern PFNGLCOMPRESSEDTEXIMAGE2DARBPROC		qglCompressedTexImage2DARB;
     71 extern PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC	qglCompressedTexSubImage2DARB;
     72 extern PFNGLGETCOMPRESSEDTEXIMAGEARBPROC	qglGetCompressedTexImageARB;
     73 
     74 // GL_ARB_vertex_buffer_object
     75 extern PFNGLBINDBUFFERARBPROC				qglBindBufferARB;
     76 extern PFNGLBINDBUFFERRANGEPROC				qglBindBufferRange;
     77 extern PFNGLDELETEBUFFERSARBPROC			qglDeleteBuffersARB;
     78 extern PFNGLGENBUFFERSARBPROC				qglGenBuffersARB;
     79 extern PFNGLISBUFFERARBPROC					qglIsBufferARB;
     80 extern PFNGLBUFFERDATAARBPROC				qglBufferDataARB;
     81 extern PFNGLBUFFERSUBDATAARBPROC			qglBufferSubDataARB;
     82 extern PFNGLGETBUFFERSUBDATAARBPROC			qglGetBufferSubDataARB;
     83 extern PFNGLMAPBUFFERARBPROC				qglMapBufferARB;
     84 extern PFNGLUNMAPBUFFERARBPROC				qglUnmapBufferARB;
     85 extern PFNGLGETBUFFERPARAMETERIVARBPROC		qglGetBufferParameterivARB;
     86 extern PFNGLGETBUFFERPOINTERVARBPROC		qglGetBufferPointervARB;
     87 
     88 // GL_ARB_map_buffer_Range
     89 extern PFNGLMAPBUFFERRANGEPROC				qglMapBufferRange;
     90 
     91 // GL_ARB_draw_elements_base_vertex
     92 extern PFNGLDRAWELEMENTSBASEVERTEXPROC		qglDrawElementsBaseVertex;
     93 
     94 // GL_ARB_vertex_array_object
     95 extern PFNGLGENVERTEXARRAYSPROC				qglGenVertexArrays;
     96 extern PFNGLBINDVERTEXARRAYPROC				qglBindVertexArray;
     97 extern PFNGLDELETEVERTEXARRAYSPROC			qglDeleteVertexArrays;
     98 
     99 // GL_ARB_vertex_program / GL_ARB_fragment_program
    100 extern PFNGLVERTEXATTRIBPOINTERARBPROC		qglVertexAttribPointerARB;
    101 extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC	qglEnableVertexAttribArrayARB;
    102 extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC	qglDisableVertexAttribArrayARB;
    103 extern PFNGLPROGRAMSTRINGARBPROC			qglProgramStringARB;
    104 extern PFNGLBINDPROGRAMARBPROC				qglBindProgramARB;
    105 extern PFNGLGENPROGRAMSARBPROC				qglGenProgramsARB;
    106 extern PFNGLDELETEPROGRAMSARBPROC			qglDeleteProgramsARB;
    107 extern PFNGLPROGRAMENVPARAMETER4FVARBPROC	qglProgramEnvParameter4fvARB;
    108 extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC	qglProgramLocalParameter4fvARB;
    109 
    110 // GLSL / OpenGL 2.0
    111 extern PFNGLCREATESHADERPROC				qglCreateShader;
    112 extern PFNGLDELETESHADERPROC				qglDeleteShader;
    113 extern PFNGLSHADERSOURCEPROC				qglShaderSource;
    114 extern PFNGLCOMPILESHADERPROC				qglCompileShader;
    115 extern PFNGLGETSHADERIVPROC					qglGetShaderiv;
    116 extern PFNGLGETSHADERINFOLOGPROC			qglGetShaderInfoLog;
    117 extern PFNGLCREATEPROGRAMPROC				qglCreateProgram;
    118 extern PFNGLDELETEPROGRAMPROC				qglDeleteProgram;
    119 extern PFNGLATTACHSHADERPROC				qglAttachShader;
    120 extern PFNGLDETACHSHADERPROC				qglDetachShader;
    121 extern PFNGLLINKPROGRAMPROC					qglLinkProgram;
    122 extern PFNGLUSEPROGRAMPROC					qglUseProgram;
    123 extern PFNGLGETPROGRAMIVPROC				qglGetProgramiv;
    124 extern PFNGLGETPROGRAMINFOLOGPROC			qglGetProgramInfoLog;
    125 extern PFNGLPROGRAMPARAMETERIPROC			qglProgramParameteri;
    126 extern PFNGLBINDATTRIBLOCATIONPROC			qglBindAttribLocation;
    127 extern PFNGLGETUNIFORMLOCATIONPROC			qglGetUniformLocation;
    128 extern PFNGLUNIFORM1IPROC					qglUniform1i;
    129 extern PFNGLUNIFORM4FVPROC					qglUniform4fv;
    130 
    131 // GL_ARB_uniform_buffer_object
    132 extern PFNGLGETUNIFORMBLOCKINDEXPROC		qglGetUniformBlockIndex;
    133 extern PFNGLUNIFORMBLOCKBINDINGPROC			qglUniformBlockBinding;
    134 
    135 // GL_ATI_separate_stencil / OpenGL 2.0 separate stencil
    136 extern PFNGLSTENCILOPSEPARATEATIPROC		qglStencilOpSeparate;
    137 extern PFNGLSTENCILFUNCSEPARATEATIPROC		qglStencilFuncSeparate;
    138 
    139 // GL_EXT_depth_bounds_test
    140 extern PFNGLDEPTHBOUNDSEXTPROC              qglDepthBoundsEXT;
    141 
    142 // GL_ARB_sync
    143 extern PFNGLFENCESYNCPROC					qglFenceSync;
    144 extern PFNGLISSYNCPROC						qglIsSync;
    145 extern PFNGLCLIENTWAITSYNCPROC				qglClientWaitSync;
    146 extern PFNGLDELETESYNCPROC					qglDeleteSync;
    147 
    148 // GL_ARB_occlusion_query
    149 extern PFNGLGENQUERIESARBPROC				qglGenQueriesARB;
    150 extern PFNGLDELETEQUERIESARBPROC			qglDeleteQueriesARB;
    151 extern PFNGLISQUERYARBPROC					qglIsQueryARB;
    152 extern PFNGLBEGINQUERYARBPROC				qglBeginQueryARB;
    153 extern PFNGLENDQUERYARBPROC					qglEndQueryARB;
    154 extern PFNGLGETQUERYIVARBPROC				qglGetQueryivARB;
    155 extern PFNGLGETQUERYOBJECTIVARBPROC			qglGetQueryObjectivARB;
    156 extern PFNGLGETQUERYOBJECTUIVARBPROC		qglGetQueryObjectuivARB;
    157 
    158 // GL_ARB_timer_query / GL_EXT_timer_query
    159 extern PFNGLGETQUERYOBJECTUI64VEXTPROC		qglGetQueryObjectui64vEXT;
    160 
    161 // GL_ARB_debug_output
    162 extern PFNGLDEBUGMESSAGECONTROLARBPROC		qglDebugMessageControlARB;
    163 extern PFNGLDEBUGMESSAGEINSERTARBPROC		qglDebugMessageInsertARB;
    164 extern PFNGLDEBUGMESSAGECALLBACKARBPROC		qglDebugMessageCallbackARB;
    165 extern PFNGLGETDEBUGMESSAGELOGARBPROC		qglGetDebugMessageLogARB;
    166 
    167 //===========================================================================
    168 
    169 // non-windows systems will just redefine qgl* to gl*
    170 #if defined( __APPLE__ ) || defined( ID_GL_HARDLINK )
    171 
    172 #include "qgl_linked.h"
    173 
    174 #else
    175 
    176 // windows systems use a function pointer for each call so we can do our log file intercepts
    177 
    178 extern  void ( APIENTRY * qglAccum )(GLenum op, GLfloat value);
    179 extern  void ( APIENTRY * qglAlphaFunc )(GLenum func, GLclampf ref);
    180 extern  GLboolean ( APIENTRY * qglAreTexturesResident )(GLsizei n, const GLuint *textures, GLboolean *residences);
    181 extern  void ( APIENTRY * qglArrayElement )(GLint i);
    182 extern  void ( APIENTRY * qglBegin )(GLenum mode);
    183 extern  void ( APIENTRY * qglBindTexture )(GLenum target, GLuint texture);
    184 extern  void ( APIENTRY * qglBitmap )(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
    185 extern  void ( APIENTRY * qglBlendFunc )(GLenum sfactor, GLenum dfactor);
    186 extern  void ( APIENTRY * qglCallList )(GLuint list);
    187 extern  void ( APIENTRY * qglCallLists )(GLsizei n, GLenum type, const GLvoid *lists);
    188 extern  void ( APIENTRY * qglClear )(GLbitfield mask);
    189 extern  void ( APIENTRY * qglClearAccum )(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
    190 extern  void ( APIENTRY * qglClearColor )(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
    191 extern  void ( APIENTRY * qglClearDepth )(GLclampd depth);
    192 extern  void ( APIENTRY * qglClearIndex )(GLfloat c);
    193 extern  void ( APIENTRY * qglClearStencil )(GLint s);
    194 extern  void ( APIENTRY * qglClipPlane )(GLenum plane, const GLdouble *equation);
    195 extern  void ( APIENTRY * qglColor3b )(GLbyte red, GLbyte green, GLbyte blue);
    196 extern  void ( APIENTRY * qglColor3bv )(const GLbyte *v);
    197 extern  void ( APIENTRY * qglColor3d )(GLdouble red, GLdouble green, GLdouble blue);
    198 extern  void ( APIENTRY * qglColor3dv )(const GLdouble *v);
    199 extern  void ( APIENTRY * qglColor3f )(GLfloat red, GLfloat green, GLfloat blue);
    200 extern  void ( APIENTRY * qglColor3fv )(const GLfloat *v);
    201 extern  void ( APIENTRY * qglColor3i )(GLint red, GLint green, GLint blue);
    202 extern  void ( APIENTRY * qglColor3iv )(const GLint *v);
    203 extern  void ( APIENTRY * qglColor3s )(GLshort red, GLshort green, GLshort blue);
    204 extern  void ( APIENTRY * qglColor3sv )(const GLshort *v);
    205 extern  void ( APIENTRY * qglColor3ub )(GLubyte red, GLubyte green, GLubyte blue);
    206 extern  void ( APIENTRY * qglColor3ubv )(const GLubyte *v);
    207 extern  void ( APIENTRY * qglColor3ui )(GLuint red, GLuint green, GLuint blue);
    208 extern  void ( APIENTRY * qglColor3uiv )(const GLuint *v);
    209 extern  void ( APIENTRY * qglColor3us )(GLushort red, GLushort green, GLushort blue);
    210 extern  void ( APIENTRY * qglColor3usv )(const GLushort *v);
    211 extern  void ( APIENTRY * qglColor4b )(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
    212 extern  void ( APIENTRY * qglColor4bv )(const GLbyte *v);
    213 extern  void ( APIENTRY * qglColor4d )(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
    214 extern  void ( APIENTRY * qglColor4dv )(const GLdouble *v);
    215 extern  void ( APIENTRY * qglColor4f )(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
    216 extern  void ( APIENTRY * qglColor4fv )(const GLfloat *v);
    217 extern  void ( APIENTRY * qglColor4i )(GLint red, GLint green, GLint blue, GLint alpha);
    218 extern  void ( APIENTRY * qglColor4iv )(const GLint *v);
    219 extern  void ( APIENTRY * qglColor4s )(GLshort red, GLshort green, GLshort blue, GLshort alpha);
    220 extern  void ( APIENTRY * qglColor4sv )(const GLshort *v);
    221 extern  void ( APIENTRY * qglColor4ub )(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
    222 extern  void ( APIENTRY * qglColor4ubv )(const GLubyte *v);
    223 extern  void ( APIENTRY * qglColor4ui )(GLuint red, GLuint green, GLuint blue, GLuint alpha);
    224 extern  void ( APIENTRY * qglColor4uiv )(const GLuint *v);
    225 extern  void ( APIENTRY * qglColor4us )(GLushort red, GLushort green, GLushort blue, GLushort alpha);
    226 extern  void ( APIENTRY * qglColor4usv )(const GLushort *v);
    227 extern  void ( APIENTRY * qglColorMask )(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
    228 extern  void ( APIENTRY * qglColorMaterial )(GLenum face, GLenum mode);
    229 extern  void ( APIENTRY * qglColorPointer )(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
    230 extern  void ( APIENTRY * qglCopyPixels )(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
    231 extern  void ( APIENTRY * qglCopyTexImage1D )(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
    232 extern  void ( APIENTRY * qglCopyTexImage2D )(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
    233 extern  void ( APIENTRY * qglCopyTexSubImage1D )(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
    234 extern  void ( APIENTRY * qglCopyTexSubImage2D )(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
    235 extern  void ( APIENTRY * qglCullFace )(GLenum mode);
    236 extern  void ( APIENTRY * qglDeleteLists )(GLuint list, GLsizei range);
    237 extern  void ( APIENTRY * qglDeleteTextures )(GLsizei n, const GLuint *textures);
    238 extern  void ( APIENTRY * qglDepthFunc )(GLenum func);
    239 extern  void ( APIENTRY * qglDepthMask )(GLboolean flag);
    240 extern  void ( APIENTRY * qglDepthRange )(GLclampd zNear, GLclampd zFar);
    241 extern  void ( APIENTRY * qglDisable )(GLenum cap);
    242 extern  void ( APIENTRY * qglDisableClientState )(GLenum array);
    243 extern  void ( APIENTRY * qglDrawArrays )(GLenum mode, GLint first, GLsizei count);
    244 extern  void ( APIENTRY * qglDrawBuffer )(GLenum mode);
    245 extern  void ( APIENTRY * qglDrawElements )(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
    246 extern  void ( APIENTRY * qglDrawPixels )(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
    247 extern  void ( APIENTRY * qglEdgeFlag )(GLboolean flag);
    248 extern  void ( APIENTRY * qglEdgeFlagPointer )(GLsizei stride, const GLvoid *pointer);
    249 extern  void ( APIENTRY * qglEdgeFlagv )(const GLboolean *flag);
    250 extern  void ( APIENTRY * qglEnable )(GLenum cap);
    251 extern  void ( APIENTRY * qglEnableClientState )(GLenum array);
    252 extern  void ( APIENTRY * qglEnd )(void);
    253 extern  void ( APIENTRY * qglEndList )(void);
    254 extern  void ( APIENTRY * qglEvalCoord1d )(GLdouble u);
    255 extern  void ( APIENTRY * qglEvalCoord1dv )(const GLdouble *u);
    256 extern  void ( APIENTRY * qglEvalCoord1f )(GLfloat u);
    257 extern  void ( APIENTRY * qglEvalCoord1fv )(const GLfloat *u);
    258 extern  void ( APIENTRY * qglEvalCoord2d )(GLdouble u, GLdouble v);
    259 extern  void ( APIENTRY * qglEvalCoord2dv )(const GLdouble *u);
    260 extern  void ( APIENTRY * qglEvalCoord2f )(GLfloat u, GLfloat v);
    261 extern  void ( APIENTRY * qglEvalCoord2fv )(const GLfloat *u);
    262 extern  void ( APIENTRY * qglEvalMesh1 )(GLenum mode, GLint i1, GLint i2);
    263 extern  void ( APIENTRY * qglEvalMesh2 )(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
    264 extern  void ( APIENTRY * qglEvalPoint1 )(GLint i);
    265 extern  void ( APIENTRY * qglEvalPoint2 )(GLint i, GLint j);
    266 extern  void ( APIENTRY * qglFeedbackBuffer )(GLsizei size, GLenum type, GLfloat *buffer);
    267 extern  void ( APIENTRY * qglFinish )(void);
    268 extern  void ( APIENTRY * qglFlush )(void);
    269 extern  void ( APIENTRY * qglFogf )(GLenum pname, GLfloat param);
    270 extern  void ( APIENTRY * qglFogfv )(GLenum pname, const GLfloat *params);
    271 extern  void ( APIENTRY * qglFogi )(GLenum pname, GLint param);
    272 extern  void ( APIENTRY * qglFogiv )(GLenum pname, const GLint *params);
    273 extern  void ( APIENTRY * qglFrontFace )(GLenum mode);
    274 extern  void ( APIENTRY * qglFrustum )(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
    275 extern  GLuint ( APIENTRY * qglGenLists )(GLsizei range);
    276 extern  void ( APIENTRY * qglGenTextures )(GLsizei n, GLuint *textures);
    277 extern  void ( APIENTRY * qglGetBooleanv )(GLenum pname, GLboolean *params);
    278 extern  void ( APIENTRY * qglGetClipPlane )(GLenum plane, GLdouble *equation);
    279 extern  void ( APIENTRY * qglGetDoublev )(GLenum pname, GLdouble *params);
    280 extern  GLenum ( APIENTRY * qglGetError )(void);
    281 extern  void ( APIENTRY * qglGetFloatv )(GLenum pname, GLfloat *params);
    282 extern  void ( APIENTRY * qglGetIntegerv )(GLenum pname, GLint *params);
    283 extern  void ( APIENTRY * qglGetLightfv )(GLenum light, GLenum pname, GLfloat *params);
    284 extern  void ( APIENTRY * qglGetLightiv )(GLenum light, GLenum pname, GLint *params);
    285 extern  void ( APIENTRY * qglGetMapdv )(GLenum target, GLenum query, GLdouble *v);
    286 extern  void ( APIENTRY * qglGetMapfv )(GLenum target, GLenum query, GLfloat *v);
    287 extern  void ( APIENTRY * qglGetMapiv )(GLenum target, GLenum query, GLint *v);
    288 extern  void ( APIENTRY * qglGetMaterialfv )(GLenum face, GLenum pname, GLfloat *params);
    289 extern  void ( APIENTRY * qglGetMaterialiv )(GLenum face, GLenum pname, GLint *params);
    290 extern  void ( APIENTRY * qglGetPixelMapfv )(GLenum map, GLfloat *values);
    291 extern  void ( APIENTRY * qglGetPixelMapuiv )(GLenum map, GLuint *values);
    292 extern  void ( APIENTRY * qglGetPixelMapusv )(GLenum map, GLushort *values);
    293 extern  void ( APIENTRY * qglGetPointerv )(GLenum pname, GLvoid* *params);
    294 extern  void ( APIENTRY * qglGetPolygonStipple )(GLubyte *mask);
    295 extern  const GLubyte * ( APIENTRY * qglGetString )(GLenum name);
    296 extern  void ( APIENTRY * qglGetTexEnvfv )(GLenum target, GLenum pname, GLfloat *params);
    297 extern  void ( APIENTRY * qglGetTexEnviv )(GLenum target, GLenum pname, GLint *params);
    298 extern  void ( APIENTRY * qglGetTexGendv )(GLenum coord, GLenum pname, GLdouble *params);
    299 extern  void ( APIENTRY * qglGetTexGenfv )(GLenum coord, GLenum pname, GLfloat *params);
    300 extern  void ( APIENTRY * qglGetTexGeniv )(GLenum coord, GLenum pname, GLint *params);
    301 extern  void ( APIENTRY * qglGetTexImage )(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
    302 extern  void ( APIENTRY * qglGetTexLevelParameterfv )(GLenum target, GLint level, GLenum pname, GLfloat *params);
    303 extern  void ( APIENTRY * qglGetTexLevelParameteriv )(GLenum target, GLint level, GLenum pname, GLint *params);
    304 extern  void ( APIENTRY * qglGetTexParameterfv )(GLenum target, GLenum pname, GLfloat *params);
    305 extern  void ( APIENTRY * qglGetTexParameteriv )(GLenum target, GLenum pname, GLint *params);
    306 extern  void ( APIENTRY * qglHint )(GLenum target, GLenum mode);
    307 extern  void ( APIENTRY * qglIndexMask )(GLuint mask);
    308 extern  void ( APIENTRY * qglIndexPointer )(GLenum type, GLsizei stride, const GLvoid *pointer);
    309 extern  void ( APIENTRY * qglIndexd )(GLdouble c);
    310 extern  void ( APIENTRY * qglIndexdv )(const GLdouble *c);
    311 extern  void ( APIENTRY * qglIndexf )(GLfloat c);
    312 extern  void ( APIENTRY * qglIndexfv )(const GLfloat *c);
    313 extern  void ( APIENTRY * qglIndexi )(GLint c);
    314 extern  void ( APIENTRY * qglIndexiv )(const GLint *c);
    315 extern  void ( APIENTRY * qglIndexs )(GLshort c);
    316 extern  void ( APIENTRY * qglIndexsv )(const GLshort *c);
    317 extern  void ( APIENTRY * qglIndexub )(GLubyte c);
    318 extern  void ( APIENTRY * qglIndexubv )(const GLubyte *c);
    319 extern  void ( APIENTRY * qglInitNames )(void);
    320 extern  void ( APIENTRY * qglInterleavedArrays )(GLenum format, GLsizei stride, const GLvoid *pointer);
    321 extern  GLboolean ( APIENTRY * qglIsEnabled )(GLenum cap);
    322 extern  GLboolean ( APIENTRY * qglIsList )(GLuint list);
    323 extern  GLboolean ( APIENTRY * qglIsTexture )(GLuint texture);
    324 extern  void ( APIENTRY * qglLightModelf )(GLenum pname, GLfloat param);
    325 extern  void ( APIENTRY * qglLightModelfv )(GLenum pname, const GLfloat *params);
    326 extern  void ( APIENTRY * qglLightModeli )(GLenum pname, GLint param);
    327 extern  void ( APIENTRY * qglLightModeliv )(GLenum pname, const GLint *params);
    328 extern  void ( APIENTRY * qglLightf )(GLenum light, GLenum pname, GLfloat param);
    329 extern  void ( APIENTRY * qglLightfv )(GLenum light, GLenum pname, const GLfloat *params);
    330 extern  void ( APIENTRY * qglLighti )(GLenum light, GLenum pname, GLint param);
    331 extern  void ( APIENTRY * qglLightiv )(GLenum light, GLenum pname, const GLint *params);
    332 extern  void ( APIENTRY * qglLineStipple )(GLint factor, GLushort pattern);
    333 extern  void ( APIENTRY * qglLineWidth )(GLfloat width);
    334 extern  void ( APIENTRY * qglListBase )(GLuint base);
    335 extern  void ( APIENTRY * qglLoadIdentity )(void);
    336 extern  void ( APIENTRY * qglLoadMatrixd )(const GLdouble *m);
    337 extern  void ( APIENTRY * qglLoadMatrixf )(const GLfloat *m);
    338 extern  void ( APIENTRY * qglLoadName )(GLuint name);
    339 extern  void ( APIENTRY * qglLogicOp )(GLenum opcode);
    340 extern  void ( APIENTRY * qglMap1d )(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
    341 extern  void ( APIENTRY * qglMap1f )(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
    342 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);
    343 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);
    344 extern  void ( APIENTRY * qglMapGrid1d )(GLint un, GLdouble u1, GLdouble u2);
    345 extern  void ( APIENTRY * qglMapGrid1f )(GLint un, GLfloat u1, GLfloat u2);
    346 extern  void ( APIENTRY * qglMapGrid2d )(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
    347 extern  void ( APIENTRY * qglMapGrid2f )(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
    348 extern  void ( APIENTRY * qglMaterialf )(GLenum face, GLenum pname, GLfloat param);
    349 extern  void ( APIENTRY * qglMaterialfv )(GLenum face, GLenum pname, const GLfloat *params);
    350 extern  void ( APIENTRY * qglMateriali )(GLenum face, GLenum pname, GLint param);
    351 extern  void ( APIENTRY * qglMaterialiv )(GLenum face, GLenum pname, const GLint *params);
    352 extern  void ( APIENTRY * qglMatrixMode )(GLenum mode);
    353 extern  void ( APIENTRY * qglMultMatrixd )(const GLdouble *m);
    354 extern  void ( APIENTRY * qglMultMatrixf )(const GLfloat *m);
    355 extern  void ( APIENTRY * qglNewList )(GLuint list, GLenum mode);
    356 extern  void ( APIENTRY * qglNormal3b )(GLbyte nx, GLbyte ny, GLbyte nz);
    357 extern  void ( APIENTRY * qglNormal3bv )(const GLbyte *v);
    358 extern  void ( APIENTRY * qglNormal3d )(GLdouble nx, GLdouble ny, GLdouble nz);
    359 extern  void ( APIENTRY * qglNormal3dv )(const GLdouble *v);
    360 extern  void ( APIENTRY * qglNormal3f )(GLfloat nx, GLfloat ny, GLfloat nz);
    361 extern  void ( APIENTRY * qglNormal3fv )(const GLfloat *v);
    362 extern  void ( APIENTRY * qglNormal3i )(GLint nx, GLint ny, GLint nz);
    363 extern  void ( APIENTRY * qglNormal3iv )(const GLint *v);
    364 extern  void ( APIENTRY * qglNormal3s )(GLshort nx, GLshort ny, GLshort nz);
    365 extern  void ( APIENTRY * qglNormal3sv )(const GLshort *v);
    366 extern  void ( APIENTRY * qglNormalPointer )(GLenum type, GLsizei stride, const GLvoid *pointer);
    367 extern  void ( APIENTRY * qglOrtho )(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
    368 extern  void ( APIENTRY * qglPassThrough )(GLfloat token);
    369 extern  void ( APIENTRY * qglPixelMapfv )(GLenum map, GLsizei mapsize, const GLfloat *values);
    370 extern  void ( APIENTRY * qglPixelMapuiv )(GLenum map, GLsizei mapsize, const GLuint *values);
    371 extern  void ( APIENTRY * qglPixelMapusv )(GLenum map, GLsizei mapsize, const GLushort *values);
    372 extern  void ( APIENTRY * qglPixelStoref )(GLenum pname, GLfloat param);
    373 extern  void ( APIENTRY * qglPixelStorei )(GLenum pname, GLint param);
    374 extern  void ( APIENTRY * qglPixelTransferf )(GLenum pname, GLfloat param);
    375 extern  void ( APIENTRY * qglPixelTransferi )(GLenum pname, GLint param);
    376 extern  void ( APIENTRY * qglPixelZoom )(GLfloat xfactor, GLfloat yfactor);
    377 extern  void ( APIENTRY * qglPointSize )(GLfloat size);
    378 extern  void ( APIENTRY * qglPolygonMode )(GLenum face, GLenum mode);
    379 extern  void ( APIENTRY * qglPolygonOffset )(GLfloat factor, GLfloat units);
    380 extern  void ( APIENTRY * qglPolygonStipple )(const GLubyte *mask);
    381 extern  void ( APIENTRY * qglPopAttrib )(void);
    382 extern  void ( APIENTRY * qglPopClientAttrib )(void);
    383 extern  void ( APIENTRY * qglPopMatrix )(void);
    384 extern  void ( APIENTRY * qglPopName )(void);
    385 extern  void ( APIENTRY * qglPrioritizeTextures )(GLsizei n, const GLuint *textures, const GLclampf *priorities);
    386 extern  void ( APIENTRY * qglPushAttrib )(GLbitfield mask);
    387 extern  void ( APIENTRY * qglPushClientAttrib )(GLbitfield mask);
    388 extern  void ( APIENTRY * qglPushMatrix )(void);
    389 extern  void ( APIENTRY * qglPushName )(GLuint name);
    390 extern  void ( APIENTRY * qglRasterPos2d )(GLdouble x, GLdouble y);
    391 extern  void ( APIENTRY * qglRasterPos2dv )(const GLdouble *v);
    392 extern  void ( APIENTRY * qglRasterPos2f )(GLfloat x, GLfloat y);
    393 extern  void ( APIENTRY * qglRasterPos2fv )(const GLfloat *v);
    394 extern  void ( APIENTRY * qglRasterPos2i )(GLint x, GLint y);
    395 extern  void ( APIENTRY * qglRasterPos2iv )(const GLint *v);
    396 extern  void ( APIENTRY * qglRasterPos2s )(GLshort x, GLshort y);
    397 extern  void ( APIENTRY * qglRasterPos2sv )(const GLshort *v);
    398 extern  void ( APIENTRY * qglRasterPos3d )(GLdouble x, GLdouble y, GLdouble z);
    399 extern  void ( APIENTRY * qglRasterPos3dv )(const GLdouble *v);
    400 extern  void ( APIENTRY * qglRasterPos3f )(GLfloat x, GLfloat y, GLfloat z);
    401 extern  void ( APIENTRY * qglRasterPos3fv )(const GLfloat *v);
    402 extern  void ( APIENTRY * qglRasterPos3i )(GLint x, GLint y, GLint z);
    403 extern  void ( APIENTRY * qglRasterPos3iv )(const GLint *v);
    404 extern  void ( APIENTRY * qglRasterPos3s )(GLshort x, GLshort y, GLshort z);
    405 extern  void ( APIENTRY * qglRasterPos3sv )(const GLshort *v);
    406 extern  void ( APIENTRY * qglRasterPos4d )(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
    407 extern  void ( APIENTRY * qglRasterPos4dv )(const GLdouble *v);
    408 extern  void ( APIENTRY * qglRasterPos4f )(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
    409 extern  void ( APIENTRY * qglRasterPos4fv )(const GLfloat *v);
    410 extern  void ( APIENTRY * qglRasterPos4i )(GLint x, GLint y, GLint z, GLint w);
    411 extern  void ( APIENTRY * qglRasterPos4iv )(const GLint *v);
    412 extern  void ( APIENTRY * qglRasterPos4s )(GLshort x, GLshort y, GLshort z, GLshort w);
    413 extern  void ( APIENTRY * qglRasterPos4sv )(const GLshort *v);
    414 extern  void ( APIENTRY * qglReadBuffer )(GLenum mode);
    415 extern  void ( APIENTRY * qglReadPixels )(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
    416 extern  void ( APIENTRY * qglRectd )(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
    417 extern  void ( APIENTRY * qglRectdv )(const GLdouble *v1, const GLdouble *v2);
    418 extern  void ( APIENTRY * qglRectf )(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
    419 extern  void ( APIENTRY * qglRectfv )(const GLfloat *v1, const GLfloat *v2);
    420 extern  void ( APIENTRY * qglRecti )(GLint x1, GLint y1, GLint x2, GLint y2);
    421 extern  void ( APIENTRY * qglRectiv )(const GLint *v1, const GLint *v2);
    422 extern  void ( APIENTRY * qglRects )(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
    423 extern  void ( APIENTRY * qglRectsv )(const GLshort *v1, const GLshort *v2);
    424 extern  GLint ( APIENTRY * qglRenderMode )(GLenum mode);
    425 extern  void ( APIENTRY * qglRotated )(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
    426 extern  void ( APIENTRY * qglRotatef )(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
    427 extern  void ( APIENTRY * qglScaled )(GLdouble x, GLdouble y, GLdouble z);
    428 extern  void ( APIENTRY * qglScalef )(GLfloat x, GLfloat y, GLfloat z);
    429 extern  void ( APIENTRY * qglScissor )(GLint x, GLint y, GLsizei width, GLsizei height);
    430 extern  void ( APIENTRY * qglSelectBuffer )(GLsizei size, GLuint *buffer);
    431 extern  void ( APIENTRY * qglShadeModel )(GLenum mode);
    432 extern  void ( APIENTRY * qglStencilFunc )(GLenum func, GLint ref, GLuint mask);
    433 extern  void ( APIENTRY * qglStencilMask )(GLuint mask);
    434 extern  void ( APIENTRY * qglStencilOp )(GLenum fail, GLenum zfail, GLenum zpass);
    435 extern  void ( APIENTRY * qglTexCoord1d )(GLdouble s);
    436 extern  void ( APIENTRY * qglTexCoord1dv )(const GLdouble *v);
    437 extern  void ( APIENTRY * qglTexCoord1f )(GLfloat s);
    438 extern  void ( APIENTRY * qglTexCoord1fv )(const GLfloat *v);
    439 extern  void ( APIENTRY * qglTexCoord1i )(GLint s);
    440 extern  void ( APIENTRY * qglTexCoord1iv )(const GLint *v);
    441 extern  void ( APIENTRY * qglTexCoord1s )(GLshort s);
    442 extern  void ( APIENTRY * qglTexCoord1sv )(const GLshort *v);
    443 extern  void ( APIENTRY * qglTexCoord2d )(GLdouble s, GLdouble t);
    444 extern  void ( APIENTRY * qglTexCoord2dv )(const GLdouble *v);
    445 extern  void ( APIENTRY * qglTexCoord2f )(GLfloat s, GLfloat t);
    446 extern  void ( APIENTRY * qglTexCoord2fv )(const GLfloat *v);
    447 extern  void ( APIENTRY * qglTexCoord2i )(GLint s, GLint t);
    448 extern  void ( APIENTRY * qglTexCoord2iv )(const GLint *v);
    449 extern  void ( APIENTRY * qglTexCoord2s )(GLshort s, GLshort t);
    450 extern  void ( APIENTRY * qglTexCoord2sv )(const GLshort *v);
    451 extern  void ( APIENTRY * qglTexCoord3d )(GLdouble s, GLdouble t, GLdouble r);
    452 extern  void ( APIENTRY * qglTexCoord3dv )(const GLdouble *v);
    453 extern  void ( APIENTRY * qglTexCoord3f )(GLfloat s, GLfloat t, GLfloat r);
    454 extern  void ( APIENTRY * qglTexCoord3fv )(const GLfloat *v);
    455 extern  void ( APIENTRY * qglTexCoord3i )(GLint s, GLint t, GLint r);
    456 extern  void ( APIENTRY * qglTexCoord3iv )(const GLint *v);
    457 extern  void ( APIENTRY * qglTexCoord3s )(GLshort s, GLshort t, GLshort r);
    458 extern  void ( APIENTRY * qglTexCoord3sv )(const GLshort *v);
    459 extern  void ( APIENTRY * qglTexCoord4d )(GLdouble s, GLdouble t, GLdouble r, GLdouble q);
    460 extern  void ( APIENTRY * qglTexCoord4dv )(const GLdouble *v);
    461 extern  void ( APIENTRY * qglTexCoord4f )(GLfloat s, GLfloat t, GLfloat r, GLfloat q);
    462 extern  void ( APIENTRY * qglTexCoord4fv )(const GLfloat *v);
    463 extern  void ( APIENTRY * qglTexCoord4i )(GLint s, GLint t, GLint r, GLint q);
    464 extern  void ( APIENTRY * qglTexCoord4iv )(const GLint *v);
    465 extern  void ( APIENTRY * qglTexCoord4s )(GLshort s, GLshort t, GLshort r, GLshort q);
    466 extern  void ( APIENTRY * qglTexCoord4sv )(const GLshort *v);
    467 extern  void ( APIENTRY * qglTexCoordPointer )(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
    468 extern  void ( APIENTRY * qglTexEnvf )(GLenum target, GLenum pname, GLfloat param);
    469 extern  void ( APIENTRY * qglTexEnvfv )(GLenum target, GLenum pname, const GLfloat *params);
    470 extern  void ( APIENTRY * qglTexEnvi )(GLenum target, GLenum pname, GLint param);
    471 extern  void ( APIENTRY * qglTexEnviv )(GLenum target, GLenum pname, const GLint *params);
    472 extern  void ( APIENTRY * qglTexGend )(GLenum coord, GLenum pname, GLdouble param);
    473 extern  void ( APIENTRY * qglTexGendv )(GLenum coord, GLenum pname, const GLdouble *params);
    474 extern  void ( APIENTRY * qglTexGenf )(GLenum coord, GLenum pname, GLfloat param);
    475 extern  void ( APIENTRY * qglTexGenfv )(GLenum coord, GLenum pname, const GLfloat *params);
    476 extern  void ( APIENTRY * qglTexGeni )(GLenum coord, GLenum pname, GLint param);
    477 extern  void ( APIENTRY * qglTexGeniv )(GLenum coord, GLenum pname, const GLint *params);
    478 extern  void ( APIENTRY * qglTexImage1D )(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
    479 extern  void ( APIENTRY * qglTexImage2D )(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
    480 extern  void ( APIENTRY * qglTexParameterf )(GLenum target, GLenum pname, GLfloat param);
    481 extern  void ( APIENTRY * qglTexParameterfv )(GLenum target, GLenum pname, const GLfloat *params);
    482 extern  void ( APIENTRY * qglTexParameteri )(GLenum target, GLenum pname, GLint param);
    483 extern  void ( APIENTRY * qglTexParameteriv )(GLenum target, GLenum pname, const GLint *params);
    484 extern  void ( APIENTRY * qglTexSubImage1D )(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
    485 extern  void ( APIENTRY * qglTexSubImage2D )(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
    486 extern  void ( APIENTRY * qglTranslated )(GLdouble x, GLdouble y, GLdouble z);
    487 extern  void ( APIENTRY * qglTranslatef )(GLfloat x, GLfloat y, GLfloat z);
    488 extern  void ( APIENTRY * qglVertex2d )(GLdouble x, GLdouble y);
    489 extern  void ( APIENTRY * qglVertex2dv )(const GLdouble *v);
    490 extern  void ( APIENTRY * qglVertex2f )(GLfloat x, GLfloat y);
    491 extern  void ( APIENTRY * qglVertex2fv )(const GLfloat *v);
    492 extern  void ( APIENTRY * qglVertex2i )(GLint x, GLint y);
    493 extern  void ( APIENTRY * qglVertex2iv )(const GLint *v);
    494 extern  void ( APIENTRY * qglVertex2s )(GLshort x, GLshort y);
    495 extern  void ( APIENTRY * qglVertex2sv )(const GLshort *v);
    496 extern  void ( APIENTRY * qglVertex3d )(GLdouble x, GLdouble y, GLdouble z);
    497 extern  void ( APIENTRY * qglVertex3dv )(const GLdouble *v);
    498 extern  void ( APIENTRY * qglVertex3f )(GLfloat x, GLfloat y, GLfloat z);
    499 extern  void ( APIENTRY * qglVertex3fv )(const GLfloat *v);
    500 extern  void ( APIENTRY * qglVertex3i )(GLint x, GLint y, GLint z);
    501 extern  void ( APIENTRY * qglVertex3iv )(const GLint *v);
    502 extern  void ( APIENTRY * qglVertex3s )(GLshort x, GLshort y, GLshort z);
    503 extern  void ( APIENTRY * qglVertex3sv )(const GLshort *v);
    504 extern  void ( APIENTRY * qglVertex4d )(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
    505 extern  void ( APIENTRY * qglVertex4dv )(const GLdouble *v);
    506 extern  void ( APIENTRY * qglVertex4f )(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
    507 extern  void ( APIENTRY * qglVertex4fv )(const GLfloat *v);
    508 extern  void ( APIENTRY * qglVertex4i )(GLint x, GLint y, GLint z, GLint w);
    509 extern  void ( APIENTRY * qglVertex4iv )(const GLint *v);
    510 extern  void ( APIENTRY * qglVertex4s )(GLshort x, GLshort y, GLshort z, GLshort w);
    511 extern  void ( APIENTRY * qglVertex4sv )(const GLshort *v);
    512 extern  void ( APIENTRY * qglVertexPointer )(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
    513 extern  void ( APIENTRY * qglViewport )(GLint x, GLint y, GLsizei width, GLsizei height);
    514 
    515 
    516 extern  int   ( WINAPI * qwglChoosePixelFormat )(HDC, CONST PIXELFORMATDESCRIPTOR *);
    517 extern  int   ( WINAPI * qwglDescribePixelFormat) (HDC, int, UINT, LPPIXELFORMATDESCRIPTOR);
    518 extern  int   ( WINAPI * qwglGetPixelFormat)(HDC);
    519 extern  BOOL  ( WINAPI * qwglSetPixelFormat)(HDC, int, CONST PIXELFORMATDESCRIPTOR *);
    520 extern  BOOL  ( WINAPI * qwglSwapBuffers)(HDC);
    521 
    522 extern BOOL  ( WINAPI * qwglCopyContext)(HGLRC, HGLRC, UINT);
    523 extern HGLRC ( WINAPI * qwglCreateContext)(HDC);
    524 extern HGLRC ( WINAPI * qwglCreateLayerContext)(HDC, int);
    525 extern BOOL  ( WINAPI * qwglDeleteContext)(HGLRC);
    526 extern HGLRC ( WINAPI * qwglGetCurrentContext)(VOID);
    527 extern HDC   ( WINAPI * qwglGetCurrentDC)(VOID);
    528 extern PROC  ( WINAPI * qwglGetProcAddress)(LPCSTR);
    529 extern BOOL  ( WINAPI * qwglMakeCurrent)(HDC, HGLRC);
    530 extern BOOL  ( WINAPI * qwglShareLists)(HGLRC, HGLRC);
    531 extern BOOL  ( WINAPI * qwglUseFontBitmaps)(HDC, DWORD, DWORD, DWORD);
    532 
    533 extern BOOL  ( WINAPI * qwglUseFontOutlines)(HDC, DWORD, DWORD, DWORD, FLOAT,
    534                                            FLOAT, int, LPGLYPHMETRICSFLOAT);
    535 
    536 extern BOOL ( WINAPI * qwglDescribeLayerPlane)(HDC, int, int, UINT,
    537                                             LPLAYERPLANEDESCRIPTOR);
    538 extern int  ( WINAPI * qwglSetLayerPaletteEntries)(HDC, int, int, int,
    539                                                 CONST COLORREF *);
    540 extern int  ( WINAPI * qwglGetLayerPaletteEntries)(HDC, int, int, int,
    541                                                 COLORREF *);
    542 extern BOOL ( WINAPI * qwglRealizeLayerPalette)(HDC, int, BOOL);
    543 extern BOOL ( WINAPI * qwglSwapLayerBuffers)(HDC, UINT);
    544 
    545 
    546 
    547 #endif	// hardlinlk vs dlopen
    548 
    549 #endif