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