glow/
lib.rs

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