fixed: gcc8 compile issues
[opensg.git] / Source / External / OpenGL / GL3 / gl3.h
blob20bc99947295217800fb1f2cae20d7ba1f3dec19
1 #ifndef __gl3_h_
2 #define __gl3_h_
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
8 /*
9 ** Copyright (c) 2007-2012 The Khronos Group Inc.
10 **
11 ** Permission is hereby granted, free of charge, to any person obtaining a
12 ** copy of this software and/or associated documentation files (the
13 ** "Materials"), to deal in the Materials without restriction, including
14 ** without limitation the rights to use, copy, modify, merge, publish,
15 ** distribute, sublicense, and/or sell copies of the Materials, and to
16 ** permit persons to whom the Materials are furnished to do so, subject to
17 ** the following conditions:
18 **
19 ** The above copyright notice and this permission notice shall be included
20 ** in all copies or substantial portions of the Materials.
21 **
22 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
25 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
26 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
27 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
28 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
31 /* This is a draft release of gl3.h, a header for use with OpenGL 3.1, and
32 * 3.2 and later core profile implementations. The current version is
33 * available at http://www.opengl.org/registry/ . Please don't package
34 * gl3.h for release with other software until it's out of draft status.
35 * The structure of the file may change significantly, and the details
36 * will probably change slightly as we make sure exactly the right set
37 * of interfaces is included.
39 * gl3.h last updated on $Date: 2012-01-26 02:57:23 -0800 (Thu, 26 Jan 2012) $
41 * RELEASE NOTES - 2012/01/26
43 * gl3.h should be placed under a directory 'GL3' and included as
44 * '<GL3/gl3.h>'.
46 * gl3.h is supposed to only include APIs in a OpenGL 3.1 (without
47 * GL_ARB_compatibility) or OpenGL 3.2-4.2 (inclusive) core profile
48 * implementation, as well as interfaces for newer ARB extensions which
49 * can be supported by the core profile. It does not, and never will
50 * include functionality removed from the core profile, such as
51 * fixed-function vertex and fragment processing.
53 * Implementations of OpenGL 3.1 supporting the optional
54 * GL_ARB_compatibility extension continue to provide that functionality,
55 * as do implementations of the OpenGL 3.2+ compatibility profiles, and
56 * source code requiring it should use the traditional <GL/gl.h> and
57 * <GL/glext.h> headers instead of <GL3/gl3.h>.
59 * It is not possible to #include both <GL3/gl3.h> and either of
60 * <GL/gl.h> or <GL/glext.h> in the same source file.
62 * We welcome feedback on gl3.h. Please register for the Khronos Bugzilla
63 * (www.khronos.org/bugzilla) and file issues there under product
64 * "OpenGL", category "Registry". Feedback on the opengl.org forums
65 * may not be responded to in a timely fashion.
68 /* Function declaration macros - to move into glplatform.h */
70 #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
71 #define WIN32_LEAN_AND_MEAN 1
72 #include <windows.h>
73 #endif
75 #ifndef APIENTRY
76 #define APIENTRY
77 #endif
78 #ifndef APIENTRYP
79 #define APIENTRYP APIENTRY *
80 #endif
81 #ifndef GLAPI
82 #define GLAPI extern
83 #endif
85 /* Base GL types */
87 typedef unsigned int GLenum;
88 typedef unsigned char GLboolean;
89 typedef unsigned int GLbitfield;
90 typedef signed char GLbyte;
91 typedef short GLshort;
92 typedef int GLint;
93 typedef int GLsizei;
94 typedef unsigned char GLubyte;
95 typedef unsigned short GLushort;
96 typedef unsigned int GLuint;
97 typedef unsigned short GLhalf;
98 typedef float GLfloat;
99 typedef float GLclampf;
100 typedef double GLdouble;
101 typedef double GLclampd;
102 typedef void GLvoid;
104 /*************************************************************/
106 #ifndef GL_VERSION_1_1
107 /* AttribMask */
108 #define GL_DEPTH_BUFFER_BIT 0x00000100
109 #define GL_STENCIL_BUFFER_BIT 0x00000400
110 #define GL_COLOR_BUFFER_BIT 0x00004000
111 /* Boolean */
112 #define GL_FALSE 0
113 #define GL_TRUE 1
114 /* BeginMode */
115 #define GL_POINTS 0x0000
116 #define GL_LINES 0x0001
117 #define GL_LINE_LOOP 0x0002
118 #define GL_LINE_STRIP 0x0003
119 #define GL_TRIANGLES 0x0004
120 #define GL_TRIANGLE_STRIP 0x0005
121 #define GL_TRIANGLE_FAN 0x0006
122 /* AlphaFunction */
123 #define GL_NEVER 0x0200
124 #define GL_LESS 0x0201
125 #define GL_EQUAL 0x0202
126 #define GL_LEQUAL 0x0203
127 #define GL_GREATER 0x0204
128 #define GL_NOTEQUAL 0x0205
129 #define GL_GEQUAL 0x0206
130 #define GL_ALWAYS 0x0207
131 /* BlendingFactorDest */
132 #define GL_ZERO 0
133 #define GL_ONE 1
134 #define GL_SRC_COLOR 0x0300
135 #define GL_ONE_MINUS_SRC_COLOR 0x0301
136 #define GL_SRC_ALPHA 0x0302
137 #define GL_ONE_MINUS_SRC_ALPHA 0x0303
138 #define GL_DST_ALPHA 0x0304
139 #define GL_ONE_MINUS_DST_ALPHA 0x0305
140 /* BlendingFactorSrc */
141 #define GL_DST_COLOR 0x0306
142 #define GL_ONE_MINUS_DST_COLOR 0x0307
143 #define GL_SRC_ALPHA_SATURATE 0x0308
144 /* DrawBufferMode */
145 #define GL_NONE 0
146 #define GL_FRONT_LEFT 0x0400
147 #define GL_FRONT_RIGHT 0x0401
148 #define GL_BACK_LEFT 0x0402
149 #define GL_BACK_RIGHT 0x0403
150 #define GL_FRONT 0x0404
151 #define GL_BACK 0x0405
152 #define GL_LEFT 0x0406
153 #define GL_RIGHT 0x0407
154 #define GL_FRONT_AND_BACK 0x0408
155 /* ErrorCode */
156 #define GL_NO_ERROR 0
157 #define GL_INVALID_ENUM 0x0500
158 #define GL_INVALID_VALUE 0x0501
159 #define GL_INVALID_OPERATION 0x0502
160 #define GL_OUT_OF_MEMORY 0x0505
161 /* FrontFaceDirection */
162 #define GL_CW 0x0900
163 #define GL_CCW 0x0901
164 /* GetPName */
165 #define GL_POINT_SIZE 0x0B11
166 #define GL_POINT_SIZE_RANGE 0x0B12
167 #define GL_POINT_SIZE_GRANULARITY 0x0B13
168 #define GL_LINE_SMOOTH 0x0B20
169 #define GL_LINE_WIDTH 0x0B21
170 #define GL_LINE_WIDTH_RANGE 0x0B22
171 #define GL_LINE_WIDTH_GRANULARITY 0x0B23
172 #define GL_POLYGON_SMOOTH 0x0B41
173 #define GL_CULL_FACE 0x0B44
174 #define GL_CULL_FACE_MODE 0x0B45
175 #define GL_FRONT_FACE 0x0B46
176 #define GL_DEPTH_RANGE 0x0B70
177 #define GL_DEPTH_TEST 0x0B71
178 #define GL_DEPTH_WRITEMASK 0x0B72
179 #define GL_DEPTH_CLEAR_VALUE 0x0B73
180 #define GL_DEPTH_FUNC 0x0B74
181 #define GL_STENCIL_TEST 0x0B90
182 #define GL_STENCIL_CLEAR_VALUE 0x0B91
183 #define GL_STENCIL_FUNC 0x0B92
184 #define GL_STENCIL_VALUE_MASK 0x0B93
185 #define GL_STENCIL_FAIL 0x0B94
186 #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
187 #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
188 #define GL_STENCIL_REF 0x0B97
189 #define GL_STENCIL_WRITEMASK 0x0B98
190 #define GL_VIEWPORT 0x0BA2
191 #define GL_DITHER 0x0BD0
192 #define GL_BLEND_DST 0x0BE0
193 #define GL_BLEND_SRC 0x0BE1
194 #define GL_BLEND 0x0BE2
195 #define GL_LOGIC_OP_MODE 0x0BF0
196 #define GL_COLOR_LOGIC_OP 0x0BF2
197 #define GL_DRAW_BUFFER 0x0C01
198 #define GL_READ_BUFFER 0x0C02
199 #define GL_SCISSOR_BOX 0x0C10
200 #define GL_SCISSOR_TEST 0x0C11
201 #define GL_COLOR_CLEAR_VALUE 0x0C22
202 #define GL_COLOR_WRITEMASK 0x0C23
203 #define GL_DOUBLEBUFFER 0x0C32
204 #define GL_STEREO 0x0C33
205 #define GL_LINE_SMOOTH_HINT 0x0C52
206 #define GL_POLYGON_SMOOTH_HINT 0x0C53
207 #define GL_UNPACK_SWAP_BYTES 0x0CF0
208 #define GL_UNPACK_LSB_FIRST 0x0CF1
209 #define GL_UNPACK_ROW_LENGTH 0x0CF2
210 #define GL_UNPACK_SKIP_ROWS 0x0CF3
211 #define GL_UNPACK_SKIP_PIXELS 0x0CF4
212 #define GL_UNPACK_ALIGNMENT 0x0CF5
213 #define GL_PACK_SWAP_BYTES 0x0D00
214 #define GL_PACK_LSB_FIRST 0x0D01
215 #define GL_PACK_ROW_LENGTH 0x0D02
216 #define GL_PACK_SKIP_ROWS 0x0D03
217 #define GL_PACK_SKIP_PIXELS 0x0D04
218 #define GL_PACK_ALIGNMENT 0x0D05
219 #define GL_MAX_TEXTURE_SIZE 0x0D33
220 #define GL_MAX_VIEWPORT_DIMS 0x0D3A
221 #define GL_SUBPIXEL_BITS 0x0D50
222 #define GL_TEXTURE_1D 0x0DE0
223 #define GL_TEXTURE_2D 0x0DE1
224 #define GL_POLYGON_OFFSET_UNITS 0x2A00
225 #define GL_POLYGON_OFFSET_POINT 0x2A01
226 #define GL_POLYGON_OFFSET_LINE 0x2A02
227 #define GL_POLYGON_OFFSET_FILL 0x8037
228 #define GL_POLYGON_OFFSET_FACTOR 0x8038
229 #define GL_TEXTURE_BINDING_1D 0x8068
230 #define GL_TEXTURE_BINDING_2D 0x8069
231 /* GetTextureParameter */
232 #define GL_TEXTURE_WIDTH 0x1000
233 #define GL_TEXTURE_HEIGHT 0x1001
234 #define GL_TEXTURE_INTERNAL_FORMAT 0x1003
235 #define GL_TEXTURE_BORDER_COLOR 0x1004
236 #define GL_TEXTURE_RED_SIZE 0x805C
237 #define GL_TEXTURE_GREEN_SIZE 0x805D
238 #define GL_TEXTURE_BLUE_SIZE 0x805E
239 #define GL_TEXTURE_ALPHA_SIZE 0x805F
240 /* HintMode */
241 #define GL_DONT_CARE 0x1100
242 #define GL_FASTEST 0x1101
243 #define GL_NICEST 0x1102
244 /* DataType */
245 #define GL_BYTE 0x1400
246 #define GL_UNSIGNED_BYTE 0x1401
247 #define GL_SHORT 0x1402
248 #define GL_UNSIGNED_SHORT 0x1403
249 #define GL_INT 0x1404
250 #define GL_UNSIGNED_INT 0x1405
251 #define GL_FLOAT 0x1406
252 #define GL_DOUBLE 0x140A
253 /* LogicOp */
254 #define GL_CLEAR 0x1500
255 #define GL_AND 0x1501
256 #define GL_AND_REVERSE 0x1502
257 #define GL_COPY 0x1503
258 #define GL_AND_INVERTED 0x1504
259 #define GL_NOOP 0x1505
260 #define GL_XOR 0x1506
261 #define GL_OR 0x1507
262 #define GL_NOR 0x1508
263 #define GL_EQUIV 0x1509
264 #define GL_INVERT 0x150A
265 #define GL_OR_REVERSE 0x150B
266 #define GL_COPY_INVERTED 0x150C
267 #define GL_OR_INVERTED 0x150D
268 #define GL_NAND 0x150E
269 #define GL_SET 0x150F
270 /* MatrixMode (for gl3.h, FBO attachment type) */
271 #define GL_TEXTURE 0x1702
272 /* PixelCopyType */
273 #define GL_COLOR 0x1800
274 #define GL_DEPTH 0x1801
275 #define GL_STENCIL 0x1802
276 /* PixelFormat */
277 #define GL_STENCIL_INDEX 0x1901
278 #define GL_DEPTH_COMPONENT 0x1902
279 #define GL_RED 0x1903
280 #define GL_GREEN 0x1904
281 #define GL_BLUE 0x1905
282 #define GL_ALPHA 0x1906
283 #define GL_RGB 0x1907
284 #define GL_RGBA 0x1908
285 /* PolygonMode */
286 #define GL_POINT 0x1B00
287 #define GL_LINE 0x1B01
288 #define GL_FILL 0x1B02
289 /* StencilOp */
290 #define GL_KEEP 0x1E00
291 #define GL_REPLACE 0x1E01
292 #define GL_INCR 0x1E02
293 #define GL_DECR 0x1E03
294 /* StringName */
295 #define GL_VENDOR 0x1F00
296 #define GL_RENDERER 0x1F01
297 #define GL_VERSION 0x1F02
298 #define GL_EXTENSIONS 0x1F03
299 /* TextureMagFilter */
300 #define GL_NEAREST 0x2600
301 #define GL_LINEAR 0x2601
302 /* TextureMinFilter */
303 #define GL_NEAREST_MIPMAP_NEAREST 0x2700
304 #define GL_LINEAR_MIPMAP_NEAREST 0x2701
305 #define GL_NEAREST_MIPMAP_LINEAR 0x2702
306 #define GL_LINEAR_MIPMAP_LINEAR 0x2703
307 /* TextureParameterName */
308 #define GL_TEXTURE_MAG_FILTER 0x2800
309 #define GL_TEXTURE_MIN_FILTER 0x2801
310 #define GL_TEXTURE_WRAP_S 0x2802
311 #define GL_TEXTURE_WRAP_T 0x2803
312 /* TextureTarget */
313 #define GL_PROXY_TEXTURE_1D 0x8063
314 #define GL_PROXY_TEXTURE_2D 0x8064
315 /* TextureWrapMode */
316 #define GL_REPEAT 0x2901
317 /* PixelInternalFormat */
318 #define GL_R3_G3_B2 0x2A10
319 #define GL_RGB4 0x804F
320 #define GL_RGB5 0x8050
321 #define GL_RGB8 0x8051
322 #define GL_RGB10 0x8052
323 #define GL_RGB12 0x8053
324 #define GL_RGB16 0x8054
325 #define GL_RGBA2 0x8055
326 #define GL_RGBA4 0x8056
327 #define GL_RGB5_A1 0x8057
328 #define GL_RGBA8 0x8058
329 #define GL_RGB10_A2 0x8059
330 #define GL_RGBA12 0x805A
331 #define GL_RGBA16 0x805B
332 #endif
334 #ifndef GL_VERSION_1_2
335 #define GL_UNSIGNED_BYTE_3_3_2 0x8032
336 #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
337 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
338 #define GL_UNSIGNED_INT_8_8_8_8 0x8035
339 #define GL_UNSIGNED_INT_10_10_10_2 0x8036
340 #define GL_TEXTURE_BINDING_3D 0x806A
341 #define GL_PACK_SKIP_IMAGES 0x806B
342 #define GL_PACK_IMAGE_HEIGHT 0x806C
343 #define GL_UNPACK_SKIP_IMAGES 0x806D
344 #define GL_UNPACK_IMAGE_HEIGHT 0x806E
345 #define GL_TEXTURE_3D 0x806F
346 #define GL_PROXY_TEXTURE_3D 0x8070
347 #define GL_TEXTURE_DEPTH 0x8071
348 #define GL_TEXTURE_WRAP_R 0x8072
349 #define GL_MAX_3D_TEXTURE_SIZE 0x8073
350 #define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
351 #define GL_UNSIGNED_SHORT_5_6_5 0x8363
352 #define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
353 #define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
354 #define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
355 #define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
356 #define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
357 #define GL_BGR 0x80E0
358 #define GL_BGRA 0x80E1
359 #define GL_MAX_ELEMENTS_VERTICES 0x80E8
360 #define GL_MAX_ELEMENTS_INDICES 0x80E9
361 #define GL_CLAMP_TO_EDGE 0x812F
362 #define GL_TEXTURE_MIN_LOD 0x813A
363 #define GL_TEXTURE_MAX_LOD 0x813B
364 #define GL_TEXTURE_BASE_LEVEL 0x813C
365 #define GL_TEXTURE_MAX_LEVEL 0x813D
366 #define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
367 #define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
368 #define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
369 #define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
370 #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
371 #endif
373 #ifndef GL_ARB_imaging
374 #define GL_CONSTANT_COLOR 0x8001
375 #define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
376 #define GL_CONSTANT_ALPHA 0x8003
377 #define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
378 #define GL_BLEND_COLOR 0x8005
379 #define GL_FUNC_ADD 0x8006
380 #define GL_MIN 0x8007
381 #define GL_MAX 0x8008
382 #define GL_BLEND_EQUATION 0x8009
383 #define GL_FUNC_SUBTRACT 0x800A
384 #define GL_FUNC_REVERSE_SUBTRACT 0x800B
385 #endif
387 #ifndef GL_VERSION_1_3
388 #define GL_TEXTURE0 0x84C0
389 #define GL_TEXTURE1 0x84C1
390 #define GL_TEXTURE2 0x84C2
391 #define GL_TEXTURE3 0x84C3
392 #define GL_TEXTURE4 0x84C4
393 #define GL_TEXTURE5 0x84C5
394 #define GL_TEXTURE6 0x84C6
395 #define GL_TEXTURE7 0x84C7
396 #define GL_TEXTURE8 0x84C8
397 #define GL_TEXTURE9 0x84C9
398 #define GL_TEXTURE10 0x84CA
399 #define GL_TEXTURE11 0x84CB
400 #define GL_TEXTURE12 0x84CC
401 #define GL_TEXTURE13 0x84CD
402 #define GL_TEXTURE14 0x84CE
403 #define GL_TEXTURE15 0x84CF
404 #define GL_TEXTURE16 0x84D0
405 #define GL_TEXTURE17 0x84D1
406 #define GL_TEXTURE18 0x84D2
407 #define GL_TEXTURE19 0x84D3
408 #define GL_TEXTURE20 0x84D4
409 #define GL_TEXTURE21 0x84D5
410 #define GL_TEXTURE22 0x84D6
411 #define GL_TEXTURE23 0x84D7
412 #define GL_TEXTURE24 0x84D8
413 #define GL_TEXTURE25 0x84D9
414 #define GL_TEXTURE26 0x84DA
415 #define GL_TEXTURE27 0x84DB
416 #define GL_TEXTURE28 0x84DC
417 #define GL_TEXTURE29 0x84DD
418 #define GL_TEXTURE30 0x84DE
419 #define GL_TEXTURE31 0x84DF
420 #define GL_ACTIVE_TEXTURE 0x84E0
421 #define GL_MULTISAMPLE 0x809D
422 #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
423 #define GL_SAMPLE_ALPHA_TO_ONE 0x809F
424 #define GL_SAMPLE_COVERAGE 0x80A0
425 #define GL_SAMPLE_BUFFERS 0x80A8
426 #define GL_SAMPLES 0x80A9
427 #define GL_SAMPLE_COVERAGE_VALUE 0x80AA
428 #define GL_SAMPLE_COVERAGE_INVERT 0x80AB
429 #define GL_TEXTURE_CUBE_MAP 0x8513
430 #define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
431 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
432 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
433 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
434 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
435 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
436 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
437 #define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
438 #define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
439 #define GL_COMPRESSED_RGB 0x84ED
440 #define GL_COMPRESSED_RGBA 0x84EE
441 #define GL_TEXTURE_COMPRESSION_HINT 0x84EF
442 #define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
443 #define GL_TEXTURE_COMPRESSED 0x86A1
444 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
445 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
446 #define GL_CLAMP_TO_BORDER 0x812D
447 #endif
449 #ifndef GL_VERSION_1_4
450 #define GL_BLEND_DST_RGB 0x80C8
451 #define GL_BLEND_SRC_RGB 0x80C9
452 #define GL_BLEND_DST_ALPHA 0x80CA
453 #define GL_BLEND_SRC_ALPHA 0x80CB
454 #define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
455 #define GL_DEPTH_COMPONENT16 0x81A5
456 #define GL_DEPTH_COMPONENT24 0x81A6
457 #define GL_DEPTH_COMPONENT32 0x81A7
458 #define GL_MIRRORED_REPEAT 0x8370
459 #define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
460 #define GL_TEXTURE_LOD_BIAS 0x8501
461 #define GL_INCR_WRAP 0x8507
462 #define GL_DECR_WRAP 0x8508
463 #define GL_TEXTURE_DEPTH_SIZE 0x884A
464 #define GL_TEXTURE_COMPARE_MODE 0x884C
465 #define GL_TEXTURE_COMPARE_FUNC 0x884D
466 #endif
468 #ifndef GL_VERSION_1_5
469 #define GL_BUFFER_SIZE 0x8764
470 #define GL_BUFFER_USAGE 0x8765
471 #define GL_QUERY_COUNTER_BITS 0x8864
472 #define GL_CURRENT_QUERY 0x8865
473 #define GL_QUERY_RESULT 0x8866
474 #define GL_QUERY_RESULT_AVAILABLE 0x8867
475 #define GL_ARRAY_BUFFER 0x8892
476 #define GL_ELEMENT_ARRAY_BUFFER 0x8893
477 #define GL_ARRAY_BUFFER_BINDING 0x8894
478 #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
479 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
480 #define GL_READ_ONLY 0x88B8
481 #define GL_WRITE_ONLY 0x88B9
482 #define GL_READ_WRITE 0x88BA
483 #define GL_BUFFER_ACCESS 0x88BB
484 #define GL_BUFFER_MAPPED 0x88BC
485 #define GL_BUFFER_MAP_POINTER 0x88BD
486 #define GL_STREAM_DRAW 0x88E0
487 #define GL_STREAM_READ 0x88E1
488 #define GL_STREAM_COPY 0x88E2
489 #define GL_STATIC_DRAW 0x88E4
490 #define GL_STATIC_READ 0x88E5
491 #define GL_STATIC_COPY 0x88E6
492 #define GL_DYNAMIC_DRAW 0x88E8
493 #define GL_DYNAMIC_READ 0x88E9
494 #define GL_DYNAMIC_COPY 0x88EA
495 #define GL_SAMPLES_PASSED 0x8914
496 #endif
498 #ifndef GL_VERSION_2_0
499 #define GL_BLEND_EQUATION_RGB 0x8009
500 #define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
501 #define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
502 #define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
503 #define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
504 #define GL_CURRENT_VERTEX_ATTRIB 0x8626
505 #define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
506 #define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
507 #define GL_STENCIL_BACK_FUNC 0x8800
508 #define GL_STENCIL_BACK_FAIL 0x8801
509 #define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
510 #define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
511 #define GL_MAX_DRAW_BUFFERS 0x8824
512 #define GL_DRAW_BUFFER0 0x8825
513 #define GL_DRAW_BUFFER1 0x8826
514 #define GL_DRAW_BUFFER2 0x8827
515 #define GL_DRAW_BUFFER3 0x8828
516 #define GL_DRAW_BUFFER4 0x8829
517 #define GL_DRAW_BUFFER5 0x882A
518 #define GL_DRAW_BUFFER6 0x882B
519 #define GL_DRAW_BUFFER7 0x882C
520 #define GL_DRAW_BUFFER8 0x882D
521 #define GL_DRAW_BUFFER9 0x882E
522 #define GL_DRAW_BUFFER10 0x882F
523 #define GL_DRAW_BUFFER11 0x8830
524 #define GL_DRAW_BUFFER12 0x8831
525 #define GL_DRAW_BUFFER13 0x8832
526 #define GL_DRAW_BUFFER14 0x8833
527 #define GL_DRAW_BUFFER15 0x8834
528 #define GL_BLEND_EQUATION_ALPHA 0x883D
529 #define GL_MAX_VERTEX_ATTRIBS 0x8869
530 #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
531 #define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
532 #define GL_FRAGMENT_SHADER 0x8B30
533 #define GL_VERTEX_SHADER 0x8B31
534 #define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
535 #define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
536 #define GL_MAX_VARYING_FLOATS 0x8B4B
537 #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
538 #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
539 #define GL_SHADER_TYPE 0x8B4F
540 #define GL_FLOAT_VEC2 0x8B50
541 #define GL_FLOAT_VEC3 0x8B51
542 #define GL_FLOAT_VEC4 0x8B52
543 #define GL_INT_VEC2 0x8B53
544 #define GL_INT_VEC3 0x8B54
545 #define GL_INT_VEC4 0x8B55
546 #define GL_BOOL 0x8B56
547 #define GL_BOOL_VEC2 0x8B57
548 #define GL_BOOL_VEC3 0x8B58
549 #define GL_BOOL_VEC4 0x8B59
550 #define GL_FLOAT_MAT2 0x8B5A
551 #define GL_FLOAT_MAT3 0x8B5B
552 #define GL_FLOAT_MAT4 0x8B5C
553 #define GL_SAMPLER_1D 0x8B5D
554 #define GL_SAMPLER_2D 0x8B5E
555 #define GL_SAMPLER_3D 0x8B5F
556 #define GL_SAMPLER_CUBE 0x8B60
557 #define GL_SAMPLER_1D_SHADOW 0x8B61
558 #define GL_SAMPLER_2D_SHADOW 0x8B62
559 #define GL_DELETE_STATUS 0x8B80
560 #define GL_COMPILE_STATUS 0x8B81
561 #define GL_LINK_STATUS 0x8B82
562 #define GL_VALIDATE_STATUS 0x8B83
563 #define GL_INFO_LOG_LENGTH 0x8B84
564 #define GL_ATTACHED_SHADERS 0x8B85
565 #define GL_ACTIVE_UNIFORMS 0x8B86
566 #define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
567 #define GL_SHADER_SOURCE_LENGTH 0x8B88
568 #define GL_ACTIVE_ATTRIBUTES 0x8B89
569 #define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
570 #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
571 #define GL_SHADING_LANGUAGE_VERSION 0x8B8C
572 #define GL_CURRENT_PROGRAM 0x8B8D
573 #define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0
574 #define GL_LOWER_LEFT 0x8CA1
575 #define GL_UPPER_LEFT 0x8CA2
576 #define GL_STENCIL_BACK_REF 0x8CA3
577 #define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
578 #define GL_STENCIL_BACK_WRITEMASK 0x8CA5
579 #endif
581 #ifndef GL_VERSION_2_1
582 #define GL_PIXEL_PACK_BUFFER 0x88EB
583 #define GL_PIXEL_UNPACK_BUFFER 0x88EC
584 #define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
585 #define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
586 #define GL_FLOAT_MAT2x3 0x8B65
587 #define GL_FLOAT_MAT2x4 0x8B66
588 #define GL_FLOAT_MAT3x2 0x8B67
589 #define GL_FLOAT_MAT3x4 0x8B68
590 #define GL_FLOAT_MAT4x2 0x8B69
591 #define GL_FLOAT_MAT4x3 0x8B6A
592 #define GL_SRGB 0x8C40
593 #define GL_SRGB8 0x8C41
594 #define GL_SRGB_ALPHA 0x8C42
595 #define GL_SRGB8_ALPHA8 0x8C43
596 #define GL_COMPRESSED_SRGB 0x8C48
597 #define GL_COMPRESSED_SRGB_ALPHA 0x8C49
598 #endif
600 #ifndef GL_VERSION_3_0
601 #define GL_COMPARE_REF_TO_TEXTURE 0x884E
602 #define GL_CLIP_DISTANCE0 0x3000
603 #define GL_CLIP_DISTANCE1 0x3001
604 #define GL_CLIP_DISTANCE2 0x3002
605 #define GL_CLIP_DISTANCE3 0x3003
606 #define GL_CLIP_DISTANCE4 0x3004
607 #define GL_CLIP_DISTANCE5 0x3005
608 #define GL_CLIP_DISTANCE6 0x3006
609 #define GL_CLIP_DISTANCE7 0x3007
610 #define GL_MAX_CLIP_DISTANCES 0x0D32
611 #define GL_MAJOR_VERSION 0x821B
612 #define GL_MINOR_VERSION 0x821C
613 #define GL_NUM_EXTENSIONS 0x821D
614 #define GL_CONTEXT_FLAGS 0x821E
615 #define GL_COMPRESSED_RED 0x8225
616 #define GL_COMPRESSED_RG 0x8226
617 #define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001
618 #define GL_RGBA32F 0x8814
619 #define GL_RGB32F 0x8815
620 #define GL_RGBA16F 0x881A
621 #define GL_RGB16F 0x881B
622 #define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
623 #define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
624 #define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
625 #define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
626 #define GL_CLAMP_READ_COLOR 0x891C
627 #define GL_FIXED_ONLY 0x891D
628 #define GL_MAX_VARYING_COMPONENTS 0x8B4B
629 #define GL_TEXTURE_1D_ARRAY 0x8C18
630 #define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19
631 #define GL_TEXTURE_2D_ARRAY 0x8C1A
632 #define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B
633 #define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C
634 #define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
635 #define GL_R11F_G11F_B10F 0x8C3A
636 #define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
637 #define GL_RGB9_E5 0x8C3D
638 #define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
639 #define GL_TEXTURE_SHARED_SIZE 0x8C3F
640 #define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
641 #define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
642 #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
643 #define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
644 #define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
645 #define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
646 #define GL_PRIMITIVES_GENERATED 0x8C87
647 #define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
648 #define GL_RASTERIZER_DISCARD 0x8C89
649 #define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
650 #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
651 #define GL_INTERLEAVED_ATTRIBS 0x8C8C
652 #define GL_SEPARATE_ATTRIBS 0x8C8D
653 #define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
654 #define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
655 #define GL_RGBA32UI 0x8D70
656 #define GL_RGB32UI 0x8D71
657 #define GL_RGBA16UI 0x8D76
658 #define GL_RGB16UI 0x8D77
659 #define GL_RGBA8UI 0x8D7C
660 #define GL_RGB8UI 0x8D7D
661 #define GL_RGBA32I 0x8D82
662 #define GL_RGB32I 0x8D83
663 #define GL_RGBA16I 0x8D88
664 #define GL_RGB16I 0x8D89
665 #define GL_RGBA8I 0x8D8E
666 #define GL_RGB8I 0x8D8F
667 #define GL_RED_INTEGER 0x8D94
668 #define GL_GREEN_INTEGER 0x8D95
669 #define GL_BLUE_INTEGER 0x8D96
670 #define GL_RGB_INTEGER 0x8D98
671 #define GL_RGBA_INTEGER 0x8D99
672 #define GL_BGR_INTEGER 0x8D9A
673 #define GL_BGRA_INTEGER 0x8D9B
674 #define GL_SAMPLER_1D_ARRAY 0x8DC0
675 #define GL_SAMPLER_2D_ARRAY 0x8DC1
676 #define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3
677 #define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
678 #define GL_SAMPLER_CUBE_SHADOW 0x8DC5
679 #define GL_UNSIGNED_INT_VEC2 0x8DC6
680 #define GL_UNSIGNED_INT_VEC3 0x8DC7
681 #define GL_UNSIGNED_INT_VEC4 0x8DC8
682 #define GL_INT_SAMPLER_1D 0x8DC9
683 #define GL_INT_SAMPLER_2D 0x8DCA
684 #define GL_INT_SAMPLER_3D 0x8DCB
685 #define GL_INT_SAMPLER_CUBE 0x8DCC
686 #define GL_INT_SAMPLER_1D_ARRAY 0x8DCE
687 #define GL_INT_SAMPLER_2D_ARRAY 0x8DCF
688 #define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1
689 #define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
690 #define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
691 #define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
692 #define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6
693 #define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
694 #define GL_QUERY_WAIT 0x8E13
695 #define GL_QUERY_NO_WAIT 0x8E14
696 #define GL_QUERY_BY_REGION_WAIT 0x8E15
697 #define GL_QUERY_BY_REGION_NO_WAIT 0x8E16
698 #define GL_BUFFER_ACCESS_FLAGS 0x911F
699 #define GL_BUFFER_MAP_LENGTH 0x9120
700 #define GL_BUFFER_MAP_OFFSET 0x9121
701 /* Reuse tokens from ARB_depth_buffer_float */
702 /* reuse GL_DEPTH_COMPONENT32F */
703 /* reuse GL_DEPTH32F_STENCIL8 */
704 /* reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV */
705 /* Reuse tokens from ARB_framebuffer_object */
706 /* reuse GL_INVALID_FRAMEBUFFER_OPERATION */
707 /* reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */
708 /* reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */
709 /* reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */
710 /* reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */
711 /* reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */
712 /* reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */
713 /* reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */
714 /* reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */
715 /* reuse GL_FRAMEBUFFER_DEFAULT */
716 /* reuse GL_FRAMEBUFFER_UNDEFINED */
717 /* reuse GL_DEPTH_STENCIL_ATTACHMENT */
718 /* reuse GL_INDEX */
719 /* reuse GL_MAX_RENDERBUFFER_SIZE */
720 /* reuse GL_DEPTH_STENCIL */
721 /* reuse GL_UNSIGNED_INT_24_8 */
722 /* reuse GL_DEPTH24_STENCIL8 */
723 /* reuse GL_TEXTURE_STENCIL_SIZE */
724 /* reuse GL_TEXTURE_RED_TYPE */
725 /* reuse GL_TEXTURE_GREEN_TYPE */
726 /* reuse GL_TEXTURE_BLUE_TYPE */
727 /* reuse GL_TEXTURE_ALPHA_TYPE */
728 /* reuse GL_TEXTURE_DEPTH_TYPE */
729 /* reuse GL_UNSIGNED_NORMALIZED */
730 /* reuse GL_FRAMEBUFFER_BINDING */
731 /* reuse GL_DRAW_FRAMEBUFFER_BINDING */
732 /* reuse GL_RENDERBUFFER_BINDING */
733 /* reuse GL_READ_FRAMEBUFFER */
734 /* reuse GL_DRAW_FRAMEBUFFER */
735 /* reuse GL_READ_FRAMEBUFFER_BINDING */
736 /* reuse GL_RENDERBUFFER_SAMPLES */
737 /* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */
738 /* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */
739 /* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */
740 /* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */
741 /* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
742 /* reuse GL_FRAMEBUFFER_COMPLETE */
743 /* reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */
744 /* reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */
745 /* reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */
746 /* reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */
747 /* reuse GL_FRAMEBUFFER_UNSUPPORTED */
748 /* reuse GL_MAX_COLOR_ATTACHMENTS */
749 /* reuse GL_COLOR_ATTACHMENT0 */
750 /* reuse GL_COLOR_ATTACHMENT1 */
751 /* reuse GL_COLOR_ATTACHMENT2 */
752 /* reuse GL_COLOR_ATTACHMENT3 */
753 /* reuse GL_COLOR_ATTACHMENT4 */
754 /* reuse GL_COLOR_ATTACHMENT5 */
755 /* reuse GL_COLOR_ATTACHMENT6 */
756 /* reuse GL_COLOR_ATTACHMENT7 */
757 /* reuse GL_COLOR_ATTACHMENT8 */
758 /* reuse GL_COLOR_ATTACHMENT9 */
759 /* reuse GL_COLOR_ATTACHMENT10 */
760 /* reuse GL_COLOR_ATTACHMENT11 */
761 /* reuse GL_COLOR_ATTACHMENT12 */
762 /* reuse GL_COLOR_ATTACHMENT13 */
763 /* reuse GL_COLOR_ATTACHMENT14 */
764 /* reuse GL_COLOR_ATTACHMENT15 */
765 /* reuse GL_DEPTH_ATTACHMENT */
766 /* reuse GL_STENCIL_ATTACHMENT */
767 /* reuse GL_FRAMEBUFFER */
768 /* reuse GL_RENDERBUFFER */
769 /* reuse GL_RENDERBUFFER_WIDTH */
770 /* reuse GL_RENDERBUFFER_HEIGHT */
771 /* reuse GL_RENDERBUFFER_INTERNAL_FORMAT */
772 /* reuse GL_STENCIL_INDEX1 */
773 /* reuse GL_STENCIL_INDEX4 */
774 /* reuse GL_STENCIL_INDEX8 */
775 /* reuse GL_STENCIL_INDEX16 */
776 /* reuse GL_RENDERBUFFER_RED_SIZE */
777 /* reuse GL_RENDERBUFFER_GREEN_SIZE */
778 /* reuse GL_RENDERBUFFER_BLUE_SIZE */
779 /* reuse GL_RENDERBUFFER_ALPHA_SIZE */
780 /* reuse GL_RENDERBUFFER_DEPTH_SIZE */
781 /* reuse GL_RENDERBUFFER_STENCIL_SIZE */
782 /* reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */
783 /* reuse GL_MAX_SAMPLES */
784 /* Reuse tokens from ARB_framebuffer_sRGB */
785 /* reuse GL_FRAMEBUFFER_SRGB */
786 /* Reuse tokens from ARB_half_float_vertex */
787 /* reuse GL_HALF_FLOAT */
788 /* Reuse tokens from ARB_map_buffer_range */
789 /* reuse GL_MAP_READ_BIT */
790 /* reuse GL_MAP_WRITE_BIT */
791 /* reuse GL_MAP_INVALIDATE_RANGE_BIT */
792 /* reuse GL_MAP_INVALIDATE_BUFFER_BIT */
793 /* reuse GL_MAP_FLUSH_EXPLICIT_BIT */
794 /* reuse GL_MAP_UNSYNCHRONIZED_BIT */
795 /* Reuse tokens from ARB_texture_compression_rgtc */
796 /* reuse GL_COMPRESSED_RED_RGTC1 */
797 /* reuse GL_COMPRESSED_SIGNED_RED_RGTC1 */
798 /* reuse GL_COMPRESSED_RG_RGTC2 */
799 /* reuse GL_COMPRESSED_SIGNED_RG_RGTC2 */
800 /* Reuse tokens from ARB_texture_rg */
801 /* reuse GL_RG */
802 /* reuse GL_RG_INTEGER */
803 /* reuse GL_R8 */
804 /* reuse GL_R16 */
805 /* reuse GL_RG8 */
806 /* reuse GL_RG16 */
807 /* reuse GL_R16F */
808 /* reuse GL_R32F */
809 /* reuse GL_RG16F */
810 /* reuse GL_RG32F */
811 /* reuse GL_R8I */
812 /* reuse GL_R8UI */
813 /* reuse GL_R16I */
814 /* reuse GL_R16UI */
815 /* reuse GL_R32I */
816 /* reuse GL_R32UI */
817 /* reuse GL_RG8I */
818 /* reuse GL_RG8UI */
819 /* reuse GL_RG16I */
820 /* reuse GL_RG16UI */
821 /* reuse GL_RG32I */
822 /* reuse GL_RG32UI */
823 /* Reuse tokens from ARB_vertex_array_object */
824 /* reuse GL_VERTEX_ARRAY_BINDING */
825 #endif
827 #ifndef GL_VERSION_3_1
828 #define GL_SAMPLER_2D_RECT 0x8B63
829 #define GL_SAMPLER_2D_RECT_SHADOW 0x8B64
830 #define GL_SAMPLER_BUFFER 0x8DC2
831 #define GL_INT_SAMPLER_2D_RECT 0x8DCD
832 #define GL_INT_SAMPLER_BUFFER 0x8DD0
833 #define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5
834 #define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8
835 #define GL_TEXTURE_BUFFER 0x8C2A
836 #define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B
837 #define GL_TEXTURE_BINDING_BUFFER 0x8C2C
838 #define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D
839 #define GL_TEXTURE_BUFFER_FORMAT 0x8C2E
840 #define GL_TEXTURE_RECTANGLE 0x84F5
841 #define GL_TEXTURE_BINDING_RECTANGLE 0x84F6
842 #define GL_PROXY_TEXTURE_RECTANGLE 0x84F7
843 #define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8
844 #define GL_RED_SNORM 0x8F90
845 #define GL_RG_SNORM 0x8F91
846 #define GL_RGB_SNORM 0x8F92
847 #define GL_RGBA_SNORM 0x8F93
848 #define GL_R8_SNORM 0x8F94
849 #define GL_RG8_SNORM 0x8F95
850 #define GL_RGB8_SNORM 0x8F96
851 #define GL_RGBA8_SNORM 0x8F97
852 #define GL_R16_SNORM 0x8F98
853 #define GL_RG16_SNORM 0x8F99
854 #define GL_RGB16_SNORM 0x8F9A
855 #define GL_RGBA16_SNORM 0x8F9B
856 #define GL_SIGNED_NORMALIZED 0x8F9C
857 #define GL_PRIMITIVE_RESTART 0x8F9D
858 #define GL_PRIMITIVE_RESTART_INDEX 0x8F9E
859 /* Reuse tokens from ARB_copy_buffer */
860 /* reuse GL_COPY_READ_BUFFER */
861 /* reuse GL_COPY_WRITE_BUFFER */
862 /* Reuse tokens from ARB_draw_instanced (none) */
863 /* Reuse tokens from ARB_uniform_buffer_object */
864 /* reuse GL_UNIFORM_BUFFER */
865 /* reuse GL_UNIFORM_BUFFER_BINDING */
866 /* reuse GL_UNIFORM_BUFFER_START */
867 /* reuse GL_UNIFORM_BUFFER_SIZE */
868 /* reuse GL_MAX_VERTEX_UNIFORM_BLOCKS */
869 /* reuse GL_MAX_FRAGMENT_UNIFORM_BLOCKS */
870 /* reuse GL_MAX_COMBINED_UNIFORM_BLOCKS */
871 /* reuse GL_MAX_UNIFORM_BUFFER_BINDINGS */
872 /* reuse GL_MAX_UNIFORM_BLOCK_SIZE */
873 /* reuse GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS */
874 /* reuse GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS */
875 /* reuse GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT */
876 /* reuse GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */
877 /* reuse GL_ACTIVE_UNIFORM_BLOCKS */
878 /* reuse GL_UNIFORM_TYPE */
879 /* reuse GL_UNIFORM_SIZE */
880 /* reuse GL_UNIFORM_NAME_LENGTH */
881 /* reuse GL_UNIFORM_BLOCK_INDEX */
882 /* reuse GL_UNIFORM_OFFSET */
883 /* reuse GL_UNIFORM_ARRAY_STRIDE */
884 /* reuse GL_UNIFORM_MATRIX_STRIDE */
885 /* reuse GL_UNIFORM_IS_ROW_MAJOR */
886 /* reuse GL_UNIFORM_BLOCK_BINDING */
887 /* reuse GL_UNIFORM_BLOCK_DATA_SIZE */
888 /* reuse GL_UNIFORM_BLOCK_NAME_LENGTH */
889 /* reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS */
890 /* reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES */
891 /* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER */
892 /* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER */
893 /* reuse GL_INVALID_INDEX */
894 #endif
896 #ifndef GL_VERSION_3_2
897 #define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001
898 #define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
899 #define GL_LINES_ADJACENCY 0x000A
900 #define GL_LINE_STRIP_ADJACENCY 0x000B
901 #define GL_TRIANGLES_ADJACENCY 0x000C
902 #define GL_TRIANGLE_STRIP_ADJACENCY 0x000D
903 #define GL_PROGRAM_POINT_SIZE 0x8642
904 #define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29
905 #define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7
906 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8
907 #define GL_GEOMETRY_SHADER 0x8DD9
908 #define GL_GEOMETRY_VERTICES_OUT 0x8916
909 #define GL_GEOMETRY_INPUT_TYPE 0x8917
910 #define GL_GEOMETRY_OUTPUT_TYPE 0x8918
911 #define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF
912 #define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0
913 #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1
914 #define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
915 #define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123
916 #define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124
917 #define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
918 #define GL_CONTEXT_PROFILE_MASK 0x9126
919 /* reuse GL_MAX_VARYING_COMPONENTS */
920 /* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
921 /* Reuse tokens from ARB_depth_clamp */
922 /* reuse GL_DEPTH_CLAMP */
923 /* Reuse tokens from ARB_draw_elements_base_vertex (none) */
924 /* Reuse tokens from ARB_fragment_coord_conventions (none) */
925 /* Reuse tokens from ARB_provoking_vertex */
926 /* reuse GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */
927 /* reuse GL_FIRST_VERTEX_CONVENTION */
928 /* reuse GL_LAST_VERTEX_CONVENTION */
929 /* reuse GL_PROVOKING_VERTEX */
930 /* Reuse tokens from ARB_seamless_cube_map */
931 /* reuse GL_TEXTURE_CUBE_MAP_SEAMLESS */
932 /* Reuse tokens from ARB_sync */
933 /* reuse GL_MAX_SERVER_WAIT_TIMEOUT */
934 /* reuse GL_OBJECT_TYPE */
935 /* reuse GL_SYNC_CONDITION */
936 /* reuse GL_SYNC_STATUS */
937 /* reuse GL_SYNC_FLAGS */
938 /* reuse GL_SYNC_FENCE */
939 /* reuse GL_SYNC_GPU_COMMANDS_COMPLETE */
940 /* reuse GL_UNSIGNALED */
941 /* reuse GL_SIGNALED */
942 /* reuse GL_ALREADY_SIGNALED */
943 /* reuse GL_TIMEOUT_EXPIRED */
944 /* reuse GL_CONDITION_SATISFIED */
945 /* reuse GL_WAIT_FAILED */
946 /* reuse GL_TIMEOUT_IGNORED */
947 /* reuse GL_SYNC_FLUSH_COMMANDS_BIT */
948 /* reuse GL_TIMEOUT_IGNORED */
949 /* Reuse tokens from ARB_texture_multisample */
950 /* reuse GL_SAMPLE_POSITION */
951 /* reuse GL_SAMPLE_MASK */
952 /* reuse GL_SAMPLE_MASK_VALUE */
953 /* reuse GL_MAX_SAMPLE_MASK_WORDS */
954 /* reuse GL_TEXTURE_2D_MULTISAMPLE */
955 /* reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE */
956 /* reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY */
957 /* reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY */
958 /* reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE */
959 /* reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY */
960 /* reuse GL_TEXTURE_SAMPLES */
961 /* reuse GL_TEXTURE_FIXED_SAMPLE_LOCATIONS */
962 /* reuse GL_SAMPLER_2D_MULTISAMPLE */
963 /* reuse GL_INT_SAMPLER_2D_MULTISAMPLE */
964 /* reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE */
965 /* reuse GL_SAMPLER_2D_MULTISAMPLE_ARRAY */
966 /* reuse GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */
967 /* reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */
968 /* reuse GL_MAX_COLOR_TEXTURE_SAMPLES */
969 /* reuse GL_MAX_DEPTH_TEXTURE_SAMPLES */
970 /* reuse GL_MAX_INTEGER_SAMPLES */
971 /* Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core */
972 #endif
974 #ifndef GL_VERSION_3_3
975 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
976 /* Reuse tokens from ARB_blend_func_extended */
977 /* reuse GL_SRC1_COLOR */
978 /* reuse GL_ONE_MINUS_SRC1_COLOR */
979 /* reuse GL_ONE_MINUS_SRC1_ALPHA */
980 /* reuse GL_MAX_DUAL_SOURCE_DRAW_BUFFERS */
981 /* Reuse tokens from ARB_explicit_attrib_location (none) */
982 /* Reuse tokens from ARB_occlusion_query2 */
983 /* reuse GL_ANY_SAMPLES_PASSED */
984 /* Reuse tokens from ARB_sampler_objects */
985 /* reuse GL_SAMPLER_BINDING */
986 /* Reuse tokens from ARB_shader_bit_encoding (none) */
987 /* Reuse tokens from ARB_texture_rgb10_a2ui */
988 /* reuse GL_RGB10_A2UI */
989 /* Reuse tokens from ARB_texture_swizzle */
990 /* reuse GL_TEXTURE_SWIZZLE_R */
991 /* reuse GL_TEXTURE_SWIZZLE_G */
992 /* reuse GL_TEXTURE_SWIZZLE_B */
993 /* reuse GL_TEXTURE_SWIZZLE_A */
994 /* reuse GL_TEXTURE_SWIZZLE_RGBA */
995 /* Reuse tokens from ARB_timer_query */
996 /* reuse GL_TIME_ELAPSED */
997 /* reuse GL_TIMESTAMP */
998 /* Reuse tokens from ARB_vertex_type_2_10_10_10_rev */
999 /* reuse GL_INT_2_10_10_10_REV */
1000 #endif
1002 #ifndef GL_VERSION_4_0
1003 #define GL_SAMPLE_SHADING 0x8C36
1004 #define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37
1005 #define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E
1006 #define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F
1007 #define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009
1008 #define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A
1009 #define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B
1010 #define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C
1011 #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D
1012 #define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E
1013 #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F
1014 /* Reuse tokens from ARB_texture_query_lod (none) */
1015 /* Reuse tokens from ARB_draw_buffers_blend (none) */
1016 /* Reuse tokens from ARB_draw_indirect */
1017 /* reuse GL_DRAW_INDIRECT_BUFFER */
1018 /* reuse GL_DRAW_INDIRECT_BUFFER_BINDING */
1019 /* Reuse tokens from ARB_gpu_shader5 */
1020 /* reuse GL_GEOMETRY_SHADER_INVOCATIONS */
1021 /* reuse GL_MAX_GEOMETRY_SHADER_INVOCATIONS */
1022 /* reuse GL_MIN_FRAGMENT_INTERPOLATION_OFFSET */
1023 /* reuse GL_MAX_FRAGMENT_INTERPOLATION_OFFSET */
1024 /* reuse GL_FRAGMENT_INTERPOLATION_OFFSET_BITS */
1025 /* reuse GL_MAX_VERTEX_STREAMS */
1026 /* Reuse tokens from ARB_gpu_shader_fp64 */
1027 /* reuse GL_DOUBLE_VEC2 */
1028 /* reuse GL_DOUBLE_VEC3 */
1029 /* reuse GL_DOUBLE_VEC4 */
1030 /* reuse GL_DOUBLE_MAT2 */
1031 /* reuse GL_DOUBLE_MAT3 */
1032 /* reuse GL_DOUBLE_MAT4 */
1033 /* reuse GL_DOUBLE_MAT2x3 */
1034 /* reuse GL_DOUBLE_MAT2x4 */
1035 /* reuse GL_DOUBLE_MAT3x2 */
1036 /* reuse GL_DOUBLE_MAT3x4 */
1037 /* reuse GL_DOUBLE_MAT4x2 */
1038 /* reuse GL_DOUBLE_MAT4x3 */
1039 /* Reuse tokens from ARB_shader_subroutine */
1040 /* reuse GL_ACTIVE_SUBROUTINES */
1041 /* reuse GL_ACTIVE_SUBROUTINE_UNIFORMS */
1042 /* reuse GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS */
1043 /* reuse GL_ACTIVE_SUBROUTINE_MAX_LENGTH */
1044 /* reuse GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH */
1045 /* reuse GL_MAX_SUBROUTINES */
1046 /* reuse GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS */
1047 /* reuse GL_NUM_COMPATIBLE_SUBROUTINES */
1048 /* reuse GL_COMPATIBLE_SUBROUTINES */
1049 /* Reuse tokens from ARB_tessellation_shader */
1050 /* reuse GL_PATCHES */
1051 /* reuse GL_PATCH_VERTICES */
1052 /* reuse GL_PATCH_DEFAULT_INNER_LEVEL */
1053 /* reuse GL_PATCH_DEFAULT_OUTER_LEVEL */
1054 /* reuse GL_TESS_CONTROL_OUTPUT_VERTICES */
1055 /* reuse GL_TESS_GEN_MODE */
1056 /* reuse GL_TESS_GEN_SPACING */
1057 /* reuse GL_TESS_GEN_VERTEX_ORDER */
1058 /* reuse GL_TESS_GEN_POINT_MODE */
1059 /* reuse GL_ISOLINES */
1060 /* reuse GL_FRACTIONAL_ODD */
1061 /* reuse GL_FRACTIONAL_EVEN */
1062 /* reuse GL_MAX_PATCH_VERTICES */
1063 /* reuse GL_MAX_TESS_GEN_LEVEL */
1064 /* reuse GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS */
1065 /* reuse GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS */
1066 /* reuse GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS */
1067 /* reuse GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS */
1068 /* reuse GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS */
1069 /* reuse GL_MAX_TESS_PATCH_COMPONENTS */
1070 /* reuse GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS */
1071 /* reuse GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS */
1072 /* reuse GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS */
1073 /* reuse GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS */
1074 /* reuse GL_MAX_TESS_CONTROL_INPUT_COMPONENTS */
1075 /* reuse GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS */
1076 /* reuse GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS */
1077 /* reuse GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS */
1078 /* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER */
1079 /* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER */
1080 /* reuse GL_TESS_EVALUATION_SHADER */
1081 /* reuse GL_TESS_CONTROL_SHADER */
1082 /* Reuse tokens from ARB_texture_buffer_object_rgb32 (none) */
1083 /* Reuse tokens from ARB_transform_feedback2 */
1084 /* reuse GL_TRANSFORM_FEEDBACK */
1085 /* reuse GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED */
1086 /* reuse GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE */
1087 /* reuse GL_TRANSFORM_FEEDBACK_BINDING */
1088 /* Reuse tokens from ARB_transform_feedback3 */
1089 /* reuse GL_MAX_TRANSFORM_FEEDBACK_BUFFERS */
1090 /* reuse GL_MAX_VERTEX_STREAMS */
1091 #endif
1093 #ifndef GL_VERSION_4_1
1094 /* Reuse tokens from ARB_ES2_compatibility */
1095 /* reuse GL_FIXED */
1096 /* reuse GL_IMPLEMENTATION_COLOR_READ_TYPE */
1097 /* reuse GL_IMPLEMENTATION_COLOR_READ_FORMAT */
1098 /* reuse GL_LOW_FLOAT */
1099 /* reuse GL_MEDIUM_FLOAT */
1100 /* reuse GL_HIGH_FLOAT */
1101 /* reuse GL_LOW_INT */
1102 /* reuse GL_MEDIUM_INT */
1103 /* reuse GL_HIGH_INT */
1104 /* reuse GL_SHADER_COMPILER */
1105 /* reuse GL_NUM_SHADER_BINARY_FORMATS */
1106 /* reuse GL_MAX_VERTEX_UNIFORM_VECTORS */
1107 /* reuse GL_MAX_VARYING_VECTORS */
1108 /* reuse GL_MAX_FRAGMENT_UNIFORM_VECTORS */
1109 /* Reuse tokens from ARB_get_program_binary */
1110 /* reuse GL_PROGRAM_BINARY_RETRIEVABLE_HINT */
1111 /* reuse GL_PROGRAM_BINARY_LENGTH */
1112 /* reuse GL_NUM_PROGRAM_BINARY_FORMATS */
1113 /* reuse GL_PROGRAM_BINARY_FORMATS */
1114 /* Reuse tokens from ARB_separate_shader_objects */
1115 /* reuse GL_VERTEX_SHADER_BIT */
1116 /* reuse GL_FRAGMENT_SHADER_BIT */
1117 /* reuse GL_GEOMETRY_SHADER_BIT */
1118 /* reuse GL_TESS_CONTROL_SHADER_BIT */
1119 /* reuse GL_TESS_EVALUATION_SHADER_BIT */
1120 /* reuse GL_ALL_SHADER_BITS */
1121 /* reuse GL_PROGRAM_SEPARABLE */
1122 /* reuse GL_ACTIVE_PROGRAM */
1123 /* reuse GL_PROGRAM_PIPELINE_BINDING */
1124 /* Reuse tokens from ARB_shader_precision (none) */
1125 /* Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already */
1126 /* Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already */
1127 /* reuse GL_MAX_VIEWPORTS */
1128 /* reuse GL_VIEWPORT_SUBPIXEL_BITS */
1129 /* reuse GL_VIEWPORT_BOUNDS_RANGE */
1130 /* reuse GL_LAYER_PROVOKING_VERTEX */
1131 /* reuse GL_VIEWPORT_INDEX_PROVOKING_VERTEX */
1132 /* reuse GL_UNDEFINED_VERTEX */
1133 #endif
1135 #ifndef GL_VERSION_4_2
1136 /* Reuse tokens from ARB_base_instance (none) */
1137 /* Reuse tokens from ARB_shading_language_420pack (none) */
1138 /* Reuse tokens from ARB_transform_feedback_instanced (none) */
1139 /* Reuse tokens from ARB_compressed_texture_pixel_storage */
1140 /* reuse GL_UNPACK_COMPRESSED_BLOCK_WIDTH */
1141 /* reuse GL_UNPACK_COMPRESSED_BLOCK_HEIGHT */
1142 /* reuse GL_UNPACK_COMPRESSED_BLOCK_DEPTH */
1143 /* reuse GL_UNPACK_COMPRESSED_BLOCK_SIZE */
1144 /* reuse GL_PACK_COMPRESSED_BLOCK_WIDTH */
1145 /* reuse GL_PACK_COMPRESSED_BLOCK_HEIGHT */
1146 /* reuse GL_PACK_COMPRESSED_BLOCK_DEPTH */
1147 /* reuse GL_PACK_COMPRESSED_BLOCK_SIZE */
1148 /* Reuse tokens from ARB_conservative_depth (none) */
1149 /* Reuse tokens from ARB_internalformat_query */
1150 /* reuse GL_NUM_SAMPLE_COUNTS */
1151 /* Reuse tokens from ARB_map_buffer_alignment */
1152 /* reuse GL_MIN_MAP_BUFFER_ALIGNMENT */
1153 /* Reuse tokens from ARB_shader_atomic_counters */
1154 /* reuse GL_ATOMIC_COUNTER_BUFFER */
1155 /* reuse GL_ATOMIC_COUNTER_BUFFER_BINDING */
1156 /* reuse GL_ATOMIC_COUNTER_BUFFER_START */
1157 /* reuse GL_ATOMIC_COUNTER_BUFFER_SIZE */
1158 /* reuse GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE */
1159 /* reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS */
1160 /* reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES */
1161 /* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER */
1162 /* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER */
1163 /* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER */
1164 /* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER */
1165 /* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER */
1166 /* reuse GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS */
1167 /* reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS */
1168 /* reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS */
1169 /* reuse GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS */
1170 /* reuse GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS */
1171 /* reuse GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS */
1172 /* reuse GL_MAX_VERTEX_ATOMIC_COUNTERS */
1173 /* reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS */
1174 /* reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS */
1175 /* reuse GL_MAX_GEOMETRY_ATOMIC_COUNTERS */
1176 /* reuse GL_MAX_FRAGMENT_ATOMIC_COUNTERS */
1177 /* reuse GL_MAX_COMBINED_ATOMIC_COUNTERS */
1178 /* reuse GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE */
1179 /* reuse GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS */
1180 /* reuse GL_ACTIVE_ATOMIC_COUNTER_BUFFERS */
1181 /* reuse GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX */
1182 /* reuse GL_UNSIGNED_INT_ATOMIC_COUNTER */
1183 /* Reuse tokens from ARB_shader_image_load_store */
1184 /* reuse GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT */
1185 /* reuse GL_ELEMENT_ARRAY_BARRIER_BIT */
1186 /* reuse GL_UNIFORM_BARRIER_BIT */
1187 /* reuse GL_TEXTURE_FETCH_BARRIER_BIT */
1188 /* reuse GL_SHADER_IMAGE_ACCESS_BARRIER_BIT */
1189 /* reuse GL_COMMAND_BARRIER_BIT */
1190 /* reuse GL_PIXEL_BUFFER_BARRIER_BIT */
1191 /* reuse GL_TEXTURE_UPDATE_BARRIER_BIT */
1192 /* reuse GL_BUFFER_UPDATE_BARRIER_BIT */
1193 /* reuse GL_FRAMEBUFFER_BARRIER_BIT */
1194 /* reuse GL_TRANSFORM_FEEDBACK_BARRIER_BIT */
1195 /* reuse GL_ATOMIC_COUNTER_BARRIER_BIT */
1196 /* reuse GL_ALL_BARRIER_BITS */
1197 /* reuse GL_MAX_IMAGE_UNITS */
1198 /* reuse GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS */
1199 /* reuse GL_IMAGE_BINDING_NAME */
1200 /* reuse GL_IMAGE_BINDING_LEVEL */
1201 /* reuse GL_IMAGE_BINDING_LAYERED */
1202 /* reuse GL_IMAGE_BINDING_LAYER */
1203 /* reuse GL_IMAGE_BINDING_ACCESS */
1204 /* reuse GL_IMAGE_1D */
1205 /* reuse GL_IMAGE_2D */
1206 /* reuse GL_IMAGE_3D */
1207 /* reuse GL_IMAGE_2D_RECT */
1208 /* reuse GL_IMAGE_CUBE */
1209 /* reuse GL_IMAGE_BUFFER */
1210 /* reuse GL_IMAGE_1D_ARRAY */
1211 /* reuse GL_IMAGE_2D_ARRAY */
1212 /* reuse GL_IMAGE_CUBE_MAP_ARRAY */
1213 /* reuse GL_IMAGE_2D_MULTISAMPLE */
1214 /* reuse GL_IMAGE_2D_MULTISAMPLE_ARRAY */
1215 /* reuse GL_INT_IMAGE_1D */
1216 /* reuse GL_INT_IMAGE_2D */
1217 /* reuse GL_INT_IMAGE_3D */
1218 /* reuse GL_INT_IMAGE_2D_RECT */
1219 /* reuse GL_INT_IMAGE_CUBE */
1220 /* reuse GL_INT_IMAGE_BUFFER */
1221 /* reuse GL_INT_IMAGE_1D_ARRAY */
1222 /* reuse GL_INT_IMAGE_2D_ARRAY */
1223 /* reuse GL_INT_IMAGE_CUBE_MAP_ARRAY */
1224 /* reuse GL_INT_IMAGE_2D_MULTISAMPLE */
1225 /* reuse GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY */
1226 /* reuse GL_UNSIGNED_INT_IMAGE_1D */
1227 /* reuse GL_UNSIGNED_INT_IMAGE_2D */
1228 /* reuse GL_UNSIGNED_INT_IMAGE_3D */
1229 /* reuse GL_UNSIGNED_INT_IMAGE_2D_RECT */
1230 /* reuse GL_UNSIGNED_INT_IMAGE_CUBE */
1231 /* reuse GL_UNSIGNED_INT_IMAGE_BUFFER */
1232 /* reuse GL_UNSIGNED_INT_IMAGE_1D_ARRAY */
1233 /* reuse GL_UNSIGNED_INT_IMAGE_2D_ARRAY */
1234 /* reuse GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY */
1235 /* reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE */
1236 /* reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY */
1237 /* reuse GL_MAX_IMAGE_SAMPLES */
1238 /* reuse GL_IMAGE_BINDING_FORMAT */
1239 /* reuse GL_IMAGE_FORMAT_COMPATIBILITY_TYPE */
1240 /* reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE */
1241 /* reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS */
1242 /* reuse GL_MAX_VERTEX_IMAGE_UNIFORMS */
1243 /* reuse GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS */
1244 /* reuse GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS */
1245 /* reuse GL_MAX_GEOMETRY_IMAGE_UNIFORMS */
1246 /* reuse GL_MAX_FRAGMENT_IMAGE_UNIFORMS */
1247 /* reuse GL_MAX_COMBINED_IMAGE_UNIFORMS */
1248 /* Reuse tokens from ARB_shading_language_packing (none) */
1249 /* Reuse tokens from ARB_texture_storage */
1250 /* reuse GL_TEXTURE_IMMUTABLE_FORMAT */
1251 #endif
1253 #ifndef GL_ARB_depth_buffer_float
1254 #define GL_DEPTH_COMPONENT32F 0x8CAC
1255 #define GL_DEPTH32F_STENCIL8 0x8CAD
1256 #define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
1257 #endif
1259 #ifndef GL_ARB_framebuffer_object
1260 #define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
1261 #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
1262 #define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
1263 #define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
1264 #define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
1265 #define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
1266 #define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
1267 #define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
1268 #define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
1269 #define GL_FRAMEBUFFER_DEFAULT 0x8218
1270 #define GL_FRAMEBUFFER_UNDEFINED 0x8219
1271 #define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
1272 #define GL_MAX_RENDERBUFFER_SIZE 0x84E8
1273 #define GL_DEPTH_STENCIL 0x84F9
1274 #define GL_UNSIGNED_INT_24_8 0x84FA
1275 #define GL_DEPTH24_STENCIL8 0x88F0
1276 #define GL_TEXTURE_STENCIL_SIZE 0x88F1
1277 #define GL_TEXTURE_RED_TYPE 0x8C10
1278 #define GL_TEXTURE_GREEN_TYPE 0x8C11
1279 #define GL_TEXTURE_BLUE_TYPE 0x8C12
1280 #define GL_TEXTURE_ALPHA_TYPE 0x8C13
1281 #define GL_TEXTURE_DEPTH_TYPE 0x8C16
1282 #define GL_UNSIGNED_NORMALIZED 0x8C17
1283 #define GL_FRAMEBUFFER_BINDING 0x8CA6
1284 #define GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING
1285 #define GL_RENDERBUFFER_BINDING 0x8CA7
1286 #define GL_READ_FRAMEBUFFER 0x8CA8
1287 #define GL_DRAW_FRAMEBUFFER 0x8CA9
1288 #define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
1289 #define GL_RENDERBUFFER_SAMPLES 0x8CAB
1290 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
1291 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
1292 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
1293 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
1294 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
1295 #define GL_FRAMEBUFFER_COMPLETE 0x8CD5
1296 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
1297 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
1298 #define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB
1299 #define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC
1300 #define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
1301 #define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
1302 #define GL_COLOR_ATTACHMENT0 0x8CE0
1303 #define GL_COLOR_ATTACHMENT1 0x8CE1
1304 #define GL_COLOR_ATTACHMENT2 0x8CE2
1305 #define GL_COLOR_ATTACHMENT3 0x8CE3
1306 #define GL_COLOR_ATTACHMENT4 0x8CE4
1307 #define GL_COLOR_ATTACHMENT5 0x8CE5
1308 #define GL_COLOR_ATTACHMENT6 0x8CE6
1309 #define GL_COLOR_ATTACHMENT7 0x8CE7
1310 #define GL_COLOR_ATTACHMENT8 0x8CE8
1311 #define GL_COLOR_ATTACHMENT9 0x8CE9
1312 #define GL_COLOR_ATTACHMENT10 0x8CEA
1313 #define GL_COLOR_ATTACHMENT11 0x8CEB
1314 #define GL_COLOR_ATTACHMENT12 0x8CEC
1315 #define GL_COLOR_ATTACHMENT13 0x8CED
1316 #define GL_COLOR_ATTACHMENT14 0x8CEE
1317 #define GL_COLOR_ATTACHMENT15 0x8CEF
1318 #define GL_DEPTH_ATTACHMENT 0x8D00
1319 #define GL_STENCIL_ATTACHMENT 0x8D20
1320 #define GL_FRAMEBUFFER 0x8D40
1321 #define GL_RENDERBUFFER 0x8D41
1322 #define GL_RENDERBUFFER_WIDTH 0x8D42
1323 #define GL_RENDERBUFFER_HEIGHT 0x8D43
1324 #define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
1325 #define GL_STENCIL_INDEX1 0x8D46
1326 #define GL_STENCIL_INDEX4 0x8D47
1327 #define GL_STENCIL_INDEX8 0x8D48
1328 #define GL_STENCIL_INDEX16 0x8D49
1329 #define GL_RENDERBUFFER_RED_SIZE 0x8D50
1330 #define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
1331 #define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
1332 #define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
1333 #define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
1334 #define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
1335 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
1336 #define GL_MAX_SAMPLES 0x8D57
1337 #endif
1339 #ifndef GL_ARB_framebuffer_sRGB
1340 #define GL_FRAMEBUFFER_SRGB 0x8DB9
1341 #endif
1343 #ifndef GL_ARB_half_float_vertex
1344 #define GL_HALF_FLOAT 0x140B
1345 #endif
1347 #ifndef GL_ARB_map_buffer_range
1348 #define GL_MAP_READ_BIT 0x0001
1349 #define GL_MAP_WRITE_BIT 0x0002
1350 #define GL_MAP_INVALIDATE_RANGE_BIT 0x0004
1351 #define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
1352 #define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
1353 #define GL_MAP_UNSYNCHRONIZED_BIT 0x0020
1354 #endif
1356 #ifndef GL_ARB_texture_compression_rgtc
1357 #define GL_COMPRESSED_RED_RGTC1 0x8DBB
1358 #define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC
1359 #define GL_COMPRESSED_RG_RGTC2 0x8DBD
1360 #define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE
1361 #endif
1363 #ifndef GL_ARB_texture_rg
1364 #define GL_RG 0x8227
1365 #define GL_RG_INTEGER 0x8228
1366 #define GL_R8 0x8229
1367 #define GL_R16 0x822A
1368 #define GL_RG8 0x822B
1369 #define GL_RG16 0x822C
1370 #define GL_R16F 0x822D
1371 #define GL_R32F 0x822E
1372 #define GL_RG16F 0x822F
1373 #define GL_RG32F 0x8230
1374 #define GL_R8I 0x8231
1375 #define GL_R8UI 0x8232
1376 #define GL_R16I 0x8233
1377 #define GL_R16UI 0x8234
1378 #define GL_R32I 0x8235
1379 #define GL_R32UI 0x8236
1380 #define GL_RG8I 0x8237
1381 #define GL_RG8UI 0x8238
1382 #define GL_RG16I 0x8239
1383 #define GL_RG16UI 0x823A
1384 #define GL_RG32I 0x823B
1385 #define GL_RG32UI 0x823C
1386 #endif
1388 #ifndef GL_ARB_vertex_array_object
1389 #define GL_VERTEX_ARRAY_BINDING 0x85B5
1390 #endif
1392 #ifndef GL_ARB_uniform_buffer_object
1393 #define GL_UNIFORM_BUFFER 0x8A11
1394 #define GL_UNIFORM_BUFFER_BINDING 0x8A28
1395 #define GL_UNIFORM_BUFFER_START 0x8A29
1396 #define GL_UNIFORM_BUFFER_SIZE 0x8A2A
1397 #define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
1398 #define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C
1399 #define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
1400 #define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
1401 #define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
1402 #define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
1403 #define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
1404 #define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32
1405 #define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
1406 #define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
1407 #define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
1408 #define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36
1409 #define GL_UNIFORM_TYPE 0x8A37
1410 #define GL_UNIFORM_SIZE 0x8A38
1411 #define GL_UNIFORM_NAME_LENGTH 0x8A39
1412 #define GL_UNIFORM_BLOCK_INDEX 0x8A3A
1413 #define GL_UNIFORM_OFFSET 0x8A3B
1414 #define GL_UNIFORM_ARRAY_STRIDE 0x8A3C
1415 #define GL_UNIFORM_MATRIX_STRIDE 0x8A3D
1416 #define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E
1417 #define GL_UNIFORM_BLOCK_BINDING 0x8A3F
1418 #define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40
1419 #define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41
1420 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
1421 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
1422 #define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
1423 #define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45
1424 #define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
1425 #define GL_INVALID_INDEX 0xFFFFFFFFu
1426 #endif
1428 #ifndef GL_ARB_copy_buffer
1429 #define GL_COPY_READ_BUFFER 0x8F36
1430 #define GL_COPY_WRITE_BUFFER 0x8F37
1431 #endif
1433 #ifndef GL_ARB_depth_clamp
1434 #define GL_DEPTH_CLAMP 0x864F
1435 #endif
1437 #ifndef GL_ARB_draw_elements_base_vertex
1438 #endif
1440 #ifndef GL_ARB_fragment_coord_conventions
1441 #endif
1443 #ifndef GL_ARB_provoking_vertex
1444 #define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C
1445 #define GL_FIRST_VERTEX_CONVENTION 0x8E4D
1446 #define GL_LAST_VERTEX_CONVENTION 0x8E4E
1447 #define GL_PROVOKING_VERTEX 0x8E4F
1448 #endif
1450 #ifndef GL_ARB_seamless_cube_map
1451 #define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
1452 #endif
1454 #ifndef GL_ARB_sync
1455 #define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
1456 #define GL_OBJECT_TYPE 0x9112
1457 #define GL_SYNC_CONDITION 0x9113
1458 #define GL_SYNC_STATUS 0x9114
1459 #define GL_SYNC_FLAGS 0x9115
1460 #define GL_SYNC_FENCE 0x9116
1461 #define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
1462 #define GL_UNSIGNALED 0x9118
1463 #define GL_SIGNALED 0x9119
1464 #define GL_ALREADY_SIGNALED 0x911A
1465 #define GL_TIMEOUT_EXPIRED 0x911B
1466 #define GL_CONDITION_SATISFIED 0x911C
1467 #define GL_WAIT_FAILED 0x911D
1468 #define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
1469 #define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull
1470 #endif
1472 #ifndef GL_ARB_texture_multisample
1473 #define GL_SAMPLE_POSITION 0x8E50
1474 #define GL_SAMPLE_MASK 0x8E51
1475 #define GL_SAMPLE_MASK_VALUE 0x8E52
1476 #define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
1477 #define GL_TEXTURE_2D_MULTISAMPLE 0x9100
1478 #define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
1479 #define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
1480 #define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
1481 #define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
1482 #define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
1483 #define GL_TEXTURE_SAMPLES 0x9106
1484 #define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
1485 #define GL_SAMPLER_2D_MULTISAMPLE 0x9108
1486 #define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
1487 #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
1488 #define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
1489 #define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
1490 #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
1491 #define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
1492 #define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
1493 #define GL_MAX_INTEGER_SAMPLES 0x9110
1494 #endif
1496 #ifndef GL_ARB_vertex_array_bgra
1497 /* reuse GL_BGRA */
1498 #endif
1500 #ifndef GL_ARB_draw_buffers_blend
1501 #endif
1503 #ifndef GL_ARB_sample_shading
1504 #define GL_SAMPLE_SHADING_ARB 0x8C36
1505 #define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37
1506 #endif
1508 #ifndef GL_ARB_texture_cube_map_array
1509 #define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009
1510 #define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A
1511 #define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B
1512 #define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C
1513 #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D
1514 #define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E
1515 #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F
1516 #endif
1518 #ifndef GL_ARB_texture_gather
1519 #define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E
1520 #define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F
1521 #endif
1523 #ifndef GL_ARB_texture_query_lod
1524 #endif
1526 #ifndef GL_ARB_shading_language_include
1527 #define GL_SHADER_INCLUDE_ARB 0x8DAE
1528 #define GL_NAMED_STRING_LENGTH_ARB 0x8DE9
1529 #define GL_NAMED_STRING_TYPE_ARB 0x8DEA
1530 #endif
1532 #ifndef GL_ARB_texture_compression_bptc
1533 #define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C
1534 #define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D
1535 #define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E
1536 #define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F
1537 #endif
1539 #ifndef GL_ARB_blend_func_extended
1540 #define GL_SRC1_COLOR 0x88F9
1541 /* reuse GL_SRC1_ALPHA */
1542 #define GL_ONE_MINUS_SRC1_COLOR 0x88FA
1543 #define GL_ONE_MINUS_SRC1_ALPHA 0x88FB
1544 #define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC
1545 #endif
1547 #ifndef GL_ARB_explicit_attrib_location
1548 #endif
1550 #ifndef GL_ARB_occlusion_query2
1551 #define GL_ANY_SAMPLES_PASSED 0x8C2F
1552 #endif
1554 #ifndef GL_ARB_sampler_objects
1555 #define GL_SAMPLER_BINDING 0x8919
1556 #endif
1558 #ifndef GL_ARB_shader_bit_encoding
1559 #endif
1561 #ifndef GL_ARB_texture_rgb10_a2ui
1562 #define GL_RGB10_A2UI 0x906F
1563 #endif
1565 #ifndef GL_ARB_texture_swizzle
1566 #define GL_TEXTURE_SWIZZLE_R 0x8E42
1567 #define GL_TEXTURE_SWIZZLE_G 0x8E43
1568 #define GL_TEXTURE_SWIZZLE_B 0x8E44
1569 #define GL_TEXTURE_SWIZZLE_A 0x8E45
1570 #define GL_TEXTURE_SWIZZLE_RGBA 0x8E46
1571 #endif
1573 #ifndef GL_ARB_timer_query
1574 #define GL_TIME_ELAPSED 0x88BF
1575 #define GL_TIMESTAMP 0x8E28
1576 #endif
1578 #ifndef GL_ARB_vertex_type_2_10_10_10_rev
1579 /* reuse GL_UNSIGNED_INT_2_10_10_10_REV */
1580 #define GL_INT_2_10_10_10_REV 0x8D9F
1581 #endif
1583 #ifndef GL_ARB_draw_indirect
1584 #define GL_DRAW_INDIRECT_BUFFER 0x8F3F
1585 #define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43
1586 #endif
1588 #ifndef GL_ARB_gpu_shader5
1589 #define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F
1590 #define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A
1591 #define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B
1592 #define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C
1593 #define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D
1594 /* reuse GL_MAX_VERTEX_STREAMS */
1595 #endif
1597 #ifndef GL_ARB_gpu_shader_fp64
1598 /* reuse GL_DOUBLE */
1599 #define GL_DOUBLE_VEC2 0x8FFC
1600 #define GL_DOUBLE_VEC3 0x8FFD
1601 #define GL_DOUBLE_VEC4 0x8FFE
1602 #define GL_DOUBLE_MAT2 0x8F46
1603 #define GL_DOUBLE_MAT3 0x8F47
1604 #define GL_DOUBLE_MAT4 0x8F48
1605 #define GL_DOUBLE_MAT2x3 0x8F49
1606 #define GL_DOUBLE_MAT2x4 0x8F4A
1607 #define GL_DOUBLE_MAT3x2 0x8F4B
1608 #define GL_DOUBLE_MAT3x4 0x8F4C
1609 #define GL_DOUBLE_MAT4x2 0x8F4D
1610 #define GL_DOUBLE_MAT4x3 0x8F4E
1611 #endif
1613 #ifndef GL_ARB_shader_subroutine
1614 #define GL_ACTIVE_SUBROUTINES 0x8DE5
1615 #define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6
1616 #define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47
1617 #define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48
1618 #define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49
1619 #define GL_MAX_SUBROUTINES 0x8DE7
1620 #define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8
1621 #define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A
1622 #define GL_COMPATIBLE_SUBROUTINES 0x8E4B
1623 /* reuse GL_UNIFORM_SIZE */
1624 /* reuse GL_UNIFORM_NAME_LENGTH */
1625 #endif
1627 #ifndef GL_ARB_tessellation_shader
1628 #define GL_PATCHES 0x000E
1629 #define GL_PATCH_VERTICES 0x8E72
1630 #define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73
1631 #define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74
1632 #define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75
1633 #define GL_TESS_GEN_MODE 0x8E76
1634 #define GL_TESS_GEN_SPACING 0x8E77
1635 #define GL_TESS_GEN_VERTEX_ORDER 0x8E78
1636 #define GL_TESS_GEN_POINT_MODE 0x8E79
1637 /* reuse GL_TRIANGLES */
1638 /* reuse GL_QUADS */
1639 #define GL_ISOLINES 0x8E7A
1640 /* reuse GL_EQUAL */
1641 #define GL_FRACTIONAL_ODD 0x8E7B
1642 #define GL_FRACTIONAL_EVEN 0x8E7C
1643 /* reuse GL_CCW */
1644 /* reuse GL_CW */
1645 #define GL_MAX_PATCH_VERTICES 0x8E7D
1646 #define GL_MAX_TESS_GEN_LEVEL 0x8E7E
1647 #define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F
1648 #define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80
1649 #define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81
1650 #define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82
1651 #define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83
1652 #define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84
1653 #define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85
1654 #define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86
1655 #define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89
1656 #define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A
1657 #define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C
1658 #define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D
1659 #define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E
1660 #define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F
1661 #define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0
1662 #define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1
1663 #define GL_TESS_EVALUATION_SHADER 0x8E87
1664 #define GL_TESS_CONTROL_SHADER 0x8E88
1665 #endif
1667 #ifndef GL_ARB_texture_buffer_object_rgb32
1668 /* reuse GL_RGB32F */
1669 /* reuse GL_RGB32UI */
1670 /* reuse GL_RGB32I */
1671 #endif
1673 #ifndef GL_ARB_transform_feedback2
1674 #define GL_TRANSFORM_FEEDBACK 0x8E22
1675 #define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23
1676 #define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24
1677 #define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25
1678 #endif
1680 #ifndef GL_ARB_transform_feedback3
1681 #define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70
1682 #define GL_MAX_VERTEX_STREAMS 0x8E71
1683 #endif
1685 #ifndef GL_ARB_ES2_compatibility
1686 #define GL_FIXED 0x140C
1687 #define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
1688 #define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
1689 #define GL_LOW_FLOAT 0x8DF0
1690 #define GL_MEDIUM_FLOAT 0x8DF1
1691 #define GL_HIGH_FLOAT 0x8DF2
1692 #define GL_LOW_INT 0x8DF3
1693 #define GL_MEDIUM_INT 0x8DF4
1694 #define GL_HIGH_INT 0x8DF5
1695 #define GL_SHADER_COMPILER 0x8DFA
1696 #define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
1697 #define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
1698 #define GL_MAX_VARYING_VECTORS 0x8DFC
1699 #define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
1700 #endif
1702 #ifndef GL_ARB_get_program_binary
1703 #define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257
1704 #define GL_PROGRAM_BINARY_LENGTH 0x8741
1705 #define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE
1706 #define GL_PROGRAM_BINARY_FORMATS 0x87FF
1707 #endif
1709 #ifndef GL_ARB_separate_shader_objects
1710 #define GL_VERTEX_SHADER_BIT 0x00000001
1711 #define GL_FRAGMENT_SHADER_BIT 0x00000002
1712 #define GL_GEOMETRY_SHADER_BIT 0x00000004
1713 #define GL_TESS_CONTROL_SHADER_BIT 0x00000008
1714 #define GL_TESS_EVALUATION_SHADER_BIT 0x00000010
1715 #define GL_ALL_SHADER_BITS 0xFFFFFFFF
1716 #define GL_PROGRAM_SEPARABLE 0x8258
1717 #define GL_ACTIVE_PROGRAM 0x8259
1718 #define GL_PROGRAM_PIPELINE_BINDING 0x825A
1719 #endif
1721 #ifndef GL_ARB_shader_precision
1722 #endif
1724 #ifndef GL_ARB_vertex_attrib_64bit
1725 /* reuse GL_RGB32I */
1726 /* reuse GL_DOUBLE_VEC2 */
1727 /* reuse GL_DOUBLE_VEC3 */
1728 /* reuse GL_DOUBLE_VEC4 */
1729 /* reuse GL_DOUBLE_MAT2 */
1730 /* reuse GL_DOUBLE_MAT3 */
1731 /* reuse GL_DOUBLE_MAT4 */
1732 /* reuse GL_DOUBLE_MAT2x3 */
1733 /* reuse GL_DOUBLE_MAT2x4 */
1734 /* reuse GL_DOUBLE_MAT3x2 */
1735 /* reuse GL_DOUBLE_MAT3x4 */
1736 /* reuse GL_DOUBLE_MAT4x2 */
1737 /* reuse GL_DOUBLE_MAT4x3 */
1738 #endif
1740 #ifndef GL_ARB_viewport_array
1741 /* reuse GL_SCISSOR_BOX */
1742 /* reuse GL_VIEWPORT */
1743 /* reuse GL_DEPTH_RANGE */
1744 /* reuse GL_SCISSOR_TEST */
1745 #define GL_MAX_VIEWPORTS 0x825B
1746 #define GL_VIEWPORT_SUBPIXEL_BITS 0x825C
1747 #define GL_VIEWPORT_BOUNDS_RANGE 0x825D
1748 #define GL_LAYER_PROVOKING_VERTEX 0x825E
1749 #define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F
1750 #define GL_UNDEFINED_VERTEX 0x8260
1751 /* reuse GL_FIRST_VERTEX_CONVENTION */
1752 /* reuse GL_LAST_VERTEX_CONVENTION */
1753 /* reuse GL_PROVOKING_VERTEX */
1754 #endif
1756 #ifndef GL_ARB_cl_event
1757 #define GL_SYNC_CL_EVENT_ARB 0x8240
1758 #define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241
1759 #endif
1761 #ifndef GL_ARB_debug_output
1762 #define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242
1763 #define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243
1764 #define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244
1765 #define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245
1766 #define GL_DEBUG_SOURCE_API_ARB 0x8246
1767 #define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247
1768 #define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248
1769 #define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249
1770 #define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A
1771 #define GL_DEBUG_SOURCE_OTHER_ARB 0x824B
1772 #define GL_DEBUG_TYPE_ERROR_ARB 0x824C
1773 #define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D
1774 #define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E
1775 #define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F
1776 #define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250
1777 #define GL_DEBUG_TYPE_OTHER_ARB 0x8251
1778 #define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143
1779 #define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144
1780 #define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145
1781 #define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146
1782 #define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147
1783 #define GL_DEBUG_SEVERITY_LOW_ARB 0x9148
1784 #endif
1786 #ifndef GL_ARB_robustness
1787 /* reuse GL_NO_ERROR */
1788 #define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004
1789 #define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
1790 #define GL_GUILTY_CONTEXT_RESET_ARB 0x8253
1791 #define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254
1792 #define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255
1793 #define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
1794 #define GL_NO_RESET_NOTIFICATION_ARB 0x8261
1795 #endif
1797 #ifndef GL_ARB_shader_stencil_export
1798 #endif
1800 #ifndef GL_ARB_base_instance
1801 #endif
1803 #ifndef GL_ARB_shading_language_420pack
1804 #endif
1806 #ifndef GL_ARB_transform_feedback_instanced
1807 #endif
1809 #ifndef GL_ARB_compressed_texture_pixel_storage
1810 #define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127
1811 #define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128
1812 #define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129
1813 #define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A
1814 #define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B
1815 #define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C
1816 #define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D
1817 #define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E
1818 #endif
1820 #ifndef GL_ARB_conservative_depth
1821 #endif
1823 #ifndef GL_ARB_internalformat_query
1824 #define GL_NUM_SAMPLE_COUNTS 0x9380
1825 #endif
1827 #ifndef GL_ARB_map_buffer_alignment
1828 #define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC
1829 #endif
1831 #ifndef GL_ARB_shader_atomic_counters
1832 #define GL_ATOMIC_COUNTER_BUFFER 0x92C0
1833 #define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1
1834 #define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2
1835 #define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3
1836 #define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4
1837 #define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5
1838 #define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6
1839 #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7
1840 #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8
1841 #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9
1842 #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA
1843 #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB
1844 #define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC
1845 #define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD
1846 #define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE
1847 #define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF
1848 #define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0
1849 #define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1
1850 #define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2
1851 #define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3
1852 #define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4
1853 #define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5
1854 #define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6
1855 #define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7
1856 #define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8
1857 #define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC
1858 #define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9
1859 #define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA
1860 #define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB
1861 #endif
1863 #ifndef GL_ARB_shader_image_load_store
1864 #define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001
1865 #define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002
1866 #define GL_UNIFORM_BARRIER_BIT 0x00000004
1867 #define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008
1868 #define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020
1869 #define GL_COMMAND_BARRIER_BIT 0x00000040
1870 #define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080
1871 #define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100
1872 #define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200
1873 #define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400
1874 #define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800
1875 #define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000
1876 #define GL_ALL_BARRIER_BITS 0xFFFFFFFF
1877 #define GL_MAX_IMAGE_UNITS 0x8F38
1878 #define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39
1879 #define GL_IMAGE_BINDING_NAME 0x8F3A
1880 #define GL_IMAGE_BINDING_LEVEL 0x8F3B
1881 #define GL_IMAGE_BINDING_LAYERED 0x8F3C
1882 #define GL_IMAGE_BINDING_LAYER 0x8F3D
1883 #define GL_IMAGE_BINDING_ACCESS 0x8F3E
1884 #define GL_IMAGE_1D 0x904C
1885 #define GL_IMAGE_2D 0x904D
1886 #define GL_IMAGE_3D 0x904E
1887 #define GL_IMAGE_2D_RECT 0x904F
1888 #define GL_IMAGE_CUBE 0x9050
1889 #define GL_IMAGE_BUFFER 0x9051
1890 #define GL_IMAGE_1D_ARRAY 0x9052
1891 #define GL_IMAGE_2D_ARRAY 0x9053
1892 #define GL_IMAGE_CUBE_MAP_ARRAY 0x9054
1893 #define GL_IMAGE_2D_MULTISAMPLE 0x9055
1894 #define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056
1895 #define GL_INT_IMAGE_1D 0x9057
1896 #define GL_INT_IMAGE_2D 0x9058
1897 #define GL_INT_IMAGE_3D 0x9059
1898 #define GL_INT_IMAGE_2D_RECT 0x905A
1899 #define GL_INT_IMAGE_CUBE 0x905B
1900 #define GL_INT_IMAGE_BUFFER 0x905C
1901 #define GL_INT_IMAGE_1D_ARRAY 0x905D
1902 #define GL_INT_IMAGE_2D_ARRAY 0x905E
1903 #define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F
1904 #define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060
1905 #define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061
1906 #define GL_UNSIGNED_INT_IMAGE_1D 0x9062
1907 #define GL_UNSIGNED_INT_IMAGE_2D 0x9063
1908 #define GL_UNSIGNED_INT_IMAGE_3D 0x9064
1909 #define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065
1910 #define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066
1911 #define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067
1912 #define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068
1913 #define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069
1914 #define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A
1915 #define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B
1916 #define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C
1917 #define GL_MAX_IMAGE_SAMPLES 0x906D
1918 #define GL_IMAGE_BINDING_FORMAT 0x906E
1919 #define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7
1920 #define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8
1921 #define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9
1922 #define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA
1923 #define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB
1924 #define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC
1925 #define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD
1926 #define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE
1927 #define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF
1928 #endif
1930 #ifndef GL_ARB_shading_language_packing
1931 #endif
1933 #ifndef GL_ARB_texture_storage
1934 #define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F
1935 #endif
1938 /*************************************************************/
1940 #include <stddef.h>
1941 #ifndef GL_VERSION_2_0
1942 /* GL type for program/shader text */
1943 typedef char GLchar;
1944 #endif
1946 #ifndef GL_VERSION_1_5
1947 /* GL types for handling large vertex buffer objects */
1948 typedef ptrdiff_t GLintptr;
1949 typedef ptrdiff_t GLsizeiptr;
1950 #endif
1952 #ifndef GL_ARB_vertex_buffer_object
1953 /* GL types for handling large vertex buffer objects */
1954 typedef ptrdiff_t GLintptrARB;
1955 typedef ptrdiff_t GLsizeiptrARB;
1956 #endif
1958 #ifndef GL_ARB_shader_objects
1959 /* GL types for program/shader text and shader object handles */
1960 typedef char GLcharARB;
1961 typedef unsigned int GLhandleARB;
1962 #endif
1964 /* GL type for "half" precision (s10e5) float data in host memory */
1965 #ifndef GL_ARB_half_float_pixel
1966 typedef unsigned short GLhalfARB;
1967 #endif
1969 #ifndef GL_NV_half_float
1970 typedef unsigned short GLhalfNV;
1971 #endif
1973 #ifndef GLEXT_64_TYPES_DEFINED
1974 /* This code block is duplicated in glxext.h, so must be protected */
1975 #define GLEXT_64_TYPES_DEFINED
1976 /* Define int32_t, int64_t, and uint64_t types for UST/MSC */
1977 /* (as used in the GL_EXT_timer_query extension). */
1978 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
1979 #include <inttypes.h>
1980 #elif defined(__sun__) || defined(__digital__)
1981 #include <inttypes.h>
1982 #if defined(__STDC__)
1983 #if defined(__arch64__) || defined(_LP64)
1984 typedef long int int64_t;
1985 typedef unsigned long int uint64_t;
1986 #else
1987 typedef long long int int64_t;
1988 typedef unsigned long long int uint64_t;
1989 #endif /* __arch64__ */
1990 #endif /* __STDC__ */
1991 #elif defined( __VMS ) || defined(__sgi)
1992 #include <inttypes.h>
1993 #elif defined(__SCO__) || defined(__USLC__)
1994 #include <stdint.h>
1995 #elif defined(__UNIXOS2__) || defined(__SOL64__)
1996 typedef long int int32_t;
1997 typedef long long int int64_t;
1998 typedef unsigned long long int uint64_t;
1999 #elif defined(_WIN32) && defined(__GNUC__)
2000 #include <stdint.h>
2001 #elif defined(_WIN32)
2002 typedef __int32 int32_t;
2003 typedef __int64 int64_t;
2004 typedef unsigned __int64 uint64_t;
2005 #else
2006 /* Fallback if nothing above works */
2007 #include <inttypes.h>
2008 #endif
2009 #endif
2011 #ifndef GL_EXT_timer_query
2012 typedef int64_t GLint64EXT;
2013 typedef uint64_t GLuint64EXT;
2014 #endif
2016 #ifndef GL_ARB_sync
2017 typedef int64_t GLint64;
2018 typedef uint64_t GLuint64;
2019 typedef struct __GLsync *GLsync;
2020 #endif
2022 #ifndef GL_ARB_cl_event
2023 /* These incomplete types let us declare types compatible with OpenCL's cl_context and cl_event */
2024 struct _cl_context;
2025 struct _cl_event;
2026 #endif
2028 #ifndef GL_ARB_debug_output
2029 typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
2030 #endif
2032 #ifndef GL_AMD_debug_output
2033 typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
2034 #endif
2036 #ifndef GL_NV_vdpau_interop
2037 typedef GLintptr GLvdpauSurfaceNV;
2038 #endif
2040 #ifndef GL_VERSION_1_0
2041 #define GL_VERSION_1_0 1
2042 #ifdef GL3_PROTOTYPES
2043 GLAPI void APIENTRY glCullFace (GLenum mode);
2044 GLAPI void APIENTRY glFrontFace (GLenum mode);
2045 GLAPI void APIENTRY glHint (GLenum target, GLenum mode);
2046 GLAPI void APIENTRY glLineWidth (GLfloat width);
2047 GLAPI void APIENTRY glPointSize (GLfloat size);
2048 GLAPI void APIENTRY glPolygonMode (GLenum face, GLenum mode);
2049 GLAPI void APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
2050 GLAPI void APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
2051 GLAPI void APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
2052 GLAPI void APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
2053 GLAPI void APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params);
2054 GLAPI void APIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
2055 GLAPI void APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
2056 GLAPI void APIENTRY glDrawBuffer (GLenum mode);
2057 GLAPI void APIENTRY glClear (GLbitfield mask);
2058 GLAPI void APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
2059 GLAPI void APIENTRY glClearStencil (GLint s);
2060 GLAPI void APIENTRY glClearDepth (GLclampd depth);
2061 GLAPI void APIENTRY glStencilMask (GLuint mask);
2062 GLAPI void APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
2063 GLAPI void APIENTRY glDepthMask (GLboolean flag);
2064 GLAPI void APIENTRY glDisable (GLenum cap);
2065 GLAPI void APIENTRY glEnable (GLenum cap);
2066 GLAPI void APIENTRY glFinish (void);
2067 GLAPI void APIENTRY glFlush (void);
2068 GLAPI void APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
2069 GLAPI void APIENTRY glLogicOp (GLenum opcode);
2070 GLAPI void APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
2071 GLAPI void APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
2072 GLAPI void APIENTRY glDepthFunc (GLenum func);
2073 GLAPI void APIENTRY glPixelStoref (GLenum pname, GLfloat param);
2074 GLAPI void APIENTRY glPixelStorei (GLenum pname, GLint param);
2075 GLAPI void APIENTRY glReadBuffer (GLenum mode);
2076 GLAPI void APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
2077 GLAPI void APIENTRY glGetBooleanv (GLenum pname, GLboolean *params);
2078 GLAPI void APIENTRY glGetDoublev (GLenum pname, GLdouble *params);
2079 GLAPI GLenum APIENTRY glGetError (void);
2080 GLAPI void APIENTRY glGetFloatv (GLenum pname, GLfloat *params);
2081 GLAPI void APIENTRY glGetIntegerv (GLenum pname, GLint *params);
2082 GLAPI const GLubyte * APIENTRY glGetString (GLenum name);
2083 GLAPI void APIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
2084 GLAPI void APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
2085 GLAPI void APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
2086 GLAPI void APIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params);
2087 GLAPI void APIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params);
2088 GLAPI GLboolean APIENTRY glIsEnabled (GLenum cap);
2089 GLAPI void APIENTRY glDepthRange (GLclampd near, GLclampd far);
2090 GLAPI void APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
2091 #endif /* GL3_PROTOTYPES */
2092 typedef void (APIENTRYP PFNGLCULLFACEPROC) (GLenum mode);
2093 typedef void (APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode);
2094 typedef void (APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode);
2095 typedef void (APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width);
2096 typedef void (APIENTRYP PFNGLPOINTSIZEPROC) (GLfloat size);
2097 typedef void (APIENTRYP PFNGLPOLYGONMODEPROC) (GLenum face, GLenum mode);
2098 typedef void (APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
2099 typedef void (APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param);
2100 typedef void (APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
2101 typedef void (APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param);
2102 typedef void (APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
2103 typedef void (APIENTRYP PFNGLTEXIMAGE1DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
2104 typedef void (APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
2105 typedef void (APIENTRYP PFNGLDRAWBUFFERPROC) (GLenum mode);
2106 typedef void (APIENTRYP PFNGLCLEARPROC) (GLbitfield mask);
2107 typedef void (APIENTRYP PFNGLCLEARCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
2108 typedef void (APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s);
2109 typedef void (APIENTRYP PFNGLCLEARDEPTHPROC) (GLclampd depth);
2110 typedef void (APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask);
2111 typedef void (APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
2112 typedef void (APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag);
2113 typedef void (APIENTRYP PFNGLDISABLEPROC) (GLenum cap);
2114 typedef void (APIENTRYP PFNGLENABLEPROC) (GLenum cap);
2115 typedef void (APIENTRYP PFNGLFINISHPROC) (void);
2116 typedef void (APIENTRYP PFNGLFLUSHPROC) (void);
2117 typedef void (APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor);
2118 typedef void (APIENTRYP PFNGLLOGICOPPROC) (GLenum opcode);
2119 typedef void (APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask);
2120 typedef void (APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass);
2121 typedef void (APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func);
2122 typedef void (APIENTRYP PFNGLPIXELSTOREFPROC) (GLenum pname, GLfloat param);
2123 typedef void (APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param);
2124 typedef void (APIENTRYP PFNGLREADBUFFERPROC) (GLenum mode);
2125 typedef void (APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
2126 typedef void (APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *params);
2127 typedef void (APIENTRYP PFNGLGETDOUBLEVPROC) (GLenum pname, GLdouble *params);
2128 typedef GLenum (APIENTRYP PFNGLGETERRORPROC) (void);
2129 typedef void (APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *params);
2130 typedef void (APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *params);
2131 typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGPROC) (GLenum name);
2132 typedef void (APIENTRYP PFNGLGETTEXIMAGEPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
2133 typedef void (APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
2134 typedef void (APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
2135 typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC) (GLenum target, GLint level, GLenum pname, GLfloat *params);
2136 typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params);
2137 typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC) (GLenum cap);
2138 typedef void (APIENTRYP PFNGLDEPTHRANGEPROC) (GLclampd near, GLclampd far);
2139 typedef void (APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
2140 #endif
2142 #ifndef GL_VERSION_1_1
2143 #define GL_VERSION_1_1 1
2144 #ifdef GL3_PROTOTYPES
2145 GLAPI void APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
2146 GLAPI void APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
2147 GLAPI void APIENTRY glGetPointerv (GLenum pname, GLvoid* *params);
2148 GLAPI void APIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
2149 GLAPI void APIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
2150 GLAPI void APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
2151 GLAPI void APIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
2152 GLAPI void APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
2153 GLAPI void APIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
2154 GLAPI void APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
2155 GLAPI void APIENTRY glBindTexture (GLenum target, GLuint texture);
2156 GLAPI void APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures);
2157 GLAPI void APIENTRY glGenTextures (GLsizei n, GLuint *textures);
2158 GLAPI GLboolean APIENTRY glIsTexture (GLuint texture);
2159 #endif /* GL3_PROTOTYPES */
2160 typedef void (APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count);
2161 typedef void (APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
2162 typedef void (APIENTRYP PFNGLGETPOINTERVPROC) (GLenum pname, GLvoid* *params);
2163 typedef void (APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units);
2164 typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
2165 typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
2166 typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
2167 typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
2168 typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
2169 typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
2170 typedef void (APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture);
2171 typedef void (APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures);
2172 typedef void (APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures);
2173 typedef GLboolean (APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture);
2174 #endif
2176 #ifndef GL_VERSION_1_2
2177 #define GL_VERSION_1_2 1
2178 #ifdef GL3_PROTOTYPES
2179 GLAPI void APIENTRY glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
2180 GLAPI void APIENTRY glBlendEquation (GLenum mode);
2181 GLAPI void APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
2182 GLAPI void APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
2183 GLAPI void APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
2184 GLAPI void APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
2185 #endif /* GL3_PROTOTYPES */
2186 typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
2187 typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
2188 typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
2189 typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
2190 typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
2191 typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
2192 #endif
2194 #ifndef GL_VERSION_1_3
2195 #define GL_VERSION_1_3 1
2196 #ifdef GL3_PROTOTYPES
2197 GLAPI void APIENTRY glActiveTexture (GLenum texture);
2198 GLAPI void APIENTRY glSampleCoverage (GLclampf value, GLboolean invert);
2199 GLAPI void APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
2200 GLAPI void APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
2201 GLAPI void APIENTRY glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
2202 GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
2203 GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
2204 GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
2205 GLAPI void APIENTRY glGetCompressedTexImage (GLenum target, GLint level, GLvoid *img);
2206 #endif /* GL3_PROTOTYPES */
2207 typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture);
2208 typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert);
2209 typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
2210 typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
2211 typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
2212 typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
2213 typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
2214 typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
2215 typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img);
2216 #endif
2218 #ifndef GL_VERSION_1_4
2219 #define GL_VERSION_1_4 1
2220 #ifdef GL3_PROTOTYPES
2221 GLAPI void APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
2222 GLAPI void APIENTRY glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
2223 GLAPI void APIENTRY glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
2224 GLAPI void APIENTRY glPointParameterf (GLenum pname, GLfloat param);
2225 GLAPI void APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params);
2226 GLAPI void APIENTRY glPointParameteri (GLenum pname, GLint param);
2227 GLAPI void APIENTRY glPointParameteriv (GLenum pname, const GLint *params);
2228 #endif /* GL3_PROTOTYPES */
2229 typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
2230 typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
2231 typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
2232 typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param);
2233 typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params);
2234 typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param);
2235 typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params);
2236 #endif
2238 #ifndef GL_VERSION_1_5
2239 #define GL_VERSION_1_5 1
2240 #ifdef GL3_PROTOTYPES
2241 GLAPI void APIENTRY glGenQueries (GLsizei n, GLuint *ids);
2242 GLAPI void APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids);
2243 GLAPI GLboolean APIENTRY glIsQuery (GLuint id);
2244 GLAPI void APIENTRY glBeginQuery (GLenum target, GLuint id);
2245 GLAPI void APIENTRY glEndQuery (GLenum target);
2246 GLAPI void APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params);
2247 GLAPI void APIENTRY glGetQueryObjectiv (GLuint id, GLenum pname, GLint *params);
2248 GLAPI void APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params);
2249 GLAPI void APIENTRY glBindBuffer (GLenum target, GLuint buffer);
2250 GLAPI void APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers);
2251 GLAPI void APIENTRY glGenBuffers (GLsizei n, GLuint *buffers);
2252 GLAPI GLboolean APIENTRY glIsBuffer (GLuint buffer);
2253 GLAPI void APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
2254 GLAPI void APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
2255 GLAPI void APIENTRY glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
2256 GLAPI GLvoid* APIENTRY glMapBuffer (GLenum target, GLenum access);
2257 GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum target);
2258 GLAPI void APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params);
2259 GLAPI void APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, GLvoid* *params);
2260 #endif /* GL3_PROTOTYPES */
2261 typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids);
2262 typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids);
2263 typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id);
2264 typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id);
2265 typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target);
2266 typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params);
2267 typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params);
2268 typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params);
2269 typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
2270 typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
2271 typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers);
2272 typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer);
2273 typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
2274 typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
2275 typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
2276 typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access);
2277 typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target);
2278 typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
2279 typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid* *params);
2280 #endif
2282 #ifndef GL_VERSION_2_0
2283 #define GL_VERSION_2_0 1
2284 #ifdef GL3_PROTOTYPES
2285 GLAPI void APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha);
2286 GLAPI void APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs);
2287 GLAPI void APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
2288 GLAPI void APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
2289 GLAPI void APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask);
2290 GLAPI void APIENTRY glAttachShader (GLuint program, GLuint shader);
2291 GLAPI void APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name);
2292 GLAPI void APIENTRY glCompileShader (GLuint shader);
2293 GLAPI GLuint APIENTRY glCreateProgram (void);
2294 GLAPI GLuint APIENTRY glCreateShader (GLenum type);
2295 GLAPI void APIENTRY glDeleteProgram (GLuint program);
2296 GLAPI void APIENTRY glDeleteShader (GLuint shader);
2297 GLAPI void APIENTRY glDetachShader (GLuint program, GLuint shader);
2298 GLAPI void APIENTRY glDisableVertexAttribArray (GLuint index);
2299 GLAPI void APIENTRY glEnableVertexAttribArray (GLuint index);
2300 GLAPI void APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
2301 GLAPI void APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
2302 GLAPI void APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj);
2303 GLAPI GLint APIENTRY glGetAttribLocation (GLuint program, const GLchar *name);
2304 GLAPI void APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params);
2305 GLAPI void APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
2306 GLAPI void APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params);
2307 GLAPI void APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
2308 GLAPI void APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
2309 GLAPI GLint APIENTRY glGetUniformLocation (GLuint program, const GLchar *name);
2310 GLAPI void APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params);
2311 GLAPI void APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params);
2312 GLAPI void APIENTRY glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble *params);
2313 GLAPI void APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params);
2314 GLAPI void APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params);
2315 GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid* *pointer);
2316 GLAPI GLboolean APIENTRY glIsProgram (GLuint program);
2317 GLAPI GLboolean APIENTRY glIsShader (GLuint shader);
2318 GLAPI void APIENTRY glLinkProgram (GLuint program);
2319 GLAPI void APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length);
2320 GLAPI void APIENTRY glUseProgram (GLuint program);
2321 GLAPI void APIENTRY glUniform1f (GLint location, GLfloat v0);
2322 GLAPI void APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1);
2323 GLAPI void APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
2324 GLAPI void APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
2325 GLAPI void APIENTRY glUniform1i (GLint location, GLint v0);
2326 GLAPI void APIENTRY glUniform2i (GLint location, GLint v0, GLint v1);
2327 GLAPI void APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2);
2328 GLAPI void APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
2329 GLAPI void APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value);
2330 GLAPI void APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value);
2331 GLAPI void APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value);
2332 GLAPI void APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value);
2333 GLAPI void APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value);
2334 GLAPI void APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value);
2335 GLAPI void APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value);
2336 GLAPI void APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value);
2337 GLAPI void APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2338 GLAPI void APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2339 GLAPI void APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2340 GLAPI void APIENTRY glValidateProgram (GLuint program);
2341 GLAPI void APIENTRY glVertexAttrib1d (GLuint index, GLdouble x);
2342 GLAPI void APIENTRY glVertexAttrib1dv (GLuint index, const GLdouble *v);
2343 GLAPI void APIENTRY glVertexAttrib1f (GLuint index, GLfloat x);
2344 GLAPI void APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v);
2345 GLAPI void APIENTRY glVertexAttrib1s (GLuint index, GLshort x);
2346 GLAPI void APIENTRY glVertexAttrib1sv (GLuint index, const GLshort *v);
2347 GLAPI void APIENTRY glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y);
2348 GLAPI void APIENTRY glVertexAttrib2dv (GLuint index, const GLdouble *v);
2349 GLAPI void APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y);
2350 GLAPI void APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v);
2351 GLAPI void APIENTRY glVertexAttrib2s (GLuint index, GLshort x, GLshort y);
2352 GLAPI void APIENTRY glVertexAttrib2sv (GLuint index, const GLshort *v);
2353 GLAPI void APIENTRY glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z);
2354 GLAPI void APIENTRY glVertexAttrib3dv (GLuint index, const GLdouble *v);
2355 GLAPI void APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z);
2356 GLAPI void APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v);
2357 GLAPI void APIENTRY glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z);
2358 GLAPI void APIENTRY glVertexAttrib3sv (GLuint index, const GLshort *v);
2359 GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint index, const GLbyte *v);
2360 GLAPI void APIENTRY glVertexAttrib4Niv (GLuint index, const GLint *v);
2361 GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint index, const GLshort *v);
2362 GLAPI void APIENTRY glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
2363 GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint index, const GLubyte *v);
2364 GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint index, const GLuint *v);
2365 GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint index, const GLushort *v);
2366 GLAPI void APIENTRY glVertexAttrib4bv (GLuint index, const GLbyte *v);
2367 GLAPI void APIENTRY glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
2368 GLAPI void APIENTRY glVertexAttrib4dv (GLuint index, const GLdouble *v);
2369 GLAPI void APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
2370 GLAPI void APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v);
2371 GLAPI void APIENTRY glVertexAttrib4iv (GLuint index, const GLint *v);
2372 GLAPI void APIENTRY glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
2373 GLAPI void APIENTRY glVertexAttrib4sv (GLuint index, const GLshort *v);
2374 GLAPI void APIENTRY glVertexAttrib4ubv (GLuint index, const GLubyte *v);
2375 GLAPI void APIENTRY glVertexAttrib4uiv (GLuint index, const GLuint *v);
2376 GLAPI void APIENTRY glVertexAttrib4usv (GLuint index, const GLushort *v);
2377 GLAPI void APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
2378 #endif /* GL3_PROTOTYPES */
2379 typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
2380 typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs);
2381 typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
2382 typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask);
2383 typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
2384 typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
2385 typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name);
2386 typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader);
2387 typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void);
2388 typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type);
2389 typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program);
2390 typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader);
2391 typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
2392 typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
2393 typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
2394 typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
2395 typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
2396 typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj);
2397 typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name);
2398 typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params);
2399 typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
2400 typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params);
2401 typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
2402 typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
2403 typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name);
2404 typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params);
2405 typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params);
2406 typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params);
2407 typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params);
2408 typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params);
2409 typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
2410 typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program);
2411 typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader);
2412 typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program);
2413 typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length);
2414 typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program);
2415 typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
2416 typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
2417 typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
2418 typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
2419 typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
2420 typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
2421 typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
2422 typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
2423 typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value);
2424 typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value);
2425 typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value);
2426 typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value);
2427 typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value);
2428 typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value);
2429 typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value);
2430 typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value);
2431 typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2432 typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2433 typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2434 typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program);
2435 typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x);
2436 typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v);
2437 typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
2438 typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v);
2439 typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x);
2440 typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v);
2441 typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y);
2442 typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v);
2443 typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
2444 typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v);
2445 typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y);
2446 typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v);
2447 typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
2448 typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v);
2449 typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
2450 typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v);
2451 typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
2452 typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v);
2453 typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v);
2454 typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v);
2455 typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v);
2456 typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
2457 typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v);
2458 typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v);
2459 typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v);
2460 typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v);
2461 typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
2462 typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v);
2463 typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
2464 typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v);
2465 typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v);
2466 typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
2467 typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v);
2468 typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v);
2469 typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v);
2470 typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v);
2471 typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
2472 #endif
2474 #ifndef GL_VERSION_2_1
2475 #define GL_VERSION_2_1 1
2476 #ifdef GL3_PROTOTYPES
2477 GLAPI void APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2478 GLAPI void APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2479 GLAPI void APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2480 GLAPI void APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2481 GLAPI void APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2482 GLAPI void APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2483 #endif /* GL3_PROTOTYPES */
2484 typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2485 typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2486 typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2487 typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2488 typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2489 typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2490 #endif
2492 #ifndef GL_VERSION_3_0
2493 #define GL_VERSION_3_0 1
2494 /* OpenGL 3.0 also reuses entry points from these extensions: */
2495 /* ARB_framebuffer_object */
2496 /* ARB_map_buffer_range */
2497 /* ARB_vertex_array_object */
2498 #ifdef GL3_PROTOTYPES
2499 GLAPI void APIENTRY glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
2500 GLAPI void APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data);
2501 GLAPI void APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data);
2502 GLAPI void APIENTRY glEnablei (GLenum target, GLuint index);
2503 GLAPI void APIENTRY glDisablei (GLenum target, GLuint index);
2504 GLAPI GLboolean APIENTRY glIsEnabledi (GLenum target, GLuint index);
2505 GLAPI void APIENTRY glBeginTransformFeedback (GLenum primitiveMode);
2506 GLAPI void APIENTRY glEndTransformFeedback (void);
2507 GLAPI void APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
2508 GLAPI void APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer);
2509 GLAPI void APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode);
2510 GLAPI void APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
2511 GLAPI void APIENTRY glClampColor (GLenum target, GLenum clamp);
2512 GLAPI void APIENTRY glBeginConditionalRender (GLuint id, GLenum mode);
2513 GLAPI void APIENTRY glEndConditionalRender (void);
2514 GLAPI void APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
2515 GLAPI void APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params);
2516 GLAPI void APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params);
2517 GLAPI void APIENTRY glVertexAttribI1i (GLuint index, GLint x);
2518 GLAPI void APIENTRY glVertexAttribI2i (GLuint index, GLint x, GLint y);
2519 GLAPI void APIENTRY glVertexAttribI3i (GLuint index, GLint x, GLint y, GLint z);
2520 GLAPI void APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w);
2521 GLAPI void APIENTRY glVertexAttribI1ui (GLuint index, GLuint x);
2522 GLAPI void APIENTRY glVertexAttribI2ui (GLuint index, GLuint x, GLuint y);
2523 GLAPI void APIENTRY glVertexAttribI3ui (GLuint index, GLuint x, GLuint y, GLuint z);
2524 GLAPI void APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
2525 GLAPI void APIENTRY glVertexAttribI1iv (GLuint index, const GLint *v);
2526 GLAPI void APIENTRY glVertexAttribI2iv (GLuint index, const GLint *v);
2527 GLAPI void APIENTRY glVertexAttribI3iv (GLuint index, const GLint *v);
2528 GLAPI void APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v);
2529 GLAPI void APIENTRY glVertexAttribI1uiv (GLuint index, const GLuint *v);
2530 GLAPI void APIENTRY glVertexAttribI2uiv (GLuint index, const GLuint *v);
2531 GLAPI void APIENTRY glVertexAttribI3uiv (GLuint index, const GLuint *v);
2532 GLAPI void APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v);
2533 GLAPI void APIENTRY glVertexAttribI4bv (GLuint index, const GLbyte *v);
2534 GLAPI void APIENTRY glVertexAttribI4sv (GLuint index, const GLshort *v);
2535 GLAPI void APIENTRY glVertexAttribI4ubv (GLuint index, const GLubyte *v);
2536 GLAPI void APIENTRY glVertexAttribI4usv (GLuint index, const GLushort *v);
2537 GLAPI void APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params);
2538 GLAPI void APIENTRY glBindFragDataLocation (GLuint program, GLuint color, const GLchar *name);
2539 GLAPI GLint APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name);
2540 GLAPI void APIENTRY glUniform1ui (GLint location, GLuint v0);
2541 GLAPI void APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1);
2542 GLAPI void APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2);
2543 GLAPI void APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
2544 GLAPI void APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value);
2545 GLAPI void APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value);
2546 GLAPI void APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value);
2547 GLAPI void APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value);
2548 GLAPI void APIENTRY glTexParameterIiv (GLenum target, GLenum pname, const GLint *params);
2549 GLAPI void APIENTRY glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params);
2550 GLAPI void APIENTRY glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params);
2551 GLAPI void APIENTRY glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params);
2552 GLAPI void APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value);
2553 GLAPI void APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value);
2554 GLAPI void APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value);
2555 GLAPI void APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
2556 GLAPI const GLubyte * APIENTRY glGetStringi (GLenum name, GLuint index);
2557 #endif /* GL3_PROTOTYPES */
2558 typedef void (APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
2559 typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data);
2560 typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data);
2561 typedef void (APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index);
2562 typedef void (APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index);
2563 typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index);
2564 typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode);
2565 typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void);
2566 typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
2567 typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer);
2568 typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode);
2569 typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
2570 typedef void (APIENTRYP PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp);
2571 typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode);
2572 typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC) (void);
2573 typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
2574 typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params);
2575 typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params);
2576 typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x);
2577 typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y);
2578 typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z);
2579 typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w);
2580 typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x);
2581 typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y);
2582 typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z);
2583 typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
2584 typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v);
2585 typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v);
2586 typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v);
2587 typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v);
2588 typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v);
2589 typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v);
2590 typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v);
2591 typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v);
2592 typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v);
2593 typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v);
2594 typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v);
2595 typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v);
2596 typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params);
2597 typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name);
2598 typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name);
2599 typedef void (APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0);
2600 typedef void (APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1);
2601 typedef void (APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
2602 typedef void (APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
2603 typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value);
2604 typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value);
2605 typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value);
2606 typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value);
2607 typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params);
2608 typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params);
2609 typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params);
2610 typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params);
2611 typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value);
2612 typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value);
2613 typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value);
2614 typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
2615 typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index);
2616 #endif
2618 #ifndef GL_VERSION_3_1
2619 #define GL_VERSION_3_1 1
2620 /* OpenGL 3.1 also reuses entry points from these extensions: */
2621 /* ARB_copy_buffer */
2622 /* ARB_uniform_buffer_object */
2623 #ifdef GL3_PROTOTYPES
2624 GLAPI void APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
2625 GLAPI void APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
2626 GLAPI void APIENTRY glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer);
2627 GLAPI void APIENTRY glPrimitiveRestartIndex (GLuint index);
2628 #endif /* GL3_PROTOTYPES */
2629 typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
2630 typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
2631 typedef void (APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer);
2632 typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint index);
2633 #endif
2635 #ifndef GL_VERSION_3_2
2636 #define GL_VERSION_3_2 1
2637 /* OpenGL 3.2 also reuses entry points from these extensions: */
2638 /* ARB_draw_elements_base_vertex */
2639 /* ARB_provoking_vertex */
2640 /* ARB_sync */
2641 /* ARB_texture_multisample */
2642 #ifdef GL3_PROTOTYPES
2643 GLAPI void APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data);
2644 GLAPI void APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params);
2645 GLAPI void APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level);
2646 #endif /* GL3_PROTOTYPES */
2647 typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data);
2648 typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params);
2649 typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
2650 #endif
2652 #ifndef GL_VERSION_3_3
2653 #define GL_VERSION_3_3 1
2654 /* OpenGL 3.3 also reuses entry points from these extensions: */
2655 /* ARB_blend_func_extended */
2656 /* ARB_sampler_objects */
2657 /* ARB_explicit_attrib_location, but it has none */
2658 /* ARB_occlusion_query2 (no entry points) */
2659 /* ARB_shader_bit_encoding (no entry points) */
2660 /* ARB_texture_rgb10_a2ui (no entry points) */
2661 /* ARB_texture_swizzle (no entry points) */
2662 /* ARB_timer_query */
2663 /* ARB_vertex_type_2_10_10_10_rev */
2664 #ifdef GL3_PROTOTYPES
2665 GLAPI void APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor);
2666 #endif /* GL3_PROTOTYPES */
2667 typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor);
2668 #endif
2670 #ifndef GL_VERSION_4_0
2671 #define GL_VERSION_4_0 1
2672 /* OpenGL 4.0 also reuses entry points from these extensions: */
2673 /* ARB_texture_query_lod (no entry points) */
2674 /* ARB_draw_indirect */
2675 /* ARB_gpu_shader5 (no entry points) */
2676 /* ARB_gpu_shader_fp64 */
2677 /* ARB_shader_subroutine */
2678 /* ARB_tessellation_shader */
2679 /* ARB_texture_buffer_object_rgb32 (no entry points) */
2680 /* ARB_texture_cube_map_array (no entry points) */
2681 /* ARB_texture_gather (no entry points) */
2682 /* ARB_transform_feedback2 */
2683 /* ARB_transform_feedback3 */
2684 #ifdef GL3_PROTOTYPES
2685 GLAPI void APIENTRY glMinSampleShading (GLclampf value);
2686 GLAPI void APIENTRY glBlendEquationi (GLuint buf, GLenum mode);
2687 GLAPI void APIENTRY glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
2688 GLAPI void APIENTRY glBlendFunci (GLuint buf, GLenum src, GLenum dst);
2689 GLAPI void APIENTRY glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
2690 #endif /* GL3_PROTOTYPES */
2691 typedef void (APIENTRYP PFNGLMINSAMPLESHADINGPROC) (GLclampf value);
2692 typedef void (APIENTRYP PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode);
2693 typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
2694 typedef void (APIENTRYP PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst);
2695 typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
2696 #endif
2698 #ifndef GL_VERSION_4_1
2699 #define GL_VERSION_4_1 1
2700 /* OpenGL 4.1 reuses entry points from these extensions: */
2701 /* ARB_ES2_compatibility */
2702 /* ARB_get_program_binary */
2703 /* ARB_separate_shader_objects */
2704 /* ARB_shader_precision (no entry points) */
2705 /* ARB_vertex_attrib_64bit */
2706 /* ARB_viewport_array */
2707 #endif
2709 #ifndef GL_VERSION_4_2
2710 #define GL_VERSION_4_2 1
2711 /* OpenGL 4.2 reuses entry points from these extensions: */
2712 /* ARB_base_instance */
2713 /* ARB_shading_language_420pack (no entry points) */
2714 /* ARB_transform_feedback_instanced */
2715 /* ARB_compressed_texture_pixel_storage (no entry points) */
2716 /* ARB_conservative_depth (no entry points) */
2717 /* ARB_internalformat_query */
2718 /* ARB_map_buffer_alignment (no entry points) */
2719 /* ARB_shader_atomic_counters */
2720 /* ARB_shader_image_load_store */
2721 /* ARB_shading_language_packing (no entry points) */
2722 /* ARB_texture_storage */
2723 #endif
2725 #ifndef GL_ARB_depth_buffer_float
2726 #define GL_ARB_depth_buffer_float 1
2727 #endif
2729 #ifndef GL_ARB_framebuffer_object
2730 #define GL_ARB_framebuffer_object 1
2731 #ifdef GL3_PROTOTYPES
2732 GLAPI GLboolean APIENTRY glIsRenderbuffer (GLuint renderbuffer);
2733 GLAPI void APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer);
2734 GLAPI void APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers);
2735 GLAPI void APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers);
2736 GLAPI void APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
2737 GLAPI void APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params);
2738 GLAPI GLboolean APIENTRY glIsFramebuffer (GLuint framebuffer);
2739 GLAPI void APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer);
2740 GLAPI void APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers);
2741 GLAPI void APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers);
2742 GLAPI GLenum APIENTRY glCheckFramebufferStatus (GLenum target);
2743 GLAPI void APIENTRY glFramebufferTexture1D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
2744 GLAPI void APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
2745 GLAPI void APIENTRY glFramebufferTexture3D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
2746 GLAPI void APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
2747 GLAPI void APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params);
2748 GLAPI void APIENTRY glGenerateMipmap (GLenum target);
2749 GLAPI void APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
2750 GLAPI void APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
2751 GLAPI void APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
2752 #endif /* GL3_PROTOTYPES */
2753 typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer);
2754 typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
2755 typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers);
2756 typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers);
2757 typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
2758 typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
2759 typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer);
2760 typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
2761 typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers);
2762 typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers);
2763 typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
2764 typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
2765 typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
2766 typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
2767 typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
2768 typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
2769 typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target);
2770 typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
2771 typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
2772 typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
2773 #endif
2775 #ifndef GL_ARB_framebuffer_sRGB
2776 #define GL_ARB_framebuffer_sRGB 1
2777 #endif
2779 #ifndef GL_ARB_half_float_vertex
2780 #define GL_ARB_half_float_vertex 1
2781 #endif
2783 #ifndef GL_ARB_map_buffer_range
2784 #define GL_ARB_map_buffer_range 1
2785 #ifdef GL3_PROTOTYPES
2786 GLAPI GLvoid* APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
2787 GLAPI void APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length);
2788 #endif /* GL3_PROTOTYPES */
2789 typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
2790 typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
2791 #endif
2793 #ifndef GL_ARB_texture_compression_rgtc
2794 #define GL_ARB_texture_compression_rgtc 1
2795 #endif
2797 #ifndef GL_ARB_texture_rg
2798 #define GL_ARB_texture_rg 1
2799 #endif
2801 #ifndef GL_ARB_vertex_array_object
2802 #define GL_ARB_vertex_array_object 1
2803 #ifdef GL3_PROTOTYPES
2804 GLAPI void APIENTRY glBindVertexArray (GLuint array);
2805 GLAPI void APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays);
2806 GLAPI void APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays);
2807 GLAPI GLboolean APIENTRY glIsVertexArray (GLuint array);
2808 #endif /* GL3_PROTOTYPES */
2809 typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array);
2810 typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays);
2811 typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays);
2812 typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array);
2813 #endif
2815 #ifndef GL_ARB_uniform_buffer_object
2816 #define GL_ARB_uniform_buffer_object 1
2817 #ifdef GL3_PROTOTYPES
2818 GLAPI void APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar* *uniformNames, GLuint *uniformIndices);
2819 GLAPI void APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
2820 GLAPI void APIENTRY glGetActiveUniformName (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
2821 GLAPI GLuint APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName);
2822 GLAPI void APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
2823 GLAPI void APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
2824 GLAPI void APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
2825 #endif /* GL3_PROTOTYPES */
2826 typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar* *uniformNames, GLuint *uniformIndices);
2827 typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
2828 typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
2829 typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName);
2830 typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
2831 typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
2832 typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
2833 #endif
2835 #ifndef GL_ARB_copy_buffer
2836 #define GL_ARB_copy_buffer 1
2837 #ifdef GL3_PROTOTYPES
2838 GLAPI void APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
2839 #endif /* GL3_PROTOTYPES */
2840 typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
2841 #endif
2843 #ifndef GL_ARB_depth_clamp
2844 #define GL_ARB_depth_clamp 1
2845 #endif
2847 #ifndef GL_ARB_draw_elements_base_vertex
2848 #define GL_ARB_draw_elements_base_vertex 1
2849 #ifdef GL3_PROTOTYPES
2850 GLAPI void APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex);
2851 GLAPI void APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex);
2852 GLAPI void APIENTRY glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex);
2853 GLAPI void APIENTRY glMultiDrawElementsBaseVertex (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount, const GLint *basevertex);
2854 #endif /* GL3_PROTOTYPES */
2855 typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex);
2856 typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex);
2857 typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex);
2858 typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount, const GLint *basevertex);
2859 #endif
2861 #ifndef GL_ARB_fragment_coord_conventions
2862 #define GL_ARB_fragment_coord_conventions 1
2863 #endif
2865 #ifndef GL_ARB_provoking_vertex
2866 #define GL_ARB_provoking_vertex 1
2867 #ifdef GL3_PROTOTYPES
2868 GLAPI void APIENTRY glProvokingVertex (GLenum mode);
2869 #endif /* GL3_PROTOTYPES */
2870 typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC) (GLenum mode);
2871 #endif
2873 #ifndef GL_ARB_seamless_cube_map
2874 #define GL_ARB_seamless_cube_map 1
2875 #endif
2877 #ifndef GL_ARB_sync
2878 #define GL_ARB_sync 1
2879 #ifdef GL3_PROTOTYPES
2880 GLAPI GLsync APIENTRY glFenceSync (GLenum condition, GLbitfield flags);
2881 GLAPI GLboolean APIENTRY glIsSync (GLsync sync);
2882 GLAPI void APIENTRY glDeleteSync (GLsync sync);
2883 GLAPI GLenum APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout);
2884 GLAPI void APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout);
2885 GLAPI void APIENTRY glGetInteger64v (GLenum pname, GLint64 *params);
2886 GLAPI void APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
2887 #endif /* GL3_PROTOTYPES */
2888 typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags);
2889 typedef GLboolean (APIENTRYP PFNGLISSYNCPROC) (GLsync sync);
2890 typedef void (APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync);
2891 typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
2892 typedef void (APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
2893 typedef void (APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *params);
2894 typedef void (APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
2895 #endif
2897 #ifndef GL_ARB_texture_multisample
2898 #define GL_ARB_texture_multisample 1
2899 #ifdef GL3_PROTOTYPES
2900 GLAPI void APIENTRY glTexImage2DMultisample (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
2901 GLAPI void APIENTRY glTexImage3DMultisample (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
2902 GLAPI void APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val);
2903 GLAPI void APIENTRY glSampleMaski (GLuint index, GLbitfield mask);
2904 #endif /* GL3_PROTOTYPES */
2905 typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
2906 typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
2907 typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val);
2908 typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask);
2909 #endif
2911 #ifndef GL_ARB_vertex_array_bgra
2912 #define GL_ARB_vertex_array_bgra 1
2913 #endif
2915 #ifndef GL_ARB_draw_buffers_blend
2916 #define GL_ARB_draw_buffers_blend 1
2917 #ifdef GL3_PROTOTYPES
2918 GLAPI void APIENTRY glBlendEquationiARB (GLuint buf, GLenum mode);
2919 GLAPI void APIENTRY glBlendEquationSeparateiARB (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
2920 GLAPI void APIENTRY glBlendFunciARB (GLuint buf, GLenum src, GLenum dst);
2921 GLAPI void APIENTRY glBlendFuncSeparateiARB (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
2922 #endif /* GL3_PROTOTYPES */
2923 typedef void (APIENTRYP PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode);
2924 typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
2925 typedef void (APIENTRYP PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst);
2926 typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
2927 #endif
2929 #ifndef GL_ARB_sample_shading
2930 #define GL_ARB_sample_shading 1
2931 #ifdef GL3_PROTOTYPES
2932 GLAPI void APIENTRY glMinSampleShadingARB (GLclampf value);
2933 #endif /* GL3_PROTOTYPES */
2934 typedef void (APIENTRYP PFNGLMINSAMPLESHADINGARBPROC) (GLclampf value);
2935 #endif
2937 #ifndef GL_ARB_texture_cube_map_array
2938 #define GL_ARB_texture_cube_map_array 1
2939 #endif
2941 #ifndef GL_ARB_texture_gather
2942 #define GL_ARB_texture_gather 1
2943 #endif
2945 #ifndef GL_ARB_texture_query_lod
2946 #define GL_ARB_texture_query_lod 1
2947 #endif
2949 #ifndef GL_ARB_shading_language_include
2950 #define GL_ARB_shading_language_include 1
2951 #ifdef GL3_PROTOTYPES
2952 GLAPI void APIENTRY glNamedStringARB (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string);
2953 GLAPI void APIENTRY glDeleteNamedStringARB (GLint namelen, const GLchar *name);
2954 GLAPI void APIENTRY glCompileShaderIncludeARB (GLuint shader, GLsizei count, const GLchar* *path, const GLint *length);
2955 GLAPI GLboolean APIENTRY glIsNamedStringARB (GLint namelen, const GLchar *name);
2956 GLAPI void APIENTRY glGetNamedStringARB (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string);
2957 GLAPI void APIENTRY glGetNamedStringivARB (GLint namelen, const GLchar *name, GLenum pname, GLint *params);
2958 #endif /* GL3_PROTOTYPES */
2959 typedef void (APIENTRYP PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string);
2960 typedef void (APIENTRYP PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name);
2961 typedef void (APIENTRYP PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar* *path, const GLint *length);
2962 typedef GLboolean (APIENTRYP PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name);
2963 typedef void (APIENTRYP PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string);
2964 typedef void (APIENTRYP PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const GLchar *name, GLenum pname, GLint *params);
2965 #endif
2967 #ifndef GL_ARB_texture_compression_bptc
2968 #define GL_ARB_texture_compression_bptc 1
2969 #endif
2971 #ifndef GL_ARB_blend_func_extended
2972 #define GL_ARB_blend_func_extended 1
2973 #ifdef GL3_PROTOTYPES
2974 GLAPI void APIENTRY glBindFragDataLocationIndexed (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
2975 GLAPI GLint APIENTRY glGetFragDataIndex (GLuint program, const GLchar *name);
2976 #endif /* GL3_PROTOTYPES */
2977 typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
2978 typedef GLint (APIENTRYP PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar *name);
2979 #endif
2981 #ifndef GL_ARB_explicit_attrib_location
2982 #define GL_ARB_explicit_attrib_location 1
2983 #endif
2985 #ifndef GL_ARB_occlusion_query2
2986 #define GL_ARB_occlusion_query2 1
2987 #endif
2989 #ifndef GL_ARB_sampler_objects
2990 #define GL_ARB_sampler_objects 1
2991 #ifdef GL3_PROTOTYPES
2992 GLAPI void APIENTRY glGenSamplers (GLsizei count, GLuint *samplers);
2993 GLAPI void APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers);
2994 GLAPI GLboolean APIENTRY glIsSampler (GLuint sampler);
2995 GLAPI void APIENTRY glBindSampler (GLuint unit, GLuint sampler);
2996 GLAPI void APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param);
2997 GLAPI void APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param);
2998 GLAPI void APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param);
2999 GLAPI void APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param);
3000 GLAPI void APIENTRY glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param);
3001 GLAPI void APIENTRY glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param);
3002 GLAPI void APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params);
3003 GLAPI void APIENTRY glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params);
3004 GLAPI void APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params);
3005 GLAPI void APIENTRY glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params);
3006 #endif /* GL3_PROTOTYPES */
3007 typedef void (APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers);
3008 typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers);
3009 typedef GLboolean (APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler);
3010 typedef void (APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler);
3011 typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param);
3012 typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param);
3013 typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param);
3014 typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param);
3015 typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param);
3016 typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param);
3017 typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params);
3018 typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params);
3019 typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params);
3020 typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params);
3021 #endif
3023 #ifndef GL_ARB_shader_bit_encoding
3024 #define GL_ARB_shader_bit_encoding 1
3025 #endif
3027 #ifndef GL_ARB_texture_rgb10_a2ui
3028 #define GL_ARB_texture_rgb10_a2ui 1
3029 #endif
3031 #ifndef GL_ARB_texture_swizzle
3032 #define GL_ARB_texture_swizzle 1
3033 #endif
3035 #ifndef GL_ARB_timer_query
3036 #define GL_ARB_timer_query 1
3037 #ifdef GL3_PROTOTYPES
3038 GLAPI void APIENTRY glQueryCounter (GLuint id, GLenum target);
3039 GLAPI void APIENTRY glGetQueryObjecti64v (GLuint id, GLenum pname, GLint64 *params);
3040 GLAPI void APIENTRY glGetQueryObjectui64v (GLuint id, GLenum pname, GLuint64 *params);
3041 #endif /* GL3_PROTOTYPES */
3042 typedef void (APIENTRYP PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target);
3043 typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64 *params);
3044 typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64 *params);
3045 #endif
3047 #ifndef GL_ARB_vertex_type_2_10_10_10_rev
3048 #define GL_ARB_vertex_type_2_10_10_10_rev 1
3049 #ifdef GL3_PROTOTYPES
3050 GLAPI void APIENTRY glVertexP2ui (GLenum type, GLuint value);
3051 GLAPI void APIENTRY glVertexP2uiv (GLenum type, const GLuint *value);
3052 GLAPI void APIENTRY glVertexP3ui (GLenum type, GLuint value);
3053 GLAPI void APIENTRY glVertexP3uiv (GLenum type, const GLuint *value);
3054 GLAPI void APIENTRY glVertexP4ui (GLenum type, GLuint value);
3055 GLAPI void APIENTRY glVertexP4uiv (GLenum type, const GLuint *value);
3056 GLAPI void APIENTRY glTexCoordP1ui (GLenum type, GLuint coords);
3057 GLAPI void APIENTRY glTexCoordP1uiv (GLenum type, const GLuint *coords);
3058 GLAPI void APIENTRY glTexCoordP2ui (GLenum type, GLuint coords);
3059 GLAPI void APIENTRY glTexCoordP2uiv (GLenum type, const GLuint *coords);
3060 GLAPI void APIENTRY glTexCoordP3ui (GLenum type, GLuint coords);
3061 GLAPI void APIENTRY glTexCoordP3uiv (GLenum type, const GLuint *coords);
3062 GLAPI void APIENTRY glTexCoordP4ui (GLenum type, GLuint coords);
3063 GLAPI void APIENTRY glTexCoordP4uiv (GLenum type, const GLuint *coords);
3064 GLAPI void APIENTRY glMultiTexCoordP1ui (GLenum texture, GLenum type, GLuint coords);
3065 GLAPI void APIENTRY glMultiTexCoordP1uiv (GLenum texture, GLenum type, const GLuint *coords);
3066 GLAPI void APIENTRY glMultiTexCoordP2ui (GLenum texture, GLenum type, GLuint coords);
3067 GLAPI void APIENTRY glMultiTexCoordP2uiv (GLenum texture, GLenum type, const GLuint *coords);
3068 GLAPI void APIENTRY glMultiTexCoordP3ui (GLenum texture, GLenum type, GLuint coords);
3069 GLAPI void APIENTRY glMultiTexCoordP3uiv (GLenum texture, GLenum type, const GLuint *coords);
3070 GLAPI void APIENTRY glMultiTexCoordP4ui (GLenum texture, GLenum type, GLuint coords);
3071 GLAPI void APIENTRY glMultiTexCoordP4uiv (GLenum texture, GLenum type, const GLuint *coords);
3072 GLAPI void APIENTRY glNormalP3ui (GLenum type, GLuint coords);
3073 GLAPI void APIENTRY glNormalP3uiv (GLenum type, const GLuint *coords);
3074 GLAPI void APIENTRY glColorP3ui (GLenum type, GLuint color);
3075 GLAPI void APIENTRY glColorP3uiv (GLenum type, const GLuint *color);
3076 GLAPI void APIENTRY glColorP4ui (GLenum type, GLuint color);
3077 GLAPI void APIENTRY glColorP4uiv (GLenum type, const GLuint *color);
3078 GLAPI void APIENTRY glSecondaryColorP3ui (GLenum type, GLuint color);
3079 GLAPI void APIENTRY glSecondaryColorP3uiv (GLenum type, const GLuint *color);
3080 GLAPI void APIENTRY glVertexAttribP1ui (GLuint index, GLenum type, GLboolean normalized, GLuint value);
3081 GLAPI void APIENTRY glVertexAttribP1uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
3082 GLAPI void APIENTRY glVertexAttribP2ui (GLuint index, GLenum type, GLboolean normalized, GLuint value);
3083 GLAPI void APIENTRY glVertexAttribP2uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
3084 GLAPI void APIENTRY glVertexAttribP3ui (GLuint index, GLenum type, GLboolean normalized, GLuint value);
3085 GLAPI void APIENTRY glVertexAttribP3uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
3086 GLAPI void APIENTRY glVertexAttribP4ui (GLuint index, GLenum type, GLboolean normalized, GLuint value);
3087 GLAPI void APIENTRY glVertexAttribP4uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
3088 #endif /* GL3_PROTOTYPES */
3089 typedef void (APIENTRYP PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value);
3090 typedef void (APIENTRYP PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint *value);
3091 typedef void (APIENTRYP PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value);
3092 typedef void (APIENTRYP PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint *value);
3093 typedef void (APIENTRYP PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value);
3094 typedef void (APIENTRYP PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint *value);
3095 typedef void (APIENTRYP PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords);
3096 typedef void (APIENTRYP PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint *coords);
3097 typedef void (APIENTRYP PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords);
3098 typedef void (APIENTRYP PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint *coords);
3099 typedef void (APIENTRYP PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords);
3100 typedef void (APIENTRYP PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint *coords);
3101 typedef void (APIENTRYP PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords);
3102 typedef void (APIENTRYP PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint *coords);
3103 typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords);
3104 typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
3105 typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords);
3106 typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
3107 typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords);
3108 typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
3109 typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords);
3110 typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
3111 typedef void (APIENTRYP PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords);
3112 typedef void (APIENTRYP PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint *coords);
3113 typedef void (APIENTRYP PFNGLCOLORP3UIPROC) (GLenum type, GLuint color);
3114 typedef void (APIENTRYP PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint *color);
3115 typedef void (APIENTRYP PFNGLCOLORP4UIPROC) (GLenum type, GLuint color);
3116 typedef void (APIENTRYP PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint *color);
3117 typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color);
3118 typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint *color);
3119 typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
3120 typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
3121 typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
3122 typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
3123 typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
3124 typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
3125 typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
3126 typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
3127 #endif
3129 #ifndef GL_ARB_draw_indirect
3130 #define GL_ARB_draw_indirect 1
3131 #ifdef GL3_PROTOTYPES
3132 GLAPI void APIENTRY glDrawArraysIndirect (GLenum mode, const GLvoid *indirect);
3133 GLAPI void APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const GLvoid *indirect);
3134 #endif /* GL3_PROTOTYPES */
3135 typedef void (APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const GLvoid *indirect);
3136 typedef void (APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const GLvoid *indirect);
3137 #endif
3139 #ifndef GL_ARB_gpu_shader5
3140 #define GL_ARB_gpu_shader5 1
3141 #endif
3143 #ifndef GL_ARB_gpu_shader_fp64
3144 #define GL_ARB_gpu_shader_fp64 1
3145 #ifdef GL3_PROTOTYPES
3146 GLAPI void APIENTRY glUniform1d (GLint location, GLdouble x);
3147 GLAPI void APIENTRY glUniform2d (GLint location, GLdouble x, GLdouble y);
3148 GLAPI void APIENTRY glUniform3d (GLint location, GLdouble x, GLdouble y, GLdouble z);
3149 GLAPI void APIENTRY glUniform4d (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
3150 GLAPI void APIENTRY glUniform1dv (GLint location, GLsizei count, const GLdouble *value);
3151 GLAPI void APIENTRY glUniform2dv (GLint location, GLsizei count, const GLdouble *value);
3152 GLAPI void APIENTRY glUniform3dv (GLint location, GLsizei count, const GLdouble *value);
3153 GLAPI void APIENTRY glUniform4dv (GLint location, GLsizei count, const GLdouble *value);
3154 GLAPI void APIENTRY glUniformMatrix2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3155 GLAPI void APIENTRY glUniformMatrix3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3156 GLAPI void APIENTRY glUniformMatrix4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3157 GLAPI void APIENTRY glUniformMatrix2x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3158 GLAPI void APIENTRY glUniformMatrix2x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3159 GLAPI void APIENTRY glUniformMatrix3x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3160 GLAPI void APIENTRY glUniformMatrix3x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3161 GLAPI void APIENTRY glUniformMatrix4x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3162 GLAPI void APIENTRY glUniformMatrix4x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3163 GLAPI void APIENTRY glGetUniformdv (GLuint program, GLint location, GLdouble *params);
3164 #endif /* GL3_PROTOTYPES */
3165 typedef void (APIENTRYP PFNGLUNIFORM1DPROC) (GLint location, GLdouble x);
3166 typedef void (APIENTRYP PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y);
3167 typedef void (APIENTRYP PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z);
3168 typedef void (APIENTRYP PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
3169 typedef void (APIENTRYP PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble *value);
3170 typedef void (APIENTRYP PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble *value);
3171 typedef void (APIENTRYP PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble *value);
3172 typedef void (APIENTRYP PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble *value);
3173 typedef void (APIENTRYP PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3174 typedef void (APIENTRYP PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3175 typedef void (APIENTRYP PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3176 typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3177 typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3178 typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3179 typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3180 typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3181 typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3182 typedef void (APIENTRYP PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble *params);
3183 #endif
3185 #ifndef GL_ARB_shader_subroutine
3186 #define GL_ARB_shader_subroutine 1
3187 #ifdef GL3_PROTOTYPES
3188 GLAPI GLint APIENTRY glGetSubroutineUniformLocation (GLuint program, GLenum shadertype, const GLchar *name);
3189 GLAPI GLuint APIENTRY glGetSubroutineIndex (GLuint program, GLenum shadertype, const GLchar *name);
3190 GLAPI void APIENTRY glGetActiveSubroutineUniformiv (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values);
3191 GLAPI void APIENTRY glGetActiveSubroutineUniformName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
3192 GLAPI void APIENTRY glGetActiveSubroutineName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
3193 GLAPI void APIENTRY glUniformSubroutinesuiv (GLenum shadertype, GLsizei count, const GLuint *indices);
3194 GLAPI void APIENTRY glGetUniformSubroutineuiv (GLenum shadertype, GLint location, GLuint *params);
3195 GLAPI void APIENTRY glGetProgramStageiv (GLuint program, GLenum shadertype, GLenum pname, GLint *values);
3196 #endif /* GL3_PROTOTYPES */
3197 typedef GLint (APIENTRYP PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar *name);
3198 typedef GLuint (APIENTRYP PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar *name);
3199 typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values);
3200 typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
3201 typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
3202 typedef void (APIENTRYP PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint *indices);
3203 typedef void (APIENTRYP PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint *params);
3204 typedef void (APIENTRYP PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint *values);
3205 #endif
3207 #ifndef GL_ARB_tessellation_shader
3208 #define GL_ARB_tessellation_shader 1
3209 #ifdef GL3_PROTOTYPES
3210 GLAPI void APIENTRY glPatchParameteri (GLenum pname, GLint value);
3211 GLAPI void APIENTRY glPatchParameterfv (GLenum pname, const GLfloat *values);
3212 #endif /* GL3_PROTOTYPES */
3213 typedef void (APIENTRYP PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value);
3214 typedef void (APIENTRYP PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat *values);
3215 #endif
3217 #ifndef GL_ARB_texture_buffer_object_rgb32
3218 #define GL_ARB_texture_buffer_object_rgb32 1
3219 #endif
3221 #ifndef GL_ARB_transform_feedback2
3222 #define GL_ARB_transform_feedback2 1
3223 #ifdef GL3_PROTOTYPES
3224 GLAPI void APIENTRY glBindTransformFeedback (GLenum target, GLuint id);
3225 GLAPI void APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids);
3226 GLAPI void APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids);
3227 GLAPI GLboolean APIENTRY glIsTransformFeedback (GLuint id);
3228 GLAPI void APIENTRY glPauseTransformFeedback (void);
3229 GLAPI void APIENTRY glResumeTransformFeedback (void);
3230 GLAPI void APIENTRY glDrawTransformFeedback (GLenum mode, GLuint id);
3231 #endif /* GL3_PROTOTYPES */
3232 typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id);
3233 typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids);
3234 typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids);
3235 typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id);
3236 typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void);
3237 typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void);
3238 typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id);
3239 #endif
3241 #ifndef GL_ARB_transform_feedback3
3242 #define GL_ARB_transform_feedback3 1
3243 #ifdef GL3_PROTOTYPES
3244 GLAPI void APIENTRY glDrawTransformFeedbackStream (GLenum mode, GLuint id, GLuint stream);
3245 GLAPI void APIENTRY glBeginQueryIndexed (GLenum target, GLuint index, GLuint id);
3246 GLAPI void APIENTRY glEndQueryIndexed (GLenum target, GLuint index);
3247 GLAPI void APIENTRY glGetQueryIndexediv (GLenum target, GLuint index, GLenum pname, GLint *params);
3248 #endif /* GL3_PROTOTYPES */
3249 typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream);
3250 typedef void (APIENTRYP PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id);
3251 typedef void (APIENTRYP PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index);
3252 typedef void (APIENTRYP PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params);
3253 #endif
3255 #ifndef GL_ARB_ES2_compatibility
3256 #define GL_ARB_ES2_compatibility 1
3257 #ifdef GL3_PROTOTYPES
3258 GLAPI void APIENTRY glReleaseShaderCompiler (void);
3259 GLAPI void APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length);
3260 GLAPI void APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
3261 GLAPI void APIENTRY glDepthRangef (GLclampf n, GLclampf f);
3262 GLAPI void APIENTRY glClearDepthf (GLclampf d);
3263 #endif /* GL3_PROTOTYPES */
3264 typedef void (APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void);
3265 typedef void (APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length);
3266 typedef void (APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
3267 typedef void (APIENTRYP PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f);
3268 typedef void (APIENTRYP PFNGLCLEARDEPTHFPROC) (GLclampf d);
3269 #endif
3271 #ifndef GL_ARB_get_program_binary
3272 #define GL_ARB_get_program_binary 1
3273 #ifdef GL3_PROTOTYPES
3274 GLAPI void APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
3275 GLAPI void APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length);
3276 GLAPI void APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value);
3277 #endif /* GL3_PROTOTYPES */
3278 typedef void (APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
3279 typedef void (APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length);
3280 typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value);
3281 #endif
3283 #ifndef GL_ARB_separate_shader_objects
3284 #define GL_ARB_separate_shader_objects 1
3285 #ifdef GL3_PROTOTYPES
3286 GLAPI void APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program);
3287 GLAPI void APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program);
3288 GLAPI GLuint APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar* *strings);
3289 GLAPI void APIENTRY glBindProgramPipeline (GLuint pipeline);
3290 GLAPI void APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines);
3291 GLAPI void APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines);
3292 GLAPI GLboolean APIENTRY glIsProgramPipeline (GLuint pipeline);
3293 GLAPI void APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params);
3294 GLAPI void APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0);
3295 GLAPI void APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value);
3296 GLAPI void APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0);
3297 GLAPI void APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value);
3298 GLAPI void APIENTRY glProgramUniform1d (GLuint program, GLint location, GLdouble v0);
3299 GLAPI void APIENTRY glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble *value);
3300 GLAPI void APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0);
3301 GLAPI void APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value);
3302 GLAPI void APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1);
3303 GLAPI void APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value);
3304 GLAPI void APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1);
3305 GLAPI void APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value);
3306 GLAPI void APIENTRY glProgramUniform2d (GLuint program, GLint location, GLdouble v0, GLdouble v1);
3307 GLAPI void APIENTRY glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble *value);
3308 GLAPI void APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1);
3309 GLAPI void APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value);
3310 GLAPI void APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
3311 GLAPI void APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value);
3312 GLAPI void APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
3313 GLAPI void APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value);
3314 GLAPI void APIENTRY glProgramUniform3d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
3315 GLAPI void APIENTRY glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble *value);
3316 GLAPI void APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
3317 GLAPI void APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value);
3318 GLAPI void APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
3319 GLAPI void APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value);
3320 GLAPI void APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
3321 GLAPI void APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value);
3322 GLAPI void APIENTRY glProgramUniform4d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
3323 GLAPI void APIENTRY glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble *value);
3324 GLAPI void APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
3325 GLAPI void APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value);
3326 GLAPI void APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3327 GLAPI void APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3328 GLAPI void APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3329 GLAPI void APIENTRY glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3330 GLAPI void APIENTRY glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3331 GLAPI void APIENTRY glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3332 GLAPI void APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3333 GLAPI void APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3334 GLAPI void APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3335 GLAPI void APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3336 GLAPI void APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3337 GLAPI void APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3338 GLAPI void APIENTRY glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3339 GLAPI void APIENTRY glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3340 GLAPI void APIENTRY glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3341 GLAPI void APIENTRY glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3342 GLAPI void APIENTRY glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3343 GLAPI void APIENTRY glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3344 GLAPI void APIENTRY glValidateProgramPipeline (GLuint pipeline);
3345 GLAPI void APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
3346 #endif /* GL3_PROTOTYPES */
3347 typedef void (APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program);
3348 typedef void (APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program);
3349 typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar* *strings);
3350 typedef void (APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline);
3351 typedef void (APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines);
3352 typedef void (APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines);
3353 typedef GLboolean (APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline);
3354 typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params);
3355 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0);
3356 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
3357 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0);
3358 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
3359 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble v0);
3360 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
3361 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0);
3362 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
3363 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1);
3364 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
3365 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1);
3366 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
3367 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1);
3368 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
3369 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1);
3370 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
3371 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
3372 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
3373 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
3374 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
3375 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
3376 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
3377 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
3378 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
3379 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
3380 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
3381 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
3382 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
3383 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
3384 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
3385 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
3386 typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
3387 typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3388 typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3389 typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3390 typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3391 typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3392 typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3393 typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3394 typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3395 typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3396 typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3397 typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3398 typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3399 typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3400 typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3401 typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3402 typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3403 typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3404 typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
3405 typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline);
3406 typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
3407 #endif
3409 #ifndef GL_ARB_vertex_attrib_64bit
3410 #define GL_ARB_vertex_attrib_64bit 1
3411 #ifdef GL3_PROTOTYPES
3412 GLAPI void APIENTRY glVertexAttribL1d (GLuint index, GLdouble x);
3413 GLAPI void APIENTRY glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y);
3414 GLAPI void APIENTRY glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z);
3415 GLAPI void APIENTRY glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
3416 GLAPI void APIENTRY glVertexAttribL1dv (GLuint index, const GLdouble *v);
3417 GLAPI void APIENTRY glVertexAttribL2dv (GLuint index, const GLdouble *v);
3418 GLAPI void APIENTRY glVertexAttribL3dv (GLuint index, const GLdouble *v);
3419 GLAPI void APIENTRY glVertexAttribL4dv (GLuint index, const GLdouble *v);
3420 GLAPI void APIENTRY glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
3421 GLAPI void APIENTRY glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble *params);
3422 #endif /* GL3_PROTOTYPES */
3423 typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x);
3424 typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y);
3425 typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
3426 typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
3427 typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble *v);
3428 typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble *v);
3429 typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble *v);
3430 typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble *v);
3431 typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
3432 typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble *params);
3433 #endif
3435 #ifndef GL_ARB_viewport_array
3436 #define GL_ARB_viewport_array 1
3437 #ifdef GL3_PROTOTYPES
3438 GLAPI void APIENTRY glViewportArrayv (GLuint first, GLsizei count, const GLfloat *v);
3439 GLAPI void APIENTRY glViewportIndexedf (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
3440 GLAPI void APIENTRY glViewportIndexedfv (GLuint index, const GLfloat *v);
3441 GLAPI void APIENTRY glScissorArrayv (GLuint first, GLsizei count, const GLint *v);
3442 GLAPI void APIENTRY glScissorIndexed (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
3443 GLAPI void APIENTRY glScissorIndexedv (GLuint index, const GLint *v);
3444 GLAPI void APIENTRY glDepthRangeArrayv (GLuint first, GLsizei count, const GLclampd *v);
3445 GLAPI void APIENTRY glDepthRangeIndexed (GLuint index, GLclampd n, GLclampd f);
3446 GLAPI void APIENTRY glGetFloati_v (GLenum target, GLuint index, GLfloat *data);
3447 GLAPI void APIENTRY glGetDoublei_v (GLenum target, GLuint index, GLdouble *data);
3448 #endif /* GL3_PROTOTYPES */
3449 typedef void (APIENTRYP PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat *v);
3450 typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
3451 typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat *v);
3452 typedef void (APIENTRYP PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint *v);
3453 typedef void (APIENTRYP PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
3454 typedef void (APIENTRYP PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint *v);
3455 typedef void (APIENTRYP PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLclampd *v);
3456 typedef void (APIENTRYP PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLclampd n, GLclampd f);
3457 typedef void (APIENTRYP PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat *data);
3458 typedef void (APIENTRYP PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble *data);
3459 #endif
3461 #ifndef GL_ARB_cl_event
3462 #define GL_ARB_cl_event 1
3463 #ifdef GL3_PROTOTYPES
3464 GLAPI GLsync APIENTRY glCreateSyncFromCLeventARB (struct _cl_context * context, struct _cl_event * event, GLbitfield flags);
3465 #endif /* GL3_PROTOTYPES */
3466 typedef GLsync (APIENTRYP PFNGLCREATESYNCFROMCLEVENTARBPROC) (struct _cl_context * context, struct _cl_event * event, GLbitfield flags);
3467 #endif
3469 #ifndef GL_ARB_debug_output
3470 #define GL_ARB_debug_output 1
3471 #ifdef GL3_PROTOTYPES
3472 GLAPI void APIENTRY glDebugMessageControlARB (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
3473 GLAPI void APIENTRY glDebugMessageInsertARB (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
3474 GLAPI void APIENTRY glDebugMessageCallbackARB (GLDEBUGPROCARB callback, const GLvoid *userParam);
3475 GLAPI GLuint APIENTRY glGetDebugMessageLogARB (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
3476 #endif /* GL3_PROTOTYPES */
3477 typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
3478 typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
3479 typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const GLvoid *userParam);
3480 typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
3481 #endif
3483 #ifndef GL_ARB_robustness
3484 #define GL_ARB_robustness 1
3485 #ifdef GL3_PROTOTYPES
3486 GLAPI GLenum APIENTRY glGetGraphicsResetStatusARB (void);
3487 GLAPI void APIENTRY glGetnMapdvARB (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
3488 GLAPI void APIENTRY glGetnMapfvARB (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
3489 GLAPI void APIENTRY glGetnMapivARB (GLenum target, GLenum query, GLsizei bufSize, GLint *v);
3490 GLAPI void APIENTRY glGetnPixelMapfvARB (GLenum map, GLsizei bufSize, GLfloat *values);
3491 GLAPI void APIENTRY glGetnPixelMapuivARB (GLenum map, GLsizei bufSize, GLuint *values);
3492 GLAPI void APIENTRY glGetnPixelMapusvARB (GLenum map, GLsizei bufSize, GLushort *values);
3493 GLAPI void APIENTRY glGetnPolygonStippleARB (GLsizei bufSize, GLubyte *pattern);
3494 GLAPI void APIENTRY glGetnColorTableARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *table);
3495 GLAPI void APIENTRY glGetnConvolutionFilterARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *image);
3496 GLAPI void APIENTRY glGetnSeparableFilterARB (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid *row, GLsizei columnBufSize, GLvoid *column, GLvoid *span);
3497 GLAPI void APIENTRY glGetnHistogramARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values);
3498 GLAPI void APIENTRY glGetnMinmaxARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values);
3499 GLAPI void APIENTRY glGetnTexImageARB (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *img);
3500 GLAPI void APIENTRY glReadnPixelsARB (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
3501 GLAPI void APIENTRY glGetnCompressedTexImageARB (GLenum target, GLint lod, GLsizei bufSize, GLvoid *img);
3502 GLAPI void APIENTRY glGetnUniformfvARB (GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
3503 GLAPI void APIENTRY glGetnUniformivARB (GLuint program, GLint location, GLsizei bufSize, GLint *params);
3504 GLAPI void APIENTRY glGetnUniformuivARB (GLuint program, GLint location, GLsizei bufSize, GLuint *params);
3505 GLAPI void APIENTRY glGetnUniformdvARB (GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
3506 #endif /* GL3_PROTOTYPES */
3507 typedef GLenum (APIENTRYP PFNGLGETGRAPHICSRESETSTATUSARBPROC) (void);
3508 typedef void (APIENTRYP PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
3509 typedef void (APIENTRYP PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
3510 typedef void (APIENTRYP PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint *v);
3511 typedef void (APIENTRYP PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat *values);
3512 typedef void (APIENTRYP PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint *values);
3513 typedef void (APIENTRYP PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort *values);
3514 typedef void (APIENTRYP PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte *pattern);
3515 typedef void (APIENTRYP PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *table);
3516 typedef void (APIENTRYP PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *image);
3517 typedef void (APIENTRYP PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid *row, GLsizei columnBufSize, GLvoid *column, GLvoid *span);
3518 typedef void (APIENTRYP PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values);
3519 typedef void (APIENTRYP PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values);
3520 typedef void (APIENTRYP PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *img);
3521 typedef void (APIENTRYP PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
3522 typedef void (APIENTRYP PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, GLvoid *img);
3523 typedef void (APIENTRYP PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
3524 typedef void (APIENTRYP PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params);
3525 typedef void (APIENTRYP PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params);
3526 typedef void (APIENTRYP PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
3527 #endif
3529 #ifndef GL_ARB_shader_stencil_export
3530 #define GL_ARB_shader_stencil_export 1
3531 #endif
3533 #ifndef GL_ARB_base_instance
3534 #define GL_ARB_base_instance 1
3535 #ifdef GL3_PROTOTYPES
3536 GLAPI void APIENTRY glDrawArraysInstancedBaseInstance (GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance);
3537 GLAPI void APIENTRY glDrawElementsInstancedBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLuint baseinstance);
3538 GLAPI void APIENTRY glDrawElementsInstancedBaseVertexBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLint basevertex, GLuint baseinstance);
3539 #endif /* GL3_PROTOTYPES */
3540 typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance);
3541 typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLuint baseinstance);
3542 typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLint basevertex, GLuint baseinstance);
3543 #endif
3545 #ifndef GL_ARB_shading_language_420pack
3546 #define GL_ARB_shading_language_420pack 1
3547 #endif
3549 #ifndef GL_ARB_transform_feedback_instanced
3550 #define GL_ARB_transform_feedback_instanced 1
3551 #ifdef GL3_PROTOTYPES
3552 GLAPI void APIENTRY glDrawTransformFeedbackInstanced (GLenum mode, GLuint id, GLsizei primcount);
3553 GLAPI void APIENTRY glDrawTransformFeedbackStreamInstanced (GLenum mode, GLuint id, GLuint stream, GLsizei primcount);
3554 #endif /* GL3_PROTOTYPES */
3555 typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) (GLenum mode, GLuint id, GLsizei primcount);
3556 typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) (GLenum mode, GLuint id, GLuint stream, GLsizei primcount);
3557 #endif
3559 #ifndef GL_ARB_compressed_texture_pixel_storage
3560 #define GL_ARB_compressed_texture_pixel_storage 1
3561 #endif
3563 #ifndef GL_ARB_conservative_depth
3564 #define GL_ARB_conservative_depth 1
3565 #endif
3567 #ifndef GL_ARB_internalformat_query
3568 #define GL_ARB_internalformat_query 1
3569 #ifdef GL3_PROTOTYPES
3570 GLAPI void APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
3571 #endif /* GL3_PROTOTYPES */
3572 typedef void (APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
3573 #endif
3575 #ifndef GL_ARB_map_buffer_alignment
3576 #define GL_ARB_map_buffer_alignment 1
3577 #endif
3579 #ifndef GL_ARB_shader_atomic_counters
3580 #define GL_ARB_shader_atomic_counters 1
3581 #ifdef GL3_PROTOTYPES
3582 GLAPI void APIENTRY glGetActiveAtomicCounterBufferiv (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params);
3583 #endif /* GL3_PROTOTYPES */
3584 typedef void (APIENTRYP PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params);
3585 #endif
3587 #ifndef GL_ARB_shader_image_load_store
3588 #define GL_ARB_shader_image_load_store 1
3589 #ifdef GL3_PROTOTYPES
3590 GLAPI void APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
3591 GLAPI void APIENTRY glMemoryBarrier (GLbitfield barriers);
3592 #endif /* GL3_PROTOTYPES */
3593 typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
3594 typedef void (APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers);
3595 #endif
3597 #ifndef GL_ARB_shading_language_packing
3598 #define GL_ARB_shading_language_packing 1
3599 #endif
3601 #ifndef GL_ARB_texture_storage
3602 #define GL_ARB_texture_storage 1
3603 #ifdef GL3_PROTOTYPES
3604 GLAPI void APIENTRY glTexStorage1D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
3605 GLAPI void APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
3606 GLAPI void APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
3607 GLAPI void APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
3608 GLAPI void APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
3609 GLAPI void APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
3610 #endif /* GL3_PROTOTYPES */
3611 typedef void (APIENTRYP PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
3612 typedef void (APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
3613 typedef void (APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
3614 typedef void (APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
3615 typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
3616 typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
3617 #endif
3620 #ifdef __cplusplus
3622 #endif
3624 #endif