blob: 65b8e80d25bc8d3e9d4ddfa98edc065aca402697 [file] [log] [blame]
Brian Paul0ebc94d2008-06-04 10:04:31 -06001#ifndef __gl2ext_h_
2#define __gl2ext_h_
3
Matt Turner5c78ad82012-11-15 11:56:22 -08004/* $Revision: 19436 $ on $Date:: 2012-10-10 10:37:04 -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
19/*------------------------------------------------------------------------*
20 * OES extension tokens
21 *------------------------------------------------------------------------*/
22
23/* GL_OES_compressed_ETC1_RGB8_texture */
24#ifndef GL_OES_compressed_ETC1_RGB8_texture
25#define GL_ETC1_RGB8_OES 0x8D64
26#endif
27
28/* GL_OES_compressed_paletted_texture */
29#ifndef GL_OES_compressed_paletted_texture
30#define GL_PALETTE4_RGB8_OES 0x8B90
31#define GL_PALETTE4_RGBA8_OES 0x8B91
32#define GL_PALETTE4_R5_G6_B5_OES 0x8B92
33#define GL_PALETTE4_RGBA4_OES 0x8B93
34#define GL_PALETTE4_RGB5_A1_OES 0x8B94
35#define GL_PALETTE8_RGB8_OES 0x8B95
36#define GL_PALETTE8_RGBA8_OES 0x8B96
37#define GL_PALETTE8_R5_G6_B5_OES 0x8B97
38#define GL_PALETTE8_RGBA4_OES 0x8B98
39#define GL_PALETTE8_RGB5_A1_OES 0x8B99
40#endif
41
Brian Paul0ebc94d2008-06-04 10:04:31 -060042/* GL_OES_depth24 */
43#ifndef GL_OES_depth24
44#define GL_DEPTH_COMPONENT24_OES 0x81A6
45#endif
46
47/* GL_OES_depth32 */
48#ifndef GL_OES_depth32
49#define GL_DEPTH_COMPONENT32_OES 0x81A7
50#endif
51
52/* GL_OES_depth_texture */
53/* No new tokens introduced by this extension. */
54
Chia-I Wu59f8dca2010-05-31 10:15:55 +080055/* GL_OES_EGL_image */
56#ifndef GL_OES_EGL_image
57typedef void* GLeglImageOES;
58#endif
59
Ian Romanickb152a232011-09-20 15:54:52 -070060/* GL_OES_EGL_image_external */
61#ifndef GL_OES_EGL_image_external
62/* GLeglImageOES defined in GL_OES_EGL_image already. */
63#define GL_TEXTURE_EXTERNAL_OES 0x8D65
64#define GL_SAMPLER_EXTERNAL_OES 0x8D66
65#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67
66#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68
67#endif
68
Chia-I Wu59f8dca2010-05-31 10:15:55 +080069/* GL_OES_element_index_uint */
70#ifndef GL_OES_element_index_uint
71#define GL_UNSIGNED_INT 0x1405
72#endif
73
74/* GL_OES_get_program_binary */
75#ifndef GL_OES_get_program_binary
76#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741
77#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE
78#define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF
79#endif
80
Brian Paul0ebc94d2008-06-04 10:04:31 -060081/* GL_OES_mapbuffer */
82#ifndef GL_OES_mapbuffer
Brian Paul0ebc94d2008-06-04 10:04:31 -060083#define GL_WRITE_ONLY_OES 0x88B9
84#define GL_BUFFER_ACCESS_OES 0x88BB
85#define GL_BUFFER_MAPPED_OES 0x88BC
86#define GL_BUFFER_MAP_POINTER_OES 0x88BD
87#endif
88
89/* GL_OES_packed_depth_stencil */
90#ifndef GL_OES_packed_depth_stencil
91#define GL_DEPTH_STENCIL_OES 0x84F9
92#define GL_UNSIGNED_INT_24_8_OES 0x84FA
93#define GL_DEPTH24_STENCIL8_OES 0x88F0
94#endif
95
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -040096/* GL_OES_required_internalformat */
Matt Turner5c78ad82012-11-15 11:56:22 -080097#ifndef GL_OES_required_internalformat
98#define GL_ALPHA8_OES 0x803C
99#define GL_DEPTH_COMPONENT16_OES 0x81A5
100/* reuse GL_DEPTH_COMPONENT24_OES */
101/* reuse GL_DEPTH24_STENCIL8_OES */
102/* reuse GL_DEPTH_COMPONENT32_OES */
103#define GL_LUMINANCE4_ALPHA4_OES 0x8043
104#define GL_LUMINANCE8_ALPHA8_OES 0x8045
105#define GL_LUMINANCE8_OES 0x8040
106#define GL_RGBA4_OES 0x8056
107#define GL_RGB5_A1_OES 0x8057
108#define GL_RGB565_OES 0x8D62
109/* reuse GL_RGB8_OES */
110/* reuse GL_RGBA8_OES */
111/* reuse GL_RGB10_EXT */
112/* reuse GL_RGB10_A2_EXT */
113#endif
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400114
Brian Paul0ebc94d2008-06-04 10:04:31 -0600115/* GL_OES_rgb8_rgba8 */
116#ifndef GL_OES_rgb8_rgba8
117#define GL_RGB8_OES 0x8051
118#define GL_RGBA8_OES 0x8058
119#endif
120
121/* GL_OES_standard_derivatives */
122#ifndef GL_OES_standard_derivatives
123#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B
124#endif
125
126/* GL_OES_stencil1 */
127#ifndef GL_OES_stencil1
128#define GL_STENCIL_INDEX1_OES 0x8D46
129#endif
130
131/* GL_OES_stencil4 */
132#ifndef GL_OES_stencil4
133#define GL_STENCIL_INDEX4_OES 0x8D47
134#endif
135
Matt Turner5c78ad82012-11-15 11:56:22 -0800136#ifndef GL_OES_surfaceless_context
137#define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219
138#endif
139
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800140/* GL_OES_texture_3D */
141#ifndef GL_OES_texture_3D
Brian Paul0ebc94d2008-06-04 10:04:31 -0600142#define GL_TEXTURE_WRAP_R_OES 0x8072
143#define GL_TEXTURE_3D_OES 0x806F
144#define GL_TEXTURE_BINDING_3D_OES 0x806A
145#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073
146#define GL_SAMPLER_3D_OES 0x8B5F
147#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4
148#endif
149
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800150/* GL_OES_texture_float */
151/* No new tokens introduced by this extension. */
152
153/* GL_OES_texture_float_linear */
154/* No new tokens introduced by this extension. */
155
Brian Paul0ebc94d2008-06-04 10:04:31 -0600156/* GL_OES_texture_half_float */
157#ifndef GL_OES_texture_half_float
158#define GL_HALF_FLOAT_OES 0x8D61
159#endif
160
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800161/* GL_OES_texture_half_float_linear */
162/* No new tokens introduced by this extension. */
163
164/* GL_OES_texture_npot */
165/* No new tokens introduced by this extension. */
166
167/* GL_OES_vertex_array_object */
168#ifndef GL_OES_vertex_array_object
169#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5
170#endif
171
Brian Paul0ebc94d2008-06-04 10:04:31 -0600172/* GL_OES_vertex_half_float */
173/* GL_HALF_FLOAT_OES defined in GL_OES_texture_half_float already. */
174
175/* GL_OES_vertex_type_10_10_10_2 */
176#ifndef GL_OES_vertex_type_10_10_10_2
177#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6
178#define GL_INT_10_10_10_2_OES 0x8DF7
179#endif
180
Brian Paul0ebc94d2008-06-04 10:04:31 -0600181/*------------------------------------------------------------------------*
Matt Turner5c78ad82012-11-15 11:56:22 -0800182 * KHR extension tokens
183 *------------------------------------------------------------------------*/
184
185#ifndef GL_KHR_debug
186typedef void (GL_APIENTRYP GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
187#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242
188#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243
189#define GL_DEBUG_CALLBACK_FUNCTION 0x8244
190#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245
191#define GL_DEBUG_SOURCE_API 0x8246
192#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247
193#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248
194#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249
195#define GL_DEBUG_SOURCE_APPLICATION 0x824A
196#define GL_DEBUG_SOURCE_OTHER 0x824B
197#define GL_DEBUG_TYPE_ERROR 0x824C
198#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D
199#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E
200#define GL_DEBUG_TYPE_PORTABILITY 0x824F
201#define GL_DEBUG_TYPE_PERFORMANCE 0x8250
202#define GL_DEBUG_TYPE_OTHER 0x8251
203#define GL_DEBUG_TYPE_MARKER 0x8268
204#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269
205#define GL_DEBUG_TYPE_POP_GROUP 0x826A
206#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B
207#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C
208#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D
209#define GL_BUFFER 0x82E0
210#define GL_SHADER 0x82E1
211#define GL_PROGRAM 0x82E2
212#define GL_QUERY 0x82E3
213/* PROGRAM_PIPELINE only in GL */
214#define GL_SAMPLER 0x82E6
215/* DISPLAY_LIST only in GL */
216#define GL_MAX_LABEL_LENGTH 0x82E8
217#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143
218#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144
219#define GL_DEBUG_LOGGED_MESSAGES 0x9145
220#define GL_DEBUG_SEVERITY_HIGH 0x9146
221#define GL_DEBUG_SEVERITY_MEDIUM 0x9147
222#define GL_DEBUG_SEVERITY_LOW 0x9148
223#define GL_DEBUG_OUTPUT 0x92E0
224#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002
225#define GL_STACK_OVERFLOW 0x0503
226#define GL_STACK_UNDERFLOW 0x0504
227#endif
228
229#ifndef GL_KHR_texture_compression_astc_ldr
230#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0
231#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1
232#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2
233#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3
234#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4
235#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5
236#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6
237#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7
238#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8
239#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9
240#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA
241#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB
242#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC
243#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD
244#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0
245#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1
246#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2
247#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3
248#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4
249#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5
250#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6
251#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7
252#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8
253#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9
254#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA
255#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB
256#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC
257#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD
258#endif
259
260/*------------------------------------------------------------------------*
Brian Paul0ebc94d2008-06-04 10:04:31 -0600261 * AMD extension tokens
262 *------------------------------------------------------------------------*/
263
264/* GL_AMD_compressed_3DC_texture */
265#ifndef GL_AMD_compressed_3DC_texture
266#define GL_3DC_X_AMD 0x87F9
267#define GL_3DC_XY_AMD 0x87FA
268#endif
269
270/* GL_AMD_compressed_ATC_texture */
271#ifndef GL_AMD_compressed_ATC_texture
272#define GL_ATC_RGB_AMD 0x8C92
273#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93
274#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE
275#endif
276
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800277/* GL_AMD_performance_monitor */
278#ifndef GL_AMD_performance_monitor
279#define GL_COUNTER_TYPE_AMD 0x8BC0
280#define GL_COUNTER_RANGE_AMD 0x8BC1
281#define GL_UNSIGNED_INT64_AMD 0x8BC2
282#define GL_PERCENTAGE_AMD 0x8BC3
283#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4
284#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5
285#define GL_PERFMON_RESULT_AMD 0x8BC6
286#endif
287
288/* GL_AMD_program_binary_Z400 */
289#ifndef GL_AMD_program_binary_Z400
290#define GL_Z400_BINARY_AMD 0x8740
291#endif
292
Brian Paul0ebc94d2008-06-04 10:04:31 -0600293/*------------------------------------------------------------------------*
Ian Romanickb152a232011-09-20 15:54:52 -0700294 * ANGLE extension tokens
295 *------------------------------------------------------------------------*/
296
297/* GL_ANGLE_framebuffer_blit */
298#ifndef GL_ANGLE_framebuffer_blit
299#define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8
300#define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9
301#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6
302#define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA
303#endif
304
305/* GL_ANGLE_framebuffer_multisample */
306#ifndef GL_ANGLE_framebuffer_multisample
307#define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB
308#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56
309#define GL_MAX_SAMPLES_ANGLE 0x8D57
310#endif
311
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400312/* GL_ANGLE_instanced_arrays */
313#ifndef GL_ANGLE_instanced_arrays
314#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE
315#endif
316
317/* GL_ANGLE_pack_reverse_row_order */
318#ifndef GL_ANGLE_pack_reverse_row_order
319#define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4
320#endif
321
322/* GL_ANGLE_texture_compression_dxt3 */
323#ifndef GL_ANGLE_texture_compression_dxt3
324#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2
325#endif
326
327/* GL_ANGLE_texture_compression_dxt5 */
328#ifndef GL_ANGLE_texture_compression_dxt5
329#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3
330#endif
331
332/* GL_ANGLE_texture_usage */
333#ifndef GL_ANGLE_texture_usage
334#define GL_TEXTURE_USAGE_ANGLE 0x93A2
335#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3
336#endif
337
338/* GL_ANGLE_translated_shader_source */
339#ifndef GL_ANGLE_translated_shader_source
340#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0
341#endif
342
Ian Romanickb152a232011-09-20 15:54:52 -0700343/*------------------------------------------------------------------------*
344 * APPLE extension tokens
345 *------------------------------------------------------------------------*/
346
Matt Turner5c78ad82012-11-15 11:56:22 -0800347/* GL_APPLE_copy_texture_levels */
348/* No new tokens introduced by this extension. */
349
Ian Romanickb152a232011-09-20 15:54:52 -0700350/* GL_APPLE_framebuffer_multisample */
351#ifndef GL_APPLE_framebuffer_multisample
352#define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB
353#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56
354#define GL_MAX_SAMPLES_APPLE 0x8D57
355#define GL_READ_FRAMEBUFFER_APPLE 0x8CA8
356#define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9
357#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6
358#define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA
359#endif
360
Matt Turner5c78ad82012-11-15 11:56:22 -0800361/* GL_APPLE_rgb_422 */
362#ifndef GL_APPLE_rgb_422
363#define GL_RGB_422_APPLE 0x8A1F
364#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
365#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
366#endif
367
368/* GL_APPLE_sync */
369#ifndef GL_APPLE_sync
370
371#ifndef __gl3_h_
372/* These types are defined with reference to <inttypes.h>
373 * in the Apple extension spec, but here we use the Khronos
374 * portable types in khrplatform.h, and assume those types
375 * are always defined.
376 * If any other extensions using these types are defined,
377 * the typedefs must move out of this block and be shared.
378 */
379typedef khronos_int64_t GLint64;
380typedef khronos_uint64_t GLuint64;
381typedef struct __GLsync *GLsync;
382#endif
383
384#define GL_SYNC_OBJECT_APPLE 0x8A53
385#define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111
386#define GL_OBJECT_TYPE_APPLE 0x9112
387#define GL_SYNC_CONDITION_APPLE 0x9113
388#define GL_SYNC_STATUS_APPLE 0x9114
389#define GL_SYNC_FLAGS_APPLE 0x9115
390#define GL_SYNC_FENCE_APPLE 0x9116
391#define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117
392#define GL_UNSIGNALED_APPLE 0x9118
393#define GL_SIGNALED_APPLE 0x9119
394#define GL_ALREADY_SIGNALED_APPLE 0x911A
395#define GL_TIMEOUT_EXPIRED_APPLE 0x911B
396#define GL_CONDITION_SATISFIED_APPLE 0x911C
397#define GL_WAIT_FAILED_APPLE 0x911D
398#define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001
399#define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull
400#endif
401
Ian Romanickb152a232011-09-20 15:54:52 -0700402/* GL_APPLE_texture_format_BGRA8888 */
403#ifndef GL_APPLE_texture_format_BGRA8888
404#define GL_BGRA_EXT 0x80E1
405#endif
406
407/* GL_APPLE_texture_max_level */
408#ifndef GL_APPLE_texture_max_level
409#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D
410#endif
411
412/*------------------------------------------------------------------------*
413 * ARM extension tokens
414 *------------------------------------------------------------------------*/
415
Matt Turner5c78ad82012-11-15 11:56:22 -0800416/* GL_ARM_mali_program_binary */
417#ifndef GL_ARM_mali_program_binary
418#define GL_MALI_PROGRAM_BINARY_ARM 0x8F61
419#endif
420
Ian Romanickb152a232011-09-20 15:54:52 -0700421/* GL_ARM_mali_shader_binary */
422#ifndef GL_ARM_mali_shader_binary
423#define GL_MALI_SHADER_BINARY_ARM 0x8F60
424#endif
425
426/* GL_ARM_rgba8 */
427/* No new tokens introduced by this extension. */
428
429/*------------------------------------------------------------------------*
Brian Paul0ebc94d2008-06-04 10:04:31 -0600430 * EXT extension tokens
431 *------------------------------------------------------------------------*/
432
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800433/* GL_EXT_blend_minmax */
434#ifndef GL_EXT_blend_minmax
435#define GL_MIN_EXT 0x8007
436#define GL_MAX_EXT 0x8008
437#endif
438
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400439/* GL_EXT_color_buffer_half_float */
440#ifndef GL_EXT_color_buffer_half_float
441#define GL_RGBA16F_EXT 0x881A
442#define GL_RGB16F_EXT 0x881B
443#define GL_RG16F_EXT 0x822F
444#define GL_R16F_EXT 0x822D
445#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211
446#define GL_UNSIGNED_NORMALIZED_EXT 0x8C17
447#endif
448
449/* GL_EXT_debug_label */
450#ifndef GL_EXT_debug_label
451#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F
452#define GL_PROGRAM_OBJECT_EXT 0x8B40
453#define GL_SHADER_OBJECT_EXT 0x8B48
454#define GL_BUFFER_OBJECT_EXT 0x9151
455#define GL_QUERY_OBJECT_EXT 0x9153
456#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154
457#endif
458
459/* GL_EXT_debug_marker */
460/* No new tokens introduced by this extension. */
461
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800462/* GL_EXT_discard_framebuffer */
463#ifndef GL_EXT_discard_framebuffer
464#define GL_COLOR_EXT 0x1800
465#define GL_DEPTH_EXT 0x1801
466#define GL_STENCIL_EXT 0x1802
467#endif
468
Matt Turner5c78ad82012-11-15 11:56:22 -0800469/* GL_EXT_map_buffer_range */
470#ifndef GL_EXT_map_buffer_range
471#define GL_MAP_READ_BIT_EXT 0x0001
472#define GL_MAP_WRITE_BIT_EXT 0x0002
473#define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004
474#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008
475#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010
476#define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020
477#endif
478
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400479/* GL_EXT_multisampled_render_to_texture */
480#ifndef GL_EXT_multisampled_render_to_texture
481#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C
Matt Turner5c78ad82012-11-15 11:56:22 -0800482/* reuse values from GL_EXT_framebuffer_multisample (desktop extension) */
483#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
484#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
485#define GL_MAX_SAMPLES_EXT 0x8D57
486#endif
487
488/* GL_EXT_multiview_draw_buffers */
489#ifndef GL_EXT_multiview_draw_buffers
490#define GL_COLOR_ATTACHMENT_EXT 0x90F0
491#define GL_MULTIVIEW_EXT 0x90F1
492#define GL_DRAW_BUFFER_EXT 0x0C01
493#define GL_READ_BUFFER_EXT 0x0C02
494#define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400495#endif
496
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800497/* GL_EXT_multi_draw_arrays */
498/* No new tokens introduced by this extension. */
499
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400500/* GL_EXT_occlusion_query_boolean */
501#ifndef GL_EXT_occlusion_query_boolean
502#define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F
503#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A
504#define GL_CURRENT_QUERY_EXT 0x8865
505#define GL_QUERY_RESULT_EXT 0x8866
506#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867
507#endif
508
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800509/* GL_EXT_read_format_bgra */
510#ifndef GL_EXT_read_format_bgra
511#define GL_BGRA_EXT 0x80E1
512#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365
513#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366
514#endif
515
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400516/* GL_EXT_robustness */
517#ifndef GL_EXT_robustness
518/* reuse GL_NO_ERROR */
519#define GL_GUILTY_CONTEXT_RESET_EXT 0x8253
520#define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254
521#define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255
522#define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3
523#define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256
524#define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252
525#define GL_NO_RESET_NOTIFICATION_EXT 0x8261
526#endif
527
528/* GL_EXT_separate_shader_objects */
529#ifndef GL_EXT_separate_shader_objects
530#define GL_VERTEX_SHADER_BIT_EXT 0x00000001
531#define GL_FRAGMENT_SHADER_BIT_EXT 0x00000002
532#define GL_ALL_SHADER_BITS_EXT 0xFFFFFFFF
533#define GL_PROGRAM_SEPARABLE_EXT 0x8258
534#define GL_ACTIVE_PROGRAM_EXT 0x8259
535#define GL_PROGRAM_PIPELINE_BINDING_EXT 0x825A
536#endif
537
Matt Turner5c78ad82012-11-15 11:56:22 -0800538/* GL_EXT_shader_framebuffer_fetch */
539#ifndef GL_EXT_shader_framebuffer_fetch
540#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
541#endif
542
Ian Romanickb152a232011-09-20 15:54:52 -0700543/* GL_EXT_shader_texture_lod */
544/* No new tokens introduced by this extension. */
545
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400546/* GL_EXT_shadow_samplers */
547#ifndef GL_EXT_shadow_samplers
548#define GL_TEXTURE_COMPARE_MODE_EXT 0x884C
549#define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D
550#define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E
551#define GL_SAMPLER_2D_SHADOW_EXT 0x8B62
552#endif
553
554/* GL_EXT_sRGB */
555#ifndef GL_EXT_sRGB
556#define GL_SRGB_EXT 0x8C40
557#define GL_SRGB_ALPHA_EXT 0x8C42
558#define GL_SRGB8_ALPHA8_EXT 0x8C43
559#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210
560#endif
561
562/* GL_EXT_texture_compression_dxt1 */
563#ifndef GL_EXT_texture_compression_dxt1
564#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
565#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
566#endif
567
Brian Paul0ebc94d2008-06-04 10:04:31 -0600568/* GL_EXT_texture_filter_anisotropic */
569#ifndef GL_EXT_texture_filter_anisotropic
570#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
571#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
572#endif
573
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800574/* GL_EXT_texture_format_BGRA8888 */
575#ifndef GL_EXT_texture_format_BGRA8888
576#define GL_BGRA_EXT 0x80E1
577#endif
578
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400579/* GL_EXT_texture_rg */
580#ifndef GL_EXT_texture_rg
581#define GL_RED_EXT 0x1903
582#define GL_RG_EXT 0x8227
583#define GL_R8_EXT 0x8229
584#define GL_RG8_EXT 0x822B
585#endif
586
587/* GL_EXT_texture_storage */
588#ifndef GL_EXT_texture_storage
589#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F
590#define GL_ALPHA8_EXT 0x803C
591#define GL_LUMINANCE8_EXT 0x8040
592#define GL_LUMINANCE8_ALPHA8_EXT 0x8045
593#define GL_RGBA32F_EXT 0x8814
594#define GL_RGB32F_EXT 0x8815
595#define GL_ALPHA32F_EXT 0x8816
596#define GL_LUMINANCE32F_EXT 0x8818
597#define GL_LUMINANCE_ALPHA32F_EXT 0x8819
598/* reuse GL_RGBA16F_EXT */
599/* reuse GL_RGB16F_EXT */
600#define GL_ALPHA16F_EXT 0x881C
601#define GL_LUMINANCE16F_EXT 0x881E
602#define GL_LUMINANCE_ALPHA16F_EXT 0x881F
603#define GL_RGB10_A2_EXT 0x8059
604#define GL_RGB10_EXT 0x8052
605#define GL_BGRA8_EXT 0x93A1
606#define GL_R8_EXT 0x8229
607#define GL_RG8_EXT 0x822B
608#define GL_R32F_EXT 0x822E
609#define GL_RG32F_EXT 0x8230
610#define GL_R16F_EXT 0x822D
611#define GL_RG16F_EXT 0x822F
612#endif
613
Brian Paul0ebc94d2008-06-04 10:04:31 -0600614/* GL_EXT_texture_type_2_10_10_10_REV */
615#ifndef GL_EXT_texture_type_2_10_10_10_REV
616#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368
617#endif
618
Ian Romanickb152a232011-09-20 15:54:52 -0700619/* GL_EXT_unpack_subimage */
620#ifndef GL_EXT_unpack_subimage
621#define GL_UNPACK_ROW_LENGTH 0x0CF2
622#define GL_UNPACK_SKIP_ROWS 0x0CF3
623#define GL_UNPACK_SKIP_PIXELS 0x0CF4
624#endif
625
626/*------------------------------------------------------------------------*
627 * DMP extension tokens
628 *------------------------------------------------------------------------*/
629
630/* GL_DMP_shader_binary */
631#ifndef GL_DMP_shader_binary
632#define GL_SHADER_BINARY_DMP 0x9250
633#endif
634
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800635/*------------------------------------------------------------------------*
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400636 * FJ extension tokens
637 *------------------------------------------------------------------------*/
638
639/* GL_FJ_shader_binary_GCCSO */
640#ifndef GL_FJ_shader_binary_GCCSO
641#define GCCSO_SHADER_BINARY_FJ 0x9260
642#endif
643
644/*------------------------------------------------------------------------*
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800645 * IMG extension tokens
646 *------------------------------------------------------------------------*/
647
648/* GL_IMG_program_binary */
649#ifndef GL_IMG_program_binary
650#define GL_SGX_PROGRAM_BINARY_IMG 0x9130
651#endif
652
653/* GL_IMG_read_format */
654#ifndef GL_IMG_read_format
655#define GL_BGRA_IMG 0x80E1
656#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365
657#endif
658
659/* GL_IMG_shader_binary */
660#ifndef GL_IMG_shader_binary
661#define GL_SGX_BINARY_IMG 0x8C0A
662#endif
663
664/* GL_IMG_texture_compression_pvrtc */
665#ifndef GL_IMG_texture_compression_pvrtc
666#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00
667#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01
668#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02
669#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03
670#endif
671
672/* GL_IMG_multisampled_render_to_texture */
673#ifndef GL_IMG_multisampled_render_to_texture
674#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133
675#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134
676#define GL_MAX_SAMPLES_IMG 0x9135
677#define GL_TEXTURE_SAMPLES_IMG 0x9136
678#endif
679
680/*------------------------------------------------------------------------*
681 * NV extension tokens
682 *------------------------------------------------------------------------*/
683
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800684/* GL_NV_coverage_sample */
685#ifndef GL_NV_coverage_sample
686#define GL_COVERAGE_COMPONENT_NV 0x8ED0
687#define GL_COVERAGE_COMPONENT4_NV 0x8ED1
688#define GL_COVERAGE_ATTACHMENT_NV 0x8ED2
689#define GL_COVERAGE_BUFFERS_NV 0x8ED3
690#define GL_COVERAGE_SAMPLES_NV 0x8ED4
691#define GL_COVERAGE_ALL_FRAGMENTS_NV 0x8ED5
692#define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ED6
693#define GL_COVERAGE_AUTOMATIC_NV 0x8ED7
694#define GL_COVERAGE_BUFFER_BIT_NV 0x8000
695#endif
696
697/* GL_NV_depth_nonlinear */
698#ifndef GL_NV_depth_nonlinear
699#define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C
700#endif
701
Ian Romanickb152a232011-09-20 15:54:52 -0700702/* GL_NV_draw_buffers */
703#ifndef GL_NV_draw_buffers
704#define GL_MAX_DRAW_BUFFERS_NV 0x8824
705#define GL_DRAW_BUFFER0_NV 0x8825
706#define GL_DRAW_BUFFER1_NV 0x8826
707#define GL_DRAW_BUFFER2_NV 0x8827
708#define GL_DRAW_BUFFER3_NV 0x8828
709#define GL_DRAW_BUFFER4_NV 0x8829
710#define GL_DRAW_BUFFER5_NV 0x882A
711#define GL_DRAW_BUFFER6_NV 0x882B
712#define GL_DRAW_BUFFER7_NV 0x882C
713#define GL_DRAW_BUFFER8_NV 0x882D
714#define GL_DRAW_BUFFER9_NV 0x882E
715#define GL_DRAW_BUFFER10_NV 0x882F
716#define GL_DRAW_BUFFER11_NV 0x8830
717#define GL_DRAW_BUFFER12_NV 0x8831
718#define GL_DRAW_BUFFER13_NV 0x8832
719#define GL_DRAW_BUFFER14_NV 0x8833
720#define GL_DRAW_BUFFER15_NV 0x8834
721#define GL_COLOR_ATTACHMENT0_NV 0x8CE0
722#define GL_COLOR_ATTACHMENT1_NV 0x8CE1
723#define GL_COLOR_ATTACHMENT2_NV 0x8CE2
724#define GL_COLOR_ATTACHMENT3_NV 0x8CE3
725#define GL_COLOR_ATTACHMENT4_NV 0x8CE4
726#define GL_COLOR_ATTACHMENT5_NV 0x8CE5
727#define GL_COLOR_ATTACHMENT6_NV 0x8CE6
728#define GL_COLOR_ATTACHMENT7_NV 0x8CE7
729#define GL_COLOR_ATTACHMENT8_NV 0x8CE8
730#define GL_COLOR_ATTACHMENT9_NV 0x8CE9
731#define GL_COLOR_ATTACHMENT10_NV 0x8CEA
732#define GL_COLOR_ATTACHMENT11_NV 0x8CEB
733#define GL_COLOR_ATTACHMENT12_NV 0x8CEC
734#define GL_COLOR_ATTACHMENT13_NV 0x8CED
735#define GL_COLOR_ATTACHMENT14_NV 0x8CEE
736#define GL_COLOR_ATTACHMENT15_NV 0x8CEF
737#endif
738
739/* GL_NV_fbo_color_attachments */
740#ifndef GL_NV_fbo_color_attachments
741#define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF
742/* GL_COLOR_ATTACHMENT{0-15}_NV defined in GL_NV_draw_buffers already. */
743#endif
744
745/* GL_NV_fence */
746#ifndef GL_NV_fence
747#define GL_ALL_COMPLETED_NV 0x84F2
748#define GL_FENCE_STATUS_NV 0x84F3
749#define GL_FENCE_CONDITION_NV 0x84F4
750#endif
751
752/* GL_NV_read_buffer */
753#ifndef GL_NV_read_buffer
754#define GL_READ_BUFFER_NV 0x0C02
755#endif
756
757/* GL_NV_read_buffer_front */
758/* No new tokens introduced by this extension. */
759
760/* GL_NV_read_depth */
761/* No new tokens introduced by this extension. */
762
763/* GL_NV_read_depth_stencil */
764/* No new tokens introduced by this extension. */
765
766/* GL_NV_read_stencil */
767/* No new tokens introduced by this extension. */
768
769/* GL_NV_texture_compression_s3tc_update */
770/* No new tokens introduced by this extension. */
771
772/* GL_NV_texture_npot_2D_mipmap */
773/* No new tokens introduced by this extension. */
774
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800775/*------------------------------------------------------------------------*
776 * QCOM extension tokens
777 *------------------------------------------------------------------------*/
778
Ian Romanickb152a232011-09-20 15:54:52 -0700779/* GL_QCOM_alpha_test */
780#ifndef GL_QCOM_alpha_test
781#define GL_ALPHA_TEST_QCOM 0x0BC0
782#define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1
783#define GL_ALPHA_TEST_REF_QCOM 0x0BC2
784#endif
785
Matt Turner5c78ad82012-11-15 11:56:22 -0800786/* GL_QCOM_binning_control */
787#ifndef GL_QCOM_binning_control
788#define GL_BINNING_CONTROL_HINT_QCOM 0x8FB0
789#define GL_CPU_OPTIMIZED_QCOM 0x8FB1
790#define GL_GPU_OPTIMIZED_QCOM 0x8FB2
791#define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3
792#endif
793
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800794/* GL_QCOM_driver_control */
795/* No new tokens introduced by this extension. */
796
797/* GL_QCOM_extended_get */
798#ifndef GL_QCOM_extended_get
799#define GL_TEXTURE_WIDTH_QCOM 0x8BD2
800#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3
801#define GL_TEXTURE_DEPTH_QCOM 0x8BD4
802#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5
803#define GL_TEXTURE_FORMAT_QCOM 0x8BD6
804#define GL_TEXTURE_TYPE_QCOM 0x8BD7
805#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8
806#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9
807#define GL_TEXTURE_TARGET_QCOM 0x8BDA
808#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB
809#define GL_STATE_RESTORE 0x8BDC
810#endif
811
812/* GL_QCOM_extended_get2 */
813/* No new tokens introduced by this extension. */
814
815/* GL_QCOM_perfmon_global_mode */
816#ifndef GL_QCOM_perfmon_global_mode
817#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0
818#endif
819
820/* GL_QCOM_writeonly_rendering */
821#ifndef GL_QCOM_writeonly_rendering
822#define GL_WRITEONLY_RENDERING_QCOM 0x8823
823#endif
824
825/* GL_QCOM_tiled_rendering */
826#ifndef GL_QCOM_tiled_rendering
827#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001
828#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002
829#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004
830#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008
831#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010
832#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020
833#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040
834#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080
835#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100
836#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200
837#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400
838#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800
839#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000
840#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000
841#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000
842#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000
843#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000
844#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000
845#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000
846#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000
847#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000
848#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000
849#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000
850#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000
851#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000
852#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000
853#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000
854#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000
855#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000
856#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000
857#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000
858#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000
859#endif
860
861/*------------------------------------------------------------------------*
Ian Romanickb152a232011-09-20 15:54:52 -0700862 * VIV extension tokens
863 *------------------------------------------------------------------------*/
864
865/* GL_VIV_shader_binary */
866#ifndef GL_VIV_shader_binary
867#define GL_SHADER_BINARY_VIV 0x8FC4
868#endif
869
870/*------------------------------------------------------------------------*
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800871 * End of extension tokens, start of corresponding extension functions
872 *------------------------------------------------------------------------*/
873
Brian Paul0ebc94d2008-06-04 10:04:31 -0600874/*------------------------------------------------------------------------*
875 * OES extension functions
876 *------------------------------------------------------------------------*/
877
878/* GL_OES_compressed_ETC1_RGB8_texture */
879#ifndef GL_OES_compressed_ETC1_RGB8_texture
880#define GL_OES_compressed_ETC1_RGB8_texture 1
881#endif
882
883/* GL_OES_compressed_paletted_texture */
884#ifndef GL_OES_compressed_paletted_texture
885#define GL_OES_compressed_paletted_texture 1
886#endif
887
Brian Paul0ebc94d2008-06-04 10:04:31 -0600888/* GL_OES_depth24 */
889#ifndef GL_OES_depth24
890#define GL_OES_depth24 1
891#endif
892
893/* GL_OES_depth32 */
894#ifndef GL_OES_depth32
895#define GL_OES_depth32 1
896#endif
897
898/* GL_OES_depth_texture */
899#ifndef GL_OES_depth_texture
900#define GL_OES_depth_texture 1
901#endif
902
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800903/* GL_OES_EGL_image */
904#ifndef GL_OES_EGL_image
905#define GL_OES_EGL_image 1
906#ifdef GL_GLEXT_PROTOTYPES
907GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
908GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
909#endif
910typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
911typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
912#endif
913
Ian Romanickb152a232011-09-20 15:54:52 -0700914/* GL_OES_EGL_image_external */
915#ifndef GL_OES_EGL_image_external
916#define GL_OES_EGL_image_external 1
917/* glEGLImageTargetTexture2DOES defined in GL_OES_EGL_image already. */
918#endif
919
Brian Paul0ebc94d2008-06-04 10:04:31 -0600920/* GL_OES_element_index_uint */
921#ifndef GL_OES_element_index_uint
922#define GL_OES_element_index_uint 1
923#endif
924
925/* GL_OES_fbo_render_mipmap */
926#ifndef GL_OES_fbo_render_mipmap
927#define GL_OES_fbo_render_mipmap 1
928#endif
929
930/* GL_OES_fragment_precision_high */
931#ifndef GL_OES_fragment_precision_high
932#define GL_OES_fragment_precision_high 1
933#endif
934
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800935/* GL_OES_get_program_binary */
936#ifndef GL_OES_get_program_binary
937#define GL_OES_get_program_binary 1
938#ifdef GL_GLEXT_PROTOTYPES
939GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
940GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
941#endif
942typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
943typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
944#endif
945
Brian Paul0ebc94d2008-06-04 10:04:31 -0600946/* GL_OES_mapbuffer */
947#ifndef GL_OES_mapbuffer
948#define GL_OES_mapbuffer 1
949#ifdef GL_GLEXT_PROTOTYPES
950GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access);
951GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target);
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800952GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid** params);
Brian Paul0ebc94d2008-06-04 10:04:31 -0600953#endif
954typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
955typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target);
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800956typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid** params);
Brian Paul0ebc94d2008-06-04 10:04:31 -0600957#endif
958
959/* GL_OES_packed_depth_stencil */
960#ifndef GL_OES_packed_depth_stencil
961#define GL_OES_packed_depth_stencil 1
962#endif
963
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -0400964/* GL_OES_required_internalformat */
965#ifndef GL_OES_required_internalformat
966#define GL_OES_required_internalformat 1
967#endif
968
Brian Paul0ebc94d2008-06-04 10:04:31 -0600969/* GL_OES_rgb8_rgba8 */
970#ifndef GL_OES_rgb8_rgba8
971#define GL_OES_rgb8_rgba8 1
972#endif
973
974/* GL_OES_standard_derivatives */
975#ifndef GL_OES_standard_derivatives
976#define GL_OES_standard_derivatives 1
977#endif
978
979/* GL_OES_stencil1 */
980#ifndef GL_OES_stencil1
981#define GL_OES_stencil1 1
982#endif
983
984/* GL_OES_stencil4 */
985#ifndef GL_OES_stencil4
986#define GL_OES_stencil4 1
987#endif
988
Matt Turner5c78ad82012-11-15 11:56:22 -0800989#ifndef GL_OES_surfaceless_context
990#define GL_OES_surfaceless_context 1
991#endif
992
Brian Paul0ebc94d2008-06-04 10:04:31 -0600993/* GL_OES_texture_3D */
994#ifndef GL_OES_texture_3D
995#define GL_OES_texture_3D 1
996#ifdef GL_GLEXT_PROTOTYPES
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800997GL_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);
998GL_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 -0600999GL_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 +08001000GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
1001GL_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 -06001002GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
1003#endif
1004typedef 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 +08001005typedef 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 -06001006typedef 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 +08001007typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
1008typedef 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 -06001009typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
1010#endif
1011
Brian Paul0ebc94d2008-06-04 10:04:31 -06001012/* GL_OES_texture_float */
1013#ifndef GL_OES_texture_float
1014#define GL_OES_texture_float 1
1015#endif
1016
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001017/* GL_OES_texture_float_linear */
1018#ifndef GL_OES_texture_float_linear
1019#define GL_OES_texture_float_linear 1
1020#endif
1021
Brian Paul0ebc94d2008-06-04 10:04:31 -06001022/* GL_OES_texture_half_float */
1023#ifndef GL_OES_texture_half_float
1024#define GL_OES_texture_half_float 1
1025#endif
1026
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001027/* GL_OES_texture_half_float_linear */
1028#ifndef GL_OES_texture_half_float_linear
1029#define GL_OES_texture_half_float_linear 1
1030#endif
1031
Brian Paul0ebc94d2008-06-04 10:04:31 -06001032/* GL_OES_texture_npot */
1033#ifndef GL_OES_texture_npot
1034#define GL_OES_texture_npot 1
1035#endif
1036
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001037/* GL_OES_vertex_array_object */
1038#ifndef GL_OES_vertex_array_object
1039#define GL_OES_vertex_array_object 1
1040#ifdef GL_GLEXT_PROTOTYPES
1041GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array);
1042GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays);
1043GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays);
1044GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array);
1045#endif
1046typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array);
1047typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays);
1048typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays);
1049typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array);
1050#endif
1051
Brian Paul0ebc94d2008-06-04 10:04:31 -06001052/* GL_OES_vertex_half_float */
1053#ifndef GL_OES_vertex_half_float
1054#define GL_OES_vertex_half_float 1
1055#endif
1056
1057/* GL_OES_vertex_type_10_10_10_2 */
1058#ifndef GL_OES_vertex_type_10_10_10_2
1059#define GL_OES_vertex_type_10_10_10_2 1
1060#endif
1061
Brian Paul0ebc94d2008-06-04 10:04:31 -06001062/*------------------------------------------------------------------------*
Matt Turner5c78ad82012-11-15 11:56:22 -08001063 * KHR extension functions
1064 *------------------------------------------------------------------------*/
1065
1066#ifndef GL_KHR_debug
1067#define GL_KHR_debug 1
1068#ifdef GL_GLEXT_PROTOTYPES
1069GL_APICALL void GL_APIENTRY glDebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
1070GL_APICALL void GL_APIENTRY glDebugMessageInsert (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
1071GL_APICALL void GL_APIENTRY glDebugMessageCallback (GLDEBUGPROC callback, const void *userParam);
1072GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLog (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
1073GL_APICALL void GL_APIENTRY glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message);
1074GL_APICALL void GL_APIENTRY glPopDebugGroup (void);
1075GL_APICALL void GL_APIENTRY glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
1076GL_APICALL void GL_APIENTRY glGetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
1077GL_APICALL void GL_APIENTRY glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label);
1078GL_APICALL void GL_APIENTRY glGetObjectPtrLabel (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
1079GL_APICALL void GL_APIENTRY glGetPointerv (GLenum pname, void **params);
1080#endif
1081typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
1082typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
1083typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam);
1084typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
1085typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message);
1086typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPPROC) (void);
1087typedef void (GL_APIENTRYP PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
1088typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
1089typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar *label);
1090typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
1091typedef void (GL_APIENTRYP PFNGLGETPOINTERVPROC) (GLenum pname, void **params);
1092#endif
1093
1094#ifndef GL_KHR_texture_compression_astc_ldr
1095#define GL_KHR_texture_compression_astc_ldr 1
1096#endif
1097
1098
1099/*------------------------------------------------------------------------*
Brian Paul0ebc94d2008-06-04 10:04:31 -06001100 * AMD extension functions
1101 *------------------------------------------------------------------------*/
1102
1103/* GL_AMD_compressed_3DC_texture */
1104#ifndef GL_AMD_compressed_3DC_texture
1105#define GL_AMD_compressed_3DC_texture 1
1106#endif
1107
1108/* GL_AMD_compressed_ATC_texture */
1109#ifndef GL_AMD_compressed_ATC_texture
1110#define GL_AMD_compressed_ATC_texture 1
1111#endif
1112
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001113/* AMD_performance_monitor */
1114#ifndef GL_AMD_performance_monitor
1115#define GL_AMD_performance_monitor 1
1116#ifdef GL_GLEXT_PROTOTYPES
1117GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
1118GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
1119GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
1120GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
1121GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
1122GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors);
1123GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors);
1124GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
1125GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor);
1126GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor);
1127GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
1128#endif
1129typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
1130typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
1131typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
1132typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
1133typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
1134typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
1135typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
1136typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
1137typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
1138typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
1139typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
1140#endif
1141
Brian Paul0ebc94d2008-06-04 10:04:31 -06001142/* GL_AMD_program_binary_Z400 */
1143#ifndef GL_AMD_program_binary_Z400
1144#define GL_AMD_program_binary_Z400 1
1145#endif
1146
1147/*------------------------------------------------------------------------*
Ian Romanickb152a232011-09-20 15:54:52 -07001148 * ANGLE extension functions
1149 *------------------------------------------------------------------------*/
1150
1151/* GL_ANGLE_framebuffer_blit */
1152#ifndef GL_ANGLE_framebuffer_blit
1153#define GL_ANGLE_framebuffer_blit 1
1154#ifdef GL_GLEXT_PROTOTYPES
1155GL_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);
1156#endif
1157typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
1158#endif
1159
1160/* GL_ANGLE_framebuffer_multisample */
1161#ifndef GL_ANGLE_framebuffer_multisample
1162#define GL_ANGLE_framebuffer_multisample 1
1163#ifdef GL_GLEXT_PROTOTYPES
1164GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1165#endif
1166typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1167#endif
1168
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001169#ifndef GL_ANGLE_instanced_arrays
1170#ifdef GL_GLEXT_PROTOTYPES
1171GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLE (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
1172GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLE (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
1173GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLE (GLuint index, GLuint divisor);
1174#endif
1175typedef void (GL_APIENTRYP PFLGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
1176typedef void (GL_APIENTRYP PFLGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
1177typedef void (GL_APIENTRYP PFLGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor);
1178#endif
1179
1180/* GL_ANGLE_pack_reverse_row_order */
1181#ifndef GL_ANGLE_pack_reverse_row_order
1182#define GL_ANGLE_pack_reverse_row_order 1
1183#endif
1184
1185/* GL_ANGLE_texture_compression_dxt3 */
1186#ifndef GL_ANGLE_texture_compression_dxt3
1187#define GL_ANGLE_texture_compression_dxt3 1
1188#endif
1189
1190/* GL_ANGLE_texture_compression_dxt5 */
1191#ifndef GL_ANGLE_texture_compression_dxt5
1192#define GL_ANGLE_texture_compression_dxt5 1
1193#endif
1194
1195/* GL_ANGLE_texture_usage */
1196#ifndef GL_ANGLE_texture_usage
1197#define GL_ANGLE_texture_usage 1
1198#endif
1199
1200#ifndef GL_ANGLE_translated_shader_source
1201#define GL_ANGLE_translated_shader_source 1
1202#ifdef GL_GLEXT_PROTOTYPES
1203GL_APICALL void GL_APIENTRY glGetTranslatedShaderSourceANGLE (GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source);
1204#endif
1205typedef void (GL_APIENTRYP PFLGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source);
1206#endif
1207
Ian Romanickb152a232011-09-20 15:54:52 -07001208/*------------------------------------------------------------------------*
1209 * APPLE extension functions
1210 *------------------------------------------------------------------------*/
1211
Matt Turner5c78ad82012-11-15 11:56:22 -08001212/* GL_APPLE_copy_texture_levels */
1213#ifndef GL_APPLE_copy_texture_levels
1214#define GL_APPLE_copy_texture_levels 1
1215#ifdef GL_GLEXT_PROTOTYPES
1216GL_APICALL void GL_APIENTRY glCopyTextureLevelsAPPLE (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount);
1217#endif
1218typedef void (GL_APIENTRYP PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount);
Ian Romanickb152a232011-09-20 15:54:52 -07001219#endif
1220
1221/* GL_APPLE_framebuffer_multisample */
1222#ifndef GL_APPLE_framebuffer_multisample
1223#define GL_APPLE_framebuffer_multisample 1
1224#ifdef GL_GLEXT_PROTOTYPES
1225GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
1226GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void);
1227#endif /* GL_GLEXT_PROTOTYPES */
1228typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1229typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void);
1230#endif
1231
Matt Turner5c78ad82012-11-15 11:56:22 -08001232/* GL_APPLE_rgb_422 */
1233#ifndef GL_APPLE_rgb_422
1234#define GL_APPLE_rgb_422 1
1235#endif
1236
1237/* GL_APPLE_sync */
1238#ifndef GL_APPLE_sync
1239#define GL_APPLE_sync 1
1240#ifdef GL_GLEXT_PROTOTYPES
1241GL_APICALL GLsync GL_APIENTRY glFenceSyncAPPLE (GLenum condition, GLbitfield flags);
1242GL_APICALL GLboolean GL_APIENTRY glIsSyncAPPLE (GLsync sync);
1243GL_APICALL void GL_APIENTRY glDeleteSyncAPPLE (GLsync sync);
1244GL_APICALL GLenum GL_APIENTRY glClientWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout);
1245GL_APICALL void GL_APIENTRY glWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout);
1246GL_APICALL void GL_APIENTRY glGetInteger64vAPPLE (GLenum pname, GLint64 *params);
1247GL_APICALL void GL_APIENTRY glGetSyncivAPPLE (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
1248#endif
1249typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags);
1250typedef GLboolean (GL_APIENTRYP PFNGLISSYNCAPPLEPROC) (GLsync sync);
1251typedef void (GL_APIENTRYP PFNGLDELETESYNCAPPLEPROC) (GLsync sync);
1252typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
1253typedef void (GL_APIENTRYP PFNGLWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
1254typedef void (GL_APIENTRYP PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64 *params);
1255typedef void (GL_APIENTRYP PFNGLGETSYNCIVAPPLEPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
1256#endif
1257
Ian Romanickb152a232011-09-20 15:54:52 -07001258/* GL_APPLE_texture_format_BGRA8888 */
1259#ifndef GL_APPLE_texture_format_BGRA8888
1260#define GL_APPLE_texture_format_BGRA8888 1
1261#endif
1262
1263/* GL_APPLE_texture_max_level */
1264#ifndef GL_APPLE_texture_max_level
1265#define GL_APPLE_texture_max_level 1
1266#endif
1267
1268/*------------------------------------------------------------------------*
1269 * ARM extension functions
1270 *------------------------------------------------------------------------*/
1271
Matt Turner5c78ad82012-11-15 11:56:22 -08001272/* GL_ARM_mali_program_binary */
1273#ifndef GL_ARM_mali_program_binary
1274#define GL_ARM_mali_program_binary 1
1275#endif
1276
Ian Romanickb152a232011-09-20 15:54:52 -07001277/* GL_ARM_mali_shader_binary */
1278#ifndef GL_ARM_mali_shader_binary
1279#define GL_ARM_mali_shader_binary 1
1280#endif
1281
1282/* GL_ARM_rgba8 */
1283#ifndef GL_ARM_rgba8
1284#define GL_ARM_rgba8 1
1285#endif
1286
1287/*------------------------------------------------------------------------*
Brian Paul0ebc94d2008-06-04 10:04:31 -06001288 * EXT extension functions
1289 *------------------------------------------------------------------------*/
1290
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001291/* GL_EXT_blend_minmax */
1292#ifndef GL_EXT_blend_minmax
1293#define GL_EXT_blend_minmax 1
1294#endif
1295
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001296/* GL_EXT_color_buffer_half_float */
1297#ifndef GL_EXT_color_buffer_half_float
1298#define GL_EXT_color_buffer_half_float 1
1299#endif
1300
1301/* GL_EXT_debug_label */
1302#ifndef GL_EXT_debug_label
1303#define GL_EXT_debug_label 1
1304#ifdef GL_GLEXT_PROTOTYPES
1305GL_APICALL void GL_APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label);
1306GL_APICALL void GL_APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
1307#endif
1308typedef void (GL_APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label);
1309typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
1310#endif
1311
1312/* GL_EXT_debug_marker */
1313#ifndef GL_EXT_debug_marker
1314#define GL_EXT_debug_marker 1
1315#ifdef GL_GLEXT_PROTOTYPES
1316GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker);
1317GL_APICALL void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker);
1318GL_APICALL void GL_APIENTRY glPopGroupMarkerEXT (void);
1319#endif
1320typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker);
1321typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker);
1322typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void);
1323#endif
1324
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001325/* GL_EXT_discard_framebuffer */
1326#ifndef GL_EXT_discard_framebuffer
1327#define GL_EXT_discard_framebuffer 1
1328#ifdef GL_GLEXT_PROTOTYPES
1329GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments);
1330#endif
1331typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
1332#endif
1333
Matt Turner5c78ad82012-11-15 11:56:22 -08001334/* GL_EXT_map_buffer_range */
1335#ifndef GL_EXT_map_buffer_range
1336#define GL_EXT_map_buffer_range 1
1337#ifdef GL_GLEXT_PROTOTYPES
1338GL_APICALL void* GL_APIENTRY glMapBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
1339GL_APICALL void GL_APIENTRY glFlushMappedBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length);
1340#endif
1341typedef void* (GL_APIENTRYP PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
1342typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
1343#endif
1344
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001345/* GL_EXT_multisampled_render_to_texture */
1346#ifndef GL_EXT_multisampled_render_to_texture
1347#define GL_EXT_multisampled_render_to_texture 1
1348#ifdef GL_GLEXT_PROTOTYPES
1349GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
1350GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
1351#endif
1352typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1353typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
1354#endif
1355
Matt Turner5c78ad82012-11-15 11:56:22 -08001356/* GL_EXT_multiview_draw_buffers */
1357#ifndef GL_EXT_multiview_draw_buffers
1358#define GL_EXT_multiview_draw_buffers 1
1359#ifdef GL_GLEXT_PROTOTYPES
1360GL_APICALL void GL_APIENTRY glReadBufferIndexedEXT (GLenum src, GLint index);
1361GL_APICALL void GL_APIENTRY glDrawBuffersIndexedEXT (GLint n, const GLenum *location, const GLint *indices);
1362GL_APICALL void GL_APIENTRY glGetIntegeri_vEXT (GLenum target, GLuint index, GLint *data);
1363#endif
1364typedef void (GL_APIENTRYP PFNGLREADBUFFERINDEXEDEXTPROC) (GLenum src, GLint index);
1365typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSINDEXEDEXTPROC) (GLint n, const GLenum *location, const GLint *indices);
1366typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VEXTPROC) (GLenum target, GLuint index, GLint *data);
1367#endif
1368
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001369#ifndef GL_EXT_multi_draw_arrays
1370#define GL_EXT_multi_draw_arrays 1
1371#ifdef GL_GLEXT_PROTOTYPES
1372GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei);
1373GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
1374#endif /* GL_GLEXT_PROTOTYPES */
1375typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
1376typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
1377#endif
1378
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001379/* GL_EXT_occlusion_query_boolean */
1380#ifndef GL_EXT_occlusion_query_boolean
1381#define GL_EXT_occlusion_query_boolean 1
1382#ifdef GL_GLEXT_PROTOTYPES
1383GL_APICALL void GL_APIENTRY glGenQueriesEXT (GLsizei n, GLuint *ids);
1384GL_APICALL void GL_APIENTRY glDeleteQueriesEXT (GLsizei n, const GLuint *ids);
1385GL_APICALL GLboolean GL_APIENTRY glIsQueryEXT (GLuint id);
1386GL_APICALL void GL_APIENTRY glBeginQueryEXT (GLenum target, GLuint id);
1387GL_APICALL void GL_APIENTRY glEndQueryEXT (GLenum target);
1388GL_APICALL void GL_APIENTRY glGetQueryivEXT (GLenum target, GLenum pname, GLint *params);
1389GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXT (GLuint id, GLenum pname, GLuint *params);
1390#endif
1391typedef void (GL_APIENTRYP PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint *ids);
1392typedef void (GL_APIENTRYP PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint *ids);
1393typedef GLboolean (GL_APIENTRYP PFNGLISQUERYEXTPROC) (GLuint id);
1394typedef void (GL_APIENTRYP PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id);
1395typedef void (GL_APIENTRYP PFNGLENDQUERYEXTPROC) (GLenum target);
1396typedef void (GL_APIENTRYP PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
1397typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint *params);
1398#endif
1399
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001400/* GL_EXT_read_format_bgra */
1401#ifndef GL_EXT_read_format_bgra
1402#define GL_EXT_read_format_bgra 1
1403#endif
1404
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001405/* GL_EXT_robustness */
1406#ifndef GL_EXT_robustness
1407#define GL_EXT_robustness 1
1408#ifdef GL_GLEXT_PROTOTYPES
1409GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void);
1410GL_APICALL void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
1411GL_APICALL void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, float *params);
1412GL_APICALL void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params);
1413#endif
1414typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void);
1415typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
1416typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, float *params);
1417typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params);
1418#endif
1419
1420/* GL_EXT_separate_shader_objects */
1421#ifndef GL_EXT_separate_shader_objects
1422#define GL_EXT_separate_shader_objects 1
1423#ifdef GL_GLEXT_PROTOTYPES
1424GL_APICALL void GL_APIENTRY glUseProgramStagesEXT (GLuint pipeline, GLbitfield stages, GLuint program);
1425GL_APICALL void GL_APIENTRY glActiveShaderProgramEXT (GLuint pipeline, GLuint program);
1426GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramvEXT (GLenum type, GLsizei count, const GLchar **strings);
1427GL_APICALL void GL_APIENTRY glBindProgramPipelineEXT (GLuint pipeline);
1428GL_APICALL void GL_APIENTRY glDeleteProgramPipelinesEXT (GLsizei n, const GLuint *pipelines);
1429GL_APICALL void GL_APIENTRY glGenProgramPipelinesEXT (GLsizei n, GLuint *pipelines);
1430GL_APICALL GLboolean GL_APIENTRY glIsProgramPipelineEXT (GLuint pipeline);
1431GL_APICALL void GL_APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value);
1432GL_APICALL void GL_APIENTRY glGetProgramPipelineivEXT (GLuint pipeline, GLenum pname, GLint *params);
1433GL_APICALL void GL_APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint x);
1434GL_APICALL void GL_APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint x, GLint y);
1435GL_APICALL void GL_APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z);
1436GL_APICALL void GL_APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
1437GL_APICALL void GL_APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat x);
1438GL_APICALL void GL_APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat x, GLfloat y);
1439GL_APICALL void GL_APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
1440GL_APICALL void GL_APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1441GL_APICALL void GL_APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
1442GL_APICALL void GL_APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
1443GL_APICALL void GL_APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
1444GL_APICALL void GL_APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
1445GL_APICALL void GL_APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1446GL_APICALL void GL_APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1447GL_APICALL void GL_APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1448GL_APICALL void GL_APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1449GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1450GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1451GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1452GL_APICALL void GL_APIENTRY glValidateProgramPipelineEXT (GLuint pipeline);
1453GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLogEXT (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
1454#endif
1455typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESEXTPROC) (GLuint pipeline, GLbitfield stages, GLuint program);
1456typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMEXTPROC) (GLuint pipeline, GLuint program);
1457typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVEXTPROC) (GLenum type, GLsizei count, const GLchar **strings);
1458typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
1459typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESEXTPROC) (GLsizei n, const GLuint *pipelines);
1460typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESEXTPROC) (GLsizei n, GLuint *pipelines);
1461typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
1462typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value);
1463typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVEXTPROC) (GLuint pipeline, GLenum pname, GLint *params);
1464typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint x);
1465typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint x, GLint y);
1466typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z);
1467typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
1468typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat x);
1469typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y);
1470typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
1471typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1472typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
1473typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
1474typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
1475typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
1476typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1477typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1478typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1479typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1480typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1481typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1482typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1483typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
1484typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
1485#endif
1486
Matt Turner5c78ad82012-11-15 11:56:22 -08001487/* GL_EXT_shader_framebuffer_fetch */
1488#ifndef GL_EXT_shader_framebuffer_fetch
1489#define GL_EXT_shader_framebuffer_fetch 1
1490#endif
1491
Ian Romanickb152a232011-09-20 15:54:52 -07001492/* GL_EXT_shader_texture_lod */
1493#ifndef GL_EXT_shader_texture_lod
1494#define GL_EXT_shader_texture_lod 1
1495#endif
1496
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001497/* GL_EXT_shadow_samplers */
1498#ifndef GL_EXT_shadow_samplers
1499#define GL_EXT_shadow_samplers 1
1500#endif
1501
1502/* GL_EXT_sRGB */
1503#ifndef GL_EXT_sRGB
1504#define GL_EXT_sRGB 1
1505#endif
1506
1507/* GL_EXT_texture_compression_dxt1 */
1508#ifndef GL_EXT_texture_compression_dxt1
1509#define GL_EXT_texture_compression_dxt1 1
1510#endif
1511
Brian Paul0ebc94d2008-06-04 10:04:31 -06001512/* GL_EXT_texture_filter_anisotropic */
1513#ifndef GL_EXT_texture_filter_anisotropic
1514#define GL_EXT_texture_filter_anisotropic 1
1515#endif
1516
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001517/* GL_EXT_texture_format_BGRA8888 */
1518#ifndef GL_EXT_texture_format_BGRA8888
1519#define GL_EXT_texture_format_BGRA8888 1
1520#endif
1521
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001522/* GL_EXT_texture_rg */
1523#ifndef GL_EXT_texture_rg
1524#define GL_EXT_texture_rg 1
1525#endif
1526
1527/* GL_EXT_texture_storage */
1528#ifndef GL_EXT_texture_storage
1529#define GL_EXT_texture_storage 1
1530#ifdef GL_GLEXT_PROTOTYPES
1531GL_APICALL void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
1532GL_APICALL void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
1533GL_APICALL void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
1534GL_APICALL void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
1535GL_APICALL void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
1536GL_APICALL void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
1537#endif
1538typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
1539typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
1540typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
1541typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
1542typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
1543typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
1544#endif
1545
Brian Paul0ebc94d2008-06-04 10:04:31 -06001546/* GL_EXT_texture_type_2_10_10_10_REV */
1547#ifndef GL_EXT_texture_type_2_10_10_10_REV
1548#define GL_EXT_texture_type_2_10_10_10_REV 1
1549#endif
1550
Ian Romanickb152a232011-09-20 15:54:52 -07001551/* GL_EXT_unpack_subimage */
1552#ifndef GL_EXT_unpack_subimage
1553#define GL_EXT_unpack_subimage 1
1554#endif
1555
1556/*------------------------------------------------------------------------*
1557 * DMP extension functions
1558 *------------------------------------------------------------------------*/
1559
1560/* GL_DMP_shader_binary */
1561#ifndef GL_DMP_shader_binary
1562#define GL_DMP_shader_binary 1
1563#endif
1564
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001565/*------------------------------------------------------------------------*
Kristian Høgsberg3ed8d422012-07-03 20:47:04 -04001566 * FJ extension functions
1567 *------------------------------------------------------------------------*/
1568
1569/* GL_FJ_shader_binary_GCCSO */
1570#ifndef GL_FJ_shader_binary_GCCSO
1571#define GL_FJ_shader_binary_GCCSO 1
1572#endif
1573
1574/*------------------------------------------------------------------------*
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001575 * IMG extension functions
1576 *------------------------------------------------------------------------*/
1577
1578/* GL_IMG_program_binary */
1579#ifndef GL_IMG_program_binary
1580#define GL_IMG_program_binary 1
1581#endif
1582
1583/* GL_IMG_read_format */
1584#ifndef GL_IMG_read_format
1585#define GL_IMG_read_format 1
1586#endif
1587
1588/* GL_IMG_shader_binary */
1589#ifndef GL_IMG_shader_binary
1590#define GL_IMG_shader_binary 1
1591#endif
1592
1593/* GL_IMG_texture_compression_pvrtc */
1594#ifndef GL_IMG_texture_compression_pvrtc
1595#define GL_IMG_texture_compression_pvrtc 1
1596#endif
1597
1598/* GL_IMG_multisampled_render_to_texture */
1599#ifndef GL_IMG_multisampled_render_to_texture
1600#define GL_IMG_multisampled_render_to_texture 1
1601#ifdef GL_GLEXT_PROTOTYPES
1602GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
1603GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
1604#endif
Matt Turner5c78ad82012-11-15 11:56:22 -08001605typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1606typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001607#endif
1608
1609/*------------------------------------------------------------------------*
1610 * NV extension functions
1611 *------------------------------------------------------------------------*/
1612
Ian Romanickb152a232011-09-20 15:54:52 -07001613/* GL_NV_coverage_sample */
1614#ifndef GL_NV_coverage_sample
1615#define GL_NV_coverage_sample 1
1616#ifdef GL_GLEXT_PROTOTYPES
1617GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask);
1618GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation);
1619#endif
1620typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask);
1621typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation);
1622#endif
1623
1624/* GL_NV_depth_nonlinear */
1625#ifndef GL_NV_depth_nonlinear
1626#define GL_NV_depth_nonlinear 1
1627#endif
1628
1629/* GL_NV_draw_buffers */
1630#ifndef GL_NV_draw_buffers
1631#define GL_NV_draw_buffers 1
1632#ifdef GL_GLEXT_PROTOTYPES
1633GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs);
1634#endif
1635typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum *bufs);
1636#endif
1637
1638/* GL_NV_fbo_color_attachments */
1639#ifndef GL_NV_fbo_color_attachments
1640#define GL_NV_fbo_color_attachments 1
1641#endif
1642
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001643/* GL_NV_fence */
1644#ifndef GL_NV_fence
1645#define GL_NV_fence 1
1646#ifdef GL_GLEXT_PROTOTYPES
1647GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *);
1648GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *);
1649GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint);
1650GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint);
1651GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *);
1652GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint);
1653GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint, GLenum);
1654#endif
1655typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
1656typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
1657typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
1658typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
1659typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
1660typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
1661typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
1662#endif
1663
Ian Romanickb152a232011-09-20 15:54:52 -07001664/* GL_NV_read_buffer */
1665#ifndef GL_NV_read_buffer
1666#define GL_NV_read_buffer 1
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001667#ifdef GL_GLEXT_PROTOTYPES
Ian Romanickb152a232011-09-20 15:54:52 -07001668GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode);
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001669#endif
Ian Romanickb152a232011-09-20 15:54:52 -07001670typedef void (GL_APIENTRYP PFNGLREADBUFFERNVPROC) (GLenum mode);
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001671#endif
1672
Ian Romanickb152a232011-09-20 15:54:52 -07001673/* GL_NV_read_buffer_front */
1674#ifndef GL_NV_read_buffer_front
1675#define GL_NV_read_buffer_front 1
1676#endif
1677
1678/* GL_NV_read_depth */
1679#ifndef GL_NV_read_depth
1680#define GL_NV_read_depth 1
1681#endif
1682
1683/* GL_NV_read_depth_stencil */
1684#ifndef GL_NV_read_depth_stencil
1685#define GL_NV_read_depth_stencil 1
1686#endif
1687
1688/* GL_NV_read_stencil */
1689#ifndef GL_NV_read_stencil
1690#define GL_NV_read_stencil 1
1691#endif
1692
1693/* GL_NV_texture_compression_s3tc_update */
1694#ifndef GL_NV_texture_compression_s3tc_update
1695#define GL_NV_texture_compression_s3tc_update 1
1696#endif
1697
1698/* GL_NV_texture_npot_2D_mipmap */
1699#ifndef GL_NV_texture_npot_2D_mipmap
1700#define GL_NV_texture_npot_2D_mipmap 1
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001701#endif
1702
1703/*------------------------------------------------------------------------*
1704 * QCOM extension functions
1705 *------------------------------------------------------------------------*/
1706
Ian Romanickb152a232011-09-20 15:54:52 -07001707/* GL_QCOM_alpha_test */
1708#ifndef GL_QCOM_alpha_test
1709#define GL_QCOM_alpha_test 1
1710#ifdef GL_GLEXT_PROTOTYPES
1711GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref);
1712#endif
1713typedef void (GL_APIENTRYP PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref);
1714#endif
1715
Matt Turner5c78ad82012-11-15 11:56:22 -08001716/* GL_QCOM_binning_control */
1717#ifndef GL_QCOM_binning_control
1718#define GL_QCOM_binning_control 1
1719#endif
1720
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001721/* GL_QCOM_driver_control */
1722#ifndef GL_QCOM_driver_control
1723#define GL_QCOM_driver_control 1
1724#ifdef GL_GLEXT_PROTOTYPES
1725GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls);
1726GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
1727GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl);
1728GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl);
1729#endif
1730typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls);
1731typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
1732typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
1733typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
1734#endif
1735
1736/* GL_QCOM_extended_get */
1737#ifndef GL_QCOM_extended_get
1738#define GL_QCOM_extended_get 1
1739#ifdef GL_GLEXT_PROTOTYPES
1740GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures);
1741GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
1742GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
1743GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
1744GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
1745GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param);
1746GL_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);
1747GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params);
1748#endif
1749typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures);
1750typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
1751typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
1752typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
1753typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
1754typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
1755typedef 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);
1756typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, GLvoid **params);
1757#endif
1758
1759/* GL_QCOM_extended_get2 */
1760#ifndef GL_QCOM_extended_get2
1761#define GL_QCOM_extended_get2 1
1762#ifdef GL_GLEXT_PROTOTYPES
1763GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders);
1764GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
1765GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program);
1766GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
1767#endif
1768typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders);
1769typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
1770typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
1771typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
1772#endif
1773
1774/* GL_QCOM_perfmon_global_mode */
1775#ifndef GL_QCOM_perfmon_global_mode
1776#define GL_QCOM_perfmon_global_mode 1
1777#endif
1778
1779/* GL_QCOM_writeonly_rendering */
1780#ifndef GL_QCOM_writeonly_rendering
1781#define GL_QCOM_writeonly_rendering 1
1782#endif
1783
1784/* GL_QCOM_tiled_rendering */
1785#ifndef GL_QCOM_tiled_rendering
1786#define GL_QCOM_tiled_rendering 1
1787#ifdef GL_GLEXT_PROTOTYPES
1788GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
1789GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask);
1790#endif
1791typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
1792typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask);
1793#endif
1794
Ian Romanickb152a232011-09-20 15:54:52 -07001795/*------------------------------------------------------------------------*
1796 * VIV extension tokens
1797 *------------------------------------------------------------------------*/
1798
1799/* GL_VIV_shader_binary */
1800#ifndef GL_VIV_shader_binary
1801#define GL_VIV_shader_binary 1
1802#endif
1803
Brian Paul0ebc94d2008-06-04 10:04:31 -06001804#ifdef __cplusplus
1805}
1806#endif
1807
1808#endif /* __gl2ext_h_ */