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