1 #![allow(non_upper_case_globals)]
2 #![allow(clippy::too_many_arguments)]
3 #![allow(clippy::trivially_copy_pass_by_ref)]
4 #![allow(clippy::unreadable_literal)]
5 #![allow(clippy::missing_safety_doc)]
6 #![allow(clippy::pedantic)] // For anyone using pedantic and a source dep, this is needed
7 
8 use core::fmt::Debug;
9 use core::hash::Hash;
10 use std::collections::HashSet;
11 
12 mod version;
13 pub use version::Version;
14 
15 #[cfg(any(not(target_arch = "wasm32"), target_os = "emscripten"))]
16 mod native;
17 #[cfg(any(not(target_arch = "wasm32"), target_os = "emscripten"))]
18 pub use native::*;
19 #[cfg(any(not(target_arch = "wasm32"), target_os = "emscripten"))]
20 mod gl46;
21 
22 #[cfg(all(target_arch = "wasm32", not(target_os = "emscripten")))]
23 #[path = "web_sys.rs"]
24 mod web;
25 #[cfg(all(target_arch = "wasm32", not(target_os = "emscripten")))]
26 pub use web::*;
27 
28 pub type Shader = <Context as HasContext>::Shader;
29 pub type Program = <Context as HasContext>::Program;
30 pub type Buffer = <Context as HasContext>::Buffer;
31 pub type VertexArray = <Context as HasContext>::VertexArray;
32 pub type Texture = <Context as HasContext>::Texture;
33 pub type Sampler = <Context as HasContext>::Sampler;
34 pub type Fence = <Context as HasContext>::Fence;
35 pub type Framebuffer = <Context as HasContext>::Framebuffer;
36 pub type Renderbuffer = <Context as HasContext>::Renderbuffer;
37 pub type Query = <Context as HasContext>::Query;
38 pub type UniformLocation = <Context as HasContext>::UniformLocation;
39 pub type TransformFeedback = <Context as HasContext>::TransformFeedback;
40 
41 pub struct ActiveUniform {
42     pub size: i32,
43     pub utype: u32,
44     pub name: String,
45 }
46 
47 pub struct ActiveAttribute {
48     pub size: i32,
49     pub atype: u32,
50     pub name: String,
51 }
52 
53 pub struct ActiveTransformFeedback {
54     pub size: i32,
55     pub tftype: u32,
56     pub name: String,
57 }
58 
59 #[derive(Debug)]
60 pub struct DebugMessageLogEntry {
61     source: u32,
62     msg_type: u32,
63     id: u32,
64     severity: u32,
65     message: String,
66 }
67 
68 pub enum PixelPackData<'a> {
69     BufferOffset(u32),
70     Slice(&'a mut [u8]),
71 }
72 
73 pub enum PixelUnpackData<'a> {
74     BufferOffset(u32),
75     Slice(&'a [u8]),
76 }
77 
78 pub enum CompressedPixelUnpackData<'a> {
79     BufferRange(core::ops::Range<u32>),
80     Slice(&'a [u8]),
81 }
82 
83 pub trait HasContext {
84     type Shader: Copy + Clone + Debug + Eq + Hash + Ord + PartialEq + PartialOrd;
85     type Program: Copy + Clone + Debug + Eq + Hash + Ord + PartialEq + PartialOrd;
86     type Buffer: Copy + Clone + Debug + Eq + Hash + Ord + PartialEq + PartialOrd;
87     type VertexArray: Copy + Clone + Debug + Eq + Hash + Ord + PartialEq + PartialOrd;
88     type Texture: Copy + Clone + Debug + Eq + Hash + Ord + PartialEq + PartialOrd;
89     type Sampler: Copy + Clone + Debug + Eq + Hash + Ord + PartialEq + PartialOrd;
90     type Fence: Copy + Clone + Debug + Eq + Hash + Ord + PartialEq + PartialOrd;
91     type Framebuffer: Copy + Clone + Debug + Eq + Hash + Ord + PartialEq + PartialOrd;
92     type Renderbuffer: Copy + Clone + Debug + Eq + Hash + Ord + PartialEq + PartialOrd;
93     type Query: Copy + Clone + Debug + Eq + Hash + Ord + PartialEq + PartialOrd;
94     type TransformFeedback: Copy + Clone + Debug + Eq + Hash + Ord + PartialEq + PartialOrd;
95     type UniformLocation: Clone + Debug;
96 
supported_extensions(&self) -> &HashSet<String>97     fn supported_extensions(&self) -> &HashSet<String>;
98 
supports_debug(&self) -> bool99     fn supports_debug(&self) -> bool;
100 
version(&self) -> &Version101     fn version(&self) -> &Version;
102 
create_framebuffer(&self) -> Result<Self::Framebuffer, String>103     unsafe fn create_framebuffer(&self) -> Result<Self::Framebuffer, String>;
104 
is_framebuffer(&self, framebuffer: Self::Framebuffer) -> bool105     unsafe fn is_framebuffer(&self, framebuffer: Self::Framebuffer) -> bool;
106 
create_query(&self) -> Result<Self::Query, String>107     unsafe fn create_query(&self) -> Result<Self::Query, String>;
108 
create_renderbuffer(&self) -> Result<Self::Renderbuffer, String>109     unsafe fn create_renderbuffer(&self) -> Result<Self::Renderbuffer, String>;
110 
is_renderbuffer(&self, renderbuffer: Self::Renderbuffer) -> bool111     unsafe fn is_renderbuffer(&self, renderbuffer: Self::Renderbuffer) -> bool;
112 
create_sampler(&self) -> Result<Self::Sampler, String>113     unsafe fn create_sampler(&self) -> Result<Self::Sampler, String>;
114 
create_shader(&self, shader_type: u32) -> Result<Self::Shader, String>115     unsafe fn create_shader(&self, shader_type: u32) -> Result<Self::Shader, String>;
116 
is_shader(&self, shader: Self::Shader) -> bool117     unsafe fn is_shader(&self, shader: Self::Shader) -> bool;
118 
create_texture(&self) -> Result<Self::Texture, String>119     unsafe fn create_texture(&self) -> Result<Self::Texture, String>;
120 
is_texture(&self, texture: Self::Texture) -> bool121     unsafe fn is_texture(&self, texture: Self::Texture) -> bool;
122 
delete_shader(&self, shader: Self::Shader)123     unsafe fn delete_shader(&self, shader: Self::Shader);
124 
shader_source(&self, shader: Self::Shader, source: &str)125     unsafe fn shader_source(&self, shader: Self::Shader, source: &str);
126 
compile_shader(&self, shader: Self::Shader)127     unsafe fn compile_shader(&self, shader: Self::Shader);
128 
get_shader_compile_status(&self, shader: Self::Shader) -> bool129     unsafe fn get_shader_compile_status(&self, shader: Self::Shader) -> bool;
130 
get_shader_info_log(&self, shader: Self::Shader) -> String131     unsafe fn get_shader_info_log(&self, shader: Self::Shader) -> String;
132 
get_tex_image( &self, target: u32, level: i32, format: u32, ty: u32, pixels: PixelPackData, )133     unsafe fn get_tex_image(
134         &self,
135         target: u32,
136         level: i32,
137         format: u32,
138         ty: u32,
139         pixels: PixelPackData,
140     );
141 
create_program(&self) -> Result<Self::Program, String>142     unsafe fn create_program(&self) -> Result<Self::Program, String>;
143 
is_program(&self, program: Self::Program) -> bool144     unsafe fn is_program(&self, program: Self::Program) -> bool;
145 
delete_program(&self, program: Self::Program)146     unsafe fn delete_program(&self, program: Self::Program);
147 
attach_shader(&self, program: Self::Program, shader: Self::Shader)148     unsafe fn attach_shader(&self, program: Self::Program, shader: Self::Shader);
149 
detach_shader(&self, program: Self::Program, shader: Self::Shader)150     unsafe fn detach_shader(&self, program: Self::Program, shader: Self::Shader);
151 
link_program(&self, program: Self::Program)152     unsafe fn link_program(&self, program: Self::Program);
153 
get_program_link_status(&self, program: Self::Program) -> bool154     unsafe fn get_program_link_status(&self, program: Self::Program) -> bool;
155 
get_program_info_log(&self, program: Self::Program) -> String156     unsafe fn get_program_info_log(&self, program: Self::Program) -> String;
157 
get_active_uniforms(&self, program: Self::Program) -> u32158     unsafe fn get_active_uniforms(&self, program: Self::Program) -> u32;
159 
get_active_uniform( &self, program: Self::Program, index: u32, ) -> Option<ActiveUniform>160     unsafe fn get_active_uniform(
161         &self,
162         program: Self::Program,
163         index: u32,
164     ) -> Option<ActiveUniform>;
165 
use_program(&self, program: Option<Self::Program>)166     unsafe fn use_program(&self, program: Option<Self::Program>);
167 
create_buffer(&self) -> Result<Self::Buffer, String>168     unsafe fn create_buffer(&self) -> Result<Self::Buffer, String>;
169 
is_buffer(&self, buffer: Self::Buffer) -> bool170     unsafe fn is_buffer(&self, buffer: Self::Buffer) -> bool;
171 
bind_buffer(&self, target: u32, buffer: Option<Self::Buffer>)172     unsafe fn bind_buffer(&self, target: u32, buffer: Option<Self::Buffer>);
173 
bind_buffer_base(&self, target: u32, index: u32, buffer: Option<Self::Buffer>)174     unsafe fn bind_buffer_base(&self, target: u32, index: u32, buffer: Option<Self::Buffer>);
175 
bind_buffer_range( &self, target: u32, index: u32, buffer: Option<Self::Buffer>, offset: i32, size: i32, )176     unsafe fn bind_buffer_range(
177         &self,
178         target: u32,
179         index: u32,
180         buffer: Option<Self::Buffer>,
181         offset: i32,
182         size: i32,
183     );
184 
bind_vertex_buffer( &self, binding_index: u32, buffer: Option<Buffer>, offset: i32, stride: i32, )185     unsafe fn bind_vertex_buffer(
186         &self,
187         binding_index: u32,
188         buffer: Option<Buffer>,
189         offset: i32,
190         stride: i32,
191     );
192 
bind_framebuffer(&self, target: u32, framebuffer: Option<Self::Framebuffer>)193     unsafe fn bind_framebuffer(&self, target: u32, framebuffer: Option<Self::Framebuffer>);
194 
bind_renderbuffer(&self, target: u32, renderbuffer: Option<Self::Renderbuffer>)195     unsafe fn bind_renderbuffer(&self, target: u32, renderbuffer: Option<Self::Renderbuffer>);
196 
blit_framebuffer( &self, src_x0: i32, src_y0: i32, src_x1: i32, src_y1: i32, dst_x0: i32, dst_y0: i32, dst_x1: i32, dst_y1: i32, mask: u32, filter: u32, )197     unsafe fn blit_framebuffer(
198         &self,
199         src_x0: i32,
200         src_y0: i32,
201         src_x1: i32,
202         src_y1: i32,
203         dst_x0: i32,
204         dst_y0: i32,
205         dst_x1: i32,
206         dst_y1: i32,
207         mask: u32,
208         filter: u32,
209     );
210 
create_vertex_array(&self) -> Result<Self::VertexArray, String>211     unsafe fn create_vertex_array(&self) -> Result<Self::VertexArray, String>;
212 
delete_vertex_array(&self, vertex_array: Self::VertexArray)213     unsafe fn delete_vertex_array(&self, vertex_array: Self::VertexArray);
214 
bind_vertex_array(&self, vertex_array: Option<Self::VertexArray>)215     unsafe fn bind_vertex_array(&self, vertex_array: Option<Self::VertexArray>);
216 
clear_color(&self, red: f32, green: f32, blue: f32, alpha: f32)217     unsafe fn clear_color(&self, red: f32, green: f32, blue: f32, alpha: f32);
218 
supports_f64_precision() -> bool219     unsafe fn supports_f64_precision() -> bool;
220 
clear_depth_f64(&self, depth: f64)221     unsafe fn clear_depth_f64(&self, depth: f64);
222 
clear_depth_f32(&self, depth: f32)223     unsafe fn clear_depth_f32(&self, depth: f32);
224 
clear_stencil(&self, stencil: i32)225     unsafe fn clear_stencil(&self, stencil: i32);
226 
clear(&self, mask: u32)227     unsafe fn clear(&self, mask: u32);
228 
patch_parameter_i32(&self, parameter: u32, value: i32)229     unsafe fn patch_parameter_i32(&self, parameter: u32, value: i32);
230 
pixel_store_i32(&self, parameter: u32, value: i32)231     unsafe fn pixel_store_i32(&self, parameter: u32, value: i32);
232 
pixel_store_bool(&self, parameter: u32, value: bool)233     unsafe fn pixel_store_bool(&self, parameter: u32, value: bool);
234 
bind_frag_data_location(&self, program: Self::Program, color_number: u32, name: &str)235     unsafe fn bind_frag_data_location(&self, program: Self::Program, color_number: u32, name: &str);
236 
buffer_data_size(&self, target: u32, size: i32, usage: u32)237     unsafe fn buffer_data_size(&self, target: u32, size: i32, usage: u32);
238 
buffer_data_u8_slice(&self, target: u32, data: &[u8], usage: u32)239     unsafe fn buffer_data_u8_slice(&self, target: u32, data: &[u8], usage: u32);
240 
buffer_sub_data_u8_slice(&self, target: u32, offset: i32, src_data: &[u8])241     unsafe fn buffer_sub_data_u8_slice(&self, target: u32, offset: i32, src_data: &[u8]);
242 
get_buffer_sub_data(&self, target: u32, offset: i32, dst_data: &mut [u8])243     unsafe fn get_buffer_sub_data(&self, target: u32, offset: i32, dst_data: &mut [u8]);
244 
buffer_storage(&self, target: u32, size: i32, data: Option<&[u8]>, flags: u32)245     unsafe fn buffer_storage(&self, target: u32, size: i32, data: Option<&[u8]>, flags: u32);
246 
check_framebuffer_status(&self, target: u32) -> u32247     unsafe fn check_framebuffer_status(&self, target: u32) -> u32;
248 
clear_buffer_i32_slice(&self, target: u32, draw_buffer: u32, values: &[i32])249     unsafe fn clear_buffer_i32_slice(&self, target: u32, draw_buffer: u32, values: &[i32]);
250 
clear_buffer_u32_slice(&self, target: u32, draw_buffer: u32, values: &[u32])251     unsafe fn clear_buffer_u32_slice(&self, target: u32, draw_buffer: u32, values: &[u32]);
252 
clear_buffer_f32_slice(&self, target: u32, draw_buffer: u32, values: &[f32])253     unsafe fn clear_buffer_f32_slice(&self, target: u32, draw_buffer: u32, values: &[f32]);
254 
clear_buffer_depth_stencil( &self, target: u32, draw_buffer: u32, depth: f32, stencil: i32, )255     unsafe fn clear_buffer_depth_stencil(
256         &self,
257         target: u32,
258         draw_buffer: u32,
259         depth: f32,
260         stencil: i32,
261     );
262 
client_wait_sync(&self, fence: Self::Fence, flags: u32, timeout: i32) -> u32263     unsafe fn client_wait_sync(&self, fence: Self::Fence, flags: u32, timeout: i32) -> u32;
wait_sync(&self, fence: Self::Fence, flags: u32, timeout: u64)264     unsafe fn wait_sync(&self, fence: Self::Fence, flags: u32, timeout: u64);
265 
copy_buffer_sub_data( &self, src_target: u32, dst_target: u32, src_offset: i32, dst_offset: i32, size: i32, )266     unsafe fn copy_buffer_sub_data(
267         &self,
268         src_target: u32,
269         dst_target: u32,
270         src_offset: i32,
271         dst_offset: i32,
272         size: i32,
273     );
274 
copy_tex_image_2d( &self, target: u32, level: i32, internal_format: u32, x: i32, y: i32, width: i32, height: i32, border: i32, )275     unsafe fn copy_tex_image_2d(
276         &self,
277         target: u32,
278         level: i32,
279         internal_format: u32,
280         x: i32,
281         y: i32,
282         width: i32,
283         height: i32,
284         border: i32,
285     );
286 
copy_tex_sub_image_2d( &self, target: u32, level: i32, x_offset: i32, y_offset: i32, x: i32, y: i32, width: i32, height: i32, )287     unsafe fn copy_tex_sub_image_2d(
288         &self,
289         target: u32,
290         level: i32,
291         x_offset: i32,
292         y_offset: i32,
293         x: i32,
294         y: i32,
295         width: i32,
296         height: i32,
297     );
298 
copy_tex_sub_image_3d( &self, target: u32, level: i32, x_offset: i32, y_offset: i32, z_offset: i32, x: i32, y: i32, width: i32, height: i32, )299     unsafe fn copy_tex_sub_image_3d(
300         &self,
301         target: u32,
302         level: i32,
303         x_offset: i32,
304         y_offset: i32,
305         z_offset: i32,
306         x: i32,
307         y: i32,
308         width: i32,
309         height: i32,
310     );
311 
delete_buffer(&self, buffer: Self::Buffer)312     unsafe fn delete_buffer(&self, buffer: Self::Buffer);
313 
delete_framebuffer(&self, framebuffer: Self::Framebuffer)314     unsafe fn delete_framebuffer(&self, framebuffer: Self::Framebuffer);
315 
delete_query(&self, query: Self::Query)316     unsafe fn delete_query(&self, query: Self::Query);
317 
delete_renderbuffer(&self, renderbuffer: Self::Renderbuffer)318     unsafe fn delete_renderbuffer(&self, renderbuffer: Self::Renderbuffer);
319 
delete_sampler(&self, texture: Self::Sampler)320     unsafe fn delete_sampler(&self, texture: Self::Sampler);
321 
delete_sync(&self, fence: Self::Fence)322     unsafe fn delete_sync(&self, fence: Self::Fence);
323 
delete_texture(&self, texture: Self::Texture)324     unsafe fn delete_texture(&self, texture: Self::Texture);
325 
disable(&self, parameter: u32)326     unsafe fn disable(&self, parameter: u32);
327 
disable_draw_buffer(&self, parameter: u32, draw_buffer: u32)328     unsafe fn disable_draw_buffer(&self, parameter: u32, draw_buffer: u32);
329 
disable_vertex_attrib_array(&self, index: u32)330     unsafe fn disable_vertex_attrib_array(&self, index: u32);
331 
dispatch_compute(&self, groups_x: u32, groups_y: u32, groups_z: u32)332     unsafe fn dispatch_compute(&self, groups_x: u32, groups_y: u32, groups_z: u32);
333 
dispatch_compute_indirect(&self, offset: i32)334     unsafe fn dispatch_compute_indirect(&self, offset: i32);
335 
draw_arrays(&self, mode: u32, first: i32, count: i32)336     unsafe fn draw_arrays(&self, mode: u32, first: i32, count: i32);
337 
draw_arrays_instanced(&self, mode: u32, first: i32, count: i32, instance_count: i32)338     unsafe fn draw_arrays_instanced(&self, mode: u32, first: i32, count: i32, instance_count: i32);
339 
draw_arrays_instanced_base_instance( &self, mode: u32, first: i32, count: i32, instance_count: i32, base_instance: u32, )340     unsafe fn draw_arrays_instanced_base_instance(
341         &self,
342         mode: u32,
343         first: i32,
344         count: i32,
345         instance_count: i32,
346         base_instance: u32,
347     );
348 
draw_arrays_indirect_offset(&self, mode: u32, offset: i32)349     unsafe fn draw_arrays_indirect_offset(&self, mode: u32, offset: i32);
350 
draw_buffer(&self, buffer: u32)351     unsafe fn draw_buffer(&self, buffer: u32);
352 
draw_buffers(&self, buffers: &[u32])353     unsafe fn draw_buffers(&self, buffers: &[u32]);
354 
draw_elements(&self, mode: u32, count: i32, element_type: u32, offset: i32)355     unsafe fn draw_elements(&self, mode: u32, count: i32, element_type: u32, offset: i32);
356 
draw_elements_base_vertex( &self, mode: u32, count: i32, element_type: u32, offset: i32, base_vertex: i32, )357     unsafe fn draw_elements_base_vertex(
358         &self,
359         mode: u32,
360         count: i32,
361         element_type: u32,
362         offset: i32,
363         base_vertex: i32,
364     );
365 
draw_elements_instanced( &self, mode: u32, count: i32, element_type: u32, offset: i32, instance_count: i32, )366     unsafe fn draw_elements_instanced(
367         &self,
368         mode: u32,
369         count: i32,
370         element_type: u32,
371         offset: i32,
372         instance_count: i32,
373     );
374 
draw_elements_instanced_base_vertex( &self, mode: u32, count: i32, element_type: u32, offset: i32, instance_count: i32, base_vertex: i32, )375     unsafe fn draw_elements_instanced_base_vertex(
376         &self,
377         mode: u32,
378         count: i32,
379         element_type: u32,
380         offset: i32,
381         instance_count: i32,
382         base_vertex: i32,
383     );
384 
draw_elements_instanced_base_vertex_base_instance( &self, mode: u32, count: i32, element_type: u32, offset: i32, instance_count: i32, base_vertex: i32, base_instance: u32, )385     unsafe fn draw_elements_instanced_base_vertex_base_instance(
386         &self,
387         mode: u32,
388         count: i32,
389         element_type: u32,
390         offset: i32,
391         instance_count: i32,
392         base_vertex: i32,
393         base_instance: u32,
394     );
395 
draw_elements_indirect_offset(&self, mode: u32, element_type: u32, offset: i32)396     unsafe fn draw_elements_indirect_offset(&self, mode: u32, element_type: u32, offset: i32);
397 
enable(&self, parameter: u32)398     unsafe fn enable(&self, parameter: u32);
399 
is_enabled(&self, parameter: u32) -> bool400     unsafe fn is_enabled(&self, parameter: u32) -> bool;
401 
enable_draw_buffer(&self, parameter: u32, draw_buffer: u32)402     unsafe fn enable_draw_buffer(&self, parameter: u32, draw_buffer: u32);
403 
enable_vertex_attrib_array(&self, index: u32)404     unsafe fn enable_vertex_attrib_array(&self, index: u32);
405 
flush(&self)406     unsafe fn flush(&self);
407 
framebuffer_renderbuffer( &self, target: u32, attachment: u32, renderbuffer_target: u32, renderbuffer: Option<Self::Renderbuffer>, )408     unsafe fn framebuffer_renderbuffer(
409         &self,
410         target: u32,
411         attachment: u32,
412         renderbuffer_target: u32,
413         renderbuffer: Option<Self::Renderbuffer>,
414     );
415 
framebuffer_texture( &self, target: u32, attachment: u32, texture: Option<Self::Texture>, level: i32, )416     unsafe fn framebuffer_texture(
417         &self,
418         target: u32,
419         attachment: u32,
420         texture: Option<Self::Texture>,
421         level: i32,
422     );
423 
framebuffer_texture_2d( &self, target: u32, attachment: u32, texture_target: u32, texture: Option<Self::Texture>, level: i32, )424     unsafe fn framebuffer_texture_2d(
425         &self,
426         target: u32,
427         attachment: u32,
428         texture_target: u32,
429         texture: Option<Self::Texture>,
430         level: i32,
431     );
432 
framebuffer_texture_3d( &self, target: u32, attachment: u32, texture_target: u32, texture: Option<Self::Texture>, level: i32, layer: i32, )433     unsafe fn framebuffer_texture_3d(
434         &self,
435         target: u32,
436         attachment: u32,
437         texture_target: u32,
438         texture: Option<Self::Texture>,
439         level: i32,
440         layer: i32,
441     );
442 
framebuffer_texture_layer( &self, target: u32, attachment: u32, texture: Option<Self::Texture>, level: i32, layer: i32, )443     unsafe fn framebuffer_texture_layer(
444         &self,
445         target: u32,
446         attachment: u32,
447         texture: Option<Self::Texture>,
448         level: i32,
449         layer: i32,
450     );
451 
front_face(&self, value: u32)452     unsafe fn front_face(&self, value: u32);
453 
get_error(&self) -> u32454     unsafe fn get_error(&self) -> u32;
455 
get_tex_parameter_i32(&self, target: u32, parameter: u32) -> i32456     unsafe fn get_tex_parameter_i32(&self, target: u32, parameter: u32) -> i32;
457 
get_buffer_parameter_i32(&self, target: u32, parameter: u32) -> i32458     unsafe fn get_buffer_parameter_i32(&self, target: u32, parameter: u32) -> i32;
459 
get_parameter_i32(&self, parameter: u32) -> i32460     unsafe fn get_parameter_i32(&self, parameter: u32) -> i32;
461 
get_parameter_i32_slice(&self, parameter: u32, out: &mut [i32])462     unsafe fn get_parameter_i32_slice(&self, parameter: u32, out: &mut [i32]);
463 
get_parameter_f32(&self, parameter: u32) -> f32464     unsafe fn get_parameter_f32(&self, parameter: u32) -> f32;
465 
get_parameter_f32_slice(&self, parameter: u32, out: &mut [f32])466     unsafe fn get_parameter_f32_slice(&self, parameter: u32, out: &mut [f32]);
467 
get_parameter_indexed_i32(&self, parameter: u32, index: u32) -> i32468     unsafe fn get_parameter_indexed_i32(&self, parameter: u32, index: u32) -> i32;
469 
get_parameter_indexed_string(&self, parameter: u32, index: u32) -> String470     unsafe fn get_parameter_indexed_string(&self, parameter: u32, index: u32) -> String;
471 
get_parameter_string(&self, parameter: u32) -> String472     unsafe fn get_parameter_string(&self, parameter: u32) -> String;
473 
get_active_uniform_block_parameter_i32( &self, program: Self::Program, uniform_block_index: u32, parameter: u32, ) -> i32474     unsafe fn get_active_uniform_block_parameter_i32(
475         &self,
476         program: Self::Program,
477         uniform_block_index: u32,
478         parameter: u32,
479     ) -> i32;
480 
get_active_uniform_block_parameter_i32_slice( &self, program: Self::Program, uniform_block_index: u32, parameter: u32, out: &mut [i32], )481     unsafe fn get_active_uniform_block_parameter_i32_slice(
482         &self,
483         program: Self::Program,
484         uniform_block_index: u32,
485         parameter: u32,
486         out: &mut [i32],
487     );
488 
get_active_uniform_block_name( &self, program: Self::Program, uniform_block_index: u32, ) -> String489     unsafe fn get_active_uniform_block_name(
490         &self,
491         program: Self::Program,
492         uniform_block_index: u32,
493     ) -> String;
494 
get_uniform_location( &self, program: Self::Program, name: &str, ) -> Option<Self::UniformLocation>495     unsafe fn get_uniform_location(
496         &self,
497         program: Self::Program,
498         name: &str,
499     ) -> Option<Self::UniformLocation>;
500 
get_attrib_location(&self, program: Self::Program, name: &str) -> Option<u32>501     unsafe fn get_attrib_location(&self, program: Self::Program, name: &str) -> Option<u32>;
502 
bind_attrib_location(&self, program: Self::Program, index: u32, name: &str)503     unsafe fn bind_attrib_location(&self, program: Self::Program, index: u32, name: &str);
504 
get_active_attributes(&self, program: Self::Program) -> u32505     unsafe fn get_active_attributes(&self, program: Self::Program) -> u32;
506 
get_active_attribute( &self, program: Self::Program, index: u32, ) -> Option<ActiveAttribute>507     unsafe fn get_active_attribute(
508         &self,
509         program: Self::Program,
510         index: u32,
511     ) -> Option<ActiveAttribute>;
512 
get_sync_status(&self, fence: Self::Fence) -> u32513     unsafe fn get_sync_status(&self, fence: Self::Fence) -> u32;
514 
is_sync(&self, fence: Self::Fence) -> bool515     unsafe fn is_sync(&self, fence: Self::Fence) -> bool;
516 
renderbuffer_storage( &self, target: u32, internal_format: u32, width: i32, height: i32, )517     unsafe fn renderbuffer_storage(
518         &self,
519         target: u32,
520         internal_format: u32,
521         width: i32,
522         height: i32,
523     );
524 
renderbuffer_storage_multisample( &self, target: u32, samples: i32, internal_format: u32, width: i32, height: i32, )525     unsafe fn renderbuffer_storage_multisample(
526         &self,
527         target: u32,
528         samples: i32,
529         internal_format: u32,
530         width: i32,
531         height: i32,
532     );
533 
sampler_parameter_f32(&self, sampler: Self::Sampler, name: u32, value: f32)534     unsafe fn sampler_parameter_f32(&self, sampler: Self::Sampler, name: u32, value: f32);
535 
sampler_parameter_f32_slice(&self, sampler: Self::Sampler, name: u32, value: &[f32])536     unsafe fn sampler_parameter_f32_slice(&self, sampler: Self::Sampler, name: u32, value: &[f32]);
537 
sampler_parameter_i32(&self, sampler: Self::Sampler, name: u32, value: i32)538     unsafe fn sampler_parameter_i32(&self, sampler: Self::Sampler, name: u32, value: i32);
539 
generate_mipmap(&self, target: u32)540     unsafe fn generate_mipmap(&self, target: u32);
541 
tex_image_1d( &self, target: u32, level: i32, internal_format: i32, width: i32, border: i32, format: u32, ty: u32, pixels: Option<&[u8]>, )542     unsafe fn tex_image_1d(
543         &self,
544         target: u32,
545         level: i32,
546         internal_format: i32,
547         width: i32,
548         border: i32,
549         format: u32,
550         ty: u32,
551         pixels: Option<&[u8]>,
552     );
553 
compressed_tex_image_1d( &self, target: u32, level: i32, internal_format: i32, width: i32, border: i32, image_size: i32, pixels: &[u8], )554     unsafe fn compressed_tex_image_1d(
555         &self,
556         target: u32,
557         level: i32,
558         internal_format: i32,
559         width: i32,
560         border: i32,
561         image_size: i32,
562         pixels: &[u8],
563     );
564 
tex_image_2d( &self, target: u32, level: i32, internal_format: i32, width: i32, height: i32, border: i32, format: u32, ty: u32, pixels: Option<&[u8]>, )565     unsafe fn tex_image_2d(
566         &self,
567         target: u32,
568         level: i32,
569         internal_format: i32,
570         width: i32,
571         height: i32,
572         border: i32,
573         format: u32,
574         ty: u32,
575         pixels: Option<&[u8]>,
576     );
577 
tex_image_2d_multisample( &self, target: u32, samples: i32, internal_format: i32, width: i32, height: i32, fixed_sample_locations: bool, )578     unsafe fn tex_image_2d_multisample(
579         &self,
580         target: u32,
581         samples: i32,
582         internal_format: i32,
583         width: i32,
584         height: i32,
585         fixed_sample_locations: bool,
586     );
587 
compressed_tex_image_2d( &self, target: u32, level: i32, internal_format: i32, width: i32, height: i32, border: i32, image_size: i32, pixels: &[u8], )588     unsafe fn compressed_tex_image_2d(
589         &self,
590         target: u32,
591         level: i32,
592         internal_format: i32,
593         width: i32,
594         height: i32,
595         border: i32,
596         image_size: i32,
597         pixels: &[u8],
598     );
599 
tex_image_3d( &self, target: u32, level: i32, internal_format: i32, width: i32, height: i32, depth: i32, border: i32, format: u32, ty: u32, pixels: Option<&[u8]>, )600     unsafe fn tex_image_3d(
601         &self,
602         target: u32,
603         level: i32,
604         internal_format: i32,
605         width: i32,
606         height: i32,
607         depth: i32,
608         border: i32,
609         format: u32,
610         ty: u32,
611         pixels: Option<&[u8]>,
612     );
613 
compressed_tex_image_3d( &self, target: u32, level: i32, internal_format: i32, width: i32, height: i32, depth: i32, border: i32, image_size: i32, pixels: &[u8], )614     unsafe fn compressed_tex_image_3d(
615         &self,
616         target: u32,
617         level: i32,
618         internal_format: i32,
619         width: i32,
620         height: i32,
621         depth: i32,
622         border: i32,
623         image_size: i32,
624         pixels: &[u8],
625     );
626 
tex_storage_1d(&self, target: u32, levels: i32, internal_format: u32, width: i32)627     unsafe fn tex_storage_1d(&self, target: u32, levels: i32, internal_format: u32, width: i32);
628 
tex_storage_2d( &self, target: u32, levels: i32, internal_format: u32, width: i32, height: i32, )629     unsafe fn tex_storage_2d(
630         &self,
631         target: u32,
632         levels: i32,
633         internal_format: u32,
634         width: i32,
635         height: i32,
636     );
637 
tex_storage_2d_multisample( &self, target: u32, samples: i32, internal_format: u32, width: i32, height: i32, fixed_sample_locations: bool, )638     unsafe fn tex_storage_2d_multisample(
639         &self,
640         target: u32,
641         samples: i32,
642         internal_format: u32,
643         width: i32,
644         height: i32,
645         fixed_sample_locations: bool,
646     );
647 
tex_storage_3d( &self, target: u32, levels: i32, internal_format: u32, width: i32, height: i32, depth: i32, )648     unsafe fn tex_storage_3d(
649         &self,
650         target: u32,
651         levels: i32,
652         internal_format: u32,
653         width: i32,
654         height: i32,
655         depth: i32,
656     );
657 
get_uniform_i32( &self, program: Self::Program, location: &Self::UniformLocation, v: &mut [i32], )658     unsafe fn get_uniform_i32(
659         &self,
660         program: Self::Program,
661         location: &Self::UniformLocation,
662         v: &mut [i32],
663     );
664 
get_uniform_f32( &self, program: Self::Program, location: &Self::UniformLocation, v: &mut [f32], )665     unsafe fn get_uniform_f32(
666         &self,
667         program: Self::Program,
668         location: &Self::UniformLocation,
669         v: &mut [f32],
670     );
671 
uniform_1_i32(&self, location: Option<&Self::UniformLocation>, x: i32)672     unsafe fn uniform_1_i32(&self, location: Option<&Self::UniformLocation>, x: i32);
673 
uniform_2_i32(&self, location: Option<&Self::UniformLocation>, x: i32, y: i32)674     unsafe fn uniform_2_i32(&self, location: Option<&Self::UniformLocation>, x: i32, y: i32);
675 
uniform_3_i32( &self, location: Option<&Self::UniformLocation>, x: i32, y: i32, z: i32, )676     unsafe fn uniform_3_i32(
677         &self,
678         location: Option<&Self::UniformLocation>,
679         x: i32,
680         y: i32,
681         z: i32,
682     );
683 
uniform_4_i32( &self, location: Option<&Self::UniformLocation>, x: i32, y: i32, z: i32, w: i32, )684     unsafe fn uniform_4_i32(
685         &self,
686         location: Option<&Self::UniformLocation>,
687         x: i32,
688         y: i32,
689         z: i32,
690         w: i32,
691     );
692 
uniform_1_i32_slice(&self, location: Option<&Self::UniformLocation>, v: &[i32])693     unsafe fn uniform_1_i32_slice(&self, location: Option<&Self::UniformLocation>, v: &[i32]);
694 
uniform_2_i32_slice(&self, location: Option<&Self::UniformLocation>, v: &[i32])695     unsafe fn uniform_2_i32_slice(&self, location: Option<&Self::UniformLocation>, v: &[i32]);
696 
uniform_3_i32_slice(&self, location: Option<&Self::UniformLocation>, v: &[i32])697     unsafe fn uniform_3_i32_slice(&self, location: Option<&Self::UniformLocation>, v: &[i32]);
698 
uniform_4_i32_slice(&self, location: Option<&Self::UniformLocation>, v: &[i32])699     unsafe fn uniform_4_i32_slice(&self, location: Option<&Self::UniformLocation>, v: &[i32]);
700 
uniform_1_u32(&self, location: Option<&Self::UniformLocation>, x: u32)701     unsafe fn uniform_1_u32(&self, location: Option<&Self::UniformLocation>, x: u32);
702 
uniform_2_u32(&self, location: Option<&Self::UniformLocation>, x: u32, y: u32)703     unsafe fn uniform_2_u32(&self, location: Option<&Self::UniformLocation>, x: u32, y: u32);
704 
uniform_3_u32( &self, location: Option<&Self::UniformLocation>, x: u32, y: u32, z: u32, )705     unsafe fn uniform_3_u32(
706         &self,
707         location: Option<&Self::UniformLocation>,
708         x: u32,
709         y: u32,
710         z: u32,
711     );
712 
uniform_4_u32( &self, location: Option<&Self::UniformLocation>, x: u32, y: u32, z: u32, w: u32, )713     unsafe fn uniform_4_u32(
714         &self,
715         location: Option<&Self::UniformLocation>,
716         x: u32,
717         y: u32,
718         z: u32,
719         w: u32,
720     );
721 
uniform_1_u32_slice(&self, location: Option<&Self::UniformLocation>, v: &[u32])722     unsafe fn uniform_1_u32_slice(&self, location: Option<&Self::UniformLocation>, v: &[u32]);
723 
uniform_2_u32_slice(&self, location: Option<&Self::UniformLocation>, v: &[u32])724     unsafe fn uniform_2_u32_slice(&self, location: Option<&Self::UniformLocation>, v: &[u32]);
725 
uniform_3_u32_slice(&self, location: Option<&Self::UniformLocation>, v: &[u32])726     unsafe fn uniform_3_u32_slice(&self, location: Option<&Self::UniformLocation>, v: &[u32]);
727 
uniform_4_u32_slice(&self, location: Option<&Self::UniformLocation>, v: &[u32])728     unsafe fn uniform_4_u32_slice(&self, location: Option<&Self::UniformLocation>, v: &[u32]);
729 
uniform_1_f32(&self, location: Option<&Self::UniformLocation>, x: f32)730     unsafe fn uniform_1_f32(&self, location: Option<&Self::UniformLocation>, x: f32);
731 
uniform_2_f32(&self, location: Option<&Self::UniformLocation>, x: f32, y: f32)732     unsafe fn uniform_2_f32(&self, location: Option<&Self::UniformLocation>, x: f32, y: f32);
733 
uniform_3_f32( &self, location: Option<&Self::UniformLocation>, x: f32, y: f32, z: f32, )734     unsafe fn uniform_3_f32(
735         &self,
736         location: Option<&Self::UniformLocation>,
737         x: f32,
738         y: f32,
739         z: f32,
740     );
741 
uniform_4_f32( &self, location: Option<&Self::UniformLocation>, x: f32, y: f32, z: f32, w: f32, )742     unsafe fn uniform_4_f32(
743         &self,
744         location: Option<&Self::UniformLocation>,
745         x: f32,
746         y: f32,
747         z: f32,
748         w: f32,
749     );
750 
uniform_1_f32_slice(&self, location: Option<&Self::UniformLocation>, v: &[f32])751     unsafe fn uniform_1_f32_slice(&self, location: Option<&Self::UniformLocation>, v: &[f32]);
752 
uniform_2_f32_slice(&self, location: Option<&Self::UniformLocation>, v: &[f32])753     unsafe fn uniform_2_f32_slice(&self, location: Option<&Self::UniformLocation>, v: &[f32]);
754 
uniform_3_f32_slice(&self, location: Option<&Self::UniformLocation>, v: &[f32])755     unsafe fn uniform_3_f32_slice(&self, location: Option<&Self::UniformLocation>, v: &[f32]);
756 
uniform_4_f32_slice(&self, location: Option<&Self::UniformLocation>, v: &[f32])757     unsafe fn uniform_4_f32_slice(&self, location: Option<&Self::UniformLocation>, v: &[f32]);
758 
uniform_matrix_2_f32_slice( &self, location: Option<&Self::UniformLocation>, transpose: bool, v: &[f32], )759     unsafe fn uniform_matrix_2_f32_slice(
760         &self,
761         location: Option<&Self::UniformLocation>,
762         transpose: bool,
763         v: &[f32],
764     );
765 
uniform_matrix_3_f32_slice( &self, location: Option<&Self::UniformLocation>, transpose: bool, v: &[f32], )766     unsafe fn uniform_matrix_3_f32_slice(
767         &self,
768         location: Option<&Self::UniformLocation>,
769         transpose: bool,
770         v: &[f32],
771     );
772 
uniform_matrix_4_f32_slice( &self, location: Option<&Self::UniformLocation>, transpose: bool, v: &[f32], )773     unsafe fn uniform_matrix_4_f32_slice(
774         &self,
775         location: Option<&Self::UniformLocation>,
776         transpose: bool,
777         v: &[f32],
778     );
779 
unmap_buffer(&self, target: u32)780     unsafe fn unmap_buffer(&self, target: u32);
781 
cull_face(&self, value: u32)782     unsafe fn cull_face(&self, value: u32);
783 
color_mask(&self, red: bool, green: bool, blue: bool, alpha: bool)784     unsafe fn color_mask(&self, red: bool, green: bool, blue: bool, alpha: bool);
785 
color_mask_draw_buffer( &self, buffer: u32, red: bool, green: bool, blue: bool, alpha: bool, )786     unsafe fn color_mask_draw_buffer(
787         &self,
788         buffer: u32,
789         red: bool,
790         green: bool,
791         blue: bool,
792         alpha: bool,
793     );
794 
depth_mask(&self, value: bool)795     unsafe fn depth_mask(&self, value: bool);
796 
blend_color(&self, red: f32, green: f32, blue: f32, alpha: f32)797     unsafe fn blend_color(&self, red: f32, green: f32, blue: f32, alpha: f32);
798 
line_width(&self, width: f32)799     unsafe fn line_width(&self, width: f32);
800 
map_buffer_range( &self, target: u32, offset: i32, length: i32, access: u32, ) -> *mut u8801     unsafe fn map_buffer_range(
802         &self,
803         target: u32,
804         offset: i32,
805         length: i32,
806         access: u32,
807     ) -> *mut u8;
808 
flush_mapped_buffer_range(&self, target: u32, offset: i32, length: i32)809     unsafe fn flush_mapped_buffer_range(&self, target: u32, offset: i32, length: i32);
810 
invalidate_buffer_sub_data(&self, target: u32, offset: i32, length: i32)811     unsafe fn invalidate_buffer_sub_data(&self, target: u32, offset: i32, length: i32);
812 
invalidate_framebuffer(&self, target: u32, attachments: &[u32])813     unsafe fn invalidate_framebuffer(&self, target: u32, attachments: &[u32]);
814 
polygon_offset(&self, factor: f32, units: f32)815     unsafe fn polygon_offset(&self, factor: f32, units: f32);
816 
polygon_mode(&self, face: u32, mode: u32)817     unsafe fn polygon_mode(&self, face: u32, mode: u32);
818 
finish(&self)819     unsafe fn finish(&self);
820 
bind_texture(&self, target: u32, texture: Option<Self::Texture>)821     unsafe fn bind_texture(&self, target: u32, texture: Option<Self::Texture>);
822 
bind_sampler(&self, unit: u32, sampler: Option<Self::Sampler>)823     unsafe fn bind_sampler(&self, unit: u32, sampler: Option<Self::Sampler>);
824 
active_texture(&self, unit: u32)825     unsafe fn active_texture(&self, unit: u32);
826 
fence_sync(&self, condition: u32, flags: u32) -> Result<Self::Fence, String>827     unsafe fn fence_sync(&self, condition: u32, flags: u32) -> Result<Self::Fence, String>;
828 
tex_parameter_f32(&self, target: u32, parameter: u32, value: f32)829     unsafe fn tex_parameter_f32(&self, target: u32, parameter: u32, value: f32);
830 
tex_parameter_i32(&self, target: u32, parameter: u32, value: i32)831     unsafe fn tex_parameter_i32(&self, target: u32, parameter: u32, value: i32);
832 
tex_parameter_f32_slice(&self, target: u32, parameter: u32, values: &[f32])833     unsafe fn tex_parameter_f32_slice(&self, target: u32, parameter: u32, values: &[f32]);
834 
tex_parameter_i32_slice(&self, target: u32, parameter: u32, values: &[i32])835     unsafe fn tex_parameter_i32_slice(&self, target: u32, parameter: u32, values: &[i32]);
836 
tex_sub_image_2d( &self, target: u32, level: i32, x_offset: i32, y_offset: i32, width: i32, height: i32, format: u32, ty: u32, pixels: PixelUnpackData, )837     unsafe fn tex_sub_image_2d(
838         &self,
839         target: u32,
840         level: i32,
841         x_offset: i32,
842         y_offset: i32,
843         width: i32,
844         height: i32,
845         format: u32,
846         ty: u32,
847         pixels: PixelUnpackData,
848     );
849 
compressed_tex_sub_image_2d( &self, target: u32, level: i32, x_offset: i32, y_offset: i32, width: i32, height: i32, format: u32, pixels: CompressedPixelUnpackData, )850     unsafe fn compressed_tex_sub_image_2d(
851         &self,
852         target: u32,
853         level: i32,
854         x_offset: i32,
855         y_offset: i32,
856         width: i32,
857         height: i32,
858         format: u32,
859         pixels: CompressedPixelUnpackData,
860     );
861 
tex_sub_image_3d( &self, target: u32, level: i32, x_offset: i32, y_offset: i32, z_offset: i32, width: i32, height: i32, depth: i32, format: u32, ty: u32, pixels: PixelUnpackData, )862     unsafe fn tex_sub_image_3d(
863         &self,
864         target: u32,
865         level: i32,
866         x_offset: i32,
867         y_offset: i32,
868         z_offset: i32,
869         width: i32,
870         height: i32,
871         depth: i32,
872         format: u32,
873         ty: u32,
874         pixels: PixelUnpackData,
875     );
876 
compressed_tex_sub_image_3d( &self, target: u32, level: i32, x_offset: i32, y_offset: i32, z_offset: i32, width: i32, height: i32, depth: i32, format: u32, pixels: CompressedPixelUnpackData, )877     unsafe fn compressed_tex_sub_image_3d(
878         &self,
879         target: u32,
880         level: i32,
881         x_offset: i32,
882         y_offset: i32,
883         z_offset: i32,
884         width: i32,
885         height: i32,
886         depth: i32,
887         format: u32,
888         pixels: CompressedPixelUnpackData,
889     );
890 
depth_func(&self, func: u32)891     unsafe fn depth_func(&self, func: u32);
892 
depth_range_f32(&self, near: f32, far: f32)893     unsafe fn depth_range_f32(&self, near: f32, far: f32);
894 
depth_range_f64(&self, near: f64, far: f64)895     unsafe fn depth_range_f64(&self, near: f64, far: f64);
896 
depth_range_f64_slice(&self, first: u32, count: i32, values: &[[f64; 2]])897     unsafe fn depth_range_f64_slice(&self, first: u32, count: i32, values: &[[f64; 2]]);
898 
scissor(&self, x: i32, y: i32, width: i32, height: i32)899     unsafe fn scissor(&self, x: i32, y: i32, width: i32, height: i32);
900 
scissor_slice(&self, first: u32, count: i32, scissors: &[[i32; 4]])901     unsafe fn scissor_slice(&self, first: u32, count: i32, scissors: &[[i32; 4]]);
902 
vertex_attrib_divisor(&self, index: u32, divisor: u32)903     unsafe fn vertex_attrib_divisor(&self, index: u32, divisor: u32);
904 
vertex_attrib_pointer_f32( &self, index: u32, size: i32, data_type: u32, normalized: bool, stride: i32, offset: i32, )905     unsafe fn vertex_attrib_pointer_f32(
906         &self,
907         index: u32,
908         size: i32,
909         data_type: u32,
910         normalized: bool,
911         stride: i32,
912         offset: i32,
913     );
914 
vertex_attrib_pointer_i32( &self, index: u32, size: i32, data_type: u32, stride: i32, offset: i32, )915     unsafe fn vertex_attrib_pointer_i32(
916         &self,
917         index: u32,
918         size: i32,
919         data_type: u32,
920         stride: i32,
921         offset: i32,
922     );
923 
vertex_attrib_pointer_f64( &self, index: u32, size: i32, data_type: u32, stride: i32, offset: i32, )924     unsafe fn vertex_attrib_pointer_f64(
925         &self,
926         index: u32,
927         size: i32,
928         data_type: u32,
929         stride: i32,
930         offset: i32,
931     );
932 
vertex_attrib_format_f32( &self, index: u32, size: i32, data_type: u32, normalized: bool, relative_offset: u32, )933     unsafe fn vertex_attrib_format_f32(
934         &self,
935         index: u32,
936         size: i32,
937         data_type: u32,
938         normalized: bool,
939         relative_offset: u32,
940     );
941 
vertex_attrib_format_i32( &self, index: u32, size: i32, data_type: u32, relative_offset: u32, )942     unsafe fn vertex_attrib_format_i32(
943         &self,
944         index: u32,
945         size: i32,
946         data_type: u32,
947         relative_offset: u32,
948     );
949 
vertex_attrib_1_f32(&self, index: u32, x: f32)950     unsafe fn vertex_attrib_1_f32(&self, index: u32, x: f32);
951 
vertex_attrib_2_f32(&self, index: u32, x: f32, y: f32)952     unsafe fn vertex_attrib_2_f32(&self, index: u32, x: f32, y: f32);
953 
vertex_attrib_3_f32(&self, index: u32, x: f32, y: f32, z: f32)954     unsafe fn vertex_attrib_3_f32(&self, index: u32, x: f32, y: f32, z: f32);
955 
vertex_attrib_4_f32(&self, index: u32, x: f32, y: f32, z: f32, w: f32)956     unsafe fn vertex_attrib_4_f32(&self, index: u32, x: f32, y: f32, z: f32, w: f32);
957 
vertex_attrib_1_f32_slice(&self, index: u32, v: &[f32])958     unsafe fn vertex_attrib_1_f32_slice(&self, index: u32, v: &[f32]);
959 
vertex_attrib_2_f32_slice(&self, index: u32, v: &[f32])960     unsafe fn vertex_attrib_2_f32_slice(&self, index: u32, v: &[f32]);
961 
vertex_attrib_3_f32_slice(&self, index: u32, v: &[f32])962     unsafe fn vertex_attrib_3_f32_slice(&self, index: u32, v: &[f32]);
963 
vertex_attrib_4_f32_slice(&self, index: u32, v: &[f32])964     unsafe fn vertex_attrib_4_f32_slice(&self, index: u32, v: &[f32]);
965 
vertex_attrib_binding(&self, attrib_index: u32, binding_index: u32)966     unsafe fn vertex_attrib_binding(&self, attrib_index: u32, binding_index: u32);
967 
vertex_binding_divisor(&self, binding_index: u32, divisor: u32)968     unsafe fn vertex_binding_divisor(&self, binding_index: u32, divisor: u32);
969 
viewport(&self, x: i32, y: i32, width: i32, height: i32)970     unsafe fn viewport(&self, x: i32, y: i32, width: i32, height: i32);
971 
viewport_f32_slice(&self, first: u32, count: i32, values: &[[f32; 4]])972     unsafe fn viewport_f32_slice(&self, first: u32, count: i32, values: &[[f32; 4]]);
973 
blend_equation(&self, mode: u32)974     unsafe fn blend_equation(&self, mode: u32);
975 
blend_equation_draw_buffer(&self, draw_buffer: u32, mode: u32)976     unsafe fn blend_equation_draw_buffer(&self, draw_buffer: u32, mode: u32);
977 
blend_equation_separate(&self, mode_rgb: u32, mode_alpha: u32)978     unsafe fn blend_equation_separate(&self, mode_rgb: u32, mode_alpha: u32);
979 
blend_equation_separate_draw_buffer( &self, buffer: u32, mode_rgb: u32, mode_alpha: u32, )980     unsafe fn blend_equation_separate_draw_buffer(
981         &self,
982         buffer: u32,
983         mode_rgb: u32,
984         mode_alpha: u32,
985     );
986 
blend_func(&self, src: u32, dst: u32)987     unsafe fn blend_func(&self, src: u32, dst: u32);
988 
blend_func_draw_buffer(&self, draw_buffer: u32, src: u32, dst: u32)989     unsafe fn blend_func_draw_buffer(&self, draw_buffer: u32, src: u32, dst: u32);
990 
blend_func_separate( &self, src_rgb: u32, dst_rgb: u32, src_alpha: u32, dst_alpha: u32, )991     unsafe fn blend_func_separate(
992         &self,
993         src_rgb: u32,
994         dst_rgb: u32,
995         src_alpha: u32,
996         dst_alpha: u32,
997     );
998 
blend_func_separate_draw_buffer( &self, draw_buffer: u32, src_rgb: u32, dst_rgb: u32, src_alpha: u32, dst_alpha: u32, )999     unsafe fn blend_func_separate_draw_buffer(
1000         &self,
1001         draw_buffer: u32,
1002         src_rgb: u32,
1003         dst_rgb: u32,
1004         src_alpha: u32,
1005         dst_alpha: u32,
1006     );
1007 
stencil_func(&self, func: u32, reference: i32, mask: u32)1008     unsafe fn stencil_func(&self, func: u32, reference: i32, mask: u32);
1009 
stencil_func_separate(&self, face: u32, func: u32, reference: i32, mask: u32)1010     unsafe fn stencil_func_separate(&self, face: u32, func: u32, reference: i32, mask: u32);
1011 
stencil_mask(&self, mask: u32)1012     unsafe fn stencil_mask(&self, mask: u32);
1013 
stencil_mask_separate(&self, face: u32, mask: u32)1014     unsafe fn stencil_mask_separate(&self, face: u32, mask: u32);
1015 
stencil_op(&self, stencil_fail: u32, depth_fail: u32, pass: u32)1016     unsafe fn stencil_op(&self, stencil_fail: u32, depth_fail: u32, pass: u32);
1017 
stencil_op_separate(&self, face: u32, stencil_fail: u32, depth_fail: u32, pass: u32)1018     unsafe fn stencil_op_separate(&self, face: u32, stencil_fail: u32, depth_fail: u32, pass: u32);
1019 
debug_message_control( &self, source: u32, msg_type: u32, severity: u32, ids: &[u32], enabled: bool, )1020     unsafe fn debug_message_control(
1021         &self,
1022         source: u32,
1023         msg_type: u32,
1024         severity: u32,
1025         ids: &[u32],
1026         enabled: bool,
1027     );
1028 
debug_message_insert<S>( &self, source: u32, msg_type: u32, id: u32, severity: u32, msg: S, ) where S: AsRef<str>1029     unsafe fn debug_message_insert<S>(
1030         &self,
1031         source: u32,
1032         msg_type: u32,
1033         id: u32,
1034         severity: u32,
1035         msg: S,
1036     ) where
1037         S: AsRef<str>;
1038 
debug_message_callback<F>(&self, callback: F) where F: FnMut(u32, u32, u32, u32, &str)1039     unsafe fn debug_message_callback<F>(&self, callback: F)
1040     where
1041         F: FnMut(u32, u32, u32, u32, &str);
1042 
get_debug_message_log(&self, count: u32) -> Vec<DebugMessageLogEntry>1043     unsafe fn get_debug_message_log(&self, count: u32) -> Vec<DebugMessageLogEntry>;
1044 
push_debug_group<S>(&self, source: u32, id: u32, message: S) where S: AsRef<str>1045     unsafe fn push_debug_group<S>(&self, source: u32, id: u32, message: S)
1046     where
1047         S: AsRef<str>;
1048 
pop_debug_group(&self)1049     unsafe fn pop_debug_group(&self);
1050 
object_label<S>(&self, identifier: u32, name: u32, label: Option<S>) where S: AsRef<str>1051     unsafe fn object_label<S>(&self, identifier: u32, name: u32, label: Option<S>)
1052     where
1053         S: AsRef<str>;
1054 
get_object_label(&self, identifier: u32, name: u32) -> String1055     unsafe fn get_object_label(&self, identifier: u32, name: u32) -> String;
1056 
object_ptr_label<S>(&self, sync: Self::Fence, label: Option<S>) where S: AsRef<str>1057     unsafe fn object_ptr_label<S>(&self, sync: Self::Fence, label: Option<S>)
1058     where
1059         S: AsRef<str>;
1060 
get_object_ptr_label(&self, sync: Self::Fence) -> String1061     unsafe fn get_object_ptr_label(&self, sync: Self::Fence) -> String;
1062 
get_uniform_block_index(&self, program: Self::Program, name: &str) -> Option<u32>1063     unsafe fn get_uniform_block_index(&self, program: Self::Program, name: &str) -> Option<u32>;
1064 
uniform_block_binding(&self, program: Self::Program, index: u32, binding: u32)1065     unsafe fn uniform_block_binding(&self, program: Self::Program, index: u32, binding: u32);
1066 
get_shader_storage_block_index( &self, program: Self::Program, name: &str, ) -> Option<u32>1067     unsafe fn get_shader_storage_block_index(
1068         &self,
1069         program: Self::Program,
1070         name: &str,
1071     ) -> Option<u32>;
1072 
shader_storage_block_binding(&self, program: Self::Program, index: u32, binding: u32)1073     unsafe fn shader_storage_block_binding(&self, program: Self::Program, index: u32, binding: u32);
1074 
read_buffer(&self, src: u32)1075     unsafe fn read_buffer(&self, src: u32);
1076 
read_pixels( &self, x: i32, y: i32, width: i32, height: i32, format: u32, gltype: u32, pixels: PixelPackData, )1077     unsafe fn read_pixels(
1078         &self,
1079         x: i32,
1080         y: i32,
1081         width: i32,
1082         height: i32,
1083         format: u32,
1084         gltype: u32,
1085         pixels: PixelPackData,
1086     );
1087 
begin_query(&self, target: u32, query: Self::Query)1088     unsafe fn begin_query(&self, target: u32, query: Self::Query);
1089 
end_query(&self, target: u32)1090     unsafe fn end_query(&self, target: u32);
1091 
get_query_parameter_u32(&self, query: Self::Query, parameter: u32) -> u321092     unsafe fn get_query_parameter_u32(&self, query: Self::Query, parameter: u32) -> u32;
1093 
delete_transform_feedback(&self, transform_feedback: Self::TransformFeedback)1094     unsafe fn delete_transform_feedback(&self, transform_feedback: Self::TransformFeedback);
1095 
create_transform_feedback(&self) -> Result<Self::TransformFeedback, String>1096     unsafe fn create_transform_feedback(&self) -> Result<Self::TransformFeedback, String>;
1097 
bind_transform_feedback( &self, target: u32, transform_feedback: Option<Self::TransformFeedback>, )1098     unsafe fn bind_transform_feedback(
1099         &self,
1100         target: u32,
1101         transform_feedback: Option<Self::TransformFeedback>,
1102     );
1103 
begin_transform_feedback(&self, primitive_mode: u32)1104     unsafe fn begin_transform_feedback(&self, primitive_mode: u32);
1105 
end_transform_feedback(&self)1106     unsafe fn end_transform_feedback(&self);
1107 
pause_transform_feedback(&self)1108     unsafe fn pause_transform_feedback(&self);
1109 
resume_transform_feedback(&self)1110     unsafe fn resume_transform_feedback(&self);
1111 
transform_feedback_varyings( &self, program: Self::Program, varyings: &[&str], buffer_mode: u32, )1112     unsafe fn transform_feedback_varyings(
1113         &self,
1114         program: Self::Program,
1115         varyings: &[&str],
1116         buffer_mode: u32,
1117     );
1118 
get_transform_feedback_varying( &self, program: Self::Program, index: u32, ) -> Option<ActiveTransformFeedback>1119     unsafe fn get_transform_feedback_varying(
1120         &self,
1121         program: Self::Program,
1122         index: u32,
1123     ) -> Option<ActiveTransformFeedback>;
1124 
memory_barrier(&self, barriers: u32)1125     unsafe fn memory_barrier(&self, barriers: u32);
1126 
memory_barrier_by_region(&self, barriers: u32)1127     unsafe fn memory_barrier_by_region(&self, barriers: u32);
1128 
bind_image_texture( &self, unit: u32, texture: Self::Texture, level: i32, layered: bool, layer: i32, access: u32, format: u32, )1129     unsafe fn bind_image_texture(
1130         &self,
1131         unit: u32,
1132         texture: Self::Texture,
1133         level: i32,
1134         layered: bool,
1135         layer: i32,
1136         access: u32,
1137         format: u32,
1138     );
1139 }
1140 
1141 pub const ACTIVE_ATOMIC_COUNTER_BUFFERS: u32 = 0x92D9;
1142 
1143 pub const ACTIVE_ATTRIBUTES: u32 = 0x8B89;
1144 
1145 pub const ACTIVE_ATTRIBUTE_MAX_LENGTH: u32 = 0x8B8A;
1146 
1147 pub const ACTIVE_PROGRAM: u32 = 0x8259;
1148 
1149 pub const ACTIVE_RESOURCES: u32 = 0x92F5;
1150 
1151 pub const ACTIVE_SUBROUTINES: u32 = 0x8DE5;
1152 
1153 pub const ACTIVE_SUBROUTINE_MAX_LENGTH: u32 = 0x8E48;
1154 
1155 pub const ACTIVE_SUBROUTINE_UNIFORMS: u32 = 0x8DE6;
1156 
1157 pub const ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS: u32 = 0x8E47;
1158 
1159 pub const ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH: u32 = 0x8E49;
1160 
1161 pub const ACTIVE_TEXTURE: u32 = 0x84E0;
1162 
1163 pub const ACTIVE_UNIFORMS: u32 = 0x8B86;
1164 
1165 pub const ACTIVE_UNIFORM_BLOCKS: u32 = 0x8A36;
1166 
1167 pub const ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH: u32 = 0x8A35;
1168 
1169 pub const ACTIVE_UNIFORM_MAX_LENGTH: u32 = 0x8B87;
1170 
1171 pub const ACTIVE_VARIABLES: u32 = 0x9305;
1172 
1173 pub const ALIASED_LINE_WIDTH_RANGE: u32 = 0x846E;
1174 
1175 pub const ALL_BARRIER_BITS: u32 = 0xFFFFFFFF;
1176 
1177 pub const ALL_SHADER_BITS: u32 = 0xFFFFFFFF;
1178 
1179 pub const ALPHA: u32 = 0x1906;
1180 
1181 pub const ALREADY_SIGNALED: u32 = 0x911A;
1182 
1183 pub const ALWAYS: u32 = 0x0207;
1184 
1185 pub const AND: u32 = 0x1501;
1186 
1187 pub const AND_INVERTED: u32 = 0x1504;
1188 
1189 pub const AND_REVERSE: u32 = 0x1502;
1190 
1191 pub const ANY_SAMPLES_PASSED: u32 = 0x8C2F;
1192 
1193 pub const ANY_SAMPLES_PASSED_CONSERVATIVE: u32 = 0x8D6A;
1194 
1195 pub const ARRAY_BUFFER: u32 = 0x8892;
1196 
1197 pub const ARRAY_BUFFER_BINDING: u32 = 0x8894;
1198 
1199 pub const ARRAY_SIZE: u32 = 0x92FB;
1200 
1201 pub const ARRAY_STRIDE: u32 = 0x92FE;
1202 
1203 pub const ATOMIC_COUNTER_BARRIER_BIT: u32 = 0x00001000;
1204 
1205 pub const ATOMIC_COUNTER_BUFFER: u32 = 0x92C0;
1206 
1207 pub const ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS: u32 = 0x92C5;
1208 
1209 pub const ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES: u32 = 0x92C6;
1210 
1211 pub const ATOMIC_COUNTER_BUFFER_BINDING: u32 = 0x92C1;
1212 
1213 pub const ATOMIC_COUNTER_BUFFER_DATA_SIZE: u32 = 0x92C4;
1214 
1215 pub const ATOMIC_COUNTER_BUFFER_INDEX: u32 = 0x9301;
1216 
1217 pub const ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER: u32 = 0x90ED;
1218 
1219 pub const ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER: u32 = 0x92CB;
1220 
1221 pub const ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER: u32 = 0x92CA;
1222 
1223 pub const ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER: u32 = 0x92C8;
1224 
1225 pub const ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER: u32 = 0x92C9;
1226 
1227 pub const ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER: u32 = 0x92C7;
1228 
1229 pub const ATOMIC_COUNTER_BUFFER_SIZE: u32 = 0x92C3;
1230 
1231 pub const ATOMIC_COUNTER_BUFFER_START: u32 = 0x92C2;
1232 
1233 pub const ATTACHED_SHADERS: u32 = 0x8B85;
1234 
1235 pub const AUTO_GENERATE_MIPMAP: u32 = 0x8295;
1236 
1237 pub const BACK: u32 = 0x0405;
1238 
1239 pub const BACK_LEFT: u32 = 0x0402;
1240 
1241 pub const BACK_RIGHT: u32 = 0x0403;
1242 
1243 pub const BGR: u32 = 0x80E0;
1244 
1245 pub const BGRA: u32 = 0x80E1;
1246 
1247 pub const BGRA_INTEGER: u32 = 0x8D9B;
1248 
1249 pub const BGR_INTEGER: u32 = 0x8D9A;
1250 
1251 pub const BLEND: u32 = 0x0BE2;
1252 
1253 pub const BLEND_COLOR: u32 = 0x8005;
1254 
1255 pub const BLEND_DST: u32 = 0x0BE0;
1256 
1257 pub const BLEND_DST_ALPHA: u32 = 0x80CA;
1258 
1259 pub const BLEND_DST_RGB: u32 = 0x80C8;
1260 
1261 pub const BLEND_EQUATION: u32 = 0x8009;
1262 
1263 pub const BLEND_EQUATION_ALPHA: u32 = 0x883D;
1264 
1265 pub const BLEND_EQUATION_RGB: u32 = 0x8009;
1266 
1267 pub const BLEND_SRC: u32 = 0x0BE1;
1268 
1269 pub const BLEND_SRC_ALPHA: u32 = 0x80CB;
1270 
1271 pub const BLEND_SRC_RGB: u32 = 0x80C9;
1272 
1273 pub const BLOCK_INDEX: u32 = 0x92FD;
1274 
1275 pub const BLUE: u32 = 0x1905;
1276 
1277 pub const BLUE_INTEGER: u32 = 0x8D96;
1278 
1279 pub const BOOL: u32 = 0x8B56;
1280 
1281 pub const BOOL_VEC2: u32 = 0x8B57;
1282 
1283 pub const BOOL_VEC3: u32 = 0x8B58;
1284 
1285 pub const BOOL_VEC4: u32 = 0x8B59;
1286 
1287 pub const BUFFER: u32 = 0x82E0;
1288 
1289 pub const BUFFER_ACCESS: u32 = 0x88BB;
1290 
1291 pub const BUFFER_ACCESS_FLAGS: u32 = 0x911F;
1292 
1293 pub const BUFFER_BINDING: u32 = 0x9302;
1294 
1295 pub const BUFFER_DATA_SIZE: u32 = 0x9303;
1296 
1297 pub const BUFFER_IMMUTABLE_STORAGE: u32 = 0x821F;
1298 
1299 pub const BUFFER_MAPPED: u32 = 0x88BC;
1300 
1301 pub const BUFFER_MAP_LENGTH: u32 = 0x9120;
1302 
1303 pub const BUFFER_MAP_OFFSET: u32 = 0x9121;
1304 
1305 pub const BUFFER_MAP_POINTER: u32 = 0x88BD;
1306 
1307 pub const BUFFER_SIZE: u32 = 0x8764;
1308 
1309 pub const BUFFER_STORAGE_FLAGS: u32 = 0x8220;
1310 
1311 pub const BUFFER_UPDATE_BARRIER_BIT: u32 = 0x00000200;
1312 
1313 pub const BUFFER_USAGE: u32 = 0x8765;
1314 
1315 pub const BUFFER_VARIABLE: u32 = 0x92E5;
1316 
1317 pub const BYTE: u32 = 0x1400;
1318 
1319 pub const CAVEAT_SUPPORT: u32 = 0x82B8;
1320 
1321 pub const CCW: u32 = 0x0901;
1322 
1323 pub const CLAMP_READ_COLOR: u32 = 0x891C;
1324 
1325 pub const CLAMP_TO_BORDER: u32 = 0x812D;
1326 
1327 pub const CLAMP_TO_EDGE: u32 = 0x812F;
1328 
1329 pub const CLEAR: u32 = 0x1500;
1330 
1331 pub const CLEAR_BUFFER: u32 = 0x82B4;
1332 
1333 pub const CLEAR_TEXTURE: u32 = 0x9365;
1334 
1335 pub const CLIENT_MAPPED_BUFFER_BARRIER_BIT: u32 = 0x00004000;
1336 
1337 pub const CLIENT_STORAGE_BIT: u32 = 0x0200;
1338 
1339 pub const CLIPPING_INPUT_PRIMITIVES: u32 = 0x82F6;
1340 
1341 pub const CLIPPING_OUTPUT_PRIMITIVES: u32 = 0x82F7;
1342 
1343 pub const CLIP_DEPTH_MODE: u32 = 0x935D;
1344 
1345 pub const CLIP_DISTANCE0: u32 = 0x3000;
1346 
1347 pub const CLIP_DISTANCE1: u32 = 0x3001;
1348 
1349 pub const CLIP_DISTANCE2: u32 = 0x3002;
1350 
1351 pub const CLIP_DISTANCE3: u32 = 0x3003;
1352 
1353 pub const CLIP_DISTANCE4: u32 = 0x3004;
1354 
1355 pub const CLIP_DISTANCE5: u32 = 0x3005;
1356 
1357 pub const CLIP_DISTANCE6: u32 = 0x3006;
1358 
1359 pub const CLIP_DISTANCE7: u32 = 0x3007;
1360 
1361 pub const CLIP_ORIGIN: u32 = 0x935C;
1362 
1363 pub const COLOR: u32 = 0x1800;
1364 
1365 pub const COLOR_ATTACHMENT0: u32 = 0x8CE0;
1366 
1367 pub const COLOR_ATTACHMENT1: u32 = 0x8CE1;
1368 
1369 pub const COLOR_ATTACHMENT10: u32 = 0x8CEA;
1370 
1371 pub const COLOR_ATTACHMENT11: u32 = 0x8CEB;
1372 
1373 pub const COLOR_ATTACHMENT12: u32 = 0x8CEC;
1374 
1375 pub const COLOR_ATTACHMENT13: u32 = 0x8CED;
1376 
1377 pub const COLOR_ATTACHMENT14: u32 = 0x8CEE;
1378 
1379 pub const COLOR_ATTACHMENT15: u32 = 0x8CEF;
1380 
1381 pub const COLOR_ATTACHMENT16: u32 = 0x8CF0;
1382 
1383 pub const COLOR_ATTACHMENT17: u32 = 0x8CF1;
1384 
1385 pub const COLOR_ATTACHMENT18: u32 = 0x8CF2;
1386 
1387 pub const COLOR_ATTACHMENT19: u32 = 0x8CF3;
1388 
1389 pub const COLOR_ATTACHMENT2: u32 = 0x8CE2;
1390 
1391 pub const COLOR_ATTACHMENT20: u32 = 0x8CF4;
1392 
1393 pub const COLOR_ATTACHMENT21: u32 = 0x8CF5;
1394 
1395 pub const COLOR_ATTACHMENT22: u32 = 0x8CF6;
1396 
1397 pub const COLOR_ATTACHMENT23: u32 = 0x8CF7;
1398 
1399 pub const COLOR_ATTACHMENT24: u32 = 0x8CF8;
1400 
1401 pub const COLOR_ATTACHMENT25: u32 = 0x8CF9;
1402 
1403 pub const COLOR_ATTACHMENT26: u32 = 0x8CFA;
1404 
1405 pub const COLOR_ATTACHMENT27: u32 = 0x8CFB;
1406 
1407 pub const COLOR_ATTACHMENT28: u32 = 0x8CFC;
1408 
1409 pub const COLOR_ATTACHMENT29: u32 = 0x8CFD;
1410 
1411 pub const COLOR_ATTACHMENT3: u32 = 0x8CE3;
1412 
1413 pub const COLOR_ATTACHMENT30: u32 = 0x8CFE;
1414 
1415 pub const COLOR_ATTACHMENT31: u32 = 0x8CFF;
1416 
1417 pub const COLOR_ATTACHMENT4: u32 = 0x8CE4;
1418 
1419 pub const COLOR_ATTACHMENT5: u32 = 0x8CE5;
1420 
1421 pub const COLOR_ATTACHMENT6: u32 = 0x8CE6;
1422 
1423 pub const COLOR_ATTACHMENT7: u32 = 0x8CE7;
1424 
1425 pub const COLOR_ATTACHMENT8: u32 = 0x8CE8;
1426 
1427 pub const COLOR_ATTACHMENT9: u32 = 0x8CE9;
1428 
1429 pub const COLOR_BUFFER_BIT: u32 = 0x00004000;
1430 
1431 pub const COLOR_CLEAR_VALUE: u32 = 0x0C22;
1432 
1433 pub const COLOR_COMPONENTS: u32 = 0x8283;
1434 
1435 pub const COLOR_ENCODING: u32 = 0x8296;
1436 
1437 pub const COLOR_LOGIC_OP: u32 = 0x0BF2;
1438 
1439 pub const COLOR_RENDERABLE: u32 = 0x8286;
1440 
1441 pub const COLOR_WRITEMASK: u32 = 0x0C23;
1442 
1443 pub const COMMAND_BARRIER_BIT: u32 = 0x00000040;
1444 
1445 pub const COMPARE_REF_TO_TEXTURE: u32 = 0x884E;
1446 
1447 pub const COMPATIBLE_SUBROUTINES: u32 = 0x8E4B;
1448 
1449 pub const COMPILE_STATUS: u32 = 0x8B81;
1450 
1451 pub const COMPRESSED_R11_EAC: u32 = 0x9270;
1452 
1453 pub const COMPRESSED_RED: u32 = 0x8225;
1454 
1455 pub const COMPRESSED_RED_RGTC1: u32 = 0x8DBB;
1456 
1457 pub const COMPRESSED_RG: u32 = 0x8226;
1458 
1459 pub const COMPRESSED_RG11_EAC: u32 = 0x9272;
1460 
1461 pub const COMPRESSED_RGB: u32 = 0x84ED;
1462 
1463 pub const COMPRESSED_RGB8_ETC2: u32 = 0x9274;
1464 
1465 pub const COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: u32 = 0x9276;
1466 
1467 pub const COMPRESSED_RGBA: u32 = 0x84EE;
1468 
1469 pub const COMPRESSED_RGBA8_ETC2_EAC: u32 = 0x9278;
1470 
1471 pub const COMPRESSED_RGBA_BPTC_UNORM: u32 = 0x8E8C;
1472 
1473 pub const COMPRESSED_RGB_BPTC_SIGNED_FLOAT: u32 = 0x8E8E;
1474 
1475 pub const COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT: u32 = 0x8E8F;
1476 
1477 pub const COMPRESSED_RG_RGTC2: u32 = 0x8DBD;
1478 
1479 pub const COMPRESSED_SIGNED_R11_EAC: u32 = 0x9271;
1480 
1481 pub const COMPRESSED_SIGNED_RED_RGTC1: u32 = 0x8DBC;
1482 
1483 pub const COMPRESSED_SIGNED_RG11_EAC: u32 = 0x9273;
1484 
1485 pub const COMPRESSED_SIGNED_RG_RGTC2: u32 = 0x8DBE;
1486 
1487 pub const COMPRESSED_SRGB: u32 = 0x8C48;
1488 
1489 pub const COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: u32 = 0x9279;
1490 
1491 pub const COMPRESSED_SRGB8_ETC2: u32 = 0x9275;
1492 
1493 pub const COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: u32 = 0x9277;
1494 
1495 pub const COMPRESSED_SRGB_ALPHA: u32 = 0x8C49;
1496 
1497 pub const COMPRESSED_SRGB_ALPHA_BPTC_UNORM: u32 = 0x8E8D;
1498 
1499 pub const COMPRESSED_RGB_S3TC_DXT1_EXT: u32 = 0x83F0;
1500 
1501 pub const COMPRESSED_RGBA_S3TC_DXT1_EXT: u32 = 0x83F1;
1502 
1503 pub const COMPRESSED_RGBA_S3TC_DXT3_EXT: u32 = 0x83F2;
1504 
1505 pub const COMPRESSED_RGBA_S3TC_DXT5_EXT: u32 = 0x83F3;
1506 
1507 pub const COMPRESSED_SRGB_S3TC_DXT1_EXT: u32 = 0x8C4C;
1508 
1509 pub const COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: u32 = 0x8C4D;
1510 
1511 pub const COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: u32 = 0x8C4E;
1512 
1513 pub const COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: u32 = 0x8C4F;
1514 
1515 pub const COMPRESSED_RGBA_ASTC_4x4_KHR: u32 = 0x93B0;
1516 
1517 pub const COMPRESSED_RGBA_ASTC_5x4_KHR: u32 = 0x93B1;
1518 
1519 pub const COMPRESSED_RGBA_ASTC_5x5_KHR: u32 = 0x93B2;
1520 
1521 pub const COMPRESSED_RGBA_ASTC_6x5_KHR: u32 = 0x93B3;
1522 
1523 pub const COMPRESSED_RGBA_ASTC_6x6_KHR: u32 = 0x93B4;
1524 
1525 pub const COMPRESSED_RGBA_ASTC_8x5_KHR: u32 = 0x93B5;
1526 
1527 pub const COMPRESSED_RGBA_ASTC_8x6_KHR: u32 = 0x93B6;
1528 
1529 pub const COMPRESSED_RGBA_ASTC_8x8_KHR: u32 = 0x93B7;
1530 
1531 pub const COMPRESSED_RGBA_ASTC_10x5_KHR: u32 = 0x93B8;
1532 
1533 pub const COMPRESSED_RGBA_ASTC_10x6_KHR: u32 = 0x93B9;
1534 
1535 pub const COMPRESSED_RGBA_ASTC_10x8_KHR: u32 = 0x93BA;
1536 
1537 pub const COMPRESSED_RGBA_ASTC_10x10_KHR: u32 = 0x93BB;
1538 
1539 pub const COMPRESSED_RGBA_ASTC_12x10_KHR: u32 = 0x93BC;
1540 
1541 pub const COMPRESSED_RGBA_ASTC_12x12_KHR: u32 = 0x93BD;
1542 
1543 pub const COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR: u32 = 0x93D0;
1544 
1545 pub const COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR: u32 = 0x93D1;
1546 
1547 pub const COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR: u32 = 0x93D2;
1548 
1549 pub const COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR: u32 = 0x93D3;
1550 
1551 pub const COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR: u32 = 0x93D4;
1552 
1553 pub const COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR: u32 = 0x93D5;
1554 
1555 pub const COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR: u32 = 0x93D6;
1556 
1557 pub const COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR: u32 = 0x93D7;
1558 
1559 pub const COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR: u32 = 0x93D8;
1560 
1561 pub const COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR: u32 = 0x93D9;
1562 
1563 pub const COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR: u32 = 0x93DA;
1564 
1565 pub const COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR: u32 = 0x93DB;
1566 
1567 pub const COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR: u32 = 0x93DC;
1568 
1569 pub const COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR: u32 = 0x93DD;
1570 
1571 pub const COMPRESSED_TEXTURE_FORMATS: u32 = 0x86A3;
1572 
1573 pub const COMPUTE_SHADER: u32 = 0x91B9;
1574 
1575 pub const COMPUTE_SHADER_BIT: u32 = 0x00000020;
1576 
1577 pub const COMPUTE_SHADER_INVOCATIONS: u32 = 0x82F5;
1578 
1579 pub const COMPUTE_SUBROUTINE: u32 = 0x92ED;
1580 
1581 pub const COMPUTE_SUBROUTINE_UNIFORM: u32 = 0x92F3;
1582 
1583 pub const COMPUTE_TEXTURE: u32 = 0x82A0;
1584 
1585 pub const COMPUTE_WORK_GROUP_SIZE: u32 = 0x8267;
1586 
1587 pub const CONDITION_SATISFIED: u32 = 0x911C;
1588 
1589 pub const CONSTANT_ALPHA: u32 = 0x8003;
1590 
1591 pub const CONSTANT_COLOR: u32 = 0x8001;
1592 
1593 pub const CONTEXT_COMPATIBILITY_PROFILE_BIT: u32 = 0x00000002;
1594 
1595 pub const CONTEXT_CORE_PROFILE_BIT: u32 = 0x00000001;
1596 
1597 pub const CONTEXT_FLAGS: u32 = 0x821E;
1598 
1599 pub const CONTEXT_FLAG_DEBUG_BIT: u32 = 0x00000002;
1600 
1601 pub const CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT: u32 = 0x00000001;
1602 
1603 pub const CONTEXT_FLAG_NO_ERROR_BIT: u32 = 0x00000008;
1604 
1605 pub const CONTEXT_FLAG_ROBUST_ACCESS_BIT: u32 = 0x00000004;
1606 
1607 pub const CONTEXT_LOST: u32 = 0x0507;
1608 
1609 pub const CONTEXT_PROFILE_MASK: u32 = 0x9126;
1610 
1611 pub const CONTEXT_RELEASE_BEHAVIOR: u32 = 0x82FB;
1612 
1613 pub const CONTEXT_RELEASE_BEHAVIOR_FLUSH: u32 = 0x82FC;
1614 
1615 pub const COPY: u32 = 0x1503;
1616 
1617 pub const COPY_INVERTED: u32 = 0x150C;
1618 
1619 pub const COPY_READ_BUFFER: u32 = 0x8F36;
1620 
1621 pub const COPY_READ_BUFFER_BINDING: u32 = 0x8F36;
1622 
1623 pub const COPY_WRITE_BUFFER: u32 = 0x8F37;
1624 
1625 pub const COPY_WRITE_BUFFER_BINDING: u32 = 0x8F37;
1626 
1627 pub const CULL_FACE: u32 = 0x0B44;
1628 
1629 pub const CULL_FACE_MODE: u32 = 0x0B45;
1630 
1631 pub const CURRENT_PROGRAM: u32 = 0x8B8D;
1632 
1633 pub const CURRENT_QUERY: u32 = 0x8865;
1634 
1635 pub const CURRENT_VERTEX_ATTRIB: u32 = 0x8626;
1636 
1637 pub const CW: u32 = 0x0900;
1638 
1639 pub const DEBUG_CALLBACK_FUNCTION: u32 = 0x8244;
1640 
1641 pub const DEBUG_CALLBACK_USER_PARAM: u32 = 0x8245;
1642 
1643 pub const DEBUG_GROUP_STACK_DEPTH: u32 = 0x826D;
1644 
1645 pub const DEBUG_LOGGED_MESSAGES: u32 = 0x9145;
1646 
1647 pub const DEBUG_NEXT_LOGGED_MESSAGE_LENGTH: u32 = 0x8243;
1648 
1649 pub const DEBUG_OUTPUT: u32 = 0x92E0;
1650 
1651 pub const DEBUG_OUTPUT_SYNCHRONOUS: u32 = 0x8242;
1652 
1653 pub const DEBUG_SEVERITY_HIGH: u32 = 0x9146;
1654 
1655 pub const DEBUG_SEVERITY_LOW: u32 = 0x9148;
1656 
1657 pub const DEBUG_SEVERITY_MEDIUM: u32 = 0x9147;
1658 
1659 pub const DEBUG_SEVERITY_NOTIFICATION: u32 = 0x826B;
1660 
1661 pub const DEBUG_SOURCE_API: u32 = 0x8246;
1662 
1663 pub const DEBUG_SOURCE_APPLICATION: u32 = 0x824A;
1664 
1665 pub const DEBUG_SOURCE_OTHER: u32 = 0x824B;
1666 
1667 pub const DEBUG_SOURCE_SHADER_COMPILER: u32 = 0x8248;
1668 
1669 pub const DEBUG_SOURCE_THIRD_PARTY: u32 = 0x8249;
1670 
1671 pub const DEBUG_SOURCE_WINDOW_SYSTEM: u32 = 0x8247;
1672 
1673 pub const DEBUG_TYPE_DEPRECATED_BEHAVIOR: u32 = 0x824D;
1674 
1675 pub const DEBUG_TYPE_ERROR: u32 = 0x824C;
1676 
1677 pub const DEBUG_TYPE_MARKER: u32 = 0x8268;
1678 
1679 pub const DEBUG_TYPE_OTHER: u32 = 0x8251;
1680 
1681 pub const DEBUG_TYPE_PERFORMANCE: u32 = 0x8250;
1682 
1683 pub const DEBUG_TYPE_POP_GROUP: u32 = 0x826A;
1684 
1685 pub const DEBUG_TYPE_PORTABILITY: u32 = 0x824F;
1686 
1687 pub const DEBUG_TYPE_PUSH_GROUP: u32 = 0x8269;
1688 
1689 pub const DEBUG_TYPE_UNDEFINED_BEHAVIOR: u32 = 0x824E;
1690 
1691 pub const DECR: u32 = 0x1E03;
1692 
1693 pub const DECR_WRAP: u32 = 0x8508;
1694 
1695 pub const DELETE_STATUS: u32 = 0x8B80;
1696 
1697 pub const DEPTH: u32 = 0x1801;
1698 
1699 pub const DEPTH24_STENCIL8: u32 = 0x88F0;
1700 
1701 pub const DEPTH32F_STENCIL8: u32 = 0x8CAD;
1702 
1703 pub const DEPTH_ATTACHMENT: u32 = 0x8D00;
1704 
1705 pub const DEPTH_BUFFER_BIT: u32 = 0x00000100;
1706 
1707 pub const DEPTH_CLAMP: u32 = 0x864F;
1708 
1709 pub const DEPTH_CLEAR_VALUE: u32 = 0x0B73;
1710 
1711 pub const DEPTH_COMPONENT: u32 = 0x1902;
1712 
1713 pub const DEPTH_COMPONENT16: u32 = 0x81A5;
1714 
1715 pub const DEPTH_COMPONENT24: u32 = 0x81A6;
1716 
1717 pub const DEPTH_COMPONENT32: u32 = 0x81A7;
1718 
1719 pub const DEPTH_COMPONENT32F: u32 = 0x8CAC;
1720 
1721 pub const DEPTH_COMPONENTS: u32 = 0x8284;
1722 
1723 pub const DEPTH_FUNC: u32 = 0x0B74;
1724 
1725 pub const DEPTH_RANGE: u32 = 0x0B70;
1726 
1727 pub const DEPTH_RENDERABLE: u32 = 0x8287;
1728 
1729 pub const DEPTH_STENCIL: u32 = 0x84F9;
1730 
1731 pub const DEPTH_STENCIL_ATTACHMENT: u32 = 0x821A;
1732 
1733 pub const DEPTH_STENCIL_TEXTURE_MODE: u32 = 0x90EA;
1734 
1735 pub const DEPTH_TEST: u32 = 0x0B71;
1736 
1737 pub const DEPTH_WRITEMASK: u32 = 0x0B72;
1738 
1739 pub const DISPATCH_INDIRECT_BUFFER: u32 = 0x90EE;
1740 
1741 pub const DISPATCH_INDIRECT_BUFFER_BINDING: u32 = 0x90EF;
1742 
1743 pub const DISPLAY_LIST: u32 = 0x82E7;
1744 
1745 pub const DITHER: u32 = 0x0BD0;
1746 
1747 pub const DONT_CARE: u32 = 0x1100;
1748 
1749 pub const DOUBLE: u32 = 0x140A;
1750 
1751 pub const DOUBLEBUFFER: u32 = 0x0C32;
1752 
1753 pub const DOUBLE_MAT2: u32 = 0x8F46;
1754 
1755 pub const DOUBLE_MAT2x3: u32 = 0x8F49;
1756 
1757 pub const DOUBLE_MAT2x4: u32 = 0x8F4A;
1758 
1759 pub const DOUBLE_MAT3: u32 = 0x8F47;
1760 
1761 pub const DOUBLE_MAT3x2: u32 = 0x8F4B;
1762 
1763 pub const DOUBLE_MAT3x4: u32 = 0x8F4C;
1764 
1765 pub const DOUBLE_MAT4: u32 = 0x8F48;
1766 
1767 pub const DOUBLE_MAT4x2: u32 = 0x8F4D;
1768 
1769 pub const DOUBLE_MAT4x3: u32 = 0x8F4E;
1770 
1771 pub const DOUBLE_VEC2: u32 = 0x8FFC;
1772 
1773 pub const DOUBLE_VEC3: u32 = 0x8FFD;
1774 
1775 pub const DOUBLE_VEC4: u32 = 0x8FFE;
1776 
1777 pub const DRAW_BUFFER: u32 = 0x0C01;
1778 
1779 pub const DRAW_BUFFER0: u32 = 0x8825;
1780 
1781 pub const DRAW_BUFFER1: u32 = 0x8826;
1782 
1783 pub const DRAW_BUFFER10: u32 = 0x882F;
1784 
1785 pub const DRAW_BUFFER11: u32 = 0x8830;
1786 
1787 pub const DRAW_BUFFER12: u32 = 0x8831;
1788 
1789 pub const DRAW_BUFFER13: u32 = 0x8832;
1790 
1791 pub const DRAW_BUFFER14: u32 = 0x8833;
1792 
1793 pub const DRAW_BUFFER15: u32 = 0x8834;
1794 
1795 pub const DRAW_BUFFER2: u32 = 0x8827;
1796 
1797 pub const DRAW_BUFFER3: u32 = 0x8828;
1798 
1799 pub const DRAW_BUFFER4: u32 = 0x8829;
1800 
1801 pub const DRAW_BUFFER5: u32 = 0x882A;
1802 
1803 pub const DRAW_BUFFER6: u32 = 0x882B;
1804 
1805 pub const DRAW_BUFFER7: u32 = 0x882C;
1806 
1807 pub const DRAW_BUFFER8: u32 = 0x882D;
1808 
1809 pub const DRAW_BUFFER9: u32 = 0x882E;
1810 
1811 pub const DRAW_FRAMEBUFFER: u32 = 0x8CA9;
1812 
1813 pub const DRAW_FRAMEBUFFER_BINDING: u32 = 0x8CA6;
1814 
1815 pub const DRAW_INDIRECT_BUFFER: u32 = 0x8F3F;
1816 
1817 pub const DRAW_INDIRECT_BUFFER_BINDING: u32 = 0x8F43;
1818 
1819 pub const DST_ALPHA: u32 = 0x0304;
1820 
1821 pub const DST_COLOR: u32 = 0x0306;
1822 
1823 pub const DYNAMIC_COPY: u32 = 0x88EA;
1824 
1825 pub const DYNAMIC_DRAW: u32 = 0x88E8;
1826 
1827 pub const DYNAMIC_READ: u32 = 0x88E9;
1828 
1829 pub const DYNAMIC_STORAGE_BIT: u32 = 0x0100;
1830 
1831 pub const ELEMENT_ARRAY_BARRIER_BIT: u32 = 0x00000002;
1832 
1833 pub const ELEMENT_ARRAY_BUFFER: u32 = 0x8893;
1834 
1835 pub const ELEMENT_ARRAY_BUFFER_BINDING: u32 = 0x8895;
1836 
1837 pub const EQUAL: u32 = 0x0202;
1838 
1839 pub const EQUIV: u32 = 0x1509;
1840 
1841 pub const EXTENSIONS: u32 = 0x1F03;
1842 
1843 pub const FALSE: u8 = 0;
1844 
1845 pub const FASTEST: u32 = 0x1101;
1846 
1847 pub const FILL: u32 = 0x1B02;
1848 
1849 pub const FILTER: u32 = 0x829A;
1850 
1851 pub const FIRST_VERTEX_CONVENTION: u32 = 0x8E4D;
1852 
1853 pub const FIXED: u32 = 0x140C;
1854 
1855 pub const FIXED_ONLY: u32 = 0x891D;
1856 
1857 pub const FLOAT: u32 = 0x1406;
1858 
1859 pub const FLOAT_32_UNSIGNED_INT_24_8_REV: u32 = 0x8DAD;
1860 
1861 pub const FLOAT_MAT2: u32 = 0x8B5A;
1862 
1863 pub const FLOAT_MAT2x3: u32 = 0x8B65;
1864 
1865 pub const FLOAT_MAT2x4: u32 = 0x8B66;
1866 
1867 pub const FLOAT_MAT3: u32 = 0x8B5B;
1868 
1869 pub const FLOAT_MAT3x2: u32 = 0x8B67;
1870 
1871 pub const FLOAT_MAT3x4: u32 = 0x8B68;
1872 
1873 pub const FLOAT_MAT4: u32 = 0x8B5C;
1874 
1875 pub const FLOAT_MAT4x2: u32 = 0x8B69;
1876 
1877 pub const FLOAT_MAT4x3: u32 = 0x8B6A;
1878 
1879 pub const FLOAT_VEC2: u32 = 0x8B50;
1880 
1881 pub const FLOAT_VEC3: u32 = 0x8B51;
1882 
1883 pub const FLOAT_VEC4: u32 = 0x8B52;
1884 
1885 pub const FRACTIONAL_EVEN: u32 = 0x8E7C;
1886 
1887 pub const FRACTIONAL_ODD: u32 = 0x8E7B;
1888 
1889 pub const FRAGMENT_INTERPOLATION_OFFSET_BITS: u32 = 0x8E5D;
1890 
1891 pub const FRAGMENT_SHADER: u32 = 0x8B30;
1892 
1893 pub const FRAGMENT_SHADER_BIT: u32 = 0x00000002;
1894 
1895 pub const FRAGMENT_SHADER_DERIVATIVE_HINT: u32 = 0x8B8B;
1896 
1897 pub const FRAGMENT_SHADER_INVOCATIONS: u32 = 0x82F4;
1898 
1899 pub const FRAGMENT_SUBROUTINE: u32 = 0x92EC;
1900 
1901 pub const FRAGMENT_SUBROUTINE_UNIFORM: u32 = 0x92F2;
1902 
1903 pub const FRAGMENT_TEXTURE: u32 = 0x829F;
1904 
1905 pub const FRAMEBUFFER: u32 = 0x8D40;
1906 
1907 pub const FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: u32 = 0x8215;
1908 
1909 pub const FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: u32 = 0x8214;
1910 
1911 pub const FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: u32 = 0x8210;
1912 
1913 pub const FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: u32 = 0x8211;
1914 
1915 pub const FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: u32 = 0x8216;
1916 
1917 pub const FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: u32 = 0x8213;
1918 
1919 pub const FRAMEBUFFER_ATTACHMENT_LAYERED: u32 = 0x8DA7;
1920 
1921 pub const FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: u32 = 0x8CD1;
1922 
1923 pub const FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: u32 = 0x8CD0;
1924 
1925 pub const FRAMEBUFFER_ATTACHMENT_RED_SIZE: u32 = 0x8212;
1926 
1927 pub const FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: u32 = 0x8217;
1928 
1929 pub const FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: u32 = 0x8CD3;
1930 
1931 pub const FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: u32 = 0x8CD4;
1932 
1933 pub const FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: u32 = 0x8CD2;
1934 
1935 pub const FRAMEBUFFER_BARRIER_BIT: u32 = 0x00000400;
1936 
1937 pub const FRAMEBUFFER_BINDING: u32 = 0x8CA6;
1938 
1939 pub const FRAMEBUFFER_BLEND: u32 = 0x828B;
1940 
1941 pub const FRAMEBUFFER_COMPLETE: u32 = 0x8CD5;
1942 
1943 pub const FRAMEBUFFER_DEFAULT: u32 = 0x8218;
1944 
1945 pub const FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS: u32 = 0x9314;
1946 
1947 pub const FRAMEBUFFER_DEFAULT_HEIGHT: u32 = 0x9311;
1948 
1949 pub const FRAMEBUFFER_DEFAULT_LAYERS: u32 = 0x9312;
1950 
1951 pub const FRAMEBUFFER_DEFAULT_SAMPLES: u32 = 0x9313;
1952 
1953 pub const FRAMEBUFFER_DEFAULT_WIDTH: u32 = 0x9310;
1954 
1955 pub const FRAMEBUFFER_INCOMPLETE_ATTACHMENT: u32 = 0x8CD6;
1956 
1957 pub const FRAMEBUFFER_INCOMPLETE_DIMENSIONS: u32 = 0x8CD9;
1958 
1959 pub const FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER: u32 = 0x8CDB;
1960 
1961 pub const FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS: u32 = 0x8DA8;
1962 
1963 pub const FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: u32 = 0x8CD7;
1964 
1965 pub const FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: u32 = 0x8D56;
1966 
1967 pub const FRAMEBUFFER_INCOMPLETE_READ_BUFFER: u32 = 0x8CDC;
1968 
1969 pub const FRAMEBUFFER_RENDERABLE: u32 = 0x8289;
1970 
1971 pub const FRAMEBUFFER_RENDERABLE_LAYERED: u32 = 0x828A;
1972 
1973 pub const FRAMEBUFFER_SRGB: u32 = 0x8DB9;
1974 
1975 pub const FRAMEBUFFER_UNDEFINED: u32 = 0x8219;
1976 
1977 pub const FRAMEBUFFER_UNSUPPORTED: u32 = 0x8CDD;
1978 
1979 pub const FRONT: u32 = 0x0404;
1980 
1981 pub const FRONT_AND_BACK: u32 = 0x0408;
1982 
1983 pub const FRONT_FACE: u32 = 0x0B46;
1984 
1985 pub const FRONT_LEFT: u32 = 0x0400;
1986 
1987 pub const FRONT_RIGHT: u32 = 0x0401;
1988 
1989 pub const FULL_SUPPORT: u32 = 0x82B7;
1990 
1991 pub const FUNC_ADD: u32 = 0x8006;
1992 
1993 pub const FUNC_REVERSE_SUBTRACT: u32 = 0x800B;
1994 
1995 pub const FUNC_SUBTRACT: u32 = 0x800A;
1996 
1997 pub const GEOMETRY_INPUT_TYPE: u32 = 0x8917;
1998 
1999 pub const GEOMETRY_OUTPUT_TYPE: u32 = 0x8918;
2000 
2001 pub const GEOMETRY_SHADER: u32 = 0x8DD9;
2002 
2003 pub const GEOMETRY_SHADER_BIT: u32 = 0x00000004;
2004 
2005 pub const GEOMETRY_SHADER_INVOCATIONS: u32 = 0x887F;
2006 
2007 pub const GEOMETRY_SHADER_PRIMITIVES_EMITTED: u32 = 0x82F3;
2008 
2009 pub const GEOMETRY_SUBROUTINE: u32 = 0x92EB;
2010 
2011 pub const GEOMETRY_SUBROUTINE_UNIFORM: u32 = 0x92F1;
2012 
2013 pub const GEOMETRY_TEXTURE: u32 = 0x829E;
2014 
2015 pub const GEOMETRY_VERTICES_OUT: u32 = 0x8916;
2016 
2017 pub const GEQUAL: u32 = 0x0206;
2018 
2019 pub const GET_TEXTURE_IMAGE_FORMAT: u32 = 0x8291;
2020 
2021 pub const GET_TEXTURE_IMAGE_TYPE: u32 = 0x8292;
2022 
2023 pub const GREATER: u32 = 0x0204;
2024 
2025 pub const GREEN: u32 = 0x1904;
2026 
2027 pub const GREEN_INTEGER: u32 = 0x8D95;
2028 
2029 pub const GUILTY_CONTEXT_RESET: u32 = 0x8253;
2030 
2031 pub const HALF_FLOAT: u32 = 0x140B;
2032 
2033 pub const HIGH_FLOAT: u32 = 0x8DF2;
2034 
2035 pub const HIGH_INT: u32 = 0x8DF5;
2036 
2037 pub const IMAGE_1D: u32 = 0x904C;
2038 
2039 pub const IMAGE_1D_ARRAY: u32 = 0x9052;
2040 
2041 pub const IMAGE_2D: u32 = 0x904D;
2042 
2043 pub const IMAGE_2D_ARRAY: u32 = 0x9053;
2044 
2045 pub const IMAGE_2D_MULTISAMPLE: u32 = 0x9055;
2046 
2047 pub const IMAGE_2D_MULTISAMPLE_ARRAY: u32 = 0x9056;
2048 
2049 pub const IMAGE_2D_RECT: u32 = 0x904F;
2050 
2051 pub const IMAGE_3D: u32 = 0x904E;
2052 
2053 pub const IMAGE_BINDING_ACCESS: u32 = 0x8F3E;
2054 
2055 pub const IMAGE_BINDING_FORMAT: u32 = 0x906E;
2056 
2057 pub const IMAGE_BINDING_LAYER: u32 = 0x8F3D;
2058 
2059 pub const IMAGE_BINDING_LAYERED: u32 = 0x8F3C;
2060 
2061 pub const IMAGE_BINDING_LEVEL: u32 = 0x8F3B;
2062 
2063 pub const IMAGE_BINDING_NAME: u32 = 0x8F3A;
2064 
2065 pub const IMAGE_BUFFER: u32 = 0x9051;
2066 
2067 pub const IMAGE_CLASS_10_10_10_2: u32 = 0x82C3;
2068 
2069 pub const IMAGE_CLASS_11_11_10: u32 = 0x82C2;
2070 
2071 pub const IMAGE_CLASS_1_X_16: u32 = 0x82BE;
2072 
2073 pub const IMAGE_CLASS_1_X_32: u32 = 0x82BB;
2074 
2075 pub const IMAGE_CLASS_1_X_8: u32 = 0x82C1;
2076 
2077 pub const IMAGE_CLASS_2_X_16: u32 = 0x82BD;
2078 
2079 pub const IMAGE_CLASS_2_X_32: u32 = 0x82BA;
2080 
2081 pub const IMAGE_CLASS_2_X_8: u32 = 0x82C0;
2082 
2083 pub const IMAGE_CLASS_4_X_16: u32 = 0x82BC;
2084 
2085 pub const IMAGE_CLASS_4_X_32: u32 = 0x82B9;
2086 
2087 pub const IMAGE_CLASS_4_X_8: u32 = 0x82BF;
2088 
2089 pub const IMAGE_COMPATIBILITY_CLASS: u32 = 0x82A8;
2090 
2091 pub const IMAGE_CUBE: u32 = 0x9050;
2092 
2093 pub const IMAGE_CUBE_MAP_ARRAY: u32 = 0x9054;
2094 
2095 pub const IMAGE_FORMAT_COMPATIBILITY_BY_CLASS: u32 = 0x90C9;
2096 
2097 pub const IMAGE_FORMAT_COMPATIBILITY_BY_SIZE: u32 = 0x90C8;
2098 
2099 pub const IMAGE_FORMAT_COMPATIBILITY_TYPE: u32 = 0x90C7;
2100 
2101 pub const IMAGE_PIXEL_FORMAT: u32 = 0x82A9;
2102 
2103 pub const IMAGE_PIXEL_TYPE: u32 = 0x82AA;
2104 
2105 pub const IMAGE_TEXEL_SIZE: u32 = 0x82A7;
2106 
2107 pub const IMPLEMENTATION_COLOR_READ_FORMAT: u32 = 0x8B9B;
2108 
2109 pub const IMPLEMENTATION_COLOR_READ_TYPE: u32 = 0x8B9A;
2110 
2111 pub const INCR: u32 = 0x1E02;
2112 
2113 pub const INCR_WRAP: u32 = 0x8507;
2114 
2115 pub const INDEX: u32 = 0x8222;
2116 
2117 pub const INFO_LOG_LENGTH: u32 = 0x8B84;
2118 
2119 pub const INNOCENT_CONTEXT_RESET: u32 = 0x8254;
2120 
2121 pub const INT: u32 = 0x1404;
2122 
2123 pub const INTERLEAVED_ATTRIBS: u32 = 0x8C8C;
2124 
2125 pub const INTERNALFORMAT_ALPHA_SIZE: u32 = 0x8274;
2126 
2127 pub const INTERNALFORMAT_ALPHA_TYPE: u32 = 0x827B;
2128 
2129 pub const INTERNALFORMAT_BLUE_SIZE: u32 = 0x8273;
2130 
2131 pub const INTERNALFORMAT_BLUE_TYPE: u32 = 0x827A;
2132 
2133 pub const INTERNALFORMAT_DEPTH_SIZE: u32 = 0x8275;
2134 
2135 pub const INTERNALFORMAT_DEPTH_TYPE: u32 = 0x827C;
2136 
2137 pub const INTERNALFORMAT_GREEN_SIZE: u32 = 0x8272;
2138 
2139 pub const INTERNALFORMAT_GREEN_TYPE: u32 = 0x8279;
2140 
2141 pub const INTERNALFORMAT_PREFERRED: u32 = 0x8270;
2142 
2143 pub const INTERNALFORMAT_RED_SIZE: u32 = 0x8271;
2144 
2145 pub const INTERNALFORMAT_RED_TYPE: u32 = 0x8278;
2146 
2147 pub const INTERNALFORMAT_SHARED_SIZE: u32 = 0x8277;
2148 
2149 pub const INTERNALFORMAT_STENCIL_SIZE: u32 = 0x8276;
2150 
2151 pub const INTERNALFORMAT_STENCIL_TYPE: u32 = 0x827D;
2152 
2153 pub const INTERNALFORMAT_SUPPORTED: u32 = 0x826F;
2154 
2155 pub const INT_2_10_10_10_REV: u32 = 0x8D9F;
2156 
2157 pub const INT_IMAGE_1D: u32 = 0x9057;
2158 
2159 pub const INT_IMAGE_1D_ARRAY: u32 = 0x905D;
2160 
2161 pub const INT_IMAGE_2D: u32 = 0x9058;
2162 
2163 pub const INT_IMAGE_2D_ARRAY: u32 = 0x905E;
2164 
2165 pub const INT_IMAGE_2D_MULTISAMPLE: u32 = 0x9060;
2166 
2167 pub const INT_IMAGE_2D_MULTISAMPLE_ARRAY: u32 = 0x9061;
2168 
2169 pub const INT_IMAGE_2D_RECT: u32 = 0x905A;
2170 
2171 pub const INT_IMAGE_3D: u32 = 0x9059;
2172 
2173 pub const INT_IMAGE_BUFFER: u32 = 0x905C;
2174 
2175 pub const INT_IMAGE_CUBE: u32 = 0x905B;
2176 
2177 pub const INT_IMAGE_CUBE_MAP_ARRAY: u32 = 0x905F;
2178 
2179 pub const INT_SAMPLER_1D: u32 = 0x8DC9;
2180 
2181 pub const INT_SAMPLER_1D_ARRAY: u32 = 0x8DCE;
2182 
2183 pub const INT_SAMPLER_2D: u32 = 0x8DCA;
2184 
2185 pub const INT_SAMPLER_2D_ARRAY: u32 = 0x8DCF;
2186 
2187 pub const INT_SAMPLER_2D_MULTISAMPLE: u32 = 0x9109;
2188 
2189 pub const INT_SAMPLER_2D_MULTISAMPLE_ARRAY: u32 = 0x910C;
2190 
2191 pub const INT_SAMPLER_2D_RECT: u32 = 0x8DCD;
2192 
2193 pub const INT_SAMPLER_3D: u32 = 0x8DCB;
2194 
2195 pub const INT_SAMPLER_BUFFER: u32 = 0x8DD0;
2196 
2197 pub const INT_SAMPLER_CUBE: u32 = 0x8DCC;
2198 
2199 pub const INT_SAMPLER_CUBE_MAP_ARRAY: u32 = 0x900E;
2200 
2201 pub const INT_VEC2: u32 = 0x8B53;
2202 
2203 pub const INT_VEC3: u32 = 0x8B54;
2204 
2205 pub const INT_VEC4: u32 = 0x8B55;
2206 
2207 pub const INVALID_ENUM: u32 = 0x0500;
2208 
2209 pub const INVALID_FRAMEBUFFER_OPERATION: u32 = 0x0506;
2210 
2211 pub const INVALID_INDEX: u32 = 0xFFFFFFFF;
2212 
2213 pub const INVALID_OPERATION: u32 = 0x0502;
2214 
2215 pub const INVALID_VALUE: u32 = 0x0501;
2216 
2217 pub const INVERT: u32 = 0x150A;
2218 
2219 pub const ISOLINES: u32 = 0x8E7A;
2220 
2221 pub const IS_PER_PATCH: u32 = 0x92E7;
2222 
2223 pub const IS_ROW_MAJOR: u32 = 0x9300;
2224 
2225 pub const KEEP: u32 = 0x1E00;
2226 
2227 pub const LAST_VERTEX_CONVENTION: u32 = 0x8E4E;
2228 
2229 pub const LAYER_PROVOKING_VERTEX: u32 = 0x825E;
2230 
2231 pub const LEFT: u32 = 0x0406;
2232 
2233 pub const LEQUAL: u32 = 0x0203;
2234 
2235 pub const LESS: u32 = 0x0201;
2236 
2237 pub const LINE: u32 = 0x1B01;
2238 
2239 pub const LINEAR: u32 = 0x2601;
2240 
2241 pub const LINEAR_MIPMAP_LINEAR: u32 = 0x2703;
2242 
2243 pub const LINEAR_MIPMAP_NEAREST: u32 = 0x2701;
2244 
2245 pub const LINES: u32 = 0x0001;
2246 
2247 pub const LINES_ADJACENCY: u32 = 0x000A;
2248 
2249 pub const LINE_LOOP: u32 = 0x0002;
2250 
2251 pub const LINE_SMOOTH: u32 = 0x0B20;
2252 
2253 pub const LINE_SMOOTH_HINT: u32 = 0x0C52;
2254 
2255 pub const LINE_STRIP: u32 = 0x0003;
2256 
2257 pub const LINE_STRIP_ADJACENCY: u32 = 0x000B;
2258 
2259 pub const LINE_WIDTH: u32 = 0x0B21;
2260 
2261 pub const LINE_WIDTH_GRANULARITY: u32 = 0x0B23;
2262 
2263 pub const LINE_WIDTH_RANGE: u32 = 0x0B22;
2264 
2265 pub const LINK_STATUS: u32 = 0x8B82;
2266 
2267 pub const LOCATION: u32 = 0x930E;
2268 
2269 pub const LOCATION_COMPONENT: u32 = 0x934A;
2270 
2271 pub const LOCATION_INDEX: u32 = 0x930F;
2272 
2273 pub const LOGIC_OP_MODE: u32 = 0x0BF0;
2274 
2275 pub const LOSE_CONTEXT_ON_RESET: u32 = 0x8252;
2276 
2277 pub const LOWER_LEFT: u32 = 0x8CA1;
2278 
2279 pub const LOW_FLOAT: u32 = 0x8DF0;
2280 
2281 pub const LOW_INT: u32 = 0x8DF3;
2282 
2283 pub const LUMINANCE: u32 = 0x1909;
2284 
2285 pub const LUMINANCE_ALPHA: u32 = 0x190A;
2286 
2287 pub const MAJOR_VERSION: u32 = 0x821B;
2288 
2289 pub const MANUAL_GENERATE_MIPMAP: u32 = 0x8294;
2290 
2291 pub const MAP_COHERENT_BIT: u32 = 0x0080;
2292 
2293 pub const MAP_FLUSH_EXPLICIT_BIT: u32 = 0x0010;
2294 
2295 pub const MAP_INVALIDATE_BUFFER_BIT: u32 = 0x0008;
2296 
2297 pub const MAP_INVALIDATE_RANGE_BIT: u32 = 0x0004;
2298 
2299 pub const MAP_PERSISTENT_BIT: u32 = 0x0040;
2300 
2301 pub const MAP_READ_BIT: u32 = 0x0001;
2302 
2303 pub const MAP_UNSYNCHRONIZED_BIT: u32 = 0x0020;
2304 
2305 pub const MAP_WRITE_BIT: u32 = 0x0002;
2306 
2307 pub const MATRIX_STRIDE: u32 = 0x92FF;
2308 
2309 pub const MAX: u32 = 0x8008;
2310 
2311 pub const MAX_3D_TEXTURE_SIZE: u32 = 0x8073;
2312 
2313 pub const MAX_ARRAY_TEXTURE_LAYERS: u32 = 0x88FF;
2314 
2315 pub const MAX_ATOMIC_COUNTER_BUFFER_BINDINGS: u32 = 0x92DC;
2316 
2317 pub const MAX_ATOMIC_COUNTER_BUFFER_SIZE: u32 = 0x92D8;
2318 
2319 pub const MAX_CLIP_DISTANCES: u32 = 0x0D32;
2320 
2321 pub const MAX_COLOR_ATTACHMENTS: u32 = 0x8CDF;
2322 
2323 pub const MAX_COLOR_TEXTURE_SAMPLES: u32 = 0x910E;
2324 
2325 pub const MAX_COMBINED_ATOMIC_COUNTERS: u32 = 0x92D7;
2326 
2327 pub const MAX_COMBINED_ATOMIC_COUNTER_BUFFERS: u32 = 0x92D1;
2328 
2329 pub const MAX_COMBINED_CLIP_AND_CULL_DISTANCES: u32 = 0x82FA;
2330 
2331 pub const MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS: u32 = 0x8266;
2332 
2333 pub const MAX_COMBINED_DIMENSIONS: u32 = 0x8282;
2334 
2335 pub const MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: u32 = 0x8A33;
2336 
2337 pub const MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS: u32 = 0x8A32;
2338 
2339 pub const MAX_COMBINED_IMAGE_UNIFORMS: u32 = 0x90CF;
2340 
2341 pub const MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS: u32 = 0x8F39;
2342 
2343 pub const MAX_COMBINED_SHADER_OUTPUT_RESOURCES: u32 = 0x8F39;
2344 
2345 pub const MAX_COMBINED_SHADER_STORAGE_BLOCKS: u32 = 0x90DC;
2346 
2347 pub const MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS: u32 = 0x8E1E;
2348 
2349 pub const MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS: u32 = 0x8E1F;
2350 
2351 pub const MAX_COMBINED_TEXTURE_IMAGE_UNITS: u32 = 0x8B4D;
2352 
2353 pub const MAX_COMBINED_UNIFORM_BLOCKS: u32 = 0x8A2E;
2354 
2355 pub const MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: u32 = 0x8A31;
2356 
2357 pub const MAX_COMPUTE_ATOMIC_COUNTERS: u32 = 0x8265;
2358 
2359 pub const MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS: u32 = 0x8264;
2360 
2361 pub const MAX_COMPUTE_IMAGE_UNIFORMS: u32 = 0x91BD;
2362 
2363 pub const MAX_COMPUTE_SHADER_STORAGE_BLOCKS: u32 = 0x90DB;
2364 
2365 pub const MAX_COMPUTE_SHARED_MEMORY_SIZE: u32 = 0x8262;
2366 
2367 pub const MAX_COMPUTE_TEXTURE_IMAGE_UNITS: u32 = 0x91BC;
2368 
2369 pub const MAX_COMPUTE_UNIFORM_BLOCKS: u32 = 0x91BB;
2370 
2371 pub const MAX_COMPUTE_UNIFORM_COMPONENTS: u32 = 0x8263;
2372 
2373 pub const MAX_COMPUTE_WORK_GROUP_COUNT: u32 = 0x91BE;
2374 
2375 pub const MAX_COMPUTE_WORK_GROUP_INVOCATIONS: u32 = 0x90EB;
2376 
2377 pub const MAX_COMPUTE_WORK_GROUP_SIZE: u32 = 0x91BF;
2378 
2379 pub const MAX_CUBE_MAP_TEXTURE_SIZE: u32 = 0x851C;
2380 
2381 pub const MAX_CULL_DISTANCES: u32 = 0x82F9;
2382 
2383 pub const MAX_DEBUG_GROUP_STACK_DEPTH: u32 = 0x826C;
2384 
2385 pub const MAX_DEBUG_LOGGED_MESSAGES: u32 = 0x9144;
2386 
2387 pub const MAX_DEBUG_MESSAGE_LENGTH: u32 = 0x9143;
2388 
2389 pub const MAX_DEPTH: u32 = 0x8280;
2390 
2391 pub const MAX_DEPTH_TEXTURE_SAMPLES: u32 = 0x910F;
2392 
2393 pub const MAX_DRAW_BUFFERS: u32 = 0x8824;
2394 
2395 pub const MAX_DUAL_SOURCE_DRAW_BUFFERS: u32 = 0x88FC;
2396 
2397 pub const MAX_ELEMENTS_INDICES: u32 = 0x80E9;
2398 
2399 pub const MAX_ELEMENTS_VERTICES: u32 = 0x80E8;
2400 
2401 pub const MAX_ELEMENT_INDEX: u32 = 0x8D6B;
2402 
2403 pub const MAX_FRAGMENT_ATOMIC_COUNTERS: u32 = 0x92D6;
2404 
2405 pub const MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS: u32 = 0x92D0;
2406 
2407 pub const MAX_FRAGMENT_IMAGE_UNIFORMS: u32 = 0x90CE;
2408 
2409 pub const MAX_FRAGMENT_INPUT_COMPONENTS: u32 = 0x9125;
2410 
2411 pub const MAX_FRAGMENT_INTERPOLATION_OFFSET: u32 = 0x8E5C;
2412 
2413 pub const MAX_FRAGMENT_SHADER_STORAGE_BLOCKS: u32 = 0x90DA;
2414 
2415 pub const MAX_FRAGMENT_UNIFORM_BLOCKS: u32 = 0x8A2D;
2416 
2417 pub const MAX_FRAGMENT_UNIFORM_COMPONENTS: u32 = 0x8B49;
2418 
2419 pub const MAX_FRAGMENT_UNIFORM_VECTORS: u32 = 0x8DFD;
2420 
2421 pub const MAX_FRAMEBUFFER_HEIGHT: u32 = 0x9316;
2422 
2423 pub const MAX_FRAMEBUFFER_LAYERS: u32 = 0x9317;
2424 
2425 pub const MAX_FRAMEBUFFER_SAMPLES: u32 = 0x9318;
2426 
2427 pub const MAX_FRAMEBUFFER_WIDTH: u32 = 0x9315;
2428 
2429 pub const MAX_GEOMETRY_ATOMIC_COUNTERS: u32 = 0x92D5;
2430 
2431 pub const MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS: u32 = 0x92CF;
2432 
2433 pub const MAX_GEOMETRY_IMAGE_UNIFORMS: u32 = 0x90CD;
2434 
2435 pub const MAX_GEOMETRY_INPUT_COMPONENTS: u32 = 0x9123;
2436 
2437 pub const MAX_GEOMETRY_OUTPUT_COMPONENTS: u32 = 0x9124;
2438 
2439 pub const MAX_GEOMETRY_OUTPUT_VERTICES: u32 = 0x8DE0;
2440 
2441 pub const MAX_GEOMETRY_SHADER_INVOCATIONS: u32 = 0x8E5A;
2442 
2443 pub const MAX_GEOMETRY_SHADER_STORAGE_BLOCKS: u32 = 0x90D7;
2444 
2445 pub const MAX_GEOMETRY_TEXTURE_IMAGE_UNITS: u32 = 0x8C29;
2446 
2447 pub const MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS: u32 = 0x8DE1;
2448 
2449 pub const MAX_GEOMETRY_UNIFORM_BLOCKS: u32 = 0x8A2C;
2450 
2451 pub const MAX_GEOMETRY_UNIFORM_COMPONENTS: u32 = 0x8DDF;
2452 
2453 pub const MAX_HEIGHT: u32 = 0x827F;
2454 
2455 pub const MAX_IMAGE_SAMPLES: u32 = 0x906D;
2456 
2457 pub const MAX_IMAGE_UNITS: u32 = 0x8F38;
2458 
2459 pub const MAX_INTEGER_SAMPLES: u32 = 0x9110;
2460 
2461 pub const MAX_LABEL_LENGTH: u32 = 0x82E8;
2462 
2463 pub const MAX_LAYERS: u32 = 0x8281;
2464 
2465 pub const MAX_NAME_LENGTH: u32 = 0x92F6;
2466 
2467 pub const MAX_NUM_ACTIVE_VARIABLES: u32 = 0x92F7;
2468 
2469 pub const MAX_NUM_COMPATIBLE_SUBROUTINES: u32 = 0x92F8;
2470 
2471 pub const MAX_PATCH_VERTICES: u32 = 0x8E7D;
2472 
2473 pub const MAX_PROGRAM_TEXEL_OFFSET: u32 = 0x8905;
2474 
2475 pub const MAX_PROGRAM_TEXTURE_GATHER_OFFSET: u32 = 0x8E5F;
2476 
2477 pub const MAX_RECTANGLE_TEXTURE_SIZE: u32 = 0x84F8;
2478 
2479 pub const MAX_RENDERBUFFER_SIZE: u32 = 0x84E8;
2480 
2481 pub const MAX_SAMPLES: u32 = 0x8D57;
2482 
2483 pub const MAX_SAMPLE_MASK_WORDS: u32 = 0x8E59;
2484 
2485 pub const MAX_SERVER_WAIT_TIMEOUT: u32 = 0x9111;
2486 
2487 pub const MAX_SHADER_STORAGE_BLOCK_SIZE: u32 = 0x90DE;
2488 
2489 pub const MAX_SHADER_STORAGE_BUFFER_BINDINGS: u32 = 0x90DD;
2490 
2491 pub const MAX_SUBROUTINES: u32 = 0x8DE7;
2492 
2493 pub const MAX_SUBROUTINE_UNIFORM_LOCATIONS: u32 = 0x8DE8;
2494 
2495 pub const MAX_TESS_CONTROL_ATOMIC_COUNTERS: u32 = 0x92D3;
2496 
2497 pub const MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS: u32 = 0x92CD;
2498 
2499 pub const MAX_TESS_CONTROL_IMAGE_UNIFORMS: u32 = 0x90CB;
2500 
2501 pub const MAX_TESS_CONTROL_INPUT_COMPONENTS: u32 = 0x886C;
2502 
2503 pub const MAX_TESS_CONTROL_OUTPUT_COMPONENTS: u32 = 0x8E83;
2504 
2505 pub const MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS: u32 = 0x90D8;
2506 
2507 pub const MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS: u32 = 0x8E81;
2508 
2509 pub const MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS: u32 = 0x8E85;
2510 
2511 pub const MAX_TESS_CONTROL_UNIFORM_BLOCKS: u32 = 0x8E89;
2512 
2513 pub const MAX_TESS_CONTROL_UNIFORM_COMPONENTS: u32 = 0x8E7F;
2514 
2515 pub const MAX_TESS_EVALUATION_ATOMIC_COUNTERS: u32 = 0x92D4;
2516 
2517 pub const MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS: u32 = 0x92CE;
2518 
2519 pub const MAX_TESS_EVALUATION_IMAGE_UNIFORMS: u32 = 0x90CC;
2520 
2521 pub const MAX_TESS_EVALUATION_INPUT_COMPONENTS: u32 = 0x886D;
2522 
2523 pub const MAX_TESS_EVALUATION_OUTPUT_COMPONENTS: u32 = 0x8E86;
2524 
2525 pub const MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS: u32 = 0x90D9;
2526 
2527 pub const MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS: u32 = 0x8E82;
2528 
2529 pub const MAX_TESS_EVALUATION_UNIFORM_BLOCKS: u32 = 0x8E8A;
2530 
2531 pub const MAX_TESS_EVALUATION_UNIFORM_COMPONENTS: u32 = 0x8E80;
2532 
2533 pub const MAX_TESS_GEN_LEVEL: u32 = 0x8E7E;
2534 
2535 pub const MAX_TESS_PATCH_COMPONENTS: u32 = 0x8E84;
2536 
2537 pub const MAX_TEXTURE_BUFFER_SIZE: u32 = 0x8C2B;
2538 
2539 pub const MAX_TEXTURE_IMAGE_UNITS: u32 = 0x8872;
2540 
2541 pub const MAX_TEXTURE_LOD_BIAS: u32 = 0x84FD;
2542 
2543 pub const MAX_TEXTURE_MAX_ANISOTROPY: u32 = 0x84FF;
2544 
2545 pub const MAX_TEXTURE_MAX_ANISOTROPY_EXT: u32 = 0x84FF;
2546 
2547 pub const MAX_TEXTURE_SIZE: u32 = 0x0D33;
2548 
2549 pub const MAX_TRANSFORM_FEEDBACK_BUFFERS: u32 = 0x8E70;
2550 
2551 pub const MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: u32 = 0x8C8A;
2552 
2553 pub const MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: u32 = 0x8C8B;
2554 
2555 pub const MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: u32 = 0x8C80;
2556 
2557 pub const MAX_UNIFORM_BLOCK_SIZE: u32 = 0x8A30;
2558 
2559 pub const MAX_UNIFORM_BUFFER_BINDINGS: u32 = 0x8A2F;
2560 
2561 pub const MAX_UNIFORM_LOCATIONS: u32 = 0x826E;
2562 
2563 pub const MAX_VARYING_COMPONENTS: u32 = 0x8B4B;
2564 
2565 pub const MAX_VARYING_FLOATS: u32 = 0x8B4B;
2566 
2567 pub const MAX_VARYING_VECTORS: u32 = 0x8DFC;
2568 
2569 pub const MAX_VERTEX_ATOMIC_COUNTERS: u32 = 0x92D2;
2570 
2571 pub const MAX_VERTEX_ATOMIC_COUNTER_BUFFERS: u32 = 0x92CC;
2572 
2573 pub const MAX_VERTEX_ATTRIBS: u32 = 0x8869;
2574 
2575 pub const MAX_VERTEX_ATTRIB_BINDINGS: u32 = 0x82DA;
2576 
2577 pub const MAX_VERTEX_ATTRIB_RELATIVE_OFFSET: u32 = 0x82D9;
2578 
2579 pub const MAX_VERTEX_ATTRIB_STRIDE: u32 = 0x82E5;
2580 
2581 pub const MAX_VERTEX_IMAGE_UNIFORMS: u32 = 0x90CA;
2582 
2583 pub const MAX_VERTEX_OUTPUT_COMPONENTS: u32 = 0x9122;
2584 
2585 pub const MAX_VERTEX_SHADER_STORAGE_BLOCKS: u32 = 0x90D6;
2586 
2587 pub const MAX_VERTEX_STREAMS: u32 = 0x8E71;
2588 
2589 pub const MAX_VERTEX_TEXTURE_IMAGE_UNITS: u32 = 0x8B4C;
2590 
2591 pub const MAX_VERTEX_UNIFORM_BLOCKS: u32 = 0x8A2B;
2592 
2593 pub const MAX_VERTEX_UNIFORM_COMPONENTS: u32 = 0x8B4A;
2594 
2595 pub const MAX_VERTEX_UNIFORM_VECTORS: u32 = 0x8DFB;
2596 
2597 pub const MAX_VIEWPORTS: u32 = 0x825B;
2598 
2599 pub const MAX_VIEWPORT_DIMS: u32 = 0x0D3A;
2600 
2601 pub const MAX_WIDTH: u32 = 0x827E;
2602 
2603 pub const MEDIUM_FLOAT: u32 = 0x8DF1;
2604 
2605 pub const MEDIUM_INT: u32 = 0x8DF4;
2606 
2607 pub const MIN: u32 = 0x8007;
2608 
2609 pub const MINOR_VERSION: u32 = 0x821C;
2610 
2611 pub const MIN_FRAGMENT_INTERPOLATION_OFFSET: u32 = 0x8E5B;
2612 
2613 pub const MIN_MAP_BUFFER_ALIGNMENT: u32 = 0x90BC;
2614 
2615 pub const MIN_PROGRAM_TEXEL_OFFSET: u32 = 0x8904;
2616 
2617 pub const MIN_PROGRAM_TEXTURE_GATHER_OFFSET: u32 = 0x8E5E;
2618 
2619 pub const MIN_SAMPLE_SHADING_VALUE: u32 = 0x8C37;
2620 
2621 pub const MIPMAP: u32 = 0x8293;
2622 
2623 pub const MIRRORED_REPEAT: u32 = 0x8370;
2624 
2625 pub const MIRROR_CLAMP_TO_EDGE: u32 = 0x8743;
2626 
2627 pub const MULTISAMPLE: u32 = 0x809D;
2628 
2629 pub const NAME_LENGTH: u32 = 0x92F9;
2630 
2631 pub const NAND: u32 = 0x150E;
2632 
2633 pub const NEAREST: u32 = 0x2600;
2634 
2635 pub const NEAREST_MIPMAP_LINEAR: u32 = 0x2702;
2636 
2637 pub const NEAREST_MIPMAP_NEAREST: u32 = 0x2700;
2638 
2639 pub const NEGATIVE_ONE_TO_ONE: u32 = 0x935E;
2640 
2641 pub const NEVER: u32 = 0x0200;
2642 
2643 pub const NICEST: u32 = 0x1102;
2644 
2645 pub const NONE: u32 = 0;
2646 
2647 pub const NOOP: u32 = 0x1505;
2648 
2649 pub const NOR: u32 = 0x1508;
2650 
2651 pub const NOTEQUAL: u32 = 0x0205;
2652 
2653 pub const NO_ERROR: u32 = 0;
2654 
2655 pub const NO_RESET_NOTIFICATION: u32 = 0x8261;
2656 
2657 pub const NUM_ACTIVE_VARIABLES: u32 = 0x9304;
2658 
2659 pub const NUM_COMPATIBLE_SUBROUTINES: u32 = 0x8E4A;
2660 
2661 pub const NUM_COMPRESSED_TEXTURE_FORMATS: u32 = 0x86A2;
2662 
2663 pub const NUM_EXTENSIONS: u32 = 0x821D;
2664 
2665 pub const NUM_PROGRAM_BINARY_FORMATS: u32 = 0x87FE;
2666 
2667 pub const NUM_SAMPLE_COUNTS: u32 = 0x9380;
2668 
2669 pub const NUM_SHADER_BINARY_FORMATS: u32 = 0x8DF9;
2670 
2671 pub const NUM_SHADING_LANGUAGE_VERSIONS: u32 = 0x82E9;
2672 
2673 pub const NUM_SPIR_V_EXTENSIONS: u32 = 0x9554;
2674 
2675 pub const OBJECT_TYPE: u32 = 0x9112;
2676 
2677 pub const OFFSET: u32 = 0x92FC;
2678 
2679 pub const ONE: u32 = 1;
2680 
2681 pub const ONE_MINUS_CONSTANT_ALPHA: u32 = 0x8004;
2682 
2683 pub const ONE_MINUS_CONSTANT_COLOR: u32 = 0x8002;
2684 
2685 pub const ONE_MINUS_DST_ALPHA: u32 = 0x0305;
2686 
2687 pub const ONE_MINUS_DST_COLOR: u32 = 0x0307;
2688 
2689 pub const ONE_MINUS_SRC1_ALPHA: u32 = 0x88FB;
2690 
2691 pub const ONE_MINUS_SRC1_COLOR: u32 = 0x88FA;
2692 
2693 pub const ONE_MINUS_SRC_ALPHA: u32 = 0x0303;
2694 
2695 pub const ONE_MINUS_SRC_COLOR: u32 = 0x0301;
2696 
2697 pub const OR: u32 = 0x1507;
2698 
2699 pub const OR_INVERTED: u32 = 0x150D;
2700 
2701 pub const OR_REVERSE: u32 = 0x150B;
2702 
2703 pub const OUT_OF_MEMORY: u32 = 0x0505;
2704 
2705 pub const PACK_ALIGNMENT: u32 = 0x0D05;
2706 
2707 pub const PACK_COMPRESSED_BLOCK_DEPTH: u32 = 0x912D;
2708 
2709 pub const PACK_COMPRESSED_BLOCK_HEIGHT: u32 = 0x912C;
2710 
2711 pub const PACK_COMPRESSED_BLOCK_SIZE: u32 = 0x912E;
2712 
2713 pub const PACK_COMPRESSED_BLOCK_WIDTH: u32 = 0x912B;
2714 
2715 pub const PACK_IMAGE_HEIGHT: u32 = 0x806C;
2716 
2717 pub const PACK_LSB_FIRST: u32 = 0x0D01;
2718 
2719 pub const PACK_ROW_LENGTH: u32 = 0x0D02;
2720 
2721 pub const PACK_SKIP_IMAGES: u32 = 0x806B;
2722 
2723 pub const PACK_SKIP_PIXELS: u32 = 0x0D04;
2724 
2725 pub const PACK_SKIP_ROWS: u32 = 0x0D03;
2726 
2727 pub const PACK_SWAP_BYTES: u32 = 0x0D00;
2728 
2729 pub const PARAMETER_BUFFER: u32 = 0x80EE;
2730 
2731 pub const PARAMETER_BUFFER_BINDING: u32 = 0x80EF;
2732 
2733 pub const PATCHES: u32 = 0x000E;
2734 
2735 pub const PATCH_DEFAULT_INNER_LEVEL: u32 = 0x8E73;
2736 
2737 pub const PATCH_DEFAULT_OUTER_LEVEL: u32 = 0x8E74;
2738 
2739 pub const PATCH_VERTICES: u32 = 0x8E72;
2740 
2741 pub const PIXEL_BUFFER_BARRIER_BIT: u32 = 0x00000080;
2742 
2743 pub const PIXEL_PACK_BUFFER: u32 = 0x88EB;
2744 
2745 pub const PIXEL_PACK_BUFFER_BINDING: u32 = 0x88ED;
2746 
2747 pub const PIXEL_UNPACK_BUFFER: u32 = 0x88EC;
2748 
2749 pub const PIXEL_UNPACK_BUFFER_BINDING: u32 = 0x88EF;
2750 
2751 pub const POINT: u32 = 0x1B00;
2752 
2753 pub const POINTS: u32 = 0x0000;
2754 
2755 pub const POINT_FADE_THRESHOLD_SIZE: u32 = 0x8128;
2756 
2757 pub const POINT_SIZE: u32 = 0x0B11;
2758 
2759 pub const POINT_SIZE_GRANULARITY: u32 = 0x0B13;
2760 
2761 pub const POINT_SIZE_RANGE: u32 = 0x0B12;
2762 
2763 pub const POINT_SPRITE_COORD_ORIGIN: u32 = 0x8CA0;
2764 
2765 pub const POLYGON_MODE: u32 = 0x0B40;
2766 
2767 pub const POLYGON_OFFSET_CLAMP: u32 = 0x8E1B;
2768 
2769 pub const POLYGON_OFFSET_FACTOR: u32 = 0x8038;
2770 
2771 pub const POLYGON_OFFSET_FILL: u32 = 0x8037;
2772 
2773 pub const POLYGON_OFFSET_LINE: u32 = 0x2A02;
2774 
2775 pub const POLYGON_OFFSET_POINT: u32 = 0x2A01;
2776 
2777 pub const POLYGON_OFFSET_UNITS: u32 = 0x2A00;
2778 
2779 pub const POLYGON_SMOOTH: u32 = 0x0B41;
2780 
2781 pub const POLYGON_SMOOTH_HINT: u32 = 0x0C53;
2782 
2783 pub const PRIMITIVES_GENERATED: u32 = 0x8C87;
2784 
2785 pub const PRIMITIVES_SUBMITTED: u32 = 0x82EF;
2786 
2787 pub const PRIMITIVE_RESTART: u32 = 0x8F9D;
2788 
2789 pub const PRIMITIVE_RESTART_FIXED_INDEX: u32 = 0x8D69;
2790 
2791 pub const PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED: u32 = 0x8221;
2792 
2793 pub const PRIMITIVE_RESTART_INDEX: u32 = 0x8F9E;
2794 
2795 pub const PROGRAM: u32 = 0x82E2;
2796 
2797 pub const PROGRAM_BINARY_FORMATS: u32 = 0x87FF;
2798 
2799 pub const PROGRAM_BINARY_LENGTH: u32 = 0x8741;
2800 
2801 pub const PROGRAM_BINARY_RETRIEVABLE_HINT: u32 = 0x8257;
2802 
2803 pub const PROGRAM_INPUT: u32 = 0x92E3;
2804 
2805 pub const PROGRAM_OUTPUT: u32 = 0x92E4;
2806 
2807 pub const PROGRAM_PIPELINE: u32 = 0x82E4;
2808 
2809 pub const PROGRAM_PIPELINE_BINDING: u32 = 0x825A;
2810 
2811 pub const PROGRAM_POINT_SIZE: u32 = 0x8642;
2812 
2813 pub const PROGRAM_SEPARABLE: u32 = 0x8258;
2814 
2815 pub const PROVOKING_VERTEX: u32 = 0x8E4F;
2816 
2817 pub const PROXY_TEXTURE_1D: u32 = 0x8063;
2818 
2819 pub const PROXY_TEXTURE_1D_ARRAY: u32 = 0x8C19;
2820 
2821 pub const PROXY_TEXTURE_2D: u32 = 0x8064;
2822 
2823 pub const PROXY_TEXTURE_2D_ARRAY: u32 = 0x8C1B;
2824 
2825 pub const PROXY_TEXTURE_2D_MULTISAMPLE: u32 = 0x9101;
2826 
2827 pub const PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY: u32 = 0x9103;
2828 
2829 pub const PROXY_TEXTURE_3D: u32 = 0x8070;
2830 
2831 pub const PROXY_TEXTURE_CUBE_MAP: u32 = 0x851B;
2832 
2833 pub const PROXY_TEXTURE_CUBE_MAP_ARRAY: u32 = 0x900B;
2834 
2835 pub const PROXY_TEXTURE_RECTANGLE: u32 = 0x84F7;
2836 
2837 pub const QUADS: u32 = 0x0007;
2838 
2839 pub const QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION: u32 = 0x8E4C;
2840 
2841 pub const QUERY: u32 = 0x82E3;
2842 
2843 pub const QUERY_BUFFER: u32 = 0x9192;
2844 
2845 pub const QUERY_BUFFER_BARRIER_BIT: u32 = 0x00008000;
2846 
2847 pub const QUERY_BUFFER_BINDING: u32 = 0x9193;
2848 
2849 pub const QUERY_BY_REGION_NO_WAIT: u32 = 0x8E16;
2850 
2851 pub const QUERY_BY_REGION_NO_WAIT_INVERTED: u32 = 0x8E1A;
2852 
2853 pub const QUERY_BY_REGION_WAIT: u32 = 0x8E15;
2854 
2855 pub const QUERY_BY_REGION_WAIT_INVERTED: u32 = 0x8E19;
2856 
2857 pub const QUERY_COUNTER_BITS: u32 = 0x8864;
2858 
2859 pub const QUERY_NO_WAIT: u32 = 0x8E14;
2860 
2861 pub const QUERY_NO_WAIT_INVERTED: u32 = 0x8E18;
2862 
2863 pub const QUERY_RESULT: u32 = 0x8866;
2864 
2865 pub const QUERY_RESULT_AVAILABLE: u32 = 0x8867;
2866 
2867 pub const QUERY_RESULT_NO_WAIT: u32 = 0x9194;
2868 
2869 pub const QUERY_TARGET: u32 = 0x82EA;
2870 
2871 pub const QUERY_WAIT: u32 = 0x8E13;
2872 
2873 pub const QUERY_WAIT_INVERTED: u32 = 0x8E17;
2874 
2875 pub const R11F_G11F_B10F: u32 = 0x8C3A;
2876 
2877 pub const R16: u32 = 0x822A;
2878 
2879 pub const R16F: u32 = 0x822D;
2880 
2881 pub const R16I: u32 = 0x8233;
2882 
2883 pub const R16UI: u32 = 0x8234;
2884 
2885 pub const R16_SNORM: u32 = 0x8F98;
2886 
2887 pub const R32F: u32 = 0x822E;
2888 
2889 pub const R32I: u32 = 0x8235;
2890 
2891 pub const R32UI: u32 = 0x8236;
2892 
2893 pub const R3_G3_B2: u32 = 0x2A10;
2894 
2895 pub const R8: u32 = 0x8229;
2896 
2897 pub const R8I: u32 = 0x8231;
2898 
2899 pub const R8UI: u32 = 0x8232;
2900 
2901 pub const R8_SNORM: u32 = 0x8F94;
2902 
2903 pub const RASTERIZER_DISCARD: u32 = 0x8C89;
2904 
2905 pub const READ_BUFFER: u32 = 0x0C02;
2906 
2907 pub const READ_FRAMEBUFFER: u32 = 0x8CA8;
2908 
2909 pub const READ_FRAMEBUFFER_BINDING: u32 = 0x8CAA;
2910 
2911 pub const READ_ONLY: u32 = 0x88B8;
2912 
2913 pub const READ_PIXELS: u32 = 0x828C;
2914 
2915 pub const READ_PIXELS_FORMAT: u32 = 0x828D;
2916 
2917 pub const READ_PIXELS_TYPE: u32 = 0x828E;
2918 
2919 pub const READ_WRITE: u32 = 0x88BA;
2920 
2921 pub const RED: u32 = 0x1903;
2922 
2923 pub const RED_INTEGER: u32 = 0x8D94;
2924 
2925 pub const REFERENCED_BY_COMPUTE_SHADER: u32 = 0x930B;
2926 
2927 pub const REFERENCED_BY_FRAGMENT_SHADER: u32 = 0x930A;
2928 
2929 pub const REFERENCED_BY_GEOMETRY_SHADER: u32 = 0x9309;
2930 
2931 pub const REFERENCED_BY_TESS_CONTROL_SHADER: u32 = 0x9307;
2932 
2933 pub const REFERENCED_BY_TESS_EVALUATION_SHADER: u32 = 0x9308;
2934 
2935 pub const REFERENCED_BY_VERTEX_SHADER: u32 = 0x9306;
2936 
2937 pub const RENDERBUFFER: u32 = 0x8D41;
2938 
2939 pub const RENDERBUFFER_ALPHA_SIZE: u32 = 0x8D53;
2940 
2941 pub const RENDERBUFFER_BINDING: u32 = 0x8CA7;
2942 
2943 pub const RENDERBUFFER_BLUE_SIZE: u32 = 0x8D52;
2944 
2945 pub const RENDERBUFFER_DEPTH_SIZE: u32 = 0x8D54;
2946 
2947 pub const RENDERBUFFER_GREEN_SIZE: u32 = 0x8D51;
2948 
2949 pub const RENDERBUFFER_HEIGHT: u32 = 0x8D43;
2950 
2951 pub const RENDERBUFFER_INTERNAL_FORMAT: u32 = 0x8D44;
2952 
2953 pub const RENDERBUFFER_RED_SIZE: u32 = 0x8D50;
2954 
2955 pub const RENDERBUFFER_SAMPLES: u32 = 0x8CAB;
2956 
2957 pub const RENDERBUFFER_STENCIL_SIZE: u32 = 0x8D55;
2958 
2959 pub const RENDERBUFFER_WIDTH: u32 = 0x8D42;
2960 
2961 pub const RENDERER: u32 = 0x1F01;
2962 
2963 pub const REPEAT: u32 = 0x2901;
2964 
2965 pub const REPLACE: u32 = 0x1E01;
2966 
2967 pub const RESET_NOTIFICATION_STRATEGY: u32 = 0x8256;
2968 
2969 pub const RG: u32 = 0x8227;
2970 
2971 pub const RG16: u32 = 0x822C;
2972 
2973 pub const RG16F: u32 = 0x822F;
2974 
2975 pub const RG16I: u32 = 0x8239;
2976 
2977 pub const RG16UI: u32 = 0x823A;
2978 
2979 pub const RG16_SNORM: u32 = 0x8F99;
2980 
2981 pub const RG32F: u32 = 0x8230;
2982 
2983 pub const RG32I: u32 = 0x823B;
2984 
2985 pub const RG32UI: u32 = 0x823C;
2986 
2987 pub const RG8: u32 = 0x822B;
2988 
2989 pub const RG8I: u32 = 0x8237;
2990 
2991 pub const RG8UI: u32 = 0x8238;
2992 
2993 pub const RG8_SNORM: u32 = 0x8F95;
2994 
2995 pub const RGB: u32 = 0x1907;
2996 
2997 pub const RGB10: u32 = 0x8052;
2998 
2999 pub const RGB10_A2: u32 = 0x8059;
3000 
3001 pub const RGB10_A2UI: u32 = 0x906F;
3002 
3003 pub const RGB12: u32 = 0x8053;
3004 
3005 pub const RGB16: u32 = 0x8054;
3006 
3007 pub const RGB16F: u32 = 0x881B;
3008 
3009 pub const RGB16I: u32 = 0x8D89;
3010 
3011 pub const RGB16UI: u32 = 0x8D77;
3012 
3013 pub const RGB16_SNORM: u32 = 0x8F9A;
3014 
3015 pub const RGB32F: u32 = 0x8815;
3016 
3017 pub const RGB32I: u32 = 0x8D83;
3018 
3019 pub const RGB32UI: u32 = 0x8D71;
3020 
3021 pub const RGB4: u32 = 0x804F;
3022 
3023 pub const RGB5: u32 = 0x8050;
3024 
3025 pub const RGB565: u32 = 0x8D62;
3026 
3027 pub const RGB5_A1: u32 = 0x8057;
3028 
3029 pub const RGB8: u32 = 0x8051;
3030 
3031 pub const RGB8I: u32 = 0x8D8F;
3032 
3033 pub const RGB8UI: u32 = 0x8D7D;
3034 
3035 pub const RGB8_SNORM: u32 = 0x8F96;
3036 
3037 pub const RGB9_E5: u32 = 0x8C3D;
3038 
3039 pub const RGBA: u32 = 0x1908;
3040 
3041 pub const RGBA12: u32 = 0x805A;
3042 
3043 pub const RGBA16: u32 = 0x805B;
3044 
3045 pub const RGBA16F: u32 = 0x881A;
3046 
3047 pub const RGBA16I: u32 = 0x8D88;
3048 
3049 pub const RGBA16UI: u32 = 0x8D76;
3050 
3051 pub const RGBA16_SNORM: u32 = 0x8F9B;
3052 
3053 pub const RGBA2: u32 = 0x8055;
3054 
3055 pub const RGBA32F: u32 = 0x8814;
3056 
3057 pub const RGBA32I: u32 = 0x8D82;
3058 
3059 pub const RGBA32UI: u32 = 0x8D70;
3060 
3061 pub const RGBA4: u32 = 0x8056;
3062 
3063 pub const RGBA8: u32 = 0x8058;
3064 
3065 pub const RGBA8I: u32 = 0x8D8E;
3066 
3067 pub const RGBA8UI: u32 = 0x8D7C;
3068 
3069 pub const RGBA8_SNORM: u32 = 0x8F97;
3070 
3071 pub const RGBA_INTEGER: u32 = 0x8D99;
3072 
3073 pub const RGB_INTEGER: u32 = 0x8D98;
3074 
3075 pub const RG_INTEGER: u32 = 0x8228;
3076 
3077 pub const RIGHT: u32 = 0x0407;
3078 
3079 pub const SAMPLER: u32 = 0x82E6;
3080 
3081 pub const SAMPLER_1D: u32 = 0x8B5D;
3082 
3083 pub const SAMPLER_1D_ARRAY: u32 = 0x8DC0;
3084 
3085 pub const SAMPLER_1D_ARRAY_SHADOW: u32 = 0x8DC3;
3086 
3087 pub const SAMPLER_1D_SHADOW: u32 = 0x8B61;
3088 
3089 pub const SAMPLER_2D: u32 = 0x8B5E;
3090 
3091 pub const SAMPLER_2D_ARRAY: u32 = 0x8DC1;
3092 
3093 pub const SAMPLER_2D_ARRAY_SHADOW: u32 = 0x8DC4;
3094 
3095 pub const SAMPLER_2D_MULTISAMPLE: u32 = 0x9108;
3096 
3097 pub const SAMPLER_2D_MULTISAMPLE_ARRAY: u32 = 0x910B;
3098 
3099 pub const SAMPLER_2D_RECT: u32 = 0x8B63;
3100 
3101 pub const SAMPLER_2D_RECT_SHADOW: u32 = 0x8B64;
3102 
3103 pub const SAMPLER_2D_SHADOW: u32 = 0x8B62;
3104 
3105 pub const SAMPLER_3D: u32 = 0x8B5F;
3106 
3107 pub const SAMPLER_BINDING: u32 = 0x8919;
3108 
3109 pub const SAMPLER_BUFFER: u32 = 0x8DC2;
3110 
3111 pub const SAMPLER_CUBE: u32 = 0x8B60;
3112 
3113 pub const SAMPLER_CUBE_MAP_ARRAY: u32 = 0x900C;
3114 
3115 pub const SAMPLER_CUBE_MAP_ARRAY_SHADOW: u32 = 0x900D;
3116 
3117 pub const SAMPLER_CUBE_SHADOW: u32 = 0x8DC5;
3118 
3119 pub const SAMPLES: u32 = 0x80A9;
3120 
3121 pub const SAMPLES_PASSED: u32 = 0x8914;
3122 
3123 pub const SAMPLE_ALPHA_TO_COVERAGE: u32 = 0x809E;
3124 
3125 pub const SAMPLE_ALPHA_TO_ONE: u32 = 0x809F;
3126 
3127 pub const SAMPLE_BUFFERS: u32 = 0x80A8;
3128 
3129 pub const SAMPLE_COVERAGE: u32 = 0x80A0;
3130 
3131 pub const SAMPLE_COVERAGE_INVERT: u32 = 0x80AB;
3132 
3133 pub const SAMPLE_COVERAGE_VALUE: u32 = 0x80AA;
3134 
3135 pub const SAMPLE_MASK: u32 = 0x8E51;
3136 
3137 pub const SAMPLE_MASK_VALUE: u32 = 0x8E52;
3138 
3139 pub const SAMPLE_POSITION: u32 = 0x8E50;
3140 
3141 pub const SAMPLE_SHADING: u32 = 0x8C36;
3142 
3143 pub const SCISSOR_BOX: u32 = 0x0C10;
3144 
3145 pub const SCISSOR_TEST: u32 = 0x0C11;
3146 
3147 pub const SEPARATE_ATTRIBS: u32 = 0x8C8D;
3148 
3149 pub const SET: u32 = 0x150F;
3150 
3151 pub const SHADER: u32 = 0x82E1;
3152 
3153 pub const SHADER_BINARY_FORMATS: u32 = 0x8DF8;
3154 
3155 pub const SHADER_BINARY_FORMAT_SPIR_V: u32 = 0x9551;
3156 
3157 pub const SHADER_COMPILER: u32 = 0x8DFA;
3158 
3159 pub const SHADER_IMAGE_ACCESS_BARRIER_BIT: u32 = 0x00000020;
3160 
3161 pub const SHADER_IMAGE_ATOMIC: u32 = 0x82A6;
3162 
3163 pub const SHADER_IMAGE_LOAD: u32 = 0x82A4;
3164 
3165 pub const SHADER_IMAGE_STORE: u32 = 0x82A5;
3166 
3167 pub const SHADER_SOURCE_LENGTH: u32 = 0x8B88;
3168 
3169 pub const SHADER_STORAGE_BARRIER_BIT: u32 = 0x00002000;
3170 
3171 pub const SHADER_STORAGE_BLOCK: u32 = 0x92E6;
3172 
3173 pub const SHADER_STORAGE_BUFFER: u32 = 0x90D2;
3174 
3175 pub const SHADER_STORAGE_BUFFER_BINDING: u32 = 0x90D3;
3176 
3177 pub const SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT: u32 = 0x90DF;
3178 
3179 pub const SHADER_STORAGE_BUFFER_SIZE: u32 = 0x90D5;
3180 
3181 pub const SHADER_STORAGE_BUFFER_START: u32 = 0x90D4;
3182 
3183 pub const SHADER_TYPE: u32 = 0x8B4F;
3184 
3185 pub const SHADING_LANGUAGE_VERSION: u32 = 0x8B8C;
3186 
3187 pub const SHORT: u32 = 0x1402;
3188 
3189 pub const SIGNALED: u32 = 0x9119;
3190 
3191 pub const SIGNED_NORMALIZED: u32 = 0x8F9C;
3192 
3193 pub const SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST: u32 = 0x82AC;
3194 
3195 pub const SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE: u32 = 0x82AE;
3196 
3197 pub const SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST: u32 = 0x82AD;
3198 
3199 pub const SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE: u32 = 0x82AF;
3200 
3201 pub const SMOOTH_LINE_WIDTH_GRANULARITY: u32 = 0x0B23;
3202 
3203 pub const SMOOTH_LINE_WIDTH_RANGE: u32 = 0x0B22;
3204 
3205 pub const SMOOTH_POINT_SIZE_GRANULARITY: u32 = 0x0B13;
3206 
3207 pub const SMOOTH_POINT_SIZE_RANGE: u32 = 0x0B12;
3208 
3209 pub const SPIR_V_BINARY: u32 = 0x9552;
3210 
3211 pub const SPIR_V_EXTENSIONS: u32 = 0x9553;
3212 
3213 pub const SRC1_ALPHA: u32 = 0x8589;
3214 
3215 pub const SRC1_COLOR: u32 = 0x88F9;
3216 
3217 pub const SRC_ALPHA: u32 = 0x0302;
3218 
3219 pub const SRC_ALPHA_SATURATE: u32 = 0x0308;
3220 
3221 pub const SRC_COLOR: u32 = 0x0300;
3222 
3223 pub const SRGB: u32 = 0x8C40;
3224 
3225 pub const SRGB8: u32 = 0x8C41;
3226 
3227 pub const SRGB8_ALPHA8: u32 = 0x8C43;
3228 
3229 pub const SRGB_ALPHA: u32 = 0x8C42;
3230 
3231 pub const SRGB_READ: u32 = 0x8297;
3232 
3233 pub const SRGB_WRITE: u32 = 0x8298;
3234 
3235 pub const STACK_OVERFLOW: u32 = 0x0503;
3236 
3237 pub const STACK_UNDERFLOW: u32 = 0x0504;
3238 
3239 pub const STATIC_COPY: u32 = 0x88E6;
3240 
3241 pub const STATIC_DRAW: u32 = 0x88E4;
3242 
3243 pub const STATIC_READ: u32 = 0x88E5;
3244 
3245 pub const STENCIL: u32 = 0x1802;
3246 
3247 pub const STENCIL_ATTACHMENT: u32 = 0x8D20;
3248 
3249 pub const STENCIL_BACK_FAIL: u32 = 0x8801;
3250 
3251 pub const STENCIL_BACK_FUNC: u32 = 0x8800;
3252 
3253 pub const STENCIL_BACK_PASS_DEPTH_FAIL: u32 = 0x8802;
3254 
3255 pub const STENCIL_BACK_PASS_DEPTH_PASS: u32 = 0x8803;
3256 
3257 pub const STENCIL_BACK_REF: u32 = 0x8CA3;
3258 
3259 pub const STENCIL_BACK_VALUE_MASK: u32 = 0x8CA4;
3260 
3261 pub const STENCIL_BACK_WRITEMASK: u32 = 0x8CA5;
3262 
3263 pub const STENCIL_BUFFER_BIT: u32 = 0x00000400;
3264 
3265 pub const STENCIL_CLEAR_VALUE: u32 = 0x0B91;
3266 
3267 pub const STENCIL_COMPONENTS: u32 = 0x8285;
3268 
3269 pub const STENCIL_FAIL: u32 = 0x0B94;
3270 
3271 pub const STENCIL_FUNC: u32 = 0x0B92;
3272 
3273 pub const STENCIL_INDEX: u32 = 0x1901;
3274 
3275 pub const STENCIL_INDEX1: u32 = 0x8D46;
3276 
3277 pub const STENCIL_INDEX16: u32 = 0x8D49;
3278 
3279 pub const STENCIL_INDEX4: u32 = 0x8D47;
3280 
3281 pub const STENCIL_INDEX8: u32 = 0x8D48;
3282 
3283 pub const STENCIL_PASS_DEPTH_FAIL: u32 = 0x0B95;
3284 
3285 pub const STENCIL_PASS_DEPTH_PASS: u32 = 0x0B96;
3286 
3287 pub const STENCIL_REF: u32 = 0x0B97;
3288 
3289 pub const STENCIL_RENDERABLE: u32 = 0x8288;
3290 
3291 pub const STENCIL_TEST: u32 = 0x0B90;
3292 
3293 pub const STENCIL_VALUE_MASK: u32 = 0x0B93;
3294 
3295 pub const STENCIL_WRITEMASK: u32 = 0x0B98;
3296 
3297 pub const STEREO: u32 = 0x0C33;
3298 
3299 pub const STREAM_COPY: u32 = 0x88E2;
3300 
3301 pub const STREAM_DRAW: u32 = 0x88E0;
3302 
3303 pub const STREAM_READ: u32 = 0x88E1;
3304 
3305 pub const SUBPIXEL_BITS: u32 = 0x0D50;
3306 
3307 pub const SYNC_CONDITION: u32 = 0x9113;
3308 
3309 pub const SYNC_FENCE: u32 = 0x9116;
3310 
3311 pub const SYNC_FLAGS: u32 = 0x9115;
3312 
3313 pub const SYNC_FLUSH_COMMANDS_BIT: u32 = 0x00000001;
3314 
3315 pub const SYNC_GPU_COMMANDS_COMPLETE: u32 = 0x9117;
3316 
3317 pub const SYNC_STATUS: u32 = 0x9114;
3318 
3319 pub const TESS_CONTROL_OUTPUT_VERTICES: u32 = 0x8E75;
3320 
3321 pub const TESS_CONTROL_SHADER: u32 = 0x8E88;
3322 
3323 pub const TESS_CONTROL_SHADER_BIT: u32 = 0x00000008;
3324 
3325 pub const TESS_CONTROL_SHADER_PATCHES: u32 = 0x82F1;
3326 
3327 pub const TESS_CONTROL_SUBROUTINE: u32 = 0x92E9;
3328 
3329 pub const TESS_CONTROL_SUBROUTINE_UNIFORM: u32 = 0x92EF;
3330 
3331 pub const TESS_CONTROL_TEXTURE: u32 = 0x829C;
3332 
3333 pub const TESS_EVALUATION_SHADER: u32 = 0x8E87;
3334 
3335 pub const TESS_EVALUATION_SHADER_BIT: u32 = 0x00000010;
3336 
3337 pub const TESS_EVALUATION_SHADER_INVOCATIONS: u32 = 0x82F2;
3338 
3339 pub const TESS_EVALUATION_SUBROUTINE: u32 = 0x92EA;
3340 
3341 pub const TESS_EVALUATION_SUBROUTINE_UNIFORM: u32 = 0x92F0;
3342 
3343 pub const TESS_EVALUATION_TEXTURE: u32 = 0x829D;
3344 
3345 pub const TESS_GEN_MODE: u32 = 0x8E76;
3346 
3347 pub const TESS_GEN_POINT_MODE: u32 = 0x8E79;
3348 
3349 pub const TESS_GEN_SPACING: u32 = 0x8E77;
3350 
3351 pub const TESS_GEN_VERTEX_ORDER: u32 = 0x8E78;
3352 
3353 pub const TEXTURE: u32 = 0x1702;
3354 
3355 pub const TEXTURE0: u32 = 0x84C0;
3356 
3357 pub const TEXTURE1: u32 = 0x84C1;
3358 
3359 pub const TEXTURE10: u32 = 0x84CA;
3360 
3361 pub const TEXTURE11: u32 = 0x84CB;
3362 
3363 pub const TEXTURE12: u32 = 0x84CC;
3364 
3365 pub const TEXTURE13: u32 = 0x84CD;
3366 
3367 pub const TEXTURE14: u32 = 0x84CE;
3368 
3369 pub const TEXTURE15: u32 = 0x84CF;
3370 
3371 pub const TEXTURE16: u32 = 0x84D0;
3372 
3373 pub const TEXTURE17: u32 = 0x84D1;
3374 
3375 pub const TEXTURE18: u32 = 0x84D2;
3376 
3377 pub const TEXTURE19: u32 = 0x84D3;
3378 
3379 pub const TEXTURE2: u32 = 0x84C2;
3380 
3381 pub const TEXTURE20: u32 = 0x84D4;
3382 
3383 pub const TEXTURE21: u32 = 0x84D5;
3384 
3385 pub const TEXTURE22: u32 = 0x84D6;
3386 
3387 pub const TEXTURE23: u32 = 0x84D7;
3388 
3389 pub const TEXTURE24: u32 = 0x84D8;
3390 
3391 pub const TEXTURE25: u32 = 0x84D9;
3392 
3393 pub const TEXTURE26: u32 = 0x84DA;
3394 
3395 pub const TEXTURE27: u32 = 0x84DB;
3396 
3397 pub const TEXTURE28: u32 = 0x84DC;
3398 
3399 pub const TEXTURE29: u32 = 0x84DD;
3400 
3401 pub const TEXTURE3: u32 = 0x84C3;
3402 
3403 pub const TEXTURE30: u32 = 0x84DE;
3404 
3405 pub const TEXTURE31: u32 = 0x84DF;
3406 
3407 pub const TEXTURE4: u32 = 0x84C4;
3408 
3409 pub const TEXTURE5: u32 = 0x84C5;
3410 
3411 pub const TEXTURE6: u32 = 0x84C6;
3412 
3413 pub const TEXTURE7: u32 = 0x84C7;
3414 
3415 pub const TEXTURE8: u32 = 0x84C8;
3416 
3417 pub const TEXTURE9: u32 = 0x84C9;
3418 
3419 pub const TEXTURE_1D: u32 = 0x0DE0;
3420 
3421 pub const TEXTURE_1D_ARRAY: u32 = 0x8C18;
3422 
3423 pub const TEXTURE_2D: u32 = 0x0DE1;
3424 
3425 pub const TEXTURE_2D_ARRAY: u32 = 0x8C1A;
3426 
3427 pub const TEXTURE_2D_MULTISAMPLE: u32 = 0x9100;
3428 
3429 pub const TEXTURE_2D_MULTISAMPLE_ARRAY: u32 = 0x9102;
3430 
3431 pub const TEXTURE_3D: u32 = 0x806F;
3432 
3433 pub const TEXTURE_ALPHA_SIZE: u32 = 0x805F;
3434 
3435 pub const TEXTURE_ALPHA_TYPE: u32 = 0x8C13;
3436 
3437 pub const TEXTURE_BASE_LEVEL: u32 = 0x813C;
3438 
3439 pub const TEXTURE_BINDING_1D: u32 = 0x8068;
3440 
3441 pub const TEXTURE_BINDING_1D_ARRAY: u32 = 0x8C1C;
3442 
3443 pub const TEXTURE_BINDING_2D: u32 = 0x8069;
3444 
3445 pub const TEXTURE_BINDING_2D_ARRAY: u32 = 0x8C1D;
3446 
3447 pub const TEXTURE_BINDING_2D_MULTISAMPLE: u32 = 0x9104;
3448 
3449 pub const TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY: u32 = 0x9105;
3450 
3451 pub const TEXTURE_BINDING_3D: u32 = 0x806A;
3452 
3453 pub const TEXTURE_BINDING_BUFFER: u32 = 0x8C2C;
3454 
3455 pub const TEXTURE_BINDING_CUBE_MAP: u32 = 0x8514;
3456 
3457 pub const TEXTURE_BINDING_CUBE_MAP_ARRAY: u32 = 0x900A;
3458 
3459 pub const TEXTURE_BINDING_RECTANGLE: u32 = 0x84F6;
3460 
3461 pub const TEXTURE_BLUE_SIZE: u32 = 0x805E;
3462 
3463 pub const TEXTURE_BLUE_TYPE: u32 = 0x8C12;
3464 
3465 pub const TEXTURE_BORDER_COLOR: u32 = 0x1004;
3466 
3467 pub const TEXTURE_BUFFER: u32 = 0x8C2A;
3468 
3469 pub const TEXTURE_BUFFER_BINDING: u32 = 0x8C2A;
3470 
3471 pub const TEXTURE_BUFFER_DATA_STORE_BINDING: u32 = 0x8C2D;
3472 
3473 pub const TEXTURE_BUFFER_OFFSET: u32 = 0x919D;
3474 
3475 pub const TEXTURE_BUFFER_OFFSET_ALIGNMENT: u32 = 0x919F;
3476 
3477 pub const TEXTURE_BUFFER_SIZE: u32 = 0x919E;
3478 
3479 pub const TEXTURE_COMPARE_FUNC: u32 = 0x884D;
3480 
3481 pub const TEXTURE_COMPARE_MODE: u32 = 0x884C;
3482 
3483 pub const TEXTURE_COMPRESSED: u32 = 0x86A1;
3484 
3485 pub const TEXTURE_COMPRESSED_BLOCK_HEIGHT: u32 = 0x82B2;
3486 
3487 pub const TEXTURE_COMPRESSED_BLOCK_SIZE: u32 = 0x82B3;
3488 
3489 pub const TEXTURE_COMPRESSED_BLOCK_WIDTH: u32 = 0x82B1;
3490 
3491 pub const TEXTURE_COMPRESSED_IMAGE_SIZE: u32 = 0x86A0;
3492 
3493 pub const TEXTURE_COMPRESSION_HINT: u32 = 0x84EF;
3494 
3495 pub const TEXTURE_CUBE_MAP: u32 = 0x8513;
3496 
3497 pub const TEXTURE_CUBE_MAP_ARRAY: u32 = 0x9009;
3498 
3499 pub const TEXTURE_CUBE_MAP_NEGATIVE_X: u32 = 0x8516;
3500 
3501 pub const TEXTURE_CUBE_MAP_NEGATIVE_Y: u32 = 0x8518;
3502 
3503 pub const TEXTURE_CUBE_MAP_NEGATIVE_Z: u32 = 0x851A;
3504 
3505 pub const TEXTURE_CUBE_MAP_POSITIVE_X: u32 = 0x8515;
3506 
3507 pub const TEXTURE_CUBE_MAP_POSITIVE_Y: u32 = 0x8517;
3508 
3509 pub const TEXTURE_CUBE_MAP_POSITIVE_Z: u32 = 0x8519;
3510 
3511 pub const TEXTURE_CUBE_MAP_SEAMLESS: u32 = 0x884F;
3512 
3513 pub const TEXTURE_DEPTH: u32 = 0x8071;
3514 
3515 pub const TEXTURE_DEPTH_SIZE: u32 = 0x884A;
3516 
3517 pub const TEXTURE_DEPTH_TYPE: u32 = 0x8C16;
3518 
3519 pub const TEXTURE_FETCH_BARRIER_BIT: u32 = 0x00000008;
3520 
3521 pub const TEXTURE_FIXED_SAMPLE_LOCATIONS: u32 = 0x9107;
3522 
3523 pub const TEXTURE_GATHER: u32 = 0x82A2;
3524 
3525 pub const TEXTURE_GATHER_SHADOW: u32 = 0x82A3;
3526 
3527 pub const TEXTURE_GREEN_SIZE: u32 = 0x805D;
3528 
3529 pub const TEXTURE_GREEN_TYPE: u32 = 0x8C11;
3530 
3531 pub const TEXTURE_HEIGHT: u32 = 0x1001;
3532 
3533 pub const TEXTURE_IMAGE_FORMAT: u32 = 0x828F;
3534 
3535 pub const TEXTURE_IMAGE_TYPE: u32 = 0x8290;
3536 
3537 pub const TEXTURE_IMMUTABLE_FORMAT: u32 = 0x912F;
3538 
3539 pub const TEXTURE_IMMUTABLE_LEVELS: u32 = 0x82DF;
3540 
3541 pub const TEXTURE_INTERNAL_FORMAT: u32 = 0x1003;
3542 
3543 pub const TEXTURE_LOD_BIAS: u32 = 0x8501;
3544 
3545 pub const TEXTURE_MAG_FILTER: u32 = 0x2800;
3546 
3547 pub const TEXTURE_MAX_ANISOTROPY: u32 = 0x84FE;
3548 
3549 pub const TEXTURE_MAX_ANISOTROPY_EXT: u32 = 0x84FE;
3550 
3551 pub const TEXTURE_MAX_LEVEL: u32 = 0x813D;
3552 
3553 pub const TEXTURE_MAX_LOD: u32 = 0x813B;
3554 
3555 pub const TEXTURE_MIN_FILTER: u32 = 0x2801;
3556 
3557 pub const TEXTURE_MIN_LOD: u32 = 0x813A;
3558 
3559 pub const TEXTURE_RECTANGLE: u32 = 0x84F5;
3560 
3561 pub const TEXTURE_RED_SIZE: u32 = 0x805C;
3562 
3563 pub const TEXTURE_RED_TYPE: u32 = 0x8C10;
3564 
3565 pub const TEXTURE_SAMPLES: u32 = 0x9106;
3566 
3567 pub const TEXTURE_SHADOW: u32 = 0x82A1;
3568 
3569 pub const TEXTURE_SHARED_SIZE: u32 = 0x8C3F;
3570 
3571 pub const TEXTURE_STENCIL_SIZE: u32 = 0x88F1;
3572 
3573 pub const TEXTURE_SWIZZLE_A: u32 = 0x8E45;
3574 
3575 pub const TEXTURE_SWIZZLE_B: u32 = 0x8E44;
3576 
3577 pub const TEXTURE_SWIZZLE_G: u32 = 0x8E43;
3578 
3579 pub const TEXTURE_SWIZZLE_R: u32 = 0x8E42;
3580 
3581 pub const TEXTURE_SWIZZLE_RGBA: u32 = 0x8E46;
3582 
3583 pub const TEXTURE_TARGET: u32 = 0x1006;
3584 
3585 pub const TEXTURE_UPDATE_BARRIER_BIT: u32 = 0x00000100;
3586 
3587 pub const TEXTURE_VIEW: u32 = 0x82B5;
3588 
3589 pub const TEXTURE_VIEW_MIN_LAYER: u32 = 0x82DD;
3590 
3591 pub const TEXTURE_VIEW_MIN_LEVEL: u32 = 0x82DB;
3592 
3593 pub const TEXTURE_VIEW_NUM_LAYERS: u32 = 0x82DE;
3594 
3595 pub const TEXTURE_VIEW_NUM_LEVELS: u32 = 0x82DC;
3596 
3597 pub const TEXTURE_WIDTH: u32 = 0x1000;
3598 
3599 pub const TEXTURE_WRAP_R: u32 = 0x8072;
3600 
3601 pub const TEXTURE_WRAP_S: u32 = 0x2802;
3602 
3603 pub const TEXTURE_WRAP_T: u32 = 0x2803;
3604 
3605 pub const TIMEOUT_EXPIRED: u32 = 0x911B;
3606 
3607 pub const TIMEOUT_IGNORED: u64 = 0xFFFFFFFFFFFFFFFF;
3608 
3609 pub const TIMESTAMP: u32 = 0x8E28;
3610 
3611 pub const TIME_ELAPSED: u32 = 0x88BF;
3612 
3613 pub const TOP_LEVEL_ARRAY_SIZE: u32 = 0x930C;
3614 
3615 pub const TOP_LEVEL_ARRAY_STRIDE: u32 = 0x930D;
3616 
3617 pub const TRANSFORM_FEEDBACK: u32 = 0x8E22;
3618 
3619 pub const TRANSFORM_FEEDBACK_ACTIVE: u32 = 0x8E24;
3620 
3621 pub const TRANSFORM_FEEDBACK_BARRIER_BIT: u32 = 0x00000800;
3622 
3623 pub const TRANSFORM_FEEDBACK_BINDING: u32 = 0x8E25;
3624 
3625 pub const TRANSFORM_FEEDBACK_BUFFER: u32 = 0x8C8E;
3626 
3627 pub const TRANSFORM_FEEDBACK_BUFFER_ACTIVE: u32 = 0x8E24;
3628 
3629 pub const TRANSFORM_FEEDBACK_BUFFER_BINDING: u32 = 0x8C8F;
3630 
3631 pub const TRANSFORM_FEEDBACK_BUFFER_INDEX: u32 = 0x934B;
3632 
3633 pub const TRANSFORM_FEEDBACK_BUFFER_MODE: u32 = 0x8C7F;
3634 
3635 pub const TRANSFORM_FEEDBACK_BUFFER_PAUSED: u32 = 0x8E23;
3636 
3637 pub const TRANSFORM_FEEDBACK_BUFFER_SIZE: u32 = 0x8C85;
3638 
3639 pub const TRANSFORM_FEEDBACK_BUFFER_START: u32 = 0x8C84;
3640 
3641 pub const TRANSFORM_FEEDBACK_BUFFER_STRIDE: u32 = 0x934C;
3642 
3643 pub const TRANSFORM_FEEDBACK_OVERFLOW: u32 = 0x82EC;
3644 
3645 pub const TRANSFORM_FEEDBACK_PAUSED: u32 = 0x8E23;
3646 
3647 pub const TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: u32 = 0x8C88;
3648 
3649 pub const TRANSFORM_FEEDBACK_STREAM_OVERFLOW: u32 = 0x82ED;
3650 
3651 pub const TRANSFORM_FEEDBACK_VARYING: u32 = 0x92F4;
3652 
3653 pub const TRANSFORM_FEEDBACK_VARYINGS: u32 = 0x8C83;
3654 
3655 pub const TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH: u32 = 0x8C76;
3656 
3657 pub const TRIANGLES: u32 = 0x0004;
3658 
3659 pub const TRIANGLES_ADJACENCY: u32 = 0x000C;
3660 
3661 pub const TRIANGLE_FAN: u32 = 0x0006;
3662 
3663 pub const TRIANGLE_STRIP: u32 = 0x0005;
3664 
3665 pub const TRIANGLE_STRIP_ADJACENCY: u32 = 0x000D;
3666 
3667 pub const TRUE: u8 = 1;
3668 
3669 pub const TYPE: u32 = 0x92FA;
3670 
3671 pub const UNDEFINED_VERTEX: u32 = 0x8260;
3672 
3673 pub const UNIFORM: u32 = 0x92E1;
3674 
3675 pub const UNIFORM_ARRAY_STRIDE: u32 = 0x8A3C;
3676 
3677 pub const UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX: u32 = 0x92DA;
3678 
3679 pub const UNIFORM_BARRIER_BIT: u32 = 0x00000004;
3680 
3681 pub const UNIFORM_BLOCK: u32 = 0x92E2;
3682 
3683 pub const UNIFORM_BLOCK_ACTIVE_UNIFORMS: u32 = 0x8A42;
3684 
3685 pub const UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: u32 = 0x8A43;
3686 
3687 pub const UNIFORM_BLOCK_BINDING: u32 = 0x8A3F;
3688 
3689 pub const UNIFORM_BLOCK_DATA_SIZE: u32 = 0x8A40;
3690 
3691 pub const UNIFORM_BLOCK_INDEX: u32 = 0x8A3A;
3692 
3693 pub const UNIFORM_BLOCK_NAME_LENGTH: u32 = 0x8A41;
3694 
3695 pub const UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER: u32 = 0x90EC;
3696 
3697 pub const UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: u32 = 0x8A46;
3698 
3699 pub const UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER: u32 = 0x8A45;
3700 
3701 pub const UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER: u32 = 0x84F0;
3702 
3703 pub const UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER: u32 = 0x84F1;
3704 
3705 pub const UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: u32 = 0x8A44;
3706 
3707 pub const UNIFORM_BUFFER: u32 = 0x8A11;
3708 
3709 pub const UNIFORM_BUFFER_BINDING: u32 = 0x8A28;
3710 
3711 pub const UNIFORM_BUFFER_OFFSET_ALIGNMENT: u32 = 0x8A34;
3712 
3713 pub const UNIFORM_BUFFER_SIZE: u32 = 0x8A2A;
3714 
3715 pub const UNIFORM_BUFFER_START: u32 = 0x8A29;
3716 
3717 pub const UNIFORM_IS_ROW_MAJOR: u32 = 0x8A3E;
3718 
3719 pub const UNIFORM_MATRIX_STRIDE: u32 = 0x8A3D;
3720 
3721 pub const UNIFORM_NAME_LENGTH: u32 = 0x8A39;
3722 
3723 pub const UNIFORM_OFFSET: u32 = 0x8A3B;
3724 
3725 pub const UNIFORM_SIZE: u32 = 0x8A38;
3726 
3727 pub const UNIFORM_TYPE: u32 = 0x8A37;
3728 
3729 pub const UNKNOWN_CONTEXT_RESET: u32 = 0x8255;
3730 
3731 pub const UNPACK_ALIGNMENT: u32 = 0x0CF5;
3732 
3733 pub const UNPACK_COMPRESSED_BLOCK_DEPTH: u32 = 0x9129;
3734 
3735 pub const UNPACK_COMPRESSED_BLOCK_HEIGHT: u32 = 0x9128;
3736 
3737 pub const UNPACK_COMPRESSED_BLOCK_SIZE: u32 = 0x912A;
3738 
3739 pub const UNPACK_COMPRESSED_BLOCK_WIDTH: u32 = 0x9127;
3740 
3741 pub const UNPACK_IMAGE_HEIGHT: u32 = 0x806E;
3742 
3743 pub const UNPACK_LSB_FIRST: u32 = 0x0CF1;
3744 
3745 pub const UNPACK_ROW_LENGTH: u32 = 0x0CF2;
3746 
3747 pub const UNPACK_SKIP_IMAGES: u32 = 0x806D;
3748 
3749 pub const UNPACK_SKIP_PIXELS: u32 = 0x0CF4;
3750 
3751 pub const UNPACK_SKIP_ROWS: u32 = 0x0CF3;
3752 
3753 pub const UNPACK_SWAP_BYTES: u32 = 0x0CF0;
3754 
3755 pub const UNSIGNALED: u32 = 0x9118;
3756 
3757 pub const UNSIGNED_BYTE: u32 = 0x1401;
3758 
3759 pub const UNSIGNED_BYTE_2_3_3_REV: u32 = 0x8362;
3760 
3761 pub const UNSIGNED_BYTE_3_3_2: u32 = 0x8032;
3762 
3763 pub const UNSIGNED_INT: u32 = 0x1405;
3764 
3765 pub const UNSIGNED_INT_10F_11F_11F_REV: u32 = 0x8C3B;
3766 
3767 pub const UNSIGNED_INT_10_10_10_2: u32 = 0x8036;
3768 
3769 pub const UNSIGNED_INT_24_8: u32 = 0x84FA;
3770 
3771 pub const UNSIGNED_INT_2_10_10_10_REV: u32 = 0x8368;
3772 
3773 pub const UNSIGNED_INT_5_9_9_9_REV: u32 = 0x8C3E;
3774 
3775 pub const UNSIGNED_INT_8_8_8_8: u32 = 0x8035;
3776 
3777 pub const UNSIGNED_INT_8_8_8_8_REV: u32 = 0x8367;
3778 
3779 pub const UNSIGNED_INT_ATOMIC_COUNTER: u32 = 0x92DB;
3780 
3781 pub const UNSIGNED_INT_IMAGE_1D: u32 = 0x9062;
3782 
3783 pub const UNSIGNED_INT_IMAGE_1D_ARRAY: u32 = 0x9068;
3784 
3785 pub const UNSIGNED_INT_IMAGE_2D: u32 = 0x9063;
3786 
3787 pub const UNSIGNED_INT_IMAGE_2D_ARRAY: u32 = 0x9069;
3788 
3789 pub const UNSIGNED_INT_IMAGE_2D_MULTISAMPLE: u32 = 0x906B;
3790 
3791 pub const UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY: u32 = 0x906C;
3792 
3793 pub const UNSIGNED_INT_IMAGE_2D_RECT: u32 = 0x9065;
3794 
3795 pub const UNSIGNED_INT_IMAGE_3D: u32 = 0x9064;
3796 
3797 pub const UNSIGNED_INT_IMAGE_BUFFER: u32 = 0x9067;
3798 
3799 pub const UNSIGNED_INT_IMAGE_CUBE: u32 = 0x9066;
3800 
3801 pub const UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY: u32 = 0x906A;
3802 
3803 pub const UNSIGNED_INT_SAMPLER_1D: u32 = 0x8DD1;
3804 
3805 pub const UNSIGNED_INT_SAMPLER_1D_ARRAY: u32 = 0x8DD6;
3806 
3807 pub const UNSIGNED_INT_SAMPLER_2D: u32 = 0x8DD2;
3808 
3809 pub const UNSIGNED_INT_SAMPLER_2D_ARRAY: u32 = 0x8DD7;
3810 
3811 pub const UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE: u32 = 0x910A;
3812 
3813 pub const UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: u32 = 0x910D;
3814 
3815 pub const UNSIGNED_INT_SAMPLER_2D_RECT: u32 = 0x8DD5;
3816 
3817 pub const UNSIGNED_INT_SAMPLER_3D: u32 = 0x8DD3;
3818 
3819 pub const UNSIGNED_INT_SAMPLER_BUFFER: u32 = 0x8DD8;
3820 
3821 pub const UNSIGNED_INT_SAMPLER_CUBE: u32 = 0x8DD4;
3822 
3823 pub const UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY: u32 = 0x900F;
3824 
3825 pub const UNSIGNED_INT_VEC2: u32 = 0x8DC6;
3826 
3827 pub const UNSIGNED_INT_VEC3: u32 = 0x8DC7;
3828 
3829 pub const UNSIGNED_INT_VEC4: u32 = 0x8DC8;
3830 
3831 pub const UNSIGNED_NORMALIZED: u32 = 0x8C17;
3832 
3833 pub const UNSIGNED_SHORT: u32 = 0x1403;
3834 
3835 pub const UNSIGNED_SHORT_1_5_5_5_REV: u32 = 0x8366;
3836 
3837 pub const UNSIGNED_SHORT_4_4_4_4: u32 = 0x8033;
3838 
3839 pub const UNSIGNED_SHORT_4_4_4_4_REV: u32 = 0x8365;
3840 
3841 pub const UNSIGNED_SHORT_5_5_5_1: u32 = 0x8034;
3842 
3843 pub const UNSIGNED_SHORT_5_6_5: u32 = 0x8363;
3844 
3845 pub const UNSIGNED_SHORT_5_6_5_REV: u32 = 0x8364;
3846 
3847 pub const UPPER_LEFT: u32 = 0x8CA2;
3848 
3849 pub const VALIDATE_STATUS: u32 = 0x8B83;
3850 
3851 pub const VENDOR: u32 = 0x1F00;
3852 
3853 pub const VERSION: u32 = 0x1F02;
3854 
3855 pub const VERTEX_ARRAY: u32 = 0x8074;
3856 
3857 pub const VERTEX_ARRAY_BINDING: u32 = 0x85B5;
3858 
3859 pub const VERTEX_ATTRIB_ARRAY_BARRIER_BIT: u32 = 0x00000001;
3860 
3861 pub const VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: u32 = 0x889F;
3862 
3863 pub const VERTEX_ATTRIB_ARRAY_DIVISOR: u32 = 0x88FE;
3864 
3865 pub const VERTEX_ATTRIB_ARRAY_ENABLED: u32 = 0x8622;
3866 
3867 pub const VERTEX_ATTRIB_ARRAY_INTEGER: u32 = 0x88FD;
3868 
3869 pub const VERTEX_ATTRIB_ARRAY_LONG: u32 = 0x874E;
3870 
3871 pub const VERTEX_ATTRIB_ARRAY_NORMALIZED: u32 = 0x886A;
3872 
3873 pub const VERTEX_ATTRIB_ARRAY_POINTER: u32 = 0x8645;
3874 
3875 pub const VERTEX_ATTRIB_ARRAY_SIZE: u32 = 0x8623;
3876 
3877 pub const VERTEX_ATTRIB_ARRAY_STRIDE: u32 = 0x8624;
3878 
3879 pub const VERTEX_ATTRIB_ARRAY_TYPE: u32 = 0x8625;
3880 
3881 pub const VERTEX_ATTRIB_BINDING: u32 = 0x82D4;
3882 
3883 pub const VERTEX_ATTRIB_RELATIVE_OFFSET: u32 = 0x82D5;
3884 
3885 pub const VERTEX_BINDING_BUFFER: u32 = 0x8F4F;
3886 
3887 pub const VERTEX_BINDING_DIVISOR: u32 = 0x82D6;
3888 
3889 pub const VERTEX_BINDING_OFFSET: u32 = 0x82D7;
3890 
3891 pub const VERTEX_BINDING_STRIDE: u32 = 0x82D8;
3892 
3893 pub const VERTEX_PROGRAM_POINT_SIZE: u32 = 0x8642;
3894 
3895 pub const VERTEX_SHADER: u32 = 0x8B31;
3896 
3897 pub const VERTEX_SHADER_BIT: u32 = 0x00000001;
3898 
3899 pub const VERTEX_SHADER_INVOCATIONS: u32 = 0x82F0;
3900 
3901 pub const VERTEX_SUBROUTINE: u32 = 0x92E8;
3902 
3903 pub const VERTEX_SUBROUTINE_UNIFORM: u32 = 0x92EE;
3904 
3905 pub const VERTEX_TEXTURE: u32 = 0x829B;
3906 
3907 pub const VERTICES_SUBMITTED: u32 = 0x82EE;
3908 
3909 pub const VIEWPORT: u32 = 0x0BA2;
3910 
3911 pub const VIEWPORT_BOUNDS_RANGE: u32 = 0x825D;
3912 
3913 pub const VIEWPORT_INDEX_PROVOKING_VERTEX: u32 = 0x825F;
3914 
3915 pub const VIEWPORT_SUBPIXEL_BITS: u32 = 0x825C;
3916 
3917 pub const VIEW_CLASS_128_BITS: u32 = 0x82C4;
3918 
3919 pub const VIEW_CLASS_16_BITS: u32 = 0x82CA;
3920 
3921 pub const VIEW_CLASS_24_BITS: u32 = 0x82C9;
3922 
3923 pub const VIEW_CLASS_32_BITS: u32 = 0x82C8;
3924 
3925 pub const VIEW_CLASS_48_BITS: u32 = 0x82C7;
3926 
3927 pub const VIEW_CLASS_64_BITS: u32 = 0x82C6;
3928 
3929 pub const VIEW_CLASS_8_BITS: u32 = 0x82CB;
3930 
3931 pub const VIEW_CLASS_96_BITS: u32 = 0x82C5;
3932 
3933 pub const VIEW_CLASS_BPTC_FLOAT: u32 = 0x82D3;
3934 
3935 pub const VIEW_CLASS_BPTC_UNORM: u32 = 0x82D2;
3936 
3937 pub const VIEW_CLASS_RGTC1_RED: u32 = 0x82D0;
3938 
3939 pub const VIEW_CLASS_RGTC2_RG: u32 = 0x82D1;
3940 
3941 pub const VIEW_CLASS_S3TC_DXT1_RGB: u32 = 0x82CC;
3942 
3943 pub const VIEW_CLASS_S3TC_DXT1_RGBA: u32 = 0x82CD;
3944 
3945 pub const VIEW_CLASS_S3TC_DXT3_RGBA: u32 = 0x82CE;
3946 
3947 pub const VIEW_CLASS_S3TC_DXT5_RGBA: u32 = 0x82CF;
3948 
3949 pub const VIEW_COMPATIBILITY_CLASS: u32 = 0x82B6;
3950 
3951 pub const WAIT_FAILED: u32 = 0x911D;
3952 
3953 pub const WRITE_ONLY: u32 = 0x88B9;
3954 
3955 pub const XOR: u32 = 0x1506;
3956 
3957 pub const ZERO: u32 = 0;
3958 
3959 pub const ZERO_TO_ONE: u32 = 0x935F;
3960