blob: 4ac971a684cb3b87475c0a4d9db14bb5e024f011 [file] [log] [blame]
Brian Paul0ebc94d2008-06-04 10:04:31 -06001#ifndef __gl2ext_h_
2#define __gl2ext_h_
3
Matt Turner00a945f2013-07-26 16:33:10 -07004/* $Revision: 22161 $ on $Date:: 2013-06-25 08:17:27 -0700 #$ */
Brian Paul0ebc94d2008-06-04 10:04:31 -06005
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10/*
Chia-I Wu59f8dca2010-05-31 10:15:55 +080011 * This document is licensed under the SGI Free Software B License Version
12 * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
13 */
Brian Paul0ebc94d2008-06-04 10:04:31 -060014
15#ifndef GL_APIENTRYP
16# define GL_APIENTRYP GL_APIENTRY*
17#endif
18
Matt Turner00a945f2013-07-26 16:33:10 -070019/* New types shared by several extensions */
20
21#ifndef __gl3_h_
22/* These are defined with respect to <inttypes.h> in the
23 * Apple extension spec, but they are also used by non-APPLE
24 * extensions, and in the Khronos header we use the Khronos
25 * portable types in khrplatform.h, which must be defined.
26 */
27typedef khronos_int64_t GLint64;
28typedef khronos_uint64_t GLuint64;
29typedef struct __GLsync *GLsync;
30#endif
31
32
Brian Paul0ebc94d2008-06-04 10:04:31 -060033/*------------------------------------------------------------------------*
34 * OES extension tokens
35 *------------------------------------------------------------------------*/
36
37/* GL_OES_compressed_ETC1_RGB8_texture */
38#ifndef GL_OES_compressed_ETC1_RGB8_texture
39#define GL_ETC1_RGB8_OES 0x8D64
40#endif
41
42/* GL_OES_compressed_paletted_texture */
43#ifndef GL_OES_compressed_paletted_texture
44#define GL_PALETTE4_RGB8_OES 0x8B90
45#define GL_PALETTE4_RGBA8_OES 0x8B91
46#define GL_PALETTE4_R5_G6_B5_OES 0x8B92
47#define GL_PALETTE4_RGBA4_OES 0x8B93
48#define GL_PALETTE4_RGB5_A1_OES 0x8B94
49#define GL_PALETTE8_RGB8_OES 0x8B95
50#define GL_PALETTE8_RGBA8_OES 0x8B96
51#define GL_PALETTE8_R5_G6_B5_OES 0x8B97
52#define GL_PALETTE8_RGBA4_OES 0x8B98
53#define GL_PALETTE8_RGB5_A1_OES 0x8B99
54#endif
55
Brian Paul0ebc94d2008-06-04 10:04:31 -060056/* GL_OES_depth24 */
57#ifndef GL_OES_depth24
58#define GL_DEPTH_COMPONENT24_OES 0x81A6
59#endif
60
61/* GL_OES_depth32 */
62#ifndef GL_OES_depth32
63#define GL_DEPTH_COMPONENT32_OES 0x81A7
64#endif
65
66/* GL_OES_depth_texture */
67/* No new tokens introduced by this extension. */
68
Chia-I Wu59f8dca2010-05-31 10:15:55 +080069/* GL_OES_EGL_image */
70#ifndef GL_OES_EGL_image
71typedef void* GLeglImageOES;
72#endif
73
Ian Romanickb152a232011-09-20 15:54:52 -070074/* GL_OES_EGL_image_external */
75#ifndef GL_OES_EGL_image_external
76/* GLeglImageOES defined in GL_OES_EGL_image already. */
77#define GL_TEXTURE_EXTERNAL_OES 0x8D65
78#define GL_SAMPLER_EXTERNAL_OES 0x8D66
79#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67
80#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68
81#endif
82
Chia-I Wu59f8dca2010-05-31 10:15:55 +080083/* GL_OES_element_index_uint */
84#ifndef GL_OES_element_index_uint
85#define GL_UNSIGNED_INT 0x1405
86#endif
87
88/* GL_OES_get_program_binary */
89#ifndef GL_OES_get_program_binary
90#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741
91#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE
92#define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF
93#endif
94
Brian Paul0ebc94d2008-06-04 10:04:31 -060095/* GL_OES_mapbuffer */
96#ifndef GL_OES_mapbuffer
Brian Paul0ebc94d2008-06-04 10:04:31 -060097#define GL_WRITE_ONLY_OES 0x88B9
98#define GL_BUFFER_ACCESS_OES 0x88BB
99#define GL_BUFFER_MAPPED_OES 0x88BC
100#define GL_BUFFER_MAP_POINTER_OES 0x88BD
101#endif
102
103/* GL_OES_packed_depth_stencil */
104#ifndef GL_OES_packed_depth_stencil
105#define GL_DEPTH_STENCIL_OES 0x84F9
106#define GL_UNSIGNED_INT_24_8_OES 0x84FA
107#define GL_DEPTH24_STENCIL8_OES 0x88F0
108#endif
109
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400110/* GL_OES_required_internalformat */
Matt Turner00a945f2013-07-26 16:33:10 -0700111#ifndef GL_OES_required_internalformat
Matt Turner5c78ad82012-11-15 11:56:22 -0800112#define GL_ALPHA8_OES 0x803C
113#define GL_DEPTH_COMPONENT16_OES 0x81A5
Matt Turner00a945f2013-07-26 16:33:10 -0700114/* reuse GL_DEPTH_COMPONENT24_OES */
115/* reuse GL_DEPTH24_STENCIL8_OES */
116/* reuse GL_DEPTH_COMPONENT32_OES */
Matt Turner5c78ad82012-11-15 11:56:22 -0800117#define GL_LUMINANCE4_ALPHA4_OES 0x8043
118#define GL_LUMINANCE8_ALPHA8_OES 0x8045
119#define GL_LUMINANCE8_OES 0x8040
120#define GL_RGBA4_OES 0x8056
121#define GL_RGB5_A1_OES 0x8057
122#define GL_RGB565_OES 0x8D62
Matt Turner00a945f2013-07-26 16:33:10 -0700123/* reuse GL_RGB8_OES */
124/* reuse GL_RGBA8_OES */
Matt Turner5c78ad82012-11-15 11:56:22 -0800125/* reuse GL_RGB10_EXT */
126/* reuse GL_RGB10_A2_EXT */
Matt Turner00a945f2013-07-26 16:33:10 -0700127#endif
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400128
Brian Paul0ebc94d2008-06-04 10:04:31 -0600129/* GL_OES_rgb8_rgba8 */
130#ifndef GL_OES_rgb8_rgba8
131#define GL_RGB8_OES 0x8051
132#define GL_RGBA8_OES 0x8058
133#endif
134
135/* GL_OES_standard_derivatives */
136#ifndef GL_OES_standard_derivatives
137#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B
138#endif
139
140/* GL_OES_stencil1 */
141#ifndef GL_OES_stencil1
142#define GL_STENCIL_INDEX1_OES 0x8D46
143#endif
144
145/* GL_OES_stencil4 */
146#ifndef GL_OES_stencil4
147#define GL_STENCIL_INDEX4_OES 0x8D47
148#endif
149
Matt Turner5c78ad82012-11-15 11:56:22 -0800150#ifndef GL_OES_surfaceless_context
151#define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219
152#endif
153
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800154/* GL_OES_texture_3D */
155#ifndef GL_OES_texture_3D
Brian Paul0ebc94d2008-06-04 10:04:31 -0600156#define GL_TEXTURE_WRAP_R_OES 0x8072
157#define GL_TEXTURE_3D_OES 0x806F
158#define GL_TEXTURE_BINDING_3D_OES 0x806A
159#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073
160#define GL_SAMPLER_3D_OES 0x8B5F
161#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4
162#endif
163
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800164/* GL_OES_texture_float */
165/* No new tokens introduced by this extension. */
166
167/* GL_OES_texture_float_linear */
168/* No new tokens introduced by this extension. */
169
Brian Paul0ebc94d2008-06-04 10:04:31 -0600170/* GL_OES_texture_half_float */
171#ifndef GL_OES_texture_half_float
172#define GL_HALF_FLOAT_OES 0x8D61
173#endif
174
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800175/* GL_OES_texture_half_float_linear */
176/* No new tokens introduced by this extension. */
177
178/* GL_OES_texture_npot */
179/* No new tokens introduced by this extension. */
180
181/* GL_OES_vertex_array_object */
182#ifndef GL_OES_vertex_array_object
183#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5
184#endif
185
Brian Paul0ebc94d2008-06-04 10:04:31 -0600186/* GL_OES_vertex_half_float */
187/* GL_HALF_FLOAT_OES defined in GL_OES_texture_half_float already. */
188
189/* GL_OES_vertex_type_10_10_10_2 */
190#ifndef GL_OES_vertex_type_10_10_10_2
191#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6
192#define GL_INT_10_10_10_2_OES 0x8DF7
193#endif
194
Brian Paul0ebc94d2008-06-04 10:04:31 -0600195/*------------------------------------------------------------------------*
Matt Turner5c78ad82012-11-15 11:56:22 -0800196 * KHR extension tokens
197 *------------------------------------------------------------------------*/
198
199#ifndef GL_KHR_debug
Matt Turner00a945f2013-07-26 16:33:10 -0700200typedef void (GL_APIENTRYP GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const GLvoid *userParam);
201#define GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR 0x8242
202#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR 0x8243
203#define GL_DEBUG_CALLBACK_FUNCTION_KHR 0x8244
204#define GL_DEBUG_CALLBACK_USER_PARAM_KHR 0x8245
205#define GL_DEBUG_SOURCE_API_KHR 0x8246
206#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR 0x8247
207#define GL_DEBUG_SOURCE_SHADER_COMPILER_KHR 0x8248
208#define GL_DEBUG_SOURCE_THIRD_PARTY_KHR 0x8249
209#define GL_DEBUG_SOURCE_APPLICATION_KHR 0x824A
210#define GL_DEBUG_SOURCE_OTHER_KHR 0x824B
211#define GL_DEBUG_TYPE_ERROR_KHR 0x824C
212#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR 0x824D
213#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR 0x824E
214#define GL_DEBUG_TYPE_PORTABILITY_KHR 0x824F
215#define GL_DEBUG_TYPE_PERFORMANCE_KHR 0x8250
216#define GL_DEBUG_TYPE_OTHER_KHR 0x8251
217#define GL_DEBUG_TYPE_MARKER_KHR 0x8268
218#define GL_DEBUG_TYPE_PUSH_GROUP_KHR 0x8269
219#define GL_DEBUG_TYPE_POP_GROUP_KHR 0x826A
220#define GL_DEBUG_SEVERITY_NOTIFICATION_KHR 0x826B
221#define GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR 0x826C
222#define GL_DEBUG_GROUP_STACK_DEPTH_KHR 0x826D
223#define GL_BUFFER_KHR 0x82E0
224#define GL_SHADER_KHR 0x82E1
225#define GL_PROGRAM_KHR 0x82E2
226#define GL_QUERY_KHR 0x82E3
227/* PROGRAM_PIPELINE only in GL */
228#define GL_SAMPLER_KHR 0x82E6
229/* DISPLAY_LIST only in GL */
230#define GL_MAX_LABEL_LENGTH_KHR 0x82E8
231#define GL_MAX_DEBUG_MESSAGE_LENGTH_KHR 0x9143
232#define GL_MAX_DEBUG_LOGGED_MESSAGES_KHR 0x9144
233#define GL_DEBUG_LOGGED_MESSAGES_KHR 0x9145
234#define GL_DEBUG_SEVERITY_HIGH_KHR 0x9146
235#define GL_DEBUG_SEVERITY_MEDIUM_KHR 0x9147
236#define GL_DEBUG_SEVERITY_LOW_KHR 0x9148
237#define GL_DEBUG_OUTPUT_KHR 0x92E0
238#define GL_CONTEXT_FLAG_DEBUG_BIT_KHR 0x00000002
239#define GL_STACK_OVERFLOW_KHR 0x0503
240#define GL_STACK_UNDERFLOW_KHR 0x0504
Matt Turner5c78ad82012-11-15 11:56:22 -0800241#endif
242
243#ifndef GL_KHR_texture_compression_astc_ldr
244#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0
245#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1
246#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2
247#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3
248#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4
249#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5
250#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6
251#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7
252#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8
253#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9
254#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA
255#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB
256#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC
257#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD
258#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0
259#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1
260#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2
261#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3
262#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4
263#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5
264#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6
265#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7
266#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8
267#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9
268#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA
269#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB
270#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC
271#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD
272#endif
273
274/*------------------------------------------------------------------------*
Brian Paul0ebc94d2008-06-04 10:04:31 -0600275 * AMD extension tokens
276 *------------------------------------------------------------------------*/
277
278/* GL_AMD_compressed_3DC_texture */
279#ifndef GL_AMD_compressed_3DC_texture
280#define GL_3DC_X_AMD 0x87F9
281#define GL_3DC_XY_AMD 0x87FA
282#endif
283
284/* GL_AMD_compressed_ATC_texture */
285#ifndef GL_AMD_compressed_ATC_texture
286#define GL_ATC_RGB_AMD 0x8C92
287#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93
288#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE
289#endif
290
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800291/* GL_AMD_performance_monitor */
292#ifndef GL_AMD_performance_monitor
293#define GL_COUNTER_TYPE_AMD 0x8BC0
294#define GL_COUNTER_RANGE_AMD 0x8BC1
295#define GL_UNSIGNED_INT64_AMD 0x8BC2
296#define GL_PERCENTAGE_AMD 0x8BC3
297#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4
298#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5
299#define GL_PERFMON_RESULT_AMD 0x8BC6
300#endif
301
302/* GL_AMD_program_binary_Z400 */
303#ifndef GL_AMD_program_binary_Z400
304#define GL_Z400_BINARY_AMD 0x8740
305#endif
306
Brian Paul0ebc94d2008-06-04 10:04:31 -0600307/*------------------------------------------------------------------------*
Ian Romanickb152a232011-09-20 15:54:52 -0700308 * ANGLE extension tokens
309 *------------------------------------------------------------------------*/
310
Matt Turner00a945f2013-07-26 16:33:10 -0700311/* GL_ANGLE_depth_texture */
312#ifndef GL_ANGLE_depth_texture
313#define GL_DEPTH_COMPONENT 0x1902
314#define GL_DEPTH_STENCIL_OES 0x84F9
315#define GL_UNSIGNED_SHORT 0x1403
316#define GL_UNSIGNED_INT 0x1405
317#define GL_UNSIGNED_INT_24_8_OES 0x84FA
318#define GL_DEPTH_COMPONENT16 0x81A5
319#define GL_DEPTH_COMPONENT32_OES 0x81A7
320#define GL_DEPTH24_STENCIL8_OES 0x88F0
321#endif
322
Ian Romanickb152a232011-09-20 15:54:52 -0700323/* GL_ANGLE_framebuffer_blit */
324#ifndef GL_ANGLE_framebuffer_blit
325#define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8
326#define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9
327#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6
328#define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA
329#endif
330
331/* GL_ANGLE_framebuffer_multisample */
332#ifndef GL_ANGLE_framebuffer_multisample
333#define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB
334#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56
335#define GL_MAX_SAMPLES_ANGLE 0x8D57
336#endif
337
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400338/* GL_ANGLE_instanced_arrays */
Matt Turner00a945f2013-07-26 16:33:10 -0700339#ifndef GL_ANGLE_instanced_arrays
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400340#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE
341#endif
342
343/* GL_ANGLE_pack_reverse_row_order */
Matt Turner00a945f2013-07-26 16:33:10 -0700344#ifndef GL_ANGLE_pack_reverse_row_order
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400345#define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4
346#endif
347
Matt Turner00a945f2013-07-26 16:33:10 -0700348/* GL_ANGLE_program_binary */
349#ifndef GL_ANGLE_program_binary
350#define GL_PROGRAM_BINARY_ANGLE 0x93A6
351#endif
352
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400353/* GL_ANGLE_texture_compression_dxt3 */
Matt Turner00a945f2013-07-26 16:33:10 -0700354#ifndef GL_ANGLE_texture_compression_dxt3
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400355#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2
356#endif
357
358/* GL_ANGLE_texture_compression_dxt5 */
Matt Turner00a945f2013-07-26 16:33:10 -0700359#ifndef GL_ANGLE_texture_compression_dxt5
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400360#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3
361#endif
362
363/* GL_ANGLE_texture_usage */
Matt Turner00a945f2013-07-26 16:33:10 -0700364#ifndef GL_ANGLE_texture_usage
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400365#define GL_TEXTURE_USAGE_ANGLE 0x93A2
366#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3
367#endif
368
369/* GL_ANGLE_translated_shader_source */
Matt Turner00a945f2013-07-26 16:33:10 -0700370#ifndef GL_ANGLE_translated_shader_source
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400371#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0
372#endif
373
Ian Romanickb152a232011-09-20 15:54:52 -0700374/*------------------------------------------------------------------------*
375 * APPLE extension tokens
376 *------------------------------------------------------------------------*/
377
Matt Turner5c78ad82012-11-15 11:56:22 -0800378/* GL_APPLE_copy_texture_levels */
379/* No new tokens introduced by this extension. */
Matt Turner00a945f2013-07-26 16:33:10 -0700380
Ian Romanickb152a232011-09-20 15:54:52 -0700381/* GL_APPLE_framebuffer_multisample */
382#ifndef GL_APPLE_framebuffer_multisample
383#define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB
384#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56
385#define GL_MAX_SAMPLES_APPLE 0x8D57
386#define GL_READ_FRAMEBUFFER_APPLE 0x8CA8
387#define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9
388#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6
389#define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA
390#endif
391
Matt Turner5c78ad82012-11-15 11:56:22 -0800392/* GL_APPLE_rgb_422 */
393#ifndef GL_APPLE_rgb_422
394#define GL_RGB_422_APPLE 0x8A1F
395#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
396#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
397#endif
398
399/* GL_APPLE_sync */
400#ifndef GL_APPLE_sync
401
Matt Turner5c78ad82012-11-15 11:56:22 -0800402#define GL_SYNC_OBJECT_APPLE 0x8A53
403#define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111
404#define GL_OBJECT_TYPE_APPLE 0x9112
405#define GL_SYNC_CONDITION_APPLE 0x9113
406#define GL_SYNC_STATUS_APPLE 0x9114
407#define GL_SYNC_FLAGS_APPLE 0x9115
408#define GL_SYNC_FENCE_APPLE 0x9116
409#define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117
410#define GL_UNSIGNALED_APPLE 0x9118
411#define GL_SIGNALED_APPLE 0x9119
412#define GL_ALREADY_SIGNALED_APPLE 0x911A
413#define GL_TIMEOUT_EXPIRED_APPLE 0x911B
414#define GL_CONDITION_SATISFIED_APPLE 0x911C
415#define GL_WAIT_FAILED_APPLE 0x911D
416#define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001
417#define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull
418#endif
419
Ian Romanickb152a232011-09-20 15:54:52 -0700420/* GL_APPLE_texture_format_BGRA8888 */
421#ifndef GL_APPLE_texture_format_BGRA8888
422#define GL_BGRA_EXT 0x80E1
423#endif
424
425/* GL_APPLE_texture_max_level */
426#ifndef GL_APPLE_texture_max_level
427#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D
428#endif
429
430/*------------------------------------------------------------------------*
431 * ARM extension tokens
432 *------------------------------------------------------------------------*/
433
Matt Turner5c78ad82012-11-15 11:56:22 -0800434/* GL_ARM_mali_program_binary */
435#ifndef GL_ARM_mali_program_binary
436#define GL_MALI_PROGRAM_BINARY_ARM 0x8F61
437#endif
438
Ian Romanickb152a232011-09-20 15:54:52 -0700439/* GL_ARM_mali_shader_binary */
440#ifndef GL_ARM_mali_shader_binary
441#define GL_MALI_SHADER_BINARY_ARM 0x8F60
442#endif
443
444/* GL_ARM_rgba8 */
445/* No new tokens introduced by this extension. */
446
447/*------------------------------------------------------------------------*
Brian Paul0ebc94d2008-06-04 10:04:31 -0600448 * EXT extension tokens
449 *------------------------------------------------------------------------*/
450
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800451/* GL_EXT_blend_minmax */
452#ifndef GL_EXT_blend_minmax
453#define GL_MIN_EXT 0x8007
454#define GL_MAX_EXT 0x8008
455#endif
456
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400457/* GL_EXT_color_buffer_half_float */
458#ifndef GL_EXT_color_buffer_half_float
459#define GL_RGBA16F_EXT 0x881A
460#define GL_RGB16F_EXT 0x881B
461#define GL_RG16F_EXT 0x822F
462#define GL_R16F_EXT 0x822D
463#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211
464#define GL_UNSIGNED_NORMALIZED_EXT 0x8C17
465#endif
466
467/* GL_EXT_debug_label */
468#ifndef GL_EXT_debug_label
469#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F
470#define GL_PROGRAM_OBJECT_EXT 0x8B40
471#define GL_SHADER_OBJECT_EXT 0x8B48
472#define GL_BUFFER_OBJECT_EXT 0x9151
473#define GL_QUERY_OBJECT_EXT 0x9153
474#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154
475#endif
476
477/* GL_EXT_debug_marker */
478/* No new tokens introduced by this extension. */
479
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800480/* GL_EXT_discard_framebuffer */
481#ifndef GL_EXT_discard_framebuffer
482#define GL_COLOR_EXT 0x1800
483#define GL_DEPTH_EXT 0x1801
484#define GL_STENCIL_EXT 0x1802
485#endif
486
Matt Turner00a945f2013-07-26 16:33:10 -0700487#ifndef GL_EXT_disjoint_timer_query
488#define GL_QUERY_COUNTER_BITS_EXT 0x8864
489#define GL_CURRENT_QUERY_EXT 0x8865
490#define GL_QUERY_RESULT_EXT 0x8866
491#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867
492#define GL_TIME_ELAPSED_EXT 0x88BF
493#define GL_TIMESTAMP_EXT 0x8E28
494#define GL_GPU_DISJOINT_EXT 0x8FBB
495#endif
496
497#ifndef GL_EXT_draw_buffers
498#define GL_EXT_draw_buffers 1
499#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
500#define GL_MAX_DRAW_BUFFERS_EXT 0x8824
501#define GL_DRAW_BUFFER0_EXT 0x8825
502#define GL_DRAW_BUFFER1_EXT 0x8826
503#define GL_DRAW_BUFFER2_EXT 0x8827
504#define GL_DRAW_BUFFER3_EXT 0x8828
505#define GL_DRAW_BUFFER4_EXT 0x8829
506#define GL_DRAW_BUFFER5_EXT 0x882A
507#define GL_DRAW_BUFFER6_EXT 0x882B
508#define GL_DRAW_BUFFER7_EXT 0x882C
509#define GL_DRAW_BUFFER8_EXT 0x882D
510#define GL_DRAW_BUFFER9_EXT 0x882E
511#define GL_DRAW_BUFFER10_EXT 0x882F
512#define GL_DRAW_BUFFER11_EXT 0x8830
513#define GL_DRAW_BUFFER12_EXT 0x8831
514#define GL_DRAW_BUFFER13_EXT 0x8832
515#define GL_DRAW_BUFFER14_EXT 0x8833
516#define GL_DRAW_BUFFER15_EXT 0x8834
517#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
518#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
519#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
520#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
521#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
522#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
523#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
524#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
525#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
526#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
527#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
528#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
529#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
530#define GL_COLOR_ATTACHMENT13_EXT 0x8CED
531#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
532#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
533#endif
534
Matt Turner5c78ad82012-11-15 11:56:22 -0800535/* GL_EXT_map_buffer_range */
536#ifndef GL_EXT_map_buffer_range
537#define GL_MAP_READ_BIT_EXT 0x0001
538#define GL_MAP_WRITE_BIT_EXT 0x0002
539#define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004
540#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008
541#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010
542#define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020
543#endif
544
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400545/* GL_EXT_multisampled_render_to_texture */
546#ifndef GL_EXT_multisampled_render_to_texture
547#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C
Matt Turner00a945f2013-07-26 16:33:10 -0700548/* reuse values from GL_EXT_framebuffer_multisample (desktop extension) */
Matt Turner5c78ad82012-11-15 11:56:22 -0800549#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
550#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
551#define GL_MAX_SAMPLES_EXT 0x8D57
552#endif
553
554/* GL_EXT_multiview_draw_buffers */
555#ifndef GL_EXT_multiview_draw_buffers
556#define GL_COLOR_ATTACHMENT_EXT 0x90F0
557#define GL_MULTIVIEW_EXT 0x90F1
558#define GL_DRAW_BUFFER_EXT 0x0C01
559#define GL_READ_BUFFER_EXT 0x0C02
560#define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400561#endif
562
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800563/* GL_EXT_multi_draw_arrays */
564/* No new tokens introduced by this extension. */
565
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400566/* GL_EXT_occlusion_query_boolean */
567#ifndef GL_EXT_occlusion_query_boolean
568#define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F
569#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A
570#define GL_CURRENT_QUERY_EXT 0x8865
571#define GL_QUERY_RESULT_EXT 0x8866
572#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867
573#endif
574
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800575/* GL_EXT_read_format_bgra */
576#ifndef GL_EXT_read_format_bgra
577#define GL_BGRA_EXT 0x80E1
578#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365
579#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366
580#endif
581
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400582/* GL_EXT_robustness */
583#ifndef GL_EXT_robustness
584/* reuse GL_NO_ERROR */
585#define GL_GUILTY_CONTEXT_RESET_EXT 0x8253
586#define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254
587#define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255
588#define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3
589#define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256
590#define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252
591#define GL_NO_RESET_NOTIFICATION_EXT 0x8261
592#endif
593
594/* GL_EXT_separate_shader_objects */
595#ifndef GL_EXT_separate_shader_objects
596#define GL_VERTEX_SHADER_BIT_EXT 0x00000001
597#define GL_FRAGMENT_SHADER_BIT_EXT 0x00000002
598#define GL_ALL_SHADER_BITS_EXT 0xFFFFFFFF
599#define GL_PROGRAM_SEPARABLE_EXT 0x8258
600#define GL_ACTIVE_PROGRAM_EXT 0x8259
601#define GL_PROGRAM_PIPELINE_BINDING_EXT 0x825A
602#endif
603
Matt Turner5c78ad82012-11-15 11:56:22 -0800604/* GL_EXT_shader_framebuffer_fetch */
605#ifndef GL_EXT_shader_framebuffer_fetch
606#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
607#endif
608
Ian Romanickb152a232011-09-20 15:54:52 -0700609/* GL_EXT_shader_texture_lod */
610/* No new tokens introduced by this extension. */
611
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400612/* GL_EXT_shadow_samplers */
613#ifndef GL_EXT_shadow_samplers
614#define GL_TEXTURE_COMPARE_MODE_EXT 0x884C
615#define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D
616#define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E
617#define GL_SAMPLER_2D_SHADOW_EXT 0x8B62
618#endif
619
620/* GL_EXT_sRGB */
621#ifndef GL_EXT_sRGB
622#define GL_SRGB_EXT 0x8C40
623#define GL_SRGB_ALPHA_EXT 0x8C42
624#define GL_SRGB8_ALPHA8_EXT 0x8C43
625#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210
626#endif
627
628/* GL_EXT_texture_compression_dxt1 */
629#ifndef GL_EXT_texture_compression_dxt1
630#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
631#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
632#endif
633
Brian Paul0ebc94d2008-06-04 10:04:31 -0600634/* GL_EXT_texture_filter_anisotropic */
635#ifndef GL_EXT_texture_filter_anisotropic
636#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
637#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
638#endif
639
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800640/* GL_EXT_texture_format_BGRA8888 */
641#ifndef GL_EXT_texture_format_BGRA8888
642#define GL_BGRA_EXT 0x80E1
643#endif
644
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400645/* GL_EXT_texture_rg */
646#ifndef GL_EXT_texture_rg
647#define GL_RED_EXT 0x1903
648#define GL_RG_EXT 0x8227
649#define GL_R8_EXT 0x8229
650#define GL_RG8_EXT 0x822B
651#endif
652
653/* GL_EXT_texture_storage */
654#ifndef GL_EXT_texture_storage
655#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F
Matt Turner00a945f2013-07-26 16:33:10 -0700656#define GL_ALPHA8_EXT 0x803C
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400657#define GL_LUMINANCE8_EXT 0x8040
658#define GL_LUMINANCE8_ALPHA8_EXT 0x8045
Matt Turner00a945f2013-07-26 16:33:10 -0700659#define GL_RGBA32F_EXT 0x8814
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400660#define GL_RGB32F_EXT 0x8815
661#define GL_ALPHA32F_EXT 0x8816
662#define GL_LUMINANCE32F_EXT 0x8818
663#define GL_LUMINANCE_ALPHA32F_EXT 0x8819
664/* reuse GL_RGBA16F_EXT */
665/* reuse GL_RGB16F_EXT */
666#define GL_ALPHA16F_EXT 0x881C
667#define GL_LUMINANCE16F_EXT 0x881E
668#define GL_LUMINANCE_ALPHA16F_EXT 0x881F
Matt Turner00a945f2013-07-26 16:33:10 -0700669#define GL_RGB10_A2_EXT 0x8059
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400670#define GL_RGB10_EXT 0x8052
671#define GL_BGRA8_EXT 0x93A1
672#define GL_R8_EXT 0x8229
673#define GL_RG8_EXT 0x822B
Matt Turner00a945f2013-07-26 16:33:10 -0700674#define GL_R32F_EXT 0x822E
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400675#define GL_RG32F_EXT 0x8230
676#define GL_R16F_EXT 0x822D
677#define GL_RG16F_EXT 0x822F
678#endif
679
Brian Paul0ebc94d2008-06-04 10:04:31 -0600680/* GL_EXT_texture_type_2_10_10_10_REV */
681#ifndef GL_EXT_texture_type_2_10_10_10_REV
682#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368
683#endif
684
Ian Romanickb152a232011-09-20 15:54:52 -0700685/* GL_EXT_unpack_subimage */
686#ifndef GL_EXT_unpack_subimage
Matt Turner00a945f2013-07-26 16:33:10 -0700687#define GL_UNPACK_ROW_LENGTH_EXT 0x0CF2
688#define GL_UNPACK_SKIP_ROWS_EXT 0x0CF3
689#define GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4
Ian Romanickb152a232011-09-20 15:54:52 -0700690#endif
691
692/*------------------------------------------------------------------------*
693 * DMP extension tokens
694 *------------------------------------------------------------------------*/
695
696/* GL_DMP_shader_binary */
697#ifndef GL_DMP_shader_binary
698#define GL_SHADER_BINARY_DMP 0x9250
699#endif
700
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800701/*------------------------------------------------------------------------*
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400702 * FJ extension tokens
703 *------------------------------------------------------------------------*/
704
705/* GL_FJ_shader_binary_GCCSO */
706#ifndef GL_FJ_shader_binary_GCCSO
Matt Turner00a945f2013-07-26 16:33:10 -0700707#define GL_GCCSO_SHADER_BINARY_FJ 0x9260
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400708#endif
709
710/*------------------------------------------------------------------------*
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800711 * IMG extension tokens
712 *------------------------------------------------------------------------*/
713
714/* GL_IMG_program_binary */
715#ifndef GL_IMG_program_binary
716#define GL_SGX_PROGRAM_BINARY_IMG 0x9130
717#endif
718
719/* GL_IMG_read_format */
720#ifndef GL_IMG_read_format
721#define GL_BGRA_IMG 0x80E1
722#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365
723#endif
724
725/* GL_IMG_shader_binary */
726#ifndef GL_IMG_shader_binary
727#define GL_SGX_BINARY_IMG 0x8C0A
728#endif
729
730/* GL_IMG_texture_compression_pvrtc */
731#ifndef GL_IMG_texture_compression_pvrtc
732#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00
733#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01
734#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02
735#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03
736#endif
737
Matt Turner00a945f2013-07-26 16:33:10 -0700738/* GL_IMG_texture_compression_pvrtc2 */
739#ifndef GL_IMG_texture_compression_pvrtc2
740#define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137
741#define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138
742#endif
743
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800744/* GL_IMG_multisampled_render_to_texture */
745#ifndef GL_IMG_multisampled_render_to_texture
746#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133
747#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134
748#define GL_MAX_SAMPLES_IMG 0x9135
749#define GL_TEXTURE_SAMPLES_IMG 0x9136
750#endif
751
752/*------------------------------------------------------------------------*
753 * NV extension tokens
754 *------------------------------------------------------------------------*/
755
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800756/* GL_NV_coverage_sample */
757#ifndef GL_NV_coverage_sample
758#define GL_COVERAGE_COMPONENT_NV 0x8ED0
759#define GL_COVERAGE_COMPONENT4_NV 0x8ED1
760#define GL_COVERAGE_ATTACHMENT_NV 0x8ED2
761#define GL_COVERAGE_BUFFERS_NV 0x8ED3
762#define GL_COVERAGE_SAMPLES_NV 0x8ED4
763#define GL_COVERAGE_ALL_FRAGMENTS_NV 0x8ED5
764#define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ED6
765#define GL_COVERAGE_AUTOMATIC_NV 0x8ED7
Matt Turner00a945f2013-07-26 16:33:10 -0700766#define GL_COVERAGE_BUFFER_BIT_NV 0x00008000
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800767#endif
768
769/* GL_NV_depth_nonlinear */
770#ifndef GL_NV_depth_nonlinear
771#define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C
772#endif
773
Ian Romanickb152a232011-09-20 15:54:52 -0700774/* GL_NV_draw_buffers */
775#ifndef GL_NV_draw_buffers
776#define GL_MAX_DRAW_BUFFERS_NV 0x8824
777#define GL_DRAW_BUFFER0_NV 0x8825
778#define GL_DRAW_BUFFER1_NV 0x8826
779#define GL_DRAW_BUFFER2_NV 0x8827
780#define GL_DRAW_BUFFER3_NV 0x8828
781#define GL_DRAW_BUFFER4_NV 0x8829
782#define GL_DRAW_BUFFER5_NV 0x882A
783#define GL_DRAW_BUFFER6_NV 0x882B
784#define GL_DRAW_BUFFER7_NV 0x882C
785#define GL_DRAW_BUFFER8_NV 0x882D
786#define GL_DRAW_BUFFER9_NV 0x882E
787#define GL_DRAW_BUFFER10_NV 0x882F
788#define GL_DRAW_BUFFER11_NV 0x8830
789#define GL_DRAW_BUFFER12_NV 0x8831
790#define GL_DRAW_BUFFER13_NV 0x8832
791#define GL_DRAW_BUFFER14_NV 0x8833
792#define GL_DRAW_BUFFER15_NV 0x8834
793#define GL_COLOR_ATTACHMENT0_NV 0x8CE0
794#define GL_COLOR_ATTACHMENT1_NV 0x8CE1
795#define GL_COLOR_ATTACHMENT2_NV 0x8CE2
796#define GL_COLOR_ATTACHMENT3_NV 0x8CE3
797#define GL_COLOR_ATTACHMENT4_NV 0x8CE4
798#define GL_COLOR_ATTACHMENT5_NV 0x8CE5
799#define GL_COLOR_ATTACHMENT6_NV 0x8CE6
800#define GL_COLOR_ATTACHMENT7_NV 0x8CE7
801#define GL_COLOR_ATTACHMENT8_NV 0x8CE8
802#define GL_COLOR_ATTACHMENT9_NV 0x8CE9
803#define GL_COLOR_ATTACHMENT10_NV 0x8CEA
804#define GL_COLOR_ATTACHMENT11_NV 0x8CEB
805#define GL_COLOR_ATTACHMENT12_NV 0x8CEC
806#define GL_COLOR_ATTACHMENT13_NV 0x8CED
807#define GL_COLOR_ATTACHMENT14_NV 0x8CEE
808#define GL_COLOR_ATTACHMENT15_NV 0x8CEF
809#endif
810
Matt Turner00a945f2013-07-26 16:33:10 -0700811/* GL_NV_draw_instanced */
812/* No new tokens introduced by this extension. */
813
Ian Romanickb152a232011-09-20 15:54:52 -0700814/* GL_NV_fbo_color_attachments */
815#ifndef GL_NV_fbo_color_attachments
816#define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF
817/* GL_COLOR_ATTACHMENT{0-15}_NV defined in GL_NV_draw_buffers already. */
818#endif
819
820/* GL_NV_fence */
821#ifndef GL_NV_fence
822#define GL_ALL_COMPLETED_NV 0x84F2
823#define GL_FENCE_STATUS_NV 0x84F3
824#define GL_FENCE_CONDITION_NV 0x84F4
825#endif
826
Matt Turner00a945f2013-07-26 16:33:10 -0700827/* GL_NV_framebuffer_blit */
828#ifndef GL_NV_framebuffer_blit
829#define GL_READ_FRAMEBUFFER_NV 0x8CA8
830#define GL_DRAW_FRAMEBUFFER_NV 0x8CA9
831#define GL_DRAW_FRAMEBUFFER_BINDING_NV 0x8CA6
832#define GL_READ_FRAMEBUFFER_BINDING_NV 0x8CAA
833#endif
834
835/* GL_NV_framebuffer_multisample */
836#ifndef GL_NV_framebuffer_multisample
837#define GL_RENDERBUFFER_SAMPLES_NV 0x8CAB
838#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV 0x8D56
839#define GL_MAX_SAMPLES_NV 0x8D57
840#endif
841
842/* GL_NV_generate_mipmap_sRGB */
843/* No new tokens introduced by this extension. */
844
845/* GL_NV_instanced_arrays */
846#ifndef GL_NV_instanced_arrays
847#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV 0x88FE
848#endif
849
Ian Romanickb152a232011-09-20 15:54:52 -0700850/* GL_NV_read_buffer */
851#ifndef GL_NV_read_buffer
852#define GL_READ_BUFFER_NV 0x0C02
853#endif
854
855/* GL_NV_read_buffer_front */
856/* No new tokens introduced by this extension. */
857
858/* GL_NV_read_depth */
859/* No new tokens introduced by this extension. */
860
861/* GL_NV_read_depth_stencil */
862/* No new tokens introduced by this extension. */
863
864/* GL_NV_read_stencil */
865/* No new tokens introduced by this extension. */
866
Matt Turner00a945f2013-07-26 16:33:10 -0700867/* GL_NV_shadow_samplers_array */
868#ifndef GL_NV_shadow_samplers_array
869#define GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8DC4
870#endif
871
872/* GL_NV_shadow_samplers_cube */
873#ifndef GL_NV_shadow_samplers_cube
874#define GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5
875#endif
876
877/* GL_NV_sRGB_formats */
878#ifndef GL_NV_sRGB_formats
879#define GL_SLUMINANCE_NV 0x8C46
880#define GL_SLUMINANCE_ALPHA_NV 0x8C44
881#define GL_SRGB8_NV 0x8C41
882#define GL_SLUMINANCE8_NV 0x8C47
883#define GL_SLUMINANCE8_ALPHA8_NV 0x8C45
884#define GL_COMPRESSED_SRGB_S3TC_DXT1_NV 0x8C4C
885#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV 0x8C4D
886#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV 0x8C4E
887#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV 0x8C4F
888#define GL_ETC1_SRGB8_NV 0x88EE
889#endif
890
891/* GL_NV_texture_border_clamp */
892#ifndef GL_NV_texture_border_clamp
893#define GL_TEXTURE_BORDER_COLOR_NV 0x1004
894#define GL_CLAMP_TO_BORDER_NV 0x812D
895#endif
896
Ian Romanickb152a232011-09-20 15:54:52 -0700897/* GL_NV_texture_compression_s3tc_update */
898/* No new tokens introduced by this extension. */
899
900/* GL_NV_texture_npot_2D_mipmap */
901/* No new tokens introduced by this extension. */
902
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800903/*------------------------------------------------------------------------*
904 * QCOM extension tokens
905 *------------------------------------------------------------------------*/
906
Ian Romanickb152a232011-09-20 15:54:52 -0700907/* GL_QCOM_alpha_test */
908#ifndef GL_QCOM_alpha_test
909#define GL_ALPHA_TEST_QCOM 0x0BC0
910#define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1
911#define GL_ALPHA_TEST_REF_QCOM 0x0BC2
912#endif
913
Matt Turner5c78ad82012-11-15 11:56:22 -0800914/* GL_QCOM_binning_control */
915#ifndef GL_QCOM_binning_control
916#define GL_BINNING_CONTROL_HINT_QCOM 0x8FB0
917#define GL_CPU_OPTIMIZED_QCOM 0x8FB1
918#define GL_GPU_OPTIMIZED_QCOM 0x8FB2
919#define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3
920#endif
921
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800922/* GL_QCOM_driver_control */
923/* No new tokens introduced by this extension. */
924
925/* GL_QCOM_extended_get */
926#ifndef GL_QCOM_extended_get
927#define GL_TEXTURE_WIDTH_QCOM 0x8BD2
928#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3
929#define GL_TEXTURE_DEPTH_QCOM 0x8BD4
930#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5
931#define GL_TEXTURE_FORMAT_QCOM 0x8BD6
932#define GL_TEXTURE_TYPE_QCOM 0x8BD7
933#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8
934#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9
935#define GL_TEXTURE_TARGET_QCOM 0x8BDA
936#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB
937#define GL_STATE_RESTORE 0x8BDC
938#endif
939
940/* GL_QCOM_extended_get2 */
941/* No new tokens introduced by this extension. */
942
943/* GL_QCOM_perfmon_global_mode */
944#ifndef GL_QCOM_perfmon_global_mode
945#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0
946#endif
947
948/* GL_QCOM_writeonly_rendering */
949#ifndef GL_QCOM_writeonly_rendering
950#define GL_WRITEONLY_RENDERING_QCOM 0x8823
951#endif
952
953/* GL_QCOM_tiled_rendering */
954#ifndef GL_QCOM_tiled_rendering
955#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001
956#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002
957#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004
958#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008
959#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010
960#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020
961#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040
962#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080
963#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100
964#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200
965#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400
966#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800
967#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000
968#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000
969#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000
970#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000
971#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000
972#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000
973#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000
974#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000
975#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000
976#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000
977#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000
978#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000
979#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000
980#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000
981#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000
982#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000
983#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000
984#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000
985#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000
986#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000
987#endif
988
989/*------------------------------------------------------------------------*
Ian Romanickb152a232011-09-20 15:54:52 -0700990 * VIV extension tokens
991 *------------------------------------------------------------------------*/
992
993/* GL_VIV_shader_binary */
994#ifndef GL_VIV_shader_binary
995#define GL_SHADER_BINARY_VIV 0x8FC4
996#endif
997
998/*------------------------------------------------------------------------*
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800999 * End of extension tokens, start of corresponding extension functions
1000 *------------------------------------------------------------------------*/
1001
Brian Paul0ebc94d2008-06-04 10:04:31 -06001002/*------------------------------------------------------------------------*
1003 * OES extension functions
1004 *------------------------------------------------------------------------*/
1005
1006/* GL_OES_compressed_ETC1_RGB8_texture */
1007#ifndef GL_OES_compressed_ETC1_RGB8_texture
1008#define GL_OES_compressed_ETC1_RGB8_texture 1
1009#endif
1010
1011/* GL_OES_compressed_paletted_texture */
1012#ifndef GL_OES_compressed_paletted_texture
1013#define GL_OES_compressed_paletted_texture 1
1014#endif
1015
Brian Paul0ebc94d2008-06-04 10:04:31 -06001016/* GL_OES_depth24 */
1017#ifndef GL_OES_depth24
1018#define GL_OES_depth24 1
1019#endif
1020
1021/* GL_OES_depth32 */
1022#ifndef GL_OES_depth32
1023#define GL_OES_depth32 1
1024#endif
1025
1026/* GL_OES_depth_texture */
1027#ifndef GL_OES_depth_texture
1028#define GL_OES_depth_texture 1
1029#endif
1030
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001031/* GL_OES_EGL_image */
1032#ifndef GL_OES_EGL_image
1033#define GL_OES_EGL_image 1
1034#ifdef GL_GLEXT_PROTOTYPES
1035GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
1036GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
1037#endif
1038typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
1039typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
1040#endif
1041
Ian Romanickb152a232011-09-20 15:54:52 -07001042/* GL_OES_EGL_image_external */
1043#ifndef GL_OES_EGL_image_external
1044#define GL_OES_EGL_image_external 1
1045/* glEGLImageTargetTexture2DOES defined in GL_OES_EGL_image already. */
1046#endif
1047
Brian Paul0ebc94d2008-06-04 10:04:31 -06001048/* GL_OES_element_index_uint */
1049#ifndef GL_OES_element_index_uint
1050#define GL_OES_element_index_uint 1
1051#endif
1052
1053/* GL_OES_fbo_render_mipmap */
1054#ifndef GL_OES_fbo_render_mipmap
1055#define GL_OES_fbo_render_mipmap 1
1056#endif
1057
1058/* GL_OES_fragment_precision_high */
1059#ifndef GL_OES_fragment_precision_high
1060#define GL_OES_fragment_precision_high 1
1061#endif
1062
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001063/* GL_OES_get_program_binary */
1064#ifndef GL_OES_get_program_binary
1065#define GL_OES_get_program_binary 1
1066#ifdef GL_GLEXT_PROTOTYPES
1067GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
1068GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
1069#endif
1070typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
1071typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
1072#endif
1073
Brian Paul0ebc94d2008-06-04 10:04:31 -06001074/* GL_OES_mapbuffer */
1075#ifndef GL_OES_mapbuffer
1076#define GL_OES_mapbuffer 1
1077#ifdef GL_GLEXT_PROTOTYPES
1078GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access);
1079GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target);
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001080GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid** params);
Brian Paul0ebc94d2008-06-04 10:04:31 -06001081#endif
1082typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
1083typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target);
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001084typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid** params);
Brian Paul0ebc94d2008-06-04 10:04:31 -06001085#endif
1086
1087/* GL_OES_packed_depth_stencil */
1088#ifndef GL_OES_packed_depth_stencil
1089#define GL_OES_packed_depth_stencil 1
1090#endif
1091
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001092/* GL_OES_required_internalformat */
1093#ifndef GL_OES_required_internalformat
1094#define GL_OES_required_internalformat 1
1095#endif
1096
Brian Paul0ebc94d2008-06-04 10:04:31 -06001097/* GL_OES_rgb8_rgba8 */
1098#ifndef GL_OES_rgb8_rgba8
1099#define GL_OES_rgb8_rgba8 1
1100#endif
1101
1102/* GL_OES_standard_derivatives */
1103#ifndef GL_OES_standard_derivatives
1104#define GL_OES_standard_derivatives 1
1105#endif
1106
1107/* GL_OES_stencil1 */
1108#ifndef GL_OES_stencil1
1109#define GL_OES_stencil1 1
1110#endif
1111
1112/* GL_OES_stencil4 */
1113#ifndef GL_OES_stencil4
1114#define GL_OES_stencil4 1
1115#endif
1116
Matt Turner5c78ad82012-11-15 11:56:22 -08001117#ifndef GL_OES_surfaceless_context
1118#define GL_OES_surfaceless_context 1
1119#endif
1120
Brian Paul0ebc94d2008-06-04 10:04:31 -06001121/* GL_OES_texture_3D */
1122#ifndef GL_OES_texture_3D
1123#define GL_OES_texture_3D 1
1124#ifdef GL_GLEXT_PROTOTYPES
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001125GL_APICALL void GL_APIENTRY glTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
1126GL_APICALL void GL_APIENTRY glTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
Brian Paul0ebc94d2008-06-04 10:04:31 -06001127GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001128GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
1129GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
Brian Paul0ebc94d2008-06-04 10:04:31 -06001130GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
1131#endif
1132typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001133typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
Brian Paul0ebc94d2008-06-04 10:04:31 -06001134typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001135typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
1136typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
Brian Paul0ebc94d2008-06-04 10:04:31 -06001137typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
1138#endif
1139
Brian Paul0ebc94d2008-06-04 10:04:31 -06001140/* GL_OES_texture_float */
1141#ifndef GL_OES_texture_float
1142#define GL_OES_texture_float 1
1143#endif
1144
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001145/* GL_OES_texture_float_linear */
1146#ifndef GL_OES_texture_float_linear
1147#define GL_OES_texture_float_linear 1
1148#endif
1149
Brian Paul0ebc94d2008-06-04 10:04:31 -06001150/* GL_OES_texture_half_float */
1151#ifndef GL_OES_texture_half_float
1152#define GL_OES_texture_half_float 1
1153#endif
1154
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001155/* GL_OES_texture_half_float_linear */
1156#ifndef GL_OES_texture_half_float_linear
1157#define GL_OES_texture_half_float_linear 1
1158#endif
1159
Brian Paul0ebc94d2008-06-04 10:04:31 -06001160/* GL_OES_texture_npot */
1161#ifndef GL_OES_texture_npot
1162#define GL_OES_texture_npot 1
1163#endif
1164
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001165/* GL_OES_vertex_array_object */
1166#ifndef GL_OES_vertex_array_object
1167#define GL_OES_vertex_array_object 1
1168#ifdef GL_GLEXT_PROTOTYPES
1169GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array);
1170GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays);
1171GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays);
1172GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array);
1173#endif
1174typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array);
1175typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays);
1176typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays);
1177typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array);
1178#endif
1179
Brian Paul0ebc94d2008-06-04 10:04:31 -06001180/* GL_OES_vertex_half_float */
1181#ifndef GL_OES_vertex_half_float
1182#define GL_OES_vertex_half_float 1
1183#endif
1184
1185/* GL_OES_vertex_type_10_10_10_2 */
1186#ifndef GL_OES_vertex_type_10_10_10_2
1187#define GL_OES_vertex_type_10_10_10_2 1
1188#endif
1189
Brian Paul0ebc94d2008-06-04 10:04:31 -06001190/*------------------------------------------------------------------------*
Matt Turner5c78ad82012-11-15 11:56:22 -08001191 * KHR extension functions
1192 *------------------------------------------------------------------------*/
1193
1194#ifndef GL_KHR_debug
1195#define GL_KHR_debug 1
1196#ifdef GL_GLEXT_PROTOTYPES
Matt Turner00a945f2013-07-26 16:33:10 -07001197GL_APICALL void GL_APIENTRY glDebugMessageControlKHR (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
1198GL_APICALL void GL_APIENTRY glDebugMessageInsertKHR (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
1199GL_APICALL void GL_APIENTRY glDebugMessageCallbackKHR (GLDEBUGPROCKHR callback, const void *userParam);
1200GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLogKHR (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
1201GL_APICALL void GL_APIENTRY glPushDebugGroupKHR (GLenum source, GLuint id, GLsizei length, const GLchar *message);
1202GL_APICALL void GL_APIENTRY glPopDebugGroupKHR (void);
1203GL_APICALL void GL_APIENTRY glObjectLabelKHR (GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
1204GL_APICALL void GL_APIENTRY glGetObjectLabelKHR (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
1205GL_APICALL void GL_APIENTRY glObjectPtrLabelKHR (const void *ptr, GLsizei length, const GLchar *label);
1206GL_APICALL void GL_APIENTRY glGetObjectPtrLabelKHR (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
1207GL_APICALL void GL_APIENTRY glGetPointervKHR (GLenum pname, void **params);
1208#endif
1209typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLKHRPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
1210typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTKHRPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
1211typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKKHRPROC) (GLDEBUGPROCKHR callback, const void *userParam);
1212typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGKHRPROC) (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
1213typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPKHRPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message);
1214typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPKHRPROC) (void);
1215typedef void (GL_APIENTRYP PFNGLOBJECTLABELKHRPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
1216typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELKHRPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
1217typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei length, const GLchar *label);
1218typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
1219typedef void (GL_APIENTRYP PFNGLGETPOINTERVKHRPROC) (GLenum pname, void **params);
Matt Turner5c78ad82012-11-15 11:56:22 -08001220#endif
1221
1222#ifndef GL_KHR_texture_compression_astc_ldr
1223#define GL_KHR_texture_compression_astc_ldr 1
1224#endif
1225
1226
1227/*------------------------------------------------------------------------*
Brian Paul0ebc94d2008-06-04 10:04:31 -06001228 * AMD extension functions
1229 *------------------------------------------------------------------------*/
1230
1231/* GL_AMD_compressed_3DC_texture */
1232#ifndef GL_AMD_compressed_3DC_texture
1233#define GL_AMD_compressed_3DC_texture 1
1234#endif
1235
1236/* GL_AMD_compressed_ATC_texture */
1237#ifndef GL_AMD_compressed_ATC_texture
1238#define GL_AMD_compressed_ATC_texture 1
1239#endif
1240
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001241/* AMD_performance_monitor */
1242#ifndef GL_AMD_performance_monitor
1243#define GL_AMD_performance_monitor 1
1244#ifdef GL_GLEXT_PROTOTYPES
1245GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
1246GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
1247GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
1248GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
1249GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
1250GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors);
1251GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors);
1252GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
1253GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor);
1254GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor);
1255GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
1256#endif
1257typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
1258typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
1259typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
1260typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
1261typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
1262typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
1263typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
1264typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
1265typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
1266typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
1267typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
1268#endif
1269
Brian Paul0ebc94d2008-06-04 10:04:31 -06001270/* GL_AMD_program_binary_Z400 */
1271#ifndef GL_AMD_program_binary_Z400
1272#define GL_AMD_program_binary_Z400 1
1273#endif
1274
1275/*------------------------------------------------------------------------*
Ian Romanickb152a232011-09-20 15:54:52 -07001276 * ANGLE extension functions
1277 *------------------------------------------------------------------------*/
1278
Matt Turner00a945f2013-07-26 16:33:10 -07001279/* GL_ANGLE_depth_texture */
1280#ifndef GL_ANGLE_depth_texture
1281#define GL_ANGLE_depth_texture 1
1282#endif
1283
Ian Romanickb152a232011-09-20 15:54:52 -07001284/* GL_ANGLE_framebuffer_blit */
1285#ifndef GL_ANGLE_framebuffer_blit
1286#define GL_ANGLE_framebuffer_blit 1
1287#ifdef GL_GLEXT_PROTOTYPES
1288GL_APICALL void GL_APIENTRY glBlitFramebufferANGLE (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
1289#endif
1290typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
1291#endif
1292
1293/* GL_ANGLE_framebuffer_multisample */
1294#ifndef GL_ANGLE_framebuffer_multisample
1295#define GL_ANGLE_framebuffer_multisample 1
1296#ifdef GL_GLEXT_PROTOTYPES
1297GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1298#endif
1299typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1300#endif
1301
Matt Turner00a945f2013-07-26 16:33:10 -07001302#ifndef GL_ANGLE_instanced_arrays
1303#define GL_ANGLE_instanced_arrays 1
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001304#ifdef GL_GLEXT_PROTOTYPES
1305GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLE (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
1306GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLE (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
1307GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLE (GLuint index, GLuint divisor);
1308#endif
Matt Turner00a945f2013-07-26 16:33:10 -07001309typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
1310typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
1311typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor);
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001312#endif
1313
1314/* GL_ANGLE_pack_reverse_row_order */
Matt Turner00a945f2013-07-26 16:33:10 -07001315#ifndef GL_ANGLE_pack_reverse_row_order
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001316#define GL_ANGLE_pack_reverse_row_order 1
1317#endif
1318
Matt Turner00a945f2013-07-26 16:33:10 -07001319/* GL_ANGLE_program_binary */
1320#ifndef GL_ANGLE_program_binary
1321#define GL_ANGLE_program_binary 1
1322#endif
1323
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001324/* GL_ANGLE_texture_compression_dxt3 */
Matt Turner00a945f2013-07-26 16:33:10 -07001325#ifndef GL_ANGLE_texture_compression_dxt3
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001326#define GL_ANGLE_texture_compression_dxt3 1
1327#endif
1328
1329/* GL_ANGLE_texture_compression_dxt5 */
Matt Turner00a945f2013-07-26 16:33:10 -07001330#ifndef GL_ANGLE_texture_compression_dxt5
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001331#define GL_ANGLE_texture_compression_dxt5 1
1332#endif
1333
1334/* GL_ANGLE_texture_usage */
Matt Turner00a945f2013-07-26 16:33:10 -07001335#ifndef GL_ANGLE_texture_usage
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001336#define GL_ANGLE_texture_usage 1
1337#endif
1338
Matt Turner00a945f2013-07-26 16:33:10 -07001339#ifndef GL_ANGLE_translated_shader_source
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001340#define GL_ANGLE_translated_shader_source 1
1341#ifdef GL_GLEXT_PROTOTYPES
1342GL_APICALL void GL_APIENTRY glGetTranslatedShaderSourceANGLE (GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source);
1343#endif
Matt Turner00a945f2013-07-26 16:33:10 -07001344typedef void (GL_APIENTRYP PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source);
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001345#endif
1346
Ian Romanickb152a232011-09-20 15:54:52 -07001347/*------------------------------------------------------------------------*
1348 * APPLE extension functions
1349 *------------------------------------------------------------------------*/
1350
Matt Turner5c78ad82012-11-15 11:56:22 -08001351/* GL_APPLE_copy_texture_levels */
1352#ifndef GL_APPLE_copy_texture_levels
1353#define GL_APPLE_copy_texture_levels 1
1354#ifdef GL_GLEXT_PROTOTYPES
1355GL_APICALL void GL_APIENTRY glCopyTextureLevelsAPPLE (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount);
1356#endif
1357typedef void (GL_APIENTRYP PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount);
Ian Romanickb152a232011-09-20 15:54:52 -07001358#endif
1359
1360/* GL_APPLE_framebuffer_multisample */
1361#ifndef GL_APPLE_framebuffer_multisample
1362#define GL_APPLE_framebuffer_multisample 1
1363#ifdef GL_GLEXT_PROTOTYPES
1364GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
1365GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void);
1366#endif /* GL_GLEXT_PROTOTYPES */
1367typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1368typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void);
1369#endif
1370
Matt Turner5c78ad82012-11-15 11:56:22 -08001371/* GL_APPLE_rgb_422 */
1372#ifndef GL_APPLE_rgb_422
1373#define GL_APPLE_rgb_422 1
1374#endif
1375
1376/* GL_APPLE_sync */
1377#ifndef GL_APPLE_sync
1378#define GL_APPLE_sync 1
1379#ifdef GL_GLEXT_PROTOTYPES
1380GL_APICALL GLsync GL_APIENTRY glFenceSyncAPPLE (GLenum condition, GLbitfield flags);
1381GL_APICALL GLboolean GL_APIENTRY glIsSyncAPPLE (GLsync sync);
1382GL_APICALL void GL_APIENTRY glDeleteSyncAPPLE (GLsync sync);
1383GL_APICALL GLenum GL_APIENTRY glClientWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout);
1384GL_APICALL void GL_APIENTRY glWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout);
1385GL_APICALL void GL_APIENTRY glGetInteger64vAPPLE (GLenum pname, GLint64 *params);
1386GL_APICALL void GL_APIENTRY glGetSyncivAPPLE (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
1387#endif
1388typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags);
1389typedef GLboolean (GL_APIENTRYP PFNGLISSYNCAPPLEPROC) (GLsync sync);
1390typedef void (GL_APIENTRYP PFNGLDELETESYNCAPPLEPROC) (GLsync sync);
1391typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
1392typedef void (GL_APIENTRYP PFNGLWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
1393typedef void (GL_APIENTRYP PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64 *params);
1394typedef void (GL_APIENTRYP PFNGLGETSYNCIVAPPLEPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
1395#endif
1396
Ian Romanickb152a232011-09-20 15:54:52 -07001397/* GL_APPLE_texture_format_BGRA8888 */
1398#ifndef GL_APPLE_texture_format_BGRA8888
1399#define GL_APPLE_texture_format_BGRA8888 1
1400#endif
1401
1402/* GL_APPLE_texture_max_level */
1403#ifndef GL_APPLE_texture_max_level
1404#define GL_APPLE_texture_max_level 1
1405#endif
1406
1407/*------------------------------------------------------------------------*
1408 * ARM extension functions
1409 *------------------------------------------------------------------------*/
1410
Matt Turner5c78ad82012-11-15 11:56:22 -08001411/* GL_ARM_mali_program_binary */
1412#ifndef GL_ARM_mali_program_binary
1413#define GL_ARM_mali_program_binary 1
1414#endif
1415
Ian Romanickb152a232011-09-20 15:54:52 -07001416/* GL_ARM_mali_shader_binary */
1417#ifndef GL_ARM_mali_shader_binary
1418#define GL_ARM_mali_shader_binary 1
1419#endif
1420
1421/* GL_ARM_rgba8 */
1422#ifndef GL_ARM_rgba8
1423#define GL_ARM_rgba8 1
1424#endif
1425
1426/*------------------------------------------------------------------------*
Brian Paul0ebc94d2008-06-04 10:04:31 -06001427 * EXT extension functions
1428 *------------------------------------------------------------------------*/
1429
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001430/* GL_EXT_blend_minmax */
1431#ifndef GL_EXT_blend_minmax
1432#define GL_EXT_blend_minmax 1
1433#endif
1434
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001435/* GL_EXT_color_buffer_half_float */
1436#ifndef GL_EXT_color_buffer_half_float
1437#define GL_EXT_color_buffer_half_float 1
1438#endif
1439
1440/* GL_EXT_debug_label */
1441#ifndef GL_EXT_debug_label
1442#define GL_EXT_debug_label 1
1443#ifdef GL_GLEXT_PROTOTYPES
1444GL_APICALL void GL_APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label);
1445GL_APICALL void GL_APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
1446#endif
1447typedef void (GL_APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label);
1448typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
1449#endif
1450
1451/* GL_EXT_debug_marker */
1452#ifndef GL_EXT_debug_marker
1453#define GL_EXT_debug_marker 1
1454#ifdef GL_GLEXT_PROTOTYPES
1455GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker);
1456GL_APICALL void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker);
1457GL_APICALL void GL_APIENTRY glPopGroupMarkerEXT (void);
1458#endif
1459typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker);
1460typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker);
1461typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void);
1462#endif
1463
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001464/* GL_EXT_discard_framebuffer */
1465#ifndef GL_EXT_discard_framebuffer
1466#define GL_EXT_discard_framebuffer 1
1467#ifdef GL_GLEXT_PROTOTYPES
1468GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments);
1469#endif
1470typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
1471#endif
1472
Matt Turner00a945f2013-07-26 16:33:10 -07001473#ifndef GL_EXT_disjoint_timer_query
1474#define GL_EXT_disjoint_timer_query 1
1475#ifdef GL_GLEXT_PROTOTYPES
1476GL_APICALL void GL_APIENTRY glGenQueriesEXT (GLsizei n, GLuint *ids);
1477GL_APICALL void GL_APIENTRY glDeleteQueriesEXT (GLsizei n, const GLuint *ids);
1478GL_APICALL GLboolean GL_APIENTRY glIsQueryEXT (GLuint id);
1479GL_APICALL void GL_APIENTRY glBeginQueryEXT (GLenum target, GLuint id);
1480GL_APICALL void GL_APIENTRY glEndQueryEXT (GLenum target);
1481GL_APICALL void GL_APIENTRY glQueryCounterEXT (GLuint id, GLenum target);
1482GL_APICALL void GL_APIENTRY glGetQueryivEXT (GLenum target, GLenum pname, GLint *params);
1483GL_APICALL void GL_APIENTRY glGetQueryObjectivEXT (GLuint id, GLenum pname, GLint *params);
1484GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXT (GLuint id, GLenum pname, GLuint *params);
1485GL_APICALL void GL_APIENTRY glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64 *params);
1486GL_APICALL void GL_APIENTRY glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64 *params);
1487#endif
1488typedef void (GL_APIENTRYP PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint *ids);
1489typedef void (GL_APIENTRYP PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint *ids);
1490typedef GLboolean (GL_APIENTRYP PFNGLISQUERYEXTPROC) (GLuint id);
1491typedef void (GL_APIENTRYP PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id);
1492typedef void (GL_APIENTRYP PFNGLENDQUERYEXTPROC) (GLenum target);
1493typedef void (GL_APIENTRYP PFNGLQUERYCOUNTEREXTPROC) (GLuint id, GLenum target);
1494typedef void (GL_APIENTRYP PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
1495typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTIVEXTPROC) (GLuint id, GLenum pname, GLint *params);
1496typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint *params);
1497typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64 *params);
1498typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64 *params);
1499#endif /* GL_EXT_disjoint_timer_query */
1500
1501#ifndef GL_EXT_draw_buffers
1502#define GL_EXT_draw_buffers 1
1503#ifdef GL_GLEXT_PROTOTYPES
1504GL_APICALL void GL_APIENTRY glDrawBuffersEXT (GLsizei n, const GLenum *bufs);
1505#endif
1506typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSEXTPROC) (GLsizei n, const GLenum *bufs);
1507#endif /* GL_EXT_draw_buffers */
1508
Matt Turner5c78ad82012-11-15 11:56:22 -08001509/* GL_EXT_map_buffer_range */
1510#ifndef GL_EXT_map_buffer_range
1511#define GL_EXT_map_buffer_range 1
1512#ifdef GL_GLEXT_PROTOTYPES
1513GL_APICALL void* GL_APIENTRY glMapBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
1514GL_APICALL void GL_APIENTRY glFlushMappedBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length);
1515#endif
1516typedef void* (GL_APIENTRYP PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
1517typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
1518#endif
1519
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001520/* GL_EXT_multisampled_render_to_texture */
1521#ifndef GL_EXT_multisampled_render_to_texture
1522#define GL_EXT_multisampled_render_to_texture 1
1523#ifdef GL_GLEXT_PROTOTYPES
1524GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
1525GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
1526#endif
1527typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1528typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
1529#endif
1530
Matt Turner5c78ad82012-11-15 11:56:22 -08001531/* GL_EXT_multiview_draw_buffers */
1532#ifndef GL_EXT_multiview_draw_buffers
1533#define GL_EXT_multiview_draw_buffers 1
1534#ifdef GL_GLEXT_PROTOTYPES
1535GL_APICALL void GL_APIENTRY glReadBufferIndexedEXT (GLenum src, GLint index);
1536GL_APICALL void GL_APIENTRY glDrawBuffersIndexedEXT (GLint n, const GLenum *location, const GLint *indices);
1537GL_APICALL void GL_APIENTRY glGetIntegeri_vEXT (GLenum target, GLuint index, GLint *data);
1538#endif
1539typedef void (GL_APIENTRYP PFNGLREADBUFFERINDEXEDEXTPROC) (GLenum src, GLint index);
1540typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSINDEXEDEXTPROC) (GLint n, const GLenum *location, const GLint *indices);
1541typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VEXTPROC) (GLenum target, GLuint index, GLint *data);
1542#endif
1543
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001544#ifndef GL_EXT_multi_draw_arrays
1545#define GL_EXT_multi_draw_arrays 1
1546#ifdef GL_GLEXT_PROTOTYPES
Matt Turner00a945f2013-07-26 16:33:10 -07001547GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum, const GLint *, const GLsizei *, GLsizei);
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001548GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
1549#endif /* GL_GLEXT_PROTOTYPES */
Matt Turner00a945f2013-07-26 16:33:10 -07001550typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001551typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
1552#endif
1553
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001554/* GL_EXT_occlusion_query_boolean */
1555#ifndef GL_EXT_occlusion_query_boolean
1556#define GL_EXT_occlusion_query_boolean 1
1557#ifdef GL_GLEXT_PROTOTYPES
1558GL_APICALL void GL_APIENTRY glGenQueriesEXT (GLsizei n, GLuint *ids);
1559GL_APICALL void GL_APIENTRY glDeleteQueriesEXT (GLsizei n, const GLuint *ids);
1560GL_APICALL GLboolean GL_APIENTRY glIsQueryEXT (GLuint id);
1561GL_APICALL void GL_APIENTRY glBeginQueryEXT (GLenum target, GLuint id);
1562GL_APICALL void GL_APIENTRY glEndQueryEXT (GLenum target);
1563GL_APICALL void GL_APIENTRY glGetQueryivEXT (GLenum target, GLenum pname, GLint *params);
1564GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXT (GLuint id, GLenum pname, GLuint *params);
1565#endif
1566typedef void (GL_APIENTRYP PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint *ids);
1567typedef void (GL_APIENTRYP PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint *ids);
1568typedef GLboolean (GL_APIENTRYP PFNGLISQUERYEXTPROC) (GLuint id);
1569typedef void (GL_APIENTRYP PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id);
1570typedef void (GL_APIENTRYP PFNGLENDQUERYEXTPROC) (GLenum target);
1571typedef void (GL_APIENTRYP PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
1572typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint *params);
1573#endif
1574
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001575/* GL_EXT_read_format_bgra */
1576#ifndef GL_EXT_read_format_bgra
1577#define GL_EXT_read_format_bgra 1
1578#endif
1579
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001580/* GL_EXT_robustness */
1581#ifndef GL_EXT_robustness
1582#define GL_EXT_robustness 1
1583#ifdef GL_GLEXT_PROTOTYPES
1584GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void);
1585GL_APICALL void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
1586GL_APICALL void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, float *params);
1587GL_APICALL void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params);
1588#endif
1589typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void);
1590typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
1591typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, float *params);
1592typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params);
1593#endif
1594
1595/* GL_EXT_separate_shader_objects */
1596#ifndef GL_EXT_separate_shader_objects
1597#define GL_EXT_separate_shader_objects 1
1598#ifdef GL_GLEXT_PROTOTYPES
1599GL_APICALL void GL_APIENTRY glUseProgramStagesEXT (GLuint pipeline, GLbitfield stages, GLuint program);
1600GL_APICALL void GL_APIENTRY glActiveShaderProgramEXT (GLuint pipeline, GLuint program);
1601GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramvEXT (GLenum type, GLsizei count, const GLchar **strings);
1602GL_APICALL void GL_APIENTRY glBindProgramPipelineEXT (GLuint pipeline);
1603GL_APICALL void GL_APIENTRY glDeleteProgramPipelinesEXT (GLsizei n, const GLuint *pipelines);
1604GL_APICALL void GL_APIENTRY glGenProgramPipelinesEXT (GLsizei n, GLuint *pipelines);
1605GL_APICALL GLboolean GL_APIENTRY glIsProgramPipelineEXT (GLuint pipeline);
1606GL_APICALL void GL_APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value);
1607GL_APICALL void GL_APIENTRY glGetProgramPipelineivEXT (GLuint pipeline, GLenum pname, GLint *params);
1608GL_APICALL void GL_APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint x);
1609GL_APICALL void GL_APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint x, GLint y);
1610GL_APICALL void GL_APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z);
1611GL_APICALL void GL_APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
1612GL_APICALL void GL_APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat x);
1613GL_APICALL void GL_APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat x, GLfloat y);
1614GL_APICALL void GL_APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
1615GL_APICALL void GL_APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1616GL_APICALL void GL_APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
1617GL_APICALL void GL_APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
1618GL_APICALL void GL_APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
1619GL_APICALL void GL_APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
1620GL_APICALL void GL_APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1621GL_APICALL void GL_APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1622GL_APICALL void GL_APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1623GL_APICALL void GL_APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1624GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1625GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1626GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1627GL_APICALL void GL_APIENTRY glValidateProgramPipelineEXT (GLuint pipeline);
1628GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLogEXT (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
1629#endif
1630typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESEXTPROC) (GLuint pipeline, GLbitfield stages, GLuint program);
1631typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMEXTPROC) (GLuint pipeline, GLuint program);
1632typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVEXTPROC) (GLenum type, GLsizei count, const GLchar **strings);
1633typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
1634typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESEXTPROC) (GLsizei n, const GLuint *pipelines);
1635typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESEXTPROC) (GLsizei n, GLuint *pipelines);
1636typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
1637typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value);
1638typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVEXTPROC) (GLuint pipeline, GLenum pname, GLint *params);
1639typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint x);
1640typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint x, GLint y);
1641typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z);
1642typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
1643typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat x);
1644typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y);
1645typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
1646typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1647typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
1648typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
1649typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
1650typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
1651typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1652typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1653typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1654typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1655typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1656typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1657typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1658typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
1659typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
1660#endif
1661
Matt Turner5c78ad82012-11-15 11:56:22 -08001662/* GL_EXT_shader_framebuffer_fetch */
1663#ifndef GL_EXT_shader_framebuffer_fetch
1664#define GL_EXT_shader_framebuffer_fetch 1
1665#endif
1666
Ian Romanickb152a232011-09-20 15:54:52 -07001667/* GL_EXT_shader_texture_lod */
1668#ifndef GL_EXT_shader_texture_lod
1669#define GL_EXT_shader_texture_lod 1
1670#endif
1671
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001672/* GL_EXT_shadow_samplers */
1673#ifndef GL_EXT_shadow_samplers
1674#define GL_EXT_shadow_samplers 1
1675#endif
1676
1677/* GL_EXT_sRGB */
1678#ifndef GL_EXT_sRGB
1679#define GL_EXT_sRGB 1
1680#endif
1681
1682/* GL_EXT_texture_compression_dxt1 */
1683#ifndef GL_EXT_texture_compression_dxt1
1684#define GL_EXT_texture_compression_dxt1 1
1685#endif
1686
Brian Paul0ebc94d2008-06-04 10:04:31 -06001687/* GL_EXT_texture_filter_anisotropic */
1688#ifndef GL_EXT_texture_filter_anisotropic
1689#define GL_EXT_texture_filter_anisotropic 1
1690#endif
1691
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001692/* GL_EXT_texture_format_BGRA8888 */
1693#ifndef GL_EXT_texture_format_BGRA8888
1694#define GL_EXT_texture_format_BGRA8888 1
1695#endif
1696
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001697/* GL_EXT_texture_rg */
1698#ifndef GL_EXT_texture_rg
1699#define GL_EXT_texture_rg 1
1700#endif
1701
1702/* GL_EXT_texture_storage */
1703#ifndef GL_EXT_texture_storage
1704#define GL_EXT_texture_storage 1
1705#ifdef GL_GLEXT_PROTOTYPES
1706GL_APICALL void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
1707GL_APICALL void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
1708GL_APICALL void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
1709GL_APICALL void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
1710GL_APICALL void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
1711GL_APICALL void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
1712#endif
1713typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
1714typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
1715typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
1716typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
1717typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
1718typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
1719#endif
1720
Brian Paul0ebc94d2008-06-04 10:04:31 -06001721/* GL_EXT_texture_type_2_10_10_10_REV */
1722#ifndef GL_EXT_texture_type_2_10_10_10_REV
1723#define GL_EXT_texture_type_2_10_10_10_REV 1
1724#endif
1725
Ian Romanickb152a232011-09-20 15:54:52 -07001726/* GL_EXT_unpack_subimage */
1727#ifndef GL_EXT_unpack_subimage
1728#define GL_EXT_unpack_subimage 1
1729#endif
1730
1731/*------------------------------------------------------------------------*
1732 * DMP extension functions
1733 *------------------------------------------------------------------------*/
1734
1735/* GL_DMP_shader_binary */
1736#ifndef GL_DMP_shader_binary
1737#define GL_DMP_shader_binary 1
1738#endif
1739
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001740/*------------------------------------------------------------------------*
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001741 * FJ extension functions
1742 *------------------------------------------------------------------------*/
1743
1744/* GL_FJ_shader_binary_GCCSO */
1745#ifndef GL_FJ_shader_binary_GCCSO
1746#define GL_FJ_shader_binary_GCCSO 1
1747#endif
1748
1749/*------------------------------------------------------------------------*
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001750 * IMG extension functions
1751 *------------------------------------------------------------------------*/
1752
1753/* GL_IMG_program_binary */
1754#ifndef GL_IMG_program_binary
1755#define GL_IMG_program_binary 1
1756#endif
1757
1758/* GL_IMG_read_format */
1759#ifndef GL_IMG_read_format
1760#define GL_IMG_read_format 1
1761#endif
1762
1763/* GL_IMG_shader_binary */
1764#ifndef GL_IMG_shader_binary
1765#define GL_IMG_shader_binary 1
1766#endif
1767
1768/* GL_IMG_texture_compression_pvrtc */
1769#ifndef GL_IMG_texture_compression_pvrtc
1770#define GL_IMG_texture_compression_pvrtc 1
1771#endif
1772
Matt Turner00a945f2013-07-26 16:33:10 -07001773/* GL_IMG_texture_compression_pvrtc2 */
1774#ifndef GL_IMG_texture_compression_pvrtc2
1775#define GL_IMG_texture_compression_pvrtc2 1
1776#endif
1777
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001778/* GL_IMG_multisampled_render_to_texture */
1779#ifndef GL_IMG_multisampled_render_to_texture
1780#define GL_IMG_multisampled_render_to_texture 1
1781#ifdef GL_GLEXT_PROTOTYPES
1782GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
1783GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
1784#endif
Matt Turner5c78ad82012-11-15 11:56:22 -08001785typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1786typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001787#endif
1788
1789/*------------------------------------------------------------------------*
1790 * NV extension functions
1791 *------------------------------------------------------------------------*/
1792
Ian Romanickb152a232011-09-20 15:54:52 -07001793/* GL_NV_coverage_sample */
1794#ifndef GL_NV_coverage_sample
1795#define GL_NV_coverage_sample 1
1796#ifdef GL_GLEXT_PROTOTYPES
1797GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask);
1798GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation);
1799#endif
1800typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask);
1801typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation);
1802#endif
1803
1804/* GL_NV_depth_nonlinear */
1805#ifndef GL_NV_depth_nonlinear
1806#define GL_NV_depth_nonlinear 1
1807#endif
1808
1809/* GL_NV_draw_buffers */
1810#ifndef GL_NV_draw_buffers
1811#define GL_NV_draw_buffers 1
1812#ifdef GL_GLEXT_PROTOTYPES
1813GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs);
1814#endif
1815typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum *bufs);
1816#endif
1817
Matt Turner00a945f2013-07-26 16:33:10 -07001818/* GL_NV_draw_instanced */
1819#ifndef GL_NV_draw_instanced
1820#define GL_NV_draw_instanced 1
1821#ifdef GL_GLEXT_PROTOTYPES
1822GL_APICALL void GL_APIENTRY glDrawArraysInstancedNV (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
1823GL_APICALL void GL_APIENTRY glDrawElementsInstancedNV (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
1824#endif
1825typedef void (GL_APIENTRYP PFNDRAWARRAYSINSTANCEDNVPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
1826typedef void (GL_APIENTRYP PFNDRAWELEMENTSINSTANCEDNVPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
1827#endif
1828
Ian Romanickb152a232011-09-20 15:54:52 -07001829/* GL_NV_fbo_color_attachments */
1830#ifndef GL_NV_fbo_color_attachments
1831#define GL_NV_fbo_color_attachments 1
1832#endif
1833
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001834/* GL_NV_fence */
1835#ifndef GL_NV_fence
1836#define GL_NV_fence 1
1837#ifdef GL_GLEXT_PROTOTYPES
1838GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *);
1839GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *);
1840GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint);
1841GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint);
1842GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *);
1843GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint);
1844GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint, GLenum);
1845#endif
1846typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
1847typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
1848typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
1849typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
1850typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
1851typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
1852typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
1853#endif
1854
Matt Turner00a945f2013-07-26 16:33:10 -07001855/* GL_NV_framebuffer_blit */
1856#ifndef GL_NV_framebuffer_blit
1857#define GL_NV_framebuffer_blit 1
1858#ifdef GL_GLEXT_PROTOTYPES
1859GL_APICALL void GL_APIENTRY glBlitFramebufferNV (int srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
1860#endif
1861typedef void (GL_APIENTRYP PFNBLITFRAMEBUFFERNVPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
1862#endif
1863
1864/* GL_NV_framebuffer_multisample */
1865#ifndef GL_NV_framebuffer_multisample
1866#define GL_NV_framebuffer_multisample 1
1867#ifdef GL_GLEXT_PROTOTYPES
1868GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleNV ( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1869#endif
1870typedef void (GL_APIENTRYP PFNRENDERBUFFERSTORAGEMULTISAMPLENVPROC) ( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1871#endif
1872
1873/* GL_NV_generate_mipmap_sRGB */
1874#ifndef GL_NV_generate_mipmap_sRGB
1875#define GL_NV_generate_mipmap_sRGB 1
1876#endif
1877
1878/* GL_NV_instanced_arrays */
1879#ifndef GL_NV_instanced_arrays
1880#define GL_NV_instanced_arrays 1
1881#ifdef GL_GLEXT_PROTOTYPES
1882GL_APICALL void GL_APIENTRY glVertexAttribDivisorNV (GLuint index, GLuint divisor);
1883#endif
1884typedef void (GL_APIENTRYP PFNVERTEXATTRIBDIVISORNVPROC) (GLuint index, GLuint divisor);
1885#endif
1886
Ian Romanickb152a232011-09-20 15:54:52 -07001887/* GL_NV_read_buffer */
1888#ifndef GL_NV_read_buffer
1889#define GL_NV_read_buffer 1
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001890#ifdef GL_GLEXT_PROTOTYPES
Ian Romanickb152a232011-09-20 15:54:52 -07001891GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode);
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001892#endif
Ian Romanickb152a232011-09-20 15:54:52 -07001893typedef void (GL_APIENTRYP PFNGLREADBUFFERNVPROC) (GLenum mode);
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001894#endif
1895
Ian Romanickb152a232011-09-20 15:54:52 -07001896/* GL_NV_read_buffer_front */
1897#ifndef GL_NV_read_buffer_front
1898#define GL_NV_read_buffer_front 1
1899#endif
1900
1901/* GL_NV_read_depth */
1902#ifndef GL_NV_read_depth
1903#define GL_NV_read_depth 1
1904#endif
1905
1906/* GL_NV_read_depth_stencil */
1907#ifndef GL_NV_read_depth_stencil
1908#define GL_NV_read_depth_stencil 1
1909#endif
1910
1911/* GL_NV_read_stencil */
1912#ifndef GL_NV_read_stencil
1913#define GL_NV_read_stencil 1
1914#endif
1915
Matt Turner00a945f2013-07-26 16:33:10 -07001916/* GL_NV_shadow_samplers_array */
1917#ifndef GL_NV_shadow_samplers_array
1918#define GL_NV_shadow_samplers_array 1
1919#endif
1920
1921/* GL_NV_shadow_samplers_cube */
1922#ifndef GL_NV_shadow_samplers_cube
1923#define GL_NV_shadow_samplers_cube 1
1924#endif
1925
1926/* GL_NV_sRGB_formats */
1927#ifndef GL_NV_sRGB_formats
1928#define GL_NV_sRGB_formats 1
1929#endif
1930
1931/* GL_NV_texture_border_clamp */
1932#ifndef GL_NV_texture_border_clamp
1933#define GL_NV_texture_border_clamp 1
1934#endif
1935
Ian Romanickb152a232011-09-20 15:54:52 -07001936/* GL_NV_texture_compression_s3tc_update */
1937#ifndef GL_NV_texture_compression_s3tc_update
1938#define GL_NV_texture_compression_s3tc_update 1
1939#endif
1940
1941/* GL_NV_texture_npot_2D_mipmap */
1942#ifndef GL_NV_texture_npot_2D_mipmap
1943#define GL_NV_texture_npot_2D_mipmap 1
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001944#endif
1945
1946/*------------------------------------------------------------------------*
1947 * QCOM extension functions
1948 *------------------------------------------------------------------------*/
1949
Ian Romanickb152a232011-09-20 15:54:52 -07001950/* GL_QCOM_alpha_test */
1951#ifndef GL_QCOM_alpha_test
1952#define GL_QCOM_alpha_test 1
1953#ifdef GL_GLEXT_PROTOTYPES
1954GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref);
1955#endif
1956typedef void (GL_APIENTRYP PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref);
1957#endif
1958
Matt Turner5c78ad82012-11-15 11:56:22 -08001959/* GL_QCOM_binning_control */
1960#ifndef GL_QCOM_binning_control
1961#define GL_QCOM_binning_control 1
1962#endif
1963
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001964/* GL_QCOM_driver_control */
1965#ifndef GL_QCOM_driver_control
1966#define GL_QCOM_driver_control 1
1967#ifdef GL_GLEXT_PROTOTYPES
1968GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls);
1969GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
1970GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl);
1971GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl);
1972#endif
1973typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls);
1974typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
1975typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
1976typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
1977#endif
1978
1979/* GL_QCOM_extended_get */
1980#ifndef GL_QCOM_extended_get
1981#define GL_QCOM_extended_get 1
1982#ifdef GL_GLEXT_PROTOTYPES
1983GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures);
1984GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
1985GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
1986GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
1987GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
1988GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param);
1989GL_APICALL void GL_APIENTRY glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels);
1990GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params);
1991#endif
1992typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures);
1993typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
1994typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
1995typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
1996typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
1997typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
1998typedef void (GL_APIENTRYP PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels);
1999typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, GLvoid **params);
2000#endif
2001
2002/* GL_QCOM_extended_get2 */
2003#ifndef GL_QCOM_extended_get2
2004#define GL_QCOM_extended_get2 1
2005#ifdef GL_GLEXT_PROTOTYPES
2006GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders);
2007GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
2008GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program);
2009GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
2010#endif
2011typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders);
2012typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
2013typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
2014typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
2015#endif
2016
2017/* GL_QCOM_perfmon_global_mode */
2018#ifndef GL_QCOM_perfmon_global_mode
2019#define GL_QCOM_perfmon_global_mode 1
2020#endif
2021
2022/* GL_QCOM_writeonly_rendering */
2023#ifndef GL_QCOM_writeonly_rendering
2024#define GL_QCOM_writeonly_rendering 1
2025#endif
2026
2027/* GL_QCOM_tiled_rendering */
2028#ifndef GL_QCOM_tiled_rendering
2029#define GL_QCOM_tiled_rendering 1
2030#ifdef GL_GLEXT_PROTOTYPES
2031GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
2032GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask);
2033#endif
2034typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
2035typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask);
2036#endif
2037
Ian Romanickb152a232011-09-20 15:54:52 -07002038/*------------------------------------------------------------------------*
2039 * VIV extension tokens
2040 *------------------------------------------------------------------------*/
2041
2042/* GL_VIV_shader_binary */
2043#ifndef GL_VIV_shader_binary
2044#define GL_VIV_shader_binary 1
2045#endif
2046
Brian Paul0ebc94d2008-06-04 10:04:31 -06002047#ifdef __cplusplus
2048}
2049#endif
2050
2051#endif /* __gl2ext_h_ */