1 /*
2 Copyright (C) 1997-2001 Id Software, Inc.
3 
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public License
6 as published by the Free Software Foundation; either version 2
7 of the License, or (at your option) any later version.
8 
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12 
13 See the GNU General Public License for more details.
14 
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 */
19 
20 //
21 // rb_qgl.h
22 //
23 
24 #ifndef __RB_QGL_H__
25 #define __RB_QGL_H__
26 
27 #if defined(WIN32)
28 # include <windows.h>
29 #endif
30 
31 #include <GL/gl.h>
32 
33 #if defined(__unix__)
34 # include <GL/glx.h>
35 #endif
36 
37 #if 0
38 typedef int GLsizeiptrARB;
39 typedef int GLintptrARB;
40 #endif
41 
42 #ifndef APIENTRY
43 # define APIENTRY
44 #endif
45 #ifndef APIENTRYP
46 # define APIENTRYP APIENTRY *
47 #endif
48 
49 extern void		(APIENTRYP qglAccum) (GLenum op, GLfloat value);
50 extern void		(APIENTRYP qglAlphaFunc) (GLenum func, GLclampf ref);
51 extern GLboolean (APIENTRYP qglAreTexturesResident) (GLsizei n, const GLuint *textures, GLboolean *residences);
52 extern void		(APIENTRYP qglArrayElement) (GLint i);
53 extern void		(APIENTRYP qglBegin) (GLenum mode);
54 extern void		(APIENTRYP qglBindTexture) (GLenum target, GLuint texture);
55 extern void		(APIENTRYP qglBitmap) (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
56 extern void		(APIENTRYP qglBlendFunc) (GLenum sfactor, GLenum dfactor);
57 extern void		(APIENTRYP qglCallList) (GLuint list);
58 extern void		(APIENTRYP qglCallLists) (GLsizei n, GLenum type, const GLvoid *lists);
59 extern void		(APIENTRYP qglClear) (GLbitfield mask);
60 extern void		(APIENTRYP qglClearAccum) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
61 extern void		(APIENTRYP qglClearColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
62 extern void		(APIENTRYP qglClearDepth) (GLclampd depth);
63 extern void		(APIENTRYP qglClearIndex) (GLfloat c);
64 extern void		(APIENTRYP qglClearStencil) (GLint s);
65 extern void		(APIENTRYP qglClipPlane) (GLenum plane, const GLdouble *equation);
66 extern void		(APIENTRYP qglColor3b) (GLbyte red, GLbyte green, GLbyte blue);
67 extern void		(APIENTRYP qglColor3bv) (const GLbyte *v);
68 extern void		(APIENTRYP qglColor3d) (GLdouble red, GLdouble green, GLdouble blue);
69 extern void		(APIENTRYP qglColor3dv) (const GLdouble *v);
70 extern void		(APIENTRYP qglColor3f) (GLfloat red, GLfloat green, GLfloat blue);
71 extern void		(APIENTRYP qglColor3fv) (const GLfloat *v);
72 extern void		(APIENTRYP qglColor3i) (GLint red, GLint green, GLint blue);
73 extern void		(APIENTRYP qglColor3iv) (const GLint *v);
74 extern void		(APIENTRYP qglColor3s) (GLshort red, GLshort green, GLshort blue);
75 extern void		(APIENTRYP qglColor3sv) (const GLshort *v);
76 extern void		(APIENTRYP qglColor3ub) (GLubyte red, GLubyte green, GLubyte blue);
77 extern void		(APIENTRYP qglColor3ubv) (const GLubyte *v);
78 extern void		(APIENTRYP qglColor3ui) (GLuint red, GLuint green, GLuint blue);
79 extern void		(APIENTRYP qglColor3uiv) (const GLuint *v);
80 extern void		(APIENTRYP qglColor3us) (GLushort red, GLushort green, GLushort blue);
81 extern void		(APIENTRYP qglColor3usv) (const GLushort *v);
82 extern void		(APIENTRYP qglColor4b) (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
83 extern void		(APIENTRYP qglColor4bv) (const GLbyte *v);
84 extern void		(APIENTRYP qglColor4d) (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
85 extern void		(APIENTRYP qglColor4dv) (const GLdouble *v);
86 extern void		(APIENTRYP qglColor4f) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
87 extern void		(APIENTRYP qglColor4fv) (const GLfloat *v);
88 extern void		(APIENTRYP qglColor4i) (GLint red, GLint green, GLint blue, GLint alpha);
89 extern void		(APIENTRYP qglColor4iv) (const GLint *v);
90 extern void		(APIENTRYP qglColor4s) (GLshort red, GLshort green, GLshort blue, GLshort alpha);
91 extern void		(APIENTRYP qglColor4sv) (const GLshort *v);
92 extern void		(APIENTRYP qglColor4ub) (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
93 extern void		(APIENTRYP qglColor4ubv) (const GLubyte *v);
94 extern void		(APIENTRYP qglColor4ui) (GLuint red, GLuint green, GLuint blue, GLuint alpha);
95 extern void		(APIENTRYP qglColor4uiv) (const GLuint *v);
96 extern void		(APIENTRYP qglColor4us) (GLushort red, GLushort green, GLushort blue, GLushort alpha);
97 extern void		(APIENTRYP qglColor4usv) (const GLushort *v);
98 extern void		(APIENTRYP qglColorMask) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
99 extern void		(APIENTRYP qglColorMaterial) (GLenum face, GLenum mode);
100 extern void		(APIENTRYP qglColorPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
101 extern void		(APIENTRYP qglCopyPixels) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
102 extern void		(APIENTRYP qglCopyTexImage1D) (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
103 extern void		(APIENTRYP qglCopyTexImage2D) (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
104 extern void		(APIENTRYP qglCopyTexSubImage1D) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
105 extern void		(APIENTRYP qglCopyTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
106 extern void		(APIENTRYP qglCullFace) (GLenum mode);
107 extern void		(APIENTRYP qglDeleteLists) (GLuint list, GLsizei range);
108 extern void		(APIENTRYP qglDeleteTextures) (GLsizei n, const GLuint *textures);
109 extern void		(APIENTRYP qglDepthFunc) (GLenum func);
110 extern void		(APIENTRYP qglDepthMask) (GLboolean flag);
111 extern void		(APIENTRYP qglDepthRange) (GLclampd zNear, GLclampd zFar);
112 extern void		(APIENTRYP qglDisable) (GLenum cap);
113 extern void		(APIENTRYP qglDisableClientState) (GLenum array);
114 extern void		(APIENTRYP qglDrawArrays) (GLenum mode, GLint first, GLsizei count);
115 extern void		(APIENTRYP qglDrawBuffer) (GLenum mode);
116 extern void		(APIENTRYP qglDrawElements) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
117 extern void		(APIENTRYP qglDrawPixels) (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
118 extern void		(APIENTRYP qglEdgeFlag) (GLboolean flag);
119 extern void		(APIENTRYP qglEdgeFlagPointer) (GLsizei stride, const GLvoid *pointer);
120 extern void		(APIENTRYP qglEdgeFlagv) (const GLboolean *flag);
121 extern void		(APIENTRYP qglEnable) (GLenum cap);
122 extern void		(APIENTRYP qglEnableClientState) (GLenum array);
123 extern void		(APIENTRYP qglEnd) (void);
124 extern void		(APIENTRYP qglEndList) (void);
125 extern void		(APIENTRYP qglEvalCoord1d) (GLdouble u);
126 extern void		(APIENTRYP qglEvalCoord1dv) (const GLdouble *u);
127 extern void		(APIENTRYP qglEvalCoord1f) (GLfloat u);
128 extern void		(APIENTRYP qglEvalCoord1fv) (const GLfloat *u);
129 extern void		(APIENTRYP qglEvalCoord2d) (GLdouble u, GLdouble v);
130 extern void		(APIENTRYP qglEvalCoord2dv) (const GLdouble *u);
131 extern void		(APIENTRYP qglEvalCoord2f) (GLfloat u, GLfloat v);
132 extern void		(APIENTRYP qglEvalCoord2fv) (const GLfloat *u);
133 extern void		(APIENTRYP qglEvalMesh1) (GLenum mode, GLint i1, GLint i2);
134 extern void		(APIENTRYP qglEvalMesh2) (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
135 extern void		(APIENTRYP qglEvalPoint1) (GLint i);
136 extern void		(APIENTRYP qglEvalPoint2) (GLint i, GLint j);
137 extern void		(APIENTRYP qglFeedbackBuffer) (GLsizei size, GLenum type, GLfloat *buffer);
138 extern void		(APIENTRYP qglFinish) (void);
139 extern void		(APIENTRYP qglFlush) (void);
140 extern void		(APIENTRYP qglFogf) (GLenum pname, GLfloat param);
141 extern void		(APIENTRYP qglFogfv) (GLenum pname, const GLfloat *params);
142 extern void		(APIENTRYP qglFogi) (GLenum pname, GLint param);
143 extern void		(APIENTRYP qglFogiv) (GLenum pname, const GLint *params);
144 extern void		(APIENTRYP qglFrontFace) (GLenum mode);
145 extern void		(APIENTRYP qglFrustum) (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
146 extern GLuint	(APIENTRYP qglGenLists) (GLsizei range);
147 extern void		(APIENTRYP qglGenTextures) (GLsizei n, GLuint *textures);
148 extern void		(APIENTRYP qglGetBooleanv) (GLenum pname, GLboolean *params);
149 extern void		(APIENTRYP qglGetClipPlane) (GLenum plane, GLdouble *equation);
150 extern void		(APIENTRYP qglGetDoublev) (GLenum pname, GLdouble *params);
151 extern GLenum	(APIENTRYP qglGetError) (void);
152 extern void		(APIENTRYP qglGetFloatv) (GLenum pname, GLfloat *params);
153 extern void		(APIENTRYP qglGetIntegerv) (GLenum pname, GLint *params);
154 extern void		(APIENTRYP qglGetLightfv) (GLenum light, GLenum pname, GLfloat *params);
155 extern void		(APIENTRYP qglGetLightiv) (GLenum light, GLenum pname, GLint *params);
156 extern void		(APIENTRYP qglGetMapdv) (GLenum target, GLenum query, GLdouble *v);
157 extern void		(APIENTRYP qglGetMapfv) (GLenum target, GLenum query, GLfloat *v);
158 extern void		(APIENTRYP qglGetMapiv) (GLenum target, GLenum query, GLint *v);
159 extern void		(APIENTRYP qglGetMaterialfv) (GLenum face, GLenum pname, GLfloat *params);
160 extern void		(APIENTRYP qglGetMaterialiv) (GLenum face, GLenum pname, GLint *params);
161 extern void		(APIENTRYP qglGetPixelMapfv) (GLenum map, GLfloat *values);
162 extern void		(APIENTRYP qglGetPixelMapuiv) (GLenum map, GLuint *values);
163 extern void		(APIENTRYP qglGetPixelMapusv) (GLenum map, GLushort *values);
164 extern void		(APIENTRYP qglGetPointerv) (GLenum pname, GLvoid* *params);
165 extern void		(APIENTRYP qglGetPolygonStipple) (GLubyte *mask);
166 extern const GLubyte * (APIENTRYP qglGetString) (GLenum name);
167 extern void		(APIENTRYP qglGetTexEnvfv) (GLenum target, GLenum pname, GLfloat *params);
168 extern void		(APIENTRYP qglGetTexEnviv) (GLenum target, GLenum pname, GLint *params);
169 extern void		(APIENTRYP qglGetTexGendv) (GLenum coord, GLenum pname, GLdouble *params);
170 extern void		(APIENTRYP qglGetTexGenfv) (GLenum coord, GLenum pname, GLfloat *params);
171 extern void		(APIENTRYP qglGetTexGeniv) (GLenum coord, GLenum pname, GLint *params);
172 extern void		(APIENTRYP qglGetTexImage) (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
173 extern void		(APIENTRYP qglGetTexLevelParameterfv) (GLenum target, GLint level, GLenum pname, GLfloat *params);
174 extern void		(APIENTRYP qglGetTexLevelParameteriv) (GLenum target, GLint level, GLenum pname, GLint *params);
175 extern void		(APIENTRYP qglGetTexParameterfv) (GLenum target, GLenum pname, GLfloat *params);
176 extern void		(APIENTRYP qglGetTexParameteriv) (GLenum target, GLenum pname, GLint *params);
177 extern void		(APIENTRYP qglHint) (GLenum target, GLenum mode);
178 extern void		(APIENTRYP qglIndexMask) (GLuint mask);
179 extern void		(APIENTRYP qglIndexPointer) (GLenum type, GLsizei stride, const GLvoid *pointer);
180 extern void		(APIENTRYP qglIndexd) (GLdouble c);
181 extern void		(APIENTRYP qglIndexdv) (const GLdouble *c);
182 extern void		(APIENTRYP qglIndexf) (GLfloat c);
183 extern void		(APIENTRYP qglIndexfv) (const GLfloat *c);
184 extern void		(APIENTRYP qglIndexi) (GLint c);
185 extern void		(APIENTRYP qglIndexiv) (const GLint *c);
186 extern void		(APIENTRYP qglIndexs) (GLshort c);
187 extern void		(APIENTRYP qglIndexsv) (const GLshort *c);
188 extern void		(APIENTRYP qglIndexub) (GLubyte c);
189 extern void		(APIENTRYP qglIndexubv) (const GLubyte *c);
190 extern void		(APIENTRYP qglInitNames) (void);
191 extern void		(APIENTRYP qglInterleavedArrays) (GLenum format, GLsizei stride, const GLvoid *pointer);
192 extern GLboolean (APIENTRYP qglIsEnabled) (GLenum cap);
193 extern GLboolean (APIENTRYP qglIsList) (GLuint list);
194 extern GLboolean (APIENTRYP qglIsTexture) (GLuint texture);
195 extern void		(APIENTRYP qglLightModelf) (GLenum pname, GLfloat param);
196 extern void		(APIENTRYP qglLightModelfv) (GLenum pname, const GLfloat *params);
197 extern void		(APIENTRYP qglLightModeli) (GLenum pname, GLint param);
198 extern void		(APIENTRYP qglLightModeliv) (GLenum pname, const GLint *params);
199 extern void		(APIENTRYP qglLightf) (GLenum light, GLenum pname, GLfloat param);
200 extern void		(APIENTRYP qglLightfv) (GLenum light, GLenum pname, const GLfloat *params);
201 extern void		(APIENTRYP qglLighti) (GLenum light, GLenum pname, GLint param);
202 extern void		(APIENTRYP qglLightiv) (GLenum light, GLenum pname, const GLint *params);
203 extern void		(APIENTRYP qglLineStipple) (GLint factor, GLushort pattern);
204 extern void		(APIENTRYP qglLineWidth) (GLfloat width);
205 extern void		(APIENTRYP qglListBase) (GLuint base);
206 extern void		(APIENTRYP qglLoadIdentity) (void);
207 extern void		(APIENTRYP qglLoadMatrixd) (const GLdouble *m);
208 extern void		(APIENTRYP qglLoadMatrixf) (const GLfloat *m);
209 extern void		(APIENTRYP qglLoadName) (GLuint name);
210 extern void		(APIENTRYP qglLogicOp) (GLenum opcode);
211 extern void		(APIENTRYP qglMap1d) (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
212 extern void		(APIENTRYP qglMap1f) (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
213 extern void		(APIENTRYP qglMap2d) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
214 extern void		(APIENTRYP qglMap2f) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
215 extern void		(APIENTRYP qglMapGrid1d) (GLint un, GLdouble u1, GLdouble u2);
216 extern void		(APIENTRYP qglMapGrid1f) (GLint un, GLfloat u1, GLfloat u2);
217 extern void		(APIENTRYP qglMapGrid2d) (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
218 extern void		(APIENTRYP qglMapGrid2f) (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
219 extern void		(APIENTRYP qglMaterialf) (GLenum face, GLenum pname, GLfloat param);
220 extern void		(APIENTRYP qglMaterialfv) (GLenum face, GLenum pname, const GLfloat *params);
221 extern void		(APIENTRYP qglMateriali) (GLenum face, GLenum pname, GLint param);
222 extern void		(APIENTRYP qglMaterialiv) (GLenum face, GLenum pname, const GLint *params);
223 extern void		(APIENTRYP qglMatrixMode) (GLenum mode);
224 extern void		(APIENTRYP qglMultMatrixd) (const GLdouble *m);
225 extern void		(APIENTRYP qglMultMatrixf) (const GLfloat *m);
226 extern void		(APIENTRYP qglNewList) (GLuint list, GLenum mode);
227 extern void		(APIENTRYP qglNormal3b) (GLbyte nx, GLbyte ny, GLbyte nz);
228 extern void		(APIENTRYP qglNormal3bv) (const GLbyte *v);
229 extern void		(APIENTRYP qglNormal3d) (GLdouble nx, GLdouble ny, GLdouble nz);
230 extern void		(APIENTRYP qglNormal3dv) (const GLdouble *v);
231 extern void		(APIENTRYP qglNormal3f) (GLfloat nx, GLfloat ny, GLfloat nz);
232 extern void		(APIENTRYP qglNormal3fv) (const GLfloat *v);
233 extern void		(APIENTRYP qglNormal3i) (GLint nx, GLint ny, GLint nz);
234 extern void		(APIENTRYP qglNormal3iv) (const GLint *v);
235 extern void		(APIENTRYP qglNormal3s) (GLshort nx, GLshort ny, GLshort nz);
236 extern void		(APIENTRYP qglNormal3sv) (const GLshort *v);
237 extern void		(APIENTRYP qglNormalPointer) (GLenum type, GLsizei stride, const GLvoid *pointer);
238 extern void		(APIENTRYP qglOrtho) (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
239 extern void		(APIENTRYP qglPassThrough) (GLfloat token);
240 extern void		(APIENTRYP qglPixelMapfv) (GLenum map, GLsizei mapsize, const GLfloat *values);
241 extern void		(APIENTRYP qglPixelMapuiv) (GLenum map, GLsizei mapsize, const GLuint *values);
242 extern void		(APIENTRYP qglPixelMapusv) (GLenum map, GLsizei mapsize, const GLushort *values);
243 extern void		(APIENTRYP qglPixelStoref) (GLenum pname, GLfloat param);
244 extern void		(APIENTRYP qglPixelStorei) (GLenum pname, GLint param);
245 extern void		(APIENTRYP qglPixelTransferf) (GLenum pname, GLfloat param);
246 extern void		(APIENTRYP qglPixelTransferi) (GLenum pname, GLint param);
247 extern void		(APIENTRYP qglPixelZoom) (GLfloat xfactor, GLfloat yfactor);
248 extern void		(APIENTRYP qglPointSize) (GLfloat size);
249 extern void		(APIENTRYP qglPolygonMode) (GLenum face, GLenum mode);
250 extern void		(APIENTRYP qglPolygonOffset) (GLfloat factor, GLfloat units);
251 extern void		(APIENTRYP qglPolygonStipple) (const GLubyte *mask);
252 extern void		(APIENTRYP qglPopAttrib) (void);
253 extern void		(APIENTRYP qglPopClientAttrib) (void);
254 extern void		(APIENTRYP qglPopMatrix) (void);
255 extern void		(APIENTRYP qglPopName) (void);
256 extern void		(APIENTRYP qglPrioritizeTextures) (GLsizei n, const GLuint *textures, const GLclampf *priorities);
257 extern void		(APIENTRYP qglPushAttrib) (GLbitfield mask);
258 extern void		(APIENTRYP qglPushClientAttrib) (GLbitfield mask);
259 extern void		(APIENTRYP qglPushMatrix) (void);
260 extern void		(APIENTRYP qglPushName) (GLuint name);
261 extern void		(APIENTRYP qglRasterPos2d) (GLdouble x, GLdouble y);
262 extern void		(APIENTRYP qglRasterPos2dv) (const GLdouble *v);
263 extern void		(APIENTRYP qglRasterPos2f) (GLfloat x, GLfloat y);
264 extern void		(APIENTRYP qglRasterPos2fv) (const GLfloat *v);
265 extern void		(APIENTRYP qglRasterPos2i) (GLint x, GLint y);
266 extern void		(APIENTRYP qglRasterPos2iv) (const GLint *v);
267 extern void		(APIENTRYP qglRasterPos2s) (GLshort x, GLshort y);
268 extern void		(APIENTRYP qglRasterPos2sv) (const GLshort *v);
269 extern void		(APIENTRYP qglRasterPos3d) (GLdouble x, GLdouble y, GLdouble z);
270 extern void		(APIENTRYP qglRasterPos3dv) (const GLdouble *v);
271 extern void		(APIENTRYP qglRasterPos3f) (GLfloat x, GLfloat y, GLfloat z);
272 extern void		(APIENTRYP qglRasterPos3fv) (const GLfloat *v);
273 extern void		(APIENTRYP qglRasterPos3i) (GLint x, GLint y, GLint z);
274 extern void		(APIENTRYP qglRasterPos3iv) (const GLint *v);
275 extern void		(APIENTRYP qglRasterPos3s) (GLshort x, GLshort y, GLshort z);
276 extern void		(APIENTRYP qglRasterPos3sv) (const GLshort *v);
277 extern void		(APIENTRYP qglRasterPos4d) (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
278 extern void		(APIENTRYP qglRasterPos4dv) (const GLdouble *v);
279 extern void		(APIENTRYP qglRasterPos4f) (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
280 extern void		(APIENTRYP qglRasterPos4fv) (const GLfloat *v);
281 extern void		(APIENTRYP qglRasterPos4i) (GLint x, GLint y, GLint z, GLint w);
282 extern void		(APIENTRYP qglRasterPos4iv) (const GLint *v);
283 extern void		(APIENTRYP qglRasterPos4s) (GLshort x, GLshort y, GLshort z, GLshort w);
284 extern void		(APIENTRYP qglRasterPos4sv) (const GLshort *v);
285 extern void		(APIENTRYP qglReadBuffer) (GLenum mode);
286 extern void		(APIENTRYP qglReadPixels) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
287 extern void		(APIENTRYP qglRectd) (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
288 extern void		(APIENTRYP qglRectdv) (const GLdouble *v1, const GLdouble *v2);
289 extern void		(APIENTRYP qglRectf) (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
290 extern void		(APIENTRYP qglRectfv) (const GLfloat *v1, const GLfloat *v2);
291 extern void		(APIENTRYP qglRecti) (GLint x1, GLint y1, GLint x2, GLint y2);
292 extern void		(APIENTRYP qglRectiv) (const GLint *v1, const GLint *v2);
293 extern void		(APIENTRYP qglRects) (GLshort x1, GLshort y1, GLshort x2, GLshort y2);
294 extern void		(APIENTRYP qglRectsv) (const GLshort *v1, const GLshort *v2);
295 extern GLint	(APIENTRYP qglRenderMode) (GLenum mode);
296 extern void		(APIENTRYP qglRotated) (GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
297 extern void		(APIENTRYP qglRotatef) (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
298 extern void		(APIENTRYP qglScaled) (GLdouble x, GLdouble y, GLdouble z);
299 extern void		(APIENTRYP qglScalef) (GLfloat x, GLfloat y, GLfloat z);
300 extern void		(APIENTRYP qglScissor) (GLint x, GLint y, GLsizei width, GLsizei height);
301 extern void		(APIENTRYP qglSelectBuffer) (GLsizei size, GLuint *buffer);
302 extern void		(APIENTRYP qglShadeModel) (GLenum mode);
303 extern void		(APIENTRYP qglStencilFunc) (GLenum func, GLint ref, GLuint mask);
304 extern void		(APIENTRYP qglStencilMask) (GLuint mask);
305 extern void		(APIENTRYP qglStencilOp) (GLenum fail, GLenum zfail, GLenum zpass);
306 extern void		(APIENTRYP qglTexCoord1d) (GLdouble s);
307 extern void		(APIENTRYP qglTexCoord1dv) (const GLdouble *v);
308 extern void		(APIENTRYP qglTexCoord1f) (GLfloat s);
309 extern void		(APIENTRYP qglTexCoord1fv) (const GLfloat *v);
310 extern void		(APIENTRYP qglTexCoord1i) (GLint s);
311 extern void		(APIENTRYP qglTexCoord1iv) (const GLint *v);
312 extern void		(APIENTRYP qglTexCoord1s) (GLshort s);
313 extern void		(APIENTRYP qglTexCoord1sv) (const GLshort *v);
314 extern void		(APIENTRYP qglTexCoord2d) (GLdouble s, GLdouble t);
315 extern void		(APIENTRYP qglTexCoord2dv) (const GLdouble *v);
316 extern void		(APIENTRYP qglTexCoord2f) (GLfloat s, GLfloat t);
317 extern void		(APIENTRYP qglTexCoord2fv) (const GLfloat *v);
318 extern void		(APIENTRYP qglTexCoord2i) (GLint s, GLint t);
319 extern void		(APIENTRYP qglTexCoord2iv) (const GLint *v);
320 extern void		(APIENTRYP qglTexCoord2s) (GLshort s, GLshort t);
321 extern void		(APIENTRYP qglTexCoord2sv) (const GLshort *v);
322 extern void		(APIENTRYP qglTexCoord3d) (GLdouble s, GLdouble t, GLdouble r);
323 extern void		(APIENTRYP qglTexCoord3dv) (const GLdouble *v);
324 extern void		(APIENTRYP qglTexCoord3f) (GLfloat s, GLfloat t, GLfloat r);
325 extern void		(APIENTRYP qglTexCoord3fv) (const GLfloat *v);
326 extern void		(APIENTRYP qglTexCoord3i) (GLint s, GLint t, GLint r);
327 extern void		(APIENTRYP qglTexCoord3iv) (const GLint *v);
328 extern void		(APIENTRYP qglTexCoord3s) (GLshort s, GLshort t, GLshort r);
329 extern void		(APIENTRYP qglTexCoord3sv) (const GLshort *v);
330 extern void		(APIENTRYP qglTexCoord4d) (GLdouble s, GLdouble t, GLdouble r, GLdouble q);
331 extern void		(APIENTRYP qglTexCoord4dv) (const GLdouble *v);
332 extern void		(APIENTRYP qglTexCoord4f) (GLfloat s, GLfloat t, GLfloat r, GLfloat q);
333 extern void		(APIENTRYP qglTexCoord4fv) (const GLfloat *v);
334 extern void		(APIENTRYP qglTexCoord4i) (GLint s, GLint t, GLint r, GLint q);
335 extern void		(APIENTRYP qglTexCoord4iv) (const GLint *v);
336 extern void		(APIENTRYP qglTexCoord4s) (GLshort s, GLshort t, GLshort r, GLshort q);
337 extern void		(APIENTRYP qglTexCoord4sv) (const GLshort *v);
338 extern void		(APIENTRYP qglTexCoordPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
339 extern void		(APIENTRYP qglTexEnvf) (GLenum target, GLenum pname, GLfloat param);
340 extern void		(APIENTRYP qglTexEnvfv) (GLenum target, GLenum pname, const GLfloat *params);
341 extern void		(APIENTRYP qglTexEnvi) (GLenum target, GLenum pname, GLint param);
342 extern void		(APIENTRYP qglTexEnviv) (GLenum target, GLenum pname, const GLint *params);
343 extern void		(APIENTRYP qglTexGend) (GLenum coord, GLenum pname, GLdouble param);
344 extern void		(APIENTRYP qglTexGendv) (GLenum coord, GLenum pname, const GLdouble *params);
345 extern void		(APIENTRYP qglTexGenf) (GLenum coord, GLenum pname, GLfloat param);
346 extern void		(APIENTRYP qglTexGenfv) (GLenum coord, GLenum pname, const GLfloat *params);
347 extern void		(APIENTRYP qglTexGeni) (GLenum coord, GLenum pname, GLint param);
348 extern void		(APIENTRYP qglTexGeniv) (GLenum coord, GLenum pname, const GLint *params);
349 extern void		(APIENTRYP qglTexImage1D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
350 extern void		(APIENTRYP qglTexImage2D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
351 extern void		(APIENTRYP qglTexParameterf) (GLenum target, GLenum pname, GLfloat param);
352 extern void		(APIENTRYP qglTexParameterfv) (GLenum target, GLenum pname, const GLfloat *params);
353 extern void		(APIENTRYP qglTexParameteri) (GLenum target, GLenum pname, GLint param);
354 extern void		(APIENTRYP qglTexParameteriv) (GLenum target, GLenum pname, const GLint *params);
355 extern void		(APIENTRYP qglTexSubImage1D) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
356 extern void		(APIENTRYP qglTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
357 extern void		(APIENTRYP qglTranslated) (GLdouble x, GLdouble y, GLdouble z);
358 extern void		(APIENTRYP qglTranslatef) (GLfloat x, GLfloat y, GLfloat z);
359 extern void		(APIENTRYP qglVertex2d) (GLdouble x, GLdouble y);
360 extern void		(APIENTRYP qglVertex2dv) (const GLdouble *v);
361 extern void		(APIENTRYP qglVertex2f) (GLfloat x, GLfloat y);
362 extern void		(APIENTRYP qglVertex2fv) (const GLfloat *v);
363 extern void		(APIENTRYP qglVertex2i) (GLint x, GLint y);
364 extern void		(APIENTRYP qglVertex2iv) (const GLint *v);
365 extern void		(APIENTRYP qglVertex2s) (GLshort x, GLshort y);
366 extern void		(APIENTRYP qglVertex2sv) (const GLshort *v);
367 extern void		(APIENTRYP qglVertex3d) (GLdouble x, GLdouble y, GLdouble z);
368 extern void		(APIENTRYP qglVertex3dv) (const GLdouble *v);
369 extern void		(APIENTRYP qglVertex3f) (GLfloat x, GLfloat y, GLfloat z);
370 extern void		(APIENTRYP qglVertex3fv) (const GLfloat *v);
371 extern void		(APIENTRYP qglVertex3i) (GLint x, GLint y, GLint z);
372 extern void		(APIENTRYP qglVertex3iv) (const GLint *v);
373 extern void		(APIENTRYP qglVertex3s) (GLshort x, GLshort y, GLshort z);
374 extern void		(APIENTRYP qglVertex3sv) (const GLshort *v);
375 extern void		(APIENTRYP qglVertex4d) (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
376 extern void		(APIENTRYP qglVertex4dv) (const GLdouble *v);
377 extern void		(APIENTRYP qglVertex4f) (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
378 extern void		(APIENTRYP qglVertex4fv) (const GLfloat *v);
379 extern void		(APIENTRYP qglVertex4i) (GLint x, GLint y, GLint z, GLint w);
380 extern void		(APIENTRYP qglVertex4iv) (const GLint *v);
381 extern void		(APIENTRYP qglVertex4s) (GLshort x, GLshort y, GLshort z, GLshort w);
382 extern void		(APIENTRYP qglVertex4sv) (const GLshort *v);
383 extern void		(APIENTRYP qglVertexPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
384 extern void		(APIENTRYP qglViewport) (GLint x, GLint y, GLsizei width, GLsizei height);
385 
386 #if defined(WIN32)
387 
388 //
389 // win32
390 //
391 
392 #ifndef WINAPI
393 # define WINAPI APIENTRY
394 #endif
395 #ifndef WINAPIP
396 # define WINAPIP WINAPI *
397 #endif
398 
399 extern int		(WINAPIP qwglChoosePixelFormat) (HDC, CONST PIXELFORMATDESCRIPTOR *);
400 extern int		(WINAPIP qwglDescribePixelFormat) (HDC, int, UINT, LPPIXELFORMATDESCRIPTOR);
401 extern int		(WINAPIP qwglGetPixelFormat) (HDC);
402 extern BOOL		(WINAPIP qwglSetPixelFormat) (HDC, int, CONST PIXELFORMATDESCRIPTOR *);
403 extern BOOL		(WINAPIP qwglSwapBuffers) (HDC);
404 
405 extern BOOL		(WINAPIP qwglCopyContext) (HGLRC hglrcSrc, HGLRC hglrcDst, UINT mask);
406 extern HGLRC	(WINAPIP qwglCreateContext) (HDC hdc);
407 extern HGLRC	(WINAPIP qwglCreateLayerContext) (HDC hdc, int iLayerPlane);
408 extern BOOL		(WINAPIP qwglDeleteContext) (HGLRC hglrc);
409 extern BOOL		(WINAPIP qwglDescribeLayerPlane) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nBytes, LPLAYERPLANEDESCRIPTOR plpd);
410 extern HGLRC	(WINAPIP qwglGetCurrentContext) (VOID);
411 extern HDC		(WINAPIP qwglGetCurrentDC) (VOID);
412 extern PROC		(WINAPIP qwglGetProcAddress) (LPCSTR lpszProc);
413 extern BOOL		(WINAPIP qwglMakeCurrent) (HDC hdc, HGLRC hglrc);
414 extern BOOL		(WINAPIP qwglShareLists) (HGLRC hglrc1, HGLRC hglrc2);
415 extern BOOL		(WINAPIP qwglUseFontBitmaps) (HDC hdc, DWORD first, DWORD count, DWORD listBase);
416 extern BOOL		(WINAPIP qwglUseFontOutlines) (HDC hdc, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf);
417 
418 extern BOOL		(WINAPIP qwglRealizeLayerPalette) (HDC hdc, int iLayerPlane, BOOL bRealize);
419 extern int		(WINAPIP qwglGetLayerPaletteEntries) (HDC hdc, int iLayerPlane, int iStart, int cEntries, COLORREF *pcr);
420 extern int		(WINAPIP qwglSetLayerPaletteEntries) (HDC hdc, int iLayerPlane, int iStart, int cEntries, CONST COLORREF * pcr);
421 extern BOOL		(WINAPIP qwglSwapLayerBuffers) (HDC hdc, UINT fuPlanes);
422 
423 extern BOOL		(WINAPIP qwglSwapIntervalEXT) (int interval);
424 
425 extern BOOL		(WINAPIP qwglGetDeviceGammaRamp3DFX) (HDC, WORD *);
426 extern BOOL		(WINAPIP qwglSetDeviceGammaRamp3DFX) (HDC, WORD *);
427 
428 #endif // WIN32
429 
430 
431 
432 #if defined(__unix__)
433 
434 //
435 // linux
436 //
437 
438 //GLX Functions
439 extern XVisualInfo * (*qglXChooseVisual) (Display *dpy, int screen, int *attribList);
440 extern GLXContext (*qglXCreateContext) (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct);
441 extern void		(*qglXDestroyContext) (Display *dpy, GLXContext ctx);
442 extern Bool		(*qglXMakeCurrent) (Display *dpy, GLXDrawable drawable, GLXContext ctx);
443 extern void		(*qglXCopyContext) (Display *dpy, GLXContext src, GLXContext dst, GLuint mask);
444 extern void		(*qglXSwapBuffers) (Display *dpy, GLXDrawable drawable);
445 
446 #endif // linux
447 
448 
449 
450 //
451 // extensions
452 //
453 
454 extern void		(APIENTRYP qglSelectTextureSGIS) (GLenum texture);
455 extern void		(APIENTRYP qglActiveTextureARB) (GLenum texture);
456 extern void		(APIENTRYP qglClientActiveTextureARB) (GLenum texture);
457 
458 extern void		(APIENTRYP qglLockArraysEXT) (int first, int count);
459 extern void		(APIENTRYP qglUnlockArraysEXT) (void);
460 
461 extern void		(APIENTRYP qglDrawRangeElementsEXT) (GLenum mode, GLuint count, GLuint start, GLsizei end, GLenum type, const GLvoid *indices);
462 
463 extern void		(APIENTRYP qglBindBufferARB) (GLenum target, GLuint buffer);
464 extern void		(APIENTRYP qglDeleteBuffersARB) (GLsizei n, const GLuint *buffers);
465 extern void		(APIENTRYP qglGenBuffersARB) (GLsizei n, GLuint *buffers);
466 extern GLboolean (APIENTRYP qglIsBufferARB) (GLuint buffer);
467 extern void		*(APIENTRYP qglMapBufferARB) (GLenum target, GLenum access);
468 extern GLboolean (APIENTRYP qglUnmapBufferARB) (GLenum target);
469 extern void		(APIENTRYP qglBufferDataARB) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage);
470 extern void		(APIENTRYP qglBufferSubDataARB) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data);
471 
472 extern void		(APIENTRY * qglVertexAttribPointerARB) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
473 extern void		(APIENTRY * qglEnableVertexAttribArrayARB) (GLuint index);
474 extern void		(APIENTRY * qglDisableVertexAttribArrayARB) (GLuint index);
475 extern void		(APIENTRY * qglBindProgramARB) (GLenum target, GLuint program);
476 extern void		(APIENTRY * qglDeleteProgramsARB) (GLsizei n, const GLuint *programs);
477 extern void		(APIENTRY * qglGenProgramsARB) (GLsizei n, GLuint *programs);
478 extern void		(APIENTRY * qglProgramStringARB) (GLenum target, GLenum format, GLsizei len, const GLvoid *string);
479 extern void		(APIENTRY * qglProgramEnvParameter4fARB) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
480 extern void		(APIENTRY * qglProgramEnvParameter4fvARB) (GLenum target, GLuint index, const GLfloat *params);
481 extern void		(APIENTRY * qglProgramLocalParameter4fARB) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
482 extern void		(APIENTRY * qglProgramLocalParameter4fvARB) (GLenum target, GLuint index, const GLfloat *params);
483 extern void		(APIENTRY * qglGetProgramivARB) (GLenum target, GLenum pname, GLint *params);
484 
485 extern void		(APIENTRYP qglTexImage3D) (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
486 extern void		(APIENTRYP qglTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
487 
488 extern void		(APIENTRYP qglActiveStencilFaceEXT) (GLenum face);
489 
490 //
491 // functions
492 //
493 
494 qBool	QGL_Init (const char *dllName);
495 void	QGL_Shutdown (void);
496 
497 void	QGL_ToggleDebug (void);
498 
499 void	QGL_ToggleLogging (void);
500 void	QGL_LogBeginFrame (void);
501 void	QGL_LogEndFrame (void);
502 
503 void	*QGL_GetProcAddress (const char *procName);
504 
505 #endif // __RB_QGL_H__
506