1 /* 2 =========================================================================== 3 Copyright (C) 1999 - 2005, Id Software, Inc. 4 Copyright (C) 2000 - 2013, Raven Software, Inc. 5 Copyright (C) 2001 - 2013, Activision, Inc. 6 Copyright (C) 2013 - 2015, OpenJK contributors 7 8 This file is part of the OpenJK source code. 9 10 OpenJK is free software; you can redistribute it and/or modify it 11 under the terms of the GNU General Public License version 2 as 12 published by the Free Software Foundation. 13 14 This program 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 this program; if not, see <http://www.gnu.org/licenses/>. 21 =========================================================================== 22 */ 23 24 #pragma once 25 26 #if defined( __LINT__ ) 27 # include <GL/gl.h> 28 #elif defined( _WIN32 ) 29 # include <windows.h> 30 # include <GL/gl.h> 31 #elif defined(MACOS_X) 32 // Prevent OS X from including its own out-of-date glext.h 33 # define GL_GLEXT_LEGACY 34 # include <OpenGL/gl.h> 35 #elif defined( __linux__ ) 36 # include <GL/gl.h> 37 # include <GL/glx.h> 38 // bk001129 - from cvs1.17 (mkv) 39 # if defined(__FX__) 40 # include <GL/fxmesa.h> 41 # endif 42 #elif defined( __FreeBSD__ ) || defined(__OpenBSD__) || defined(__DragonFly__) // rb010123 43 # include <GL/gl.h> 44 # include <GL/glx.h> 45 # if defined(__FX__) 46 # include <GL/fxmesa.h> 47 # endif 48 #else 49 # include <gl.h> 50 #endif 51 52 #include "glext.h" 53 54 #define qglAccum glAccum 55 #define qglAlphaFunc glAlphaFunc 56 #define qglAreTexturesResident glAreTexturesResident 57 #define qglArrayElement glArrayElement 58 #define qglBegin glBegin 59 #define qglBindTexture glBindTexture 60 #define qglBitmap glBitmap 61 #define qglBlendFunc glBlendFunc 62 #define qglCallList glCallList 63 #define qglCallLists glCallLists 64 #define qglClear glClear 65 #define qglClearAccum glClearAccum 66 #define qglClearColor glClearColor 67 #define qglClearDepth glClearDepth 68 #define qglClearIndex glClearIndex 69 #define qglClearStencil glClearStencil 70 #define qglClipPlane glClipPlane 71 #define qglColor3b glColor3b 72 #define qglColor3bv glColor3bv 73 #define qglColor3d glColor3d 74 #define qglColor3dv glColor3dv 75 #define qglColor3f glColor3f 76 #define qglColor3fv glColor3fv 77 #define qglColor3i glColor3i 78 #define qglColor3iv glColor3iv 79 #define qglColor3s glColor3s 80 #define qglColor3sv glColor3sv 81 #define qglColor3ub glColor3ub 82 #define qglColor3ubv glColor3ubv 83 #define qglColor3ui glColor3ui 84 #define qglColor3uiv glColor3uiv 85 #define qglColor3us glColor3us 86 #define qglColor3usv glColor3usv 87 #define qglColor4b glColor4b 88 #define qglColor4bv glColor4bv 89 #define qglColor4d glColor4d 90 #define qglColor4dv glColor4dv 91 #define qglColor4f glColor4f 92 #define qglColor4fv glColor4fv 93 #define qglColor4i glColor4i 94 #define qglColor4iv glColor4iv 95 #define qglColor4s glColor4s 96 #define qglColor4sv glColor4sv 97 #define qglColor4ub glColor4ub 98 #define qglColor4ubv glColor4ubv 99 #define qglColor4ui glColor4ui 100 #define qglColor4uiv glColor4uiv 101 #define qglColor4us glColor4us 102 #define qglColor4usv glColor4usv 103 #define qglColorMask glColorMask 104 #define qglColorMaterial glColorMaterial 105 #define qglColorPointer glColorPointer 106 #define qglCopyPixels glCopyPixels 107 #define qglCopyTexImage1D glCopyTexImage1D 108 #define qglCopyTexImage2D glCopyTexImage2D 109 #define qglCopyTexSubImage1D glCopyTexSubImage1D 110 #define qglCopyTexSubImage2D glCopyTexSubImage2D 111 #define qglCullFace glCullFace 112 #define qglDeleteLists glDeleteLists 113 #define qglDeleteTextures glDeleteTextures 114 #define qglDepthFunc glDepthFunc 115 #define qglDepthMask glDepthMask 116 #define qglDepthRange glDepthRange 117 #define qglDisable glDisable 118 #define qglDisableClientState glDisableClientState 119 #define qglDrawArrays glDrawArrays 120 #define qglDrawBuffer glDrawBuffer 121 #define qglDrawElements glDrawElements 122 #define qglDrawPixels glDrawPixels 123 #define qglEdgeFlag glEdgeFlag 124 #define qglEdgeFlagPointer glEdgeFlagPointer 125 #define qglEdgeFlagv glEdgeFlagv 126 #define qglEnable glEnable 127 #define qglEnableClientState glEnableClientState 128 #define qglEnd glEnd 129 #define qglEndList glEndList 130 #define qglEvalCoord1d glEvalCoord1d 131 #define qglEvalCoord1dv glEvalCoord1dv 132 #define qglEvalCoord1f glEvalCoord1f 133 #define qglEvalCoord1fv glEvalCoord1fv 134 #define qglEvalCoord2d glEvalCoord2d 135 #define qglEvalCoord2dv glEvalCoord2dv 136 #define qglEvalCoord2f glEvalCoord2f 137 #define qglEvalCoord2fv glEvalCoord2fv 138 #define qglEvalMesh1 glEvalMesh1 139 #define qglEvalMesh2 glEvalMesh2 140 #define qglEvalPoint1 glEvalPoint1 141 #define qglEvalPoint2 glEvalPoint2 142 #define qglFeedbackBuffer glFeedbackBuffer 143 #define qglFinish glFinish 144 #define qglFlush glFlush 145 #define qglFogf glFogf 146 #define qglFogfv glFogfv 147 #define qglFogi glFogi 148 #define qglFogiv glFogiv 149 #define qglFrontFace glFrontFace 150 #define qglFrustum glFrustum 151 #define qglGenLists glGenLists 152 #define qglGenTextures glGenTextures 153 #define qglGetBooleanv glGetBooleanv 154 #define qglGetClipPlane glGetClipPlane 155 #define qglGetDoublev glGetDoublev 156 #define qglGetError glGetError 157 #define qglGetFloatv glGetFloatv 158 #define qglGetIntegerv glGetIntegerv 159 #define qglGetLightfv glGetLightfv 160 #define qglGetLightiv glGetLightiv 161 #define qglGetMapdv glGetMapdv 162 #define qglGetMapfv glGetMapfv 163 #define qglGetMapiv glGetMapiv 164 #define qglGetMaterialfv glGetMaterialfv 165 #define qglGetMaterialiv glGetMaterialiv 166 #define qglGetPixelMapfv glGetPixelMapfv 167 #define qglGetPixelMapuiv glGetPixelMapuiv 168 #define qglGetPixelMapusv glGetPixelMapusv 169 #define qglGetPointerv glGetPointerv 170 #define qglGetPolygonStipple glGetPolygonStipple 171 #define qglGetString glGetString 172 #define qglGetTexGendv glGetTexGendv 173 #define qglGetTexGenfv glGetTexGenfv 174 #define qglGetTexGeniv glGetTexGeniv 175 #define qglGetTexImage glGetTexImage 176 #define qglGetTexLevelParameterfv glGetTexLevelParameterfv 177 #define qglGetTexLevelParameteriv glGetTexLevelParameteriv 178 #define qglGetTexParameterfv glGetTexParameterfv 179 #define qglGetTexParameteriv glGetTexParameteriv 180 #define qglHint glHint 181 #define qglIndexMask glIndexMask 182 #define qglIndexPointer glIndexPointer 183 #define qglIndexd glIndexd 184 #define qglIndexdv glIndexdv 185 #define qglIndexf glIndexf 186 #define qglIndexfv glIndexfv 187 #define qglIndexi glIndexi 188 #define qglIndexiv glIndexiv 189 #define qglIndexs glIndexs 190 #define qglIndexsv glIndexsv 191 #define qglIndexub glIndexub 192 #define qglIndexubv glIndexubv 193 #define qglInitNames glInitNames 194 #define qglInterleavedArrays glInterleavedArrays 195 #define qglIsEnabled glIsEnabled 196 #define qglIsList glIsList 197 #define qglIsTexture glIsTexture 198 #define qglLightModelf glLightModelf 199 #define qglLightModelfv glLightModelfv 200 #define qglLightModeli glLightModeli 201 #define qglLightModeliv glLightModeliv 202 #define qglLightf glLightf 203 #define qglLightfv glLightfv 204 #define qglLighti glLighti 205 #define qglLightiv glLightiv 206 #define qglLineStipple glLineStipple 207 #define qglLineWidth glLineWidth 208 #define qglListBase glListBase 209 #define qglLoadIdentity glLoadIdentity 210 #define qglLoadMatrixd glLoadMatrixd 211 #define qglLoadMatrixf glLoadMatrixf 212 #define qglLoadName glLoadName 213 #define qglLogicOp glLogicOp 214 #define qglMap1d glMap1d 215 #define qglMap1f glMap1f 216 #define qglMap2d glMap2d 217 #define qglMap2f glMap2f 218 #define qglMapGrid1d glMapGrid1d 219 #define qglMapGrid1f glMapGrid1f 220 #define qglMapGrid2d glMapGrid2d 221 #define qglMapGrid2f glMapGrid2f 222 #define qglMaterialf glMaterialf 223 #define qglMaterialfv glMaterialfv 224 #define qglMateriali glMateriali 225 #define qglMaterialiv glMaterialiv 226 #define qglMatrixMode glMatrixMode 227 #define qglMultMatrixd glMultMatrixd 228 #define qglMultMatrixf glMultMatrixf 229 #define qglNewList glNewList 230 #define qglNormal3b glNormal3b 231 #define qglNormal3bv glNormal3bv 232 #define qglNormal3d glNormal3d 233 #define qglNormal3dv glNormal3dv 234 #define qglNormal3f glNormal3f 235 #define qglNormal3fv glNormal3fv 236 #define qglNormal3i glNormal3i 237 #define qglNormal3iv glNormal3iv 238 #define qglNormal3s glNormal3s 239 #define qglNormal3sv glNormal3sv 240 #define qglNormalPointer glNormalPointer 241 #define qglOrtho glOrtho 242 #define qglPassThrough glPassThrough 243 #define qglPixelMapfv glPixelMapfv 244 #define qglPixelMapuiv glPixelMapuiv 245 #define qglPixelMapusv glPixelMapusv 246 #define qglPixelStoref glPixelStoref 247 #define qglPixelStorei glPixelStorei 248 #define qglPixelTransferf glPixelTransferf 249 #define qglPixelTransferi glPixelTransferi 250 #define qglPixelZoom glPixelZoom 251 #define qglPointSize glPointSize 252 #define qglPolygonMode glPolygonMode 253 #define qglPolygonOffset glPolygonOffset 254 #define qglPolygonStipple glPolygonStipple 255 #define qglPopAttrib glPopAttrib 256 #define qglPopClientAttrib glPopClientAttrib 257 #define qglPopMatrix glPopMatrix 258 #define qglPopName glPopName 259 #define qglPrioritizeTextures glPrioritizeTextures 260 #define qglPushAttrib glPushAttrib 261 #define qglPushClientAttrib glPushClientAttrib 262 #define qglPushMatrix glPushMatrix 263 #define qglPushName glPushName 264 #define qglRasterPos2d glRasterPos2d 265 #define qglRasterPos2dv glRasterPos2dv 266 #define qglRasterPos2f glRasterPos2f 267 #define qglRasterPos2fv glRasterPos2fv 268 #define qglRasterPos2i glRasterPos2i 269 #define qglRasterPos2iv glRasterPos2iv 270 #define qglRasterPos2s glRasterPos2s 271 #define qglRasterPos2sv glRasterPos2sv 272 #define qglRasterPos3d glRasterPos3d 273 #define qglRasterPos3dv glRasterPos3dv 274 #define qglRasterPos3f glRasterPos3f 275 #define qglRasterPos3fv glRasterPos3fv 276 #define qglRasterPos3i glRasterPos3i 277 #define qglRasterPos3iv glRasterPos3iv 278 #define qglRasterPos3s glRasterPos3s 279 #define qglRasterPos3sv glRasterPos3sv 280 #define qglRasterPos4d glRasterPos4d 281 #define qglRasterPos4dv glRasterPos4dv 282 #define qglRasterPos4f glRasterPos4f 283 #define qglRasterPos4fv glRasterPos4fv 284 #define qglRasterPos4i glRasterPos4i 285 #define qglRasterPos4iv glRasterPos4iv 286 #define qglRasterPos4s glRasterPos4s 287 #define qglRasterPos4sv glRasterPos4sv 288 #define qglReadBuffer glReadBuffer 289 #define qglReadPixels glReadPixels 290 #define qglRectd glRectd 291 #define qglRectdv glRectdv 292 #define qglRectf glRectf 293 #define qglRectfv glRectfv 294 #define qglRecti glRecti 295 #define qglRectiv glRectiv 296 #define qglRects glRects 297 #define qglRectsv glRectsv 298 #define qglRenderMode glRenderMode 299 #define qglRotated glRotated 300 #define qglRotatef glRotatef 301 #define qglScaled glScaled 302 #define qglScalef glScalef 303 #define qglScissor glScissor 304 #define qglSelectBuffer glSelectBuffer 305 #define qglShadeModel glShadeModel 306 #define qglStencilFunc glStencilFunc 307 #define qglStencilMask glStencilMask 308 #define qglStencilOp glStencilOp 309 #if defined(__APPLE__) 310 #define qglStencilOpSeparate glStencilOpSeparate 311 #endif 312 #define qglTexCoord1d glTexCoord1d 313 #define qglTexCoord1dv glTexCoord1dv 314 #define qglTexCoord1f glTexCoord1f 315 #define qglTexCoord1fv glTexCoord1fv 316 #define qglTexCoord1i glTexCoord1i 317 #define qglTexCoord1iv glTexCoord1iv 318 #define qglTexCoord1s glTexCoord1s 319 #define qglTexCoord1sv glTexCoord1sv 320 #define qglTexCoord2d glTexCoord2d 321 #define qglTexCoord2dv glTexCoord2dv 322 #define qglTexCoord2f glTexCoord2f 323 #define qglTexCoord2fv glTexCoord2fv 324 #define qglTexCoord2i glTexCoord2i 325 #define qglTexCoord2iv glTexCoord2iv 326 #define qglTexCoord2s glTexCoord2s 327 #define qglTexCoord2sv glTexCoord2sv 328 #define qglTexCoord3d glTexCoord3d 329 #define qglTexCoord3dv glTexCoord3dv 330 #define qglTexCoord3f glTexCoord3f 331 #define qglTexCoord3fv glTexCoord3fv 332 #define qglTexCoord3i glTexCoord3i 333 #define qglTexCoord3iv glTexCoord3iv 334 #define qglTexCoord3s glTexCoord3s 335 #define qglTexCoord3sv glTexCoord3sv 336 #define qglTexCoord4d glTexCoord4d 337 #define qglTexCoord4dv glTexCoord4dv 338 #define qglTexCoord4f glTexCoord4f 339 #define qglTexCoord4fv glTexCoord4fv 340 #define qglTexCoord4i glTexCoord4i 341 #define qglTexCoord4iv glTexCoord4iv 342 #define qglTexCoord4s glTexCoord4s 343 #define qglTexCoord4sv glTexCoord4sv 344 #define qglTexCoordPointer glTexCoordPointer 345 #define qglTexEnvf glTexEnvf 346 #define qglTexEnvfv glTexEnvfv 347 #define qglTexEnvi glTexEnvi 348 #define qglTexEnviv glTexEnviv 349 #define qglTexGend glTexGend 350 #define qglTexGendv glTexGendv 351 #define qglTexGenf glTexGenf 352 #define qglTexGenfv glTexGenfv 353 #define qglTexGeni glTexGeni 354 #define qglTexGeniv glTexGeniv 355 #define qglTexImage1D glTexImage1D 356 #define qglTexImage2D glTexImage2D 357 #if defined(__APPLE__) 358 #define qglTexImage3D glTexImage3D 359 #endif 360 #define qglTexParameterf glTexParameterf 361 #define qglTexParameterfv glTexParameterfv 362 #define qglTexParameteri glTexParameteri 363 #define qglTexParameteriv glTexParameteriv 364 #define qglTexSubImage1D glTexSubImage1D 365 #define qglTexSubImage2D glTexSubImage2D 366 #if defined(__APPLE__) 367 #define qglTexSubImage3D glTexSubImage3D 368 #endif 369 #define qglTranslated glTranslated 370 #define qglTranslatef glTranslatef 371 #define qglVertex2d glVertex2d 372 #define qglVertex2dv glVertex2dv 373 #define qglVertex2f glVertex2f 374 #define qglVertex2fv glVertex2fv 375 #define qglVertex2i glVertex2i 376 #define qglVertex2iv glVertex2iv 377 #define qglVertex2s glVertex2s 378 #define qglVertex2sv glVertex2sv 379 #define qglVertex3d glVertex3d 380 #define qglVertex3dv glVertex3dv 381 #define qglVertex3f glVertex3f 382 #define qglVertex3fv glVertex3fv 383 #define qglVertex3i glVertex3i 384 #define qglVertex3iv glVertex3iv 385 #define qglVertex3s glVertex3s 386 #define qglVertex3sv glVertex3sv 387 #define qglVertex4d glVertex4d 388 #define qglVertex4dv glVertex4dv 389 #define qglVertex4f glVertex4f 390 #define qglVertex4fv glVertex4fv 391 #define qglVertex4i glVertex4i 392 #define qglVertex4iv glVertex4iv 393 #define qglVertex4s glVertex4s 394 #define qglVertex4sv glVertex4sv 395 #define qglVertexPointer glVertexPointer 396 #define qglViewport glViewport 397 398 #if !defined(__APPLE__) 399 extern PFNGLSTENCILOPSEPARATEPROC qglStencilOpSeparate; 400 #endif 401 402 extern PFNGLACTIVETEXTUREARBPROC qglActiveTextureARB; 403 extern PFNGLCLIENTACTIVETEXTUREARBPROC qglClientActiveTextureARB; 404 extern PFNGLMULTITEXCOORD2FARBPROC qglMultiTexCoord2fARB; 405 #if !defined(__APPLE__) 406 extern PFNGLTEXIMAGE3DPROC qglTexImage3D; 407 extern PFNGLTEXSUBIMAGE3DPROC qglTexSubImage3D; 408 #endif 409 410 extern PFNGLCOMBINERPARAMETERFVNVPROC qglCombinerParameterfvNV; 411 extern PFNGLCOMBINERPARAMETERIVNVPROC qglCombinerParameterivNV; 412 extern PFNGLCOMBINERPARAMETERFNVPROC qglCombinerParameterfNV; 413 extern PFNGLCOMBINERPARAMETERINVPROC qglCombinerParameteriNV; 414 extern PFNGLCOMBINERINPUTNVPROC qglCombinerInputNV; 415 extern PFNGLCOMBINEROUTPUTNVPROC qglCombinerOutputNV; 416 417 extern PFNGLFINALCOMBINERINPUTNVPROC qglFinalCombinerInputNV; 418 extern PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC qglGetCombinerInputParameterfvNV; 419 extern PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC qglGetCombinerInputParameterivNV; 420 extern PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC qglGetCombinerOutputParameterfvNV; 421 extern PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC qglGetCombinerOutputParameterivNV; 422 extern PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC qglGetFinalCombinerInputParameterfvNV; 423 extern PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC qglGetFinalCombinerInputParameterivNV; 424 425 extern PFNGLPROGRAMSTRINGARBPROC qglProgramStringARB; 426 extern PFNGLBINDPROGRAMARBPROC qglBindProgramARB; 427 extern PFNGLDELETEPROGRAMSARBPROC qglDeleteProgramsARB; 428 extern PFNGLGENPROGRAMSARBPROC qglGenProgramsARB; 429 extern PFNGLPROGRAMENVPARAMETER4DARBPROC qglProgramEnvParameter4dARB; 430 extern PFNGLPROGRAMENVPARAMETER4DVARBPROC qglProgramEnvParameter4dvARB; 431 extern PFNGLPROGRAMENVPARAMETER4FARBPROC qglProgramEnvParameter4fARB; 432 extern PFNGLPROGRAMENVPARAMETER4FVARBPROC qglProgramEnvParameter4fvARB; 433 extern PFNGLPROGRAMLOCALPARAMETER4DARBPROC qglProgramLocalParameter4dARB; 434 extern PFNGLPROGRAMLOCALPARAMETER4DVARBPROC qglProgramLocalParameter4dvARB; 435 extern PFNGLPROGRAMLOCALPARAMETER4FARBPROC qglProgramLocalParameter4fARB; 436 extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC qglProgramLocalParameter4fvARB; 437 extern PFNGLGETPROGRAMENVPARAMETERDVARBPROC qglGetProgramEnvParameterdvARB; 438 extern PFNGLGETPROGRAMENVPARAMETERFVARBPROC qglGetProgramEnvParameterfvARB; 439 extern PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC qglGetProgramLocalParameterdvARB; 440 extern PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC qglGetProgramLocalParameterfvARB; 441 extern PFNGLGETPROGRAMIVARBPROC qglGetProgramivARB; 442 extern PFNGLGETPROGRAMSTRINGARBPROC qglGetProgramStringARB; 443 extern PFNGLISPROGRAMARBPROC qglIsProgramARB; 444 445 extern PFNGLLOCKARRAYSEXTPROC qglLockArraysEXT; 446 extern PFNGLUNLOCKARRAYSEXTPROC qglUnlockArraysEXT; 447