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