Skip to main content

sapp_kms/
gl3.rs

1/* automatically generated by rust-bindgen */
2
3pub const __gles2_gl3_h_: u32 = 1;
4pub const _STDINT_H: u32 = 1;
5pub const _FEATURES_H: u32 = 1;
6pub const _DEFAULT_SOURCE: u32 = 1;
7pub const __USE_ISOC11: u32 = 1;
8pub const __USE_ISOC99: u32 = 1;
9pub const __USE_ISOC95: u32 = 1;
10pub const __USE_POSIX_IMPLICITLY: u32 = 1;
11pub const _POSIX_SOURCE: u32 = 1;
12pub const _POSIX_C_SOURCE: u32 = 200809;
13pub const __USE_POSIX: u32 = 1;
14pub const __USE_POSIX2: u32 = 1;
15pub const __USE_POSIX199309: u32 = 1;
16pub const __USE_POSIX199506: u32 = 1;
17pub const __USE_XOPEN2K: u32 = 1;
18pub const __USE_XOPEN2K8: u32 = 1;
19pub const _ATFILE_SOURCE: u32 = 1;
20pub const __USE_MISC: u32 = 1;
21pub const __USE_ATFILE: u32 = 1;
22pub const __USE_FORTIFY_LEVEL: u32 = 0;
23pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
24pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
25pub const _STDC_PREDEF_H: u32 = 1;
26pub const __STDC_IEC_559__: u32 = 1;
27pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
28pub const __STDC_ISO_10646__: u32 = 201706;
29pub const __GNU_LIBRARY__: u32 = 6;
30pub const __GLIBC__: u32 = 2;
31pub const __GLIBC_MINOR__: u32 = 30;
32pub const _SYS_CDEFS_H: u32 = 1;
33pub const __glibc_c99_flexarr_available: u32 = 1;
34pub const __WORDSIZE: u32 = 64;
35pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
36pub const __SYSCALL_WORDSIZE: u32 = 64;
37pub const __HAVE_GENERIC_SELECTION: u32 = 1;
38pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
39pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
40pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
41pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
42pub const _BITS_TYPES_H: u32 = 1;
43pub const __TIMESIZE: u32 = 64;
44pub const _BITS_TYPESIZES_H: u32 = 1;
45pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
46pub const __INO_T_MATCHES_INO64_T: u32 = 1;
47pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
48pub const __FD_SETSIZE: u32 = 1024;
49pub const _BITS_TIME64_H: u32 = 1;
50pub const _BITS_WCHAR_H: u32 = 1;
51pub const _BITS_STDINT_INTN_H: u32 = 1;
52pub const _BITS_STDINT_UINTN_H: u32 = 1;
53pub const INT8_MIN: i32 = -128;
54pub const INT16_MIN: i32 = -32768;
55pub const INT32_MIN: i32 = -2147483648;
56pub const INT8_MAX: u32 = 127;
57pub const INT16_MAX: u32 = 32767;
58pub const INT32_MAX: u32 = 2147483647;
59pub const UINT8_MAX: u32 = 255;
60pub const UINT16_MAX: u32 = 65535;
61pub const UINT32_MAX: u32 = 4294967295;
62pub const INT_LEAST8_MIN: i32 = -128;
63pub const INT_LEAST16_MIN: i32 = -32768;
64pub const INT_LEAST32_MIN: i32 = -2147483648;
65pub const INT_LEAST8_MAX: u32 = 127;
66pub const INT_LEAST16_MAX: u32 = 32767;
67pub const INT_LEAST32_MAX: u32 = 2147483647;
68pub const UINT_LEAST8_MAX: u32 = 255;
69pub const UINT_LEAST16_MAX: u32 = 65535;
70pub const UINT_LEAST32_MAX: u32 = 4294967295;
71pub const INT_FAST8_MIN: i32 = -128;
72pub const INT_FAST16_MIN: i64 = -9223372036854775808;
73pub const INT_FAST32_MIN: i64 = -9223372036854775808;
74pub const INT_FAST8_MAX: u32 = 127;
75pub const INT_FAST16_MAX: u64 = 9223372036854775807;
76pub const INT_FAST32_MAX: u64 = 9223372036854775807;
77pub const UINT_FAST8_MAX: u32 = 255;
78pub const UINT_FAST16_MAX: i32 = -1;
79pub const UINT_FAST32_MAX: i32 = -1;
80pub const INTPTR_MIN: i64 = -9223372036854775808;
81pub const INTPTR_MAX: u64 = 9223372036854775807;
82pub const UINTPTR_MAX: i32 = -1;
83pub const PTRDIFF_MIN: i64 = -9223372036854775808;
84pub const PTRDIFF_MAX: u64 = 9223372036854775807;
85pub const SIG_ATOMIC_MIN: i32 = -2147483648;
86pub const SIG_ATOMIC_MAX: u32 = 2147483647;
87pub const SIZE_MAX: i32 = -1;
88pub const WINT_MIN: u32 = 0;
89pub const WINT_MAX: u32 = 4294967295;
90pub const KHRONOS_SUPPORT_INT64: u32 = 1;
91pub const KHRONOS_SUPPORT_FLOAT: u32 = 1;
92pub const KHRONOS_MAX_ENUM: u32 = 2147483647;
93pub const GL_GLES_PROTOTYPES: u32 = 1;
94pub const GL_ES_VERSION_2_0: u32 = 1;
95pub const GL_DEPTH_BUFFER_BIT: u32 = 256;
96pub const GL_STENCIL_BUFFER_BIT: u32 = 1024;
97pub const GL_COLOR_BUFFER_BIT: u32 = 16384;
98pub const GL_FALSE: u32 = 0;
99pub const GL_TRUE: u32 = 1;
100pub const GL_POINTS: u32 = 0;
101pub const GL_LINES: u32 = 1;
102pub const GL_LINE_LOOP: u32 = 2;
103pub const GL_LINE_STRIP: u32 = 3;
104pub const GL_TRIANGLES: u32 = 4;
105pub const GL_TRIANGLE_STRIP: u32 = 5;
106pub const GL_TRIANGLE_FAN: u32 = 6;
107pub const GL_ZERO: u32 = 0;
108pub const GL_ONE: u32 = 1;
109pub const GL_SRC_COLOR: u32 = 768;
110pub const GL_ONE_MINUS_SRC_COLOR: u32 = 769;
111pub const GL_SRC_ALPHA: u32 = 770;
112pub const GL_ONE_MINUS_SRC_ALPHA: u32 = 771;
113pub const GL_DST_ALPHA: u32 = 772;
114pub const GL_ONE_MINUS_DST_ALPHA: u32 = 773;
115pub const GL_DST_COLOR: u32 = 774;
116pub const GL_ONE_MINUS_DST_COLOR: u32 = 775;
117pub const GL_SRC_ALPHA_SATURATE: u32 = 776;
118pub const GL_FUNC_ADD: u32 = 32774;
119pub const GL_BLEND_EQUATION: u32 = 32777;
120pub const GL_BLEND_EQUATION_RGB: u32 = 32777;
121pub const GL_BLEND_EQUATION_ALPHA: u32 = 34877;
122pub const GL_FUNC_SUBTRACT: u32 = 32778;
123pub const GL_FUNC_REVERSE_SUBTRACT: u32 = 32779;
124pub const GL_BLEND_DST_RGB: u32 = 32968;
125pub const GL_BLEND_SRC_RGB: u32 = 32969;
126pub const GL_BLEND_DST_ALPHA: u32 = 32970;
127pub const GL_BLEND_SRC_ALPHA: u32 = 32971;
128pub const GL_CONSTANT_COLOR: u32 = 32769;
129pub const GL_ONE_MINUS_CONSTANT_COLOR: u32 = 32770;
130pub const GL_CONSTANT_ALPHA: u32 = 32771;
131pub const GL_ONE_MINUS_CONSTANT_ALPHA: u32 = 32772;
132pub const GL_BLEND_COLOR: u32 = 32773;
133pub const GL_ARRAY_BUFFER: u32 = 34962;
134pub const GL_ELEMENT_ARRAY_BUFFER: u32 = 34963;
135pub const GL_ARRAY_BUFFER_BINDING: u32 = 34964;
136pub const GL_ELEMENT_ARRAY_BUFFER_BINDING: u32 = 34965;
137pub const GL_STREAM_DRAW: u32 = 35040;
138pub const GL_STATIC_DRAW: u32 = 35044;
139pub const GL_DYNAMIC_DRAW: u32 = 35048;
140pub const GL_BUFFER_SIZE: u32 = 34660;
141pub const GL_BUFFER_USAGE: u32 = 34661;
142pub const GL_CURRENT_VERTEX_ATTRIB: u32 = 34342;
143pub const GL_FRONT: u32 = 1028;
144pub const GL_BACK: u32 = 1029;
145pub const GL_FRONT_AND_BACK: u32 = 1032;
146pub const GL_TEXTURE_2D: u32 = 3553;
147pub const GL_CULL_FACE: u32 = 2884;
148pub const GL_BLEND: u32 = 3042;
149pub const GL_DITHER: u32 = 3024;
150pub const GL_STENCIL_TEST: u32 = 2960;
151pub const GL_DEPTH_TEST: u32 = 2929;
152pub const GL_SCISSOR_TEST: u32 = 3089;
153pub const GL_POLYGON_OFFSET_FILL: u32 = 32823;
154pub const GL_SAMPLE_ALPHA_TO_COVERAGE: u32 = 32926;
155pub const GL_SAMPLE_COVERAGE: u32 = 32928;
156pub const GL_NO_ERROR: u32 = 0;
157pub const GL_INVALID_ENUM: u32 = 1280;
158pub const GL_INVALID_VALUE: u32 = 1281;
159pub const GL_INVALID_OPERATION: u32 = 1282;
160pub const GL_OUT_OF_MEMORY: u32 = 1285;
161pub const GL_CW: u32 = 2304;
162pub const GL_CCW: u32 = 2305;
163pub const GL_LINE_WIDTH: u32 = 2849;
164pub const GL_ALIASED_POINT_SIZE_RANGE: u32 = 33901;
165pub const GL_ALIASED_LINE_WIDTH_RANGE: u32 = 33902;
166pub const GL_CULL_FACE_MODE: u32 = 2885;
167pub const GL_FRONT_FACE: u32 = 2886;
168pub const GL_DEPTH_RANGE: u32 = 2928;
169pub const GL_DEPTH_WRITEMASK: u32 = 2930;
170pub const GL_DEPTH_CLEAR_VALUE: u32 = 2931;
171pub const GL_DEPTH_FUNC: u32 = 2932;
172pub const GL_STENCIL_CLEAR_VALUE: u32 = 2961;
173pub const GL_STENCIL_FUNC: u32 = 2962;
174pub const GL_STENCIL_FAIL: u32 = 2964;
175pub const GL_STENCIL_PASS_DEPTH_FAIL: u32 = 2965;
176pub const GL_STENCIL_PASS_DEPTH_PASS: u32 = 2966;
177pub const GL_STENCIL_REF: u32 = 2967;
178pub const GL_STENCIL_VALUE_MASK: u32 = 2963;
179pub const GL_STENCIL_WRITEMASK: u32 = 2968;
180pub const GL_STENCIL_BACK_FUNC: u32 = 34816;
181pub const GL_STENCIL_BACK_FAIL: u32 = 34817;
182pub const GL_STENCIL_BACK_PASS_DEPTH_FAIL: u32 = 34818;
183pub const GL_STENCIL_BACK_PASS_DEPTH_PASS: u32 = 34819;
184pub const GL_STENCIL_BACK_REF: u32 = 36003;
185pub const GL_STENCIL_BACK_VALUE_MASK: u32 = 36004;
186pub const GL_STENCIL_BACK_WRITEMASK: u32 = 36005;
187pub const GL_VIEWPORT: u32 = 2978;
188pub const GL_SCISSOR_BOX: u32 = 3088;
189pub const GL_COLOR_CLEAR_VALUE: u32 = 3106;
190pub const GL_COLOR_WRITEMASK: u32 = 3107;
191pub const GL_UNPACK_ALIGNMENT: u32 = 3317;
192pub const GL_PACK_ALIGNMENT: u32 = 3333;
193pub const GL_MAX_TEXTURE_SIZE: u32 = 3379;
194pub const GL_MAX_VIEWPORT_DIMS: u32 = 3386;
195pub const GL_SUBPIXEL_BITS: u32 = 3408;
196pub const GL_RED_BITS: u32 = 3410;
197pub const GL_GREEN_BITS: u32 = 3411;
198pub const GL_BLUE_BITS: u32 = 3412;
199pub const GL_ALPHA_BITS: u32 = 3413;
200pub const GL_DEPTH_BITS: u32 = 3414;
201pub const GL_STENCIL_BITS: u32 = 3415;
202pub const GL_POLYGON_OFFSET_UNITS: u32 = 10752;
203pub const GL_POLYGON_OFFSET_FACTOR: u32 = 32824;
204pub const GL_TEXTURE_BINDING_2D: u32 = 32873;
205pub const GL_SAMPLE_BUFFERS: u32 = 32936;
206pub const GL_SAMPLES: u32 = 32937;
207pub const GL_SAMPLE_COVERAGE_VALUE: u32 = 32938;
208pub const GL_SAMPLE_COVERAGE_INVERT: u32 = 32939;
209pub const GL_NUM_COMPRESSED_TEXTURE_FORMATS: u32 = 34466;
210pub const GL_COMPRESSED_TEXTURE_FORMATS: u32 = 34467;
211pub const GL_DONT_CARE: u32 = 4352;
212pub const GL_FASTEST: u32 = 4353;
213pub const GL_NICEST: u32 = 4354;
214pub const GL_GENERATE_MIPMAP_HINT: u32 = 33170;
215pub const GL_BYTE: u32 = 5120;
216pub const GL_UNSIGNED_BYTE: u32 = 5121;
217pub const GL_SHORT: u32 = 5122;
218pub const GL_UNSIGNED_SHORT: u32 = 5123;
219pub const GL_INT: u32 = 5124;
220pub const GL_UNSIGNED_INT: u32 = 5125;
221pub const GL_FLOAT: u32 = 5126;
222pub const GL_FIXED: u32 = 5132;
223pub const GL_DEPTH_COMPONENT: u32 = 6402;
224pub const GL_ALPHA: u32 = 6406;
225pub const GL_RGB: u32 = 6407;
226pub const GL_RGBA: u32 = 6408;
227pub const GL_LUMINANCE: u32 = 6409;
228pub const GL_LUMINANCE_ALPHA: u32 = 6410;
229pub const GL_UNSIGNED_SHORT_4_4_4_4: u32 = 32819;
230pub const GL_UNSIGNED_SHORT_5_5_5_1: u32 = 32820;
231pub const GL_UNSIGNED_SHORT_5_6_5: u32 = 33635;
232pub const GL_FRAGMENT_SHADER: u32 = 35632;
233pub const GL_VERTEX_SHADER: u32 = 35633;
234pub const GL_MAX_VERTEX_ATTRIBS: u32 = 34921;
235pub const GL_MAX_VERTEX_UNIFORM_VECTORS: u32 = 36347;
236pub const GL_MAX_VARYING_VECTORS: u32 = 36348;
237pub const GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: u32 = 35661;
238pub const GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: u32 = 35660;
239pub const GL_MAX_TEXTURE_IMAGE_UNITS: u32 = 34930;
240pub const GL_MAX_FRAGMENT_UNIFORM_VECTORS: u32 = 36349;
241pub const GL_SHADER_TYPE: u32 = 35663;
242pub const GL_DELETE_STATUS: u32 = 35712;
243pub const GL_LINK_STATUS: u32 = 35714;
244pub const GL_VALIDATE_STATUS: u32 = 35715;
245pub const GL_ATTACHED_SHADERS: u32 = 35717;
246pub const GL_ACTIVE_UNIFORMS: u32 = 35718;
247pub const GL_ACTIVE_UNIFORM_MAX_LENGTH: u32 = 35719;
248pub const GL_ACTIVE_ATTRIBUTES: u32 = 35721;
249pub const GL_ACTIVE_ATTRIBUTE_MAX_LENGTH: u32 = 35722;
250pub const GL_SHADING_LANGUAGE_VERSION: u32 = 35724;
251pub const GL_CURRENT_PROGRAM: u32 = 35725;
252pub const GL_NEVER: u32 = 512;
253pub const GL_LESS: u32 = 513;
254pub const GL_EQUAL: u32 = 514;
255pub const GL_LEQUAL: u32 = 515;
256pub const GL_GREATER: u32 = 516;
257pub const GL_NOTEQUAL: u32 = 517;
258pub const GL_GEQUAL: u32 = 518;
259pub const GL_ALWAYS: u32 = 519;
260pub const GL_KEEP: u32 = 7680;
261pub const GL_REPLACE: u32 = 7681;
262pub const GL_INCR: u32 = 7682;
263pub const GL_DECR: u32 = 7683;
264pub const GL_INVERT: u32 = 5386;
265pub const GL_INCR_WRAP: u32 = 34055;
266pub const GL_DECR_WRAP: u32 = 34056;
267pub const GL_VENDOR: u32 = 7936;
268pub const GL_RENDERER: u32 = 7937;
269pub const GL_VERSION: u32 = 7938;
270pub const GL_EXTENSIONS: u32 = 7939;
271pub const GL_NEAREST: u32 = 9728;
272pub const GL_LINEAR: u32 = 9729;
273pub const GL_NEAREST_MIPMAP_NEAREST: u32 = 9984;
274pub const GL_LINEAR_MIPMAP_NEAREST: u32 = 9985;
275pub const GL_NEAREST_MIPMAP_LINEAR: u32 = 9986;
276pub const GL_LINEAR_MIPMAP_LINEAR: u32 = 9987;
277pub const GL_TEXTURE_MAG_FILTER: u32 = 10240;
278pub const GL_TEXTURE_MIN_FILTER: u32 = 10241;
279pub const GL_TEXTURE_WRAP_S: u32 = 10242;
280pub const GL_TEXTURE_WRAP_T: u32 = 10243;
281pub const GL_TEXTURE: u32 = 5890;
282pub const GL_TEXTURE_CUBE_MAP: u32 = 34067;
283pub const GL_TEXTURE_BINDING_CUBE_MAP: u32 = 34068;
284pub const GL_TEXTURE_CUBE_MAP_POSITIVE_X: u32 = 34069;
285pub const GL_TEXTURE_CUBE_MAP_NEGATIVE_X: u32 = 34070;
286pub const GL_TEXTURE_CUBE_MAP_POSITIVE_Y: u32 = 34071;
287pub const GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: u32 = 34072;
288pub const GL_TEXTURE_CUBE_MAP_POSITIVE_Z: u32 = 34073;
289pub const GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: u32 = 34074;
290pub const GL_MAX_CUBE_MAP_TEXTURE_SIZE: u32 = 34076;
291pub const GL_TEXTURE0: u32 = 33984;
292pub const GL_TEXTURE1: u32 = 33985;
293pub const GL_TEXTURE2: u32 = 33986;
294pub const GL_TEXTURE3: u32 = 33987;
295pub const GL_TEXTURE4: u32 = 33988;
296pub const GL_TEXTURE5: u32 = 33989;
297pub const GL_TEXTURE6: u32 = 33990;
298pub const GL_TEXTURE7: u32 = 33991;
299pub const GL_TEXTURE8: u32 = 33992;
300pub const GL_TEXTURE9: u32 = 33993;
301pub const GL_TEXTURE10: u32 = 33994;
302pub const GL_TEXTURE11: u32 = 33995;
303pub const GL_TEXTURE12: u32 = 33996;
304pub const GL_TEXTURE13: u32 = 33997;
305pub const GL_TEXTURE14: u32 = 33998;
306pub const GL_TEXTURE15: u32 = 33999;
307pub const GL_TEXTURE16: u32 = 34000;
308pub const GL_TEXTURE17: u32 = 34001;
309pub const GL_TEXTURE18: u32 = 34002;
310pub const GL_TEXTURE19: u32 = 34003;
311pub const GL_TEXTURE20: u32 = 34004;
312pub const GL_TEXTURE21: u32 = 34005;
313pub const GL_TEXTURE22: u32 = 34006;
314pub const GL_TEXTURE23: u32 = 34007;
315pub const GL_TEXTURE24: u32 = 34008;
316pub const GL_TEXTURE25: u32 = 34009;
317pub const GL_TEXTURE26: u32 = 34010;
318pub const GL_TEXTURE27: u32 = 34011;
319pub const GL_TEXTURE28: u32 = 34012;
320pub const GL_TEXTURE29: u32 = 34013;
321pub const GL_TEXTURE30: u32 = 34014;
322pub const GL_TEXTURE31: u32 = 34015;
323pub const GL_ACTIVE_TEXTURE: u32 = 34016;
324pub const GL_REPEAT: u32 = 10497;
325pub const GL_CLAMP_TO_EDGE: u32 = 33071;
326pub const GL_MIRRORED_REPEAT: u32 = 33648;
327pub const GL_FLOAT_VEC2: u32 = 35664;
328pub const GL_FLOAT_VEC3: u32 = 35665;
329pub const GL_FLOAT_VEC4: u32 = 35666;
330pub const GL_INT_VEC2: u32 = 35667;
331pub const GL_INT_VEC3: u32 = 35668;
332pub const GL_INT_VEC4: u32 = 35669;
333pub const GL_BOOL: u32 = 35670;
334pub const GL_BOOL_VEC2: u32 = 35671;
335pub const GL_BOOL_VEC3: u32 = 35672;
336pub const GL_BOOL_VEC4: u32 = 35673;
337pub const GL_FLOAT_MAT2: u32 = 35674;
338pub const GL_FLOAT_MAT3: u32 = 35675;
339pub const GL_FLOAT_MAT4: u32 = 35676;
340pub const GL_SAMPLER_2D: u32 = 35678;
341pub const GL_SAMPLER_CUBE: u32 = 35680;
342pub const GL_VERTEX_ATTRIB_ARRAY_ENABLED: u32 = 34338;
343pub const GL_VERTEX_ATTRIB_ARRAY_SIZE: u32 = 34339;
344pub const GL_VERTEX_ATTRIB_ARRAY_STRIDE: u32 = 34340;
345pub const GL_VERTEX_ATTRIB_ARRAY_TYPE: u32 = 34341;
346pub const GL_VERTEX_ATTRIB_ARRAY_NORMALIZED: u32 = 34922;
347pub const GL_VERTEX_ATTRIB_ARRAY_POINTER: u32 = 34373;
348pub const GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: u32 = 34975;
349pub const GL_IMPLEMENTATION_COLOR_READ_TYPE: u32 = 35738;
350pub const GL_IMPLEMENTATION_COLOR_READ_FORMAT: u32 = 35739;
351pub const GL_COMPILE_STATUS: u32 = 35713;
352pub const GL_INFO_LOG_LENGTH: u32 = 35716;
353pub const GL_SHADER_SOURCE_LENGTH: u32 = 35720;
354pub const GL_SHADER_COMPILER: u32 = 36346;
355pub const GL_SHADER_BINARY_FORMATS: u32 = 36344;
356pub const GL_NUM_SHADER_BINARY_FORMATS: u32 = 36345;
357pub const GL_LOW_FLOAT: u32 = 36336;
358pub const GL_MEDIUM_FLOAT: u32 = 36337;
359pub const GL_HIGH_FLOAT: u32 = 36338;
360pub const GL_LOW_INT: u32 = 36339;
361pub const GL_MEDIUM_INT: u32 = 36340;
362pub const GL_HIGH_INT: u32 = 36341;
363pub const GL_FRAMEBUFFER: u32 = 36160;
364pub const GL_RENDERBUFFER: u32 = 36161;
365pub const GL_RGBA4: u32 = 32854;
366pub const GL_RGB5_A1: u32 = 32855;
367pub const GL_RGB565: u32 = 36194;
368pub const GL_DEPTH_COMPONENT16: u32 = 33189;
369pub const GL_STENCIL_INDEX8: u32 = 36168;
370pub const GL_RENDERBUFFER_WIDTH: u32 = 36162;
371pub const GL_RENDERBUFFER_HEIGHT: u32 = 36163;
372pub const GL_RENDERBUFFER_INTERNAL_FORMAT: u32 = 36164;
373pub const GL_RENDERBUFFER_RED_SIZE: u32 = 36176;
374pub const GL_RENDERBUFFER_GREEN_SIZE: u32 = 36177;
375pub const GL_RENDERBUFFER_BLUE_SIZE: u32 = 36178;
376pub const GL_RENDERBUFFER_ALPHA_SIZE: u32 = 36179;
377pub const GL_RENDERBUFFER_DEPTH_SIZE: u32 = 36180;
378pub const GL_RENDERBUFFER_STENCIL_SIZE: u32 = 36181;
379pub const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: u32 = 36048;
380pub const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: u32 = 36049;
381pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: u32 = 36050;
382pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: u32 = 36051;
383pub const GL_COLOR_ATTACHMENT0: u32 = 36064;
384pub const GL_DEPTH_ATTACHMENT: u32 = 36096;
385pub const GL_STENCIL_ATTACHMENT: u32 = 36128;
386pub const GL_NONE: u32 = 0;
387pub const GL_FRAMEBUFFER_COMPLETE: u32 = 36053;
388pub const GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: u32 = 36054;
389pub const GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: u32 = 36055;
390pub const GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: u32 = 36057;
391pub const GL_FRAMEBUFFER_UNSUPPORTED: u32 = 36061;
392pub const GL_FRAMEBUFFER_BINDING: u32 = 36006;
393pub const GL_RENDERBUFFER_BINDING: u32 = 36007;
394pub const GL_MAX_RENDERBUFFER_SIZE: u32 = 34024;
395pub const GL_INVALID_FRAMEBUFFER_OPERATION: u32 = 1286;
396pub const GL_ES_VERSION_3_0: u32 = 1;
397pub const GL_READ_BUFFER: u32 = 3074;
398pub const GL_UNPACK_ROW_LENGTH: u32 = 3314;
399pub const GL_UNPACK_SKIP_ROWS: u32 = 3315;
400pub const GL_UNPACK_SKIP_PIXELS: u32 = 3316;
401pub const GL_PACK_ROW_LENGTH: u32 = 3330;
402pub const GL_PACK_SKIP_ROWS: u32 = 3331;
403pub const GL_PACK_SKIP_PIXELS: u32 = 3332;
404pub const GL_COLOR: u32 = 6144;
405pub const GL_DEPTH: u32 = 6145;
406pub const GL_STENCIL: u32 = 6146;
407pub const GL_RED: u32 = 6403;
408pub const GL_RGB8: u32 = 32849;
409pub const GL_RGBA8: u32 = 32856;
410pub const GL_RGB10_A2: u32 = 32857;
411pub const GL_TEXTURE_BINDING_3D: u32 = 32874;
412pub const GL_UNPACK_SKIP_IMAGES: u32 = 32877;
413pub const GL_UNPACK_IMAGE_HEIGHT: u32 = 32878;
414pub const GL_TEXTURE_3D: u32 = 32879;
415pub const GL_TEXTURE_WRAP_R: u32 = 32882;
416pub const GL_MAX_3D_TEXTURE_SIZE: u32 = 32883;
417pub const GL_UNSIGNED_INT_2_10_10_10_REV: u32 = 33640;
418pub const GL_MAX_ELEMENTS_VERTICES: u32 = 33000;
419pub const GL_MAX_ELEMENTS_INDICES: u32 = 33001;
420pub const GL_TEXTURE_MIN_LOD: u32 = 33082;
421pub const GL_TEXTURE_MAX_LOD: u32 = 33083;
422pub const GL_TEXTURE_BASE_LEVEL: u32 = 33084;
423pub const GL_TEXTURE_MAX_LEVEL: u32 = 33085;
424pub const GL_MIN: u32 = 32775;
425pub const GL_MAX: u32 = 32776;
426pub const GL_DEPTH_COMPONENT24: u32 = 33190;
427pub const GL_MAX_TEXTURE_LOD_BIAS: u32 = 34045;
428pub const GL_TEXTURE_COMPARE_MODE: u32 = 34892;
429pub const GL_TEXTURE_COMPARE_FUNC: u32 = 34893;
430pub const GL_CURRENT_QUERY: u32 = 34917;
431pub const GL_QUERY_RESULT: u32 = 34918;
432pub const GL_QUERY_RESULT_AVAILABLE: u32 = 34919;
433pub const GL_BUFFER_MAPPED: u32 = 35004;
434pub const GL_BUFFER_MAP_POINTER: u32 = 35005;
435pub const GL_STREAM_READ: u32 = 35041;
436pub const GL_STREAM_COPY: u32 = 35042;
437pub const GL_STATIC_READ: u32 = 35045;
438pub const GL_STATIC_COPY: u32 = 35046;
439pub const GL_DYNAMIC_READ: u32 = 35049;
440pub const GL_DYNAMIC_COPY: u32 = 35050;
441pub const GL_MAX_DRAW_BUFFERS: u32 = 34852;
442pub const GL_DRAW_BUFFER0: u32 = 34853;
443pub const GL_DRAW_BUFFER1: u32 = 34854;
444pub const GL_DRAW_BUFFER2: u32 = 34855;
445pub const GL_DRAW_BUFFER3: u32 = 34856;
446pub const GL_DRAW_BUFFER4: u32 = 34857;
447pub const GL_DRAW_BUFFER5: u32 = 34858;
448pub const GL_DRAW_BUFFER6: u32 = 34859;
449pub const GL_DRAW_BUFFER7: u32 = 34860;
450pub const GL_DRAW_BUFFER8: u32 = 34861;
451pub const GL_DRAW_BUFFER9: u32 = 34862;
452pub const GL_DRAW_BUFFER10: u32 = 34863;
453pub const GL_DRAW_BUFFER11: u32 = 34864;
454pub const GL_DRAW_BUFFER12: u32 = 34865;
455pub const GL_DRAW_BUFFER13: u32 = 34866;
456pub const GL_DRAW_BUFFER14: u32 = 34867;
457pub const GL_DRAW_BUFFER15: u32 = 34868;
458pub const GL_MAX_FRAGMENT_UNIFORM_COMPONENTS: u32 = 35657;
459pub const GL_MAX_VERTEX_UNIFORM_COMPONENTS: u32 = 35658;
460pub const GL_SAMPLER_3D: u32 = 35679;
461pub const GL_SAMPLER_2D_SHADOW: u32 = 35682;
462pub const GL_FRAGMENT_SHADER_DERIVATIVE_HINT: u32 = 35723;
463pub const GL_PIXEL_PACK_BUFFER: u32 = 35051;
464pub const GL_PIXEL_UNPACK_BUFFER: u32 = 35052;
465pub const GL_PIXEL_PACK_BUFFER_BINDING: u32 = 35053;
466pub const GL_PIXEL_UNPACK_BUFFER_BINDING: u32 = 35055;
467pub const GL_FLOAT_MAT2x3: u32 = 35685;
468pub const GL_FLOAT_MAT2x4: u32 = 35686;
469pub const GL_FLOAT_MAT3x2: u32 = 35687;
470pub const GL_FLOAT_MAT3x4: u32 = 35688;
471pub const GL_FLOAT_MAT4x2: u32 = 35689;
472pub const GL_FLOAT_MAT4x3: u32 = 35690;
473pub const GL_SRGB: u32 = 35904;
474pub const GL_SRGB8: u32 = 35905;
475pub const GL_SRGB8_ALPHA8: u32 = 35907;
476pub const GL_COMPARE_REF_TO_TEXTURE: u32 = 34894;
477pub const GL_MAJOR_VERSION: u32 = 33307;
478pub const GL_MINOR_VERSION: u32 = 33308;
479pub const GL_NUM_EXTENSIONS: u32 = 33309;
480pub const GL_RGBA32F: u32 = 34836;
481pub const GL_RGB32F: u32 = 34837;
482pub const GL_RGBA16F: u32 = 34842;
483pub const GL_RGB16F: u32 = 34843;
484pub const GL_VERTEX_ATTRIB_ARRAY_INTEGER: u32 = 35069;
485pub const GL_MAX_ARRAY_TEXTURE_LAYERS: u32 = 35071;
486pub const GL_MIN_PROGRAM_TEXEL_OFFSET: u32 = 35076;
487pub const GL_MAX_PROGRAM_TEXEL_OFFSET: u32 = 35077;
488pub const GL_MAX_VARYING_COMPONENTS: u32 = 35659;
489pub const GL_TEXTURE_2D_ARRAY: u32 = 35866;
490pub const GL_TEXTURE_BINDING_2D_ARRAY: u32 = 35869;
491pub const GL_R11F_G11F_B10F: u32 = 35898;
492pub const GL_UNSIGNED_INT_10F_11F_11F_REV: u32 = 35899;
493pub const GL_RGB9_E5: u32 = 35901;
494pub const GL_UNSIGNED_INT_5_9_9_9_REV: u32 = 35902;
495pub const GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH: u32 = 35958;
496pub const GL_TRANSFORM_FEEDBACK_BUFFER_MODE: u32 = 35967;
497pub const GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: u32 = 35968;
498pub const GL_TRANSFORM_FEEDBACK_VARYINGS: u32 = 35971;
499pub const GL_TRANSFORM_FEEDBACK_BUFFER_START: u32 = 35972;
500pub const GL_TRANSFORM_FEEDBACK_BUFFER_SIZE: u32 = 35973;
501pub const GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: u32 = 35976;
502pub const GL_RASTERIZER_DISCARD: u32 = 35977;
503pub const GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: u32 = 35978;
504pub const GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: u32 = 35979;
505pub const GL_INTERLEAVED_ATTRIBS: u32 = 35980;
506pub const GL_SEPARATE_ATTRIBS: u32 = 35981;
507pub const GL_TRANSFORM_FEEDBACK_BUFFER: u32 = 35982;
508pub const GL_TRANSFORM_FEEDBACK_BUFFER_BINDING: u32 = 35983;
509pub const GL_RGBA32UI: u32 = 36208;
510pub const GL_RGB32UI: u32 = 36209;
511pub const GL_RGBA16UI: u32 = 36214;
512pub const GL_RGB16UI: u32 = 36215;
513pub const GL_RGBA8UI: u32 = 36220;
514pub const GL_RGB8UI: u32 = 36221;
515pub const GL_RGBA32I: u32 = 36226;
516pub const GL_RGB32I: u32 = 36227;
517pub const GL_RGBA16I: u32 = 36232;
518pub const GL_RGB16I: u32 = 36233;
519pub const GL_RGBA8I: u32 = 36238;
520pub const GL_RGB8I: u32 = 36239;
521pub const GL_RED_INTEGER: u32 = 36244;
522pub const GL_RGB_INTEGER: u32 = 36248;
523pub const GL_RGBA_INTEGER: u32 = 36249;
524pub const GL_SAMPLER_2D_ARRAY: u32 = 36289;
525pub const GL_SAMPLER_2D_ARRAY_SHADOW: u32 = 36292;
526pub const GL_SAMPLER_CUBE_SHADOW: u32 = 36293;
527pub const GL_UNSIGNED_INT_VEC2: u32 = 36294;
528pub const GL_UNSIGNED_INT_VEC3: u32 = 36295;
529pub const GL_UNSIGNED_INT_VEC4: u32 = 36296;
530pub const GL_INT_SAMPLER_2D: u32 = 36298;
531pub const GL_INT_SAMPLER_3D: u32 = 36299;
532pub const GL_INT_SAMPLER_CUBE: u32 = 36300;
533pub const GL_INT_SAMPLER_2D_ARRAY: u32 = 36303;
534pub const GL_UNSIGNED_INT_SAMPLER_2D: u32 = 36306;
535pub const GL_UNSIGNED_INT_SAMPLER_3D: u32 = 36307;
536pub const GL_UNSIGNED_INT_SAMPLER_CUBE: u32 = 36308;
537pub const GL_UNSIGNED_INT_SAMPLER_2D_ARRAY: u32 = 36311;
538pub const GL_BUFFER_ACCESS_FLAGS: u32 = 37151;
539pub const GL_BUFFER_MAP_LENGTH: u32 = 37152;
540pub const GL_BUFFER_MAP_OFFSET: u32 = 37153;
541pub const GL_DEPTH_COMPONENT32F: u32 = 36012;
542pub const GL_DEPTH32F_STENCIL8: u32 = 36013;
543pub const GL_FLOAT_32_UNSIGNED_INT_24_8_REV: u32 = 36269;
544pub const GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: u32 = 33296;
545pub const GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: u32 = 33297;
546pub const GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE: u32 = 33298;
547pub const GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: u32 = 33299;
548pub const GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: u32 = 33300;
549pub const GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: u32 = 33301;
550pub const GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: u32 = 33302;
551pub const GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: u32 = 33303;
552pub const GL_FRAMEBUFFER_DEFAULT: u32 = 33304;
553pub const GL_FRAMEBUFFER_UNDEFINED: u32 = 33305;
554pub const GL_DEPTH_STENCIL_ATTACHMENT: u32 = 33306;
555pub const GL_DEPTH_STENCIL: u32 = 34041;
556pub const GL_UNSIGNED_INT_24_8: u32 = 34042;
557pub const GL_DEPTH24_STENCIL8: u32 = 35056;
558pub const GL_UNSIGNED_NORMALIZED: u32 = 35863;
559pub const GL_DRAW_FRAMEBUFFER_BINDING: u32 = 36006;
560pub const GL_READ_FRAMEBUFFER: u32 = 36008;
561pub const GL_DRAW_FRAMEBUFFER: u32 = 36009;
562pub const GL_READ_FRAMEBUFFER_BINDING: u32 = 36010;
563pub const GL_RENDERBUFFER_SAMPLES: u32 = 36011;
564pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: u32 = 36052;
565pub const GL_MAX_COLOR_ATTACHMENTS: u32 = 36063;
566pub const GL_COLOR_ATTACHMENT1: u32 = 36065;
567pub const GL_COLOR_ATTACHMENT2: u32 = 36066;
568pub const GL_COLOR_ATTACHMENT3: u32 = 36067;
569pub const GL_COLOR_ATTACHMENT4: u32 = 36068;
570pub const GL_COLOR_ATTACHMENT5: u32 = 36069;
571pub const GL_COLOR_ATTACHMENT6: u32 = 36070;
572pub const GL_COLOR_ATTACHMENT7: u32 = 36071;
573pub const GL_COLOR_ATTACHMENT8: u32 = 36072;
574pub const GL_COLOR_ATTACHMENT9: u32 = 36073;
575pub const GL_COLOR_ATTACHMENT10: u32 = 36074;
576pub const GL_COLOR_ATTACHMENT11: u32 = 36075;
577pub const GL_COLOR_ATTACHMENT12: u32 = 36076;
578pub const GL_COLOR_ATTACHMENT13: u32 = 36077;
579pub const GL_COLOR_ATTACHMENT14: u32 = 36078;
580pub const GL_COLOR_ATTACHMENT15: u32 = 36079;
581pub const GL_COLOR_ATTACHMENT16: u32 = 36080;
582pub const GL_COLOR_ATTACHMENT17: u32 = 36081;
583pub const GL_COLOR_ATTACHMENT18: u32 = 36082;
584pub const GL_COLOR_ATTACHMENT19: u32 = 36083;
585pub const GL_COLOR_ATTACHMENT20: u32 = 36084;
586pub const GL_COLOR_ATTACHMENT21: u32 = 36085;
587pub const GL_COLOR_ATTACHMENT22: u32 = 36086;
588pub const GL_COLOR_ATTACHMENT23: u32 = 36087;
589pub const GL_COLOR_ATTACHMENT24: u32 = 36088;
590pub const GL_COLOR_ATTACHMENT25: u32 = 36089;
591pub const GL_COLOR_ATTACHMENT26: u32 = 36090;
592pub const GL_COLOR_ATTACHMENT27: u32 = 36091;
593pub const GL_COLOR_ATTACHMENT28: u32 = 36092;
594pub const GL_COLOR_ATTACHMENT29: u32 = 36093;
595pub const GL_COLOR_ATTACHMENT30: u32 = 36094;
596pub const GL_COLOR_ATTACHMENT31: u32 = 36095;
597pub const GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: u32 = 36182;
598pub const GL_MAX_SAMPLES: u32 = 36183;
599pub const GL_HALF_FLOAT: u32 = 5131;
600pub const GL_MAP_READ_BIT: u32 = 1;
601pub const GL_MAP_WRITE_BIT: u32 = 2;
602pub const GL_MAP_INVALIDATE_RANGE_BIT: u32 = 4;
603pub const GL_MAP_INVALIDATE_BUFFER_BIT: u32 = 8;
604pub const GL_MAP_FLUSH_EXPLICIT_BIT: u32 = 16;
605pub const GL_MAP_UNSYNCHRONIZED_BIT: u32 = 32;
606pub const GL_RG: u32 = 33319;
607pub const GL_RG_INTEGER: u32 = 33320;
608pub const GL_R8: u32 = 33321;
609pub const GL_RG8: u32 = 33323;
610pub const GL_R16F: u32 = 33325;
611pub const GL_R32F: u32 = 33326;
612pub const GL_RG16F: u32 = 33327;
613pub const GL_RG32F: u32 = 33328;
614pub const GL_R8I: u32 = 33329;
615pub const GL_R8UI: u32 = 33330;
616pub const GL_R16I: u32 = 33331;
617pub const GL_R16UI: u32 = 33332;
618pub const GL_R32I: u32 = 33333;
619pub const GL_R32UI: u32 = 33334;
620pub const GL_RG8I: u32 = 33335;
621pub const GL_RG8UI: u32 = 33336;
622pub const GL_RG16I: u32 = 33337;
623pub const GL_RG16UI: u32 = 33338;
624pub const GL_RG32I: u32 = 33339;
625pub const GL_RG32UI: u32 = 33340;
626pub const GL_VERTEX_ARRAY_BINDING: u32 = 34229;
627pub const GL_R8_SNORM: u32 = 36756;
628pub const GL_RG8_SNORM: u32 = 36757;
629pub const GL_RGB8_SNORM: u32 = 36758;
630pub const GL_RGBA8_SNORM: u32 = 36759;
631pub const GL_SIGNED_NORMALIZED: u32 = 36764;
632pub const GL_PRIMITIVE_RESTART_FIXED_INDEX: u32 = 36201;
633pub const GL_COPY_READ_BUFFER: u32 = 36662;
634pub const GL_COPY_WRITE_BUFFER: u32 = 36663;
635pub const GL_COPY_READ_BUFFER_BINDING: u32 = 36662;
636pub const GL_COPY_WRITE_BUFFER_BINDING: u32 = 36663;
637pub const GL_UNIFORM_BUFFER: u32 = 35345;
638pub const GL_UNIFORM_BUFFER_BINDING: u32 = 35368;
639pub const GL_UNIFORM_BUFFER_START: u32 = 35369;
640pub const GL_UNIFORM_BUFFER_SIZE: u32 = 35370;
641pub const GL_MAX_VERTEX_UNIFORM_BLOCKS: u32 = 35371;
642pub const GL_MAX_FRAGMENT_UNIFORM_BLOCKS: u32 = 35373;
643pub const GL_MAX_COMBINED_UNIFORM_BLOCKS: u32 = 35374;
644pub const GL_MAX_UNIFORM_BUFFER_BINDINGS: u32 = 35375;
645pub const GL_MAX_UNIFORM_BLOCK_SIZE: u32 = 35376;
646pub const GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: u32 = 35377;
647pub const GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: u32 = 35379;
648pub const GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT: u32 = 35380;
649pub const GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH: u32 = 35381;
650pub const GL_ACTIVE_UNIFORM_BLOCKS: u32 = 35382;
651pub const GL_UNIFORM_TYPE: u32 = 35383;
652pub const GL_UNIFORM_SIZE: u32 = 35384;
653pub const GL_UNIFORM_NAME_LENGTH: u32 = 35385;
654pub const GL_UNIFORM_BLOCK_INDEX: u32 = 35386;
655pub const GL_UNIFORM_OFFSET: u32 = 35387;
656pub const GL_UNIFORM_ARRAY_STRIDE: u32 = 35388;
657pub const GL_UNIFORM_MATRIX_STRIDE: u32 = 35389;
658pub const GL_UNIFORM_IS_ROW_MAJOR: u32 = 35390;
659pub const GL_UNIFORM_BLOCK_BINDING: u32 = 35391;
660pub const GL_UNIFORM_BLOCK_DATA_SIZE: u32 = 35392;
661pub const GL_UNIFORM_BLOCK_NAME_LENGTH: u32 = 35393;
662pub const GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS: u32 = 35394;
663pub const GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: u32 = 35395;
664pub const GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: u32 = 35396;
665pub const GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: u32 = 35398;
666pub const GL_INVALID_INDEX: u32 = 4294967295;
667pub const GL_MAX_VERTEX_OUTPUT_COMPONENTS: u32 = 37154;
668pub const GL_MAX_FRAGMENT_INPUT_COMPONENTS: u32 = 37157;
669pub const GL_MAX_SERVER_WAIT_TIMEOUT: u32 = 37137;
670pub const GL_OBJECT_TYPE: u32 = 37138;
671pub const GL_SYNC_CONDITION: u32 = 37139;
672pub const GL_SYNC_STATUS: u32 = 37140;
673pub const GL_SYNC_FLAGS: u32 = 37141;
674pub const GL_SYNC_FENCE: u32 = 37142;
675pub const GL_SYNC_GPU_COMMANDS_COMPLETE: u32 = 37143;
676pub const GL_UNSIGNALED: u32 = 37144;
677pub const GL_SIGNALED: u32 = 37145;
678pub const GL_ALREADY_SIGNALED: u32 = 37146;
679pub const GL_TIMEOUT_EXPIRED: u32 = 37147;
680pub const GL_CONDITION_SATISFIED: u32 = 37148;
681pub const GL_WAIT_FAILED: u32 = 37149;
682pub const GL_SYNC_FLUSH_COMMANDS_BIT: u32 = 1;
683pub const GL_TIMEOUT_IGNORED: i32 = -1;
684pub const GL_VERTEX_ATTRIB_ARRAY_DIVISOR: u32 = 35070;
685pub const GL_ANY_SAMPLES_PASSED: u32 = 35887;
686pub const GL_ANY_SAMPLES_PASSED_CONSERVATIVE: u32 = 36202;
687pub const GL_SAMPLER_BINDING: u32 = 35097;
688pub const GL_RGB10_A2UI: u32 = 36975;
689pub const GL_TEXTURE_SWIZZLE_R: u32 = 36418;
690pub const GL_TEXTURE_SWIZZLE_G: u32 = 36419;
691pub const GL_TEXTURE_SWIZZLE_B: u32 = 36420;
692pub const GL_TEXTURE_SWIZZLE_A: u32 = 36421;
693pub const GL_GREEN: u32 = 6404;
694pub const GL_BLUE: u32 = 6405;
695pub const GL_INT_2_10_10_10_REV: u32 = 36255;
696pub const GL_TRANSFORM_FEEDBACK: u32 = 36386;
697pub const GL_TRANSFORM_FEEDBACK_PAUSED: u32 = 36387;
698pub const GL_TRANSFORM_FEEDBACK_ACTIVE: u32 = 36388;
699pub const GL_TRANSFORM_FEEDBACK_BINDING: u32 = 36389;
700pub const GL_PROGRAM_BINARY_RETRIEVABLE_HINT: u32 = 33367;
701pub const GL_PROGRAM_BINARY_LENGTH: u32 = 34625;
702pub const GL_NUM_PROGRAM_BINARY_FORMATS: u32 = 34814;
703pub const GL_PROGRAM_BINARY_FORMATS: u32 = 34815;
704pub const GL_COMPRESSED_R11_EAC: u32 = 37488;
705pub const GL_COMPRESSED_SIGNED_R11_EAC: u32 = 37489;
706pub const GL_COMPRESSED_RG11_EAC: u32 = 37490;
707pub const GL_COMPRESSED_SIGNED_RG11_EAC: u32 = 37491;
708pub const GL_COMPRESSED_RGB8_ETC2: u32 = 37492;
709pub const GL_COMPRESSED_SRGB8_ETC2: u32 = 37493;
710pub const GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: u32 = 37494;
711pub const GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: u32 = 37495;
712pub const GL_COMPRESSED_RGBA8_ETC2_EAC: u32 = 37496;
713pub const GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: u32 = 37497;
714pub const GL_TEXTURE_IMMUTABLE_FORMAT: u32 = 37167;
715pub const GL_MAX_ELEMENT_INDEX: u32 = 36203;
716pub const GL_NUM_SAMPLE_COUNTS: u32 = 37760;
717pub const GL_TEXTURE_IMMUTABLE_LEVELS: u32 = 33503;
718pub type __u_char = ::std::os::raw::c_uchar;
719pub type __u_short = ::std::os::raw::c_ushort;
720pub type __u_int = ::std::os::raw::c_uint;
721pub type __u_long = ::std::os::raw::c_ulong;
722pub type __int8_t = ::std::os::raw::c_schar;
723pub type __uint8_t = ::std::os::raw::c_uchar;
724pub type __int16_t = ::std::os::raw::c_short;
725pub type __uint16_t = ::std::os::raw::c_ushort;
726pub type __int32_t = ::std::os::raw::c_int;
727pub type __uint32_t = ::std::os::raw::c_uint;
728pub type __int64_t = ::std::os::raw::c_long;
729pub type __uint64_t = ::std::os::raw::c_ulong;
730pub type __int_least8_t = __int8_t;
731pub type __uint_least8_t = __uint8_t;
732pub type __int_least16_t = __int16_t;
733pub type __uint_least16_t = __uint16_t;
734pub type __int_least32_t = __int32_t;
735pub type __uint_least32_t = __uint32_t;
736pub type __int_least64_t = __int64_t;
737pub type __uint_least64_t = __uint64_t;
738pub type __quad_t = ::std::os::raw::c_long;
739pub type __u_quad_t = ::std::os::raw::c_ulong;
740pub type __intmax_t = ::std::os::raw::c_long;
741pub type __uintmax_t = ::std::os::raw::c_ulong;
742pub type __dev_t = ::std::os::raw::c_ulong;
743pub type __uid_t = ::std::os::raw::c_uint;
744pub type __gid_t = ::std::os::raw::c_uint;
745pub type __ino_t = ::std::os::raw::c_ulong;
746pub type __ino64_t = ::std::os::raw::c_ulong;
747pub type __mode_t = ::std::os::raw::c_uint;
748pub type __nlink_t = ::std::os::raw::c_ulong;
749pub type __off_t = ::std::os::raw::c_long;
750pub type __off64_t = ::std::os::raw::c_long;
751pub type __pid_t = ::std::os::raw::c_int;
752#[repr(C)]
753#[derive(Debug, Copy, Clone)]
754pub struct __fsid_t {
755    pub __val: [::std::os::raw::c_int; 2usize],
756}
757#[test]
758fn bindgen_test_layout___fsid_t() {
759    assert_eq!(
760        ::std::mem::size_of::<__fsid_t>(),
761        8usize,
762        concat!("Size of: ", stringify!(__fsid_t))
763    );
764    assert_eq!(
765        ::std::mem::align_of::<__fsid_t>(),
766        4usize,
767        concat!("Alignment of ", stringify!(__fsid_t))
768    );
769    assert_eq!(
770        unsafe { &(*(::std::ptr::null::<__fsid_t>())).__val as *const _ as usize },
771        0usize,
772        concat!(
773            "Offset of field: ",
774            stringify!(__fsid_t),
775            "::",
776            stringify!(__val)
777        )
778    );
779}
780pub type __clock_t = ::std::os::raw::c_long;
781pub type __rlim_t = ::std::os::raw::c_ulong;
782pub type __rlim64_t = ::std::os::raw::c_ulong;
783pub type __id_t = ::std::os::raw::c_uint;
784pub type __time_t = ::std::os::raw::c_long;
785pub type __useconds_t = ::std::os::raw::c_uint;
786pub type __suseconds_t = ::std::os::raw::c_long;
787pub type __daddr_t = ::std::os::raw::c_int;
788pub type __key_t = ::std::os::raw::c_int;
789pub type __clockid_t = ::std::os::raw::c_int;
790pub type __timer_t = *mut ::std::os::raw::c_void;
791pub type __blksize_t = ::std::os::raw::c_long;
792pub type __blkcnt_t = ::std::os::raw::c_long;
793pub type __blkcnt64_t = ::std::os::raw::c_long;
794pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
795pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
796pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
797pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
798pub type __fsword_t = ::std::os::raw::c_long;
799pub type __ssize_t = ::std::os::raw::c_long;
800pub type __syscall_slong_t = ::std::os::raw::c_long;
801pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
802pub type __loff_t = __off64_t;
803pub type __caddr_t = *mut ::std::os::raw::c_char;
804pub type __intptr_t = ::std::os::raw::c_long;
805pub type __socklen_t = ::std::os::raw::c_uint;
806pub type __sig_atomic_t = ::std::os::raw::c_int;
807pub type int_least8_t = __int_least8_t;
808pub type int_least16_t = __int_least16_t;
809pub type int_least32_t = __int_least32_t;
810pub type int_least64_t = __int_least64_t;
811pub type uint_least8_t = __uint_least8_t;
812pub type uint_least16_t = __uint_least16_t;
813pub type uint_least32_t = __uint_least32_t;
814pub type uint_least64_t = __uint_least64_t;
815pub type int_fast8_t = ::std::os::raw::c_schar;
816pub type int_fast16_t = ::std::os::raw::c_long;
817pub type int_fast32_t = ::std::os::raw::c_long;
818pub type int_fast64_t = ::std::os::raw::c_long;
819pub type uint_fast8_t = ::std::os::raw::c_uchar;
820pub type uint_fast16_t = ::std::os::raw::c_ulong;
821pub type uint_fast32_t = ::std::os::raw::c_ulong;
822pub type uint_fast64_t = ::std::os::raw::c_ulong;
823pub type intmax_t = __intmax_t;
824pub type uintmax_t = __uintmax_t;
825pub type khronos_int32_t = i32;
826pub type khronos_uint32_t = u32;
827pub type khronos_int64_t = i64;
828pub type khronos_uint64_t = u64;
829pub type khronos_int8_t = ::std::os::raw::c_schar;
830pub type khronos_uint8_t = ::std::os::raw::c_uchar;
831pub type khronos_int16_t = ::std::os::raw::c_short;
832pub type khronos_uint16_t = ::std::os::raw::c_ushort;
833pub type khronos_intptr_t = ::std::os::raw::c_long;
834pub type khronos_uintptr_t = ::std::os::raw::c_ulong;
835pub type khronos_ssize_t = ::std::os::raw::c_long;
836pub type khronos_usize_t = ::std::os::raw::c_ulong;
837pub type khronos_float_t = f32;
838pub type khronos_utime_nanoseconds_t = khronos_uint64_t;
839pub type khronos_stime_nanoseconds_t = khronos_int64_t;
840pub const khronos_boolean_enum_t_KHRONOS_FALSE: khronos_boolean_enum_t = 0;
841pub const khronos_boolean_enum_t_KHRONOS_TRUE: khronos_boolean_enum_t = 1;
842pub const khronos_boolean_enum_t_KHRONOS_BOOLEAN_ENUM_FORCE_SIZE: khronos_boolean_enum_t =
843    2147483647;
844pub type khronos_boolean_enum_t = u32;
845pub type GLbyte = khronos_int8_t;
846pub type GLclampf = khronos_float_t;
847pub type GLfixed = khronos_int32_t;
848pub type GLshort = khronos_int16_t;
849pub type GLushort = khronos_uint16_t;
850pub type GLvoid = ::std::os::raw::c_void;
851#[repr(C)]
852#[derive(Debug, Copy, Clone)]
853pub struct __GLsync {
854    _unused: [u8; 0],
855}
856pub type GLsync = *mut __GLsync;
857pub type GLint64 = khronos_int64_t;
858pub type GLuint64 = khronos_uint64_t;
859pub type GLenum = ::std::os::raw::c_uint;
860pub type GLuint = ::std::os::raw::c_uint;
861pub type GLchar = ::std::os::raw::c_char;
862pub type GLfloat = khronos_float_t;
863pub type GLsizeiptr = khronos_ssize_t;
864pub type GLintptr = khronos_intptr_t;
865pub type GLbitfield = ::std::os::raw::c_uint;
866pub type GLint = ::std::os::raw::c_int;
867pub type GLboolean = ::std::os::raw::c_uchar;
868pub type GLsizei = ::std::os::raw::c_int;
869pub type GLubyte = khronos_uint8_t;
870pub type PFNGLACTIVETEXTUREPROC = ::std::option::Option<unsafe extern "C" fn(texture: GLenum)>;
871pub type PFNGLATTACHSHADERPROC =
872    ::std::option::Option<unsafe extern "C" fn(program: GLuint, shader: GLuint)>;
873pub type PFNGLBINDATTRIBLOCATIONPROC = ::std::option::Option<
874    unsafe extern "C" fn(program: GLuint, index: GLuint, name: *const GLchar),
875>;
876pub type PFNGLBINDBUFFERPROC =
877    ::std::option::Option<unsafe extern "C" fn(target: GLenum, buffer: GLuint)>;
878pub type PFNGLBINDFRAMEBUFFERPROC =
879    ::std::option::Option<unsafe extern "C" fn(target: GLenum, framebuffer: GLuint)>;
880pub type PFNGLBINDRENDERBUFFERPROC =
881    ::std::option::Option<unsafe extern "C" fn(target: GLenum, renderbuffer: GLuint)>;
882pub type PFNGLBINDTEXTUREPROC =
883    ::std::option::Option<unsafe extern "C" fn(target: GLenum, texture: GLuint)>;
884pub type PFNGLBLENDCOLORPROC = ::std::option::Option<
885    unsafe extern "C" fn(red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat),
886>;
887pub type PFNGLBLENDEQUATIONPROC = ::std::option::Option<unsafe extern "C" fn(mode: GLenum)>;
888pub type PFNGLBLENDEQUATIONSEPARATEPROC =
889    ::std::option::Option<unsafe extern "C" fn(modeRGB: GLenum, modeAlpha: GLenum)>;
890pub type PFNGLBLENDFUNCPROC =
891    ::std::option::Option<unsafe extern "C" fn(sfactor: GLenum, dfactor: GLenum)>;
892pub type PFNGLBLENDFUNCSEPARATEPROC = ::std::option::Option<
893    unsafe extern "C" fn(
894        sfactorRGB: GLenum,
895        dfactorRGB: GLenum,
896        sfactorAlpha: GLenum,
897        dfactorAlpha: GLenum,
898    ),
899>;
900pub type PFNGLBUFFERDATAPROC = ::std::option::Option<
901    unsafe extern "C" fn(
902        target: GLenum,
903        size: GLsizeiptr,
904        data: *const ::std::os::raw::c_void,
905        usage: GLenum,
906    ),
907>;
908pub type PFNGLBUFFERSUBDATAPROC = ::std::option::Option<
909    unsafe extern "C" fn(
910        target: GLenum,
911        offset: GLintptr,
912        size: GLsizeiptr,
913        data: *const ::std::os::raw::c_void,
914    ),
915>;
916pub type PFNGLCHECKFRAMEBUFFERSTATUSPROC =
917    ::std::option::Option<unsafe extern "C" fn(target: GLenum) -> GLenum>;
918pub type PFNGLCLEARPROC = ::std::option::Option<unsafe extern "C" fn(mask: GLbitfield)>;
919pub type PFNGLCLEARCOLORPROC = ::std::option::Option<
920    unsafe extern "C" fn(red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat),
921>;
922pub type PFNGLCLEARDEPTHFPROC = ::std::option::Option<unsafe extern "C" fn(d: GLfloat)>;
923pub type PFNGLCLEARSTENCILPROC = ::std::option::Option<unsafe extern "C" fn(s: GLint)>;
924pub type PFNGLCOLORMASKPROC = ::std::option::Option<
925    unsafe extern "C" fn(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean),
926>;
927pub type PFNGLCOMPILESHADERPROC = ::std::option::Option<unsafe extern "C" fn(shader: GLuint)>;
928pub type PFNGLCOMPRESSEDTEXIMAGE2DPROC = ::std::option::Option<
929    unsafe extern "C" fn(
930        target: GLenum,
931        level: GLint,
932        internalformat: GLenum,
933        width: GLsizei,
934        height: GLsizei,
935        border: GLint,
936        imageSize: GLsizei,
937        data: *const ::std::os::raw::c_void,
938    ),
939>;
940pub type PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC = ::std::option::Option<
941    unsafe extern "C" fn(
942        target: GLenum,
943        level: GLint,
944        xoffset: GLint,
945        yoffset: GLint,
946        width: GLsizei,
947        height: GLsizei,
948        format: GLenum,
949        imageSize: GLsizei,
950        data: *const ::std::os::raw::c_void,
951    ),
952>;
953pub type PFNGLCOPYTEXIMAGE2DPROC = ::std::option::Option<
954    unsafe extern "C" fn(
955        target: GLenum,
956        level: GLint,
957        internalformat: GLenum,
958        x: GLint,
959        y: GLint,
960        width: GLsizei,
961        height: GLsizei,
962        border: GLint,
963    ),
964>;
965pub type PFNGLCOPYTEXSUBIMAGE2DPROC = ::std::option::Option<
966    unsafe extern "C" fn(
967        target: GLenum,
968        level: GLint,
969        xoffset: GLint,
970        yoffset: GLint,
971        x: GLint,
972        y: GLint,
973        width: GLsizei,
974        height: GLsizei,
975    ),
976>;
977pub type PFNGLCREATEPROGRAMPROC = ::std::option::Option<unsafe extern "C" fn() -> GLuint>;
978pub type PFNGLCREATESHADERPROC =
979    ::std::option::Option<unsafe extern "C" fn(type_: GLenum) -> GLuint>;
980pub type PFNGLCULLFACEPROC = ::std::option::Option<unsafe extern "C" fn(mode: GLenum)>;
981pub type PFNGLDELETEBUFFERSPROC =
982    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, buffers: *const GLuint)>;
983pub type PFNGLDELETEFRAMEBUFFERSPROC =
984    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, framebuffers: *const GLuint)>;
985pub type PFNGLDELETEPROGRAMPROC = ::std::option::Option<unsafe extern "C" fn(program: GLuint)>;
986pub type PFNGLDELETERENDERBUFFERSPROC =
987    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, renderbuffers: *const GLuint)>;
988pub type PFNGLDELETESHADERPROC = ::std::option::Option<unsafe extern "C" fn(shader: GLuint)>;
989pub type PFNGLDELETETEXTURESPROC =
990    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, textures: *const GLuint)>;
991pub type PFNGLDEPTHFUNCPROC = ::std::option::Option<unsafe extern "C" fn(func: GLenum)>;
992pub type PFNGLDEPTHMASKPROC = ::std::option::Option<unsafe extern "C" fn(flag: GLboolean)>;
993pub type PFNGLDEPTHRANGEFPROC = ::std::option::Option<unsafe extern "C" fn(n: GLfloat, f: GLfloat)>;
994pub type PFNGLDETACHSHADERPROC =
995    ::std::option::Option<unsafe extern "C" fn(program: GLuint, shader: GLuint)>;
996pub type PFNGLDISABLEPROC = ::std::option::Option<unsafe extern "C" fn(cap: GLenum)>;
997pub type PFNGLDISABLEVERTEXATTRIBARRAYPROC =
998    ::std::option::Option<unsafe extern "C" fn(index: GLuint)>;
999pub type PFNGLDRAWARRAYSPROC =
1000    ::std::option::Option<unsafe extern "C" fn(mode: GLenum, first: GLint, count: GLsizei)>;
1001pub type PFNGLDRAWELEMENTSPROC = ::std::option::Option<
1002    unsafe extern "C" fn(
1003        mode: GLenum,
1004        count: GLsizei,
1005        type_: GLenum,
1006        indices: *const ::std::os::raw::c_void,
1007    ),
1008>;
1009pub type PFNGLENABLEPROC = ::std::option::Option<unsafe extern "C" fn(cap: GLenum)>;
1010pub type PFNGLENABLEVERTEXATTRIBARRAYPROC =
1011    ::std::option::Option<unsafe extern "C" fn(index: GLuint)>;
1012pub type PFNGLFINISHPROC = ::std::option::Option<unsafe extern "C" fn()>;
1013pub type PFNGLFLUSHPROC = ::std::option::Option<unsafe extern "C" fn()>;
1014pub type PFNGLFRAMEBUFFERRENDERBUFFERPROC = ::std::option::Option<
1015    unsafe extern "C" fn(
1016        target: GLenum,
1017        attachment: GLenum,
1018        renderbuffertarget: GLenum,
1019        renderbuffer: GLuint,
1020    ),
1021>;
1022pub type PFNGLFRAMEBUFFERTEXTURE2DPROC = ::std::option::Option<
1023    unsafe extern "C" fn(
1024        target: GLenum,
1025        attachment: GLenum,
1026        textarget: GLenum,
1027        texture: GLuint,
1028        level: GLint,
1029    ),
1030>;
1031pub type PFNGLFRONTFACEPROC = ::std::option::Option<unsafe extern "C" fn(mode: GLenum)>;
1032pub type PFNGLGENBUFFERSPROC =
1033    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, buffers: *mut GLuint)>;
1034pub type PFNGLGENERATEMIPMAPPROC = ::std::option::Option<unsafe extern "C" fn(target: GLenum)>;
1035pub type PFNGLGENFRAMEBUFFERSPROC =
1036    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, framebuffers: *mut GLuint)>;
1037pub type PFNGLGENRENDERBUFFERSPROC =
1038    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, renderbuffers: *mut GLuint)>;
1039pub type PFNGLGENTEXTURESPROC =
1040    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, textures: *mut GLuint)>;
1041pub type PFNGLGETACTIVEATTRIBPROC = ::std::option::Option<
1042    unsafe extern "C" fn(
1043        program: GLuint,
1044        index: GLuint,
1045        bufSize: GLsizei,
1046        length: *mut GLsizei,
1047        size: *mut GLint,
1048        type_: *mut GLenum,
1049        name: *mut GLchar,
1050    ),
1051>;
1052pub type PFNGLGETACTIVEUNIFORMPROC = ::std::option::Option<
1053    unsafe extern "C" fn(
1054        program: GLuint,
1055        index: GLuint,
1056        bufSize: GLsizei,
1057        length: *mut GLsizei,
1058        size: *mut GLint,
1059        type_: *mut GLenum,
1060        name: *mut GLchar,
1061    ),
1062>;
1063pub type PFNGLGETATTACHEDSHADERSPROC = ::std::option::Option<
1064    unsafe extern "C" fn(
1065        program: GLuint,
1066        maxCount: GLsizei,
1067        count: *mut GLsizei,
1068        shaders: *mut GLuint,
1069    ),
1070>;
1071pub type PFNGLGETATTRIBLOCATIONPROC =
1072    ::std::option::Option<unsafe extern "C" fn(program: GLuint, name: *const GLchar) -> GLint>;
1073pub type PFNGLGETBOOLEANVPROC =
1074    ::std::option::Option<unsafe extern "C" fn(pname: GLenum, data: *mut GLboolean)>;
1075pub type PFNGLGETBUFFERPARAMETERIVPROC =
1076    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut GLint)>;
1077pub type PFNGLGETERRORPROC = ::std::option::Option<unsafe extern "C" fn() -> GLenum>;
1078pub type PFNGLGETFLOATVPROC =
1079    ::std::option::Option<unsafe extern "C" fn(pname: GLenum, data: *mut GLfloat)>;
1080pub type PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC = ::std::option::Option<
1081    unsafe extern "C" fn(target: GLenum, attachment: GLenum, pname: GLenum, params: *mut GLint),
1082>;
1083pub type PFNGLGETINTEGERVPROC =
1084    ::std::option::Option<unsafe extern "C" fn(pname: GLenum, data: *mut GLint)>;
1085pub type PFNGLGETPROGRAMIVPROC =
1086    ::std::option::Option<unsafe extern "C" fn(program: GLuint, pname: GLenum, params: *mut GLint)>;
1087pub type PFNGLGETPROGRAMINFOLOGPROC = ::std::option::Option<
1088    unsafe extern "C" fn(
1089        program: GLuint,
1090        bufSize: GLsizei,
1091        length: *mut GLsizei,
1092        infoLog: *mut GLchar,
1093    ),
1094>;
1095pub type PFNGLGETRENDERBUFFERPARAMETERIVPROC =
1096    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut GLint)>;
1097pub type PFNGLGETSHADERIVPROC =
1098    ::std::option::Option<unsafe extern "C" fn(shader: GLuint, pname: GLenum, params: *mut GLint)>;
1099pub type PFNGLGETSHADERINFOLOGPROC = ::std::option::Option<
1100    unsafe extern "C" fn(
1101        shader: GLuint,
1102        bufSize: GLsizei,
1103        length: *mut GLsizei,
1104        infoLog: *mut GLchar,
1105    ),
1106>;
1107pub type PFNGLGETSHADERPRECISIONFORMATPROC = ::std::option::Option<
1108    unsafe extern "C" fn(
1109        shadertype: GLenum,
1110        precisiontype: GLenum,
1111        range: *mut GLint,
1112        precision: *mut GLint,
1113    ),
1114>;
1115pub type PFNGLGETSHADERSOURCEPROC = ::std::option::Option<
1116    unsafe extern "C" fn(
1117        shader: GLuint,
1118        bufSize: GLsizei,
1119        length: *mut GLsizei,
1120        source: *mut GLchar,
1121    ),
1122>;
1123pub type PFNGLGETSTRINGPROC =
1124    ::std::option::Option<unsafe extern "C" fn(name: GLenum) -> *const GLubyte>;
1125pub type PFNGLGETTEXPARAMETERFVPROC = ::std::option::Option<
1126    unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut GLfloat),
1127>;
1128pub type PFNGLGETTEXPARAMETERIVPROC =
1129    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut GLint)>;
1130pub type PFNGLGETUNIFORMFVPROC = ::std::option::Option<
1131    unsafe extern "C" fn(program: GLuint, location: GLint, params: *mut GLfloat),
1132>;
1133pub type PFNGLGETUNIFORMIVPROC = ::std::option::Option<
1134    unsafe extern "C" fn(program: GLuint, location: GLint, params: *mut GLint),
1135>;
1136pub type PFNGLGETUNIFORMLOCATIONPROC =
1137    ::std::option::Option<unsafe extern "C" fn(program: GLuint, name: *const GLchar) -> GLint>;
1138pub type PFNGLGETVERTEXATTRIBFVPROC =
1139    ::std::option::Option<unsafe extern "C" fn(index: GLuint, pname: GLenum, params: *mut GLfloat)>;
1140pub type PFNGLGETVERTEXATTRIBIVPROC =
1141    ::std::option::Option<unsafe extern "C" fn(index: GLuint, pname: GLenum, params: *mut GLint)>;
1142pub type PFNGLGETVERTEXATTRIBPOINTERVPROC = ::std::option::Option<
1143    unsafe extern "C" fn(index: GLuint, pname: GLenum, pointer: *mut *mut ::std::os::raw::c_void),
1144>;
1145pub type PFNGLHINTPROC = ::std::option::Option<unsafe extern "C" fn(target: GLenum, mode: GLenum)>;
1146pub type PFNGLISBUFFERPROC =
1147    ::std::option::Option<unsafe extern "C" fn(buffer: GLuint) -> GLboolean>;
1148pub type PFNGLISENABLEDPROC = ::std::option::Option<unsafe extern "C" fn(cap: GLenum) -> GLboolean>;
1149pub type PFNGLISFRAMEBUFFERPROC =
1150    ::std::option::Option<unsafe extern "C" fn(framebuffer: GLuint) -> GLboolean>;
1151pub type PFNGLISPROGRAMPROC =
1152    ::std::option::Option<unsafe extern "C" fn(program: GLuint) -> GLboolean>;
1153pub type PFNGLISRENDERBUFFERPROC =
1154    ::std::option::Option<unsafe extern "C" fn(renderbuffer: GLuint) -> GLboolean>;
1155pub type PFNGLISSHADERPROC =
1156    ::std::option::Option<unsafe extern "C" fn(shader: GLuint) -> GLboolean>;
1157pub type PFNGLISTEXTUREPROC =
1158    ::std::option::Option<unsafe extern "C" fn(texture: GLuint) -> GLboolean>;
1159pub type PFNGLLINEWIDTHPROC = ::std::option::Option<unsafe extern "C" fn(width: GLfloat)>;
1160pub type PFNGLLINKPROGRAMPROC = ::std::option::Option<unsafe extern "C" fn(program: GLuint)>;
1161pub type PFNGLPIXELSTOREIPROC =
1162    ::std::option::Option<unsafe extern "C" fn(pname: GLenum, param: GLint)>;
1163pub type PFNGLPOLYGONOFFSETPROC =
1164    ::std::option::Option<unsafe extern "C" fn(factor: GLfloat, units: GLfloat)>;
1165pub type PFNGLREADPIXELSPROC = ::std::option::Option<
1166    unsafe extern "C" fn(
1167        x: GLint,
1168        y: GLint,
1169        width: GLsizei,
1170        height: GLsizei,
1171        format: GLenum,
1172        type_: GLenum,
1173        pixels: *mut ::std::os::raw::c_void,
1174    ),
1175>;
1176pub type PFNGLRELEASESHADERCOMPILERPROC = ::std::option::Option<unsafe extern "C" fn()>;
1177pub type PFNGLRENDERBUFFERSTORAGEPROC = ::std::option::Option<
1178    unsafe extern "C" fn(target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei),
1179>;
1180pub type PFNGLSAMPLECOVERAGEPROC =
1181    ::std::option::Option<unsafe extern "C" fn(value: GLfloat, invert: GLboolean)>;
1182pub type PFNGLSCISSORPROC = ::std::option::Option<
1183    unsafe extern "C" fn(x: GLint, y: GLint, width: GLsizei, height: GLsizei),
1184>;
1185pub type PFNGLSHADERBINARYPROC = ::std::option::Option<
1186    unsafe extern "C" fn(
1187        count: GLsizei,
1188        shaders: *const GLuint,
1189        binaryformat: GLenum,
1190        binary: *const ::std::os::raw::c_void,
1191        length: GLsizei,
1192    ),
1193>;
1194pub type PFNGLSHADERSOURCEPROC = ::std::option::Option<
1195    unsafe extern "C" fn(
1196        shader: GLuint,
1197        count: GLsizei,
1198        string: *const *const GLchar,
1199        length: *const GLint,
1200    ),
1201>;
1202pub type PFNGLSTENCILFUNCPROC =
1203    ::std::option::Option<unsafe extern "C" fn(func: GLenum, ref_: GLint, mask: GLuint)>;
1204pub type PFNGLSTENCILFUNCSEPARATEPROC = ::std::option::Option<
1205    unsafe extern "C" fn(face: GLenum, func: GLenum, ref_: GLint, mask: GLuint),
1206>;
1207pub type PFNGLSTENCILMASKPROC = ::std::option::Option<unsafe extern "C" fn(mask: GLuint)>;
1208pub type PFNGLSTENCILMASKSEPARATEPROC =
1209    ::std::option::Option<unsafe extern "C" fn(face: GLenum, mask: GLuint)>;
1210pub type PFNGLSTENCILOPPROC =
1211    ::std::option::Option<unsafe extern "C" fn(fail: GLenum, zfail: GLenum, zpass: GLenum)>;
1212pub type PFNGLSTENCILOPSEPARATEPROC = ::std::option::Option<
1213    unsafe extern "C" fn(face: GLenum, sfail: GLenum, dpfail: GLenum, dppass: GLenum),
1214>;
1215pub type PFNGLTEXIMAGE2DPROC = ::std::option::Option<
1216    unsafe extern "C" fn(
1217        target: GLenum,
1218        level: GLint,
1219        internalformat: GLint,
1220        width: GLsizei,
1221        height: GLsizei,
1222        border: GLint,
1223        format: GLenum,
1224        type_: GLenum,
1225        pixels: *const ::std::os::raw::c_void,
1226    ),
1227>;
1228pub type PFNGLTEXPARAMETERFPROC =
1229    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, param: GLfloat)>;
1230pub type PFNGLTEXPARAMETERFVPROC = ::std::option::Option<
1231    unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *const GLfloat),
1232>;
1233pub type PFNGLTEXPARAMETERIPROC =
1234    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, param: GLint)>;
1235pub type PFNGLTEXPARAMETERIVPROC = ::std::option::Option<
1236    unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *const GLint),
1237>;
1238pub type PFNGLTEXSUBIMAGE2DPROC = ::std::option::Option<
1239    unsafe extern "C" fn(
1240        target: GLenum,
1241        level: GLint,
1242        xoffset: GLint,
1243        yoffset: GLint,
1244        width: GLsizei,
1245        height: GLsizei,
1246        format: GLenum,
1247        type_: GLenum,
1248        pixels: *const ::std::os::raw::c_void,
1249    ),
1250>;
1251pub type PFNGLUNIFORM1FPROC =
1252    ::std::option::Option<unsafe extern "C" fn(location: GLint, v0: GLfloat)>;
1253pub type PFNGLUNIFORM1FVPROC = ::std::option::Option<
1254    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLfloat),
1255>;
1256pub type PFNGLUNIFORM1IPROC =
1257    ::std::option::Option<unsafe extern "C" fn(location: GLint, v0: GLint)>;
1258pub type PFNGLUNIFORM1IVPROC = ::std::option::Option<
1259    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLint),
1260>;
1261pub type PFNGLUNIFORM2FPROC =
1262    ::std::option::Option<unsafe extern "C" fn(location: GLint, v0: GLfloat, v1: GLfloat)>;
1263pub type PFNGLUNIFORM2FVPROC = ::std::option::Option<
1264    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLfloat),
1265>;
1266pub type PFNGLUNIFORM2IPROC =
1267    ::std::option::Option<unsafe extern "C" fn(location: GLint, v0: GLint, v1: GLint)>;
1268pub type PFNGLUNIFORM2IVPROC = ::std::option::Option<
1269    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLint),
1270>;
1271pub type PFNGLUNIFORM3FPROC = ::std::option::Option<
1272    unsafe extern "C" fn(location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat),
1273>;
1274pub type PFNGLUNIFORM3FVPROC = ::std::option::Option<
1275    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLfloat),
1276>;
1277pub type PFNGLUNIFORM3IPROC =
1278    ::std::option::Option<unsafe extern "C" fn(location: GLint, v0: GLint, v1: GLint, v2: GLint)>;
1279pub type PFNGLUNIFORM3IVPROC = ::std::option::Option<
1280    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLint),
1281>;
1282pub type PFNGLUNIFORM4FPROC = ::std::option::Option<
1283    unsafe extern "C" fn(location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat, v3: GLfloat),
1284>;
1285pub type PFNGLUNIFORM4FVPROC = ::std::option::Option<
1286    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLfloat),
1287>;
1288pub type PFNGLUNIFORM4IPROC = ::std::option::Option<
1289    unsafe extern "C" fn(location: GLint, v0: GLint, v1: GLint, v2: GLint, v3: GLint),
1290>;
1291pub type PFNGLUNIFORM4IVPROC = ::std::option::Option<
1292    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLint),
1293>;
1294pub type PFNGLUNIFORMMATRIX2FVPROC = ::std::option::Option<
1295    unsafe extern "C" fn(
1296        location: GLint,
1297        count: GLsizei,
1298        transpose: GLboolean,
1299        value: *const GLfloat,
1300    ),
1301>;
1302pub type PFNGLUNIFORMMATRIX3FVPROC = ::std::option::Option<
1303    unsafe extern "C" fn(
1304        location: GLint,
1305        count: GLsizei,
1306        transpose: GLboolean,
1307        value: *const GLfloat,
1308    ),
1309>;
1310pub type PFNGLUNIFORMMATRIX4FVPROC = ::std::option::Option<
1311    unsafe extern "C" fn(
1312        location: GLint,
1313        count: GLsizei,
1314        transpose: GLboolean,
1315        value: *const GLfloat,
1316    ),
1317>;
1318pub type PFNGLUSEPROGRAMPROC = ::std::option::Option<unsafe extern "C" fn(program: GLuint)>;
1319pub type PFNGLVALIDATEPROGRAMPROC = ::std::option::Option<unsafe extern "C" fn(program: GLuint)>;
1320pub type PFNGLVERTEXATTRIB1FPROC =
1321    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLfloat)>;
1322pub type PFNGLVERTEXATTRIB1FVPROC =
1323    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLfloat)>;
1324pub type PFNGLVERTEXATTRIB2FPROC =
1325    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLfloat, y: GLfloat)>;
1326pub type PFNGLVERTEXATTRIB2FVPROC =
1327    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLfloat)>;
1328pub type PFNGLVERTEXATTRIB3FPROC =
1329    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat)>;
1330pub type PFNGLVERTEXATTRIB3FVPROC =
1331    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLfloat)>;
1332pub type PFNGLVERTEXATTRIB4FPROC = ::std::option::Option<
1333    unsafe extern "C" fn(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat),
1334>;
1335pub type PFNGLVERTEXATTRIB4FVPROC =
1336    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLfloat)>;
1337pub type PFNGLVERTEXATTRIBPOINTERPROC = ::std::option::Option<
1338    unsafe extern "C" fn(
1339        index: GLuint,
1340        size: GLint,
1341        type_: GLenum,
1342        normalized: GLboolean,
1343        stride: GLsizei,
1344        pointer: *const ::std::os::raw::c_void,
1345    ),
1346>;
1347pub type PFNGLVIEWPORTPROC = ::std::option::Option<
1348    unsafe extern "C" fn(x: GLint, y: GLint, width: GLsizei, height: GLsizei),
1349>;
1350extern "C" {
1351    pub fn glActiveTexture(texture: GLenum);
1352}
1353extern "C" {
1354    pub fn glAttachShader(program: GLuint, shader: GLuint);
1355}
1356extern "C" {
1357    pub fn glBindAttribLocation(program: GLuint, index: GLuint, name: *const GLchar);
1358}
1359extern "C" {
1360    pub fn glBindBuffer(target: GLenum, buffer: GLuint);
1361}
1362extern "C" {
1363    pub fn glBindFramebuffer(target: GLenum, framebuffer: GLuint);
1364}
1365extern "C" {
1366    pub fn glBindRenderbuffer(target: GLenum, renderbuffer: GLuint);
1367}
1368extern "C" {
1369    pub fn glBindTexture(target: GLenum, texture: GLuint);
1370}
1371extern "C" {
1372    pub fn glBlendColor(red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat);
1373}
1374extern "C" {
1375    pub fn glBlendEquation(mode: GLenum);
1376}
1377extern "C" {
1378    pub fn glBlendEquationSeparate(modeRGB: GLenum, modeAlpha: GLenum);
1379}
1380extern "C" {
1381    pub fn glBlendFunc(sfactor: GLenum, dfactor: GLenum);
1382}
1383extern "C" {
1384    pub fn glBlendFuncSeparate(
1385        sfactorRGB: GLenum,
1386        dfactorRGB: GLenum,
1387        sfactorAlpha: GLenum,
1388        dfactorAlpha: GLenum,
1389    );
1390}
1391extern "C" {
1392    pub fn glBufferData(
1393        target: GLenum,
1394        size: GLsizeiptr,
1395        data: *const ::std::os::raw::c_void,
1396        usage: GLenum,
1397    );
1398}
1399extern "C" {
1400    pub fn glBufferSubData(
1401        target: GLenum,
1402        offset: GLintptr,
1403        size: GLsizeiptr,
1404        data: *const ::std::os::raw::c_void,
1405    );
1406}
1407extern "C" {
1408    pub fn glCheckFramebufferStatus(target: GLenum) -> GLenum;
1409}
1410extern "C" {
1411    pub fn glClear(mask: GLbitfield);
1412}
1413extern "C" {
1414    pub fn glClearColor(red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat);
1415}
1416extern "C" {
1417    pub fn glClearDepthf(d: GLfloat);
1418}
1419extern "C" {
1420    pub fn glClearStencil(s: GLint);
1421}
1422extern "C" {
1423    pub fn glColorMask(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean);
1424}
1425extern "C" {
1426    pub fn glCompileShader(shader: GLuint);
1427}
1428extern "C" {
1429    pub fn glCompressedTexImage2D(
1430        target: GLenum,
1431        level: GLint,
1432        internalformat: GLenum,
1433        width: GLsizei,
1434        height: GLsizei,
1435        border: GLint,
1436        imageSize: GLsizei,
1437        data: *const ::std::os::raw::c_void,
1438    );
1439}
1440extern "C" {
1441    pub fn glCompressedTexSubImage2D(
1442        target: GLenum,
1443        level: GLint,
1444        xoffset: GLint,
1445        yoffset: GLint,
1446        width: GLsizei,
1447        height: GLsizei,
1448        format: GLenum,
1449        imageSize: GLsizei,
1450        data: *const ::std::os::raw::c_void,
1451    );
1452}
1453extern "C" {
1454    pub fn glCopyTexImage2D(
1455        target: GLenum,
1456        level: GLint,
1457        internalformat: GLenum,
1458        x: GLint,
1459        y: GLint,
1460        width: GLsizei,
1461        height: GLsizei,
1462        border: GLint,
1463    );
1464}
1465extern "C" {
1466    pub fn glCopyTexSubImage2D(
1467        target: GLenum,
1468        level: GLint,
1469        xoffset: GLint,
1470        yoffset: GLint,
1471        x: GLint,
1472        y: GLint,
1473        width: GLsizei,
1474        height: GLsizei,
1475    );
1476}
1477extern "C" {
1478    pub fn glCreateProgram() -> GLuint;
1479}
1480extern "C" {
1481    pub fn glCreateShader(type_: GLenum) -> GLuint;
1482}
1483extern "C" {
1484    pub fn glCullFace(mode: GLenum);
1485}
1486extern "C" {
1487    pub fn glDeleteBuffers(n: GLsizei, buffers: *const GLuint);
1488}
1489extern "C" {
1490    pub fn glDeleteFramebuffers(n: GLsizei, framebuffers: *const GLuint);
1491}
1492extern "C" {
1493    pub fn glDeleteProgram(program: GLuint);
1494}
1495extern "C" {
1496    pub fn glDeleteRenderbuffers(n: GLsizei, renderbuffers: *const GLuint);
1497}
1498extern "C" {
1499    pub fn glDeleteShader(shader: GLuint);
1500}
1501extern "C" {
1502    pub fn glDeleteTextures(n: GLsizei, textures: *const GLuint);
1503}
1504extern "C" {
1505    pub fn glDepthFunc(func: GLenum);
1506}
1507extern "C" {
1508    pub fn glDepthMask(flag: GLboolean);
1509}
1510extern "C" {
1511    pub fn glDepthRangef(n: GLfloat, f: GLfloat);
1512}
1513extern "C" {
1514    pub fn glDetachShader(program: GLuint, shader: GLuint);
1515}
1516extern "C" {
1517    pub fn glDisable(cap: GLenum);
1518}
1519extern "C" {
1520    pub fn glDisableVertexAttribArray(index: GLuint);
1521}
1522extern "C" {
1523    pub fn glDrawArrays(mode: GLenum, first: GLint, count: GLsizei);
1524}
1525extern "C" {
1526    pub fn glDrawElements(
1527        mode: GLenum,
1528        count: GLsizei,
1529        type_: GLenum,
1530        indices: *const ::std::os::raw::c_void,
1531    );
1532}
1533extern "C" {
1534    pub fn glEnable(cap: GLenum);
1535}
1536extern "C" {
1537    pub fn glEnableVertexAttribArray(index: GLuint);
1538}
1539extern "C" {
1540    pub fn glFinish();
1541}
1542extern "C" {
1543    pub fn glFlush();
1544}
1545extern "C" {
1546    pub fn glFramebufferRenderbuffer(
1547        target: GLenum,
1548        attachment: GLenum,
1549        renderbuffertarget: GLenum,
1550        renderbuffer: GLuint,
1551    );
1552}
1553extern "C" {
1554    pub fn glFramebufferTexture2D(
1555        target: GLenum,
1556        attachment: GLenum,
1557        textarget: GLenum,
1558        texture: GLuint,
1559        level: GLint,
1560    );
1561}
1562extern "C" {
1563    pub fn glFrontFace(mode: GLenum);
1564}
1565extern "C" {
1566    pub fn glGenBuffers(n: GLsizei, buffers: *mut GLuint);
1567}
1568extern "C" {
1569    pub fn glGenerateMipmap(target: GLenum);
1570}
1571extern "C" {
1572    pub fn glGenFramebuffers(n: GLsizei, framebuffers: *mut GLuint);
1573}
1574extern "C" {
1575    pub fn glGenRenderbuffers(n: GLsizei, renderbuffers: *mut GLuint);
1576}
1577extern "C" {
1578    pub fn glGenTextures(n: GLsizei, textures: *mut GLuint);
1579}
1580extern "C" {
1581    pub fn glGetActiveAttrib(
1582        program: GLuint,
1583        index: GLuint,
1584        bufSize: GLsizei,
1585        length: *mut GLsizei,
1586        size: *mut GLint,
1587        type_: *mut GLenum,
1588        name: *mut GLchar,
1589    );
1590}
1591extern "C" {
1592    pub fn glGetActiveUniform(
1593        program: GLuint,
1594        index: GLuint,
1595        bufSize: GLsizei,
1596        length: *mut GLsizei,
1597        size: *mut GLint,
1598        type_: *mut GLenum,
1599        name: *mut GLchar,
1600    );
1601}
1602extern "C" {
1603    pub fn glGetAttachedShaders(
1604        program: GLuint,
1605        maxCount: GLsizei,
1606        count: *mut GLsizei,
1607        shaders: *mut GLuint,
1608    );
1609}
1610extern "C" {
1611    pub fn glGetAttribLocation(program: GLuint, name: *const GLchar) -> GLint;
1612}
1613extern "C" {
1614    pub fn glGetBooleanv(pname: GLenum, data: *mut GLboolean);
1615}
1616extern "C" {
1617    pub fn glGetBufferParameteriv(target: GLenum, pname: GLenum, params: *mut GLint);
1618}
1619extern "C" {
1620    pub fn glGetError() -> GLenum;
1621}
1622extern "C" {
1623    pub fn glGetFloatv(pname: GLenum, data: *mut GLfloat);
1624}
1625extern "C" {
1626    pub fn glGetFramebufferAttachmentParameteriv(
1627        target: GLenum,
1628        attachment: GLenum,
1629        pname: GLenum,
1630        params: *mut GLint,
1631    );
1632}
1633extern "C" {
1634    pub fn glGetIntegerv(pname: GLenum, data: *mut GLint);
1635}
1636extern "C" {
1637    pub fn glGetProgramiv(program: GLuint, pname: GLenum, params: *mut GLint);
1638}
1639extern "C" {
1640    pub fn glGetProgramInfoLog(
1641        program: GLuint,
1642        bufSize: GLsizei,
1643        length: *mut GLsizei,
1644        infoLog: *mut GLchar,
1645    );
1646}
1647extern "C" {
1648    pub fn glGetRenderbufferParameteriv(target: GLenum, pname: GLenum, params: *mut GLint);
1649}
1650extern "C" {
1651    pub fn glGetShaderiv(shader: GLuint, pname: GLenum, params: *mut GLint);
1652}
1653extern "C" {
1654    pub fn glGetShaderInfoLog(
1655        shader: GLuint,
1656        bufSize: GLsizei,
1657        length: *mut GLsizei,
1658        infoLog: *mut GLchar,
1659    );
1660}
1661extern "C" {
1662    pub fn glGetShaderPrecisionFormat(
1663        shadertype: GLenum,
1664        precisiontype: GLenum,
1665        range: *mut GLint,
1666        precision: *mut GLint,
1667    );
1668}
1669extern "C" {
1670    pub fn glGetShaderSource(
1671        shader: GLuint,
1672        bufSize: GLsizei,
1673        length: *mut GLsizei,
1674        source: *mut GLchar,
1675    );
1676}
1677extern "C" {
1678    pub fn glGetString(name: GLenum) -> *const GLubyte;
1679}
1680extern "C" {
1681    pub fn glGetTexParameterfv(target: GLenum, pname: GLenum, params: *mut GLfloat);
1682}
1683extern "C" {
1684    pub fn glGetTexParameteriv(target: GLenum, pname: GLenum, params: *mut GLint);
1685}
1686extern "C" {
1687    pub fn glGetUniformfv(program: GLuint, location: GLint, params: *mut GLfloat);
1688}
1689extern "C" {
1690    pub fn glGetUniformiv(program: GLuint, location: GLint, params: *mut GLint);
1691}
1692extern "C" {
1693    pub fn glGetUniformLocation(program: GLuint, name: *const GLchar) -> GLint;
1694}
1695extern "C" {
1696    pub fn glGetVertexAttribfv(index: GLuint, pname: GLenum, params: *mut GLfloat);
1697}
1698extern "C" {
1699    pub fn glGetVertexAttribiv(index: GLuint, pname: GLenum, params: *mut GLint);
1700}
1701extern "C" {
1702    pub fn glGetVertexAttribPointerv(
1703        index: GLuint,
1704        pname: GLenum,
1705        pointer: *mut *mut ::std::os::raw::c_void,
1706    );
1707}
1708extern "C" {
1709    pub fn glHint(target: GLenum, mode: GLenum);
1710}
1711extern "C" {
1712    pub fn glIsBuffer(buffer: GLuint) -> GLboolean;
1713}
1714extern "C" {
1715    pub fn glIsEnabled(cap: GLenum) -> GLboolean;
1716}
1717extern "C" {
1718    pub fn glIsFramebuffer(framebuffer: GLuint) -> GLboolean;
1719}
1720extern "C" {
1721    pub fn glIsProgram(program: GLuint) -> GLboolean;
1722}
1723extern "C" {
1724    pub fn glIsRenderbuffer(renderbuffer: GLuint) -> GLboolean;
1725}
1726extern "C" {
1727    pub fn glIsShader(shader: GLuint) -> GLboolean;
1728}
1729extern "C" {
1730    pub fn glIsTexture(texture: GLuint) -> GLboolean;
1731}
1732extern "C" {
1733    pub fn glLineWidth(width: GLfloat);
1734}
1735extern "C" {
1736    pub fn glLinkProgram(program: GLuint);
1737}
1738extern "C" {
1739    pub fn glPixelStorei(pname: GLenum, param: GLint);
1740}
1741extern "C" {
1742    pub fn glPolygonOffset(factor: GLfloat, units: GLfloat);
1743}
1744extern "C" {
1745    pub fn glReadPixels(
1746        x: GLint,
1747        y: GLint,
1748        width: GLsizei,
1749        height: GLsizei,
1750        format: GLenum,
1751        type_: GLenum,
1752        pixels: *mut ::std::os::raw::c_void,
1753    );
1754}
1755extern "C" {
1756    pub fn glReleaseShaderCompiler();
1757}
1758extern "C" {
1759    pub fn glRenderbufferStorage(
1760        target: GLenum,
1761        internalformat: GLenum,
1762        width: GLsizei,
1763        height: GLsizei,
1764    );
1765}
1766extern "C" {
1767    pub fn glSampleCoverage(value: GLfloat, invert: GLboolean);
1768}
1769extern "C" {
1770    pub fn glScissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei);
1771}
1772extern "C" {
1773    pub fn glShaderBinary(
1774        count: GLsizei,
1775        shaders: *const GLuint,
1776        binaryformat: GLenum,
1777        binary: *const ::std::os::raw::c_void,
1778        length: GLsizei,
1779    );
1780}
1781extern "C" {
1782    pub fn glShaderSource(
1783        shader: GLuint,
1784        count: GLsizei,
1785        string: *const *const GLchar,
1786        length: *const GLint,
1787    );
1788}
1789extern "C" {
1790    pub fn glStencilFunc(func: GLenum, ref_: GLint, mask: GLuint);
1791}
1792extern "C" {
1793    pub fn glStencilFuncSeparate(face: GLenum, func: GLenum, ref_: GLint, mask: GLuint);
1794}
1795extern "C" {
1796    pub fn glStencilMask(mask: GLuint);
1797}
1798extern "C" {
1799    pub fn glStencilMaskSeparate(face: GLenum, mask: GLuint);
1800}
1801extern "C" {
1802    pub fn glStencilOp(fail: GLenum, zfail: GLenum, zpass: GLenum);
1803}
1804extern "C" {
1805    pub fn glStencilOpSeparate(face: GLenum, sfail: GLenum, dpfail: GLenum, dppass: GLenum);
1806}
1807extern "C" {
1808    pub fn glTexImage2D(
1809        target: GLenum,
1810        level: GLint,
1811        internalformat: GLint,
1812        width: GLsizei,
1813        height: GLsizei,
1814        border: GLint,
1815        format: GLenum,
1816        type_: GLenum,
1817        pixels: *const ::std::os::raw::c_void,
1818    );
1819}
1820extern "C" {
1821    pub fn glTexParameterf(target: GLenum, pname: GLenum, param: GLfloat);
1822}
1823extern "C" {
1824    pub fn glTexParameterfv(target: GLenum, pname: GLenum, params: *const GLfloat);
1825}
1826extern "C" {
1827    pub fn glTexParameteri(target: GLenum, pname: GLenum, param: GLint);
1828}
1829extern "C" {
1830    pub fn glTexParameteriv(target: GLenum, pname: GLenum, params: *const GLint);
1831}
1832extern "C" {
1833    pub fn glTexSubImage2D(
1834        target: GLenum,
1835        level: GLint,
1836        xoffset: GLint,
1837        yoffset: GLint,
1838        width: GLsizei,
1839        height: GLsizei,
1840        format: GLenum,
1841        type_: GLenum,
1842        pixels: *const ::std::os::raw::c_void,
1843    );
1844}
1845extern "C" {
1846    pub fn glUniform1f(location: GLint, v0: GLfloat);
1847}
1848extern "C" {
1849    pub fn glUniform1fv(location: GLint, count: GLsizei, value: *const GLfloat);
1850}
1851extern "C" {
1852    pub fn glUniform1i(location: GLint, v0: GLint);
1853}
1854extern "C" {
1855    pub fn glUniform1iv(location: GLint, count: GLsizei, value: *const GLint);
1856}
1857extern "C" {
1858    pub fn glUniform2f(location: GLint, v0: GLfloat, v1: GLfloat);
1859}
1860extern "C" {
1861    pub fn glUniform2fv(location: GLint, count: GLsizei, value: *const GLfloat);
1862}
1863extern "C" {
1864    pub fn glUniform2i(location: GLint, v0: GLint, v1: GLint);
1865}
1866extern "C" {
1867    pub fn glUniform2iv(location: GLint, count: GLsizei, value: *const GLint);
1868}
1869extern "C" {
1870    pub fn glUniform3f(location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat);
1871}
1872extern "C" {
1873    pub fn glUniform3fv(location: GLint, count: GLsizei, value: *const GLfloat);
1874}
1875extern "C" {
1876    pub fn glUniform3i(location: GLint, v0: GLint, v1: GLint, v2: GLint);
1877}
1878extern "C" {
1879    pub fn glUniform3iv(location: GLint, count: GLsizei, value: *const GLint);
1880}
1881extern "C" {
1882    pub fn glUniform4f(location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat, v3: GLfloat);
1883}
1884extern "C" {
1885    pub fn glUniform4fv(location: GLint, count: GLsizei, value: *const GLfloat);
1886}
1887extern "C" {
1888    pub fn glUniform4i(location: GLint, v0: GLint, v1: GLint, v2: GLint, v3: GLint);
1889}
1890extern "C" {
1891    pub fn glUniform4iv(location: GLint, count: GLsizei, value: *const GLint);
1892}
1893extern "C" {
1894    pub fn glUniformMatrix2fv(
1895        location: GLint,
1896        count: GLsizei,
1897        transpose: GLboolean,
1898        value: *const GLfloat,
1899    );
1900}
1901extern "C" {
1902    pub fn glUniformMatrix3fv(
1903        location: GLint,
1904        count: GLsizei,
1905        transpose: GLboolean,
1906        value: *const GLfloat,
1907    );
1908}
1909extern "C" {
1910    pub fn glUniformMatrix4fv(
1911        location: GLint,
1912        count: GLsizei,
1913        transpose: GLboolean,
1914        value: *const GLfloat,
1915    );
1916}
1917extern "C" {
1918    pub fn glUseProgram(program: GLuint);
1919}
1920extern "C" {
1921    pub fn glValidateProgram(program: GLuint);
1922}
1923extern "C" {
1924    pub fn glVertexAttrib1f(index: GLuint, x: GLfloat);
1925}
1926extern "C" {
1927    pub fn glVertexAttrib1fv(index: GLuint, v: *const GLfloat);
1928}
1929extern "C" {
1930    pub fn glVertexAttrib2f(index: GLuint, x: GLfloat, y: GLfloat);
1931}
1932extern "C" {
1933    pub fn glVertexAttrib2fv(index: GLuint, v: *const GLfloat);
1934}
1935extern "C" {
1936    pub fn glVertexAttrib3f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat);
1937}
1938extern "C" {
1939    pub fn glVertexAttrib3fv(index: GLuint, v: *const GLfloat);
1940}
1941extern "C" {
1942    pub fn glVertexAttrib4f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat);
1943}
1944extern "C" {
1945    pub fn glVertexAttrib4fv(index: GLuint, v: *const GLfloat);
1946}
1947extern "C" {
1948    pub fn glVertexAttribPointer(
1949        index: GLuint,
1950        size: GLint,
1951        type_: GLenum,
1952        normalized: GLboolean,
1953        stride: GLsizei,
1954        pointer: *const ::std::os::raw::c_void,
1955    );
1956}
1957extern "C" {
1958    pub fn glViewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei);
1959}
1960pub type GLhalf = khronos_uint16_t;
1961pub type PFNGLREADBUFFERPROC = ::std::option::Option<unsafe extern "C" fn(src: GLenum)>;
1962pub type PFNGLDRAWRANGEELEMENTSPROC = ::std::option::Option<
1963    unsafe extern "C" fn(
1964        mode: GLenum,
1965        start: GLuint,
1966        end: GLuint,
1967        count: GLsizei,
1968        type_: GLenum,
1969        indices: *const ::std::os::raw::c_void,
1970    ),
1971>;
1972pub type PFNGLTEXIMAGE3DPROC = ::std::option::Option<
1973    unsafe extern "C" fn(
1974        target: GLenum,
1975        level: GLint,
1976        internalformat: GLint,
1977        width: GLsizei,
1978        height: GLsizei,
1979        depth: GLsizei,
1980        border: GLint,
1981        format: GLenum,
1982        type_: GLenum,
1983        pixels: *const ::std::os::raw::c_void,
1984    ),
1985>;
1986pub type PFNGLTEXSUBIMAGE3DPROC = ::std::option::Option<
1987    unsafe extern "C" fn(
1988        target: GLenum,
1989        level: GLint,
1990        xoffset: GLint,
1991        yoffset: GLint,
1992        zoffset: GLint,
1993        width: GLsizei,
1994        height: GLsizei,
1995        depth: GLsizei,
1996        format: GLenum,
1997        type_: GLenum,
1998        pixels: *const ::std::os::raw::c_void,
1999    ),
2000>;
2001pub type PFNGLCOPYTEXSUBIMAGE3DPROC = ::std::option::Option<
2002    unsafe extern "C" fn(
2003        target: GLenum,
2004        level: GLint,
2005        xoffset: GLint,
2006        yoffset: GLint,
2007        zoffset: GLint,
2008        x: GLint,
2009        y: GLint,
2010        width: GLsizei,
2011        height: GLsizei,
2012    ),
2013>;
2014pub type PFNGLCOMPRESSEDTEXIMAGE3DPROC = ::std::option::Option<
2015    unsafe extern "C" fn(
2016        target: GLenum,
2017        level: GLint,
2018        internalformat: GLenum,
2019        width: GLsizei,
2020        height: GLsizei,
2021        depth: GLsizei,
2022        border: GLint,
2023        imageSize: GLsizei,
2024        data: *const ::std::os::raw::c_void,
2025    ),
2026>;
2027pub type PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC = ::std::option::Option<
2028    unsafe extern "C" fn(
2029        target: GLenum,
2030        level: GLint,
2031        xoffset: GLint,
2032        yoffset: GLint,
2033        zoffset: GLint,
2034        width: GLsizei,
2035        height: GLsizei,
2036        depth: GLsizei,
2037        format: GLenum,
2038        imageSize: GLsizei,
2039        data: *const ::std::os::raw::c_void,
2040    ),
2041>;
2042pub type PFNGLGENQUERIESPROC =
2043    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, ids: *mut GLuint)>;
2044pub type PFNGLDELETEQUERIESPROC =
2045    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, ids: *const GLuint)>;
2046pub type PFNGLISQUERYPROC = ::std::option::Option<unsafe extern "C" fn(id: GLuint) -> GLboolean>;
2047pub type PFNGLBEGINQUERYPROC =
2048    ::std::option::Option<unsafe extern "C" fn(target: GLenum, id: GLuint)>;
2049pub type PFNGLENDQUERYPROC = ::std::option::Option<unsafe extern "C" fn(target: GLenum)>;
2050pub type PFNGLGETQUERYIVPROC =
2051    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut GLint)>;
2052pub type PFNGLGETQUERYOBJECTUIVPROC =
2053    ::std::option::Option<unsafe extern "C" fn(id: GLuint, pname: GLenum, params: *mut GLuint)>;
2054pub type PFNGLUNMAPBUFFERPROC =
2055    ::std::option::Option<unsafe extern "C" fn(target: GLenum) -> GLboolean>;
2056pub type PFNGLGETBUFFERPOINTERVPROC = ::std::option::Option<
2057    unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut *mut ::std::os::raw::c_void),
2058>;
2059pub type PFNGLDRAWBUFFERSPROC =
2060    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, bufs: *const GLenum)>;
2061pub type PFNGLUNIFORMMATRIX2X3FVPROC = ::std::option::Option<
2062    unsafe extern "C" fn(
2063        location: GLint,
2064        count: GLsizei,
2065        transpose: GLboolean,
2066        value: *const GLfloat,
2067    ),
2068>;
2069pub type PFNGLUNIFORMMATRIX3X2FVPROC = ::std::option::Option<
2070    unsafe extern "C" fn(
2071        location: GLint,
2072        count: GLsizei,
2073        transpose: GLboolean,
2074        value: *const GLfloat,
2075    ),
2076>;
2077pub type PFNGLUNIFORMMATRIX2X4FVPROC = ::std::option::Option<
2078    unsafe extern "C" fn(
2079        location: GLint,
2080        count: GLsizei,
2081        transpose: GLboolean,
2082        value: *const GLfloat,
2083    ),
2084>;
2085pub type PFNGLUNIFORMMATRIX4X2FVPROC = ::std::option::Option<
2086    unsafe extern "C" fn(
2087        location: GLint,
2088        count: GLsizei,
2089        transpose: GLboolean,
2090        value: *const GLfloat,
2091    ),
2092>;
2093pub type PFNGLUNIFORMMATRIX3X4FVPROC = ::std::option::Option<
2094    unsafe extern "C" fn(
2095        location: GLint,
2096        count: GLsizei,
2097        transpose: GLboolean,
2098        value: *const GLfloat,
2099    ),
2100>;
2101pub type PFNGLUNIFORMMATRIX4X3FVPROC = ::std::option::Option<
2102    unsafe extern "C" fn(
2103        location: GLint,
2104        count: GLsizei,
2105        transpose: GLboolean,
2106        value: *const GLfloat,
2107    ),
2108>;
2109pub type PFNGLBLITFRAMEBUFFERPROC = ::std::option::Option<
2110    unsafe extern "C" fn(
2111        srcX0: GLint,
2112        srcY0: GLint,
2113        srcX1: GLint,
2114        srcY1: GLint,
2115        dstX0: GLint,
2116        dstY0: GLint,
2117        dstX1: GLint,
2118        dstY1: GLint,
2119        mask: GLbitfield,
2120        filter: GLenum,
2121    ),
2122>;
2123pub type PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC = ::std::option::Option<
2124    unsafe extern "C" fn(
2125        target: GLenum,
2126        samples: GLsizei,
2127        internalformat: GLenum,
2128        width: GLsizei,
2129        height: GLsizei,
2130    ),
2131>;
2132pub type PFNGLFRAMEBUFFERTEXTURELAYERPROC = ::std::option::Option<
2133    unsafe extern "C" fn(
2134        target: GLenum,
2135        attachment: GLenum,
2136        texture: GLuint,
2137        level: GLint,
2138        layer: GLint,
2139    ),
2140>;
2141pub type PFNGLMAPBUFFERRANGEPROC = ::std::option::Option<
2142    unsafe extern "C" fn(
2143        target: GLenum,
2144        offset: GLintptr,
2145        length: GLsizeiptr,
2146        access: GLbitfield,
2147    ) -> *mut ::std::os::raw::c_void,
2148>;
2149pub type PFNGLFLUSHMAPPEDBUFFERRANGEPROC = ::std::option::Option<
2150    unsafe extern "C" fn(target: GLenum, offset: GLintptr, length: GLsizeiptr),
2151>;
2152pub type PFNGLBINDVERTEXARRAYPROC = ::std::option::Option<unsafe extern "C" fn(array: GLuint)>;
2153pub type PFNGLDELETEVERTEXARRAYSPROC =
2154    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, arrays: *const GLuint)>;
2155pub type PFNGLGENVERTEXARRAYSPROC =
2156    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, arrays: *mut GLuint)>;
2157pub type PFNGLISVERTEXARRAYPROC =
2158    ::std::option::Option<unsafe extern "C" fn(array: GLuint) -> GLboolean>;
2159pub type PFNGLGETINTEGERI_VPROC =
2160    ::std::option::Option<unsafe extern "C" fn(target: GLenum, index: GLuint, data: *mut GLint)>;
2161pub type PFNGLBEGINTRANSFORMFEEDBACKPROC =
2162    ::std::option::Option<unsafe extern "C" fn(primitiveMode: GLenum)>;
2163pub type PFNGLENDTRANSFORMFEEDBACKPROC = ::std::option::Option<unsafe extern "C" fn()>;
2164pub type PFNGLBINDBUFFERRANGEPROC = ::std::option::Option<
2165    unsafe extern "C" fn(
2166        target: GLenum,
2167        index: GLuint,
2168        buffer: GLuint,
2169        offset: GLintptr,
2170        size: GLsizeiptr,
2171    ),
2172>;
2173pub type PFNGLBINDBUFFERBASEPROC =
2174    ::std::option::Option<unsafe extern "C" fn(target: GLenum, index: GLuint, buffer: GLuint)>;
2175pub type PFNGLTRANSFORMFEEDBACKVARYINGSPROC = ::std::option::Option<
2176    unsafe extern "C" fn(
2177        program: GLuint,
2178        count: GLsizei,
2179        varyings: *const *const GLchar,
2180        bufferMode: GLenum,
2181    ),
2182>;
2183pub type PFNGLGETTRANSFORMFEEDBACKVARYINGPROC = ::std::option::Option<
2184    unsafe extern "C" fn(
2185        program: GLuint,
2186        index: GLuint,
2187        bufSize: GLsizei,
2188        length: *mut GLsizei,
2189        size: *mut GLsizei,
2190        type_: *mut GLenum,
2191        name: *mut GLchar,
2192    ),
2193>;
2194pub type PFNGLVERTEXATTRIBIPOINTERPROC = ::std::option::Option<
2195    unsafe extern "C" fn(
2196        index: GLuint,
2197        size: GLint,
2198        type_: GLenum,
2199        stride: GLsizei,
2200        pointer: *const ::std::os::raw::c_void,
2201    ),
2202>;
2203pub type PFNGLGETVERTEXATTRIBIIVPROC =
2204    ::std::option::Option<unsafe extern "C" fn(index: GLuint, pname: GLenum, params: *mut GLint)>;
2205pub type PFNGLGETVERTEXATTRIBIUIVPROC =
2206    ::std::option::Option<unsafe extern "C" fn(index: GLuint, pname: GLenum, params: *mut GLuint)>;
2207pub type PFNGLVERTEXATTRIBI4IPROC = ::std::option::Option<
2208    unsafe extern "C" fn(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint),
2209>;
2210pub type PFNGLVERTEXATTRIBI4UIPROC = ::std::option::Option<
2211    unsafe extern "C" fn(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint),
2212>;
2213pub type PFNGLVERTEXATTRIBI4IVPROC =
2214    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLint)>;
2215pub type PFNGLVERTEXATTRIBI4UIVPROC =
2216    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLuint)>;
2217pub type PFNGLGETUNIFORMUIVPROC = ::std::option::Option<
2218    unsafe extern "C" fn(program: GLuint, location: GLint, params: *mut GLuint),
2219>;
2220pub type PFNGLGETFRAGDATALOCATIONPROC =
2221    ::std::option::Option<unsafe extern "C" fn(program: GLuint, name: *const GLchar) -> GLint>;
2222pub type PFNGLUNIFORM1UIPROC =
2223    ::std::option::Option<unsafe extern "C" fn(location: GLint, v0: GLuint)>;
2224pub type PFNGLUNIFORM2UIPROC =
2225    ::std::option::Option<unsafe extern "C" fn(location: GLint, v0: GLuint, v1: GLuint)>;
2226pub type PFNGLUNIFORM3UIPROC = ::std::option::Option<
2227    unsafe extern "C" fn(location: GLint, v0: GLuint, v1: GLuint, v2: GLuint),
2228>;
2229pub type PFNGLUNIFORM4UIPROC = ::std::option::Option<
2230    unsafe extern "C" fn(location: GLint, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint),
2231>;
2232pub type PFNGLUNIFORM1UIVPROC = ::std::option::Option<
2233    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLuint),
2234>;
2235pub type PFNGLUNIFORM2UIVPROC = ::std::option::Option<
2236    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLuint),
2237>;
2238pub type PFNGLUNIFORM3UIVPROC = ::std::option::Option<
2239    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLuint),
2240>;
2241pub type PFNGLUNIFORM4UIVPROC = ::std::option::Option<
2242    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLuint),
2243>;
2244pub type PFNGLCLEARBUFFERIVPROC = ::std::option::Option<
2245    unsafe extern "C" fn(buffer: GLenum, drawbuffer: GLint, value: *const GLint),
2246>;
2247pub type PFNGLCLEARBUFFERUIVPROC = ::std::option::Option<
2248    unsafe extern "C" fn(buffer: GLenum, drawbuffer: GLint, value: *const GLuint),
2249>;
2250pub type PFNGLCLEARBUFFERFVPROC = ::std::option::Option<
2251    unsafe extern "C" fn(buffer: GLenum, drawbuffer: GLint, value: *const GLfloat),
2252>;
2253pub type PFNGLCLEARBUFFERFIPROC = ::std::option::Option<
2254    unsafe extern "C" fn(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint),
2255>;
2256pub type PFNGLGETSTRINGIPROC =
2257    ::std::option::Option<unsafe extern "C" fn(name: GLenum, index: GLuint) -> *const GLubyte>;
2258pub type PFNGLCOPYBUFFERSUBDATAPROC = ::std::option::Option<
2259    unsafe extern "C" fn(
2260        readTarget: GLenum,
2261        writeTarget: GLenum,
2262        readOffset: GLintptr,
2263        writeOffset: GLintptr,
2264        size: GLsizeiptr,
2265    ),
2266>;
2267pub type PFNGLGETUNIFORMINDICESPROC = ::std::option::Option<
2268    unsafe extern "C" fn(
2269        program: GLuint,
2270        uniformCount: GLsizei,
2271        uniformNames: *const *const GLchar,
2272        uniformIndices: *mut GLuint,
2273    ),
2274>;
2275pub type PFNGLGETACTIVEUNIFORMSIVPROC = ::std::option::Option<
2276    unsafe extern "C" fn(
2277        program: GLuint,
2278        uniformCount: GLsizei,
2279        uniformIndices: *const GLuint,
2280        pname: GLenum,
2281        params: *mut GLint,
2282    ),
2283>;
2284pub type PFNGLGETUNIFORMBLOCKINDEXPROC = ::std::option::Option<
2285    unsafe extern "C" fn(program: GLuint, uniformBlockName: *const GLchar) -> GLuint,
2286>;
2287pub type PFNGLGETACTIVEUNIFORMBLOCKIVPROC = ::std::option::Option<
2288    unsafe extern "C" fn(
2289        program: GLuint,
2290        uniformBlockIndex: GLuint,
2291        pname: GLenum,
2292        params: *mut GLint,
2293    ),
2294>;
2295pub type PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC = ::std::option::Option<
2296    unsafe extern "C" fn(
2297        program: GLuint,
2298        uniformBlockIndex: GLuint,
2299        bufSize: GLsizei,
2300        length: *mut GLsizei,
2301        uniformBlockName: *mut GLchar,
2302    ),
2303>;
2304pub type PFNGLUNIFORMBLOCKBINDINGPROC = ::std::option::Option<
2305    unsafe extern "C" fn(program: GLuint, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint),
2306>;
2307pub type PFNGLDRAWARRAYSINSTANCEDPROC = ::std::option::Option<
2308    unsafe extern "C" fn(mode: GLenum, first: GLint, count: GLsizei, instancecount: GLsizei),
2309>;
2310pub type PFNGLDRAWELEMENTSINSTANCEDPROC = ::std::option::Option<
2311    unsafe extern "C" fn(
2312        mode: GLenum,
2313        count: GLsizei,
2314        type_: GLenum,
2315        indices: *const ::std::os::raw::c_void,
2316        instancecount: GLsizei,
2317    ),
2318>;
2319pub type PFNGLFENCESYNCPROC =
2320    ::std::option::Option<unsafe extern "C" fn(condition: GLenum, flags: GLbitfield) -> GLsync>;
2321pub type PFNGLISSYNCPROC = ::std::option::Option<unsafe extern "C" fn(sync: GLsync) -> GLboolean>;
2322pub type PFNGLDELETESYNCPROC = ::std::option::Option<unsafe extern "C" fn(sync: GLsync)>;
2323pub type PFNGLCLIENTWAITSYNCPROC = ::std::option::Option<
2324    unsafe extern "C" fn(sync: GLsync, flags: GLbitfield, timeout: GLuint64) -> GLenum,
2325>;
2326pub type PFNGLWAITSYNCPROC =
2327    ::std::option::Option<unsafe extern "C" fn(sync: GLsync, flags: GLbitfield, timeout: GLuint64)>;
2328pub type PFNGLGETINTEGER64VPROC =
2329    ::std::option::Option<unsafe extern "C" fn(pname: GLenum, data: *mut GLint64)>;
2330pub type PFNGLGETSYNCIVPROC = ::std::option::Option<
2331    unsafe extern "C" fn(
2332        sync: GLsync,
2333        pname: GLenum,
2334        bufSize: GLsizei,
2335        length: *mut GLsizei,
2336        values: *mut GLint,
2337    ),
2338>;
2339pub type PFNGLGETINTEGER64I_VPROC =
2340    ::std::option::Option<unsafe extern "C" fn(target: GLenum, index: GLuint, data: *mut GLint64)>;
2341pub type PFNGLGETBUFFERPARAMETERI64VPROC = ::std::option::Option<
2342    unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut GLint64),
2343>;
2344pub type PFNGLGENSAMPLERSPROC =
2345    ::std::option::Option<unsafe extern "C" fn(count: GLsizei, samplers: *mut GLuint)>;
2346pub type PFNGLDELETESAMPLERSPROC =
2347    ::std::option::Option<unsafe extern "C" fn(count: GLsizei, samplers: *const GLuint)>;
2348pub type PFNGLISSAMPLERPROC =
2349    ::std::option::Option<unsafe extern "C" fn(sampler: GLuint) -> GLboolean>;
2350pub type PFNGLBINDSAMPLERPROC =
2351    ::std::option::Option<unsafe extern "C" fn(unit: GLuint, sampler: GLuint)>;
2352pub type PFNGLSAMPLERPARAMETERIPROC =
2353    ::std::option::Option<unsafe extern "C" fn(sampler: GLuint, pname: GLenum, param: GLint)>;
2354pub type PFNGLSAMPLERPARAMETERIVPROC = ::std::option::Option<
2355    unsafe extern "C" fn(sampler: GLuint, pname: GLenum, param: *const GLint),
2356>;
2357pub type PFNGLSAMPLERPARAMETERFPROC =
2358    ::std::option::Option<unsafe extern "C" fn(sampler: GLuint, pname: GLenum, param: GLfloat)>;
2359pub type PFNGLSAMPLERPARAMETERFVPROC = ::std::option::Option<
2360    unsafe extern "C" fn(sampler: GLuint, pname: GLenum, param: *const GLfloat),
2361>;
2362pub type PFNGLGETSAMPLERPARAMETERIVPROC =
2363    ::std::option::Option<unsafe extern "C" fn(sampler: GLuint, pname: GLenum, params: *mut GLint)>;
2364pub type PFNGLGETSAMPLERPARAMETERFVPROC = ::std::option::Option<
2365    unsafe extern "C" fn(sampler: GLuint, pname: GLenum, params: *mut GLfloat),
2366>;
2367pub type PFNGLVERTEXATTRIBDIVISORPROC =
2368    ::std::option::Option<unsafe extern "C" fn(index: GLuint, divisor: GLuint)>;
2369pub type PFNGLBINDTRANSFORMFEEDBACKPROC =
2370    ::std::option::Option<unsafe extern "C" fn(target: GLenum, id: GLuint)>;
2371pub type PFNGLDELETETRANSFORMFEEDBACKSPROC =
2372    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, ids: *const GLuint)>;
2373pub type PFNGLGENTRANSFORMFEEDBACKSPROC =
2374    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, ids: *mut GLuint)>;
2375pub type PFNGLISTRANSFORMFEEDBACKPROC =
2376    ::std::option::Option<unsafe extern "C" fn(id: GLuint) -> GLboolean>;
2377pub type PFNGLPAUSETRANSFORMFEEDBACKPROC = ::std::option::Option<unsafe extern "C" fn()>;
2378pub type PFNGLRESUMETRANSFORMFEEDBACKPROC = ::std::option::Option<unsafe extern "C" fn()>;
2379pub type PFNGLGETPROGRAMBINARYPROC = ::std::option::Option<
2380    unsafe extern "C" fn(
2381        program: GLuint,
2382        bufSize: GLsizei,
2383        length: *mut GLsizei,
2384        binaryFormat: *mut GLenum,
2385        binary: *mut ::std::os::raw::c_void,
2386    ),
2387>;
2388pub type PFNGLPROGRAMBINARYPROC = ::std::option::Option<
2389    unsafe extern "C" fn(
2390        program: GLuint,
2391        binaryFormat: GLenum,
2392        binary: *const ::std::os::raw::c_void,
2393        length: GLsizei,
2394    ),
2395>;
2396pub type PFNGLPROGRAMPARAMETERIPROC =
2397    ::std::option::Option<unsafe extern "C" fn(program: GLuint, pname: GLenum, value: GLint)>;
2398pub type PFNGLINVALIDATEFRAMEBUFFERPROC = ::std::option::Option<
2399    unsafe extern "C" fn(target: GLenum, numAttachments: GLsizei, attachments: *const GLenum),
2400>;
2401pub type PFNGLINVALIDATESUBFRAMEBUFFERPROC = ::std::option::Option<
2402    unsafe extern "C" fn(
2403        target: GLenum,
2404        numAttachments: GLsizei,
2405        attachments: *const GLenum,
2406        x: GLint,
2407        y: GLint,
2408        width: GLsizei,
2409        height: GLsizei,
2410    ),
2411>;
2412pub type PFNGLTEXSTORAGE2DPROC = ::std::option::Option<
2413    unsafe extern "C" fn(
2414        target: GLenum,
2415        levels: GLsizei,
2416        internalformat: GLenum,
2417        width: GLsizei,
2418        height: GLsizei,
2419    ),
2420>;
2421pub type PFNGLTEXSTORAGE3DPROC = ::std::option::Option<
2422    unsafe extern "C" fn(
2423        target: GLenum,
2424        levels: GLsizei,
2425        internalformat: GLenum,
2426        width: GLsizei,
2427        height: GLsizei,
2428        depth: GLsizei,
2429    ),
2430>;
2431pub type PFNGLGETINTERNALFORMATIVPROC = ::std::option::Option<
2432    unsafe extern "C" fn(
2433        target: GLenum,
2434        internalformat: GLenum,
2435        pname: GLenum,
2436        bufSize: GLsizei,
2437        params: *mut GLint,
2438    ),
2439>;
2440extern "C" {
2441    pub fn glReadBuffer(src: GLenum);
2442}
2443extern "C" {
2444    pub fn glDrawRangeElements(
2445        mode: GLenum,
2446        start: GLuint,
2447        end: GLuint,
2448        count: GLsizei,
2449        type_: GLenum,
2450        indices: *const ::std::os::raw::c_void,
2451    );
2452}
2453extern "C" {
2454    pub fn glTexImage3D(
2455        target: GLenum,
2456        level: GLint,
2457        internalformat: GLint,
2458        width: GLsizei,
2459        height: GLsizei,
2460        depth: GLsizei,
2461        border: GLint,
2462        format: GLenum,
2463        type_: GLenum,
2464        pixels: *const ::std::os::raw::c_void,
2465    );
2466}
2467extern "C" {
2468    pub fn glTexSubImage3D(
2469        target: GLenum,
2470        level: GLint,
2471        xoffset: GLint,
2472        yoffset: GLint,
2473        zoffset: GLint,
2474        width: GLsizei,
2475        height: GLsizei,
2476        depth: GLsizei,
2477        format: GLenum,
2478        type_: GLenum,
2479        pixels: *const ::std::os::raw::c_void,
2480    );
2481}
2482extern "C" {
2483    pub fn glCopyTexSubImage3D(
2484        target: GLenum,
2485        level: GLint,
2486        xoffset: GLint,
2487        yoffset: GLint,
2488        zoffset: GLint,
2489        x: GLint,
2490        y: GLint,
2491        width: GLsizei,
2492        height: GLsizei,
2493    );
2494}
2495extern "C" {
2496    pub fn glCompressedTexImage3D(
2497        target: GLenum,
2498        level: GLint,
2499        internalformat: GLenum,
2500        width: GLsizei,
2501        height: GLsizei,
2502        depth: GLsizei,
2503        border: GLint,
2504        imageSize: GLsizei,
2505        data: *const ::std::os::raw::c_void,
2506    );
2507}
2508extern "C" {
2509    pub fn glCompressedTexSubImage3D(
2510        target: GLenum,
2511        level: GLint,
2512        xoffset: GLint,
2513        yoffset: GLint,
2514        zoffset: GLint,
2515        width: GLsizei,
2516        height: GLsizei,
2517        depth: GLsizei,
2518        format: GLenum,
2519        imageSize: GLsizei,
2520        data: *const ::std::os::raw::c_void,
2521    );
2522}
2523extern "C" {
2524    pub fn glGenQueries(n: GLsizei, ids: *mut GLuint);
2525}
2526extern "C" {
2527    pub fn glDeleteQueries(n: GLsizei, ids: *const GLuint);
2528}
2529extern "C" {
2530    pub fn glIsQuery(id: GLuint) -> GLboolean;
2531}
2532extern "C" {
2533    pub fn glBeginQuery(target: GLenum, id: GLuint);
2534}
2535extern "C" {
2536    pub fn glEndQuery(target: GLenum);
2537}
2538extern "C" {
2539    pub fn glGetQueryiv(target: GLenum, pname: GLenum, params: *mut GLint);
2540}
2541extern "C" {
2542    pub fn glGetQueryObjectuiv(id: GLuint, pname: GLenum, params: *mut GLuint);
2543}
2544extern "C" {
2545    pub fn glUnmapBuffer(target: GLenum) -> GLboolean;
2546}
2547extern "C" {
2548    pub fn glGetBufferPointerv(
2549        target: GLenum,
2550        pname: GLenum,
2551        params: *mut *mut ::std::os::raw::c_void,
2552    );
2553}
2554extern "C" {
2555    pub fn glDrawBuffers(n: GLsizei, bufs: *const GLenum);
2556}
2557extern "C" {
2558    pub fn glUniformMatrix2x3fv(
2559        location: GLint,
2560        count: GLsizei,
2561        transpose: GLboolean,
2562        value: *const GLfloat,
2563    );
2564}
2565extern "C" {
2566    pub fn glUniformMatrix3x2fv(
2567        location: GLint,
2568        count: GLsizei,
2569        transpose: GLboolean,
2570        value: *const GLfloat,
2571    );
2572}
2573extern "C" {
2574    pub fn glUniformMatrix2x4fv(
2575        location: GLint,
2576        count: GLsizei,
2577        transpose: GLboolean,
2578        value: *const GLfloat,
2579    );
2580}
2581extern "C" {
2582    pub fn glUniformMatrix4x2fv(
2583        location: GLint,
2584        count: GLsizei,
2585        transpose: GLboolean,
2586        value: *const GLfloat,
2587    );
2588}
2589extern "C" {
2590    pub fn glUniformMatrix3x4fv(
2591        location: GLint,
2592        count: GLsizei,
2593        transpose: GLboolean,
2594        value: *const GLfloat,
2595    );
2596}
2597extern "C" {
2598    pub fn glUniformMatrix4x3fv(
2599        location: GLint,
2600        count: GLsizei,
2601        transpose: GLboolean,
2602        value: *const GLfloat,
2603    );
2604}
2605extern "C" {
2606    pub fn glBlitFramebuffer(
2607        srcX0: GLint,
2608        srcY0: GLint,
2609        srcX1: GLint,
2610        srcY1: GLint,
2611        dstX0: GLint,
2612        dstY0: GLint,
2613        dstX1: GLint,
2614        dstY1: GLint,
2615        mask: GLbitfield,
2616        filter: GLenum,
2617    );
2618}
2619extern "C" {
2620    pub fn glRenderbufferStorageMultisample(
2621        target: GLenum,
2622        samples: GLsizei,
2623        internalformat: GLenum,
2624        width: GLsizei,
2625        height: GLsizei,
2626    );
2627}
2628extern "C" {
2629    pub fn glFramebufferTextureLayer(
2630        target: GLenum,
2631        attachment: GLenum,
2632        texture: GLuint,
2633        level: GLint,
2634        layer: GLint,
2635    );
2636}
2637extern "C" {
2638    pub fn glMapBufferRange(
2639        target: GLenum,
2640        offset: GLintptr,
2641        length: GLsizeiptr,
2642        access: GLbitfield,
2643    ) -> *mut ::std::os::raw::c_void;
2644}
2645extern "C" {
2646    pub fn glFlushMappedBufferRange(target: GLenum, offset: GLintptr, length: GLsizeiptr);
2647}
2648extern "C" {
2649    pub fn glBindVertexArray(array: GLuint);
2650}
2651extern "C" {
2652    pub fn glDeleteVertexArrays(n: GLsizei, arrays: *const GLuint);
2653}
2654extern "C" {
2655    pub fn glGenVertexArrays(n: GLsizei, arrays: *mut GLuint);
2656}
2657extern "C" {
2658    pub fn glIsVertexArray(array: GLuint) -> GLboolean;
2659}
2660extern "C" {
2661    pub fn glGetIntegeri_v(target: GLenum, index: GLuint, data: *mut GLint);
2662}
2663extern "C" {
2664    pub fn glBeginTransformFeedback(primitiveMode: GLenum);
2665}
2666extern "C" {
2667    pub fn glEndTransformFeedback();
2668}
2669extern "C" {
2670    pub fn glBindBufferRange(
2671        target: GLenum,
2672        index: GLuint,
2673        buffer: GLuint,
2674        offset: GLintptr,
2675        size: GLsizeiptr,
2676    );
2677}
2678extern "C" {
2679    pub fn glBindBufferBase(target: GLenum, index: GLuint, buffer: GLuint);
2680}
2681extern "C" {
2682    pub fn glTransformFeedbackVaryings(
2683        program: GLuint,
2684        count: GLsizei,
2685        varyings: *const *const GLchar,
2686        bufferMode: GLenum,
2687    );
2688}
2689extern "C" {
2690    pub fn glGetTransformFeedbackVarying(
2691        program: GLuint,
2692        index: GLuint,
2693        bufSize: GLsizei,
2694        length: *mut GLsizei,
2695        size: *mut GLsizei,
2696        type_: *mut GLenum,
2697        name: *mut GLchar,
2698    );
2699}
2700extern "C" {
2701    pub fn glVertexAttribIPointer(
2702        index: GLuint,
2703        size: GLint,
2704        type_: GLenum,
2705        stride: GLsizei,
2706        pointer: *const ::std::os::raw::c_void,
2707    );
2708}
2709extern "C" {
2710    pub fn glGetVertexAttribIiv(index: GLuint, pname: GLenum, params: *mut GLint);
2711}
2712extern "C" {
2713    pub fn glGetVertexAttribIuiv(index: GLuint, pname: GLenum, params: *mut GLuint);
2714}
2715extern "C" {
2716    pub fn glVertexAttribI4i(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint);
2717}
2718extern "C" {
2719    pub fn glVertexAttribI4ui(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint);
2720}
2721extern "C" {
2722    pub fn glVertexAttribI4iv(index: GLuint, v: *const GLint);
2723}
2724extern "C" {
2725    pub fn glVertexAttribI4uiv(index: GLuint, v: *const GLuint);
2726}
2727extern "C" {
2728    pub fn glGetUniformuiv(program: GLuint, location: GLint, params: *mut GLuint);
2729}
2730extern "C" {
2731    pub fn glGetFragDataLocation(program: GLuint, name: *const GLchar) -> GLint;
2732}
2733extern "C" {
2734    pub fn glUniform1ui(location: GLint, v0: GLuint);
2735}
2736extern "C" {
2737    pub fn glUniform2ui(location: GLint, v0: GLuint, v1: GLuint);
2738}
2739extern "C" {
2740    pub fn glUniform3ui(location: GLint, v0: GLuint, v1: GLuint, v2: GLuint);
2741}
2742extern "C" {
2743    pub fn glUniform4ui(location: GLint, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint);
2744}
2745extern "C" {
2746    pub fn glUniform1uiv(location: GLint, count: GLsizei, value: *const GLuint);
2747}
2748extern "C" {
2749    pub fn glUniform2uiv(location: GLint, count: GLsizei, value: *const GLuint);
2750}
2751extern "C" {
2752    pub fn glUniform3uiv(location: GLint, count: GLsizei, value: *const GLuint);
2753}
2754extern "C" {
2755    pub fn glUniform4uiv(location: GLint, count: GLsizei, value: *const GLuint);
2756}
2757extern "C" {
2758    pub fn glClearBufferiv(buffer: GLenum, drawbuffer: GLint, value: *const GLint);
2759}
2760extern "C" {
2761    pub fn glClearBufferuiv(buffer: GLenum, drawbuffer: GLint, value: *const GLuint);
2762}
2763extern "C" {
2764    pub fn glClearBufferfv(buffer: GLenum, drawbuffer: GLint, value: *const GLfloat);
2765}
2766extern "C" {
2767    pub fn glClearBufferfi(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint);
2768}
2769extern "C" {
2770    pub fn glGetStringi(name: GLenum, index: GLuint) -> *const GLubyte;
2771}
2772extern "C" {
2773    pub fn glCopyBufferSubData(
2774        readTarget: GLenum,
2775        writeTarget: GLenum,
2776        readOffset: GLintptr,
2777        writeOffset: GLintptr,
2778        size: GLsizeiptr,
2779    );
2780}
2781extern "C" {
2782    pub fn glGetUniformIndices(
2783        program: GLuint,
2784        uniformCount: GLsizei,
2785        uniformNames: *const *const GLchar,
2786        uniformIndices: *mut GLuint,
2787    );
2788}
2789extern "C" {
2790    pub fn glGetActiveUniformsiv(
2791        program: GLuint,
2792        uniformCount: GLsizei,
2793        uniformIndices: *const GLuint,
2794        pname: GLenum,
2795        params: *mut GLint,
2796    );
2797}
2798extern "C" {
2799    pub fn glGetUniformBlockIndex(program: GLuint, uniformBlockName: *const GLchar) -> GLuint;
2800}
2801extern "C" {
2802    pub fn glGetActiveUniformBlockiv(
2803        program: GLuint,
2804        uniformBlockIndex: GLuint,
2805        pname: GLenum,
2806        params: *mut GLint,
2807    );
2808}
2809extern "C" {
2810    pub fn glGetActiveUniformBlockName(
2811        program: GLuint,
2812        uniformBlockIndex: GLuint,
2813        bufSize: GLsizei,
2814        length: *mut GLsizei,
2815        uniformBlockName: *mut GLchar,
2816    );
2817}
2818extern "C" {
2819    pub fn glUniformBlockBinding(
2820        program: GLuint,
2821        uniformBlockIndex: GLuint,
2822        uniformBlockBinding: GLuint,
2823    );
2824}
2825extern "C" {
2826    pub fn glDrawArraysInstanced(
2827        mode: GLenum,
2828        first: GLint,
2829        count: GLsizei,
2830        instancecount: GLsizei,
2831    );
2832}
2833extern "C" {
2834    pub fn glDrawElementsInstanced(
2835        mode: GLenum,
2836        count: GLsizei,
2837        type_: GLenum,
2838        indices: *const ::std::os::raw::c_void,
2839        instancecount: GLsizei,
2840    );
2841}
2842extern "C" {
2843    pub fn glFenceSync(condition: GLenum, flags: GLbitfield) -> GLsync;
2844}
2845extern "C" {
2846    pub fn glIsSync(sync: GLsync) -> GLboolean;
2847}
2848extern "C" {
2849    pub fn glDeleteSync(sync: GLsync);
2850}
2851extern "C" {
2852    pub fn glClientWaitSync(sync: GLsync, flags: GLbitfield, timeout: GLuint64) -> GLenum;
2853}
2854extern "C" {
2855    pub fn glWaitSync(sync: GLsync, flags: GLbitfield, timeout: GLuint64);
2856}
2857extern "C" {
2858    pub fn glGetInteger64v(pname: GLenum, data: *mut GLint64);
2859}
2860extern "C" {
2861    pub fn glGetSynciv(
2862        sync: GLsync,
2863        pname: GLenum,
2864        bufSize: GLsizei,
2865        length: *mut GLsizei,
2866        values: *mut GLint,
2867    );
2868}
2869extern "C" {
2870    pub fn glGetInteger64i_v(target: GLenum, index: GLuint, data: *mut GLint64);
2871}
2872extern "C" {
2873    pub fn glGetBufferParameteri64v(target: GLenum, pname: GLenum, params: *mut GLint64);
2874}
2875extern "C" {
2876    pub fn glGenSamplers(count: GLsizei, samplers: *mut GLuint);
2877}
2878extern "C" {
2879    pub fn glDeleteSamplers(count: GLsizei, samplers: *const GLuint);
2880}
2881extern "C" {
2882    pub fn glIsSampler(sampler: GLuint) -> GLboolean;
2883}
2884extern "C" {
2885    pub fn glBindSampler(unit: GLuint, sampler: GLuint);
2886}
2887extern "C" {
2888    pub fn glSamplerParameteri(sampler: GLuint, pname: GLenum, param: GLint);
2889}
2890extern "C" {
2891    pub fn glSamplerParameteriv(sampler: GLuint, pname: GLenum, param: *const GLint);
2892}
2893extern "C" {
2894    pub fn glSamplerParameterf(sampler: GLuint, pname: GLenum, param: GLfloat);
2895}
2896extern "C" {
2897    pub fn glSamplerParameterfv(sampler: GLuint, pname: GLenum, param: *const GLfloat);
2898}
2899extern "C" {
2900    pub fn glGetSamplerParameteriv(sampler: GLuint, pname: GLenum, params: *mut GLint);
2901}
2902extern "C" {
2903    pub fn glGetSamplerParameterfv(sampler: GLuint, pname: GLenum, params: *mut GLfloat);
2904}
2905extern "C" {
2906    pub fn glVertexAttribDivisor(index: GLuint, divisor: GLuint);
2907}
2908extern "C" {
2909    pub fn glBindTransformFeedback(target: GLenum, id: GLuint);
2910}
2911extern "C" {
2912    pub fn glDeleteTransformFeedbacks(n: GLsizei, ids: *const GLuint);
2913}
2914extern "C" {
2915    pub fn glGenTransformFeedbacks(n: GLsizei, ids: *mut GLuint);
2916}
2917extern "C" {
2918    pub fn glIsTransformFeedback(id: GLuint) -> GLboolean;
2919}
2920extern "C" {
2921    pub fn glPauseTransformFeedback();
2922}
2923extern "C" {
2924    pub fn glResumeTransformFeedback();
2925}
2926extern "C" {
2927    pub fn glGetProgramBinary(
2928        program: GLuint,
2929        bufSize: GLsizei,
2930        length: *mut GLsizei,
2931        binaryFormat: *mut GLenum,
2932        binary: *mut ::std::os::raw::c_void,
2933    );
2934}
2935extern "C" {
2936    pub fn glProgramBinary(
2937        program: GLuint,
2938        binaryFormat: GLenum,
2939        binary: *const ::std::os::raw::c_void,
2940        length: GLsizei,
2941    );
2942}
2943extern "C" {
2944    pub fn glProgramParameteri(program: GLuint, pname: GLenum, value: GLint);
2945}
2946extern "C" {
2947    pub fn glInvalidateFramebuffer(
2948        target: GLenum,
2949        numAttachments: GLsizei,
2950        attachments: *const GLenum,
2951    );
2952}
2953extern "C" {
2954    pub fn glInvalidateSubFramebuffer(
2955        target: GLenum,
2956        numAttachments: GLsizei,
2957        attachments: *const GLenum,
2958        x: GLint,
2959        y: GLint,
2960        width: GLsizei,
2961        height: GLsizei,
2962    );
2963}
2964extern "C" {
2965    pub fn glTexStorage2D(
2966        target: GLenum,
2967        levels: GLsizei,
2968        internalformat: GLenum,
2969        width: GLsizei,
2970        height: GLsizei,
2971    );
2972}
2973extern "C" {
2974    pub fn glTexStorage3D(
2975        target: GLenum,
2976        levels: GLsizei,
2977        internalformat: GLenum,
2978        width: GLsizei,
2979        height: GLsizei,
2980        depth: GLsizei,
2981    );
2982}
2983extern "C" {
2984    pub fn glGetInternalformativ(
2985        target: GLenum,
2986        internalformat: GLenum,
2987        pname: GLenum,
2988        bufSize: GLsizei,
2989        params: *mut GLint,
2990    );
2991}