ovr_sdk

view LibOVR/Src/CAPI/GL/CAPI_GLE_GL.h @ 0:1b39a1b46319

initial 0.4.4
author John Tsiombikas <nuclear@member.fsf.org>
date Wed, 14 Jan 2015 06:51:16 +0200
parents
children
line source
1 /************************************************************************************
3 Filename : CAPI_GLE_GL.h
4 Content : GL extensions declarations.
5 Copyright : Copyright 2014 Oculus VR, LLC All Rights reserved.
7 Licensed under the Oculus VR Rift SDK License Version 3.2 (the "License");
8 you may not use the Oculus VR Rift SDK except in compliance with the License,
9 which is provided at the time of installation or download, or which
10 otherwise accompanies this software in either electronic or hard copy form.
12 You may obtain a copy of the License at
14 http://www.oculusvr.com/licenses/LICENSE-3.2
16 Unless required by applicable law or agreed to in writing, the Oculus VR SDK
17 distributed under the License is distributed on an "AS IS" BASIS,
18 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 See the License for the specific language governing permissions and
20 limitations under the License.
22 ************************************************************************************/
25 #ifndef INC_OVR_CAPI_GLE_GL_h
26 #define INC_OVR_CAPI_GLE_GL_h
29 #include <stddef.h>
32 // Windows headers
33 // <wingdi.h> Windows-specific OpenGL 1.1 interfaces. Long ago this was <GL/wgl.h>.
34 // <GL/gl.h> OpenGL 1.1 interface.
35 // <GL/glext.h> OpenGL 1.2+ compatibility profile and extension interfaces. Not provided by Microsoft.
36 // <GL/wglext.h> Windows-specific extension interfaces. Not provided by Microsoft.
37 // <GL/glcorearb.h> OpenGL core profile and ARB extension interfaces. Doesn't include interfaces found only in the compatibility profile. Overlaps with gl.h and glext.h.
38 //
39 // Mac headers
40 // <OpenGL/gl.h> OpenGL 1.1 interface.
41 // <OpenGL/glext.h> OpenGL 1.2+ compatibility profile and extension interfaces.
42 // <OpenGL/gl3.h> Includes only interfaces supported in a core OpenGL 3.1 implementations plus a few related extensions.
43 // <OpenGL/gl3ext.h> Includes extensions supported in a core OpenGL 3.1 implementation.
44 // <OpenGL/OpenGL.h> Apple-specific OpenGL interfaces.
45 // <OpenGL/NSOpenGL.h> Apple-specific OpenGL interfaces.
46 //
47 // Linux headers
48 // <GL/gl.h> OpenGL 1.1 interface.
49 // <GL/glext.h> OpenGL 1.2+ compatibility profile and extension interfaces.
50 // <GL/glx.h> X Windows-specific OpenGL interfaces.
51 // <GL/glxext.h> X Windows 1.3+ API and GLX extension interfaces.
52 // <GL/glcorearb.h> OpenGL core profile and ARB extension interfaces. Doesn't include interfaces found only in the compatibility profile. Overlaps with gl.h and glext.h.
54 #if defined(__gl_h_) || defined(__GL_H__) || defined(__X_GL_H)
55 #error gl.h should be included after this, not before.
56 #endif
57 #if defined(__gl2_h_)
58 #error gl2.h should be included after this, not before.
59 #endif
60 #if defined(__gltypes_h_)
61 #error gltypes.h should be included after this, not before.
62 #endif
63 #if defined(__glext_h_) || defined(__GLEXT_H_)
64 #error glext.h should be included after this, not before.
65 #endif
67 // Prevent other GL versions from being included in the future.
68 // We do not disable Microsoft's wingdi.h and redeclare its functions. That's a big header that includes many other things.
69 // We do not currently disable Apple's OpenGL/OpenGL.h, though we could if we replicated its declarations in this header file.
70 #define __gl_h_ // Disable future #includes of Apple's <OpenGL/gl.h>
71 #define __GL_H__ // Disable future #includes of Microsoft's <GL/gl.h>
72 #define __X_GL_H // etc.
73 #define __gl2_h_
74 #define __gltypes_h_
75 #define __glext_h_
76 #define __GLEXT_H_
79 // GLE platform identification
80 #if defined(_WIN32)
81 #define GLE_WGL_ENABLED 1 // WGL interface
82 #elif defined(__ANDROID__)
83 #define GLE_EGL_ENABLED 1 // EGL interface
84 #elif defined(__IPHONE__)
85 #define GLE_EAGL_ENABLED 1 // EAGL interface
86 #elif defined(__APPLE__)
87 #define GLE_CGL_ENABLED 1 // CGL interface
88 #else
89 #define GLE_GLX_ENABLED 1 // GLX interface
90 #endif
93 // GLAPI / GLAPIENTRY
94 //
95 // GLAPI is a wrapper for Microsoft __declspec(dllimport).
96 // GLAPIENTRY is the calling convention (__stdcall under Microsoft).
97 //
98 #if defined(GLE_WGL_ENABLED)
99 #if !defined(WINAPI)
100 #ifndef WIN32_LEAN_AND_MEAN
101 #define WIN32_LEAN_AND_MEAN 1
102 #endif
103 #include <windows.h>
104 #undef WIN32_LEAN_AND_MEAN
105 #endif
107 #ifndef WINGDIAPI // Normally defined via windows.h
108 #define WINGDIAPI __declspec(dllimport)
109 #define GLE_WINGDIAPI_DEFINED // We define this so that we can know to undefine WINGDIAPI at the end of this file.
110 #endif
112 #if !defined(GLAPI)
113 #if defined(__MINGW32__) || defined(__CYGWIN__)
114 #define GLAPI extern
115 #else
116 #define GLAPI WINGDIAPI
117 #endif
118 #endif
119 #if !defined(GLAPIENTRY)
120 #define GLAPIENTRY __stdcall
121 #endif
122 #else
123 #include <stdint.h>
125 #define GLAPI extern
126 #define GLAPIENTRY /* empty */
127 #endif
130 // GLE_CLASS_EXPORT
131 // Possibly maps to Microsoft __declspec(dllexport) or nothing on other platforms.
132 #define GLE_CLASS_EXPORT // Currently defined to nothing. Could be defined to a dll export type.
136 // GLE_HOOKING_ENABLED
137 // When enabled, we intercept all OpenGL calls and do any useful internal processing before or after the call.
138 // An example use case for this is to intercept OpenGL errors on platforms that don't support the OpenGL
139 // debug functionality (e.g. KHR_Debug).
140 #if !defined(GLE_WGL_ENABLED) && !defined(GLE_GLX_ENABLED) && defined(OVR_BUILD_DEBUG) // Windows and Unix don't need it because they have OpenGL debug extension support (e.g. KHR_Debug).
141 #define GLE_HOOKING_ENABLED 1
142 #endif
144 // When using hooking, we map all OpenGL function usage to our member functions that end with _Hook.
145 // These member hook functions will internally call the actual OpenGL functions after doing some internal processing.
146 #if defined(GLE_HOOKING_ENABLED)
147 #define GLEGetCurrentFunction(x) GLEContext::GetCurrentContext()->x##_Hook
148 #define GLEGetCurrentVariable(x) GLEContext::GetCurrentContext()->x
149 #else
150 #define GLEGetCurrentFunction(x) GLEContext::GetCurrentContext()->x##_Impl
151 #define GLEGetCurrentVariable(x) GLEContext::GetCurrentContext()->x
152 #endif
154 // GLE_CURRENT_FUNCTION
155 // Used by hooking in debug builds.
156 #if defined(OVR_BUILD_DEBUG)
157 #define GLE_CURRENT_FUNCTION __FUNCTION__
158 #else
159 #define GLE_CURRENT_FUNCTION NULL
160 #endif
163 // GLE_WHOLE_VERSION
164 // Returns the major+minor version of the current GLEContext.
165 // Example usage:
166 // if(GLE_WHOLE_VERSION() >= 302) // If OpenGL 3.2 or later...
167 // ...
168 #define GLE_WHOLE_VERSION() GLEContext::GetCurrentContext()->WholeVersion()
172 #ifdef __cplusplus
173 extern "C" {
174 #endif
177 // OpenGL 1.1 declarations are present in all versions of gl.h, including Microsoft's.
178 // You don't need to dynamically link to these functions on any platform and can just assume
179 // they are present. A number of these functions have been deprecated by OpenGL v3+, and
180 // if an OpenGL v3+ core profile is enabled then usage of the deprecated functions is an error.
182 #ifndef GL_VERSION_1_1
183 #define GL_VERSION_1_1 1
185 typedef unsigned int GLenum;
186 typedef unsigned int GLbitfield;
187 typedef unsigned int GLuint;
188 typedef int GLint;
189 typedef int GLsizei;
190 typedef unsigned char GLboolean;
191 typedef signed char GLbyte;
192 typedef short GLshort;
193 typedef unsigned char GLubyte;
194 typedef unsigned short GLushort;
195 typedef unsigned long GLulong;
196 typedef float GLfloat;
197 typedef float GLclampf;
198 typedef double GLdouble;
199 typedef double GLclampd;
200 typedef void GLvoid;
201 typedef int64_t GLint64EXT;
202 typedef uint64_t GLuint64EXT;
203 typedef GLint64EXT GLint64;
204 typedef GLuint64EXT GLuint64;
205 typedef struct __GLsync *GLsync;
206 typedef char GLchar;
208 #define GL_ZERO 0
209 #define GL_FALSE 0
210 #define GL_LOGIC_OP 0x0BF1
211 #define GL_NONE 0
212 #define GL_TEXTURE_COMPONENTS 0x1003
213 #define GL_NO_ERROR 0
214 #define GL_POINTS 0x0000
215 #define GL_CURRENT_BIT 0x00000001
216 #define GL_TRUE 1
217 #define GL_ONE 1
218 #define GL_CLIENT_PIXEL_STORE_BIT 0x00000001
219 #define GL_LINES 0x0001
220 #define GL_LINE_LOOP 0x0002
221 #define GL_POINT_BIT 0x00000002
222 #define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002
223 #define GL_LINE_STRIP 0x0003
224 #define GL_LINE_BIT 0x00000004
225 #define GL_TRIANGLES 0x0004
226 #define GL_TRIANGLE_STRIP 0x0005
227 #define GL_TRIANGLE_FAN 0x0006
228 #define GL_QUADS 0x0007
229 #define GL_QUAD_STRIP 0x0008
230 #define GL_POLYGON_BIT 0x00000008
231 #define GL_POLYGON 0x0009
232 #define GL_POLYGON_STIPPLE_BIT 0x00000010
233 #define GL_PIXEL_MODE_BIT 0x00000020
234 #define GL_LIGHTING_BIT 0x00000040
235 #define GL_FOG_BIT 0x00000080
236 #define GL_DEPTH_BUFFER_BIT 0x00000100
237 #define GL_ACCUM 0x0100
238 #define GL_LOAD 0x0101
239 #define GL_RETURN 0x0102
240 #define GL_MULT 0x0103
241 #define GL_ADD 0x0104
242 #define GL_NEVER 0x0200
243 #define GL_ACCUM_BUFFER_BIT 0x00000200
244 #define GL_LESS 0x0201
245 #define GL_EQUAL 0x0202
246 #define GL_LEQUAL 0x0203
247 #define GL_GREATER 0x0204
248 #define GL_NOTEQUAL 0x0205
249 #define GL_GEQUAL 0x0206
250 #define GL_ALWAYS 0x0207
251 #define GL_SRC_COLOR 0x0300
252 #define GL_ONE_MINUS_SRC_COLOR 0x0301
253 #define GL_SRC_ALPHA 0x0302
254 #define GL_ONE_MINUS_SRC_ALPHA 0x0303
255 #define GL_DST_ALPHA 0x0304
256 #define GL_ONE_MINUS_DST_ALPHA 0x0305
257 #define GL_DST_COLOR 0x0306
258 #define GL_ONE_MINUS_DST_COLOR 0x0307
259 #define GL_SRC_ALPHA_SATURATE 0x0308
260 #define GL_STENCIL_BUFFER_BIT 0x00000400
261 #define GL_FRONT_LEFT 0x0400
262 #define GL_FRONT_RIGHT 0x0401
263 #define GL_BACK_LEFT 0x0402
264 #define GL_BACK_RIGHT 0x0403
265 #define GL_FRONT 0x0404
266 #define GL_BACK 0x0405
267 #define GL_LEFT 0x0406
268 #define GL_RIGHT 0x0407
269 #define GL_FRONT_AND_BACK 0x0408
270 #define GL_AUX0 0x0409
271 #define GL_AUX1 0x040A
272 #define GL_AUX2 0x040B
273 #define GL_AUX3 0x040C
274 #define GL_INVALID_ENUM 0x0500
275 #define GL_INVALID_VALUE 0x0501
276 #define GL_INVALID_OPERATION 0x0502
277 #define GL_STACK_OVERFLOW 0x0503
278 #define GL_STACK_UNDERFLOW 0x0504
279 #define GL_OUT_OF_MEMORY 0x0505
280 #define GL_2D 0x0600
281 #define GL_3D 0x0601
282 #define GL_3D_COLOR 0x0602
283 #define GL_3D_COLOR_TEXTURE 0x0603
284 #define GL_4D_COLOR_TEXTURE 0x0604
285 #define GL_PASS_THROUGH_TOKEN 0x0700
286 #define GL_POINT_TOKEN 0x0701
287 #define GL_LINE_TOKEN 0x0702
288 #define GL_POLYGON_TOKEN 0x0703
289 #define GL_BITMAP_TOKEN 0x0704
290 #define GL_DRAW_PIXEL_TOKEN 0x0705
291 #define GL_COPY_PIXEL_TOKEN 0x0706
292 #define GL_LINE_RESET_TOKEN 0x0707
293 #define GL_EXP 0x0800
294 #define GL_VIEWPORT_BIT 0x00000800
295 #define GL_EXP2 0x0801
296 #define GL_CW 0x0900
297 #define GL_CCW 0x0901
298 #define GL_COEFF 0x0A00
299 #define GL_ORDER 0x0A01
300 #define GL_DOMAIN 0x0A02
301 #define GL_CURRENT_COLOR 0x0B00
302 #define GL_CURRENT_INDEX 0x0B01
303 #define GL_CURRENT_NORMAL 0x0B02
304 #define GL_CURRENT_TEXTURE_COORDS 0x0B03
305 #define GL_CURRENT_RASTER_COLOR 0x0B04
306 #define GL_CURRENT_RASTER_INDEX 0x0B05
307 #define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06
308 #define GL_CURRENT_RASTER_POSITION 0x0B07
309 #define GL_CURRENT_RASTER_POSITION_VALID 0x0B08
310 #define GL_CURRENT_RASTER_DISTANCE 0x0B09
311 #define GL_POINT_SMOOTH 0x0B10
312 #define GL_POINT_SIZE 0x0B11
313 #define GL_POINT_SIZE_RANGE 0x0B12
314 #define GL_POINT_SIZE_GRANULARITY 0x0B13
315 #define GL_LINE_SMOOTH 0x0B20
316 #define GL_LINE_WIDTH 0x0B21
317 #define GL_LINE_WIDTH_RANGE 0x0B22
318 #define GL_LINE_WIDTH_GRANULARITY 0x0B23
319 #define GL_LINE_STIPPLE 0x0B24
320 #define GL_LINE_STIPPLE_PATTERN 0x0B25
321 #define GL_LINE_STIPPLE_REPEAT 0x0B26
322 #define GL_LIST_MODE 0x0B30
323 #define GL_MAX_LIST_NESTING 0x0B31
324 #define GL_LIST_BASE 0x0B32
325 #define GL_LIST_INDEX 0x0B33
326 #define GL_POLYGON_MODE 0x0B40
327 #define GL_POLYGON_SMOOTH 0x0B41
328 #define GL_POLYGON_STIPPLE 0x0B42
329 #define GL_EDGE_FLAG 0x0B43
330 #define GL_CULL_FACE 0x0B44
331 #define GL_CULL_FACE_MODE 0x0B45
332 #define GL_FRONT_FACE 0x0B46
333 #define GL_LIGHTING 0x0B50
334 #define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51
335 #define GL_LIGHT_MODEL_TWO_SIDE 0x0B52
336 #define GL_LIGHT_MODEL_AMBIENT 0x0B53
337 #define GL_SHADE_MODEL 0x0B54
338 #define GL_COLOR_MATERIAL_FACE 0x0B55
339 #define GL_COLOR_MATERIAL_PARAMETER 0x0B56
340 #define GL_COLOR_MATERIAL 0x0B57
341 #define GL_FOG 0x0B60
342 #define GL_FOG_INDEX 0x0B61
343 #define GL_FOG_DENSITY 0x0B62
344 #define GL_FOG_START 0x0B63
345 #define GL_FOG_END 0x0B64
346 #define GL_FOG_MODE 0x0B65
347 #define GL_FOG_COLOR 0x0B66
348 #define GL_DEPTH_RANGE 0x0B70
349 #define GL_DEPTH_TEST 0x0B71
350 #define GL_DEPTH_WRITEMASK 0x0B72
351 #define GL_DEPTH_CLEAR_VALUE 0x0B73
352 #define GL_DEPTH_FUNC 0x0B74
353 #define GL_ACCUM_CLEAR_VALUE 0x0B80
354 #define GL_STENCIL_TEST 0x0B90
355 #define GL_STENCIL_CLEAR_VALUE 0x0B91
356 #define GL_STENCIL_FUNC 0x0B92
357 #define GL_STENCIL_VALUE_MASK 0x0B93
358 #define GL_STENCIL_FAIL 0x0B94
359 #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
360 #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
361 #define GL_STENCIL_REF 0x0B97
362 #define GL_STENCIL_WRITEMASK 0x0B98
363 #define GL_MATRIX_MODE 0x0BA0
364 #define GL_NORMALIZE 0x0BA1
365 #define GL_VIEWPORT 0x0BA2
366 #define GL_MODELVIEW_STACK_DEPTH 0x0BA3
367 #define GL_PROJECTION_STACK_DEPTH 0x0BA4
368 #define GL_TEXTURE_STACK_DEPTH 0x0BA5
369 #define GL_MODELVIEW_MATRIX 0x0BA6
370 #define GL_PROJECTION_MATRIX 0x0BA7
371 #define GL_TEXTURE_MATRIX 0x0BA8
372 #define GL_ATTRIB_STACK_DEPTH 0x0BB0
373 #define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1
374 #define GL_ALPHA_TEST 0x0BC0
375 #define GL_ALPHA_TEST_FUNC 0x0BC1
376 #define GL_ALPHA_TEST_REF 0x0BC2
377 #define GL_DITHER 0x0BD0
378 #define GL_BLEND_DST 0x0BE0
379 #define GL_BLEND_SRC 0x0BE1
380 #define GL_BLEND 0x0BE2
381 #define GL_LOGIC_OP_MODE 0x0BF0
382 #define GL_INDEX_LOGIC_OP 0x0BF1
383 #define GL_COLOR_LOGIC_OP 0x0BF2
384 #define GL_AUX_BUFFERS 0x0C00
385 #define GL_DRAW_BUFFER 0x0C01
386 #define GL_READ_BUFFER 0x0C02
387 #define GL_SCISSOR_BOX 0x0C10
388 #define GL_SCISSOR_TEST 0x0C11
389 #define GL_INDEX_CLEAR_VALUE 0x0C20
390 #define GL_INDEX_WRITEMASK 0x0C21
391 #define GL_COLOR_CLEAR_VALUE 0x0C22
392 #define GL_COLOR_WRITEMASK 0x0C23
393 #define GL_INDEX_MODE 0x0C30
394 #define GL_RGBA_MODE 0x0C31
395 #define GL_DOUBLEBUFFER 0x0C32
396 #define GL_STEREO 0x0C33
397 #define GL_RENDER_MODE 0x0C40
398 #define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50
399 #define GL_POINT_SMOOTH_HINT 0x0C51
400 #define GL_LINE_SMOOTH_HINT 0x0C52
401 #define GL_POLYGON_SMOOTH_HINT 0x0C53
402 #define GL_FOG_HINT 0x0C54
403 #define GL_TEXTURE_GEN_S 0x0C60
404 #define GL_TEXTURE_GEN_T 0x0C61
405 #define GL_TEXTURE_GEN_R 0x0C62
406 #define GL_TEXTURE_GEN_Q 0x0C63
407 #define GL_PIXEL_MAP_I_TO_I 0x0C70
408 #define GL_PIXEL_MAP_S_TO_S 0x0C71
409 #define GL_PIXEL_MAP_I_TO_R 0x0C72
410 #define GL_PIXEL_MAP_I_TO_G 0x0C73
411 #define GL_PIXEL_MAP_I_TO_B 0x0C74
412 #define GL_PIXEL_MAP_I_TO_A 0x0C75
413 #define GL_PIXEL_MAP_R_TO_R 0x0C76
414 #define GL_PIXEL_MAP_G_TO_G 0x0C77
415 #define GL_PIXEL_MAP_B_TO_B 0x0C78
416 #define GL_PIXEL_MAP_A_TO_A 0x0C79
417 #define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0
418 #define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1
419 #define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2
420 #define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3
421 #define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4
422 #define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5
423 #define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6
424 #define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7
425 #define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8
426 #define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9
427 #define GL_UNPACK_SWAP_BYTES 0x0CF0
428 #define GL_UNPACK_LSB_FIRST 0x0CF1
429 #define GL_UNPACK_ROW_LENGTH 0x0CF2
430 #define GL_UNPACK_SKIP_ROWS 0x0CF3
431 #define GL_UNPACK_SKIP_PIXELS 0x0CF4
432 #define GL_UNPACK_ALIGNMENT 0x0CF5
433 #define GL_PACK_SWAP_BYTES 0x0D00
434 #define GL_PACK_LSB_FIRST 0x0D01
435 #define GL_PACK_ROW_LENGTH 0x0D02
436 #define GL_PACK_SKIP_ROWS 0x0D03
437 #define GL_PACK_SKIP_PIXELS 0x0D04
438 #define GL_PACK_ALIGNMENT 0x0D05
439 #define GL_MAP_COLOR 0x0D10
440 #define GL_MAP_STENCIL 0x0D11
441 #define GL_INDEX_SHIFT 0x0D12
442 #define GL_INDEX_OFFSET 0x0D13
443 #define GL_RED_SCALE 0x0D14
444 #define GL_RED_BIAS 0x0D15
445 #define GL_ZOOM_X 0x0D16
446 #define GL_ZOOM_Y 0x0D17
447 #define GL_GREEN_SCALE 0x0D18
448 #define GL_GREEN_BIAS 0x0D19
449 #define GL_BLUE_SCALE 0x0D1A
450 #define GL_BLUE_BIAS 0x0D1B
451 #define GL_ALPHA_SCALE 0x0D1C
452 #define GL_ALPHA_BIAS 0x0D1D
453 #define GL_DEPTH_SCALE 0x0D1E
454 #define GL_DEPTH_BIAS 0x0D1F
455 #define GL_MAX_EVAL_ORDER 0x0D30
456 #define GL_MAX_LIGHTS 0x0D31
457 #define GL_MAX_CLIP_PLANES 0x0D32
458 #define GL_MAX_TEXTURE_SIZE 0x0D33
459 #define GL_MAX_PIXEL_MAP_TABLE 0x0D34
460 #define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35
461 #define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36
462 #define GL_MAX_NAME_STACK_DEPTH 0x0D37
463 #define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38
464 #define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39
465 #define GL_MAX_VIEWPORT_DIMS 0x0D3A
466 #define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B
467 #define GL_SUBPIXEL_BITS 0x0D50
468 #define GL_INDEX_BITS 0x0D51
469 #define GL_RED_BITS 0x0D52
470 #define GL_GREEN_BITS 0x0D53
471 #define GL_BLUE_BITS 0x0D54
472 #define GL_ALPHA_BITS 0x0D55
473 #define GL_DEPTH_BITS 0x0D56
474 #define GL_STENCIL_BITS 0x0D57
475 #define GL_ACCUM_RED_BITS 0x0D58
476 #define GL_ACCUM_GREEN_BITS 0x0D59
477 #define GL_ACCUM_BLUE_BITS 0x0D5A
478 #define GL_ACCUM_ALPHA_BITS 0x0D5B
479 #define GL_NAME_STACK_DEPTH 0x0D70
480 #define GL_AUTO_NORMAL 0x0D80
481 #define GL_MAP1_COLOR_4 0x0D90
482 #define GL_MAP1_INDEX 0x0D91
483 #define GL_MAP1_NORMAL 0x0D92
484 #define GL_MAP1_TEXTURE_COORD_1 0x0D93
485 #define GL_MAP1_TEXTURE_COORD_2 0x0D94
486 #define GL_MAP1_TEXTURE_COORD_3 0x0D95
487 #define GL_MAP1_TEXTURE_COORD_4 0x0D96
488 #define GL_MAP1_VERTEX_3 0x0D97
489 #define GL_MAP1_VERTEX_4 0x0D98
490 #define GL_MAP2_COLOR_4 0x0DB0
491 #define GL_MAP2_INDEX 0x0DB1
492 #define GL_MAP2_NORMAL 0x0DB2
493 #define GL_MAP2_TEXTURE_COORD_1 0x0DB3
494 #define GL_MAP2_TEXTURE_COORD_2 0x0DB4
495 #define GL_MAP2_TEXTURE_COORD_3 0x0DB5
496 #define GL_MAP2_TEXTURE_COORD_4 0x0DB6
497 #define GL_MAP2_VERTEX_3 0x0DB7
498 #define GL_MAP2_VERTEX_4 0x0DB8
499 #define GL_MAP1_GRID_DOMAIN 0x0DD0
500 #define GL_MAP1_GRID_SEGMENTS 0x0DD1
501 #define GL_MAP2_GRID_DOMAIN 0x0DD2
502 #define GL_MAP2_GRID_SEGMENTS 0x0DD3
503 #define GL_TEXTURE_1D 0x0DE0
504 #define GL_TEXTURE_2D 0x0DE1
505 #define GL_FEEDBACK_BUFFER_POINTER 0x0DF0
506 #define GL_FEEDBACK_BUFFER_SIZE 0x0DF1
507 #define GL_FEEDBACK_BUFFER_TYPE 0x0DF2
508 #define GL_SELECTION_BUFFER_POINTER 0x0DF3
509 #define GL_SELECTION_BUFFER_SIZE 0x0DF4
510 #define GL_TEXTURE_WIDTH 0x1000
511 #define GL_TRANSFORM_BIT 0x00001000
512 #define GL_TEXTURE_HEIGHT 0x1001
513 #define GL_TEXTURE_INTERNAL_FORMAT 0x1003
514 #define GL_TEXTURE_BORDER_COLOR 0x1004
515 #define GL_TEXTURE_BORDER 0x1005
516 #define GL_DONT_CARE 0x1100
517 #define GL_FASTEST 0x1101
518 #define GL_NICEST 0x1102
519 #define GL_AMBIENT 0x1200
520 #define GL_DIFFUSE 0x1201
521 #define GL_SPECULAR 0x1202
522 #define GL_POSITION 0x1203
523 #define GL_SPOT_DIRECTION 0x1204
524 #define GL_SPOT_EXPONENT 0x1205
525 #define GL_SPOT_CUTOFF 0x1206
526 #define GL_CONSTANT_ATTENUATION 0x1207
527 #define GL_LINEAR_ATTENUATION 0x1208
528 #define GL_QUADRATIC_ATTENUATION 0x1209
529 #define GL_COMPILE 0x1300
530 #define GL_COMPILE_AND_EXECUTE 0x1301
531 #define GL_BYTE 0x1400
532 #define GL_UNSIGNED_BYTE 0x1401
533 #define GL_SHORT 0x1402
534 #define GL_UNSIGNED_SHORT 0x1403
535 #define GL_INT 0x1404
536 #define GL_UNSIGNED_INT 0x1405
537 #define GL_FLOAT 0x1406
538 #define GL_2_BYTES 0x1407
539 #define GL_3_BYTES 0x1408
540 #define GL_4_BYTES 0x1409
541 #define GL_DOUBLE 0x140A
542 #define GL_CLEAR 0x1500
543 #define GL_AND 0x1501
544 #define GL_AND_REVERSE 0x1502
545 #define GL_COPY 0x1503
546 #define GL_AND_INVERTED 0x1504
547 #define GL_NOOP 0x1505
548 #define GL_XOR 0x1506
549 #define GL_OR 0x1507
550 #define GL_NOR 0x1508
551 #define GL_EQUIV 0x1509
552 #define GL_INVERT 0x150A
553 #define GL_OR_REVERSE 0x150B
554 #define GL_COPY_INVERTED 0x150C
555 #define GL_OR_INVERTED 0x150D
556 #define GL_NAND 0x150E
557 #define GL_SET 0x150F
558 #define GL_EMISSION 0x1600
559 #define GL_SHININESS 0x1601
560 #define GL_AMBIENT_AND_DIFFUSE 0x1602
561 #define GL_COLOR_INDEXES 0x1603
562 #define GL_MODELVIEW 0x1700
563 #define GL_PROJECTION 0x1701
564 #define GL_TEXTURE 0x1702
565 #define GL_COLOR 0x1800
566 #define GL_DEPTH 0x1801
567 #define GL_STENCIL 0x1802
568 #define GL_COLOR_INDEX 0x1900
569 #define GL_STENCIL_INDEX 0x1901
570 #define GL_DEPTH_COMPONENT 0x1902
571 #define GL_RED 0x1903
572 #define GL_GREEN 0x1904
573 #define GL_BLUE 0x1905
574 #define GL_ALPHA 0x1906
575 #define GL_RGB 0x1907
576 #define GL_RGBA 0x1908
577 #define GL_LUMINANCE 0x1909
578 #define GL_LUMINANCE_ALPHA 0x190A
579 #define GL_BITMAP 0x1A00
580 #define GL_POINT 0x1B00
581 #define GL_LINE 0x1B01
582 #define GL_FILL 0x1B02
583 #define GL_RENDER 0x1C00
584 #define GL_FEEDBACK 0x1C01
585 #define GL_SELECT 0x1C02
586 #define GL_FLAT 0x1D00
587 #define GL_SMOOTH 0x1D01
588 #define GL_KEEP 0x1E00
589 #define GL_REPLACE 0x1E01
590 #define GL_INCR 0x1E02
591 #define GL_DECR 0x1E03
592 #define GL_VENDOR 0x1F00
593 #define GL_RENDERER 0x1F01
594 #define GL_VERSION 0x1F02
595 #define GL_EXTENSIONS 0x1F03
596 #define GL_S 0x2000
597 #define GL_ENABLE_BIT 0x00002000
598 #define GL_T 0x2001
599 #define GL_R 0x2002
600 #define GL_Q 0x2003
601 #define GL_MODULATE 0x2100
602 #define GL_DECAL 0x2101
603 #define GL_TEXTURE_ENV_MODE 0x2200
604 #define GL_TEXTURE_ENV_COLOR 0x2201
605 #define GL_TEXTURE_ENV 0x2300
606 #define GL_EYE_LINEAR 0x2400
607 #define GL_OBJECT_LINEAR 0x2401
608 #define GL_SPHERE_MAP 0x2402
609 #define GL_TEXTURE_GEN_MODE 0x2500
610 #define GL_OBJECT_PLANE 0x2501
611 #define GL_EYE_PLANE 0x2502
612 #define GL_NEAREST 0x2600
613 #define GL_LINEAR 0x2601
614 #define GL_NEAREST_MIPMAP_NEAREST 0x2700
615 #define GL_LINEAR_MIPMAP_NEAREST 0x2701
616 #define GL_NEAREST_MIPMAP_LINEAR 0x2702
617 #define GL_LINEAR_MIPMAP_LINEAR 0x2703
618 #define GL_TEXTURE_MAG_FILTER 0x2800
619 #define GL_TEXTURE_MIN_FILTER 0x2801
620 #define GL_TEXTURE_WRAP_S 0x2802
621 #define GL_TEXTURE_WRAP_T 0x2803
622 #define GL_CLAMP 0x2900
623 #define GL_REPEAT 0x2901
624 #define GL_POLYGON_OFFSET_UNITS 0x2A00
625 #define GL_POLYGON_OFFSET_POINT 0x2A01
626 #define GL_POLYGON_OFFSET_LINE 0x2A02
627 #define GL_R3_G3_B2 0x2A10
628 #define GL_V2F 0x2A20
629 #define GL_V3F 0x2A21
630 #define GL_C4UB_V2F 0x2A22
631 #define GL_C4UB_V3F 0x2A23
632 #define GL_C3F_V3F 0x2A24
633 #define GL_N3F_V3F 0x2A25
634 #define GL_C4F_N3F_V3F 0x2A26
635 #define GL_T2F_V3F 0x2A27
636 #define GL_T4F_V4F 0x2A28
637 #define GL_T2F_C4UB_V3F 0x2A29
638 #define GL_T2F_C3F_V3F 0x2A2A
639 #define GL_T2F_N3F_V3F 0x2A2B
640 #define GL_T2F_C4F_N3F_V3F 0x2A2C
641 #define GL_T4F_C4F_N3F_V4F 0x2A2D
642 #define GL_CLIP_PLANE0 0x3000
643 #define GL_CLIP_PLANE1 0x3001
644 #define GL_CLIP_PLANE2 0x3002
645 #define GL_CLIP_PLANE3 0x3003
646 #define GL_CLIP_PLANE4 0x3004
647 #define GL_CLIP_PLANE5 0x3005
648 #define GL_LIGHT0 0x4000
649 #define GL_COLOR_BUFFER_BIT 0x00004000
650 #define GL_LIGHT1 0x4001
651 #define GL_LIGHT2 0x4002
652 #define GL_LIGHT3 0x4003
653 #define GL_LIGHT4 0x4004
654 #define GL_LIGHT5 0x4005
655 #define GL_LIGHT6 0x4006
656 #define GL_LIGHT7 0x4007
657 #define GL_HINT_BIT 0x00008000
658 #define GL_POLYGON_OFFSET_FILL 0x8037
659 #define GL_POLYGON_OFFSET_FACTOR 0x8038
660 #define GL_ALPHA4 0x803B
661 #define GL_ALPHA8 0x803C
662 #define GL_ALPHA12 0x803D
663 #define GL_ALPHA16 0x803E
664 #define GL_LUMINANCE4 0x803F
665 #define GL_LUMINANCE8 0x8040
666 #define GL_LUMINANCE12 0x8041
667 #define GL_LUMINANCE16 0x8042
668 #define GL_LUMINANCE4_ALPHA4 0x8043
669 #define GL_LUMINANCE6_ALPHA2 0x8044
670 #define GL_LUMINANCE8_ALPHA8 0x8045
671 #define GL_LUMINANCE12_ALPHA4 0x8046
672 #define GL_LUMINANCE12_ALPHA12 0x8047
673 #define GL_LUMINANCE16_ALPHA16 0x8048
674 #define GL_INTENSITY 0x8049
675 #define GL_INTENSITY4 0x804A
676 #define GL_INTENSITY8 0x804B
677 #define GL_INTENSITY12 0x804C
678 #define GL_INTENSITY16 0x804D
679 #define GL_RGB4 0x804F
680 #define GL_RGB5 0x8050
681 #define GL_RGB8 0x8051
682 #define GL_RGB10 0x8052
683 #define GL_RGB12 0x8053
684 #define GL_RGB16 0x8054
685 #define GL_RGBA2 0x8055
686 #define GL_RGBA4 0x8056
687 #define GL_RGB5_A1 0x8057
688 #define GL_RGBA8 0x8058
689 #define GL_RGB10_A2 0x8059
690 #define GL_RGBA12 0x805A
691 #define GL_RGBA16 0x805B
692 #define GL_TEXTURE_RED_SIZE 0x805C
693 #define GL_TEXTURE_GREEN_SIZE 0x805D
694 #define GL_TEXTURE_BLUE_SIZE 0x805E
695 #define GL_TEXTURE_ALPHA_SIZE 0x805F
696 #define GL_TEXTURE_LUMINANCE_SIZE 0x8060
697 #define GL_TEXTURE_INTENSITY_SIZE 0x8061
698 #define GL_PROXY_TEXTURE_1D 0x8063
699 #define GL_PROXY_TEXTURE_2D 0x8064
700 #define GL_TEXTURE_PRIORITY 0x8066
701 #define GL_TEXTURE_RESIDENT 0x8067
702 #define GL_TEXTURE_BINDING_1D 0x8068
703 #define GL_TEXTURE_BINDING_2D 0x8069
704 #define GL_VERTEX_ARRAY 0x8074
705 #define GL_NORMAL_ARRAY 0x8075
706 #define GL_COLOR_ARRAY 0x8076
707 #define GL_INDEX_ARRAY 0x8077
708 #define GL_TEXTURE_COORD_ARRAY 0x8078
709 #define GL_EDGE_FLAG_ARRAY 0x8079
710 #define GL_VERTEX_ARRAY_SIZE 0x807A
711 #define GL_VERTEX_ARRAY_TYPE 0x807B
712 #define GL_VERTEX_ARRAY_STRIDE 0x807C
713 #define GL_NORMAL_ARRAY_TYPE 0x807E
714 #define GL_NORMAL_ARRAY_STRIDE 0x807F
715 #define GL_COLOR_ARRAY_SIZE 0x8081
716 #define GL_COLOR_ARRAY_TYPE 0x8082
717 #define GL_COLOR_ARRAY_STRIDE 0x8083
718 #define GL_INDEX_ARRAY_TYPE 0x8085
719 #define GL_INDEX_ARRAY_STRIDE 0x8086
720 #define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088
721 #define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089
722 #define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A
723 #define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C
724 #define GL_VERTEX_ARRAY_POINTER 0x808E
725 #define GL_NORMAL_ARRAY_POINTER 0x808F
726 #define GL_COLOR_ARRAY_POINTER 0x8090
727 #define GL_INDEX_ARRAY_POINTER 0x8091
728 #define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092
729 #define GL_EDGE_FLAG_ARRAY_POINTER 0x8093
730 #define GL_COLOR_INDEX1_EXT 0x80E2
731 #define GL_COLOR_INDEX2_EXT 0x80E3
732 #define GL_COLOR_INDEX4_EXT 0x80E4
733 #define GL_COLOR_INDEX8_EXT 0x80E5
734 #define GL_COLOR_INDEX12_EXT 0x80E6
735 #define GL_COLOR_INDEX16_EXT 0x80E7
736 #define GL_EVAL_BIT 0x00010000
737 #define GL_LIST_BIT 0x00020000
738 #define GL_TEXTURE_BIT 0x00040000
739 #define GL_SCISSOR_BIT 0x00080000
740 #define GL_ALL_ATTRIB_BITS 0x000fffff
741 #define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff
743 #if defined(GLE_HOOKING_ENABLED)
744 // In this case we map these functions to internal versions instead of the standard versions.
745 #define glAccum(...) GLEGetCurrentFunction(glAccum)(__VA_ARGS__)
746 #define glAlphaFunc(...) GLEGetCurrentFunction(glAlphaFunc)(__VA_ARGS__)
747 #define glAreTexturesResident(...) GLEGetCurrentFunction(glAreTexturesResident)(__VA_ARGS__)
748 #define glArrayElement(...) GLEGetCurrentFunction(glArrayElement)(__VA_ARGS__)
749 #define glBegin(...) GLEGetCurrentFunction(glBegin)(__VA_ARGS__)
750 #define glBindTexture(...) GLEGetCurrentFunction(glBindTexture)(__VA_ARGS__)
751 #define glBitmap(...) GLEGetCurrentFunction(glBitmap)(__VA_ARGS__)
752 #define glBlendFunc(...) GLEGetCurrentFunction(glBlendFunc)(__VA_ARGS__)
753 #define glCallList(...) GLEGetCurrentFunction(glCallList)(__VA_ARGS__)
754 #define glCallLists(...) GLEGetCurrentFunction(glCallLists)(__VA_ARGS__)
755 #define glClear(...) GLEGetCurrentFunction(glClear)(__VA_ARGS__)
756 #define glClearAccum(...) GLEGetCurrentFunction(glClearAccum)(__VA_ARGS__)
757 #define glClearColor(...) GLEGetCurrentFunction(glClearColor)(__VA_ARGS__)
758 #define glClearDepth(...) GLEGetCurrentFunction(glClearDepth)(__VA_ARGS__)
759 #define glClearIndex(...) GLEGetCurrentFunction(glClearIndex)(__VA_ARGS__)
760 #define glClearStencil(...) GLEGetCurrentFunction(glClearStencil)(__VA_ARGS__)
761 #define glClipPlane(...) GLEGetCurrentFunction(glClipPlane)(__VA_ARGS__)
762 #define glColor3b(...) GLEGetCurrentFunction(glColor3b)(__VA_ARGS__)
763 #define glColor3bv(...) GLEGetCurrentFunction(glColor3bv)(__VA_ARGS__)
764 #define glColor3d(...) GLEGetCurrentFunction(glColor3d)(__VA_ARGS__)
765 #define glColor3dv(...) GLEGetCurrentFunction(glColor3dv)(__VA_ARGS__)
766 #define glColor3f(...) GLEGetCurrentFunction(glColor3f)(__VA_ARGS__)
767 #define glColor3fv(...) GLEGetCurrentFunction(glColor3fv)(__VA_ARGS__)
768 #define glColor3i(...) GLEGetCurrentFunction(glColor3i)(__VA_ARGS__)
769 #define glColor3iv(...) GLEGetCurrentFunction(glColor3iv)(__VA_ARGS__)
770 #define glColor3s(...) GLEGetCurrentFunction(glColor3s)(__VA_ARGS__)
771 #define glColor3sv(...) GLEGetCurrentFunction(glColor3sv)(__VA_ARGS__)
772 #define glColor3ub(...) GLEGetCurrentFunction(glColor3ub)(__VA_ARGS__)
773 #define glColor3ubv(...) GLEGetCurrentFunction(glColor3ubv)(__VA_ARGS__)
774 #define glColor3ui(...) GLEGetCurrentFunction(glColor3ui)(__VA_ARGS__)
775 #define glColor3uiv(...) GLEGetCurrentFunction(glColor3uiv)(__VA_ARGS__)
776 #define glColor3us(...) GLEGetCurrentFunction(glColor3us)(__VA_ARGS__)
777 #define glColor3usv(...) GLEGetCurrentFunction(glColor3usv)(__VA_ARGS__)
778 #define glColor4b(...) GLEGetCurrentFunction(glColor4b)(__VA_ARGS__)
779 #define glColor4bv(...) GLEGetCurrentFunction(glColor4bv)(__VA_ARGS__)
780 #define glColor4d(...) GLEGetCurrentFunction(glColor4d)(__VA_ARGS__)
781 #define glColor4dv(...) GLEGetCurrentFunction(glColor4dv)(__VA_ARGS__)
782 #define glColor4f(...) GLEGetCurrentFunction(glColor4f)(__VA_ARGS__)
783 #define glColor4fv(...) GLEGetCurrentFunction(glColor4fv)(__VA_ARGS__)
784 #define glColor4i(...) GLEGetCurrentFunction(glColor4i)(__VA_ARGS__)
785 #define glColor4iv(...) GLEGetCurrentFunction(glColor4iv)(__VA_ARGS__)
786 #define glColor4s(...) GLEGetCurrentFunction(glColor4s)(__VA_ARGS__)
787 #define glColor4sv(...) GLEGetCurrentFunction(glColor4sv)(__VA_ARGS__)
788 #define glColor4ub(...) GLEGetCurrentFunction(glColor4ub)(__VA_ARGS__)
789 #define glColor4ubv(...) GLEGetCurrentFunction(glColor4ubv)(__VA_ARGS__)
790 #define glColor4ui(...) GLEGetCurrentFunction(glColor4ui)(__VA_ARGS__)
791 #define glColor4uiv(...) GLEGetCurrentFunction(glColor4uiv)(__VA_ARGS__)
792 #define glColor4us(...) GLEGetCurrentFunction(glColor4us)(__VA_ARGS__)
793 #define glColor4usv(...) GLEGetCurrentFunction(glColor4usv)(__VA_ARGS__)
794 #define glColorMask(...) GLEGetCurrentFunction(glColorMask)(__VA_ARGS__)
795 #define glColorMaterial(...) GLEGetCurrentFunction(glColorMaterial)(__VA_ARGS__)
796 #define glColorPointer(...) GLEGetCurrentFunction(glColorPointer)(__VA_ARGS__)
797 #define glCopyPixels(...) GLEGetCurrentFunction(glCopyPixels)(__VA_ARGS__)
798 #define glCopyTexImage1D(...) GLEGetCurrentFunction(glCopyTexImage1D)(__VA_ARGS__)
799 #define glCopyTexImage2D(...) GLEGetCurrentFunction(glCopyTexImage2D)(__VA_ARGS__)
800 #define glCopyTexSubImage1D(...) GLEGetCurrentFunction(glCopyTexSubImage1D)(__VA_ARGS__)
801 #define glCopyTexSubImage2D(...) GLEGetCurrentFunction(glCopyTexSubImage2D)(__VA_ARGS__)
802 #define glCullFace(...) GLEGetCurrentFunction(glCullFace)(__VA_ARGS__)
803 #define glDeleteLists(...) GLEGetCurrentFunction(glDeleteLists)(__VA_ARGS__)
804 #define glDeleteTextures(...) GLEGetCurrentFunction(glDeleteTextures)(__VA_ARGS__)
805 #define glDepthFunc(...) GLEGetCurrentFunction(glDepthFunc)(__VA_ARGS__)
806 #define glDepthMask(...) GLEGetCurrentFunction(glDepthMask)(__VA_ARGS__)
807 #define glDepthRange(...) GLEGetCurrentFunction(glDepthRange)(__VA_ARGS__)
808 #define glDisable(...) GLEGetCurrentFunction(glDisable)(__VA_ARGS__)
809 #define glDisableClientState(...) GLEGetCurrentFunction(glDisableClientState)(__VA_ARGS__)
810 #define glDrawArrays(...) GLEGetCurrentFunction(glDrawArrays)(__VA_ARGS__)
811 #define glDrawBuffer(...) GLEGetCurrentFunction(glDrawBuffer)(__VA_ARGS__)
812 #define glDrawElements(...) GLEGetCurrentFunction(glDrawElements)(__VA_ARGS__)
813 #define glDrawPixels(...) GLEGetCurrentFunction(glDrawPixels)(__VA_ARGS__)
814 #define glEdgeFlag(...) GLEGetCurrentFunction(glEdgeFlag)(__VA_ARGS__)
815 #define glEdgeFlagPointer(...) GLEGetCurrentFunction(glEdgeFlagPointer)(__VA_ARGS__)
816 #define glEdgeFlagv(...) GLEGetCurrentFunction(glEdgeFlagv)(__VA_ARGS__)
817 #define glEnable(...) GLEGetCurrentFunction(glEnable)(__VA_ARGS__)
818 #define glEnableClientState(...) GLEGetCurrentFunction(glEnableClientState)(__VA_ARGS__)
819 #define glEnd() GLEGetCurrentFunction(glEnd)()
820 #define glEndList() GLEGetCurrentFunction(glEndList)(_)
821 #define glEvalCoord1d(...) GLEGetCurrentFunction(glEvalCoord1d)(__VA_ARGS__)
822 #define glEvalCoord1dv(...) GLEGetCurrentFunction(glEvalCoord1dv)(__VA_ARGS__)
823 #define glEvalCoord1f(...) GLEGetCurrentFunction(glEvalCoord1f)(__VA_ARGS__)
824 #define glEvalCoord1fv(...) GLEGetCurrentFunction(glEvalCoord1fv)(__VA_ARGS__)
825 #define glEvalCoord2d(...) GLEGetCurrentFunction(glEvalCoord2d)(__VA_ARGS__)
826 #define glEvalCoord2dv(...) GLEGetCurrentFunction(glEvalCoord2dv)(__VA_ARGS__)
827 #define glEvalCoord2f(...) GLEGetCurrentFunction(glEvalCoord2f)(__VA_ARGS__)
828 #define glEvalCoord2fv(...) GLEGetCurrentFunction(glEvalCoord2fv)(__VA_ARGS__)
829 #define glEvalMesh1(...) GLEGetCurrentFunction(glEvalMesh1)(__VA_ARGS__)
830 #define glEvalMesh2(...) GLEGetCurrentFunction(glEvalMesh2)(__VA_ARGS__)
831 #define glEvalPoint1(...) GLEGetCurrentFunction(glEvalPoint1)(__VA_ARGS__)
832 #define glEvalPoint2(...) GLEGetCurrentFunction(glEvalPoint2)(__VA_ARGS__)
833 #define glFeedbackBuffer(...) GLEGetCurrentFunction(glFeedbackBuffer)(__VA_ARGS__)
834 #define glFinish() GLEGetCurrentFunction(glFinish)()
835 #define glFlush() GLEGetCurrentFunction(glFlush)()
836 #define glFogf(...) GLEGetCurrentFunction(glFogf)(__VA_ARGS__)
837 #define glFogfv(...) GLEGetCurrentFunction(glFogfv)(__VA_ARGS__)
838 #define glFogi(...) GLEGetCurrentFunction(glFogi)(__VA_ARGS__)
839 #define glFogiv(...) GLEGetCurrentFunction(glFogiv)(__VA_ARGS__)
840 #define glFrontFace(...) GLEGetCurrentFunction(glFrontFace)(__VA_ARGS__)
841 #define glFrustum(...) GLEGetCurrentFunction(glFrustum)(__VA_ARGS__)
842 #define glGenLists(...) GLEGetCurrentFunction(glGenLists)(__VA_ARGS__)
843 #define glGenTextures(...) GLEGetCurrentFunction(glGenTextures)(__VA_ARGS__)
844 #define glGetBooleanv(...) GLEGetCurrentFunction(glGetBooleanv)(__VA_ARGS__)
845 #define glGetClipPlane(...) GLEGetCurrentFunction(glGetClipPlane)(__VA_ARGS__)
846 #define glGetDoublev(...) GLEGetCurrentFunction(glGetDoublev)(__VA_ARGS__)
847 #define glGetError() GLEGetCurrentFunction(glGetError)()
848 #define glGetFloatv(...) GLEGetCurrentFunction(glGetFloatv)(__VA_ARGS__)
849 #define glGetIntegerv(...) GLEGetCurrentFunction(glGetIntegerv)(__VA_ARGS__)
850 #define glGetLightfv(...) GLEGetCurrentFunction(glGetLightfv)(__VA_ARGS__)
851 #define glGetLightiv(...) GLEGetCurrentFunction(glGetLightiv)(__VA_ARGS__)
852 #define glGetMapdv(...) GLEGetCurrentFunction(glGetMapdv)(__VA_ARGS__)
853 #define glGetMapfv(...) GLEGetCurrentFunction(glGetMapfv)(__VA_ARGS__)
854 #define glGetMapiv(...) GLEGetCurrentFunction(glGetMapiv)(__VA_ARGS__)
855 #define glGetMaterialfv(...) GLEGetCurrentFunction(glGetMaterialfv)(__VA_ARGS__)
856 #define glGetMaterialiv(...) GLEGetCurrentFunction(glGetMaterialiv)(__VA_ARGS__)
857 #define glGetPixelMapfv(...) GLEGetCurrentFunction(glGetPixelMapfv)(__VA_ARGS__)
858 #define glGetPixelMapuiv(...) GLEGetCurrentFunction(glGetPixelMapuiv)(__VA_ARGS__)
859 #define glGetPixelMapusv(...) GLEGetCurrentFunction(glGetPixelMapusv)(__VA_ARGS__)
860 #define glGetPointerv(...) GLEGetCurrentFunction(glGetPointerv)(__VA_ARGS__)
861 #define glGetPolygonStipple(...) GLEGetCurrentFunction(glGetPolygonStipple)(__VA_ARGS__)
862 #define glGetString(...) GLEGetCurrentFunction(glGetString)(__VA_ARGS__)
863 #define glGetTexEnvfv(...) GLEGetCurrentFunction(glGetTexEnvfv)(__VA_ARGS__)
864 #define glGetTexEnviv(...) GLEGetCurrentFunction(glGetTexEnviv)(__VA_ARGS__)
865 #define glGetTexGendv(...) GLEGetCurrentFunction(glGetTexGendv)(__VA_ARGS__)
866 #define glGetTexGenfv(...) GLEGetCurrentFunction(glGetTexGenfv)(__VA_ARGS__)
867 #define glGetTexGeniv(...) GLEGetCurrentFunction(glGetTexGeniv)(__VA_ARGS__)
868 #define glGetTexImage(...) GLEGetCurrentFunction(glGetTexImage)(__VA_ARGS__)
869 #define glGetTexLevelParameterfv(...) GLEGetCurrentFunction(glGetTexLevelParameterfv)(__VA_ARGS__)
870 #define glGetTexLevelParameteriv(...) GLEGetCurrentFunction(glGetTexLevelParameteriv)(__VA_ARGS__)
871 #define glGetTexParameterfv(...) GLEGetCurrentFunction(glGetTexParameterfv)(__VA_ARGS__)
872 #define glGetTexParameteriv(...) GLEGetCurrentFunction(glGetTexParameteriv)(__VA_ARGS__)
873 #define glHint(...) GLEGetCurrentFunction(glHint)(__VA_ARGS__)
874 #define glIndexMask(...) GLEGetCurrentFunction(glIndexMask)(__VA_ARGS__)
875 #define glIndexPointer(...) GLEGetCurrentFunction(glIndexPointer)(__VA_ARGS__)
876 #define glIndexd(...) GLEGetCurrentFunction(glIndexd)(__VA_ARGS__)
877 #define glIndexdv(...) GLEGetCurrentFunction(glIndexdv)(__VA_ARGS__)
878 #define glIndexf(...) GLEGetCurrentFunction(glIndexf)(__VA_ARGS__)
879 #define glIndexfv(...) GLEGetCurrentFunction(glIndexfv)(__VA_ARGS__)
880 #define glIndexi(...) GLEGetCurrentFunction(glIndexi)(__VA_ARGS__)
881 #define glIndexiv(...) GLEGetCurrentFunction(glIndexiv)(__VA_ARGS__)
882 #define glIndexs(...) GLEGetCurrentFunction(glIndexs)(__VA_ARGS__)
883 #define glIndexsv(...) GLEGetCurrentFunction(glIndexsv)(__VA_ARGS__)
884 #define glIndexub(...) GLEGetCurrentFunction(glIndexub)(__VA_ARGS__)
885 #define glIndexubv(...) GLEGetCurrentFunction(glIndexubv)(__VA_ARGS__)
886 #define glInitNames() GLEGetCurrentFunction(glInitNames)()
887 #define glInterleavedArrays(...) GLEGetCurrentFunction(glInterleavedArrays)(__VA_ARGS__)
888 #define glIsEnabled(...) GLEGetCurrentFunction(glIsEnabled)(__VA_ARGS__)
889 #define glIsList(...) GLEGetCurrentFunction(glIsList)(__VA_ARGS__)
890 #define glIsTexture(...) GLEGetCurrentFunction(glIsTexture)(__VA_ARGS__)
891 #define glLightModelf(...) GLEGetCurrentFunction(glLightModelf)(__VA_ARGS__)
892 #define glLightModelfv(...) GLEGetCurrentFunction(glLightModelfv)(__VA_ARGS__)
893 #define glLightModeli(...) GLEGetCurrentFunction(glLightModeli)(__VA_ARGS__)
894 #define glLightModeliv(...) GLEGetCurrentFunction(glLightModeliv)(__VA_ARGS__)
895 #define glLightf(...) GLEGetCurrentFunction(glLightf)(__VA_ARGS__)
896 #define glLightfv(...) GLEGetCurrentFunction(glLightfv)(__VA_ARGS__)
897 #define glLighti(...) GLEGetCurrentFunction(glLighti)(__VA_ARGS__)
898 #define glLightiv(...) GLEGetCurrentFunction(glLightiv)(__VA_ARGS__)
899 #define glLineStipple(...) GLEGetCurrentFunction(glLineStipple)(__VA_ARGS__)
900 #define glLineWidth(...) GLEGetCurrentFunction(glLineWidth)(__VA_ARGS__)
901 #define glListBase(...) GLEGetCurrentFunction(glListBase)(__VA_ARGS__)
902 #define glLoadIdentity() GLEGetCurrentFunction(glLoadIdentity)()
903 #define glLoadMatrixd(...) GLEGetCurrentFunction(glLoadMatrixd)(__VA_ARGS__)
904 #define glLoadMatrixf(...) GLEGetCurrentFunction(glLoadMatrixf)(__VA_ARGS__)
905 #define glLoadName(...) GLEGetCurrentFunction(glLoadName)(__VA_ARGS__)
906 #define glLogicOp(...) GLEGetCurrentFunction(glLogicOp)(__VA_ARGS__)
907 #define glMap1d(...) GLEGetCurrentFunction(glMap1d)(__VA_ARGS__)
908 #define glMap1f(...) GLEGetCurrentFunction(glMap1f)(__VA_ARGS__)
909 #define glMap2d(...) GLEGetCurrentFunction(glMap2d)(__VA_ARGS__)
910 #define glMap2f(...) GLEGetCurrentFunction(glMap2f)(__VA_ARGS__)
911 #define glMapGrid1d(...) GLEGetCurrentFunction(glMapGrid1d)(__VA_ARGS__)
912 #define glMapGrid1f(...) GLEGetCurrentFunction(glMapGrid1f)(__VA_ARGS__)
913 #define glMapGrid2d(...) GLEGetCurrentFunction(glMapGrid2d)(__VA_ARGS__)
914 #define glMapGrid2f(...) GLEGetCurrentFunction(glMapGrid2f)(__VA_ARGS__)
915 #define glMaterialf(...) GLEGetCurrentFunction(glMaterialf)(__VA_ARGS__)
916 #define glMaterialfv(...) GLEGetCurrentFunction(glMaterialfv)(__VA_ARGS__)
917 #define glMateriali(...) GLEGetCurrentFunction(glMateriali)(__VA_ARGS__)
918 #define glMaterialiv(...) GLEGetCurrentFunction(glMaterialiv)(__VA_ARGS__)
919 #define glMatrixMode(...) GLEGetCurrentFunction(glMatrixMode)(__VA_ARGS__)
920 #define glMultMatrixd(...) GLEGetCurrentFunction(glMultMatrixd)(__VA_ARGS__)
921 #define glMultMatrixf(...) GLEGetCurrentFunction(glMultMatrixf)(__VA_ARGS__)
922 #define glNewList(...) GLEGetCurrentFunction(glNewList)(__VA_ARGS__)
923 #define glNormal3b(...) GLEGetCurrentFunction(glNormal3b)(__VA_ARGS__)
924 #define glNormal3bv(...) GLEGetCurrentFunction(glNormal3bv)(__VA_ARGS__)
925 #define glNormal3d(...) GLEGetCurrentFunction(glNormal3d)(__VA_ARGS__)
926 #define glNormal3dv(...) GLEGetCurrentFunction(glNormal3dv)(__VA_ARGS__)
927 #define glNormal3f(...) GLEGetCurrentFunction(glNormal3f)(__VA_ARGS__)
928 #define glNormal3fv(...) GLEGetCurrentFunction(glNormal3fv)(__VA_ARGS__)
929 #define glNormal3i(...) GLEGetCurrentFunction(glNormal3i)(__VA_ARGS__)
930 #define glNormal3iv(...) GLEGetCurrentFunction(glNormal3iv)(__VA_ARGS__)
931 #define glNormal3s(...) GLEGetCurrentFunction(glNormal3s)(__VA_ARGS__)
932 #define glNormal3sv(...) GLEGetCurrentFunction(glNormal3sv)(__VA_ARGS__)
933 #define glNormalPointer(...) GLEGetCurrentFunction(glNormalPointer)(__VA_ARGS__)
934 #define glOrtho(...) GLEGetCurrentFunction(glOrtho)(__VA_ARGS__)
935 #define glPassThrough(...) GLEGetCurrentFunction(glPassThrough)(__VA_ARGS__)
936 #define glPixelMapfv(...) GLEGetCurrentFunction(glPixelMapfv)(__VA_ARGS__)
937 #define glPixelMapuiv(...) GLEGetCurrentFunction(glPixelMapuiv)(__VA_ARGS__)
938 #define glPixelMapusv(...) GLEGetCurrentFunction(glPixelMapusv)(__VA_ARGS__)
939 #define glPixelStoref(...) GLEGetCurrentFunction(glPixelStoref)(__VA_ARGS__)
940 #define glPixelStorei(...) GLEGetCurrentFunction(glPixelStorei)(__VA_ARGS__)
941 #define glPixelTransferf(...) GLEGetCurrentFunction(glPixelTransferf)(__VA_ARGS__)
942 #define glPixelTransferi(...) GLEGetCurrentFunction(glPixelTransferi)(__VA_ARGS__)
943 #define glPixelZoom(...) GLEGetCurrentFunction(glPixelZoom)(__VA_ARGS__)
944 #define glPointSize(...) GLEGetCurrentFunction(glPointSize)(__VA_ARGS__)
945 #define glPolygonMode(...) GLEGetCurrentFunction(glPolygonMode)(__VA_ARGS__)
946 #define glPolygonOffset(...) GLEGetCurrentFunction(glPolygonOffset)(__VA_ARGS__)
947 #define glPolygonStipple(...) GLEGetCurrentFunction(glPolygonStipple)(__VA_ARGS__)
948 #define glPopAttrib() GLEGetCurrentFunction(glPopAttrib)()
949 #define glPopClientAttrib() GLEGetCurrentFunction(glPopClientAttrib)()
950 #define glPopMatrix() GLEGetCurrentFunction(glPopMatrix)()
951 #define glPopName() GLEGetCurrentFunction(glPopName)()
952 #define glPrioritizeTextures(...) GLEGetCurrentFunction(glPrioritizeTextures)(__VA_ARGS__)
953 #define glPushAttrib(...) GLEGetCurrentFunction(glPushAttrib)(__VA_ARGS__)
954 #define glPushClientAttrib(...) GLEGetCurrentFunction(glPushClientAttrib)(__VA_ARGS__)
955 #define glPushMatrix() GLEGetCurrentFunction(glPushMatrix)()
956 #define glPushName(...) GLEGetCurrentFunction(glPushName)(__VA_ARGS__)
957 #define glRasterPos2d(...) GLEGetCurrentFunction(glRasterPos2d)(__VA_ARGS__)
958 #define glRasterPos2dv(...) GLEGetCurrentFunction(glRasterPos2dv)(__VA_ARGS__)
959 #define glRasterPos2f(...) GLEGetCurrentFunction(glRasterPos2f)(__VA_ARGS__)
960 #define glRasterPos2fv(...) GLEGetCurrentFunction(glRasterPos2fv)(__VA_ARGS__)
961 #define glRasterPos2i(...) GLEGetCurrentFunction(glRasterPos2i)(__VA_ARGS__)
962 #define glRasterPos2iv(...) GLEGetCurrentFunction(glRasterPos2iv)(__VA_ARGS__)
963 #define glRasterPos2s(...) GLEGetCurrentFunction(glRasterPos2s)(__VA_ARGS__)
964 #define glRasterPos2sv(...) GLEGetCurrentFunction(glRasterPos2sv)(__VA_ARGS__)
965 #define glRasterPos3d(...) GLEGetCurrentFunction(glRasterPos3d)(__VA_ARGS__)
966 #define glRasterPos3dv(...) GLEGetCurrentFunction(glRasterPos3dv)(__VA_ARGS__)
967 #define glRasterPos3f(...) GLEGetCurrentFunction(glRasterPos3f)(__VA_ARGS__)
968 #define glRasterPos3fv(...) GLEGetCurrentFunction(glRasterPos3fv)(__VA_ARGS__)
969 #define glRasterPos3i(...) GLEGetCurrentFunction(glRasterPos3i)(__VA_ARGS__)
970 #define glRasterPos3iv(...) GLEGetCurrentFunction(glRasterPos3iv)(__VA_ARGS__)
971 #define glRasterPos3s(...) GLEGetCurrentFunction(glRasterPos3s)(__VA_ARGS__)
972 #define glRasterPos3sv(...) GLEGetCurrentFunction(glRasterPos3sv)(__VA_ARGS__)
973 #define glRasterPos4d(...) GLEGetCurrentFunction(glRasterPos4d)(__VA_ARGS__)
974 #define glRasterPos4dv(...) GLEGetCurrentFunction(glRasterPos4dv)(__VA_ARGS__)
975 #define glRasterPos4f(...) GLEGetCurrentFunction(glRasterPos4f)(__VA_ARGS__)
976 #define glRasterPos4fv(...) GLEGetCurrentFunction(glRasterPos4fv)(__VA_ARGS__)
977 #define glRasterPos4i(...) GLEGetCurrentFunction(glRasterPos4i)(__VA_ARGS__)
978 #define glRasterPos4iv(...) GLEGetCurrentFunction(glRasterPos4iv)(__VA_ARGS__)
979 #define glRasterPos4s(...) GLEGetCurrentFunction(glRasterPos4s)(__VA_ARGS__)
980 #define glRasterPos4sv(...) GLEGetCurrentFunction(glRasterPos4sv)(__VA_ARGS__)
981 #define glReadBuffer(...) GLEGetCurrentFunction(glReadBuffer)(__VA_ARGS__)
982 #define glReadPixels(...) GLEGetCurrentFunction(glReadPixels)(__VA_ARGS__)
983 #define glRectd(...) GLEGetCurrentFunction(glRectd)(__VA_ARGS__)
984 #define glRectdv(...) GLEGetCurrentFunction(glRectdv)(__VA_ARGS__)
985 #define glRectf(...) GLEGetCurrentFunction(glRectf)(__VA_ARGS__)
986 #define glRectfv(...) GLEGetCurrentFunction(glRectfv)(__VA_ARGS__)
987 #define glRecti(...) GLEGetCurrentFunction(glRecti)(__VA_ARGS__)
988 #define glRectiv(...) GLEGetCurrentFunction(glRectiv)(__VA_ARGS__)
989 #define glRects(...) GLEGetCurrentFunction(glRects)(__VA_ARGS__)
990 #define glRectsv(...) GLEGetCurrentFunction(glRectsv)(__VA_ARGS__)
991 #define glRenderMode(...) GLEGetCurrentFunction(glRenderMode)(__VA_ARGS__)
992 #define glRotated(...) GLEGetCurrentFunction(glRotated)(__VA_ARGS__)
993 #define glRotatef(...) GLEGetCurrentFunction(glRotatef)(__VA_ARGS__)
994 #define glScaled(...) GLEGetCurrentFunction(glScaled)(__VA_ARGS__)
995 #define glScalef(...) GLEGetCurrentFunction(glScalef)(__VA_ARGS__)
996 #define glScissor(...) GLEGetCurrentFunction(glScissor)(__VA_ARGS__)
997 #define glSelectBuffer(...) GLEGetCurrentFunction(glSelectBuffer)(__VA_ARGS__)
998 #define glShadeModel(...) GLEGetCurrentFunction(glShadeModel)(__VA_ARGS__)
999 #define glStencilFunc(...) GLEGetCurrentFunction(glStencilFunc)(__VA_ARGS__)
1000 #define glStencilMask(...) GLEGetCurrentFunction(glStencilMask)(__VA_ARGS__)
1001 #define glStencilOp(...) GLEGetCurrentFunction(glStencilOp)(__VA_ARGS__)
1002 #define glTexCoord1d(...) GLEGetCurrentFunction(glTexCoord1d)(__VA_ARGS__)
1003 #define glTexCoord1dv(...) GLEGetCurrentFunction(glTexCoord1dv)(__VA_ARGS__)
1004 #define glTexCoord1f(...) GLEGetCurrentFunction(glTexCoord1f)(__VA_ARGS__)
1005 #define glTexCoord1fv(...) GLEGetCurrentFunction(glTexCoord1fv)(__VA_ARGS__)
1006 #define glTexCoord1i(...) GLEGetCurrentFunction(glTexCoord1i)(__VA_ARGS__)
1007 #define glTexCoord1iv(...) GLEGetCurrentFunction(glTexCoord1iv)(__VA_ARGS__)
1008 #define glTexCoord1s(...) GLEGetCurrentFunction(glTexCoord1s)(__VA_ARGS__)
1009 #define glTexCoord1sv(...) GLEGetCurrentFunction(glTexCoord1sv)(__VA_ARGS__)
1010 #define glTexCoord2d(...) GLEGetCurrentFunction(glTexCoord2d)(__VA_ARGS__)
1011 #define glTexCoord2dv(...) GLEGetCurrentFunction(glTexCoord2dv)(__VA_ARGS__)
1012 #define glTexCoord2f(...) GLEGetCurrentFunction(glTexCoord2f)(__VA_ARGS__)
1013 #define glTexCoord2fv(...) GLEGetCurrentFunction(glTexCoord2fv)(__VA_ARGS__)
1014 #define glTexCoord2i(...) GLEGetCurrentFunction(glTexCoord2i)(__VA_ARGS__)
1015 #define glTexCoord2iv(...) GLEGetCurrentFunction(glTexCoord2iv)(__VA_ARGS__)
1016 #define glTexCoord2s(...) GLEGetCurrentFunction(glTexCoord2s)(__VA_ARGS__)
1017 #define glTexCoord2sv(...) GLEGetCurrentFunction(glTexCoord2sv)(__VA_ARGS__)
1018 #define glTexCoord3d(...) GLEGetCurrentFunction(glTexCoord3d)(__VA_ARGS__)
1019 #define glTexCoord3dv(...) GLEGetCurrentFunction(glTexCoord3dv)(__VA_ARGS__)
1020 #define glTexCoord3f(...) GLEGetCurrentFunction(glTexCoord3f)(__VA_ARGS__)
1021 #define glTexCoord3fv(...) GLEGetCurrentFunction(glTexCoord3fv)(__VA_ARGS__)
1022 #define glTexCoord3i(...) GLEGetCurrentFunction(glTexCoord3i)(__VA_ARGS__)
1023 #define glTexCoord3iv(...) GLEGetCurrentFunction(glTexCoord3iv)(__VA_ARGS__)
1024 #define glTexCoord3s(...) GLEGetCurrentFunction(glTexCoord3s)(__VA_ARGS__)
1025 #define glTexCoord3sv(...) GLEGetCurrentFunction(glTexCoord3sv)(__VA_ARGS__)
1026 #define glTexCoord4d(...) GLEGetCurrentFunction(glTexCoord4d)(__VA_ARGS__)
1027 #define glTexCoord4dv(...) GLEGetCurrentFunction(glTexCoord4dv)(__VA_ARGS__)
1028 #define glTexCoord4f(...) GLEGetCurrentFunction(glTexCoord4f)(__VA_ARGS__)
1029 #define glTexCoord4fv(...) GLEGetCurrentFunction(glTexCoord4fv)(__VA_ARGS__)
1030 #define glTexCoord4i(...) GLEGetCurrentFunction(glTexCoord4i)(__VA_ARGS__)
1031 #define glTexCoord4iv(...) GLEGetCurrentFunction(glTexCoord4iv)(__VA_ARGS__)
1032 #define glTexCoord4s(...) GLEGetCurrentFunction(glTexCoord4s)(__VA_ARGS__)
1033 #define glTexCoord4sv(...) GLEGetCurrentFunction(glTexCoord4sv)(__VA_ARGS__)
1034 #define glTexCoordPointer(...) GLEGetCurrentFunction(glTexCoordPointer)(__VA_ARGS__)
1035 #define glTexEnvf(...) GLEGetCurrentFunction(glTexEnvf)(__VA_ARGS__)
1036 #define glTexEnvfv(...) GLEGetCurrentFunction(glTexEnvfv)(__VA_ARGS__)
1037 #define glTexEnvi(...) GLEGetCurrentFunction(glTexEnvi)(__VA_ARGS__)
1038 #define glTexEnviv(...) GLEGetCurrentFunction(glTexEnviv)(__VA_ARGS__)
1039 #define glTexGend(...) GLEGetCurrentFunction(glTexGend)(__VA_ARGS__)
1040 #define glTexGendv(...) GLEGetCurrentFunction(glTexGendv)(__VA_ARGS__)
1041 #define glTexGenf(...) GLEGetCurrentFunction(glTexGenf)(__VA_ARGS__)
1042 #define glTexGenfv(...) GLEGetCurrentFunction(glTexGenfv)(__VA_ARGS__)
1043 #define glTexGeni(...) GLEGetCurrentFunction(glTexGeni)(__VA_ARGS__)
1044 #define glTexGeniv(...) GLEGetCurrentFunction(glTexGeniv)(__VA_ARGS__)
1045 #define glTexImage1D(...) GLEGetCurrentFunction(glTexImage1D)(__VA_ARGS__)
1046 #define glTexImage2D(...) GLEGetCurrentFunction(glTexImage2D)(__VA_ARGS__)
1047 #define glTexParameterf(...) GLEGetCurrentFunction(glTexParameterf)(__VA_ARGS__)
1048 #define glTexParameterfv(...) GLEGetCurrentFunction(glTexParameterfv)(__VA_ARGS__)
1049 #define glTexParameteri(...) GLEGetCurrentFunction(glTexParameteri)(__VA_ARGS__)
1050 #define glTexParameteriv(...) GLEGetCurrentFunction(glTexParameteriv)(__VA_ARGS__)
1051 #define glTexSubImage1D(...) GLEGetCurrentFunction(glTexSubImage1D)(__VA_ARGS__)
1052 #define glTexSubImage2D(...) GLEGetCurrentFunction(glTexSubImage2D)(__VA_ARGS__)
1053 #define glTranslated(...) GLEGetCurrentFunction(glTranslated)(__VA_ARGS__)
1054 #define glTranslatef(...) GLEGetCurrentFunction(glTranslatef)(__VA_ARGS__)
1055 #define glVertex2d(...) GLEGetCurrentFunction(glVertex2d)(__VA_ARGS__)
1056 #define glVertex2dv(...) GLEGetCurrentFunction(glVertex2dv)(__VA_ARGS__)
1057 #define glVertex2f(...) GLEGetCurrentFunction(glVertex2f)(__VA_ARGS__)
1058 #define glVertex2fv(...) GLEGetCurrentFunction(glVertex2fv)(__VA_ARGS__)
1059 #define glVertex2i(...) GLEGetCurrentFunction(glVertex2i)(__VA_ARGS__)
1060 #define glVertex2iv(...) GLEGetCurrentFunction(glVertex2iv)(__VA_ARGS__)
1061 #define glVertex2s(...) GLEGetCurrentFunction(glVertex2s)(__VA_ARGS__)
1062 #define glVertex2sv(...) GLEGetCurrentFunction(glVertex2sv)(__VA_ARGS__)
1063 #define glVertex3d(...) GLEGetCurrentFunction(glVertex3d)(__VA_ARGS__)
1064 #define glVertex3dv(...) GLEGetCurrentFunction(glVertex3dv)(__VA_ARGS__)
1065 #define glVertex3f(...) GLEGetCurrentFunction(glVertex3f)(__VA_ARGS__)
1066 #define glVertex3fv(...) GLEGetCurrentFunction(glVertex3fv)(__VA_ARGS__)
1067 #define glVertex3i(...) GLEGetCurrentFunction(glVertex3i)(__VA_ARGS__)
1068 #define glVertex3iv(...) GLEGetCurrentFunction(glVertex3iv)(__VA_ARGS__)
1069 #define glVertex3s(...) GLEGetCurrentFunction(glVertex3s)(__VA_ARGS__)
1070 #define glVertex3sv(...) GLEGetCurrentFunction(glVertex3sv)(__VA_ARGS__)
1071 #define glVertex4d(...) GLEGetCurrentFunction(glVertex4d)(__VA_ARGS__)
1072 #define glVertex4dv(...) GLEGetCurrentFunction(glVertex4dv)(__VA_ARGS__)
1073 #define glVertex4f(...) GLEGetCurrentFunction(glVertex4f)(__VA_ARGS__)
1074 #define glVertex4fv(...) GLEGetCurrentFunction(glVertex4fv)(__VA_ARGS__)
1075 #define glVertex4i(...) GLEGetCurrentFunction(glVertex4i)(__VA_ARGS__)
1076 #define glVertex4iv(...) GLEGetCurrentFunction(glVertex4iv)(__VA_ARGS__)
1077 #define glVertex4s(...) GLEGetCurrentFunction(glVertex4s)(__VA_ARGS__)
1078 #define glVertex4sv(...) GLEGetCurrentFunction(glVertex4sv)(__VA_ARGS__)
1079 #define glVertexPointer(...) GLEGetCurrentFunction(glVertexPointer)(__VA_ARGS__)
1080 #define glViewport(...) GLEGetCurrentFunction(glViewport)(__VA_ARGS__)
1081 #else
1082 // There is no need to typedef OpenGL 1.1 function types because they are present in all
1083 // OpenGL implementations and don't need to be treated dynamically like extensions.
1084 GLAPI void GLAPIENTRY glAccum (GLenum op, GLfloat value);
1085 GLAPI void GLAPIENTRY glAlphaFunc (GLenum func, GLclampf ref);
1086 GLAPI GLboolean GLAPIENTRY glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences);
1087 GLAPI void GLAPIENTRY glArrayElement (GLint i);
1088 GLAPI void GLAPIENTRY glBegin (GLenum mode);
1089 GLAPI void GLAPIENTRY glBindTexture (GLenum target, GLuint texture);
1090 GLAPI void GLAPIENTRY glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
1091 GLAPI void GLAPIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
1092 GLAPI void GLAPIENTRY glCallList (GLuint list);
1093 GLAPI void GLAPIENTRY glCallLists (GLsizei n, GLenum type, const void *lists);
1094 GLAPI void GLAPIENTRY glClear (GLbitfield mask);
1095 GLAPI void GLAPIENTRY glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
1096 GLAPI void GLAPIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
1097 GLAPI void GLAPIENTRY glClearDepth (GLclampd depth);
1098 GLAPI void GLAPIENTRY glClearIndex (GLfloat c);
1099 GLAPI void GLAPIENTRY glClearStencil (GLint s);
1100 GLAPI void GLAPIENTRY glClipPlane (GLenum plane, const GLdouble *equation);
1101 GLAPI void GLAPIENTRY glColor3b (GLbyte red, GLbyte green, GLbyte blue);
1102 GLAPI void GLAPIENTRY glColor3bv (const GLbyte *v);
1103 GLAPI void GLAPIENTRY glColor3d (GLdouble red, GLdouble green, GLdouble blue);
1104 GLAPI void GLAPIENTRY glColor3dv (const GLdouble *v);
1105 GLAPI void GLAPIENTRY glColor3f (GLfloat red, GLfloat green, GLfloat blue);
1106 GLAPI void GLAPIENTRY glColor3fv (const GLfloat *v);
1107 GLAPI void GLAPIENTRY glColor3i (GLint red, GLint green, GLint blue);
1108 GLAPI void GLAPIENTRY glColor3iv (const GLint *v);
1109 GLAPI void GLAPIENTRY glColor3s (GLshort red, GLshort green, GLshort blue);
1110 GLAPI void GLAPIENTRY glColor3sv (const GLshort *v);
1111 GLAPI void GLAPIENTRY glColor3ub (GLubyte red, GLubyte green, GLubyte blue);
1112 GLAPI void GLAPIENTRY glColor3ubv (const GLubyte *v);
1113 GLAPI void GLAPIENTRY glColor3ui (GLuint red, GLuint green, GLuint blue);
1114 GLAPI void GLAPIENTRY glColor3uiv (const GLuint *v);
1115 GLAPI void GLAPIENTRY glColor3us (GLushort red, GLushort green, GLushort blue);
1116 GLAPI void GLAPIENTRY glColor3usv (const GLushort *v);
1117 GLAPI void GLAPIENTRY glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
1118 GLAPI void GLAPIENTRY glColor4bv (const GLbyte *v);
1119 GLAPI void GLAPIENTRY glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
1120 GLAPI void GLAPIENTRY glColor4dv (const GLdouble *v);
1121 GLAPI void GLAPIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
1122 GLAPI void GLAPIENTRY glColor4fv (const GLfloat *v);
1123 GLAPI void GLAPIENTRY glColor4i (GLint red, GLint green, GLint blue, GLint alpha);
1124 GLAPI void GLAPIENTRY glColor4iv (const GLint *v);
1125 GLAPI void GLAPIENTRY glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha);
1126 GLAPI void GLAPIENTRY glColor4sv (const GLshort *v);
1127 GLAPI void GLAPIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
1128 GLAPI void GLAPIENTRY glColor4ubv (const GLubyte *v);
1129 GLAPI void GLAPIENTRY glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha);
1130 GLAPI void GLAPIENTRY glColor4uiv (const GLuint *v);
1131 GLAPI void GLAPIENTRY glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha);
1132 GLAPI void GLAPIENTRY glColor4usv (const GLushort *v);
1133 GLAPI void GLAPIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
1134 GLAPI void GLAPIENTRY glColorMaterial (GLenum face, GLenum mode);
1135 GLAPI void GLAPIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
1136 GLAPI void GLAPIENTRY glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
1137 GLAPI void GLAPIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
1138 GLAPI void GLAPIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
1139 GLAPI void GLAPIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
1140 GLAPI void GLAPIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
1141 GLAPI void GLAPIENTRY glCullFace (GLenum mode);
1142 GLAPI void GLAPIENTRY glDeleteLists (GLuint list, GLsizei range);
1143 GLAPI void GLAPIENTRY glDeleteTextures (GLsizei n, const GLuint *textures);
1144 GLAPI void GLAPIENTRY glDepthFunc (GLenum func);
1145 GLAPI void GLAPIENTRY glDepthMask (GLboolean flag);
1146 GLAPI void GLAPIENTRY glDepthRange (GLclampd zNear, GLclampd zFar);
1147 GLAPI void GLAPIENTRY glDisable (GLenum cap);
1148 GLAPI void GLAPIENTRY glDisableClientState (GLenum array);
1149 GLAPI void GLAPIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
1150 GLAPI void GLAPIENTRY glDrawBuffer (GLenum mode);
1151 GLAPI void GLAPIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices);
1152 GLAPI void GLAPIENTRY glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
1153 GLAPI void GLAPIENTRY glEdgeFlag (GLboolean flag);
1154 GLAPI void GLAPIENTRY glEdgeFlagPointer (GLsizei stride, const void *pointer);
1155 GLAPI void GLAPIENTRY glEdgeFlagv (const GLboolean *flag);
1156 GLAPI void GLAPIENTRY glEnable (GLenum cap);
1157 GLAPI void GLAPIENTRY glEnableClientState (GLenum array);
1158 GLAPI void GLAPIENTRY glEnd (void);
1159 GLAPI void GLAPIENTRY glEndList (void);
1160 GLAPI void GLAPIENTRY glEvalCoord1d (GLdouble u);
1161 GLAPI void GLAPIENTRY glEvalCoord1dv (const GLdouble *u);
1162 GLAPI void GLAPIENTRY glEvalCoord1f (GLfloat u);
1163 GLAPI void GLAPIENTRY glEvalCoord1fv (const GLfloat *u);
1164 GLAPI void GLAPIENTRY glEvalCoord2d (GLdouble u, GLdouble v);
1165 GLAPI void GLAPIENTRY glEvalCoord2dv (const GLdouble *u);
1166 GLAPI void GLAPIENTRY glEvalCoord2f (GLfloat u, GLfloat v);
1167 GLAPI void GLAPIENTRY glEvalCoord2fv (const GLfloat *u);
1168 GLAPI void GLAPIENTRY glEvalMesh1 (GLenum mode, GLint i1, GLint i2);
1169 GLAPI void GLAPIENTRY glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
1170 GLAPI void GLAPIENTRY glEvalPoint1 (GLint i);
1171 GLAPI void GLAPIENTRY glEvalPoint2 (GLint i, GLint j);
1172 GLAPI void GLAPIENTRY glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer);
1173 GLAPI void GLAPIENTRY glFinish (void);
1174 GLAPI void GLAPIENTRY glFlush (void);
1175 GLAPI void GLAPIENTRY glFogf (GLenum pname, GLfloat param);
1176 GLAPI void GLAPIENTRY glFogfv (GLenum pname, const GLfloat *params);
1177 GLAPI void GLAPIENTRY glFogi (GLenum pname, GLint param);
1178 GLAPI void GLAPIENTRY glFogiv (GLenum pname, const GLint *params);
1179 GLAPI void GLAPIENTRY glFrontFace (GLenum mode);
1180 GLAPI void GLAPIENTRY glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
1181 GLAPI GLuint GLAPIENTRY glGenLists (GLsizei range);
1182 GLAPI void GLAPIENTRY glGenTextures (GLsizei n, GLuint *textures);
1183 GLAPI void GLAPIENTRY glGetBooleanv (GLenum pname, GLboolean *params);
1184 GLAPI void GLAPIENTRY glGetClipPlane (GLenum plane, GLdouble *equation);
1185 GLAPI void GLAPIENTRY glGetDoublev (GLenum pname, GLdouble *params);
1186 GLAPI GLenum GLAPIENTRY glGetError (void);
1187 GLAPI void GLAPIENTRY glGetFloatv (GLenum pname, GLfloat *params);
1188 GLAPI void GLAPIENTRY glGetIntegerv (GLenum pname, GLint *params);
1189 GLAPI void GLAPIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params);
1190 GLAPI void GLAPIENTRY glGetLightiv (GLenum light, GLenum pname, GLint *params);
1191 GLAPI void GLAPIENTRY glGetMapdv (GLenum target, GLenum query, GLdouble *v);
1192 GLAPI void GLAPIENTRY glGetMapfv (GLenum target, GLenum query, GLfloat *v);
1193 GLAPI void GLAPIENTRY glGetMapiv (GLenum target, GLenum query, GLint *v);
1194 GLAPI void GLAPIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params);
1195 GLAPI void GLAPIENTRY glGetMaterialiv (GLenum face, GLenum pname, GLint *params);
1196 GLAPI void GLAPIENTRY glGetPixelMapfv (GLenum map, GLfloat *values);
1197 GLAPI void GLAPIENTRY glGetPixelMapuiv (GLenum map, GLuint *values);
1198 GLAPI void GLAPIENTRY glGetPixelMapusv (GLenum map, GLushort *values);
1199 GLAPI void GLAPIENTRY glGetPointerv (GLenum pname, void* *params);
1200 GLAPI void GLAPIENTRY glGetPolygonStipple (GLubyte *mask);
1201 GLAPI const GLubyte * GLAPIENTRY glGetString (GLenum name);
1202 GLAPI void GLAPIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params);
1203 GLAPI void GLAPIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params);
1204 GLAPI void GLAPIENTRY glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params);
1205 GLAPI void GLAPIENTRY glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params);
1206 GLAPI void GLAPIENTRY glGetTexGeniv (GLenum coord, GLenum pname, GLint *params);
1207 GLAPI void GLAPIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
1208 GLAPI void GLAPIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params);
1209 GLAPI void GLAPIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params);
1210 GLAPI void GLAPIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
1211 GLAPI void GLAPIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
1212 GLAPI void GLAPIENTRY glHint (GLenum target, GLenum mode);
1213 GLAPI void GLAPIENTRY glIndexMask (GLuint mask);
1214 GLAPI void GLAPIENTRY glIndexPointer (GLenum type, GLsizei stride, const void *pointer);
1215 GLAPI void GLAPIENTRY glIndexd (GLdouble c);
1216 GLAPI void GLAPIENTRY glIndexdv (const GLdouble *c);
1217 GLAPI void GLAPIENTRY glIndexf (GLfloat c);
1218 GLAPI void GLAPIENTRY glIndexfv (const GLfloat *c);
1219 GLAPI void GLAPIENTRY glIndexi (GLint c);
1220 GLAPI void GLAPIENTRY glIndexiv (const GLint *c);
1221 GLAPI void GLAPIENTRY glIndexs (GLshort c);
1222 GLAPI void GLAPIENTRY glIndexsv (const GLshort *c);
1223 GLAPI void GLAPIENTRY glIndexub (GLubyte c);
1224 GLAPI void GLAPIENTRY glIndexubv (const GLubyte *c);
1225 GLAPI void GLAPIENTRY glInitNames (void);
1226 GLAPI void GLAPIENTRY glInterleavedArrays (GLenum format, GLsizei stride, const void *pointer);
1227 GLAPI GLboolean GLAPIENTRY glIsEnabled (GLenum cap);
1228 GLAPI GLboolean GLAPIENTRY glIsList (GLuint list);
1229 GLAPI GLboolean GLAPIENTRY glIsTexture (GLuint texture);
1230 GLAPI void GLAPIENTRY glLightModelf (GLenum pname, GLfloat param);
1231 GLAPI void GLAPIENTRY glLightModelfv (GLenum pname, const GLfloat *params);
1232 GLAPI void GLAPIENTRY glLightModeli (GLenum pname, GLint param);
1233 GLAPI void GLAPIENTRY glLightModeliv (GLenum pname, const GLint *params);
1234 GLAPI void GLAPIENTRY glLightf (GLenum light, GLenum pname, GLfloat param);
1235 GLAPI void GLAPIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params);
1236 GLAPI void GLAPIENTRY glLighti (GLenum light, GLenum pname, GLint param);
1237 GLAPI void GLAPIENTRY glLightiv (GLenum light, GLenum pname, const GLint *params);
1238 GLAPI void GLAPIENTRY glLineStipple (GLint factor, GLushort pattern);
1239 GLAPI void GLAPIENTRY glLineWidth (GLfloat width);
1240 GLAPI void GLAPIENTRY glListBase (GLuint base);
1241 GLAPI void GLAPIENTRY glLoadIdentity (void);
1242 GLAPI void GLAPIENTRY glLoadMatrixd (const GLdouble *m);
1243 GLAPI void GLAPIENTRY glLoadMatrixf (const GLfloat *m);
1244 GLAPI void GLAPIENTRY glLoadName (GLuint name);
1245 GLAPI void GLAPIENTRY glLogicOp (GLenum opcode);
1246 GLAPI void GLAPIENTRY glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
1247 GLAPI void GLAPIENTRY glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
1248 GLAPI void GLAPIENTRY glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
1249 GLAPI void GLAPIENTRY glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
1250 GLAPI void GLAPIENTRY glMapGrid1d (GLint un, GLdouble u1, GLdouble u2);
1251 GLAPI void GLAPIENTRY glMapGrid1f (GLint un, GLfloat u1, GLfloat u2);
1252 GLAPI void GLAPIENTRY glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
1253 GLAPI void GLAPIENTRY glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
1254 GLAPI void GLAPIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param);
1255 GLAPI void GLAPIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params);
1256 GLAPI void GLAPIENTRY glMateriali (GLenum face, GLenum pname, GLint param);
1257 GLAPI void GLAPIENTRY glMaterialiv (GLenum face, GLenum pname, const GLint *params);
1258 GLAPI void GLAPIENTRY glMatrixMode (GLenum mode);
1259 GLAPI void GLAPIENTRY glMultMatrixd (const GLdouble *m);
1260 GLAPI void GLAPIENTRY glMultMatrixf (const GLfloat *m);
1261 GLAPI void GLAPIENTRY glNewList (GLuint list, GLenum mode);
1262 GLAPI void GLAPIENTRY glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz);
1263 GLAPI void GLAPIENTRY glNormal3bv (const GLbyte *v);
1264 GLAPI void GLAPIENTRY glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz);
1265 GLAPI void GLAPIENTRY glNormal3dv (const GLdouble *v);
1266 GLAPI void GLAPIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz);
1267 GLAPI void GLAPIENTRY glNormal3fv (const GLfloat *v);
1268 GLAPI void GLAPIENTRY glNormal3i (GLint nx, GLint ny, GLint nz);
1269 GLAPI void GLAPIENTRY glNormal3iv (const GLint *v);
1270 GLAPI void GLAPIENTRY glNormal3s (GLshort nx, GLshort ny, GLshort nz);
1271 GLAPI void GLAPIENTRY glNormal3sv (const GLshort *v);
1272 GLAPI void GLAPIENTRY glNormalPointer (GLenum type, GLsizei stride, const void *pointer);
1273 GLAPI void GLAPIENTRY glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
1274 GLAPI void GLAPIENTRY glPassThrough (GLfloat token);
1275 GLAPI void GLAPIENTRY glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values);
1276 GLAPI void GLAPIENTRY glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values);
1277 GLAPI void GLAPIENTRY glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values);
1278 GLAPI void GLAPIENTRY glPixelStoref (GLenum pname, GLfloat param);
1279 GLAPI void GLAPIENTRY glPixelStorei (GLenum pname, GLint param);
1280 GLAPI void GLAPIENTRY glPixelTransferf (GLenum pname, GLfloat param);
1281 GLAPI void GLAPIENTRY glPixelTransferi (GLenum pname, GLint param);
1282 GLAPI void GLAPIENTRY glPixelZoom (GLfloat xfactor, GLfloat yfactor);
1283 GLAPI void GLAPIENTRY glPointSize (GLfloat size);
1284 GLAPI void GLAPIENTRY glPolygonMode (GLenum face, GLenum mode);
1285 GLAPI void GLAPIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
1286 GLAPI void GLAPIENTRY glPolygonStipple (const GLubyte *mask);
1287 GLAPI void GLAPIENTRY glPopAttrib (void);
1288 GLAPI void GLAPIENTRY glPopClientAttrib (void);
1289 GLAPI void GLAPIENTRY glPopMatrix (void);
1290 GLAPI void GLAPIENTRY glPopName (void);
1291 GLAPI void GLAPIENTRY glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities);
1292 GLAPI void GLAPIENTRY glPushAttrib (GLbitfield mask);
1293 GLAPI void GLAPIENTRY glPushClientAttrib (GLbitfield mask);
1294 GLAPI void GLAPIENTRY glPushMatrix (void);
1295 GLAPI void GLAPIENTRY glPushName (GLuint name);
1296 GLAPI void GLAPIENTRY glRasterPos2d (GLdouble x, GLdouble y);
1297 GLAPI void GLAPIENTRY glRasterPos2dv (const GLdouble *v);
1298 GLAPI void GLAPIENTRY glRasterPos2f (GLfloat x, GLfloat y);
1299 GLAPI void GLAPIENTRY glRasterPos2fv (const GLfloat *v);
1300 GLAPI void GLAPIENTRY glRasterPos2i (GLint x, GLint y);
1301 GLAPI void GLAPIENTRY glRasterPos2iv (const GLint *v);
1302 GLAPI void GLAPIENTRY glRasterPos2s (GLshort x, GLshort y);
1303 GLAPI void GLAPIENTRY glRasterPos2sv (const GLshort *v);
1304 GLAPI void GLAPIENTRY glRasterPos3d (GLdouble x, GLdouble y, GLdouble z);
1305 GLAPI void GLAPIENTRY glRasterPos3dv (const GLdouble *v);
1306 GLAPI void GLAPIENTRY glRasterPos3f (GLfloat x, GLfloat y, GLfloat z);
1307 GLAPI void GLAPIENTRY glRasterPos3fv (const GLfloat *v);
1308 GLAPI void GLAPIENTRY glRasterPos3i (GLint x, GLint y, GLint z);
1309 GLAPI void GLAPIENTRY glRasterPos3iv (const GLint *v);
1310 GLAPI void GLAPIENTRY glRasterPos3s (GLshort x, GLshort y, GLshort z);
1311 GLAPI void GLAPIENTRY glRasterPos3sv (const GLshort *v);
1312 GLAPI void GLAPIENTRY glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1313 GLAPI void GLAPIENTRY glRasterPos4dv (const GLdouble *v);
1314 GLAPI void GLAPIENTRY glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1315 GLAPI void GLAPIENTRY glRasterPos4fv (const GLfloat *v);
1316 GLAPI void GLAPIENTRY glRasterPos4i (GLint x, GLint y, GLint z, GLint w);
1317 GLAPI void GLAPIENTRY glRasterPos4iv (const GLint *v);
1318 GLAPI void GLAPIENTRY glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w);
1319 GLAPI void GLAPIENTRY glRasterPos4sv (const GLshort *v);
1320 GLAPI void GLAPIENTRY glReadBuffer (GLenum mode);
1321 GLAPI void GLAPIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
1322 GLAPI void GLAPIENTRY glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
1323 GLAPI void GLAPIENTRY glRectdv (const GLdouble *v1, const GLdouble *v2);
1324 GLAPI void GLAPIENTRY glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
1325 GLAPI void GLAPIENTRY glRectfv (const GLfloat *v1, const GLfloat *v2);
1326 GLAPI void GLAPIENTRY glRecti (GLint x1, GLint y1, GLint x2, GLint y2);
1327 GLAPI void GLAPIENTRY glRectiv (const GLint *v1, const GLint *v2);
1328 GLAPI void GLAPIENTRY glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2);
1329 GLAPI void GLAPIENTRY glRectsv (const GLshort *v1, const GLshort *v2);
1330 GLAPI GLint GLAPIENTRY glRenderMode (GLenum mode);
1331 GLAPI void GLAPIENTRY glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
1332 GLAPI void GLAPIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
1333 GLAPI void GLAPIENTRY glScaled (GLdouble x, GLdouble y, GLdouble z);
1334 GLAPI void GLAPIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z);
1335 GLAPI void GLAPIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
1336 GLAPI void GLAPIENTRY glSelectBuffer (GLsizei size, GLuint *buffer);
1337 GLAPI void GLAPIENTRY glShadeModel (GLenum mode);
1338 GLAPI void GLAPIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
1339 GLAPI void GLAPIENTRY glStencilMask (GLuint mask);
1340 GLAPI void GLAPIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
1341 GLAPI void GLAPIENTRY glTexCoord1d (GLdouble s);
1342 GLAPI void GLAPIENTRY glTexCoord1dv (const GLdouble *v);
1343 GLAPI void GLAPIENTRY glTexCoord1f (GLfloat s);
1344 GLAPI void GLAPIENTRY glTexCoord1fv (const GLfloat *v);
1345 GLAPI void GLAPIENTRY glTexCoord1i (GLint s);
1346 GLAPI void GLAPIENTRY glTexCoord1iv (const GLint *v);
1347 GLAPI void GLAPIENTRY glTexCoord1s (GLshort s);
1348 GLAPI void GLAPIENTRY glTexCoord1sv (const GLshort *v);
1349 GLAPI void GLAPIENTRY glTexCoord2d (GLdouble s, GLdouble t);
1350 GLAPI void GLAPIENTRY glTexCoord2dv (const GLdouble *v);
1351 GLAPI void GLAPIENTRY glTexCoord2f (GLfloat s, GLfloat t);
1352 GLAPI void GLAPIENTRY glTexCoord2fv (const GLfloat *v);
1353 GLAPI void GLAPIENTRY glTexCoord2i (GLint s, GLint t);
1354 GLAPI void GLAPIENTRY glTexCoord2iv (const GLint *v);
1355 GLAPI void GLAPIENTRY glTexCoord2s (GLshort s, GLshort t);
1356 GLAPI void GLAPIENTRY glTexCoord2sv (const GLshort *v);
1357 GLAPI void GLAPIENTRY glTexCoord3d (GLdouble s, GLdouble t, GLdouble r);
1358 GLAPI void GLAPIENTRY glTexCoord3dv (const GLdouble *v);
1359 GLAPI void GLAPIENTRY glTexCoord3f (GLfloat s, GLfloat t, GLfloat r);
1360 GLAPI void GLAPIENTRY glTexCoord3fv (const GLfloat *v);
1361 GLAPI void GLAPIENTRY glTexCoord3i (GLint s, GLint t, GLint r);
1362 GLAPI void GLAPIENTRY glTexCoord3iv (const GLint *v);
1363 GLAPI void GLAPIENTRY glTexCoord3s (GLshort s, GLshort t, GLshort r);
1364 GLAPI void GLAPIENTRY glTexCoord3sv (const GLshort *v);
1365 GLAPI void GLAPIENTRY glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q);
1366 GLAPI void GLAPIENTRY glTexCoord4dv (const GLdouble *v);
1367 GLAPI void GLAPIENTRY glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q);
1368 GLAPI void GLAPIENTRY glTexCoord4fv (const GLfloat *v);
1369 GLAPI void GLAPIENTRY glTexCoord4i (GLint s, GLint t, GLint r, GLint q);
1370 GLAPI void GLAPIENTRY glTexCoord4iv (const GLint *v);
1371 GLAPI void GLAPIENTRY glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q);
1372 GLAPI void GLAPIENTRY glTexCoord4sv (const GLshort *v);
1373 GLAPI void GLAPIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
1374 GLAPI void GLAPIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param);
1375 GLAPI void GLAPIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params);
1376 GLAPI void GLAPIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param);
1377 GLAPI void GLAPIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params);
1378 GLAPI void GLAPIENTRY glTexGend (GLenum coord, GLenum pname, GLdouble param);
1379 GLAPI void GLAPIENTRY glTexGendv (GLenum coord, GLenum pname, const GLdouble *params);
1380 GLAPI void GLAPIENTRY glTexGenf (GLenum coord, GLenum pname, GLfloat param);
1381 GLAPI void GLAPIENTRY glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params);
1382 GLAPI void GLAPIENTRY glTexGeni (GLenum coord, GLenum pname, GLint param);
1383 GLAPI void GLAPIENTRY glTexGeniv (GLenum coord, GLenum pname, const GLint *params);
1384 GLAPI void GLAPIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
1385 GLAPI void GLAPIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
1386 GLAPI void GLAPIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
1387 GLAPI void GLAPIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
1388 GLAPI void GLAPIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
1389 GLAPI void GLAPIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params);
1390 GLAPI void GLAPIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
1391 GLAPI void GLAPIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
1392 GLAPI void GLAPIENTRY glTranslated (GLdouble x, GLdouble y, GLdouble z);
1393 GLAPI void GLAPIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z);
1394 GLAPI void GLAPIENTRY glVertex2d (GLdouble x, GLdouble y);
1395 GLAPI void GLAPIENTRY glVertex2dv (const GLdouble *v);
1396 GLAPI void GLAPIENTRY glVertex2f (GLfloat x, GLfloat y);
1397 GLAPI void GLAPIENTRY glVertex2fv (const GLfloat *v);
1398 GLAPI void GLAPIENTRY glVertex2i (GLint x, GLint y);
1399 GLAPI void GLAPIENTRY glVertex2iv (const GLint *v);
1400 GLAPI void GLAPIENTRY glVertex2s (GLshort x, GLshort y);
1401 GLAPI void GLAPIENTRY glVertex2sv (const GLshort *v);
1402 GLAPI void GLAPIENTRY glVertex3d (GLdouble x, GLdouble y, GLdouble z);
1403 GLAPI void GLAPIENTRY glVertex3dv (const GLdouble *v);
1404 GLAPI void GLAPIENTRY glVertex3f (GLfloat x, GLfloat y, GLfloat z);
1405 GLAPI void GLAPIENTRY glVertex3fv (const GLfloat *v);
1406 GLAPI void GLAPIENTRY glVertex3i (GLint x, GLint y, GLint z);
1407 GLAPI void GLAPIENTRY glVertex3iv (const GLint *v);
1408 GLAPI void GLAPIENTRY glVertex3s (GLshort x, GLshort y, GLshort z);
1409 GLAPI void GLAPIENTRY glVertex3sv (const GLshort *v);
1410 GLAPI void GLAPIENTRY glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1411 GLAPI void GLAPIENTRY glVertex4dv (const GLdouble *v);
1412 GLAPI void GLAPIENTRY glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1413 GLAPI void GLAPIENTRY glVertex4fv (const GLfloat *v);
1414 GLAPI void GLAPIENTRY glVertex4i (GLint x, GLint y, GLint z, GLint w);
1415 GLAPI void GLAPIENTRY glVertex4iv (const GLint *v);
1416 GLAPI void GLAPIENTRY glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w);
1417 GLAPI void GLAPIENTRY glVertex4sv (const GLshort *v);
1418 GLAPI void GLAPIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
1419 GLAPI void GLAPIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
1421 #endif // GLE_HOOKING_ENABLED
1423 #endif // GL_VERSION_1_1
1428 // OpenGL 1.2+ functions are not declared in Microsoft's gl.h
1430 #ifndef GL_VERSION_1_2
1431 #define GL_VERSION_1_2 1
1433 #define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
1434 #define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
1435 #define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
1436 #define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
1437 #define GL_UNSIGNED_BYTE_3_3_2 0x8032
1438 #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
1439 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
1440 #define GL_UNSIGNED_INT_8_8_8_8 0x8035
1441 #define GL_UNSIGNED_INT_10_10_10_2 0x8036
1442 #define GL_RESCALE_NORMAL 0x803A
1443 #define GL_TEXTURE_BINDING_3D 0x806A
1444 #define GL_PACK_SKIP_IMAGES 0x806B
1445 #define GL_PACK_IMAGE_HEIGHT 0x806C
1446 #define GL_UNPACK_SKIP_IMAGES 0x806D
1447 #define GL_UNPACK_IMAGE_HEIGHT 0x806E
1448 #define GL_TEXTURE_3D 0x806F
1449 #define GL_PROXY_TEXTURE_3D 0x8070
1450 #define GL_TEXTURE_DEPTH 0x8071
1451 #define GL_TEXTURE_WRAP_R 0x8072
1452 #define GL_MAX_3D_TEXTURE_SIZE 0x8073
1453 #define GL_BGR 0x80E0
1454 #define GL_BGRA 0x80E1
1455 #define GL_MAX_ELEMENTS_VERTICES 0x80E8
1456 #define GL_MAX_ELEMENTS_INDICES 0x80E9
1457 #define GL_CLAMP_TO_EDGE 0x812F
1458 #define GL_TEXTURE_MIN_LOD 0x813A
1459 #define GL_TEXTURE_MAX_LOD 0x813B
1460 #define GL_TEXTURE_BASE_LEVEL 0x813C
1461 #define GL_TEXTURE_MAX_LEVEL 0x813D
1462 #define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8
1463 #define GL_SINGLE_COLOR 0x81F9
1464 #define GL_SEPARATE_SPECULAR_COLOR 0x81FA
1465 #define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
1466 #define GL_UNSIGNED_SHORT_5_6_5 0x8363
1467 #define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
1468 #define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
1469 #define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
1470 #define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
1471 #define GL_ALIASED_POINT_SIZE_RANGE 0x846D
1472 #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
1474 typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
1475 typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
1476 typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
1477 typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
1479 #define glCopyTexSubImage3D GLEGetCurrentFunction(glCopyTexSubImage3D)
1480 #define glDrawRangeElements GLEGetCurrentFunction(glDrawRangeElements)
1481 #define glTexImage3D GLEGetCurrentFunction(glTexImage3D)
1482 #define glTexSubImage3D GLEGetCurrentFunction(glTexSubImage3D)
1484 // OpenGL 2.1 deprecated functions
1485 /*
1486 typedef void (GLAPIENTRY PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
1487 typedef void (GLAPIENTRY PFNGLBLENDEQUATIONPROC) (GLenum mode);
1488 typedef void (GLAPIENTRY PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
1489 typedef void (GLAPIENTRY PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
1490 typedef void (GLAPIENTRY PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
1491 typedef void (GLAPIENTRY PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
1492 typedef void (GLAPIENTRY PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table);
1493 typedef void (GLAPIENTRY PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
1494 typedef void (GLAPIENTRY PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
1495 typedef void (GLAPIENTRY PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
1496 typedef void (GLAPIENTRY PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
1497 typedef void (GLAPIENTRY PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
1498 typedef void (GLAPIENTRY PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
1499 typedef void (GLAPIENTRY PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params);
1500 typedef void (GLAPIENTRY PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
1501 typedef void (GLAPIENTRY PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params);
1502 typedef void (GLAPIENTRY PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
1503 typedef void (GLAPIENTRY PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
1504 typedef void (GLAPIENTRY PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
1505 typedef void (GLAPIENTRY PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image);
1506 typedef void (GLAPIENTRY PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
1507 typedef void (GLAPIENTRY PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
1508 typedef void (GLAPIENTRY PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
1509 typedef void (GLAPIENTRY PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
1510 typedef void (GLAPIENTRY PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
1511 typedef void (GLAPIENTRY PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
1512 typedef void (GLAPIENTRY PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
1513 typedef void (GLAPIENTRY PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
1514 typedef void (GLAPIENTRY PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
1515 typedef void (GLAPIENTRY PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
1516 typedef void (GLAPIENTRY PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
1517 typedef void (GLAPIENTRY PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink);
1518 typedef void (GLAPIENTRY PFNGLRESETHISTOGRAMPROC) (GLenum target);
1519 typedef void (GLAPIENTRY PFNGLRESETMINMAXPROC) (GLenum target);
1520 */
1521 #endif // GL_VERSION_1_2
1525 #ifndef GL_VERSION_1_3
1526 #define GL_VERSION_1_3 1
1528 #define GL_MULTISAMPLE 0x809D
1529 #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
1530 #define GL_SAMPLE_ALPHA_TO_ONE 0x809F
1531 #define GL_SAMPLE_COVERAGE 0x80A0
1532 #define GL_SAMPLE_BUFFERS 0x80A8
1533 #define GL_SAMPLES 0x80A9
1534 #define GL_SAMPLE_COVERAGE_VALUE 0x80AA
1535 #define GL_SAMPLE_COVERAGE_INVERT 0x80AB
1536 #define GL_CLAMP_TO_BORDER 0x812D
1537 #define GL_TEXTURE0 0x84C0
1538 #define GL_TEXTURE1 0x84C1
1539 #define GL_TEXTURE2 0x84C2
1540 #define GL_TEXTURE3 0x84C3
1541 #define GL_TEXTURE4 0x84C4
1542 #define GL_TEXTURE5 0x84C5
1543 #define GL_TEXTURE6 0x84C6
1544 #define GL_TEXTURE7 0x84C7
1545 #define GL_TEXTURE8 0x84C8
1546 #define GL_TEXTURE9 0x84C9
1547 #define GL_TEXTURE10 0x84CA
1548 #define GL_TEXTURE11 0x84CB
1549 #define GL_TEXTURE12 0x84CC
1550 #define GL_TEXTURE13 0x84CD
1551 #define GL_TEXTURE14 0x84CE
1552 #define GL_TEXTURE15 0x84CF
1553 #define GL_TEXTURE16 0x84D0
1554 #define GL_TEXTURE17 0x84D1
1555 #define GL_TEXTURE18 0x84D2
1556 #define GL_TEXTURE19 0x84D3
1557 #define GL_TEXTURE20 0x84D4
1558 #define GL_TEXTURE21 0x84D5
1559 #define GL_TEXTURE22 0x84D6
1560 #define GL_TEXTURE23 0x84D7
1561 #define GL_TEXTURE24 0x84D8
1562 #define GL_TEXTURE25 0x84D9
1563 #define GL_TEXTURE26 0x84DA
1564 #define GL_TEXTURE27 0x84DB
1565 #define GL_TEXTURE28 0x84DC
1566 #define GL_TEXTURE29 0x84DD
1567 #define GL_TEXTURE30 0x84DE
1568 #define GL_TEXTURE31 0x84DF
1569 #define GL_ACTIVE_TEXTURE 0x84E0
1570 #define GL_CLIENT_ACTIVE_TEXTURE 0x84E1
1571 #define GL_MAX_TEXTURE_UNITS 0x84E2
1572 #define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3
1573 #define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4
1574 #define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5
1575 #define GL_TRANSPOSE_COLOR_MATRIX 0x84E6
1576 #define GL_SUBTRACT 0x84E7
1577 #define GL_COMPRESSED_ALPHA 0x84E9
1578 #define GL_COMPRESSED_LUMINANCE 0x84EA
1579 #define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB
1580 #define GL_COMPRESSED_INTENSITY 0x84EC
1581 #define GL_COMPRESSED_RGB 0x84ED
1582 #define GL_COMPRESSED_RGBA 0x84EE
1583 #define GL_TEXTURE_COMPRESSION_HINT 0x84EF
1584 #define GL_NORMAL_MAP 0x8511
1585 #define GL_REFLECTION_MAP 0x8512
1586 #define GL_TEXTURE_CUBE_MAP 0x8513
1587 #define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
1588 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
1589 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
1590 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
1591 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
1592 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
1593 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
1594 #define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
1595 #define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
1596 #define GL_COMBINE 0x8570
1597 #define GL_COMBINE_RGB 0x8571
1598 #define GL_COMBINE_ALPHA 0x8572
1599 #define GL_RGB_SCALE 0x8573
1600 #define GL_ADD_SIGNED 0x8574
1601 #define GL_INTERPOLATE 0x8575
1602 #define GL_CONSTANT 0x8576
1603 #define GL_PRIMARY_COLOR 0x8577
1604 #define GL_PREVIOUS 0x8578
1605 #define GL_SOURCE0_RGB 0x8580
1606 #define GL_SOURCE1_RGB 0x8581
1607 #define GL_SOURCE2_RGB 0x8582
1608 #define GL_SOURCE0_ALPHA 0x8588
1609 #define GL_SOURCE1_ALPHA 0x8589
1610 #define GL_SOURCE2_ALPHA 0x858A
1611 #define GL_OPERAND0_RGB 0x8590
1612 #define GL_OPERAND1_RGB 0x8591
1613 #define GL_OPERAND2_RGB 0x8592
1614 #define GL_OPERAND0_ALPHA 0x8598
1615 #define GL_OPERAND1_ALPHA 0x8599
1616 #define GL_OPERAND2_ALPHA 0x859A
1617 #define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
1618 #define GL_TEXTURE_COMPRESSED 0x86A1
1619 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
1620 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
1621 #define GL_DOT3_RGB 0x86AE
1622 #define GL_DOT3_RGBA 0x86AF
1623 #define GL_MULTISAMPLE_BIT 0x20000000
1625 typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREPROC) (GLenum texture);
1626 typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture);
1627 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
1628 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
1629 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
1630 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
1631 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
1632 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
1633 typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, void *img);
1634 typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble m[16]);
1635 typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat m[16]);
1636 typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble m[16]);
1637 typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat m[16]);
1638 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s);
1639 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v);
1640 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s);
1641 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v);
1642 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s);
1643 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v);
1644 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s);
1645 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v);
1646 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t);
1647 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v);
1648 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t);
1649 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v);
1650 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t);
1651 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v);
1652 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t);
1653 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v);
1654 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
1655 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v);
1656 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
1657 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v);
1658 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r);
1659 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v);
1660 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
1661 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v);
1662 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
1663 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v);
1664 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
1665 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v);
1666 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
1667 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v);
1668 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
1669 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v);
1670 typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert);
1672 #define glActiveTexture GLEGetCurrentFunction(glActiveTexture)
1673 #define glClientActiveTexture GLEGetCurrentFunction(glClientActiveTexture)
1674 #define glCompressedTexImage1D GLEGetCurrentFunction(glCompressedTexImage1D)
1675 #define glCompressedTexImage2D GLEGetCurrentFunction(glCompressedTexImage2D)
1676 #define glCompressedTexImage3D GLEGetCurrentFunction(glCompressedTexImage3D)
1677 #define glCompressedTexSubImage1D GLEGetCurrentFunction(glCompressedTexSubImage1D)
1678 #define glCompressedTexSubImage2D GLEGetCurrentFunction(glCompressedTexSubImage2D)
1679 #define glCompressedTexSubImage3D GLEGetCurrentFunction(glCompressedTexSubImage3D)
1680 #define glGetCompressedTexImage GLEGetCurrentFunction(glGetCompressedTexImage)
1681 #define glLoadTransposeMatrixd GLEGetCurrentFunction(glLoadTransposeMatrixd)
1682 #define glLoadTransposeMatrixf GLEGetCurrentFunction(glLoadTransposeMatrixf)
1683 #define glMultTransposeMatrixd GLEGetCurrentFunction(glMultTransposeMatrixd)
1684 #define glMultTransposeMatrixf GLEGetCurrentFunction(glMultTransposeMatrixf)
1685 #define glMultiTexCoord1d GLEGetCurrentFunction(glMultiTexCoord1d)
1686 #define glMultiTexCoord1dv GLEGetCurrentFunction(glMultiTexCoord1dv)
1687 #define glMultiTexCoord1f GLEGetCurrentFunction(glMultiTexCoord1f)
1688 #define glMultiTexCoord1fv GLEGetCurrentFunction(glMultiTexCoord1fv)
1689 #define glMultiTexCoord1i GLEGetCurrentFunction(glMultiTexCoord1i)
1690 #define glMultiTexCoord1iv GLEGetCurrentFunction(glMultiTexCoord1iv)
1691 #define glMultiTexCoord1s GLEGetCurrentFunction(glMultiTexCoord1s)
1692 #define glMultiTexCoord1sv GLEGetCurrentFunction(glMultiTexCoord1sv)
1693 #define glMultiTexCoord2d GLEGetCurrentFunction(glMultiTexCoord2d)
1694 #define glMultiTexCoord2dv GLEGetCurrentFunction(glMultiTexCoord2dv)
1695 #define glMultiTexCoord2f GLEGetCurrentFunction(glMultiTexCoord2f)
1696 #define glMultiTexCoord2fv GLEGetCurrentFunction(glMultiTexCoord2fv)
1697 #define glMultiTexCoord2i GLEGetCurrentFunction(glMultiTexCoord2i)
1698 #define glMultiTexCoord2iv GLEGetCurrentFunction(glMultiTexCoord2iv)
1699 #define glMultiTexCoord2s GLEGetCurrentFunction(glMultiTexCoord2s)
1700 #define glMultiTexCoord2sv GLEGetCurrentFunction(glMultiTexCoord2sv)
1701 #define glMultiTexCoord3d GLEGetCurrentFunction(glMultiTexCoord3d)
1702 #define glMultiTexCoord3dv GLEGetCurrentFunction(glMultiTexCoord3dv)
1703 #define glMultiTexCoord3f GLEGetCurrentFunction(glMultiTexCoord3f)
1704 #define glMultiTexCoord3fv GLEGetCurrentFunction(glMultiTexCoord3fv)
1705 #define glMultiTexCoord3i GLEGetCurrentFunction(glMultiTexCoord3i)
1706 #define glMultiTexCoord3iv GLEGetCurrentFunction(glMultiTexCoord3iv)
1707 #define glMultiTexCoord3s GLEGetCurrentFunction(glMultiTexCoord3s)
1708 #define glMultiTexCoord3sv GLEGetCurrentFunction(glMultiTexCoord3sv)
1709 #define glMultiTexCoord4d GLEGetCurrentFunction(glMultiTexCoord4d)
1710 #define glMultiTexCoord4dv GLEGetCurrentFunction(glMultiTexCoord4dv)
1711 #define glMultiTexCoord4f GLEGetCurrentFunction(glMultiTexCoord4f)
1712 #define glMultiTexCoord4fv GLEGetCurrentFunction(glMultiTexCoord4fv)
1713 #define glMultiTexCoord4i GLEGetCurrentFunction(glMultiTexCoord4i)
1714 #define glMultiTexCoord4iv GLEGetCurrentFunction(glMultiTexCoord4iv)
1715 #define glMultiTexCoord4s GLEGetCurrentFunction(glMultiTexCoord4s)
1716 #define glMultiTexCoord4sv GLEGetCurrentFunction(glMultiTexCoord4sv)
1717 #define glSampleCoverage GLEGetCurrentFunction(glSampleCoverage)
1719 #endif // GL_VERSION_1_3
1723 #ifndef GL_VERSION_1_4
1724 #define GL_VERSION_1_4 1
1726 #define GL_BLEND_DST_RGB 0x80C8
1727 #define GL_BLEND_SRC_RGB 0x80C9
1728 #define GL_BLEND_DST_ALPHA 0x80CA
1729 #define GL_BLEND_SRC_ALPHA 0x80CB
1730 #define GL_POINT_SIZE_MIN 0x8126
1731 #define GL_POINT_SIZE_MAX 0x8127
1732 #define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
1733 #define GL_POINT_DISTANCE_ATTENUATION 0x8129
1734 #define GL_GENERATE_MIPMAP 0x8191
1735 #define GL_GENERATE_MIPMAP_HINT 0x8192
1736 #define GL_DEPTH_COMPONENT16 0x81A5
1737 #define GL_DEPTH_COMPONENT24 0x81A6
1738 #define GL_DEPTH_COMPONENT32 0x81A7
1739 #define GL_MIRRORED_REPEAT 0x8370
1740 #define GL_FOG_COORDINATE_SOURCE 0x8450
1741 #define GL_FOG_COORDINATE 0x8451
1742 #define GL_FRAGMENT_DEPTH 0x8452
1743 #define GL_CURRENT_FOG_COORDINATE 0x8453
1744 #define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454
1745 #define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455
1746 #define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456
1747 #define GL_FOG_COORDINATE_ARRAY 0x8457
1748 #define GL_COLOR_SUM 0x8458
1749 #define GL_CURRENT_SECONDARY_COLOR 0x8459
1750 #define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A
1751 #define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B
1752 #define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C
1753 #define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D
1754 #define GL_SECONDARY_COLOR_ARRAY 0x845E
1755 #define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
1756 #define GL_TEXTURE_FILTER_CONTROL 0x8500
1757 #define GL_TEXTURE_LOD_BIAS 0x8501
1758 #define GL_INCR_WRAP 0x8507
1759 #define GL_DECR_WRAP 0x8508
1760 #define GL_TEXTURE_DEPTH_SIZE 0x884A
1761 #define GL_DEPTH_TEXTURE_MODE 0x884B
1762 #define GL_TEXTURE_COMPARE_MODE 0x884C
1763 #define GL_TEXTURE_COMPARE_FUNC 0x884D
1764 #define GL_COMPARE_R_TO_TEXTURE 0x884E
1766 typedef void (GLAPIENTRY * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
1767 typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONPROC) (GLenum mode);
1768 typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
1769 typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const void *pointer);
1770 typedef void (GLAPIENTRY * PFNGLFOGCOORDDPROC) (GLdouble coord);
1771 typedef void (GLAPIENTRY * PFNGLFOGCOORDDVPROC) (const GLdouble *coord);
1772 typedef void (GLAPIENTRY * PFNGLFOGCOORDFPROC) (GLfloat coord);
1773 typedef void (GLAPIENTRY * PFNGLFOGCOORDFVPROC) (const GLfloat *coord);
1774 typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount);
1775 typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const* indices, GLsizei drawcount);
1776 typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param);
1777 typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params);
1778 typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param);
1779 typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params);
1780 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue);
1781 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v);
1782 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue);
1783 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v);
1784 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue);
1785 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v);
1786 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue);
1787 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v);
1788 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue);
1789 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v);
1790 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue);
1791 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v);
1792 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue);
1793 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v);
1794 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue);
1795 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v);
1796 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer);
1797 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y);
1798 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVPROC) (const GLdouble *p);
1799 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y);
1800 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVPROC) (const GLfloat *p);
1801 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IPROC) (GLint x, GLint y);
1802 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVPROC) (const GLint *p);
1803 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y);
1804 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVPROC) (const GLshort *p);
1805 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z);
1806 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVPROC) (const GLdouble *p);
1807 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z);
1808 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVPROC) (const GLfloat *p);
1809 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z);
1810 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVPROC) (const GLint *p);
1811 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z);
1812 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVPROC) (const GLshort *p);
1814 #define glBlendColor GLEGetCurrentFunction(glBlendColor)
1815 #define glBlendEquation GLEGetCurrentFunction(glBlendEquation)
1816 #define glBlendFuncSeparate GLEGetCurrentFunction(glBlendFuncSeparate)
1817 #define glFogCoordPointer GLEGetCurrentFunction(glFogCoordPointer)
1818 #define glFogCoordd GLEGetCurrentFunction(glFogCoordd)
1819 #define glFogCoorddv GLEGetCurrentFunction(glFogCoorddv)
1820 #define glFogCoordf GLEGetCurrentFunction(glFogCoordf)
1821 #define glFogCoordfv GLEGetCurrentFunction(glFogCoordfv)
1822 #define glMultiDrawArrays GLEGetCurrentFunction(glMultiDrawArrays)
1823 #define glMultiDrawElements GLEGetCurrentFunction(glMultiDrawElements)
1824 #define glPointParameterf GLEGetCurrentFunction(glPointParameterf)
1825 #define glPointParameterfv GLEGetCurrentFunction(glPointParameterfv)
1826 #define glPointParameteri GLEGetCurrentFunction(glPointParameteri)
1827 #define glPointParameteriv GLEGetCurrentFunction(glPointParameteriv)
1828 #define glSecondaryColor3b GLEGetCurrentFunction(glSecondaryColor3b)
1829 #define glSecondaryColor3bv GLEGetCurrentFunction(glSecondaryColor3bv)
1830 #define glSecondaryColor3d GLEGetCurrentFunction(glSecondaryColor3d)
1831 #define glSecondaryColor3dv GLEGetCurrentFunction(glSecondaryColor3dv)
1832 #define glSecondaryColor3f GLEGetCurrentFunction(glSecondaryColor3f)
1833 #define glSecondaryColor3fv GLEGetCurrentFunction(glSecondaryColor3fv)
1834 #define glSecondaryColor3i GLEGetCurrentFunction(glSecondaryColor3i)
1835 #define glSecondaryColor3iv GLEGetCurrentFunction(glSecondaryColor3iv)
1836 #define glSecondaryColor3s GLEGetCurrentFunction(glSecondaryColor3s)
1837 #define glSecondaryColor3sv GLEGetCurrentFunction(glSecondaryColor3sv)
1838 #define glSecondaryColor3ub GLEGetCurrentFunction(glSecondaryColor3ub)
1839 #define glSecondaryColor3ubv GLEGetCurrentFunction(glSecondaryColor3ubv)
1840 #define glSecondaryColor3ui GLEGetCurrentFunction(glSecondaryColor3ui)
1841 #define glSecondaryColor3uiv GLEGetCurrentFunction(glSecondaryColor3uiv)
1842 #define glSecondaryColor3us GLEGetCurrentFunction(glSecondaryColor3us)
1843 #define glSecondaryColor3usv GLEGetCurrentFunction(glSecondaryColor3usv)
1844 #define glSecondaryColorPointer GLEGetCurrentFunction(glSecondaryColorPointer)
1845 #define glWindowPos2d GLEGetCurrentFunction(glWindowPos2d)
1846 #define glWindowPos2dv GLEGetCurrentFunction(glWindowPos2dv)
1847 #define glWindowPos2f GLEGetCurrentFunction(glWindowPos2f)
1848 #define glWindowPos2fv GLEGetCurrentFunction(glWindowPos2fv)
1849 #define glWindowPos2i GLEGetCurrentFunction(glWindowPos2i)
1850 #define glWindowPos2iv GLEGetCurrentFunction(glWindowPos2iv)
1851 #define glWindowPos2s GLEGetCurrentFunction(glWindowPos2s)
1852 #define glWindowPos2sv GLEGetCurrentFunction(glWindowPos2sv)
1853 #define glWindowPos3d GLEGetCurrentFunction(glWindowPos3d)
1854 #define glWindowPos3dv GLEGetCurrentFunction(glWindowPos3dv)
1855 #define glWindowPos3f GLEGetCurrentFunction(glWindowPos3f)
1856 #define glWindowPos3fv GLEGetCurrentFunction(glWindowPos3fv)
1857 #define glWindowPos3i GLEGetCurrentFunction(glWindowPos3i)
1858 #define glWindowPos3iv GLEGetCurrentFunction(glWindowPos3iv)
1859 #define glWindowPos3s GLEGetCurrentFunction(glWindowPos3s)
1860 #define glWindowPos3sv GLEGetCurrentFunction(glWindowPos3sv)
1862 #endif // GL_VERSION_1_4
1866 #ifndef GL_VERSION_1_5
1867 #define GL_VERSION_1_5 1
1869 #define GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE
1870 #define GL_FOG_COORD GL_FOG_COORDINATE
1871 #define GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY
1872 #define GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING
1873 #define GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER
1874 #define GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE
1875 #define GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE
1876 #define GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE
1877 #define GL_SRC0_ALPHA GL_SOURCE0_ALPHA
1878 #define GL_SRC0_RGB GL_SOURCE0_RGB
1879 #define GL_SRC1_ALPHA GL_SOURCE1_ALPHA
1880 #define GL_SRC1_RGB GL_SOURCE1_RGB
1881 #define GL_SRC2_ALPHA GL_SOURCE2_ALPHA
1882 #define GL_SRC2_RGB GL_SOURCE2_RGB
1883 #define GL_BUFFER_SIZE 0x8764
1884 #define GL_BUFFER_USAGE 0x8765
1885 #define GL_QUERY_COUNTER_BITS 0x8864
1886 #define GL_CURRENT_QUERY 0x8865
1887 #define GL_QUERY_RESULT 0x8866
1888 #define GL_QUERY_RESULT_AVAILABLE 0x8867
1889 #define GL_ARRAY_BUFFER 0x8892
1890 #define GL_ELEMENT_ARRAY_BUFFER 0x8893
1891 #define GL_ARRAY_BUFFER_BINDING 0x8894
1892 #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
1893 #define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896
1894 #define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897
1895 #define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898
1896 #define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899
1897 #define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A
1898 #define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B
1899 #define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C
1900 #define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D
1901 #define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E
1902 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
1903 #define GL_READ_ONLY 0x88B8
1904 #define GL_WRITE_ONLY 0x88B9
1905 #define GL_READ_WRITE 0x88BA
1906 #define GL_BUFFER_ACCESS 0x88BB
1907 #define GL_BUFFER_MAPPED 0x88BC
1908 #define GL_BUFFER_MAP_POINTER 0x88BD
1909 #define GL_STREAM_DRAW 0x88E0
1910 #define GL_STREAM_READ 0x88E1
1911 #define GL_STREAM_COPY 0x88E2
1912 #define GL_STATIC_DRAW 0x88E4
1913 #define GL_STATIC_READ 0x88E5
1914 #define GL_STATIC_COPY 0x88E6
1915 #define GL_DYNAMIC_DRAW 0x88E8
1916 #define GL_DYNAMIC_READ 0x88E9
1917 #define GL_DYNAMIC_COPY 0x88EA
1918 #define GL_SAMPLES_PASSED 0x8914
1920 typedef ptrdiff_t GLintptr;
1921 typedef ptrdiff_t GLsizeiptr;
1923 typedef void (GLAPIENTRY * PFNGLBEGINQUERYPROC) (GLenum target, GLuint id);
1924 typedef void (GLAPIENTRY * PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
1925 typedef void (GLAPIENTRY * PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void* data, GLenum usage);
1926 typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void* data);
1927 typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint* buffers);
1928 typedef void (GLAPIENTRY * PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint* ids);
1929 typedef void (GLAPIENTRY * PFNGLENDQUERYPROC) (GLenum target);
1930 typedef void (GLAPIENTRY * PFNGLGENBUFFERSPROC) (GLsizei n, GLuint* buffers);
1931 typedef void (GLAPIENTRY * PFNGLGENQUERIESPROC) (GLsizei n, GLuint* ids);
1932 typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params);
1933 typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void** params);
1934 typedef void (GLAPIENTRY * PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, void* data);
1935 typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint* params);
1936 typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint* params);
1937 typedef void (GLAPIENTRY * PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint* params);
1938 typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERPROC) (GLuint buffer);
1939 typedef GLboolean (GLAPIENTRY * PFNGLISQUERYPROC) (GLuint id);
1940 typedef void* (GLAPIENTRY * PFNGLMAPBUFFERPROC) (GLenum target, GLenum access);
1941 typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERPROC) (GLenum target);
1943 #define glBeginQuery GLEGetCurrentFunction(glBeginQuery)
1944 #define glBindBuffer GLEGetCurrentFunction(glBindBuffer)
1945 #define glBufferData GLEGetCurrentFunction(glBufferData)
1946 #define glBufferSubData GLEGetCurrentFunction(glBufferSubData)
1947 #define glDeleteBuffers GLEGetCurrentFunction(glDeleteBuffers)
1948 #define glDeleteQueries GLEGetCurrentFunction(glDeleteQueries)
1949 #define glEndQuery GLEGetCurrentFunction(glEndQuery)
1950 #define glGenBuffers GLEGetCurrentFunction(glGenBuffers)
1951 #define glGenQueries GLEGetCurrentFunction(glGenQueries)
1952 #define glGetBufferParameteriv GLEGetCurrentFunction(glGetBufferParameteriv)
1953 #define glGetBufferPointerv GLEGetCurrentFunction(glGetBufferPointerv)
1954 #define glGetBufferSubData GLEGetCurrentFunction(glGetBufferSubData)
1955 #define glGetQueryObjectiv GLEGetCurrentFunction(glGetQueryObjectiv)
1956 #define glGetQueryObjectuiv GLEGetCurrentFunction(glGetQueryObjectuiv)
1957 #define glGetQueryiv GLEGetCurrentFunction(glGetQueryiv)
1958 #define glIsBuffer GLEGetCurrentFunction(glIsBuffer)
1959 #define glIsQuery GLEGetCurrentFunction(glIsQuery)
1960 #define glMapBuffer GLEGetCurrentFunction(glMapBuffer)
1961 #define glUnmapBuffer GLEGetCurrentFunction(glUnmapBuffer)
1963 #endif // GL_VERSION_1_5
1968 #ifndef GL_VERSION_2_0
1969 #define GL_VERSION_2_0 1
1971 #define GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION
1972 #define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
1973 #define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
1974 #define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
1975 #define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
1976 #define GL_CURRENT_VERTEX_ATTRIB 0x8626
1977 #define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
1978 #define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643
1979 #define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
1980 #define GL_STENCIL_BACK_FUNC 0x8800
1981 #define GL_STENCIL_BACK_FAIL 0x8801
1982 #define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
1983 #define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
1984 #define GL_MAX_DRAW_BUFFERS 0x8824
1985 #define GL_DRAW_BUFFER0 0x8825
1986 #define GL_DRAW_BUFFER1 0x8826
1987 #define GL_DRAW_BUFFER2 0x8827
1988 #define GL_DRAW_BUFFER3 0x8828
1989 #define GL_DRAW_BUFFER4 0x8829
1990 #define GL_DRAW_BUFFER5 0x882A
1991 #define GL_DRAW_BUFFER6 0x882B
1992 #define GL_DRAW_BUFFER7 0x882C
1993 #define GL_DRAW_BUFFER8 0x882D
1994 #define GL_DRAW_BUFFER9 0x882E
1995 #define GL_DRAW_BUFFER10 0x882F
1996 #define GL_DRAW_BUFFER11 0x8830
1997 #define GL_DRAW_BUFFER12 0x8831
1998 #define GL_DRAW_BUFFER13 0x8832
1999 #define GL_DRAW_BUFFER14 0x8833
2000 #define GL_DRAW_BUFFER15 0x8834
2001 #define GL_BLEND_EQUATION_ALPHA 0x883D
2002 #define GL_POINT_SPRITE 0x8861
2003 #define GL_COORD_REPLACE 0x8862
2004 #define GL_MAX_VERTEX_ATTRIBS 0x8869
2005 #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
2006 #define GL_MAX_TEXTURE_COORDS 0x8871
2007 #define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
2008 #define GL_FRAGMENT_SHADER 0x8B30
2009 #define GL_VERTEX_SHADER 0x8B31
2010 #define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
2011 #define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
2012 #define GL_MAX_VARYING_FLOATS 0x8B4B
2013 #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
2014 #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
2015 #define GL_SHADER_TYPE 0x8B4F
2016 #define GL_FLOAT_VEC2 0x8B50
2017 #define GL_FLOAT_VEC3 0x8B51
2018 #define GL_FLOAT_VEC4 0x8B52
2019 #define GL_INT_VEC2 0x8B53
2020 #define GL_INT_VEC3 0x8B54
2021 #define GL_INT_VEC4 0x8B55
2022 #define GL_BOOL 0x8B56
2023 #define GL_BOOL_VEC2 0x8B57
2024 #define GL_BOOL_VEC3 0x8B58
2025 #define GL_BOOL_VEC4 0x8B59
2026 #define GL_FLOAT_MAT2 0x8B5A
2027 #define GL_FLOAT_MAT3 0x8B5B
2028 #define GL_FLOAT_MAT4 0x8B5C
2029 #define GL_SAMPLER_1D 0x8B5D
2030 #define GL_SAMPLER_2D 0x8B5E
2031 #define GL_SAMPLER_3D 0x8B5F
2032 #define GL_SAMPLER_CUBE 0x8B60
2033 #define GL_SAMPLER_1D_SHADOW 0x8B61
2034 #define GL_SAMPLER_2D_SHADOW 0x8B62
2035 #define GL_DELETE_STATUS 0x8B80
2036 #define GL_COMPILE_STATUS 0x8B81
2037 #define GL_LINK_STATUS 0x8B82
2038 #define GL_VALIDATE_STATUS 0x8B83
2039 #define GL_INFO_LOG_LENGTH 0x8B84
2040 #define GL_ATTACHED_SHADERS 0x8B85
2041 #define GL_ACTIVE_UNIFORMS 0x8B86
2042 #define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
2043 #define GL_SHADER_SOURCE_LENGTH 0x8B88
2044 #define GL_ACTIVE_ATTRIBUTES 0x8B89
2045 #define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
2046 #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
2047 #define GL_SHADING_LANGUAGE_VERSION 0x8B8C
2048 #define GL_CURRENT_PROGRAM 0x8B8D
2049 #define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0
2050 #define GL_LOWER_LEFT 0x8CA1
2051 #define GL_UPPER_LEFT 0x8CA2
2052 #define GL_STENCIL_BACK_REF 0x8CA3
2053 #define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
2054 #define GL_STENCIL_BACK_WRITEMASK 0x8CA5
2056 typedef void (GLAPIENTRY * PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
2057 typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar* name);
2058 typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
2059 typedef void (GLAPIENTRY * PFNGLCOMPILESHADERPROC) (GLuint shader);
2060 typedef GLuint (GLAPIENTRY * PFNGLCREATEPROGRAMPROC) (void);
2061 typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROC) (GLenum type);
2062 typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPROC) (GLuint program);
2063 typedef void (GLAPIENTRY * PFNGLDELETESHADERPROC) (GLuint shader);
2064 typedef void (GLAPIENTRY * PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
2065 typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
2066 typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum* bufs);
2067 typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
2068 typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
2069 typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
2070 typedef void (GLAPIENTRY * PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders);
2071 typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar* name);
2072 typedef void (GLAPIENTRY * PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
2073 typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint* param);
2074 typedef void (GLAPIENTRY * PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
2075 typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEPROC) (GLuint obj, GLsizei maxLength, GLsizei* length, GLchar* source);
2076 typedef void (GLAPIENTRY * PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint* param);
2077 typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar* name);
2078 typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat* params);
2079 typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint* params);
2080 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void** pointer);
2081 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble* params);
2082 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat* params);
2083 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint* params);
2084 typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPROC) (GLuint program);
2085 typedef GLboolean (GLAPIENTRY * PFNGLISSHADERPROC) (GLuint shader);
2086 typedef void (GLAPIENTRY * PFNGLLINKPROGRAMPROC) (GLuint program);
2087 typedef void (GLAPIENTRY * PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const* string, const GLint* length);
2088 typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
2089 typedef void (GLAPIENTRY * PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
2090 typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
2091 typedef void (GLAPIENTRY * PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
2092 typedef void (GLAPIENTRY * PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat* value);
2093 typedef void (GLAPIENTRY * PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
2094 typedef void (GLAPIENTRY * PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint* value);
2095 typedef void (GLAPIENTRY * PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
2096 typedef void (GLAPIENTRY * PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat* value);
2097 typedef void (GLAPIENTRY * PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
2098 typedef void (GLAPIENTRY * PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint* value);
2099 typedef void (GLAPIENTRY * PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
2100 typedef void (GLAPIENTRY * PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat* value);
2101 typedef void (GLAPIENTRY * PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
2102 typedef void (GLAPIENTRY * PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint* value);
2103 typedef void (GLAPIENTRY * PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
2104 typedef void (GLAPIENTRY * PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat* value);
2105 typedef void (GLAPIENTRY * PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
2106 typedef void (GLAPIENTRY * PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint* value);
2107 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
2108 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
2109 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
2110 typedef void (GLAPIENTRY * PFNGLUSEPROGRAMPROC) (GLuint program);
2111 typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPROC) (GLuint program);
2112 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x);
2113 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble* v);
2114 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
2115 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat* v);
2116 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x);
2117 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort* v);
2118 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y);
2119 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble* v);
2120 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
2121 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat* v);
2122 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y);
2123 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort* v);
2124 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
2125 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble* v);
2126 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
2127 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat* v);
2128 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
2129 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort* v);
2130 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte* v);
2131 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint* v);
2132 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort* v);
2133 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
2134 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte* v);
2135 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint* v);
2136 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort* v);
2137 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte* v);
2138 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
2139 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble* v);
2140 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
2141 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat* v);
2142 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint* v);
2143 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
2144 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort* v);
2145 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte* v);
2146 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint* v);
2147 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort* v);
2148 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer);
2150 #define glAttachShader GLEGetCurrentFunction(glAttachShader)
2151 #define glBindAttribLocation GLEGetCurrentFunction(glBindAttribLocation)
2152 #define glBlendEquationSeparate GLEGetCurrentFunction(glBlendEquationSeparate)
2153 #define glCompileShader GLEGetCurrentFunction(glCompileShader)
2154 #define glCreateProgram GLEGetCurrentFunction(glCreateProgram)
2155 #define glCreateShader GLEGetCurrentFunction(glCreateShader)
2156 #define glDeleteProgram GLEGetCurrentFunction(glDeleteProgram)
2157 #define glDeleteShader GLEGetCurrentFunction(glDeleteShader)
2158 #define glDetachShader GLEGetCurrentFunction(glDetachShader)
2159 #define glDisableVertexAttribArray GLEGetCurrentFunction(glDisableVertexAttribArray)
2160 #define glDrawBuffers GLEGetCurrentFunction(glDrawBuffers)
2161 #define glEnableVertexAttribArray GLEGetCurrentFunction(glEnableVertexAttribArray)
2162 #define glGetActiveAttrib GLEGetCurrentFunction(glGetActiveAttrib)
2163 #define glGetActiveUniform GLEGetCurrentFunction(glGetActiveUniform)
2164 #define glGetAttachedShaders GLEGetCurrentFunction(glGetAttachedShaders)
2165 #define glGetAttribLocation GLEGetCurrentFunction(glGetAttribLocation)
2166 #define glGetProgramInfoLog GLEGetCurrentFunction(glGetProgramInfoLog)
2167 #define glGetProgramiv GLEGetCurrentFunction(glGetProgramiv)
2168 #define glGetShaderInfoLog GLEGetCurrentFunction(glGetShaderInfoLog)
2169 #define glGetShaderSource GLEGetCurrentFunction(glGetShaderSource)
2170 #define glGetShaderiv GLEGetCurrentFunction(glGetShaderiv)
2171 #define glGetUniformLocation GLEGetCurrentFunction(glGetUniformLocation)
2172 #define glGetUniformfv GLEGetCurrentFunction(glGetUniformfv)
2173 #define glGetUniformiv GLEGetCurrentFunction(glGetUniformiv)
2174 #define glGetVertexAttribPointerv GLEGetCurrentFunction(glGetVertexAttribPointerv)
2175 #define glGetVertexAttribdv GLEGetCurrentFunction(glGetVertexAttribdv)
2176 #define glGetVertexAttribfv GLEGetCurrentFunction(glGetVertexAttribfv)
2177 #define glGetVertexAttribiv GLEGetCurrentFunction(glGetVertexAttribiv)
2178 #define glIsProgram GLEGetCurrentFunction(glIsProgram)
2179 #define glIsShader GLEGetCurrentFunction(glIsShader)
2180 #define glLinkProgram GLEGetCurrentFunction(glLinkProgram)
2181 #define glShaderSource GLEGetCurrentFunction(glShaderSource)
2182 #define glStencilFuncSeparate GLEGetCurrentFunction(glStencilFuncSeparate)
2183 #define glStencilMaskSeparate GLEGetCurrentFunction(glStencilMaskSeparate)
2184 #define glStencilOpSeparate GLEGetCurrentFunction(glStencilOpSeparate)
2185 #define glUniform1f GLEGetCurrentFunction(glUniform1f)
2186 #define glUniform1fv GLEGetCurrentFunction(glUniform1fv)
2187 #define glUniform1i GLEGetCurrentFunction(glUniform1i)
2188 #define glUniform1iv GLEGetCurrentFunction(glUniform1iv)
2189 #define glUniform2f GLEGetCurrentFunction(glUniform2f)
2190 #define glUniform2fv GLEGetCurrentFunction(glUniform2fv)
2191 #define glUniform2i GLEGetCurrentFunction(glUniform2i)
2192 #define glUniform2iv GLEGetCurrentFunction(glUniform2iv)
2193 #define glUniform3f GLEGetCurrentFunction(glUniform3f)
2194 #define glUniform3fv GLEGetCurrentFunction(glUniform3fv)
2195 #define glUniform3i GLEGetCurrentFunction(glUniform3i)
2196 #define glUniform3iv GLEGetCurrentFunction(glUniform3iv)
2197 #define glUniform4f GLEGetCurrentFunction(glUniform4f)
2198 #define glUniform4fv GLEGetCurrentFunction(glUniform4fv)
2199 #define glUniform4i GLEGetCurrentFunction(glUniform4i)
2200 #define glUniform4iv GLEGetCurrentFunction(glUniform4iv)
2201 #define glUniformMatrix2fv GLEGetCurrentFunction(glUniformMatrix2fv)
2202 #define glUniformMatrix3fv GLEGetCurrentFunction(glUniformMatrix3fv)
2203 #define glUniformMatrix4fv GLEGetCurrentFunction(glUniformMatrix4fv)
2204 #define glUseProgram GLEGetCurrentFunction(glUseProgram)
2205 #define glValidateProgram GLEGetCurrentFunction(glValidateProgram)
2206 #define glVertexAttrib1d GLEGetCurrentFunction(glVertexAttrib1d)
2207 #define glVertexAttrib1dv GLEGetCurrentFunction(glVertexAttrib1dv)
2208 #define glVertexAttrib1f GLEGetCurrentFunction(glVertexAttrib1f)
2209 #define glVertexAttrib1fv GLEGetCurrentFunction(glVertexAttrib1fv)
2210 #define glVertexAttrib1s GLEGetCurrentFunction(glVertexAttrib1s)
2211 #define glVertexAttrib1sv GLEGetCurrentFunction(glVertexAttrib1sv)
2212 #define glVertexAttrib2d GLEGetCurrentFunction(glVertexAttrib2d)
2213 #define glVertexAttrib2dv GLEGetCurrentFunction(glVertexAttrib2dv)
2214 #define glVertexAttrib2f GLEGetCurrentFunction(glVertexAttrib2f)
2215 #define glVertexAttrib2fv GLEGetCurrentFunction(glVertexAttrib2fv)
2216 #define glVertexAttrib2s GLEGetCurrentFunction(glVertexAttrib2s)
2217 #define glVertexAttrib2sv GLEGetCurrentFunction(glVertexAttrib2sv)
2218 #define glVertexAttrib3d GLEGetCurrentFunction(glVertexAttrib3d)
2219 #define glVertexAttrib3dv GLEGetCurrentFunction(glVertexAttrib3dv)
2220 #define glVertexAttrib3f GLEGetCurrentFunction(glVertexAttrib3f)
2221 #define glVertexAttrib3fv GLEGetCurrentFunction(glVertexAttrib3fv)
2222 #define glVertexAttrib3s GLEGetCurrentFunction(glVertexAttrib3s)
2223 #define glVertexAttrib3sv GLEGetCurrentFunction(glVertexAttrib3sv)
2224 #define glVertexAttrib4Nbv GLEGetCurrentFunction(glVertexAttrib4Nbv)
2225 #define glVertexAttrib4Niv GLEGetCurrentFunction(glVertexAttrib4Niv)
2226 #define glVertexAttrib4Nsv GLEGetCurrentFunction(glVertexAttrib4Nsv)
2227 #define glVertexAttrib4Nub GLEGetCurrentFunction(glVertexAttrib4Nub)
2228 #define glVertexAttrib4Nubv GLEGetCurrentFunction(glVertexAttrib4Nubv)
2229 #define glVertexAttrib4Nuiv GLEGetCurrentFunction(glVertexAttrib4Nuiv)
2230 #define glVertexAttrib4Nusv GLEGetCurrentFunction(glVertexAttrib4Nusv)
2231 #define glVertexAttrib4bv GLEGetCurrentFunction(glVertexAttrib4bv)
2232 #define glVertexAttrib4d GLEGetCurrentFunction(glVertexAttrib4d)
2233 #define glVertexAttrib4dv GLEGetCurrentFunction(glVertexAttrib4dv)
2234 #define glVertexAttrib4f GLEGetCurrentFunction(glVertexAttrib4f)
2235 #define glVertexAttrib4fv GLEGetCurrentFunction(glVertexAttrib4fv)
2236 #define glVertexAttrib4iv GLEGetCurrentFunction(glVertexAttrib4iv)
2237 #define glVertexAttrib4s GLEGetCurrentFunction(glVertexAttrib4s)
2238 #define glVertexAttrib4sv GLEGetCurrentFunction(glVertexAttrib4sv)
2239 #define glVertexAttrib4ubv GLEGetCurrentFunction(glVertexAttrib4ubv)
2240 #define glVertexAttrib4uiv GLEGetCurrentFunction(glVertexAttrib4uiv)
2241 #define glVertexAttrib4usv GLEGetCurrentFunction(glVertexAttrib4usv)
2242 #define glVertexAttribPointer GLEGetCurrentFunction(glVertexAttribPointer)
2244 #endif // GL_VERSION_2_0
2248 #ifndef GL_VERSION_2_1
2249 #define GL_VERSION_2_1 1
2251 #define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F
2252 #define GL_PIXEL_PACK_BUFFER 0x88EB
2253 #define GL_PIXEL_UNPACK_BUFFER 0x88EC
2254 #define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
2255 #define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
2256 #define GL_FLOAT_MAT2x3 0x8B65
2257 #define GL_FLOAT_MAT2x4 0x8B66
2258 #define GL_FLOAT_MAT3x2 0x8B67
2259 #define GL_FLOAT_MAT3x4 0x8B68
2260 #define GL_FLOAT_MAT4x2 0x8B69
2261 #define GL_FLOAT_MAT4x3 0x8B6A
2262 #define GL_SRGB 0x8C40
2263 #define GL_SRGB8 0x8C41
2264 #define GL_SRGB_ALPHA 0x8C42
2265 #define GL_SRGB8_ALPHA8 0x8C43
2266 #define GL_SLUMINANCE_ALPHA 0x8C44
2267 #define GL_SLUMINANCE8_ALPHA8 0x8C45
2268 #define GL_SLUMINANCE 0x8C46
2269 #define GL_SLUMINANCE8 0x8C47
2270 #define GL_COMPRESSED_SRGB 0x8C48
2271 #define GL_COMPRESSED_SRGB_ALPHA 0x8C49
2272 #define GL_COMPRESSED_SLUMINANCE 0x8C4A
2273 #define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B
2275 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2276 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2277 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2278 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2279 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2280 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2282 #define glUniformMatrix2x3fv GLEGetCurrentFunction(glUniformMatrix2x3fv)
2283 #define glUniformMatrix2x4fv GLEGetCurrentFunction(glUniformMatrix2x4fv)
2284 #define glUniformMatrix3x2fv GLEGetCurrentFunction(glUniformMatrix3x2fv)
2285 #define glUniformMatrix3x4fv GLEGetCurrentFunction(glUniformMatrix3x4fv)
2286 #define glUniformMatrix4x2fv GLEGetCurrentFunction(glUniformMatrix4x2fv)
2287 #define glUniformMatrix4x3fv GLEGetCurrentFunction(glUniformMatrix4x3fv)
2289 #endif // GL_VERSION_2_1
2294 #ifndef GL_VERSION_3_0
2295 #define GL_VERSION_3_0 1
2297 #define GL_CLIP_DISTANCE0 GL_CLIP_PLANE0
2298 #define GL_CLIP_DISTANCE1 GL_CLIP_PLANE1
2299 #define GL_CLIP_DISTANCE2 GL_CLIP_PLANE2
2300 #define GL_CLIP_DISTANCE3 GL_CLIP_PLANE3
2301 #define GL_CLIP_DISTANCE4 GL_CLIP_PLANE4
2302 #define GL_CLIP_DISTANCE5 GL_CLIP_PLANE5
2303 #define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_R_TO_TEXTURE_ARB
2304 #define GL_MAX_CLIP_DISTANCES GL_MAX_CLIP_PLANES
2305 #define GL_MAX_VARYING_COMPONENTS GL_MAX_VARYING_FLOATS
2306 #define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001
2307 #define GL_MAJOR_VERSION 0x821B
2308 #define GL_MINOR_VERSION 0x821C
2309 #define GL_NUM_EXTENSIONS 0x821D
2310 #define GL_CONTEXT_FLAGS 0x821E
2311 #define GL_DEPTH_BUFFER 0x8223
2312 #define GL_STENCIL_BUFFER 0x8224
2313 #define GL_RGBA32F 0x8814
2314 #define GL_RGB32F 0x8815
2315 #define GL_RGBA16F 0x881A
2316 #define GL_RGB16F 0x881B
2317 #define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
2318 #define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
2319 #define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
2320 #define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
2321 #define GL_CLAMP_VERTEX_COLOR 0x891A
2322 #define GL_CLAMP_FRAGMENT_COLOR 0x891B
2323 #define GL_CLAMP_READ_COLOR 0x891C
2324 #define GL_FIXED_ONLY 0x891D
2325 #define GL_TEXTURE_RED_TYPE 0x8C10
2326 #define GL_TEXTURE_GREEN_TYPE 0x8C11
2327 #define GL_TEXTURE_BLUE_TYPE 0x8C12
2328 #define GL_TEXTURE_ALPHA_TYPE 0x8C13
2329 #define GL_TEXTURE_LUMINANCE_TYPE 0x8C14
2330 #define GL_TEXTURE_INTENSITY_TYPE 0x8C15
2331 #define GL_TEXTURE_DEPTH_TYPE 0x8C16
2332 #define GL_TEXTURE_1D_ARRAY 0x8C18
2333 #define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19
2334 #define GL_TEXTURE_2D_ARRAY 0x8C1A
2335 #define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B
2336 #define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C
2337 #define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
2338 #define GL_R11F_G11F_B10F 0x8C3A
2339 #define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
2340 #define GL_RGB9_E5 0x8C3D
2341 #define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
2342 #define GL_TEXTURE_SHARED_SIZE 0x8C3F
2343 #define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
2344 #define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
2345 #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
2346 #define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
2347 #define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
2348 #define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
2349 #define GL_PRIMITIVES_GENERATED 0x8C87
2350 #define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
2351 #define GL_RASTERIZER_DISCARD 0x8C89
2352 #define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
2353 #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
2354 #define GL_INTERLEAVED_ATTRIBS 0x8C8C
2355 #define GL_SEPARATE_ATTRIBS 0x8C8D
2356 #define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
2357 #define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
2358 #define GL_RGBA32UI 0x8D70
2359 #define GL_RGB32UI 0x8D71
2360 #define GL_RGBA16UI 0x8D76
2361 #define GL_RGB16UI 0x8D77
2362 #define GL_RGBA8UI 0x8D7C
2363 #define GL_RGB8UI 0x8D7D
2364 #define GL_RGBA32I 0x8D82
2365 #define GL_RGB32I 0x8D83
2366 #define GL_RGBA16I 0x8D88
2367 #define GL_RGB16I 0x8D89
2368 #define GL_RGBA8I 0x8D8E
2369 #define GL_RGB8I 0x8D8F
2370 #define GL_RED_INTEGER 0x8D94
2371 #define GL_GREEN_INTEGER 0x8D95
2372 #define GL_BLUE_INTEGER 0x8D96
2373 #define GL_ALPHA_INTEGER 0x8D97
2374 #define GL_RGB_INTEGER 0x8D98
2375 #define GL_RGBA_INTEGER 0x8D99
2376 #define GL_BGR_INTEGER 0x8D9A
2377 #define GL_BGRA_INTEGER 0x8D9B
2378 #define GL_SAMPLER_1D_ARRAY 0x8DC0
2379 #define GL_SAMPLER_2D_ARRAY 0x8DC1
2380 #define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3
2381 #define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
2382 #define GL_SAMPLER_CUBE_SHADOW 0x8DC5
2383 #define GL_UNSIGNED_INT_VEC2 0x8DC6
2384 #define GL_UNSIGNED_INT_VEC3 0x8DC7
2385 #define GL_UNSIGNED_INT_VEC4 0x8DC8
2386 #define GL_INT_SAMPLER_1D 0x8DC9
2387 #define GL_INT_SAMPLER_2D 0x8DCA
2388 #define GL_INT_SAMPLER_3D 0x8DCB
2389 #define GL_INT_SAMPLER_CUBE 0x8DCC
2390 #define GL_INT_SAMPLER_1D_ARRAY 0x8DCE
2391 #define GL_INT_SAMPLER_2D_ARRAY 0x8DCF
2392 #define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1
2393 #define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
2394 #define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
2395 #define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
2396 #define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6
2397 #define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
2398 #define GL_QUERY_WAIT 0x8E13
2399 #define GL_QUERY_NO_WAIT 0x8E14
2400 #define GL_QUERY_BY_REGION_WAIT 0x8E15
2401 #define GL_QUERY_BY_REGION_NO_WAIT 0x8E16
2403 typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode);
2404 typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode);
2405 typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint colorNumber, const GLchar* name);
2406 typedef void (GLAPIENTRY * PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp);
2407 typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawBuffer, GLfloat depth, GLint stencil);
2408 typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawBuffer, const GLfloat* value);
2409 typedef void (GLAPIENTRY * PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawBuffer, const GLint* value);
2410 typedef void (GLAPIENTRY * PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawBuffer, const GLuint* value);
2411 typedef void (GLAPIENTRY * PFNGLCOLORMASKIPROC) (GLuint buf, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
2412 typedef void (GLAPIENTRY * PFNGLDISABLEIPROC) (GLenum cap, GLuint index);
2413 typedef void (GLAPIENTRY * PFNGLENABLEIPROC) (GLenum cap, GLuint index);
2414 typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERPROC) (void);
2415 typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKPROC) (void);
2416 typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
2417 typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer);
2418 typedef void (GLAPIENTRY * PFNGLGETBOOLEANI_VPROC) (GLenum pname, GLuint index, GLboolean* data);
2419 typedef void (GLAPIENTRY * PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint* data);
2420 typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar* name);
2421 typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGIPROC) (GLenum name, GLuint index);
2422 typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint* params);
2423 typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint* params);
2424 typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name);
2425 typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint* params);
2426 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint* params);
2427 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint* params);
2428 typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIPROC) (GLenum cap, GLuint index);
2429 typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint* params);
2430 typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint* params);
2431 typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode);
2432 typedef void (GLAPIENTRY * PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0);
2433 typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint* value);
2434 typedef void (GLAPIENTRY * PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1);
2435 typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint* value);
2436 typedef void (GLAPIENTRY * PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
2437 typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint* value);
2438 typedef void (GLAPIENTRY * PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
2439 typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint* value);
2440 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint v0);
2441 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint* v0);
2442 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint v0);
2443 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint* v0);
2444 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint v0, GLint v1);
2445 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint* v0);
2446 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint v0, GLuint v1);
2447 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint* v0);
2448 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint v0, GLint v1, GLint v2);
2449 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint* v0);
2450 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint v0, GLuint v1, GLuint v2);
2451 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint* v0);
2452 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte* v0);
2453 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint v0, GLint v1, GLint v2, GLint v3);
2454 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint* v0);
2455 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort* v0);
2456 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte* v0);
2457 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
2458 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint* v0);
2459 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort* v0);
2460 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void*pointer);
2462 #define glBeginConditionalRender GLEGetCurrentFunction(glBeginConditionalRender)
2463 #define glBeginTransformFeedback GLEGetCurrentFunction(glBeginTransformFeedback)
2464 #define glBindFragDataLocation GLEGetCurrentFunction(glBindFragDataLocation)
2465 #define glClampColor GLEGetCurrentFunction(glClampColor)
2466 #define glClearBufferfi GLEGetCurrentFunction(glClearBufferfi)
2467 #define glClearBufferfv GLEGetCurrentFunction(glClearBufferfv)
2468 #define glClearBufferiv GLEGetCurrentFunction(glClearBufferiv)
2469 #define glClearBufferuiv GLEGetCurrentFunction(glClearBufferuiv)
2470 #define glColorMaski GLEGetCurrentFunction(glColorMaski)
2471 #define glDisablei GLEGetCurrentFunction(glDisablei)
2472 #define glEnablei GLEGetCurrentFunction(glEnablei)
2473 #define glEndConditionalRender GLEGetCurrentFunction(glEndConditionalRender)
2474 #define glEndTransformFeedback GLEGetCurrentFunction(glEndTransformFeedback)
2475 #define glGetBooleani_v GLEGetCurrentFunction(glGetBooleani_v)
2476 #define glGetIntegeri_v GLEGetCurrentFunction(glGetIntegeri_v)
2477 #define glGetFragDataLocation GLEGetCurrentFunction(glGetFragDataLocation)
2478 #define glGetStringi GLEGetCurrentFunction(glGetStringi)
2479 #define glGetTexParameterIiv GLEGetCurrentFunction(glGetTexParameterIiv)
2480 #define glGetTexParameterIuiv GLEGetCurrentFunction(glGetTexParameterIuiv)
2481 #define glGetTransformFeedbackVarying GLEGetCurrentFunction(glGetTransformFeedbackVarying)
2482 #define glGetUniformuiv GLEGetCurrentFunction(glGetUniformuiv)
2483 #define glGetVertexAttribIiv GLEGetCurrentFunction(glGetVertexAttribIiv)
2484 #define glGetVertexAttribIuiv GLEGetCurrentFunction(glGetVertexAttribIuiv)
2485 #define glIsEnabledi GLEGetCurrentFunction(glIsEnabledi)
2486 #define glTexParameterIiv GLEGetCurrentFunction(glTexParameterIiv)
2487 #define glTexParameterIuiv GLEGetCurrentFunction(glTexParameterIuiv)
2488 #define glTransformFeedbackVaryings GLEGetCurrentFunction(glTransformFeedbackVaryings)
2489 #define glUniform1ui GLEGetCurrentFunction(glUniform1ui)
2490 #define glUniform1uiv GLEGetCurrentFunction(glUniform1uiv)
2491 #define glUniform2ui GLEGetCurrentFunction(glUniform2ui)
2492 #define glUniform2uiv GLEGetCurrentFunction(glUniform2uiv)
2493 #define glUniform3ui GLEGetCurrentFunction(glUniform3ui)
2494 #define glUniform3uiv GLEGetCurrentFunction(glUniform3uiv)
2495 #define glUniform4ui GLEGetCurrentFunction(glUniform4ui)
2496 #define glUniform4uiv GLEGetCurrentFunction(glUniform4uiv)
2497 #define glVertexAttribI1i GLEGetCurrentFunction(glVertexAttribI1i)
2498 #define glVertexAttribI1iv GLEGetCurrentFunction(glVertexAttribI1iv)
2499 #define glVertexAttribI1ui GLEGetCurrentFunction(glVertexAttribI1ui)
2500 #define glVertexAttribI1uiv GLEGetCurrentFunction(glVertexAttribI1uiv)
2501 #define glVertexAttribI2i GLEGetCurrentFunction(glVertexAttribI2i)
2502 #define glVertexAttribI2iv GLEGetCurrentFunction(glVertexAttribI2iv)
2503 #define glVertexAttribI2ui GLEGetCurrentFunction(glVertexAttribI2ui)
2504 #define glVertexAttribI2uiv GLEGetCurrentFunction(glVertexAttribI2uiv)
2505 #define glVertexAttribI3i GLEGetCurrentFunction(glVertexAttribI3i)
2506 #define glVertexAttribI3iv GLEGetCurrentFunction(glVertexAttribI3iv)
2507 #define glVertexAttribI3ui GLEGetCurrentFunction(glVertexAttribI3ui)
2508 #define glVertexAttribI3uiv GLEGetCurrentFunction(glVertexAttribI3uiv)
2509 #define glVertexAttribI4bv GLEGetCurrentFunction(glVertexAttribI4bv)
2510 #define glVertexAttribI4i GLEGetCurrentFunction(glVertexAttribI4i)
2511 #define glVertexAttribI4iv GLEGetCurrentFunction(glVertexAttribI4iv)
2512 #define glVertexAttribI4sv GLEGetCurrentFunction(glVertexAttribI4sv)
2513 #define glVertexAttribI4ubv GLEGetCurrentFunction(glVertexAttribI4ubv)
2514 #define glVertexAttribI4ui GLEGetCurrentFunction(glVertexAttribI4ui)
2515 #define glVertexAttribI4uiv GLEGetCurrentFunction(glVertexAttribI4uiv)
2516 #define glVertexAttribI4usv GLEGetCurrentFunction(glVertexAttribI4usv)
2517 #define glVertexAttribIPointer GLEGetCurrentFunction(glVertexAttribIPointer)
2519 #endif // GL_VERSION_3_0
2524 #ifndef GL_VERSION_3_1
2525 #define GL_VERSION_3_1 1
2527 #define GL_TEXTURE_RECTANGLE 0x84F5
2528 #define GL_TEXTURE_BINDING_RECTANGLE 0x84F6
2529 #define GL_PROXY_TEXTURE_RECTANGLE 0x84F7
2530 #define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8
2531 #define GL_SAMPLER_2D_RECT 0x8B63
2532 #define GL_SAMPLER_2D_RECT_SHADOW 0x8B64
2533 #define GL_TEXTURE_BUFFER 0x8C2A
2534 #define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B
2535 #define GL_TEXTURE_BINDING_BUFFER 0x8C2C
2536 #define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D
2537 #define GL_TEXTURE_BUFFER_FORMAT 0x8C2E
2538 #define GL_SAMPLER_BUFFER 0x8DC2
2539 #define GL_INT_SAMPLER_2D_RECT 0x8DCD
2540 #define GL_INT_SAMPLER_BUFFER 0x8DD0
2541 #define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5
2542 #define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8
2543 #define GL_RED_SNORM 0x8F90
2544 #define GL_RG_SNORM 0x8F91
2545 #define GL_RGB_SNORM 0x8F92
2546 #define GL_RGBA_SNORM 0x8F93
2547 #define GL_R8_SNORM 0x8F94
2548 #define GL_RG8_SNORM 0x8F95
2549 #define GL_RGB8_SNORM 0x8F96
2550 #define GL_RGBA8_SNORM 0x8F97
2551 #define GL_R16_SNORM 0x8F98
2552 #define GL_RG16_SNORM 0x8F99
2553 #define GL_RGB16_SNORM 0x8F9A
2554 #define GL_RGBA16_SNORM 0x8F9B
2555 #define GL_SIGNED_NORMALIZED 0x8F9C
2556 #define GL_PRIMITIVE_RESTART 0x8F9D
2557 #define GL_PRIMITIVE_RESTART_INDEX 0x8F9E
2558 #define GL_BUFFER_ACCESS_FLAGS 0x911F
2559 #define GL_BUFFER_MAP_LENGTH 0x9120
2560 #define GL_BUFFER_MAP_OFFSET 0x9121
2562 typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
2563 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount);
2564 typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint buffer);
2565 typedef void (GLAPIENTRY * PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalFormat, GLuint buffer);
2567 #define glDrawArraysInstanced GLEGetCurrentFunction(glDrawArraysInstanced)
2568 #define glDrawElementsInstanced GLEGetCurrentFunction(glDrawElementsInstanced)
2569 #define glPrimitiveRestartIndex GLEGetCurrentFunction(glPrimitiveRestartIndex)
2570 #define glTexBuffer GLEGetCurrentFunction(glTexBuffer)
2572 #endif // GL_VERSION_3_1
2576 #ifndef GL_VERSION_3_2
2577 #define GL_VERSION_3_2 1
2579 #define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001
2580 #define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
2581 #define GL_LINES_ADJACENCY 0x000A
2582 #define GL_LINE_STRIP_ADJACENCY 0x000B
2583 #define GL_TRIANGLES_ADJACENCY 0x000C
2584 #define GL_TRIANGLE_STRIP_ADJACENCY 0x000D
2585 #define GL_PROGRAM_POINT_SIZE 0x8642
2586 #define GL_GEOMETRY_VERTICES_OUT 0x8916
2587 #define GL_GEOMETRY_INPUT_TYPE 0x8917
2588 #define GL_GEOMETRY_OUTPUT_TYPE 0x8918
2589 #define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29
2590 #define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7
2591 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8
2592 #define GL_GEOMETRY_SHADER 0x8DD9
2593 #define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF
2594 #define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0
2595 #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1
2596 #define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
2597 #define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123
2598 #define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124
2599 #define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
2600 #define GL_CONTEXT_PROFILE_MASK 0x9126
2602 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
2603 typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum value, GLint64 * data);
2604 typedef void (GLAPIENTRY * PFNGLGETINTEGER64I_VPROC) (GLenum pname, GLuint index, GLint64 * data);
2606 #define glFramebufferTexture GLEGetCurrentFunction(glFramebufferTexture)
2607 #define glGetBufferParameteri64v GLEGetCurrentFunction(glGetBufferParameteri64v)
2608 #define glGetInteger64i_v GLEGetCurrentFunction(glGetInteger64i_v)
2610 #endif // GL_VERSION_3_2
2614 #ifndef GL_VERSION_3_3
2615 #define GL_VERSION_3_3 1
2617 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
2618 #define GL_RGB10_A2UI 0x906F
2620 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor);
2622 #define glVertexAttribDivisor GLEGetCurrentFunction(glVertexAttribDivisor)
2623 #endif
2627 #ifndef GL_VERSION_4_0
2628 #define GL_VERSION_4_0 1
2630 #define GL_SAMPLE_SHADING 0x8C36
2631 #define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37
2632 #define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E
2633 #define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F
2634 #define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS 0x8F9F
2635 #define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009
2636 #define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A
2637 #define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B
2638 #define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C
2639 #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D
2640 #define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E
2641 #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F
2643 typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
2644 typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode);
2645 typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
2646 typedef void (GLAPIENTRY * PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst);
2647 typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGPROC) (GLclampf value);
2649 #define glBlendEquationSeparatei GLEGetCurrentFunction(glBlendEquationSeparatei)
2650 #define glBlendEquationi GLEGetCurrentFunction(glBlendEquationi)
2651 #define glBlendFuncSeparatei GLEGetCurrentFunction(glBlendFuncSeparatei)
2652 #define glBlendFunci GLEGetCurrentFunction(glBlendFunci)
2653 #define glMinSampleShading GLEGetCurrentFunction(glMinSampleShading)
2655 #endif // GL_VERSION_4_0
2660 #ifndef GL_VERSION_4_1
2661 #define GL_VERSION_4_1 1
2662 // Empty
2663 #endif
2667 #ifndef GL_VERSION_4_2
2668 #define GL_VERSION_4_2 1
2670 #define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C
2671 #define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D
2672 #define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E
2673 #define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F
2674 #endif
2678 #ifndef GL_VERSION_4_3
2679 #define GL_VERSION_4_3 1
2681 #define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9
2682 #define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E
2683 #endif
2687 #ifndef GL_VERSION_4_4
2688 #define GL_VERSION_4_4 1
2690 #define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221
2691 #define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5
2692 #define GL_TEXTURE_BUFFER_BINDING 0x8C2A
2693 #endif
2697 #ifndef GL_VERSION_4_5
2698 #define GL_VERSION_4_5 1
2699 // Empty
2700 #endif
2704 #ifndef GL_AMD_debug_output
2705 #define GL_AMD_debug_output 1
2707 #define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143
2708 #define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144
2709 #define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145
2710 #define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146
2711 #define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147
2712 #define GL_DEBUG_SEVERITY_LOW_AMD 0x9148
2713 #define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149
2714 #define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A
2715 #define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B
2716 #define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C
2717 #define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D
2718 #define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E
2719 #define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F
2720 #define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150
2722 typedef void (GLAPIENTRY *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, void* userParam);
2724 typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void *userParam);
2725 typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
2726 typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar* buf);
2727 typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufsize, GLenum* categories, GLuint* severities, GLuint* ids, GLsizei* lengths, GLchar* message);
2729 #define glDebugMessageCallbackAMD GLEGetCurrentFunction(glDebugMessageCallbackAMD)
2730 #define glDebugMessageEnableAMD GLEGetCurrentFunction(glDebugMessageEnableAMD)
2731 #define glDebugMessageInsertAMD GLEGetCurrentFunction(glDebugMessageInsertAMD)
2732 #define glGetDebugMessageLogAMD GLEGetCurrentFunction(glGetDebugMessageLogAMD)
2734 #define GLE_AMD_debug_output GLEGetCurrentVariable(gle_AMD_debug_output)
2736 #endif // GL_AMD_debug_output
2740 /* Disabled until needed
2741 #ifndef GL_AMD_performance_monitor
2742 #define GL_AMD_performance_monitor 1
2744 #define GL_COUNTER_TYPE_AMD 0x8BC0
2745 #define GL_COUNTER_RANGE_AMD 0x8BC1
2746 #define GL_UNSIGNED_INT64_AMD 0x8BC2
2747 #define GL_PERCENTAGE_AMD 0x8BC3
2748 #define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4
2749 #define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5
2750 #define GL_PERFMON_RESULT_AMD 0x8BC6
2752 typedef void (GLAPIENTRY * PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
2753 typedef void (GLAPIENTRY * PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors);
2754 typedef void (GLAPIENTRY * PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
2755 typedef void (GLAPIENTRY * PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors);
2756 typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint *bytesWritten);
2757 typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data);
2758 typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar *counterString);
2759 typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint* numCounters, GLint *maxActiveCounters, GLsizei countersSize, GLuint *counters);
2760 typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei* length, GLchar *groupString);
2761 typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint* numGroups, GLsizei groupsSize, GLuint *groups);
2762 typedef void (GLAPIENTRY * PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* counterList);
2764 #define glBeginPerfMonitorAMD GLEGetCurrentFunction(glBeginPerfMonitorAMD)
2765 #define glDeletePerfMonitorsAMD GLEGetCurrentFunction(glDeletePerfMonitorsAMD)
2766 #define glEndPerfMonitorAMD GLEGetCurrentFunction(glEndPerfMonitorAMD)
2767 #define glGenPerfMonitorsAMD GLEGetCurrentFunction(glGenPerfMonitorsAMD)
2768 #define glGetPerfMonitorCounterDataAMD GLEGetCurrentFunction(glGetPerfMonitorCounterDataAMD)
2769 #define glGetPerfMonitorCounterInfoAMD GLEGetCurrentFunction(glGetPerfMonitorCounterInfoAMD)
2770 #define glGetPerfMonitorCounterStringAMD GLEGetCurrentFunction(glGetPerfMonitorCounterStringAMD)
2771 #define glGetPerfMonitorCountersAMD GLEGetCurrentFunction(glGetPerfMonitorCountersAMD)
2772 #define glGetPerfMonitorGroupStringAMD GLEGetCurrentFunction(glGetPerfMonitorGroupStringAMD)
2773 #define glGetPerfMonitorGroupsAMD GLEGetCurrentFunction(glGetPerfMonitorGroupsAMD)
2774 #define glSelectPerfMonitorCountersAMD GLEGetCurrentFunction(glSelectPerfMonitorCountersAMD)
2776 #define GLE_AMD_performance_monitor GLEGetCurrentVariable(gle_AMD_performance_monitor)
2778 #endif // GL_AMD_performance_monitor
2779 */
2782 #if defined(GLE_CGL_ENABLED)
2783 #ifndef GL_APPLE_aux_depth_stencil
2784 #define GL_APPLE_aux_depth_stencil 1
2786 #define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14g
2788 #define GLE_APPLE_aux_depth_stencil GLEGetCurrentVariable(gle_APPLE_aux_depth_stencil)
2789 #endif
2793 #ifndef GL_APPLE_client_storage
2794 #define GL_APPLE_client_storage 1
2796 #define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2
2798 #define GLE_APPLE_client_storage GLEGetCurrentVariable(gle_APPLE_client_storage)
2799 #endif
2803 #ifndef GL_APPLE_element_array
2804 #define GL_APPLE_element_array 1
2806 #define GL_ELEMENT_ARRAY_APPLE 0x8A0C
2807 #define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D
2808 #define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E
2810 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count);
2811 typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
2812 typedef void (GLAPIENTRY * PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const void *pointer);
2813 typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount);
2814 typedef void (GLAPIENTRY * PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint* first, const GLsizei *count, GLsizei primcount);
2816 #define glDrawElementArrayAPPLE GLEGetCurrentFunction(glDrawElementArrayAPPLE)
2817 #define glDrawRangeElementArrayAPPLE GLEGetCurrentFunction(glDrawRangeElementArrayAPPLE)
2818 #define glElementPointerAPPLE GLEGetCurrentFunction(glElementPointerAPPLE)
2819 #define glMultiDrawElementArrayAPPLE GLEGetCurrentFunction(glMultiDrawElementArrayAPPLE)
2820 #define glMultiDrawRangeElementArrayAPPLE GLEGetCurrentFunction(glMultiDrawRangeElementArrayAPPLE)
2822 #define GLE_APPLE_element_array GLEGetCurrentVariable(gle_APPLE_element_array)
2823 #endif
2827 #ifndef GL_APPLE_fence
2828 #define GL_APPLE_fence 1
2830 #define GL_DRAW_PIXELS_APPLE 0x8A0A
2831 #define GL_FENCE_APPLE 0x8A0B
2833 typedef void (GLAPIENTRY * PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint* fences);
2834 typedef void (GLAPIENTRY * PFNGLFINISHFENCEAPPLEPROC) (GLuint fence);
2835 typedef void (GLAPIENTRY * PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name);
2836 typedef void (GLAPIENTRY * PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint* fences);
2837 typedef GLboolean (GLAPIENTRY * PFNGLISFENCEAPPLEPROC) (GLuint fence);
2838 typedef void (GLAPIENTRY * PFNGLSETFENCEAPPLEPROC) (GLuint fence);
2839 typedef GLboolean (GLAPIENTRY * PFNGLTESTFENCEAPPLEPROC) (GLuint fence);
2840 typedef GLboolean (GLAPIENTRY * PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name);
2842 #define glDeleteFencesAPPLE GLEGetCurrentFunction(glDeleteFencesAPPLE)
2843 #define glFinishFenceAPPLE GLEGetCurrentFunction(glFinishFenceAPPLE)
2844 #define glFinishObjectAPPLE GLEGetCurrentFunction(glFinishObjectAPPLE)
2845 #define glGenFencesAPPLE GLEGetCurrentFunction(glGenFencesAPPLE)
2846 #define glIsFenceAPPLE GLEGetCurrentFunction(glIsFenceAPPLE)
2847 #define glSetFenceAPPLE GLEGetCurrentFunction(glSetFenceAPPLE)
2848 #define glTestFenceAPPLE GLEGetCurrentFunction(glTestFenceAPPLE)
2849 #define glTestObjectAPPLE GLEGetCurrentFunction(glTestObjectAPPLE)
2851 #define GLE_APPLE_fence GLEGetCurrentVariable(gle_APPLE_fence)
2853 #endif
2857 #ifndef GL_APPLE_float_pixels
2858 #define GL_APPLE_float_pixels 1
2860 #define GL_HALF_APPLE 0x140B
2861 #define GL_RGBA_FLOAT32_APPLE 0x8814
2862 #define GL_RGB_FLOAT32_APPLE 0x8815
2863 #define GL_ALPHA_FLOAT32_APPLE 0x8816
2864 #define GL_INTENSITY_FLOAT32_APPLE 0x8817
2865 #define GL_LUMINANCE_FLOAT32_APPLE 0x8818
2866 #define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
2867 #define GL_RGBA_FLOAT16_APPLE 0x881A
2868 #define GL_RGB_FLOAT16_APPLE 0x881B
2869 #define GL_ALPHA_FLOAT16_APPLE 0x881C
2870 #define GL_INTENSITY_FLOAT16_APPLE 0x881D
2871 #define GL_LUMINANCE_FLOAT16_APPLE 0x881E
2872 #define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F
2873 #define GL_COLOR_FLOAT_APPLE 0x8A0F
2875 #define GLE_APPLE_float_pixels GLEGetCurrentVariable(gle_APPLE_float_pixels)
2876 #endif
2880 #ifndef GL_APPLE_flush_buffer_range
2881 #define GL_APPLE_flush_buffer_range 1
2883 #define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12
2884 #define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13
2886 typedef void (GLAPIENTRY * PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param);
2887 typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size);
2889 #define glBufferParameteriAPPLE GLEGetCurrentFunction(glBufferParameteriAPPLE)
2890 #define glFlushMappedBufferRangeAPPLE GLEGetCurrentFunction(glFlushMappedBufferRangeAPPLE)
2892 #define GLE_APPLE_flush_buffer_range GLEGetCurrentVariable(gle_APPLE_flush_buffer_range)
2893 #endif
2897 #ifndef GL_APPLE_object_purgeable
2898 #define GL_APPLE_object_purgeable 1
2900 #define GL_BUFFER_OBJECT_APPLE 0x85B3
2901 #define GL_RELEASED_APPLE 0x8A19
2902 #define GL_VOLATILE_APPLE 0x8A1A
2903 #define GL_RETAINED_APPLE 0x8A1B
2904 #define GL_UNDEFINED_APPLE 0x8A1C
2905 #define GL_PURGEABLE_APPLE 0x8A1D
2907 typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint* params);
2908 typedef GLenum (GLAPIENTRY * PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option);
2909 typedef GLenum (GLAPIENTRY * PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option);
2911 #define glGetObjectParameterivAPPLE GLEGetCurrentFunction(glGetObjectParameterivAPPLE)
2912 #define glObjectPurgeableAPPLE GLEGetCurrentFunction(glObjectPurgeableAPPLE)
2913 #define glObjectUnpurgeableAPPLE GLEGetCurrentFunction(glObjectUnpurgeableAPPLE)
2915 #define GLE_APPLE_object_purgeable GLEGetCurrentVariable(gle_APPLE_object_purgeable)
2916 #endif
2920 #ifndef GL_APPLE_pixel_buffer
2921 #define GL_APPLE_pixel_buffer 1
2923 #define GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10
2925 #define GLE_APPLE_pixel_buffer GLEGetCurrentVariable(gle_APPLE_pixel_buffer)
2926 #endif
2930 #ifndef GL_APPLE_rgb_422
2931 #define GL_APPLE_rgb_422 1
2933 #define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
2934 #define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
2935 #define GL_RGB_422_APPLE 0x8A1F
2936 #define GL_RGB_RAW_422_APPLE 0x8A51
2938 #define GLE_APPLE_rgb_422 GLEGetCurrentVariable(gle_APPLE_rgb_422)
2939 #endif
2943 #ifndef GL_APPLE_row_bytes
2944 #define GL_APPLE_row_bytes 1
2946 #define GL_PACK_ROW_BYTES_APPLE 0x8A15
2947 #define GL_UNPACK_ROW_BYTES_APPLE 0x8A16
2949 #define GLE_APPLE_row_bytes GLEGetCurrentVariable(gle_APPLE_row_bytes)
2950 #endif
2954 #ifndef GL_APPLE_specular_vector
2955 #define GL_APPLE_specular_vector 1
2957 #define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0
2959 #define GLE_APPLE_specular_vector GLEGetCurrentVariable(gle_APPLE_specular_vector)
2960 #endif
2964 #ifndef GL_APPLE_texture_range
2965 #define GL_APPLE_texture_range 1
2967 #define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7
2968 #define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8
2969 #define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC
2970 #define GL_STORAGE_PRIVATE_APPLE 0x85BD
2971 #define GL_STORAGE_CACHED_APPLE 0x85BE
2972 #define GL_STORAGE_SHARED_APPLE 0x85BF
2974 typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, void **params);
2975 typedef void (GLAPIENTRY * PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const void *pointer);
2977 #define glGetTexParameterPointervAPPLE GLEGetCurrentFunction(glGetTexParameterPointervAPPLE)
2978 #define glTextureRangeAPPLE GLEGetCurrentFunction(glTextureRangeAPPLE)
2980 #define GLE_APPLE_texture_range GLEGetCurrentVariable(gle_APPLE_texture_range)
2981 #endif
2984 #ifndef GL_APPLE_transform_hint
2985 #define GL_APPLE_transform_hint 1
2987 #define GL_TRANSFORM_HINT_APPLE 0x85B1
2989 #define GLE_APPLE_transform_hint GLEGetCurrentVariable(gle_APPLE_transform_hint)
2990 #endif
2994 #ifndef GL_APPLE_vertex_array_object
2995 #define GL_APPLE_vertex_array_object 1
2997 // This has been superceded by GL_ARB_vertex_array_object, though if you are using Apple
2998 // OpenGL prior to 3.x then only this interface will be available. However, we have made
2999 // it so that glBindVertexArray maps to glBindVertexArrayApple when only the latter is present,
3000 // thus allowing you to write cleaner code. You can always just call glBindVertexArray instead
3001 // of glBindVertexArrayAPPLE, etc.
3002 #define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5
3004 typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array);
3005 typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays);
3006 typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays); // It's not clear whether arrays needs to be const or not.
3007 typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array);
3009 #define glBindVertexArrayAPPLE GLEGetCurrentFunction(glBindVertexArrayAPPLE)
3010 #define glDeleteVertexArraysAPPLE GLEGetCurrentFunction(glDeleteVertexArraysAPPLE)
3011 #define glGenVertexArraysAPPLE GLEGetCurrentFunction(glGenVertexArraysAPPLE)
3012 #define glIsVertexArrayAPPLE GLEGetCurrentFunction(glIsVertexArrayAPPLE)
3014 #define GLE_APPLE_vertex_array_object GLEGetCurrentVariable(gle_APPLE_vertex_array_object)
3015 #endif
3019 #ifndef GL_APPLE_vertex_array_range
3020 #define GL_APPLE_vertex_array_range 1
3022 #define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D
3023 #define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E
3024 #define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F
3025 #define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE 0x8520
3026 #define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521
3027 #define GL_STORAGE_CLIENT_APPLE 0x85B4
3028 #define GL_STORAGE_CACHED_APPLE 0x85BE
3029 #define GL_STORAGE_SHARED_APPLE 0x85BF
3031 typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer);
3032 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param);
3033 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer);
3035 #define glFlushVertexArrayRangeAPPLE GLEGetCurrentFunction(glFlushVertexArrayRangeAPPLE)
3036 #define glVertexArrayParameteriAPPLE GLEGetCurrentFunction(glVertexArrayParameteriAPPLE)
3037 #define glVertexArrayRangeAPPLE GLEGetCurrentFunction(glVertexArrayRangeAPPLE)
3039 #define GLE_APPLE_vertex_array_range GLEGetCurrentVariable(gle_APPLE_vertex_array_range)
3040 #endif
3044 #ifndef GL_APPLE_vertex_program_evaluators
3045 #define GL_APPLE_vertex_program_evaluators 1
3047 #define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00
3048 #define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01
3049 #define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02
3050 #define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03
3051 #define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04
3052 #define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05
3053 #define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06
3054 #define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07
3055 #define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08
3056 #define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09
3058 typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname);
3059 typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname);
3060 typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname);
3061 typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
3062 typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
3063 typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
3064 typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
3066 #define glDisableVertexAttribAPPLE GLEGetCurrentFunction(glDisableVertexAttribAPPLE)
3067 #define glEnableVertexAttribAPPLE GLEGetCurrentFunction(glEnableVertexAttribAPPLE)
3068 #define glIsVertexAttribEnabledAPPLE GLEGetCurrentFunction(glIsVertexAttribEnabledAPPLE)
3069 #define glMapVertexAttrib1dAPPLE GLEGetCurrentFunction(glMapVertexAttrib1dAPPLE)
3070 #define glMapVertexAttrib1fAPPLE GLEGetCurrentFunction(glMapVertexAttrib1fAPPLE)
3071 #define glMapVertexAttrib2dAPPLE GLEGetCurrentFunction(glMapVertexAttrib2dAPPLE)
3072 #define glMapVertexAttrib2fAPPLE GLEGetCurrentFunction(glMapVertexAttrib2fAPPLE)
3074 #define GLE_APPLE_vertex_program_evaluators GLEGetCurrentVariable(gle_APPLE_vertex_program_evaluators)
3075 #endif
3077 #endif // GLE_CGL_ENABLED
3080 #ifndef GL_ARB_debug_output
3081 #define GL_ARB_debug_output 1
3083 #define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242
3084 #define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243
3085 #define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244
3086 #define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245
3087 #define GL_DEBUG_SOURCE_API_ARB 0x8246
3088 #define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247
3089 #define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248
3090 #define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249
3091 #define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A
3092 #define GL_DEBUG_SOURCE_OTHER_ARB 0x824B
3093 #define GL_DEBUG_TYPE_ERROR_ARB 0x824C
3094 #define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D
3095 #define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E
3096 #define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F
3097 #define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250
3098 #define GL_DEBUG_TYPE_OTHER_ARB 0x8251
3099 #define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143
3100 #define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144
3101 #define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145
3102 #define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146
3103 #define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147
3104 #define GL_DEBUG_SEVERITY_LOW_ARB 0x9148
3106 typedef void (GLAPIENTRY *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam);
3108 typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const void *userParam);
3109 typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
3110 typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf);
3111 typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog);
3113 #define glDebugMessageCallbackARB GLEGetCurrentFunction(glDebugMessageCallbackARB)
3114 #define glDebugMessageControlARB GLEGetCurrentFunction(glDebugMessageControlARB)
3115 #define glDebugMessageInsertARB GLEGetCurrentFunction(glDebugMessageInsertARB)
3116 #define glGetDebugMessageLogARB GLEGetCurrentFunction(glGetDebugMessageLogARB)
3118 #define GLE_ARB_debug_output GLEGetCurrentVariable(gle_ARB_debug_output)
3120 #endif // GL_ARB_debug_output
3124 #ifndef GL_ARB_depth_buffer_float
3125 #define GL_ARB_depth_buffer_float 1
3127 // Supercededs GL_NV_depth_buffer_float
3128 #define GL_DEPTH_COMPONENT32F 0x8CAC
3129 #define GL_DEPTH32F_STENCIL8 0x8CAD
3130 #define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
3132 #define GLE_ARB_depth_buffer_float GLEGetCurrentVariable(gle_ARB_depth_buffer_float)
3133 #endif
3136 /* Disabled until needed
3137 #ifndef GL_ARB_direct_state_access
3138 #define GL_ARB_direct_state_access 1
3140 #define GL_TEXTURE_TARGET 0x1006
3141 #define GL_QUERY_TARGET 0x82EA
3142 #define GL_TEXTURE_BINDING 0x82EB
3144 typedef void (GLAPIENTRY * PFNGLBINDTEXTUREUNITPROC) (GLuint unit, GLuint texture);
3145 typedef void (GLAPIENTRY * PFNGLBLITNAMEDFRAMEBUFFERPROC) (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
3146 typedef GLenum (GLAPIENTRY * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) (GLuint framebuffer, GLenum target);
3147 typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERDATAPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
3148 typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
3149 typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, GLfloat depth, GLint stencil);
3150 typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat* value);
3151 typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint* value);
3152 typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint* value);
3153 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
3154 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
3155 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
3156 typedef void (GLAPIENTRY * PFNGLCOPYNAMEDBUFFERSUBDATAPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
3157 typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
3158 typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
3159 typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
3160 typedef void (GLAPIENTRY * PFNGLCREATEBUFFERSPROC) (GLsizei n, GLuint* buffers);
3161 typedef void (GLAPIENTRY * PFNGLCREATEFRAMEBUFFERSPROC) (GLsizei n, GLuint* framebuffers);
3162 typedef void (GLAPIENTRY * PFNGLCREATEPROGRAMPIPELINESPROC) (GLsizei n, GLuint* pipelines);
3163 typedef void (GLAPIENTRY * PFNGLCREATEQUERIESPROC) (GLenum target, GLsizei n, GLuint* ids);
3164 typedef void (GLAPIENTRY * PFNGLCREATERENDERBUFFERSPROC) (GLsizei n, GLuint* renderbuffers);
3165 typedef void (GLAPIENTRY * PFNGLCREATESAMPLERSPROC) (GLsizei n, GLuint* samplers);
3166 typedef void (GLAPIENTRY * PFNGLCREATETEXTURESPROC) (GLenum target, GLsizei n, GLuint* textures);
3167 typedef void (GLAPIENTRY * PFNGLCREATETRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint* ids);
3168 typedef void (GLAPIENTRY * PFNGLCREATEVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays);
3169 typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index);
3170 typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index);
3171 typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length);
3172 typedef void (GLAPIENTRY * PFNGLGENERATETEXTUREMIPMAPPROC) (GLuint texture);
3173 typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLsizei bufSize, void *pixels);
3174 typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERI64VPROC) (GLuint buffer, GLenum pname, GLint64* params);
3175 typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERIVPROC) (GLuint buffer, GLenum pname, GLint* params);
3176 typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPOINTERVPROC) (GLuint buffer, GLenum pname, void** params);
3177 typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
3178 typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params);
3179 typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) (GLuint framebuffer, GLenum pname, GLint* param);
3180 typedef void (GLAPIENTRY * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC) (GLuint renderbuffer, GLenum pname, GLint* params);
3181 typedef void (GLAPIENTRY * PFNGLGETTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
3182 typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERFVPROC) (GLuint texture, GLint level, GLenum pname, GLfloat* params);
3183 typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERIVPROC) (GLuint texture, GLint level, GLenum pname, GLint* params);
3184 typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, GLint* params);
3185 typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, GLuint* params);
3186 typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, GLfloat* params);
3187 typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, GLint* params);
3188 typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKI64_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint64* param);
3189 typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKI_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint* param);
3190 typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKIVPROC) (GLuint xfb, GLenum pname, GLint* param);
3191 typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINDEXED64IVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint64* param);
3192 typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINDEXEDIVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint* param);
3193 typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYIVPROC) (GLuint vaobj, GLenum pname, GLint* param);
3194 typedef void (GLAPIENTRY * PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum* attachments);
3195 typedef void (GLAPIENTRY * PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height);
3196 typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERPROC) (GLuint buffer, GLenum access);
3197 typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
3198 typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERDATAPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
3199 typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
3200 typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
3201 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC) (GLuint framebuffer, GLenum mode);
3202 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC) (GLuint framebuffer, GLsizei n, const GLenum* bufs);
3203 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC) (GLuint framebuffer, GLenum pname, GLint param);
3204 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC) (GLuint framebuffer, GLenum mode);
3205 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
3206 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
3207 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
3208 typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
3209 typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
3210 typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFERPROC) (GLuint texture, GLenum internalformat, GLuint buffer);
3211 typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFERRANGEPROC) (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
3212 typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, const GLint* params);
3213 typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, const GLuint* params);
3214 typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFPROC) (GLuint texture, GLenum pname, GLfloat param);
3215 typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, const GLfloat* param);
3216 typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIPROC) (GLuint texture, GLenum pname, GLint param);
3217 typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, const GLint* param);
3218 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE1DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
3219 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
3220 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
3221 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
3222 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
3223 typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
3224 typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
3225 typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
3226 typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC) (GLuint xfb, GLuint index, GLuint buffer);
3227 typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC) (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
3228 typedef GLboolean (GLAPIENTRY * PFNGLUNMAPNAMEDBUFFERPROC) (GLuint buffer);
3229 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBBINDINGPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex);
3230 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
3231 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBIFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
3232 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBLFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
3233 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYBINDINGDIVISORPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor);
3234 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYELEMENTBUFFERPROC) (GLuint vaobj, GLuint buffer);
3235 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXBUFFERPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
3236 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXBUFFERSPROC) (GLuint vaobj, GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizei *strides);
3238 #define glBindTextureUnit GLEGetCurrentFunction(glBindTextureUnit)
3239 #define glBlitNamedFramebuffer GLEGetCurrentFunction(glBlitNamedFramebuffer)
3240 #define glCheckNamedFramebufferStatus GLEGetCurrentFunction(glCheckNamedFramebufferStatus)
3241 #define glClearNamedBufferData GLEGetCurrentFunction(glClearNamedBufferData)
3242 #define glClearNamedBufferSubData GLEGetCurrentFunction(glClearNamedBufferSubData)
3243 #define glClearNamedFramebufferfi GLEGetCurrentFunction(glClearNamedFramebufferfi)
3244 #define glClearNamedFramebufferfv GLEGetCurrentFunction(glClearNamedFramebufferfv)
3245 #define glClearNamedFramebufferiv GLEGetCurrentFunction(glClearNamedFramebufferiv)
3246 #define glClearNamedFramebufferuiv GLEGetCurrentFunction(glClearNamedFramebufferuiv)
3247 #define glCompressedTextureSubImage1D GLEGetCurrentFunction(glCompressedTextureSubImage1D)
3248 #define glCompressedTextureSubImage2D GLEGetCurrentFunction(glCompressedTextureSubImage2D)
3249 #define glCompressedTextureSubImage3D GLEGetCurrentFunction(glCompressedTextureSubImage3D)
3250 #define glCopyNamedBufferSubData GLEGetCurrentFunction(glCopyNamedBufferSubData)
3251 #define glCopyTextureSubImage1D GLEGetCurrentFunction(glCopyTextureSubImage1D)
3252 #define glCopyTextureSubImage2D GLEGetCurrentFunction(glCopyTextureSubImage2D)
3253 #define glCopyTextureSubImage3D GLEGetCurrentFunction(glCopyTextureSubImage3D)
3254 #define glCreateBuffers GLEGetCurrentFunction(glCreateBuffers)
3255 #define glCreateFramebuffers GLEGetCurrentFunction(glCreateFramebuffers)
3256 #define glCreateProgramPipelines GLEGetCurrentFunction(glCreateProgramPipelines)
3257 #define glCreateQueries GLEGetCurrentFunction(glCreateQueries)
3258 #define glCreateRenderbuffers GLEGetCurrentFunction(glCreateRenderbuffers)
3259 #define glCreateSamplers GLEGetCurrentFunction(glCreateSamplers)
3260 #define glCreateTextures GLEGetCurrentFunction(glCreateTextures)
3261 #define glCreateTransformFeedbacks GLEGetCurrentFunction(glCreateTransformFeedbacks)
3262 #define glCreateVertexArrays GLEGetCurrentFunction(glCreateVertexArrays)
3263 #define glDisableVertexArrayAttrib GLEGetCurrentFunction(glDisableVertexArrayAttrib)
3264 #define glEnableVertexArrayAttrib GLEGetCurrentFunction(glEnableVertexArrayAttrib)
3265 #define glFlushMappedNamedBufferRange GLEGetCurrentFunction(glFlushMappedNamedBufferRange)
3266 #define glGenerateTextureMipmap GLEGetCurrentFunction(glGenerateTextureMipmap)
3267 #define glGetCompressedTextureImage GLEGetCurrentFunction(glGetCompressedTextureImage)
3268 #define glGetNamedBufferParameteri64v GLEGetCurrentFunction(glGetNamedBufferParameteri64v)
3269 #define glGetNamedBufferParameteriv GLEGetCurrentFunction(glGetNamedBufferParameteriv)
3270 #define glGetNamedBufferPointerv GLEGetCurrentFunction(glGetNamedBufferPointerv)
3271 #define glGetNamedBufferSubData GLEGetCurrentFunction(glGetNamedBufferSubData)
3272 #define glGetNamedFramebufferAttachmentParameteriv GLEGetCurrentFunction(glGetNamedFramebufferAttachmentParameteriv)
3273 #define glGetNamedFramebufferParameteriv GLEGetCurrentFunction(glGetNamedFramebufferParameteriv)
3274 #define glGetNamedRenderbufferParameteriv GLEGetCurrentFunction(glGetNamedRenderbufferParameteriv)
3275 #define glGetTextureImage GLEGetCurrentFunction(glGetTextureImage)
3276 #define glGetTextureLevelParameterfv GLEGetCurrentFunction(glGetTextureLevelParameterfv)
3277 #define glGetTextureLevelParameteriv GLEGetCurrentFunction(glGetTextureLevelParameteriv)
3278 #define glGetTextureParameterIiv GLEGetCurrentFunction(glGetTextureParameterIiv)
3279 #define glGetTextureParameterIuiv GLEGetCurrentFunction(glGetTextureParameterIuiv)
3280 #define glGetTextureParameterfv GLEGetCurrentFunction(glGetTextureParameterfv)
3281 #define glGetTextureParameteriv GLEGetCurrentFunction(glGetTextureParameteriv)
3282 #define glGetTransformFeedbacki64_v GLEGetCurrentFunction(glGetTransformFeedbacki64_v)
3283 #define glGetTransformFeedbacki_v GLEGetCurrentFunction(glGetTransformFeedbacki_v)
3284 #define glGetTransformFeedbackiv GLEGetCurrentFunction(glGetTransformFeedbackiv)
3285 #define glGetVertexArrayIndexed64iv GLEGetCurrentFunction(glGetVertexArrayIndexed64iv)
3286 #define glGetVertexArrayIndexediv GLEGetCurrentFunction(glGetVertexArrayIndexediv)
3287 #define glGetVertexArrayiv GLEGetCurrentFunction(glGetVertexArrayiv)
3288 #define glInvalidateNamedFramebufferData GLEGetCurrentFunction(glInvalidateNamedFramebufferData)
3289 #define glInvalidateNamedFramebufferSubData GLEGetCurrentFunction(glInvalidateNamedFramebufferSubData)
3290 #define glMapNamedBuffer GLEGetCurrentFunction(glMapNamedBuffer)
3291 #define glMapNamedBufferRange GLEGetCurrentFunction(glMapNamedBufferRange)
3292 #define glNamedBufferData GLEGetCurrentFunction(glNamedBufferData)
3293 #define glNamedBufferStorage GLEGetCurrentFunction(glNamedBufferStorage)
3294 #define glNamedBufferSubData GLEGetCurrentFunction(glNamedBufferSubData)
3295 #define glNamedFramebufferDrawBuffer GLEGetCurrentFunction(glNamedFramebufferDrawBuffer)
3296 #define glNamedFramebufferDrawBuffers GLEGetCurrentFunction(glNamedFramebufferDrawBuffers)
3297 #define glNamedFramebufferParameteri GLEGetCurrentFunction(glNamedFramebufferParameteri)
3298 #define glNamedFramebufferReadBuffer GLEGetCurrentFunction(glNamedFramebufferReadBuffer)
3299 #define glNamedFramebufferRenderbuffer GLEGetCurrentFunction(glNamedFramebufferRenderbuffer)
3300 #define glNamedFramebufferTexture GLEGetCurrentFunction(glNamedFramebufferTexture)
3301 #define glNamedFramebufferTextureLayer GLEGetCurrentFunction(glNamedFramebufferTextureLayer)
3302 #define glNamedRenderbufferStorage GLEGetCurrentFunction(glNamedRenderbufferStorage)
3303 #define glNamedRenderbufferStorageMultisample GLEGetCurrentFunction(glNamedRenderbufferStorageMultisample)
3304 #define glTextureBuffer GLEGetCurrentFunction(glTextureBuffer)
3305 #define glTextureBufferRange GLEGetCurrentFunction(glTextureBufferRange)
3306 #define glTextureParameterIiv GLEGetCurrentFunction(glTextureParameterIiv)
3307 #define glTextureParameterIuiv GLEGetCurrentFunction(glTextureParameterIuiv)
3308 #define glTextureParameterf GLEGetCurrentFunction(glTextureParameterf)
3309 #define glTextureParameterfv GLEGetCurrentFunction(glTextureParameterfv)
3310 #define glTextureParameteri GLEGetCurrentFunction(glTextureParameteri)
3311 #define glTextureParameteriv GLEGetCurrentFunction(glTextureParameteriv)
3312 #define glTextureStorage1D GLEGetCurrentFunction(glTextureStorage1D)
3313 #define glTextureStorage2D GLEGetCurrentFunction(glTextureStorage2D)
3314 #define glTextureStorage2DMultisample GLEGetCurrentFunction(glTextureStorage2DMultisample)
3315 #define glTextureStorage3D GLEGetCurrentFunction(glTextureStorage3D)
3316 #define glTextureStorage3DMultisample GLEGetCurrentFunction(glTextureStorage3DMultisample)
3317 #define glTextureSubImage1D GLEGetCurrentFunction(glTextureSubImage1D)
3318 #define glTextureSubImage2D GLEGetCurrentFunction(glTextureSubImage2D)
3319 #define glTextureSubImage3D GLEGetCurrentFunction(glTextureSubImage3D)
3320 #define glTransformFeedbackBufferBase GLEGetCurrentFunction(glTransformFeedbackBufferBase)
3321 #define glTransformFeedbackBufferRange GLEGetCurrentFunction(glTransformFeedbackBufferRange)
3322 #define glUnmapNamedBuffer GLEGetCurrentFunction(glUnmapNamedBuffer)
3323 #define glVertexArrayAttribBinding GLEGetCurrentFunction(glVertexArrayAttribBinding)
3324 #define glVertexArrayAttribFormat GLEGetCurrentFunction(glVertexArrayAttribFormat)
3325 #define glVertexArrayAttribIFormat GLEGetCurrentFunction(glVertexArrayAttribIFormat)
3326 #define glVertexArrayAttribLFormat GLEGetCurrentFunction(glVertexArrayAttribLFormat)
3327 #define glVertexArrayBindingDivisor GLEGetCurrentFunction(glVertexArrayBindingDivisor)
3328 #define glVertexArrayElementBuffer GLEGetCurrentFunction(glVertexArrayElementBuffer)
3329 #define glVertexArrayVertexBuffer GLEGetCurrentFunction(glVertexArrayVertexBuffer)
3330 #define glVertexArrayVertexBuffers GLEGetCurrentFunction(glVertexArrayVertexBuffers)
3332 #define GLE_ARB_direct_state_access GLEGetCurrentVariable(gle_ARB_direct_state_access)
3333 #endif // GL_ARB_direct_state_access */
3337 #ifndef GL_ARB_ES2_compatibility
3338 #define GL_ARB_ES2_compatibility 1
3340 // This is for OpenGL ES compatibility.
3341 #define GL_FIXED 0x140C
3342 #define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
3343 #define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
3344 #define GL_RGB565 0x8D62
3345 #define GL_LOW_FLOAT 0x8DF0
3346 #define GL_MEDIUM_FLOAT 0x8DF1
3347 #define GL_HIGH_FLOAT 0x8DF2
3348 #define GL_LOW_INT 0x8DF3
3349 #define GL_MEDIUM_INT 0x8DF4
3350 #define GL_HIGH_INT 0x8DF5
3351 #define GL_SHADER_BINARY_FORMATS 0x8DF8
3352 #define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
3353 #define GL_SHADER_COMPILER 0x8DFA
3354 #define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
3355 #define GL_MAX_VARYING_VECTORS 0x8DFC
3356 #define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
3358 typedef int GLfixed;
3360 typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFPROC) (GLclampf d);
3361 typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f);
3362 typedef void (GLAPIENTRY * PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint* range, GLint *precision);
3363 typedef void (GLAPIENTRY * PFNGLRELEASESHADERCOMPILERPROC) (void);
3364 typedef void (GLAPIENTRY * PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint* shaders, GLenum binaryformat, const void*binary, GLsizei length);
3366 #define glClearDepthf GLEGetCurrentFunction(glClearDepthf)
3367 #define glDepthRangef GLEGetCurrentFunction(glDepthRangef)
3368 #define glGetShaderPrecisionFormat GLEGetCurrentFunction(glGetShaderPrecisionFormat)
3369 #define glReleaseShaderCompiler GLEGetCurrentFunction(glReleaseShaderCompiler)
3370 #define glShaderBinary GLEGetCurrentFunction(glShaderBinary)
3372 #define GLE_ARB_ES2_compatibility GLEGetCurrentVariable(gle_ARB_ES2_compatibility)
3373 #endif
3377 #ifndef GL_ARB_framebuffer_object
3378 #define GL_ARB_framebuffer_object 1
3380 // GL_ARB_framebuffer_object is part of the OpenGL 4.4 core profile.
3381 #define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
3382 #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
3383 #define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
3384 #define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
3385 #define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
3386 #define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
3387 #define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
3388 #define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
3389 #define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
3390 #define GL_FRAMEBUFFER_DEFAULT 0x8218
3391 #define GL_FRAMEBUFFER_UNDEFINED 0x8219
3392 #define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
3393 #define GL_INDEX 0x8222
3394 #define GL_MAX_RENDERBUFFER_SIZE 0x84E8
3395 #define GL_DEPTH_STENCIL 0x84F9
3396 #define GL_UNSIGNED_INT_24_8 0x84FA
3397 #define GL_DEPTH24_STENCIL8 0x88F0
3398 #define GL_TEXTURE_STENCIL_SIZE 0x88F1
3399 #define GL_UNSIGNED_NORMALIZED 0x8C17
3400 #define GL_SRGB 0x8C40
3401 #define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
3402 #define GL_FRAMEBUFFER_BINDING 0x8CA6
3403 #define GL_RENDERBUFFER_BINDING 0x8CA7
3404 #define GL_READ_FRAMEBUFFER 0x8CA8
3405 #define GL_DRAW_FRAMEBUFFER 0x8CA9
3406 #define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
3407 #define GL_RENDERBUFFER_SAMPLES 0x8CAB
3408 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
3409 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
3410 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
3411 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
3412 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
3413 #define GL_FRAMEBUFFER_COMPLETE 0x8CD5
3414 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
3415 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
3416 #define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB
3417 #define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC
3418 #define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
3419 #define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
3420 #define GL_COLOR_ATTACHMENT0 0x8CE0
3421 #define GL_COLOR_ATTACHMENT1 0x8CE1
3422 #define GL_COLOR_ATTACHMENT2 0x8CE2
3423 #define GL_COLOR_ATTACHMENT3 0x8CE3
3424 #define GL_COLOR_ATTACHMENT4 0x8CE4
3425 #define GL_COLOR_ATTACHMENT5 0x8CE5
3426 #define GL_COLOR_ATTACHMENT6 0x8CE6
3427 #define GL_COLOR_ATTACHMENT7 0x8CE7
3428 #define GL_COLOR_ATTACHMENT8 0x8CE8
3429 #define GL_COLOR_ATTACHMENT9 0x8CE9
3430 #define GL_COLOR_ATTACHMENT10 0x8CEA
3431 #define GL_COLOR_ATTACHMENT11 0x8CEB
3432 #define GL_COLOR_ATTACHMENT12 0x8CEC
3433 #define GL_COLOR_ATTACHMENT13 0x8CED
3434 #define GL_COLOR_ATTACHMENT14 0x8CEE
3435 #define GL_COLOR_ATTACHMENT15 0x8CEF
3436 #define GL_DEPTH_ATTACHMENT 0x8D00
3437 #define GL_STENCIL_ATTACHMENT 0x8D20
3438 #define GL_FRAMEBUFFER 0x8D40
3439 #define GL_RENDERBUFFER 0x8D41
3440 #define GL_RENDERBUFFER_WIDTH 0x8D42
3441 #define GL_RENDERBUFFER_HEIGHT 0x8D43
3442 #define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
3443 #define GL_STENCIL_INDEX1 0x8D46
3444 #define GL_STENCIL_INDEX4 0x8D47
3445 #define GL_STENCIL_INDEX8 0x8D48
3446 #define GL_STENCIL_INDEX16 0x8D49
3447 #define GL_RENDERBUFFER_RED_SIZE 0x8D50
3448 #define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
3449 #define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
3450 #define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
3451 #define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
3452 #define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
3453 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
3454 #define GL_MAX_SAMPLES 0x8D57
3456 typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
3457 typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
3458 typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
3459 typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
3460 typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint* framebuffers);
3461 typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint* renderbuffers);
3462 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
3463 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
3464 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
3465 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer);
3466 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target,GLenum attachment, GLuint texture,GLint level,GLint layer);
3467 typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint* framebuffers);
3468 typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint* renderbuffers);
3469 typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPPROC) (GLenum target);
3470 typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params);
3471 typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params);
3472 typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer);
3473 typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer);
3474 typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
3475 typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
3477 #define glBindFramebuffer GLEGetCurrentFunction(glBindFramebuffer)
3478 #define glBindRenderbuffer GLEGetCurrentFunction(glBindRenderbuffer)
3479 #define glBlitFramebuffer GLEGetCurrentFunction(glBlitFramebuffer)
3480 #define glCheckFramebufferStatus GLEGetCurrentFunction(glCheckFramebufferStatus)
3481 #define glDeleteFramebuffers GLEGetCurrentFunction(glDeleteFramebuffers)
3482 #define glDeleteRenderbuffers GLEGetCurrentFunction(glDeleteRenderbuffers)
3483 #define glFramebufferRenderbuffer GLEGetCurrentFunction(glFramebufferRenderbuffer)
3484 #define glFramebufferTexture1D GLEGetCurrentFunction(glFramebufferTexture1D)
3485 #define glFramebufferTexture2D GLEGetCurrentFunction(glFramebufferTexture2D)
3486 #define glFramebufferTexture3D GLEGetCurrentFunction(glFramebufferTexture3D)
3487 #define glFramebufferTextureLayer GLEGetCurrentFunction(glFramebufferTextureLayer)
3488 #define glGenFramebuffers GLEGetCurrentFunction(glGenFramebuffers)
3489 #define glGenRenderbuffers GLEGetCurrentFunction(glGenRenderbuffers)
3490 #define glGenerateMipmap GLEGetCurrentFunction(glGenerateMipmap)
3491 #define glGetFramebufferAttachmentParameteriv GLEGetCurrentFunction(glGetFramebufferAttachmentParameteriv)
3492 #define glGetRenderbufferParameteriv GLEGetCurrentFunction(glGetRenderbufferParameteriv)
3493 #define glIsFramebuffer GLEGetCurrentFunction(glIsFramebuffer)
3494 #define glIsRenderbuffer GLEGetCurrentFunction(glIsRenderbuffer)
3495 #define glRenderbufferStorage GLEGetCurrentFunction(glRenderbufferStorage)
3496 #define glRenderbufferStorageMultisample GLEGetCurrentFunction(glRenderbufferStorageMultisample)
3498 #define GLE_ARB_framebuffer_object GLEGetCurrentVariable(gle_ARB_framebuffer_object)
3500 #endif // GL_ARB_framebuffer_object
3504 #ifndef GL_ARB_framebuffer_sRGB
3505 #define GL_ARB_framebuffer_sRGB 1
3507 // GL_ARB_framebuffer_sRGB is part of the OpenGL 4.4 core profile.
3508 #define GL_FRAMEBUFFER_SRGB 0x8DB9
3510 #define GLE_ARB_framebuffer_sRGB GLEGetCurrentVariable(gle_ARB_framebuffer_sRGB)
3511 #endif
3515 #ifndef GL_ARB_texture_multisample
3516 #define GL_ARB_texture_multisample 1
3518 #define GL_SAMPLE_POSITION 0x8E50
3519 #define GL_SAMPLE_MASK 0x8E51
3520 #define GL_SAMPLE_MASK_VALUE 0x8E52
3521 #define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
3522 #define GL_TEXTURE_2D_MULTISAMPLE 0x9100
3523 #define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
3524 #define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
3525 #define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
3526 #define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
3527 #define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
3528 #define GL_TEXTURE_SAMPLES 0x9106
3529 #define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
3530 #define GL_SAMPLER_2D_MULTISAMPLE 0x9108
3531 #define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
3532 #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
3533 #define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
3534 #define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
3535 #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
3536 #define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
3537 #define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
3538 #define GL_MAX_INTEGER_SAMPLES 0x9110
3540 typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat* val);
3541 typedef void (GLAPIENTRY * PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask);
3542 typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
3543 typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
3545 #define glGetMultisamplefv GLEGetCurrentFunction(glGetMultisamplefv)
3546 #define glSampleMaski GLEGetCurrentFunction(glSampleMaski)
3547 #define glTexImage2DMultisample GLEGetCurrentFunction(glTexImage2DMultisample)
3548 #define glTexImage3DMultisample GLEGetCurrentFunction(glTexImage3DMultisample)
3550 #define GLE_ARB_texture_multisample GLEGetCurrentVariable(gle_ARB_texture_multisample)
3552 #endif // GL_ARB_texture_multisample
3556 #ifndef GL_ARB_texture_non_power_of_two
3557 #define GL_ARB_texture_non_power_of_two 1
3559 #define GLE_ARB_texture_non_power_of_two GLEGetCurrentVariable(gle_ARB_texture_non_power_of_two)
3560 #endif
3564 #ifndef GL_ARB_texture_rectangle
3565 #define GL_ARB_texture_rectangle 1
3567 // texture_rectangle was added to the OpenGL 3.1 core profile and so this extension is not needed
3568 // unless using an earlier version of OpenGL.
3569 // There are also the GL_EXT_texture_rectangle and GL_NV_texture_rectangle extensions. Apple reports
3570 // the preseence of GL_EXT_texture_rectangle but not GL_ARB_texture_rectangle or GL_NV_texture_rectangle.
3571 // You should check for GL_ARB_texture_rectangle instead of these other two.
3572 #define GL_TEXTURE_RECTANGLE_ARB 0x84F5
3573 #define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6
3574 #define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7
3575 #define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8
3576 #define GL_SAMPLER_2D_RECT_ARB 0x8B63
3577 #define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64
3579 #define GLE_ARB_texture_rectangle GLEGetCurrentVariable(gle_ARB_texture_rectangle)
3580 #endif
3584 #ifndef GL_ARB_timer_query
3585 #define GL_ARB_timer_query 1
3587 #define GL_TIME_ELAPSED 0x88BF
3588 #define GL_TIMESTAMP 0x8E28
3590 typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64* params);
3591 typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64* params);
3592 typedef void (GLAPIENTRY * PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target);
3594 #define glGetQueryObjecti64v GLEGetCurrentFunction(glGetQueryObjecti64v)
3595 #define glGetQueryObjectui64v GLEGetCurrentFunction(glGetQueryObjectui64v)
3596 #define glQueryCounter GLEGetCurrentFunction(glQueryCounter)
3598 #define GLE_ARB_timer_query GLEGetCurrentVariable(gle_ARB_timer_query)
3599 #endif
3603 #ifndef GL_ARB_vertex_array_object
3604 #define GL_ARB_vertex_array_object 1
3606 #define GL_VERTEX_ARRAY_BINDING 0x85B5
3608 typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYPROC) (GLuint array);
3609 typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint* arrays);
3610 typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays);
3611 typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYPROC) (GLuint array);
3613 #define glBindVertexArray GLEGetCurrentFunction(glBindVertexArray)
3614 #define glDeleteVertexArrays GLEGetCurrentFunction(glDeleteVertexArrays)
3615 #define glGenVertexArrays GLEGetCurrentFunction(glGenVertexArrays)
3616 #define glIsVertexArray GLEGetCurrentFunction(glIsVertexArray)
3618 #define GLE_ARB_vertex_array_object GLEGetCurrentVariable(gle_ARB_vertex_array_object)
3619 #endif
3623 /* Disabled until needed
3624 #ifndef GL_ARB_vertex_attrib_binding
3625 #define GL_ARB_vertex_attrib_binding 1
3627 #define GL_VERTEX_ATTRIB_BINDING 0x82D4
3628 #define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5
3629 #define GL_VERTEX_BINDING_DIVISOR 0x82D6
3630 #define GL_VERTEX_BINDING_OFFSET 0x82D7
3631 #define GL_VERTEX_BINDING_STRIDE 0x82D8
3632 #define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9
3633 #define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA
3634 #define GL_VERTEX_BINDING_BUFFER 0x8F4F
3636 typedef void (GLAPIENTRY * PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
3637 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
3638 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex);
3639 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
3640 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
3641 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
3642 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor);
3643 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex);
3644 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
3645 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
3646 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
3647 typedef void (GLAPIENTRY * PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor);
3649 #define glBindVertexBuffer GLEGetCurrentFunction(glBindVertexBuffer)
3650 #define glVertexArrayBindVertexBufferEXT GLEGetCurrentFunction(glVertexArrayBindVertexBufferEXT)
3651 #define glVertexArrayVertexAttribBindingEXT GLEGetCurrentFunction(glVertexArrayVertexAttribBindingEXT)
3652 #define glVertexArrayVertexAttribFormatEXT GLEGetCurrentFunction(glVertexArrayVertexAttribFormatEXT)
3653 #define glVertexArrayVertexAttribIFormatEXT GLEGetCurrentFunction(glVertexArrayVertexAttribIFormatEXT)
3654 #define glVertexArrayVertexAttribLFormatEXT GLEGetCurrentFunction(glVertexArrayVertexAttribLFormatEXT)
3655 #define glVertexArrayVertexBindingDivisorEXT GLEGetCurrentFunction(glVertexArrayVertexBindingDivisorEXT)
3656 #define glVertexAttribBinding GLEGetCurrentFunction(glVertexAttribBinding)
3657 #define glVertexAttribFormat GLEGetCurrentFunction(glVertexAttribFormat)
3658 #define glVertexAttribIFormat GLEGetCurrentFunction(glVertexAttribIFormat)
3659 #define glVertexAttribLFormat GLEGetCurrentFunction(glVertexAttribLFormat)
3660 #define glVertexBindingDivisor GLEGetCurrentFunction(glVertexBindingDivisor)
3662 #define GLE_ARB_vertex_attrib_binding GLEGetCurrentVariable(gle_ARB_vertex_attrib_binding)
3663 #endif
3664 */
3667 #ifndef GL_EXT_draw_buffers2
3668 #define GL_EXT_draw_buffers2 1
3670 typedef void (GLAPIENTRY * PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
3671 typedef void (GLAPIENTRY * PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
3672 typedef void (GLAPIENTRY * PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
3673 typedef void (GLAPIENTRY * PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum value, GLuint index, GLboolean* data);
3674 typedef void (GLAPIENTRY * PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum value, GLuint index, GLint* data);
3675 typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index);
3677 #define glColorMaskIndexedEXT GLEGetCurrentFunction(glColorMaskIndexedEXT)
3678 #define glDisableIndexedEXT GLEGetCurrentFunction(glDisableIndexedEXT)
3679 #define glEnableIndexedEXT GLEGetCurrentFunction(glEnableIndexedEXT)
3680 #define glGetBooleanIndexedvEXT GLEGetCurrentFunction(glGetBooleanIndexedvEXT)
3681 #define glGetIntegerIndexedvEXT GLEGetCurrentFunction(glGetIntegerIndexedvEXT)
3682 #define glIsEnabledIndexedEXT GLEGetCurrentFunction(glIsEnabledIndexedEXT)
3684 #define GLE_EXT_draw_buffers2 GLEGetCurrentVariable(gle_EXT_draw_buffers2)
3685 #endif
3689 #ifndef GL_EXT_texture_compression_s3tc
3690 #define GL_EXT_texture_compression_s3tc 1
3692 #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
3693 #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
3694 #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
3695 #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
3697 #define GLE_EXT_texture_compression_s3tc GLEGetCurrentVariable(gle_EXT_texture_compression_s3tc)
3698 #endif
3702 #ifndef GL_EXT_texture_filter_anisotropic
3703 #define GL_EXT_texture_filter_anisotropic 1
3705 #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
3706 #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
3708 #define GLE_EXT_texture_filter_anisotropic GLEGetCurrentVariable(gle_EXT_texture_filter_anisotropic)
3709 #endif
3713 /* Disabled until needed
3714 #ifndef GL_KHR_context_flush_control
3715 #define GL_KHR_context_flush_control 1
3717 #define GLE_KHR_context_flush_control GLEGetCurrentVariable(gle_KHR_context_flush_control)
3718 #endif
3719 */
3723 #ifndef GL_KHR_debug
3724 #define GL_KHR_debug 1
3726 #define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002
3727 #define GL_STACK_OVERFLOW 0x0503
3728 #define GL_STACK_UNDERFLOW 0x0504
3729 #define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242
3730 #define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243
3731 #define GL_DEBUG_CALLBACK_FUNCTION 0x8244
3732 #define GL_DEBUG_CALLBACK_USER_PARAM 0x8245
3733 #define GL_DEBUG_SOURCE_API 0x8246
3734 #define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247
3735 #define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248
3736 #define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249
3737 #define GL_DEBUG_SOURCE_APPLICATION 0x824A
3738 #define GL_DEBUG_SOURCE_OTHER 0x824B
3739 #define GL_DEBUG_TYPE_ERROR 0x824C
3740 #define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D
3741 #define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E
3742 #define GL_DEBUG_TYPE_PORTABILITY 0x824F
3743 #define GL_DEBUG_TYPE_PERFORMANCE 0x8250
3744 #define GL_DEBUG_TYPE_OTHER 0x8251
3745 #define GL_DEBUG_TYPE_MARKER 0x8268
3746 #define GL_DEBUG_TYPE_PUSH_GROUP 0x8269
3747 #define GL_DEBUG_TYPE_POP_GROUP 0x826A
3748 #define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B
3749 #define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C
3750 #define GL_DEBUG_GROUP_STACK_DEPTH 0x826D
3751 #define GL_BUFFER 0x82E0
3752 #define GL_SHADER 0x82E1
3753 #define GL_PROGRAM 0x82E2
3754 #define GL_QUERY 0x82E3
3755 #define GL_PROGRAM_PIPELINE 0x82E4
3756 #define GL_SAMPLER 0x82E6
3757 #define GL_DISPLAY_LIST 0x82E7
3758 #define GL_MAX_LABEL_LENGTH 0x82E8
3759 #define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143
3760 #define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144
3761 #define GL_DEBUG_LOGGED_MESSAGES 0x9145
3762 #define GL_DEBUG_SEVERITY_HIGH 0x9146
3763 #define GL_DEBUG_SEVERITY_MEDIUM 0x9147
3764 #define GL_DEBUG_SEVERITY_LOW 0x9148
3765 #define GL_DEBUG_OUTPUT 0x92E0
3767 typedef void (GLAPIENTRY *GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam);
3769 typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam);
3770 typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
3771 typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf);
3772 typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog);
3773 typedef void (GLAPIENTRY * PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar *label);
3774 typedef void (GLAPIENTRY * PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei* length, GLchar *label);
3775 typedef void (GLAPIENTRY * PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar* label);
3776 typedef void (GLAPIENTRY * PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar* label);
3777 typedef void (GLAPIENTRY * PFNGLPOPDEBUGGROUPPROC) (void);
3778 typedef void (GLAPIENTRY * PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar * message);
3780 #define glDebugMessageCallback GLEGetCurrentFunction(glDebugMessageCallback)
3781 #define glDebugMessageControl GLEGetCurrentFunction(glDebugMessageControl)
3782 #define glDebugMessageInsert GLEGetCurrentFunction(glDebugMessageInsert)
3783 #define glGetDebugMessageLog GLEGetCurrentFunction(glGetDebugMessageLog)
3784 #define glGetObjectLabel GLEGetCurrentFunction(glGetObjectLabel)
3785 #define glGetObjectPtrLabel GLEGetCurrentFunction(glGetObjectPtrLabel)
3786 #define glObjectLabel GLEGetCurrentFunction(glObjectLabel)
3787 #define glObjectPtrLabel GLEGetCurrentFunction(glObjectPtrLabel)
3788 #define glPopDebugGroup GLEGetCurrentFunction(glPopDebugGroup)
3789 #define glPushDebugGroup GLEGetCurrentFunction(glPushDebugGroup)
3791 #define GLE_KHR_debug GLEGetCurrentVariable(gle_KHR_debug)
3792 #endif // GL_KHR_debug
3796 #ifndef GL_KHR_robust_buffer_access_behavior
3797 #define GL_KHR_robust_buffer_access_behavior 1
3799 #define GLE_KHR_robust_buffer_access_behavior GLEGetCurrentVariable(gle_KHR_robust_buffer_access_behavior)
3800 #endif
3804 /* Disabled until needed
3805 #ifndef GL_KHR_robustness
3806 #define GL_KHR_robustness 1
3808 #define GL_CONTEXT_LOST 0x0507
3809 #define GL_LOSE_CONTEXT_ON_RESET 0x8252
3810 #define GL_GUILTY_CONTEXT_RESET 0x8253
3811 #define GL_INNOCENT_CONTEXT_RESET 0x8254
3812 #define GL_UNKNOWN_CONTEXT_RESET 0x8255
3813 #define GL_RESET_NOTIFICATION_STRATEGY 0x8256
3814 #define GL_NO_RESET_NOTIFICATION 0x8261
3815 #define GL_CONTEXT_ROBUST_ACCESS 0x90F3
3817 typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params);
3818 typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params);
3819 typedef void (GLAPIENTRY * PFNGLGETNUNIFORMUIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint* params);
3820 typedef void (GLAPIENTRY * PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
3822 #define glGetnUniformfv GLEGetCurrentFunction(glGetnUniformfv)
3823 #define glGetnUniformiv GLEGetCurrentFunction(glGetnUniformiv)
3824 #define glGetnUniformuiv GLEGetCurrentFunction(glGetnUniformuiv)
3825 #define glReadnPixels GLEGetCurrentFunction(glReadnPixels)
3827 #define GLE_KHR_robustness GLEGetCurrentVariable(gle_KHR_robustness)
3829 #endif // GL_KHR_robustness
3830 */
3834 #ifndef GL_WIN_swap_hint
3835 #define GL_WIN_swap_hint 1
3837 typedef void (GLAPIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
3839 #define glAddSwapHintRectWIN GLEGetCurrentFunction(glAddSwapHintRectWIN)
3841 #define GLE_WIN_swap_hint GLEGetCurrentVariable(gle_WIN_swap_hint)
3842 #endif
3846 /************************************************************************************
3847 Windows-specific (WGL) functionality
3848 ************************************************************************************/
3850 #if defined(GLE_WGL_ENABLED)
3851 #ifdef __wglext_h_
3852 #error wglext.h was included before this header. This header needs to be inlcuded instead of or at least before wglext.h
3853 #endif
3854 #define __wglext_h_ // Prevent wglext.h from having any future effect if it's #included.
3856 // Declare shared types and structs from wglext.h
3857 DECLARE_HANDLE(HPBUFFERARB); // This type is used by a couple extensions.
3859 // WGL functions from <wingdi.h>
3860 #if 0 // defined(GLE_HOOKING_ENABLED) We currently don't hook these.
3861 #define wglCopyContext(...) GLEGetCurrentFunction(wglCopyContext)(__VA_ARGS__)
3862 #define wglCreateContext(...) GLEGetCurrentFunction(wglCreateContext)(__VA_ARGS__)
3863 #define wglCreateLayerContext(...) GLEGetCurrentFunction(wglCreateLayerContext)(__VA_ARGS__)
3864 #define wglDeleteContext(...) GLEGetCurrentFunction(wglDeleteContext)(__VA_ARGS__)
3865 #define wglGetCurrentContext(...) GLEGetCurrentFunction(wglGetCurrentContext)(__VA_ARGS__)
3866 #define wglGetCurrentDC(...) GLEGetCurrentFunction(wglGetCurrentDC)(__VA_ARGS__)
3867 #define wglGetProcAddress(...) GLEGetCurrentFunction(wglGetProcAddress)(__VA_ARGS__)
3868 #define wglMakeCurrent(...) GLEGetCurrentFunction(wglMakeCurrent)(__VA_ARGS__)
3869 #define wglShareLists(...) GLEGetCurrentFunction(wglShareLists)(__VA_ARGS__)
3870 #define wglUseFontBitmapsA(...) GLEGetCurrentFunction(wglUseFontBitmapsA)(__VA_ARGS__)
3871 #define wglUseFontBitmapsW(...) GLEGetCurrentFunction(wglUseFontBitmapsW)(__VA_ARGS__)
3872 #define wglUseFontOutlinesA(...) GLEGetCurrentFunction(wglUseFontOutlinesA)(__VA_ARGS__)
3873 #define wglUseFontOutlinesW(...) GLEGetCurrentFunction(wglUseFontOutlinesW)(__VA_ARGS__)
3874 #define wglDescribeLayerPlane(...) GLEGetCurrentFunction(wglDescribeLayerPlane)(__VA_ARGS__)
3875 #define wglSetLayerPaletteEntries(...) GLEGetCurrentFunction(wglSetLayerPaletteEntries)(__VA_ARGS__)
3876 #define wglGetLayerPaletteEntries(...) GLEGetCurrentFunction(wglGetLayerPaletteEntries)(__VA_ARGS__)
3877 #define wglRealizeLayerPalette(...) GLEGetCurrentFunction(wglRealizeLayerPalette)(__VA_ARGS__)
3878 #define wglSwapLayerBuffers(...) GLEGetCurrentFunction(wglSwapLayerBuffers)(__VA_ARGS__)
3879 #define wglSwapMultipleBuffers(...) GLEGetCurrentFunction(wglSwapMultipleBuffers)(__VA_ARGS__)
3880 #else
3881 // The following functions are directly declared in Microsoft's <wingdi.h> without associated typedefs, and are exported from Opengl32.dll.
3882 // We can link to them directly through Opengl32.lib/dll (same as OpenGL 1.1 functions) or we can dynamically link them from OpenGL32.dll at runtime.
3883 typedef BOOL (WINAPI * PFNWGLCOPYCONTEXTPROC)(HGLRC, HGLRC, UINT);
3884 typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTPROC)(HDC);
3885 typedef HGLRC (WINAPI * PFNWGLCREATELAYERCONTEXTPROC)(HDC, int);
3886 typedef BOOL (WINAPI * PFNWGLDELETECONTEXTPROC)(HGLRC);
3887 typedef HGLRC (WINAPI * PFNWGLGETCURRENTCONTEXTPROC)(VOID);
3888 typedef HDC (WINAPI * PFNWGLGETCURRENTDCPROC)(VOID);
3889 typedef PROC (WINAPI * PFNWGLGETPROCADDRESSPROC)(LPCSTR);
3890 typedef BOOL (WINAPI * PFNWGLMAKECURRENTPROC)(HDC, HGLRC);
3891 typedef BOOL (WINAPI * PFNWGLSHARELISTSPROC)(HGLRC, HGLRC);
3892 typedef BOOL (WINAPI * PFNWGLUSEFONTBITMAPSAPROC)(HDC, DWORD, DWORD, DWORD);
3893 typedef BOOL (WINAPI * PFNWGLUSEFONTBITMAPSWPROC)(HDC, DWORD, DWORD, DWORD);
3894 typedef BOOL (WINAPI * PFNWGLUSEFONTOUTLINESAPROC)(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT);
3895 typedef BOOL (WINAPI * PFNWGLUSEFONTOUTLINESWPROC)(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT);
3896 typedef BOOL (WINAPI * PFNWGLDESCRIBELAYERPLANEPROC)(HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR);
3897 typedef int (WINAPI * PFNWGLSETLAYERPALETTEENTRIESPROC)(HDC, int, int, int, CONST COLORREF *);
3898 typedef int (WINAPI * PFNWGLGETLAYERPALETTEENTRIESPROC)(HDC, int, int, int, COLORREF *);
3899 typedef BOOL (WINAPI * PFNWGLREALIZELAYERPALETTEPROC)(HDC, int, BOOL);
3900 typedef BOOL (WINAPI * PFNWGLSWAPLAYERBUFFERSPROC)(HDC, UINT);
3901 typedef DWORD (WINAPI * PFNWGLSWAPMULTIPLEBUFFERSPROC)(UINT, CONST WGLSWAP *);
3903 #if 0
3904 #define wglCopyContext GLEContext::GetCurrentContext()->wglCopyContext_Impl
3905 #define wglCreateContext GLEContext::GetCurrentContext()->wglCreateContext_Impl
3906 #define wglCreateLayerContext GLEContext::GetCurrentContext()->wglCreateLayerContext_Impl
3907 #define wglDeleteContext GLEContext::GetCurrentContext()->wglDeleteContext_Impl
3908 #define wglGetCurrentContext GLEContext::GetCurrentContext()->wglGetCurrentContext_Impl
3909 #define wglGetCurrentDC GLEContext::GetCurrentContext()->wglGetCurrentDC_Impl
3910 #define wglGetProcAddress GLEContext::GetCurrentContext()->wglGetProcAddress_Impl
3911 #define wglMakeCurrent GLEContext::GetCurrentContext()->wglMakeCurrent_Impl
3912 #define wglShareLists GLEContext::GetCurrentContext()->wglShareLists_Impl
3913 #define wglUseFontBitmapsA GLEContext::GetCurrentContext()->wglUseFontBitmapsA_Impl
3914 #define wglUseFontBitmapsW GLEContext::GetCurrentContext()->wglUseFontBitmapsW_Impl
3915 #define wglUseFontOutlinesA GLEContext::GetCurrentContext()->wglUseFontOutlinesA_Impl
3916 #define wglUseFontOutlinesW GLEContext::GetCurrentContext()->wglUseFontOutlinesW_Impl
3917 #define wglDescribeLayerPlane GLEContext::GetCurrentContext()->wglDescribeLayerPlane_Impl
3918 #define wglSetLayerPaletteEntries GLEContext::GetCurrentContext()->wglSetLayerPaletteEntries_Impl
3919 #define wglGetLayerPaletteEntries GLEContext::GetCurrentContext()->wglGetLayerPaletteEntries_Impl
3920 #define wglRealizeLayerPalette GLEContext::GetCurrentContext()->wglRealizeLayerPalette_Impl
3921 #define wglSwapLayerBuffers GLEContext::GetCurrentContext()->wglSwapLayerBuffers_Impl
3922 #define wglSwapMultipleBuffers GLEContext::GetCurrentContext()->wglSwapMultipleBuffers_Impl
3923 #endif
3924 #endif
3926 // Note: In order to detect the WGL extensions' availability, we need to call wglGetExtensionsStringARB or
3927 // wglGetExtensionsStringEXT instead of glGetString(GL_EXTENSIONS).
3928 #ifndef WGL_ARB_buffer_region
3929 #define WGL_ARB_buffer_region 1
3931 #define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001
3932 #define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002
3933 #define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004
3934 #define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008
3936 typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType);
3937 typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion);
3938 typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height);
3939 typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
3941 #define wglCreateBufferRegionARB GLEGetCurrentFunction(wglCreateBufferRegionARB)
3942 #define wglDeleteBufferRegionARB GLEGetCurrentFunction(wglDeleteBufferRegionARB)
3943 #define wglSaveBufferRegionARB GLEGetCurrentFunction(wglSaveBufferRegionARB)
3944 #define wglRestoreBufferRegionARB GLEGetCurrentFunction(wglRestoreBufferRegionARB)
3946 #define GLE_WGL_ARB_buffer_region GLEGetCurrentVariable(gle_WGL_ARB_buffer_region)
3947 #endif
3950 #ifndef WGL_ARB_extensions_string
3951 #define WGL_ARB_extensions_string 1
3953 typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc);
3955 #define wglGetExtensionsStringARB GLEGetCurrentFunction(wglGetExtensionsStringARB)
3957 #define GLE_WGL_ARB_extensions_string GLEGetCurrentVariable(gle_WGL_ARB_extensions_string)
3958 #endif
3961 #ifndef WGL_ARB_pixel_format
3962 #define WGL_ARB_pixel_format 1
3964 #define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
3965 #define WGL_DRAW_TO_WINDOW_ARB 0x2001
3966 #define WGL_DRAW_TO_BITMAP_ARB 0x2002
3967 #define WGL_ACCELERATION_ARB 0x2003
3968 #define WGL_NEED_PALETTE_ARB 0x2004
3969 #define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
3970 #define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
3971 #define WGL_SWAP_METHOD_ARB 0x2007
3972 #define WGL_NUMBER_OVERLAYS_ARB 0x2008
3973 #define WGL_NUMBER_UNDERLAYS_ARB 0x2009
3974 #define WGL_TRANSPARENT_ARB 0x200A
3975 #define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
3976 #define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
3977 #define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
3978 #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
3979 #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
3980 #define WGL_SHARE_DEPTH_ARB 0x200C
3981 #define WGL_SHARE_STENCIL_ARB 0x200D
3982 #define WGL_SHARE_ACCUM_ARB 0x200E
3983 #define WGL_SUPPORT_GDI_ARB 0x200F
3984 #define WGL_SUPPORT_OPENGL_ARB 0x2010
3985 #define WGL_DOUBLE_BUFFER_ARB 0x2011
3986 #define WGL_STEREO_ARB 0x2012
3987 #define WGL_PIXEL_TYPE_ARB 0x2013
3988 #define WGL_COLOR_BITS_ARB 0x2014
3989 #define WGL_RED_BITS_ARB 0x2015
3990 #define WGL_RED_SHIFT_ARB 0x2016
3991 #define WGL_GREEN_BITS_ARB 0x2017
3992 #define WGL_GREEN_SHIFT_ARB 0x2018
3993 #define WGL_BLUE_BITS_ARB 0x2019
3994 #define WGL_BLUE_SHIFT_ARB 0x201A
3995 #define WGL_ALPHA_BITS_ARB 0x201B
3996 #define WGL_ALPHA_SHIFT_ARB 0x201C
3997 #define WGL_ACCUM_BITS_ARB 0x201D
3998 #define WGL_ACCUM_RED_BITS_ARB 0x201E
3999 #define WGL_ACCUM_GREEN_BITS_ARB 0x201F
4000 #define WGL_ACCUM_BLUE_BITS_ARB 0x2020
4001 #define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
4002 #define WGL_DEPTH_BITS_ARB 0x2022
4003 #define WGL_STENCIL_BITS_ARB 0x2023
4004 #define WGL_AUX_BUFFERS_ARB 0x2024
4005 #define WGL_NO_ACCELERATION_ARB 0x2025
4006 #define WGL_GENERIC_ACCELERATION_ARB 0x2026
4007 #define WGL_FULL_ACCELERATION_ARB 0x2027
4008 #define WGL_SWAP_EXCHANGE_ARB 0x2028
4009 #define WGL_SWAP_COPY_ARB 0x2029
4010 #define WGL_SWAP_UNDEFINED_ARB 0x202A
4011 #define WGL_TYPE_RGBA_ARB 0x202B
4012 #define WGL_TYPE_COLORINDEX_ARB 0x202C
4014 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
4015 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
4016 typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
4018 #define wglGetPixelFormatAttribivARB GLEGetCurrentFunction(wglGetPixelFormatAttribivARB)
4019 #define wglGetPixelFormatAttribfvARB GLEGetCurrentFunction(wglGetPixelFormatAttribfvARB)
4020 #define wglChoosePixelFormatARB GLEGetCurrentFunction(wglChoosePixelFormatARB)
4022 #define GLE_WGL_ARB_pixel_format GLEGetCurrentVariable(gle_WGL_ARB_pixel_format)
4023 #endif
4026 #ifndef WGL_ARB_make_current_read
4027 #define WGL_ARB_make_current_read 1
4029 #define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
4030 #define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
4032 typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
4033 typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void);
4035 #define wglMakeContextCurrentARB GLEGetCurrentFunction(wglMakeContextCurrentARB)
4036 #define wglGetCurrentReadDCARB GLEGetCurrentFunction(wglGetCurrentReadDCARB)
4038 #define GLE_WGL_ARB_make_current_read GLEGetCurrentVariable(gle_WGL_ARB_make_current_read)
4039 #endif
4042 #ifndef WGL_ARB_pbuffer
4043 #define WGL_ARB_pbuffer 1
4045 #define WGL_DRAW_TO_PBUFFER_ARB 0x202D
4046 #define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E
4047 #define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F
4048 #define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030
4049 #define WGL_PBUFFER_LARGEST_ARB 0x2033
4050 #define WGL_PBUFFER_WIDTH_ARB 0x2034
4051 #define WGL_PBUFFER_HEIGHT_ARB 0x2035
4053 typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
4054 typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer);
4055 typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC);
4056 typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer);
4057 typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
4059 #define wglCreatePbufferARB GLEGetCurrentFunction(wglCreatePbufferARB)
4060 #define wglGetPbufferDCARB GLEGetCurrentFunction(wglGetPbufferDCARB)
4061 #define wglReleasePbufferDCARB GLEGetCurrentFunction(wglReleasePbufferDCARB)
4062 #define wglDestroyPbufferARB GLEGetCurrentFunction(wglDestroyPbufferARB)
4063 #define wglQueryPbufferARB GLEGetCurrentFunction(wglQueryPbufferARB)
4065 #define GLE_WGL_ARB_pbuffer GLEGetCurrentVariable(gle_WGL_ARB_pbuffer)
4066 #endif
4069 #ifndef WGL_ARB_render_texture
4070 #define WGL_ARB_render_texture 1
4072 #define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070
4073 #define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071
4074 #define WGL_TEXTURE_FORMAT_ARB 0x2072
4075 #define WGL_TEXTURE_TARGET_ARB 0x2073
4076 #define WGL_MIPMAP_TEXTURE_ARB 0x2074
4077 #define WGL_TEXTURE_RGB_ARB 0x2075
4078 #define WGL_TEXTURE_RGBA_ARB 0x2076
4079 #define WGL_NO_TEXTURE_ARB 0x2077
4080 #define WGL_TEXTURE_CUBE_MAP_ARB 0x2078
4081 #define WGL_TEXTURE_1D_ARB 0x2079
4082 #define WGL_TEXTURE_2D_ARB 0x207A
4083 #define WGL_MIPMAP_LEVEL_ARB 0x207B
4084 #define WGL_CUBE_MAP_FACE_ARB 0x207C
4085 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D
4086 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E
4087 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F
4088 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080
4089 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081
4090 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082
4091 #define WGL_FRONT_LEFT_ARB 0x2083
4092 #define WGL_FRONT_RIGHT_ARB 0x2084
4093 #define WGL_BACK_LEFT_ARB 0x2085
4094 #define WGL_BACK_RIGHT_ARB 0x2086
4095 #define WGL_AUX0_ARB 0x2087
4096 #define WGL_AUX1_ARB 0x2088
4097 #define WGL_AUX2_ARB 0x2089
4098 #define WGL_AUX3_ARB 0x208A
4099 #define WGL_AUX4_ARB 0x208B
4100 #define WGL_AUX5_ARB 0x208C
4101 #define WGL_AUX6_ARB 0x208D
4102 #define WGL_AUX7_ARB 0x208E
4103 #define WGL_AUX8_ARB 0x208F
4104 #define WGL_AUX9_ARB 0x2090
4106 typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
4107 typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
4108 typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int *piAttribList);
4110 #define wglBindTexImageARB GLEGetCurrentFunction(wglBindTexImageARB)
4111 #define wglReleaseTexImageARB GLEGetCurrentFunction(wglReleaseTexImageARB)
4112 #define wglSetPbufferAttribARB GLEGetCurrentFunction(wglSetPbufferAttribARB)
4114 #define GLE_WGL_ARB_render_texture GLEGetCurrentVariable(gle_WGL_ARB_render_texture)
4115 #endif
4118 #ifndef WGL_ARB_pixel_format_float
4119 #define WGL_ARB_pixel_format_float 1
4121 #define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0
4123 #define GLE_WGL_ARB_pixel_format_float GLEGetCurrentVariable(gle_WGL_ARB_pixel_format_float)
4124 #endif
4127 #ifndef WGL_ARB_framebuffer_sRGB
4128 #define WGL_ARB_framebuffer_sRGB 1
4130 // There is also the WGL_EXT_framebuffer_sRGB extension, which is the
4131 // same as this. So use this one instead of that for checking.
4132 #define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9
4134 #define GLE_WGL_ARB_framebuffer_sRGB GLEGetCurrentVariable(gle_WGL_ARB_framebuffer_sRGB)
4135 #endif
4138 #ifndef WGL_NV_present_video
4139 #define WGL_NV_present_video 1
4141 DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
4143 typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList);
4144 typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList);
4145 typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int *piValue);
4147 #define wglEnumerateVideoDevicesNV GLEGetCurrentFunction(wglEnumerateVideoDevicesNV)
4148 #define wglBindVideoDeviceNV GLEGetCurrentFunction(wglBindVideoDeviceNV)
4149 #define wglQueryCurrentContextNV GLEGetCurrentFunction(wglQueryCurrentContextNV)
4151 #define GLE_WGL_NV_present_video GLEGetCurrentVariable(gle_WGL_NV_present_video)
4152 #endif
4155 #ifndef WGL_ARB_create_context
4156 #define WGL_ARB_create_context 1
4158 #define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
4159 #define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
4160 #define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
4161 #define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
4162 #define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
4163 #define WGL_CONTEXT_FLAGS_ARB 0x2094
4164 #define ERROR_INVALID_VERSION_ARB 0x2095
4166 typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int *attribList);
4168 #define wglCreateContextAttribsARB GLEGetCurrentFunction(wglCreateContextAttribsARB)
4170 #define GLE_WGL_ARB_create_context GLEGetCurrentVariable(gle_WGL_ARB_create_context)
4171 #endif
4174 #ifndef WGL_ARB_create_context_profile
4175 #define WGL_ARB_create_context_profile 1
4177 #define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
4178 #define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
4179 #define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
4180 #define ERROR_INVALID_PROFILE_ARB 0x2096
4182 #define GLE_WGL_ARB_create_context_profile GLEGetCurrentVariable(gle_WGL_ARB_create_context_profile)
4183 #endif
4186 #ifndef WGL_ARB_create_context_robustness
4187 #define WGL_ARB_create_context_robustness 1
4189 #define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
4190 #define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
4191 #define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
4192 #define WGL_NO_RESET_NOTIFICATION_ARB 0x8261
4194 #define GLE_WGL_ARB_create_context_robustness GLEGetCurrentVariable(gle_WGL_ARB_create_context_robustness)
4195 #endif
4199 #ifndef WGL_ATI_render_texture_rectangle
4200 #define WGL_ATI_render_texture_rectangle 1
4202 #define WGL_TEXTURE_RECTANGLE_ATI 0x21A5
4204 #define GLE_WGL_ATI_render_texture_rectangle GLEGetCurrentVariable(gle_WGL_ATI_render_texture_rectangle)
4205 #endif
4208 #ifndef WGL_EXT_extensions_string
4209 #define WGL_EXT_extensions_string 1
4211 typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void);
4213 #define wglGetExtensionsStringEXT GLEGetCurrentFunction(wglGetExtensionsStringEXT)
4215 #define GLE_WGL_EXT_extensions_string GLEGetCurrentVariable(gle_WGL_EXT_extensions_string)
4216 #endif
4219 #ifndef WGL_NV_render_texture_rectangle
4220 #define WGL_NV_render_texture_rectangle 1
4222 #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
4223 #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
4224 #define WGL_TEXTURE_RECTANGLE_NV 0x20A2
4226 #define GLE_WGL_NV_render_texture_rectangle GLEGetCurrentVariable(gle_WGL_NV_render_texture_rectangle)
4227 #endif
4230 #ifndef WGL_EXT_swap_control
4231 #define WGL_EXT_swap_control 1
4233 typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void);
4234 typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval);
4236 #define wglGetSwapIntervalEXT GLEGetCurrentFunction(wglGetSwapIntervalEXT)
4237 #define wglSwapIntervalEXT GLEGetCurrentFunction(wglSwapIntervalEXT)
4239 #define GLE_WGL_EXT_swap_control GLEGetCurrentVariable(gle_WGL_EXT_swap_control)
4240 #endif
4243 #ifndef WGL_OML_sync_control
4244 #define WGL_OML_sync_control 1
4246 typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
4247 typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32 *numerator, INT32 *denominator);
4248 typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
4249 typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
4250 typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
4251 typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
4253 #define wglGetSyncValuesOML GLEGetCurrentFunction(wglGetSyncValuesOML)
4254 #define wglGetMscRateOML GLEGetCurrentFunction(wglGetMscRateOML)
4255 #define wglSwapBuffersMscOML GLEGetCurrentFunction(wglSwapBuffersMscOML)
4256 #define wglSwapLayerBuffersMscOML GLEGetCurrentFunction(wglSwapLayerBuffersMscOML)
4257 #define wglWaitForMscOML GLEGetCurrentFunction(wglWaitForMscOML)
4258 #define wglWaitForSbcOML GLEGetCurrentFunction(wglWaitForSbcOML)
4260 #define GLE_WGL_OML_sync_control GLEGetCurrentVariable(gle_WGL_OML_sync_control)
4261 #endif
4264 #ifndef WGL_NV_video_output
4265 #define WGL_NV_video_output 1
4267 DECLARE_HANDLE(HPVIDEODEV);
4269 typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice);
4270 typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice);
4271 typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
4272 typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer);
4273 typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock);
4274 typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
4276 #define wglGetVideoDeviceNV GLEGetCurrentFunction(wglGetVideoDeviceNV)
4277 #define wglReleaseVideoDeviceNV GLEGetCurrentFunction(wglReleaseVideoDeviceNV)
4278 #define wglBindVideoImageNV GLEGetCurrentFunction(wglBindVideoImageNV)
4279 #define wglReleaseVideoImageNV GLEGetCurrentFunction(wglReleaseVideoImageNV)
4280 #define wglSendPbufferToVideoNV GLEGetCurrentFunction(wglSendPbufferToVideoNV)
4281 #define wglGetVideoInfoNV GLEGetCurrentFunction(wglGetVideoInfoNV)
4283 #define GLE_WGL_NV_video_output GLEGetCurrentVariable(gle_WGL_NV_video_output)
4284 #endif
4287 #ifndef WGL_NV_swap_group
4288 #define WGL_NV_swap_group 1
4290 typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group);
4291 typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier);
4292 typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint *group, GLuint *barrier);
4293 typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
4294 typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint *count);
4295 typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC);
4297 #define wglJoinSwapGroupNV GLEGetCurrentFunction(wglJoinSwapGroupNV)
4298 #define wglBindSwapBarrierNV GLEGetCurrentFunction(wglBindSwapBarrierNV)
4299 #define wglQuerySwapGroupNV GLEGetCurrentFunction(wglQuerySwapGroupNV)
4300 #define wglQueryMaxSwapGroupsNV GLEGetCurrentFunction(wglQueryMaxSwapGroupsNV)
4301 #define wglQueryFrameCountNV GLEGetCurrentFunction(wglQueryFrameCountNV)
4302 #define wglResetFrameCountNV GLEGetCurrentFunction(wglResetFrameCountNV)
4304 #define GLE_WGL_NV_swap_group GLEGetCurrentVariable(gle_WGL_NV_swap_group)
4305 #endif
4308 #ifndef WGL_NV_video_capture
4309 #define WGL_NV_video_capture 1
4311 #define WGL_UNIQUE_ID_NV 0x20CE
4312 #define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
4314 typedef struct _GPU_DEVICE {
4315 DWORD cb;
4316 CHAR DeviceName[32];
4317 CHAR DeviceString[128];
4318 DWORD Flags;
4319 RECT rcVirtualScreen;
4320 } GPU_DEVICE, *PGPU_DEVICE;
4321 DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
4323 typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
4324 typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList);
4325 typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
4326 typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue);
4327 typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
4329 #define wglBindVideoCaptureDeviceNV GLEGetCurrentFunction(wglBindVideoCaptureDeviceNV)
4330 #define wglEnumerateVideoCaptureDevicesNV GLEGetCurrentFunction(wglEnumerateVideoCaptureDevicesNV)
4331 #define wglLockVideoCaptureDeviceNV GLEGetCurrentFunction(wglLockVideoCaptureDeviceNV)
4332 #define wglQueryVideoCaptureDeviceNV GLEGetCurrentFunction(wglQueryVideoCaptureDeviceNV)
4333 #define wglReleaseVideoCaptureDeviceNV GLEGetCurrentFunction(wglReleaseVideoCaptureDeviceNV)
4335 #define GLE_WGL_NV_video_capture GLEGetCurrentVariable(gle_WGL_NV_video_capture)
4336 #endif
4339 #ifndef WGL_NV_copy_image
4340 #define WGL_NV_copy_image 1
4342 typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
4344 #define wglCopyImageSubDataNV GLEGetCurrentFunction(wglCopyImageSubDataNV)
4346 #define GLE_WGL_NV_copy_image GLEGetCurrentVariable(gle_WGL_NV_copy_image)
4347 #endif
4350 #ifndef WGL_NV_DX_interop
4351 #define WGL_NV_DX_interop 1
4353 // Note that modern AMD drivers support this NVidia extension.
4354 #define WGL_ACCESS_READ_ONLY_NV 0x0000
4355 #define WGL_ACCESS_READ_WRITE_NV 0x0001
4356 #define WGL_ACCESS_WRITE_DISCARD_NV 0x0002
4358 typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice);
4359 typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects);
4360 typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access);
4361 typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void* dxDevice);
4362 typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void* dxObject, GLuint name, GLenum type, GLenum access);
4363 typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void* dxObject, HANDLE shareHandle);
4364 typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects);
4365 typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject);
4367 #define wglDXCloseDeviceNV GLEGetCurrentFunction(wglDXCloseDeviceNV)
4368 #define wglDXLockObjectsNV GLEGetCurrentFunction(wglDXLockObjectsNV)
4369 #define wglDXObjectAccessNV GLEGetCurrentFunction(wglDXObjectAccessNV)
4370 #define wglDXOpenDeviceNV GLEGetCurrentFunction(wglDXOpenDeviceNV)
4371 #define wglDXRegisterObjectNV GLEGetCurrentFunction(wglDXRegisterObjectNV)
4372 #define wglDXSetResourceShareHandleNV GLEGetCurrentFunction(wglDXSetResourceShareHandleNV)
4373 #define wglDXUnlockObjectsNV GLEGetCurrentFunction(wglDXUnlockObjectsNV)
4374 #define wglDXUnregisterObjectNV GLEGetCurrentFunction(wglDXUnregisterObjectNV)
4376 #define GLE_WGL_NV_DX_interop GLEGetCurrentVariable(gle_WGL_NV_DX_interop)
4377 #endif
4380 #ifndef WGL_NV_DX_interop2
4381 #define WGL_NV_DX_interop2 1
4383 // This is an update to WGL_NV_DX_interop to support DX10/DX11.
4384 // https://www.opengl.org/registry/specs/NV/DX_interop2.txt
4385 #define GLE_WGL_NV_DX_interop2 GLEGetCurrentVariable(gle_WGL_NV_DX_interop2)
4387 #endif
4389 #endif // GLE_WGL_ENABLED
4393 /************************************************************************************
4394 Apple-specific (CGL) functionality
4395 ************************************************************************************/
4397 #if defined(GLE_CGL_ENABLED)
4398 // We don't currently disable Apple's OpenGL/OpenGL.h and replicate its declarations here.
4399 // We might want to do that if we intended to support hooking its functions here like we do for wgl functions.
4400 #include <OpenGL/OpenGL.h>
4401 #endif
4405 /************************************************************************************
4406 Unix-specific (GLX) functionality
4407 ************************************************************************************/
4409 #if defined(GLE_GLX_ENABLED)
4410 #ifdef __glxext_h_
4411 #error glxext.h was included before this header. This header needs to be inlcuded instead of or at least before glxext.h
4412 #endif
4413 #define __glxext_h_
4415 #if defined(GLX_H) || defined(__GLX_glx_h__) || defined(__glx_h__)
4416 #error glx.h was included before this header. This header needs to be inlcuded instead of or at least before glx.h
4417 #endif
4418 #define GLX_H
4419 #define __GLX_glx_h__
4420 #define __glx_h__
4422 #include <X11/Xlib.h>
4423 #include <X11/Xutil.h>
4424 #include <X11/Xmd.h>
4426 // GLX version 1.0 functions are assumed to always be present.
4427 #ifndef GLX_VERSION_1_0
4428 #define GLX_VERSION_1_0 1
4430 #define GLX_USE_GL 1
4431 #define GLX_BUFFER_SIZE 2
4432 #define GLX_LEVEL 3
4433 #define GLX_RGBA 4
4434 #define GLX_DOUBLEBUFFER 5
4435 #define GLX_STEREO 6
4436 #define GLX_AUX_BUFFERS 7
4437 #define GLX_RED_SIZE 8
4438 #define GLX_GREEN_SIZE 9
4439 #define GLX_BLUE_SIZE 10
4440 #define GLX_ALPHA_SIZE 11
4441 #define GLX_DEPTH_SIZE 12
4442 #define GLX_STENCIL_SIZE 13
4443 #define GLX_ACCUM_RED_SIZE 14
4444 #define GLX_ACCUM_GREEN_SIZE 15
4445 #define GLX_ACCUM_BLUE_SIZE 16
4446 #define GLX_ACCUM_ALPHA_SIZE 17
4447 #define GLX_BAD_SCREEN 1
4448 #define GLX_BAD_ATTRIBUTE 2
4449 #define GLX_NO_EXTENSION 3
4450 #define GLX_BAD_VISUAL 4
4451 #define GLX_BAD_CONTEXT 5
4452 #define GLX_BAD_VALUE 6
4453 #define GLX_BAD_ENUM 7
4455 typedef XID GLXDrawable;
4456 typedef XID GLXPixmap;
4457 typedef unsigned int GLXVideoDeviceNV;
4458 typedef struct __GLXcontextRec *GLXContext;
4460 // GLE_HOOKING_ENABLED
4461 // We don't currently support hooking the following GLX 1.0 functions like we do with the analagous windows wgl functions.
4462 // However, we can do this if needed. We would just have something like this:
4463 // #define glXQueryExtension(...) GLEGetCurrentFunction(glXQueryExtension)(__VA_ARGS__)
4464 // plus a member function like:
4465 // Bool glXQueryExtension_Hook(Display*, int*, int*);
4466 // See wglCopyContext for an example.
4468 extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase);
4469 extern Bool glXQueryVersion (Display *dpy, int *major, int *minor);
4470 extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value);
4471 extern XVisualInfo* glXChooseVisual (Display *dpy, int screen, int *attribList);
4472 extern GLXPixmap glXCreateGLXPixmap (Display *dpy, XVisualInfo *vis, Pixmap pixmap);
4473 extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix);
4474 extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct);
4475 extern void glXDestroyContext (Display *dpy, GLXContext ctx);
4476 extern Bool glXIsDirect (Display *dpy, GLXContext ctx);
4477 extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLulong mask);
4478 extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx);
4479 extern GLXContext glXGetCurrentContext (void);
4480 extern GLXDrawable glXGetCurrentDrawable (void);
4481 extern void glXWaitGL (void);
4482 extern void glXWaitX (void);
4483 extern void glXSwapBuffers (Display *dpy, GLXDrawable drawable);
4484 extern void glXUseXFont (Font font, int first, int count, int listBase);
4486 #endif // GLX_VERSION_1_0
4490 #ifndef GLX_VERSION_1_1
4491 #define GLX_VERSION_1_1
4493 #define GLX_VENDOR 0x1
4494 #define GLX_VERSION 0x2
4495 #define GLX_EXTENSIONS 0x3
4497 // These function pointers are assumed to always be present.
4498 extern const char* glXQueryExtensionsString (Display *dpy, int screen);
4499 extern const char* glXGetClientString (Display *dpy, int name);
4500 extern const char* glXQueryServerString (Display *dpy, int screen, int name);
4501 #endif
4504 #ifndef GLX_VERSION_1_2
4505 #define GLX_VERSION_1_2 1
4507 typedef Display* (* PFNGLXGETCURRENTDISPLAYPROC) (void);
4509 #define glXGetCurrentDisplay GLEGetCurrentFunction(glXGetCurrentDisplay)
4510 #endif
4514 #ifndef GLX_VERSION_1_3
4515 #define GLX_VERSION_1_3 1
4517 #define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
4518 #define GLX_RGBA_BIT 0x00000001
4519 #define GLX_WINDOW_BIT 0x00000001
4520 #define GLX_COLOR_INDEX_BIT 0x00000002
4521 #define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
4522 #define GLX_PIXMAP_BIT 0x00000002
4523 #define GLX_BACK_LEFT_BUFFER_BIT 0x00000004
4524 #define GLX_PBUFFER_BIT 0x00000004
4525 #define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
4526 #define GLX_AUX_BUFFERS_BIT 0x00000010
4527 #define GLX_CONFIG_CAVEAT 0x20
4528 #define GLX_DEPTH_BUFFER_BIT 0x00000020
4529 #define GLX_X_VISUAL_TYPE 0x22
4530 #define GLX_TRANSPARENT_TYPE 0x23
4531 #define GLX_TRANSPARENT_INDEX_VALUE 0x24
4532 #define GLX_TRANSPARENT_RED_VALUE 0x25
4533 #define GLX_TRANSPARENT_GREEN_VALUE 0x26
4534 #define GLX_TRANSPARENT_BLUE_VALUE 0x27
4535 #define GLX_TRANSPARENT_ALPHA_VALUE 0x28
4536 #define GLX_STENCIL_BUFFER_BIT 0x00000040
4537 #define GLX_ACCUM_BUFFER_BIT 0x00000080
4538 #define GLX_NONE 0x8000
4539 #define GLX_SLOW_CONFIG 0x8001
4540 #define GLX_TRUE_COLOR 0x8002
4541 #define GLX_DIRECT_COLOR 0x8003
4542 #define GLX_PSEUDO_COLOR 0x8004
4543 #define GLX_STATIC_COLOR 0x8005
4544 #define GLX_GRAY_SCALE 0x8006
4545 #define GLX_STATIC_GRAY 0x8007
4546 #define GLX_TRANSPARENT_RGB 0x8008
4547 #define GLX_TRANSPARENT_INDEX 0x8009
4548 #define GLX_VISUAL_ID 0x800B
4549 #define GLX_SCREEN 0x800C
4550 #define GLX_NON_CONFORMANT_CONFIG 0x800D
4551 #define GLX_DRAWABLE_TYPE 0x8010
4552 #define GLX_RENDER_TYPE 0x8011
4553 #define GLX_X_RENDERABLE 0x8012
4554 #define GLX_FBCONFIG_ID 0x8013
4555 #define GLX_RGBA_TYPE 0x8014
4556 #define GLX_COLOR_INDEX_TYPE 0x8015
4557 #define GLX_MAX_PBUFFER_WIDTH 0x8016
4558 #define GLX_MAX_PBUFFER_HEIGHT 0x8017
4559 #define GLX_MAX_PBUFFER_PIXELS 0x8018
4560 #define GLX_PRESERVED_CONTENTS 0x801B
4561 #define GLX_LARGEST_PBUFFER 0x801C
4562 #define GLX_WIDTH 0x801D
4563 #define GLX_HEIGHT 0x801E
4564 #define GLX_EVENT_MASK 0x801F
4565 #define GLX_DAMAGED 0x8020
4566 #define GLX_SAVED 0x8021
4567 #define GLX_WINDOW 0x8022
4568 #define GLX_PBUFFER 0x8023
4569 #define GLX_PBUFFER_HEIGHT 0x8040
4570 #define GLX_PBUFFER_WIDTH 0x8041
4571 #define GLX_PBUFFER_CLOBBER_MASK 0x08000000
4572 #define GLX_DONT_CARE 0xFFFFFFFF
4574 typedef XID GLXFBConfigID;
4575 typedef XID GLXPbuffer;
4576 typedef XID GLXWindow;
4577 typedef struct __GLXFBConfigRec *GLXFBConfig;
4579 typedef struct {
4580 int event_type;
4581 int draw_type;
4582 unsigned long serial;
4583 Bool send_event;
4584 Display *display;
4585 GLXDrawable drawable;
4586 unsigned int buffer_mask;
4587 unsigned int aux_buffer;
4588 int x, y;
4589 int width, height;
4590 int count;
4591 } GLXPbufferClobberEvent;
4593 typedef union __GLXEvent {
4594 GLXPbufferClobberEvent glxpbufferclobber;
4595 long pad[24];
4596 } GLXEvent;
4598 typedef GLXFBConfig* (* PFNGLXCHOOSEFBCONFIGPROC) (::Display *dpy, int screen, const int *attrib_list, int *nelements);
4599 typedef GLXContext (* PFNGLXCREATENEWCONTEXTPROC) (::Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
4600 typedef GLXPbuffer (* PFNGLXCREATEPBUFFERPROC) (::Display *dpy, GLXFBConfig config, const int *attrib_list);
4601 typedef GLXPixmap (* PFNGLXCREATEPIXMAPPROC) (::Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
4602 typedef GLXWindow (* PFNGLXCREATEWINDOWPROC) (::Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
4603 typedef void (* PFNGLXDESTROYPBUFFERPROC) (::Display *dpy, GLXPbuffer pbuf);
4604 typedef void (* PFNGLXDESTROYPIXMAPPROC) (::Display *dpy, GLXPixmap pixmap);
4605 typedef void (* PFNGLXDESTROYWINDOWPROC) (::Display *dpy, GLXWindow win);
4606 typedef GLXDrawable (* PFNGLXGETCURRENTREADDRAWABLEPROC) (void);
4607 typedef int (* PFNGLXGETFBCONFIGATTRIBPROC) (::Display *dpy, GLXFBConfig config, int attribute, int *value);
4608 typedef GLXFBConfig* (* PFNGLXGETFBCONFIGSPROC) (::Display *dpy, int screen, int *nelements);
4609 typedef void (* PFNGLXGETSELECTEDEVENTPROC) (::Display *dpy, GLXDrawable draw, unsigned long *event_mask);
4610 typedef XVisualInfo* (* PFNGLXGETVISUALFROMFBCONFIGPROC) (::Display *dpy, GLXFBConfig config);
4611 typedef Bool (* PFNGLXMAKECONTEXTCURRENTPROC) (::Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
4612 typedef int (* PFNGLXQUERYCONTEXTPROC) (::Display *dpy, GLXContext ctx, int attribute, int *value);
4613 typedef void (* PFNGLXQUERYDRAWABLEPROC) (::Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
4614 typedef void (* PFNGLXSELECTEVENTPROC) (::Display *dpy, GLXDrawable draw, unsigned long event_mask);
4616 #define glXChooseFBConfig GLEGetCurrentFunction(glXChooseFBConfig)
4617 #define glXCreateNewContext GLEGetCurrentFunction(glXCreateNewContext)
4618 #define glXCreatePbuffer GLEGetCurrentFunction(glXCreatePbuffer)
4619 #define glXCreatePixmap GLEGetCurrentFunction(glXCreatePixmap)
4620 #define glXCreateWindow GLEGetCurrentFunction(glXCreateWindow)
4621 #define glXDestroyPbuffer GLEGetCurrentFunction(glXDestroyPbuffer)
4622 #define glXDestroyPixmap GLEGetCurrentFunction(glXDestroyPixmap)
4623 #define glXDestroyWindow GLEGetCurrentFunction(glXDestroyWindow)
4624 #define glXGetCurrentReadDrawable GLEGetCurrentFunction(glXGetCurrentReadDrawable)
4625 #define glXGetFBConfigAttrib GLEGetCurrentFunction(glXGetFBConfigAttrib)
4626 #define glXGetFBConfigs GLEGetCurrentFunction(glXGetFBConfigs)
4627 #define glXGetSelectedEvent GLEGetCurrentFunction(glXGetSelectedEvent)
4628 #define glXGetVisualFromFBConfig GLEGetCurrentFunction(glXGetVisualFromFBConfig)
4629 #define glXMakeContextCurrent GLEGetCurrentFunction(glXMakeContextCurrent)
4630 #define glXQueryContext GLEGetCurrentFunction(glXQueryContext)
4631 #define glXQueryDrawable GLEGetCurrentFunction(glXQueryDrawable)
4632 #define glXSelectEvent GLEGetCurrentFunction(glXSelectEvent)
4634 #endif // GLX_VERSION_1_3
4638 #ifndef GLX_VERSION_1_4
4639 #define GLX_VERSION_1_4 1
4641 #define GLX_SAMPLE_BUFFERS 100000
4642 #define GLX_SAMPLES 100001
4644 // This was glXGetProcAddressARB in GLX versions prior to v1.4.
4645 // This function pointer is assumed to always be present.
4646 extern void (* glXGetProcAddress(const GLubyte *procName)) ();
4648 // For backward compatibility
4649 extern void (* glXGetProcAddressARB(const GLubyte *procName)) ();
4650 #endif
4654 #ifndef GLX_ARB_create_context
4655 #define GLX_ARB_create_context 1
4657 #define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001
4658 #define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002
4659 #define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
4660 #define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
4661 #define GLX_CONTEXT_FLAGS_ARB 0x2094
4663 typedef GLXContext (* PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list);
4665 #define glXCreateContextAttribsARB GLEGetCurrentFunction(glXCreateContextAttribsARB)
4667 #define GLE_GLX_ARB_create_context GLEGetCurrentVariable(gle_GLX_ARB_create_context)
4668 #endif
4671 #ifndef GLX_ARB_create_context_profile
4672 #define GLX_ARB_create_context_profile 1
4674 #define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
4675 #define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
4676 #define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126
4678 #define GLE_GLX_ARB_create_context_profile GLEGetCurrentVariable(gle_GLX_ARB_create_context_profile)
4679 #endif
4682 #ifndef GLX_ARB_create_context_robustness
4683 #define GLX_ARB_create_context_robustness 1
4685 #define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
4686 #define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252
4687 #define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
4688 #define GLX_NO_RESET_NOTIFICATION_ARB 0x8261
4690 #define GLE_GLX_ARB_create_context_robustness GLEGetCurrentVariable(gle_GLX_ARB_create_context_robustness)
4691 #endif
4694 // Note: In order to detect the GLX extensions' availability, we need to call glXQueryExtensionsString instead of glGetString(GL_EXTENSIONS).
4695 #ifndef GLX_EXT_swap_control
4696 #define GLX_EXT_swap_control 1
4698 #define GLX_SWAP_INTERVAL_EXT 0x20F1
4699 #define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2
4701 typedef void (* PFNGLXSWAPINTERVALEXTPROC) (Display* dpy, GLXDrawable drawable, int interval);
4703 #define glXSwapIntervalEXT GLEGetCurrentFunction(glXSwapIntervalEXT)
4705 #define GLE_GLX_EXT_swap_control GLEGetCurrentVariable(gle_GLX_EXT_swap_control)
4706 #endif
4709 #ifndef GLX_OML_sync_control
4710 #define GLX_OML_sync_control 1
4712 typedef Bool (* PFNGLXGETMSCRATEOMLPROC) (Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator);
4713 typedef Bool (* PFNGLXGETSYNCVALUESOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t* ust, int64_t* msc, int64_t* sbc);
4714 typedef int64_t (* PFNGLXSWAPBUFFERSMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
4715 typedef Bool (* PFNGLXWAITFORMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t* ust, int64_t* msc, int64_t* sbc);
4716 typedef Bool (* PFNGLXWAITFORSBCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_sbc, int64_t* ust, int64_t* msc, int64_t* sbc);
4718 #define glXGetMscRateOML GLEGetCurrentFunction(glXGetMscRateOML)
4719 #define glXGetSyncValuesOML GLEGetCurrentFunction(glXGetSyncValuesOML)
4720 #define glXSwapBuffersMscOML GLEGetCurrentFunction(glXSwapBuffersMscOML)
4721 #define glXWaitForMscOML GLEGetCurrentFunction(glXWaitForMscOML)
4722 #define glXWaitForSbcOML GLEGetCurrentFunction(glXWaitForSbcOML)
4724 #define GLE_GLX_OML_sync_control GLEGetCurrentVariable(gle_GLX_OML_sync_control)
4725 #endif
4728 #ifndef GLX_MESA_swap_control
4729 #define GLX_MESA_swap_control 1
4731 // GLX_MESA_swap_control has the same functionality as GLX_EXT_swap_control but with a different interface, so we have an independent entry for it here.
4732 typedef int (* PFNGLXGETSWAPINTERVALMESAPROC) (void);
4733 typedef int (* PFNGLXSWAPINTERVALMESAPROC) (unsigned int interval);
4735 #define glXGetSwapIntervalMESA GLEGetCurrentFunction(glXGetSwapIntervalMESA)
4736 #define glXSwapIntervalMESA GLEGetCurrentFunction(glXSwapIntervalMESA)
4738 #define GLE_MESA_swap_control GLEGetCurrentVariable(gle_MESA_swap_control)
4739 #endif
4741 #endif // GLE_GLX_ENABLED
4744 // Undo some defines, because the user may include <Windows.h> after including this header.
4745 #if defined(GLE_WINGDIAPI_DEFINED)
4746 #undef WINGDIAPI
4747 #endif
4750 #ifdef __cplusplus
4751 } // extern "C"
4752 #endif
4756 #endif // Header include guard