1#![no_std]
2#![allow(bad_style)]
3#![deny(missing_docs)]
4#![deny(missing_debug_implementations)]
5#![allow(unused)]
6
7//! Bindings to Gl 4.6
8//!
9//! Generated by [phosphorus](https://docs.rs/phosphorus/0.0.22/phosphorus/) and then slightly post-edited by hand.
10//!
11//! Included Extensions (activate via cargo feature):
12//! * `GL_ARB_base_instance`
13//! * `GL_ARB_buffer_storage`
14//! * `GL_ARB_compute_shader`
15//! * `GL_ARB_copy_buffer`
16//! * `GL_ARB_debug_output`
17//! * `GL_ARB_draw_elements_base_vertex`
18//! * `GL_ARB_draw_instanced`
19//! * `GL_ARB_framebuffer_object`
20//! * `GL_ARB_framebuffer_sRGB`
21//! * `GL_ARB_instanced_arrays`
22//! * `GL_ARB_parallel_shader_compile`
23//! * `GL_ARB_program_interface_query`
24//! * `GL_ARB_sampler_objects`
25//! * `GL_ARB_sync`
26//! * `GL_ARB_tessellation_shader`
27//! * `GL_ARB_texture_filter_anisotropic`
28//! * `GL_ARB_texture_storage`
29//! * `GL_ARB_uniform_buffer_object`
30//! * `GL_ARB_vertex_array_object`
31//! * `GL_EXT_buffer_storage`
32//! * `GL_EXT_draw_buffers2`
33//! * `GL_EXT_texture_filter_anisotropic`
34//! * `GL_KHR_debug`
35//! * `GL_KHR_parallel_shader_compile`
36//! * `GL_NV_copy_buffer`
37//!
38//! Supported Features:
39//! * `debug_trace_calls`: if cfg!(debug_assertions), any call to a GL function
40//! will `trace!` what was called and with what args.
41//! * `debug_automatic_glGetError`: If cfg!(debug_assertions), this will
42//! automatically call `glGetError` after every call to any *other* GL
43//! function. If an error code occurs it's shown via `error!` along with the
44//! name of the function that had the error.
45//! * `log`: imports `trace!` and `error!` macros from the `log` crate.
46//! Otherwise they just call `println!` and `eprintln!` respectively.
47//! * `chlorine`: gets all C types from the `chlorine` crate (which is `no_std`
48//! friendly). Otherwise they will be imported from `std::os::raw`.
49//! * `bytemuck`: Adds support for the `bytemuck` crate, mostly in the form of
50//! `bytemuck::Zeroable` on `GlFns`.
51//! * `inline`: Tags all GL calls as `#[inline]`.
52//! * `inline_always`: Tags all GL calls as `#[inline(always)]`. This will
53//! effectively override the `inline` feature.
54//!
55//! The crate is `no_std` friendly by default, but features above can end up
56//! requiring `std` to be available.
57//!
58//! # GL Loaders
59//! The docs for this crate hosted on docs.rs generate **both** the
60//! `global_loader` and `struct_loader` documentation for sake of completeness.
61//!
62//! However, you are generally expected to use **only one** loader style in any
63//! particular project.
64//!
65//! Each loader style has its own small advantages:
66//! * The `global_loader` stores the GL function pointers in static `AtomicPtr`
67//! values.
68//! * Call [`load_global_gl_with`] to initialize the pointers.
69//! * Each GL function is available as a global function under its standard
70//! name, eg `glGetError()`.
71//! * This lets you call GL functions from anywhere at all, and it's how you
72//! might expect to use GL if you have a C background.
73//! * Being able to call GL from anywhere makes it easy to write Drop impls,
74//! among other things.
75//! * The `struct_loader` stores all the function pointers in the fields of a
76//! [`GlFns`] struct.
77//! * Call [`GlFns::load_with`] to make a `GlFns` value.
78//! * Each GL function is available as a method on the struct with the `gl`
79//! prefix removed. It's presumed that you'll call the struct itself `gl`,
80//! so calls will look something like `gl.GetError()`.
81//! * This is closer to how WebGL works on WASM targets, and so this is how
82//! the [`glow`](https://docs.rs/glow) crate works to maintain consistency
83//! across desktop and web.
84//! * Also, if you want to do any sort of "live code reloading" you'll have to
85//! use the struct loader. DLLs don't share their static values with the
86//! main program, so if the DLL uses the global loader functions the
87//! pointers won't be loaded and calling any GL function from the DLL will
88//! panic. Instead, if you just pass a `&GlFns` to your DLL it can call the
89//! GL methods just fine.
90//!
91//! In both styles, if you call a function that isn't loaded you will get a
92//! panic. This generally only happens if the context doesn't fully support
93//! the GL version. You can check if a GL command is loaded or not before
94//! actually calling it by adding `_is_loaded` to the name of the command. In
95//! other words, `glGetError_is_loaded` to check if `glGetError` is globally
96//! loaded, and `gl.GetError_is_loaded` to check if it's loaded in a `GlFns`.
97//! All of the "`_is_loaded`" functions are hidden in the generated docs just
98//! to keep things tidy, but they're there.
99//!
100//! # Safety
101//! In general, there's many ways that GL can go wrong.
102//!
103//! For the purposes of this library, it's important to focus on the fact that:
104//! * Initially all functions are null pointers. If a function is called when it's in a null state then you'll get a panic (reminder: a panic is safe).
105//! * You can load pointers from the current GL context (described above).
106//! * These pointers are technically context specific, though in practice different contexts for the same graphics driver often all share the same function pointers.
107//! * The loader has no way to verify that pointers it gets are actually pointers to the correct functions, it just trusts what you tell it.
108//! * Since loading a function pointer transitions the world from "it will definitely (safely) panic to call that GL command" to "it might be UB to call that GL command (even with the correct arguments)", the act of simply loading a function pointer is itself considered to be `unsafe`.
109//! * Individual GL commands are generally safe to use once they've been properly loaded for the current context, but this crate doesn't attempt to sort out what is safe and what's not. All GL commands are blanket marked as being `unsafe`.
110//! It's up to you to try and manage this unsafety! Sorry, but this crate just does what you tell it to.
111
112#[cfg(any(
113 all(
114 not(feature = "log"),
115 any(feature = "debug_trace_calls", feature = "debug_automatic_glGetError")
116 ),
117 not(feature = "chlorine"),
118))]
119extern crate std;
120
121#[cfg(feature = "chlorine")]
122use chlorine::*;
123use std::os::raw::*;
124
125#[cfg(feature = "log")]
126#[allow(unused)]
127use log::{error, trace};
128#[cfg(all(not(feature = "log"), feature = "debug_trace_calls"))]
129macro_rules! trace { ($($arg:tt)*) => { std::println!($($arg)*) } }
130#[cfg(all(not(feature = "log"), feature = "debug_automatic_glGetError"))]
131macro_rules! error { ($($arg:tt)*) => { std::eprintln!($($arg)*) } }
132
133use core::{
134 mem::transmute,
135 ptr::null_mut,
136 sync::atomic::{AtomicPtr, Ordering},
137};
138#[allow(dead_code)]
139const RELAX: Ordering = Ordering::Relaxed;
140#[allow(dead_code)]
141type APcv = AtomicPtr<c_void>;
142#[cfg(feature = "global_loader")]
143const fn ap_null() -> APcv {
144 AtomicPtr::new(null_mut())
145}
146
147pub use types::*;
148#[allow(missing_docs)]
149pub mod types {
150 //! Contains all the GL types.
151 use super::*;
152 pub type GLenum = c_uint;
153 pub type GLboolean = c_uchar;
154 pub type GLbitfield = c_uint;
155 pub type GLvoid = c_void;
156 pub type GLbyte = i8;
157 pub type GLubyte = u8;
158 pub type GLshort = i16;
159 pub type GLushort = u16;
160 pub type GLint = c_int;
161 pub type GLuint = c_uint;
162 pub type GLclampx = i32;
163 pub type GLsizei = c_int;
164 pub type GLfloat = c_float;
165 pub type GLclampf = c_float;
166 pub type GLdouble = c_double;
167 pub type GLclampd = c_double;
168 pub type GLeglClientBufferEXT = *mut c_void;
169 pub type GLeglImageOES = *mut c_void;
170 pub type GLchar = c_char;
171 pub type GLcharARB = c_char;
172 #[cfg(any(target_os = "macos", target_os = "ios"))]
173 pub type GLhandleARB = *mut c_void;
174 #[cfg(not(any(target_os = "macos", target_os = "ios")))]
175 pub type GLhandleARB = c_uint;
176 pub type GLhalf = u16;
177 pub type GLhalfARB = u16;
178 pub type GLfixed = i32;
179 pub type GLintptr = isize;
180 pub type GLintptrARB = isize;
181 pub type GLsizeiptr = isize;
182 pub type GLsizeiptrARB = isize;
183 pub type GLint64 = i64;
184 pub type GLint64EXT = i64;
185 pub type GLuint64 = u64;
186 pub type GLuint64EXT = u64;
187 #[doc(hidden)]
188 pub struct __GLsync {
189 _priv: u8,
190 }
191 impl core::fmt::Debug for __GLsync {
192 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
193 write!(f, "__GLsync")
194 }
195 }
196 pub type GLsync = *mut __GLsync;
197 pub struct _cl_context {
198 _priv: u8,
199 }
200 impl core::fmt::Debug for _cl_context {
201 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
202 write!(f, "_cl_context")
203 }
204 }
205 pub struct _cl_event {
206 _priv: u8,
207 }
208 impl core::fmt::Debug for _cl_event {
209 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
210 write!(f, "_cl_event")
211 }
212 }
213 pub type GLDEBUGPROC = Option<
214 unsafe extern "system" fn(
215 source: GLenum,
216 gltype: GLenum,
217 id: GLuint,
218 severity: GLenum,
219 length: GLsizei,
220 message: *const GLchar,
221 userParam: *mut c_void,
222 ),
223 >;
224 pub type GLDEBUGPROCARB = Option<
225 extern "system" fn(
226 source: GLenum,
227 gltype: GLenum,
228 id: GLuint,
229 severity: GLenum,
230 length: GLsizei,
231 message: *const GLchar,
232 userParam: *mut c_void,
233 ),
234 >;
235 pub type GLDEBUGPROCKHR = Option<
236 extern "system" fn(
237 source: GLenum,
238 gltype: GLenum,
239 id: GLuint,
240 severity: GLenum,
241 length: GLsizei,
242 message: *const GLchar,
243 userParam: *mut c_void,
244 ),
245 >;
246 pub type GLDEBUGPROCAMD = Option<
247 extern "system" fn(
248 id: GLuint,
249 category: GLenum,
250 severity: GLenum,
251 length: GLsizei,
252 message: *const GLchar,
253 userParam: *mut c_void,
254 ),
255 >;
256 pub type GLhalfNV = c_ushort;
257 pub type GLvdpauSurfaceNV = GLintptr;
258 pub type GLVULKANPROCNV = Option<extern "system" fn()>;
259}
260
261pub use enums::*;
262pub mod enums {
263 //! Contains all the GL enumerated values.
264 //!
265 //! In C these are called 'enums', but in Rust we call them a 'const'. Whatever.
266 use super::*;
267 #[doc = "`GL_ACTIVE_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92D9`"]
268 #[doc = "* **Group:** ProgramPropertyARB"]
269 pub const GL_ACTIVE_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92D9;
270 #[doc = "`GL_ACTIVE_ATTRIBUTES: GLenum = 0x8B89`"]
271 #[doc = "* **Group:** ProgramPropertyARB"]
272 pub const GL_ACTIVE_ATTRIBUTES: GLenum = 0x8B89;
273 #[doc = "`GL_ACTIVE_ATTRIBUTE_MAX_LENGTH: GLenum = 0x8B8A`"]
274 #[doc = "* **Group:** ProgramPropertyARB"]
275 pub const GL_ACTIVE_ATTRIBUTE_MAX_LENGTH: GLenum = 0x8B8A;
276 #[doc = "`GL_ACTIVE_PROGRAM: GLenum = 0x8259`"]
277 #[doc = "* **Group:** PipelineParameterName"]
278 pub const GL_ACTIVE_PROGRAM: GLenum = 0x8259;
279 #[doc = "`GL_ACTIVE_RESOURCES: GLenum = 0x92F5`"]
280 #[doc = "* **Group:** ProgramInterfacePName"]
281 pub const GL_ACTIVE_RESOURCES: GLenum = 0x92F5;
282 #[doc = "`GL_ACTIVE_SUBROUTINES: GLenum = 0x8DE5`"]
283 #[doc = "* **Group:** ProgramStagePName"]
284 pub const GL_ACTIVE_SUBROUTINES: GLenum = 0x8DE5;
285 #[doc = "`GL_ACTIVE_SUBROUTINE_MAX_LENGTH: GLenum = 0x8E48`"]
286 #[doc = "* **Group:** ProgramStagePName"]
287 pub const GL_ACTIVE_SUBROUTINE_MAX_LENGTH: GLenum = 0x8E48;
288 #[doc = "`GL_ACTIVE_SUBROUTINE_UNIFORMS: GLenum = 0x8DE6`"]
289 #[doc = "* **Group:** ProgramStagePName"]
290 pub const GL_ACTIVE_SUBROUTINE_UNIFORMS: GLenum = 0x8DE6;
291 #[doc = "`GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS: GLenum = 0x8E47`"]
292 #[doc = "* **Group:** ProgramStagePName"]
293 pub const GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS: GLenum = 0x8E47;
294 #[doc = "`GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH: GLenum = 0x8E49`"]
295 #[doc = "* **Group:** ProgramStagePName"]
296 pub const GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH: GLenum = 0x8E49;
297 #[doc = "`GL_ACTIVE_TEXTURE: GLenum = 0x84E0`"]
298 #[doc = "* **Group:** GetPName"]
299 pub const GL_ACTIVE_TEXTURE: GLenum = 0x84E0;
300 #[doc = "`GL_ACTIVE_UNIFORMS: GLenum = 0x8B86`"]
301 #[doc = "* **Group:** ProgramPropertyARB"]
302 pub const GL_ACTIVE_UNIFORMS: GLenum = 0x8B86;
303 #[doc = "`GL_ACTIVE_UNIFORM_BLOCKS: GLenum = 0x8A36`"]
304 #[doc = "* **Group:** ProgramPropertyARB"]
305 pub const GL_ACTIVE_UNIFORM_BLOCKS: GLenum = 0x8A36;
306 #[doc = "`GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH: GLenum = 0x8A35`"]
307 #[doc = "* **Group:** ProgramPropertyARB"]
308 pub const GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH: GLenum = 0x8A35;
309 #[doc = "`GL_ACTIVE_UNIFORM_MAX_LENGTH: GLenum = 0x8B87`"]
310 #[doc = "* **Group:** ProgramPropertyARB"]
311 pub const GL_ACTIVE_UNIFORM_MAX_LENGTH: GLenum = 0x8B87;
312 #[doc = "`GL_ACTIVE_VARIABLES: GLenum = 0x9305`"]
313 #[doc = "* **Group:** ProgramResourceProperty"]
314 pub const GL_ACTIVE_VARIABLES: GLenum = 0x9305;
315 #[doc = "`GL_ALIASED_LINE_WIDTH_RANGE: GLenum = 0x846E`"]
316 #[doc = "* **Group:** GetPName"]
317 pub const GL_ALIASED_LINE_WIDTH_RANGE: GLenum = 0x846E;
318 #[doc = "`GL_ALIASED_POINT_SIZE_RANGE: GLenum = 0x846D`"]
319 #[doc = "* **Group:** GetPName"]
320 pub const GL_ALIASED_POINT_SIZE_RANGE: GLenum = 0x846D;
321 #[doc = "`GL_ALL_BARRIER_BITS: GLbitfield = 0xFFFFFFFF`"]
322 #[doc = "* **Group:** MemoryBarrierMask"]
323 pub const GL_ALL_BARRIER_BITS: GLbitfield = 0xFFFFFFFF;
324 #[doc = "`GL_ALL_SHADER_BITS: GLbitfield = 0xFFFFFFFF`"]
325 #[doc = "* **Group:** UseProgramStageMask"]
326 pub const GL_ALL_SHADER_BITS: GLbitfield = 0xFFFFFFFF;
327 #[doc = "`GL_ALPHA: GLenum = 0x1906`"]
328 #[doc = "* **Groups:** TextureSwizzle, CombinerPortionNV, PathColorFormat, CombinerComponentUsageNV, PixelFormat"]
329 pub const GL_ALPHA: GLenum = 0x1906;
330 #[doc = "`GL_ALPHA_BITS: GLenum = 0x0D55`"]
331 #[doc = "* **Group:** GetPName"]
332 pub const GL_ALPHA_BITS: GLenum = 0x0D55;
333 #[doc = "`GL_ALREADY_SIGNALED: GLenum = 0x911A`"]
334 #[doc = "* **Group:** SyncStatus"]
335 pub const GL_ALREADY_SIGNALED: GLenum = 0x911A;
336 #[doc = "`GL_ALWAYS: GLenum = 0x0207`"]
337 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
338 pub const GL_ALWAYS: GLenum = 0x0207;
339 #[doc = "`GL_AND: GLenum = 0x1501`"]
340 #[doc = "* **Group:** LogicOp"]
341 pub const GL_AND: GLenum = 0x1501;
342 #[doc = "`GL_AND_INVERTED: GLenum = 0x1504`"]
343 #[doc = "* **Group:** LogicOp"]
344 pub const GL_AND_INVERTED: GLenum = 0x1504;
345 #[doc = "`GL_AND_REVERSE: GLenum = 0x1502`"]
346 #[doc = "* **Group:** LogicOp"]
347 pub const GL_AND_REVERSE: GLenum = 0x1502;
348 #[doc = "`GL_ANY_SAMPLES_PASSED: GLenum = 0x8C2F`"]
349 #[doc = "* **Group:** QueryTarget"]
350 pub const GL_ANY_SAMPLES_PASSED: GLenum = 0x8C2F;
351 #[doc = "`GL_ANY_SAMPLES_PASSED_CONSERVATIVE: GLenum = 0x8D6A`"]
352 #[doc = "* **Group:** QueryTarget"]
353 pub const GL_ANY_SAMPLES_PASSED_CONSERVATIVE: GLenum = 0x8D6A;
354 #[doc = "`GL_ARRAY_BUFFER: GLenum = 0x8892`"]
355 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
356 pub const GL_ARRAY_BUFFER: GLenum = 0x8892;
357 #[doc = "`GL_ARRAY_BUFFER_BINDING: GLenum = 0x8894`"]
358 #[doc = "* **Group:** GetPName"]
359 pub const GL_ARRAY_BUFFER_BINDING: GLenum = 0x8894;
360 #[doc = "`GL_ARRAY_SIZE: GLenum = 0x92FB`"]
361 #[doc = "* **Group:** ProgramResourceProperty"]
362 pub const GL_ARRAY_SIZE: GLenum = 0x92FB;
363 #[doc = "`GL_ARRAY_STRIDE: GLenum = 0x92FE`"]
364 #[doc = "* **Group:** ProgramResourceProperty"]
365 pub const GL_ARRAY_STRIDE: GLenum = 0x92FE;
366 #[doc = "`GL_ATOMIC_COUNTER_BARRIER_BIT: GLbitfield = 0x00001000`"]
367 #[doc = "* **Group:** MemoryBarrierMask"]
368 pub const GL_ATOMIC_COUNTER_BARRIER_BIT: GLbitfield = 0x00001000;
369 #[doc = "`GL_ATOMIC_COUNTER_BUFFER: GLenum = 0x92C0`"]
370 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
371 pub const GL_ATOMIC_COUNTER_BUFFER: GLenum = 0x92C0;
372 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS: GLenum = 0x92C5`"]
373 #[doc = "* **Group:** AtomicCounterBufferPName"]
374 pub const GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS: GLenum = 0x92C5;
375 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES: GLenum = 0x92C6`"]
376 #[doc = "* **Group:** AtomicCounterBufferPName"]
377 pub const GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES: GLenum = 0x92C6;
378 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_BINDING: GLenum = 0x92C1`"]
379 #[doc = "* **Group:** AtomicCounterBufferPName"]
380 pub const GL_ATOMIC_COUNTER_BUFFER_BINDING: GLenum = 0x92C1;
381 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE: GLenum = 0x92C4`"]
382 #[doc = "* **Group:** AtomicCounterBufferPName"]
383 pub const GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE: GLenum = 0x92C4;
384 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_INDEX: GLenum = 0x9301`"]
385 #[doc = "* **Group:** ProgramResourceProperty"]
386 pub const GL_ATOMIC_COUNTER_BUFFER_INDEX: GLenum = 0x9301;
387 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER: GLenum = 0x90ED`"]
388 #[doc = "* **Group:** AtomicCounterBufferPName"]
389 pub const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER: GLenum = 0x90ED;
390 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER: GLenum = 0x92CB`"]
391 #[doc = "* **Group:** AtomicCounterBufferPName"]
392 pub const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER: GLenum = 0x92CB;
393 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER: GLenum = 0x92CA`"]
394 #[doc = "* **Group:** AtomicCounterBufferPName"]
395 pub const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER: GLenum = 0x92CA;
396 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER: GLenum = 0x92C8`"]
397 #[doc = "* **Group:** AtomicCounterBufferPName"]
398 pub const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER: GLenum = 0x92C8;
399 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER: GLenum = 0x92C9`"]
400 #[doc = "* **Group:** AtomicCounterBufferPName"]
401 pub const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER: GLenum = 0x92C9;
402 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER: GLenum = 0x92C7`"]
403 #[doc = "* **Group:** AtomicCounterBufferPName"]
404 pub const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER: GLenum = 0x92C7;
405 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_SIZE: GLenum = 0x92C3`"]
406 pub const GL_ATOMIC_COUNTER_BUFFER_SIZE: GLenum = 0x92C3;
407 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_START: GLenum = 0x92C2`"]
408 pub const GL_ATOMIC_COUNTER_BUFFER_START: GLenum = 0x92C2;
409 #[doc = "`GL_ATTACHED_SHADERS: GLenum = 0x8B85`"]
410 #[doc = "* **Group:** ProgramPropertyARB"]
411 pub const GL_ATTACHED_SHADERS: GLenum = 0x8B85;
412 #[doc = "`GL_AUTO_GENERATE_MIPMAP: GLenum = 0x8295`"]
413 #[doc = "* **Group:** InternalFormatPName"]
414 pub const GL_AUTO_GENERATE_MIPMAP: GLenum = 0x8295;
415 #[doc = "`GL_BACK: GLenum = 0x0405`"]
416 #[doc = "* **Groups:** ColorBuffer, ColorMaterialFace, CullFaceMode, DrawBufferMode, ReadBufferMode, StencilFaceDirection, MaterialFace"]
417 pub const GL_BACK: GLenum = 0x0405;
418 #[doc = "`GL_BACK_LEFT: GLenum = 0x0402`"]
419 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode"]
420 pub const GL_BACK_LEFT: GLenum = 0x0402;
421 #[doc = "`GL_BACK_RIGHT: GLenum = 0x0403`"]
422 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode"]
423 pub const GL_BACK_RIGHT: GLenum = 0x0403;
424 #[doc = "`GL_BGR: GLenum = 0x80E0`"]
425 #[doc = "* **Group:** PixelFormat"]
426 pub const GL_BGR: GLenum = 0x80E0;
427 #[doc = "`GL_BGRA: GLenum = 0x80E1`"]
428 #[doc = "* **Group:** PixelFormat"]
429 pub const GL_BGRA: GLenum = 0x80E1;
430 #[doc = "`GL_BGRA_INTEGER: GLenum = 0x8D9B`"]
431 #[doc = "* **Group:** PixelFormat"]
432 pub const GL_BGRA_INTEGER: GLenum = 0x8D9B;
433 #[doc = "`GL_BGR_INTEGER: GLenum = 0x8D9A`"]
434 #[doc = "* **Group:** PixelFormat"]
435 pub const GL_BGR_INTEGER: GLenum = 0x8D9A;
436 #[doc = "`GL_BLEND: GLenum = 0x0BE2`"]
437 #[doc = "* **Groups:** TextureEnvMode, EnableCap, GetPName"]
438 pub const GL_BLEND: GLenum = 0x0BE2;
439 #[doc = "`GL_BLEND_COLOR: GLenum = 0x8005`"]
440 #[doc = "* **Group:** GetPName"]
441 pub const GL_BLEND_COLOR: GLenum = 0x8005;
442 #[doc = "`GL_BLEND_DST: GLenum = 0x0BE0`"]
443 #[doc = "* **Group:** GetPName"]
444 pub const GL_BLEND_DST: GLenum = 0x0BE0;
445 #[doc = "`GL_BLEND_DST_ALPHA: GLenum = 0x80CA`"]
446 #[doc = "* **Group:** GetPName"]
447 pub const GL_BLEND_DST_ALPHA: GLenum = 0x80CA;
448 #[doc = "`GL_BLEND_DST_RGB: GLenum = 0x80C8`"]
449 #[doc = "* **Group:** GetPName"]
450 pub const GL_BLEND_DST_RGB: GLenum = 0x80C8;
451 #[doc = "`GL_BLEND_EQUATION: GLenum = 0x8009`"]
452 pub const GL_BLEND_EQUATION: GLenum = 0x8009;
453 #[doc = "`GL_BLEND_EQUATION_ALPHA: GLenum = 0x883D`"]
454 #[doc = "* **Group:** GetPName"]
455 pub const GL_BLEND_EQUATION_ALPHA: GLenum = 0x883D;
456 #[doc = "`GL_BLEND_EQUATION_RGB: GLenum = 0x8009`"]
457 #[doc = "* **Group:** GetPName"]
458 pub const GL_BLEND_EQUATION_RGB: GLenum = 0x8009;
459 #[doc = "`GL_BLEND_SRC: GLenum = 0x0BE1`"]
460 #[doc = "* **Group:** GetPName"]
461 pub const GL_BLEND_SRC: GLenum = 0x0BE1;
462 #[doc = "`GL_BLEND_SRC_ALPHA: GLenum = 0x80CB`"]
463 #[doc = "* **Group:** GetPName"]
464 pub const GL_BLEND_SRC_ALPHA: GLenum = 0x80CB;
465 #[doc = "`GL_BLEND_SRC_RGB: GLenum = 0x80C9`"]
466 #[doc = "* **Group:** GetPName"]
467 pub const GL_BLEND_SRC_RGB: GLenum = 0x80C9;
468 #[doc = "`GL_BLOCK_INDEX: GLenum = 0x92FD`"]
469 #[doc = "* **Group:** ProgramResourceProperty"]
470 pub const GL_BLOCK_INDEX: GLenum = 0x92FD;
471 #[doc = "`GL_BLUE: GLenum = 0x1905`"]
472 #[doc = "* **Groups:** TextureSwizzle, CombinerComponentUsageNV, PixelFormat"]
473 pub const GL_BLUE: GLenum = 0x1905;
474 #[doc = "`GL_BLUE_BITS: GLenum = 0x0D54`"]
475 #[doc = "* **Group:** GetPName"]
476 pub const GL_BLUE_BITS: GLenum = 0x0D54;
477 #[doc = "`GL_BLUE_INTEGER: GLenum = 0x8D96`"]
478 #[doc = "* **Group:** PixelFormat"]
479 pub const GL_BLUE_INTEGER: GLenum = 0x8D96;
480 #[doc = "`GL_BOOL: GLenum = 0x8B56`"]
481 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
482 pub const GL_BOOL: GLenum = 0x8B56;
483 #[doc = "`GL_BOOL_VEC2: GLenum = 0x8B57`"]
484 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
485 pub const GL_BOOL_VEC2: GLenum = 0x8B57;
486 #[doc = "`GL_BOOL_VEC3: GLenum = 0x8B58`"]
487 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
488 pub const GL_BOOL_VEC3: GLenum = 0x8B58;
489 #[doc = "`GL_BOOL_VEC4: GLenum = 0x8B59`"]
490 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
491 pub const GL_BOOL_VEC4: GLenum = 0x8B59;
492 #[doc = "`GL_BUFFER: GLenum = 0x82E0`"]
493 #[doc = "* **Group:** ObjectIdentifier"]
494 pub const GL_BUFFER: GLenum = 0x82E0;
495 #[doc = "`GL_BUFFER_ACCESS: GLenum = 0x88BB`"]
496 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
497 pub const GL_BUFFER_ACCESS: GLenum = 0x88BB;
498 #[doc = "`GL_BUFFER_ACCESS_FLAGS: GLenum = 0x911F`"]
499 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
500 pub const GL_BUFFER_ACCESS_FLAGS: GLenum = 0x911F;
501 #[doc = "`GL_BUFFER_BINDING: GLenum = 0x9302`"]
502 #[doc = "* **Group:** ProgramResourceProperty"]
503 pub const GL_BUFFER_BINDING: GLenum = 0x9302;
504 #[doc = "`GL_BUFFER_DATA_SIZE: GLenum = 0x9303`"]
505 #[doc = "* **Group:** ProgramResourceProperty"]
506 pub const GL_BUFFER_DATA_SIZE: GLenum = 0x9303;
507 #[doc = "`GL_BUFFER_IMMUTABLE_STORAGE: GLenum = 0x821F`"]
508 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
509 pub const GL_BUFFER_IMMUTABLE_STORAGE: GLenum = 0x821F;
510 #[doc = "`GL_BUFFER_IMMUTABLE_STORAGE_EXT: GLenum = 0x821F`"]
511
512 pub const GL_BUFFER_IMMUTABLE_STORAGE_EXT: GLenum = 0x821F;
513 #[doc = "`GL_BUFFER_KHR: GLenum = 0x82E0`"]
514
515 pub const GL_BUFFER_KHR: GLenum = 0x82E0;
516 #[doc = "`GL_BUFFER_MAPPED: GLenum = 0x88BC`"]
517 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
518 pub const GL_BUFFER_MAPPED: GLenum = 0x88BC;
519 #[doc = "`GL_BUFFER_MAP_LENGTH: GLenum = 0x9120`"]
520 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
521 pub const GL_BUFFER_MAP_LENGTH: GLenum = 0x9120;
522 #[doc = "`GL_BUFFER_MAP_OFFSET: GLenum = 0x9121`"]
523 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
524 pub const GL_BUFFER_MAP_OFFSET: GLenum = 0x9121;
525 #[doc = "`GL_BUFFER_MAP_POINTER: GLenum = 0x88BD`"]
526 #[doc = "* **Group:** BufferPointerNameARB"]
527 pub const GL_BUFFER_MAP_POINTER: GLenum = 0x88BD;
528 #[doc = "`GL_BUFFER_SIZE: GLenum = 0x8764`"]
529 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
530 pub const GL_BUFFER_SIZE: GLenum = 0x8764;
531 #[doc = "`GL_BUFFER_STORAGE_FLAGS: GLenum = 0x8220`"]
532 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
533 pub const GL_BUFFER_STORAGE_FLAGS: GLenum = 0x8220;
534 #[doc = "`GL_BUFFER_STORAGE_FLAGS_EXT: GLenum = 0x8220`"]
535
536 pub const GL_BUFFER_STORAGE_FLAGS_EXT: GLenum = 0x8220;
537 #[doc = "`GL_BUFFER_UPDATE_BARRIER_BIT: GLbitfield = 0x00000200`"]
538 #[doc = "* **Group:** MemoryBarrierMask"]
539 pub const GL_BUFFER_UPDATE_BARRIER_BIT: GLbitfield = 0x00000200;
540 #[doc = "`GL_BUFFER_USAGE: GLenum = 0x8765`"]
541 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
542 pub const GL_BUFFER_USAGE: GLenum = 0x8765;
543 #[doc = "`GL_BUFFER_VARIABLE: GLenum = 0x92E5`"]
544 #[doc = "* **Group:** ProgramInterface"]
545 pub const GL_BUFFER_VARIABLE: GLenum = 0x92E5;
546 #[doc = "`GL_BYTE: GLenum = 0x1400`"]
547 #[doc = "* **Groups:** VertexAttribIType, WeightPointerTypeARB, TangentPointerTypeEXT, BinormalPointerTypeEXT, ColorPointerType, ListNameType, NormalPointerType, PixelType, VertexAttribType, VertexAttribPointerType"]
548 pub const GL_BYTE: GLenum = 0x1400;
549 #[doc = "`GL_CAVEAT_SUPPORT: GLenum = 0x82B8`"]
550 pub const GL_CAVEAT_SUPPORT: GLenum = 0x82B8;
551 #[doc = "`GL_CCW: GLenum = 0x0901`"]
552 #[doc = "* **Group:** FrontFaceDirection"]
553 pub const GL_CCW: GLenum = 0x0901;
554 #[doc = "`GL_CLAMP_READ_COLOR: GLenum = 0x891C`"]
555 #[doc = "* **Group:** ClampColorTargetARB"]
556 pub const GL_CLAMP_READ_COLOR: GLenum = 0x891C;
557 #[doc = "`GL_CLAMP_TO_BORDER: GLenum = 0x812D`"]
558 #[doc = "* **Group:** TextureWrapMode"]
559 pub const GL_CLAMP_TO_BORDER: GLenum = 0x812D;
560 #[doc = "`GL_CLAMP_TO_EDGE: GLenum = 0x812F`"]
561 #[doc = "* **Group:** TextureWrapMode"]
562 pub const GL_CLAMP_TO_EDGE: GLenum = 0x812F;
563 #[doc = "`GL_CLEAR: GLenum = 0x1500`"]
564 #[doc = "* **Group:** LogicOp"]
565 pub const GL_CLEAR: GLenum = 0x1500;
566 #[doc = "`GL_CLEAR_BUFFER: GLenum = 0x82B4`"]
567 #[doc = "* **Group:** InternalFormatPName"]
568 pub const GL_CLEAR_BUFFER: GLenum = 0x82B4;
569 #[doc = "`GL_CLEAR_TEXTURE: GLenum = 0x9365`"]
570 #[doc = "* **Group:** InternalFormatPName"]
571 pub const GL_CLEAR_TEXTURE: GLenum = 0x9365;
572 #[doc = "`GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT: GLbitfield = 0x00004000`"]
573 #[doc = "* **Group:** MemoryBarrierMask"]
574 pub const GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT: GLbitfield = 0x00004000;
575 #[doc = "`GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT: GLbitfield = 0x00004000`"]
576 #[doc = "* **Group:** MemoryBarrierMask"]
577
578 pub const GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT: GLbitfield = 0x00004000;
579 #[doc = "`GL_CLIENT_STORAGE_BIT: GLbitfield = 0x0200`"]
580 #[doc = "* **Group:** BufferStorageMask"]
581 pub const GL_CLIENT_STORAGE_BIT: GLbitfield = 0x0200;
582 #[doc = "`GL_CLIENT_STORAGE_BIT_EXT: GLbitfield = 0x0200`"]
583 #[doc = "* **Group:** BufferStorageMask"]
584
585 pub const GL_CLIENT_STORAGE_BIT_EXT: GLbitfield = 0x0200;
586 #[doc = "`GL_CLIPPING_INPUT_PRIMITIVES: GLenum = 0x82F6`"]
587 pub const GL_CLIPPING_INPUT_PRIMITIVES: GLenum = 0x82F6;
588 #[doc = "`GL_CLIPPING_OUTPUT_PRIMITIVES: GLenum = 0x82F7`"]
589 pub const GL_CLIPPING_OUTPUT_PRIMITIVES: GLenum = 0x82F7;
590 #[doc = "`GL_CLIP_DEPTH_MODE: GLenum = 0x935D`"]
591 pub const GL_CLIP_DEPTH_MODE: GLenum = 0x935D;
592 #[doc = "`GL_CLIP_DISTANCE0: GLenum = 0x3000`"]
593 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
594 #[doc = "* **Alias Of:** `GL_CLIP_PLANE0`"]
595 pub const GL_CLIP_DISTANCE0: GLenum = 0x3000;
596 #[doc = "`GL_CLIP_DISTANCE1: GLenum = 0x3001`"]
597 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
598 #[doc = "* **Alias Of:** `GL_CLIP_PLANE1`"]
599 pub const GL_CLIP_DISTANCE1: GLenum = 0x3001;
600 #[doc = "`GL_CLIP_DISTANCE2: GLenum = 0x3002`"]
601 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
602 #[doc = "* **Alias Of:** `GL_CLIP_PLANE2`"]
603 pub const GL_CLIP_DISTANCE2: GLenum = 0x3002;
604 #[doc = "`GL_CLIP_DISTANCE3: GLenum = 0x3003`"]
605 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
606 #[doc = "* **Alias Of:** `GL_CLIP_PLANE3`"]
607 pub const GL_CLIP_DISTANCE3: GLenum = 0x3003;
608 #[doc = "`GL_CLIP_DISTANCE4: GLenum = 0x3004`"]
609 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
610 #[doc = "* **Alias Of:** `GL_CLIP_PLANE4`"]
611 pub const GL_CLIP_DISTANCE4: GLenum = 0x3004;
612 #[doc = "`GL_CLIP_DISTANCE5: GLenum = 0x3005`"]
613 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
614 #[doc = "* **Alias Of:** `GL_CLIP_PLANE5`"]
615 pub const GL_CLIP_DISTANCE5: GLenum = 0x3005;
616 #[doc = "`GL_CLIP_DISTANCE6: GLenum = 0x3006`"]
617 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
618 pub const GL_CLIP_DISTANCE6: GLenum = 0x3006;
619 #[doc = "`GL_CLIP_DISTANCE7: GLenum = 0x3007`"]
620 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
621 pub const GL_CLIP_DISTANCE7: GLenum = 0x3007;
622 #[doc = "`GL_CLIP_ORIGIN: GLenum = 0x935C`"]
623 pub const GL_CLIP_ORIGIN: GLenum = 0x935C;
624 #[doc = "`GL_COLOR: GLenum = 0x1800`"]
625 #[doc = "* **Groups:** Buffer, PixelCopyType, InvalidateFramebufferAttachment"]
626 pub const GL_COLOR: GLenum = 0x1800;
627 #[doc = "`GL_COLORBURN: GLenum = 0x929A`"]
628 pub const GL_COLORBURN: GLenum = 0x929A;
629 #[doc = "`GL_COLORDODGE: GLenum = 0x9299`"]
630 pub const GL_COLORDODGE: GLenum = 0x9299;
631 #[doc = "`GL_COLOR_ATTACHMENT0: GLenum = 0x8CE0`"]
632 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
633 pub const GL_COLOR_ATTACHMENT0: GLenum = 0x8CE0;
634 #[doc = "`GL_COLOR_ATTACHMENT1: GLenum = 0x8CE1`"]
635 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
636 pub const GL_COLOR_ATTACHMENT1: GLenum = 0x8CE1;
637 #[doc = "`GL_COLOR_ATTACHMENT10: GLenum = 0x8CEA`"]
638 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
639 pub const GL_COLOR_ATTACHMENT10: GLenum = 0x8CEA;
640 #[doc = "`GL_COLOR_ATTACHMENT11: GLenum = 0x8CEB`"]
641 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
642 pub const GL_COLOR_ATTACHMENT11: GLenum = 0x8CEB;
643 #[doc = "`GL_COLOR_ATTACHMENT12: GLenum = 0x8CEC`"]
644 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
645 pub const GL_COLOR_ATTACHMENT12: GLenum = 0x8CEC;
646 #[doc = "`GL_COLOR_ATTACHMENT13: GLenum = 0x8CED`"]
647 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
648 pub const GL_COLOR_ATTACHMENT13: GLenum = 0x8CED;
649 #[doc = "`GL_COLOR_ATTACHMENT14: GLenum = 0x8CEE`"]
650 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
651 pub const GL_COLOR_ATTACHMENT14: GLenum = 0x8CEE;
652 #[doc = "`GL_COLOR_ATTACHMENT15: GLenum = 0x8CEF`"]
653 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
654 pub const GL_COLOR_ATTACHMENT15: GLenum = 0x8CEF;
655 #[doc = "`GL_COLOR_ATTACHMENT16: GLenum = 0x8CF0`"]
656 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
657 pub const GL_COLOR_ATTACHMENT16: GLenum = 0x8CF0;
658 #[doc = "`GL_COLOR_ATTACHMENT17: GLenum = 0x8CF1`"]
659 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
660 pub const GL_COLOR_ATTACHMENT17: GLenum = 0x8CF1;
661 #[doc = "`GL_COLOR_ATTACHMENT18: GLenum = 0x8CF2`"]
662 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
663 pub const GL_COLOR_ATTACHMENT18: GLenum = 0x8CF2;
664 #[doc = "`GL_COLOR_ATTACHMENT19: GLenum = 0x8CF3`"]
665 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
666 pub const GL_COLOR_ATTACHMENT19: GLenum = 0x8CF3;
667 #[doc = "`GL_COLOR_ATTACHMENT2: GLenum = 0x8CE2`"]
668 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
669 pub const GL_COLOR_ATTACHMENT2: GLenum = 0x8CE2;
670 #[doc = "`GL_COLOR_ATTACHMENT20: GLenum = 0x8CF4`"]
671 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
672 pub const GL_COLOR_ATTACHMENT20: GLenum = 0x8CF4;
673 #[doc = "`GL_COLOR_ATTACHMENT21: GLenum = 0x8CF5`"]
674 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
675 pub const GL_COLOR_ATTACHMENT21: GLenum = 0x8CF5;
676 #[doc = "`GL_COLOR_ATTACHMENT22: GLenum = 0x8CF6`"]
677 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
678 pub const GL_COLOR_ATTACHMENT22: GLenum = 0x8CF6;
679 #[doc = "`GL_COLOR_ATTACHMENT23: GLenum = 0x8CF7`"]
680 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
681 pub const GL_COLOR_ATTACHMENT23: GLenum = 0x8CF7;
682 #[doc = "`GL_COLOR_ATTACHMENT24: GLenum = 0x8CF8`"]
683 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
684 pub const GL_COLOR_ATTACHMENT24: GLenum = 0x8CF8;
685 #[doc = "`GL_COLOR_ATTACHMENT25: GLenum = 0x8CF9`"]
686 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
687 pub const GL_COLOR_ATTACHMENT25: GLenum = 0x8CF9;
688 #[doc = "`GL_COLOR_ATTACHMENT26: GLenum = 0x8CFA`"]
689 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
690 pub const GL_COLOR_ATTACHMENT26: GLenum = 0x8CFA;
691 #[doc = "`GL_COLOR_ATTACHMENT27: GLenum = 0x8CFB`"]
692 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
693 pub const GL_COLOR_ATTACHMENT27: GLenum = 0x8CFB;
694 #[doc = "`GL_COLOR_ATTACHMENT28: GLenum = 0x8CFC`"]
695 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
696 pub const GL_COLOR_ATTACHMENT28: GLenum = 0x8CFC;
697 #[doc = "`GL_COLOR_ATTACHMENT29: GLenum = 0x8CFD`"]
698 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
699 pub const GL_COLOR_ATTACHMENT29: GLenum = 0x8CFD;
700 #[doc = "`GL_COLOR_ATTACHMENT3: GLenum = 0x8CE3`"]
701 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
702 pub const GL_COLOR_ATTACHMENT3: GLenum = 0x8CE3;
703 #[doc = "`GL_COLOR_ATTACHMENT30: GLenum = 0x8CFE`"]
704 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
705 pub const GL_COLOR_ATTACHMENT30: GLenum = 0x8CFE;
706 #[doc = "`GL_COLOR_ATTACHMENT31: GLenum = 0x8CFF`"]
707 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
708 pub const GL_COLOR_ATTACHMENT31: GLenum = 0x8CFF;
709 #[doc = "`GL_COLOR_ATTACHMENT4: GLenum = 0x8CE4`"]
710 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
711 pub const GL_COLOR_ATTACHMENT4: GLenum = 0x8CE4;
712 #[doc = "`GL_COLOR_ATTACHMENT5: GLenum = 0x8CE5`"]
713 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
714 pub const GL_COLOR_ATTACHMENT5: GLenum = 0x8CE5;
715 #[doc = "`GL_COLOR_ATTACHMENT6: GLenum = 0x8CE6`"]
716 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
717 pub const GL_COLOR_ATTACHMENT6: GLenum = 0x8CE6;
718 #[doc = "`GL_COLOR_ATTACHMENT7: GLenum = 0x8CE7`"]
719 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
720 pub const GL_COLOR_ATTACHMENT7: GLenum = 0x8CE7;
721 #[doc = "`GL_COLOR_ATTACHMENT8: GLenum = 0x8CE8`"]
722 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
723 pub const GL_COLOR_ATTACHMENT8: GLenum = 0x8CE8;
724 #[doc = "`GL_COLOR_ATTACHMENT9: GLenum = 0x8CE9`"]
725 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
726 pub const GL_COLOR_ATTACHMENT9: GLenum = 0x8CE9;
727 #[doc = "`GL_COLOR_BUFFER_BIT: GLbitfield = 0x00004000`"]
728 #[doc = "* **Groups:** ClearBufferMask, AttribMask"]
729 pub const GL_COLOR_BUFFER_BIT: GLbitfield = 0x00004000;
730 #[doc = "`GL_COLOR_CLEAR_VALUE: GLenum = 0x0C22`"]
731 #[doc = "* **Group:** GetPName"]
732 pub const GL_COLOR_CLEAR_VALUE: GLenum = 0x0C22;
733 #[doc = "`GL_COLOR_COMPONENTS: GLenum = 0x8283`"]
734 #[doc = "* **Group:** InternalFormatPName"]
735 pub const GL_COLOR_COMPONENTS: GLenum = 0x8283;
736 #[doc = "`GL_COLOR_ENCODING: GLenum = 0x8296`"]
737 #[doc = "* **Group:** InternalFormatPName"]
738 pub const GL_COLOR_ENCODING: GLenum = 0x8296;
739 #[doc = "`GL_COLOR_LOGIC_OP: GLenum = 0x0BF2`"]
740 #[doc = "* **Groups:** GetPName, EnableCap"]
741 pub const GL_COLOR_LOGIC_OP: GLenum = 0x0BF2;
742 #[doc = "`GL_COLOR_RENDERABLE: GLenum = 0x8286`"]
743 #[doc = "* **Group:** InternalFormatPName"]
744 pub const GL_COLOR_RENDERABLE: GLenum = 0x8286;
745 #[doc = "`GL_COLOR_WRITEMASK: GLenum = 0x0C23`"]
746 #[doc = "* **Group:** GetPName"]
747 pub const GL_COLOR_WRITEMASK: GLenum = 0x0C23;
748 #[doc = "`GL_COMMAND_BARRIER_BIT: GLbitfield = 0x00000040`"]
749 #[doc = "* **Group:** MemoryBarrierMask"]
750 pub const GL_COMMAND_BARRIER_BIT: GLbitfield = 0x00000040;
751 #[doc = "`GL_COMPARE_REF_TO_TEXTURE: GLenum = 0x884E`"]
752 #[doc = "* **Group:** TextureCompareMode"]
753 #[doc = "* **Alias Of:** `GL_COMPARE_R_TO_TEXTURE`"]
754 pub const GL_COMPARE_REF_TO_TEXTURE: GLenum = 0x884E;
755 #[doc = "`GL_COMPATIBLE_SUBROUTINES: GLenum = 0x8E4B`"]
756 #[doc = "* **Groups:** ProgramResourceProperty, SubroutineParameterName"]
757 pub const GL_COMPATIBLE_SUBROUTINES: GLenum = 0x8E4B;
758 #[doc = "`GL_COMPILE_STATUS: GLenum = 0x8B81`"]
759 #[doc = "* **Group:** ShaderParameterName"]
760 pub const GL_COMPILE_STATUS: GLenum = 0x8B81;
761 #[doc = "`GL_COMPLETION_STATUS_ARB: GLenum = 0x91B1`"]
762 #[doc = "* **Alias Of:** `GL_COMPLETION_STATUS_KHR`"]
763
764 pub const GL_COMPLETION_STATUS_ARB: GLenum = 0x91B1;
765 #[doc = "`GL_COMPLETION_STATUS_KHR: GLenum = 0x91B1`"]
766
767 pub const GL_COMPLETION_STATUS_KHR: GLenum = 0x91B1;
768 #[doc = "`GL_COMPRESSED_R11_EAC: GLenum = 0x9270`"]
769 #[doc = "* **Group:** InternalFormat"]
770 pub const GL_COMPRESSED_R11_EAC: GLenum = 0x9270;
771 #[doc = "`GL_COMPRESSED_RED: GLenum = 0x8225`"]
772 #[doc = "* **Group:** InternalFormat"]
773 pub const GL_COMPRESSED_RED: GLenum = 0x8225;
774 #[doc = "`GL_COMPRESSED_RED_RGTC1: GLenum = 0x8DBB`"]
775 #[doc = "* **Group:** InternalFormat"]
776 pub const GL_COMPRESSED_RED_RGTC1: GLenum = 0x8DBB;
777 #[doc = "`GL_COMPRESSED_RG: GLenum = 0x8226`"]
778 #[doc = "* **Group:** InternalFormat"]
779 pub const GL_COMPRESSED_RG: GLenum = 0x8226;
780 #[doc = "`GL_COMPRESSED_RG11_EAC: GLenum = 0x9272`"]
781 #[doc = "* **Group:** InternalFormat"]
782 pub const GL_COMPRESSED_RG11_EAC: GLenum = 0x9272;
783 #[doc = "`GL_COMPRESSED_RGB: GLenum = 0x84ED`"]
784 #[doc = "* **Group:** InternalFormat"]
785 pub const GL_COMPRESSED_RGB: GLenum = 0x84ED;
786 #[doc = "`GL_COMPRESSED_RGB8_ETC2: GLenum = 0x9274`"]
787 #[doc = "* **Group:** InternalFormat"]
788 pub const GL_COMPRESSED_RGB8_ETC2: GLenum = 0x9274;
789 #[doc = "`GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: GLenum = 0x9276`"]
790 #[doc = "* **Group:** InternalFormat"]
791 pub const GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: GLenum = 0x9276;
792 #[doc = "`GL_COMPRESSED_RGBA: GLenum = 0x84EE`"]
793 #[doc = "* **Group:** InternalFormat"]
794 pub const GL_COMPRESSED_RGBA: GLenum = 0x84EE;
795 #[doc = "`GL_COMPRESSED_RGBA8_ETC2_EAC: GLenum = 0x9278`"]
796 #[doc = "* **Group:** InternalFormat"]
797 pub const GL_COMPRESSED_RGBA8_ETC2_EAC: GLenum = 0x9278;
798 #[doc = "`GL_COMPRESSED_RGBA_ASTC_10x10: GLenum = 0x93BB`"]
799 #[doc = "* **Group:** InternalFormat"]
800 pub const GL_COMPRESSED_RGBA_ASTC_10x10: GLenum = 0x93BB;
801 #[doc = "`GL_COMPRESSED_RGBA_ASTC_10x5: GLenum = 0x93B8`"]
802 #[doc = "* **Group:** InternalFormat"]
803 pub const GL_COMPRESSED_RGBA_ASTC_10x5: GLenum = 0x93B8;
804 #[doc = "`GL_COMPRESSED_RGBA_ASTC_10x6: GLenum = 0x93B9`"]
805 #[doc = "* **Group:** InternalFormat"]
806 pub const GL_COMPRESSED_RGBA_ASTC_10x6: GLenum = 0x93B9;
807 #[doc = "`GL_COMPRESSED_RGBA_ASTC_10x8: GLenum = 0x93BA`"]
808 #[doc = "* **Group:** InternalFormat"]
809 pub const GL_COMPRESSED_RGBA_ASTC_10x8: GLenum = 0x93BA;
810 #[doc = "`GL_COMPRESSED_RGBA_ASTC_12x10: GLenum = 0x93BC`"]
811 #[doc = "* **Group:** InternalFormat"]
812 pub const GL_COMPRESSED_RGBA_ASTC_12x10: GLenum = 0x93BC;
813 #[doc = "`GL_COMPRESSED_RGBA_ASTC_12x12: GLenum = 0x93BD`"]
814 #[doc = "* **Group:** InternalFormat"]
815 pub const GL_COMPRESSED_RGBA_ASTC_12x12: GLenum = 0x93BD;
816 #[doc = "`GL_COMPRESSED_RGBA_ASTC_4x4: GLenum = 0x93B0`"]
817 #[doc = "* **Group:** InternalFormat"]
818 pub const GL_COMPRESSED_RGBA_ASTC_4x4: GLenum = 0x93B0;
819 #[doc = "`GL_COMPRESSED_RGBA_ASTC_5x4: GLenum = 0x93B1`"]
820 #[doc = "* **Group:** InternalFormat"]
821 pub const GL_COMPRESSED_RGBA_ASTC_5x4: GLenum = 0x93B1;
822 #[doc = "`GL_COMPRESSED_RGBA_ASTC_5x5: GLenum = 0x93B2`"]
823 #[doc = "* **Group:** InternalFormat"]
824 pub const GL_COMPRESSED_RGBA_ASTC_5x5: GLenum = 0x93B2;
825 #[doc = "`GL_COMPRESSED_RGBA_ASTC_6x5: GLenum = 0x93B3`"]
826 #[doc = "* **Group:** InternalFormat"]
827 pub const GL_COMPRESSED_RGBA_ASTC_6x5: GLenum = 0x93B3;
828 #[doc = "`GL_COMPRESSED_RGBA_ASTC_6x6: GLenum = 0x93B4`"]
829 #[doc = "* **Group:** InternalFormat"]
830 pub const GL_COMPRESSED_RGBA_ASTC_6x6: GLenum = 0x93B4;
831 #[doc = "`GL_COMPRESSED_RGBA_ASTC_8x5: GLenum = 0x93B5`"]
832 #[doc = "* **Group:** InternalFormat"]
833 pub const GL_COMPRESSED_RGBA_ASTC_8x5: GLenum = 0x93B5;
834 #[doc = "`GL_COMPRESSED_RGBA_ASTC_8x6: GLenum = 0x93B6`"]
835 #[doc = "* **Group:** InternalFormat"]
836 pub const GL_COMPRESSED_RGBA_ASTC_8x6: GLenum = 0x93B6;
837 #[doc = "`GL_COMPRESSED_RGBA_ASTC_8x8: GLenum = 0x93B7`"]
838 #[doc = "* **Group:** InternalFormat"]
839 pub const GL_COMPRESSED_RGBA_ASTC_8x8: GLenum = 0x93B7;
840 #[doc = "`GL_COMPRESSED_RGBA_BPTC_UNORM: GLenum = 0x8E8C`"]
841 #[doc = "* **Group:** InternalFormat"]
842 pub const GL_COMPRESSED_RGBA_BPTC_UNORM: GLenum = 0x8E8C;
843 #[doc = "`GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT: GLenum = 0x8E8E`"]
844 #[doc = "* **Group:** InternalFormat"]
845 pub const GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT: GLenum = 0x8E8E;
846 #[doc = "`GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT: GLenum = 0x8E8F`"]
847 #[doc = "* **Group:** InternalFormat"]
848 pub const GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT: GLenum = 0x8E8F;
849 #[doc = "`GL_COMPRESSED_RG_RGTC2: GLenum = 0x8DBD`"]
850 #[doc = "* **Group:** InternalFormat"]
851 pub const GL_COMPRESSED_RG_RGTC2: GLenum = 0x8DBD;
852 #[doc = "`GL_COMPRESSED_SIGNED_R11_EAC: GLenum = 0x9271`"]
853 #[doc = "* **Group:** InternalFormat"]
854 pub const GL_COMPRESSED_SIGNED_R11_EAC: GLenum = 0x9271;
855 #[doc = "`GL_COMPRESSED_SIGNED_RED_RGTC1: GLenum = 0x8DBC`"]
856 #[doc = "* **Group:** InternalFormat"]
857 pub const GL_COMPRESSED_SIGNED_RED_RGTC1: GLenum = 0x8DBC;
858 #[doc = "`GL_COMPRESSED_SIGNED_RG11_EAC: GLenum = 0x9273`"]
859 #[doc = "* **Group:** InternalFormat"]
860 pub const GL_COMPRESSED_SIGNED_RG11_EAC: GLenum = 0x9273;
861 #[doc = "`GL_COMPRESSED_SIGNED_RG_RGTC2: GLenum = 0x8DBE`"]
862 #[doc = "* **Group:** InternalFormat"]
863 pub const GL_COMPRESSED_SIGNED_RG_RGTC2: GLenum = 0x8DBE;
864 #[doc = "`GL_COMPRESSED_SRGB: GLenum = 0x8C48`"]
865 #[doc = "* **Group:** InternalFormat"]
866 pub const GL_COMPRESSED_SRGB: GLenum = 0x8C48;
867 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10: GLenum = 0x93DB`"]
868 #[doc = "* **Group:** InternalFormat"]
869 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10: GLenum = 0x93DB;
870 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5: GLenum = 0x93D8`"]
871 #[doc = "* **Group:** InternalFormat"]
872 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5: GLenum = 0x93D8;
873 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6: GLenum = 0x93D9`"]
874 #[doc = "* **Group:** InternalFormat"]
875 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6: GLenum = 0x93D9;
876 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8: GLenum = 0x93DA`"]
877 #[doc = "* **Group:** InternalFormat"]
878 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8: GLenum = 0x93DA;
879 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10: GLenum = 0x93DC`"]
880 #[doc = "* **Group:** InternalFormat"]
881 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10: GLenum = 0x93DC;
882 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12: GLenum = 0x93DD`"]
883 #[doc = "* **Group:** InternalFormat"]
884 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12: GLenum = 0x93DD;
885 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4: GLenum = 0x93D0`"]
886 #[doc = "* **Group:** InternalFormat"]
887 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4: GLenum = 0x93D0;
888 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4: GLenum = 0x93D1`"]
889 #[doc = "* **Group:** InternalFormat"]
890 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4: GLenum = 0x93D1;
891 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5: GLenum = 0x93D2`"]
892 #[doc = "* **Group:** InternalFormat"]
893 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5: GLenum = 0x93D2;
894 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5: GLenum = 0x93D3`"]
895 #[doc = "* **Group:** InternalFormat"]
896 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5: GLenum = 0x93D3;
897 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6: GLenum = 0x93D4`"]
898 #[doc = "* **Group:** InternalFormat"]
899 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6: GLenum = 0x93D4;
900 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5: GLenum = 0x93D5`"]
901 #[doc = "* **Group:** InternalFormat"]
902 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5: GLenum = 0x93D5;
903 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6: GLenum = 0x93D6`"]
904 #[doc = "* **Group:** InternalFormat"]
905 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6: GLenum = 0x93D6;
906 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8: GLenum = 0x93D7`"]
907 #[doc = "* **Group:** InternalFormat"]
908 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8: GLenum = 0x93D7;
909 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: GLenum = 0x9279`"]
910 #[doc = "* **Group:** InternalFormat"]
911 pub const GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: GLenum = 0x9279;
912 #[doc = "`GL_COMPRESSED_SRGB8_ETC2: GLenum = 0x9275`"]
913 #[doc = "* **Group:** InternalFormat"]
914 pub const GL_COMPRESSED_SRGB8_ETC2: GLenum = 0x9275;
915 #[doc = "`GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: GLenum = 0x9277`"]
916 #[doc = "* **Group:** InternalFormat"]
917 pub const GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: GLenum = 0x9277;
918 #[doc = "`GL_COMPRESSED_SRGB_ALPHA: GLenum = 0x8C49`"]
919 #[doc = "* **Group:** InternalFormat"]
920 pub const GL_COMPRESSED_SRGB_ALPHA: GLenum = 0x8C49;
921 #[doc = "`GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM: GLenum = 0x8E8D`"]
922 #[doc = "* **Group:** InternalFormat"]
923 pub const GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM: GLenum = 0x8E8D;
924 #[doc = "`GL_COMPRESSED_TEXTURE_FORMATS: GLenum = 0x86A3`"]
925 #[doc = "* **Group:** GetPName"]
926 pub const GL_COMPRESSED_TEXTURE_FORMATS: GLenum = 0x86A3;
927 #[doc = "`GL_COMPUTE_SHADER: GLenum = 0x91B9`"]
928 #[doc = "* **Group:** ShaderType"]
929 pub const GL_COMPUTE_SHADER: GLenum = 0x91B9;
930 #[doc = "`GL_COMPUTE_SHADER_BIT: GLbitfield = 0x00000020`"]
931 #[doc = "* **Group:** UseProgramStageMask"]
932 pub const GL_COMPUTE_SHADER_BIT: GLbitfield = 0x00000020;
933 #[doc = "`GL_COMPUTE_SHADER_INVOCATIONS: GLenum = 0x82F5`"]
934 pub const GL_COMPUTE_SHADER_INVOCATIONS: GLenum = 0x82F5;
935 #[doc = "`GL_COMPUTE_SUBROUTINE: GLenum = 0x92ED`"]
936 #[doc = "* **Group:** ProgramInterface"]
937 pub const GL_COMPUTE_SUBROUTINE: GLenum = 0x92ED;
938 #[doc = "`GL_COMPUTE_SUBROUTINE_UNIFORM: GLenum = 0x92F3`"]
939 #[doc = "* **Group:** ProgramInterface"]
940 pub const GL_COMPUTE_SUBROUTINE_UNIFORM: GLenum = 0x92F3;
941 #[doc = "`GL_COMPUTE_TEXTURE: GLenum = 0x82A0`"]
942 #[doc = "* **Group:** InternalFormatPName"]
943 pub const GL_COMPUTE_TEXTURE: GLenum = 0x82A0;
944 #[doc = "`GL_COMPUTE_WORK_GROUP_SIZE: GLenum = 0x8267`"]
945 #[doc = "* **Group:** ProgramPropertyARB"]
946 pub const GL_COMPUTE_WORK_GROUP_SIZE: GLenum = 0x8267;
947 #[doc = "`GL_CONDITION_SATISFIED: GLenum = 0x911C`"]
948 #[doc = "* **Group:** SyncStatus"]
949 pub const GL_CONDITION_SATISFIED: GLenum = 0x911C;
950 #[doc = "`GL_CONSTANT_ALPHA: GLenum = 0x8003`"]
951 #[doc = "* **Group:** BlendingFactor"]
952 pub const GL_CONSTANT_ALPHA: GLenum = 0x8003;
953 #[doc = "`GL_CONSTANT_COLOR: GLenum = 0x8001`"]
954 #[doc = "* **Group:** BlendingFactor"]
955 pub const GL_CONSTANT_COLOR: GLenum = 0x8001;
956 #[doc = "`GL_CONTEXT_COMPATIBILITY_PROFILE_BIT: GLbitfield = 0x00000002`"]
957 #[doc = "* **Group:** ContextProfileMask"]
958 pub const GL_CONTEXT_COMPATIBILITY_PROFILE_BIT: GLbitfield = 0x00000002;
959 #[doc = "`GL_CONTEXT_CORE_PROFILE_BIT: GLbitfield = 0x00000001`"]
960 #[doc = "* **Group:** ContextProfileMask"]
961 pub const GL_CONTEXT_CORE_PROFILE_BIT: GLbitfield = 0x00000001;
962 #[doc = "`GL_CONTEXT_FLAGS: GLenum = 0x821E`"]
963 #[doc = "* **Group:** GetPName"]
964 pub const GL_CONTEXT_FLAGS: GLenum = 0x821E;
965 #[doc = "`GL_CONTEXT_FLAG_DEBUG_BIT: GLbitfield = 0x00000002`"]
966 #[doc = "* **Group:** ContextFlagMask"]
967 pub const GL_CONTEXT_FLAG_DEBUG_BIT: GLbitfield = 0x00000002;
968 #[doc = "`GL_CONTEXT_FLAG_DEBUG_BIT_KHR: GLbitfield = 0x00000002`"]
969 #[doc = "* **Group:** ContextFlagMask"]
970
971 pub const GL_CONTEXT_FLAG_DEBUG_BIT_KHR: GLbitfield = 0x00000002;
972 #[doc = "`GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT: GLbitfield = 0x00000001`"]
973 #[doc = "* **Group:** ContextFlagMask"]
974 pub const GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT: GLbitfield = 0x00000001;
975 #[doc = "`GL_CONTEXT_FLAG_NO_ERROR_BIT: GLbitfield = 0x00000008`"]
976 #[doc = "* **Group:** ContextFlagMask"]
977 pub const GL_CONTEXT_FLAG_NO_ERROR_BIT: GLbitfield = 0x00000008;
978 #[doc = "`GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT: GLbitfield = 0x00000004`"]
979 #[doc = "* **Group:** ContextFlagMask"]
980 pub const GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT: GLbitfield = 0x00000004;
981 #[doc = "`GL_CONTEXT_LOST: GLenum = 0x0507`"]
982 pub const GL_CONTEXT_LOST: GLenum = 0x0507;
983 #[doc = "`GL_CONTEXT_PROFILE_MASK: GLenum = 0x9126`"]
984 #[doc = "* **Group:** GetPName"]
985 pub const GL_CONTEXT_PROFILE_MASK: GLenum = 0x9126;
986 #[doc = "`GL_CONTEXT_RELEASE_BEHAVIOR: GLenum = 0x82FB`"]
987 pub const GL_CONTEXT_RELEASE_BEHAVIOR: GLenum = 0x82FB;
988 #[doc = "`GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH: GLenum = 0x82FC`"]
989 pub const GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH: GLenum = 0x82FC;
990 #[doc = "`GL_COPY: GLenum = 0x1503`"]
991 #[doc = "* **Group:** LogicOp"]
992 pub const GL_COPY: GLenum = 0x1503;
993 #[doc = "`GL_COPY_INVERTED: GLenum = 0x150C`"]
994 #[doc = "* **Group:** LogicOp"]
995 pub const GL_COPY_INVERTED: GLenum = 0x150C;
996 #[doc = "`GL_COPY_READ_BUFFER: GLenum = 0x8F36`"]
997 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
998 pub const GL_COPY_READ_BUFFER: GLenum = 0x8F36;
999 #[doc = "`GL_COPY_READ_BUFFER_BINDING: GLenum = 0x8F36`"]
1000 #[doc = "* **Alias Of:** `GL_COPY_READ_BUFFER`"]
1001 pub const GL_COPY_READ_BUFFER_BINDING: GLenum = 0x8F36;
1002 #[doc = "`GL_COPY_READ_BUFFER_NV: GLenum = 0x8F36`"]
1003
1004 pub const GL_COPY_READ_BUFFER_NV: GLenum = 0x8F36;
1005 #[doc = "`GL_COPY_WRITE_BUFFER: GLenum = 0x8F37`"]
1006 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
1007 pub const GL_COPY_WRITE_BUFFER: GLenum = 0x8F37;
1008 #[doc = "`GL_COPY_WRITE_BUFFER_BINDING: GLenum = 0x8F37`"]
1009 #[doc = "* **Alias Of:** `GL_COPY_WRITE_BUFFER`"]
1010 pub const GL_COPY_WRITE_BUFFER_BINDING: GLenum = 0x8F37;
1011 #[doc = "`GL_COPY_WRITE_BUFFER_NV: GLenum = 0x8F37`"]
1012
1013 pub const GL_COPY_WRITE_BUFFER_NV: GLenum = 0x8F37;
1014 #[doc = "`GL_CULL_FACE: GLenum = 0x0B44`"]
1015 #[doc = "* **Groups:** GetPName, EnableCap"]
1016 pub const GL_CULL_FACE: GLenum = 0x0B44;
1017 #[doc = "`GL_CULL_FACE_MODE: GLenum = 0x0B45`"]
1018 #[doc = "* **Group:** GetPName"]
1019 pub const GL_CULL_FACE_MODE: GLenum = 0x0B45;
1020 #[doc = "`GL_CURRENT_PROGRAM: GLenum = 0x8B8D`"]
1021 #[doc = "* **Group:** GetPName"]
1022 pub const GL_CURRENT_PROGRAM: GLenum = 0x8B8D;
1023 #[doc = "`GL_CURRENT_QUERY: GLenum = 0x8865`"]
1024 #[doc = "* **Group:** QueryParameterName"]
1025 pub const GL_CURRENT_QUERY: GLenum = 0x8865;
1026 #[doc = "`GL_CURRENT_VERTEX_ATTRIB: GLenum = 0x8626`"]
1027 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB"]
1028 pub const GL_CURRENT_VERTEX_ATTRIB: GLenum = 0x8626;
1029 #[doc = "`GL_CW: GLenum = 0x0900`"]
1030 #[doc = "* **Group:** FrontFaceDirection"]
1031 pub const GL_CW: GLenum = 0x0900;
1032 #[doc = "`GL_DARKEN: GLenum = 0x9297`"]
1033 pub const GL_DARKEN: GLenum = 0x9297;
1034 #[doc = "`GL_DEBUG_CALLBACK_FUNCTION: GLenum = 0x8244`"]
1035 #[doc = "* **Group:** GetPointervPName"]
1036 pub const GL_DEBUG_CALLBACK_FUNCTION: GLenum = 0x8244;
1037 #[doc = "`GL_DEBUG_CALLBACK_FUNCTION_ARB: GLenum = 0x8244`"]
1038
1039 pub const GL_DEBUG_CALLBACK_FUNCTION_ARB: GLenum = 0x8244;
1040 #[doc = "`GL_DEBUG_CALLBACK_FUNCTION_KHR: GLenum = 0x8244`"]
1041
1042 pub const GL_DEBUG_CALLBACK_FUNCTION_KHR: GLenum = 0x8244;
1043 #[doc = "`GL_DEBUG_CALLBACK_USER_PARAM: GLenum = 0x8245`"]
1044 #[doc = "* **Group:** GetPointervPName"]
1045 pub const GL_DEBUG_CALLBACK_USER_PARAM: GLenum = 0x8245;
1046 #[doc = "`GL_DEBUG_CALLBACK_USER_PARAM_ARB: GLenum = 0x8245`"]
1047
1048 pub const GL_DEBUG_CALLBACK_USER_PARAM_ARB: GLenum = 0x8245;
1049 #[doc = "`GL_DEBUG_CALLBACK_USER_PARAM_KHR: GLenum = 0x8245`"]
1050
1051 pub const GL_DEBUG_CALLBACK_USER_PARAM_KHR: GLenum = 0x8245;
1052 #[doc = "`GL_DEBUG_GROUP_STACK_DEPTH: GLenum = 0x826D`"]
1053 #[doc = "* **Group:** GetPName"]
1054 pub const GL_DEBUG_GROUP_STACK_DEPTH: GLenum = 0x826D;
1055 #[doc = "`GL_DEBUG_GROUP_STACK_DEPTH_KHR: GLenum = 0x826D`"]
1056
1057 pub const GL_DEBUG_GROUP_STACK_DEPTH_KHR: GLenum = 0x826D;
1058 #[doc = "`GL_DEBUG_LOGGED_MESSAGES: GLenum = 0x9145`"]
1059 pub const GL_DEBUG_LOGGED_MESSAGES: GLenum = 0x9145;
1060 #[doc = "`GL_DEBUG_LOGGED_MESSAGES_ARB: GLenum = 0x9145`"]
1061
1062 pub const GL_DEBUG_LOGGED_MESSAGES_ARB: GLenum = 0x9145;
1063 #[doc = "`GL_DEBUG_LOGGED_MESSAGES_KHR: GLenum = 0x9145`"]
1064
1065 pub const GL_DEBUG_LOGGED_MESSAGES_KHR: GLenum = 0x9145;
1066 #[doc = "`GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH: GLenum = 0x8243`"]
1067 pub const GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH: GLenum = 0x8243;
1068 #[doc = "`GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB: GLenum = 0x8243`"]
1069
1070 pub const GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB: GLenum = 0x8243;
1071 #[doc = "`GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR: GLenum = 0x8243`"]
1072
1073 pub const GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR: GLenum = 0x8243;
1074 #[doc = "`GL_DEBUG_OUTPUT: GLenum = 0x92E0`"]
1075 #[doc = "* **Group:** EnableCap"]
1076 pub const GL_DEBUG_OUTPUT: GLenum = 0x92E0;
1077 #[doc = "`GL_DEBUG_OUTPUT_KHR: GLenum = 0x92E0`"]
1078
1079 pub const GL_DEBUG_OUTPUT_KHR: GLenum = 0x92E0;
1080 #[doc = "`GL_DEBUG_OUTPUT_SYNCHRONOUS: GLenum = 0x8242`"]
1081 #[doc = "* **Group:** EnableCap"]
1082 pub const GL_DEBUG_OUTPUT_SYNCHRONOUS: GLenum = 0x8242;
1083 #[doc = "`GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB: GLenum = 0x8242`"]
1084
1085 pub const GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB: GLenum = 0x8242;
1086 #[doc = "`GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR: GLenum = 0x8242`"]
1087
1088 pub const GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR: GLenum = 0x8242;
1089 #[doc = "`GL_DEBUG_SEVERITY_HIGH: GLenum = 0x9146`"]
1090 #[doc = "* **Group:** DebugSeverity"]
1091 pub const GL_DEBUG_SEVERITY_HIGH: GLenum = 0x9146;
1092 #[doc = "`GL_DEBUG_SEVERITY_HIGH_ARB: GLenum = 0x9146`"]
1093
1094 pub const GL_DEBUG_SEVERITY_HIGH_ARB: GLenum = 0x9146;
1095 #[doc = "`GL_DEBUG_SEVERITY_HIGH_KHR: GLenum = 0x9146`"]
1096
1097 pub const GL_DEBUG_SEVERITY_HIGH_KHR: GLenum = 0x9146;
1098 #[doc = "`GL_DEBUG_SEVERITY_LOW: GLenum = 0x9148`"]
1099 #[doc = "* **Group:** DebugSeverity"]
1100 pub const GL_DEBUG_SEVERITY_LOW: GLenum = 0x9148;
1101 #[doc = "`GL_DEBUG_SEVERITY_LOW_ARB: GLenum = 0x9148`"]
1102
1103 pub const GL_DEBUG_SEVERITY_LOW_ARB: GLenum = 0x9148;
1104 #[doc = "`GL_DEBUG_SEVERITY_LOW_KHR: GLenum = 0x9148`"]
1105
1106 pub const GL_DEBUG_SEVERITY_LOW_KHR: GLenum = 0x9148;
1107 #[doc = "`GL_DEBUG_SEVERITY_MEDIUM: GLenum = 0x9147`"]
1108 #[doc = "* **Group:** DebugSeverity"]
1109 pub const GL_DEBUG_SEVERITY_MEDIUM: GLenum = 0x9147;
1110 #[doc = "`GL_DEBUG_SEVERITY_MEDIUM_ARB: GLenum = 0x9147`"]
1111
1112 pub const GL_DEBUG_SEVERITY_MEDIUM_ARB: GLenum = 0x9147;
1113 #[doc = "`GL_DEBUG_SEVERITY_MEDIUM_KHR: GLenum = 0x9147`"]
1114
1115 pub const GL_DEBUG_SEVERITY_MEDIUM_KHR: GLenum = 0x9147;
1116 #[doc = "`GL_DEBUG_SEVERITY_NOTIFICATION: GLenum = 0x826B`"]
1117 #[doc = "* **Group:** DebugSeverity"]
1118 pub const GL_DEBUG_SEVERITY_NOTIFICATION: GLenum = 0x826B;
1119 #[doc = "`GL_DEBUG_SEVERITY_NOTIFICATION_KHR: GLenum = 0x826B`"]
1120
1121 pub const GL_DEBUG_SEVERITY_NOTIFICATION_KHR: GLenum = 0x826B;
1122 #[doc = "`GL_DEBUG_SOURCE_API: GLenum = 0x8246`"]
1123 #[doc = "* **Group:** DebugSource"]
1124 pub const GL_DEBUG_SOURCE_API: GLenum = 0x8246;
1125 #[doc = "`GL_DEBUG_SOURCE_API_ARB: GLenum = 0x8246`"]
1126
1127 pub const GL_DEBUG_SOURCE_API_ARB: GLenum = 0x8246;
1128 #[doc = "`GL_DEBUG_SOURCE_API_KHR: GLenum = 0x8246`"]
1129
1130 pub const GL_DEBUG_SOURCE_API_KHR: GLenum = 0x8246;
1131 #[doc = "`GL_DEBUG_SOURCE_APPLICATION: GLenum = 0x824A`"]
1132 #[doc = "* **Group:** DebugSource"]
1133 pub const GL_DEBUG_SOURCE_APPLICATION: GLenum = 0x824A;
1134 #[doc = "`GL_DEBUG_SOURCE_APPLICATION_ARB: GLenum = 0x824A`"]
1135
1136 pub const GL_DEBUG_SOURCE_APPLICATION_ARB: GLenum = 0x824A;
1137 #[doc = "`GL_DEBUG_SOURCE_APPLICATION_KHR: GLenum = 0x824A`"]
1138
1139 pub const GL_DEBUG_SOURCE_APPLICATION_KHR: GLenum = 0x824A;
1140 #[doc = "`GL_DEBUG_SOURCE_OTHER: GLenum = 0x824B`"]
1141 #[doc = "* **Group:** DebugSource"]
1142 pub const GL_DEBUG_SOURCE_OTHER: GLenum = 0x824B;
1143 #[doc = "`GL_DEBUG_SOURCE_OTHER_ARB: GLenum = 0x824B`"]
1144
1145 pub const GL_DEBUG_SOURCE_OTHER_ARB: GLenum = 0x824B;
1146 #[doc = "`GL_DEBUG_SOURCE_OTHER_KHR: GLenum = 0x824B`"]
1147
1148 pub const GL_DEBUG_SOURCE_OTHER_KHR: GLenum = 0x824B;
1149 #[doc = "`GL_DEBUG_SOURCE_SHADER_COMPILER: GLenum = 0x8248`"]
1150 #[doc = "* **Group:** DebugSource"]
1151 pub const GL_DEBUG_SOURCE_SHADER_COMPILER: GLenum = 0x8248;
1152 #[doc = "`GL_DEBUG_SOURCE_SHADER_COMPILER_ARB: GLenum = 0x8248`"]
1153
1154 pub const GL_DEBUG_SOURCE_SHADER_COMPILER_ARB: GLenum = 0x8248;
1155 #[doc = "`GL_DEBUG_SOURCE_SHADER_COMPILER_KHR: GLenum = 0x8248`"]
1156
1157 pub const GL_DEBUG_SOURCE_SHADER_COMPILER_KHR: GLenum = 0x8248;
1158 #[doc = "`GL_DEBUG_SOURCE_THIRD_PARTY: GLenum = 0x8249`"]
1159 #[doc = "* **Group:** DebugSource"]
1160 pub const GL_DEBUG_SOURCE_THIRD_PARTY: GLenum = 0x8249;
1161 #[doc = "`GL_DEBUG_SOURCE_THIRD_PARTY_ARB: GLenum = 0x8249`"]
1162
1163 pub const GL_DEBUG_SOURCE_THIRD_PARTY_ARB: GLenum = 0x8249;
1164 #[doc = "`GL_DEBUG_SOURCE_THIRD_PARTY_KHR: GLenum = 0x8249`"]
1165
1166 pub const GL_DEBUG_SOURCE_THIRD_PARTY_KHR: GLenum = 0x8249;
1167 #[doc = "`GL_DEBUG_SOURCE_WINDOW_SYSTEM: GLenum = 0x8247`"]
1168 #[doc = "* **Group:** DebugSource"]
1169 pub const GL_DEBUG_SOURCE_WINDOW_SYSTEM: GLenum = 0x8247;
1170 #[doc = "`GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB: GLenum = 0x8247`"]
1171
1172 pub const GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB: GLenum = 0x8247;
1173 #[doc = "`GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR: GLenum = 0x8247`"]
1174
1175 pub const GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR: GLenum = 0x8247;
1176 #[doc = "`GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: GLenum = 0x824D`"]
1177 #[doc = "* **Group:** DebugType"]
1178 pub const GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: GLenum = 0x824D;
1179 #[doc = "`GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB: GLenum = 0x824D`"]
1180
1181 pub const GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB: GLenum = 0x824D;
1182 #[doc = "`GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR: GLenum = 0x824D`"]
1183
1184 pub const GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR: GLenum = 0x824D;
1185 #[doc = "`GL_DEBUG_TYPE_ERROR: GLenum = 0x824C`"]
1186 #[doc = "* **Group:** DebugType"]
1187 pub const GL_DEBUG_TYPE_ERROR: GLenum = 0x824C;
1188 #[doc = "`GL_DEBUG_TYPE_ERROR_ARB: GLenum = 0x824C`"]
1189
1190 pub const GL_DEBUG_TYPE_ERROR_ARB: GLenum = 0x824C;
1191 #[doc = "`GL_DEBUG_TYPE_ERROR_KHR: GLenum = 0x824C`"]
1192
1193 pub const GL_DEBUG_TYPE_ERROR_KHR: GLenum = 0x824C;
1194 #[doc = "`GL_DEBUG_TYPE_MARKER: GLenum = 0x8268`"]
1195 #[doc = "* **Group:** DebugType"]
1196 pub const GL_DEBUG_TYPE_MARKER: GLenum = 0x8268;
1197 #[doc = "`GL_DEBUG_TYPE_MARKER_KHR: GLenum = 0x8268`"]
1198
1199 pub const GL_DEBUG_TYPE_MARKER_KHR: GLenum = 0x8268;
1200 #[doc = "`GL_DEBUG_TYPE_OTHER: GLenum = 0x8251`"]
1201 #[doc = "* **Group:** DebugType"]
1202 pub const GL_DEBUG_TYPE_OTHER: GLenum = 0x8251;
1203 #[doc = "`GL_DEBUG_TYPE_OTHER_ARB: GLenum = 0x8251`"]
1204
1205 pub const GL_DEBUG_TYPE_OTHER_ARB: GLenum = 0x8251;
1206 #[doc = "`GL_DEBUG_TYPE_OTHER_KHR: GLenum = 0x8251`"]
1207
1208 pub const GL_DEBUG_TYPE_OTHER_KHR: GLenum = 0x8251;
1209 #[doc = "`GL_DEBUG_TYPE_PERFORMANCE: GLenum = 0x8250`"]
1210 #[doc = "* **Group:** DebugType"]
1211 pub const GL_DEBUG_TYPE_PERFORMANCE: GLenum = 0x8250;
1212 #[doc = "`GL_DEBUG_TYPE_PERFORMANCE_ARB: GLenum = 0x8250`"]
1213
1214 pub const GL_DEBUG_TYPE_PERFORMANCE_ARB: GLenum = 0x8250;
1215 #[doc = "`GL_DEBUG_TYPE_PERFORMANCE_KHR: GLenum = 0x8250`"]
1216
1217 pub const GL_DEBUG_TYPE_PERFORMANCE_KHR: GLenum = 0x8250;
1218 #[doc = "`GL_DEBUG_TYPE_POP_GROUP: GLenum = 0x826A`"]
1219 #[doc = "* **Group:** DebugType"]
1220 pub const GL_DEBUG_TYPE_POP_GROUP: GLenum = 0x826A;
1221 #[doc = "`GL_DEBUG_TYPE_POP_GROUP_KHR: GLenum = 0x826A`"]
1222
1223 pub const GL_DEBUG_TYPE_POP_GROUP_KHR: GLenum = 0x826A;
1224 #[doc = "`GL_DEBUG_TYPE_PORTABILITY: GLenum = 0x824F`"]
1225 #[doc = "* **Group:** DebugType"]
1226 pub const GL_DEBUG_TYPE_PORTABILITY: GLenum = 0x824F;
1227 #[doc = "`GL_DEBUG_TYPE_PORTABILITY_ARB: GLenum = 0x824F`"]
1228
1229 pub const GL_DEBUG_TYPE_PORTABILITY_ARB: GLenum = 0x824F;
1230 #[doc = "`GL_DEBUG_TYPE_PORTABILITY_KHR: GLenum = 0x824F`"]
1231
1232 pub const GL_DEBUG_TYPE_PORTABILITY_KHR: GLenum = 0x824F;
1233 #[doc = "`GL_DEBUG_TYPE_PUSH_GROUP: GLenum = 0x8269`"]
1234 #[doc = "* **Group:** DebugType"]
1235 pub const GL_DEBUG_TYPE_PUSH_GROUP: GLenum = 0x8269;
1236 #[doc = "`GL_DEBUG_TYPE_PUSH_GROUP_KHR: GLenum = 0x8269`"]
1237
1238 pub const GL_DEBUG_TYPE_PUSH_GROUP_KHR: GLenum = 0x8269;
1239 #[doc = "`GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: GLenum = 0x824E`"]
1240 #[doc = "* **Group:** DebugType"]
1241 pub const GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: GLenum = 0x824E;
1242 #[doc = "`GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB: GLenum = 0x824E`"]
1243
1244 pub const GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB: GLenum = 0x824E;
1245 #[doc = "`GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR: GLenum = 0x824E`"]
1246
1247 pub const GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR: GLenum = 0x824E;
1248 #[doc = "`GL_DECR: GLenum = 0x1E03`"]
1249 #[doc = "* **Group:** StencilOp"]
1250 pub const GL_DECR: GLenum = 0x1E03;
1251 #[doc = "`GL_DECR_WRAP: GLenum = 0x8508`"]
1252 #[doc = "* **Group:** StencilOp"]
1253 pub const GL_DECR_WRAP: GLenum = 0x8508;
1254 #[doc = "`GL_DELETE_STATUS: GLenum = 0x8B80`"]
1255 #[doc = "* **Groups:** ProgramPropertyARB, ShaderParameterName"]
1256 pub const GL_DELETE_STATUS: GLenum = 0x8B80;
1257 #[doc = "`GL_DEPTH: GLenum = 0x1801`"]
1258 #[doc = "* **Groups:** Buffer, PixelCopyType, InvalidateFramebufferAttachment"]
1259 pub const GL_DEPTH: GLenum = 0x1801;
1260 #[doc = "`GL_DEPTH24_STENCIL8: GLenum = 0x88F0`"]
1261 #[doc = "* **Group:** InternalFormat"]
1262 pub const GL_DEPTH24_STENCIL8: GLenum = 0x88F0;
1263 #[doc = "`GL_DEPTH32F_STENCIL8: GLenum = 0x8CAD`"]
1264 #[doc = "* **Group:** InternalFormat"]
1265 pub const GL_DEPTH32F_STENCIL8: GLenum = 0x8CAD;
1266 #[doc = "`GL_DEPTH_ATTACHMENT: GLenum = 0x8D00`"]
1267 #[doc = "* **Groups:** InvalidateFramebufferAttachment, FramebufferAttachment"]
1268 pub const GL_DEPTH_ATTACHMENT: GLenum = 0x8D00;
1269 #[doc = "`GL_DEPTH_BITS: GLenum = 0x0D56`"]
1270 #[doc = "* **Group:** GetPName"]
1271 pub const GL_DEPTH_BITS: GLenum = 0x0D56;
1272 #[doc = "`GL_DEPTH_BUFFER_BIT: GLbitfield = 0x00000100`"]
1273 #[doc = "* **Groups:** ClearBufferMask, AttribMask"]
1274 pub const GL_DEPTH_BUFFER_BIT: GLbitfield = 0x00000100;
1275 #[doc = "`GL_DEPTH_CLAMP: GLenum = 0x864F`"]
1276 #[doc = "* **Group:** EnableCap"]
1277 pub const GL_DEPTH_CLAMP: GLenum = 0x864F;
1278 #[doc = "`GL_DEPTH_CLEAR_VALUE: GLenum = 0x0B73`"]
1279 #[doc = "* **Group:** GetPName"]
1280 pub const GL_DEPTH_CLEAR_VALUE: GLenum = 0x0B73;
1281 #[doc = "`GL_DEPTH_COMPONENT: GLenum = 0x1902`"]
1282 #[doc = "* **Groups:** InternalFormat, PixelFormat"]
1283 pub const GL_DEPTH_COMPONENT: GLenum = 0x1902;
1284 #[doc = "`GL_DEPTH_COMPONENT16: GLenum = 0x81A5`"]
1285 #[doc = "* **Group:** InternalFormat"]
1286 pub const GL_DEPTH_COMPONENT16: GLenum = 0x81A5;
1287 #[doc = "`GL_DEPTH_COMPONENT24: GLenum = 0x81A6`"]
1288 pub const GL_DEPTH_COMPONENT24: GLenum = 0x81A6;
1289 #[doc = "`GL_DEPTH_COMPONENT32: GLenum = 0x81A7`"]
1290 pub const GL_DEPTH_COMPONENT32: GLenum = 0x81A7;
1291 #[doc = "`GL_DEPTH_COMPONENT32F: GLenum = 0x8CAC`"]
1292 #[doc = "* **Group:** InternalFormat"]
1293 pub const GL_DEPTH_COMPONENT32F: GLenum = 0x8CAC;
1294 #[doc = "`GL_DEPTH_COMPONENTS: GLenum = 0x8284`"]
1295 pub const GL_DEPTH_COMPONENTS: GLenum = 0x8284;
1296 #[doc = "`GL_DEPTH_FUNC: GLenum = 0x0B74`"]
1297 #[doc = "* **Group:** GetPName"]
1298 pub const GL_DEPTH_FUNC: GLenum = 0x0B74;
1299 #[doc = "`GL_DEPTH_RANGE: GLenum = 0x0B70`"]
1300 #[doc = "* **Group:** GetPName"]
1301 pub const GL_DEPTH_RANGE: GLenum = 0x0B70;
1302 #[doc = "`GL_DEPTH_RENDERABLE: GLenum = 0x8287`"]
1303 #[doc = "* **Group:** InternalFormatPName"]
1304 pub const GL_DEPTH_RENDERABLE: GLenum = 0x8287;
1305 #[doc = "`GL_DEPTH_STENCIL: GLenum = 0x84F9`"]
1306 #[doc = "* **Groups:** InternalFormat, PixelFormat"]
1307 pub const GL_DEPTH_STENCIL: GLenum = 0x84F9;
1308 #[doc = "`GL_DEPTH_STENCIL_ATTACHMENT: GLenum = 0x821A`"]
1309 #[doc = "* **Group:** InvalidateFramebufferAttachment"]
1310 pub const GL_DEPTH_STENCIL_ATTACHMENT: GLenum = 0x821A;
1311 #[doc = "`GL_DEPTH_STENCIL_TEXTURE_MODE: GLenum = 0x90EA`"]
1312 #[doc = "* **Group:** TextureParameterName"]
1313 pub const GL_DEPTH_STENCIL_TEXTURE_MODE: GLenum = 0x90EA;
1314 #[doc = "`GL_DEPTH_TEST: GLenum = 0x0B71`"]
1315 #[doc = "* **Groups:** GetPName, EnableCap"]
1316 pub const GL_DEPTH_TEST: GLenum = 0x0B71;
1317 #[doc = "`GL_DEPTH_WRITEMASK: GLenum = 0x0B72`"]
1318 #[doc = "* **Group:** GetPName"]
1319 pub const GL_DEPTH_WRITEMASK: GLenum = 0x0B72;
1320 #[doc = "`GL_DIFFERENCE: GLenum = 0x929E`"]
1321 pub const GL_DIFFERENCE: GLenum = 0x929E;
1322 #[doc = "`GL_DISPATCH_INDIRECT_BUFFER: GLenum = 0x90EE`"]
1323 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
1324 pub const GL_DISPATCH_INDIRECT_BUFFER: GLenum = 0x90EE;
1325 #[doc = "`GL_DISPATCH_INDIRECT_BUFFER_BINDING: GLenum = 0x90EF`"]
1326 #[doc = "* **Group:** GetPName"]
1327 pub const GL_DISPATCH_INDIRECT_BUFFER_BINDING: GLenum = 0x90EF;
1328 #[doc = "`GL_DITHER: GLenum = 0x0BD0`"]
1329 #[doc = "* **Groups:** GetPName, EnableCap"]
1330 pub const GL_DITHER: GLenum = 0x0BD0;
1331 #[doc = "`GL_DONT_CARE: GLenum = 0x1100`"]
1332 #[doc = "* **Groups:** DebugSeverity, HintMode, DebugSource, DebugType"]
1333 pub const GL_DONT_CARE: GLenum = 0x1100;
1334 #[doc = "`GL_DOUBLE: GLenum = 0x140A`"]
1335 #[doc = "* **Groups:** VertexAttribLType, MapTypeNV, SecondaryColorPointerTypeIBM, WeightPointerTypeARB, TangentPointerTypeEXT, BinormalPointerTypeEXT, FogCoordinatePointerType, FogPointerTypeEXT, FogPointerTypeIBM, IndexPointerType, NormalPointerType, TexCoordPointerType, VertexPointerType, VertexAttribType, AttributeType, UniformType, VertexAttribPointerType, GlslTypeToken"]
1336 pub const GL_DOUBLE: GLenum = 0x140A;
1337 #[doc = "`GL_DOUBLEBUFFER: GLenum = 0x0C32`"]
1338 #[doc = "* **Groups:** GetFramebufferParameter, GetPName"]
1339 pub const GL_DOUBLEBUFFER: GLenum = 0x0C32;
1340 #[doc = "`GL_DOUBLE_MAT2: GLenum = 0x8F46`"]
1341 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1342 pub const GL_DOUBLE_MAT2: GLenum = 0x8F46;
1343 #[doc = "`GL_DOUBLE_MAT2x3: GLenum = 0x8F49`"]
1344 #[doc = "* **Groups:** UniformType, AttributeType"]
1345 pub const GL_DOUBLE_MAT2x3: GLenum = 0x8F49;
1346 #[doc = "`GL_DOUBLE_MAT2x4: GLenum = 0x8F4A`"]
1347 #[doc = "* **Groups:** UniformType, AttributeType"]
1348 pub const GL_DOUBLE_MAT2x4: GLenum = 0x8F4A;
1349 #[doc = "`GL_DOUBLE_MAT3: GLenum = 0x8F47`"]
1350 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1351 pub const GL_DOUBLE_MAT3: GLenum = 0x8F47;
1352 #[doc = "`GL_DOUBLE_MAT3x2: GLenum = 0x8F4B`"]
1353 #[doc = "* **Groups:** UniformType, AttributeType"]
1354 pub const GL_DOUBLE_MAT3x2: GLenum = 0x8F4B;
1355 #[doc = "`GL_DOUBLE_MAT3x4: GLenum = 0x8F4C`"]
1356 #[doc = "* **Groups:** UniformType, AttributeType"]
1357 pub const GL_DOUBLE_MAT3x4: GLenum = 0x8F4C;
1358 #[doc = "`GL_DOUBLE_MAT4: GLenum = 0x8F48`"]
1359 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1360 pub const GL_DOUBLE_MAT4: GLenum = 0x8F48;
1361 #[doc = "`GL_DOUBLE_MAT4x2: GLenum = 0x8F4D`"]
1362 #[doc = "* **Groups:** UniformType, AttributeType"]
1363 pub const GL_DOUBLE_MAT4x2: GLenum = 0x8F4D;
1364 #[doc = "`GL_DOUBLE_MAT4x3: GLenum = 0x8F4E`"]
1365 #[doc = "* **Groups:** UniformType, AttributeType"]
1366 pub const GL_DOUBLE_MAT4x3: GLenum = 0x8F4E;
1367 #[doc = "`GL_DOUBLE_VEC2: GLenum = 0x8FFC`"]
1368 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1369 pub const GL_DOUBLE_VEC2: GLenum = 0x8FFC;
1370 #[doc = "`GL_DOUBLE_VEC3: GLenum = 0x8FFD`"]
1371 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1372 pub const GL_DOUBLE_VEC3: GLenum = 0x8FFD;
1373 #[doc = "`GL_DOUBLE_VEC4: GLenum = 0x8FFE`"]
1374 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1375 pub const GL_DOUBLE_VEC4: GLenum = 0x8FFE;
1376 #[doc = "`GL_DRAW_BUFFER: GLenum = 0x0C01`"]
1377 #[doc = "* **Group:** GetPName"]
1378 pub const GL_DRAW_BUFFER: GLenum = 0x0C01;
1379 #[doc = "`GL_DRAW_BUFFER0: GLenum = 0x8825`"]
1380 pub const GL_DRAW_BUFFER0: GLenum = 0x8825;
1381 #[doc = "`GL_DRAW_BUFFER1: GLenum = 0x8826`"]
1382 pub const GL_DRAW_BUFFER1: GLenum = 0x8826;
1383 #[doc = "`GL_DRAW_BUFFER10: GLenum = 0x882F`"]
1384 pub const GL_DRAW_BUFFER10: GLenum = 0x882F;
1385 #[doc = "`GL_DRAW_BUFFER11: GLenum = 0x8830`"]
1386 pub const GL_DRAW_BUFFER11: GLenum = 0x8830;
1387 #[doc = "`GL_DRAW_BUFFER12: GLenum = 0x8831`"]
1388 pub const GL_DRAW_BUFFER12: GLenum = 0x8831;
1389 #[doc = "`GL_DRAW_BUFFER13: GLenum = 0x8832`"]
1390 pub const GL_DRAW_BUFFER13: GLenum = 0x8832;
1391 #[doc = "`GL_DRAW_BUFFER14: GLenum = 0x8833`"]
1392 pub const GL_DRAW_BUFFER14: GLenum = 0x8833;
1393 #[doc = "`GL_DRAW_BUFFER15: GLenum = 0x8834`"]
1394 pub const GL_DRAW_BUFFER15: GLenum = 0x8834;
1395 #[doc = "`GL_DRAW_BUFFER2: GLenum = 0x8827`"]
1396 pub const GL_DRAW_BUFFER2: GLenum = 0x8827;
1397 #[doc = "`GL_DRAW_BUFFER3: GLenum = 0x8828`"]
1398 pub const GL_DRAW_BUFFER3: GLenum = 0x8828;
1399 #[doc = "`GL_DRAW_BUFFER4: GLenum = 0x8829`"]
1400 pub const GL_DRAW_BUFFER4: GLenum = 0x8829;
1401 #[doc = "`GL_DRAW_BUFFER5: GLenum = 0x882A`"]
1402 pub const GL_DRAW_BUFFER5: GLenum = 0x882A;
1403 #[doc = "`GL_DRAW_BUFFER6: GLenum = 0x882B`"]
1404 pub const GL_DRAW_BUFFER6: GLenum = 0x882B;
1405 #[doc = "`GL_DRAW_BUFFER7: GLenum = 0x882C`"]
1406 pub const GL_DRAW_BUFFER7: GLenum = 0x882C;
1407 #[doc = "`GL_DRAW_BUFFER8: GLenum = 0x882D`"]
1408 pub const GL_DRAW_BUFFER8: GLenum = 0x882D;
1409 #[doc = "`GL_DRAW_BUFFER9: GLenum = 0x882E`"]
1410 pub const GL_DRAW_BUFFER9: GLenum = 0x882E;
1411 #[doc = "`GL_DRAW_FRAMEBUFFER: GLenum = 0x8CA9`"]
1412 #[doc = "* **Groups:** CheckFramebufferStatusTarget, FramebufferTarget"]
1413 pub const GL_DRAW_FRAMEBUFFER: GLenum = 0x8CA9;
1414 #[doc = "`GL_DRAW_FRAMEBUFFER_BINDING: GLenum = 0x8CA6`"]
1415 #[doc = "* **Group:** GetPName"]
1416 pub const GL_DRAW_FRAMEBUFFER_BINDING: GLenum = 0x8CA6;
1417 #[doc = "`GL_DRAW_INDIRECT_BUFFER: GLenum = 0x8F3F`"]
1418 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
1419 pub const GL_DRAW_INDIRECT_BUFFER: GLenum = 0x8F3F;
1420 #[doc = "`GL_DRAW_INDIRECT_BUFFER_BINDING: GLenum = 0x8F43`"]
1421 pub const GL_DRAW_INDIRECT_BUFFER_BINDING: GLenum = 0x8F43;
1422 #[doc = "`GL_DST_ALPHA: GLenum = 0x0304`"]
1423 #[doc = "* **Group:** BlendingFactor"]
1424 pub const GL_DST_ALPHA: GLenum = 0x0304;
1425 #[doc = "`GL_DST_COLOR: GLenum = 0x0306`"]
1426 #[doc = "* **Group:** BlendingFactor"]
1427 pub const GL_DST_COLOR: GLenum = 0x0306;
1428 #[doc = "`GL_DYNAMIC_COPY: GLenum = 0x88EA`"]
1429 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
1430 pub const GL_DYNAMIC_COPY: GLenum = 0x88EA;
1431 #[doc = "`GL_DYNAMIC_DRAW: GLenum = 0x88E8`"]
1432 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
1433 pub const GL_DYNAMIC_DRAW: GLenum = 0x88E8;
1434 #[doc = "`GL_DYNAMIC_READ: GLenum = 0x88E9`"]
1435 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
1436 pub const GL_DYNAMIC_READ: GLenum = 0x88E9;
1437 #[doc = "`GL_DYNAMIC_STORAGE_BIT: GLbitfield = 0x0100`"]
1438 #[doc = "* **Group:** BufferStorageMask"]
1439 pub const GL_DYNAMIC_STORAGE_BIT: GLbitfield = 0x0100;
1440 #[doc = "`GL_DYNAMIC_STORAGE_BIT_EXT: GLbitfield = 0x0100`"]
1441 #[doc = "* **Group:** BufferStorageMask"]
1442
1443 pub const GL_DYNAMIC_STORAGE_BIT_EXT: GLbitfield = 0x0100;
1444 #[doc = "`GL_ELEMENT_ARRAY_BARRIER_BIT: GLbitfield = 0x00000002`"]
1445 #[doc = "* **Group:** MemoryBarrierMask"]
1446 pub const GL_ELEMENT_ARRAY_BARRIER_BIT: GLbitfield = 0x00000002;
1447 #[doc = "`GL_ELEMENT_ARRAY_BUFFER: GLenum = 0x8893`"]
1448 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
1449 pub const GL_ELEMENT_ARRAY_BUFFER: GLenum = 0x8893;
1450 #[doc = "`GL_ELEMENT_ARRAY_BUFFER_BINDING: GLenum = 0x8895`"]
1451 #[doc = "* **Group:** GetPName"]
1452 pub const GL_ELEMENT_ARRAY_BUFFER_BINDING: GLenum = 0x8895;
1453 #[doc = "`GL_EQUAL: GLenum = 0x0202`"]
1454 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
1455 pub const GL_EQUAL: GLenum = 0x0202;
1456 #[doc = "`GL_EQUIV: GLenum = 0x1509`"]
1457 #[doc = "* **Group:** LogicOp"]
1458 pub const GL_EQUIV: GLenum = 0x1509;
1459 #[doc = "`GL_EXCLUSION: GLenum = 0x92A0`"]
1460 pub const GL_EXCLUSION: GLenum = 0x92A0;
1461 #[doc = "`GL_EXTENSIONS: GLenum = 0x1F03`"]
1462 #[doc = "* **Group:** StringName"]
1463 pub const GL_EXTENSIONS: GLenum = 0x1F03;
1464 #[doc = "`GL_FALSE: GLenum = 0`"]
1465 #[doc = "* **Groups:** Boolean, VertexShaderWriteMaskEXT, ClampColorModeARB"]
1466 pub const GL_FALSE: GLenum = 0;
1467 #[doc = "`GL_FASTEST: GLenum = 0x1101`"]
1468 #[doc = "* **Group:** HintMode"]
1469 pub const GL_FASTEST: GLenum = 0x1101;
1470 #[doc = "`GL_FILL: GLenum = 0x1B02`"]
1471 #[doc = "* **Groups:** PolygonMode, MeshMode2"]
1472 pub const GL_FILL: GLenum = 0x1B02;
1473 #[doc = "`GL_FILTER: GLenum = 0x829A`"]
1474 #[doc = "* **Group:** InternalFormatPName"]
1475 pub const GL_FILTER: GLenum = 0x829A;
1476 #[doc = "`GL_FIRST_VERTEX_CONVENTION: GLenum = 0x8E4D`"]
1477 #[doc = "* **Group:** VertexProvokingMode"]
1478 pub const GL_FIRST_VERTEX_CONVENTION: GLenum = 0x8E4D;
1479 #[doc = "`GL_FIXED: GLenum = 0x140C`"]
1480 #[doc = "* **Groups:** VertexAttribPointerType, VertexAttribType"]
1481 pub const GL_FIXED: GLenum = 0x140C;
1482 #[doc = "`GL_FIXED_ONLY: GLenum = 0x891D`"]
1483 #[doc = "* **Group:** ClampColorModeARB"]
1484 pub const GL_FIXED_ONLY: GLenum = 0x891D;
1485 #[doc = "`GL_FLOAT: GLenum = 0x1406`"]
1486 #[doc = "* **Groups:** GlslTypeToken, MapTypeNV, SecondaryColorPointerTypeIBM, WeightPointerTypeARB, VertexWeightPointerTypeEXT, TangentPointerTypeEXT, BinormalPointerTypeEXT, FogCoordinatePointerType, FogPointerTypeEXT, FogPointerTypeIBM, IndexPointerType, ListNameType, NormalPointerType, PixelType, TexCoordPointerType, VertexPointerType, VertexAttribType, AttributeType, UniformType, VertexAttribPointerType"]
1487 pub const GL_FLOAT: GLenum = 0x1406;
1488 #[doc = "`GL_FLOAT_32_UNSIGNED_INT_24_8_REV: GLenum = 0x8DAD`"]
1489 pub const GL_FLOAT_32_UNSIGNED_INT_24_8_REV: GLenum = 0x8DAD;
1490 #[doc = "`GL_FLOAT_MAT2: GLenum = 0x8B5A`"]
1491 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1492 pub const GL_FLOAT_MAT2: GLenum = 0x8B5A;
1493 #[doc = "`GL_FLOAT_MAT2x3: GLenum = 0x8B65`"]
1494 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1495 pub const GL_FLOAT_MAT2x3: GLenum = 0x8B65;
1496 #[doc = "`GL_FLOAT_MAT2x4: GLenum = 0x8B66`"]
1497 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1498 pub const GL_FLOAT_MAT2x4: GLenum = 0x8B66;
1499 #[doc = "`GL_FLOAT_MAT3: GLenum = 0x8B5B`"]
1500 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1501 pub const GL_FLOAT_MAT3: GLenum = 0x8B5B;
1502 #[doc = "`GL_FLOAT_MAT3x2: GLenum = 0x8B67`"]
1503 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1504 pub const GL_FLOAT_MAT3x2: GLenum = 0x8B67;
1505 #[doc = "`GL_FLOAT_MAT3x4: GLenum = 0x8B68`"]
1506 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1507 pub const GL_FLOAT_MAT3x4: GLenum = 0x8B68;
1508 #[doc = "`GL_FLOAT_MAT4: GLenum = 0x8B5C`"]
1509 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1510 pub const GL_FLOAT_MAT4: GLenum = 0x8B5C;
1511 #[doc = "`GL_FLOAT_MAT4x2: GLenum = 0x8B69`"]
1512 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1513 pub const GL_FLOAT_MAT4x2: GLenum = 0x8B69;
1514 #[doc = "`GL_FLOAT_MAT4x3: GLenum = 0x8B6A`"]
1515 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1516 pub const GL_FLOAT_MAT4x3: GLenum = 0x8B6A;
1517 #[doc = "`GL_FLOAT_VEC2: GLenum = 0x8B50`"]
1518 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1519 pub const GL_FLOAT_VEC2: GLenum = 0x8B50;
1520 #[doc = "`GL_FLOAT_VEC3: GLenum = 0x8B51`"]
1521 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1522 pub const GL_FLOAT_VEC3: GLenum = 0x8B51;
1523 #[doc = "`GL_FLOAT_VEC4: GLenum = 0x8B52`"]
1524 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1525 pub const GL_FLOAT_VEC4: GLenum = 0x8B52;
1526 #[doc = "`GL_FRACTIONAL_EVEN: GLenum = 0x8E7C`"]
1527 pub const GL_FRACTIONAL_EVEN: GLenum = 0x8E7C;
1528 #[doc = "`GL_FRACTIONAL_ODD: GLenum = 0x8E7B`"]
1529 pub const GL_FRACTIONAL_ODD: GLenum = 0x8E7B;
1530 #[doc = "`GL_FRAGMENT_INTERPOLATION_OFFSET_BITS: GLenum = 0x8E5D`"]
1531 pub const GL_FRAGMENT_INTERPOLATION_OFFSET_BITS: GLenum = 0x8E5D;
1532 #[doc = "`GL_FRAGMENT_SHADER: GLenum = 0x8B30`"]
1533 #[doc = "* **Groups:** PipelineParameterName, ShaderType"]
1534 pub const GL_FRAGMENT_SHADER: GLenum = 0x8B30;
1535 #[doc = "`GL_FRAGMENT_SHADER_BIT: GLbitfield = 0x00000002`"]
1536 #[doc = "* **Group:** UseProgramStageMask"]
1537 pub const GL_FRAGMENT_SHADER_BIT: GLbitfield = 0x00000002;
1538 #[doc = "`GL_FRAGMENT_SHADER_DERIVATIVE_HINT: GLenum = 0x8B8B`"]
1539 #[doc = "* **Groups:** HintTarget, GetPName"]
1540 pub const GL_FRAGMENT_SHADER_DERIVATIVE_HINT: GLenum = 0x8B8B;
1541 #[doc = "`GL_FRAGMENT_SHADER_INVOCATIONS: GLenum = 0x82F4`"]
1542 pub const GL_FRAGMENT_SHADER_INVOCATIONS: GLenum = 0x82F4;
1543 #[doc = "`GL_FRAGMENT_SUBROUTINE: GLenum = 0x92EC`"]
1544 #[doc = "* **Group:** ProgramInterface"]
1545 pub const GL_FRAGMENT_SUBROUTINE: GLenum = 0x92EC;
1546 #[doc = "`GL_FRAGMENT_SUBROUTINE_UNIFORM: GLenum = 0x92F2`"]
1547 #[doc = "* **Group:** ProgramInterface"]
1548 pub const GL_FRAGMENT_SUBROUTINE_UNIFORM: GLenum = 0x92F2;
1549 #[doc = "`GL_FRAGMENT_TEXTURE: GLenum = 0x829F`"]
1550 #[doc = "* **Group:** InternalFormatPName"]
1551 pub const GL_FRAGMENT_TEXTURE: GLenum = 0x829F;
1552 #[doc = "`GL_FRAMEBUFFER: GLenum = 0x8D40`"]
1553 #[doc = "* **Groups:** ObjectIdentifier, FramebufferTarget, CheckFramebufferStatusTarget"]
1554 pub const GL_FRAMEBUFFER: GLenum = 0x8D40;
1555 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: GLenum = 0x8215`"]
1556 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1557 pub const GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: GLenum = 0x8215;
1558 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: GLenum = 0x8214`"]
1559 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1560 pub const GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: GLenum = 0x8214;
1561 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: GLenum = 0x8210`"]
1562 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1563 pub const GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: GLenum = 0x8210;
1564 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: GLenum = 0x8211`"]
1565 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1566 pub const GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: GLenum = 0x8211;
1567 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: GLenum = 0x8216`"]
1568 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1569 pub const GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: GLenum = 0x8216;
1570 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: GLenum = 0x8213`"]
1571 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1572 pub const GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: GLenum = 0x8213;
1573 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_LAYERED: GLenum = 0x8DA7`"]
1574 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1575 pub const GL_FRAMEBUFFER_ATTACHMENT_LAYERED: GLenum = 0x8DA7;
1576 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum = 0x8CD1`"]
1577 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1578 pub const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum = 0x8CD1;
1579 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum = 0x8CD0`"]
1580 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1581 pub const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum = 0x8CD0;
1582 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE: GLenum = 0x8212`"]
1583 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1584 pub const GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE: GLenum = 0x8212;
1585 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: GLenum = 0x8217`"]
1586 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1587 pub const GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: GLenum = 0x8217;
1588 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum = 0x8CD3`"]
1589 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1590 pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum = 0x8CD3;
1591 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: GLenum = 0x8CD4`"]
1592 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1593 pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: GLenum = 0x8CD4;
1594 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum = 0x8CD2`"]
1595 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1596 pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum = 0x8CD2;
1597 #[doc = "`GL_FRAMEBUFFER_BARRIER_BIT: GLbitfield = 0x00000400`"]
1598 #[doc = "* **Group:** MemoryBarrierMask"]
1599 pub const GL_FRAMEBUFFER_BARRIER_BIT: GLbitfield = 0x00000400;
1600 #[doc = "`GL_FRAMEBUFFER_BINDING: GLenum = 0x8CA6`"]
1601 pub const GL_FRAMEBUFFER_BINDING: GLenum = 0x8CA6;
1602 #[doc = "`GL_FRAMEBUFFER_BLEND: GLenum = 0x828B`"]
1603 #[doc = "* **Group:** InternalFormatPName"]
1604 pub const GL_FRAMEBUFFER_BLEND: GLenum = 0x828B;
1605 #[doc = "`GL_FRAMEBUFFER_COMPLETE: GLenum = 0x8CD5`"]
1606 #[doc = "* **Group:** FramebufferStatus"]
1607 pub const GL_FRAMEBUFFER_COMPLETE: GLenum = 0x8CD5;
1608 #[doc = "`GL_FRAMEBUFFER_DEFAULT: GLenum = 0x8218`"]
1609 pub const GL_FRAMEBUFFER_DEFAULT: GLenum = 0x8218;
1610 #[doc = "`GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS: GLenum = 0x9314`"]
1611 #[doc = "* **Groups:** GetFramebufferParameter, FramebufferParameterName"]
1612 pub const GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS: GLenum = 0x9314;
1613 #[doc = "`GL_FRAMEBUFFER_DEFAULT_HEIGHT: GLenum = 0x9311`"]
1614 #[doc = "* **Groups:** GetFramebufferParameter, FramebufferParameterName"]
1615 pub const GL_FRAMEBUFFER_DEFAULT_HEIGHT: GLenum = 0x9311;
1616 #[doc = "`GL_FRAMEBUFFER_DEFAULT_LAYERS: GLenum = 0x9312`"]
1617 #[doc = "* **Groups:** GetFramebufferParameter, FramebufferParameterName"]
1618 pub const GL_FRAMEBUFFER_DEFAULT_LAYERS: GLenum = 0x9312;
1619 #[doc = "`GL_FRAMEBUFFER_DEFAULT_SAMPLES: GLenum = 0x9313`"]
1620 #[doc = "* **Groups:** GetFramebufferParameter, FramebufferParameterName"]
1621 pub const GL_FRAMEBUFFER_DEFAULT_SAMPLES: GLenum = 0x9313;
1622 #[doc = "`GL_FRAMEBUFFER_DEFAULT_WIDTH: GLenum = 0x9310`"]
1623 #[doc = "* **Groups:** GetFramebufferParameter, FramebufferParameterName"]
1624 pub const GL_FRAMEBUFFER_DEFAULT_WIDTH: GLenum = 0x9310;
1625 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum = 0x8CD6`"]
1626 #[doc = "* **Group:** FramebufferStatus"]
1627 pub const GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum = 0x8CD6;
1628 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum = 0x8CD9`"]
1629 pub const GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum = 0x8CD9;
1630 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER: GLenum = 0x8CDB`"]
1631 #[doc = "* **Group:** FramebufferStatus"]
1632 pub const GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER: GLenum = 0x8CDB;
1633 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS: GLenum = 0x8DA8`"]
1634 #[doc = "* **Group:** FramebufferStatus"]
1635 pub const GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS: GLenum = 0x8DA8;
1636 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum = 0x8CD7`"]
1637 #[doc = "* **Group:** FramebufferStatus"]
1638 pub const GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum = 0x8CD7;
1639 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: GLenum = 0x8D56`"]
1640 #[doc = "* **Group:** FramebufferStatus"]
1641 pub const GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: GLenum = 0x8D56;
1642 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER: GLenum = 0x8CDC`"]
1643 #[doc = "* **Group:** FramebufferStatus"]
1644 pub const GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER: GLenum = 0x8CDC;
1645 #[doc = "`GL_FRAMEBUFFER_RENDERABLE: GLenum = 0x8289`"]
1646 #[doc = "* **Group:** InternalFormatPName"]
1647 pub const GL_FRAMEBUFFER_RENDERABLE: GLenum = 0x8289;
1648 #[doc = "`GL_FRAMEBUFFER_RENDERABLE_LAYERED: GLenum = 0x828A`"]
1649 #[doc = "* **Group:** InternalFormatPName"]
1650 pub const GL_FRAMEBUFFER_RENDERABLE_LAYERED: GLenum = 0x828A;
1651 #[doc = "`GL_FRAMEBUFFER_SRGB: GLenum = 0x8DB9`"]
1652 #[doc = "* **Group:** EnableCap"]
1653 pub const GL_FRAMEBUFFER_SRGB: GLenum = 0x8DB9;
1654 #[doc = "`GL_FRAMEBUFFER_UNDEFINED: GLenum = 0x8219`"]
1655 #[doc = "* **Group:** FramebufferStatus"]
1656 pub const GL_FRAMEBUFFER_UNDEFINED: GLenum = 0x8219;
1657 #[doc = "`GL_FRAMEBUFFER_UNSUPPORTED: GLenum = 0x8CDD`"]
1658 #[doc = "* **Group:** FramebufferStatus"]
1659 pub const GL_FRAMEBUFFER_UNSUPPORTED: GLenum = 0x8CDD;
1660 #[doc = "`GL_FRONT: GLenum = 0x0404`"]
1661 #[doc = "* **Groups:** ColorBuffer, ColorMaterialFace, CullFaceMode, DrawBufferMode, ReadBufferMode, StencilFaceDirection, MaterialFace"]
1662 pub const GL_FRONT: GLenum = 0x0404;
1663 #[doc = "`GL_FRONT_AND_BACK: GLenum = 0x0408`"]
1664 #[doc = "* **Groups:** ColorBuffer, ColorMaterialFace, CullFaceMode, DrawBufferMode, StencilFaceDirection, MaterialFace"]
1665 pub const GL_FRONT_AND_BACK: GLenum = 0x0408;
1666 #[doc = "`GL_FRONT_FACE: GLenum = 0x0B46`"]
1667 #[doc = "* **Group:** GetPName"]
1668 pub const GL_FRONT_FACE: GLenum = 0x0B46;
1669 #[doc = "`GL_FRONT_LEFT: GLenum = 0x0400`"]
1670 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode"]
1671 pub const GL_FRONT_LEFT: GLenum = 0x0400;
1672 #[doc = "`GL_FRONT_RIGHT: GLenum = 0x0401`"]
1673 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode"]
1674 pub const GL_FRONT_RIGHT: GLenum = 0x0401;
1675 #[doc = "`GL_FULL_SUPPORT: GLenum = 0x82B7`"]
1676 pub const GL_FULL_SUPPORT: GLenum = 0x82B7;
1677 #[doc = "`GL_FUNC_ADD: GLenum = 0x8006`"]
1678 #[doc = "* **Group:** BlendEquationModeEXT"]
1679 pub const GL_FUNC_ADD: GLenum = 0x8006;
1680 #[doc = "`GL_FUNC_REVERSE_SUBTRACT: GLenum = 0x800B`"]
1681 #[doc = "* **Group:** BlendEquationModeEXT"]
1682 pub const GL_FUNC_REVERSE_SUBTRACT: GLenum = 0x800B;
1683 #[doc = "`GL_FUNC_SUBTRACT: GLenum = 0x800A`"]
1684 #[doc = "* **Group:** BlendEquationModeEXT"]
1685 pub const GL_FUNC_SUBTRACT: GLenum = 0x800A;
1686 #[doc = "`GL_GENERATE_MIPMAP_HINT: GLenum = 0x8192`"]
1687 #[doc = "* **Group:** HintTarget"]
1688 pub const GL_GENERATE_MIPMAP_HINT: GLenum = 0x8192;
1689 #[doc = "`GL_GEOMETRY_INPUT_TYPE: GLenum = 0x8917`"]
1690 #[doc = "* **Group:** ProgramPropertyARB"]
1691 pub const GL_GEOMETRY_INPUT_TYPE: GLenum = 0x8917;
1692 #[doc = "`GL_GEOMETRY_OUTPUT_TYPE: GLenum = 0x8918`"]
1693 #[doc = "* **Group:** ProgramPropertyARB"]
1694 pub const GL_GEOMETRY_OUTPUT_TYPE: GLenum = 0x8918;
1695 #[doc = "`GL_GEOMETRY_SHADER: GLenum = 0x8DD9`"]
1696 #[doc = "* **Groups:** PipelineParameterName, ShaderType"]
1697 pub const GL_GEOMETRY_SHADER: GLenum = 0x8DD9;
1698 #[doc = "`GL_GEOMETRY_SHADER_BIT: GLbitfield = 0x00000004`"]
1699 #[doc = "* **Group:** UseProgramStageMask"]
1700 pub const GL_GEOMETRY_SHADER_BIT: GLbitfield = 0x00000004;
1701 #[doc = "`GL_GEOMETRY_SHADER_INVOCATIONS: GLenum = 0x887F`"]
1702 pub const GL_GEOMETRY_SHADER_INVOCATIONS: GLenum = 0x887F;
1703 #[doc = "`GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED: GLenum = 0x82F3`"]
1704 pub const GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED: GLenum = 0x82F3;
1705 #[doc = "`GL_GEOMETRY_SUBROUTINE: GLenum = 0x92EB`"]
1706 #[doc = "* **Group:** ProgramInterface"]
1707 pub const GL_GEOMETRY_SUBROUTINE: GLenum = 0x92EB;
1708 #[doc = "`GL_GEOMETRY_SUBROUTINE_UNIFORM: GLenum = 0x92F1`"]
1709 #[doc = "* **Group:** ProgramInterface"]
1710 pub const GL_GEOMETRY_SUBROUTINE_UNIFORM: GLenum = 0x92F1;
1711 #[doc = "`GL_GEOMETRY_TEXTURE: GLenum = 0x829E`"]
1712 #[doc = "* **Group:** InternalFormatPName"]
1713 pub const GL_GEOMETRY_TEXTURE: GLenum = 0x829E;
1714 #[doc = "`GL_GEOMETRY_VERTICES_OUT: GLenum = 0x8916`"]
1715 #[doc = "* **Group:** ProgramPropertyARB"]
1716 pub const GL_GEOMETRY_VERTICES_OUT: GLenum = 0x8916;
1717 #[doc = "`GL_GEQUAL: GLenum = 0x0206`"]
1718 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
1719 pub const GL_GEQUAL: GLenum = 0x0206;
1720 #[doc = "`GL_GET_TEXTURE_IMAGE_FORMAT: GLenum = 0x8291`"]
1721 #[doc = "* **Group:** InternalFormatPName"]
1722 pub const GL_GET_TEXTURE_IMAGE_FORMAT: GLenum = 0x8291;
1723 #[doc = "`GL_GET_TEXTURE_IMAGE_TYPE: GLenum = 0x8292`"]
1724 #[doc = "* **Group:** InternalFormatPName"]
1725 pub const GL_GET_TEXTURE_IMAGE_TYPE: GLenum = 0x8292;
1726 #[doc = "`GL_GREATER: GLenum = 0x0204`"]
1727 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
1728 pub const GL_GREATER: GLenum = 0x0204;
1729 #[doc = "`GL_GREEN: GLenum = 0x1904`"]
1730 #[doc = "* **Groups:** TextureSwizzle, PixelFormat"]
1731 pub const GL_GREEN: GLenum = 0x1904;
1732 #[doc = "`GL_GREEN_BITS: GLenum = 0x0D53`"]
1733 #[doc = "* **Group:** GetPName"]
1734 pub const GL_GREEN_BITS: GLenum = 0x0D53;
1735 #[doc = "`GL_GREEN_INTEGER: GLenum = 0x8D95`"]
1736 #[doc = "* **Group:** PixelFormat"]
1737 pub const GL_GREEN_INTEGER: GLenum = 0x8D95;
1738 #[doc = "`GL_GUILTY_CONTEXT_RESET: GLenum = 0x8253`"]
1739 #[doc = "* **Group:** GraphicsResetStatus"]
1740 pub const GL_GUILTY_CONTEXT_RESET: GLenum = 0x8253;
1741 #[doc = "`GL_HALF_FLOAT: GLenum = 0x140B`"]
1742 #[doc = "* **Groups:** VertexAttribPointerType, VertexAttribType"]
1743 pub const GL_HALF_FLOAT: GLenum = 0x140B;
1744 #[doc = "`GL_HARDLIGHT: GLenum = 0x929B`"]
1745 pub const GL_HARDLIGHT: GLenum = 0x929B;
1746 #[doc = "`GL_HIGH_FLOAT: GLenum = 0x8DF2`"]
1747 #[doc = "* **Group:** PrecisionType"]
1748 pub const GL_HIGH_FLOAT: GLenum = 0x8DF2;
1749 #[doc = "`GL_HIGH_INT: GLenum = 0x8DF5`"]
1750 #[doc = "* **Group:** PrecisionType"]
1751 pub const GL_HIGH_INT: GLenum = 0x8DF5;
1752 #[doc = "`GL_HSL_COLOR: GLenum = 0x92AF`"]
1753 pub const GL_HSL_COLOR: GLenum = 0x92AF;
1754 #[doc = "`GL_HSL_HUE: GLenum = 0x92AD`"]
1755 pub const GL_HSL_HUE: GLenum = 0x92AD;
1756 #[doc = "`GL_HSL_LUMINOSITY: GLenum = 0x92B0`"]
1757 pub const GL_HSL_LUMINOSITY: GLenum = 0x92B0;
1758 #[doc = "`GL_HSL_SATURATION: GLenum = 0x92AE`"]
1759 pub const GL_HSL_SATURATION: GLenum = 0x92AE;
1760 #[doc = "`GL_IMAGE_1D: GLenum = 0x904C`"]
1761 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1762 pub const GL_IMAGE_1D: GLenum = 0x904C;
1763 #[doc = "`GL_IMAGE_1D_ARRAY: GLenum = 0x9052`"]
1764 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1765 pub const GL_IMAGE_1D_ARRAY: GLenum = 0x9052;
1766 #[doc = "`GL_IMAGE_2D: GLenum = 0x904D`"]
1767 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1768 pub const GL_IMAGE_2D: GLenum = 0x904D;
1769 #[doc = "`GL_IMAGE_2D_ARRAY: GLenum = 0x9053`"]
1770 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1771 pub const GL_IMAGE_2D_ARRAY: GLenum = 0x9053;
1772 #[doc = "`GL_IMAGE_2D_MULTISAMPLE: GLenum = 0x9055`"]
1773 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1774 pub const GL_IMAGE_2D_MULTISAMPLE: GLenum = 0x9055;
1775 #[doc = "`GL_IMAGE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9056`"]
1776 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1777 pub const GL_IMAGE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9056;
1778 #[doc = "`GL_IMAGE_2D_RECT: GLenum = 0x904F`"]
1779 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1780 pub const GL_IMAGE_2D_RECT: GLenum = 0x904F;
1781 #[doc = "`GL_IMAGE_3D: GLenum = 0x904E`"]
1782 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1783 pub const GL_IMAGE_3D: GLenum = 0x904E;
1784 #[doc = "`GL_IMAGE_BINDING_ACCESS: GLenum = 0x8F3E`"]
1785 pub const GL_IMAGE_BINDING_ACCESS: GLenum = 0x8F3E;
1786 #[doc = "`GL_IMAGE_BINDING_FORMAT: GLenum = 0x906E`"]
1787 pub const GL_IMAGE_BINDING_FORMAT: GLenum = 0x906E;
1788 #[doc = "`GL_IMAGE_BINDING_LAYER: GLenum = 0x8F3D`"]
1789 pub const GL_IMAGE_BINDING_LAYER: GLenum = 0x8F3D;
1790 #[doc = "`GL_IMAGE_BINDING_LAYERED: GLenum = 0x8F3C`"]
1791 pub const GL_IMAGE_BINDING_LAYERED: GLenum = 0x8F3C;
1792 #[doc = "`GL_IMAGE_BINDING_LEVEL: GLenum = 0x8F3B`"]
1793 pub const GL_IMAGE_BINDING_LEVEL: GLenum = 0x8F3B;
1794 #[doc = "`GL_IMAGE_BINDING_NAME: GLenum = 0x8F3A`"]
1795 pub const GL_IMAGE_BINDING_NAME: GLenum = 0x8F3A;
1796 #[doc = "`GL_IMAGE_BUFFER: GLenum = 0x9051`"]
1797 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1798 pub const GL_IMAGE_BUFFER: GLenum = 0x9051;
1799 #[doc = "`GL_IMAGE_CLASS_10_10_10_2: GLenum = 0x82C3`"]
1800 pub const GL_IMAGE_CLASS_10_10_10_2: GLenum = 0x82C3;
1801 #[doc = "`GL_IMAGE_CLASS_11_11_10: GLenum = 0x82C2`"]
1802 pub const GL_IMAGE_CLASS_11_11_10: GLenum = 0x82C2;
1803 #[doc = "`GL_IMAGE_CLASS_1_X_16: GLenum = 0x82BE`"]
1804 pub const GL_IMAGE_CLASS_1_X_16: GLenum = 0x82BE;
1805 #[doc = "`GL_IMAGE_CLASS_1_X_32: GLenum = 0x82BB`"]
1806 pub const GL_IMAGE_CLASS_1_X_32: GLenum = 0x82BB;
1807 #[doc = "`GL_IMAGE_CLASS_1_X_8: GLenum = 0x82C1`"]
1808 pub const GL_IMAGE_CLASS_1_X_8: GLenum = 0x82C1;
1809 #[doc = "`GL_IMAGE_CLASS_2_X_16: GLenum = 0x82BD`"]
1810 pub const GL_IMAGE_CLASS_2_X_16: GLenum = 0x82BD;
1811 #[doc = "`GL_IMAGE_CLASS_2_X_32: GLenum = 0x82BA`"]
1812 pub const GL_IMAGE_CLASS_2_X_32: GLenum = 0x82BA;
1813 #[doc = "`GL_IMAGE_CLASS_2_X_8: GLenum = 0x82C0`"]
1814 pub const GL_IMAGE_CLASS_2_X_8: GLenum = 0x82C0;
1815 #[doc = "`GL_IMAGE_CLASS_4_X_16: GLenum = 0x82BC`"]
1816 pub const GL_IMAGE_CLASS_4_X_16: GLenum = 0x82BC;
1817 #[doc = "`GL_IMAGE_CLASS_4_X_32: GLenum = 0x82B9`"]
1818 pub const GL_IMAGE_CLASS_4_X_32: GLenum = 0x82B9;
1819 #[doc = "`GL_IMAGE_CLASS_4_X_8: GLenum = 0x82BF`"]
1820 pub const GL_IMAGE_CLASS_4_X_8: GLenum = 0x82BF;
1821 #[doc = "`GL_IMAGE_COMPATIBILITY_CLASS: GLenum = 0x82A8`"]
1822 #[doc = "* **Group:** InternalFormatPName"]
1823 pub const GL_IMAGE_COMPATIBILITY_CLASS: GLenum = 0x82A8;
1824 #[doc = "`GL_IMAGE_CUBE: GLenum = 0x9050`"]
1825 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1826 pub const GL_IMAGE_CUBE: GLenum = 0x9050;
1827 #[doc = "`GL_IMAGE_CUBE_MAP_ARRAY: GLenum = 0x9054`"]
1828 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1829 pub const GL_IMAGE_CUBE_MAP_ARRAY: GLenum = 0x9054;
1830 #[doc = "`GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS: GLenum = 0x90C9`"]
1831 pub const GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS: GLenum = 0x90C9;
1832 #[doc = "`GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE: GLenum = 0x90C8`"]
1833 pub const GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE: GLenum = 0x90C8;
1834 #[doc = "`GL_IMAGE_FORMAT_COMPATIBILITY_TYPE: GLenum = 0x90C7`"]
1835 #[doc = "* **Group:** InternalFormatPName"]
1836 pub const GL_IMAGE_FORMAT_COMPATIBILITY_TYPE: GLenum = 0x90C7;
1837 #[doc = "`GL_IMAGE_PIXEL_FORMAT: GLenum = 0x82A9`"]
1838 #[doc = "* **Group:** InternalFormatPName"]
1839 pub const GL_IMAGE_PIXEL_FORMAT: GLenum = 0x82A9;
1840 #[doc = "`GL_IMAGE_PIXEL_TYPE: GLenum = 0x82AA`"]
1841 #[doc = "* **Group:** InternalFormatPName"]
1842 pub const GL_IMAGE_PIXEL_TYPE: GLenum = 0x82AA;
1843 #[doc = "`GL_IMAGE_TEXEL_SIZE: GLenum = 0x82A7`"]
1844 #[doc = "* **Group:** InternalFormatPName"]
1845 pub const GL_IMAGE_TEXEL_SIZE: GLenum = 0x82A7;
1846 #[doc = "`GL_IMPLEMENTATION_COLOR_READ_FORMAT: GLenum = 0x8B9B`"]
1847 #[doc = "* **Groups:** GetFramebufferParameter, GetPName"]
1848 pub const GL_IMPLEMENTATION_COLOR_READ_FORMAT: GLenum = 0x8B9B;
1849 #[doc = "`GL_IMPLEMENTATION_COLOR_READ_TYPE: GLenum = 0x8B9A`"]
1850 #[doc = "* **Groups:** GetFramebufferParameter, GetPName"]
1851 pub const GL_IMPLEMENTATION_COLOR_READ_TYPE: GLenum = 0x8B9A;
1852 #[doc = "`GL_INCR: GLenum = 0x1E02`"]
1853 #[doc = "* **Group:** StencilOp"]
1854 pub const GL_INCR: GLenum = 0x1E02;
1855 #[doc = "`GL_INCR_WRAP: GLenum = 0x8507`"]
1856 #[doc = "* **Group:** StencilOp"]
1857 pub const GL_INCR_WRAP: GLenum = 0x8507;
1858 #[doc = "`GL_INFO_LOG_LENGTH: GLenum = 0x8B84`"]
1859 #[doc = "* **Groups:** ProgramPropertyARB, ShaderParameterName, PipelineParameterName"]
1860 pub const GL_INFO_LOG_LENGTH: GLenum = 0x8B84;
1861 #[doc = "`GL_INNOCENT_CONTEXT_RESET: GLenum = 0x8254`"]
1862 #[doc = "* **Group:** GraphicsResetStatus"]
1863 pub const GL_INNOCENT_CONTEXT_RESET: GLenum = 0x8254;
1864 #[doc = "`GL_INT: GLenum = 0x1404`"]
1865 #[doc = "* **Groups:** VertexAttribIType, SecondaryColorPointerTypeIBM, WeightPointerTypeARB, TangentPointerTypeEXT, BinormalPointerTypeEXT, IndexPointerType, ListNameType, NormalPointerType, PixelType, TexCoordPointerType, VertexPointerType, VertexAttribType, AttributeType, UniformType, VertexAttribPointerType, GlslTypeToken"]
1866 pub const GL_INT: GLenum = 0x1404;
1867 #[doc = "`GL_INTERLEAVED_ATTRIBS: GLenum = 0x8C8C`"]
1868 #[doc = "* **Group:** TransformFeedbackBufferMode"]
1869 pub const GL_INTERLEAVED_ATTRIBS: GLenum = 0x8C8C;
1870 #[doc = "`GL_INTERNALFORMAT_ALPHA_SIZE: GLenum = 0x8274`"]
1871 #[doc = "* **Group:** InternalFormatPName"]
1872 pub const GL_INTERNALFORMAT_ALPHA_SIZE: GLenum = 0x8274;
1873 #[doc = "`GL_INTERNALFORMAT_ALPHA_TYPE: GLenum = 0x827B`"]
1874 #[doc = "* **Group:** InternalFormatPName"]
1875 pub const GL_INTERNALFORMAT_ALPHA_TYPE: GLenum = 0x827B;
1876 #[doc = "`GL_INTERNALFORMAT_BLUE_SIZE: GLenum = 0x8273`"]
1877 #[doc = "* **Group:** InternalFormatPName"]
1878 pub const GL_INTERNALFORMAT_BLUE_SIZE: GLenum = 0x8273;
1879 #[doc = "`GL_INTERNALFORMAT_BLUE_TYPE: GLenum = 0x827A`"]
1880 #[doc = "* **Group:** InternalFormatPName"]
1881 pub const GL_INTERNALFORMAT_BLUE_TYPE: GLenum = 0x827A;
1882 #[doc = "`GL_INTERNALFORMAT_DEPTH_SIZE: GLenum = 0x8275`"]
1883 #[doc = "* **Group:** InternalFormatPName"]
1884 pub const GL_INTERNALFORMAT_DEPTH_SIZE: GLenum = 0x8275;
1885 #[doc = "`GL_INTERNALFORMAT_DEPTH_TYPE: GLenum = 0x827C`"]
1886 #[doc = "* **Group:** InternalFormatPName"]
1887 pub const GL_INTERNALFORMAT_DEPTH_TYPE: GLenum = 0x827C;
1888 #[doc = "`GL_INTERNALFORMAT_GREEN_SIZE: GLenum = 0x8272`"]
1889 #[doc = "* **Group:** InternalFormatPName"]
1890 pub const GL_INTERNALFORMAT_GREEN_SIZE: GLenum = 0x8272;
1891 #[doc = "`GL_INTERNALFORMAT_GREEN_TYPE: GLenum = 0x8279`"]
1892 #[doc = "* **Group:** InternalFormatPName"]
1893 pub const GL_INTERNALFORMAT_GREEN_TYPE: GLenum = 0x8279;
1894 #[doc = "`GL_INTERNALFORMAT_PREFERRED: GLenum = 0x8270`"]
1895 #[doc = "* **Group:** InternalFormatPName"]
1896 pub const GL_INTERNALFORMAT_PREFERRED: GLenum = 0x8270;
1897 #[doc = "`GL_INTERNALFORMAT_RED_SIZE: GLenum = 0x8271`"]
1898 #[doc = "* **Group:** InternalFormatPName"]
1899 pub const GL_INTERNALFORMAT_RED_SIZE: GLenum = 0x8271;
1900 #[doc = "`GL_INTERNALFORMAT_RED_TYPE: GLenum = 0x8278`"]
1901 #[doc = "* **Group:** InternalFormatPName"]
1902 pub const GL_INTERNALFORMAT_RED_TYPE: GLenum = 0x8278;
1903 #[doc = "`GL_INTERNALFORMAT_SHARED_SIZE: GLenum = 0x8277`"]
1904 #[doc = "* **Group:** InternalFormatPName"]
1905 pub const GL_INTERNALFORMAT_SHARED_SIZE: GLenum = 0x8277;
1906 #[doc = "`GL_INTERNALFORMAT_STENCIL_SIZE: GLenum = 0x8276`"]
1907 #[doc = "* **Group:** InternalFormatPName"]
1908 pub const GL_INTERNALFORMAT_STENCIL_SIZE: GLenum = 0x8276;
1909 #[doc = "`GL_INTERNALFORMAT_STENCIL_TYPE: GLenum = 0x827D`"]
1910 #[doc = "* **Group:** InternalFormatPName"]
1911 pub const GL_INTERNALFORMAT_STENCIL_TYPE: GLenum = 0x827D;
1912 #[doc = "`GL_INTERNALFORMAT_SUPPORTED: GLenum = 0x826F`"]
1913 #[doc = "* **Group:** InternalFormatPName"]
1914 pub const GL_INTERNALFORMAT_SUPPORTED: GLenum = 0x826F;
1915 #[doc = "`GL_INT_2_10_10_10_REV: GLenum = 0x8D9F`"]
1916 #[doc = "* **Groups:** VertexAttribPointerType, VertexAttribType"]
1917 pub const GL_INT_2_10_10_10_REV: GLenum = 0x8D9F;
1918 #[doc = "`GL_INT_IMAGE_1D: GLenum = 0x9057`"]
1919 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1920 pub const GL_INT_IMAGE_1D: GLenum = 0x9057;
1921 #[doc = "`GL_INT_IMAGE_1D_ARRAY: GLenum = 0x905D`"]
1922 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1923 pub const GL_INT_IMAGE_1D_ARRAY: GLenum = 0x905D;
1924 #[doc = "`GL_INT_IMAGE_2D: GLenum = 0x9058`"]
1925 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1926 pub const GL_INT_IMAGE_2D: GLenum = 0x9058;
1927 #[doc = "`GL_INT_IMAGE_2D_ARRAY: GLenum = 0x905E`"]
1928 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1929 pub const GL_INT_IMAGE_2D_ARRAY: GLenum = 0x905E;
1930 #[doc = "`GL_INT_IMAGE_2D_MULTISAMPLE: GLenum = 0x9060`"]
1931 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1932 pub const GL_INT_IMAGE_2D_MULTISAMPLE: GLenum = 0x9060;
1933 #[doc = "`GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9061`"]
1934 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1935 pub const GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9061;
1936 #[doc = "`GL_INT_IMAGE_2D_RECT: GLenum = 0x905A`"]
1937 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1938 pub const GL_INT_IMAGE_2D_RECT: GLenum = 0x905A;
1939 #[doc = "`GL_INT_IMAGE_3D: GLenum = 0x9059`"]
1940 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1941 pub const GL_INT_IMAGE_3D: GLenum = 0x9059;
1942 #[doc = "`GL_INT_IMAGE_BUFFER: GLenum = 0x905C`"]
1943 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1944 pub const GL_INT_IMAGE_BUFFER: GLenum = 0x905C;
1945 #[doc = "`GL_INT_IMAGE_CUBE: GLenum = 0x905B`"]
1946 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1947 pub const GL_INT_IMAGE_CUBE: GLenum = 0x905B;
1948 #[doc = "`GL_INT_IMAGE_CUBE_MAP_ARRAY: GLenum = 0x905F`"]
1949 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1950 pub const GL_INT_IMAGE_CUBE_MAP_ARRAY: GLenum = 0x905F;
1951 #[doc = "`GL_INT_SAMPLER_1D: GLenum = 0x8DC9`"]
1952 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1953 pub const GL_INT_SAMPLER_1D: GLenum = 0x8DC9;
1954 #[doc = "`GL_INT_SAMPLER_1D_ARRAY: GLenum = 0x8DCE`"]
1955 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1956 pub const GL_INT_SAMPLER_1D_ARRAY: GLenum = 0x8DCE;
1957 #[doc = "`GL_INT_SAMPLER_2D: GLenum = 0x8DCA`"]
1958 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1959 pub const GL_INT_SAMPLER_2D: GLenum = 0x8DCA;
1960 #[doc = "`GL_INT_SAMPLER_2D_ARRAY: GLenum = 0x8DCF`"]
1961 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1962 pub const GL_INT_SAMPLER_2D_ARRAY: GLenum = 0x8DCF;
1963 #[doc = "`GL_INT_SAMPLER_2D_MULTISAMPLE: GLenum = 0x9109`"]
1964 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1965 pub const GL_INT_SAMPLER_2D_MULTISAMPLE: GLenum = 0x9109;
1966 #[doc = "`GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: GLenum = 0x910C`"]
1967 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1968 pub const GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: GLenum = 0x910C;
1969 #[doc = "`GL_INT_SAMPLER_2D_RECT: GLenum = 0x8DCD`"]
1970 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1971 pub const GL_INT_SAMPLER_2D_RECT: GLenum = 0x8DCD;
1972 #[doc = "`GL_INT_SAMPLER_3D: GLenum = 0x8DCB`"]
1973 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1974 pub const GL_INT_SAMPLER_3D: GLenum = 0x8DCB;
1975 #[doc = "`GL_INT_SAMPLER_BUFFER: GLenum = 0x8DD0`"]
1976 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1977 pub const GL_INT_SAMPLER_BUFFER: GLenum = 0x8DD0;
1978 #[doc = "`GL_INT_SAMPLER_CUBE: GLenum = 0x8DCC`"]
1979 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1980 pub const GL_INT_SAMPLER_CUBE: GLenum = 0x8DCC;
1981 #[doc = "`GL_INT_SAMPLER_CUBE_MAP_ARRAY: GLenum = 0x900E`"]
1982 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1983 pub const GL_INT_SAMPLER_CUBE_MAP_ARRAY: GLenum = 0x900E;
1984 #[doc = "`GL_INT_VEC2: GLenum = 0x8B53`"]
1985 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1986 pub const GL_INT_VEC2: GLenum = 0x8B53;
1987 #[doc = "`GL_INT_VEC3: GLenum = 0x8B54`"]
1988 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1989 pub const GL_INT_VEC3: GLenum = 0x8B54;
1990 #[doc = "`GL_INT_VEC4: GLenum = 0x8B55`"]
1991 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1992 pub const GL_INT_VEC4: GLenum = 0x8B55;
1993 #[doc = "`GL_INVALID_ENUM: GLenum = 0x0500`"]
1994 #[doc = "* **Group:** ErrorCode"]
1995 pub const GL_INVALID_ENUM: GLenum = 0x0500;
1996 #[doc = "`GL_INVALID_FRAMEBUFFER_OPERATION: GLenum = 0x0506`"]
1997 #[doc = "* **Group:** ErrorCode"]
1998 pub const GL_INVALID_FRAMEBUFFER_OPERATION: GLenum = 0x0506;
1999 #[doc = "`GL_INVALID_INDEX: GLenum = 0xFFFFFFFF`"]
2000 pub const GL_INVALID_INDEX: GLenum = 0xFFFFFFFF;
2001 #[doc = "`GL_INVALID_OPERATION: GLenum = 0x0502`"]
2002 #[doc = "* **Group:** ErrorCode"]
2003 pub const GL_INVALID_OPERATION: GLenum = 0x0502;
2004 #[doc = "`GL_INVALID_VALUE: GLenum = 0x0501`"]
2005 #[doc = "* **Group:** ErrorCode"]
2006 pub const GL_INVALID_VALUE: GLenum = 0x0501;
2007 #[doc = "`GL_INVERT: GLenum = 0x150A`"]
2008 #[doc = "* **Groups:** PathFillMode, LogicOp, StencilOp"]
2009 pub const GL_INVERT: GLenum = 0x150A;
2010 #[doc = "`GL_ISOLINES: GLenum = 0x8E7A`"]
2011 pub const GL_ISOLINES: GLenum = 0x8E7A;
2012 #[doc = "`GL_IS_PER_PATCH: GLenum = 0x92E7`"]
2013 #[doc = "* **Group:** ProgramResourceProperty"]
2014 pub const GL_IS_PER_PATCH: GLenum = 0x92E7;
2015 #[doc = "`GL_IS_ROW_MAJOR: GLenum = 0x9300`"]
2016 #[doc = "* **Group:** ProgramResourceProperty"]
2017 pub const GL_IS_ROW_MAJOR: GLenum = 0x9300;
2018 #[doc = "`GL_KEEP: GLenum = 0x1E00`"]
2019 #[doc = "* **Group:** StencilOp"]
2020 pub const GL_KEEP: GLenum = 0x1E00;
2021 #[doc = "`GL_LAST_VERTEX_CONVENTION: GLenum = 0x8E4E`"]
2022 #[doc = "* **Group:** VertexProvokingMode"]
2023 pub const GL_LAST_VERTEX_CONVENTION: GLenum = 0x8E4E;
2024 #[doc = "`GL_LAYER_PROVOKING_VERTEX: GLenum = 0x825E`"]
2025 #[doc = "* **Group:** GetPName"]
2026 pub const GL_LAYER_PROVOKING_VERTEX: GLenum = 0x825E;
2027 #[doc = "`GL_LEFT: GLenum = 0x0406`"]
2028 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode"]
2029 pub const GL_LEFT: GLenum = 0x0406;
2030 #[doc = "`GL_LEQUAL: GLenum = 0x0203`"]
2031 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
2032 pub const GL_LEQUAL: GLenum = 0x0203;
2033 #[doc = "`GL_LESS: GLenum = 0x0201`"]
2034 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
2035 pub const GL_LESS: GLenum = 0x0201;
2036 #[doc = "`GL_LIGHTEN: GLenum = 0x9298`"]
2037 pub const GL_LIGHTEN: GLenum = 0x9298;
2038 #[doc = "`GL_LINE: GLenum = 0x1B01`"]
2039 #[doc = "* **Groups:** PolygonMode, MeshMode1, MeshMode2"]
2040 pub const GL_LINE: GLenum = 0x1B01;
2041 #[doc = "`GL_LINEAR: GLenum = 0x2601`"]
2042 #[doc = "* **Groups:** BlitFramebufferFilter, FogMode, TextureMagFilter, TextureMinFilter"]
2043 pub const GL_LINEAR: GLenum = 0x2601;
2044 #[doc = "`GL_LINEAR_MIPMAP_LINEAR: GLenum = 0x2703`"]
2045 #[doc = "* **Groups:** TextureWrapMode, TextureMinFilter"]
2046 pub const GL_LINEAR_MIPMAP_LINEAR: GLenum = 0x2703;
2047 #[doc = "`GL_LINEAR_MIPMAP_NEAREST: GLenum = 0x2701`"]
2048 #[doc = "* **Group:** TextureMinFilter"]
2049 pub const GL_LINEAR_MIPMAP_NEAREST: GLenum = 0x2701;
2050 #[doc = "`GL_LINES: GLenum = 0x0001`"]
2051 #[doc = "* **Group:** PrimitiveType"]
2052 pub const GL_LINES: GLenum = 0x0001;
2053 #[doc = "`GL_LINES_ADJACENCY: GLenum = 0x000A`"]
2054 #[doc = "* **Group:** PrimitiveType"]
2055 pub const GL_LINES_ADJACENCY: GLenum = 0x000A;
2056 #[doc = "`GL_LINE_LOOP: GLenum = 0x0002`"]
2057 #[doc = "* **Group:** PrimitiveType"]
2058 pub const GL_LINE_LOOP: GLenum = 0x0002;
2059 #[doc = "`GL_LINE_SMOOTH: GLenum = 0x0B20`"]
2060 #[doc = "* **Groups:** GetPName, EnableCap"]
2061 pub const GL_LINE_SMOOTH: GLenum = 0x0B20;
2062 #[doc = "`GL_LINE_SMOOTH_HINT: GLenum = 0x0C52`"]
2063 #[doc = "* **Groups:** HintTarget, GetPName"]
2064 pub const GL_LINE_SMOOTH_HINT: GLenum = 0x0C52;
2065 #[doc = "`GL_LINE_STRIP: GLenum = 0x0003`"]
2066 #[doc = "* **Group:** PrimitiveType"]
2067 pub const GL_LINE_STRIP: GLenum = 0x0003;
2068 #[doc = "`GL_LINE_STRIP_ADJACENCY: GLenum = 0x000B`"]
2069 #[doc = "* **Group:** PrimitiveType"]
2070 pub const GL_LINE_STRIP_ADJACENCY: GLenum = 0x000B;
2071 #[doc = "`GL_LINE_WIDTH: GLenum = 0x0B21`"]
2072 #[doc = "* **Group:** GetPName"]
2073 pub const GL_LINE_WIDTH: GLenum = 0x0B21;
2074 #[doc = "`GL_LINE_WIDTH_GRANULARITY: GLenum = 0x0B23`"]
2075 #[doc = "* **Group:** GetPName"]
2076 pub const GL_LINE_WIDTH_GRANULARITY: GLenum = 0x0B23;
2077 #[doc = "`GL_LINE_WIDTH_RANGE: GLenum = 0x0B22`"]
2078 #[doc = "* **Group:** GetPName"]
2079 pub const GL_LINE_WIDTH_RANGE: GLenum = 0x0B22;
2080 #[doc = "`GL_LINK_STATUS: GLenum = 0x8B82`"]
2081 #[doc = "* **Group:** ProgramPropertyARB"]
2082 pub const GL_LINK_STATUS: GLenum = 0x8B82;
2083 #[doc = "`GL_LOCATION: GLenum = 0x930E`"]
2084 #[doc = "* **Group:** ProgramResourceProperty"]
2085 pub const GL_LOCATION: GLenum = 0x930E;
2086 #[doc = "`GL_LOCATION_COMPONENT: GLenum = 0x934A`"]
2087 #[doc = "* **Group:** ProgramResourceProperty"]
2088 pub const GL_LOCATION_COMPONENT: GLenum = 0x934A;
2089 #[doc = "`GL_LOCATION_INDEX: GLenum = 0x930F`"]
2090 #[doc = "* **Group:** ProgramResourceProperty"]
2091 pub const GL_LOCATION_INDEX: GLenum = 0x930F;
2092 #[doc = "`GL_LOGIC_OP_MODE: GLenum = 0x0BF0`"]
2093 #[doc = "* **Group:** GetPName"]
2094 pub const GL_LOGIC_OP_MODE: GLenum = 0x0BF0;
2095 #[doc = "`GL_LOSE_CONTEXT_ON_RESET: GLenum = 0x8252`"]
2096 pub const GL_LOSE_CONTEXT_ON_RESET: GLenum = 0x8252;
2097 #[doc = "`GL_LOWER_LEFT: GLenum = 0x8CA1`"]
2098 #[doc = "* **Group:** ClipControlOrigin"]
2099 pub const GL_LOWER_LEFT: GLenum = 0x8CA1;
2100 #[doc = "`GL_LOW_FLOAT: GLenum = 0x8DF0`"]
2101 #[doc = "* **Group:** PrecisionType"]
2102 pub const GL_LOW_FLOAT: GLenum = 0x8DF0;
2103 #[doc = "`GL_LOW_INT: GLenum = 0x8DF3`"]
2104 #[doc = "* **Group:** PrecisionType"]
2105 pub const GL_LOW_INT: GLenum = 0x8DF3;
2106 #[doc = "`GL_LUMINANCE: GLenum = 0x1909`"]
2107 #[doc = "* **Groups:** PixelTexGenMode, PathColorFormat, PixelFormat"]
2108 pub const GL_LUMINANCE: GLenum = 0x1909;
2109 #[doc = "`GL_LUMINANCE_ALPHA: GLenum = 0x190A`"]
2110 #[doc = "* **Groups:** PixelTexGenMode, PathColorFormat, PixelFormat"]
2111 pub const GL_LUMINANCE_ALPHA: GLenum = 0x190A;
2112 #[doc = "`GL_MAJOR_VERSION: GLenum = 0x821B`"]
2113 #[doc = "* **Group:** GetPName"]
2114 pub const GL_MAJOR_VERSION: GLenum = 0x821B;
2115 #[doc = "`GL_MANUAL_GENERATE_MIPMAP: GLenum = 0x8294`"]
2116 pub const GL_MANUAL_GENERATE_MIPMAP: GLenum = 0x8294;
2117 #[doc = "`GL_MAP_COHERENT_BIT: GLbitfield = 0x0080`"]
2118 #[doc = "* **Groups:** MapBufferAccessMask, BufferStorageMask"]
2119 pub const GL_MAP_COHERENT_BIT: GLbitfield = 0x0080;
2120 #[doc = "`GL_MAP_COHERENT_BIT_EXT: GLbitfield = 0x0080`"]
2121 #[doc = "* **Groups:** MapBufferAccessMask, BufferStorageMask"]
2122
2123 pub const GL_MAP_COHERENT_BIT_EXT: GLbitfield = 0x0080;
2124 #[doc = "`GL_MAP_FLUSH_EXPLICIT_BIT: GLbitfield = 0x0010`"]
2125 #[doc = "* **Group:** MapBufferAccessMask"]
2126 pub const GL_MAP_FLUSH_EXPLICIT_BIT: GLbitfield = 0x0010;
2127 #[doc = "`GL_MAP_INVALIDATE_BUFFER_BIT: GLbitfield = 0x0008`"]
2128 #[doc = "* **Group:** MapBufferAccessMask"]
2129 pub const GL_MAP_INVALIDATE_BUFFER_BIT: GLbitfield = 0x0008;
2130 #[doc = "`GL_MAP_INVALIDATE_RANGE_BIT: GLbitfield = 0x0004`"]
2131 #[doc = "* **Group:** MapBufferAccessMask"]
2132 pub const GL_MAP_INVALIDATE_RANGE_BIT: GLbitfield = 0x0004;
2133 #[doc = "`GL_MAP_PERSISTENT_BIT: GLbitfield = 0x0040`"]
2134 #[doc = "* **Groups:** MapBufferAccessMask, BufferStorageMask"]
2135 pub const GL_MAP_PERSISTENT_BIT: GLbitfield = 0x0040;
2136 #[doc = "`GL_MAP_PERSISTENT_BIT_EXT: GLbitfield = 0x0040`"]
2137 #[doc = "* **Groups:** MapBufferAccessMask, BufferStorageMask"]
2138
2139 pub const GL_MAP_PERSISTENT_BIT_EXT: GLbitfield = 0x0040;
2140 #[doc = "`GL_MAP_READ_BIT: GLbitfield = 0x0001`"]
2141 #[doc = "* **Groups:** MapBufferAccessMask, BufferStorageMask"]
2142 pub const GL_MAP_READ_BIT: GLbitfield = 0x0001;
2143 #[doc = "`GL_MAP_UNSYNCHRONIZED_BIT: GLbitfield = 0x0020`"]
2144 #[doc = "* **Group:** MapBufferAccessMask"]
2145 pub const GL_MAP_UNSYNCHRONIZED_BIT: GLbitfield = 0x0020;
2146 #[doc = "`GL_MAP_WRITE_BIT: GLbitfield = 0x0002`"]
2147 #[doc = "* **Groups:** MapBufferAccessMask, BufferStorageMask"]
2148 pub const GL_MAP_WRITE_BIT: GLbitfield = 0x0002;
2149 #[doc = "`GL_MATRIX_STRIDE: GLenum = 0x92FF`"]
2150 #[doc = "* **Group:** ProgramResourceProperty"]
2151 pub const GL_MATRIX_STRIDE: GLenum = 0x92FF;
2152 #[doc = "`GL_MAX: GLenum = 0x8008`"]
2153 #[doc = "* **Group:** BlendEquationModeEXT"]
2154 pub const GL_MAX: GLenum = 0x8008;
2155 #[doc = "`GL_MAX_3D_TEXTURE_SIZE: GLenum = 0x8073`"]
2156 #[doc = "* **Group:** GetPName"]
2157 pub const GL_MAX_3D_TEXTURE_SIZE: GLenum = 0x8073;
2158 #[doc = "`GL_MAX_ARRAY_TEXTURE_LAYERS: GLenum = 0x88FF`"]
2159 #[doc = "* **Group:** GetPName"]
2160 pub const GL_MAX_ARRAY_TEXTURE_LAYERS: GLenum = 0x88FF;
2161 #[doc = "`GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS: GLenum = 0x92DC`"]
2162 pub const GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS: GLenum = 0x92DC;
2163 #[doc = "`GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE: GLenum = 0x92D8`"]
2164 pub const GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE: GLenum = 0x92D8;
2165 #[doc = "`GL_MAX_CLIP_DISTANCES: GLenum = 0x0D32`"]
2166 #[doc = "* **Group:** GetPName"]
2167 #[doc = "* **Alias Of:** `GL_MAX_CLIP_PLANES`"]
2168 pub const GL_MAX_CLIP_DISTANCES: GLenum = 0x0D32;
2169 #[doc = "`GL_MAX_COLOR_ATTACHMENTS: GLenum = 0x8CDF`"]
2170 pub const GL_MAX_COLOR_ATTACHMENTS: GLenum = 0x8CDF;
2171 #[doc = "`GL_MAX_COLOR_TEXTURE_SAMPLES: GLenum = 0x910E`"]
2172 #[doc = "* **Group:** GetPName"]
2173 pub const GL_MAX_COLOR_TEXTURE_SAMPLES: GLenum = 0x910E;
2174 #[doc = "`GL_MAX_COMBINED_ATOMIC_COUNTERS: GLenum = 0x92D7`"]
2175 #[doc = "* **Group:** GetPName"]
2176 pub const GL_MAX_COMBINED_ATOMIC_COUNTERS: GLenum = 0x92D7;
2177 #[doc = "`GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92D1`"]
2178 pub const GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92D1;
2179 #[doc = "`GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES: GLenum = 0x82FA`"]
2180 pub const GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES: GLenum = 0x82FA;
2181 #[doc = "`GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS: GLenum = 0x8266`"]
2182 #[doc = "* **Group:** GetPName"]
2183 pub const GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS: GLenum = 0x8266;
2184 #[doc = "`GL_MAX_COMBINED_DIMENSIONS: GLenum = 0x8282`"]
2185 pub const GL_MAX_COMBINED_DIMENSIONS: GLenum = 0x8282;
2186 #[doc = "`GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: GLenum = 0x8A33`"]
2187 #[doc = "* **Group:** GetPName"]
2188 pub const GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: GLenum = 0x8A33;
2189 #[doc = "`GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS: GLenum = 0x8A32`"]
2190 #[doc = "* **Group:** GetPName"]
2191 pub const GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS: GLenum = 0x8A32;
2192 #[doc = "`GL_MAX_COMBINED_IMAGE_UNIFORMS: GLenum = 0x90CF`"]
2193 pub const GL_MAX_COMBINED_IMAGE_UNIFORMS: GLenum = 0x90CF;
2194 #[doc = "`GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS: GLenum = 0x8F39`"]
2195 pub const GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS: GLenum = 0x8F39;
2196 #[doc = "`GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES: GLenum = 0x8F39`"]
2197 #[doc = "* **Alias Of:** `GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS`"]
2198 pub const GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES: GLenum = 0x8F39;
2199 #[doc = "`GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS: GLenum = 0x90DC`"]
2200 #[doc = "* **Group:** GetPName"]
2201 pub const GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS: GLenum = 0x90DC;
2202 #[doc = "`GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS: GLenum = 0x8E1E`"]
2203 pub const GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS: GLenum = 0x8E1E;
2204 #[doc = "`GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS: GLenum = 0x8E1F`"]
2205 pub const GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS: GLenum = 0x8E1F;
2206 #[doc = "`GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum = 0x8B4D`"]
2207 #[doc = "* **Group:** GetPName"]
2208 pub const GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum = 0x8B4D;
2209 #[doc = "`GL_MAX_COMBINED_UNIFORM_BLOCKS: GLenum = 0x8A2E`"]
2210 #[doc = "* **Group:** GetPName"]
2211 pub const GL_MAX_COMBINED_UNIFORM_BLOCKS: GLenum = 0x8A2E;
2212 #[doc = "`GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: GLenum = 0x8A31`"]
2213 #[doc = "* **Group:** GetPName"]
2214 pub const GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: GLenum = 0x8A31;
2215 #[doc = "`GL_MAX_COMPUTE_ATOMIC_COUNTERS: GLenum = 0x8265`"]
2216 #[doc = "* **Group:** GetPName"]
2217 pub const GL_MAX_COMPUTE_ATOMIC_COUNTERS: GLenum = 0x8265;
2218 #[doc = "`GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS: GLenum = 0x8264`"]
2219 #[doc = "* **Group:** GetPName"]
2220 pub const GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS: GLenum = 0x8264;
2221 #[doc = "`GL_MAX_COMPUTE_IMAGE_UNIFORMS: GLenum = 0x91BD`"]
2222 pub const GL_MAX_COMPUTE_IMAGE_UNIFORMS: GLenum = 0x91BD;
2223 #[doc = "`GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS: GLenum = 0x90DB`"]
2224 #[doc = "* **Group:** GetPName"]
2225 pub const GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS: GLenum = 0x90DB;
2226 #[doc = "`GL_MAX_COMPUTE_SHARED_MEMORY_SIZE: GLenum = 0x8262`"]
2227 pub const GL_MAX_COMPUTE_SHARED_MEMORY_SIZE: GLenum = 0x8262;
2228 #[doc = "`GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS: GLenum = 0x91BC`"]
2229 #[doc = "* **Group:** GetPName"]
2230 pub const GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS: GLenum = 0x91BC;
2231 #[doc = "`GL_MAX_COMPUTE_UNIFORM_BLOCKS: GLenum = 0x91BB`"]
2232 #[doc = "* **Group:** GetPName"]
2233 pub const GL_MAX_COMPUTE_UNIFORM_BLOCKS: GLenum = 0x91BB;
2234 #[doc = "`GL_MAX_COMPUTE_UNIFORM_COMPONENTS: GLenum = 0x8263`"]
2235 #[doc = "* **Group:** GetPName"]
2236 pub const GL_MAX_COMPUTE_UNIFORM_COMPONENTS: GLenum = 0x8263;
2237 #[doc = "`GL_MAX_COMPUTE_WORK_GROUP_COUNT: GLenum = 0x91BE`"]
2238 #[doc = "* **Group:** GetPName"]
2239 pub const GL_MAX_COMPUTE_WORK_GROUP_COUNT: GLenum = 0x91BE;
2240 #[doc = "`GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS: GLenum = 0x90EB`"]
2241 #[doc = "* **Group:** GetPName"]
2242 pub const GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS: GLenum = 0x90EB;
2243 #[doc = "`GL_MAX_COMPUTE_WORK_GROUP_SIZE: GLenum = 0x91BF`"]
2244 #[doc = "* **Group:** GetPName"]
2245 pub const GL_MAX_COMPUTE_WORK_GROUP_SIZE: GLenum = 0x91BF;
2246 #[doc = "`GL_MAX_CUBE_MAP_TEXTURE_SIZE: GLenum = 0x851C`"]
2247 #[doc = "* **Group:** GetPName"]
2248 pub const GL_MAX_CUBE_MAP_TEXTURE_SIZE: GLenum = 0x851C;
2249 #[doc = "`GL_MAX_CULL_DISTANCES: GLenum = 0x82F9`"]
2250 pub const GL_MAX_CULL_DISTANCES: GLenum = 0x82F9;
2251 #[doc = "`GL_MAX_DEBUG_GROUP_STACK_DEPTH: GLenum = 0x826C`"]
2252 #[doc = "* **Group:** GetPName"]
2253 pub const GL_MAX_DEBUG_GROUP_STACK_DEPTH: GLenum = 0x826C;
2254 #[doc = "`GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR: GLenum = 0x826C`"]
2255
2256 pub const GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR: GLenum = 0x826C;
2257 #[doc = "`GL_MAX_DEBUG_LOGGED_MESSAGES: GLenum = 0x9144`"]
2258 pub const GL_MAX_DEBUG_LOGGED_MESSAGES: GLenum = 0x9144;
2259 #[doc = "`GL_MAX_DEBUG_LOGGED_MESSAGES_ARB: GLenum = 0x9144`"]
2260
2261 pub const GL_MAX_DEBUG_LOGGED_MESSAGES_ARB: GLenum = 0x9144;
2262 #[doc = "`GL_MAX_DEBUG_LOGGED_MESSAGES_KHR: GLenum = 0x9144`"]
2263
2264 pub const GL_MAX_DEBUG_LOGGED_MESSAGES_KHR: GLenum = 0x9144;
2265 #[doc = "`GL_MAX_DEBUG_MESSAGE_LENGTH: GLenum = 0x9143`"]
2266 pub const GL_MAX_DEBUG_MESSAGE_LENGTH: GLenum = 0x9143;
2267 #[doc = "`GL_MAX_DEBUG_MESSAGE_LENGTH_ARB: GLenum = 0x9143`"]
2268
2269 pub const GL_MAX_DEBUG_MESSAGE_LENGTH_ARB: GLenum = 0x9143;
2270 #[doc = "`GL_MAX_DEBUG_MESSAGE_LENGTH_KHR: GLenum = 0x9143`"]
2271
2272 pub const GL_MAX_DEBUG_MESSAGE_LENGTH_KHR: GLenum = 0x9143;
2273 #[doc = "`GL_MAX_DEPTH: GLenum = 0x8280`"]
2274 #[doc = "* **Group:** InternalFormatPName"]
2275 pub const GL_MAX_DEPTH: GLenum = 0x8280;
2276 #[doc = "`GL_MAX_DEPTH_TEXTURE_SAMPLES: GLenum = 0x910F`"]
2277 #[doc = "* **Group:** GetPName"]
2278 pub const GL_MAX_DEPTH_TEXTURE_SAMPLES: GLenum = 0x910F;
2279 #[doc = "`GL_MAX_DRAW_BUFFERS: GLenum = 0x8824`"]
2280 #[doc = "* **Group:** GetPName"]
2281 pub const GL_MAX_DRAW_BUFFERS: GLenum = 0x8824;
2282 #[doc = "`GL_MAX_DUAL_SOURCE_DRAW_BUFFERS: GLenum = 0x88FC`"]
2283 #[doc = "* **Group:** GetPName"]
2284 pub const GL_MAX_DUAL_SOURCE_DRAW_BUFFERS: GLenum = 0x88FC;
2285 #[doc = "`GL_MAX_ELEMENTS_INDICES: GLenum = 0x80E9`"]
2286 #[doc = "* **Group:** GetPName"]
2287 pub const GL_MAX_ELEMENTS_INDICES: GLenum = 0x80E9;
2288 #[doc = "`GL_MAX_ELEMENTS_VERTICES: GLenum = 0x80E8`"]
2289 #[doc = "* **Group:** GetPName"]
2290 pub const GL_MAX_ELEMENTS_VERTICES: GLenum = 0x80E8;
2291 #[doc = "`GL_MAX_ELEMENT_INDEX: GLenum = 0x8D6B`"]
2292 #[doc = "* **Group:** GetPName"]
2293 pub const GL_MAX_ELEMENT_INDEX: GLenum = 0x8D6B;
2294 #[doc = "`GL_MAX_FRAGMENT_ATOMIC_COUNTERS: GLenum = 0x92D6`"]
2295 #[doc = "* **Group:** GetPName"]
2296 pub const GL_MAX_FRAGMENT_ATOMIC_COUNTERS: GLenum = 0x92D6;
2297 #[doc = "`GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92D0`"]
2298 pub const GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92D0;
2299 #[doc = "`GL_MAX_FRAGMENT_IMAGE_UNIFORMS: GLenum = 0x90CE`"]
2300 pub const GL_MAX_FRAGMENT_IMAGE_UNIFORMS: GLenum = 0x90CE;
2301 #[doc = "`GL_MAX_FRAGMENT_INPUT_COMPONENTS: GLenum = 0x9125`"]
2302 #[doc = "* **Group:** GetPName"]
2303 pub const GL_MAX_FRAGMENT_INPUT_COMPONENTS: GLenum = 0x9125;
2304 #[doc = "`GL_MAX_FRAGMENT_INTERPOLATION_OFFSET: GLenum = 0x8E5C`"]
2305 pub const GL_MAX_FRAGMENT_INTERPOLATION_OFFSET: GLenum = 0x8E5C;
2306 #[doc = "`GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS: GLenum = 0x90DA`"]
2307 #[doc = "* **Group:** GetPName"]
2308 pub const GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS: GLenum = 0x90DA;
2309 #[doc = "`GL_MAX_FRAGMENT_UNIFORM_BLOCKS: GLenum = 0x8A2D`"]
2310 #[doc = "* **Group:** GetPName"]
2311 pub const GL_MAX_FRAGMENT_UNIFORM_BLOCKS: GLenum = 0x8A2D;
2312 #[doc = "`GL_MAX_FRAGMENT_UNIFORM_COMPONENTS: GLenum = 0x8B49`"]
2313 #[doc = "* **Group:** GetPName"]
2314 pub const GL_MAX_FRAGMENT_UNIFORM_COMPONENTS: GLenum = 0x8B49;
2315 #[doc = "`GL_MAX_FRAGMENT_UNIFORM_VECTORS: GLenum = 0x8DFD`"]
2316 #[doc = "* **Group:** GetPName"]
2317 pub const GL_MAX_FRAGMENT_UNIFORM_VECTORS: GLenum = 0x8DFD;
2318 #[doc = "`GL_MAX_FRAMEBUFFER_HEIGHT: GLenum = 0x9316`"]
2319 #[doc = "* **Group:** GetPName"]
2320 pub const GL_MAX_FRAMEBUFFER_HEIGHT: GLenum = 0x9316;
2321 #[doc = "`GL_MAX_FRAMEBUFFER_LAYERS: GLenum = 0x9317`"]
2322 #[doc = "* **Group:** GetPName"]
2323 pub const GL_MAX_FRAMEBUFFER_LAYERS: GLenum = 0x9317;
2324 #[doc = "`GL_MAX_FRAMEBUFFER_SAMPLES: GLenum = 0x9318`"]
2325 #[doc = "* **Group:** GetPName"]
2326 pub const GL_MAX_FRAMEBUFFER_SAMPLES: GLenum = 0x9318;
2327 #[doc = "`GL_MAX_FRAMEBUFFER_WIDTH: GLenum = 0x9315`"]
2328 #[doc = "* **Group:** GetPName"]
2329 pub const GL_MAX_FRAMEBUFFER_WIDTH: GLenum = 0x9315;
2330 #[doc = "`GL_MAX_GEOMETRY_ATOMIC_COUNTERS: GLenum = 0x92D5`"]
2331 #[doc = "* **Group:** GetPName"]
2332 pub const GL_MAX_GEOMETRY_ATOMIC_COUNTERS: GLenum = 0x92D5;
2333 #[doc = "`GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CF`"]
2334 pub const GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CF;
2335 #[doc = "`GL_MAX_GEOMETRY_IMAGE_UNIFORMS: GLenum = 0x90CD`"]
2336 pub const GL_MAX_GEOMETRY_IMAGE_UNIFORMS: GLenum = 0x90CD;
2337 #[doc = "`GL_MAX_GEOMETRY_INPUT_COMPONENTS: GLenum = 0x9123`"]
2338 #[doc = "* **Group:** GetPName"]
2339 pub const GL_MAX_GEOMETRY_INPUT_COMPONENTS: GLenum = 0x9123;
2340 #[doc = "`GL_MAX_GEOMETRY_OUTPUT_COMPONENTS: GLenum = 0x9124`"]
2341 #[doc = "* **Group:** GetPName"]
2342 pub const GL_MAX_GEOMETRY_OUTPUT_COMPONENTS: GLenum = 0x9124;
2343 #[doc = "`GL_MAX_GEOMETRY_OUTPUT_VERTICES: GLenum = 0x8DE0`"]
2344 pub const GL_MAX_GEOMETRY_OUTPUT_VERTICES: GLenum = 0x8DE0;
2345 #[doc = "`GL_MAX_GEOMETRY_SHADER_INVOCATIONS: GLenum = 0x8E5A`"]
2346 pub const GL_MAX_GEOMETRY_SHADER_INVOCATIONS: GLenum = 0x8E5A;
2347 #[doc = "`GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS: GLenum = 0x90D7`"]
2348 #[doc = "* **Group:** GetPName"]
2349 pub const GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS: GLenum = 0x90D7;
2350 #[doc = "`GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS: GLenum = 0x8C29`"]
2351 #[doc = "* **Group:** GetPName"]
2352 pub const GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS: GLenum = 0x8C29;
2353 #[doc = "`GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS: GLenum = 0x8DE1`"]
2354 pub const GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS: GLenum = 0x8DE1;
2355 #[doc = "`GL_MAX_GEOMETRY_UNIFORM_BLOCKS: GLenum = 0x8A2C`"]
2356 #[doc = "* **Group:** GetPName"]
2357 pub const GL_MAX_GEOMETRY_UNIFORM_BLOCKS: GLenum = 0x8A2C;
2358 #[doc = "`GL_MAX_GEOMETRY_UNIFORM_COMPONENTS: GLenum = 0x8DDF`"]
2359 #[doc = "* **Group:** GetPName"]
2360 pub const GL_MAX_GEOMETRY_UNIFORM_COMPONENTS: GLenum = 0x8DDF;
2361 #[doc = "`GL_MAX_HEIGHT: GLenum = 0x827F`"]
2362 #[doc = "* **Group:** InternalFormatPName"]
2363 pub const GL_MAX_HEIGHT: GLenum = 0x827F;
2364 #[doc = "`GL_MAX_IMAGE_SAMPLES: GLenum = 0x906D`"]
2365 pub const GL_MAX_IMAGE_SAMPLES: GLenum = 0x906D;
2366 #[doc = "`GL_MAX_IMAGE_UNITS: GLenum = 0x8F38`"]
2367 pub const GL_MAX_IMAGE_UNITS: GLenum = 0x8F38;
2368 #[doc = "`GL_MAX_INTEGER_SAMPLES: GLenum = 0x9110`"]
2369 #[doc = "* **Group:** GetPName"]
2370 pub const GL_MAX_INTEGER_SAMPLES: GLenum = 0x9110;
2371 #[doc = "`GL_MAX_LABEL_LENGTH: GLenum = 0x82E8`"]
2372 #[doc = "* **Group:** GetPName"]
2373 pub const GL_MAX_LABEL_LENGTH: GLenum = 0x82E8;
2374 #[doc = "`GL_MAX_LABEL_LENGTH_KHR: GLenum = 0x82E8`"]
2375
2376 pub const GL_MAX_LABEL_LENGTH_KHR: GLenum = 0x82E8;
2377 #[doc = "`GL_MAX_LAYERS: GLenum = 0x8281`"]
2378 #[doc = "* **Group:** InternalFormatPName"]
2379 pub const GL_MAX_LAYERS: GLenum = 0x8281;
2380 #[doc = "`GL_MAX_NAME_LENGTH: GLenum = 0x92F6`"]
2381 #[doc = "* **Group:** ProgramInterfacePName"]
2382 pub const GL_MAX_NAME_LENGTH: GLenum = 0x92F6;
2383 #[doc = "`GL_MAX_NUM_ACTIVE_VARIABLES: GLenum = 0x92F7`"]
2384 #[doc = "* **Group:** ProgramInterfacePName"]
2385 pub const GL_MAX_NUM_ACTIVE_VARIABLES: GLenum = 0x92F7;
2386 #[doc = "`GL_MAX_NUM_COMPATIBLE_SUBROUTINES: GLenum = 0x92F8`"]
2387 #[doc = "* **Group:** ProgramInterfacePName"]
2388 pub const GL_MAX_NUM_COMPATIBLE_SUBROUTINES: GLenum = 0x92F8;
2389 #[doc = "`GL_MAX_PATCH_VERTICES: GLenum = 0x8E7D`"]
2390 pub const GL_MAX_PATCH_VERTICES: GLenum = 0x8E7D;
2391 #[doc = "`GL_MAX_PROGRAM_TEXEL_OFFSET: GLenum = 0x8905`"]
2392 #[doc = "* **Group:** GetPName"]
2393 pub const GL_MAX_PROGRAM_TEXEL_OFFSET: GLenum = 0x8905;
2394 #[doc = "`GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET: GLenum = 0x8E5F`"]
2395 pub const GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET: GLenum = 0x8E5F;
2396 #[doc = "`GL_MAX_RECTANGLE_TEXTURE_SIZE: GLenum = 0x84F8`"]
2397 #[doc = "* **Group:** GetPName"]
2398 pub const GL_MAX_RECTANGLE_TEXTURE_SIZE: GLenum = 0x84F8;
2399 #[doc = "`GL_MAX_RENDERBUFFER_SIZE: GLenum = 0x84E8`"]
2400 #[doc = "* **Group:** GetPName"]
2401 pub const GL_MAX_RENDERBUFFER_SIZE: GLenum = 0x84E8;
2402 #[doc = "`GL_MAX_SAMPLES: GLenum = 0x8D57`"]
2403 pub const GL_MAX_SAMPLES: GLenum = 0x8D57;
2404 #[doc = "`GL_MAX_SAMPLE_MASK_WORDS: GLenum = 0x8E59`"]
2405 #[doc = "* **Group:** GetPName"]
2406 pub const GL_MAX_SAMPLE_MASK_WORDS: GLenum = 0x8E59;
2407 #[doc = "`GL_MAX_SERVER_WAIT_TIMEOUT: GLenum = 0x9111`"]
2408 #[doc = "* **Group:** GetPName"]
2409 pub const GL_MAX_SERVER_WAIT_TIMEOUT: GLenum = 0x9111;
2410 #[doc = "`GL_MAX_SHADER_COMPILER_THREADS_ARB: GLenum = 0x91B0`"]
2411 #[doc = "* **Alias Of:** `GL_MAX_SHADER_COMPILER_THREADS_KHR`"]
2412
2413 pub const GL_MAX_SHADER_COMPILER_THREADS_ARB: GLenum = 0x91B0;
2414 #[doc = "`GL_MAX_SHADER_COMPILER_THREADS_KHR: GLenum = 0x91B0`"]
2415
2416 pub const GL_MAX_SHADER_COMPILER_THREADS_KHR: GLenum = 0x91B0;
2417 #[doc = "`GL_MAX_SHADER_STORAGE_BLOCK_SIZE: GLenum = 0x90DE`"]
2418 pub const GL_MAX_SHADER_STORAGE_BLOCK_SIZE: GLenum = 0x90DE;
2419 #[doc = "`GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS: GLenum = 0x90DD`"]
2420 #[doc = "* **Group:** GetPName"]
2421 pub const GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS: GLenum = 0x90DD;
2422 #[doc = "`GL_MAX_SUBROUTINES: GLenum = 0x8DE7`"]
2423 pub const GL_MAX_SUBROUTINES: GLenum = 0x8DE7;
2424 #[doc = "`GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS: GLenum = 0x8DE8`"]
2425 pub const GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS: GLenum = 0x8DE8;
2426 #[doc = "`GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS: GLenum = 0x92D3`"]
2427 #[doc = "* **Group:** GetPName"]
2428 pub const GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS: GLenum = 0x92D3;
2429 #[doc = "`GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CD`"]
2430 pub const GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CD;
2431 #[doc = "`GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS: GLenum = 0x90CB`"]
2432 pub const GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS: GLenum = 0x90CB;
2433 #[doc = "`GL_MAX_TESS_CONTROL_INPUT_COMPONENTS: GLenum = 0x886C`"]
2434 pub const GL_MAX_TESS_CONTROL_INPUT_COMPONENTS: GLenum = 0x886C;
2435 #[doc = "`GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS: GLenum = 0x8E83`"]
2436 pub const GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS: GLenum = 0x8E83;
2437 #[doc = "`GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS: GLenum = 0x90D8`"]
2438 #[doc = "* **Group:** GetPName"]
2439 pub const GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS: GLenum = 0x90D8;
2440 #[doc = "`GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS: GLenum = 0x8E81`"]
2441 pub const GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS: GLenum = 0x8E81;
2442 #[doc = "`GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS: GLenum = 0x8E85`"]
2443 pub const GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS: GLenum = 0x8E85;
2444 #[doc = "`GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS: GLenum = 0x8E89`"]
2445 #[doc = "* **Group:** GetPName"]
2446 pub const GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS: GLenum = 0x8E89;
2447 #[doc = "`GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS: GLenum = 0x8E7F`"]
2448 pub const GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS: GLenum = 0x8E7F;
2449 #[doc = "`GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS: GLenum = 0x92D4`"]
2450 #[doc = "* **Group:** GetPName"]
2451 pub const GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS: GLenum = 0x92D4;
2452 #[doc = "`GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CE`"]
2453 pub const GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CE;
2454 #[doc = "`GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS: GLenum = 0x90CC`"]
2455 pub const GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS: GLenum = 0x90CC;
2456 #[doc = "`GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS: GLenum = 0x886D`"]
2457 pub const GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS: GLenum = 0x886D;
2458 #[doc = "`GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS: GLenum = 0x8E86`"]
2459 pub const GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS: GLenum = 0x8E86;
2460 #[doc = "`GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS: GLenum = 0x90D9`"]
2461 #[doc = "* **Group:** GetPName"]
2462 pub const GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS: GLenum = 0x90D9;
2463 #[doc = "`GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS: GLenum = 0x8E82`"]
2464 pub const GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS: GLenum = 0x8E82;
2465 #[doc = "`GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS: GLenum = 0x8E8A`"]
2466 #[doc = "* **Group:** GetPName"]
2467 pub const GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS: GLenum = 0x8E8A;
2468 #[doc = "`GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS: GLenum = 0x8E80`"]
2469 pub const GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS: GLenum = 0x8E80;
2470 #[doc = "`GL_MAX_TESS_GEN_LEVEL: GLenum = 0x8E7E`"]
2471 pub const GL_MAX_TESS_GEN_LEVEL: GLenum = 0x8E7E;
2472 #[doc = "`GL_MAX_TESS_PATCH_COMPONENTS: GLenum = 0x8E84`"]
2473 pub const GL_MAX_TESS_PATCH_COMPONENTS: GLenum = 0x8E84;
2474 #[doc = "`GL_MAX_TEXTURE_BUFFER_SIZE: GLenum = 0x8C2B`"]
2475 #[doc = "* **Group:** GetPName"]
2476 pub const GL_MAX_TEXTURE_BUFFER_SIZE: GLenum = 0x8C2B;
2477 #[doc = "`GL_MAX_TEXTURE_IMAGE_UNITS: GLenum = 0x8872`"]
2478 #[doc = "* **Group:** GetPName"]
2479 pub const GL_MAX_TEXTURE_IMAGE_UNITS: GLenum = 0x8872;
2480 #[doc = "`GL_MAX_TEXTURE_LOD_BIAS: GLenum = 0x84FD`"]
2481 #[doc = "* **Group:** GetPName"]
2482 pub const GL_MAX_TEXTURE_LOD_BIAS: GLenum = 0x84FD;
2483 #[doc = "`GL_MAX_TEXTURE_MAX_ANISOTROPY: GLenum = 0x84FF`"]
2484 pub const GL_MAX_TEXTURE_MAX_ANISOTROPY: GLenum = 0x84FF;
2485 #[doc = "`GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: GLenum = 0x84FF`"]
2486 #[doc = "* **Alias Of:** `GL_MAX_TEXTURE_MAX_ANISOTROPY`"]
2487
2488 pub const GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: GLenum = 0x84FF;
2489 #[doc = "`GL_MAX_TEXTURE_SIZE: GLenum = 0x0D33`"]
2490 #[doc = "* **Group:** GetPName"]
2491 pub const GL_MAX_TEXTURE_SIZE: GLenum = 0x0D33;
2492 #[doc = "`GL_MAX_TRANSFORM_FEEDBACK_BUFFERS: GLenum = 0x8E70`"]
2493 pub const GL_MAX_TRANSFORM_FEEDBACK_BUFFERS: GLenum = 0x8E70;
2494 #[doc = "`GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: GLenum = 0x8C8A`"]
2495 pub const GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: GLenum = 0x8C8A;
2496 #[doc = "`GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: GLenum = 0x8C8B`"]
2497 pub const GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: GLenum = 0x8C8B;
2498 #[doc = "`GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: GLenum = 0x8C80`"]
2499 pub const GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: GLenum = 0x8C80;
2500 #[doc = "`GL_MAX_UNIFORM_BLOCK_SIZE: GLenum = 0x8A30`"]
2501 #[doc = "* **Group:** GetPName"]
2502 pub const GL_MAX_UNIFORM_BLOCK_SIZE: GLenum = 0x8A30;
2503 #[doc = "`GL_MAX_UNIFORM_BUFFER_BINDINGS: GLenum = 0x8A2F`"]
2504 #[doc = "* **Group:** GetPName"]
2505 pub const GL_MAX_UNIFORM_BUFFER_BINDINGS: GLenum = 0x8A2F;
2506 #[doc = "`GL_MAX_UNIFORM_LOCATIONS: GLenum = 0x826E`"]
2507 #[doc = "* **Group:** GetPName"]
2508 pub const GL_MAX_UNIFORM_LOCATIONS: GLenum = 0x826E;
2509 #[doc = "`GL_MAX_VARYING_COMPONENTS: GLenum = 0x8B4B`"]
2510 #[doc = "* **Group:** GetPName"]
2511 #[doc = "* **Alias Of:** `MAX_VARYING_FLOATS`"]
2512 pub const GL_MAX_VARYING_COMPONENTS: GLenum = 0x8B4B;
2513 #[doc = "`GL_MAX_VARYING_FLOATS: GLenum = 0x8B4B`"]
2514 #[doc = "* **Group:** GetPName"]
2515 pub const GL_MAX_VARYING_FLOATS: GLenum = 0x8B4B;
2516 #[doc = "`GL_MAX_VARYING_VECTORS: GLenum = 0x8DFC`"]
2517 #[doc = "* **Group:** GetPName"]
2518 pub const GL_MAX_VARYING_VECTORS: GLenum = 0x8DFC;
2519 #[doc = "`GL_MAX_VERTEX_ATOMIC_COUNTERS: GLenum = 0x92D2`"]
2520 #[doc = "* **Group:** GetPName"]
2521 pub const GL_MAX_VERTEX_ATOMIC_COUNTERS: GLenum = 0x92D2;
2522 #[doc = "`GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CC`"]
2523 pub const GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CC;
2524 #[doc = "`GL_MAX_VERTEX_ATTRIBS: GLenum = 0x8869`"]
2525 #[doc = "* **Group:** GetPName"]
2526 pub const GL_MAX_VERTEX_ATTRIBS: GLenum = 0x8869;
2527 #[doc = "`GL_MAX_VERTEX_ATTRIB_BINDINGS: GLenum = 0x82DA`"]
2528 #[doc = "* **Group:** GetPName"]
2529 pub const GL_MAX_VERTEX_ATTRIB_BINDINGS: GLenum = 0x82DA;
2530 #[doc = "`GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET: GLenum = 0x82D9`"]
2531 #[doc = "* **Group:** GetPName"]
2532 pub const GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET: GLenum = 0x82D9;
2533 #[doc = "`GL_MAX_VERTEX_ATTRIB_STRIDE: GLenum = 0x82E5`"]
2534 pub const GL_MAX_VERTEX_ATTRIB_STRIDE: GLenum = 0x82E5;
2535 #[doc = "`GL_MAX_VERTEX_IMAGE_UNIFORMS: GLenum = 0x90CA`"]
2536 pub const GL_MAX_VERTEX_IMAGE_UNIFORMS: GLenum = 0x90CA;
2537 #[doc = "`GL_MAX_VERTEX_OUTPUT_COMPONENTS: GLenum = 0x9122`"]
2538 #[doc = "* **Group:** GetPName"]
2539 pub const GL_MAX_VERTEX_OUTPUT_COMPONENTS: GLenum = 0x9122;
2540 #[doc = "`GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS: GLenum = 0x90D6`"]
2541 #[doc = "* **Group:** GetPName"]
2542 pub const GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS: GLenum = 0x90D6;
2543 #[doc = "`GL_MAX_VERTEX_STREAMS: GLenum = 0x8E71`"]
2544 pub const GL_MAX_VERTEX_STREAMS: GLenum = 0x8E71;
2545 #[doc = "`GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum = 0x8B4C`"]
2546 #[doc = "* **Group:** GetPName"]
2547 pub const GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum = 0x8B4C;
2548 #[doc = "`GL_MAX_VERTEX_UNIFORM_BLOCKS: GLenum = 0x8A2B`"]
2549 #[doc = "* **Group:** GetPName"]
2550 pub const GL_MAX_VERTEX_UNIFORM_BLOCKS: GLenum = 0x8A2B;
2551 #[doc = "`GL_MAX_VERTEX_UNIFORM_COMPONENTS: GLenum = 0x8B4A`"]
2552 #[doc = "* **Group:** GetPName"]
2553 pub const GL_MAX_VERTEX_UNIFORM_COMPONENTS: GLenum = 0x8B4A;
2554 #[doc = "`GL_MAX_VERTEX_UNIFORM_VECTORS: GLenum = 0x8DFB`"]
2555 #[doc = "* **Group:** GetPName"]
2556 pub const GL_MAX_VERTEX_UNIFORM_VECTORS: GLenum = 0x8DFB;
2557 #[doc = "`GL_MAX_VIEWPORTS: GLenum = 0x825B`"]
2558 #[doc = "* **Group:** GetPName"]
2559 pub const GL_MAX_VIEWPORTS: GLenum = 0x825B;
2560 #[doc = "`GL_MAX_VIEWPORT_DIMS: GLenum = 0x0D3A`"]
2561 #[doc = "* **Group:** GetPName"]
2562 pub const GL_MAX_VIEWPORT_DIMS: GLenum = 0x0D3A;
2563 #[doc = "`GL_MAX_WIDTH: GLenum = 0x827E`"]
2564 #[doc = "* **Group:** InternalFormatPName"]
2565 pub const GL_MAX_WIDTH: GLenum = 0x827E;
2566 #[doc = "`GL_MEDIUM_FLOAT: GLenum = 0x8DF1`"]
2567 #[doc = "* **Group:** PrecisionType"]
2568 pub const GL_MEDIUM_FLOAT: GLenum = 0x8DF1;
2569 #[doc = "`GL_MEDIUM_INT: GLenum = 0x8DF4`"]
2570 #[doc = "* **Group:** PrecisionType"]
2571 pub const GL_MEDIUM_INT: GLenum = 0x8DF4;
2572 #[doc = "`GL_MIN: GLenum = 0x8007`"]
2573 #[doc = "* **Group:** BlendEquationModeEXT"]
2574 pub const GL_MIN: GLenum = 0x8007;
2575 #[doc = "`GL_MINOR_VERSION: GLenum = 0x821C`"]
2576 #[doc = "* **Group:** GetPName"]
2577 pub const GL_MINOR_VERSION: GLenum = 0x821C;
2578 #[doc = "`GL_MIN_FRAGMENT_INTERPOLATION_OFFSET: GLenum = 0x8E5B`"]
2579 pub const GL_MIN_FRAGMENT_INTERPOLATION_OFFSET: GLenum = 0x8E5B;
2580 #[doc = "`GL_MIN_MAP_BUFFER_ALIGNMENT: GLenum = 0x90BC`"]
2581 #[doc = "* **Group:** GetPName"]
2582 pub const GL_MIN_MAP_BUFFER_ALIGNMENT: GLenum = 0x90BC;
2583 #[doc = "`GL_MIN_PROGRAM_TEXEL_OFFSET: GLenum = 0x8904`"]
2584 #[doc = "* **Group:** GetPName"]
2585 pub const GL_MIN_PROGRAM_TEXEL_OFFSET: GLenum = 0x8904;
2586 #[doc = "`GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET: GLenum = 0x8E5E`"]
2587 pub const GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET: GLenum = 0x8E5E;
2588 #[doc = "`GL_MIN_SAMPLE_SHADING_VALUE: GLenum = 0x8C37`"]
2589 pub const GL_MIN_SAMPLE_SHADING_VALUE: GLenum = 0x8C37;
2590 #[doc = "`GL_MIPMAP: GLenum = 0x8293`"]
2591 #[doc = "* **Group:** InternalFormatPName"]
2592 pub const GL_MIPMAP: GLenum = 0x8293;
2593 #[doc = "`GL_MIRRORED_REPEAT: GLenum = 0x8370`"]
2594 #[doc = "* **Group:** TextureWrapMode"]
2595 pub const GL_MIRRORED_REPEAT: GLenum = 0x8370;
2596 #[doc = "`GL_MIRROR_CLAMP_TO_EDGE: GLenum = 0x8743`"]
2597 pub const GL_MIRROR_CLAMP_TO_EDGE: GLenum = 0x8743;
2598 #[doc = "`GL_MULTIPLY: GLenum = 0x9294`"]
2599 pub const GL_MULTIPLY: GLenum = 0x9294;
2600 #[doc = "`GL_MULTISAMPLE: GLenum = 0x809D`"]
2601 #[doc = "* **Group:** EnableCap"]
2602 pub const GL_MULTISAMPLE: GLenum = 0x809D;
2603 #[doc = "`GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY: GLenum = 0x9382`"]
2604 pub const GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY: GLenum = 0x9382;
2605 #[doc = "`GL_MULTISAMPLE_LINE_WIDTH_RANGE: GLenum = 0x9381`"]
2606 pub const GL_MULTISAMPLE_LINE_WIDTH_RANGE: GLenum = 0x9381;
2607 #[doc = "`GL_NAME_LENGTH: GLenum = 0x92F9`"]
2608 #[doc = "* **Group:** ProgramResourceProperty"]
2609 pub const GL_NAME_LENGTH: GLenum = 0x92F9;
2610 #[doc = "`GL_NAND: GLenum = 0x150E`"]
2611 #[doc = "* **Group:** LogicOp"]
2612 pub const GL_NAND: GLenum = 0x150E;
2613 #[doc = "`GL_NEAREST: GLenum = 0x2600`"]
2614 #[doc = "* **Groups:** BlitFramebufferFilter, TextureMagFilter, TextureMinFilter"]
2615 pub const GL_NEAREST: GLenum = 0x2600;
2616 #[doc = "`GL_NEAREST_MIPMAP_LINEAR: GLenum = 0x2702`"]
2617 #[doc = "* **Group:** TextureMinFilter"]
2618 pub const GL_NEAREST_MIPMAP_LINEAR: GLenum = 0x2702;
2619 #[doc = "`GL_NEAREST_MIPMAP_NEAREST: GLenum = 0x2700`"]
2620 #[doc = "* **Group:** TextureMinFilter"]
2621 pub const GL_NEAREST_MIPMAP_NEAREST: GLenum = 0x2700;
2622 #[doc = "`GL_NEGATIVE_ONE_TO_ONE: GLenum = 0x935E`"]
2623 #[doc = "* **Group:** ClipControlDepth"]
2624 pub const GL_NEGATIVE_ONE_TO_ONE: GLenum = 0x935E;
2625 #[doc = "`GL_NEVER: GLenum = 0x0200`"]
2626 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
2627 pub const GL_NEVER: GLenum = 0x0200;
2628 #[doc = "`GL_NICEST: GLenum = 0x1102`"]
2629 #[doc = "* **Group:** HintMode"]
2630 pub const GL_NICEST: GLenum = 0x1102;
2631 #[doc = "`GL_NONE: GLenum = 0`"]
2632 #[doc = "* **Groups:** SyncBehaviorFlags, TextureCompareMode, PathColorFormat, CombinerBiasNV, CombinerScaleNV, DrawBufferMode, PixelTexGenMode, ReadBufferMode, ColorBuffer, PathGenMode, PathTransformType, PathFontStyle"]
2633 pub const GL_NONE: GLenum = 0;
2634 #[doc = "`GL_NOOP: GLenum = 0x1505`"]
2635 #[doc = "* **Group:** LogicOp"]
2636 pub const GL_NOOP: GLenum = 0x1505;
2637 #[doc = "`GL_NOR: GLenum = 0x1508`"]
2638 #[doc = "* **Group:** LogicOp"]
2639 pub const GL_NOR: GLenum = 0x1508;
2640 #[doc = "`GL_NOTEQUAL: GLenum = 0x0205`"]
2641 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
2642 pub const GL_NOTEQUAL: GLenum = 0x0205;
2643 #[doc = "`GL_NO_ERROR: GLenum = 0`"]
2644 #[doc = "* **Groups:** GraphicsResetStatus, ErrorCode"]
2645 pub const GL_NO_ERROR: GLenum = 0;
2646 #[doc = "`GL_NO_RESET_NOTIFICATION: GLenum = 0x8261`"]
2647 pub const GL_NO_RESET_NOTIFICATION: GLenum = 0x8261;
2648 #[doc = "`GL_NUM_ACTIVE_VARIABLES: GLenum = 0x9304`"]
2649 #[doc = "* **Group:** ProgramResourceProperty"]
2650 pub const GL_NUM_ACTIVE_VARIABLES: GLenum = 0x9304;
2651 #[doc = "`GL_NUM_COMPATIBLE_SUBROUTINES: GLenum = 0x8E4A`"]
2652 #[doc = "* **Groups:** ProgramResourceProperty, SubroutineParameterName"]
2653 pub const GL_NUM_COMPATIBLE_SUBROUTINES: GLenum = 0x8E4A;
2654 #[doc = "`GL_NUM_COMPRESSED_TEXTURE_FORMATS: GLenum = 0x86A2`"]
2655 #[doc = "* **Group:** GetPName"]
2656 pub const GL_NUM_COMPRESSED_TEXTURE_FORMATS: GLenum = 0x86A2;
2657 #[doc = "`GL_NUM_EXTENSIONS: GLenum = 0x821D`"]
2658 #[doc = "* **Group:** GetPName"]
2659 pub const GL_NUM_EXTENSIONS: GLenum = 0x821D;
2660 #[doc = "`GL_NUM_PROGRAM_BINARY_FORMATS: GLenum = 0x87FE`"]
2661 #[doc = "* **Group:** GetPName"]
2662 pub const GL_NUM_PROGRAM_BINARY_FORMATS: GLenum = 0x87FE;
2663 #[doc = "`GL_NUM_SAMPLE_COUNTS: GLenum = 0x9380`"]
2664 #[doc = "* **Group:** InternalFormatPName"]
2665 pub const GL_NUM_SAMPLE_COUNTS: GLenum = 0x9380;
2666 #[doc = "`GL_NUM_SHADER_BINARY_FORMATS: GLenum = 0x8DF9`"]
2667 #[doc = "* **Group:** GetPName"]
2668 pub const GL_NUM_SHADER_BINARY_FORMATS: GLenum = 0x8DF9;
2669 #[doc = "`GL_NUM_SHADING_LANGUAGE_VERSIONS: GLenum = 0x82E9`"]
2670 pub const GL_NUM_SHADING_LANGUAGE_VERSIONS: GLenum = 0x82E9;
2671 #[doc = "`GL_NUM_SPIR_V_EXTENSIONS: GLenum = 0x9554`"]
2672 pub const GL_NUM_SPIR_V_EXTENSIONS: GLenum = 0x9554;
2673 #[doc = "`GL_OBJECT_TYPE: GLenum = 0x9112`"]
2674 #[doc = "* **Group:** SyncParameterName"]
2675 pub const GL_OBJECT_TYPE: GLenum = 0x9112;
2676 #[doc = "`GL_OFFSET: GLenum = 0x92FC`"]
2677 #[doc = "* **Group:** ProgramResourceProperty"]
2678 pub const GL_OFFSET: GLenum = 0x92FC;
2679 #[doc = "`GL_ONE: GLenum = 1`"]
2680 #[doc = "* **Groups:** TextureSwizzle, BlendingFactor"]
2681 pub const GL_ONE: GLenum = 1;
2682 #[doc = "`GL_ONE_MINUS_CONSTANT_ALPHA: GLenum = 0x8004`"]
2683 #[doc = "* **Group:** BlendingFactor"]
2684 pub const GL_ONE_MINUS_CONSTANT_ALPHA: GLenum = 0x8004;
2685 #[doc = "`GL_ONE_MINUS_CONSTANT_COLOR: GLenum = 0x8002`"]
2686 #[doc = "* **Group:** BlendingFactor"]
2687 pub const GL_ONE_MINUS_CONSTANT_COLOR: GLenum = 0x8002;
2688 #[doc = "`GL_ONE_MINUS_DST_ALPHA: GLenum = 0x0305`"]
2689 #[doc = "* **Group:** BlendingFactor"]
2690 pub const GL_ONE_MINUS_DST_ALPHA: GLenum = 0x0305;
2691 #[doc = "`GL_ONE_MINUS_DST_COLOR: GLenum = 0x0307`"]
2692 #[doc = "* **Group:** BlendingFactor"]
2693 pub const GL_ONE_MINUS_DST_COLOR: GLenum = 0x0307;
2694 #[doc = "`GL_ONE_MINUS_SRC1_ALPHA: GLenum = 0x88FB`"]
2695 #[doc = "* **Group:** BlendingFactor"]
2696 pub const GL_ONE_MINUS_SRC1_ALPHA: GLenum = 0x88FB;
2697 #[doc = "`GL_ONE_MINUS_SRC1_COLOR: GLenum = 0x88FA`"]
2698 #[doc = "* **Group:** BlendingFactor"]
2699 pub const GL_ONE_MINUS_SRC1_COLOR: GLenum = 0x88FA;
2700 #[doc = "`GL_ONE_MINUS_SRC_ALPHA: GLenum = 0x0303`"]
2701 #[doc = "* **Group:** BlendingFactor"]
2702 pub const GL_ONE_MINUS_SRC_ALPHA: GLenum = 0x0303;
2703 #[doc = "`GL_ONE_MINUS_SRC_COLOR: GLenum = 0x0301`"]
2704 #[doc = "* **Group:** BlendingFactor"]
2705 pub const GL_ONE_MINUS_SRC_COLOR: GLenum = 0x0301;
2706 #[doc = "`GL_OR: GLenum = 0x1507`"]
2707 #[doc = "* **Group:** LogicOp"]
2708 pub const GL_OR: GLenum = 0x1507;
2709 #[doc = "`GL_OR_INVERTED: GLenum = 0x150D`"]
2710 #[doc = "* **Group:** LogicOp"]
2711 pub const GL_OR_INVERTED: GLenum = 0x150D;
2712 #[doc = "`GL_OR_REVERSE: GLenum = 0x150B`"]
2713 #[doc = "* **Group:** LogicOp"]
2714 pub const GL_OR_REVERSE: GLenum = 0x150B;
2715 #[doc = "`GL_OUT_OF_MEMORY: GLenum = 0x0505`"]
2716 #[doc = "* **Group:** ErrorCode"]
2717 pub const GL_OUT_OF_MEMORY: GLenum = 0x0505;
2718 #[doc = "`GL_OVERLAY: GLenum = 0x9296`"]
2719 pub const GL_OVERLAY: GLenum = 0x9296;
2720 #[doc = "`GL_PACK_ALIGNMENT: GLenum = 0x0D05`"]
2721 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2722 pub const GL_PACK_ALIGNMENT: GLenum = 0x0D05;
2723 #[doc = "`GL_PACK_COMPRESSED_BLOCK_DEPTH: GLenum = 0x912D`"]
2724 pub const GL_PACK_COMPRESSED_BLOCK_DEPTH: GLenum = 0x912D;
2725 #[doc = "`GL_PACK_COMPRESSED_BLOCK_HEIGHT: GLenum = 0x912C`"]
2726 pub const GL_PACK_COMPRESSED_BLOCK_HEIGHT: GLenum = 0x912C;
2727 #[doc = "`GL_PACK_COMPRESSED_BLOCK_SIZE: GLenum = 0x912E`"]
2728 pub const GL_PACK_COMPRESSED_BLOCK_SIZE: GLenum = 0x912E;
2729 #[doc = "`GL_PACK_COMPRESSED_BLOCK_WIDTH: GLenum = 0x912B`"]
2730 pub const GL_PACK_COMPRESSED_BLOCK_WIDTH: GLenum = 0x912B;
2731 #[doc = "`GL_PACK_IMAGE_HEIGHT: GLenum = 0x806C`"]
2732 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2733 pub const GL_PACK_IMAGE_HEIGHT: GLenum = 0x806C;
2734 #[doc = "`GL_PACK_LSB_FIRST: GLenum = 0x0D01`"]
2735 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2736 pub const GL_PACK_LSB_FIRST: GLenum = 0x0D01;
2737 #[doc = "`GL_PACK_ROW_LENGTH: GLenum = 0x0D02`"]
2738 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2739 pub const GL_PACK_ROW_LENGTH: GLenum = 0x0D02;
2740 #[doc = "`GL_PACK_SKIP_IMAGES: GLenum = 0x806B`"]
2741 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2742 pub const GL_PACK_SKIP_IMAGES: GLenum = 0x806B;
2743 #[doc = "`GL_PACK_SKIP_PIXELS: GLenum = 0x0D04`"]
2744 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2745 pub const GL_PACK_SKIP_PIXELS: GLenum = 0x0D04;
2746 #[doc = "`GL_PACK_SKIP_ROWS: GLenum = 0x0D03`"]
2747 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2748 pub const GL_PACK_SKIP_ROWS: GLenum = 0x0D03;
2749 #[doc = "`GL_PACK_SWAP_BYTES: GLenum = 0x0D00`"]
2750 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2751 pub const GL_PACK_SWAP_BYTES: GLenum = 0x0D00;
2752 #[doc = "`GL_PARAMETER_BUFFER: GLenum = 0x80EE`"]
2753 #[doc = "* **Group:** BufferTargetARB"]
2754 pub const GL_PARAMETER_BUFFER: GLenum = 0x80EE;
2755 #[doc = "`GL_PARAMETER_BUFFER_BINDING: GLenum = 0x80EF`"]
2756 pub const GL_PARAMETER_BUFFER_BINDING: GLenum = 0x80EF;
2757 #[doc = "`GL_PATCHES: GLenum = 0x000E`"]
2758 #[doc = "* **Group:** PrimitiveType"]
2759 pub const GL_PATCHES: GLenum = 0x000E;
2760 #[doc = "`GL_PATCH_DEFAULT_INNER_LEVEL: GLenum = 0x8E73`"]
2761 #[doc = "* **Group:** PatchParameterName"]
2762 pub const GL_PATCH_DEFAULT_INNER_LEVEL: GLenum = 0x8E73;
2763 #[doc = "`GL_PATCH_DEFAULT_OUTER_LEVEL: GLenum = 0x8E74`"]
2764 #[doc = "* **Group:** PatchParameterName"]
2765 pub const GL_PATCH_DEFAULT_OUTER_LEVEL: GLenum = 0x8E74;
2766 #[doc = "`GL_PATCH_VERTICES: GLenum = 0x8E72`"]
2767 #[doc = "* **Group:** PatchParameterName"]
2768 pub const GL_PATCH_VERTICES: GLenum = 0x8E72;
2769 #[doc = "`GL_PIXEL_BUFFER_BARRIER_BIT: GLbitfield = 0x00000080`"]
2770 #[doc = "* **Group:** MemoryBarrierMask"]
2771 pub const GL_PIXEL_BUFFER_BARRIER_BIT: GLbitfield = 0x00000080;
2772 #[doc = "`GL_PIXEL_PACK_BUFFER: GLenum = 0x88EB`"]
2773 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
2774 pub const GL_PIXEL_PACK_BUFFER: GLenum = 0x88EB;
2775 #[doc = "`GL_PIXEL_PACK_BUFFER_BINDING: GLenum = 0x88ED`"]
2776 #[doc = "* **Group:** GetPName"]
2777 pub const GL_PIXEL_PACK_BUFFER_BINDING: GLenum = 0x88ED;
2778 #[doc = "`GL_PIXEL_UNPACK_BUFFER: GLenum = 0x88EC`"]
2779 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
2780 pub const GL_PIXEL_UNPACK_BUFFER: GLenum = 0x88EC;
2781 #[doc = "`GL_PIXEL_UNPACK_BUFFER_BINDING: GLenum = 0x88EF`"]
2782 #[doc = "* **Group:** GetPName"]
2783 pub const GL_PIXEL_UNPACK_BUFFER_BINDING: GLenum = 0x88EF;
2784 #[doc = "`GL_POINT: GLenum = 0x1B00`"]
2785 #[doc = "* **Groups:** PolygonMode, MeshMode1, MeshMode2"]
2786 pub const GL_POINT: GLenum = 0x1B00;
2787 #[doc = "`GL_POINTS: GLenum = 0x0000`"]
2788 #[doc = "* **Group:** PrimitiveType"]
2789 pub const GL_POINTS: GLenum = 0x0000;
2790 #[doc = "`GL_POINT_FADE_THRESHOLD_SIZE: GLenum = 0x8128`"]
2791 #[doc = "* **Groups:** PointParameterNameSGIS, PointParameterNameARB, GetPName"]
2792 pub const GL_POINT_FADE_THRESHOLD_SIZE: GLenum = 0x8128;
2793 #[doc = "`GL_POINT_SIZE: GLenum = 0x0B11`"]
2794 #[doc = "* **Group:** GetPName"]
2795 pub const GL_POINT_SIZE: GLenum = 0x0B11;
2796 #[doc = "`GL_POINT_SIZE_GRANULARITY: GLenum = 0x0B13`"]
2797 #[doc = "* **Group:** GetPName"]
2798 pub const GL_POINT_SIZE_GRANULARITY: GLenum = 0x0B13;
2799 #[doc = "`GL_POINT_SIZE_RANGE: GLenum = 0x0B12`"]
2800 #[doc = "* **Group:** GetPName"]
2801 pub const GL_POINT_SIZE_RANGE: GLenum = 0x0B12;
2802 #[doc = "`GL_POINT_SPRITE_COORD_ORIGIN: GLenum = 0x8CA0`"]
2803 pub const GL_POINT_SPRITE_COORD_ORIGIN: GLenum = 0x8CA0;
2804 #[doc = "`GL_POLYGON_MODE: GLenum = 0x0B40`"]
2805 #[doc = "* **Group:** GetPName"]
2806 pub const GL_POLYGON_MODE: GLenum = 0x0B40;
2807 #[doc = "`GL_POLYGON_OFFSET_CLAMP: GLenum = 0x8E1B`"]
2808 pub const GL_POLYGON_OFFSET_CLAMP: GLenum = 0x8E1B;
2809 #[doc = "`GL_POLYGON_OFFSET_FACTOR: GLenum = 0x8038`"]
2810 #[doc = "* **Group:** GetPName"]
2811 pub const GL_POLYGON_OFFSET_FACTOR: GLenum = 0x8038;
2812 #[doc = "`GL_POLYGON_OFFSET_FILL: GLenum = 0x8037`"]
2813 #[doc = "* **Groups:** GetPName, EnableCap"]
2814 pub const GL_POLYGON_OFFSET_FILL: GLenum = 0x8037;
2815 #[doc = "`GL_POLYGON_OFFSET_LINE: GLenum = 0x2A02`"]
2816 #[doc = "* **Groups:** GetPName, EnableCap"]
2817 pub const GL_POLYGON_OFFSET_LINE: GLenum = 0x2A02;
2818 #[doc = "`GL_POLYGON_OFFSET_POINT: GLenum = 0x2A01`"]
2819 #[doc = "* **Groups:** GetPName, EnableCap"]
2820 pub const GL_POLYGON_OFFSET_POINT: GLenum = 0x2A01;
2821 #[doc = "`GL_POLYGON_OFFSET_UNITS: GLenum = 0x2A00`"]
2822 #[doc = "* **Group:** GetPName"]
2823 pub const GL_POLYGON_OFFSET_UNITS: GLenum = 0x2A00;
2824 #[doc = "`GL_POLYGON_SMOOTH: GLenum = 0x0B41`"]
2825 #[doc = "* **Groups:** GetPName, EnableCap"]
2826 pub const GL_POLYGON_SMOOTH: GLenum = 0x0B41;
2827 #[doc = "`GL_POLYGON_SMOOTH_HINT: GLenum = 0x0C53`"]
2828 #[doc = "* **Groups:** HintTarget, GetPName"]
2829 pub const GL_POLYGON_SMOOTH_HINT: GLenum = 0x0C53;
2830 #[doc = "`GL_PRIMITIVES_GENERATED: GLenum = 0x8C87`"]
2831 #[doc = "* **Group:** QueryTarget"]
2832 pub const GL_PRIMITIVES_GENERATED: GLenum = 0x8C87;
2833 #[doc = "`GL_PRIMITIVES_SUBMITTED: GLenum = 0x82EF`"]
2834 #[doc = "* **Group:** QueryTarget"]
2835 pub const GL_PRIMITIVES_SUBMITTED: GLenum = 0x82EF;
2836 #[doc = "`GL_PRIMITIVE_BOUNDING_BOX: GLenum = 0x92BE`"]
2837 pub const GL_PRIMITIVE_BOUNDING_BOX: GLenum = 0x92BE;
2838 #[doc = "`GL_PRIMITIVE_RESTART: GLenum = 0x8F9D`"]
2839 #[doc = "* **Group:** EnableCap"]
2840 pub const GL_PRIMITIVE_RESTART: GLenum = 0x8F9D;
2841 #[doc = "`GL_PRIMITIVE_RESTART_FIXED_INDEX: GLenum = 0x8D69`"]
2842 #[doc = "* **Group:** EnableCap"]
2843 pub const GL_PRIMITIVE_RESTART_FIXED_INDEX: GLenum = 0x8D69;
2844 #[doc = "`GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED: GLenum = 0x8221`"]
2845 pub const GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED: GLenum = 0x8221;
2846 #[doc = "`GL_PRIMITIVE_RESTART_INDEX: GLenum = 0x8F9E`"]
2847 #[doc = "* **Group:** GetPName"]
2848 pub const GL_PRIMITIVE_RESTART_INDEX: GLenum = 0x8F9E;
2849 #[doc = "`GL_PROGRAM: GLenum = 0x82E2`"]
2850 #[doc = "* **Group:** ObjectIdentifier"]
2851 pub const GL_PROGRAM: GLenum = 0x82E2;
2852 #[doc = "`GL_PROGRAM_BINARY_FORMATS: GLenum = 0x87FF`"]
2853 #[doc = "* **Group:** GetPName"]
2854 pub const GL_PROGRAM_BINARY_FORMATS: GLenum = 0x87FF;
2855 #[doc = "`GL_PROGRAM_BINARY_LENGTH: GLenum = 0x8741`"]
2856 #[doc = "* **Group:** ProgramPropertyARB"]
2857 pub const GL_PROGRAM_BINARY_LENGTH: GLenum = 0x8741;
2858 #[doc = "`GL_PROGRAM_BINARY_RETRIEVABLE_HINT: GLenum = 0x8257`"]
2859 #[doc = "* **Groups:** ProgramParameterPName, HintTarget"]
2860 pub const GL_PROGRAM_BINARY_RETRIEVABLE_HINT: GLenum = 0x8257;
2861 #[doc = "`GL_PROGRAM_INPUT: GLenum = 0x92E3`"]
2862 #[doc = "* **Group:** ProgramInterface"]
2863 pub const GL_PROGRAM_INPUT: GLenum = 0x92E3;
2864 #[doc = "`GL_PROGRAM_KHR: GLenum = 0x82E2`"]
2865
2866 pub const GL_PROGRAM_KHR: GLenum = 0x82E2;
2867 #[doc = "`GL_PROGRAM_OUTPUT: GLenum = 0x92E4`"]
2868 #[doc = "* **Group:** ProgramInterface"]
2869 pub const GL_PROGRAM_OUTPUT: GLenum = 0x92E4;
2870 #[doc = "`GL_PROGRAM_PIPELINE: GLenum = 0x82E4`"]
2871 #[doc = "* **Group:** ObjectIdentifier"]
2872 pub const GL_PROGRAM_PIPELINE: GLenum = 0x82E4;
2873 #[doc = "`GL_PROGRAM_PIPELINE_BINDING: GLenum = 0x825A`"]
2874 #[doc = "* **Group:** GetPName"]
2875 pub const GL_PROGRAM_PIPELINE_BINDING: GLenum = 0x825A;
2876 #[doc = "`GL_PROGRAM_PIPELINE_KHR: GLenum = 0x82E4`"]
2877
2878 pub const GL_PROGRAM_PIPELINE_KHR: GLenum = 0x82E4;
2879 #[doc = "`GL_PROGRAM_POINT_SIZE: GLenum = 0x8642`"]
2880 #[doc = "* **Groups:** GetPName, EnableCap"]
2881 #[doc = "* **Alias Of:** `GL_VERTEX_PROGRAM_POINT_SIZE`"]
2882 pub const GL_PROGRAM_POINT_SIZE: GLenum = 0x8642;
2883 #[doc = "`GL_PROGRAM_SEPARABLE: GLenum = 0x8258`"]
2884 #[doc = "* **Group:** ProgramParameterPName"]
2885 pub const GL_PROGRAM_SEPARABLE: GLenum = 0x8258;
2886 #[doc = "`GL_PROVOKING_VERTEX: GLenum = 0x8E4F`"]
2887 #[doc = "* **Group:** GetPName"]
2888 pub const GL_PROVOKING_VERTEX: GLenum = 0x8E4F;
2889 #[doc = "`GL_PROXY_TEXTURE_1D: GLenum = 0x8063`"]
2890 #[doc = "* **Group:** TextureTarget"]
2891 pub const GL_PROXY_TEXTURE_1D: GLenum = 0x8063;
2892 #[doc = "`GL_PROXY_TEXTURE_1D_ARRAY: GLenum = 0x8C19`"]
2893 #[doc = "* **Group:** TextureTarget"]
2894 pub const GL_PROXY_TEXTURE_1D_ARRAY: GLenum = 0x8C19;
2895 #[doc = "`GL_PROXY_TEXTURE_2D: GLenum = 0x8064`"]
2896 #[doc = "* **Group:** TextureTarget"]
2897 pub const GL_PROXY_TEXTURE_2D: GLenum = 0x8064;
2898 #[doc = "`GL_PROXY_TEXTURE_2D_ARRAY: GLenum = 0x8C1B`"]
2899 #[doc = "* **Group:** TextureTarget"]
2900 pub const GL_PROXY_TEXTURE_2D_ARRAY: GLenum = 0x8C1B;
2901 #[doc = "`GL_PROXY_TEXTURE_2D_MULTISAMPLE: GLenum = 0x9101`"]
2902 #[doc = "* **Group:** TextureTarget"]
2903 pub const GL_PROXY_TEXTURE_2D_MULTISAMPLE: GLenum = 0x9101;
2904 #[doc = "`GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9103`"]
2905 #[doc = "* **Group:** TextureTarget"]
2906 pub const GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9103;
2907 #[doc = "`GL_PROXY_TEXTURE_3D: GLenum = 0x8070`"]
2908 #[doc = "* **Group:** TextureTarget"]
2909 pub const GL_PROXY_TEXTURE_3D: GLenum = 0x8070;
2910 #[doc = "`GL_PROXY_TEXTURE_CUBE_MAP: GLenum = 0x851B`"]
2911 #[doc = "* **Group:** TextureTarget"]
2912 pub const GL_PROXY_TEXTURE_CUBE_MAP: GLenum = 0x851B;
2913 #[doc = "`GL_PROXY_TEXTURE_CUBE_MAP_ARRAY: GLenum = 0x900B`"]
2914 #[doc = "* **Group:** TextureTarget"]
2915 pub const GL_PROXY_TEXTURE_CUBE_MAP_ARRAY: GLenum = 0x900B;
2916 #[doc = "`GL_PROXY_TEXTURE_RECTANGLE: GLenum = 0x84F7`"]
2917 #[doc = "* **Group:** TextureTarget"]
2918 pub const GL_PROXY_TEXTURE_RECTANGLE: GLenum = 0x84F7;
2919 #[doc = "`GL_QUADS: GLenum = 0x0007`"]
2920 #[doc = "* **Group:** PrimitiveType"]
2921 pub const GL_QUADS: GLenum = 0x0007;
2922 #[doc = "`GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION: GLenum = 0x8E4C`"]
2923 pub const GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION: GLenum = 0x8E4C;
2924 #[doc = "`GL_QUERY: GLenum = 0x82E3`"]
2925 #[doc = "* **Group:** ObjectIdentifier"]
2926 pub const GL_QUERY: GLenum = 0x82E3;
2927 #[doc = "`GL_QUERY_BUFFER: GLenum = 0x9192`"]
2928 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
2929 pub const GL_QUERY_BUFFER: GLenum = 0x9192;
2930 #[doc = "`GL_QUERY_BUFFER_BARRIER_BIT: GLbitfield = 0x00008000`"]
2931 #[doc = "* **Group:** MemoryBarrierMask"]
2932 pub const GL_QUERY_BUFFER_BARRIER_BIT: GLbitfield = 0x00008000;
2933 #[doc = "`GL_QUERY_BUFFER_BINDING: GLenum = 0x9193`"]
2934 pub const GL_QUERY_BUFFER_BINDING: GLenum = 0x9193;
2935 #[doc = "`GL_QUERY_BY_REGION_NO_WAIT: GLenum = 0x8E16`"]
2936 #[doc = "* **Group:** ConditionalRenderMode"]
2937 pub const GL_QUERY_BY_REGION_NO_WAIT: GLenum = 0x8E16;
2938 #[doc = "`GL_QUERY_BY_REGION_NO_WAIT_INVERTED: GLenum = 0x8E1A`"]
2939 #[doc = "* **Group:** ConditionalRenderMode"]
2940 pub const GL_QUERY_BY_REGION_NO_WAIT_INVERTED: GLenum = 0x8E1A;
2941 #[doc = "`GL_QUERY_BY_REGION_WAIT: GLenum = 0x8E15`"]
2942 #[doc = "* **Group:** ConditionalRenderMode"]
2943 pub const GL_QUERY_BY_REGION_WAIT: GLenum = 0x8E15;
2944 #[doc = "`GL_QUERY_BY_REGION_WAIT_INVERTED: GLenum = 0x8E19`"]
2945 #[doc = "* **Group:** ConditionalRenderMode"]
2946 pub const GL_QUERY_BY_REGION_WAIT_INVERTED: GLenum = 0x8E19;
2947 #[doc = "`GL_QUERY_COUNTER_BITS: GLenum = 0x8864`"]
2948 #[doc = "* **Group:** QueryParameterName"]
2949 pub const GL_QUERY_COUNTER_BITS: GLenum = 0x8864;
2950 #[doc = "`GL_QUERY_KHR: GLenum = 0x82E3`"]
2951
2952 pub const GL_QUERY_KHR: GLenum = 0x82E3;
2953 #[doc = "`GL_QUERY_NO_WAIT: GLenum = 0x8E14`"]
2954 #[doc = "* **Group:** ConditionalRenderMode"]
2955 pub const GL_QUERY_NO_WAIT: GLenum = 0x8E14;
2956 #[doc = "`GL_QUERY_NO_WAIT_INVERTED: GLenum = 0x8E18`"]
2957 #[doc = "* **Group:** ConditionalRenderMode"]
2958 pub const GL_QUERY_NO_WAIT_INVERTED: GLenum = 0x8E18;
2959 #[doc = "`GL_QUERY_RESULT: GLenum = 0x8866`"]
2960 #[doc = "* **Group:** QueryObjectParameterName"]
2961 pub const GL_QUERY_RESULT: GLenum = 0x8866;
2962 #[doc = "`GL_QUERY_RESULT_AVAILABLE: GLenum = 0x8867`"]
2963 #[doc = "* **Group:** QueryObjectParameterName"]
2964 pub const GL_QUERY_RESULT_AVAILABLE: GLenum = 0x8867;
2965 #[doc = "`GL_QUERY_RESULT_NO_WAIT: GLenum = 0x9194`"]
2966 #[doc = "* **Group:** QueryObjectParameterName"]
2967 pub const GL_QUERY_RESULT_NO_WAIT: GLenum = 0x9194;
2968 #[doc = "`GL_QUERY_TARGET: GLenum = 0x82EA`"]
2969 #[doc = "* **Group:** QueryObjectParameterName"]
2970 pub const GL_QUERY_TARGET: GLenum = 0x82EA;
2971 #[doc = "`GL_QUERY_WAIT: GLenum = 0x8E13`"]
2972 #[doc = "* **Group:** ConditionalRenderMode"]
2973 pub const GL_QUERY_WAIT: GLenum = 0x8E13;
2974 #[doc = "`GL_QUERY_WAIT_INVERTED: GLenum = 0x8E17`"]
2975 #[doc = "* **Group:** ConditionalRenderMode"]
2976 pub const GL_QUERY_WAIT_INVERTED: GLenum = 0x8E17;
2977 #[doc = "`GL_R11F_G11F_B10F: GLenum = 0x8C3A`"]
2978 #[doc = "* **Group:** InternalFormat"]
2979 pub const GL_R11F_G11F_B10F: GLenum = 0x8C3A;
2980 #[doc = "`GL_R16: GLenum = 0x822A`"]
2981 #[doc = "* **Group:** InternalFormat"]
2982 pub const GL_R16: GLenum = 0x822A;
2983 #[doc = "`GL_R16F: GLenum = 0x822D`"]
2984 #[doc = "* **Group:** InternalFormat"]
2985 pub const GL_R16F: GLenum = 0x822D;
2986 #[doc = "`GL_R16I: GLenum = 0x8233`"]
2987 #[doc = "* **Group:** InternalFormat"]
2988 pub const GL_R16I: GLenum = 0x8233;
2989 #[doc = "`GL_R16UI: GLenum = 0x8234`"]
2990 #[doc = "* **Group:** InternalFormat"]
2991 pub const GL_R16UI: GLenum = 0x8234;
2992 #[doc = "`GL_R16_SNORM: GLenum = 0x8F98`"]
2993 #[doc = "* **Group:** InternalFormat"]
2994 pub const GL_R16_SNORM: GLenum = 0x8F98;
2995 #[doc = "`GL_R32F: GLenum = 0x822E`"]
2996 #[doc = "* **Group:** InternalFormat"]
2997 pub const GL_R32F: GLenum = 0x822E;
2998 #[doc = "`GL_R32I: GLenum = 0x8235`"]
2999 #[doc = "* **Group:** InternalFormat"]
3000 pub const GL_R32I: GLenum = 0x8235;
3001 #[doc = "`GL_R32UI: GLenum = 0x8236`"]
3002 #[doc = "* **Group:** InternalFormat"]
3003 pub const GL_R32UI: GLenum = 0x8236;
3004 #[doc = "`GL_R3_G3_B2: GLenum = 0x2A10`"]
3005 #[doc = "* **Group:** InternalFormat"]
3006 pub const GL_R3_G3_B2: GLenum = 0x2A10;
3007 #[doc = "`GL_R8: GLenum = 0x8229`"]
3008 #[doc = "* **Group:** InternalFormat"]
3009 pub const GL_R8: GLenum = 0x8229;
3010 #[doc = "`GL_R8I: GLenum = 0x8231`"]
3011 #[doc = "* **Group:** InternalFormat"]
3012 pub const GL_R8I: GLenum = 0x8231;
3013 #[doc = "`GL_R8UI: GLenum = 0x8232`"]
3014 #[doc = "* **Group:** InternalFormat"]
3015 pub const GL_R8UI: GLenum = 0x8232;
3016 #[doc = "`GL_R8_SNORM: GLenum = 0x8F94`"]
3017 #[doc = "* **Group:** InternalFormat"]
3018 pub const GL_R8_SNORM: GLenum = 0x8F94;
3019 #[doc = "`GL_RASTERIZER_DISCARD: GLenum = 0x8C89`"]
3020 #[doc = "* **Group:** EnableCap"]
3021 pub const GL_RASTERIZER_DISCARD: GLenum = 0x8C89;
3022 #[doc = "`GL_READ_BUFFER: GLenum = 0x0C02`"]
3023 #[doc = "* **Group:** GetPName"]
3024 pub const GL_READ_BUFFER: GLenum = 0x0C02;
3025 #[doc = "`GL_READ_FRAMEBUFFER: GLenum = 0x8CA8`"]
3026 #[doc = "* **Groups:** CheckFramebufferStatusTarget, FramebufferTarget"]
3027 pub const GL_READ_FRAMEBUFFER: GLenum = 0x8CA8;
3028 #[doc = "`GL_READ_FRAMEBUFFER_BINDING: GLenum = 0x8CAA`"]
3029 #[doc = "* **Group:** GetPName"]
3030 pub const GL_READ_FRAMEBUFFER_BINDING: GLenum = 0x8CAA;
3031 #[doc = "`GL_READ_ONLY: GLenum = 0x88B8`"]
3032 #[doc = "* **Group:** BufferAccessARB"]
3033 pub const GL_READ_ONLY: GLenum = 0x88B8;
3034 #[doc = "`GL_READ_PIXELS: GLenum = 0x828C`"]
3035 #[doc = "* **Group:** InternalFormatPName"]
3036 pub const GL_READ_PIXELS: GLenum = 0x828C;
3037 #[doc = "`GL_READ_PIXELS_FORMAT: GLenum = 0x828D`"]
3038 #[doc = "* **Group:** InternalFormatPName"]
3039 pub const GL_READ_PIXELS_FORMAT: GLenum = 0x828D;
3040 #[doc = "`GL_READ_PIXELS_TYPE: GLenum = 0x828E`"]
3041 #[doc = "* **Group:** InternalFormatPName"]
3042 pub const GL_READ_PIXELS_TYPE: GLenum = 0x828E;
3043 #[doc = "`GL_READ_WRITE: GLenum = 0x88BA`"]
3044 #[doc = "* **Group:** BufferAccessARB"]
3045 pub const GL_READ_WRITE: GLenum = 0x88BA;
3046 #[doc = "`GL_RED: GLenum = 0x1903`"]
3047 #[doc = "* **Groups:** TextureSwizzle, PixelFormat, InternalFormat"]
3048 pub const GL_RED: GLenum = 0x1903;
3049 #[doc = "`GL_RED_BITS: GLenum = 0x0D52`"]
3050 #[doc = "* **Group:** GetPName"]
3051 pub const GL_RED_BITS: GLenum = 0x0D52;
3052 #[doc = "`GL_RED_INTEGER: GLenum = 0x8D94`"]
3053 #[doc = "* **Group:** PixelFormat"]
3054 pub const GL_RED_INTEGER: GLenum = 0x8D94;
3055 #[doc = "`GL_REFERENCED_BY_COMPUTE_SHADER: GLenum = 0x930B`"]
3056 #[doc = "* **Group:** ProgramResourceProperty"]
3057 pub const GL_REFERENCED_BY_COMPUTE_SHADER: GLenum = 0x930B;
3058 #[doc = "`GL_REFERENCED_BY_FRAGMENT_SHADER: GLenum = 0x930A`"]
3059 #[doc = "* **Group:** ProgramResourceProperty"]
3060 pub const GL_REFERENCED_BY_FRAGMENT_SHADER: GLenum = 0x930A;
3061 #[doc = "`GL_REFERENCED_BY_GEOMETRY_SHADER: GLenum = 0x9309`"]
3062 #[doc = "* **Group:** ProgramResourceProperty"]
3063 pub const GL_REFERENCED_BY_GEOMETRY_SHADER: GLenum = 0x9309;
3064 #[doc = "`GL_REFERENCED_BY_TESS_CONTROL_SHADER: GLenum = 0x9307`"]
3065 #[doc = "* **Group:** ProgramResourceProperty"]
3066 pub const GL_REFERENCED_BY_TESS_CONTROL_SHADER: GLenum = 0x9307;
3067 #[doc = "`GL_REFERENCED_BY_TESS_EVALUATION_SHADER: GLenum = 0x9308`"]
3068 #[doc = "* **Group:** ProgramResourceProperty"]
3069 pub const GL_REFERENCED_BY_TESS_EVALUATION_SHADER: GLenum = 0x9308;
3070 #[doc = "`GL_REFERENCED_BY_VERTEX_SHADER: GLenum = 0x9306`"]
3071 #[doc = "* **Group:** ProgramResourceProperty"]
3072 pub const GL_REFERENCED_BY_VERTEX_SHADER: GLenum = 0x9306;
3073 #[doc = "`GL_RENDERBUFFER: GLenum = 0x8D41`"]
3074 #[doc = "* **Groups:** ObjectIdentifier, RenderbufferTarget, CopyImageSubDataTarget"]
3075 pub const GL_RENDERBUFFER: GLenum = 0x8D41;
3076 #[doc = "`GL_RENDERBUFFER_ALPHA_SIZE: GLenum = 0x8D53`"]
3077 #[doc = "* **Group:** RenderbufferParameterName"]
3078 pub const GL_RENDERBUFFER_ALPHA_SIZE: GLenum = 0x8D53;
3079 #[doc = "`GL_RENDERBUFFER_BINDING: GLenum = 0x8CA7`"]
3080 #[doc = "* **Group:** GetPName"]
3081 pub const GL_RENDERBUFFER_BINDING: GLenum = 0x8CA7;
3082 #[doc = "`GL_RENDERBUFFER_BLUE_SIZE: GLenum = 0x8D52`"]
3083 #[doc = "* **Group:** RenderbufferParameterName"]
3084 pub const GL_RENDERBUFFER_BLUE_SIZE: GLenum = 0x8D52;
3085 #[doc = "`GL_RENDERBUFFER_DEPTH_SIZE: GLenum = 0x8D54`"]
3086 #[doc = "* **Group:** RenderbufferParameterName"]
3087 pub const GL_RENDERBUFFER_DEPTH_SIZE: GLenum = 0x8D54;
3088 #[doc = "`GL_RENDERBUFFER_GREEN_SIZE: GLenum = 0x8D51`"]
3089 #[doc = "* **Group:** RenderbufferParameterName"]
3090 pub const GL_RENDERBUFFER_GREEN_SIZE: GLenum = 0x8D51;
3091 #[doc = "`GL_RENDERBUFFER_HEIGHT: GLenum = 0x8D43`"]
3092 #[doc = "* **Group:** RenderbufferParameterName"]
3093 pub const GL_RENDERBUFFER_HEIGHT: GLenum = 0x8D43;
3094 #[doc = "`GL_RENDERBUFFER_INTERNAL_FORMAT: GLenum = 0x8D44`"]
3095 #[doc = "* **Group:** RenderbufferParameterName"]
3096 pub const GL_RENDERBUFFER_INTERNAL_FORMAT: GLenum = 0x8D44;
3097 #[doc = "`GL_RENDERBUFFER_RED_SIZE: GLenum = 0x8D50`"]
3098 #[doc = "* **Group:** RenderbufferParameterName"]
3099 pub const GL_RENDERBUFFER_RED_SIZE: GLenum = 0x8D50;
3100 #[doc = "`GL_RENDERBUFFER_SAMPLES: GLenum = 0x8CAB`"]
3101 #[doc = "* **Group:** RenderbufferParameterName"]
3102 pub const GL_RENDERBUFFER_SAMPLES: GLenum = 0x8CAB;
3103 #[doc = "`GL_RENDERBUFFER_STENCIL_SIZE: GLenum = 0x8D55`"]
3104 #[doc = "* **Group:** RenderbufferParameterName"]
3105 pub const GL_RENDERBUFFER_STENCIL_SIZE: GLenum = 0x8D55;
3106 #[doc = "`GL_RENDERBUFFER_WIDTH: GLenum = 0x8D42`"]
3107 #[doc = "* **Group:** RenderbufferParameterName"]
3108 pub const GL_RENDERBUFFER_WIDTH: GLenum = 0x8D42;
3109 #[doc = "`GL_RENDERER: GLenum = 0x1F01`"]
3110 #[doc = "* **Group:** StringName"]
3111 pub const GL_RENDERER: GLenum = 0x1F01;
3112 #[doc = "`GL_REPEAT: GLenum = 0x2901`"]
3113 #[doc = "* **Group:** TextureWrapMode"]
3114 pub const GL_REPEAT: GLenum = 0x2901;
3115 #[doc = "`GL_REPLACE: GLenum = 0x1E01`"]
3116 #[doc = "* **Groups:** StencilOp, LightEnvModeSGIX"]
3117 pub const GL_REPLACE: GLenum = 0x1E01;
3118 #[doc = "`GL_RESET_NOTIFICATION_STRATEGY: GLenum = 0x8256`"]
3119 pub const GL_RESET_NOTIFICATION_STRATEGY: GLenum = 0x8256;
3120 #[doc = "`GL_RG: GLenum = 0x8227`"]
3121 #[doc = "* **Groups:** InternalFormat, PixelFormat"]
3122 pub const GL_RG: GLenum = 0x8227;
3123 #[doc = "`GL_RG16: GLenum = 0x822C`"]
3124 #[doc = "* **Group:** InternalFormat"]
3125 pub const GL_RG16: GLenum = 0x822C;
3126 #[doc = "`GL_RG16F: GLenum = 0x822F`"]
3127 #[doc = "* **Group:** InternalFormat"]
3128 pub const GL_RG16F: GLenum = 0x822F;
3129 #[doc = "`GL_RG16I: GLenum = 0x8239`"]
3130 #[doc = "* **Group:** InternalFormat"]
3131 pub const GL_RG16I: GLenum = 0x8239;
3132 #[doc = "`GL_RG16UI: GLenum = 0x823A`"]
3133 #[doc = "* **Group:** InternalFormat"]
3134 pub const GL_RG16UI: GLenum = 0x823A;
3135 #[doc = "`GL_RG16_SNORM: GLenum = 0x8F99`"]
3136 #[doc = "* **Group:** InternalFormat"]
3137 pub const GL_RG16_SNORM: GLenum = 0x8F99;
3138 #[doc = "`GL_RG32F: GLenum = 0x8230`"]
3139 #[doc = "* **Group:** InternalFormat"]
3140 pub const GL_RG32F: GLenum = 0x8230;
3141 #[doc = "`GL_RG32I: GLenum = 0x823B`"]
3142 #[doc = "* **Group:** InternalFormat"]
3143 pub const GL_RG32I: GLenum = 0x823B;
3144 #[doc = "`GL_RG32UI: GLenum = 0x823C`"]
3145 #[doc = "* **Group:** InternalFormat"]
3146 pub const GL_RG32UI: GLenum = 0x823C;
3147 #[doc = "`GL_RG8: GLenum = 0x822B`"]
3148 #[doc = "* **Group:** InternalFormat"]
3149 pub const GL_RG8: GLenum = 0x822B;
3150 #[doc = "`GL_RG8I: GLenum = 0x8237`"]
3151 #[doc = "* **Group:** InternalFormat"]
3152 pub const GL_RG8I: GLenum = 0x8237;
3153 #[doc = "`GL_RG8UI: GLenum = 0x8238`"]
3154 #[doc = "* **Group:** InternalFormat"]
3155 pub const GL_RG8UI: GLenum = 0x8238;
3156 #[doc = "`GL_RG8_SNORM: GLenum = 0x8F95`"]
3157 #[doc = "* **Group:** InternalFormat"]
3158 pub const GL_RG8_SNORM: GLenum = 0x8F95;
3159 #[doc = "`GL_RGB: GLenum = 0x1907`"]
3160 #[doc = "* **Groups:** PixelTexGenMode, CombinerPortionNV, PathColorFormat, CombinerComponentUsageNV, PixelFormat, InternalFormat"]
3161 pub const GL_RGB: GLenum = 0x1907;
3162 #[doc = "`GL_RGB10: GLenum = 0x8052`"]
3163 #[doc = "* **Group:** InternalFormat"]
3164 pub const GL_RGB10: GLenum = 0x8052;
3165 #[doc = "`GL_RGB10_A2: GLenum = 0x8059`"]
3166 #[doc = "* **Group:** InternalFormat"]
3167 pub const GL_RGB10_A2: GLenum = 0x8059;
3168 #[doc = "`GL_RGB10_A2UI: GLenum = 0x906F`"]
3169 #[doc = "* **Group:** InternalFormat"]
3170 pub const GL_RGB10_A2UI: GLenum = 0x906F;
3171 #[doc = "`GL_RGB12: GLenum = 0x8053`"]
3172 #[doc = "* **Group:** InternalFormat"]
3173 pub const GL_RGB12: GLenum = 0x8053;
3174 #[doc = "`GL_RGB16: GLenum = 0x8054`"]
3175 #[doc = "* **Group:** InternalFormat"]
3176 pub const GL_RGB16: GLenum = 0x8054;
3177 #[doc = "`GL_RGB16F: GLenum = 0x881B`"]
3178 #[doc = "* **Group:** InternalFormat"]
3179 pub const GL_RGB16F: GLenum = 0x881B;
3180 #[doc = "`GL_RGB16I: GLenum = 0x8D89`"]
3181 #[doc = "* **Group:** InternalFormat"]
3182 pub const GL_RGB16I: GLenum = 0x8D89;
3183 #[doc = "`GL_RGB16UI: GLenum = 0x8D77`"]
3184 #[doc = "* **Group:** InternalFormat"]
3185 pub const GL_RGB16UI: GLenum = 0x8D77;
3186 #[doc = "`GL_RGB16_SNORM: GLenum = 0x8F9A`"]
3187 #[doc = "* **Group:** InternalFormat"]
3188 pub const GL_RGB16_SNORM: GLenum = 0x8F9A;
3189 #[doc = "`GL_RGB32F: GLenum = 0x8815`"]
3190 #[doc = "* **Group:** InternalFormat"]
3191 pub const GL_RGB32F: GLenum = 0x8815;
3192 #[doc = "`GL_RGB32I: GLenum = 0x8D83`"]
3193 #[doc = "* **Group:** InternalFormat"]
3194 pub const GL_RGB32I: GLenum = 0x8D83;
3195 #[doc = "`GL_RGB32UI: GLenum = 0x8D71`"]
3196 #[doc = "* **Group:** InternalFormat"]
3197 pub const GL_RGB32UI: GLenum = 0x8D71;
3198 #[doc = "`GL_RGB4: GLenum = 0x804F`"]
3199 #[doc = "* **Group:** InternalFormat"]
3200 pub const GL_RGB4: GLenum = 0x804F;
3201 #[doc = "`GL_RGB5: GLenum = 0x8050`"]
3202 #[doc = "* **Group:** InternalFormat"]
3203 pub const GL_RGB5: GLenum = 0x8050;
3204 #[doc = "`GL_RGB565: GLenum = 0x8D62`"]
3205 pub const GL_RGB565: GLenum = 0x8D62;
3206 #[doc = "`GL_RGB5_A1: GLenum = 0x8057`"]
3207 #[doc = "* **Group:** InternalFormat"]
3208 pub const GL_RGB5_A1: GLenum = 0x8057;
3209 #[doc = "`GL_RGB8: GLenum = 0x8051`"]
3210 #[doc = "* **Group:** InternalFormat"]
3211 pub const GL_RGB8: GLenum = 0x8051;
3212 #[doc = "`GL_RGB8I: GLenum = 0x8D8F`"]
3213 #[doc = "* **Group:** InternalFormat"]
3214 pub const GL_RGB8I: GLenum = 0x8D8F;
3215 #[doc = "`GL_RGB8UI: GLenum = 0x8D7D`"]
3216 #[doc = "* **Group:** InternalFormat"]
3217 pub const GL_RGB8UI: GLenum = 0x8D7D;
3218 #[doc = "`GL_RGB8_SNORM: GLenum = 0x8F96`"]
3219 #[doc = "* **Group:** InternalFormat"]
3220 pub const GL_RGB8_SNORM: GLenum = 0x8F96;
3221 #[doc = "`GL_RGB9_E5: GLenum = 0x8C3D`"]
3222 #[doc = "* **Group:** InternalFormat"]
3223 pub const GL_RGB9_E5: GLenum = 0x8C3D;
3224 #[doc = "`GL_RGBA: GLenum = 0x1908`"]
3225 #[doc = "* **Groups:** PixelTexGenMode, PathColorFormat, PixelFormat, InternalFormat"]
3226 pub const GL_RGBA: GLenum = 0x1908;
3227 #[doc = "`GL_RGBA12: GLenum = 0x805A`"]
3228 #[doc = "* **Group:** InternalFormat"]
3229 pub const GL_RGBA12: GLenum = 0x805A;
3230 #[doc = "`GL_RGBA16: GLenum = 0x805B`"]
3231 #[doc = "* **Group:** InternalFormat"]
3232 pub const GL_RGBA16: GLenum = 0x805B;
3233 #[doc = "`GL_RGBA16F: GLenum = 0x881A`"]
3234 #[doc = "* **Group:** InternalFormat"]
3235 pub const GL_RGBA16F: GLenum = 0x881A;
3236 #[doc = "`GL_RGBA16I: GLenum = 0x8D88`"]
3237 #[doc = "* **Group:** InternalFormat"]
3238 pub const GL_RGBA16I: GLenum = 0x8D88;
3239 #[doc = "`GL_RGBA16UI: GLenum = 0x8D76`"]
3240 #[doc = "* **Group:** InternalFormat"]
3241 pub const GL_RGBA16UI: GLenum = 0x8D76;
3242 #[doc = "`GL_RGBA16_SNORM: GLenum = 0x8F9B`"]
3243 pub const GL_RGBA16_SNORM: GLenum = 0x8F9B;
3244 #[doc = "`GL_RGBA2: GLenum = 0x8055`"]
3245 pub const GL_RGBA2: GLenum = 0x8055;
3246 #[doc = "`GL_RGBA32F: GLenum = 0x8814`"]
3247 #[doc = "* **Group:** InternalFormat"]
3248 pub const GL_RGBA32F: GLenum = 0x8814;
3249 #[doc = "`GL_RGBA32I: GLenum = 0x8D82`"]
3250 #[doc = "* **Group:** InternalFormat"]
3251 pub const GL_RGBA32I: GLenum = 0x8D82;
3252 #[doc = "`GL_RGBA32UI: GLenum = 0x8D70`"]
3253 #[doc = "* **Group:** InternalFormat"]
3254 pub const GL_RGBA32UI: GLenum = 0x8D70;
3255 #[doc = "`GL_RGBA4: GLenum = 0x8056`"]
3256 #[doc = "* **Group:** InternalFormat"]
3257 pub const GL_RGBA4: GLenum = 0x8056;
3258 #[doc = "`GL_RGBA8: GLenum = 0x8058`"]
3259 #[doc = "* **Group:** InternalFormat"]
3260 pub const GL_RGBA8: GLenum = 0x8058;
3261 #[doc = "`GL_RGBA8I: GLenum = 0x8D8E`"]
3262 #[doc = "* **Group:** InternalFormat"]
3263 pub const GL_RGBA8I: GLenum = 0x8D8E;
3264 #[doc = "`GL_RGBA8UI: GLenum = 0x8D7C`"]
3265 #[doc = "* **Group:** InternalFormat"]
3266 pub const GL_RGBA8UI: GLenum = 0x8D7C;
3267 #[doc = "`GL_RGBA8_SNORM: GLenum = 0x8F97`"]
3268 #[doc = "* **Group:** InternalFormat"]
3269 pub const GL_RGBA8_SNORM: GLenum = 0x8F97;
3270 #[doc = "`GL_RGBA_INTEGER: GLenum = 0x8D99`"]
3271 #[doc = "* **Group:** PixelFormat"]
3272 pub const GL_RGBA_INTEGER: GLenum = 0x8D99;
3273 #[doc = "`GL_RGB_INTEGER: GLenum = 0x8D98`"]
3274 #[doc = "* **Group:** PixelFormat"]
3275 pub const GL_RGB_INTEGER: GLenum = 0x8D98;
3276 #[doc = "`GL_RG_INTEGER: GLenum = 0x8228`"]
3277 #[doc = "* **Group:** PixelFormat"]
3278 pub const GL_RG_INTEGER: GLenum = 0x8228;
3279 #[doc = "`GL_RIGHT: GLenum = 0x0407`"]
3280 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode"]
3281 pub const GL_RIGHT: GLenum = 0x0407;
3282 #[doc = "`GL_SAMPLER: GLenum = 0x82E6`"]
3283 #[doc = "* **Group:** ObjectIdentifier"]
3284 pub const GL_SAMPLER: GLenum = 0x82E6;
3285 #[doc = "`GL_SAMPLER_1D: GLenum = 0x8B5D`"]
3286 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3287 pub const GL_SAMPLER_1D: GLenum = 0x8B5D;
3288 #[doc = "`GL_SAMPLER_1D_ARRAY: GLenum = 0x8DC0`"]
3289 #[doc = "* **Groups:** GlslTypeToken, UniformType"]
3290 pub const GL_SAMPLER_1D_ARRAY: GLenum = 0x8DC0;
3291 #[doc = "`GL_SAMPLER_1D_ARRAY_SHADOW: GLenum = 0x8DC3`"]
3292 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3293 pub const GL_SAMPLER_1D_ARRAY_SHADOW: GLenum = 0x8DC3;
3294 #[doc = "`GL_SAMPLER_1D_SHADOW: GLenum = 0x8B61`"]
3295 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3296 pub const GL_SAMPLER_1D_SHADOW: GLenum = 0x8B61;
3297 #[doc = "`GL_SAMPLER_2D: GLenum = 0x8B5E`"]
3298 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3299 pub const GL_SAMPLER_2D: GLenum = 0x8B5E;
3300 #[doc = "`GL_SAMPLER_2D_ARRAY: GLenum = 0x8DC1`"]
3301 #[doc = "* **Groups:** GlslTypeToken, UniformType"]
3302 pub const GL_SAMPLER_2D_ARRAY: GLenum = 0x8DC1;
3303 #[doc = "`GL_SAMPLER_2D_ARRAY_SHADOW: GLenum = 0x8DC4`"]
3304 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3305 pub const GL_SAMPLER_2D_ARRAY_SHADOW: GLenum = 0x8DC4;
3306 #[doc = "`GL_SAMPLER_2D_MULTISAMPLE: GLenum = 0x9108`"]
3307 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3308 pub const GL_SAMPLER_2D_MULTISAMPLE: GLenum = 0x9108;
3309 #[doc = "`GL_SAMPLER_2D_MULTISAMPLE_ARRAY: GLenum = 0x910B`"]
3310 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3311 pub const GL_SAMPLER_2D_MULTISAMPLE_ARRAY: GLenum = 0x910B;
3312 #[doc = "`GL_SAMPLER_2D_RECT: GLenum = 0x8B63`"]
3313 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3314 pub const GL_SAMPLER_2D_RECT: GLenum = 0x8B63;
3315 #[doc = "`GL_SAMPLER_2D_RECT_SHADOW: GLenum = 0x8B64`"]
3316 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3317 pub const GL_SAMPLER_2D_RECT_SHADOW: GLenum = 0x8B64;
3318 #[doc = "`GL_SAMPLER_2D_SHADOW: GLenum = 0x8B62`"]
3319 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3320 pub const GL_SAMPLER_2D_SHADOW: GLenum = 0x8B62;
3321 #[doc = "`GL_SAMPLER_3D: GLenum = 0x8B5F`"]
3322 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3323 pub const GL_SAMPLER_3D: GLenum = 0x8B5F;
3324 #[doc = "`GL_SAMPLER_BINDING: GLenum = 0x8919`"]
3325 #[doc = "* **Group:** GetPName"]
3326 pub const GL_SAMPLER_BINDING: GLenum = 0x8919;
3327 #[doc = "`GL_SAMPLER_BUFFER: GLenum = 0x8DC2`"]
3328 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3329 pub const GL_SAMPLER_BUFFER: GLenum = 0x8DC2;
3330 #[doc = "`GL_SAMPLER_CUBE: GLenum = 0x8B60`"]
3331 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3332 pub const GL_SAMPLER_CUBE: GLenum = 0x8B60;
3333 #[doc = "`GL_SAMPLER_CUBE_MAP_ARRAY: GLenum = 0x900C`"]
3334 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3335 pub const GL_SAMPLER_CUBE_MAP_ARRAY: GLenum = 0x900C;
3336 #[doc = "`GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW: GLenum = 0x900D`"]
3337 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3338 pub const GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW: GLenum = 0x900D;
3339 #[doc = "`GL_SAMPLER_CUBE_SHADOW: GLenum = 0x8DC5`"]
3340 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3341 pub const GL_SAMPLER_CUBE_SHADOW: GLenum = 0x8DC5;
3342 #[doc = "`GL_SAMPLER_KHR: GLenum = 0x82E6`"]
3343
3344 pub const GL_SAMPLER_KHR: GLenum = 0x82E6;
3345 #[doc = "`GL_SAMPLES: GLenum = 0x80A9`"]
3346 #[doc = "* **Groups:** GetFramebufferParameter, GetPName, InternalFormatPName"]
3347 pub const GL_SAMPLES: GLenum = 0x80A9;
3348 #[doc = "`GL_SAMPLES_PASSED: GLenum = 0x8914`"]
3349 #[doc = "* **Group:** QueryTarget"]
3350 pub const GL_SAMPLES_PASSED: GLenum = 0x8914;
3351 #[doc = "`GL_SAMPLE_ALPHA_TO_COVERAGE: GLenum = 0x809E`"]
3352 #[doc = "* **Group:** EnableCap"]
3353 pub const GL_SAMPLE_ALPHA_TO_COVERAGE: GLenum = 0x809E;
3354 #[doc = "`GL_SAMPLE_ALPHA_TO_ONE: GLenum = 0x809F`"]
3355 #[doc = "* **Group:** EnableCap"]
3356 pub const GL_SAMPLE_ALPHA_TO_ONE: GLenum = 0x809F;
3357 #[doc = "`GL_SAMPLE_BUFFERS: GLenum = 0x80A8`"]
3358 #[doc = "* **Groups:** GetFramebufferParameter, GetPName"]
3359 pub const GL_SAMPLE_BUFFERS: GLenum = 0x80A8;
3360 #[doc = "`GL_SAMPLE_COVERAGE: GLenum = 0x80A0`"]
3361 #[doc = "* **Group:** EnableCap"]
3362 pub const GL_SAMPLE_COVERAGE: GLenum = 0x80A0;
3363 #[doc = "`GL_SAMPLE_COVERAGE_INVERT: GLenum = 0x80AB`"]
3364 #[doc = "* **Group:** GetPName"]
3365 pub const GL_SAMPLE_COVERAGE_INVERT: GLenum = 0x80AB;
3366 #[doc = "`GL_SAMPLE_COVERAGE_VALUE: GLenum = 0x80AA`"]
3367 #[doc = "* **Group:** GetPName"]
3368 pub const GL_SAMPLE_COVERAGE_VALUE: GLenum = 0x80AA;
3369 #[doc = "`GL_SAMPLE_MASK: GLenum = 0x8E51`"]
3370 #[doc = "* **Group:** EnableCap"]
3371 pub const GL_SAMPLE_MASK: GLenum = 0x8E51;
3372 #[doc = "`GL_SAMPLE_MASK_VALUE: GLenum = 0x8E52`"]
3373 pub const GL_SAMPLE_MASK_VALUE: GLenum = 0x8E52;
3374 #[doc = "`GL_SAMPLE_POSITION: GLenum = 0x8E50`"]
3375 #[doc = "* **Group:** GetMultisamplePNameNV"]
3376 pub const GL_SAMPLE_POSITION: GLenum = 0x8E50;
3377 #[doc = "`GL_SAMPLE_SHADING: GLenum = 0x8C36`"]
3378 #[doc = "* **Group:** EnableCap"]
3379 pub const GL_SAMPLE_SHADING: GLenum = 0x8C36;
3380 #[doc = "`GL_SCISSOR_BOX: GLenum = 0x0C10`"]
3381 #[doc = "* **Group:** GetPName"]
3382 pub const GL_SCISSOR_BOX: GLenum = 0x0C10;
3383 #[doc = "`GL_SCISSOR_TEST: GLenum = 0x0C11`"]
3384 #[doc = "* **Groups:** GetPName, EnableCap"]
3385 pub const GL_SCISSOR_TEST: GLenum = 0x0C11;
3386 #[doc = "`GL_SCREEN: GLenum = 0x9295`"]
3387 pub const GL_SCREEN: GLenum = 0x9295;
3388 #[doc = "`GL_SEPARATE_ATTRIBS: GLenum = 0x8C8D`"]
3389 #[doc = "* **Group:** TransformFeedbackBufferMode"]
3390 pub const GL_SEPARATE_ATTRIBS: GLenum = 0x8C8D;
3391 #[doc = "`GL_SET: GLenum = 0x150F`"]
3392 #[doc = "* **Group:** LogicOp"]
3393 pub const GL_SET: GLenum = 0x150F;
3394 #[doc = "`GL_SHADER: GLenum = 0x82E1`"]
3395 #[doc = "* **Group:** ObjectIdentifier"]
3396 pub const GL_SHADER: GLenum = 0x82E1;
3397 #[doc = "`GL_SHADER_BINARY_FORMATS: GLenum = 0x8DF8`"]
3398 pub const GL_SHADER_BINARY_FORMATS: GLenum = 0x8DF8;
3399 #[doc = "`GL_SHADER_BINARY_FORMAT_SPIR_V: GLenum = 0x9551`"]
3400 #[doc = "* **Group:** ShaderBinaryFormat"]
3401 pub const GL_SHADER_BINARY_FORMAT_SPIR_V: GLenum = 0x9551;
3402 #[doc = "`GL_SHADER_COMPILER: GLenum = 0x8DFA`"]
3403 #[doc = "* **Group:** GetPName"]
3404 pub const GL_SHADER_COMPILER: GLenum = 0x8DFA;
3405 #[doc = "`GL_SHADER_IMAGE_ACCESS_BARRIER_BIT: GLbitfield = 0x00000020`"]
3406 #[doc = "* **Group:** MemoryBarrierMask"]
3407 pub const GL_SHADER_IMAGE_ACCESS_BARRIER_BIT: GLbitfield = 0x00000020;
3408 #[doc = "`GL_SHADER_IMAGE_ATOMIC: GLenum = 0x82A6`"]
3409 #[doc = "* **Group:** InternalFormatPName"]
3410 pub const GL_SHADER_IMAGE_ATOMIC: GLenum = 0x82A6;
3411 #[doc = "`GL_SHADER_IMAGE_LOAD: GLenum = 0x82A4`"]
3412 #[doc = "* **Group:** InternalFormatPName"]
3413 pub const GL_SHADER_IMAGE_LOAD: GLenum = 0x82A4;
3414 #[doc = "`GL_SHADER_IMAGE_STORE: GLenum = 0x82A5`"]
3415 #[doc = "* **Group:** InternalFormatPName"]
3416 pub const GL_SHADER_IMAGE_STORE: GLenum = 0x82A5;
3417 #[doc = "`GL_SHADER_KHR: GLenum = 0x82E1`"]
3418
3419 pub const GL_SHADER_KHR: GLenum = 0x82E1;
3420 #[doc = "`GL_SHADER_SOURCE_LENGTH: GLenum = 0x8B88`"]
3421 #[doc = "* **Group:** ShaderParameterName"]
3422 pub const GL_SHADER_SOURCE_LENGTH: GLenum = 0x8B88;
3423 #[doc = "`GL_SHADER_STORAGE_BARRIER_BIT: GLbitfield = 0x00002000`"]
3424 #[doc = "* **Group:** MemoryBarrierMask"]
3425 pub const GL_SHADER_STORAGE_BARRIER_BIT: GLbitfield = 0x00002000;
3426 #[doc = "`GL_SHADER_STORAGE_BLOCK: GLenum = 0x92E6`"]
3427 #[doc = "* **Group:** ProgramInterface"]
3428 pub const GL_SHADER_STORAGE_BLOCK: GLenum = 0x92E6;
3429 #[doc = "`GL_SHADER_STORAGE_BUFFER: GLenum = 0x90D2`"]
3430 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
3431 pub const GL_SHADER_STORAGE_BUFFER: GLenum = 0x90D2;
3432 #[doc = "`GL_SHADER_STORAGE_BUFFER_BINDING: GLenum = 0x90D3`"]
3433 #[doc = "* **Group:** GetPName"]
3434 pub const GL_SHADER_STORAGE_BUFFER_BINDING: GLenum = 0x90D3;
3435 #[doc = "`GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT: GLenum = 0x90DF`"]
3436 #[doc = "* **Group:** GetPName"]
3437 pub const GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT: GLenum = 0x90DF;
3438 #[doc = "`GL_SHADER_STORAGE_BUFFER_SIZE: GLenum = 0x90D5`"]
3439 #[doc = "* **Group:** GetPName"]
3440 pub const GL_SHADER_STORAGE_BUFFER_SIZE: GLenum = 0x90D5;
3441 #[doc = "`GL_SHADER_STORAGE_BUFFER_START: GLenum = 0x90D4`"]
3442 #[doc = "* **Group:** GetPName"]
3443 pub const GL_SHADER_STORAGE_BUFFER_START: GLenum = 0x90D4;
3444 #[doc = "`GL_SHADER_TYPE: GLenum = 0x8B4F`"]
3445 #[doc = "* **Group:** ShaderParameterName"]
3446 pub const GL_SHADER_TYPE: GLenum = 0x8B4F;
3447 #[doc = "`GL_SHADING_LANGUAGE_VERSION: GLenum = 0x8B8C`"]
3448 #[doc = "* **Group:** StringName"]
3449 pub const GL_SHADING_LANGUAGE_VERSION: GLenum = 0x8B8C;
3450 #[doc = "`GL_SHORT: GLenum = 0x1402`"]
3451 #[doc = "* **Groups:** VertexAttribIType, SecondaryColorPointerTypeIBM, WeightPointerTypeARB, TangentPointerTypeEXT, BinormalPointerTypeEXT, IndexPointerType, ListNameType, NormalPointerType, PixelType, TexCoordPointerType, VertexPointerType, VertexAttribType, VertexAttribPointerType"]
3452 pub const GL_SHORT: GLenum = 0x1402;
3453 #[doc = "`GL_SIGNALED: GLenum = 0x9119`"]
3454 pub const GL_SIGNALED: GLenum = 0x9119;
3455 #[doc = "`GL_SIGNED_NORMALIZED: GLenum = 0x8F9C`"]
3456 pub const GL_SIGNED_NORMALIZED: GLenum = 0x8F9C;
3457 #[doc = "`GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST: GLenum = 0x82AC`"]
3458 #[doc = "* **Group:** InternalFormatPName"]
3459 pub const GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST: GLenum = 0x82AC;
3460 #[doc = "`GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE: GLenum = 0x82AE`"]
3461 #[doc = "* **Group:** InternalFormatPName"]
3462 pub const GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE: GLenum = 0x82AE;
3463 #[doc = "`GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST: GLenum = 0x82AD`"]
3464 #[doc = "* **Group:** InternalFormatPName"]
3465 pub const GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST: GLenum = 0x82AD;
3466 #[doc = "`GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE: GLenum = 0x82AF`"]
3467 #[doc = "* **Group:** InternalFormatPName"]
3468 pub const GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE: GLenum = 0x82AF;
3469 #[doc = "`GL_SMOOTH_LINE_WIDTH_GRANULARITY: GLenum = 0x0B23`"]
3470 #[doc = "* **Group:** GetPName"]
3471 #[doc = "* **Alias Of:** `GL_LINE_WIDTH_GRANULARITY`"]
3472 pub const GL_SMOOTH_LINE_WIDTH_GRANULARITY: GLenum = 0x0B23;
3473 #[doc = "`GL_SMOOTH_LINE_WIDTH_RANGE: GLenum = 0x0B22`"]
3474 #[doc = "* **Group:** GetPName"]
3475 #[doc = "* **Alias Of:** `GL_LINE_WIDTH_RANGE`"]
3476 pub const GL_SMOOTH_LINE_WIDTH_RANGE: GLenum = 0x0B22;
3477 #[doc = "`GL_SMOOTH_POINT_SIZE_GRANULARITY: GLenum = 0x0B13`"]
3478 #[doc = "* **Group:** GetPName"]
3479 #[doc = "* **Alias Of:** `GL_POINT_SIZE_GRANULARITY`"]
3480 pub const GL_SMOOTH_POINT_SIZE_GRANULARITY: GLenum = 0x0B13;
3481 #[doc = "`GL_SMOOTH_POINT_SIZE_RANGE: GLenum = 0x0B12`"]
3482 #[doc = "* **Group:** GetPName"]
3483 #[doc = "* **Alias Of:** `GL_POINT_SIZE_RANGE`"]
3484 pub const GL_SMOOTH_POINT_SIZE_RANGE: GLenum = 0x0B12;
3485 #[doc = "`GL_SOFTLIGHT: GLenum = 0x929C`"]
3486 pub const GL_SOFTLIGHT: GLenum = 0x929C;
3487 #[doc = "`GL_SPIR_V_BINARY: GLenum = 0x9552`"]
3488 pub const GL_SPIR_V_BINARY: GLenum = 0x9552;
3489 #[doc = "`GL_SPIR_V_EXTENSIONS: GLenum = 0x9553`"]
3490 pub const GL_SPIR_V_EXTENSIONS: GLenum = 0x9553;
3491 #[doc = "`GL_SRC1_ALPHA: GLenum = 0x8589`"]
3492 #[doc = "* **Group:** BlendingFactor"]
3493 #[doc = "* **Alias Of:** `GL_SOURCE1_ALPHA`"]
3494 pub const GL_SRC1_ALPHA: GLenum = 0x8589;
3495 #[doc = "`GL_SRC1_COLOR: GLenum = 0x88F9`"]
3496 #[doc = "* **Group:** BlendingFactor"]
3497 pub const GL_SRC1_COLOR: GLenum = 0x88F9;
3498 #[doc = "`GL_SRC_ALPHA: GLenum = 0x0302`"]
3499 #[doc = "* **Group:** BlendingFactor"]
3500 pub const GL_SRC_ALPHA: GLenum = 0x0302;
3501 #[doc = "`GL_SRC_ALPHA_SATURATE: GLenum = 0x0308`"]
3502 #[doc = "* **Group:** BlendingFactor"]
3503 pub const GL_SRC_ALPHA_SATURATE: GLenum = 0x0308;
3504 #[doc = "`GL_SRC_COLOR: GLenum = 0x0300`"]
3505 #[doc = "* **Group:** BlendingFactor"]
3506 pub const GL_SRC_COLOR: GLenum = 0x0300;
3507 #[doc = "`GL_SRGB: GLenum = 0x8C40`"]
3508 #[doc = "* **Group:** InternalFormat"]
3509 pub const GL_SRGB: GLenum = 0x8C40;
3510 #[doc = "`GL_SRGB8: GLenum = 0x8C41`"]
3511 #[doc = "* **Group:** InternalFormat"]
3512 pub const GL_SRGB8: GLenum = 0x8C41;
3513 #[doc = "`GL_SRGB8_ALPHA8: GLenum = 0x8C43`"]
3514 #[doc = "* **Group:** InternalFormat"]
3515 pub const GL_SRGB8_ALPHA8: GLenum = 0x8C43;
3516 #[doc = "`GL_SRGB_ALPHA: GLenum = 0x8C42`"]
3517 #[doc = "* **Group:** InternalFormat"]
3518 pub const GL_SRGB_ALPHA: GLenum = 0x8C42;
3519 #[doc = "`GL_SRGB_READ: GLenum = 0x8297`"]
3520 #[doc = "* **Group:** InternalFormatPName"]
3521 pub const GL_SRGB_READ: GLenum = 0x8297;
3522 #[doc = "`GL_SRGB_WRITE: GLenum = 0x8298`"]
3523 #[doc = "* **Group:** InternalFormatPName"]
3524 pub const GL_SRGB_WRITE: GLenum = 0x8298;
3525 #[doc = "`GL_STACK_OVERFLOW: GLenum = 0x0503`"]
3526 #[doc = "* **Group:** ErrorCode"]
3527 pub const GL_STACK_OVERFLOW: GLenum = 0x0503;
3528 #[doc = "`GL_STACK_OVERFLOW_KHR: GLenum = 0x0503`"]
3529
3530 pub const GL_STACK_OVERFLOW_KHR: GLenum = 0x0503;
3531 #[doc = "`GL_STACK_UNDERFLOW: GLenum = 0x0504`"]
3532 #[doc = "* **Group:** ErrorCode"]
3533 pub const GL_STACK_UNDERFLOW: GLenum = 0x0504;
3534 #[doc = "`GL_STACK_UNDERFLOW_KHR: GLenum = 0x0504`"]
3535
3536 pub const GL_STACK_UNDERFLOW_KHR: GLenum = 0x0504;
3537 #[doc = "`GL_STATIC_COPY: GLenum = 0x88E6`"]
3538 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
3539 pub const GL_STATIC_COPY: GLenum = 0x88E6;
3540 #[doc = "`GL_STATIC_DRAW: GLenum = 0x88E4`"]
3541 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
3542 pub const GL_STATIC_DRAW: GLenum = 0x88E4;
3543 #[doc = "`GL_STATIC_READ: GLenum = 0x88E5`"]
3544 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
3545 pub const GL_STATIC_READ: GLenum = 0x88E5;
3546 #[doc = "`GL_STENCIL: GLenum = 0x1802`"]
3547 #[doc = "* **Groups:** Buffer, PixelCopyType, InvalidateFramebufferAttachment"]
3548 pub const GL_STENCIL: GLenum = 0x1802;
3549 #[doc = "`GL_STENCIL_ATTACHMENT: GLenum = 0x8D20`"]
3550 #[doc = "* **Group:** FramebufferAttachment"]
3551 pub const GL_STENCIL_ATTACHMENT: GLenum = 0x8D20;
3552 #[doc = "`GL_STENCIL_BACK_FAIL: GLenum = 0x8801`"]
3553 #[doc = "* **Group:** GetPName"]
3554 pub const GL_STENCIL_BACK_FAIL: GLenum = 0x8801;
3555 #[doc = "`GL_STENCIL_BACK_FUNC: GLenum = 0x8800`"]
3556 #[doc = "* **Group:** GetPName"]
3557 pub const GL_STENCIL_BACK_FUNC: GLenum = 0x8800;
3558 #[doc = "`GL_STENCIL_BACK_PASS_DEPTH_FAIL: GLenum = 0x8802`"]
3559 #[doc = "* **Group:** GetPName"]
3560 pub const GL_STENCIL_BACK_PASS_DEPTH_FAIL: GLenum = 0x8802;
3561 #[doc = "`GL_STENCIL_BACK_PASS_DEPTH_PASS: GLenum = 0x8803`"]
3562 #[doc = "* **Group:** GetPName"]
3563 pub const GL_STENCIL_BACK_PASS_DEPTH_PASS: GLenum = 0x8803;
3564 #[doc = "`GL_STENCIL_BACK_REF: GLenum = 0x8CA3`"]
3565 #[doc = "* **Group:** GetPName"]
3566 pub const GL_STENCIL_BACK_REF: GLenum = 0x8CA3;
3567 #[doc = "`GL_STENCIL_BACK_VALUE_MASK: GLenum = 0x8CA4`"]
3568 #[doc = "* **Group:** GetPName"]
3569 pub const GL_STENCIL_BACK_VALUE_MASK: GLenum = 0x8CA4;
3570 #[doc = "`GL_STENCIL_BACK_WRITEMASK: GLenum = 0x8CA5`"]
3571 #[doc = "* **Group:** GetPName"]
3572 pub const GL_STENCIL_BACK_WRITEMASK: GLenum = 0x8CA5;
3573 #[doc = "`GL_STENCIL_BITS: GLenum = 0x0D57`"]
3574 #[doc = "* **Group:** GetPName"]
3575 pub const GL_STENCIL_BITS: GLenum = 0x0D57;
3576 #[doc = "`GL_STENCIL_BUFFER_BIT: GLbitfield = 0x00000400`"]
3577 #[doc = "* **Groups:** ClearBufferMask, AttribMask"]
3578 pub const GL_STENCIL_BUFFER_BIT: GLbitfield = 0x00000400;
3579 #[doc = "`GL_STENCIL_CLEAR_VALUE: GLenum = 0x0B91`"]
3580 #[doc = "* **Group:** GetPName"]
3581 pub const GL_STENCIL_CLEAR_VALUE: GLenum = 0x0B91;
3582 #[doc = "`GL_STENCIL_COMPONENTS: GLenum = 0x8285`"]
3583 pub const GL_STENCIL_COMPONENTS: GLenum = 0x8285;
3584 #[doc = "`GL_STENCIL_FAIL: GLenum = 0x0B94`"]
3585 #[doc = "* **Group:** GetPName"]
3586 pub const GL_STENCIL_FAIL: GLenum = 0x0B94;
3587 #[doc = "`GL_STENCIL_FUNC: GLenum = 0x0B92`"]
3588 #[doc = "* **Group:** GetPName"]
3589 pub const GL_STENCIL_FUNC: GLenum = 0x0B92;
3590 #[doc = "`GL_STENCIL_INDEX: GLenum = 0x1901`"]
3591 #[doc = "* **Groups:** InternalFormat, PixelFormat"]
3592 pub const GL_STENCIL_INDEX: GLenum = 0x1901;
3593 #[doc = "`GL_STENCIL_INDEX1: GLenum = 0x8D46`"]
3594 #[doc = "* **Group:** InternalFormat"]
3595 pub const GL_STENCIL_INDEX1: GLenum = 0x8D46;
3596 #[doc = "`GL_STENCIL_INDEX16: GLenum = 0x8D49`"]
3597 #[doc = "* **Group:** InternalFormat"]
3598 pub const GL_STENCIL_INDEX16: GLenum = 0x8D49;
3599 #[doc = "`GL_STENCIL_INDEX4: GLenum = 0x8D47`"]
3600 #[doc = "* **Group:** InternalFormat"]
3601 pub const GL_STENCIL_INDEX4: GLenum = 0x8D47;
3602 #[doc = "`GL_STENCIL_INDEX8: GLenum = 0x8D48`"]
3603 #[doc = "* **Group:** InternalFormat"]
3604 pub const GL_STENCIL_INDEX8: GLenum = 0x8D48;
3605 #[doc = "`GL_STENCIL_PASS_DEPTH_FAIL: GLenum = 0x0B95`"]
3606 #[doc = "* **Group:** GetPName"]
3607 pub const GL_STENCIL_PASS_DEPTH_FAIL: GLenum = 0x0B95;
3608 #[doc = "`GL_STENCIL_PASS_DEPTH_PASS: GLenum = 0x0B96`"]
3609 #[doc = "* **Group:** GetPName"]
3610 pub const GL_STENCIL_PASS_DEPTH_PASS: GLenum = 0x0B96;
3611 #[doc = "`GL_STENCIL_REF: GLenum = 0x0B97`"]
3612 #[doc = "* **Group:** GetPName"]
3613 pub const GL_STENCIL_REF: GLenum = 0x0B97;
3614 #[doc = "`GL_STENCIL_RENDERABLE: GLenum = 0x8288`"]
3615 #[doc = "* **Group:** InternalFormatPName"]
3616 pub const GL_STENCIL_RENDERABLE: GLenum = 0x8288;
3617 #[doc = "`GL_STENCIL_TEST: GLenum = 0x0B90`"]
3618 #[doc = "* **Groups:** GetPName, EnableCap"]
3619 pub const GL_STENCIL_TEST: GLenum = 0x0B90;
3620 #[doc = "`GL_STENCIL_VALUE_MASK: GLenum = 0x0B93`"]
3621 #[doc = "* **Group:** GetPName"]
3622 pub const GL_STENCIL_VALUE_MASK: GLenum = 0x0B93;
3623 #[doc = "`GL_STENCIL_WRITEMASK: GLenum = 0x0B98`"]
3624 #[doc = "* **Group:** GetPName"]
3625 pub const GL_STENCIL_WRITEMASK: GLenum = 0x0B98;
3626 #[doc = "`GL_STEREO: GLenum = 0x0C33`"]
3627 #[doc = "* **Groups:** GetFramebufferParameter, GetPName"]
3628 pub const GL_STEREO: GLenum = 0x0C33;
3629 #[doc = "`GL_STREAM_COPY: GLenum = 0x88E2`"]
3630 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
3631 pub const GL_STREAM_COPY: GLenum = 0x88E2;
3632 #[doc = "`GL_STREAM_DRAW: GLenum = 0x88E0`"]
3633 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
3634 pub const GL_STREAM_DRAW: GLenum = 0x88E0;
3635 #[doc = "`GL_STREAM_READ: GLenum = 0x88E1`"]
3636 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
3637 pub const GL_STREAM_READ: GLenum = 0x88E1;
3638 #[doc = "`GL_SUBPIXEL_BITS: GLenum = 0x0D50`"]
3639 #[doc = "* **Group:** GetPName"]
3640 pub const GL_SUBPIXEL_BITS: GLenum = 0x0D50;
3641 #[doc = "`GL_SYNC_CONDITION: GLenum = 0x9113`"]
3642 #[doc = "* **Group:** SyncParameterName"]
3643 pub const GL_SYNC_CONDITION: GLenum = 0x9113;
3644 #[doc = "`GL_SYNC_FENCE: GLenum = 0x9116`"]
3645 pub const GL_SYNC_FENCE: GLenum = 0x9116;
3646 #[doc = "`GL_SYNC_FLAGS: GLenum = 0x9115`"]
3647 #[doc = "* **Group:** SyncParameterName"]
3648 pub const GL_SYNC_FLAGS: GLenum = 0x9115;
3649 #[doc = "`GL_SYNC_FLUSH_COMMANDS_BIT: GLbitfield = 0x00000001`"]
3650 #[doc = "* **Group:** SyncObjectMask"]
3651 pub const GL_SYNC_FLUSH_COMMANDS_BIT: GLbitfield = 0x00000001;
3652 #[doc = "`GL_SYNC_GPU_COMMANDS_COMPLETE: GLenum = 0x9117`"]
3653 #[doc = "* **Group:** SyncCondition"]
3654 pub const GL_SYNC_GPU_COMMANDS_COMPLETE: GLenum = 0x9117;
3655 #[doc = "`GL_SYNC_STATUS: GLenum = 0x9114`"]
3656 #[doc = "* **Group:** SyncParameterName"]
3657 pub const GL_SYNC_STATUS: GLenum = 0x9114;
3658 #[doc = "`GL_TESS_CONTROL_OUTPUT_VERTICES: GLenum = 0x8E75`"]
3659 pub const GL_TESS_CONTROL_OUTPUT_VERTICES: GLenum = 0x8E75;
3660 #[doc = "`GL_TESS_CONTROL_SHADER: GLenum = 0x8E88`"]
3661 #[doc = "* **Groups:** PipelineParameterName, ShaderType"]
3662 pub const GL_TESS_CONTROL_SHADER: GLenum = 0x8E88;
3663 #[doc = "`GL_TESS_CONTROL_SHADER_BIT: GLbitfield = 0x00000008`"]
3664 #[doc = "* **Group:** UseProgramStageMask"]
3665 pub const GL_TESS_CONTROL_SHADER_BIT: GLbitfield = 0x00000008;
3666 #[doc = "`GL_TESS_CONTROL_SHADER_PATCHES: GLenum = 0x82F1`"]
3667 pub const GL_TESS_CONTROL_SHADER_PATCHES: GLenum = 0x82F1;
3668 #[doc = "`GL_TESS_CONTROL_SUBROUTINE: GLenum = 0x92E9`"]
3669 #[doc = "* **Group:** ProgramInterface"]
3670 pub const GL_TESS_CONTROL_SUBROUTINE: GLenum = 0x92E9;
3671 #[doc = "`GL_TESS_CONTROL_SUBROUTINE_UNIFORM: GLenum = 0x92EF`"]
3672 #[doc = "* **Group:** ProgramInterface"]
3673 pub const GL_TESS_CONTROL_SUBROUTINE_UNIFORM: GLenum = 0x92EF;
3674 #[doc = "`GL_TESS_CONTROL_TEXTURE: GLenum = 0x829C`"]
3675 #[doc = "* **Group:** InternalFormatPName"]
3676 pub const GL_TESS_CONTROL_TEXTURE: GLenum = 0x829C;
3677 #[doc = "`GL_TESS_EVALUATION_SHADER: GLenum = 0x8E87`"]
3678 #[doc = "* **Groups:** PipelineParameterName, ShaderType"]
3679 pub const GL_TESS_EVALUATION_SHADER: GLenum = 0x8E87;
3680 #[doc = "`GL_TESS_EVALUATION_SHADER_BIT: GLbitfield = 0x00000010`"]
3681 #[doc = "* **Group:** UseProgramStageMask"]
3682 pub const GL_TESS_EVALUATION_SHADER_BIT: GLbitfield = 0x00000010;
3683 #[doc = "`GL_TESS_EVALUATION_SHADER_INVOCATIONS: GLenum = 0x82F2`"]
3684 pub const GL_TESS_EVALUATION_SHADER_INVOCATIONS: GLenum = 0x82F2;
3685 #[doc = "`GL_TESS_EVALUATION_SUBROUTINE: GLenum = 0x92EA`"]
3686 #[doc = "* **Group:** ProgramInterface"]
3687 pub const GL_TESS_EVALUATION_SUBROUTINE: GLenum = 0x92EA;
3688 #[doc = "`GL_TESS_EVALUATION_SUBROUTINE_UNIFORM: GLenum = 0x92F0`"]
3689 #[doc = "* **Group:** ProgramInterface"]
3690 pub const GL_TESS_EVALUATION_SUBROUTINE_UNIFORM: GLenum = 0x92F0;
3691 #[doc = "`GL_TESS_EVALUATION_TEXTURE: GLenum = 0x829D`"]
3692 #[doc = "* **Group:** InternalFormatPName"]
3693 pub const GL_TESS_EVALUATION_TEXTURE: GLenum = 0x829D;
3694 #[doc = "`GL_TESS_GEN_MODE: GLenum = 0x8E76`"]
3695 pub const GL_TESS_GEN_MODE: GLenum = 0x8E76;
3696 #[doc = "`GL_TESS_GEN_POINT_MODE: GLenum = 0x8E79`"]
3697 pub const GL_TESS_GEN_POINT_MODE: GLenum = 0x8E79;
3698 #[doc = "`GL_TESS_GEN_SPACING: GLenum = 0x8E77`"]
3699 pub const GL_TESS_GEN_SPACING: GLenum = 0x8E77;
3700 #[doc = "`GL_TESS_GEN_VERTEX_ORDER: GLenum = 0x8E78`"]
3701 pub const GL_TESS_GEN_VERTEX_ORDER: GLenum = 0x8E78;
3702 #[doc = "`GL_TEXTURE: GLenum = 0x1702`"]
3703 #[doc = "* **Groups:** ObjectIdentifier, MatrixMode"]
3704 pub const GL_TEXTURE: GLenum = 0x1702;
3705 #[doc = "`GL_TEXTURE0: GLenum = 0x84C0`"]
3706 #[doc = "* **Group:** TextureUnit"]
3707 pub const GL_TEXTURE0: GLenum = 0x84C0;
3708 #[doc = "`GL_TEXTURE1: GLenum = 0x84C1`"]
3709 #[doc = "* **Group:** TextureUnit"]
3710 pub const GL_TEXTURE1: GLenum = 0x84C1;
3711 #[doc = "`GL_TEXTURE10: GLenum = 0x84CA`"]
3712 #[doc = "* **Group:** TextureUnit"]
3713 pub const GL_TEXTURE10: GLenum = 0x84CA;
3714 #[doc = "`GL_TEXTURE11: GLenum = 0x84CB`"]
3715 #[doc = "* **Group:** TextureUnit"]
3716 pub const GL_TEXTURE11: GLenum = 0x84CB;
3717 #[doc = "`GL_TEXTURE12: GLenum = 0x84CC`"]
3718 #[doc = "* **Group:** TextureUnit"]
3719 pub const GL_TEXTURE12: GLenum = 0x84CC;
3720 #[doc = "`GL_TEXTURE13: GLenum = 0x84CD`"]
3721 #[doc = "* **Group:** TextureUnit"]
3722 pub const GL_TEXTURE13: GLenum = 0x84CD;
3723 #[doc = "`GL_TEXTURE14: GLenum = 0x84CE`"]
3724 #[doc = "* **Group:** TextureUnit"]
3725 pub const GL_TEXTURE14: GLenum = 0x84CE;
3726 #[doc = "`GL_TEXTURE15: GLenum = 0x84CF`"]
3727 #[doc = "* **Group:** TextureUnit"]
3728 pub const GL_TEXTURE15: GLenum = 0x84CF;
3729 #[doc = "`GL_TEXTURE16: GLenum = 0x84D0`"]
3730 #[doc = "* **Group:** TextureUnit"]
3731 pub const GL_TEXTURE16: GLenum = 0x84D0;
3732 #[doc = "`GL_TEXTURE17: GLenum = 0x84D1`"]
3733 #[doc = "* **Group:** TextureUnit"]
3734 pub const GL_TEXTURE17: GLenum = 0x84D1;
3735 #[doc = "`GL_TEXTURE18: GLenum = 0x84D2`"]
3736 #[doc = "* **Group:** TextureUnit"]
3737 pub const GL_TEXTURE18: GLenum = 0x84D2;
3738 #[doc = "`GL_TEXTURE19: GLenum = 0x84D3`"]
3739 #[doc = "* **Group:** TextureUnit"]
3740 pub const GL_TEXTURE19: GLenum = 0x84D3;
3741 #[doc = "`GL_TEXTURE2: GLenum = 0x84C2`"]
3742 #[doc = "* **Group:** TextureUnit"]
3743 pub const GL_TEXTURE2: GLenum = 0x84C2;
3744 #[doc = "`GL_TEXTURE20: GLenum = 0x84D4`"]
3745 #[doc = "* **Group:** TextureUnit"]
3746 pub const GL_TEXTURE20: GLenum = 0x84D4;
3747 #[doc = "`GL_TEXTURE21: GLenum = 0x84D5`"]
3748 #[doc = "* **Group:** TextureUnit"]
3749 pub const GL_TEXTURE21: GLenum = 0x84D5;
3750 #[doc = "`GL_TEXTURE22: GLenum = 0x84D6`"]
3751 #[doc = "* **Group:** TextureUnit"]
3752 pub const GL_TEXTURE22: GLenum = 0x84D6;
3753 #[doc = "`GL_TEXTURE23: GLenum = 0x84D7`"]
3754 #[doc = "* **Group:** TextureUnit"]
3755 pub const GL_TEXTURE23: GLenum = 0x84D7;
3756 #[doc = "`GL_TEXTURE24: GLenum = 0x84D8`"]
3757 #[doc = "* **Group:** TextureUnit"]
3758 pub const GL_TEXTURE24: GLenum = 0x84D8;
3759 #[doc = "`GL_TEXTURE25: GLenum = 0x84D9`"]
3760 #[doc = "* **Group:** TextureUnit"]
3761 pub const GL_TEXTURE25: GLenum = 0x84D9;
3762 #[doc = "`GL_TEXTURE26: GLenum = 0x84DA`"]
3763 #[doc = "* **Group:** TextureUnit"]
3764 pub const GL_TEXTURE26: GLenum = 0x84DA;
3765 #[doc = "`GL_TEXTURE27: GLenum = 0x84DB`"]
3766 #[doc = "* **Group:** TextureUnit"]
3767 pub const GL_TEXTURE27: GLenum = 0x84DB;
3768 #[doc = "`GL_TEXTURE28: GLenum = 0x84DC`"]
3769 #[doc = "* **Group:** TextureUnit"]
3770 pub const GL_TEXTURE28: GLenum = 0x84DC;
3771 #[doc = "`GL_TEXTURE29: GLenum = 0x84DD`"]
3772 #[doc = "* **Group:** TextureUnit"]
3773 pub const GL_TEXTURE29: GLenum = 0x84DD;
3774 #[doc = "`GL_TEXTURE3: GLenum = 0x84C3`"]
3775 #[doc = "* **Group:** TextureUnit"]
3776 pub const GL_TEXTURE3: GLenum = 0x84C3;
3777 #[doc = "`GL_TEXTURE30: GLenum = 0x84DE`"]
3778 #[doc = "* **Group:** TextureUnit"]
3779 pub const GL_TEXTURE30: GLenum = 0x84DE;
3780 #[doc = "`GL_TEXTURE31: GLenum = 0x84DF`"]
3781 #[doc = "* **Group:** TextureUnit"]
3782 pub const GL_TEXTURE31: GLenum = 0x84DF;
3783 #[doc = "`GL_TEXTURE4: GLenum = 0x84C4`"]
3784 #[doc = "* **Group:** TextureUnit"]
3785 pub const GL_TEXTURE4: GLenum = 0x84C4;
3786 #[doc = "`GL_TEXTURE5: GLenum = 0x84C5`"]
3787 #[doc = "* **Group:** TextureUnit"]
3788 pub const GL_TEXTURE5: GLenum = 0x84C5;
3789 #[doc = "`GL_TEXTURE6: GLenum = 0x84C6`"]
3790 #[doc = "* **Group:** TextureUnit"]
3791 pub const GL_TEXTURE6: GLenum = 0x84C6;
3792 #[doc = "`GL_TEXTURE7: GLenum = 0x84C7`"]
3793 #[doc = "* **Group:** TextureUnit"]
3794 pub const GL_TEXTURE7: GLenum = 0x84C7;
3795 #[doc = "`GL_TEXTURE8: GLenum = 0x84C8`"]
3796 #[doc = "* **Group:** TextureUnit"]
3797 pub const GL_TEXTURE8: GLenum = 0x84C8;
3798 #[doc = "`GL_TEXTURE9: GLenum = 0x84C9`"]
3799 #[doc = "* **Group:** TextureUnit"]
3800 pub const GL_TEXTURE9: GLenum = 0x84C9;
3801 #[doc = "`GL_TEXTURE_1D: GLenum = 0x0DE0`"]
3802 #[doc = "* **Groups:** CopyImageSubDataTarget, EnableCap, GetPName, TextureTarget"]
3803 pub const GL_TEXTURE_1D: GLenum = 0x0DE0;
3804 #[doc = "`GL_TEXTURE_1D_ARRAY: GLenum = 0x8C18`"]
3805 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3806 pub const GL_TEXTURE_1D_ARRAY: GLenum = 0x8C18;
3807 #[doc = "`GL_TEXTURE_2D: GLenum = 0x0DE1`"]
3808 #[doc = "* **Groups:** CopyImageSubDataTarget, EnableCap, GetPName, TextureTarget"]
3809 pub const GL_TEXTURE_2D: GLenum = 0x0DE1;
3810 #[doc = "`GL_TEXTURE_2D_ARRAY: GLenum = 0x8C1A`"]
3811 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3812 pub const GL_TEXTURE_2D_ARRAY: GLenum = 0x8C1A;
3813 #[doc = "`GL_TEXTURE_2D_MULTISAMPLE: GLenum = 0x9100`"]
3814 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3815 pub const GL_TEXTURE_2D_MULTISAMPLE: GLenum = 0x9100;
3816 #[doc = "`GL_TEXTURE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9102`"]
3817 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3818 pub const GL_TEXTURE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9102;
3819 #[doc = "`GL_TEXTURE_3D: GLenum = 0x806F`"]
3820 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3821 pub const GL_TEXTURE_3D: GLenum = 0x806F;
3822 #[doc = "`GL_TEXTURE_ALPHA_SIZE: GLenum = 0x805F`"]
3823 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
3824 pub const GL_TEXTURE_ALPHA_SIZE: GLenum = 0x805F;
3825 #[doc = "`GL_TEXTURE_ALPHA_TYPE: GLenum = 0x8C13`"]
3826 pub const GL_TEXTURE_ALPHA_TYPE: GLenum = 0x8C13;
3827 #[doc = "`GL_TEXTURE_BASE_LEVEL: GLenum = 0x813C`"]
3828 #[doc = "* **Group:** TextureParameterName"]
3829 pub const GL_TEXTURE_BASE_LEVEL: GLenum = 0x813C;
3830 #[doc = "`GL_TEXTURE_BINDING_1D: GLenum = 0x8068`"]
3831 #[doc = "* **Group:** GetPName"]
3832 pub const GL_TEXTURE_BINDING_1D: GLenum = 0x8068;
3833 #[doc = "`GL_TEXTURE_BINDING_1D_ARRAY: GLenum = 0x8C1C`"]
3834 #[doc = "* **Group:** GetPName"]
3835 pub const GL_TEXTURE_BINDING_1D_ARRAY: GLenum = 0x8C1C;
3836 #[doc = "`GL_TEXTURE_BINDING_2D: GLenum = 0x8069`"]
3837 #[doc = "* **Group:** GetPName"]
3838 pub const GL_TEXTURE_BINDING_2D: GLenum = 0x8069;
3839 #[doc = "`GL_TEXTURE_BINDING_2D_ARRAY: GLenum = 0x8C1D`"]
3840 #[doc = "* **Group:** GetPName"]
3841 pub const GL_TEXTURE_BINDING_2D_ARRAY: GLenum = 0x8C1D;
3842 #[doc = "`GL_TEXTURE_BINDING_2D_MULTISAMPLE: GLenum = 0x9104`"]
3843 #[doc = "* **Group:** GetPName"]
3844 pub const GL_TEXTURE_BINDING_2D_MULTISAMPLE: GLenum = 0x9104;
3845 #[doc = "`GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY: GLenum = 0x9105`"]
3846 #[doc = "* **Group:** GetPName"]
3847 pub const GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY: GLenum = 0x9105;
3848 #[doc = "`GL_TEXTURE_BINDING_3D: GLenum = 0x806A`"]
3849 #[doc = "* **Group:** GetPName"]
3850 pub const GL_TEXTURE_BINDING_3D: GLenum = 0x806A;
3851 #[doc = "`GL_TEXTURE_BINDING_BUFFER: GLenum = 0x8C2C`"]
3852 #[doc = "* **Group:** GetPName"]
3853 pub const GL_TEXTURE_BINDING_BUFFER: GLenum = 0x8C2C;
3854 #[doc = "`GL_TEXTURE_BINDING_CUBE_MAP: GLenum = 0x8514`"]
3855 #[doc = "* **Group:** GetPName"]
3856 pub const GL_TEXTURE_BINDING_CUBE_MAP: GLenum = 0x8514;
3857 #[doc = "`GL_TEXTURE_BINDING_CUBE_MAP_ARRAY: GLenum = 0x900A`"]
3858 pub const GL_TEXTURE_BINDING_CUBE_MAP_ARRAY: GLenum = 0x900A;
3859 #[doc = "`GL_TEXTURE_BINDING_RECTANGLE: GLenum = 0x84F6`"]
3860 #[doc = "* **Group:** GetPName"]
3861 pub const GL_TEXTURE_BINDING_RECTANGLE: GLenum = 0x84F6;
3862 #[doc = "`GL_TEXTURE_BLUE_SIZE: GLenum = 0x805E`"]
3863 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
3864 pub const GL_TEXTURE_BLUE_SIZE: GLenum = 0x805E;
3865 #[doc = "`GL_TEXTURE_BLUE_TYPE: GLenum = 0x8C12`"]
3866 pub const GL_TEXTURE_BLUE_TYPE: GLenum = 0x8C12;
3867 #[doc = "`GL_TEXTURE_BORDER_COLOR: GLenum = 0x1004`"]
3868 #[doc = "* **Groups:** SamplerParameterF, GetTextureParameter, TextureParameterName"]
3869 pub const GL_TEXTURE_BORDER_COLOR: GLenum = 0x1004;
3870 #[doc = "`GL_TEXTURE_BUFFER: GLenum = 0x8C2A`"]
3871 #[doc = "* **Groups:** TextureTarget, CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
3872 pub const GL_TEXTURE_BUFFER: GLenum = 0x8C2A;
3873 #[doc = "`GL_TEXTURE_BUFFER_BINDING: GLenum = 0x8C2A`"]
3874 pub const GL_TEXTURE_BUFFER_BINDING: GLenum = 0x8C2A;
3875 #[doc = "`GL_TEXTURE_BUFFER_DATA_STORE_BINDING: GLenum = 0x8C2D`"]
3876 pub const GL_TEXTURE_BUFFER_DATA_STORE_BINDING: GLenum = 0x8C2D;
3877 #[doc = "`GL_TEXTURE_BUFFER_OFFSET: GLenum = 0x919D`"]
3878 pub const GL_TEXTURE_BUFFER_OFFSET: GLenum = 0x919D;
3879 #[doc = "`GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT: GLenum = 0x919F`"]
3880 #[doc = "* **Group:** GetPName"]
3881 pub const GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT: GLenum = 0x919F;
3882 #[doc = "`GL_TEXTURE_BUFFER_SIZE: GLenum = 0x919E`"]
3883 pub const GL_TEXTURE_BUFFER_SIZE: GLenum = 0x919E;
3884 #[doc = "`GL_TEXTURE_COMPARE_FUNC: GLenum = 0x884D`"]
3885 #[doc = "* **Groups:** SamplerParameterI, TextureParameterName"]
3886 pub const GL_TEXTURE_COMPARE_FUNC: GLenum = 0x884D;
3887 #[doc = "`GL_TEXTURE_COMPARE_MODE: GLenum = 0x884C`"]
3888 #[doc = "* **Groups:** SamplerParameterI, TextureParameterName"]
3889 pub const GL_TEXTURE_COMPARE_MODE: GLenum = 0x884C;
3890 #[doc = "`GL_TEXTURE_COMPRESSED: GLenum = 0x86A1`"]
3891 #[doc = "* **Group:** InternalFormatPName"]
3892 pub const GL_TEXTURE_COMPRESSED: GLenum = 0x86A1;
3893 #[doc = "`GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT: GLenum = 0x82B2`"]
3894 #[doc = "* **Group:** InternalFormatPName"]
3895 pub const GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT: GLenum = 0x82B2;
3896 #[doc = "`GL_TEXTURE_COMPRESSED_BLOCK_SIZE: GLenum = 0x82B3`"]
3897 #[doc = "* **Group:** InternalFormatPName"]
3898 pub const GL_TEXTURE_COMPRESSED_BLOCK_SIZE: GLenum = 0x82B3;
3899 #[doc = "`GL_TEXTURE_COMPRESSED_BLOCK_WIDTH: GLenum = 0x82B1`"]
3900 #[doc = "* **Group:** InternalFormatPName"]
3901 pub const GL_TEXTURE_COMPRESSED_BLOCK_WIDTH: GLenum = 0x82B1;
3902 #[doc = "`GL_TEXTURE_COMPRESSED_IMAGE_SIZE: GLenum = 0x86A0`"]
3903 pub const GL_TEXTURE_COMPRESSED_IMAGE_SIZE: GLenum = 0x86A0;
3904 #[doc = "`GL_TEXTURE_COMPRESSION_HINT: GLenum = 0x84EF`"]
3905 #[doc = "* **Groups:** HintTarget, GetPName"]
3906 pub const GL_TEXTURE_COMPRESSION_HINT: GLenum = 0x84EF;
3907 #[doc = "`GL_TEXTURE_CUBE_MAP: GLenum = 0x8513`"]
3908 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3909 pub const GL_TEXTURE_CUBE_MAP: GLenum = 0x8513;
3910 #[doc = "`GL_TEXTURE_CUBE_MAP_ARRAY: GLenum = 0x9009`"]
3911 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3912 pub const GL_TEXTURE_CUBE_MAP_ARRAY: GLenum = 0x9009;
3913 #[doc = "`GL_TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum = 0x8516`"]
3914 #[doc = "* **Group:** TextureTarget"]
3915 pub const GL_TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum = 0x8516;
3916 #[doc = "`GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum = 0x8518`"]
3917 #[doc = "* **Group:** TextureTarget"]
3918 pub const GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum = 0x8518;
3919 #[doc = "`GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum = 0x851A`"]
3920 #[doc = "* **Group:** TextureTarget"]
3921 pub const GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum = 0x851A;
3922 #[doc = "`GL_TEXTURE_CUBE_MAP_POSITIVE_X: GLenum = 0x8515`"]
3923 #[doc = "* **Group:** TextureTarget"]
3924 pub const GL_TEXTURE_CUBE_MAP_POSITIVE_X: GLenum = 0x8515;
3925 #[doc = "`GL_TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum = 0x8517`"]
3926 #[doc = "* **Group:** TextureTarget"]
3927 pub const GL_TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum = 0x8517;
3928 #[doc = "`GL_TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum = 0x8519`"]
3929 #[doc = "* **Group:** TextureTarget"]
3930 pub const GL_TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum = 0x8519;
3931 #[doc = "`GL_TEXTURE_CUBE_MAP_SEAMLESS: GLenum = 0x884F`"]
3932 #[doc = "* **Group:** EnableCap"]
3933 pub const GL_TEXTURE_CUBE_MAP_SEAMLESS: GLenum = 0x884F;
3934 #[doc = "`GL_TEXTURE_DEPTH: GLenum = 0x8071`"]
3935 pub const GL_TEXTURE_DEPTH: GLenum = 0x8071;
3936 #[doc = "`GL_TEXTURE_DEPTH_SIZE: GLenum = 0x884A`"]
3937 pub const GL_TEXTURE_DEPTH_SIZE: GLenum = 0x884A;
3938 #[doc = "`GL_TEXTURE_DEPTH_TYPE: GLenum = 0x8C16`"]
3939 pub const GL_TEXTURE_DEPTH_TYPE: GLenum = 0x8C16;
3940 #[doc = "`GL_TEXTURE_FETCH_BARRIER_BIT: GLbitfield = 0x00000008`"]
3941 #[doc = "* **Group:** MemoryBarrierMask"]
3942 pub const GL_TEXTURE_FETCH_BARRIER_BIT: GLbitfield = 0x00000008;
3943 #[doc = "`GL_TEXTURE_FIXED_SAMPLE_LOCATIONS: GLenum = 0x9107`"]
3944 pub const GL_TEXTURE_FIXED_SAMPLE_LOCATIONS: GLenum = 0x9107;
3945 #[doc = "`GL_TEXTURE_GATHER: GLenum = 0x82A2`"]
3946 #[doc = "* **Group:** InternalFormatPName"]
3947 pub const GL_TEXTURE_GATHER: GLenum = 0x82A2;
3948 #[doc = "`GL_TEXTURE_GATHER_SHADOW: GLenum = 0x82A3`"]
3949 #[doc = "* **Group:** InternalFormatPName"]
3950 pub const GL_TEXTURE_GATHER_SHADOW: GLenum = 0x82A3;
3951 #[doc = "`GL_TEXTURE_GREEN_SIZE: GLenum = 0x805D`"]
3952 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
3953 pub const GL_TEXTURE_GREEN_SIZE: GLenum = 0x805D;
3954 #[doc = "`GL_TEXTURE_GREEN_TYPE: GLenum = 0x8C11`"]
3955 pub const GL_TEXTURE_GREEN_TYPE: GLenum = 0x8C11;
3956 #[doc = "`GL_TEXTURE_HEIGHT: GLenum = 0x1001`"]
3957 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
3958 pub const GL_TEXTURE_HEIGHT: GLenum = 0x1001;
3959 #[doc = "`GL_TEXTURE_IMAGE_FORMAT: GLenum = 0x828F`"]
3960 #[doc = "* **Group:** InternalFormatPName"]
3961 pub const GL_TEXTURE_IMAGE_FORMAT: GLenum = 0x828F;
3962 #[doc = "`GL_TEXTURE_IMAGE_TYPE: GLenum = 0x8290`"]
3963 #[doc = "* **Group:** InternalFormatPName"]
3964 pub const GL_TEXTURE_IMAGE_TYPE: GLenum = 0x8290;
3965 #[doc = "`GL_TEXTURE_IMMUTABLE_FORMAT: GLenum = 0x912F`"]
3966 pub const GL_TEXTURE_IMMUTABLE_FORMAT: GLenum = 0x912F;
3967 #[doc = "`GL_TEXTURE_IMMUTABLE_LEVELS: GLenum = 0x82DF`"]
3968 pub const GL_TEXTURE_IMMUTABLE_LEVELS: GLenum = 0x82DF;
3969 #[doc = "`GL_TEXTURE_INTERNAL_FORMAT: GLenum = 0x1003`"]
3970 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
3971 pub const GL_TEXTURE_INTERNAL_FORMAT: GLenum = 0x1003;
3972 #[doc = "`GL_TEXTURE_LOD_BIAS: GLenum = 0x8501`"]
3973 #[doc = "* **Groups:** TextureParameterName, SamplerParameterF"]
3974 pub const GL_TEXTURE_LOD_BIAS: GLenum = 0x8501;
3975 #[doc = "`GL_TEXTURE_MAG_FILTER: GLenum = 0x2800`"]
3976 #[doc = "* **Groups:** SamplerParameterI, GetTextureParameter, TextureParameterName"]
3977 pub const GL_TEXTURE_MAG_FILTER: GLenum = 0x2800;
3978 #[doc = "`GL_TEXTURE_MAX_ANISOTROPY: GLenum = 0x84FE`"]
3979 #[doc = "* **Group:** SamplerParameterF"]
3980 pub const GL_TEXTURE_MAX_ANISOTROPY: GLenum = 0x84FE;
3981 #[doc = "`GL_TEXTURE_MAX_ANISOTROPY_EXT: GLenum = 0x84FE`"]
3982 #[doc = "* **Alias Of:** `GL_TEXTURE_MAX_ANISOTROPY`"]
3983
3984 pub const GL_TEXTURE_MAX_ANISOTROPY_EXT: GLenum = 0x84FE;
3985 #[doc = "`GL_TEXTURE_MAX_LEVEL: GLenum = 0x813D`"]
3986 #[doc = "* **Group:** TextureParameterName"]
3987 pub const GL_TEXTURE_MAX_LEVEL: GLenum = 0x813D;
3988 #[doc = "`GL_TEXTURE_MAX_LOD: GLenum = 0x813B`"]
3989 #[doc = "* **Groups:** SamplerParameterF, TextureParameterName"]
3990 pub const GL_TEXTURE_MAX_LOD: GLenum = 0x813B;
3991 #[doc = "`GL_TEXTURE_MIN_FILTER: GLenum = 0x2801`"]
3992 #[doc = "* **Groups:** SamplerParameterI, GetTextureParameter, TextureParameterName"]
3993 pub const GL_TEXTURE_MIN_FILTER: GLenum = 0x2801;
3994 #[doc = "`GL_TEXTURE_MIN_LOD: GLenum = 0x813A`"]
3995 #[doc = "* **Groups:** SamplerParameterF, TextureParameterName"]
3996 pub const GL_TEXTURE_MIN_LOD: GLenum = 0x813A;
3997 #[doc = "`GL_TEXTURE_RECTANGLE: GLenum = 0x84F5`"]
3998 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3999 pub const GL_TEXTURE_RECTANGLE: GLenum = 0x84F5;
4000 #[doc = "`GL_TEXTURE_RED_SIZE: GLenum = 0x805C`"]
4001 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
4002 pub const GL_TEXTURE_RED_SIZE: GLenum = 0x805C;
4003 #[doc = "`GL_TEXTURE_RED_TYPE: GLenum = 0x8C10`"]
4004 pub const GL_TEXTURE_RED_TYPE: GLenum = 0x8C10;
4005 #[doc = "`GL_TEXTURE_SAMPLES: GLenum = 0x9106`"]
4006 pub const GL_TEXTURE_SAMPLES: GLenum = 0x9106;
4007 #[doc = "`GL_TEXTURE_SHADOW: GLenum = 0x82A1`"]
4008 #[doc = "* **Group:** InternalFormatPName"]
4009 pub const GL_TEXTURE_SHADOW: GLenum = 0x82A1;
4010 #[doc = "`GL_TEXTURE_SHARED_SIZE: GLenum = 0x8C3F`"]
4011 pub const GL_TEXTURE_SHARED_SIZE: GLenum = 0x8C3F;
4012 #[doc = "`GL_TEXTURE_STENCIL_SIZE: GLenum = 0x88F1`"]
4013 pub const GL_TEXTURE_STENCIL_SIZE: GLenum = 0x88F1;
4014 #[doc = "`GL_TEXTURE_SWIZZLE_A: GLenum = 0x8E45`"]
4015 #[doc = "* **Group:** TextureParameterName"]
4016 pub const GL_TEXTURE_SWIZZLE_A: GLenum = 0x8E45;
4017 #[doc = "`GL_TEXTURE_SWIZZLE_B: GLenum = 0x8E44`"]
4018 #[doc = "* **Group:** TextureParameterName"]
4019 pub const GL_TEXTURE_SWIZZLE_B: GLenum = 0x8E44;
4020 #[doc = "`GL_TEXTURE_SWIZZLE_G: GLenum = 0x8E43`"]
4021 #[doc = "* **Group:** TextureParameterName"]
4022 pub const GL_TEXTURE_SWIZZLE_G: GLenum = 0x8E43;
4023 #[doc = "`GL_TEXTURE_SWIZZLE_R: GLenum = 0x8E42`"]
4024 #[doc = "* **Group:** TextureParameterName"]
4025 pub const GL_TEXTURE_SWIZZLE_R: GLenum = 0x8E42;
4026 #[doc = "`GL_TEXTURE_SWIZZLE_RGBA: GLenum = 0x8E46`"]
4027 #[doc = "* **Group:** TextureParameterName"]
4028 pub const GL_TEXTURE_SWIZZLE_RGBA: GLenum = 0x8E46;
4029 #[doc = "`GL_TEXTURE_TARGET: GLenum = 0x1006`"]
4030 pub const GL_TEXTURE_TARGET: GLenum = 0x1006;
4031 #[doc = "`GL_TEXTURE_UPDATE_BARRIER_BIT: GLbitfield = 0x00000100`"]
4032 #[doc = "* **Group:** MemoryBarrierMask"]
4033 pub const GL_TEXTURE_UPDATE_BARRIER_BIT: GLbitfield = 0x00000100;
4034 #[doc = "`GL_TEXTURE_VIEW: GLenum = 0x82B5`"]
4035 #[doc = "* **Group:** InternalFormatPName"]
4036 pub const GL_TEXTURE_VIEW: GLenum = 0x82B5;
4037 #[doc = "`GL_TEXTURE_VIEW_MIN_LAYER: GLenum = 0x82DD`"]
4038 pub const GL_TEXTURE_VIEW_MIN_LAYER: GLenum = 0x82DD;
4039 #[doc = "`GL_TEXTURE_VIEW_MIN_LEVEL: GLenum = 0x82DB`"]
4040 pub const GL_TEXTURE_VIEW_MIN_LEVEL: GLenum = 0x82DB;
4041 #[doc = "`GL_TEXTURE_VIEW_NUM_LAYERS: GLenum = 0x82DE`"]
4042 pub const GL_TEXTURE_VIEW_NUM_LAYERS: GLenum = 0x82DE;
4043 #[doc = "`GL_TEXTURE_VIEW_NUM_LEVELS: GLenum = 0x82DC`"]
4044 pub const GL_TEXTURE_VIEW_NUM_LEVELS: GLenum = 0x82DC;
4045 #[doc = "`GL_TEXTURE_WIDTH: GLenum = 0x1000`"]
4046 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
4047 pub const GL_TEXTURE_WIDTH: GLenum = 0x1000;
4048 #[doc = "`GL_TEXTURE_WRAP_R: GLenum = 0x8072`"]
4049 #[doc = "* **Groups:** SamplerParameterI, TextureParameterName"]
4050 pub const GL_TEXTURE_WRAP_R: GLenum = 0x8072;
4051 #[doc = "`GL_TEXTURE_WRAP_S: GLenum = 0x2802`"]
4052 #[doc = "* **Groups:** SamplerParameterI, GetTextureParameter, TextureParameterName"]
4053 pub const GL_TEXTURE_WRAP_S: GLenum = 0x2802;
4054 #[doc = "`GL_TEXTURE_WRAP_T: GLenum = 0x2803`"]
4055 #[doc = "* **Groups:** SamplerParameterI, GetTextureParameter, TextureParameterName"]
4056 pub const GL_TEXTURE_WRAP_T: GLenum = 0x2803;
4057 #[doc = "`GL_TIMEOUT_EXPIRED: GLenum = 0x911B`"]
4058 #[doc = "* **Group:** SyncStatus"]
4059 pub const GL_TIMEOUT_EXPIRED: GLenum = 0x911B;
4060 #[doc = "`GL_TIMEOUT_IGNORED: u64 = 0xFFFFFFFFFFFFFFFF`"]
4061 pub const GL_TIMEOUT_IGNORED: u64 = 0xFFFFFFFFFFFFFFFF;
4062 #[doc = "`GL_TIMESTAMP: GLenum = 0x8E28`"]
4063 #[doc = "* **Groups:** QueryCounterTarget, GetPName"]
4064 pub const GL_TIMESTAMP: GLenum = 0x8E28;
4065 #[doc = "`GL_TIME_ELAPSED: GLenum = 0x88BF`"]
4066 #[doc = "* **Group:** QueryTarget"]
4067 pub const GL_TIME_ELAPSED: GLenum = 0x88BF;
4068 #[doc = "`GL_TOP_LEVEL_ARRAY_SIZE: GLenum = 0x930C`"]
4069 #[doc = "* **Group:** ProgramResourceProperty"]
4070 pub const GL_TOP_LEVEL_ARRAY_SIZE: GLenum = 0x930C;
4071 #[doc = "`GL_TOP_LEVEL_ARRAY_STRIDE: GLenum = 0x930D`"]
4072 #[doc = "* **Group:** ProgramResourceProperty"]
4073 pub const GL_TOP_LEVEL_ARRAY_STRIDE: GLenum = 0x930D;
4074 #[doc = "`GL_TRANSFORM_FEEDBACK: GLenum = 0x8E22`"]
4075 #[doc = "* **Groups:** ObjectIdentifier, BindTransformFeedbackTarget"]
4076 pub const GL_TRANSFORM_FEEDBACK: GLenum = 0x8E22;
4077 #[doc = "`GL_TRANSFORM_FEEDBACK_ACTIVE: GLenum = 0x8E24`"]
4078 #[doc = "* **Group:** TransformFeedbackPName"]
4079 #[doc = "* **Alias Of:** `GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE`"]
4080 pub const GL_TRANSFORM_FEEDBACK_ACTIVE: GLenum = 0x8E24;
4081 #[doc = "`GL_TRANSFORM_FEEDBACK_BARRIER_BIT: GLbitfield = 0x00000800`"]
4082 #[doc = "* **Group:** MemoryBarrierMask"]
4083 pub const GL_TRANSFORM_FEEDBACK_BARRIER_BIT: GLbitfield = 0x00000800;
4084 #[doc = "`GL_TRANSFORM_FEEDBACK_BINDING: GLenum = 0x8E25`"]
4085 pub const GL_TRANSFORM_FEEDBACK_BINDING: GLenum = 0x8E25;
4086 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER: GLenum = 0x8C8E`"]
4087 #[doc = "* **Groups:** ProgramInterface, BufferTargetARB, BufferStorageTarget, CopyBufferSubDataTarget"]
4088 pub const GL_TRANSFORM_FEEDBACK_BUFFER: GLenum = 0x8C8E;
4089 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE: GLenum = 0x8E24`"]
4090 pub const GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE: GLenum = 0x8E24;
4091 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_BINDING: GLenum = 0x8C8F`"]
4092 #[doc = "* **Groups:** TransformFeedbackPName, GetPName"]
4093 pub const GL_TRANSFORM_FEEDBACK_BUFFER_BINDING: GLenum = 0x8C8F;
4094 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_INDEX: GLenum = 0x934B`"]
4095 #[doc = "* **Group:** ProgramResourceProperty"]
4096 pub const GL_TRANSFORM_FEEDBACK_BUFFER_INDEX: GLenum = 0x934B;
4097 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_MODE: GLenum = 0x8C7F`"]
4098 #[doc = "* **Group:** ProgramPropertyARB"]
4099 pub const GL_TRANSFORM_FEEDBACK_BUFFER_MODE: GLenum = 0x8C7F;
4100 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED: GLenum = 0x8E23`"]
4101 pub const GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED: GLenum = 0x8E23;
4102 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_SIZE: GLenum = 0x8C85`"]
4103 #[doc = "* **Groups:** TransformFeedbackPName, GetPName"]
4104 pub const GL_TRANSFORM_FEEDBACK_BUFFER_SIZE: GLenum = 0x8C85;
4105 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_START: GLenum = 0x8C84`"]
4106 #[doc = "* **Groups:** TransformFeedbackPName, GetPName"]
4107 pub const GL_TRANSFORM_FEEDBACK_BUFFER_START: GLenum = 0x8C84;
4108 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE: GLenum = 0x934C`"]
4109 #[doc = "* **Group:** ProgramResourceProperty"]
4110 pub const GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE: GLenum = 0x934C;
4111 #[doc = "`GL_TRANSFORM_FEEDBACK_OVERFLOW: GLenum = 0x82EC`"]
4112 #[doc = "* **Group:** QueryTarget"]
4113 pub const GL_TRANSFORM_FEEDBACK_OVERFLOW: GLenum = 0x82EC;
4114 #[doc = "`GL_TRANSFORM_FEEDBACK_PAUSED: GLenum = 0x8E23`"]
4115 #[doc = "* **Group:** TransformFeedbackPName"]
4116 #[doc = "* **Alias Of:** `GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED`"]
4117 pub const GL_TRANSFORM_FEEDBACK_PAUSED: GLenum = 0x8E23;
4118 #[doc = "`GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: GLenum = 0x8C88`"]
4119 #[doc = "* **Group:** QueryTarget"]
4120 pub const GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: GLenum = 0x8C88;
4121 #[doc = "`GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW: GLenum = 0x82ED`"]
4122 pub const GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW: GLenum = 0x82ED;
4123 #[doc = "`GL_TRANSFORM_FEEDBACK_VARYING: GLenum = 0x92F4`"]
4124 #[doc = "* **Group:** ProgramInterface"]
4125 pub const GL_TRANSFORM_FEEDBACK_VARYING: GLenum = 0x92F4;
4126 #[doc = "`GL_TRANSFORM_FEEDBACK_VARYINGS: GLenum = 0x8C83`"]
4127 #[doc = "* **Group:** ProgramPropertyARB"]
4128 pub const GL_TRANSFORM_FEEDBACK_VARYINGS: GLenum = 0x8C83;
4129 #[doc = "`GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH: GLenum = 0x8C76`"]
4130 #[doc = "* **Group:** ProgramPropertyARB"]
4131 pub const GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH: GLenum = 0x8C76;
4132 #[doc = "`GL_TRIANGLES: GLenum = 0x0004`"]
4133 #[doc = "* **Group:** PrimitiveType"]
4134 pub const GL_TRIANGLES: GLenum = 0x0004;
4135 #[doc = "`GL_TRIANGLES_ADJACENCY: GLenum = 0x000C`"]
4136 #[doc = "* **Group:** PrimitiveType"]
4137 pub const GL_TRIANGLES_ADJACENCY: GLenum = 0x000C;
4138 #[doc = "`GL_TRIANGLE_FAN: GLenum = 0x0006`"]
4139 #[doc = "* **Group:** PrimitiveType"]
4140 pub const GL_TRIANGLE_FAN: GLenum = 0x0006;
4141 #[doc = "`GL_TRIANGLE_STRIP: GLenum = 0x0005`"]
4142 #[doc = "* **Group:** PrimitiveType"]
4143 pub const GL_TRIANGLE_STRIP: GLenum = 0x0005;
4144 #[doc = "`GL_TRIANGLE_STRIP_ADJACENCY: GLenum = 0x000D`"]
4145 #[doc = "* **Group:** PrimitiveType"]
4146 pub const GL_TRIANGLE_STRIP_ADJACENCY: GLenum = 0x000D;
4147 #[doc = "`GL_TRUE: GLenum = 1`"]
4148 #[doc = "* **Groups:** Boolean, VertexShaderWriteMaskEXT, ClampColorModeARB"]
4149 pub const GL_TRUE: GLenum = 1;
4150 #[doc = "`GL_TYPE: GLenum = 0x92FA`"]
4151 #[doc = "* **Group:** ProgramResourceProperty"]
4152 pub const GL_TYPE: GLenum = 0x92FA;
4153 #[doc = "`GL_UNDEFINED_VERTEX: GLenum = 0x8260`"]
4154 pub const GL_UNDEFINED_VERTEX: GLenum = 0x8260;
4155 #[doc = "`GL_UNIFORM: GLenum = 0x92E1`"]
4156 #[doc = "* **Groups:** ProgramResourceProperty, ProgramInterface"]
4157 pub const GL_UNIFORM: GLenum = 0x92E1;
4158 #[doc = "`GL_UNIFORM_ARRAY_STRIDE: GLenum = 0x8A3C`"]
4159 #[doc = "* **Group:** UniformPName"]
4160 pub const GL_UNIFORM_ARRAY_STRIDE: GLenum = 0x8A3C;
4161 #[doc = "`GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX: GLenum = 0x92DA`"]
4162 #[doc = "* **Group:** UniformPName"]
4163 pub const GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX: GLenum = 0x92DA;
4164 #[doc = "`GL_UNIFORM_BARRIER_BIT: GLbitfield = 0x00000004`"]
4165 #[doc = "* **Group:** MemoryBarrierMask"]
4166 pub const GL_UNIFORM_BARRIER_BIT: GLbitfield = 0x00000004;
4167 #[doc = "`GL_UNIFORM_BLOCK: GLenum = 0x92E2`"]
4168 #[doc = "* **Group:** ProgramInterface"]
4169 pub const GL_UNIFORM_BLOCK: GLenum = 0x92E2;
4170 #[doc = "`GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS: GLenum = 0x8A42`"]
4171 #[doc = "* **Group:** UniformBlockPName"]
4172 pub const GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS: GLenum = 0x8A42;
4173 #[doc = "`GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: GLenum = 0x8A43`"]
4174 #[doc = "* **Group:** UniformBlockPName"]
4175 pub const GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: GLenum = 0x8A43;
4176 #[doc = "`GL_UNIFORM_BLOCK_BINDING: GLenum = 0x8A3F`"]
4177 #[doc = "* **Group:** UniformBlockPName"]
4178 pub const GL_UNIFORM_BLOCK_BINDING: GLenum = 0x8A3F;
4179 #[doc = "`GL_UNIFORM_BLOCK_DATA_SIZE: GLenum = 0x8A40`"]
4180 #[doc = "* **Group:** UniformBlockPName"]
4181 pub const GL_UNIFORM_BLOCK_DATA_SIZE: GLenum = 0x8A40;
4182 #[doc = "`GL_UNIFORM_BLOCK_INDEX: GLenum = 0x8A3A`"]
4183 #[doc = "* **Group:** UniformPName"]
4184 pub const GL_UNIFORM_BLOCK_INDEX: GLenum = 0x8A3A;
4185 #[doc = "`GL_UNIFORM_BLOCK_NAME_LENGTH: GLenum = 0x8A41`"]
4186 #[doc = "* **Group:** UniformBlockPName"]
4187 pub const GL_UNIFORM_BLOCK_NAME_LENGTH: GLenum = 0x8A41;
4188 #[doc = "`GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER: GLenum = 0x90EC`"]
4189 #[doc = "* **Group:** UniformBlockPName"]
4190 pub const GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER: GLenum = 0x90EC;
4191 #[doc = "`GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: GLenum = 0x8A46`"]
4192 #[doc = "* **Group:** UniformBlockPName"]
4193 pub const GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: GLenum = 0x8A46;
4194 #[doc = "`GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER: GLenum = 0x8A45`"]
4195 #[doc = "* **Group:** UniformBlockPName"]
4196 pub const GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER: GLenum = 0x8A45;
4197 #[doc = "`GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER: GLenum = 0x84F0`"]
4198 #[doc = "* **Group:** UniformBlockPName"]
4199 pub const GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER: GLenum = 0x84F0;
4200 #[doc = "`GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER: GLenum = 0x84F1`"]
4201 #[doc = "* **Group:** UniformBlockPName"]
4202 pub const GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER: GLenum = 0x84F1;
4203 #[doc = "`GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: GLenum = 0x8A44`"]
4204 #[doc = "* **Group:** UniformBlockPName"]
4205 pub const GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: GLenum = 0x8A44;
4206 #[doc = "`GL_UNIFORM_BUFFER: GLenum = 0x8A11`"]
4207 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
4208 pub const GL_UNIFORM_BUFFER: GLenum = 0x8A11;
4209 #[doc = "`GL_UNIFORM_BUFFER_BINDING: GLenum = 0x8A28`"]
4210 #[doc = "* **Group:** GetPName"]
4211 pub const GL_UNIFORM_BUFFER_BINDING: GLenum = 0x8A28;
4212 #[doc = "`GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT: GLenum = 0x8A34`"]
4213 #[doc = "* **Group:** GetPName"]
4214 pub const GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT: GLenum = 0x8A34;
4215 #[doc = "`GL_UNIFORM_BUFFER_SIZE: GLenum = 0x8A2A`"]
4216 #[doc = "* **Group:** GetPName"]
4217 pub const GL_UNIFORM_BUFFER_SIZE: GLenum = 0x8A2A;
4218 #[doc = "`GL_UNIFORM_BUFFER_START: GLenum = 0x8A29`"]
4219 #[doc = "* **Group:** GetPName"]
4220 pub const GL_UNIFORM_BUFFER_START: GLenum = 0x8A29;
4221 #[doc = "`GL_UNIFORM_IS_ROW_MAJOR: GLenum = 0x8A3E`"]
4222 #[doc = "* **Group:** UniformPName"]
4223 pub const GL_UNIFORM_IS_ROW_MAJOR: GLenum = 0x8A3E;
4224 #[doc = "`GL_UNIFORM_MATRIX_STRIDE: GLenum = 0x8A3D`"]
4225 #[doc = "* **Group:** UniformPName"]
4226 pub const GL_UNIFORM_MATRIX_STRIDE: GLenum = 0x8A3D;
4227 #[doc = "`GL_UNIFORM_NAME_LENGTH: GLenum = 0x8A39`"]
4228 #[doc = "* **Groups:** SubroutineParameterName, UniformPName"]
4229 pub const GL_UNIFORM_NAME_LENGTH: GLenum = 0x8A39;
4230 #[doc = "`GL_UNIFORM_OFFSET: GLenum = 0x8A3B`"]
4231 #[doc = "* **Group:** UniformPName"]
4232 pub const GL_UNIFORM_OFFSET: GLenum = 0x8A3B;
4233 #[doc = "`GL_UNIFORM_SIZE: GLenum = 0x8A38`"]
4234 #[doc = "* **Groups:** SubroutineParameterName, UniformPName"]
4235 pub const GL_UNIFORM_SIZE: GLenum = 0x8A38;
4236 #[doc = "`GL_UNIFORM_TYPE: GLenum = 0x8A37`"]
4237 #[doc = "* **Group:** UniformPName"]
4238 pub const GL_UNIFORM_TYPE: GLenum = 0x8A37;
4239 #[doc = "`GL_UNKNOWN_CONTEXT_RESET: GLenum = 0x8255`"]
4240 #[doc = "* **Group:** GraphicsResetStatus"]
4241 pub const GL_UNKNOWN_CONTEXT_RESET: GLenum = 0x8255;
4242 #[doc = "`GL_UNPACK_ALIGNMENT: GLenum = 0x0CF5`"]
4243 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4244 pub const GL_UNPACK_ALIGNMENT: GLenum = 0x0CF5;
4245 #[doc = "`GL_UNPACK_COMPRESSED_BLOCK_DEPTH: GLenum = 0x9129`"]
4246 pub const GL_UNPACK_COMPRESSED_BLOCK_DEPTH: GLenum = 0x9129;
4247 #[doc = "`GL_UNPACK_COMPRESSED_BLOCK_HEIGHT: GLenum = 0x9128`"]
4248 pub const GL_UNPACK_COMPRESSED_BLOCK_HEIGHT: GLenum = 0x9128;
4249 #[doc = "`GL_UNPACK_COMPRESSED_BLOCK_SIZE: GLenum = 0x912A`"]
4250 pub const GL_UNPACK_COMPRESSED_BLOCK_SIZE: GLenum = 0x912A;
4251 #[doc = "`GL_UNPACK_COMPRESSED_BLOCK_WIDTH: GLenum = 0x9127`"]
4252 pub const GL_UNPACK_COMPRESSED_BLOCK_WIDTH: GLenum = 0x9127;
4253 #[doc = "`GL_UNPACK_IMAGE_HEIGHT: GLenum = 0x806E`"]
4254 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4255 pub const GL_UNPACK_IMAGE_HEIGHT: GLenum = 0x806E;
4256 #[doc = "`GL_UNPACK_LSB_FIRST: GLenum = 0x0CF1`"]
4257 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4258 pub const GL_UNPACK_LSB_FIRST: GLenum = 0x0CF1;
4259 #[doc = "`GL_UNPACK_ROW_LENGTH: GLenum = 0x0CF2`"]
4260 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4261 pub const GL_UNPACK_ROW_LENGTH: GLenum = 0x0CF2;
4262 #[doc = "`GL_UNPACK_SKIP_IMAGES: GLenum = 0x806D`"]
4263 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4264 pub const GL_UNPACK_SKIP_IMAGES: GLenum = 0x806D;
4265 #[doc = "`GL_UNPACK_SKIP_PIXELS: GLenum = 0x0CF4`"]
4266 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4267 pub const GL_UNPACK_SKIP_PIXELS: GLenum = 0x0CF4;
4268 #[doc = "`GL_UNPACK_SKIP_ROWS: GLenum = 0x0CF3`"]
4269 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4270 pub const GL_UNPACK_SKIP_ROWS: GLenum = 0x0CF3;
4271 #[doc = "`GL_UNPACK_SWAP_BYTES: GLenum = 0x0CF0`"]
4272 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4273 pub const GL_UNPACK_SWAP_BYTES: GLenum = 0x0CF0;
4274 #[doc = "`GL_UNSIGNALED: GLenum = 0x9118`"]
4275 pub const GL_UNSIGNALED: GLenum = 0x9118;
4276 #[doc = "`GL_UNSIGNED_BYTE: GLenum = 0x1401`"]
4277 #[doc = "* **Groups:** VertexAttribIType, ScalarType, ReplacementCodeTypeSUN, ElementPointerTypeATI, MatrixIndexPointerTypeARB, WeightPointerTypeARB, ColorPointerType, DrawElementsType, ListNameType, PixelType, VertexAttribType, VertexAttribPointerType"]
4278 pub const GL_UNSIGNED_BYTE: GLenum = 0x1401;
4279 #[doc = "`GL_UNSIGNED_BYTE_2_3_3_REV: GLenum = 0x8362`"]
4280 pub const GL_UNSIGNED_BYTE_2_3_3_REV: GLenum = 0x8362;
4281 #[doc = "`GL_UNSIGNED_BYTE_3_3_2: GLenum = 0x8032`"]
4282 #[doc = "* **Group:** PixelType"]
4283 pub const GL_UNSIGNED_BYTE_3_3_2: GLenum = 0x8032;
4284 #[doc = "`GL_UNSIGNED_INT: GLenum = 0x1405`"]
4285 #[doc = "* **Groups:** VertexAttribIType, ScalarType, ReplacementCodeTypeSUN, ElementPointerTypeATI, MatrixIndexPointerTypeARB, WeightPointerTypeARB, ColorPointerType, DrawElementsType, ListNameType, PixelFormat, PixelType, VertexAttribType, AttributeType, UniformType, VertexAttribPointerType, GlslTypeToken"]
4286 pub const GL_UNSIGNED_INT: GLenum = 0x1405;
4287 #[doc = "`GL_UNSIGNED_INT_10F_11F_11F_REV: GLenum = 0x8C3B`"]
4288 #[doc = "* **Groups:** VertexAttribPointerType, VertexAttribType"]
4289 pub const GL_UNSIGNED_INT_10F_11F_11F_REV: GLenum = 0x8C3B;
4290 #[doc = "`GL_UNSIGNED_INT_10_10_10_2: GLenum = 0x8036`"]
4291 #[doc = "* **Group:** PixelType"]
4292 pub const GL_UNSIGNED_INT_10_10_10_2: GLenum = 0x8036;
4293 #[doc = "`GL_UNSIGNED_INT_24_8: GLenum = 0x84FA`"]
4294 pub const GL_UNSIGNED_INT_24_8: GLenum = 0x84FA;
4295 #[doc = "`GL_UNSIGNED_INT_2_10_10_10_REV: GLenum = 0x8368`"]
4296 #[doc = "* **Groups:** VertexAttribPointerType, VertexAttribType"]
4297 pub const GL_UNSIGNED_INT_2_10_10_10_REV: GLenum = 0x8368;
4298 #[doc = "`GL_UNSIGNED_INT_5_9_9_9_REV: GLenum = 0x8C3E`"]
4299 pub const GL_UNSIGNED_INT_5_9_9_9_REV: GLenum = 0x8C3E;
4300 #[doc = "`GL_UNSIGNED_INT_8_8_8_8: GLenum = 0x8035`"]
4301 #[doc = "* **Group:** PixelType"]
4302 pub const GL_UNSIGNED_INT_8_8_8_8: GLenum = 0x8035;
4303 #[doc = "`GL_UNSIGNED_INT_8_8_8_8_REV: GLenum = 0x8367`"]
4304 pub const GL_UNSIGNED_INT_8_8_8_8_REV: GLenum = 0x8367;
4305 #[doc = "`GL_UNSIGNED_INT_ATOMIC_COUNTER: GLenum = 0x92DB`"]
4306 #[doc = "* **Group:** GlslTypeToken"]
4307 pub const GL_UNSIGNED_INT_ATOMIC_COUNTER: GLenum = 0x92DB;
4308 #[doc = "`GL_UNSIGNED_INT_IMAGE_1D: GLenum = 0x9062`"]
4309 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4310 pub const GL_UNSIGNED_INT_IMAGE_1D: GLenum = 0x9062;
4311 #[doc = "`GL_UNSIGNED_INT_IMAGE_1D_ARRAY: GLenum = 0x9068`"]
4312 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4313 pub const GL_UNSIGNED_INT_IMAGE_1D_ARRAY: GLenum = 0x9068;
4314 #[doc = "`GL_UNSIGNED_INT_IMAGE_2D: GLenum = 0x9063`"]
4315 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4316 pub const GL_UNSIGNED_INT_IMAGE_2D: GLenum = 0x9063;
4317 #[doc = "`GL_UNSIGNED_INT_IMAGE_2D_ARRAY: GLenum = 0x9069`"]
4318 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4319 pub const GL_UNSIGNED_INT_IMAGE_2D_ARRAY: GLenum = 0x9069;
4320 #[doc = "`GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE: GLenum = 0x906B`"]
4321 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4322 pub const GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE: GLenum = 0x906B;
4323 #[doc = "`GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY: GLenum = 0x906C`"]
4324 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4325 pub const GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY: GLenum = 0x906C;
4326 #[doc = "`GL_UNSIGNED_INT_IMAGE_2D_RECT: GLenum = 0x9065`"]
4327 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4328 pub const GL_UNSIGNED_INT_IMAGE_2D_RECT: GLenum = 0x9065;
4329 #[doc = "`GL_UNSIGNED_INT_IMAGE_3D: GLenum = 0x9064`"]
4330 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4331 pub const GL_UNSIGNED_INT_IMAGE_3D: GLenum = 0x9064;
4332 #[doc = "`GL_UNSIGNED_INT_IMAGE_BUFFER: GLenum = 0x9067`"]
4333 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4334 pub const GL_UNSIGNED_INT_IMAGE_BUFFER: GLenum = 0x9067;
4335 #[doc = "`GL_UNSIGNED_INT_IMAGE_CUBE: GLenum = 0x9066`"]
4336 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4337 pub const GL_UNSIGNED_INT_IMAGE_CUBE: GLenum = 0x9066;
4338 #[doc = "`GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY: GLenum = 0x906A`"]
4339 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4340 pub const GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY: GLenum = 0x906A;
4341 #[doc = "`GL_UNSIGNED_INT_SAMPLER_1D: GLenum = 0x8DD1`"]
4342 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4343 pub const GL_UNSIGNED_INT_SAMPLER_1D: GLenum = 0x8DD1;
4344 #[doc = "`GL_UNSIGNED_INT_SAMPLER_1D_ARRAY: GLenum = 0x8DD6`"]
4345 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4346 pub const GL_UNSIGNED_INT_SAMPLER_1D_ARRAY: GLenum = 0x8DD6;
4347 #[doc = "`GL_UNSIGNED_INT_SAMPLER_2D: GLenum = 0x8DD2`"]
4348 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4349 pub const GL_UNSIGNED_INT_SAMPLER_2D: GLenum = 0x8DD2;
4350 #[doc = "`GL_UNSIGNED_INT_SAMPLER_2D_ARRAY: GLenum = 0x8DD7`"]
4351 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4352 pub const GL_UNSIGNED_INT_SAMPLER_2D_ARRAY: GLenum = 0x8DD7;
4353 #[doc = "`GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE: GLenum = 0x910A`"]
4354 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4355 pub const GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE: GLenum = 0x910A;
4356 #[doc = "`GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: GLenum = 0x910D`"]
4357 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4358 pub const GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: GLenum = 0x910D;
4359 #[doc = "`GL_UNSIGNED_INT_SAMPLER_2D_RECT: GLenum = 0x8DD5`"]
4360 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4361 pub const GL_UNSIGNED_INT_SAMPLER_2D_RECT: GLenum = 0x8DD5;
4362 #[doc = "`GL_UNSIGNED_INT_SAMPLER_3D: GLenum = 0x8DD3`"]
4363 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4364 pub const GL_UNSIGNED_INT_SAMPLER_3D: GLenum = 0x8DD3;
4365 #[doc = "`GL_UNSIGNED_INT_SAMPLER_BUFFER: GLenum = 0x8DD8`"]
4366 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4367 pub const GL_UNSIGNED_INT_SAMPLER_BUFFER: GLenum = 0x8DD8;
4368 #[doc = "`GL_UNSIGNED_INT_SAMPLER_CUBE: GLenum = 0x8DD4`"]
4369 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4370 pub const GL_UNSIGNED_INT_SAMPLER_CUBE: GLenum = 0x8DD4;
4371 #[doc = "`GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY: GLenum = 0x900F`"]
4372 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4373 pub const GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY: GLenum = 0x900F;
4374 #[doc = "`GL_UNSIGNED_INT_VEC2: GLenum = 0x8DC6`"]
4375 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4376 pub const GL_UNSIGNED_INT_VEC2: GLenum = 0x8DC6;
4377 #[doc = "`GL_UNSIGNED_INT_VEC3: GLenum = 0x8DC7`"]
4378 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4379 pub const GL_UNSIGNED_INT_VEC3: GLenum = 0x8DC7;
4380 #[doc = "`GL_UNSIGNED_INT_VEC4: GLenum = 0x8DC8`"]
4381 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4382 pub const GL_UNSIGNED_INT_VEC4: GLenum = 0x8DC8;
4383 #[doc = "`GL_UNSIGNED_NORMALIZED: GLenum = 0x8C17`"]
4384 pub const GL_UNSIGNED_NORMALIZED: GLenum = 0x8C17;
4385 #[doc = "`GL_UNSIGNED_SHORT: GLenum = 0x1403`"]
4386 #[doc = "* **Groups:** VertexAttribIType, ScalarType, ReplacementCodeTypeSUN, ElementPointerTypeATI, MatrixIndexPointerTypeARB, WeightPointerTypeARB, ColorPointerType, DrawElementsType, ListNameType, PixelFormat, PixelType, VertexAttribType, VertexAttribPointerType"]
4387 pub const GL_UNSIGNED_SHORT: GLenum = 0x1403;
4388 #[doc = "`GL_UNSIGNED_SHORT_1_5_5_5_REV: GLenum = 0x8366`"]
4389 pub const GL_UNSIGNED_SHORT_1_5_5_5_REV: GLenum = 0x8366;
4390 #[doc = "`GL_UNSIGNED_SHORT_4_4_4_4: GLenum = 0x8033`"]
4391 #[doc = "* **Group:** PixelType"]
4392 pub const GL_UNSIGNED_SHORT_4_4_4_4: GLenum = 0x8033;
4393 #[doc = "`GL_UNSIGNED_SHORT_4_4_4_4_REV: GLenum = 0x8365`"]
4394 pub const GL_UNSIGNED_SHORT_4_4_4_4_REV: GLenum = 0x8365;
4395 #[doc = "`GL_UNSIGNED_SHORT_5_5_5_1: GLenum = 0x8034`"]
4396 #[doc = "* **Group:** PixelType"]
4397 pub const GL_UNSIGNED_SHORT_5_5_5_1: GLenum = 0x8034;
4398 #[doc = "`GL_UNSIGNED_SHORT_5_6_5: GLenum = 0x8363`"]
4399 pub const GL_UNSIGNED_SHORT_5_6_5: GLenum = 0x8363;
4400 #[doc = "`GL_UNSIGNED_SHORT_5_6_5_REV: GLenum = 0x8364`"]
4401 pub const GL_UNSIGNED_SHORT_5_6_5_REV: GLenum = 0x8364;
4402 #[doc = "`GL_UPPER_LEFT: GLenum = 0x8CA2`"]
4403 #[doc = "* **Group:** ClipControlOrigin"]
4404 pub const GL_UPPER_LEFT: GLenum = 0x8CA2;
4405 #[doc = "`GL_VALIDATE_STATUS: GLenum = 0x8B83`"]
4406 #[doc = "* **Group:** ProgramPropertyARB"]
4407 pub const GL_VALIDATE_STATUS: GLenum = 0x8B83;
4408 #[doc = "`GL_VENDOR: GLenum = 0x1F00`"]
4409 #[doc = "* **Group:** StringName"]
4410 pub const GL_VENDOR: GLenum = 0x1F00;
4411 #[doc = "`GL_VERSION: GLenum = 0x1F02`"]
4412 #[doc = "* **Group:** StringName"]
4413 pub const GL_VERSION: GLenum = 0x1F02;
4414 #[doc = "`GL_VERTEX_ARRAY: GLenum = 0x8074`"]
4415 #[doc = "* **Groups:** ObjectIdentifier, EnableCap, GetPName"]
4416 pub const GL_VERTEX_ARRAY: GLenum = 0x8074;
4417 #[doc = "`GL_VERTEX_ARRAY_BINDING: GLenum = 0x85B5`"]
4418 #[doc = "* **Group:** GetPName"]
4419 pub const GL_VERTEX_ARRAY_BINDING: GLenum = 0x85B5;
4420 #[doc = "`GL_VERTEX_ARRAY_KHR: GLenum = 0x8074`"]
4421
4422 pub const GL_VERTEX_ARRAY_KHR: GLenum = 0x8074;
4423 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT: GLbitfield = 0x00000001`"]
4424 #[doc = "* **Group:** MemoryBarrierMask"]
4425 pub const GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT: GLbitfield = 0x00000001;
4426 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum = 0x889F`"]
4427 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB"]
4428 pub const GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum = 0x889F;
4429 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_DIVISOR: GLenum = 0x88FE`"]
4430 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4431 pub const GL_VERTEX_ATTRIB_ARRAY_DIVISOR: GLenum = 0x88FE;
4432 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB: GLenum = 0x88FE`"]
4433
4434 pub const GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB: GLenum = 0x88FE;
4435 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_ENABLED: GLenum = 0x8622`"]
4436 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4437 pub const GL_VERTEX_ATTRIB_ARRAY_ENABLED: GLenum = 0x8622;
4438 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_INTEGER: GLenum = 0x88FD`"]
4439 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4440 pub const GL_VERTEX_ATTRIB_ARRAY_INTEGER: GLenum = 0x88FD;
4441 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_LONG: GLenum = 0x874E`"]
4442 #[doc = "* **Groups:** VertexArrayPName, VertexAttribPropertyARB"]
4443 pub const GL_VERTEX_ATTRIB_ARRAY_LONG: GLenum = 0x874E;
4444 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum = 0x886A`"]
4445 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4446 pub const GL_VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum = 0x886A;
4447 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_POINTER: GLenum = 0x8645`"]
4448 #[doc = "* **Group:** VertexAttribPointerPropertyARB"]
4449 pub const GL_VERTEX_ATTRIB_ARRAY_POINTER: GLenum = 0x8645;
4450 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_SIZE: GLenum = 0x8623`"]
4451 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4452 pub const GL_VERTEX_ATTRIB_ARRAY_SIZE: GLenum = 0x8623;
4453 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_STRIDE: GLenum = 0x8624`"]
4454 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4455 pub const GL_VERTEX_ATTRIB_ARRAY_STRIDE: GLenum = 0x8624;
4456 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_TYPE: GLenum = 0x8625`"]
4457 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4458 pub const GL_VERTEX_ATTRIB_ARRAY_TYPE: GLenum = 0x8625;
4459 #[doc = "`GL_VERTEX_ATTRIB_BINDING: GLenum = 0x82D4`"]
4460 #[doc = "* **Group:** VertexAttribPropertyARB"]
4461 pub const GL_VERTEX_ATTRIB_BINDING: GLenum = 0x82D4;
4462 #[doc = "`GL_VERTEX_ATTRIB_RELATIVE_OFFSET: GLenum = 0x82D5`"]
4463 #[doc = "* **Groups:** VertexArrayPName, VertexAttribPropertyARB"]
4464 pub const GL_VERTEX_ATTRIB_RELATIVE_OFFSET: GLenum = 0x82D5;
4465 #[doc = "`GL_VERTEX_BINDING_BUFFER: GLenum = 0x8F4F`"]
4466 pub const GL_VERTEX_BINDING_BUFFER: GLenum = 0x8F4F;
4467 #[doc = "`GL_VERTEX_BINDING_DIVISOR: GLenum = 0x82D6`"]
4468 #[doc = "* **Group:** GetPName"]
4469 pub const GL_VERTEX_BINDING_DIVISOR: GLenum = 0x82D6;
4470 #[doc = "`GL_VERTEX_BINDING_OFFSET: GLenum = 0x82D7`"]
4471 #[doc = "* **Group:** GetPName"]
4472 pub const GL_VERTEX_BINDING_OFFSET: GLenum = 0x82D7;
4473 #[doc = "`GL_VERTEX_BINDING_STRIDE: GLenum = 0x82D8`"]
4474 #[doc = "* **Group:** GetPName"]
4475 pub const GL_VERTEX_BINDING_STRIDE: GLenum = 0x82D8;
4476 #[doc = "`GL_VERTEX_PROGRAM_POINT_SIZE: GLenum = 0x8642`"]
4477 pub const GL_VERTEX_PROGRAM_POINT_SIZE: GLenum = 0x8642;
4478 #[doc = "`GL_VERTEX_SHADER: GLenum = 0x8B31`"]
4479 #[doc = "* **Groups:** PipelineParameterName, ShaderType"]
4480 pub const GL_VERTEX_SHADER: GLenum = 0x8B31;
4481 #[doc = "`GL_VERTEX_SHADER_BIT: GLbitfield = 0x00000001`"]
4482 #[doc = "* **Group:** UseProgramStageMask"]
4483 pub const GL_VERTEX_SHADER_BIT: GLbitfield = 0x00000001;
4484 #[doc = "`GL_VERTEX_SHADER_INVOCATIONS: GLenum = 0x82F0`"]
4485 #[doc = "* **Group:** QueryTarget"]
4486 pub const GL_VERTEX_SHADER_INVOCATIONS: GLenum = 0x82F0;
4487 #[doc = "`GL_VERTEX_SUBROUTINE: GLenum = 0x92E8`"]
4488 #[doc = "* **Group:** ProgramInterface"]
4489 pub const GL_VERTEX_SUBROUTINE: GLenum = 0x92E8;
4490 #[doc = "`GL_VERTEX_SUBROUTINE_UNIFORM: GLenum = 0x92EE`"]
4491 #[doc = "* **Group:** ProgramInterface"]
4492 pub const GL_VERTEX_SUBROUTINE_UNIFORM: GLenum = 0x92EE;
4493 #[doc = "`GL_VERTEX_TEXTURE: GLenum = 0x829B`"]
4494 #[doc = "* **Group:** InternalFormatPName"]
4495 pub const GL_VERTEX_TEXTURE: GLenum = 0x829B;
4496 #[doc = "`GL_VERTICES_SUBMITTED: GLenum = 0x82EE`"]
4497 #[doc = "* **Group:** QueryTarget"]
4498 pub const GL_VERTICES_SUBMITTED: GLenum = 0x82EE;
4499 #[doc = "`GL_VIEWPORT: GLenum = 0x0BA2`"]
4500 #[doc = "* **Group:** GetPName"]
4501 pub const GL_VIEWPORT: GLenum = 0x0BA2;
4502 #[doc = "`GL_VIEWPORT_BOUNDS_RANGE: GLenum = 0x825D`"]
4503 #[doc = "* **Group:** GetPName"]
4504 pub const GL_VIEWPORT_BOUNDS_RANGE: GLenum = 0x825D;
4505 #[doc = "`GL_VIEWPORT_INDEX_PROVOKING_VERTEX: GLenum = 0x825F`"]
4506 #[doc = "* **Group:** GetPName"]
4507 pub const GL_VIEWPORT_INDEX_PROVOKING_VERTEX: GLenum = 0x825F;
4508 #[doc = "`GL_VIEWPORT_SUBPIXEL_BITS: GLenum = 0x825C`"]
4509 #[doc = "* **Group:** GetPName"]
4510 pub const GL_VIEWPORT_SUBPIXEL_BITS: GLenum = 0x825C;
4511 #[doc = "`GL_VIEW_CLASS_128_BITS: GLenum = 0x82C4`"]
4512 pub const GL_VIEW_CLASS_128_BITS: GLenum = 0x82C4;
4513 #[doc = "`GL_VIEW_CLASS_16_BITS: GLenum = 0x82CA`"]
4514 pub const GL_VIEW_CLASS_16_BITS: GLenum = 0x82CA;
4515 #[doc = "`GL_VIEW_CLASS_24_BITS: GLenum = 0x82C9`"]
4516 pub const GL_VIEW_CLASS_24_BITS: GLenum = 0x82C9;
4517 #[doc = "`GL_VIEW_CLASS_32_BITS: GLenum = 0x82C8`"]
4518 pub const GL_VIEW_CLASS_32_BITS: GLenum = 0x82C8;
4519 #[doc = "`GL_VIEW_CLASS_48_BITS: GLenum = 0x82C7`"]
4520 pub const GL_VIEW_CLASS_48_BITS: GLenum = 0x82C7;
4521 #[doc = "`GL_VIEW_CLASS_64_BITS: GLenum = 0x82C6`"]
4522 pub const GL_VIEW_CLASS_64_BITS: GLenum = 0x82C6;
4523 #[doc = "`GL_VIEW_CLASS_8_BITS: GLenum = 0x82CB`"]
4524 pub const GL_VIEW_CLASS_8_BITS: GLenum = 0x82CB;
4525 #[doc = "`GL_VIEW_CLASS_96_BITS: GLenum = 0x82C5`"]
4526 pub const GL_VIEW_CLASS_96_BITS: GLenum = 0x82C5;
4527 #[doc = "`GL_VIEW_CLASS_BPTC_FLOAT: GLenum = 0x82D3`"]
4528 pub const GL_VIEW_CLASS_BPTC_FLOAT: GLenum = 0x82D3;
4529 #[doc = "`GL_VIEW_CLASS_BPTC_UNORM: GLenum = 0x82D2`"]
4530 pub const GL_VIEW_CLASS_BPTC_UNORM: GLenum = 0x82D2;
4531 #[doc = "`GL_VIEW_CLASS_RGTC1_RED: GLenum = 0x82D0`"]
4532 pub const GL_VIEW_CLASS_RGTC1_RED: GLenum = 0x82D0;
4533 #[doc = "`GL_VIEW_CLASS_RGTC2_RG: GLenum = 0x82D1`"]
4534 pub const GL_VIEW_CLASS_RGTC2_RG: GLenum = 0x82D1;
4535 #[doc = "`GL_VIEW_CLASS_S3TC_DXT1_RGB: GLenum = 0x82CC`"]
4536 pub const GL_VIEW_CLASS_S3TC_DXT1_RGB: GLenum = 0x82CC;
4537 #[doc = "`GL_VIEW_CLASS_S3TC_DXT1_RGBA: GLenum = 0x82CD`"]
4538 pub const GL_VIEW_CLASS_S3TC_DXT1_RGBA: GLenum = 0x82CD;
4539 #[doc = "`GL_VIEW_CLASS_S3TC_DXT3_RGBA: GLenum = 0x82CE`"]
4540 pub const GL_VIEW_CLASS_S3TC_DXT3_RGBA: GLenum = 0x82CE;
4541 #[doc = "`GL_VIEW_CLASS_S3TC_DXT5_RGBA: GLenum = 0x82CF`"]
4542 pub const GL_VIEW_CLASS_S3TC_DXT5_RGBA: GLenum = 0x82CF;
4543 #[doc = "`GL_VIEW_COMPATIBILITY_CLASS: GLenum = 0x82B6`"]
4544 #[doc = "* **Group:** InternalFormatPName"]
4545 pub const GL_VIEW_COMPATIBILITY_CLASS: GLenum = 0x82B6;
4546 #[doc = "`GL_WAIT_FAILED: GLenum = 0x911D`"]
4547 #[doc = "* **Group:** SyncStatus"]
4548 pub const GL_WAIT_FAILED: GLenum = 0x911D;
4549 #[doc = "`GL_WRITE_ONLY: GLenum = 0x88B9`"]
4550 #[doc = "* **Group:** BufferAccessARB"]
4551 pub const GL_WRITE_ONLY: GLenum = 0x88B9;
4552 #[doc = "`GL_XOR: GLenum = 0x1506`"]
4553 #[doc = "* **Group:** LogicOp"]
4554 pub const GL_XOR: GLenum = 0x1506;
4555 #[doc = "`GL_ZERO: GLenum = 0`"]
4556 #[doc = "* **Groups:** TextureSwizzle, StencilOp, BlendingFactor"]
4557 pub const GL_ZERO: GLenum = 0;
4558 #[doc = "`GL_ZERO_TO_ONE: GLenum = 0x935F`"]
4559 #[doc = "* **Group:** ClipControlDepth"]
4560 pub const GL_ZERO_TO_ONE: GLenum = 0x935F;
4561}
4562
4563/// This is called to panic when a not-loaded function is attempted.
4564///
4565/// Placing the panic mechanism in this cold function generally helps code generation for the hot path.
4566/// Or so the sages say, at least.
4567#[cold]
4568#[inline(never)]
4569#[allow(dead_code)]
4570fn go_panic_because_fn_not_loaded(name: &str) -> ! {
4571 panic!("called {name} but it was not loaded.", name = name)
4572}
4573
4574/// Loads a function pointer.
4575/// Rejects suggested pointer addresses which are likely to be lies.
4576/// This function is used by both the global loader and struct loader.
4577/// We mark it as `inline(never)` to favor a small binary over initialization speed.
4578/// Returns if there's now a non-null value in the atomic pointer.
4579#[inline(never)]
4580#[allow(dead_code)]
4581fn load_dyn_name_atomic_ptr(
4582 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
4583 fn_name: &[u8],
4584 ptr: &APcv,
4585) -> bool {
4586 // if this fails the code generator itself royally screwed up somehow,
4587 // and so it's only a debug assert.
4588 debug_assert_eq!(*fn_name.last().unwrap(), 0);
4589 let p: *mut c_void = get_proc_address(fn_name.as_ptr() as *const c_char);
4590 let p_usize: usize = p as usize;
4591 // You *should* get null for failed lookups, but some systems have been
4592 // reported to give "error code" values such as -1 or small non-null values.
4593 // To help guard against this silliness, we consider these values to also
4594 // just be a result of null.
4595 if p_usize == core::usize::MAX || p_usize < 8 {
4596 ptr.store(ptr:null_mut(), RELAX);
4597 false
4598 } else {
4599 ptr.store(ptr:p, RELAX);
4600 true
4601 }
4602}
4603
4604/// Returns if an error was printed.
4605#[cfg(feature = "debug_automatic_glGetError")]
4606#[inline(never)]
4607fn report_error_code_from(name: &str, err: GLenum) {
4608 match err {
4609 GL_NO_ERROR => return,
4610 GL_INVALID_ENUM => error!("Invalid Enum to {name}.", name = name),
4611 GL_INVALID_VALUE => error!("Invalid Value to {name}.", name = name),
4612 GL_INVALID_OPERATION => error!("Invalid Operation to {name}.", name = name),
4613 GL_INVALID_FRAMEBUFFER_OPERATION => {
4614 error!("Invalid Framebuffer Operation to {name}.", name = name)
4615 }
4616 GL_OUT_OF_MEMORY => error!("Out of Memory in {name}.", name = name),
4617 GL_STACK_UNDERFLOW => error!("Stack Underflow in {name}.", name = name),
4618 GL_STACK_OVERFLOW => error!("Stack Overflow in {name}.", name = name),
4619 unknown => error!(
4620 "Unknown error code {unknown} to {name}.",
4621 name = name,
4622 unknown = unknown
4623 ),
4624 }
4625}
4626
4627#[inline(always)]
4628#[allow(dead_code)]
4629unsafe fn call_atomic_ptr_0arg<Ret>(name: &str, ptr: &APcv) -> Ret {
4630 let p: *mut c_void = ptr.load(RELAX);
4631 match transmute::<*mut c_void, Option<extern "system" fn() -> Ret>>(src:p) {
4632 Some(fn_p: fn() -> Ret) => fn_p(),
4633 None => go_panic_because_fn_not_loaded(name),
4634 }
4635}
4636
4637#[inline(always)]
4638#[allow(dead_code)]
4639unsafe fn call_atomic_ptr_1arg<Ret, A>(name: &str, ptr: &APcv, a: A) -> Ret {
4640 let p: *mut c_void = ptr.load(RELAX);
4641 match transmute::<*mut c_void, Option<extern "system" fn(A) -> Ret>>(src:p) {
4642 Some(fn_p: fn(A) -> Ret) => fn_p(a),
4643 None => go_panic_because_fn_not_loaded(name),
4644 }
4645}
4646
4647#[inline(always)]
4648#[allow(dead_code)]
4649unsafe fn call_atomic_ptr_2arg<Ret, A, B>(name: &str, ptr: &APcv, a: A, b: B) -> Ret {
4650 let p: *mut c_void = ptr.load(RELAX);
4651 match transmute::<*mut c_void, Option<extern "system" fn(A, B) -> Ret>>(src:p) {
4652 Some(fn_p: fn(A, B) -> Ret) => fn_p(a, b),
4653 None => go_panic_because_fn_not_loaded(name),
4654 }
4655}
4656
4657#[inline(always)]
4658#[allow(dead_code)]
4659unsafe fn call_atomic_ptr_3arg<Ret, A, B, C>(name: &str, ptr: &APcv, a: A, b: B, c: C) -> Ret {
4660 let p: *mut c_void = ptr.load(RELAX);
4661 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C) -> Ret>>(src:p) {
4662 Some(fn_p: fn(A, B, C) -> Ret) => fn_p(a, b, c),
4663 None => go_panic_because_fn_not_loaded(name),
4664 }
4665}
4666
4667#[inline(always)]
4668#[allow(dead_code)]
4669unsafe fn call_atomic_ptr_4arg<Ret, A, B, C, D>(
4670 name: &str,
4671 ptr: &APcv,
4672 a: A,
4673 b: B,
4674 c: C,
4675 d: D,
4676) -> Ret {
4677 let p: *mut c_void = ptr.load(RELAX);
4678 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D) -> Ret>>(src:p) {
4679 Some(fn_p: fn(A, B, C, D) -> Ret) => fn_p(a, b, c, d),
4680 None => go_panic_because_fn_not_loaded(name),
4681 }
4682}
4683
4684#[inline(always)]
4685#[allow(dead_code)]
4686unsafe fn call_atomic_ptr_5arg<Ret, A, B, C, D, E>(
4687 name: &str,
4688 ptr: &APcv,
4689 a: A,
4690 b: B,
4691 c: C,
4692 d: D,
4693 e: E,
4694) -> Ret {
4695 let p: *mut c_void = ptr.load(RELAX);
4696 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E) -> Ret>>(src:p) {
4697 Some(fn_p: fn(A, B, C, D, E) -> Ret) => fn_p(a, b, c, d, e),
4698 None => go_panic_because_fn_not_loaded(name),
4699 }
4700}
4701
4702#[inline(always)]
4703#[allow(dead_code)]
4704unsafe fn call_atomic_ptr_6arg<Ret, A, B, C, D, E, F>(
4705 name: &str,
4706 ptr: &APcv,
4707 a: A,
4708 b: B,
4709 c: C,
4710 d: D,
4711 e: E,
4712 f: F,
4713) -> Ret {
4714 let p: *mut c_void = ptr.load(RELAX);
4715 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E, F) -> Ret>>(src:p) {
4716 Some(fn_p: fn(A, B, C, D, E, F) -> Ret) => fn_p(a, b, c, d, e, f),
4717 None => go_panic_because_fn_not_loaded(name),
4718 }
4719}
4720
4721#[inline(always)]
4722#[allow(dead_code)]
4723unsafe fn call_atomic_ptr_7arg<Ret, A, B, C, D, E, F, G>(
4724 name: &str,
4725 ptr: &APcv,
4726 a: A,
4727 b: B,
4728 c: C,
4729 d: D,
4730 e: E,
4731 f: F,
4732 g: G,
4733) -> Ret {
4734 let p: *mut c_void = ptr.load(RELAX);
4735 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E, F, G) -> Ret>>(src:p) {
4736 Some(fn_p: fn(A, B, C, D, E, F, G) -> …) => fn_p(a, b, c, d, e, f, g),
4737 None => go_panic_because_fn_not_loaded(name),
4738 }
4739}
4740
4741#[inline(always)]
4742#[allow(dead_code)]
4743unsafe fn call_atomic_ptr_8arg<Ret, A, B, C, D, E, F, G, H>(
4744 name: &str,
4745 ptr: &APcv,
4746 a: A,
4747 b: B,
4748 c: C,
4749 d: D,
4750 e: E,
4751 f: F,
4752 g: G,
4753 h: H,
4754) -> Ret {
4755 let p: *mut c_void = ptr.load(RELAX);
4756 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E, F, G, H) -> Ret>>(src:p) {
4757 Some(fn_p: fn(A, B, C, D, E, F, G, H) -> …) => fn_p(a, b, c, d, e, f, g, h),
4758 None => go_panic_because_fn_not_loaded(name),
4759 }
4760}
4761
4762#[inline(always)]
4763#[allow(dead_code)]
4764unsafe fn call_atomic_ptr_9arg<Ret, A, B, C, D, E, F, G, H, I>(
4765 name: &str,
4766 ptr: &APcv,
4767 a: A,
4768 b: B,
4769 c: C,
4770 d: D,
4771 e: E,
4772 f: F,
4773 g: G,
4774 h: H,
4775 i: I,
4776) -> Ret {
4777 let p: *mut c_void = ptr.load(RELAX);
4778 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E, F, G, H, I) -> Ret>>(src:p)
4779 {
4780 Some(fn_p: fn(A, B, C, D, E, F, G, H, …) -> …) => fn_p(a, b, c, d, e, f, g, h, i),
4781 None => go_panic_because_fn_not_loaded(name),
4782 }
4783}
4784
4785#[inline(always)]
4786#[allow(dead_code)]
4787unsafe fn call_atomic_ptr_10arg<Ret, A, B, C, D, E, F, G, H, I, J>(
4788 name: &str,
4789 ptr: &APcv,
4790 a: A,
4791 b: B,
4792 c: C,
4793 d: D,
4794 e: E,
4795 f: F,
4796 g: G,
4797 h: H,
4798 i: I,
4799 j: J,
4800) -> Ret {
4801 let p: *mut c_void = ptr.load(RELAX);
4802 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E, F, G, H, I, J) -> Ret>>(
4803 src:p,
4804 ) {
4805 Some(fn_p: fn(A, B, C, D, E, F, G, H, …) -> …) => fn_p(a, b, c, d, e, f, g, h, i, j),
4806 None => go_panic_because_fn_not_loaded(name),
4807 }
4808}
4809
4810#[inline(always)]
4811#[allow(dead_code)]
4812unsafe fn call_atomic_ptr_11arg<Ret, A, B, C, D, E, F, G, H, I, J, K>(
4813 name: &str,
4814 ptr: &APcv,
4815 a: A,
4816 b: B,
4817 c: C,
4818 d: D,
4819 e: E,
4820 f: F,
4821 g: G,
4822 h: H,
4823 i: I,
4824 j: J,
4825 k: K,
4826) -> Ret {
4827 let p: *mut c_void = ptr.load(RELAX);
4828 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret>>(
4829 src:p,
4830 ) {
4831 Some(fn_p: fn(A, B, C, D, E, F, G, H, …) -> …) => fn_p(a, b, c, d, e, f, g, h, i, j, k),
4832 None => go_panic_because_fn_not_loaded(name),
4833 }
4834}
4835
4836#[inline(always)]
4837#[allow(dead_code)]
4838unsafe fn call_atomic_ptr_12arg<Ret, A, B, C, D, E, F, G, H, I, J, K, L>(
4839 name: &str,
4840 ptr: &APcv,
4841 a: A,
4842 b: B,
4843 c: C,
4844 d: D,
4845 e: E,
4846 f: F,
4847 g: G,
4848 h: H,
4849 i: I,
4850 j: J,
4851 k: K,
4852 l: L,
4853) -> Ret {
4854 let p: *mut c_void = ptr.load(RELAX);
4855 match transmute::<
4856 *mut c_void,
4857 Option<extern "system" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret>,
4858 >(src:p)
4859 {
4860 Some(fn_p: fn(A, B, C, D, E, F, G, H, …) -> …) => fn_p(a, b, c, d, e, f, g, h, i, j, k, l),
4861 None => go_panic_because_fn_not_loaded(name),
4862 }
4863}
4864
4865#[inline(always)]
4866#[allow(dead_code)]
4867unsafe fn call_atomic_ptr_15arg<Ret, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O>(
4868 name: &str,
4869 ptr: &APcv,
4870 a: A,
4871 b: B,
4872 c: C,
4873 d: D,
4874 e: E,
4875 f: F,
4876 g: G,
4877 h: H,
4878 i: I,
4879 j: J,
4880 k: K,
4881 l: L,
4882 m: M,
4883 n: N,
4884 o: O,
4885) -> Ret {
4886 let p: *mut c_void = ptr.load(RELAX);
4887 match transmute::<
4888 *mut c_void,
4889 Option<extern "system" fn(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O) -> Ret>,
4890 >(src:p)
4891 {
4892 Some(fn_p: fn(A, B, C, D, E, F, G, H, …) -> …) => fn_p(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o),
4893 None => go_panic_because_fn_not_loaded(name),
4894 }
4895}
4896
4897pub use struct_commands::*;
4898pub mod struct_commands {
4899 //! Contains the [`GlFns`] type for using the struct GL loader.
4900 use super::*;
4901 impl GlFns {
4902 /// Constructs a new struct with all pointers loaded by the `get_proc_address` given.
4903 pub unsafe fn load_with<F>(mut get_proc_address: F) -> Self
4904 where
4905 F: FnMut(*const c_char) -> *mut c_void,
4906 {
4907 // Safety: The `GlFns` struct is nothing but `AtomicPtr` fields,
4908 // which can be safely constructed with `zeroed`.
4909 let out: Self = core::mem::zeroed();
4910 out.load_all_with_dyn(&mut get_proc_address);
4911 out
4912 }
4913
4914 #[cfg(feature = "debug_automatic_glGetError")]
4915 #[inline(never)]
4916 unsafe fn automatic_glGetError(&self, name: &str) {
4917 let mut err = self.GetError();
4918 while err != GL_NO_ERROR {
4919 report_error_code_from(name, err);
4920 err = self.GetError();
4921 }
4922 }
4923
4924 /// Loads all pointers using the `get_proc_address` given.
4925 #[doc(hidden)]
4926 #[inline(never)]
4927 pub unsafe fn load_all_with_dyn(
4928 &self,
4929 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
4930 ) {
4931 self.ActiveShaderProgram_load_with_dyn(get_proc_address);
4932 self.ActiveTexture_load_with_dyn(get_proc_address);
4933 self.AttachShader_load_with_dyn(get_proc_address);
4934 self.BeginConditionalRender_load_with_dyn(get_proc_address);
4935 self.BeginQuery_load_with_dyn(get_proc_address);
4936 self.BeginQueryIndexed_load_with_dyn(get_proc_address);
4937 self.BeginTransformFeedback_load_with_dyn(get_proc_address);
4938 self.BindAttribLocation_load_with_dyn(get_proc_address);
4939 self.BindBuffer_load_with_dyn(get_proc_address);
4940 self.BindBufferBase_load_with_dyn(get_proc_address);
4941 self.BindBufferRange_load_with_dyn(get_proc_address);
4942 self.BindBuffersBase_load_with_dyn(get_proc_address);
4943 self.BindBuffersRange_load_with_dyn(get_proc_address);
4944 self.BindFragDataLocation_load_with_dyn(get_proc_address);
4945 self.BindFragDataLocationIndexed_load_with_dyn(get_proc_address);
4946 self.BindFramebuffer_load_with_dyn(get_proc_address);
4947 self.BindImageTexture_load_with_dyn(get_proc_address);
4948 self.BindImageTextures_load_with_dyn(get_proc_address);
4949 self.BindProgramPipeline_load_with_dyn(get_proc_address);
4950 self.BindRenderbuffer_load_with_dyn(get_proc_address);
4951 self.BindSampler_load_with_dyn(get_proc_address);
4952 self.BindSamplers_load_with_dyn(get_proc_address);
4953 self.BindTexture_load_with_dyn(get_proc_address);
4954 self.BindTextureUnit_load_with_dyn(get_proc_address);
4955 self.BindTextures_load_with_dyn(get_proc_address);
4956 self.BindTransformFeedback_load_with_dyn(get_proc_address);
4957 self.BindVertexArray_load_with_dyn(get_proc_address);
4958 self.BindVertexBuffer_load_with_dyn(get_proc_address);
4959 self.BindVertexBuffers_load_with_dyn(get_proc_address);
4960 self.BlendBarrier_load_with_dyn(get_proc_address);
4961 self.BlendColor_load_with_dyn(get_proc_address);
4962 self.BlendEquation_load_with_dyn(get_proc_address);
4963 self.BlendEquationSeparate_load_with_dyn(get_proc_address);
4964 self.BlendEquationSeparatei_load_with_dyn(get_proc_address);
4965 self.BlendEquationi_load_with_dyn(get_proc_address);
4966 self.BlendFunc_load_with_dyn(get_proc_address);
4967 self.BlendFuncSeparate_load_with_dyn(get_proc_address);
4968 self.BlendFuncSeparatei_load_with_dyn(get_proc_address);
4969 self.BlendFunci_load_with_dyn(get_proc_address);
4970 self.BlitFramebuffer_load_with_dyn(get_proc_address);
4971 self.BlitNamedFramebuffer_load_with_dyn(get_proc_address);
4972 self.BufferData_load_with_dyn(get_proc_address);
4973 self.BufferStorage_load_with_dyn(get_proc_address);
4974 self.BufferStorageEXT_load_with_dyn(get_proc_address);
4975 self.BufferSubData_load_with_dyn(get_proc_address);
4976 self.CheckFramebufferStatus_load_with_dyn(get_proc_address);
4977 self.CheckNamedFramebufferStatus_load_with_dyn(get_proc_address);
4978 self.ClampColor_load_with_dyn(get_proc_address);
4979 self.Clear_load_with_dyn(get_proc_address);
4980 self.ClearBufferData_load_with_dyn(get_proc_address);
4981 self.ClearBufferSubData_load_with_dyn(get_proc_address);
4982 self.ClearBufferfi_load_with_dyn(get_proc_address);
4983 self.ClearBufferfv_load_with_dyn(get_proc_address);
4984 self.ClearBufferiv_load_with_dyn(get_proc_address);
4985 self.ClearBufferuiv_load_with_dyn(get_proc_address);
4986 self.ClearColor_load_with_dyn(get_proc_address);
4987 self.ClearDepth_load_with_dyn(get_proc_address);
4988 self.ClearDepthf_load_with_dyn(get_proc_address);
4989 self.ClearNamedBufferData_load_with_dyn(get_proc_address);
4990 self.ClearNamedBufferSubData_load_with_dyn(get_proc_address);
4991 self.ClearNamedFramebufferfi_load_with_dyn(get_proc_address);
4992 self.ClearNamedFramebufferfv_load_with_dyn(get_proc_address);
4993 self.ClearNamedFramebufferiv_load_with_dyn(get_proc_address);
4994 self.ClearNamedFramebufferuiv_load_with_dyn(get_proc_address);
4995 self.ClearStencil_load_with_dyn(get_proc_address);
4996 self.ClearTexImage_load_with_dyn(get_proc_address);
4997 self.ClearTexSubImage_load_with_dyn(get_proc_address);
4998 self.ClientWaitSync_load_with_dyn(get_proc_address);
4999 self.ClipControl_load_with_dyn(get_proc_address);
5000 self.ColorMask_load_with_dyn(get_proc_address);
5001 self.ColorMaskIndexedEXT_load_with_dyn(get_proc_address);
5002 self.ColorMaski_load_with_dyn(get_proc_address);
5003 self.CompileShader_load_with_dyn(get_proc_address);
5004 self.CompressedTexImage1D_load_with_dyn(get_proc_address);
5005 self.CompressedTexImage2D_load_with_dyn(get_proc_address);
5006 self.CompressedTexImage3D_load_with_dyn(get_proc_address);
5007 self.CompressedTexSubImage1D_load_with_dyn(get_proc_address);
5008 self.CompressedTexSubImage2D_load_with_dyn(get_proc_address);
5009 self.CompressedTexSubImage3D_load_with_dyn(get_proc_address);
5010 self.CompressedTextureSubImage1D_load_with_dyn(get_proc_address);
5011 self.CompressedTextureSubImage2D_load_with_dyn(get_proc_address);
5012 self.CompressedTextureSubImage3D_load_with_dyn(get_proc_address);
5013 self.CopyBufferSubData_load_with_dyn(get_proc_address);
5014 self.CopyBufferSubDataNV_load_with_dyn(get_proc_address);
5015 self.CopyImageSubData_load_with_dyn(get_proc_address);
5016 self.CopyNamedBufferSubData_load_with_dyn(get_proc_address);
5017 self.CopyTexImage1D_load_with_dyn(get_proc_address);
5018 self.CopyTexImage2D_load_with_dyn(get_proc_address);
5019 self.CopyTexSubImage1D_load_with_dyn(get_proc_address);
5020 self.CopyTexSubImage2D_load_with_dyn(get_proc_address);
5021 self.CopyTexSubImage3D_load_with_dyn(get_proc_address);
5022 self.CopyTextureSubImage1D_load_with_dyn(get_proc_address);
5023 self.CopyTextureSubImage2D_load_with_dyn(get_proc_address);
5024 self.CopyTextureSubImage3D_load_with_dyn(get_proc_address);
5025 self.CreateBuffers_load_with_dyn(get_proc_address);
5026 self.CreateFramebuffers_load_with_dyn(get_proc_address);
5027 self.CreateProgram_load_with_dyn(get_proc_address);
5028 self.CreateProgramPipelines_load_with_dyn(get_proc_address);
5029 self.CreateQueries_load_with_dyn(get_proc_address);
5030 self.CreateRenderbuffers_load_with_dyn(get_proc_address);
5031 self.CreateSamplers_load_with_dyn(get_proc_address);
5032 self.CreateShader_load_with_dyn(get_proc_address);
5033 self.CreateShaderProgramv_load_with_dyn(get_proc_address);
5034 self.CreateTextures_load_with_dyn(get_proc_address);
5035 self.CreateTransformFeedbacks_load_with_dyn(get_proc_address);
5036 self.CreateVertexArrays_load_with_dyn(get_proc_address);
5037 self.CullFace_load_with_dyn(get_proc_address);
5038 self.DebugMessageCallback_load_with_dyn(get_proc_address);
5039 self.DebugMessageCallbackARB_load_with_dyn(get_proc_address);
5040 self.DebugMessageCallbackKHR_load_with_dyn(get_proc_address);
5041 self.DebugMessageControl_load_with_dyn(get_proc_address);
5042 self.DebugMessageControlARB_load_with_dyn(get_proc_address);
5043 self.DebugMessageControlKHR_load_with_dyn(get_proc_address);
5044 self.DebugMessageInsert_load_with_dyn(get_proc_address);
5045 self.DebugMessageInsertARB_load_with_dyn(get_proc_address);
5046 self.DebugMessageInsertKHR_load_with_dyn(get_proc_address);
5047 self.DeleteBuffers_load_with_dyn(get_proc_address);
5048 self.DeleteFramebuffers_load_with_dyn(get_proc_address);
5049 self.DeleteProgram_load_with_dyn(get_proc_address);
5050 self.DeleteProgramPipelines_load_with_dyn(get_proc_address);
5051 self.DeleteQueries_load_with_dyn(get_proc_address);
5052 self.DeleteRenderbuffers_load_with_dyn(get_proc_address);
5053 self.DeleteSamplers_load_with_dyn(get_proc_address);
5054 self.DeleteShader_load_with_dyn(get_proc_address);
5055 self.DeleteSync_load_with_dyn(get_proc_address);
5056 self.DeleteTextures_load_with_dyn(get_proc_address);
5057 self.DeleteTransformFeedbacks_load_with_dyn(get_proc_address);
5058 self.DeleteVertexArrays_load_with_dyn(get_proc_address);
5059 self.DepthFunc_load_with_dyn(get_proc_address);
5060 self.DepthMask_load_with_dyn(get_proc_address);
5061 self.DepthRange_load_with_dyn(get_proc_address);
5062 self.DepthRangeArrayv_load_with_dyn(get_proc_address);
5063 self.DepthRangeIndexed_load_with_dyn(get_proc_address);
5064 self.DepthRangef_load_with_dyn(get_proc_address);
5065 self.DetachShader_load_with_dyn(get_proc_address);
5066 self.Disable_load_with_dyn(get_proc_address);
5067 self.DisableIndexedEXT_load_with_dyn(get_proc_address);
5068 self.DisableVertexArrayAttrib_load_with_dyn(get_proc_address);
5069 self.DisableVertexAttribArray_load_with_dyn(get_proc_address);
5070 self.Disablei_load_with_dyn(get_proc_address);
5071 self.DispatchCompute_load_with_dyn(get_proc_address);
5072 self.DispatchComputeIndirect_load_with_dyn(get_proc_address);
5073 self.DrawArrays_load_with_dyn(get_proc_address);
5074 self.DrawArraysIndirect_load_with_dyn(get_proc_address);
5075 self.DrawArraysInstanced_load_with_dyn(get_proc_address);
5076 self.DrawArraysInstancedARB_load_with_dyn(get_proc_address);
5077 self.DrawArraysInstancedBaseInstance_load_with_dyn(get_proc_address);
5078 self.DrawBuffer_load_with_dyn(get_proc_address);
5079 self.DrawBuffers_load_with_dyn(get_proc_address);
5080 self.DrawElements_load_with_dyn(get_proc_address);
5081 self.DrawElementsBaseVertex_load_with_dyn(get_proc_address);
5082 self.DrawElementsIndirect_load_with_dyn(get_proc_address);
5083 self.DrawElementsInstanced_load_with_dyn(get_proc_address);
5084 self.DrawElementsInstancedARB_load_with_dyn(get_proc_address);
5085 self.DrawElementsInstancedBaseInstance_load_with_dyn(get_proc_address);
5086 self.DrawElementsInstancedBaseVertex_load_with_dyn(get_proc_address);
5087 self.DrawElementsInstancedBaseVertexBaseInstance_load_with_dyn(get_proc_address);
5088 self.DrawRangeElements_load_with_dyn(get_proc_address);
5089 self.DrawRangeElementsBaseVertex_load_with_dyn(get_proc_address);
5090 self.DrawTransformFeedback_load_with_dyn(get_proc_address);
5091 self.DrawTransformFeedbackInstanced_load_with_dyn(get_proc_address);
5092 self.DrawTransformFeedbackStream_load_with_dyn(get_proc_address);
5093 self.DrawTransformFeedbackStreamInstanced_load_with_dyn(get_proc_address);
5094 self.Enable_load_with_dyn(get_proc_address);
5095 self.EnableIndexedEXT_load_with_dyn(get_proc_address);
5096 self.EnableVertexArrayAttrib_load_with_dyn(get_proc_address);
5097 self.EnableVertexAttribArray_load_with_dyn(get_proc_address);
5098 self.Enablei_load_with_dyn(get_proc_address);
5099 self.EndConditionalRender_load_with_dyn(get_proc_address);
5100 self.EndQuery_load_with_dyn(get_proc_address);
5101 self.EndQueryIndexed_load_with_dyn(get_proc_address);
5102 self.EndTransformFeedback_load_with_dyn(get_proc_address);
5103 self.FenceSync_load_with_dyn(get_proc_address);
5104 self.Finish_load_with_dyn(get_proc_address);
5105 self.Flush_load_with_dyn(get_proc_address);
5106 self.FlushMappedBufferRange_load_with_dyn(get_proc_address);
5107 self.FlushMappedNamedBufferRange_load_with_dyn(get_proc_address);
5108 self.FramebufferParameteri_load_with_dyn(get_proc_address);
5109 self.FramebufferRenderbuffer_load_with_dyn(get_proc_address);
5110 self.FramebufferTexture_load_with_dyn(get_proc_address);
5111 self.FramebufferTexture1D_load_with_dyn(get_proc_address);
5112 self.FramebufferTexture2D_load_with_dyn(get_proc_address);
5113 self.FramebufferTexture3D_load_with_dyn(get_proc_address);
5114 self.FramebufferTextureLayer_load_with_dyn(get_proc_address);
5115 self.FrontFace_load_with_dyn(get_proc_address);
5116 self.GenBuffers_load_with_dyn(get_proc_address);
5117 self.GenFramebuffers_load_with_dyn(get_proc_address);
5118 self.GenProgramPipelines_load_with_dyn(get_proc_address);
5119 self.GenQueries_load_with_dyn(get_proc_address);
5120 self.GenRenderbuffers_load_with_dyn(get_proc_address);
5121 self.GenSamplers_load_with_dyn(get_proc_address);
5122 self.GenTextures_load_with_dyn(get_proc_address);
5123 self.GenTransformFeedbacks_load_with_dyn(get_proc_address);
5124 self.GenVertexArrays_load_with_dyn(get_proc_address);
5125 self.GenerateMipmap_load_with_dyn(get_proc_address);
5126 self.GenerateTextureMipmap_load_with_dyn(get_proc_address);
5127 self.GetActiveAtomicCounterBufferiv_load_with_dyn(get_proc_address);
5128 self.GetActiveAttrib_load_with_dyn(get_proc_address);
5129 self.GetActiveSubroutineName_load_with_dyn(get_proc_address);
5130 self.GetActiveSubroutineUniformName_load_with_dyn(get_proc_address);
5131 self.GetActiveSubroutineUniformiv_load_with_dyn(get_proc_address);
5132 self.GetActiveUniform_load_with_dyn(get_proc_address);
5133 self.GetActiveUniformBlockName_load_with_dyn(get_proc_address);
5134 self.GetActiveUniformBlockiv_load_with_dyn(get_proc_address);
5135 self.GetActiveUniformName_load_with_dyn(get_proc_address);
5136 self.GetActiveUniformsiv_load_with_dyn(get_proc_address);
5137 self.GetAttachedShaders_load_with_dyn(get_proc_address);
5138 self.GetAttribLocation_load_with_dyn(get_proc_address);
5139 self.GetBooleanIndexedvEXT_load_with_dyn(get_proc_address);
5140 self.GetBooleani_v_load_with_dyn(get_proc_address);
5141 self.GetBooleanv_load_with_dyn(get_proc_address);
5142 self.GetBufferParameteri64v_load_with_dyn(get_proc_address);
5143 self.GetBufferParameteriv_load_with_dyn(get_proc_address);
5144 self.GetBufferPointerv_load_with_dyn(get_proc_address);
5145 self.GetBufferSubData_load_with_dyn(get_proc_address);
5146 self.GetCompressedTexImage_load_with_dyn(get_proc_address);
5147 self.GetCompressedTextureImage_load_with_dyn(get_proc_address);
5148 self.GetCompressedTextureSubImage_load_with_dyn(get_proc_address);
5149 self.GetDebugMessageLog_load_with_dyn(get_proc_address);
5150 self.GetDebugMessageLogARB_load_with_dyn(get_proc_address);
5151 self.GetDebugMessageLogKHR_load_with_dyn(get_proc_address);
5152 self.GetDoublei_v_load_with_dyn(get_proc_address);
5153 self.GetDoublev_load_with_dyn(get_proc_address);
5154 self.GetError_load_with_dyn(get_proc_address);
5155 self.GetFloati_v_load_with_dyn(get_proc_address);
5156 self.GetFloatv_load_with_dyn(get_proc_address);
5157 self.GetFragDataIndex_load_with_dyn(get_proc_address);
5158 self.GetFragDataLocation_load_with_dyn(get_proc_address);
5159 self.GetFramebufferAttachmentParameteriv_load_with_dyn(get_proc_address);
5160 self.GetFramebufferParameteriv_load_with_dyn(get_proc_address);
5161 self.GetGraphicsResetStatus_load_with_dyn(get_proc_address);
5162 self.GetInteger64i_v_load_with_dyn(get_proc_address);
5163 self.GetInteger64v_load_with_dyn(get_proc_address);
5164 self.GetIntegerIndexedvEXT_load_with_dyn(get_proc_address);
5165 self.GetIntegeri_v_load_with_dyn(get_proc_address);
5166 self.GetIntegerv_load_with_dyn(get_proc_address);
5167 self.GetInternalformati64v_load_with_dyn(get_proc_address);
5168 self.GetInternalformativ_load_with_dyn(get_proc_address);
5169 self.GetMultisamplefv_load_with_dyn(get_proc_address);
5170 self.GetNamedBufferParameteri64v_load_with_dyn(get_proc_address);
5171 self.GetNamedBufferParameteriv_load_with_dyn(get_proc_address);
5172 self.GetNamedBufferPointerv_load_with_dyn(get_proc_address);
5173 self.GetNamedBufferSubData_load_with_dyn(get_proc_address);
5174 self.GetNamedFramebufferAttachmentParameteriv_load_with_dyn(get_proc_address);
5175 self.GetNamedFramebufferParameteriv_load_with_dyn(get_proc_address);
5176 self.GetNamedRenderbufferParameteriv_load_with_dyn(get_proc_address);
5177 self.GetObjectLabel_load_with_dyn(get_proc_address);
5178 self.GetObjectLabelKHR_load_with_dyn(get_proc_address);
5179 self.GetObjectPtrLabel_load_with_dyn(get_proc_address);
5180 self.GetObjectPtrLabelKHR_load_with_dyn(get_proc_address);
5181 self.GetPointerv_load_with_dyn(get_proc_address);
5182 self.GetPointervKHR_load_with_dyn(get_proc_address);
5183 self.GetProgramBinary_load_with_dyn(get_proc_address);
5184 self.GetProgramInfoLog_load_with_dyn(get_proc_address);
5185 self.GetProgramInterfaceiv_load_with_dyn(get_proc_address);
5186 self.GetProgramPipelineInfoLog_load_with_dyn(get_proc_address);
5187 self.GetProgramPipelineiv_load_with_dyn(get_proc_address);
5188 self.GetProgramResourceIndex_load_with_dyn(get_proc_address);
5189 self.GetProgramResourceLocation_load_with_dyn(get_proc_address);
5190 self.GetProgramResourceLocationIndex_load_with_dyn(get_proc_address);
5191 self.GetProgramResourceName_load_with_dyn(get_proc_address);
5192 self.GetProgramResourceiv_load_with_dyn(get_proc_address);
5193 self.GetProgramStageiv_load_with_dyn(get_proc_address);
5194 self.GetProgramiv_load_with_dyn(get_proc_address);
5195 self.GetQueryBufferObjecti64v_load_with_dyn(get_proc_address);
5196 self.GetQueryBufferObjectiv_load_with_dyn(get_proc_address);
5197 self.GetQueryBufferObjectui64v_load_with_dyn(get_proc_address);
5198 self.GetQueryBufferObjectuiv_load_with_dyn(get_proc_address);
5199 self.GetQueryIndexediv_load_with_dyn(get_proc_address);
5200 self.GetQueryObjecti64v_load_with_dyn(get_proc_address);
5201 self.GetQueryObjectiv_load_with_dyn(get_proc_address);
5202 self.GetQueryObjectui64v_load_with_dyn(get_proc_address);
5203 self.GetQueryObjectuiv_load_with_dyn(get_proc_address);
5204 self.GetQueryiv_load_with_dyn(get_proc_address);
5205 self.GetRenderbufferParameteriv_load_with_dyn(get_proc_address);
5206 self.GetSamplerParameterIiv_load_with_dyn(get_proc_address);
5207 self.GetSamplerParameterIuiv_load_with_dyn(get_proc_address);
5208 self.GetSamplerParameterfv_load_with_dyn(get_proc_address);
5209 self.GetSamplerParameteriv_load_with_dyn(get_proc_address);
5210 self.GetShaderInfoLog_load_with_dyn(get_proc_address);
5211 self.GetShaderPrecisionFormat_load_with_dyn(get_proc_address);
5212 self.GetShaderSource_load_with_dyn(get_proc_address);
5213 self.GetShaderiv_load_with_dyn(get_proc_address);
5214 self.GetString_load_with_dyn(get_proc_address);
5215 self.GetStringi_load_with_dyn(get_proc_address);
5216 self.GetSubroutineIndex_load_with_dyn(get_proc_address);
5217 self.GetSubroutineUniformLocation_load_with_dyn(get_proc_address);
5218 self.GetSynciv_load_with_dyn(get_proc_address);
5219 self.GetTexImage_load_with_dyn(get_proc_address);
5220 self.GetTexLevelParameterfv_load_with_dyn(get_proc_address);
5221 self.GetTexLevelParameteriv_load_with_dyn(get_proc_address);
5222 self.GetTexParameterIiv_load_with_dyn(get_proc_address);
5223 self.GetTexParameterIuiv_load_with_dyn(get_proc_address);
5224 self.GetTexParameterfv_load_with_dyn(get_proc_address);
5225 self.GetTexParameteriv_load_with_dyn(get_proc_address);
5226 self.GetTextureImage_load_with_dyn(get_proc_address);
5227 self.GetTextureLevelParameterfv_load_with_dyn(get_proc_address);
5228 self.GetTextureLevelParameteriv_load_with_dyn(get_proc_address);
5229 self.GetTextureParameterIiv_load_with_dyn(get_proc_address);
5230 self.GetTextureParameterIuiv_load_with_dyn(get_proc_address);
5231 self.GetTextureParameterfv_load_with_dyn(get_proc_address);
5232 self.GetTextureParameteriv_load_with_dyn(get_proc_address);
5233 self.GetTextureSubImage_load_with_dyn(get_proc_address);
5234 self.GetTransformFeedbackVarying_load_with_dyn(get_proc_address);
5235 self.GetTransformFeedbacki64_v_load_with_dyn(get_proc_address);
5236 self.GetTransformFeedbacki_v_load_with_dyn(get_proc_address);
5237 self.GetTransformFeedbackiv_load_with_dyn(get_proc_address);
5238 self.GetUniformBlockIndex_load_with_dyn(get_proc_address);
5239 self.GetUniformIndices_load_with_dyn(get_proc_address);
5240 self.GetUniformLocation_load_with_dyn(get_proc_address);
5241 self.GetUniformSubroutineuiv_load_with_dyn(get_proc_address);
5242 self.GetUniformdv_load_with_dyn(get_proc_address);
5243 self.GetUniformfv_load_with_dyn(get_proc_address);
5244 self.GetUniformiv_load_with_dyn(get_proc_address);
5245 self.GetUniformuiv_load_with_dyn(get_proc_address);
5246 self.GetVertexArrayIndexed64iv_load_with_dyn(get_proc_address);
5247 self.GetVertexArrayIndexediv_load_with_dyn(get_proc_address);
5248 self.GetVertexArrayiv_load_with_dyn(get_proc_address);
5249 self.GetVertexAttribIiv_load_with_dyn(get_proc_address);
5250 self.GetVertexAttribIuiv_load_with_dyn(get_proc_address);
5251 self.GetVertexAttribLdv_load_with_dyn(get_proc_address);
5252 self.GetVertexAttribPointerv_load_with_dyn(get_proc_address);
5253 self.GetVertexAttribdv_load_with_dyn(get_proc_address);
5254 self.GetVertexAttribfv_load_with_dyn(get_proc_address);
5255 self.GetVertexAttribiv_load_with_dyn(get_proc_address);
5256 self.GetnCompressedTexImage_load_with_dyn(get_proc_address);
5257 self.GetnTexImage_load_with_dyn(get_proc_address);
5258 self.GetnUniformdv_load_with_dyn(get_proc_address);
5259 self.GetnUniformfv_load_with_dyn(get_proc_address);
5260 self.GetnUniformiv_load_with_dyn(get_proc_address);
5261 self.GetnUniformuiv_load_with_dyn(get_proc_address);
5262 self.Hint_load_with_dyn(get_proc_address);
5263 self.InvalidateBufferData_load_with_dyn(get_proc_address);
5264 self.InvalidateBufferSubData_load_with_dyn(get_proc_address);
5265 self.InvalidateFramebuffer_load_with_dyn(get_proc_address);
5266 self.InvalidateNamedFramebufferData_load_with_dyn(get_proc_address);
5267 self.InvalidateNamedFramebufferSubData_load_with_dyn(get_proc_address);
5268 self.InvalidateSubFramebuffer_load_with_dyn(get_proc_address);
5269 self.InvalidateTexImage_load_with_dyn(get_proc_address);
5270 self.InvalidateTexSubImage_load_with_dyn(get_proc_address);
5271 self.IsBuffer_load_with_dyn(get_proc_address);
5272 self.IsEnabled_load_with_dyn(get_proc_address);
5273
5274 {
5275 self.IsEnabledIndexedEXT_load_with_dyn(get_proc_address);
5276 }
5277 self.IsEnabledi_load_with_dyn(get_proc_address);
5278 self.IsFramebuffer_load_with_dyn(get_proc_address);
5279 self.IsProgram_load_with_dyn(get_proc_address);
5280 self.IsProgramPipeline_load_with_dyn(get_proc_address);
5281 self.IsQuery_load_with_dyn(get_proc_address);
5282 self.IsRenderbuffer_load_with_dyn(get_proc_address);
5283 self.IsSampler_load_with_dyn(get_proc_address);
5284 self.IsShader_load_with_dyn(get_proc_address);
5285 self.IsSync_load_with_dyn(get_proc_address);
5286 self.IsTexture_load_with_dyn(get_proc_address);
5287 self.IsTransformFeedback_load_with_dyn(get_proc_address);
5288 self.IsVertexArray_load_with_dyn(get_proc_address);
5289 self.LineWidth_load_with_dyn(get_proc_address);
5290 self.LinkProgram_load_with_dyn(get_proc_address);
5291 self.LogicOp_load_with_dyn(get_proc_address);
5292 self.MapBuffer_load_with_dyn(get_proc_address);
5293 self.MapBufferRange_load_with_dyn(get_proc_address);
5294 self.MapNamedBuffer_load_with_dyn(get_proc_address);
5295 self.MapNamedBufferRange_load_with_dyn(get_proc_address);
5296
5297 {
5298 self.MaxShaderCompilerThreadsARB_load_with_dyn(get_proc_address);
5299 }
5300
5301 {
5302 self.MaxShaderCompilerThreadsKHR_load_with_dyn(get_proc_address);
5303 }
5304 self.MemoryBarrier_load_with_dyn(get_proc_address);
5305 self.MemoryBarrierByRegion_load_with_dyn(get_proc_address);
5306 self.MinSampleShading_load_with_dyn(get_proc_address);
5307 self.MultiDrawArrays_load_with_dyn(get_proc_address);
5308 self.MultiDrawArraysIndirect_load_with_dyn(get_proc_address);
5309 self.MultiDrawArraysIndirectCount_load_with_dyn(get_proc_address);
5310 self.MultiDrawElements_load_with_dyn(get_proc_address);
5311 self.MultiDrawElementsBaseVertex_load_with_dyn(get_proc_address);
5312 self.MultiDrawElementsIndirect_load_with_dyn(get_proc_address);
5313 self.MultiDrawElementsIndirectCount_load_with_dyn(get_proc_address);
5314 self.NamedBufferData_load_with_dyn(get_proc_address);
5315 self.NamedBufferStorage_load_with_dyn(get_proc_address);
5316 self.NamedBufferSubData_load_with_dyn(get_proc_address);
5317 self.NamedFramebufferDrawBuffer_load_with_dyn(get_proc_address);
5318 self.NamedFramebufferDrawBuffers_load_with_dyn(get_proc_address);
5319 self.NamedFramebufferParameteri_load_with_dyn(get_proc_address);
5320 self.NamedFramebufferReadBuffer_load_with_dyn(get_proc_address);
5321 self.NamedFramebufferRenderbuffer_load_with_dyn(get_proc_address);
5322 self.NamedFramebufferTexture_load_with_dyn(get_proc_address);
5323 self.NamedFramebufferTextureLayer_load_with_dyn(get_proc_address);
5324 self.NamedRenderbufferStorage_load_with_dyn(get_proc_address);
5325 self.NamedRenderbufferStorageMultisample_load_with_dyn(get_proc_address);
5326 self.ObjectLabel_load_with_dyn(get_proc_address);
5327 self.ObjectLabelKHR_load_with_dyn(get_proc_address);
5328 self.ObjectPtrLabel_load_with_dyn(get_proc_address);
5329 self.ObjectPtrLabelKHR_load_with_dyn(get_proc_address);
5330 self.PatchParameterfv_load_with_dyn(get_proc_address);
5331 self.PatchParameteri_load_with_dyn(get_proc_address);
5332 self.PauseTransformFeedback_load_with_dyn(get_proc_address);
5333 self.PixelStoref_load_with_dyn(get_proc_address);
5334 self.PixelStorei_load_with_dyn(get_proc_address);
5335 self.PointParameterf_load_with_dyn(get_proc_address);
5336 self.PointParameterfv_load_with_dyn(get_proc_address);
5337 self.PointParameteri_load_with_dyn(get_proc_address);
5338 self.PointParameteriv_load_with_dyn(get_proc_address);
5339 self.PointSize_load_with_dyn(get_proc_address);
5340 self.PolygonMode_load_with_dyn(get_proc_address);
5341 self.PolygonOffset_load_with_dyn(get_proc_address);
5342 self.PolygonOffsetClamp_load_with_dyn(get_proc_address);
5343 self.PopDebugGroup_load_with_dyn(get_proc_address);
5344 self.PopDebugGroupKHR_load_with_dyn(get_proc_address);
5345 self.PrimitiveBoundingBox_load_with_dyn(get_proc_address);
5346 self.PrimitiveRestartIndex_load_with_dyn(get_proc_address);
5347 self.ProgramBinary_load_with_dyn(get_proc_address);
5348 self.ProgramParameteri_load_with_dyn(get_proc_address);
5349 self.ProgramUniform1d_load_with_dyn(get_proc_address);
5350 self.ProgramUniform1dv_load_with_dyn(get_proc_address);
5351 self.ProgramUniform1f_load_with_dyn(get_proc_address);
5352 self.ProgramUniform1fv_load_with_dyn(get_proc_address);
5353 self.ProgramUniform1i_load_with_dyn(get_proc_address);
5354 self.ProgramUniform1iv_load_with_dyn(get_proc_address);
5355 self.ProgramUniform1ui_load_with_dyn(get_proc_address);
5356 self.ProgramUniform1uiv_load_with_dyn(get_proc_address);
5357 self.ProgramUniform2d_load_with_dyn(get_proc_address);
5358 self.ProgramUniform2dv_load_with_dyn(get_proc_address);
5359 self.ProgramUniform2f_load_with_dyn(get_proc_address);
5360 self.ProgramUniform2fv_load_with_dyn(get_proc_address);
5361 self.ProgramUniform2i_load_with_dyn(get_proc_address);
5362 self.ProgramUniform2iv_load_with_dyn(get_proc_address);
5363 self.ProgramUniform2ui_load_with_dyn(get_proc_address);
5364 self.ProgramUniform2uiv_load_with_dyn(get_proc_address);
5365 self.ProgramUniform3d_load_with_dyn(get_proc_address);
5366 self.ProgramUniform3dv_load_with_dyn(get_proc_address);
5367 self.ProgramUniform3f_load_with_dyn(get_proc_address);
5368 self.ProgramUniform3fv_load_with_dyn(get_proc_address);
5369 self.ProgramUniform3i_load_with_dyn(get_proc_address);
5370 self.ProgramUniform3iv_load_with_dyn(get_proc_address);
5371 self.ProgramUniform3ui_load_with_dyn(get_proc_address);
5372 self.ProgramUniform3uiv_load_with_dyn(get_proc_address);
5373 self.ProgramUniform4d_load_with_dyn(get_proc_address);
5374 self.ProgramUniform4dv_load_with_dyn(get_proc_address);
5375 self.ProgramUniform4f_load_with_dyn(get_proc_address);
5376 self.ProgramUniform4fv_load_with_dyn(get_proc_address);
5377 self.ProgramUniform4i_load_with_dyn(get_proc_address);
5378 self.ProgramUniform4iv_load_with_dyn(get_proc_address);
5379 self.ProgramUniform4ui_load_with_dyn(get_proc_address);
5380 self.ProgramUniform4uiv_load_with_dyn(get_proc_address);
5381 self.ProgramUniformMatrix2dv_load_with_dyn(get_proc_address);
5382 self.ProgramUniformMatrix2fv_load_with_dyn(get_proc_address);
5383 self.ProgramUniformMatrix2x3dv_load_with_dyn(get_proc_address);
5384 self.ProgramUniformMatrix2x3fv_load_with_dyn(get_proc_address);
5385 self.ProgramUniformMatrix2x4dv_load_with_dyn(get_proc_address);
5386 self.ProgramUniformMatrix2x4fv_load_with_dyn(get_proc_address);
5387 self.ProgramUniformMatrix3dv_load_with_dyn(get_proc_address);
5388 self.ProgramUniformMatrix3fv_load_with_dyn(get_proc_address);
5389 self.ProgramUniformMatrix3x2dv_load_with_dyn(get_proc_address);
5390 self.ProgramUniformMatrix3x2fv_load_with_dyn(get_proc_address);
5391 self.ProgramUniformMatrix3x4dv_load_with_dyn(get_proc_address);
5392 self.ProgramUniformMatrix3x4fv_load_with_dyn(get_proc_address);
5393 self.ProgramUniformMatrix4dv_load_with_dyn(get_proc_address);
5394 self.ProgramUniformMatrix4fv_load_with_dyn(get_proc_address);
5395 self.ProgramUniformMatrix4x2dv_load_with_dyn(get_proc_address);
5396 self.ProgramUniformMatrix4x2fv_load_with_dyn(get_proc_address);
5397 self.ProgramUniformMatrix4x3dv_load_with_dyn(get_proc_address);
5398 self.ProgramUniformMatrix4x3fv_load_with_dyn(get_proc_address);
5399 self.ProvokingVertex_load_with_dyn(get_proc_address);
5400 self.PushDebugGroup_load_with_dyn(get_proc_address);
5401 self.PushDebugGroupKHR_load_with_dyn(get_proc_address);
5402 self.QueryCounter_load_with_dyn(get_proc_address);
5403 self.ReadBuffer_load_with_dyn(get_proc_address);
5404 self.ReadPixels_load_with_dyn(get_proc_address);
5405 self.ReadnPixels_load_with_dyn(get_proc_address);
5406 self.ReleaseShaderCompiler_load_with_dyn(get_proc_address);
5407 self.RenderbufferStorage_load_with_dyn(get_proc_address);
5408 self.RenderbufferStorageMultisample_load_with_dyn(get_proc_address);
5409 self.ResumeTransformFeedback_load_with_dyn(get_proc_address);
5410 self.SampleCoverage_load_with_dyn(get_proc_address);
5411 self.SampleMaski_load_with_dyn(get_proc_address);
5412 self.SamplerParameterIiv_load_with_dyn(get_proc_address);
5413 self.SamplerParameterIuiv_load_with_dyn(get_proc_address);
5414 self.SamplerParameterf_load_with_dyn(get_proc_address);
5415 self.SamplerParameterfv_load_with_dyn(get_proc_address);
5416 self.SamplerParameteri_load_with_dyn(get_proc_address);
5417 self.SamplerParameteriv_load_with_dyn(get_proc_address);
5418 self.Scissor_load_with_dyn(get_proc_address);
5419 self.ScissorArrayv_load_with_dyn(get_proc_address);
5420 self.ScissorIndexed_load_with_dyn(get_proc_address);
5421 self.ScissorIndexedv_load_with_dyn(get_proc_address);
5422 self.ShaderBinary_load_with_dyn(get_proc_address);
5423 self.ShaderSource_load_with_dyn(get_proc_address);
5424 self.ShaderStorageBlockBinding_load_with_dyn(get_proc_address);
5425 self.SpecializeShader_load_with_dyn(get_proc_address);
5426 self.StencilFunc_load_with_dyn(get_proc_address);
5427 self.StencilFuncSeparate_load_with_dyn(get_proc_address);
5428 self.StencilMask_load_with_dyn(get_proc_address);
5429 self.StencilMaskSeparate_load_with_dyn(get_proc_address);
5430 self.StencilOp_load_with_dyn(get_proc_address);
5431 self.StencilOpSeparate_load_with_dyn(get_proc_address);
5432 self.TexBuffer_load_with_dyn(get_proc_address);
5433 self.TexBufferRange_load_with_dyn(get_proc_address);
5434 self.TexImage1D_load_with_dyn(get_proc_address);
5435 self.TexImage2D_load_with_dyn(get_proc_address);
5436 self.TexImage2DMultisample_load_with_dyn(get_proc_address);
5437 self.TexImage3D_load_with_dyn(get_proc_address);
5438 self.TexImage3DMultisample_load_with_dyn(get_proc_address);
5439 self.TexParameterIiv_load_with_dyn(get_proc_address);
5440 self.TexParameterIuiv_load_with_dyn(get_proc_address);
5441 self.TexParameterf_load_with_dyn(get_proc_address);
5442 self.TexParameterfv_load_with_dyn(get_proc_address);
5443 self.TexParameteri_load_with_dyn(get_proc_address);
5444 self.TexParameteriv_load_with_dyn(get_proc_address);
5445 self.TexStorage1D_load_with_dyn(get_proc_address);
5446 self.TexStorage2D_load_with_dyn(get_proc_address);
5447 self.TexStorage2DMultisample_load_with_dyn(get_proc_address);
5448 self.TexStorage3D_load_with_dyn(get_proc_address);
5449 self.TexStorage3DMultisample_load_with_dyn(get_proc_address);
5450 self.TexSubImage1D_load_with_dyn(get_proc_address);
5451 self.TexSubImage2D_load_with_dyn(get_proc_address);
5452 self.TexSubImage3D_load_with_dyn(get_proc_address);
5453 self.TextureBarrier_load_with_dyn(get_proc_address);
5454 self.TextureBuffer_load_with_dyn(get_proc_address);
5455 self.TextureBufferRange_load_with_dyn(get_proc_address);
5456 self.TextureParameterIiv_load_with_dyn(get_proc_address);
5457 self.TextureParameterIuiv_load_with_dyn(get_proc_address);
5458 self.TextureParameterf_load_with_dyn(get_proc_address);
5459 self.TextureParameterfv_load_with_dyn(get_proc_address);
5460 self.TextureParameteri_load_with_dyn(get_proc_address);
5461 self.TextureParameteriv_load_with_dyn(get_proc_address);
5462 self.TextureStorage1D_load_with_dyn(get_proc_address);
5463 self.TextureStorage2D_load_with_dyn(get_proc_address);
5464 self.TextureStorage2DMultisample_load_with_dyn(get_proc_address);
5465 self.TextureStorage3D_load_with_dyn(get_proc_address);
5466 self.TextureStorage3DMultisample_load_with_dyn(get_proc_address);
5467 self.TextureSubImage1D_load_with_dyn(get_proc_address);
5468 self.TextureSubImage2D_load_with_dyn(get_proc_address);
5469 self.TextureSubImage3D_load_with_dyn(get_proc_address);
5470 self.TextureView_load_with_dyn(get_proc_address);
5471 self.TransformFeedbackBufferBase_load_with_dyn(get_proc_address);
5472 self.TransformFeedbackBufferRange_load_with_dyn(get_proc_address);
5473 self.TransformFeedbackVaryings_load_with_dyn(get_proc_address);
5474 self.Uniform1d_load_with_dyn(get_proc_address);
5475 self.Uniform1dv_load_with_dyn(get_proc_address);
5476 self.Uniform1f_load_with_dyn(get_proc_address);
5477 self.Uniform1fv_load_with_dyn(get_proc_address);
5478 self.Uniform1i_load_with_dyn(get_proc_address);
5479 self.Uniform1iv_load_with_dyn(get_proc_address);
5480 self.Uniform1ui_load_with_dyn(get_proc_address);
5481 self.Uniform1uiv_load_with_dyn(get_proc_address);
5482 self.Uniform2d_load_with_dyn(get_proc_address);
5483 self.Uniform2dv_load_with_dyn(get_proc_address);
5484 self.Uniform2f_load_with_dyn(get_proc_address);
5485 self.Uniform2fv_load_with_dyn(get_proc_address);
5486 self.Uniform2i_load_with_dyn(get_proc_address);
5487 self.Uniform2iv_load_with_dyn(get_proc_address);
5488 self.Uniform2ui_load_with_dyn(get_proc_address);
5489 self.Uniform2uiv_load_with_dyn(get_proc_address);
5490 self.Uniform3d_load_with_dyn(get_proc_address);
5491 self.Uniform3dv_load_with_dyn(get_proc_address);
5492 self.Uniform3f_load_with_dyn(get_proc_address);
5493 self.Uniform3fv_load_with_dyn(get_proc_address);
5494 self.Uniform3i_load_with_dyn(get_proc_address);
5495 self.Uniform3iv_load_with_dyn(get_proc_address);
5496 self.Uniform3ui_load_with_dyn(get_proc_address);
5497 self.Uniform3uiv_load_with_dyn(get_proc_address);
5498 self.Uniform4d_load_with_dyn(get_proc_address);
5499 self.Uniform4dv_load_with_dyn(get_proc_address);
5500 self.Uniform4f_load_with_dyn(get_proc_address);
5501 self.Uniform4fv_load_with_dyn(get_proc_address);
5502 self.Uniform4i_load_with_dyn(get_proc_address);
5503 self.Uniform4iv_load_with_dyn(get_proc_address);
5504 self.Uniform4ui_load_with_dyn(get_proc_address);
5505 self.Uniform4uiv_load_with_dyn(get_proc_address);
5506 self.UniformBlockBinding_load_with_dyn(get_proc_address);
5507 self.UniformMatrix2dv_load_with_dyn(get_proc_address);
5508 self.UniformMatrix2fv_load_with_dyn(get_proc_address);
5509 self.UniformMatrix2x3dv_load_with_dyn(get_proc_address);
5510 self.UniformMatrix2x3fv_load_with_dyn(get_proc_address);
5511 self.UniformMatrix2x4dv_load_with_dyn(get_proc_address);
5512 self.UniformMatrix2x4fv_load_with_dyn(get_proc_address);
5513 self.UniformMatrix3dv_load_with_dyn(get_proc_address);
5514 self.UniformMatrix3fv_load_with_dyn(get_proc_address);
5515 self.UniformMatrix3x2dv_load_with_dyn(get_proc_address);
5516 self.UniformMatrix3x2fv_load_with_dyn(get_proc_address);
5517 self.UniformMatrix3x4dv_load_with_dyn(get_proc_address);
5518 self.UniformMatrix3x4fv_load_with_dyn(get_proc_address);
5519 self.UniformMatrix4dv_load_with_dyn(get_proc_address);
5520 self.UniformMatrix4fv_load_with_dyn(get_proc_address);
5521 self.UniformMatrix4x2dv_load_with_dyn(get_proc_address);
5522 self.UniformMatrix4x2fv_load_with_dyn(get_proc_address);
5523 self.UniformMatrix4x3dv_load_with_dyn(get_proc_address);
5524 self.UniformMatrix4x3fv_load_with_dyn(get_proc_address);
5525 self.UniformSubroutinesuiv_load_with_dyn(get_proc_address);
5526 self.UnmapBuffer_load_with_dyn(get_proc_address);
5527 self.UnmapNamedBuffer_load_with_dyn(get_proc_address);
5528 self.UseProgram_load_with_dyn(get_proc_address);
5529 self.UseProgramStages_load_with_dyn(get_proc_address);
5530 self.ValidateProgram_load_with_dyn(get_proc_address);
5531 self.ValidateProgramPipeline_load_with_dyn(get_proc_address);
5532 self.VertexArrayAttribBinding_load_with_dyn(get_proc_address);
5533 self.VertexArrayAttribFormat_load_with_dyn(get_proc_address);
5534 self.VertexArrayAttribIFormat_load_with_dyn(get_proc_address);
5535 self.VertexArrayAttribLFormat_load_with_dyn(get_proc_address);
5536 self.VertexArrayBindingDivisor_load_with_dyn(get_proc_address);
5537 self.VertexArrayElementBuffer_load_with_dyn(get_proc_address);
5538 self.VertexArrayVertexBuffer_load_with_dyn(get_proc_address);
5539 self.VertexArrayVertexBuffers_load_with_dyn(get_proc_address);
5540 self.VertexAttrib1d_load_with_dyn(get_proc_address);
5541 self.VertexAttrib1dv_load_with_dyn(get_proc_address);
5542 self.VertexAttrib1f_load_with_dyn(get_proc_address);
5543 self.VertexAttrib1fv_load_with_dyn(get_proc_address);
5544 self.VertexAttrib1s_load_with_dyn(get_proc_address);
5545 self.VertexAttrib1sv_load_with_dyn(get_proc_address);
5546 self.VertexAttrib2d_load_with_dyn(get_proc_address);
5547 self.VertexAttrib2dv_load_with_dyn(get_proc_address);
5548 self.VertexAttrib2f_load_with_dyn(get_proc_address);
5549 self.VertexAttrib2fv_load_with_dyn(get_proc_address);
5550 self.VertexAttrib2s_load_with_dyn(get_proc_address);
5551 self.VertexAttrib2sv_load_with_dyn(get_proc_address);
5552 self.VertexAttrib3d_load_with_dyn(get_proc_address);
5553 self.VertexAttrib3dv_load_with_dyn(get_proc_address);
5554 self.VertexAttrib3f_load_with_dyn(get_proc_address);
5555 self.VertexAttrib3fv_load_with_dyn(get_proc_address);
5556 self.VertexAttrib3s_load_with_dyn(get_proc_address);
5557 self.VertexAttrib3sv_load_with_dyn(get_proc_address);
5558 self.VertexAttrib4Nbv_load_with_dyn(get_proc_address);
5559 self.VertexAttrib4Niv_load_with_dyn(get_proc_address);
5560 self.VertexAttrib4Nsv_load_with_dyn(get_proc_address);
5561 self.VertexAttrib4Nub_load_with_dyn(get_proc_address);
5562 self.VertexAttrib4Nubv_load_with_dyn(get_proc_address);
5563 self.VertexAttrib4Nuiv_load_with_dyn(get_proc_address);
5564 self.VertexAttrib4Nusv_load_with_dyn(get_proc_address);
5565 self.VertexAttrib4bv_load_with_dyn(get_proc_address);
5566 self.VertexAttrib4d_load_with_dyn(get_proc_address);
5567 self.VertexAttrib4dv_load_with_dyn(get_proc_address);
5568 self.VertexAttrib4f_load_with_dyn(get_proc_address);
5569 self.VertexAttrib4fv_load_with_dyn(get_proc_address);
5570 self.VertexAttrib4iv_load_with_dyn(get_proc_address);
5571 self.VertexAttrib4s_load_with_dyn(get_proc_address);
5572 self.VertexAttrib4sv_load_with_dyn(get_proc_address);
5573 self.VertexAttrib4ubv_load_with_dyn(get_proc_address);
5574 self.VertexAttrib4uiv_load_with_dyn(get_proc_address);
5575 self.VertexAttrib4usv_load_with_dyn(get_proc_address);
5576 self.VertexAttribBinding_load_with_dyn(get_proc_address);
5577 self.VertexAttribDivisor_load_with_dyn(get_proc_address);
5578 self.VertexAttribDivisorARB_load_with_dyn(get_proc_address);
5579 self.VertexAttribFormat_load_with_dyn(get_proc_address);
5580 self.VertexAttribI1i_load_with_dyn(get_proc_address);
5581 self.VertexAttribI1iv_load_with_dyn(get_proc_address);
5582 self.VertexAttribI1ui_load_with_dyn(get_proc_address);
5583 self.VertexAttribI1uiv_load_with_dyn(get_proc_address);
5584 self.VertexAttribI2i_load_with_dyn(get_proc_address);
5585 self.VertexAttribI2iv_load_with_dyn(get_proc_address);
5586 self.VertexAttribI2ui_load_with_dyn(get_proc_address);
5587 self.VertexAttribI2uiv_load_with_dyn(get_proc_address);
5588 self.VertexAttribI3i_load_with_dyn(get_proc_address);
5589 self.VertexAttribI3iv_load_with_dyn(get_proc_address);
5590 self.VertexAttribI3ui_load_with_dyn(get_proc_address);
5591 self.VertexAttribI3uiv_load_with_dyn(get_proc_address);
5592 self.VertexAttribI4bv_load_with_dyn(get_proc_address);
5593 self.VertexAttribI4i_load_with_dyn(get_proc_address);
5594 self.VertexAttribI4iv_load_with_dyn(get_proc_address);
5595 self.VertexAttribI4sv_load_with_dyn(get_proc_address);
5596 self.VertexAttribI4ubv_load_with_dyn(get_proc_address);
5597 self.VertexAttribI4ui_load_with_dyn(get_proc_address);
5598 self.VertexAttribI4uiv_load_with_dyn(get_proc_address);
5599 self.VertexAttribI4usv_load_with_dyn(get_proc_address);
5600 self.VertexAttribIFormat_load_with_dyn(get_proc_address);
5601 self.VertexAttribIPointer_load_with_dyn(get_proc_address);
5602 self.VertexAttribL1d_load_with_dyn(get_proc_address);
5603 self.VertexAttribL1dv_load_with_dyn(get_proc_address);
5604 self.VertexAttribL2d_load_with_dyn(get_proc_address);
5605 self.VertexAttribL2dv_load_with_dyn(get_proc_address);
5606 self.VertexAttribL3d_load_with_dyn(get_proc_address);
5607 self.VertexAttribL3dv_load_with_dyn(get_proc_address);
5608 self.VertexAttribL4d_load_with_dyn(get_proc_address);
5609 self.VertexAttribL4dv_load_with_dyn(get_proc_address);
5610 self.VertexAttribLFormat_load_with_dyn(get_proc_address);
5611 self.VertexAttribLPointer_load_with_dyn(get_proc_address);
5612 self.VertexAttribP1ui_load_with_dyn(get_proc_address);
5613 self.VertexAttribP1uiv_load_with_dyn(get_proc_address);
5614 self.VertexAttribP2ui_load_with_dyn(get_proc_address);
5615 self.VertexAttribP2uiv_load_with_dyn(get_proc_address);
5616 self.VertexAttribP3ui_load_with_dyn(get_proc_address);
5617 self.VertexAttribP3uiv_load_with_dyn(get_proc_address);
5618 self.VertexAttribP4ui_load_with_dyn(get_proc_address);
5619 self.VertexAttribP4uiv_load_with_dyn(get_proc_address);
5620 self.VertexAttribPointer_load_with_dyn(get_proc_address);
5621 self.VertexBindingDivisor_load_with_dyn(get_proc_address);
5622 self.Viewport_load_with_dyn(get_proc_address);
5623 self.ViewportArrayv_load_with_dyn(get_proc_address);
5624 self.ViewportIndexedf_load_with_dyn(get_proc_address);
5625 self.ViewportIndexedfv_load_with_dyn(get_proc_address);
5626 self.WaitSync_load_with_dyn(get_proc_address);
5627 }
5628 /// [glActiveShaderProgram](http://docs.gl/gl4/glActiveShaderProgram)(pipeline, program)
5629 #[cfg_attr(feature = "inline", inline)]
5630 #[cfg_attr(feature = "inline_always", inline(always))]
5631 pub unsafe fn ActiveShaderProgram(&self, pipeline: GLuint, program: GLuint) {
5632 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5633 {
5634 trace!(
5635 "calling gl.ActiveShaderProgram({:?}, {:?});",
5636 pipeline,
5637 program
5638 );
5639 }
5640 let out = call_atomic_ptr_2arg(
5641 "glActiveShaderProgram",
5642 &self.glActiveShaderProgram_p,
5643 pipeline,
5644 program,
5645 );
5646 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5647 {
5648 self.automatic_glGetError("glActiveShaderProgram");
5649 }
5650 out
5651 }
5652 #[doc(hidden)]
5653 pub unsafe fn ActiveShaderProgram_load_with_dyn(
5654 &self,
5655 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5656 ) -> bool {
5657 load_dyn_name_atomic_ptr(
5658 get_proc_address,
5659 b"glActiveShaderProgram\0",
5660 &self.glActiveShaderProgram_p,
5661 )
5662 }
5663 #[inline]
5664 #[doc(hidden)]
5665 pub fn ActiveShaderProgram_is_loaded(&self) -> bool {
5666 !self.glActiveShaderProgram_p.load(RELAX).is_null()
5667 }
5668 /// [glActiveTexture](http://docs.gl/gl4/glActiveTexture)(texture)
5669 /// * `texture` group: TextureUnit
5670 #[cfg_attr(feature = "inline", inline)]
5671 #[cfg_attr(feature = "inline_always", inline(always))]
5672 pub unsafe fn ActiveTexture(&self, texture: GLenum) {
5673 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5674 {
5675 trace!("calling gl.ActiveTexture({:#X});", texture);
5676 }
5677 let out = call_atomic_ptr_1arg("glActiveTexture", &self.glActiveTexture_p, texture);
5678 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5679 {
5680 self.automatic_glGetError("glActiveTexture");
5681 }
5682 out
5683 }
5684 #[doc(hidden)]
5685 pub unsafe fn ActiveTexture_load_with_dyn(
5686 &self,
5687 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5688 ) -> bool {
5689 load_dyn_name_atomic_ptr(
5690 get_proc_address,
5691 b"glActiveTexture\0",
5692 &self.glActiveTexture_p,
5693 )
5694 }
5695 #[inline]
5696 #[doc(hidden)]
5697 pub fn ActiveTexture_is_loaded(&self) -> bool {
5698 !self.glActiveTexture_p.load(RELAX).is_null()
5699 }
5700 /// [glAttachShader](http://docs.gl/gl4/glAttachShader)(program, shader)
5701 #[cfg_attr(feature = "inline", inline)]
5702 #[cfg_attr(feature = "inline_always", inline(always))]
5703 pub unsafe fn AttachShader(&self, program: GLuint, shader: GLuint) {
5704 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5705 {
5706 trace!("calling gl.AttachShader({:?}, {:?});", program, shader);
5707 }
5708 let out =
5709 call_atomic_ptr_2arg("glAttachShader", &self.glAttachShader_p, program, shader);
5710 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5711 {
5712 self.automatic_glGetError("glAttachShader");
5713 }
5714 out
5715 }
5716 #[doc(hidden)]
5717 pub unsafe fn AttachShader_load_with_dyn(
5718 &self,
5719 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5720 ) -> bool {
5721 load_dyn_name_atomic_ptr(
5722 get_proc_address,
5723 b"glAttachShader\0",
5724 &self.glAttachShader_p,
5725 )
5726 }
5727 #[inline]
5728 #[doc(hidden)]
5729 pub fn AttachShader_is_loaded(&self) -> bool {
5730 !self.glAttachShader_p.load(RELAX).is_null()
5731 }
5732 /// [glBeginConditionalRender](http://docs.gl/gl4/glBeginConditionalRender)(id, mode)
5733 /// * `mode` group: ConditionalRenderMode
5734 #[cfg_attr(feature = "inline", inline)]
5735 #[cfg_attr(feature = "inline_always", inline(always))]
5736 pub unsafe fn BeginConditionalRender(&self, id: GLuint, mode: GLenum) {
5737 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5738 {
5739 trace!("calling gl.BeginConditionalRender({:?}, {:#X});", id, mode);
5740 }
5741 let out = call_atomic_ptr_2arg(
5742 "glBeginConditionalRender",
5743 &self.glBeginConditionalRender_p,
5744 id,
5745 mode,
5746 );
5747 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5748 {
5749 self.automatic_glGetError("glBeginConditionalRender");
5750 }
5751 out
5752 }
5753 #[doc(hidden)]
5754 pub unsafe fn BeginConditionalRender_load_with_dyn(
5755 &self,
5756 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5757 ) -> bool {
5758 load_dyn_name_atomic_ptr(
5759 get_proc_address,
5760 b"glBeginConditionalRender\0",
5761 &self.glBeginConditionalRender_p,
5762 )
5763 }
5764 #[inline]
5765 #[doc(hidden)]
5766 pub fn BeginConditionalRender_is_loaded(&self) -> bool {
5767 !self.glBeginConditionalRender_p.load(RELAX).is_null()
5768 }
5769 /// [glBeginQuery](http://docs.gl/gl4/glBeginQuery)(target, id)
5770 /// * `target` group: QueryTarget
5771 #[cfg_attr(feature = "inline", inline)]
5772 #[cfg_attr(feature = "inline_always", inline(always))]
5773 pub unsafe fn BeginQuery(&self, target: GLenum, id: GLuint) {
5774 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5775 {
5776 trace!("calling gl.BeginQuery({:#X}, {:?});", target, id);
5777 }
5778 let out = call_atomic_ptr_2arg("glBeginQuery", &self.glBeginQuery_p, target, id);
5779 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5780 {
5781 self.automatic_glGetError("glBeginQuery");
5782 }
5783 out
5784 }
5785 #[doc(hidden)]
5786 pub unsafe fn BeginQuery_load_with_dyn(
5787 &self,
5788 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5789 ) -> bool {
5790 load_dyn_name_atomic_ptr(get_proc_address, b"glBeginQuery\0", &self.glBeginQuery_p)
5791 }
5792 #[inline]
5793 #[doc(hidden)]
5794 pub fn BeginQuery_is_loaded(&self) -> bool {
5795 !self.glBeginQuery_p.load(RELAX).is_null()
5796 }
5797 /// [glBeginQueryIndexed](http://docs.gl/gl4/glBeginQueryIndexed)(target, index, id)
5798 /// * `target` group: QueryTarget
5799 #[cfg_attr(feature = "inline", inline)]
5800 #[cfg_attr(feature = "inline_always", inline(always))]
5801 pub unsafe fn BeginQueryIndexed(&self, target: GLenum, index: GLuint, id: GLuint) {
5802 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5803 {
5804 trace!(
5805 "calling gl.BeginQueryIndexed({:#X}, {:?}, {:?});",
5806 target,
5807 index,
5808 id
5809 );
5810 }
5811 let out = call_atomic_ptr_3arg(
5812 "glBeginQueryIndexed",
5813 &self.glBeginQueryIndexed_p,
5814 target,
5815 index,
5816 id,
5817 );
5818 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5819 {
5820 self.automatic_glGetError("glBeginQueryIndexed");
5821 }
5822 out
5823 }
5824 #[doc(hidden)]
5825 pub unsafe fn BeginQueryIndexed_load_with_dyn(
5826 &self,
5827 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5828 ) -> bool {
5829 load_dyn_name_atomic_ptr(
5830 get_proc_address,
5831 b"glBeginQueryIndexed\0",
5832 &self.glBeginQueryIndexed_p,
5833 )
5834 }
5835 #[inline]
5836 #[doc(hidden)]
5837 pub fn BeginQueryIndexed_is_loaded(&self) -> bool {
5838 !self.glBeginQueryIndexed_p.load(RELAX).is_null()
5839 }
5840 /// [glBeginTransformFeedback](http://docs.gl/gl4/glBeginTransformFeedback)(primitiveMode)
5841 /// * `primitiveMode` group: PrimitiveType
5842 #[cfg_attr(feature = "inline", inline)]
5843 #[cfg_attr(feature = "inline_always", inline(always))]
5844 pub unsafe fn BeginTransformFeedback(&self, primitiveMode: GLenum) {
5845 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5846 {
5847 trace!("calling gl.BeginTransformFeedback({:#X});", primitiveMode);
5848 }
5849 let out = call_atomic_ptr_1arg(
5850 "glBeginTransformFeedback",
5851 &self.glBeginTransformFeedback_p,
5852 primitiveMode,
5853 );
5854 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5855 {
5856 self.automatic_glGetError("glBeginTransformFeedback");
5857 }
5858 out
5859 }
5860 #[doc(hidden)]
5861 pub unsafe fn BeginTransformFeedback_load_with_dyn(
5862 &self,
5863 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5864 ) -> bool {
5865 load_dyn_name_atomic_ptr(
5866 get_proc_address,
5867 b"glBeginTransformFeedback\0",
5868 &self.glBeginTransformFeedback_p,
5869 )
5870 }
5871 #[inline]
5872 #[doc(hidden)]
5873 pub fn BeginTransformFeedback_is_loaded(&self) -> bool {
5874 !self.glBeginTransformFeedback_p.load(RELAX).is_null()
5875 }
5876 /// [glBindAttribLocation](http://docs.gl/gl4/glBindAttribLocation)(program, index, name)
5877 #[cfg_attr(feature = "inline", inline)]
5878 #[cfg_attr(feature = "inline_always", inline(always))]
5879 pub unsafe fn BindAttribLocation(
5880 &self,
5881 program: GLuint,
5882 index: GLuint,
5883 name: *const GLchar,
5884 ) {
5885 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5886 {
5887 trace!(
5888 "calling gl.BindAttribLocation({:?}, {:?}, {:p});",
5889 program,
5890 index,
5891 name
5892 );
5893 }
5894 let out = call_atomic_ptr_3arg(
5895 "glBindAttribLocation",
5896 &self.glBindAttribLocation_p,
5897 program,
5898 index,
5899 name,
5900 );
5901 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5902 {
5903 self.automatic_glGetError("glBindAttribLocation");
5904 }
5905 out
5906 }
5907 #[doc(hidden)]
5908 pub unsafe fn BindAttribLocation_load_with_dyn(
5909 &self,
5910 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5911 ) -> bool {
5912 load_dyn_name_atomic_ptr(
5913 get_proc_address,
5914 b"glBindAttribLocation\0",
5915 &self.glBindAttribLocation_p,
5916 )
5917 }
5918 #[inline]
5919 #[doc(hidden)]
5920 pub fn BindAttribLocation_is_loaded(&self) -> bool {
5921 !self.glBindAttribLocation_p.load(RELAX).is_null()
5922 }
5923 /// [glBindBuffer](http://docs.gl/gl4/glBindBuffer)(target, buffer)
5924 /// * `target` group: BufferTargetARB
5925 #[cfg_attr(feature = "inline", inline)]
5926 #[cfg_attr(feature = "inline_always", inline(always))]
5927 pub unsafe fn BindBuffer(&self, target: GLenum, buffer: GLuint) {
5928 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5929 {
5930 trace!("calling gl.BindBuffer({:#X}, {:?});", target, buffer);
5931 }
5932 let out = call_atomic_ptr_2arg("glBindBuffer", &self.glBindBuffer_p, target, buffer);
5933 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5934 {
5935 self.automatic_glGetError("glBindBuffer");
5936 }
5937 out
5938 }
5939 #[doc(hidden)]
5940 pub unsafe fn BindBuffer_load_with_dyn(
5941 &self,
5942 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5943 ) -> bool {
5944 load_dyn_name_atomic_ptr(get_proc_address, b"glBindBuffer\0", &self.glBindBuffer_p)
5945 }
5946 #[inline]
5947 #[doc(hidden)]
5948 pub fn BindBuffer_is_loaded(&self) -> bool {
5949 !self.glBindBuffer_p.load(RELAX).is_null()
5950 }
5951 /// [glBindBufferBase](http://docs.gl/gl4/glBindBufferBase)(target, index, buffer)
5952 /// * `target` group: BufferTargetARB
5953 #[cfg_attr(feature = "inline", inline)]
5954 #[cfg_attr(feature = "inline_always", inline(always))]
5955 pub unsafe fn BindBufferBase(&self, target: GLenum, index: GLuint, buffer: GLuint) {
5956 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5957 {
5958 trace!(
5959 "calling gl.BindBufferBase({:#X}, {:?}, {:?});",
5960 target,
5961 index,
5962 buffer
5963 );
5964 }
5965 let out = call_atomic_ptr_3arg(
5966 "glBindBufferBase",
5967 &self.glBindBufferBase_p,
5968 target,
5969 index,
5970 buffer,
5971 );
5972 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5973 {
5974 self.automatic_glGetError("glBindBufferBase");
5975 }
5976 out
5977 }
5978 #[doc(hidden)]
5979 pub unsafe fn BindBufferBase_load_with_dyn(
5980 &self,
5981 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5982 ) -> bool {
5983 load_dyn_name_atomic_ptr(
5984 get_proc_address,
5985 b"glBindBufferBase\0",
5986 &self.glBindBufferBase_p,
5987 )
5988 }
5989 #[inline]
5990 #[doc(hidden)]
5991 pub fn BindBufferBase_is_loaded(&self) -> bool {
5992 !self.glBindBufferBase_p.load(RELAX).is_null()
5993 }
5994 /// [glBindBufferRange](http://docs.gl/gl4/glBindBufferRange)(target, index, buffer, offset, size)
5995 /// * `target` group: BufferTargetARB
5996 /// * `offset` group: BufferOffset
5997 /// * `size` group: BufferSize
5998 #[cfg_attr(feature = "inline", inline)]
5999 #[cfg_attr(feature = "inline_always", inline(always))]
6000 pub unsafe fn BindBufferRange(
6001 &self,
6002 target: GLenum,
6003 index: GLuint,
6004 buffer: GLuint,
6005 offset: GLintptr,
6006 size: GLsizeiptr,
6007 ) {
6008 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6009 {
6010 trace!(
6011 "calling gl.BindBufferRange({:#X}, {:?}, {:?}, {:?}, {:?});",
6012 target,
6013 index,
6014 buffer,
6015 offset,
6016 size
6017 );
6018 }
6019 let out = call_atomic_ptr_5arg(
6020 "glBindBufferRange",
6021 &self.glBindBufferRange_p,
6022 target,
6023 index,
6024 buffer,
6025 offset,
6026 size,
6027 );
6028 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6029 {
6030 self.automatic_glGetError("glBindBufferRange");
6031 }
6032 out
6033 }
6034 #[doc(hidden)]
6035 pub unsafe fn BindBufferRange_load_with_dyn(
6036 &self,
6037 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6038 ) -> bool {
6039 load_dyn_name_atomic_ptr(
6040 get_proc_address,
6041 b"glBindBufferRange\0",
6042 &self.glBindBufferRange_p,
6043 )
6044 }
6045 #[inline]
6046 #[doc(hidden)]
6047 pub fn BindBufferRange_is_loaded(&self) -> bool {
6048 !self.glBindBufferRange_p.load(RELAX).is_null()
6049 }
6050 /// [glBindBuffersBase](http://docs.gl/gl4/glBindBuffersBase)(target, first, count, buffers)
6051 /// * `target` group: BufferTargetARB
6052 /// * `buffers` len: count
6053 #[cfg_attr(feature = "inline", inline)]
6054 #[cfg_attr(feature = "inline_always", inline(always))]
6055 pub unsafe fn BindBuffersBase(
6056 &self,
6057 target: GLenum,
6058 first: GLuint,
6059 count: GLsizei,
6060 buffers: *const GLuint,
6061 ) {
6062 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6063 {
6064 trace!(
6065 "calling gl.BindBuffersBase({:#X}, {:?}, {:?}, {:p});",
6066 target,
6067 first,
6068 count,
6069 buffers
6070 );
6071 }
6072 let out = call_atomic_ptr_4arg(
6073 "glBindBuffersBase",
6074 &self.glBindBuffersBase_p,
6075 target,
6076 first,
6077 count,
6078 buffers,
6079 );
6080 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6081 {
6082 self.automatic_glGetError("glBindBuffersBase");
6083 }
6084 out
6085 }
6086 #[doc(hidden)]
6087 pub unsafe fn BindBuffersBase_load_with_dyn(
6088 &self,
6089 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6090 ) -> bool {
6091 load_dyn_name_atomic_ptr(
6092 get_proc_address,
6093 b"glBindBuffersBase\0",
6094 &self.glBindBuffersBase_p,
6095 )
6096 }
6097 #[inline]
6098 #[doc(hidden)]
6099 pub fn BindBuffersBase_is_loaded(&self) -> bool {
6100 !self.glBindBuffersBase_p.load(RELAX).is_null()
6101 }
6102 /// [glBindBuffersRange](http://docs.gl/gl4/glBindBuffersRange)(target, first, count, buffers, offsets, sizes)
6103 /// * `target` group: BufferTargetARB
6104 /// * `buffers` len: count
6105 /// * `offsets` len: count
6106 /// * `sizes` len: count
6107 #[cfg_attr(feature = "inline", inline)]
6108 #[cfg_attr(feature = "inline_always", inline(always))]
6109 pub unsafe fn BindBuffersRange(
6110 &self,
6111 target: GLenum,
6112 first: GLuint,
6113 count: GLsizei,
6114 buffers: *const GLuint,
6115 offsets: *const GLintptr,
6116 sizes: *const GLsizeiptr,
6117 ) {
6118 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6119 {
6120 trace!(
6121 "calling gl.BindBuffersRange({:#X}, {:?}, {:?}, {:p}, {:p}, {:p});",
6122 target,
6123 first,
6124 count,
6125 buffers,
6126 offsets,
6127 sizes
6128 );
6129 }
6130 let out = call_atomic_ptr_6arg(
6131 "glBindBuffersRange",
6132 &self.glBindBuffersRange_p,
6133 target,
6134 first,
6135 count,
6136 buffers,
6137 offsets,
6138 sizes,
6139 );
6140 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6141 {
6142 self.automatic_glGetError("glBindBuffersRange");
6143 }
6144 out
6145 }
6146 #[doc(hidden)]
6147 pub unsafe fn BindBuffersRange_load_with_dyn(
6148 &self,
6149 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6150 ) -> bool {
6151 load_dyn_name_atomic_ptr(
6152 get_proc_address,
6153 b"glBindBuffersRange\0",
6154 &self.glBindBuffersRange_p,
6155 )
6156 }
6157 #[inline]
6158 #[doc(hidden)]
6159 pub fn BindBuffersRange_is_loaded(&self) -> bool {
6160 !self.glBindBuffersRange_p.load(RELAX).is_null()
6161 }
6162 /// [glBindFragDataLocation](http://docs.gl/gl4/glBindFragDataLocation)(program, color, name)
6163 /// * `name` len: COMPSIZE(name)
6164 #[cfg_attr(feature = "inline", inline)]
6165 #[cfg_attr(feature = "inline_always", inline(always))]
6166 pub unsafe fn BindFragDataLocation(
6167 &self,
6168 program: GLuint,
6169 color: GLuint,
6170 name: *const GLchar,
6171 ) {
6172 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6173 {
6174 trace!(
6175 "calling gl.BindFragDataLocation({:?}, {:?}, {:p});",
6176 program,
6177 color,
6178 name
6179 );
6180 }
6181 let out = call_atomic_ptr_3arg(
6182 "glBindFragDataLocation",
6183 &self.glBindFragDataLocation_p,
6184 program,
6185 color,
6186 name,
6187 );
6188 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6189 {
6190 self.automatic_glGetError("glBindFragDataLocation");
6191 }
6192 out
6193 }
6194 #[doc(hidden)]
6195 pub unsafe fn BindFragDataLocation_load_with_dyn(
6196 &self,
6197 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6198 ) -> bool {
6199 load_dyn_name_atomic_ptr(
6200 get_proc_address,
6201 b"glBindFragDataLocation\0",
6202 &self.glBindFragDataLocation_p,
6203 )
6204 }
6205 #[inline]
6206 #[doc(hidden)]
6207 pub fn BindFragDataLocation_is_loaded(&self) -> bool {
6208 !self.glBindFragDataLocation_p.load(RELAX).is_null()
6209 }
6210 /// [glBindFragDataLocationIndexed](http://docs.gl/gl4/glBindFragDataLocationIndexed)(program, colorNumber, index, name)
6211 #[cfg_attr(feature = "inline", inline)]
6212 #[cfg_attr(feature = "inline_always", inline(always))]
6213 pub unsafe fn BindFragDataLocationIndexed(
6214 &self,
6215 program: GLuint,
6216 colorNumber: GLuint,
6217 index: GLuint,
6218 name: *const GLchar,
6219 ) {
6220 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6221 {
6222 trace!(
6223 "calling gl.BindFragDataLocationIndexed({:?}, {:?}, {:?}, {:p});",
6224 program,
6225 colorNumber,
6226 index,
6227 name
6228 );
6229 }
6230 let out = call_atomic_ptr_4arg(
6231 "glBindFragDataLocationIndexed",
6232 &self.glBindFragDataLocationIndexed_p,
6233 program,
6234 colorNumber,
6235 index,
6236 name,
6237 );
6238 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6239 {
6240 self.automatic_glGetError("glBindFragDataLocationIndexed");
6241 }
6242 out
6243 }
6244 #[doc(hidden)]
6245 pub unsafe fn BindFragDataLocationIndexed_load_with_dyn(
6246 &self,
6247 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6248 ) -> bool {
6249 load_dyn_name_atomic_ptr(
6250 get_proc_address,
6251 b"glBindFragDataLocationIndexed\0",
6252 &self.glBindFragDataLocationIndexed_p,
6253 )
6254 }
6255 #[inline]
6256 #[doc(hidden)]
6257 pub fn BindFragDataLocationIndexed_is_loaded(&self) -> bool {
6258 !self.glBindFragDataLocationIndexed_p.load(RELAX).is_null()
6259 }
6260 /// [glBindFramebuffer](http://docs.gl/gl4/glBindFramebuffer)(target, framebuffer)
6261 /// * `target` group: FramebufferTarget
6262 #[cfg_attr(feature = "inline", inline)]
6263 #[cfg_attr(feature = "inline_always", inline(always))]
6264 pub unsafe fn BindFramebuffer(&self, target: GLenum, framebuffer: GLuint) {
6265 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6266 {
6267 trace!(
6268 "calling gl.BindFramebuffer({:#X}, {:?});",
6269 target,
6270 framebuffer
6271 );
6272 }
6273 let out = call_atomic_ptr_2arg(
6274 "glBindFramebuffer",
6275 &self.glBindFramebuffer_p,
6276 target,
6277 framebuffer,
6278 );
6279 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6280 {
6281 self.automatic_glGetError("glBindFramebuffer");
6282 }
6283 out
6284 }
6285 #[doc(hidden)]
6286 pub unsafe fn BindFramebuffer_load_with_dyn(
6287 &self,
6288 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6289 ) -> bool {
6290 load_dyn_name_atomic_ptr(
6291 get_proc_address,
6292 b"glBindFramebuffer\0",
6293 &self.glBindFramebuffer_p,
6294 )
6295 }
6296 #[inline]
6297 #[doc(hidden)]
6298 pub fn BindFramebuffer_is_loaded(&self) -> bool {
6299 !self.glBindFramebuffer_p.load(RELAX).is_null()
6300 }
6301 /// [glBindImageTexture](http://docs.gl/gl4/glBindImageTexture)(unit, texture, level, layered, layer, access, format)
6302 /// * `access` group: BufferAccessARB
6303 /// * `format` group: InternalFormat
6304 #[cfg_attr(feature = "inline", inline)]
6305 #[cfg_attr(feature = "inline_always", inline(always))]
6306 pub unsafe fn BindImageTexture(
6307 &self,
6308 unit: GLuint,
6309 texture: GLuint,
6310 level: GLint,
6311 layered: GLboolean,
6312 layer: GLint,
6313 access: GLenum,
6314 format: GLenum,
6315 ) {
6316 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6317 {
6318 trace!(
6319 "calling gl.BindImageTexture({:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X});",
6320 unit,
6321 texture,
6322 level,
6323 layered,
6324 layer,
6325 access,
6326 format
6327 );
6328 }
6329 let out = call_atomic_ptr_7arg(
6330 "glBindImageTexture",
6331 &self.glBindImageTexture_p,
6332 unit,
6333 texture,
6334 level,
6335 layered,
6336 layer,
6337 access,
6338 format,
6339 );
6340 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6341 {
6342 self.automatic_glGetError("glBindImageTexture");
6343 }
6344 out
6345 }
6346 #[doc(hidden)]
6347 pub unsafe fn BindImageTexture_load_with_dyn(
6348 &self,
6349 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6350 ) -> bool {
6351 load_dyn_name_atomic_ptr(
6352 get_proc_address,
6353 b"glBindImageTexture\0",
6354 &self.glBindImageTexture_p,
6355 )
6356 }
6357 #[inline]
6358 #[doc(hidden)]
6359 pub fn BindImageTexture_is_loaded(&self) -> bool {
6360 !self.glBindImageTexture_p.load(RELAX).is_null()
6361 }
6362 /// [glBindImageTextures](http://docs.gl/gl4/glBindImageTextures)(first, count, textures)
6363 /// * `textures` len: count
6364 #[cfg_attr(feature = "inline", inline)]
6365 #[cfg_attr(feature = "inline_always", inline(always))]
6366 pub unsafe fn BindImageTextures(
6367 &self,
6368 first: GLuint,
6369 count: GLsizei,
6370 textures: *const GLuint,
6371 ) {
6372 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6373 {
6374 trace!(
6375 "calling gl.BindImageTextures({:?}, {:?}, {:p});",
6376 first,
6377 count,
6378 textures
6379 );
6380 }
6381 let out = call_atomic_ptr_3arg(
6382 "glBindImageTextures",
6383 &self.glBindImageTextures_p,
6384 first,
6385 count,
6386 textures,
6387 );
6388 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6389 {
6390 self.automatic_glGetError("glBindImageTextures");
6391 }
6392 out
6393 }
6394 #[doc(hidden)]
6395 pub unsafe fn BindImageTextures_load_with_dyn(
6396 &self,
6397 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6398 ) -> bool {
6399 load_dyn_name_atomic_ptr(
6400 get_proc_address,
6401 b"glBindImageTextures\0",
6402 &self.glBindImageTextures_p,
6403 )
6404 }
6405 #[inline]
6406 #[doc(hidden)]
6407 pub fn BindImageTextures_is_loaded(&self) -> bool {
6408 !self.glBindImageTextures_p.load(RELAX).is_null()
6409 }
6410 /// [glBindProgramPipeline](http://docs.gl/gl4/glBindProgramPipeline)(pipeline)
6411 #[cfg_attr(feature = "inline", inline)]
6412 #[cfg_attr(feature = "inline_always", inline(always))]
6413 pub unsafe fn BindProgramPipeline(&self, pipeline: GLuint) {
6414 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6415 {
6416 trace!("calling gl.BindProgramPipeline({:?});", pipeline);
6417 }
6418 let out = call_atomic_ptr_1arg(
6419 "glBindProgramPipeline",
6420 &self.glBindProgramPipeline_p,
6421 pipeline,
6422 );
6423 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6424 {
6425 self.automatic_glGetError("glBindProgramPipeline");
6426 }
6427 out
6428 }
6429 #[doc(hidden)]
6430 pub unsafe fn BindProgramPipeline_load_with_dyn(
6431 &self,
6432 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6433 ) -> bool {
6434 load_dyn_name_atomic_ptr(
6435 get_proc_address,
6436 b"glBindProgramPipeline\0",
6437 &self.glBindProgramPipeline_p,
6438 )
6439 }
6440 #[inline]
6441 #[doc(hidden)]
6442 pub fn BindProgramPipeline_is_loaded(&self) -> bool {
6443 !self.glBindProgramPipeline_p.load(RELAX).is_null()
6444 }
6445 /// [glBindRenderbuffer](http://docs.gl/gl4/glBindRenderbuffer)(target, renderbuffer)
6446 /// * `target` group: RenderbufferTarget
6447 #[cfg_attr(feature = "inline", inline)]
6448 #[cfg_attr(feature = "inline_always", inline(always))]
6449 pub unsafe fn BindRenderbuffer(&self, target: GLenum, renderbuffer: GLuint) {
6450 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6451 {
6452 trace!(
6453 "calling gl.BindRenderbuffer({:#X}, {:?});",
6454 target,
6455 renderbuffer
6456 );
6457 }
6458 let out = call_atomic_ptr_2arg(
6459 "glBindRenderbuffer",
6460 &self.glBindRenderbuffer_p,
6461 target,
6462 renderbuffer,
6463 );
6464 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6465 {
6466 self.automatic_glGetError("glBindRenderbuffer");
6467 }
6468 out
6469 }
6470 #[doc(hidden)]
6471 pub unsafe fn BindRenderbuffer_load_with_dyn(
6472 &self,
6473 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6474 ) -> bool {
6475 load_dyn_name_atomic_ptr(
6476 get_proc_address,
6477 b"glBindRenderbuffer\0",
6478 &self.glBindRenderbuffer_p,
6479 )
6480 }
6481 #[inline]
6482 #[doc(hidden)]
6483 pub fn BindRenderbuffer_is_loaded(&self) -> bool {
6484 !self.glBindRenderbuffer_p.load(RELAX).is_null()
6485 }
6486 /// [glBindSampler](http://docs.gl/gl4/glBindSampler)(unit, sampler)
6487 #[cfg_attr(feature = "inline", inline)]
6488 #[cfg_attr(feature = "inline_always", inline(always))]
6489 pub unsafe fn BindSampler(&self, unit: GLuint, sampler: GLuint) {
6490 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6491 {
6492 trace!("calling gl.BindSampler({:?}, {:?});", unit, sampler);
6493 }
6494 let out = call_atomic_ptr_2arg("glBindSampler", &self.glBindSampler_p, unit, sampler);
6495 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6496 {
6497 self.automatic_glGetError("glBindSampler");
6498 }
6499 out
6500 }
6501 #[doc(hidden)]
6502 pub unsafe fn BindSampler_load_with_dyn(
6503 &self,
6504 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6505 ) -> bool {
6506 load_dyn_name_atomic_ptr(get_proc_address, b"glBindSampler\0", &self.glBindSampler_p)
6507 }
6508 #[inline]
6509 #[doc(hidden)]
6510 pub fn BindSampler_is_loaded(&self) -> bool {
6511 !self.glBindSampler_p.load(RELAX).is_null()
6512 }
6513 /// [glBindSamplers](http://docs.gl/gl4/glBindSamplers)(first, count, samplers)
6514 /// * `samplers` len: count
6515 #[cfg_attr(feature = "inline", inline)]
6516 #[cfg_attr(feature = "inline_always", inline(always))]
6517 pub unsafe fn BindSamplers(&self, first: GLuint, count: GLsizei, samplers: *const GLuint) {
6518 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6519 {
6520 trace!(
6521 "calling gl.BindSamplers({:?}, {:?}, {:p});",
6522 first,
6523 count,
6524 samplers
6525 );
6526 }
6527 let out = call_atomic_ptr_3arg(
6528 "glBindSamplers",
6529 &self.glBindSamplers_p,
6530 first,
6531 count,
6532 samplers,
6533 );
6534 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6535 {
6536 self.automatic_glGetError("glBindSamplers");
6537 }
6538 out
6539 }
6540 #[doc(hidden)]
6541 pub unsafe fn BindSamplers_load_with_dyn(
6542 &self,
6543 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6544 ) -> bool {
6545 load_dyn_name_atomic_ptr(
6546 get_proc_address,
6547 b"glBindSamplers\0",
6548 &self.glBindSamplers_p,
6549 )
6550 }
6551 #[inline]
6552 #[doc(hidden)]
6553 pub fn BindSamplers_is_loaded(&self) -> bool {
6554 !self.glBindSamplers_p.load(RELAX).is_null()
6555 }
6556 /// [glBindTexture](http://docs.gl/gl4/glBindTexture)(target, texture)
6557 /// * `target` group: TextureTarget
6558 /// * `texture` group: Texture
6559 #[cfg_attr(feature = "inline", inline)]
6560 #[cfg_attr(feature = "inline_always", inline(always))]
6561 pub unsafe fn BindTexture(&self, target: GLenum, texture: GLuint) {
6562 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6563 {
6564 trace!("calling gl.BindTexture({:#X}, {:?});", target, texture);
6565 }
6566 let out = call_atomic_ptr_2arg("glBindTexture", &self.glBindTexture_p, target, texture);
6567 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6568 {
6569 self.automatic_glGetError("glBindTexture");
6570 }
6571 out
6572 }
6573 #[doc(hidden)]
6574 pub unsafe fn BindTexture_load_with_dyn(
6575 &self,
6576 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6577 ) -> bool {
6578 load_dyn_name_atomic_ptr(get_proc_address, b"glBindTexture\0", &self.glBindTexture_p)
6579 }
6580 #[inline]
6581 #[doc(hidden)]
6582 pub fn BindTexture_is_loaded(&self) -> bool {
6583 !self.glBindTexture_p.load(RELAX).is_null()
6584 }
6585 /// [glBindTextureUnit](http://docs.gl/gl4/glBindTextureUnit)(unit, texture)
6586 #[cfg_attr(feature = "inline", inline)]
6587 #[cfg_attr(feature = "inline_always", inline(always))]
6588 pub unsafe fn BindTextureUnit(&self, unit: GLuint, texture: GLuint) {
6589 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6590 {
6591 trace!("calling gl.BindTextureUnit({:?}, {:?});", unit, texture);
6592 }
6593 let out = call_atomic_ptr_2arg(
6594 "glBindTextureUnit",
6595 &self.glBindTextureUnit_p,
6596 unit,
6597 texture,
6598 );
6599 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6600 {
6601 self.automatic_glGetError("glBindTextureUnit");
6602 }
6603 out
6604 }
6605 #[doc(hidden)]
6606 pub unsafe fn BindTextureUnit_load_with_dyn(
6607 &self,
6608 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6609 ) -> bool {
6610 load_dyn_name_atomic_ptr(
6611 get_proc_address,
6612 b"glBindTextureUnit\0",
6613 &self.glBindTextureUnit_p,
6614 )
6615 }
6616 #[inline]
6617 #[doc(hidden)]
6618 pub fn BindTextureUnit_is_loaded(&self) -> bool {
6619 !self.glBindTextureUnit_p.load(RELAX).is_null()
6620 }
6621 /// [glBindTextures](http://docs.gl/gl4/glBindTextures)(first, count, textures)
6622 /// * `textures` len: count
6623 #[cfg_attr(feature = "inline", inline)]
6624 #[cfg_attr(feature = "inline_always", inline(always))]
6625 pub unsafe fn BindTextures(&self, first: GLuint, count: GLsizei, textures: *const GLuint) {
6626 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6627 {
6628 trace!(
6629 "calling gl.BindTextures({:?}, {:?}, {:p});",
6630 first,
6631 count,
6632 textures
6633 );
6634 }
6635 let out = call_atomic_ptr_3arg(
6636 "glBindTextures",
6637 &self.glBindTextures_p,
6638 first,
6639 count,
6640 textures,
6641 );
6642 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6643 {
6644 self.automatic_glGetError("glBindTextures");
6645 }
6646 out
6647 }
6648 #[doc(hidden)]
6649 pub unsafe fn BindTextures_load_with_dyn(
6650 &self,
6651 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6652 ) -> bool {
6653 load_dyn_name_atomic_ptr(
6654 get_proc_address,
6655 b"glBindTextures\0",
6656 &self.glBindTextures_p,
6657 )
6658 }
6659 #[inline]
6660 #[doc(hidden)]
6661 pub fn BindTextures_is_loaded(&self) -> bool {
6662 !self.glBindTextures_p.load(RELAX).is_null()
6663 }
6664 /// [glBindTransformFeedback](http://docs.gl/gl4/glBindTransformFeedback)(target, id)
6665 /// * `target` group: BindTransformFeedbackTarget
6666 #[cfg_attr(feature = "inline", inline)]
6667 #[cfg_attr(feature = "inline_always", inline(always))]
6668 pub unsafe fn BindTransformFeedback(&self, target: GLenum, id: GLuint) {
6669 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6670 {
6671 trace!("calling gl.BindTransformFeedback({:#X}, {:?});", target, id);
6672 }
6673 let out = call_atomic_ptr_2arg(
6674 "glBindTransformFeedback",
6675 &self.glBindTransformFeedback_p,
6676 target,
6677 id,
6678 );
6679 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6680 {
6681 self.automatic_glGetError("glBindTransformFeedback");
6682 }
6683 out
6684 }
6685 #[doc(hidden)]
6686 pub unsafe fn BindTransformFeedback_load_with_dyn(
6687 &self,
6688 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6689 ) -> bool {
6690 load_dyn_name_atomic_ptr(
6691 get_proc_address,
6692 b"glBindTransformFeedback\0",
6693 &self.glBindTransformFeedback_p,
6694 )
6695 }
6696 #[inline]
6697 #[doc(hidden)]
6698 pub fn BindTransformFeedback_is_loaded(&self) -> bool {
6699 !self.glBindTransformFeedback_p.load(RELAX).is_null()
6700 }
6701 /// [glBindVertexArray](http://docs.gl/gl4/glBindVertexArray)(array)
6702 #[cfg_attr(feature = "inline", inline)]
6703 #[cfg_attr(feature = "inline_always", inline(always))]
6704 pub unsafe fn BindVertexArray(&self, array: GLuint) {
6705 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6706 {
6707 trace!("calling gl.BindVertexArray({:?});", array);
6708 }
6709 let out = call_atomic_ptr_1arg("glBindVertexArray", &self.glBindVertexArray_p, array);
6710 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6711 {
6712 self.automatic_glGetError("glBindVertexArray");
6713 }
6714 out
6715 }
6716 #[doc(hidden)]
6717 pub unsafe fn BindVertexArray_load_with_dyn(
6718 &self,
6719 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6720 ) -> bool {
6721 load_dyn_name_atomic_ptr(
6722 get_proc_address,
6723 b"glBindVertexArray\0",
6724 &self.glBindVertexArray_p,
6725 )
6726 }
6727 #[inline]
6728 #[doc(hidden)]
6729 pub fn BindVertexArray_is_loaded(&self) -> bool {
6730 !self.glBindVertexArray_p.load(RELAX).is_null()
6731 }
6732 /// [glBindVertexBuffer](http://docs.gl/gl4/glBindVertexBuffer)(bindingindex, buffer, offset, stride)
6733 /// * `offset` group: BufferOffset
6734 #[cfg_attr(feature = "inline", inline)]
6735 #[cfg_attr(feature = "inline_always", inline(always))]
6736 pub unsafe fn BindVertexBuffer(
6737 &self,
6738 bindingindex: GLuint,
6739 buffer: GLuint,
6740 offset: GLintptr,
6741 stride: GLsizei,
6742 ) {
6743 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6744 {
6745 trace!(
6746 "calling gl.BindVertexBuffer({:?}, {:?}, {:?}, {:?});",
6747 bindingindex,
6748 buffer,
6749 offset,
6750 stride
6751 );
6752 }
6753 let out = call_atomic_ptr_4arg(
6754 "glBindVertexBuffer",
6755 &self.glBindVertexBuffer_p,
6756 bindingindex,
6757 buffer,
6758 offset,
6759 stride,
6760 );
6761 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6762 {
6763 self.automatic_glGetError("glBindVertexBuffer");
6764 }
6765 out
6766 }
6767 #[doc(hidden)]
6768 pub unsafe fn BindVertexBuffer_load_with_dyn(
6769 &self,
6770 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6771 ) -> bool {
6772 load_dyn_name_atomic_ptr(
6773 get_proc_address,
6774 b"glBindVertexBuffer\0",
6775 &self.glBindVertexBuffer_p,
6776 )
6777 }
6778 #[inline]
6779 #[doc(hidden)]
6780 pub fn BindVertexBuffer_is_loaded(&self) -> bool {
6781 !self.glBindVertexBuffer_p.load(RELAX).is_null()
6782 }
6783 /// [glBindVertexBuffers](http://docs.gl/gl4/glBindVertexBuffers)(first, count, buffers, offsets, strides)
6784 /// * `buffers` len: count
6785 /// * `offsets` len: count
6786 /// * `strides` len: count
6787 #[cfg_attr(feature = "inline", inline)]
6788 #[cfg_attr(feature = "inline_always", inline(always))]
6789 pub unsafe fn BindVertexBuffers(
6790 &self,
6791 first: GLuint,
6792 count: GLsizei,
6793 buffers: *const GLuint,
6794 offsets: *const GLintptr,
6795 strides: *const GLsizei,
6796 ) {
6797 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6798 {
6799 trace!(
6800 "calling gl.BindVertexBuffers({:?}, {:?}, {:p}, {:p}, {:p});",
6801 first,
6802 count,
6803 buffers,
6804 offsets,
6805 strides
6806 );
6807 }
6808 let out = call_atomic_ptr_5arg(
6809 "glBindVertexBuffers",
6810 &self.glBindVertexBuffers_p,
6811 first,
6812 count,
6813 buffers,
6814 offsets,
6815 strides,
6816 );
6817 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6818 {
6819 self.automatic_glGetError("glBindVertexBuffers");
6820 }
6821 out
6822 }
6823 #[doc(hidden)]
6824 pub unsafe fn BindVertexBuffers_load_with_dyn(
6825 &self,
6826 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6827 ) -> bool {
6828 load_dyn_name_atomic_ptr(
6829 get_proc_address,
6830 b"glBindVertexBuffers\0",
6831 &self.glBindVertexBuffers_p,
6832 )
6833 }
6834 #[inline]
6835 #[doc(hidden)]
6836 pub fn BindVertexBuffers_is_loaded(&self) -> bool {
6837 !self.glBindVertexBuffers_p.load(RELAX).is_null()
6838 }
6839 /// [glBlendBarrier](http://docs.gl/gl4/glBlendBarrier)()
6840 #[cfg_attr(feature = "inline", inline)]
6841 #[cfg_attr(feature = "inline_always", inline(always))]
6842 pub unsafe fn BlendBarrier(&self) {
6843 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6844 {
6845 trace!("calling gl.BlendBarrier();",);
6846 }
6847 let out = call_atomic_ptr_0arg("glBlendBarrier", &self.glBlendBarrier_p);
6848 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6849 {
6850 self.automatic_glGetError("glBlendBarrier");
6851 }
6852 out
6853 }
6854 #[doc(hidden)]
6855 pub unsafe fn BlendBarrier_load_with_dyn(
6856 &self,
6857 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6858 ) -> bool {
6859 load_dyn_name_atomic_ptr(
6860 get_proc_address,
6861 b"glBlendBarrier\0",
6862 &self.glBlendBarrier_p,
6863 )
6864 }
6865 #[inline]
6866 #[doc(hidden)]
6867 pub fn BlendBarrier_is_loaded(&self) -> bool {
6868 !self.glBlendBarrier_p.load(RELAX).is_null()
6869 }
6870 /// [glBlendColor](http://docs.gl/gl4/glBlendColor)(red, green, blue, alpha)
6871 /// * `red` group: ColorF
6872 /// * `green` group: ColorF
6873 /// * `blue` group: ColorF
6874 /// * `alpha` group: ColorF
6875 #[cfg_attr(feature = "inline", inline)]
6876 #[cfg_attr(feature = "inline_always", inline(always))]
6877 pub unsafe fn BlendColor(
6878 &self,
6879 red: GLfloat,
6880 green: GLfloat,
6881 blue: GLfloat,
6882 alpha: GLfloat,
6883 ) {
6884 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6885 {
6886 trace!(
6887 "calling gl.BlendColor({:?}, {:?}, {:?}, {:?});",
6888 red,
6889 green,
6890 blue,
6891 alpha
6892 );
6893 }
6894 let out = call_atomic_ptr_4arg(
6895 "glBlendColor",
6896 &self.glBlendColor_p,
6897 red,
6898 green,
6899 blue,
6900 alpha,
6901 );
6902 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6903 {
6904 self.automatic_glGetError("glBlendColor");
6905 }
6906 out
6907 }
6908 #[doc(hidden)]
6909 pub unsafe fn BlendColor_load_with_dyn(
6910 &self,
6911 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6912 ) -> bool {
6913 load_dyn_name_atomic_ptr(get_proc_address, b"glBlendColor\0", &self.glBlendColor_p)
6914 }
6915 #[inline]
6916 #[doc(hidden)]
6917 pub fn BlendColor_is_loaded(&self) -> bool {
6918 !self.glBlendColor_p.load(RELAX).is_null()
6919 }
6920 /// [glBlendEquation](http://docs.gl/gl4/glBlendEquation)(mode)
6921 /// * `mode` group: BlendEquationModeEXT
6922 #[cfg_attr(feature = "inline", inline)]
6923 #[cfg_attr(feature = "inline_always", inline(always))]
6924 pub unsafe fn BlendEquation(&self, mode: GLenum) {
6925 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6926 {
6927 trace!("calling gl.BlendEquation({:#X});", mode);
6928 }
6929 let out = call_atomic_ptr_1arg("glBlendEquation", &self.glBlendEquation_p, mode);
6930 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6931 {
6932 self.automatic_glGetError("glBlendEquation");
6933 }
6934 out
6935 }
6936 #[doc(hidden)]
6937 pub unsafe fn BlendEquation_load_with_dyn(
6938 &self,
6939 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6940 ) -> bool {
6941 load_dyn_name_atomic_ptr(
6942 get_proc_address,
6943 b"glBlendEquation\0",
6944 &self.glBlendEquation_p,
6945 )
6946 }
6947 #[inline]
6948 #[doc(hidden)]
6949 pub fn BlendEquation_is_loaded(&self) -> bool {
6950 !self.glBlendEquation_p.load(RELAX).is_null()
6951 }
6952 /// [glBlendEquationSeparate](http://docs.gl/gl4/glBlendEquationSeparate)(modeRGB, modeAlpha)
6953 /// * `modeRGB` group: BlendEquationModeEXT
6954 /// * `modeAlpha` group: BlendEquationModeEXT
6955 #[cfg_attr(feature = "inline", inline)]
6956 #[cfg_attr(feature = "inline_always", inline(always))]
6957 pub unsafe fn BlendEquationSeparate(&self, modeRGB: GLenum, modeAlpha: GLenum) {
6958 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6959 {
6960 trace!(
6961 "calling gl.BlendEquationSeparate({:#X}, {:#X});",
6962 modeRGB,
6963 modeAlpha
6964 );
6965 }
6966 let out = call_atomic_ptr_2arg(
6967 "glBlendEquationSeparate",
6968 &self.glBlendEquationSeparate_p,
6969 modeRGB,
6970 modeAlpha,
6971 );
6972 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6973 {
6974 self.automatic_glGetError("glBlendEquationSeparate");
6975 }
6976 out
6977 }
6978 #[doc(hidden)]
6979 pub unsafe fn BlendEquationSeparate_load_with_dyn(
6980 &self,
6981 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6982 ) -> bool {
6983 load_dyn_name_atomic_ptr(
6984 get_proc_address,
6985 b"glBlendEquationSeparate\0",
6986 &self.glBlendEquationSeparate_p,
6987 )
6988 }
6989 #[inline]
6990 #[doc(hidden)]
6991 pub fn BlendEquationSeparate_is_loaded(&self) -> bool {
6992 !self.glBlendEquationSeparate_p.load(RELAX).is_null()
6993 }
6994 /// [glBlendEquationSeparatei](http://docs.gl/gl4/glBlendEquationSeparate)(buf, modeRGB, modeAlpha)
6995 /// * `modeRGB` group: BlendEquationModeEXT
6996 /// * `modeAlpha` group: BlendEquationModeEXT
6997 #[cfg_attr(feature = "inline", inline)]
6998 #[cfg_attr(feature = "inline_always", inline(always))]
6999 pub unsafe fn BlendEquationSeparatei(
7000 &self,
7001 buf: GLuint,
7002 modeRGB: GLenum,
7003 modeAlpha: GLenum,
7004 ) {
7005 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7006 {
7007 trace!(
7008 "calling gl.BlendEquationSeparatei({:?}, {:#X}, {:#X});",
7009 buf,
7010 modeRGB,
7011 modeAlpha
7012 );
7013 }
7014 let out = call_atomic_ptr_3arg(
7015 "glBlendEquationSeparatei",
7016 &self.glBlendEquationSeparatei_p,
7017 buf,
7018 modeRGB,
7019 modeAlpha,
7020 );
7021 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7022 {
7023 self.automatic_glGetError("glBlendEquationSeparatei");
7024 }
7025 out
7026 }
7027 #[doc(hidden)]
7028 pub unsafe fn BlendEquationSeparatei_load_with_dyn(
7029 &self,
7030 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7031 ) -> bool {
7032 load_dyn_name_atomic_ptr(
7033 get_proc_address,
7034 b"glBlendEquationSeparatei\0",
7035 &self.glBlendEquationSeparatei_p,
7036 )
7037 }
7038 #[inline]
7039 #[doc(hidden)]
7040 pub fn BlendEquationSeparatei_is_loaded(&self) -> bool {
7041 !self.glBlendEquationSeparatei_p.load(RELAX).is_null()
7042 }
7043 /// [glBlendEquationi](http://docs.gl/gl4/glBlendEquation)(buf, mode)
7044 /// * `mode` group: BlendEquationModeEXT
7045 #[cfg_attr(feature = "inline", inline)]
7046 #[cfg_attr(feature = "inline_always", inline(always))]
7047 pub unsafe fn BlendEquationi(&self, buf: GLuint, mode: GLenum) {
7048 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7049 {
7050 trace!("calling gl.BlendEquationi({:?}, {:#X});", buf, mode);
7051 }
7052 let out = call_atomic_ptr_2arg("glBlendEquationi", &self.glBlendEquationi_p, buf, mode);
7053 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7054 {
7055 self.automatic_glGetError("glBlendEquationi");
7056 }
7057 out
7058 }
7059 #[doc(hidden)]
7060 pub unsafe fn BlendEquationi_load_with_dyn(
7061 &self,
7062 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7063 ) -> bool {
7064 load_dyn_name_atomic_ptr(
7065 get_proc_address,
7066 b"glBlendEquationi\0",
7067 &self.glBlendEquationi_p,
7068 )
7069 }
7070 #[inline]
7071 #[doc(hidden)]
7072 pub fn BlendEquationi_is_loaded(&self) -> bool {
7073 !self.glBlendEquationi_p.load(RELAX).is_null()
7074 }
7075 /// [glBlendFunc](http://docs.gl/gl4/glBlendFunc)(sfactor, dfactor)
7076 /// * `sfactor` group: BlendingFactor
7077 /// * `dfactor` group: BlendingFactor
7078 #[cfg_attr(feature = "inline", inline)]
7079 #[cfg_attr(feature = "inline_always", inline(always))]
7080 pub unsafe fn BlendFunc(&self, sfactor: GLenum, dfactor: GLenum) {
7081 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7082 {
7083 trace!("calling gl.BlendFunc({:#X}, {:#X});", sfactor, dfactor);
7084 }
7085 let out = call_atomic_ptr_2arg("glBlendFunc", &self.glBlendFunc_p, sfactor, dfactor);
7086 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7087 {
7088 self.automatic_glGetError("glBlendFunc");
7089 }
7090 out
7091 }
7092 #[doc(hidden)]
7093 pub unsafe fn BlendFunc_load_with_dyn(
7094 &self,
7095 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7096 ) -> bool {
7097 load_dyn_name_atomic_ptr(get_proc_address, b"glBlendFunc\0", &self.glBlendFunc_p)
7098 }
7099 #[inline]
7100 #[doc(hidden)]
7101 pub fn BlendFunc_is_loaded(&self) -> bool {
7102 !self.glBlendFunc_p.load(RELAX).is_null()
7103 }
7104 /// [glBlendFuncSeparate](http://docs.gl/gl4/glBlendFuncSeparate)(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha)
7105 /// * `sfactorRGB` group: BlendingFactor
7106 /// * `dfactorRGB` group: BlendingFactor
7107 /// * `sfactorAlpha` group: BlendingFactor
7108 /// * `dfactorAlpha` group: BlendingFactor
7109 #[cfg_attr(feature = "inline", inline)]
7110 #[cfg_attr(feature = "inline_always", inline(always))]
7111 pub unsafe fn BlendFuncSeparate(
7112 &self,
7113 sfactorRGB: GLenum,
7114 dfactorRGB: GLenum,
7115 sfactorAlpha: GLenum,
7116 dfactorAlpha: GLenum,
7117 ) {
7118 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7119 {
7120 trace!(
7121 "calling gl.BlendFuncSeparate({:#X}, {:#X}, {:#X}, {:#X});",
7122 sfactorRGB,
7123 dfactorRGB,
7124 sfactorAlpha,
7125 dfactorAlpha
7126 );
7127 }
7128 let out = call_atomic_ptr_4arg(
7129 "glBlendFuncSeparate",
7130 &self.glBlendFuncSeparate_p,
7131 sfactorRGB,
7132 dfactorRGB,
7133 sfactorAlpha,
7134 dfactorAlpha,
7135 );
7136 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7137 {
7138 self.automatic_glGetError("glBlendFuncSeparate");
7139 }
7140 out
7141 }
7142 #[doc(hidden)]
7143 pub unsafe fn BlendFuncSeparate_load_with_dyn(
7144 &self,
7145 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7146 ) -> bool {
7147 load_dyn_name_atomic_ptr(
7148 get_proc_address,
7149 b"glBlendFuncSeparate\0",
7150 &self.glBlendFuncSeparate_p,
7151 )
7152 }
7153 #[inline]
7154 #[doc(hidden)]
7155 pub fn BlendFuncSeparate_is_loaded(&self) -> bool {
7156 !self.glBlendFuncSeparate_p.load(RELAX).is_null()
7157 }
7158 /// [glBlendFuncSeparatei](http://docs.gl/gl4/glBlendFuncSeparate)(buf, srcRGB, dstRGB, srcAlpha, dstAlpha)
7159 /// * `srcRGB` group: BlendingFactor
7160 /// * `dstRGB` group: BlendingFactor
7161 /// * `srcAlpha` group: BlendingFactor
7162 /// * `dstAlpha` group: BlendingFactor
7163 #[cfg_attr(feature = "inline", inline)]
7164 #[cfg_attr(feature = "inline_always", inline(always))]
7165 pub unsafe fn BlendFuncSeparatei(
7166 &self,
7167 buf: GLuint,
7168 srcRGB: GLenum,
7169 dstRGB: GLenum,
7170 srcAlpha: GLenum,
7171 dstAlpha: GLenum,
7172 ) {
7173 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7174 {
7175 trace!(
7176 "calling gl.BlendFuncSeparatei({:?}, {:#X}, {:#X}, {:#X}, {:#X});",
7177 buf,
7178 srcRGB,
7179 dstRGB,
7180 srcAlpha,
7181 dstAlpha
7182 );
7183 }
7184 let out = call_atomic_ptr_5arg(
7185 "glBlendFuncSeparatei",
7186 &self.glBlendFuncSeparatei_p,
7187 buf,
7188 srcRGB,
7189 dstRGB,
7190 srcAlpha,
7191 dstAlpha,
7192 );
7193 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7194 {
7195 self.automatic_glGetError("glBlendFuncSeparatei");
7196 }
7197 out
7198 }
7199 #[doc(hidden)]
7200 pub unsafe fn BlendFuncSeparatei_load_with_dyn(
7201 &self,
7202 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7203 ) -> bool {
7204 load_dyn_name_atomic_ptr(
7205 get_proc_address,
7206 b"glBlendFuncSeparatei\0",
7207 &self.glBlendFuncSeparatei_p,
7208 )
7209 }
7210 #[inline]
7211 #[doc(hidden)]
7212 pub fn BlendFuncSeparatei_is_loaded(&self) -> bool {
7213 !self.glBlendFuncSeparatei_p.load(RELAX).is_null()
7214 }
7215 /// [glBlendFunci](http://docs.gl/gl4/glBlendFunc)(buf, src, dst)
7216 /// * `src` group: BlendingFactor
7217 /// * `dst` group: BlendingFactor
7218 #[cfg_attr(feature = "inline", inline)]
7219 #[cfg_attr(feature = "inline_always", inline(always))]
7220 pub unsafe fn BlendFunci(&self, buf: GLuint, src: GLenum, dst: GLenum) {
7221 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7222 {
7223 trace!("calling gl.BlendFunci({:?}, {:#X}, {:#X});", buf, src, dst);
7224 }
7225 let out = call_atomic_ptr_3arg("glBlendFunci", &self.glBlendFunci_p, buf, src, dst);
7226 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7227 {
7228 self.automatic_glGetError("glBlendFunci");
7229 }
7230 out
7231 }
7232 #[doc(hidden)]
7233 pub unsafe fn BlendFunci_load_with_dyn(
7234 &self,
7235 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7236 ) -> bool {
7237 load_dyn_name_atomic_ptr(get_proc_address, b"glBlendFunci\0", &self.glBlendFunci_p)
7238 }
7239 #[inline]
7240 #[doc(hidden)]
7241 pub fn BlendFunci_is_loaded(&self) -> bool {
7242 !self.glBlendFunci_p.load(RELAX).is_null()
7243 }
7244 /// [glBlitFramebuffer](http://docs.gl/gl4/glBlitFramebuffer)(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter)
7245 /// * `mask` group: ClearBufferMask
7246 /// * `filter` group: BlitFramebufferFilter
7247 #[cfg_attr(feature = "inline", inline)]
7248 #[cfg_attr(feature = "inline_always", inline(always))]
7249 pub unsafe fn BlitFramebuffer(
7250 &self,
7251 srcX0: GLint,
7252 srcY0: GLint,
7253 srcX1: GLint,
7254 srcY1: GLint,
7255 dstX0: GLint,
7256 dstY0: GLint,
7257 dstX1: GLint,
7258 dstY1: GLint,
7259 mask: GLbitfield,
7260 filter: GLenum,
7261 ) {
7262 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7263 {
7264 trace!("calling gl.BlitFramebuffer({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X});", srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
7265 }
7266 let out = call_atomic_ptr_10arg(
7267 "glBlitFramebuffer",
7268 &self.glBlitFramebuffer_p,
7269 srcX0,
7270 srcY0,
7271 srcX1,
7272 srcY1,
7273 dstX0,
7274 dstY0,
7275 dstX1,
7276 dstY1,
7277 mask,
7278 filter,
7279 );
7280 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7281 {
7282 self.automatic_glGetError("glBlitFramebuffer");
7283 }
7284 out
7285 }
7286 #[doc(hidden)]
7287 pub unsafe fn BlitFramebuffer_load_with_dyn(
7288 &self,
7289 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7290 ) -> bool {
7291 load_dyn_name_atomic_ptr(
7292 get_proc_address,
7293 b"glBlitFramebuffer\0",
7294 &self.glBlitFramebuffer_p,
7295 )
7296 }
7297 #[inline]
7298 #[doc(hidden)]
7299 pub fn BlitFramebuffer_is_loaded(&self) -> bool {
7300 !self.glBlitFramebuffer_p.load(RELAX).is_null()
7301 }
7302 /// [glBlitNamedFramebuffer](http://docs.gl/gl4/glBlitNamedFramebuffer)(readFramebuffer, drawFramebuffer, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter)
7303 /// * `mask` group: ClearBufferMask
7304 /// * `filter` group: BlitFramebufferFilter
7305 #[cfg_attr(feature = "inline", inline)]
7306 #[cfg_attr(feature = "inline_always", inline(always))]
7307 pub unsafe fn BlitNamedFramebuffer(
7308 &self,
7309 readFramebuffer: GLuint,
7310 drawFramebuffer: GLuint,
7311 srcX0: GLint,
7312 srcY0: GLint,
7313 srcX1: GLint,
7314 srcY1: GLint,
7315 dstX0: GLint,
7316 dstY0: GLint,
7317 dstX1: GLint,
7318 dstY1: GLint,
7319 mask: GLbitfield,
7320 filter: GLenum,
7321 ) {
7322 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7323 {
7324 trace!("calling gl.BlitNamedFramebuffer({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X});", readFramebuffer, drawFramebuffer, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
7325 }
7326 let out = call_atomic_ptr_12arg(
7327 "glBlitNamedFramebuffer",
7328 &self.glBlitNamedFramebuffer_p,
7329 readFramebuffer,
7330 drawFramebuffer,
7331 srcX0,
7332 srcY0,
7333 srcX1,
7334 srcY1,
7335 dstX0,
7336 dstY0,
7337 dstX1,
7338 dstY1,
7339 mask,
7340 filter,
7341 );
7342 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7343 {
7344 self.automatic_glGetError("glBlitNamedFramebuffer");
7345 }
7346 out
7347 }
7348 #[doc(hidden)]
7349 pub unsafe fn BlitNamedFramebuffer_load_with_dyn(
7350 &self,
7351 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7352 ) -> bool {
7353 load_dyn_name_atomic_ptr(
7354 get_proc_address,
7355 b"glBlitNamedFramebuffer\0",
7356 &self.glBlitNamedFramebuffer_p,
7357 )
7358 }
7359 #[inline]
7360 #[doc(hidden)]
7361 pub fn BlitNamedFramebuffer_is_loaded(&self) -> bool {
7362 !self.glBlitNamedFramebuffer_p.load(RELAX).is_null()
7363 }
7364 /// [glBufferData](http://docs.gl/gl4/glBufferData)(target, size, data, usage)
7365 /// * `target` group: BufferTargetARB
7366 /// * `size` group: BufferSize
7367 /// * `data` len: size
7368 /// * `usage` group: BufferUsageARB
7369 #[cfg_attr(feature = "inline", inline)]
7370 #[cfg_attr(feature = "inline_always", inline(always))]
7371 pub unsafe fn BufferData(
7372 &self,
7373 target: GLenum,
7374 size: GLsizeiptr,
7375 data: *const c_void,
7376 usage: GLenum,
7377 ) {
7378 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7379 {
7380 trace!(
7381 "calling gl.BufferData({:#X}, {:?}, {:p}, {:#X});",
7382 target,
7383 size,
7384 data,
7385 usage
7386 );
7387 }
7388 let out = call_atomic_ptr_4arg(
7389 "glBufferData",
7390 &self.glBufferData_p,
7391 target,
7392 size,
7393 data,
7394 usage,
7395 );
7396 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7397 {
7398 self.automatic_glGetError("glBufferData");
7399 }
7400 out
7401 }
7402 #[doc(hidden)]
7403 pub unsafe fn BufferData_load_with_dyn(
7404 &self,
7405 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7406 ) -> bool {
7407 load_dyn_name_atomic_ptr(get_proc_address, b"glBufferData\0", &self.glBufferData_p)
7408 }
7409 #[inline]
7410 #[doc(hidden)]
7411 pub fn BufferData_is_loaded(&self) -> bool {
7412 !self.glBufferData_p.load(RELAX).is_null()
7413 }
7414 /// [glBufferStorage](http://docs.gl/gl4/glBufferStorage)(target, size, data, flags)
7415 /// * `target` group: BufferStorageTarget
7416 /// * `data` len: size
7417 /// * `flags` group: BufferStorageMask
7418 #[cfg_attr(feature = "inline", inline)]
7419 #[cfg_attr(feature = "inline_always", inline(always))]
7420 pub unsafe fn BufferStorage(
7421 &self,
7422 target: GLenum,
7423 size: GLsizeiptr,
7424 data: *const c_void,
7425 flags: GLbitfield,
7426 ) {
7427 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7428 {
7429 trace!(
7430 "calling gl.BufferStorage({:#X}, {:?}, {:p}, {:?});",
7431 target,
7432 size,
7433 data,
7434 flags
7435 );
7436 }
7437 let out = call_atomic_ptr_4arg(
7438 "glBufferStorage",
7439 &self.glBufferStorage_p,
7440 target,
7441 size,
7442 data,
7443 flags,
7444 );
7445 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7446 {
7447 self.automatic_glGetError("glBufferStorage");
7448 }
7449 out
7450 }
7451 #[doc(hidden)]
7452 pub unsafe fn BufferStorage_load_with_dyn(
7453 &self,
7454 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7455 ) -> bool {
7456 load_dyn_name_atomic_ptr(
7457 get_proc_address,
7458 b"glBufferStorage\0",
7459 &self.glBufferStorage_p,
7460 )
7461 }
7462 #[inline]
7463 #[doc(hidden)]
7464 pub fn BufferStorage_is_loaded(&self) -> bool {
7465 !self.glBufferStorage_p.load(RELAX).is_null()
7466 }
7467 /// [glBufferStorageEXT](http://docs.gl/gl4/glBufferStorageEXT)(target, size, data, flags)
7468 /// * `target` group: BufferStorageTarget
7469 /// * `data` len: size
7470 /// * `flags` group: BufferStorageMask
7471 /// * alias of: [`glBufferStorage`]
7472 #[cfg_attr(feature = "inline", inline)]
7473 #[cfg_attr(feature = "inline_always", inline(always))]
7474 pub unsafe fn BufferStorageEXT(
7475 &self,
7476 target: GLenum,
7477 size: GLsizeiptr,
7478 data: *const c_void,
7479 flags: GLbitfield,
7480 ) {
7481 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7482 {
7483 trace!(
7484 "calling gl.BufferStorageEXT({:#X}, {:?}, {:p}, {:?});",
7485 target,
7486 size,
7487 data,
7488 flags
7489 );
7490 }
7491 let out = call_atomic_ptr_4arg(
7492 "glBufferStorageEXT",
7493 &self.glBufferStorageEXT_p,
7494 target,
7495 size,
7496 data,
7497 flags,
7498 );
7499 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7500 {
7501 self.automatic_glGetError("glBufferStorageEXT");
7502 }
7503 out
7504 }
7505 #[doc(hidden)]
7506 pub unsafe fn BufferStorageEXT_load_with_dyn(
7507 &self,
7508 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7509 ) -> bool {
7510 load_dyn_name_atomic_ptr(
7511 get_proc_address,
7512 b"glBufferStorageEXT\0",
7513 &self.glBufferStorageEXT_p,
7514 )
7515 }
7516 #[inline]
7517 #[doc(hidden)]
7518 pub fn BufferStorageEXT_is_loaded(&self) -> bool {
7519 !self.glBufferStorageEXT_p.load(RELAX).is_null()
7520 }
7521 /// [glBufferSubData](http://docs.gl/gl4/glBufferSubData)(target, offset, size, data)
7522 /// * `target` group: BufferTargetARB
7523 /// * `offset` group: BufferOffset
7524 /// * `size` group: BufferSize
7525 /// * `data` len: size
7526 #[cfg_attr(feature = "inline", inline)]
7527 #[cfg_attr(feature = "inline_always", inline(always))]
7528 pub unsafe fn BufferSubData(
7529 &self,
7530 target: GLenum,
7531 offset: GLintptr,
7532 size: GLsizeiptr,
7533 data: *const c_void,
7534 ) {
7535 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7536 {
7537 trace!(
7538 "calling gl.BufferSubData({:#X}, {:?}, {:?}, {:p});",
7539 target,
7540 offset,
7541 size,
7542 data
7543 );
7544 }
7545 let out = call_atomic_ptr_4arg(
7546 "glBufferSubData",
7547 &self.glBufferSubData_p,
7548 target,
7549 offset,
7550 size,
7551 data,
7552 );
7553 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7554 {
7555 self.automatic_glGetError("glBufferSubData");
7556 }
7557 out
7558 }
7559 #[doc(hidden)]
7560 pub unsafe fn BufferSubData_load_with_dyn(
7561 &self,
7562 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7563 ) -> bool {
7564 load_dyn_name_atomic_ptr(
7565 get_proc_address,
7566 b"glBufferSubData\0",
7567 &self.glBufferSubData_p,
7568 )
7569 }
7570 #[inline]
7571 #[doc(hidden)]
7572 pub fn BufferSubData_is_loaded(&self) -> bool {
7573 !self.glBufferSubData_p.load(RELAX).is_null()
7574 }
7575 /// [glCheckFramebufferStatus](http://docs.gl/gl4/glCheckFramebufferStatus)(target)
7576 /// * `target` group: FramebufferTarget
7577 /// * return value group: FramebufferStatus
7578 #[cfg_attr(feature = "inline", inline)]
7579 #[cfg_attr(feature = "inline_always", inline(always))]
7580 pub unsafe fn CheckFramebufferStatus(&self, target: GLenum) -> GLenum {
7581 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7582 {
7583 trace!("calling gl.CheckFramebufferStatus({:#X});", target);
7584 }
7585 let out = call_atomic_ptr_1arg(
7586 "glCheckFramebufferStatus",
7587 &self.glCheckFramebufferStatus_p,
7588 target,
7589 );
7590 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7591 {
7592 self.automatic_glGetError("glCheckFramebufferStatus");
7593 }
7594 out
7595 }
7596 #[doc(hidden)]
7597 pub unsafe fn CheckFramebufferStatus_load_with_dyn(
7598 &self,
7599 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7600 ) -> bool {
7601 load_dyn_name_atomic_ptr(
7602 get_proc_address,
7603 b"glCheckFramebufferStatus\0",
7604 &self.glCheckFramebufferStatus_p,
7605 )
7606 }
7607 #[inline]
7608 #[doc(hidden)]
7609 pub fn CheckFramebufferStatus_is_loaded(&self) -> bool {
7610 !self.glCheckFramebufferStatus_p.load(RELAX).is_null()
7611 }
7612 /// [glCheckNamedFramebufferStatus](http://docs.gl/gl4/glCheckNamedFramebufferStatus)(framebuffer, target)
7613 /// * `target` group: FramebufferTarget
7614 /// * return value group: FramebufferStatus
7615 #[cfg_attr(feature = "inline", inline)]
7616 #[cfg_attr(feature = "inline_always", inline(always))]
7617 pub unsafe fn CheckNamedFramebufferStatus(
7618 &self,
7619 framebuffer: GLuint,
7620 target: GLenum,
7621 ) -> GLenum {
7622 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7623 {
7624 trace!(
7625 "calling gl.CheckNamedFramebufferStatus({:?}, {:#X});",
7626 framebuffer,
7627 target
7628 );
7629 }
7630 let out = call_atomic_ptr_2arg(
7631 "glCheckNamedFramebufferStatus",
7632 &self.glCheckNamedFramebufferStatus_p,
7633 framebuffer,
7634 target,
7635 );
7636 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7637 {
7638 self.automatic_glGetError("glCheckNamedFramebufferStatus");
7639 }
7640 out
7641 }
7642 #[doc(hidden)]
7643 pub unsafe fn CheckNamedFramebufferStatus_load_with_dyn(
7644 &self,
7645 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7646 ) -> bool {
7647 load_dyn_name_atomic_ptr(
7648 get_proc_address,
7649 b"glCheckNamedFramebufferStatus\0",
7650 &self.glCheckNamedFramebufferStatus_p,
7651 )
7652 }
7653 #[inline]
7654 #[doc(hidden)]
7655 pub fn CheckNamedFramebufferStatus_is_loaded(&self) -> bool {
7656 !self.glCheckNamedFramebufferStatus_p.load(RELAX).is_null()
7657 }
7658 /// [glClampColor](http://docs.gl/gl4/glClampColor)(target, clamp)
7659 /// * `target` group: ClampColorTargetARB
7660 /// * `clamp` group: ClampColorModeARB
7661 #[cfg_attr(feature = "inline", inline)]
7662 #[cfg_attr(feature = "inline_always", inline(always))]
7663 pub unsafe fn ClampColor(&self, target: GLenum, clamp: GLenum) {
7664 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7665 {
7666 trace!("calling gl.ClampColor({:#X}, {:#X});", target, clamp);
7667 }
7668 let out = call_atomic_ptr_2arg("glClampColor", &self.glClampColor_p, target, clamp);
7669 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7670 {
7671 self.automatic_glGetError("glClampColor");
7672 }
7673 out
7674 }
7675 #[doc(hidden)]
7676 pub unsafe fn ClampColor_load_with_dyn(
7677 &self,
7678 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7679 ) -> bool {
7680 load_dyn_name_atomic_ptr(get_proc_address, b"glClampColor\0", &self.glClampColor_p)
7681 }
7682 #[inline]
7683 #[doc(hidden)]
7684 pub fn ClampColor_is_loaded(&self) -> bool {
7685 !self.glClampColor_p.load(RELAX).is_null()
7686 }
7687 /// [glClear](http://docs.gl/gl4/glClear)(mask)
7688 /// * `mask` group: ClearBufferMask
7689 #[cfg_attr(feature = "inline", inline)]
7690 #[cfg_attr(feature = "inline_always", inline(always))]
7691 pub unsafe fn Clear(&self, mask: GLbitfield) {
7692 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7693 {
7694 trace!("calling gl.Clear({:?});", mask);
7695 }
7696 let out = call_atomic_ptr_1arg("glClear", &self.glClear_p, mask);
7697 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7698 {
7699 self.automatic_glGetError("glClear");
7700 }
7701 out
7702 }
7703 #[doc(hidden)]
7704 pub unsafe fn Clear_load_with_dyn(
7705 &self,
7706 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7707 ) -> bool {
7708 load_dyn_name_atomic_ptr(get_proc_address, b"glClear\0", &self.glClear_p)
7709 }
7710 #[inline]
7711 #[doc(hidden)]
7712 pub fn Clear_is_loaded(&self) -> bool {
7713 !self.glClear_p.load(RELAX).is_null()
7714 }
7715 /// [glClearBufferData](http://docs.gl/gl4/glClearBufferData)(target, internalformat, format, type_, data)
7716 /// * `target` group: BufferStorageTarget
7717 /// * `internalformat` group: InternalFormat
7718 /// * `format` group: PixelFormat
7719 /// * `type_` group: PixelType
7720 /// * `data` len: COMPSIZE(format,type)
7721 #[cfg_attr(feature = "inline", inline)]
7722 #[cfg_attr(feature = "inline_always", inline(always))]
7723 pub unsafe fn ClearBufferData(
7724 &self,
7725 target: GLenum,
7726 internalformat: GLenum,
7727 format: GLenum,
7728 type_: GLenum,
7729 data: *const c_void,
7730 ) {
7731 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7732 {
7733 trace!(
7734 "calling gl.ClearBufferData({:#X}, {:#X}, {:#X}, {:#X}, {:p});",
7735 target,
7736 internalformat,
7737 format,
7738 type_,
7739 data
7740 );
7741 }
7742 let out = call_atomic_ptr_5arg(
7743 "glClearBufferData",
7744 &self.glClearBufferData_p,
7745 target,
7746 internalformat,
7747 format,
7748 type_,
7749 data,
7750 );
7751 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7752 {
7753 self.automatic_glGetError("glClearBufferData");
7754 }
7755 out
7756 }
7757 #[doc(hidden)]
7758 pub unsafe fn ClearBufferData_load_with_dyn(
7759 &self,
7760 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7761 ) -> bool {
7762 load_dyn_name_atomic_ptr(
7763 get_proc_address,
7764 b"glClearBufferData\0",
7765 &self.glClearBufferData_p,
7766 )
7767 }
7768 #[inline]
7769 #[doc(hidden)]
7770 pub fn ClearBufferData_is_loaded(&self) -> bool {
7771 !self.glClearBufferData_p.load(RELAX).is_null()
7772 }
7773 /// [glClearBufferSubData](http://docs.gl/gl4/glClearBufferSubData)(target, internalformat, offset, size, format, type_, data)
7774 /// * `target` group: BufferTargetARB
7775 /// * `internalformat` group: InternalFormat
7776 /// * `offset` group: BufferOffset
7777 /// * `size` group: BufferSize
7778 /// * `format` group: PixelFormat
7779 /// * `type_` group: PixelType
7780 /// * `data` len: COMPSIZE(format,type)
7781 #[cfg_attr(feature = "inline", inline)]
7782 #[cfg_attr(feature = "inline_always", inline(always))]
7783 pub unsafe fn ClearBufferSubData(
7784 &self,
7785 target: GLenum,
7786 internalformat: GLenum,
7787 offset: GLintptr,
7788 size: GLsizeiptr,
7789 format: GLenum,
7790 type_: GLenum,
7791 data: *const c_void,
7792 ) {
7793 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7794 {
7795 trace!(
7796 "calling gl.ClearBufferSubData({:#X}, {:#X}, {:?}, {:?}, {:#X}, {:#X}, {:p});",
7797 target,
7798 internalformat,
7799 offset,
7800 size,
7801 format,
7802 type_,
7803 data
7804 );
7805 }
7806 let out = call_atomic_ptr_7arg(
7807 "glClearBufferSubData",
7808 &self.glClearBufferSubData_p,
7809 target,
7810 internalformat,
7811 offset,
7812 size,
7813 format,
7814 type_,
7815 data,
7816 );
7817 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7818 {
7819 self.automatic_glGetError("glClearBufferSubData");
7820 }
7821 out
7822 }
7823 #[doc(hidden)]
7824 pub unsafe fn ClearBufferSubData_load_with_dyn(
7825 &self,
7826 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7827 ) -> bool {
7828 load_dyn_name_atomic_ptr(
7829 get_proc_address,
7830 b"glClearBufferSubData\0",
7831 &self.glClearBufferSubData_p,
7832 )
7833 }
7834 #[inline]
7835 #[doc(hidden)]
7836 pub fn ClearBufferSubData_is_loaded(&self) -> bool {
7837 !self.glClearBufferSubData_p.load(RELAX).is_null()
7838 }
7839 /// [glClearBufferfi](http://docs.gl/gl4/glClearBuffer)(buffer, drawbuffer, depth, stencil)
7840 /// * `buffer` group: Buffer
7841 /// * `drawbuffer` group: DrawBufferName
7842 #[cfg_attr(feature = "inline", inline)]
7843 #[cfg_attr(feature = "inline_always", inline(always))]
7844 pub unsafe fn ClearBufferfi(
7845 &self,
7846 buffer: GLenum,
7847 drawbuffer: GLint,
7848 depth: GLfloat,
7849 stencil: GLint,
7850 ) {
7851 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7852 {
7853 trace!(
7854 "calling gl.ClearBufferfi({:#X}, {:?}, {:?}, {:?});",
7855 buffer,
7856 drawbuffer,
7857 depth,
7858 stencil
7859 );
7860 }
7861 let out = call_atomic_ptr_4arg(
7862 "glClearBufferfi",
7863 &self.glClearBufferfi_p,
7864 buffer,
7865 drawbuffer,
7866 depth,
7867 stencil,
7868 );
7869 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7870 {
7871 self.automatic_glGetError("glClearBufferfi");
7872 }
7873 out
7874 }
7875 #[doc(hidden)]
7876 pub unsafe fn ClearBufferfi_load_with_dyn(
7877 &self,
7878 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7879 ) -> bool {
7880 load_dyn_name_atomic_ptr(
7881 get_proc_address,
7882 b"glClearBufferfi\0",
7883 &self.glClearBufferfi_p,
7884 )
7885 }
7886 #[inline]
7887 #[doc(hidden)]
7888 pub fn ClearBufferfi_is_loaded(&self) -> bool {
7889 !self.glClearBufferfi_p.load(RELAX).is_null()
7890 }
7891 /// [glClearBufferfv](http://docs.gl/gl4/glClearBuffer)(buffer, drawbuffer, value)
7892 /// * `buffer` group: Buffer
7893 /// * `drawbuffer` group: DrawBufferName
7894 /// * `value` len: COMPSIZE(buffer)
7895 #[cfg_attr(feature = "inline", inline)]
7896 #[cfg_attr(feature = "inline_always", inline(always))]
7897 pub unsafe fn ClearBufferfv(
7898 &self,
7899 buffer: GLenum,
7900 drawbuffer: GLint,
7901 value: *const GLfloat,
7902 ) {
7903 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7904 {
7905 trace!(
7906 "calling gl.ClearBufferfv({:#X}, {:?}, {:p});",
7907 buffer,
7908 drawbuffer,
7909 value
7910 );
7911 }
7912 let out = call_atomic_ptr_3arg(
7913 "glClearBufferfv",
7914 &self.glClearBufferfv_p,
7915 buffer,
7916 drawbuffer,
7917 value,
7918 );
7919 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7920 {
7921 self.automatic_glGetError("glClearBufferfv");
7922 }
7923 out
7924 }
7925 #[doc(hidden)]
7926 pub unsafe fn ClearBufferfv_load_with_dyn(
7927 &self,
7928 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7929 ) -> bool {
7930 load_dyn_name_atomic_ptr(
7931 get_proc_address,
7932 b"glClearBufferfv\0",
7933 &self.glClearBufferfv_p,
7934 )
7935 }
7936 #[inline]
7937 #[doc(hidden)]
7938 pub fn ClearBufferfv_is_loaded(&self) -> bool {
7939 !self.glClearBufferfv_p.load(RELAX).is_null()
7940 }
7941 /// [glClearBufferiv](http://docs.gl/gl4/glClearBuffer)(buffer, drawbuffer, value)
7942 /// * `buffer` group: Buffer
7943 /// * `drawbuffer` group: DrawBufferName
7944 /// * `value` len: COMPSIZE(buffer)
7945 #[cfg_attr(feature = "inline", inline)]
7946 #[cfg_attr(feature = "inline_always", inline(always))]
7947 pub unsafe fn ClearBufferiv(&self, buffer: GLenum, drawbuffer: GLint, value: *const GLint) {
7948 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7949 {
7950 trace!(
7951 "calling gl.ClearBufferiv({:#X}, {:?}, {:p});",
7952 buffer,
7953 drawbuffer,
7954 value
7955 );
7956 }
7957 let out = call_atomic_ptr_3arg(
7958 "glClearBufferiv",
7959 &self.glClearBufferiv_p,
7960 buffer,
7961 drawbuffer,
7962 value,
7963 );
7964 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7965 {
7966 self.automatic_glGetError("glClearBufferiv");
7967 }
7968 out
7969 }
7970 #[doc(hidden)]
7971 pub unsafe fn ClearBufferiv_load_with_dyn(
7972 &self,
7973 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7974 ) -> bool {
7975 load_dyn_name_atomic_ptr(
7976 get_proc_address,
7977 b"glClearBufferiv\0",
7978 &self.glClearBufferiv_p,
7979 )
7980 }
7981 #[inline]
7982 #[doc(hidden)]
7983 pub fn ClearBufferiv_is_loaded(&self) -> bool {
7984 !self.glClearBufferiv_p.load(RELAX).is_null()
7985 }
7986 /// [glClearBufferuiv](http://docs.gl/gl4/glClearBuffer)(buffer, drawbuffer, value)
7987 /// * `buffer` group: Buffer
7988 /// * `drawbuffer` group: DrawBufferName
7989 /// * `value` len: COMPSIZE(buffer)
7990 #[cfg_attr(feature = "inline", inline)]
7991 #[cfg_attr(feature = "inline_always", inline(always))]
7992 pub unsafe fn ClearBufferuiv(
7993 &self,
7994 buffer: GLenum,
7995 drawbuffer: GLint,
7996 value: *const GLuint,
7997 ) {
7998 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7999 {
8000 trace!(
8001 "calling gl.ClearBufferuiv({:#X}, {:?}, {:p});",
8002 buffer,
8003 drawbuffer,
8004 value
8005 );
8006 }
8007 let out = call_atomic_ptr_3arg(
8008 "glClearBufferuiv",
8009 &self.glClearBufferuiv_p,
8010 buffer,
8011 drawbuffer,
8012 value,
8013 );
8014 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8015 {
8016 self.automatic_glGetError("glClearBufferuiv");
8017 }
8018 out
8019 }
8020 #[doc(hidden)]
8021 pub unsafe fn ClearBufferuiv_load_with_dyn(
8022 &self,
8023 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8024 ) -> bool {
8025 load_dyn_name_atomic_ptr(
8026 get_proc_address,
8027 b"glClearBufferuiv\0",
8028 &self.glClearBufferuiv_p,
8029 )
8030 }
8031 #[inline]
8032 #[doc(hidden)]
8033 pub fn ClearBufferuiv_is_loaded(&self) -> bool {
8034 !self.glClearBufferuiv_p.load(RELAX).is_null()
8035 }
8036 /// [glClearColor](http://docs.gl/gl4/glClearColor)(red, green, blue, alpha)
8037 /// * `red` group: ColorF
8038 /// * `green` group: ColorF
8039 /// * `blue` group: ColorF
8040 /// * `alpha` group: ColorF
8041 #[cfg_attr(feature = "inline", inline)]
8042 #[cfg_attr(feature = "inline_always", inline(always))]
8043 pub unsafe fn ClearColor(
8044 &self,
8045 red: GLfloat,
8046 green: GLfloat,
8047 blue: GLfloat,
8048 alpha: GLfloat,
8049 ) {
8050 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8051 {
8052 trace!(
8053 "calling gl.ClearColor({:?}, {:?}, {:?}, {:?});",
8054 red,
8055 green,
8056 blue,
8057 alpha
8058 );
8059 }
8060 let out = call_atomic_ptr_4arg(
8061 "glClearColor",
8062 &self.glClearColor_p,
8063 red,
8064 green,
8065 blue,
8066 alpha,
8067 );
8068 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8069 {
8070 self.automatic_glGetError("glClearColor");
8071 }
8072 out
8073 }
8074 #[doc(hidden)]
8075 pub unsafe fn ClearColor_load_with_dyn(
8076 &self,
8077 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8078 ) -> bool {
8079 load_dyn_name_atomic_ptr(get_proc_address, b"glClearColor\0", &self.glClearColor_p)
8080 }
8081 #[inline]
8082 #[doc(hidden)]
8083 pub fn ClearColor_is_loaded(&self) -> bool {
8084 !self.glClearColor_p.load(RELAX).is_null()
8085 }
8086 /// [glClearDepth](http://docs.gl/gl4/glClearDepth)(depth)
8087 #[cfg_attr(feature = "inline", inline)]
8088 #[cfg_attr(feature = "inline_always", inline(always))]
8089 pub unsafe fn ClearDepth(&self, depth: GLdouble) {
8090 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8091 {
8092 trace!("calling gl.ClearDepth({:?});", depth);
8093 }
8094 let out = call_atomic_ptr_1arg("glClearDepth", &self.glClearDepth_p, depth);
8095 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8096 {
8097 self.automatic_glGetError("glClearDepth");
8098 }
8099 out
8100 }
8101 #[doc(hidden)]
8102 pub unsafe fn ClearDepth_load_with_dyn(
8103 &self,
8104 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8105 ) -> bool {
8106 load_dyn_name_atomic_ptr(get_proc_address, b"glClearDepth\0", &self.glClearDepth_p)
8107 }
8108 #[inline]
8109 #[doc(hidden)]
8110 pub fn ClearDepth_is_loaded(&self) -> bool {
8111 !self.glClearDepth_p.load(RELAX).is_null()
8112 }
8113 /// [glClearDepthf](http://docs.gl/gl4/glClearDepth)(d)
8114 #[cfg_attr(feature = "inline", inline)]
8115 #[cfg_attr(feature = "inline_always", inline(always))]
8116 pub unsafe fn ClearDepthf(&self, d: GLfloat) {
8117 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8118 {
8119 trace!("calling gl.ClearDepthf({:?});", d);
8120 }
8121 let out = call_atomic_ptr_1arg("glClearDepthf", &self.glClearDepthf_p, d);
8122 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8123 {
8124 self.automatic_glGetError("glClearDepthf");
8125 }
8126 out
8127 }
8128 #[doc(hidden)]
8129 pub unsafe fn ClearDepthf_load_with_dyn(
8130 &self,
8131 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8132 ) -> bool {
8133 load_dyn_name_atomic_ptr(get_proc_address, b"glClearDepthf\0", &self.glClearDepthf_p)
8134 }
8135 #[inline]
8136 #[doc(hidden)]
8137 pub fn ClearDepthf_is_loaded(&self) -> bool {
8138 !self.glClearDepthf_p.load(RELAX).is_null()
8139 }
8140 /// [glClearNamedBufferData](http://docs.gl/gl4/glClearNamedBufferData)(buffer, internalformat, format, type_, data)
8141 /// * `internalformat` group: InternalFormat
8142 /// * `format` group: PixelFormat
8143 /// * `type_` group: PixelType
8144 #[cfg_attr(feature = "inline", inline)]
8145 #[cfg_attr(feature = "inline_always", inline(always))]
8146 pub unsafe fn ClearNamedBufferData(
8147 &self,
8148 buffer: GLuint,
8149 internalformat: GLenum,
8150 format: GLenum,
8151 type_: GLenum,
8152 data: *const c_void,
8153 ) {
8154 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8155 {
8156 trace!(
8157 "calling gl.ClearNamedBufferData({:?}, {:#X}, {:#X}, {:#X}, {:p});",
8158 buffer,
8159 internalformat,
8160 format,
8161 type_,
8162 data
8163 );
8164 }
8165 let out = call_atomic_ptr_5arg(
8166 "glClearNamedBufferData",
8167 &self.glClearNamedBufferData_p,
8168 buffer,
8169 internalformat,
8170 format,
8171 type_,
8172 data,
8173 );
8174 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8175 {
8176 self.automatic_glGetError("glClearNamedBufferData");
8177 }
8178 out
8179 }
8180 #[doc(hidden)]
8181 pub unsafe fn ClearNamedBufferData_load_with_dyn(
8182 &self,
8183 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8184 ) -> bool {
8185 load_dyn_name_atomic_ptr(
8186 get_proc_address,
8187 b"glClearNamedBufferData\0",
8188 &self.glClearNamedBufferData_p,
8189 )
8190 }
8191 #[inline]
8192 #[doc(hidden)]
8193 pub fn ClearNamedBufferData_is_loaded(&self) -> bool {
8194 !self.glClearNamedBufferData_p.load(RELAX).is_null()
8195 }
8196 /// [glClearNamedBufferSubData](http://docs.gl/gl4/glClearNamedBufferSubData)(buffer, internalformat, offset, size, format, type_, data)
8197 /// * `internalformat` group: InternalFormat
8198 /// * `size` group: BufferSize
8199 /// * `format` group: PixelFormat
8200 /// * `type_` group: PixelType
8201 #[cfg_attr(feature = "inline", inline)]
8202 #[cfg_attr(feature = "inline_always", inline(always))]
8203 pub unsafe fn ClearNamedBufferSubData(
8204 &self,
8205 buffer: GLuint,
8206 internalformat: GLenum,
8207 offset: GLintptr,
8208 size: GLsizeiptr,
8209 format: GLenum,
8210 type_: GLenum,
8211 data: *const c_void,
8212 ) {
8213 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8214 {
8215 trace!("calling gl.ClearNamedBufferSubData({:?}, {:#X}, {:?}, {:?}, {:#X}, {:#X}, {:p});", buffer, internalformat, offset, size, format, type_, data);
8216 }
8217 let out = call_atomic_ptr_7arg(
8218 "glClearNamedBufferSubData",
8219 &self.glClearNamedBufferSubData_p,
8220 buffer,
8221 internalformat,
8222 offset,
8223 size,
8224 format,
8225 type_,
8226 data,
8227 );
8228 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8229 {
8230 self.automatic_glGetError("glClearNamedBufferSubData");
8231 }
8232 out
8233 }
8234 #[doc(hidden)]
8235 pub unsafe fn ClearNamedBufferSubData_load_with_dyn(
8236 &self,
8237 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8238 ) -> bool {
8239 load_dyn_name_atomic_ptr(
8240 get_proc_address,
8241 b"glClearNamedBufferSubData\0",
8242 &self.glClearNamedBufferSubData_p,
8243 )
8244 }
8245 #[inline]
8246 #[doc(hidden)]
8247 pub fn ClearNamedBufferSubData_is_loaded(&self) -> bool {
8248 !self.glClearNamedBufferSubData_p.load(RELAX).is_null()
8249 }
8250 /// [glClearNamedFramebufferfi](http://docs.gl/gl4/glClearNamedFramebuffer)(framebuffer, buffer, drawbuffer, depth, stencil)
8251 /// * `buffer` group: Buffer
8252 #[cfg_attr(feature = "inline", inline)]
8253 #[cfg_attr(feature = "inline_always", inline(always))]
8254 pub unsafe fn ClearNamedFramebufferfi(
8255 &self,
8256 framebuffer: GLuint,
8257 buffer: GLenum,
8258 drawbuffer: GLint,
8259 depth: GLfloat,
8260 stencil: GLint,
8261 ) {
8262 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8263 {
8264 trace!(
8265 "calling gl.ClearNamedFramebufferfi({:?}, {:#X}, {:?}, {:?}, {:?});",
8266 framebuffer,
8267 buffer,
8268 drawbuffer,
8269 depth,
8270 stencil
8271 );
8272 }
8273 let out = call_atomic_ptr_5arg(
8274 "glClearNamedFramebufferfi",
8275 &self.glClearNamedFramebufferfi_p,
8276 framebuffer,
8277 buffer,
8278 drawbuffer,
8279 depth,
8280 stencil,
8281 );
8282 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8283 {
8284 self.automatic_glGetError("glClearNamedFramebufferfi");
8285 }
8286 out
8287 }
8288 #[doc(hidden)]
8289 pub unsafe fn ClearNamedFramebufferfi_load_with_dyn(
8290 &self,
8291 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8292 ) -> bool {
8293 load_dyn_name_atomic_ptr(
8294 get_proc_address,
8295 b"glClearNamedFramebufferfi\0",
8296 &self.glClearNamedFramebufferfi_p,
8297 )
8298 }
8299 #[inline]
8300 #[doc(hidden)]
8301 pub fn ClearNamedFramebufferfi_is_loaded(&self) -> bool {
8302 !self.glClearNamedFramebufferfi_p.load(RELAX).is_null()
8303 }
8304 /// [glClearNamedFramebufferfv](http://docs.gl/gl4/glClearNamedFramebuffer)(framebuffer, buffer, drawbuffer, value)
8305 /// * `buffer` group: Buffer
8306 #[cfg_attr(feature = "inline", inline)]
8307 #[cfg_attr(feature = "inline_always", inline(always))]
8308 pub unsafe fn ClearNamedFramebufferfv(
8309 &self,
8310 framebuffer: GLuint,
8311 buffer: GLenum,
8312 drawbuffer: GLint,
8313 value: *const GLfloat,
8314 ) {
8315 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8316 {
8317 trace!(
8318 "calling gl.ClearNamedFramebufferfv({:?}, {:#X}, {:?}, {:p});",
8319 framebuffer,
8320 buffer,
8321 drawbuffer,
8322 value
8323 );
8324 }
8325 let out = call_atomic_ptr_4arg(
8326 "glClearNamedFramebufferfv",
8327 &self.glClearNamedFramebufferfv_p,
8328 framebuffer,
8329 buffer,
8330 drawbuffer,
8331 value,
8332 );
8333 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8334 {
8335 self.automatic_glGetError("glClearNamedFramebufferfv");
8336 }
8337 out
8338 }
8339 #[doc(hidden)]
8340 pub unsafe fn ClearNamedFramebufferfv_load_with_dyn(
8341 &self,
8342 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8343 ) -> bool {
8344 load_dyn_name_atomic_ptr(
8345 get_proc_address,
8346 b"glClearNamedFramebufferfv\0",
8347 &self.glClearNamedFramebufferfv_p,
8348 )
8349 }
8350 #[inline]
8351 #[doc(hidden)]
8352 pub fn ClearNamedFramebufferfv_is_loaded(&self) -> bool {
8353 !self.glClearNamedFramebufferfv_p.load(RELAX).is_null()
8354 }
8355 /// [glClearNamedFramebufferiv](http://docs.gl/gl4/glClearNamedFramebuffer)(framebuffer, buffer, drawbuffer, value)
8356 /// * `buffer` group: Buffer
8357 #[cfg_attr(feature = "inline", inline)]
8358 #[cfg_attr(feature = "inline_always", inline(always))]
8359 pub unsafe fn ClearNamedFramebufferiv(
8360 &self,
8361 framebuffer: GLuint,
8362 buffer: GLenum,
8363 drawbuffer: GLint,
8364 value: *const GLint,
8365 ) {
8366 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8367 {
8368 trace!(
8369 "calling gl.ClearNamedFramebufferiv({:?}, {:#X}, {:?}, {:p});",
8370 framebuffer,
8371 buffer,
8372 drawbuffer,
8373 value
8374 );
8375 }
8376 let out = call_atomic_ptr_4arg(
8377 "glClearNamedFramebufferiv",
8378 &self.glClearNamedFramebufferiv_p,
8379 framebuffer,
8380 buffer,
8381 drawbuffer,
8382 value,
8383 );
8384 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8385 {
8386 self.automatic_glGetError("glClearNamedFramebufferiv");
8387 }
8388 out
8389 }
8390 #[doc(hidden)]
8391 pub unsafe fn ClearNamedFramebufferiv_load_with_dyn(
8392 &self,
8393 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8394 ) -> bool {
8395 load_dyn_name_atomic_ptr(
8396 get_proc_address,
8397 b"glClearNamedFramebufferiv\0",
8398 &self.glClearNamedFramebufferiv_p,
8399 )
8400 }
8401 #[inline]
8402 #[doc(hidden)]
8403 pub fn ClearNamedFramebufferiv_is_loaded(&self) -> bool {
8404 !self.glClearNamedFramebufferiv_p.load(RELAX).is_null()
8405 }
8406 /// [glClearNamedFramebufferuiv](http://docs.gl/gl4/glClearNamedFramebuffer)(framebuffer, buffer, drawbuffer, value)
8407 /// * `buffer` group: Buffer
8408 #[cfg_attr(feature = "inline", inline)]
8409 #[cfg_attr(feature = "inline_always", inline(always))]
8410 pub unsafe fn ClearNamedFramebufferuiv(
8411 &self,
8412 framebuffer: GLuint,
8413 buffer: GLenum,
8414 drawbuffer: GLint,
8415 value: *const GLuint,
8416 ) {
8417 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8418 {
8419 trace!(
8420 "calling gl.ClearNamedFramebufferuiv({:?}, {:#X}, {:?}, {:p});",
8421 framebuffer,
8422 buffer,
8423 drawbuffer,
8424 value
8425 );
8426 }
8427 let out = call_atomic_ptr_4arg(
8428 "glClearNamedFramebufferuiv",
8429 &self.glClearNamedFramebufferuiv_p,
8430 framebuffer,
8431 buffer,
8432 drawbuffer,
8433 value,
8434 );
8435 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8436 {
8437 self.automatic_glGetError("glClearNamedFramebufferuiv");
8438 }
8439 out
8440 }
8441 #[doc(hidden)]
8442 pub unsafe fn ClearNamedFramebufferuiv_load_with_dyn(
8443 &self,
8444 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8445 ) -> bool {
8446 load_dyn_name_atomic_ptr(
8447 get_proc_address,
8448 b"glClearNamedFramebufferuiv\0",
8449 &self.glClearNamedFramebufferuiv_p,
8450 )
8451 }
8452 #[inline]
8453 #[doc(hidden)]
8454 pub fn ClearNamedFramebufferuiv_is_loaded(&self) -> bool {
8455 !self.glClearNamedFramebufferuiv_p.load(RELAX).is_null()
8456 }
8457 /// [glClearStencil](http://docs.gl/gl4/glClearStencil)(s)
8458 /// * `s` group: StencilValue
8459 #[cfg_attr(feature = "inline", inline)]
8460 #[cfg_attr(feature = "inline_always", inline(always))]
8461 pub unsafe fn ClearStencil(&self, s: GLint) {
8462 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8463 {
8464 trace!("calling gl.ClearStencil({:?});", s);
8465 }
8466 let out = call_atomic_ptr_1arg("glClearStencil", &self.glClearStencil_p, s);
8467 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8468 {
8469 self.automatic_glGetError("glClearStencil");
8470 }
8471 out
8472 }
8473 #[doc(hidden)]
8474 pub unsafe fn ClearStencil_load_with_dyn(
8475 &self,
8476 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8477 ) -> bool {
8478 load_dyn_name_atomic_ptr(
8479 get_proc_address,
8480 b"glClearStencil\0",
8481 &self.glClearStencil_p,
8482 )
8483 }
8484 #[inline]
8485 #[doc(hidden)]
8486 pub fn ClearStencil_is_loaded(&self) -> bool {
8487 !self.glClearStencil_p.load(RELAX).is_null()
8488 }
8489 /// [glClearTexImage](http://docs.gl/gl4/glClearTexImage)(texture, level, format, type_, data)
8490 /// * `format` group: PixelFormat
8491 /// * `type_` group: PixelType
8492 /// * `data` len: COMPSIZE(format,type)
8493 #[cfg_attr(feature = "inline", inline)]
8494 #[cfg_attr(feature = "inline_always", inline(always))]
8495 pub unsafe fn ClearTexImage(
8496 &self,
8497 texture: GLuint,
8498 level: GLint,
8499 format: GLenum,
8500 type_: GLenum,
8501 data: *const c_void,
8502 ) {
8503 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8504 {
8505 trace!(
8506 "calling gl.ClearTexImage({:?}, {:?}, {:#X}, {:#X}, {:p});",
8507 texture,
8508 level,
8509 format,
8510 type_,
8511 data
8512 );
8513 }
8514 let out = call_atomic_ptr_5arg(
8515 "glClearTexImage",
8516 &self.glClearTexImage_p,
8517 texture,
8518 level,
8519 format,
8520 type_,
8521 data,
8522 );
8523 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8524 {
8525 self.automatic_glGetError("glClearTexImage");
8526 }
8527 out
8528 }
8529 #[doc(hidden)]
8530 pub unsafe fn ClearTexImage_load_with_dyn(
8531 &self,
8532 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8533 ) -> bool {
8534 load_dyn_name_atomic_ptr(
8535 get_proc_address,
8536 b"glClearTexImage\0",
8537 &self.glClearTexImage_p,
8538 )
8539 }
8540 #[inline]
8541 #[doc(hidden)]
8542 pub fn ClearTexImage_is_loaded(&self) -> bool {
8543 !self.glClearTexImage_p.load(RELAX).is_null()
8544 }
8545 /// [glClearTexSubImage](http://docs.gl/gl4/glClearTexSubImage)(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type_, data)
8546 /// * `format` group: PixelFormat
8547 /// * `type_` group: PixelType
8548 /// * `data` len: COMPSIZE(format,type)
8549 #[cfg_attr(feature = "inline", inline)]
8550 #[cfg_attr(feature = "inline_always", inline(always))]
8551 pub unsafe fn ClearTexSubImage(
8552 &self,
8553 texture: GLuint,
8554 level: GLint,
8555 xoffset: GLint,
8556 yoffset: GLint,
8557 zoffset: GLint,
8558 width: GLsizei,
8559 height: GLsizei,
8560 depth: GLsizei,
8561 format: GLenum,
8562 type_: GLenum,
8563 data: *const c_void,
8564 ) {
8565 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8566 {
8567 trace!("calling gl.ClearTexSubImage({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type_, data);
8568 }
8569 let out = call_atomic_ptr_11arg(
8570 "glClearTexSubImage",
8571 &self.glClearTexSubImage_p,
8572 texture,
8573 level,
8574 xoffset,
8575 yoffset,
8576 zoffset,
8577 width,
8578 height,
8579 depth,
8580 format,
8581 type_,
8582 data,
8583 );
8584 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8585 {
8586 self.automatic_glGetError("glClearTexSubImage");
8587 }
8588 out
8589 }
8590 #[doc(hidden)]
8591 pub unsafe fn ClearTexSubImage_load_with_dyn(
8592 &self,
8593 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8594 ) -> bool {
8595 load_dyn_name_atomic_ptr(
8596 get_proc_address,
8597 b"glClearTexSubImage\0",
8598 &self.glClearTexSubImage_p,
8599 )
8600 }
8601 #[inline]
8602 #[doc(hidden)]
8603 pub fn ClearTexSubImage_is_loaded(&self) -> bool {
8604 !self.glClearTexSubImage_p.load(RELAX).is_null()
8605 }
8606 /// [glClientWaitSync](http://docs.gl/gl4/glClientWaitSync)(sync, flags, timeout)
8607 /// * `sync` group: sync
8608 /// * `flags` group: SyncObjectMask
8609 /// * return value group: SyncStatus
8610 #[cfg_attr(feature = "inline", inline)]
8611 #[cfg_attr(feature = "inline_always", inline(always))]
8612 pub unsafe fn ClientWaitSync(
8613 &self,
8614 sync: GLsync,
8615 flags: GLbitfield,
8616 timeout: GLuint64,
8617 ) -> GLenum {
8618 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8619 {
8620 trace!(
8621 "calling gl.ClientWaitSync({:p}, {:?}, {:?});",
8622 sync,
8623 flags,
8624 timeout
8625 );
8626 }
8627 let out = call_atomic_ptr_3arg(
8628 "glClientWaitSync",
8629 &self.glClientWaitSync_p,
8630 sync,
8631 flags,
8632 timeout,
8633 );
8634 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8635 {
8636 self.automatic_glGetError("glClientWaitSync");
8637 }
8638 out
8639 }
8640 #[doc(hidden)]
8641 pub unsafe fn ClientWaitSync_load_with_dyn(
8642 &self,
8643 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8644 ) -> bool {
8645 load_dyn_name_atomic_ptr(
8646 get_proc_address,
8647 b"glClientWaitSync\0",
8648 &self.glClientWaitSync_p,
8649 )
8650 }
8651 #[inline]
8652 #[doc(hidden)]
8653 pub fn ClientWaitSync_is_loaded(&self) -> bool {
8654 !self.glClientWaitSync_p.load(RELAX).is_null()
8655 }
8656 /// [glClipControl](http://docs.gl/gl4/glClipControl)(origin, depth)
8657 /// * `origin` group: ClipControlOrigin
8658 /// * `depth` group: ClipControlDepth
8659 #[cfg_attr(feature = "inline", inline)]
8660 #[cfg_attr(feature = "inline_always", inline(always))]
8661 pub unsafe fn ClipControl(&self, origin: GLenum, depth: GLenum) {
8662 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8663 {
8664 trace!("calling gl.ClipControl({:#X}, {:#X});", origin, depth);
8665 }
8666 let out = call_atomic_ptr_2arg("glClipControl", &self.glClipControl_p, origin, depth);
8667 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8668 {
8669 self.automatic_glGetError("glClipControl");
8670 }
8671 out
8672 }
8673 #[doc(hidden)]
8674 pub unsafe fn ClipControl_load_with_dyn(
8675 &self,
8676 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8677 ) -> bool {
8678 load_dyn_name_atomic_ptr(get_proc_address, b"glClipControl\0", &self.glClipControl_p)
8679 }
8680 #[inline]
8681 #[doc(hidden)]
8682 pub fn ClipControl_is_loaded(&self) -> bool {
8683 !self.glClipControl_p.load(RELAX).is_null()
8684 }
8685 /// [glColorMask](http://docs.gl/gl4/glColorMask)(red, green, blue, alpha)
8686 #[cfg_attr(feature = "inline", inline)]
8687 #[cfg_attr(feature = "inline_always", inline(always))]
8688 pub unsafe fn ColorMask(
8689 &self,
8690 red: GLboolean,
8691 green: GLboolean,
8692 blue: GLboolean,
8693 alpha: GLboolean,
8694 ) {
8695 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8696 {
8697 trace!(
8698 "calling gl.ColorMask({:?}, {:?}, {:?}, {:?});",
8699 red,
8700 green,
8701 blue,
8702 alpha
8703 );
8704 }
8705 let out =
8706 call_atomic_ptr_4arg("glColorMask", &self.glColorMask_p, red, green, blue, alpha);
8707 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8708 {
8709 self.automatic_glGetError("glColorMask");
8710 }
8711 out
8712 }
8713 #[doc(hidden)]
8714 pub unsafe fn ColorMask_load_with_dyn(
8715 &self,
8716 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8717 ) -> bool {
8718 load_dyn_name_atomic_ptr(get_proc_address, b"glColorMask\0", &self.glColorMask_p)
8719 }
8720 #[inline]
8721 #[doc(hidden)]
8722 pub fn ColorMask_is_loaded(&self) -> bool {
8723 !self.glColorMask_p.load(RELAX).is_null()
8724 }
8725 /// [glColorMaskIndexedEXT](http://docs.gl/gl4/glColorMaskIndexedEXT)(index, r, g, b, a)
8726 /// * alias of: [`glColorMaski`]
8727 #[cfg_attr(feature = "inline", inline)]
8728 #[cfg_attr(feature = "inline_always", inline(always))]
8729 pub unsafe fn ColorMaskIndexedEXT(
8730 &self,
8731 index: GLuint,
8732 r: GLboolean,
8733 g: GLboolean,
8734 b: GLboolean,
8735 a: GLboolean,
8736 ) {
8737 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8738 {
8739 trace!(
8740 "calling gl.ColorMaskIndexedEXT({:?}, {:?}, {:?}, {:?}, {:?});",
8741 index,
8742 r,
8743 g,
8744 b,
8745 a
8746 );
8747 }
8748 let out = call_atomic_ptr_5arg(
8749 "glColorMaskIndexedEXT",
8750 &self.glColorMaskIndexedEXT_p,
8751 index,
8752 r,
8753 g,
8754 b,
8755 a,
8756 );
8757 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8758 {
8759 self.automatic_glGetError("glColorMaskIndexedEXT");
8760 }
8761 out
8762 }
8763
8764 #[doc(hidden)]
8765 pub unsafe fn ColorMaskIndexedEXT_load_with_dyn(
8766 &self,
8767 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8768 ) -> bool {
8769 load_dyn_name_atomic_ptr(
8770 get_proc_address,
8771 b"glColorMaskIndexedEXT\0",
8772 &self.glColorMaskIndexedEXT_p,
8773 )
8774 }
8775 #[inline]
8776 #[doc(hidden)]
8777
8778 pub fn ColorMaskIndexedEXT_is_loaded(&self) -> bool {
8779 !self.glColorMaskIndexedEXT_p.load(RELAX).is_null()
8780 }
8781 /// [glColorMaski](http://docs.gl/gl4/glColorMask)(index, r, g, b, a)
8782 #[cfg_attr(feature = "inline", inline)]
8783 #[cfg_attr(feature = "inline_always", inline(always))]
8784 pub unsafe fn ColorMaski(
8785 &self,
8786 index: GLuint,
8787 r: GLboolean,
8788 g: GLboolean,
8789 b: GLboolean,
8790 a: GLboolean,
8791 ) {
8792 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8793 {
8794 trace!(
8795 "calling gl.ColorMaski({:?}, {:?}, {:?}, {:?}, {:?});",
8796 index,
8797 r,
8798 g,
8799 b,
8800 a
8801 );
8802 }
8803 let out = call_atomic_ptr_5arg("glColorMaski", &self.glColorMaski_p, index, r, g, b, a);
8804 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8805 {
8806 self.automatic_glGetError("glColorMaski");
8807 }
8808 out
8809 }
8810 #[doc(hidden)]
8811 pub unsafe fn ColorMaski_load_with_dyn(
8812 &self,
8813 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8814 ) -> bool {
8815 load_dyn_name_atomic_ptr(get_proc_address, b"glColorMaski\0", &self.glColorMaski_p)
8816 }
8817 #[inline]
8818 #[doc(hidden)]
8819 pub fn ColorMaski_is_loaded(&self) -> bool {
8820 !self.glColorMaski_p.load(RELAX).is_null()
8821 }
8822 /// [glCompileShader](http://docs.gl/gl4/glCompileShader)(shader)
8823 #[cfg_attr(feature = "inline", inline)]
8824 #[cfg_attr(feature = "inline_always", inline(always))]
8825 pub unsafe fn CompileShader(&self, shader: GLuint) {
8826 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8827 {
8828 trace!("calling gl.CompileShader({:?});", shader);
8829 }
8830 let out = call_atomic_ptr_1arg("glCompileShader", &self.glCompileShader_p, shader);
8831 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8832 {
8833 self.automatic_glGetError("glCompileShader");
8834 }
8835 out
8836 }
8837 #[doc(hidden)]
8838 pub unsafe fn CompileShader_load_with_dyn(
8839 &self,
8840 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8841 ) -> bool {
8842 load_dyn_name_atomic_ptr(
8843 get_proc_address,
8844 b"glCompileShader\0",
8845 &self.glCompileShader_p,
8846 )
8847 }
8848 #[inline]
8849 #[doc(hidden)]
8850 pub fn CompileShader_is_loaded(&self) -> bool {
8851 !self.glCompileShader_p.load(RELAX).is_null()
8852 }
8853 /// [glCompressedTexImage1D](http://docs.gl/gl4/glCompressedTexImage1D)(target, level, internalformat, width, border, imageSize, data)
8854 /// * `target` group: TextureTarget
8855 /// * `level` group: CheckedInt32
8856 /// * `internalformat` group: InternalFormat
8857 /// * `border` group: CheckedInt32
8858 /// * `data` group: CompressedTextureARB
8859 /// * `data` len: imageSize
8860 #[cfg_attr(feature = "inline", inline)]
8861 #[cfg_attr(feature = "inline_always", inline(always))]
8862 pub unsafe fn CompressedTexImage1D(
8863 &self,
8864 target: GLenum,
8865 level: GLint,
8866 internalformat: GLenum,
8867 width: GLsizei,
8868 border: GLint,
8869 imageSize: GLsizei,
8870 data: *const c_void,
8871 ) {
8872 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8873 {
8874 trace!(
8875 "calling gl.CompressedTexImage1D({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:p});",
8876 target,
8877 level,
8878 internalformat,
8879 width,
8880 border,
8881 imageSize,
8882 data
8883 );
8884 }
8885 let out = call_atomic_ptr_7arg(
8886 "glCompressedTexImage1D",
8887 &self.glCompressedTexImage1D_p,
8888 target,
8889 level,
8890 internalformat,
8891 width,
8892 border,
8893 imageSize,
8894 data,
8895 );
8896 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8897 {
8898 self.automatic_glGetError("glCompressedTexImage1D");
8899 }
8900 out
8901 }
8902 #[doc(hidden)]
8903 pub unsafe fn CompressedTexImage1D_load_with_dyn(
8904 &self,
8905 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8906 ) -> bool {
8907 load_dyn_name_atomic_ptr(
8908 get_proc_address,
8909 b"glCompressedTexImage1D\0",
8910 &self.glCompressedTexImage1D_p,
8911 )
8912 }
8913 #[inline]
8914 #[doc(hidden)]
8915 pub fn CompressedTexImage1D_is_loaded(&self) -> bool {
8916 !self.glCompressedTexImage1D_p.load(RELAX).is_null()
8917 }
8918 /// [glCompressedTexImage2D](http://docs.gl/gl4/glCompressedTexImage2D)(target, level, internalformat, width, height, border, imageSize, data)
8919 /// * `target` group: TextureTarget
8920 /// * `level` group: CheckedInt32
8921 /// * `internalformat` group: InternalFormat
8922 /// * `border` group: CheckedInt32
8923 /// * `data` group: CompressedTextureARB
8924 /// * `data` len: imageSize
8925 #[cfg_attr(feature = "inline", inline)]
8926 #[cfg_attr(feature = "inline_always", inline(always))]
8927 pub unsafe fn CompressedTexImage2D(
8928 &self,
8929 target: GLenum,
8930 level: GLint,
8931 internalformat: GLenum,
8932 width: GLsizei,
8933 height: GLsizei,
8934 border: GLint,
8935 imageSize: GLsizei,
8936 data: *const c_void,
8937 ) {
8938 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8939 {
8940 trace!("calling gl.CompressedTexImage2D({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?}, {:p});", target, level, internalformat, width, height, border, imageSize, data);
8941 }
8942 let out = call_atomic_ptr_8arg(
8943 "glCompressedTexImage2D",
8944 &self.glCompressedTexImage2D_p,
8945 target,
8946 level,
8947 internalformat,
8948 width,
8949 height,
8950 border,
8951 imageSize,
8952 data,
8953 );
8954 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8955 {
8956 self.automatic_glGetError("glCompressedTexImage2D");
8957 }
8958 out
8959 }
8960 #[doc(hidden)]
8961 pub unsafe fn CompressedTexImage2D_load_with_dyn(
8962 &self,
8963 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8964 ) -> bool {
8965 load_dyn_name_atomic_ptr(
8966 get_proc_address,
8967 b"glCompressedTexImage2D\0",
8968 &self.glCompressedTexImage2D_p,
8969 )
8970 }
8971 #[inline]
8972 #[doc(hidden)]
8973 pub fn CompressedTexImage2D_is_loaded(&self) -> bool {
8974 !self.glCompressedTexImage2D_p.load(RELAX).is_null()
8975 }
8976 /// [glCompressedTexImage3D](http://docs.gl/gl4/glCompressedTexImage3D)(target, level, internalformat, width, height, depth, border, imageSize, data)
8977 /// * `target` group: TextureTarget
8978 /// * `level` group: CheckedInt32
8979 /// * `internalformat` group: InternalFormat
8980 /// * `border` group: CheckedInt32
8981 /// * `data` group: CompressedTextureARB
8982 /// * `data` len: imageSize
8983 #[cfg_attr(feature = "inline", inline)]
8984 #[cfg_attr(feature = "inline_always", inline(always))]
8985 pub unsafe fn CompressedTexImage3D(
8986 &self,
8987 target: GLenum,
8988 level: GLint,
8989 internalformat: GLenum,
8990 width: GLsizei,
8991 height: GLsizei,
8992 depth: GLsizei,
8993 border: GLint,
8994 imageSize: GLsizei,
8995 data: *const c_void,
8996 ) {
8997 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8998 {
8999 trace!("calling gl.CompressedTexImage3D({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:p});", target, level, internalformat, width, height, depth, border, imageSize, data);
9000 }
9001 let out = call_atomic_ptr_9arg(
9002 "glCompressedTexImage3D",
9003 &self.glCompressedTexImage3D_p,
9004 target,
9005 level,
9006 internalformat,
9007 width,
9008 height,
9009 depth,
9010 border,
9011 imageSize,
9012 data,
9013 );
9014 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9015 {
9016 self.automatic_glGetError("glCompressedTexImage3D");
9017 }
9018 out
9019 }
9020 #[doc(hidden)]
9021 pub unsafe fn CompressedTexImage3D_load_with_dyn(
9022 &self,
9023 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9024 ) -> bool {
9025 load_dyn_name_atomic_ptr(
9026 get_proc_address,
9027 b"glCompressedTexImage3D\0",
9028 &self.glCompressedTexImage3D_p,
9029 )
9030 }
9031 #[inline]
9032 #[doc(hidden)]
9033 pub fn CompressedTexImage3D_is_loaded(&self) -> bool {
9034 !self.glCompressedTexImage3D_p.load(RELAX).is_null()
9035 }
9036 /// [glCompressedTexSubImage1D](http://docs.gl/gl4/glCompressedTexSubImage1D)(target, level, xoffset, width, format, imageSize, data)
9037 /// * `target` group: TextureTarget
9038 /// * `level` group: CheckedInt32
9039 /// * `xoffset` group: CheckedInt32
9040 /// * `format` group: PixelFormat
9041 /// * `data` group: CompressedTextureARB
9042 /// * `data` len: imageSize
9043 #[cfg_attr(feature = "inline", inline)]
9044 #[cfg_attr(feature = "inline_always", inline(always))]
9045 pub unsafe fn CompressedTexSubImage1D(
9046 &self,
9047 target: GLenum,
9048 level: GLint,
9049 xoffset: GLint,
9050 width: GLsizei,
9051 format: GLenum,
9052 imageSize: GLsizei,
9053 data: *const c_void,
9054 ) {
9055 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9056 {
9057 trace!("calling gl.CompressedTexSubImage1D({:#X}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:p});", target, level, xoffset, width, format, imageSize, data);
9058 }
9059 let out = call_atomic_ptr_7arg(
9060 "glCompressedTexSubImage1D",
9061 &self.glCompressedTexSubImage1D_p,
9062 target,
9063 level,
9064 xoffset,
9065 width,
9066 format,
9067 imageSize,
9068 data,
9069 );
9070 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9071 {
9072 self.automatic_glGetError("glCompressedTexSubImage1D");
9073 }
9074 out
9075 }
9076 #[doc(hidden)]
9077 pub unsafe fn CompressedTexSubImage1D_load_with_dyn(
9078 &self,
9079 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9080 ) -> bool {
9081 load_dyn_name_atomic_ptr(
9082 get_proc_address,
9083 b"glCompressedTexSubImage1D\0",
9084 &self.glCompressedTexSubImage1D_p,
9085 )
9086 }
9087 #[inline]
9088 #[doc(hidden)]
9089 pub fn CompressedTexSubImage1D_is_loaded(&self) -> bool {
9090 !self.glCompressedTexSubImage1D_p.load(RELAX).is_null()
9091 }
9092 /// [glCompressedTexSubImage2D](http://docs.gl/gl4/glCompressedTexSubImage2D)(target, level, xoffset, yoffset, width, height, format, imageSize, data)
9093 /// * `target` group: TextureTarget
9094 /// * `level` group: CheckedInt32
9095 /// * `xoffset` group: CheckedInt32
9096 /// * `yoffset` group: CheckedInt32
9097 /// * `format` group: PixelFormat
9098 /// * `data` group: CompressedTextureARB
9099 /// * `data` len: imageSize
9100 #[cfg_attr(feature = "inline", inline)]
9101 #[cfg_attr(feature = "inline_always", inline(always))]
9102 pub unsafe fn CompressedTexSubImage2D(
9103 &self,
9104 target: GLenum,
9105 level: GLint,
9106 xoffset: GLint,
9107 yoffset: GLint,
9108 width: GLsizei,
9109 height: GLsizei,
9110 format: GLenum,
9111 imageSize: GLsizei,
9112 data: *const c_void,
9113 ) {
9114 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9115 {
9116 trace!("calling gl.CompressedTexSubImage2D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:p});", target, level, xoffset, yoffset, width, height, format, imageSize, data);
9117 }
9118 let out = call_atomic_ptr_9arg(
9119 "glCompressedTexSubImage2D",
9120 &self.glCompressedTexSubImage2D_p,
9121 target,
9122 level,
9123 xoffset,
9124 yoffset,
9125 width,
9126 height,
9127 format,
9128 imageSize,
9129 data,
9130 );
9131 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9132 {
9133 self.automatic_glGetError("glCompressedTexSubImage2D");
9134 }
9135 out
9136 }
9137 #[doc(hidden)]
9138 pub unsafe fn CompressedTexSubImage2D_load_with_dyn(
9139 &self,
9140 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9141 ) -> bool {
9142 load_dyn_name_atomic_ptr(
9143 get_proc_address,
9144 b"glCompressedTexSubImage2D\0",
9145 &self.glCompressedTexSubImage2D_p,
9146 )
9147 }
9148 #[inline]
9149 #[doc(hidden)]
9150 pub fn CompressedTexSubImage2D_is_loaded(&self) -> bool {
9151 !self.glCompressedTexSubImage2D_p.load(RELAX).is_null()
9152 }
9153 /// [glCompressedTexSubImage3D](http://docs.gl/gl4/glCompressedTexSubImage3D)(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data)
9154 /// * `target` group: TextureTarget
9155 /// * `level` group: CheckedInt32
9156 /// * `xoffset` group: CheckedInt32
9157 /// * `yoffset` group: CheckedInt32
9158 /// * `zoffset` group: CheckedInt32
9159 /// * `format` group: PixelFormat
9160 /// * `data` group: CompressedTextureARB
9161 /// * `data` len: imageSize
9162 #[cfg_attr(feature = "inline", inline)]
9163 #[cfg_attr(feature = "inline_always", inline(always))]
9164 pub unsafe fn CompressedTexSubImage3D(
9165 &self,
9166 target: GLenum,
9167 level: GLint,
9168 xoffset: GLint,
9169 yoffset: GLint,
9170 zoffset: GLint,
9171 width: GLsizei,
9172 height: GLsizei,
9173 depth: GLsizei,
9174 format: GLenum,
9175 imageSize: GLsizei,
9176 data: *const c_void,
9177 ) {
9178 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9179 {
9180 trace!("calling gl.CompressedTexSubImage3D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:p});", target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
9181 }
9182 let out = call_atomic_ptr_11arg(
9183 "glCompressedTexSubImage3D",
9184 &self.glCompressedTexSubImage3D_p,
9185 target,
9186 level,
9187 xoffset,
9188 yoffset,
9189 zoffset,
9190 width,
9191 height,
9192 depth,
9193 format,
9194 imageSize,
9195 data,
9196 );
9197 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9198 {
9199 self.automatic_glGetError("glCompressedTexSubImage3D");
9200 }
9201 out
9202 }
9203 #[doc(hidden)]
9204 pub unsafe fn CompressedTexSubImage3D_load_with_dyn(
9205 &self,
9206 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9207 ) -> bool {
9208 load_dyn_name_atomic_ptr(
9209 get_proc_address,
9210 b"glCompressedTexSubImage3D\0",
9211 &self.glCompressedTexSubImage3D_p,
9212 )
9213 }
9214 #[inline]
9215 #[doc(hidden)]
9216 pub fn CompressedTexSubImage3D_is_loaded(&self) -> bool {
9217 !self.glCompressedTexSubImage3D_p.load(RELAX).is_null()
9218 }
9219 /// [glCompressedTextureSubImage1D](http://docs.gl/gl4/glCompressedTextureSubImage1D)(texture, level, xoffset, width, format, imageSize, data)
9220 /// * `format` group: PixelFormat
9221 #[cfg_attr(feature = "inline", inline)]
9222 #[cfg_attr(feature = "inline_always", inline(always))]
9223 pub unsafe fn CompressedTextureSubImage1D(
9224 &self,
9225 texture: GLuint,
9226 level: GLint,
9227 xoffset: GLint,
9228 width: GLsizei,
9229 format: GLenum,
9230 imageSize: GLsizei,
9231 data: *const c_void,
9232 ) {
9233 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9234 {
9235 trace!("calling gl.CompressedTextureSubImage1D({:?}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:p});", texture, level, xoffset, width, format, imageSize, data);
9236 }
9237 let out = call_atomic_ptr_7arg(
9238 "glCompressedTextureSubImage1D",
9239 &self.glCompressedTextureSubImage1D_p,
9240 texture,
9241 level,
9242 xoffset,
9243 width,
9244 format,
9245 imageSize,
9246 data,
9247 );
9248 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9249 {
9250 self.automatic_glGetError("glCompressedTextureSubImage1D");
9251 }
9252 out
9253 }
9254 #[doc(hidden)]
9255 pub unsafe fn CompressedTextureSubImage1D_load_with_dyn(
9256 &self,
9257 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9258 ) -> bool {
9259 load_dyn_name_atomic_ptr(
9260 get_proc_address,
9261 b"glCompressedTextureSubImage1D\0",
9262 &self.glCompressedTextureSubImage1D_p,
9263 )
9264 }
9265 #[inline]
9266 #[doc(hidden)]
9267 pub fn CompressedTextureSubImage1D_is_loaded(&self) -> bool {
9268 !self.glCompressedTextureSubImage1D_p.load(RELAX).is_null()
9269 }
9270 /// [glCompressedTextureSubImage2D](http://docs.gl/gl4/glCompressedTextureSubImage2D)(texture, level, xoffset, yoffset, width, height, format, imageSize, data)
9271 /// * `format` group: PixelFormat
9272 #[cfg_attr(feature = "inline", inline)]
9273 #[cfg_attr(feature = "inline_always", inline(always))]
9274 pub unsafe fn CompressedTextureSubImage2D(
9275 &self,
9276 texture: GLuint,
9277 level: GLint,
9278 xoffset: GLint,
9279 yoffset: GLint,
9280 width: GLsizei,
9281 height: GLsizei,
9282 format: GLenum,
9283 imageSize: GLsizei,
9284 data: *const c_void,
9285 ) {
9286 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9287 {
9288 trace!("calling gl.CompressedTextureSubImage2D({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:p});", texture, level, xoffset, yoffset, width, height, format, imageSize, data);
9289 }
9290 let out = call_atomic_ptr_9arg(
9291 "glCompressedTextureSubImage2D",
9292 &self.glCompressedTextureSubImage2D_p,
9293 texture,
9294 level,
9295 xoffset,
9296 yoffset,
9297 width,
9298 height,
9299 format,
9300 imageSize,
9301 data,
9302 );
9303 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9304 {
9305 self.automatic_glGetError("glCompressedTextureSubImage2D");
9306 }
9307 out
9308 }
9309 #[doc(hidden)]
9310 pub unsafe fn CompressedTextureSubImage2D_load_with_dyn(
9311 &self,
9312 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9313 ) -> bool {
9314 load_dyn_name_atomic_ptr(
9315 get_proc_address,
9316 b"glCompressedTextureSubImage2D\0",
9317 &self.glCompressedTextureSubImage2D_p,
9318 )
9319 }
9320 #[inline]
9321 #[doc(hidden)]
9322 pub fn CompressedTextureSubImage2D_is_loaded(&self) -> bool {
9323 !self.glCompressedTextureSubImage2D_p.load(RELAX).is_null()
9324 }
9325 /// [glCompressedTextureSubImage3D](http://docs.gl/gl4/glCompressedTextureSubImage3D)(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data)
9326 /// * `format` group: PixelFormat
9327 #[cfg_attr(feature = "inline", inline)]
9328 #[cfg_attr(feature = "inline_always", inline(always))]
9329 pub unsafe fn CompressedTextureSubImage3D(
9330 &self,
9331 texture: GLuint,
9332 level: GLint,
9333 xoffset: GLint,
9334 yoffset: GLint,
9335 zoffset: GLint,
9336 width: GLsizei,
9337 height: GLsizei,
9338 depth: GLsizei,
9339 format: GLenum,
9340 imageSize: GLsizei,
9341 data: *const c_void,
9342 ) {
9343 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9344 {
9345 trace!("calling gl.CompressedTextureSubImage3D({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:p});", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
9346 }
9347 let out = call_atomic_ptr_11arg(
9348 "glCompressedTextureSubImage3D",
9349 &self.glCompressedTextureSubImage3D_p,
9350 texture,
9351 level,
9352 xoffset,
9353 yoffset,
9354 zoffset,
9355 width,
9356 height,
9357 depth,
9358 format,
9359 imageSize,
9360 data,
9361 );
9362 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9363 {
9364 self.automatic_glGetError("glCompressedTextureSubImage3D");
9365 }
9366 out
9367 }
9368 #[doc(hidden)]
9369 pub unsafe fn CompressedTextureSubImage3D_load_with_dyn(
9370 &self,
9371 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9372 ) -> bool {
9373 load_dyn_name_atomic_ptr(
9374 get_proc_address,
9375 b"glCompressedTextureSubImage3D\0",
9376 &self.glCompressedTextureSubImage3D_p,
9377 )
9378 }
9379 #[inline]
9380 #[doc(hidden)]
9381 pub fn CompressedTextureSubImage3D_is_loaded(&self) -> bool {
9382 !self.glCompressedTextureSubImage3D_p.load(RELAX).is_null()
9383 }
9384 /// [glCopyBufferSubData](http://docs.gl/gl4/glCopyBufferSubData)(readTarget, writeTarget, readOffset, writeOffset, size)
9385 /// * `readTarget` group: CopyBufferSubDataTarget
9386 /// * `writeTarget` group: CopyBufferSubDataTarget
9387 /// * `readOffset` group: BufferOffset
9388 /// * `writeOffset` group: BufferOffset
9389 /// * `size` group: BufferSize
9390 #[cfg_attr(feature = "inline", inline)]
9391 #[cfg_attr(feature = "inline_always", inline(always))]
9392 pub unsafe fn CopyBufferSubData(
9393 &self,
9394 readTarget: GLenum,
9395 writeTarget: GLenum,
9396 readOffset: GLintptr,
9397 writeOffset: GLintptr,
9398 size: GLsizeiptr,
9399 ) {
9400 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9401 {
9402 trace!(
9403 "calling gl.CopyBufferSubData({:#X}, {:#X}, {:?}, {:?}, {:?});",
9404 readTarget,
9405 writeTarget,
9406 readOffset,
9407 writeOffset,
9408 size
9409 );
9410 }
9411 let out = call_atomic_ptr_5arg(
9412 "glCopyBufferSubData",
9413 &self.glCopyBufferSubData_p,
9414 readTarget,
9415 writeTarget,
9416 readOffset,
9417 writeOffset,
9418 size,
9419 );
9420 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9421 {
9422 self.automatic_glGetError("glCopyBufferSubData");
9423 }
9424 out
9425 }
9426 #[doc(hidden)]
9427 pub unsafe fn CopyBufferSubData_load_with_dyn(
9428 &self,
9429 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9430 ) -> bool {
9431 load_dyn_name_atomic_ptr(
9432 get_proc_address,
9433 b"glCopyBufferSubData\0",
9434 &self.glCopyBufferSubData_p,
9435 )
9436 }
9437 #[inline]
9438 #[doc(hidden)]
9439 pub fn CopyBufferSubData_is_loaded(&self) -> bool {
9440 !self.glCopyBufferSubData_p.load(RELAX).is_null()
9441 }
9442 /// [glCopyBufferSubDataNV](http://docs.gl/gl4/glCopyBufferSubDataNV)(readTarget, writeTarget, readOffset, writeOffset, size)
9443 /// * `readTarget` group: CopyBufferSubDataTarget
9444 /// * `writeTarget` group: CopyBufferSubDataTarget
9445 /// * `readOffset` group: BufferOffset
9446 /// * `writeOffset` group: BufferOffset
9447 /// * `size` group: BufferSize
9448 /// * alias of: [`glCopyBufferSubData`]
9449 #[cfg_attr(feature = "inline", inline)]
9450 #[cfg_attr(feature = "inline_always", inline(always))]
9451 pub unsafe fn CopyBufferSubDataNV(
9452 &self,
9453 readTarget: GLenum,
9454 writeTarget: GLenum,
9455 readOffset: GLintptr,
9456 writeOffset: GLintptr,
9457 size: GLsizeiptr,
9458 ) {
9459 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9460 {
9461 trace!(
9462 "calling gl.CopyBufferSubDataNV({:#X}, {:#X}, {:?}, {:?}, {:?});",
9463 readTarget,
9464 writeTarget,
9465 readOffset,
9466 writeOffset,
9467 size
9468 );
9469 }
9470 let out = call_atomic_ptr_5arg(
9471 "glCopyBufferSubDataNV",
9472 &self.glCopyBufferSubDataNV_p,
9473 readTarget,
9474 writeTarget,
9475 readOffset,
9476 writeOffset,
9477 size,
9478 );
9479 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9480 {
9481 self.automatic_glGetError("glCopyBufferSubDataNV");
9482 }
9483 out
9484 }
9485
9486 #[doc(hidden)]
9487 pub unsafe fn CopyBufferSubDataNV_load_with_dyn(
9488 &self,
9489 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9490 ) -> bool {
9491 load_dyn_name_atomic_ptr(
9492 get_proc_address,
9493 b"glCopyBufferSubDataNV\0",
9494 &self.glCopyBufferSubDataNV_p,
9495 )
9496 }
9497 #[inline]
9498 #[doc(hidden)]
9499
9500 pub fn CopyBufferSubDataNV_is_loaded(&self) -> bool {
9501 !self.glCopyBufferSubDataNV_p.load(RELAX).is_null()
9502 }
9503 /// [glCopyImageSubData](http://docs.gl/gl4/glCopyImageSubData)(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth)
9504 /// * `srcTarget` group: CopyImageSubDataTarget
9505 /// * `dstTarget` group: CopyImageSubDataTarget
9506 #[cfg_attr(feature = "inline", inline)]
9507 #[cfg_attr(feature = "inline_always", inline(always))]
9508 pub unsafe fn CopyImageSubData(
9509 &self,
9510 srcName: GLuint,
9511 srcTarget: GLenum,
9512 srcLevel: GLint,
9513 srcX: GLint,
9514 srcY: GLint,
9515 srcZ: GLint,
9516 dstName: GLuint,
9517 dstTarget: GLenum,
9518 dstLevel: GLint,
9519 dstX: GLint,
9520 dstY: GLint,
9521 dstZ: GLint,
9522 srcWidth: GLsizei,
9523 srcHeight: GLsizei,
9524 srcDepth: GLsizei,
9525 ) {
9526 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9527 {
9528 trace!("calling gl.CopyImageSubData({:?}, {:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
9529 }
9530 let out = call_atomic_ptr_15arg(
9531 "glCopyImageSubData",
9532 &self.glCopyImageSubData_p,
9533 srcName,
9534 srcTarget,
9535 srcLevel,
9536 srcX,
9537 srcY,
9538 srcZ,
9539 dstName,
9540 dstTarget,
9541 dstLevel,
9542 dstX,
9543 dstY,
9544 dstZ,
9545 srcWidth,
9546 srcHeight,
9547 srcDepth,
9548 );
9549 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9550 {
9551 self.automatic_glGetError("glCopyImageSubData");
9552 }
9553 out
9554 }
9555 #[doc(hidden)]
9556 pub unsafe fn CopyImageSubData_load_with_dyn(
9557 &self,
9558 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9559 ) -> bool {
9560 load_dyn_name_atomic_ptr(
9561 get_proc_address,
9562 b"glCopyImageSubData\0",
9563 &self.glCopyImageSubData_p,
9564 )
9565 }
9566 #[inline]
9567 #[doc(hidden)]
9568 pub fn CopyImageSubData_is_loaded(&self) -> bool {
9569 !self.glCopyImageSubData_p.load(RELAX).is_null()
9570 }
9571 /// [glCopyNamedBufferSubData](http://docs.gl/gl4/glCopyNamedBufferSubData)(readBuffer, writeBuffer, readOffset, writeOffset, size)
9572 /// * `size` group: BufferSize
9573 #[cfg_attr(feature = "inline", inline)]
9574 #[cfg_attr(feature = "inline_always", inline(always))]
9575 pub unsafe fn CopyNamedBufferSubData(
9576 &self,
9577 readBuffer: GLuint,
9578 writeBuffer: GLuint,
9579 readOffset: GLintptr,
9580 writeOffset: GLintptr,
9581 size: GLsizeiptr,
9582 ) {
9583 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9584 {
9585 trace!(
9586 "calling gl.CopyNamedBufferSubData({:?}, {:?}, {:?}, {:?}, {:?});",
9587 readBuffer,
9588 writeBuffer,
9589 readOffset,
9590 writeOffset,
9591 size
9592 );
9593 }
9594 let out = call_atomic_ptr_5arg(
9595 "glCopyNamedBufferSubData",
9596 &self.glCopyNamedBufferSubData_p,
9597 readBuffer,
9598 writeBuffer,
9599 readOffset,
9600 writeOffset,
9601 size,
9602 );
9603 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9604 {
9605 self.automatic_glGetError("glCopyNamedBufferSubData");
9606 }
9607 out
9608 }
9609 #[doc(hidden)]
9610 pub unsafe fn CopyNamedBufferSubData_load_with_dyn(
9611 &self,
9612 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9613 ) -> bool {
9614 load_dyn_name_atomic_ptr(
9615 get_proc_address,
9616 b"glCopyNamedBufferSubData\0",
9617 &self.glCopyNamedBufferSubData_p,
9618 )
9619 }
9620 #[inline]
9621 #[doc(hidden)]
9622 pub fn CopyNamedBufferSubData_is_loaded(&self) -> bool {
9623 !self.glCopyNamedBufferSubData_p.load(RELAX).is_null()
9624 }
9625 /// [glCopyTexImage1D](http://docs.gl/gl4/glCopyTexImage1D)(target, level, internalformat, x, y, width, border)
9626 /// * `target` group: TextureTarget
9627 /// * `level` group: CheckedInt32
9628 /// * `internalformat` group: InternalFormat
9629 /// * `x` group: WinCoord
9630 /// * `y` group: WinCoord
9631 /// * `border` group: CheckedInt32
9632 #[cfg_attr(feature = "inline", inline)]
9633 #[cfg_attr(feature = "inline_always", inline(always))]
9634 pub unsafe fn CopyTexImage1D(
9635 &self,
9636 target: GLenum,
9637 level: GLint,
9638 internalformat: GLenum,
9639 x: GLint,
9640 y: GLint,
9641 width: GLsizei,
9642 border: GLint,
9643 ) {
9644 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9645 {
9646 trace!(
9647 "calling gl.CopyTexImage1D({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?});",
9648 target,
9649 level,
9650 internalformat,
9651 x,
9652 y,
9653 width,
9654 border
9655 );
9656 }
9657 let out = call_atomic_ptr_7arg(
9658 "glCopyTexImage1D",
9659 &self.glCopyTexImage1D_p,
9660 target,
9661 level,
9662 internalformat,
9663 x,
9664 y,
9665 width,
9666 border,
9667 );
9668 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9669 {
9670 self.automatic_glGetError("glCopyTexImage1D");
9671 }
9672 out
9673 }
9674 #[doc(hidden)]
9675 pub unsafe fn CopyTexImage1D_load_with_dyn(
9676 &self,
9677 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9678 ) -> bool {
9679 load_dyn_name_atomic_ptr(
9680 get_proc_address,
9681 b"glCopyTexImage1D\0",
9682 &self.glCopyTexImage1D_p,
9683 )
9684 }
9685 #[inline]
9686 #[doc(hidden)]
9687 pub fn CopyTexImage1D_is_loaded(&self) -> bool {
9688 !self.glCopyTexImage1D_p.load(RELAX).is_null()
9689 }
9690 /// [glCopyTexImage2D](http://docs.gl/gl4/glCopyTexImage2D)(target, level, internalformat, x, y, width, height, border)
9691 /// * `target` group: TextureTarget
9692 /// * `level` group: CheckedInt32
9693 /// * `internalformat` group: InternalFormat
9694 /// * `x` group: WinCoord
9695 /// * `y` group: WinCoord
9696 /// * `border` group: CheckedInt32
9697 #[cfg_attr(feature = "inline", inline)]
9698 #[cfg_attr(feature = "inline_always", inline(always))]
9699 pub unsafe fn CopyTexImage2D(
9700 &self,
9701 target: GLenum,
9702 level: GLint,
9703 internalformat: GLenum,
9704 x: GLint,
9705 y: GLint,
9706 width: GLsizei,
9707 height: GLsizei,
9708 border: GLint,
9709 ) {
9710 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9711 {
9712 trace!(
9713 "calling gl.CopyTexImage2D({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?}, {:?});",
9714 target,
9715 level,
9716 internalformat,
9717 x,
9718 y,
9719 width,
9720 height,
9721 border
9722 );
9723 }
9724 let out = call_atomic_ptr_8arg(
9725 "glCopyTexImage2D",
9726 &self.glCopyTexImage2D_p,
9727 target,
9728 level,
9729 internalformat,
9730 x,
9731 y,
9732 width,
9733 height,
9734 border,
9735 );
9736 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9737 {
9738 self.automatic_glGetError("glCopyTexImage2D");
9739 }
9740 out
9741 }
9742 #[doc(hidden)]
9743 pub unsafe fn CopyTexImage2D_load_with_dyn(
9744 &self,
9745 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9746 ) -> bool {
9747 load_dyn_name_atomic_ptr(
9748 get_proc_address,
9749 b"glCopyTexImage2D\0",
9750 &self.glCopyTexImage2D_p,
9751 )
9752 }
9753 #[inline]
9754 #[doc(hidden)]
9755 pub fn CopyTexImage2D_is_loaded(&self) -> bool {
9756 !self.glCopyTexImage2D_p.load(RELAX).is_null()
9757 }
9758 /// [glCopyTexSubImage1D](http://docs.gl/gl4/glCopyTexSubImage1D)(target, level, xoffset, x, y, width)
9759 /// * `target` group: TextureTarget
9760 /// * `level` group: CheckedInt32
9761 /// * `xoffset` group: CheckedInt32
9762 /// * `x` group: WinCoord
9763 /// * `y` group: WinCoord
9764 #[cfg_attr(feature = "inline", inline)]
9765 #[cfg_attr(feature = "inline_always", inline(always))]
9766 pub unsafe fn CopyTexSubImage1D(
9767 &self,
9768 target: GLenum,
9769 level: GLint,
9770 xoffset: GLint,
9771 x: GLint,
9772 y: GLint,
9773 width: GLsizei,
9774 ) {
9775 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9776 {
9777 trace!(
9778 "calling gl.CopyTexSubImage1D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?});",
9779 target,
9780 level,
9781 xoffset,
9782 x,
9783 y,
9784 width
9785 );
9786 }
9787 let out = call_atomic_ptr_6arg(
9788 "glCopyTexSubImage1D",
9789 &self.glCopyTexSubImage1D_p,
9790 target,
9791 level,
9792 xoffset,
9793 x,
9794 y,
9795 width,
9796 );
9797 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9798 {
9799 self.automatic_glGetError("glCopyTexSubImage1D");
9800 }
9801 out
9802 }
9803 #[doc(hidden)]
9804 pub unsafe fn CopyTexSubImage1D_load_with_dyn(
9805 &self,
9806 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9807 ) -> bool {
9808 load_dyn_name_atomic_ptr(
9809 get_proc_address,
9810 b"glCopyTexSubImage1D\0",
9811 &self.glCopyTexSubImage1D_p,
9812 )
9813 }
9814 #[inline]
9815 #[doc(hidden)]
9816 pub fn CopyTexSubImage1D_is_loaded(&self) -> bool {
9817 !self.glCopyTexSubImage1D_p.load(RELAX).is_null()
9818 }
9819 /// [glCopyTexSubImage2D](http://docs.gl/gl4/glCopyTexSubImage2D)(target, level, xoffset, yoffset, x, y, width, height)
9820 /// * `target` group: TextureTarget
9821 /// * `level` group: CheckedInt32
9822 /// * `xoffset` group: CheckedInt32
9823 /// * `yoffset` group: CheckedInt32
9824 /// * `x` group: WinCoord
9825 /// * `y` group: WinCoord
9826 #[cfg_attr(feature = "inline", inline)]
9827 #[cfg_attr(feature = "inline_always", inline(always))]
9828 pub unsafe fn CopyTexSubImage2D(
9829 &self,
9830 target: GLenum,
9831 level: GLint,
9832 xoffset: GLint,
9833 yoffset: GLint,
9834 x: GLint,
9835 y: GLint,
9836 width: GLsizei,
9837 height: GLsizei,
9838 ) {
9839 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9840 {
9841 trace!("calling gl.CopyTexSubImage2D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", target, level, xoffset, yoffset, x, y, width, height);
9842 }
9843 let out = call_atomic_ptr_8arg(
9844 "glCopyTexSubImage2D",
9845 &self.glCopyTexSubImage2D_p,
9846 target,
9847 level,
9848 xoffset,
9849 yoffset,
9850 x,
9851 y,
9852 width,
9853 height,
9854 );
9855 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9856 {
9857 self.automatic_glGetError("glCopyTexSubImage2D");
9858 }
9859 out
9860 }
9861 #[doc(hidden)]
9862 pub unsafe fn CopyTexSubImage2D_load_with_dyn(
9863 &self,
9864 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9865 ) -> bool {
9866 load_dyn_name_atomic_ptr(
9867 get_proc_address,
9868 b"glCopyTexSubImage2D\0",
9869 &self.glCopyTexSubImage2D_p,
9870 )
9871 }
9872 #[inline]
9873 #[doc(hidden)]
9874 pub fn CopyTexSubImage2D_is_loaded(&self) -> bool {
9875 !self.glCopyTexSubImage2D_p.load(RELAX).is_null()
9876 }
9877 /// [glCopyTexSubImage3D](http://docs.gl/gl4/glCopyTexSubImage3D)(target, level, xoffset, yoffset, zoffset, x, y, width, height)
9878 /// * `target` group: TextureTarget
9879 /// * `level` group: CheckedInt32
9880 /// * `xoffset` group: CheckedInt32
9881 /// * `yoffset` group: CheckedInt32
9882 /// * `zoffset` group: CheckedInt32
9883 /// * `x` group: WinCoord
9884 /// * `y` group: WinCoord
9885 #[cfg_attr(feature = "inline", inline)]
9886 #[cfg_attr(feature = "inline_always", inline(always))]
9887 pub unsafe fn CopyTexSubImage3D(
9888 &self,
9889 target: GLenum,
9890 level: GLint,
9891 xoffset: GLint,
9892 yoffset: GLint,
9893 zoffset: GLint,
9894 x: GLint,
9895 y: GLint,
9896 width: GLsizei,
9897 height: GLsizei,
9898 ) {
9899 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9900 {
9901 trace!("calling gl.CopyTexSubImage3D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", target, level, xoffset, yoffset, zoffset, x, y, width, height);
9902 }
9903 let out = call_atomic_ptr_9arg(
9904 "glCopyTexSubImage3D",
9905 &self.glCopyTexSubImage3D_p,
9906 target,
9907 level,
9908 xoffset,
9909 yoffset,
9910 zoffset,
9911 x,
9912 y,
9913 width,
9914 height,
9915 );
9916 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9917 {
9918 self.automatic_glGetError("glCopyTexSubImage3D");
9919 }
9920 out
9921 }
9922 #[doc(hidden)]
9923 pub unsafe fn CopyTexSubImage3D_load_with_dyn(
9924 &self,
9925 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9926 ) -> bool {
9927 load_dyn_name_atomic_ptr(
9928 get_proc_address,
9929 b"glCopyTexSubImage3D\0",
9930 &self.glCopyTexSubImage3D_p,
9931 )
9932 }
9933 #[inline]
9934 #[doc(hidden)]
9935 pub fn CopyTexSubImage3D_is_loaded(&self) -> bool {
9936 !self.glCopyTexSubImage3D_p.load(RELAX).is_null()
9937 }
9938 /// [glCopyTextureSubImage1D](http://docs.gl/gl4/glCopyTextureSubImage1D)(texture, level, xoffset, x, y, width)
9939 #[cfg_attr(feature = "inline", inline)]
9940 #[cfg_attr(feature = "inline_always", inline(always))]
9941 pub unsafe fn CopyTextureSubImage1D(
9942 &self,
9943 texture: GLuint,
9944 level: GLint,
9945 xoffset: GLint,
9946 x: GLint,
9947 y: GLint,
9948 width: GLsizei,
9949 ) {
9950 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9951 {
9952 trace!(
9953 "calling gl.CopyTextureSubImage1D({:?}, {:?}, {:?}, {:?}, {:?}, {:?});",
9954 texture,
9955 level,
9956 xoffset,
9957 x,
9958 y,
9959 width
9960 );
9961 }
9962 let out = call_atomic_ptr_6arg(
9963 "glCopyTextureSubImage1D",
9964 &self.glCopyTextureSubImage1D_p,
9965 texture,
9966 level,
9967 xoffset,
9968 x,
9969 y,
9970 width,
9971 );
9972 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9973 {
9974 self.automatic_glGetError("glCopyTextureSubImage1D");
9975 }
9976 out
9977 }
9978 #[doc(hidden)]
9979 pub unsafe fn CopyTextureSubImage1D_load_with_dyn(
9980 &self,
9981 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9982 ) -> bool {
9983 load_dyn_name_atomic_ptr(
9984 get_proc_address,
9985 b"glCopyTextureSubImage1D\0",
9986 &self.glCopyTextureSubImage1D_p,
9987 )
9988 }
9989 #[inline]
9990 #[doc(hidden)]
9991 pub fn CopyTextureSubImage1D_is_loaded(&self) -> bool {
9992 !self.glCopyTextureSubImage1D_p.load(RELAX).is_null()
9993 }
9994 /// [glCopyTextureSubImage2D](http://docs.gl/gl4/glCopyTextureSubImage2D)(texture, level, xoffset, yoffset, x, y, width, height)
9995 #[cfg_attr(feature = "inline", inline)]
9996 #[cfg_attr(feature = "inline_always", inline(always))]
9997 pub unsafe fn CopyTextureSubImage2D(
9998 &self,
9999 texture: GLuint,
10000 level: GLint,
10001 xoffset: GLint,
10002 yoffset: GLint,
10003 x: GLint,
10004 y: GLint,
10005 width: GLsizei,
10006 height: GLsizei,
10007 ) {
10008 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10009 {
10010 trace!("calling gl.CopyTextureSubImage2D({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", texture, level, xoffset, yoffset, x, y, width, height);
10011 }
10012 let out = call_atomic_ptr_8arg(
10013 "glCopyTextureSubImage2D",
10014 &self.glCopyTextureSubImage2D_p,
10015 texture,
10016 level,
10017 xoffset,
10018 yoffset,
10019 x,
10020 y,
10021 width,
10022 height,
10023 );
10024 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10025 {
10026 self.automatic_glGetError("glCopyTextureSubImage2D");
10027 }
10028 out
10029 }
10030 #[doc(hidden)]
10031 pub unsafe fn CopyTextureSubImage2D_load_with_dyn(
10032 &self,
10033 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10034 ) -> bool {
10035 load_dyn_name_atomic_ptr(
10036 get_proc_address,
10037 b"glCopyTextureSubImage2D\0",
10038 &self.glCopyTextureSubImage2D_p,
10039 )
10040 }
10041 #[inline]
10042 #[doc(hidden)]
10043 pub fn CopyTextureSubImage2D_is_loaded(&self) -> bool {
10044 !self.glCopyTextureSubImage2D_p.load(RELAX).is_null()
10045 }
10046 /// [glCopyTextureSubImage3D](http://docs.gl/gl4/glCopyTextureSubImage3D)(texture, level, xoffset, yoffset, zoffset, x, y, width, height)
10047 #[cfg_attr(feature = "inline", inline)]
10048 #[cfg_attr(feature = "inline_always", inline(always))]
10049 pub unsafe fn CopyTextureSubImage3D(
10050 &self,
10051 texture: GLuint,
10052 level: GLint,
10053 xoffset: GLint,
10054 yoffset: GLint,
10055 zoffset: GLint,
10056 x: GLint,
10057 y: GLint,
10058 width: GLsizei,
10059 height: GLsizei,
10060 ) {
10061 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10062 {
10063 trace!("calling gl.CopyTextureSubImage3D({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", texture, level, xoffset, yoffset, zoffset, x, y, width, height);
10064 }
10065 let out = call_atomic_ptr_9arg(
10066 "glCopyTextureSubImage3D",
10067 &self.glCopyTextureSubImage3D_p,
10068 texture,
10069 level,
10070 xoffset,
10071 yoffset,
10072 zoffset,
10073 x,
10074 y,
10075 width,
10076 height,
10077 );
10078 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10079 {
10080 self.automatic_glGetError("glCopyTextureSubImage3D");
10081 }
10082 out
10083 }
10084 #[doc(hidden)]
10085 pub unsafe fn CopyTextureSubImage3D_load_with_dyn(
10086 &self,
10087 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10088 ) -> bool {
10089 load_dyn_name_atomic_ptr(
10090 get_proc_address,
10091 b"glCopyTextureSubImage3D\0",
10092 &self.glCopyTextureSubImage3D_p,
10093 )
10094 }
10095 #[inline]
10096 #[doc(hidden)]
10097 pub fn CopyTextureSubImage3D_is_loaded(&self) -> bool {
10098 !self.glCopyTextureSubImage3D_p.load(RELAX).is_null()
10099 }
10100 /// [glCreateBuffers](http://docs.gl/gl4/glCreateBuffers)(n, buffers)
10101 /// * `buffers` len: n
10102 #[cfg_attr(feature = "inline", inline)]
10103 #[cfg_attr(feature = "inline_always", inline(always))]
10104 pub unsafe fn CreateBuffers(&self, n: GLsizei, buffers: *mut GLuint) {
10105 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10106 {
10107 trace!("calling gl.CreateBuffers({:?}, {:p});", n, buffers);
10108 }
10109 let out = call_atomic_ptr_2arg("glCreateBuffers", &self.glCreateBuffers_p, n, buffers);
10110 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10111 {
10112 self.automatic_glGetError("glCreateBuffers");
10113 }
10114 out
10115 }
10116 #[doc(hidden)]
10117 pub unsafe fn CreateBuffers_load_with_dyn(
10118 &self,
10119 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10120 ) -> bool {
10121 load_dyn_name_atomic_ptr(
10122 get_proc_address,
10123 b"glCreateBuffers\0",
10124 &self.glCreateBuffers_p,
10125 )
10126 }
10127 #[inline]
10128 #[doc(hidden)]
10129 pub fn CreateBuffers_is_loaded(&self) -> bool {
10130 !self.glCreateBuffers_p.load(RELAX).is_null()
10131 }
10132 /// [glCreateFramebuffers](http://docs.gl/gl4/glCreateFramebuffers)(n, framebuffers)
10133 /// * `framebuffers` len: n
10134 #[cfg_attr(feature = "inline", inline)]
10135 #[cfg_attr(feature = "inline_always", inline(always))]
10136 pub unsafe fn CreateFramebuffers(&self, n: GLsizei, framebuffers: *mut GLuint) {
10137 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10138 {
10139 trace!(
10140 "calling gl.CreateFramebuffers({:?}, {:p});",
10141 n,
10142 framebuffers
10143 );
10144 }
10145 let out = call_atomic_ptr_2arg(
10146 "glCreateFramebuffers",
10147 &self.glCreateFramebuffers_p,
10148 n,
10149 framebuffers,
10150 );
10151 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10152 {
10153 self.automatic_glGetError("glCreateFramebuffers");
10154 }
10155 out
10156 }
10157 #[doc(hidden)]
10158 pub unsafe fn CreateFramebuffers_load_with_dyn(
10159 &self,
10160 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10161 ) -> bool {
10162 load_dyn_name_atomic_ptr(
10163 get_proc_address,
10164 b"glCreateFramebuffers\0",
10165 &self.glCreateFramebuffers_p,
10166 )
10167 }
10168 #[inline]
10169 #[doc(hidden)]
10170 pub fn CreateFramebuffers_is_loaded(&self) -> bool {
10171 !self.glCreateFramebuffers_p.load(RELAX).is_null()
10172 }
10173 /// [glCreateProgram](http://docs.gl/gl4/glCreateProgram)()
10174 #[cfg_attr(feature = "inline", inline)]
10175 #[cfg_attr(feature = "inline_always", inline(always))]
10176 pub unsafe fn CreateProgram(&self) -> GLuint {
10177 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10178 {
10179 trace!("calling gl.CreateProgram();",);
10180 }
10181 let out = call_atomic_ptr_0arg("glCreateProgram", &self.glCreateProgram_p);
10182 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10183 {
10184 self.automatic_glGetError("glCreateProgram");
10185 }
10186 out
10187 }
10188 #[doc(hidden)]
10189 pub unsafe fn CreateProgram_load_with_dyn(
10190 &self,
10191 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10192 ) -> bool {
10193 load_dyn_name_atomic_ptr(
10194 get_proc_address,
10195 b"glCreateProgram\0",
10196 &self.glCreateProgram_p,
10197 )
10198 }
10199 #[inline]
10200 #[doc(hidden)]
10201 pub fn CreateProgram_is_loaded(&self) -> bool {
10202 !self.glCreateProgram_p.load(RELAX).is_null()
10203 }
10204 /// [glCreateProgramPipelines](http://docs.gl/gl4/glCreateProgramPipelines)(n, pipelines)
10205 /// * `pipelines` len: n
10206 #[cfg_attr(feature = "inline", inline)]
10207 #[cfg_attr(feature = "inline_always", inline(always))]
10208 pub unsafe fn CreateProgramPipelines(&self, n: GLsizei, pipelines: *mut GLuint) {
10209 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10210 {
10211 trace!(
10212 "calling gl.CreateProgramPipelines({:?}, {:p});",
10213 n,
10214 pipelines
10215 );
10216 }
10217 let out = call_atomic_ptr_2arg(
10218 "glCreateProgramPipelines",
10219 &self.glCreateProgramPipelines_p,
10220 n,
10221 pipelines,
10222 );
10223 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10224 {
10225 self.automatic_glGetError("glCreateProgramPipelines");
10226 }
10227 out
10228 }
10229 #[doc(hidden)]
10230 pub unsafe fn CreateProgramPipelines_load_with_dyn(
10231 &self,
10232 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10233 ) -> bool {
10234 load_dyn_name_atomic_ptr(
10235 get_proc_address,
10236 b"glCreateProgramPipelines\0",
10237 &self.glCreateProgramPipelines_p,
10238 )
10239 }
10240 #[inline]
10241 #[doc(hidden)]
10242 pub fn CreateProgramPipelines_is_loaded(&self) -> bool {
10243 !self.glCreateProgramPipelines_p.load(RELAX).is_null()
10244 }
10245 /// [glCreateQueries](http://docs.gl/gl4/glCreateQueries)(target, n, ids)
10246 /// * `target` group: QueryTarget
10247 /// * `ids` len: n
10248 #[cfg_attr(feature = "inline", inline)]
10249 #[cfg_attr(feature = "inline_always", inline(always))]
10250 pub unsafe fn CreateQueries(&self, target: GLenum, n: GLsizei, ids: *mut GLuint) {
10251 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10252 {
10253 trace!(
10254 "calling gl.CreateQueries({:#X}, {:?}, {:p});",
10255 target,
10256 n,
10257 ids
10258 );
10259 }
10260 let out =
10261 call_atomic_ptr_3arg("glCreateQueries", &self.glCreateQueries_p, target, n, ids);
10262 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10263 {
10264 self.automatic_glGetError("glCreateQueries");
10265 }
10266 out
10267 }
10268 #[doc(hidden)]
10269 pub unsafe fn CreateQueries_load_with_dyn(
10270 &self,
10271 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10272 ) -> bool {
10273 load_dyn_name_atomic_ptr(
10274 get_proc_address,
10275 b"glCreateQueries\0",
10276 &self.glCreateQueries_p,
10277 )
10278 }
10279 #[inline]
10280 #[doc(hidden)]
10281 pub fn CreateQueries_is_loaded(&self) -> bool {
10282 !self.glCreateQueries_p.load(RELAX).is_null()
10283 }
10284 /// [glCreateRenderbuffers](http://docs.gl/gl4/glCreateRenderbuffers)(n, renderbuffers)
10285 /// * `renderbuffers` len: n
10286 #[cfg_attr(feature = "inline", inline)]
10287 #[cfg_attr(feature = "inline_always", inline(always))]
10288 pub unsafe fn CreateRenderbuffers(&self, n: GLsizei, renderbuffers: *mut GLuint) {
10289 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10290 {
10291 trace!(
10292 "calling gl.CreateRenderbuffers({:?}, {:p});",
10293 n,
10294 renderbuffers
10295 );
10296 }
10297 let out = call_atomic_ptr_2arg(
10298 "glCreateRenderbuffers",
10299 &self.glCreateRenderbuffers_p,
10300 n,
10301 renderbuffers,
10302 );
10303 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10304 {
10305 self.automatic_glGetError("glCreateRenderbuffers");
10306 }
10307 out
10308 }
10309 #[doc(hidden)]
10310 pub unsafe fn CreateRenderbuffers_load_with_dyn(
10311 &self,
10312 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10313 ) -> bool {
10314 load_dyn_name_atomic_ptr(
10315 get_proc_address,
10316 b"glCreateRenderbuffers\0",
10317 &self.glCreateRenderbuffers_p,
10318 )
10319 }
10320 #[inline]
10321 #[doc(hidden)]
10322 pub fn CreateRenderbuffers_is_loaded(&self) -> bool {
10323 !self.glCreateRenderbuffers_p.load(RELAX).is_null()
10324 }
10325 /// [glCreateSamplers](http://docs.gl/gl4/glCreateSamplers)(n, samplers)
10326 /// * `samplers` len: n
10327 #[cfg_attr(feature = "inline", inline)]
10328 #[cfg_attr(feature = "inline_always", inline(always))]
10329 pub unsafe fn CreateSamplers(&self, n: GLsizei, samplers: *mut GLuint) {
10330 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10331 {
10332 trace!("calling gl.CreateSamplers({:?}, {:p});", n, samplers);
10333 }
10334 let out =
10335 call_atomic_ptr_2arg("glCreateSamplers", &self.glCreateSamplers_p, n, samplers);
10336 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10337 {
10338 self.automatic_glGetError("glCreateSamplers");
10339 }
10340 out
10341 }
10342 #[doc(hidden)]
10343 pub unsafe fn CreateSamplers_load_with_dyn(
10344 &self,
10345 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10346 ) -> bool {
10347 load_dyn_name_atomic_ptr(
10348 get_proc_address,
10349 b"glCreateSamplers\0",
10350 &self.glCreateSamplers_p,
10351 )
10352 }
10353 #[inline]
10354 #[doc(hidden)]
10355 pub fn CreateSamplers_is_loaded(&self) -> bool {
10356 !self.glCreateSamplers_p.load(RELAX).is_null()
10357 }
10358 /// [glCreateShader](http://docs.gl/gl4/glCreateShader)(type_)
10359 /// * `type_` group: ShaderType
10360 #[cfg_attr(feature = "inline", inline)]
10361 #[cfg_attr(feature = "inline_always", inline(always))]
10362 pub unsafe fn CreateShader(&self, type_: GLenum) -> GLuint {
10363 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10364 {
10365 trace!("calling gl.CreateShader({:#X});", type_);
10366 }
10367 let out = call_atomic_ptr_1arg("glCreateShader", &self.glCreateShader_p, type_);
10368 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10369 {
10370 self.automatic_glGetError("glCreateShader");
10371 }
10372 out
10373 }
10374 #[doc(hidden)]
10375 pub unsafe fn CreateShader_load_with_dyn(
10376 &self,
10377 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10378 ) -> bool {
10379 load_dyn_name_atomic_ptr(
10380 get_proc_address,
10381 b"glCreateShader\0",
10382 &self.glCreateShader_p,
10383 )
10384 }
10385 #[inline]
10386 #[doc(hidden)]
10387 pub fn CreateShader_is_loaded(&self) -> bool {
10388 !self.glCreateShader_p.load(RELAX).is_null()
10389 }
10390 /// [glCreateShaderProgramv](http://docs.gl/gl4/glCreateShaderProgramv)(type_, count, strings)
10391 /// * `type_` group: ShaderType
10392 /// * `strings` len: count
10393 #[cfg_attr(feature = "inline", inline)]
10394 #[cfg_attr(feature = "inline_always", inline(always))]
10395 pub unsafe fn CreateShaderProgramv(
10396 &self,
10397 type_: GLenum,
10398 count: GLsizei,
10399 strings: *const *const GLchar,
10400 ) -> GLuint {
10401 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10402 {
10403 trace!(
10404 "calling gl.CreateShaderProgramv({:#X}, {:?}, {:p});",
10405 type_,
10406 count,
10407 strings
10408 );
10409 }
10410 let out = call_atomic_ptr_3arg(
10411 "glCreateShaderProgramv",
10412 &self.glCreateShaderProgramv_p,
10413 type_,
10414 count,
10415 strings,
10416 );
10417 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10418 {
10419 self.automatic_glGetError("glCreateShaderProgramv");
10420 }
10421 out
10422 }
10423 #[doc(hidden)]
10424 pub unsafe fn CreateShaderProgramv_load_with_dyn(
10425 &self,
10426 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10427 ) -> bool {
10428 load_dyn_name_atomic_ptr(
10429 get_proc_address,
10430 b"glCreateShaderProgramv\0",
10431 &self.glCreateShaderProgramv_p,
10432 )
10433 }
10434 #[inline]
10435 #[doc(hidden)]
10436 pub fn CreateShaderProgramv_is_loaded(&self) -> bool {
10437 !self.glCreateShaderProgramv_p.load(RELAX).is_null()
10438 }
10439 /// [glCreateTextures](http://docs.gl/gl4/glCreateTextures)(target, n, textures)
10440 /// * `target` group: TextureTarget
10441 /// * `textures` len: n
10442 #[cfg_attr(feature = "inline", inline)]
10443 #[cfg_attr(feature = "inline_always", inline(always))]
10444 pub unsafe fn CreateTextures(&self, target: GLenum, n: GLsizei, textures: *mut GLuint) {
10445 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10446 {
10447 trace!(
10448 "calling gl.CreateTextures({:#X}, {:?}, {:p});",
10449 target,
10450 n,
10451 textures
10452 );
10453 }
10454 let out = call_atomic_ptr_3arg(
10455 "glCreateTextures",
10456 &self.glCreateTextures_p,
10457 target,
10458 n,
10459 textures,
10460 );
10461 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10462 {
10463 self.automatic_glGetError("glCreateTextures");
10464 }
10465 out
10466 }
10467 #[doc(hidden)]
10468 pub unsafe fn CreateTextures_load_with_dyn(
10469 &self,
10470 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10471 ) -> bool {
10472 load_dyn_name_atomic_ptr(
10473 get_proc_address,
10474 b"glCreateTextures\0",
10475 &self.glCreateTextures_p,
10476 )
10477 }
10478 #[inline]
10479 #[doc(hidden)]
10480 pub fn CreateTextures_is_loaded(&self) -> bool {
10481 !self.glCreateTextures_p.load(RELAX).is_null()
10482 }
10483 /// [glCreateTransformFeedbacks](http://docs.gl/gl4/glCreateTransformFeedbacks)(n, ids)
10484 /// * `ids` len: n
10485 #[cfg_attr(feature = "inline", inline)]
10486 #[cfg_attr(feature = "inline_always", inline(always))]
10487 pub unsafe fn CreateTransformFeedbacks(&self, n: GLsizei, ids: *mut GLuint) {
10488 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10489 {
10490 trace!("calling gl.CreateTransformFeedbacks({:?}, {:p});", n, ids);
10491 }
10492 let out = call_atomic_ptr_2arg(
10493 "glCreateTransformFeedbacks",
10494 &self.glCreateTransformFeedbacks_p,
10495 n,
10496 ids,
10497 );
10498 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10499 {
10500 self.automatic_glGetError("glCreateTransformFeedbacks");
10501 }
10502 out
10503 }
10504 #[doc(hidden)]
10505 pub unsafe fn CreateTransformFeedbacks_load_with_dyn(
10506 &self,
10507 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10508 ) -> bool {
10509 load_dyn_name_atomic_ptr(
10510 get_proc_address,
10511 b"glCreateTransformFeedbacks\0",
10512 &self.glCreateTransformFeedbacks_p,
10513 )
10514 }
10515 #[inline]
10516 #[doc(hidden)]
10517 pub fn CreateTransformFeedbacks_is_loaded(&self) -> bool {
10518 !self.glCreateTransformFeedbacks_p.load(RELAX).is_null()
10519 }
10520 /// [glCreateVertexArrays](http://docs.gl/gl4/glCreateVertexArrays)(n, arrays)
10521 /// * `arrays` len: n
10522 #[cfg_attr(feature = "inline", inline)]
10523 #[cfg_attr(feature = "inline_always", inline(always))]
10524 pub unsafe fn CreateVertexArrays(&self, n: GLsizei, arrays: *mut GLuint) {
10525 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10526 {
10527 trace!("calling gl.CreateVertexArrays({:?}, {:p});", n, arrays);
10528 }
10529 let out = call_atomic_ptr_2arg(
10530 "glCreateVertexArrays",
10531 &self.glCreateVertexArrays_p,
10532 n,
10533 arrays,
10534 );
10535 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10536 {
10537 self.automatic_glGetError("glCreateVertexArrays");
10538 }
10539 out
10540 }
10541 #[doc(hidden)]
10542 pub unsafe fn CreateVertexArrays_load_with_dyn(
10543 &self,
10544 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10545 ) -> bool {
10546 load_dyn_name_atomic_ptr(
10547 get_proc_address,
10548 b"glCreateVertexArrays\0",
10549 &self.glCreateVertexArrays_p,
10550 )
10551 }
10552 #[inline]
10553 #[doc(hidden)]
10554 pub fn CreateVertexArrays_is_loaded(&self) -> bool {
10555 !self.glCreateVertexArrays_p.load(RELAX).is_null()
10556 }
10557 /// [glCullFace](http://docs.gl/gl4/glCullFace)(mode)
10558 /// * `mode` group: CullFaceMode
10559 #[cfg_attr(feature = "inline", inline)]
10560 #[cfg_attr(feature = "inline_always", inline(always))]
10561 pub unsafe fn CullFace(&self, mode: GLenum) {
10562 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10563 {
10564 trace!("calling gl.CullFace({:#X});", mode);
10565 }
10566 let out = call_atomic_ptr_1arg("glCullFace", &self.glCullFace_p, mode);
10567 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10568 {
10569 self.automatic_glGetError("glCullFace");
10570 }
10571 out
10572 }
10573 #[doc(hidden)]
10574 pub unsafe fn CullFace_load_with_dyn(
10575 &self,
10576 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10577 ) -> bool {
10578 load_dyn_name_atomic_ptr(get_proc_address, b"glCullFace\0", &self.glCullFace_p)
10579 }
10580 #[inline]
10581 #[doc(hidden)]
10582 pub fn CullFace_is_loaded(&self) -> bool {
10583 !self.glCullFace_p.load(RELAX).is_null()
10584 }
10585 /// [glDebugMessageCallback](http://docs.gl/gl4/glDebugMessageCallback)(callback, userParam)
10586 #[cfg_attr(feature = "inline", inline)]
10587 #[cfg_attr(feature = "inline_always", inline(always))]
10588 pub unsafe fn DebugMessageCallback(&self, callback: GLDEBUGPROC, userParam: *const c_void) {
10589 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10590 {
10591 trace!(
10592 "calling gl.DebugMessageCallback({:?}, {:p});",
10593 transmute::<_, Option<fn()>>(callback),
10594 userParam
10595 );
10596 }
10597 let out = call_atomic_ptr_2arg(
10598 "glDebugMessageCallback",
10599 &self.glDebugMessageCallback_p,
10600 callback,
10601 userParam,
10602 );
10603 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10604 {
10605 self.automatic_glGetError("glDebugMessageCallback");
10606 }
10607 out
10608 }
10609 #[doc(hidden)]
10610 pub unsafe fn DebugMessageCallback_load_with_dyn(
10611 &self,
10612 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10613 ) -> bool {
10614 load_dyn_name_atomic_ptr(
10615 get_proc_address,
10616 b"glDebugMessageCallback\0",
10617 &self.glDebugMessageCallback_p,
10618 )
10619 }
10620 #[inline]
10621 #[doc(hidden)]
10622 pub fn DebugMessageCallback_is_loaded(&self) -> bool {
10623 !self.glDebugMessageCallback_p.load(RELAX).is_null()
10624 }
10625 /// [glDebugMessageCallbackARB](http://docs.gl/gl4/glDebugMessageCallbackARB)(callback, userParam)
10626 /// * `userParam` len: COMPSIZE(callback)
10627 /// * alias of: [`glDebugMessageCallback`]
10628 #[cfg_attr(feature = "inline", inline)]
10629 #[cfg_attr(feature = "inline_always", inline(always))]
10630 pub unsafe fn DebugMessageCallbackARB(
10631 &self,
10632 callback: GLDEBUGPROCARB,
10633 userParam: *const c_void,
10634 ) {
10635 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10636 {
10637 trace!(
10638 "calling gl.DebugMessageCallbackARB({:?}, {:p});",
10639 transmute::<_, Option<fn()>>(callback),
10640 userParam
10641 );
10642 }
10643 let out = call_atomic_ptr_2arg(
10644 "glDebugMessageCallbackARB",
10645 &self.glDebugMessageCallbackARB_p,
10646 callback,
10647 userParam,
10648 );
10649 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10650 {
10651 self.automatic_glGetError("glDebugMessageCallbackARB");
10652 }
10653 out
10654 }
10655
10656 #[doc(hidden)]
10657 pub unsafe fn DebugMessageCallbackARB_load_with_dyn(
10658 &self,
10659 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10660 ) -> bool {
10661 load_dyn_name_atomic_ptr(
10662 get_proc_address,
10663 b"glDebugMessageCallbackARB\0",
10664 &self.glDebugMessageCallbackARB_p,
10665 )
10666 }
10667 #[inline]
10668 #[doc(hidden)]
10669
10670 pub fn DebugMessageCallbackARB_is_loaded(&self) -> bool {
10671 !self.glDebugMessageCallbackARB_p.load(RELAX).is_null()
10672 }
10673 /// [glDebugMessageCallbackKHR](http://docs.gl/gl4/glDebugMessageCallbackKHR)(callback, userParam)
10674 /// * alias of: [`glDebugMessageCallback`]
10675 #[cfg_attr(feature = "inline", inline)]
10676 #[cfg_attr(feature = "inline_always", inline(always))]
10677 pub unsafe fn DebugMessageCallbackKHR(
10678 &self,
10679 callback: GLDEBUGPROCKHR,
10680 userParam: *const c_void,
10681 ) {
10682 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10683 {
10684 trace!(
10685 "calling gl.DebugMessageCallbackKHR({:?}, {:p});",
10686 transmute::<_, Option<fn()>>(callback),
10687 userParam
10688 );
10689 }
10690 let out = call_atomic_ptr_2arg(
10691 "glDebugMessageCallbackKHR",
10692 &self.glDebugMessageCallbackKHR_p,
10693 callback,
10694 userParam,
10695 );
10696 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10697 {
10698 self.automatic_glGetError("glDebugMessageCallbackKHR");
10699 }
10700 out
10701 }
10702
10703 #[doc(hidden)]
10704 pub unsafe fn DebugMessageCallbackKHR_load_with_dyn(
10705 &self,
10706 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10707 ) -> bool {
10708 load_dyn_name_atomic_ptr(
10709 get_proc_address,
10710 b"glDebugMessageCallbackKHR\0",
10711 &self.glDebugMessageCallbackKHR_p,
10712 )
10713 }
10714 #[inline]
10715 #[doc(hidden)]
10716
10717 pub fn DebugMessageCallbackKHR_is_loaded(&self) -> bool {
10718 !self.glDebugMessageCallbackKHR_p.load(RELAX).is_null()
10719 }
10720 /// [glDebugMessageControl](http://docs.gl/gl4/glDebugMessageControl)(source, type_, severity, count, ids, enabled)
10721 /// * `source` group: DebugSource
10722 /// * `type_` group: DebugType
10723 /// * `severity` group: DebugSeverity
10724 /// * `ids` len: count
10725 #[cfg_attr(feature = "inline", inline)]
10726 #[cfg_attr(feature = "inline_always", inline(always))]
10727 pub unsafe fn DebugMessageControl(
10728 &self,
10729 source: GLenum,
10730 type_: GLenum,
10731 severity: GLenum,
10732 count: GLsizei,
10733 ids: *const GLuint,
10734 enabled: GLboolean,
10735 ) {
10736 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10737 {
10738 trace!(
10739 "calling gl.DebugMessageControl({:#X}, {:#X}, {:#X}, {:?}, {:p}, {:?});",
10740 source,
10741 type_,
10742 severity,
10743 count,
10744 ids,
10745 enabled
10746 );
10747 }
10748 let out = call_atomic_ptr_6arg(
10749 "glDebugMessageControl",
10750 &self.glDebugMessageControl_p,
10751 source,
10752 type_,
10753 severity,
10754 count,
10755 ids,
10756 enabled,
10757 );
10758 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10759 {
10760 self.automatic_glGetError("glDebugMessageControl");
10761 }
10762 out
10763 }
10764 #[doc(hidden)]
10765 pub unsafe fn DebugMessageControl_load_with_dyn(
10766 &self,
10767 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10768 ) -> bool {
10769 load_dyn_name_atomic_ptr(
10770 get_proc_address,
10771 b"glDebugMessageControl\0",
10772 &self.glDebugMessageControl_p,
10773 )
10774 }
10775 #[inline]
10776 #[doc(hidden)]
10777 pub fn DebugMessageControl_is_loaded(&self) -> bool {
10778 !self.glDebugMessageControl_p.load(RELAX).is_null()
10779 }
10780 /// [glDebugMessageControlARB](http://docs.gl/gl4/glDebugMessageControlARB)(source, type_, severity, count, ids, enabled)
10781 /// * `source` group: DebugSource
10782 /// * `type_` group: DebugType
10783 /// * `severity` group: DebugSeverity
10784 /// * `ids` len: count
10785 /// * alias of: [`glDebugMessageControl`]
10786 #[cfg_attr(feature = "inline", inline)]
10787 #[cfg_attr(feature = "inline_always", inline(always))]
10788 pub unsafe fn DebugMessageControlARB(
10789 &self,
10790 source: GLenum,
10791 type_: GLenum,
10792 severity: GLenum,
10793 count: GLsizei,
10794 ids: *const GLuint,
10795 enabled: GLboolean,
10796 ) {
10797 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10798 {
10799 trace!(
10800 "calling gl.DebugMessageControlARB({:#X}, {:#X}, {:#X}, {:?}, {:p}, {:?});",
10801 source,
10802 type_,
10803 severity,
10804 count,
10805 ids,
10806 enabled
10807 );
10808 }
10809 let out = call_atomic_ptr_6arg(
10810 "glDebugMessageControlARB",
10811 &self.glDebugMessageControlARB_p,
10812 source,
10813 type_,
10814 severity,
10815 count,
10816 ids,
10817 enabled,
10818 );
10819 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10820 {
10821 self.automatic_glGetError("glDebugMessageControlARB");
10822 }
10823 out
10824 }
10825
10826 #[doc(hidden)]
10827 pub unsafe fn DebugMessageControlARB_load_with_dyn(
10828 &self,
10829 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10830 ) -> bool {
10831 load_dyn_name_atomic_ptr(
10832 get_proc_address,
10833 b"glDebugMessageControlARB\0",
10834 &self.glDebugMessageControlARB_p,
10835 )
10836 }
10837 #[inline]
10838 #[doc(hidden)]
10839
10840 pub fn DebugMessageControlARB_is_loaded(&self) -> bool {
10841 !self.glDebugMessageControlARB_p.load(RELAX).is_null()
10842 }
10843 /// [glDebugMessageControlKHR](http://docs.gl/gl4/glDebugMessageControlKHR)(source, type_, severity, count, ids, enabled)
10844 /// * `source` group: DebugSource
10845 /// * `type_` group: DebugType
10846 /// * `severity` group: DebugSeverity
10847 /// * alias of: [`glDebugMessageControl`]
10848 #[cfg_attr(feature = "inline", inline)]
10849 #[cfg_attr(feature = "inline_always", inline(always))]
10850 pub unsafe fn DebugMessageControlKHR(
10851 &self,
10852 source: GLenum,
10853 type_: GLenum,
10854 severity: GLenum,
10855 count: GLsizei,
10856 ids: *const GLuint,
10857 enabled: GLboolean,
10858 ) {
10859 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10860 {
10861 trace!(
10862 "calling gl.DebugMessageControlKHR({:#X}, {:#X}, {:#X}, {:?}, {:p}, {:?});",
10863 source,
10864 type_,
10865 severity,
10866 count,
10867 ids,
10868 enabled
10869 );
10870 }
10871 let out = call_atomic_ptr_6arg(
10872 "glDebugMessageControlKHR",
10873 &self.glDebugMessageControlKHR_p,
10874 source,
10875 type_,
10876 severity,
10877 count,
10878 ids,
10879 enabled,
10880 );
10881 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10882 {
10883 self.automatic_glGetError("glDebugMessageControlKHR");
10884 }
10885 out
10886 }
10887
10888 #[doc(hidden)]
10889 pub unsafe fn DebugMessageControlKHR_load_with_dyn(
10890 &self,
10891 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10892 ) -> bool {
10893 load_dyn_name_atomic_ptr(
10894 get_proc_address,
10895 b"glDebugMessageControlKHR\0",
10896 &self.glDebugMessageControlKHR_p,
10897 )
10898 }
10899 #[inline]
10900 #[doc(hidden)]
10901
10902 pub fn DebugMessageControlKHR_is_loaded(&self) -> bool {
10903 !self.glDebugMessageControlKHR_p.load(RELAX).is_null()
10904 }
10905 /// [glDebugMessageInsert](http://docs.gl/gl4/glDebugMessageInsert)(source, type_, id, severity, length, buf)
10906 /// * `source` group: DebugSource
10907 /// * `type_` group: DebugType
10908 /// * `severity` group: DebugSeverity
10909 /// * `buf` len: COMPSIZE(buf,length)
10910 #[cfg_attr(feature = "inline", inline)]
10911 #[cfg_attr(feature = "inline_always", inline(always))]
10912 pub unsafe fn DebugMessageInsert(
10913 &self,
10914 source: GLenum,
10915 type_: GLenum,
10916 id: GLuint,
10917 severity: GLenum,
10918 length: GLsizei,
10919 buf: *const GLchar,
10920 ) {
10921 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10922 {
10923 trace!(
10924 "calling gl.DebugMessageInsert({:#X}, {:#X}, {:?}, {:#X}, {:?}, {:p});",
10925 source,
10926 type_,
10927 id,
10928 severity,
10929 length,
10930 buf
10931 );
10932 }
10933 let out = call_atomic_ptr_6arg(
10934 "glDebugMessageInsert",
10935 &self.glDebugMessageInsert_p,
10936 source,
10937 type_,
10938 id,
10939 severity,
10940 length,
10941 buf,
10942 );
10943 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10944 {
10945 self.automatic_glGetError("glDebugMessageInsert");
10946 }
10947 out
10948 }
10949 #[doc(hidden)]
10950 pub unsafe fn DebugMessageInsert_load_with_dyn(
10951 &self,
10952 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10953 ) -> bool {
10954 load_dyn_name_atomic_ptr(
10955 get_proc_address,
10956 b"glDebugMessageInsert\0",
10957 &self.glDebugMessageInsert_p,
10958 )
10959 }
10960 #[inline]
10961 #[doc(hidden)]
10962 pub fn DebugMessageInsert_is_loaded(&self) -> bool {
10963 !self.glDebugMessageInsert_p.load(RELAX).is_null()
10964 }
10965 /// [glDebugMessageInsertARB](http://docs.gl/gl4/glDebugMessageInsertARB)(source, type_, id, severity, length, buf)
10966 /// * `source` group: DebugSource
10967 /// * `type_` group: DebugType
10968 /// * `severity` group: DebugSeverity
10969 /// * `buf` len: length
10970 /// * alias of: [`glDebugMessageInsert`]
10971 #[cfg_attr(feature = "inline", inline)]
10972 #[cfg_attr(feature = "inline_always", inline(always))]
10973 pub unsafe fn DebugMessageInsertARB(
10974 &self,
10975 source: GLenum,
10976 type_: GLenum,
10977 id: GLuint,
10978 severity: GLenum,
10979 length: GLsizei,
10980 buf: *const GLchar,
10981 ) {
10982 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10983 {
10984 trace!(
10985 "calling gl.DebugMessageInsertARB({:#X}, {:#X}, {:?}, {:#X}, {:?}, {:p});",
10986 source,
10987 type_,
10988 id,
10989 severity,
10990 length,
10991 buf
10992 );
10993 }
10994 let out = call_atomic_ptr_6arg(
10995 "glDebugMessageInsertARB",
10996 &self.glDebugMessageInsertARB_p,
10997 source,
10998 type_,
10999 id,
11000 severity,
11001 length,
11002 buf,
11003 );
11004 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11005 {
11006 self.automatic_glGetError("glDebugMessageInsertARB");
11007 }
11008 out
11009 }
11010
11011 #[doc(hidden)]
11012 pub unsafe fn DebugMessageInsertARB_load_with_dyn(
11013 &self,
11014 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11015 ) -> bool {
11016 load_dyn_name_atomic_ptr(
11017 get_proc_address,
11018 b"glDebugMessageInsertARB\0",
11019 &self.glDebugMessageInsertARB_p,
11020 )
11021 }
11022 #[inline]
11023 #[doc(hidden)]
11024
11025 pub fn DebugMessageInsertARB_is_loaded(&self) -> bool {
11026 !self.glDebugMessageInsertARB_p.load(RELAX).is_null()
11027 }
11028 /// [glDebugMessageInsertKHR](http://docs.gl/gl4/glDebugMessageInsertKHR)(source, type_, id, severity, length, buf)
11029 /// * `source` group: DebugSource
11030 /// * `type_` group: DebugType
11031 /// * `severity` group: DebugSeverity
11032 /// * alias of: [`glDebugMessageInsert`]
11033 #[cfg_attr(feature = "inline", inline)]
11034 #[cfg_attr(feature = "inline_always", inline(always))]
11035 pub unsafe fn DebugMessageInsertKHR(
11036 &self,
11037 source: GLenum,
11038 type_: GLenum,
11039 id: GLuint,
11040 severity: GLenum,
11041 length: GLsizei,
11042 buf: *const GLchar,
11043 ) {
11044 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11045 {
11046 trace!(
11047 "calling gl.DebugMessageInsertKHR({:#X}, {:#X}, {:?}, {:#X}, {:?}, {:p});",
11048 source,
11049 type_,
11050 id,
11051 severity,
11052 length,
11053 buf
11054 );
11055 }
11056 let out = call_atomic_ptr_6arg(
11057 "glDebugMessageInsertKHR",
11058 &self.glDebugMessageInsertKHR_p,
11059 source,
11060 type_,
11061 id,
11062 severity,
11063 length,
11064 buf,
11065 );
11066 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11067 {
11068 self.automatic_glGetError("glDebugMessageInsertKHR");
11069 }
11070 out
11071 }
11072
11073 #[doc(hidden)]
11074 pub unsafe fn DebugMessageInsertKHR_load_with_dyn(
11075 &self,
11076 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11077 ) -> bool {
11078 load_dyn_name_atomic_ptr(
11079 get_proc_address,
11080 b"glDebugMessageInsertKHR\0",
11081 &self.glDebugMessageInsertKHR_p,
11082 )
11083 }
11084 #[inline]
11085 #[doc(hidden)]
11086
11087 pub fn DebugMessageInsertKHR_is_loaded(&self) -> bool {
11088 !self.glDebugMessageInsertKHR_p.load(RELAX).is_null()
11089 }
11090 /// [glDeleteBuffers](http://docs.gl/gl4/glDeleteBuffers)(n, buffers)
11091 /// * `buffers` len: n
11092 #[cfg_attr(feature = "inline", inline)]
11093 #[cfg_attr(feature = "inline_always", inline(always))]
11094 pub unsafe fn DeleteBuffers(&self, n: GLsizei, buffers: *const GLuint) {
11095 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11096 {
11097 trace!("calling gl.DeleteBuffers({:?}, {:p});", n, buffers);
11098 }
11099 let out = call_atomic_ptr_2arg("glDeleteBuffers", &self.glDeleteBuffers_p, n, buffers);
11100 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11101 {
11102 self.automatic_glGetError("glDeleteBuffers");
11103 }
11104 out
11105 }
11106 #[doc(hidden)]
11107 pub unsafe fn DeleteBuffers_load_with_dyn(
11108 &self,
11109 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11110 ) -> bool {
11111 load_dyn_name_atomic_ptr(
11112 get_proc_address,
11113 b"glDeleteBuffers\0",
11114 &self.glDeleteBuffers_p,
11115 )
11116 }
11117 #[inline]
11118 #[doc(hidden)]
11119 pub fn DeleteBuffers_is_loaded(&self) -> bool {
11120 !self.glDeleteBuffers_p.load(RELAX).is_null()
11121 }
11122 /// [glDeleteFramebuffers](http://docs.gl/gl4/glDeleteFramebuffers)(n, framebuffers)
11123 /// * `framebuffers` len: n
11124 #[cfg_attr(feature = "inline", inline)]
11125 #[cfg_attr(feature = "inline_always", inline(always))]
11126 pub unsafe fn DeleteFramebuffers(&self, n: GLsizei, framebuffers: *const GLuint) {
11127 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11128 {
11129 trace!(
11130 "calling gl.DeleteFramebuffers({:?}, {:p});",
11131 n,
11132 framebuffers
11133 );
11134 }
11135 let out = call_atomic_ptr_2arg(
11136 "glDeleteFramebuffers",
11137 &self.glDeleteFramebuffers_p,
11138 n,
11139 framebuffers,
11140 );
11141 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11142 {
11143 self.automatic_glGetError("glDeleteFramebuffers");
11144 }
11145 out
11146 }
11147 #[doc(hidden)]
11148 pub unsafe fn DeleteFramebuffers_load_with_dyn(
11149 &self,
11150 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11151 ) -> bool {
11152 load_dyn_name_atomic_ptr(
11153 get_proc_address,
11154 b"glDeleteFramebuffers\0",
11155 &self.glDeleteFramebuffers_p,
11156 )
11157 }
11158 #[inline]
11159 #[doc(hidden)]
11160 pub fn DeleteFramebuffers_is_loaded(&self) -> bool {
11161 !self.glDeleteFramebuffers_p.load(RELAX).is_null()
11162 }
11163 /// [glDeleteProgram](http://docs.gl/gl4/glDeleteProgram)(program)
11164 #[cfg_attr(feature = "inline", inline)]
11165 #[cfg_attr(feature = "inline_always", inline(always))]
11166 pub unsafe fn DeleteProgram(&self, program: GLuint) {
11167 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11168 {
11169 trace!("calling gl.DeleteProgram({:?});", program);
11170 }
11171 let out = call_atomic_ptr_1arg("glDeleteProgram", &self.glDeleteProgram_p, program);
11172 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11173 {
11174 self.automatic_glGetError("glDeleteProgram");
11175 }
11176 out
11177 }
11178 #[doc(hidden)]
11179 pub unsafe fn DeleteProgram_load_with_dyn(
11180 &self,
11181 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11182 ) -> bool {
11183 load_dyn_name_atomic_ptr(
11184 get_proc_address,
11185 b"glDeleteProgram\0",
11186 &self.glDeleteProgram_p,
11187 )
11188 }
11189 #[inline]
11190 #[doc(hidden)]
11191 pub fn DeleteProgram_is_loaded(&self) -> bool {
11192 !self.glDeleteProgram_p.load(RELAX).is_null()
11193 }
11194 /// [glDeleteProgramPipelines](http://docs.gl/gl4/glDeleteProgramPipelines)(n, pipelines)
11195 /// * `pipelines` len: n
11196 #[cfg_attr(feature = "inline", inline)]
11197 #[cfg_attr(feature = "inline_always", inline(always))]
11198 pub unsafe fn DeleteProgramPipelines(&self, n: GLsizei, pipelines: *const GLuint) {
11199 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11200 {
11201 trace!(
11202 "calling gl.DeleteProgramPipelines({:?}, {:p});",
11203 n,
11204 pipelines
11205 );
11206 }
11207 let out = call_atomic_ptr_2arg(
11208 "glDeleteProgramPipelines",
11209 &self.glDeleteProgramPipelines_p,
11210 n,
11211 pipelines,
11212 );
11213 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11214 {
11215 self.automatic_glGetError("glDeleteProgramPipelines");
11216 }
11217 out
11218 }
11219 #[doc(hidden)]
11220 pub unsafe fn DeleteProgramPipelines_load_with_dyn(
11221 &self,
11222 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11223 ) -> bool {
11224 load_dyn_name_atomic_ptr(
11225 get_proc_address,
11226 b"glDeleteProgramPipelines\0",
11227 &self.glDeleteProgramPipelines_p,
11228 )
11229 }
11230 #[inline]
11231 #[doc(hidden)]
11232 pub fn DeleteProgramPipelines_is_loaded(&self) -> bool {
11233 !self.glDeleteProgramPipelines_p.load(RELAX).is_null()
11234 }
11235 /// [glDeleteQueries](http://docs.gl/gl4/glDeleteQueries)(n, ids)
11236 /// * `ids` len: n
11237 #[cfg_attr(feature = "inline", inline)]
11238 #[cfg_attr(feature = "inline_always", inline(always))]
11239 pub unsafe fn DeleteQueries(&self, n: GLsizei, ids: *const GLuint) {
11240 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11241 {
11242 trace!("calling gl.DeleteQueries({:?}, {:p});", n, ids);
11243 }
11244 let out = call_atomic_ptr_2arg("glDeleteQueries", &self.glDeleteQueries_p, n, ids);
11245 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11246 {
11247 self.automatic_glGetError("glDeleteQueries");
11248 }
11249 out
11250 }
11251 #[doc(hidden)]
11252 pub unsafe fn DeleteQueries_load_with_dyn(
11253 &self,
11254 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11255 ) -> bool {
11256 load_dyn_name_atomic_ptr(
11257 get_proc_address,
11258 b"glDeleteQueries\0",
11259 &self.glDeleteQueries_p,
11260 )
11261 }
11262 #[inline]
11263 #[doc(hidden)]
11264 pub fn DeleteQueries_is_loaded(&self) -> bool {
11265 !self.glDeleteQueries_p.load(RELAX).is_null()
11266 }
11267 /// [glDeleteRenderbuffers](http://docs.gl/gl4/glDeleteRenderbuffers)(n, renderbuffers)
11268 /// * `renderbuffers` len: n
11269 #[cfg_attr(feature = "inline", inline)]
11270 #[cfg_attr(feature = "inline_always", inline(always))]
11271 pub unsafe fn DeleteRenderbuffers(&self, n: GLsizei, renderbuffers: *const GLuint) {
11272 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11273 {
11274 trace!(
11275 "calling gl.DeleteRenderbuffers({:?}, {:p});",
11276 n,
11277 renderbuffers
11278 );
11279 }
11280 let out = call_atomic_ptr_2arg(
11281 "glDeleteRenderbuffers",
11282 &self.glDeleteRenderbuffers_p,
11283 n,
11284 renderbuffers,
11285 );
11286 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11287 {
11288 self.automatic_glGetError("glDeleteRenderbuffers");
11289 }
11290 out
11291 }
11292 #[doc(hidden)]
11293 pub unsafe fn DeleteRenderbuffers_load_with_dyn(
11294 &self,
11295 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11296 ) -> bool {
11297 load_dyn_name_atomic_ptr(
11298 get_proc_address,
11299 b"glDeleteRenderbuffers\0",
11300 &self.glDeleteRenderbuffers_p,
11301 )
11302 }
11303 #[inline]
11304 #[doc(hidden)]
11305 pub fn DeleteRenderbuffers_is_loaded(&self) -> bool {
11306 !self.glDeleteRenderbuffers_p.load(RELAX).is_null()
11307 }
11308 /// [glDeleteSamplers](http://docs.gl/gl4/glDeleteSamplers)(count, samplers)
11309 /// * `samplers` len: count
11310 #[cfg_attr(feature = "inline", inline)]
11311 #[cfg_attr(feature = "inline_always", inline(always))]
11312 pub unsafe fn DeleteSamplers(&self, count: GLsizei, samplers: *const GLuint) {
11313 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11314 {
11315 trace!("calling gl.DeleteSamplers({:?}, {:p});", count, samplers);
11316 }
11317 let out = call_atomic_ptr_2arg(
11318 "glDeleteSamplers",
11319 &self.glDeleteSamplers_p,
11320 count,
11321 samplers,
11322 );
11323 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11324 {
11325 self.automatic_glGetError("glDeleteSamplers");
11326 }
11327 out
11328 }
11329 #[doc(hidden)]
11330 pub unsafe fn DeleteSamplers_load_with_dyn(
11331 &self,
11332 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11333 ) -> bool {
11334 load_dyn_name_atomic_ptr(
11335 get_proc_address,
11336 b"glDeleteSamplers\0",
11337 &self.glDeleteSamplers_p,
11338 )
11339 }
11340 #[inline]
11341 #[doc(hidden)]
11342 pub fn DeleteSamplers_is_loaded(&self) -> bool {
11343 !self.glDeleteSamplers_p.load(RELAX).is_null()
11344 }
11345 /// [glDeleteShader](http://docs.gl/gl4/glDeleteShader)(shader)
11346 #[cfg_attr(feature = "inline", inline)]
11347 #[cfg_attr(feature = "inline_always", inline(always))]
11348 pub unsafe fn DeleteShader(&self, shader: GLuint) {
11349 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11350 {
11351 trace!("calling gl.DeleteShader({:?});", shader);
11352 }
11353 let out = call_atomic_ptr_1arg("glDeleteShader", &self.glDeleteShader_p, shader);
11354 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11355 {
11356 self.automatic_glGetError("glDeleteShader");
11357 }
11358 out
11359 }
11360 #[doc(hidden)]
11361 pub unsafe fn DeleteShader_load_with_dyn(
11362 &self,
11363 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11364 ) -> bool {
11365 load_dyn_name_atomic_ptr(
11366 get_proc_address,
11367 b"glDeleteShader\0",
11368 &self.glDeleteShader_p,
11369 )
11370 }
11371 #[inline]
11372 #[doc(hidden)]
11373 pub fn DeleteShader_is_loaded(&self) -> bool {
11374 !self.glDeleteShader_p.load(RELAX).is_null()
11375 }
11376 /// [glDeleteSync](http://docs.gl/gl4/glDeleteSync)(sync)
11377 /// * `sync` group: sync
11378 #[cfg_attr(feature = "inline", inline)]
11379 #[cfg_attr(feature = "inline_always", inline(always))]
11380 pub unsafe fn DeleteSync(&self, sync: GLsync) {
11381 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11382 {
11383 trace!("calling gl.DeleteSync({:p});", sync);
11384 }
11385 let out = call_atomic_ptr_1arg("glDeleteSync", &self.glDeleteSync_p, sync);
11386 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11387 {
11388 self.automatic_glGetError("glDeleteSync");
11389 }
11390 out
11391 }
11392 #[doc(hidden)]
11393 pub unsafe fn DeleteSync_load_with_dyn(
11394 &self,
11395 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11396 ) -> bool {
11397 load_dyn_name_atomic_ptr(get_proc_address, b"glDeleteSync\0", &self.glDeleteSync_p)
11398 }
11399 #[inline]
11400 #[doc(hidden)]
11401 pub fn DeleteSync_is_loaded(&self) -> bool {
11402 !self.glDeleteSync_p.load(RELAX).is_null()
11403 }
11404 /// [glDeleteTextures](http://docs.gl/gl4/glDeleteTextures)(n, textures)
11405 /// * `textures` group: Texture
11406 /// * `textures` len: n
11407 #[cfg_attr(feature = "inline", inline)]
11408 #[cfg_attr(feature = "inline_always", inline(always))]
11409 pub unsafe fn DeleteTextures(&self, n: GLsizei, textures: *const GLuint) {
11410 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11411 {
11412 trace!("calling gl.DeleteTextures({:?}, {:p});", n, textures);
11413 }
11414 let out =
11415 call_atomic_ptr_2arg("glDeleteTextures", &self.glDeleteTextures_p, n, textures);
11416 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11417 {
11418 self.automatic_glGetError("glDeleteTextures");
11419 }
11420 out
11421 }
11422 #[doc(hidden)]
11423 pub unsafe fn DeleteTextures_load_with_dyn(
11424 &self,
11425 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11426 ) -> bool {
11427 load_dyn_name_atomic_ptr(
11428 get_proc_address,
11429 b"glDeleteTextures\0",
11430 &self.glDeleteTextures_p,
11431 )
11432 }
11433 #[inline]
11434 #[doc(hidden)]
11435 pub fn DeleteTextures_is_loaded(&self) -> bool {
11436 !self.glDeleteTextures_p.load(RELAX).is_null()
11437 }
11438 /// [glDeleteTransformFeedbacks](http://docs.gl/gl4/glDeleteTransformFeedbacks)(n, ids)
11439 /// * `ids` len: n
11440 #[cfg_attr(feature = "inline", inline)]
11441 #[cfg_attr(feature = "inline_always", inline(always))]
11442 pub unsafe fn DeleteTransformFeedbacks(&self, n: GLsizei, ids: *const GLuint) {
11443 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11444 {
11445 trace!("calling gl.DeleteTransformFeedbacks({:?}, {:p});", n, ids);
11446 }
11447 let out = call_atomic_ptr_2arg(
11448 "glDeleteTransformFeedbacks",
11449 &self.glDeleteTransformFeedbacks_p,
11450 n,
11451 ids,
11452 );
11453 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11454 {
11455 self.automatic_glGetError("glDeleteTransformFeedbacks");
11456 }
11457 out
11458 }
11459 #[doc(hidden)]
11460 pub unsafe fn DeleteTransformFeedbacks_load_with_dyn(
11461 &self,
11462 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11463 ) -> bool {
11464 load_dyn_name_atomic_ptr(
11465 get_proc_address,
11466 b"glDeleteTransformFeedbacks\0",
11467 &self.glDeleteTransformFeedbacks_p,
11468 )
11469 }
11470 #[inline]
11471 #[doc(hidden)]
11472 pub fn DeleteTransformFeedbacks_is_loaded(&self) -> bool {
11473 !self.glDeleteTransformFeedbacks_p.load(RELAX).is_null()
11474 }
11475 /// [glDeleteVertexArrays](http://docs.gl/gl4/glDeleteVertexArrays)(n, arrays)
11476 /// * `arrays` len: n
11477 #[cfg_attr(feature = "inline", inline)]
11478 #[cfg_attr(feature = "inline_always", inline(always))]
11479 pub unsafe fn DeleteVertexArrays(&self, n: GLsizei, arrays: *const GLuint) {
11480 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11481 {
11482 trace!("calling gl.DeleteVertexArrays({:?}, {:p});", n, arrays);
11483 }
11484 let out = call_atomic_ptr_2arg(
11485 "glDeleteVertexArrays",
11486 &self.glDeleteVertexArrays_p,
11487 n,
11488 arrays,
11489 );
11490 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11491 {
11492 self.automatic_glGetError("glDeleteVertexArrays");
11493 }
11494 out
11495 }
11496 #[doc(hidden)]
11497 pub unsafe fn DeleteVertexArrays_load_with_dyn(
11498 &self,
11499 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11500 ) -> bool {
11501 load_dyn_name_atomic_ptr(
11502 get_proc_address,
11503 b"glDeleteVertexArrays\0",
11504 &self.glDeleteVertexArrays_p,
11505 )
11506 }
11507 #[inline]
11508 #[doc(hidden)]
11509 pub fn DeleteVertexArrays_is_loaded(&self) -> bool {
11510 !self.glDeleteVertexArrays_p.load(RELAX).is_null()
11511 }
11512 /// [glDepthFunc](http://docs.gl/gl4/glDepthFunc)(func)
11513 /// * `func` group: DepthFunction
11514 #[cfg_attr(feature = "inline", inline)]
11515 #[cfg_attr(feature = "inline_always", inline(always))]
11516 pub unsafe fn DepthFunc(&self, func: GLenum) {
11517 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11518 {
11519 trace!("calling gl.DepthFunc({:#X});", func);
11520 }
11521 let out = call_atomic_ptr_1arg("glDepthFunc", &self.glDepthFunc_p, func);
11522 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11523 {
11524 self.automatic_glGetError("glDepthFunc");
11525 }
11526 out
11527 }
11528 #[doc(hidden)]
11529 pub unsafe fn DepthFunc_load_with_dyn(
11530 &self,
11531 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11532 ) -> bool {
11533 load_dyn_name_atomic_ptr(get_proc_address, b"glDepthFunc\0", &self.glDepthFunc_p)
11534 }
11535 #[inline]
11536 #[doc(hidden)]
11537 pub fn DepthFunc_is_loaded(&self) -> bool {
11538 !self.glDepthFunc_p.load(RELAX).is_null()
11539 }
11540 /// [glDepthMask](http://docs.gl/gl4/glDepthMask)(flag)
11541 #[cfg_attr(feature = "inline", inline)]
11542 #[cfg_attr(feature = "inline_always", inline(always))]
11543 pub unsafe fn DepthMask(&self, flag: GLboolean) {
11544 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11545 {
11546 trace!("calling gl.DepthMask({:?});", flag);
11547 }
11548 let out = call_atomic_ptr_1arg("glDepthMask", &self.glDepthMask_p, flag);
11549 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11550 {
11551 self.automatic_glGetError("glDepthMask");
11552 }
11553 out
11554 }
11555 #[doc(hidden)]
11556 pub unsafe fn DepthMask_load_with_dyn(
11557 &self,
11558 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11559 ) -> bool {
11560 load_dyn_name_atomic_ptr(get_proc_address, b"glDepthMask\0", &self.glDepthMask_p)
11561 }
11562 #[inline]
11563 #[doc(hidden)]
11564 pub fn DepthMask_is_loaded(&self) -> bool {
11565 !self.glDepthMask_p.load(RELAX).is_null()
11566 }
11567 /// [glDepthRange](http://docs.gl/gl4/glDepthRange)(n, f)
11568 #[cfg_attr(feature = "inline", inline)]
11569 #[cfg_attr(feature = "inline_always", inline(always))]
11570 pub unsafe fn DepthRange(&self, n: GLdouble, f: GLdouble) {
11571 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11572 {
11573 trace!("calling gl.DepthRange({:?}, {:?});", n, f);
11574 }
11575 let out = call_atomic_ptr_2arg("glDepthRange", &self.glDepthRange_p, n, f);
11576 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11577 {
11578 self.automatic_glGetError("glDepthRange");
11579 }
11580 out
11581 }
11582 #[doc(hidden)]
11583 pub unsafe fn DepthRange_load_with_dyn(
11584 &self,
11585 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11586 ) -> bool {
11587 load_dyn_name_atomic_ptr(get_proc_address, b"glDepthRange\0", &self.glDepthRange_p)
11588 }
11589 #[inline]
11590 #[doc(hidden)]
11591 pub fn DepthRange_is_loaded(&self) -> bool {
11592 !self.glDepthRange_p.load(RELAX).is_null()
11593 }
11594 /// [glDepthRangeArrayv](http://docs.gl/gl4/glDepthRangeArrayv)(first, count, v)
11595 /// * `v` len: COMPSIZE(count)
11596 #[cfg_attr(feature = "inline", inline)]
11597 #[cfg_attr(feature = "inline_always", inline(always))]
11598 pub unsafe fn DepthRangeArrayv(&self, first: GLuint, count: GLsizei, v: *const GLdouble) {
11599 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11600 {
11601 trace!(
11602 "calling gl.DepthRangeArrayv({:?}, {:?}, {:p});",
11603 first,
11604 count,
11605 v
11606 );
11607 }
11608 let out = call_atomic_ptr_3arg(
11609 "glDepthRangeArrayv",
11610 &self.glDepthRangeArrayv_p,
11611 first,
11612 count,
11613 v,
11614 );
11615 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11616 {
11617 self.automatic_glGetError("glDepthRangeArrayv");
11618 }
11619 out
11620 }
11621 #[doc(hidden)]
11622 pub unsafe fn DepthRangeArrayv_load_with_dyn(
11623 &self,
11624 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11625 ) -> bool {
11626 load_dyn_name_atomic_ptr(
11627 get_proc_address,
11628 b"glDepthRangeArrayv\0",
11629 &self.glDepthRangeArrayv_p,
11630 )
11631 }
11632 #[inline]
11633 #[doc(hidden)]
11634 pub fn DepthRangeArrayv_is_loaded(&self) -> bool {
11635 !self.glDepthRangeArrayv_p.load(RELAX).is_null()
11636 }
11637 /// [glDepthRangeIndexed](http://docs.gl/gl4/glDepthRangeIndexed)(index, n, f)
11638 #[cfg_attr(feature = "inline", inline)]
11639 #[cfg_attr(feature = "inline_always", inline(always))]
11640 pub unsafe fn DepthRangeIndexed(&self, index: GLuint, n: GLdouble, f: GLdouble) {
11641 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11642 {
11643 trace!(
11644 "calling gl.DepthRangeIndexed({:?}, {:?}, {:?});",
11645 index,
11646 n,
11647 f
11648 );
11649 }
11650 let out = call_atomic_ptr_3arg(
11651 "glDepthRangeIndexed",
11652 &self.glDepthRangeIndexed_p,
11653 index,
11654 n,
11655 f,
11656 );
11657 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11658 {
11659 self.automatic_glGetError("glDepthRangeIndexed");
11660 }
11661 out
11662 }
11663 #[doc(hidden)]
11664 pub unsafe fn DepthRangeIndexed_load_with_dyn(
11665 &self,
11666 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11667 ) -> bool {
11668 load_dyn_name_atomic_ptr(
11669 get_proc_address,
11670 b"glDepthRangeIndexed\0",
11671 &self.glDepthRangeIndexed_p,
11672 )
11673 }
11674 #[inline]
11675 #[doc(hidden)]
11676 pub fn DepthRangeIndexed_is_loaded(&self) -> bool {
11677 !self.glDepthRangeIndexed_p.load(RELAX).is_null()
11678 }
11679 /// [glDepthRangef](http://docs.gl/gl4/glDepthRange)(n, f)
11680 #[cfg_attr(feature = "inline", inline)]
11681 #[cfg_attr(feature = "inline_always", inline(always))]
11682 pub unsafe fn DepthRangef(&self, n: GLfloat, f: GLfloat) {
11683 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11684 {
11685 trace!("calling gl.DepthRangef({:?}, {:?});", n, f);
11686 }
11687 let out = call_atomic_ptr_2arg("glDepthRangef", &self.glDepthRangef_p, n, f);
11688 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11689 {
11690 self.automatic_glGetError("glDepthRangef");
11691 }
11692 out
11693 }
11694 #[doc(hidden)]
11695 pub unsafe fn DepthRangef_load_with_dyn(
11696 &self,
11697 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11698 ) -> bool {
11699 load_dyn_name_atomic_ptr(get_proc_address, b"glDepthRangef\0", &self.glDepthRangef_p)
11700 }
11701 #[inline]
11702 #[doc(hidden)]
11703 pub fn DepthRangef_is_loaded(&self) -> bool {
11704 !self.glDepthRangef_p.load(RELAX).is_null()
11705 }
11706 /// [glDetachShader](http://docs.gl/gl4/glDetachShader)(program, shader)
11707 #[cfg_attr(feature = "inline", inline)]
11708 #[cfg_attr(feature = "inline_always", inline(always))]
11709 pub unsafe fn DetachShader(&self, program: GLuint, shader: GLuint) {
11710 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11711 {
11712 trace!("calling gl.DetachShader({:?}, {:?});", program, shader);
11713 }
11714 let out =
11715 call_atomic_ptr_2arg("glDetachShader", &self.glDetachShader_p, program, shader);
11716 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11717 {
11718 self.automatic_glGetError("glDetachShader");
11719 }
11720 out
11721 }
11722 #[doc(hidden)]
11723 pub unsafe fn DetachShader_load_with_dyn(
11724 &self,
11725 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11726 ) -> bool {
11727 load_dyn_name_atomic_ptr(
11728 get_proc_address,
11729 b"glDetachShader\0",
11730 &self.glDetachShader_p,
11731 )
11732 }
11733 #[inline]
11734 #[doc(hidden)]
11735 pub fn DetachShader_is_loaded(&self) -> bool {
11736 !self.glDetachShader_p.load(RELAX).is_null()
11737 }
11738 /// [glDisable](http://docs.gl/gl4/glDisable)(cap)
11739 /// * `cap` group: EnableCap
11740 #[cfg_attr(feature = "inline", inline)]
11741 #[cfg_attr(feature = "inline_always", inline(always))]
11742 pub unsafe fn Disable(&self, cap: GLenum) {
11743 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11744 {
11745 trace!("calling gl.Disable({:#X});", cap);
11746 }
11747 let out = call_atomic_ptr_1arg("glDisable", &self.glDisable_p, cap);
11748 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11749 {
11750 self.automatic_glGetError("glDisable");
11751 }
11752 out
11753 }
11754 #[doc(hidden)]
11755 pub unsafe fn Disable_load_with_dyn(
11756 &self,
11757 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11758 ) -> bool {
11759 load_dyn_name_atomic_ptr(get_proc_address, b"glDisable\0", &self.glDisable_p)
11760 }
11761 #[inline]
11762 #[doc(hidden)]
11763 pub fn Disable_is_loaded(&self) -> bool {
11764 !self.glDisable_p.load(RELAX).is_null()
11765 }
11766 /// [glDisableIndexedEXT](http://docs.gl/gl4/glDisableIndexedEXT)(target, index)
11767 /// * `target` group: EnableCap
11768 /// * alias of: [`glDisablei`]
11769 #[cfg_attr(feature = "inline", inline)]
11770 #[cfg_attr(feature = "inline_always", inline(always))]
11771 pub unsafe fn DisableIndexedEXT(&self, target: GLenum, index: GLuint) {
11772 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11773 {
11774 trace!("calling gl.DisableIndexedEXT({:#X}, {:?});", target, index);
11775 }
11776 let out = call_atomic_ptr_2arg(
11777 "glDisableIndexedEXT",
11778 &self.glDisableIndexedEXT_p,
11779 target,
11780 index,
11781 );
11782 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11783 {
11784 self.automatic_glGetError("glDisableIndexedEXT");
11785 }
11786 out
11787 }
11788
11789 #[doc(hidden)]
11790 pub unsafe fn DisableIndexedEXT_load_with_dyn(
11791 &self,
11792 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11793 ) -> bool {
11794 load_dyn_name_atomic_ptr(
11795 get_proc_address,
11796 b"glDisableIndexedEXT\0",
11797 &self.glDisableIndexedEXT_p,
11798 )
11799 }
11800 #[inline]
11801 #[doc(hidden)]
11802
11803 pub fn DisableIndexedEXT_is_loaded(&self) -> bool {
11804 !self.glDisableIndexedEXT_p.load(RELAX).is_null()
11805 }
11806 /// [glDisableVertexArrayAttrib](http://docs.gl/gl4/glDisableVertexArrayAttrib)(vaobj, index)
11807 #[cfg_attr(feature = "inline", inline)]
11808 #[cfg_attr(feature = "inline_always", inline(always))]
11809 pub unsafe fn DisableVertexArrayAttrib(&self, vaobj: GLuint, index: GLuint) {
11810 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11811 {
11812 trace!(
11813 "calling gl.DisableVertexArrayAttrib({:?}, {:?});",
11814 vaobj,
11815 index
11816 );
11817 }
11818 let out = call_atomic_ptr_2arg(
11819 "glDisableVertexArrayAttrib",
11820 &self.glDisableVertexArrayAttrib_p,
11821 vaobj,
11822 index,
11823 );
11824 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11825 {
11826 self.automatic_glGetError("glDisableVertexArrayAttrib");
11827 }
11828 out
11829 }
11830 #[doc(hidden)]
11831 pub unsafe fn DisableVertexArrayAttrib_load_with_dyn(
11832 &self,
11833 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11834 ) -> bool {
11835 load_dyn_name_atomic_ptr(
11836 get_proc_address,
11837 b"glDisableVertexArrayAttrib\0",
11838 &self.glDisableVertexArrayAttrib_p,
11839 )
11840 }
11841 #[inline]
11842 #[doc(hidden)]
11843 pub fn DisableVertexArrayAttrib_is_loaded(&self) -> bool {
11844 !self.glDisableVertexArrayAttrib_p.load(RELAX).is_null()
11845 }
11846 /// [glDisableVertexAttribArray](http://docs.gl/gl4/glDisableVertexAttribArray)(index)
11847 #[cfg_attr(feature = "inline", inline)]
11848 #[cfg_attr(feature = "inline_always", inline(always))]
11849 pub unsafe fn DisableVertexAttribArray(&self, index: GLuint) {
11850 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11851 {
11852 trace!("calling gl.DisableVertexAttribArray({:?});", index);
11853 }
11854 let out = call_atomic_ptr_1arg(
11855 "glDisableVertexAttribArray",
11856 &self.glDisableVertexAttribArray_p,
11857 index,
11858 );
11859 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11860 {
11861 self.automatic_glGetError("glDisableVertexAttribArray");
11862 }
11863 out
11864 }
11865 #[doc(hidden)]
11866 pub unsafe fn DisableVertexAttribArray_load_with_dyn(
11867 &self,
11868 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11869 ) -> bool {
11870 load_dyn_name_atomic_ptr(
11871 get_proc_address,
11872 b"glDisableVertexAttribArray\0",
11873 &self.glDisableVertexAttribArray_p,
11874 )
11875 }
11876 #[inline]
11877 #[doc(hidden)]
11878 pub fn DisableVertexAttribArray_is_loaded(&self) -> bool {
11879 !self.glDisableVertexAttribArray_p.load(RELAX).is_null()
11880 }
11881 /// [glDisablei](http://docs.gl/gl4/glDisable)(target, index)
11882 /// * `target` group: EnableCap
11883 #[cfg_attr(feature = "inline", inline)]
11884 #[cfg_attr(feature = "inline_always", inline(always))]
11885 pub unsafe fn Disablei(&self, target: GLenum, index: GLuint) {
11886 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11887 {
11888 trace!("calling gl.Disablei({:#X}, {:?});", target, index);
11889 }
11890 let out = call_atomic_ptr_2arg("glDisablei", &self.glDisablei_p, target, index);
11891 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11892 {
11893 self.automatic_glGetError("glDisablei");
11894 }
11895 out
11896 }
11897 #[doc(hidden)]
11898 pub unsafe fn Disablei_load_with_dyn(
11899 &self,
11900 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11901 ) -> bool {
11902 load_dyn_name_atomic_ptr(get_proc_address, b"glDisablei\0", &self.glDisablei_p)
11903 }
11904 #[inline]
11905 #[doc(hidden)]
11906 pub fn Disablei_is_loaded(&self) -> bool {
11907 !self.glDisablei_p.load(RELAX).is_null()
11908 }
11909 /// [glDispatchCompute](http://docs.gl/gl4/glDispatchCompute)(num_groups_x, num_groups_y, num_groups_z)
11910 #[cfg_attr(feature = "inline", inline)]
11911 #[cfg_attr(feature = "inline_always", inline(always))]
11912 pub unsafe fn DispatchCompute(
11913 &self,
11914 num_groups_x: GLuint,
11915 num_groups_y: GLuint,
11916 num_groups_z: GLuint,
11917 ) {
11918 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11919 {
11920 trace!(
11921 "calling gl.DispatchCompute({:?}, {:?}, {:?});",
11922 num_groups_x,
11923 num_groups_y,
11924 num_groups_z
11925 );
11926 }
11927 let out = call_atomic_ptr_3arg(
11928 "glDispatchCompute",
11929 &self.glDispatchCompute_p,
11930 num_groups_x,
11931 num_groups_y,
11932 num_groups_z,
11933 );
11934 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11935 {
11936 self.automatic_glGetError("glDispatchCompute");
11937 }
11938 out
11939 }
11940 #[doc(hidden)]
11941 pub unsafe fn DispatchCompute_load_with_dyn(
11942 &self,
11943 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11944 ) -> bool {
11945 load_dyn_name_atomic_ptr(
11946 get_proc_address,
11947 b"glDispatchCompute\0",
11948 &self.glDispatchCompute_p,
11949 )
11950 }
11951 #[inline]
11952 #[doc(hidden)]
11953 pub fn DispatchCompute_is_loaded(&self) -> bool {
11954 !self.glDispatchCompute_p.load(RELAX).is_null()
11955 }
11956 /// [glDispatchComputeIndirect](http://docs.gl/gl4/glDispatchComputeIndirect)(indirect)
11957 /// * `indirect` group: BufferOffset
11958 #[cfg_attr(feature = "inline", inline)]
11959 #[cfg_attr(feature = "inline_always", inline(always))]
11960 pub unsafe fn DispatchComputeIndirect(&self, indirect: GLintptr) {
11961 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11962 {
11963 trace!("calling gl.DispatchComputeIndirect({:?});", indirect);
11964 }
11965 let out = call_atomic_ptr_1arg(
11966 "glDispatchComputeIndirect",
11967 &self.glDispatchComputeIndirect_p,
11968 indirect,
11969 );
11970 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11971 {
11972 self.automatic_glGetError("glDispatchComputeIndirect");
11973 }
11974 out
11975 }
11976 #[doc(hidden)]
11977 pub unsafe fn DispatchComputeIndirect_load_with_dyn(
11978 &self,
11979 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11980 ) -> bool {
11981 load_dyn_name_atomic_ptr(
11982 get_proc_address,
11983 b"glDispatchComputeIndirect\0",
11984 &self.glDispatchComputeIndirect_p,
11985 )
11986 }
11987 #[inline]
11988 #[doc(hidden)]
11989 pub fn DispatchComputeIndirect_is_loaded(&self) -> bool {
11990 !self.glDispatchComputeIndirect_p.load(RELAX).is_null()
11991 }
11992 /// [glDrawArrays](http://docs.gl/gl4/glDrawArrays)(mode, first, count)
11993 /// * `mode` group: PrimitiveType
11994 #[cfg_attr(feature = "inline", inline)]
11995 #[cfg_attr(feature = "inline_always", inline(always))]
11996 pub unsafe fn DrawArrays(&self, mode: GLenum, first: GLint, count: GLsizei) {
11997 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11998 {
11999 trace!(
12000 "calling gl.DrawArrays({:#X}, {:?}, {:?});",
12001 mode,
12002 first,
12003 count
12004 );
12005 }
12006 let out =
12007 call_atomic_ptr_3arg("glDrawArrays", &self.glDrawArrays_p, mode, first, count);
12008 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12009 {
12010 self.automatic_glGetError("glDrawArrays");
12011 }
12012 out
12013 }
12014 #[doc(hidden)]
12015 pub unsafe fn DrawArrays_load_with_dyn(
12016 &self,
12017 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12018 ) -> bool {
12019 load_dyn_name_atomic_ptr(get_proc_address, b"glDrawArrays\0", &self.glDrawArrays_p)
12020 }
12021 #[inline]
12022 #[doc(hidden)]
12023 pub fn DrawArrays_is_loaded(&self) -> bool {
12024 !self.glDrawArrays_p.load(RELAX).is_null()
12025 }
12026 /// [glDrawArraysIndirect](http://docs.gl/gl4/glDrawArraysIndirect)(mode, indirect)
12027 /// * `mode` group: PrimitiveType
12028 #[cfg_attr(feature = "inline", inline)]
12029 #[cfg_attr(feature = "inline_always", inline(always))]
12030 pub unsafe fn DrawArraysIndirect(&self, mode: GLenum, indirect: *const c_void) {
12031 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12032 {
12033 trace!(
12034 "calling gl.DrawArraysIndirect({:#X}, {:p});",
12035 mode,
12036 indirect
12037 );
12038 }
12039 let out = call_atomic_ptr_2arg(
12040 "glDrawArraysIndirect",
12041 &self.glDrawArraysIndirect_p,
12042 mode,
12043 indirect,
12044 );
12045 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12046 {
12047 self.automatic_glGetError("glDrawArraysIndirect");
12048 }
12049 out
12050 }
12051 #[doc(hidden)]
12052 pub unsafe fn DrawArraysIndirect_load_with_dyn(
12053 &self,
12054 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12055 ) -> bool {
12056 load_dyn_name_atomic_ptr(
12057 get_proc_address,
12058 b"glDrawArraysIndirect\0",
12059 &self.glDrawArraysIndirect_p,
12060 )
12061 }
12062 #[inline]
12063 #[doc(hidden)]
12064 pub fn DrawArraysIndirect_is_loaded(&self) -> bool {
12065 !self.glDrawArraysIndirect_p.load(RELAX).is_null()
12066 }
12067 /// [glDrawArraysInstanced](http://docs.gl/gl4/glDrawArraysInstanced)(mode, first, count, instancecount)
12068 /// * `mode` group: PrimitiveType
12069 #[cfg_attr(feature = "inline", inline)]
12070 #[cfg_attr(feature = "inline_always", inline(always))]
12071 pub unsafe fn DrawArraysInstanced(
12072 &self,
12073 mode: GLenum,
12074 first: GLint,
12075 count: GLsizei,
12076 instancecount: GLsizei,
12077 ) {
12078 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12079 {
12080 trace!(
12081 "calling gl.DrawArraysInstanced({:#X}, {:?}, {:?}, {:?});",
12082 mode,
12083 first,
12084 count,
12085 instancecount
12086 );
12087 }
12088 let out = call_atomic_ptr_4arg(
12089 "glDrawArraysInstanced",
12090 &self.glDrawArraysInstanced_p,
12091 mode,
12092 first,
12093 count,
12094 instancecount,
12095 );
12096 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12097 {
12098 self.automatic_glGetError("glDrawArraysInstanced");
12099 }
12100 out
12101 }
12102 #[doc(hidden)]
12103 pub unsafe fn DrawArraysInstanced_load_with_dyn(
12104 &self,
12105 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12106 ) -> bool {
12107 load_dyn_name_atomic_ptr(
12108 get_proc_address,
12109 b"glDrawArraysInstanced\0",
12110 &self.glDrawArraysInstanced_p,
12111 )
12112 }
12113 #[inline]
12114 #[doc(hidden)]
12115 pub fn DrawArraysInstanced_is_loaded(&self) -> bool {
12116 !self.glDrawArraysInstanced_p.load(RELAX).is_null()
12117 }
12118 /// [glDrawArraysInstancedARB](http://docs.gl/gl4/glDrawArraysInstancedARB)(mode, first, count, primcount)
12119 /// * `mode` group: PrimitiveType
12120 /// * alias of: [`glDrawArraysInstanced`]
12121 #[cfg_attr(feature = "inline", inline)]
12122 #[cfg_attr(feature = "inline_always", inline(always))]
12123 pub unsafe fn DrawArraysInstancedARB(
12124 &self,
12125 mode: GLenum,
12126 first: GLint,
12127 count: GLsizei,
12128 primcount: GLsizei,
12129 ) {
12130 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12131 {
12132 trace!(
12133 "calling gl.DrawArraysInstancedARB({:#X}, {:?}, {:?}, {:?});",
12134 mode,
12135 first,
12136 count,
12137 primcount
12138 );
12139 }
12140 let out = call_atomic_ptr_4arg(
12141 "glDrawArraysInstancedARB",
12142 &self.glDrawArraysInstancedARB_p,
12143 mode,
12144 first,
12145 count,
12146 primcount,
12147 );
12148 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12149 {
12150 self.automatic_glGetError("glDrawArraysInstancedARB");
12151 }
12152 out
12153 }
12154
12155 #[doc(hidden)]
12156 pub unsafe fn DrawArraysInstancedARB_load_with_dyn(
12157 &self,
12158 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12159 ) -> bool {
12160 load_dyn_name_atomic_ptr(
12161 get_proc_address,
12162 b"glDrawArraysInstancedARB\0",
12163 &self.glDrawArraysInstancedARB_p,
12164 )
12165 }
12166 #[inline]
12167 #[doc(hidden)]
12168
12169 pub fn DrawArraysInstancedARB_is_loaded(&self) -> bool {
12170 !self.glDrawArraysInstancedARB_p.load(RELAX).is_null()
12171 }
12172 /// [glDrawArraysInstancedBaseInstance](http://docs.gl/gl4/glDrawArraysInstancedBaseInstance)(mode, first, count, instancecount, baseinstance)
12173 /// * `mode` group: PrimitiveType
12174 #[cfg_attr(feature = "inline", inline)]
12175 #[cfg_attr(feature = "inline_always", inline(always))]
12176 pub unsafe fn DrawArraysInstancedBaseInstance(
12177 &self,
12178 mode: GLenum,
12179 first: GLint,
12180 count: GLsizei,
12181 instancecount: GLsizei,
12182 baseinstance: GLuint,
12183 ) {
12184 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12185 {
12186 trace!(
12187 "calling gl.DrawArraysInstancedBaseInstance({:#X}, {:?}, {:?}, {:?}, {:?});",
12188 mode,
12189 first,
12190 count,
12191 instancecount,
12192 baseinstance
12193 );
12194 }
12195 let out = call_atomic_ptr_5arg(
12196 "glDrawArraysInstancedBaseInstance",
12197 &self.glDrawArraysInstancedBaseInstance_p,
12198 mode,
12199 first,
12200 count,
12201 instancecount,
12202 baseinstance,
12203 );
12204 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12205 {
12206 self.automatic_glGetError("glDrawArraysInstancedBaseInstance");
12207 }
12208 out
12209 }
12210 #[doc(hidden)]
12211 pub unsafe fn DrawArraysInstancedBaseInstance_load_with_dyn(
12212 &self,
12213 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12214 ) -> bool {
12215 load_dyn_name_atomic_ptr(
12216 get_proc_address,
12217 b"glDrawArraysInstancedBaseInstance\0",
12218 &self.glDrawArraysInstancedBaseInstance_p,
12219 )
12220 }
12221 #[inline]
12222 #[doc(hidden)]
12223 pub fn DrawArraysInstancedBaseInstance_is_loaded(&self) -> bool {
12224 !self
12225 .glDrawArraysInstancedBaseInstance_p
12226 .load(RELAX)
12227 .is_null()
12228 }
12229 /// [glDrawBuffer](http://docs.gl/gl4/glDrawBuffer)(buf)
12230 /// * `buf` group: DrawBufferMode
12231 #[cfg_attr(feature = "inline", inline)]
12232 #[cfg_attr(feature = "inline_always", inline(always))]
12233 pub unsafe fn DrawBuffer(&self, buf: GLenum) {
12234 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12235 {
12236 trace!("calling gl.DrawBuffer({:#X});", buf);
12237 }
12238 let out = call_atomic_ptr_1arg("glDrawBuffer", &self.glDrawBuffer_p, buf);
12239 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12240 {
12241 self.automatic_glGetError("glDrawBuffer");
12242 }
12243 out
12244 }
12245 #[doc(hidden)]
12246 pub unsafe fn DrawBuffer_load_with_dyn(
12247 &self,
12248 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12249 ) -> bool {
12250 load_dyn_name_atomic_ptr(get_proc_address, b"glDrawBuffer\0", &self.glDrawBuffer_p)
12251 }
12252 #[inline]
12253 #[doc(hidden)]
12254 pub fn DrawBuffer_is_loaded(&self) -> bool {
12255 !self.glDrawBuffer_p.load(RELAX).is_null()
12256 }
12257 /// [glDrawBuffers](http://docs.gl/gl4/glDrawBuffers)(n, bufs)
12258 /// * `bufs` group: DrawBufferMode
12259 /// * `bufs` len: n
12260 #[cfg_attr(feature = "inline", inline)]
12261 #[cfg_attr(feature = "inline_always", inline(always))]
12262 pub unsafe fn DrawBuffers(&self, n: GLsizei, bufs: *const GLenum) {
12263 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12264 {
12265 trace!("calling gl.DrawBuffers({:?}, {:p});", n, bufs);
12266 }
12267 let out = call_atomic_ptr_2arg("glDrawBuffers", &self.glDrawBuffers_p, n, bufs);
12268 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12269 {
12270 self.automatic_glGetError("glDrawBuffers");
12271 }
12272 out
12273 }
12274 #[doc(hidden)]
12275 pub unsafe fn DrawBuffers_load_with_dyn(
12276 &self,
12277 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12278 ) -> bool {
12279 load_dyn_name_atomic_ptr(get_proc_address, b"glDrawBuffers\0", &self.glDrawBuffers_p)
12280 }
12281 #[inline]
12282 #[doc(hidden)]
12283 pub fn DrawBuffers_is_loaded(&self) -> bool {
12284 !self.glDrawBuffers_p.load(RELAX).is_null()
12285 }
12286 /// [glDrawElements](http://docs.gl/gl4/glDrawElements)(mode, count, type_, indices)
12287 /// * `mode` group: PrimitiveType
12288 /// * `type_` group: DrawElementsType
12289 /// * `indices` len: COMPSIZE(count,type)
12290 #[cfg_attr(feature = "inline", inline)]
12291 #[cfg_attr(feature = "inline_always", inline(always))]
12292 pub unsafe fn DrawElements(
12293 &self,
12294 mode: GLenum,
12295 count: GLsizei,
12296 type_: GLenum,
12297 indices: *const c_void,
12298 ) {
12299 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12300 {
12301 trace!(
12302 "calling gl.DrawElements({:#X}, {:?}, {:#X}, {:p});",
12303 mode,
12304 count,
12305 type_,
12306 indices
12307 );
12308 }
12309 let out = call_atomic_ptr_4arg(
12310 "glDrawElements",
12311 &self.glDrawElements_p,
12312 mode,
12313 count,
12314 type_,
12315 indices,
12316 );
12317 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12318 {
12319 self.automatic_glGetError("glDrawElements");
12320 }
12321 out
12322 }
12323 #[doc(hidden)]
12324 pub unsafe fn DrawElements_load_with_dyn(
12325 &self,
12326 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12327 ) -> bool {
12328 load_dyn_name_atomic_ptr(
12329 get_proc_address,
12330 b"glDrawElements\0",
12331 &self.glDrawElements_p,
12332 )
12333 }
12334 #[inline]
12335 #[doc(hidden)]
12336 pub fn DrawElements_is_loaded(&self) -> bool {
12337 !self.glDrawElements_p.load(RELAX).is_null()
12338 }
12339 /// [glDrawElementsBaseVertex](http://docs.gl/gl4/glDrawElementsBaseVertex)(mode, count, type_, indices, basevertex)
12340 /// * `mode` group: PrimitiveType
12341 /// * `type_` group: DrawElementsType
12342 /// * `indices` len: COMPSIZE(count,type)
12343 #[cfg_attr(feature = "inline", inline)]
12344 #[cfg_attr(feature = "inline_always", inline(always))]
12345 pub unsafe fn DrawElementsBaseVertex(
12346 &self,
12347 mode: GLenum,
12348 count: GLsizei,
12349 type_: GLenum,
12350 indices: *const c_void,
12351 basevertex: GLint,
12352 ) {
12353 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12354 {
12355 trace!(
12356 "calling gl.DrawElementsBaseVertex({:#X}, {:?}, {:#X}, {:p}, {:?});",
12357 mode,
12358 count,
12359 type_,
12360 indices,
12361 basevertex
12362 );
12363 }
12364 let out = call_atomic_ptr_5arg(
12365 "glDrawElementsBaseVertex",
12366 &self.glDrawElementsBaseVertex_p,
12367 mode,
12368 count,
12369 type_,
12370 indices,
12371 basevertex,
12372 );
12373 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12374 {
12375 self.automatic_glGetError("glDrawElementsBaseVertex");
12376 }
12377 out
12378 }
12379 #[doc(hidden)]
12380 pub unsafe fn DrawElementsBaseVertex_load_with_dyn(
12381 &self,
12382 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12383 ) -> bool {
12384 load_dyn_name_atomic_ptr(
12385 get_proc_address,
12386 b"glDrawElementsBaseVertex\0",
12387 &self.glDrawElementsBaseVertex_p,
12388 )
12389 }
12390 #[inline]
12391 #[doc(hidden)]
12392 pub fn DrawElementsBaseVertex_is_loaded(&self) -> bool {
12393 !self.glDrawElementsBaseVertex_p.load(RELAX).is_null()
12394 }
12395 /// [glDrawElementsIndirect](http://docs.gl/gl4/glDrawElementsIndirect)(mode, type_, indirect)
12396 /// * `mode` group: PrimitiveType
12397 /// * `type_` group: DrawElementsType
12398 #[cfg_attr(feature = "inline", inline)]
12399 #[cfg_attr(feature = "inline_always", inline(always))]
12400 pub unsafe fn DrawElementsIndirect(
12401 &self,
12402 mode: GLenum,
12403 type_: GLenum,
12404 indirect: *const c_void,
12405 ) {
12406 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12407 {
12408 trace!(
12409 "calling gl.DrawElementsIndirect({:#X}, {:#X}, {:p});",
12410 mode,
12411 type_,
12412 indirect
12413 );
12414 }
12415 let out = call_atomic_ptr_3arg(
12416 "glDrawElementsIndirect",
12417 &self.glDrawElementsIndirect_p,
12418 mode,
12419 type_,
12420 indirect,
12421 );
12422 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12423 {
12424 self.automatic_glGetError("glDrawElementsIndirect");
12425 }
12426 out
12427 }
12428 #[doc(hidden)]
12429 pub unsafe fn DrawElementsIndirect_load_with_dyn(
12430 &self,
12431 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12432 ) -> bool {
12433 load_dyn_name_atomic_ptr(
12434 get_proc_address,
12435 b"glDrawElementsIndirect\0",
12436 &self.glDrawElementsIndirect_p,
12437 )
12438 }
12439 #[inline]
12440 #[doc(hidden)]
12441 pub fn DrawElementsIndirect_is_loaded(&self) -> bool {
12442 !self.glDrawElementsIndirect_p.load(RELAX).is_null()
12443 }
12444 /// [glDrawElementsInstanced](http://docs.gl/gl4/glDrawElementsInstanced)(mode, count, type_, indices, instancecount)
12445 /// * `mode` group: PrimitiveType
12446 /// * `type_` group: DrawElementsType
12447 /// * `indices` len: COMPSIZE(count,type)
12448 #[cfg_attr(feature = "inline", inline)]
12449 #[cfg_attr(feature = "inline_always", inline(always))]
12450 pub unsafe fn DrawElementsInstanced(
12451 &self,
12452 mode: GLenum,
12453 count: GLsizei,
12454 type_: GLenum,
12455 indices: *const c_void,
12456 instancecount: GLsizei,
12457 ) {
12458 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12459 {
12460 trace!(
12461 "calling gl.DrawElementsInstanced({:#X}, {:?}, {:#X}, {:p}, {:?});",
12462 mode,
12463 count,
12464 type_,
12465 indices,
12466 instancecount
12467 );
12468 }
12469 let out = call_atomic_ptr_5arg(
12470 "glDrawElementsInstanced",
12471 &self.glDrawElementsInstanced_p,
12472 mode,
12473 count,
12474 type_,
12475 indices,
12476 instancecount,
12477 );
12478 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12479 {
12480 self.automatic_glGetError("glDrawElementsInstanced");
12481 }
12482 out
12483 }
12484 #[doc(hidden)]
12485 pub unsafe fn DrawElementsInstanced_load_with_dyn(
12486 &self,
12487 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12488 ) -> bool {
12489 load_dyn_name_atomic_ptr(
12490 get_proc_address,
12491 b"glDrawElementsInstanced\0",
12492 &self.glDrawElementsInstanced_p,
12493 )
12494 }
12495 #[inline]
12496 #[doc(hidden)]
12497 pub fn DrawElementsInstanced_is_loaded(&self) -> bool {
12498 !self.glDrawElementsInstanced_p.load(RELAX).is_null()
12499 }
12500 /// [glDrawElementsInstancedARB](http://docs.gl/gl4/glDrawElementsInstancedARB)(mode, count, type_, indices, primcount)
12501 /// * `mode` group: PrimitiveType
12502 /// * `type_` group: DrawElementsType
12503 /// * `indices` len: COMPSIZE(count,type)
12504 /// * alias of: [`glDrawElementsInstanced`]
12505 #[cfg_attr(feature = "inline", inline)]
12506 #[cfg_attr(feature = "inline_always", inline(always))]
12507 pub unsafe fn DrawElementsInstancedARB(
12508 &self,
12509 mode: GLenum,
12510 count: GLsizei,
12511 type_: GLenum,
12512 indices: *const c_void,
12513 primcount: GLsizei,
12514 ) {
12515 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12516 {
12517 trace!(
12518 "calling gl.DrawElementsInstancedARB({:#X}, {:?}, {:#X}, {:p}, {:?});",
12519 mode,
12520 count,
12521 type_,
12522 indices,
12523 primcount
12524 );
12525 }
12526 let out = call_atomic_ptr_5arg(
12527 "glDrawElementsInstancedARB",
12528 &self.glDrawElementsInstancedARB_p,
12529 mode,
12530 count,
12531 type_,
12532 indices,
12533 primcount,
12534 );
12535 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12536 {
12537 self.automatic_glGetError("glDrawElementsInstancedARB");
12538 }
12539 out
12540 }
12541
12542 #[doc(hidden)]
12543 pub unsafe fn DrawElementsInstancedARB_load_with_dyn(
12544 &self,
12545 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12546 ) -> bool {
12547 load_dyn_name_atomic_ptr(
12548 get_proc_address,
12549 b"glDrawElementsInstancedARB\0",
12550 &self.glDrawElementsInstancedARB_p,
12551 )
12552 }
12553 #[inline]
12554 #[doc(hidden)]
12555
12556 pub fn DrawElementsInstancedARB_is_loaded(&self) -> bool {
12557 !self.glDrawElementsInstancedARB_p.load(RELAX).is_null()
12558 }
12559 /// [glDrawElementsInstancedBaseInstance](http://docs.gl/gl4/glDrawElementsInstancedBaseInstance)(mode, count, type_, indices, instancecount, baseinstance)
12560 /// * `mode` group: PrimitiveType
12561 /// * `type_` group: PrimitiveType
12562 /// * `indices` len: count
12563 #[cfg_attr(feature = "inline", inline)]
12564 #[cfg_attr(feature = "inline_always", inline(always))]
12565 pub unsafe fn DrawElementsInstancedBaseInstance(
12566 &self,
12567 mode: GLenum,
12568 count: GLsizei,
12569 type_: GLenum,
12570 indices: *const c_void,
12571 instancecount: GLsizei,
12572 baseinstance: GLuint,
12573 ) {
12574 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12575 {
12576 trace!("calling gl.DrawElementsInstancedBaseInstance({:#X}, {:?}, {:#X}, {:p}, {:?}, {:?});", mode, count, type_, indices, instancecount, baseinstance);
12577 }
12578 let out = call_atomic_ptr_6arg(
12579 "glDrawElementsInstancedBaseInstance",
12580 &self.glDrawElementsInstancedBaseInstance_p,
12581 mode,
12582 count,
12583 type_,
12584 indices,
12585 instancecount,
12586 baseinstance,
12587 );
12588 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12589 {
12590 self.automatic_glGetError("glDrawElementsInstancedBaseInstance");
12591 }
12592 out
12593 }
12594 #[doc(hidden)]
12595 pub unsafe fn DrawElementsInstancedBaseInstance_load_with_dyn(
12596 &self,
12597 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12598 ) -> bool {
12599 load_dyn_name_atomic_ptr(
12600 get_proc_address,
12601 b"glDrawElementsInstancedBaseInstance\0",
12602 &self.glDrawElementsInstancedBaseInstance_p,
12603 )
12604 }
12605 #[inline]
12606 #[doc(hidden)]
12607 pub fn DrawElementsInstancedBaseInstance_is_loaded(&self) -> bool {
12608 !self
12609 .glDrawElementsInstancedBaseInstance_p
12610 .load(RELAX)
12611 .is_null()
12612 }
12613 /// [glDrawElementsInstancedBaseVertex](http://docs.gl/gl4/glDrawElementsInstancedBaseVertex)(mode, count, type_, indices, instancecount, basevertex)
12614 /// * `mode` group: PrimitiveType
12615 /// * `type_` group: DrawElementsType
12616 /// * `indices` len: COMPSIZE(count,type)
12617 #[cfg_attr(feature = "inline", inline)]
12618 #[cfg_attr(feature = "inline_always", inline(always))]
12619 pub unsafe fn DrawElementsInstancedBaseVertex(
12620 &self,
12621 mode: GLenum,
12622 count: GLsizei,
12623 type_: GLenum,
12624 indices: *const c_void,
12625 instancecount: GLsizei,
12626 basevertex: GLint,
12627 ) {
12628 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12629 {
12630 trace!("calling gl.DrawElementsInstancedBaseVertex({:#X}, {:?}, {:#X}, {:p}, {:?}, {:?});", mode, count, type_, indices, instancecount, basevertex);
12631 }
12632 let out = call_atomic_ptr_6arg(
12633 "glDrawElementsInstancedBaseVertex",
12634 &self.glDrawElementsInstancedBaseVertex_p,
12635 mode,
12636 count,
12637 type_,
12638 indices,
12639 instancecount,
12640 basevertex,
12641 );
12642 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12643 {
12644 self.automatic_glGetError("glDrawElementsInstancedBaseVertex");
12645 }
12646 out
12647 }
12648 #[doc(hidden)]
12649 pub unsafe fn DrawElementsInstancedBaseVertex_load_with_dyn(
12650 &self,
12651 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12652 ) -> bool {
12653 load_dyn_name_atomic_ptr(
12654 get_proc_address,
12655 b"glDrawElementsInstancedBaseVertex\0",
12656 &self.glDrawElementsInstancedBaseVertex_p,
12657 )
12658 }
12659 #[inline]
12660 #[doc(hidden)]
12661 pub fn DrawElementsInstancedBaseVertex_is_loaded(&self) -> bool {
12662 !self
12663 .glDrawElementsInstancedBaseVertex_p
12664 .load(RELAX)
12665 .is_null()
12666 }
12667 /// [glDrawElementsInstancedBaseVertexBaseInstance](http://docs.gl/gl4/glDrawElementsInstancedBaseVertexBaseInstance)(mode, count, type_, indices, instancecount, basevertex, baseinstance)
12668 /// * `mode` group: PrimitiveType
12669 /// * `type_` group: DrawElementsType
12670 /// * `indices` len: count
12671 #[cfg_attr(feature = "inline", inline)]
12672 #[cfg_attr(feature = "inline_always", inline(always))]
12673 pub unsafe fn DrawElementsInstancedBaseVertexBaseInstance(
12674 &self,
12675 mode: GLenum,
12676 count: GLsizei,
12677 type_: GLenum,
12678 indices: *const c_void,
12679 instancecount: GLsizei,
12680 basevertex: GLint,
12681 baseinstance: GLuint,
12682 ) {
12683 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12684 {
12685 trace!("calling gl.DrawElementsInstancedBaseVertexBaseInstance({:#X}, {:?}, {:#X}, {:p}, {:?}, {:?}, {:?});", mode, count, type_, indices, instancecount, basevertex, baseinstance);
12686 }
12687 let out = call_atomic_ptr_7arg(
12688 "glDrawElementsInstancedBaseVertexBaseInstance",
12689 &self.glDrawElementsInstancedBaseVertexBaseInstance_p,
12690 mode,
12691 count,
12692 type_,
12693 indices,
12694 instancecount,
12695 basevertex,
12696 baseinstance,
12697 );
12698 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12699 {
12700 self.automatic_glGetError("glDrawElementsInstancedBaseVertexBaseInstance");
12701 }
12702 out
12703 }
12704 #[doc(hidden)]
12705 pub unsafe fn DrawElementsInstancedBaseVertexBaseInstance_load_with_dyn(
12706 &self,
12707 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12708 ) -> bool {
12709 load_dyn_name_atomic_ptr(
12710 get_proc_address,
12711 b"glDrawElementsInstancedBaseVertexBaseInstance\0",
12712 &self.glDrawElementsInstancedBaseVertexBaseInstance_p,
12713 )
12714 }
12715 #[inline]
12716 #[doc(hidden)]
12717 pub fn DrawElementsInstancedBaseVertexBaseInstance_is_loaded(&self) -> bool {
12718 !self
12719 .glDrawElementsInstancedBaseVertexBaseInstance_p
12720 .load(RELAX)
12721 .is_null()
12722 }
12723 /// [glDrawRangeElements](http://docs.gl/gl4/glDrawRangeElements)(mode, start, end, count, type_, indices)
12724 /// * `mode` group: PrimitiveType
12725 /// * `type_` group: DrawElementsType
12726 /// * `indices` len: COMPSIZE(count,type)
12727 #[cfg_attr(feature = "inline", inline)]
12728 #[cfg_attr(feature = "inline_always", inline(always))]
12729 pub unsafe fn DrawRangeElements(
12730 &self,
12731 mode: GLenum,
12732 start: GLuint,
12733 end: GLuint,
12734 count: GLsizei,
12735 type_: GLenum,
12736 indices: *const c_void,
12737 ) {
12738 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12739 {
12740 trace!(
12741 "calling gl.DrawRangeElements({:#X}, {:?}, {:?}, {:?}, {:#X}, {:p});",
12742 mode,
12743 start,
12744 end,
12745 count,
12746 type_,
12747 indices
12748 );
12749 }
12750 let out = call_atomic_ptr_6arg(
12751 "glDrawRangeElements",
12752 &self.glDrawRangeElements_p,
12753 mode,
12754 start,
12755 end,
12756 count,
12757 type_,
12758 indices,
12759 );
12760 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12761 {
12762 self.automatic_glGetError("glDrawRangeElements");
12763 }
12764 out
12765 }
12766 #[doc(hidden)]
12767 pub unsafe fn DrawRangeElements_load_with_dyn(
12768 &self,
12769 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12770 ) -> bool {
12771 load_dyn_name_atomic_ptr(
12772 get_proc_address,
12773 b"glDrawRangeElements\0",
12774 &self.glDrawRangeElements_p,
12775 )
12776 }
12777 #[inline]
12778 #[doc(hidden)]
12779 pub fn DrawRangeElements_is_loaded(&self) -> bool {
12780 !self.glDrawRangeElements_p.load(RELAX).is_null()
12781 }
12782 /// [glDrawRangeElementsBaseVertex](http://docs.gl/gl4/glDrawRangeElementsBaseVertex)(mode, start, end, count, type_, indices, basevertex)
12783 /// * `mode` group: PrimitiveType
12784 /// * `type_` group: DrawElementsType
12785 /// * `indices` len: COMPSIZE(count,type)
12786 #[cfg_attr(feature = "inline", inline)]
12787 #[cfg_attr(feature = "inline_always", inline(always))]
12788 pub unsafe fn DrawRangeElementsBaseVertex(
12789 &self,
12790 mode: GLenum,
12791 start: GLuint,
12792 end: GLuint,
12793 count: GLsizei,
12794 type_: GLenum,
12795 indices: *const c_void,
12796 basevertex: GLint,
12797 ) {
12798 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12799 {
12800 trace!("calling gl.DrawRangeElementsBaseVertex({:#X}, {:?}, {:?}, {:?}, {:#X}, {:p}, {:?});", mode, start, end, count, type_, indices, basevertex);
12801 }
12802 let out = call_atomic_ptr_7arg(
12803 "glDrawRangeElementsBaseVertex",
12804 &self.glDrawRangeElementsBaseVertex_p,
12805 mode,
12806 start,
12807 end,
12808 count,
12809 type_,
12810 indices,
12811 basevertex,
12812 );
12813 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12814 {
12815 self.automatic_glGetError("glDrawRangeElementsBaseVertex");
12816 }
12817 out
12818 }
12819 #[doc(hidden)]
12820 pub unsafe fn DrawRangeElementsBaseVertex_load_with_dyn(
12821 &self,
12822 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12823 ) -> bool {
12824 load_dyn_name_atomic_ptr(
12825 get_proc_address,
12826 b"glDrawRangeElementsBaseVertex\0",
12827 &self.glDrawRangeElementsBaseVertex_p,
12828 )
12829 }
12830 #[inline]
12831 #[doc(hidden)]
12832 pub fn DrawRangeElementsBaseVertex_is_loaded(&self) -> bool {
12833 !self.glDrawRangeElementsBaseVertex_p.load(RELAX).is_null()
12834 }
12835 /// [glDrawTransformFeedback](http://docs.gl/gl4/glDrawTransformFeedback)(mode, id)
12836 /// * `mode` group: PrimitiveType
12837 #[cfg_attr(feature = "inline", inline)]
12838 #[cfg_attr(feature = "inline_always", inline(always))]
12839 pub unsafe fn DrawTransformFeedback(&self, mode: GLenum, id: GLuint) {
12840 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12841 {
12842 trace!("calling gl.DrawTransformFeedback({:#X}, {:?});", mode, id);
12843 }
12844 let out = call_atomic_ptr_2arg(
12845 "glDrawTransformFeedback",
12846 &self.glDrawTransformFeedback_p,
12847 mode,
12848 id,
12849 );
12850 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12851 {
12852 self.automatic_glGetError("glDrawTransformFeedback");
12853 }
12854 out
12855 }
12856 #[doc(hidden)]
12857 pub unsafe fn DrawTransformFeedback_load_with_dyn(
12858 &self,
12859 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12860 ) -> bool {
12861 load_dyn_name_atomic_ptr(
12862 get_proc_address,
12863 b"glDrawTransformFeedback\0",
12864 &self.glDrawTransformFeedback_p,
12865 )
12866 }
12867 #[inline]
12868 #[doc(hidden)]
12869 pub fn DrawTransformFeedback_is_loaded(&self) -> bool {
12870 !self.glDrawTransformFeedback_p.load(RELAX).is_null()
12871 }
12872 /// [glDrawTransformFeedbackInstanced](http://docs.gl/gl4/glDrawTransformFeedbackInstanced)(mode, id, instancecount)
12873 /// * `mode` group: PrimitiveType
12874 #[cfg_attr(feature = "inline", inline)]
12875 #[cfg_attr(feature = "inline_always", inline(always))]
12876 pub unsafe fn DrawTransformFeedbackInstanced(
12877 &self,
12878 mode: GLenum,
12879 id: GLuint,
12880 instancecount: GLsizei,
12881 ) {
12882 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12883 {
12884 trace!(
12885 "calling gl.DrawTransformFeedbackInstanced({:#X}, {:?}, {:?});",
12886 mode,
12887 id,
12888 instancecount
12889 );
12890 }
12891 let out = call_atomic_ptr_3arg(
12892 "glDrawTransformFeedbackInstanced",
12893 &self.glDrawTransformFeedbackInstanced_p,
12894 mode,
12895 id,
12896 instancecount,
12897 );
12898 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12899 {
12900 self.automatic_glGetError("glDrawTransformFeedbackInstanced");
12901 }
12902 out
12903 }
12904 #[doc(hidden)]
12905 pub unsafe fn DrawTransformFeedbackInstanced_load_with_dyn(
12906 &self,
12907 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12908 ) -> bool {
12909 load_dyn_name_atomic_ptr(
12910 get_proc_address,
12911 b"glDrawTransformFeedbackInstanced\0",
12912 &self.glDrawTransformFeedbackInstanced_p,
12913 )
12914 }
12915 #[inline]
12916 #[doc(hidden)]
12917 pub fn DrawTransformFeedbackInstanced_is_loaded(&self) -> bool {
12918 !self
12919 .glDrawTransformFeedbackInstanced_p
12920 .load(RELAX)
12921 .is_null()
12922 }
12923 /// [glDrawTransformFeedbackStream](http://docs.gl/gl4/glDrawTransformFeedbackStream)(mode, id, stream)
12924 /// * `mode` group: PrimitiveType
12925 #[cfg_attr(feature = "inline", inline)]
12926 #[cfg_attr(feature = "inline_always", inline(always))]
12927 pub unsafe fn DrawTransformFeedbackStream(&self, mode: GLenum, id: GLuint, stream: GLuint) {
12928 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12929 {
12930 trace!(
12931 "calling gl.DrawTransformFeedbackStream({:#X}, {:?}, {:?});",
12932 mode,
12933 id,
12934 stream
12935 );
12936 }
12937 let out = call_atomic_ptr_3arg(
12938 "glDrawTransformFeedbackStream",
12939 &self.glDrawTransformFeedbackStream_p,
12940 mode,
12941 id,
12942 stream,
12943 );
12944 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12945 {
12946 self.automatic_glGetError("glDrawTransformFeedbackStream");
12947 }
12948 out
12949 }
12950 #[doc(hidden)]
12951 pub unsafe fn DrawTransformFeedbackStream_load_with_dyn(
12952 &self,
12953 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12954 ) -> bool {
12955 load_dyn_name_atomic_ptr(
12956 get_proc_address,
12957 b"glDrawTransformFeedbackStream\0",
12958 &self.glDrawTransformFeedbackStream_p,
12959 )
12960 }
12961 #[inline]
12962 #[doc(hidden)]
12963 pub fn DrawTransformFeedbackStream_is_loaded(&self) -> bool {
12964 !self.glDrawTransformFeedbackStream_p.load(RELAX).is_null()
12965 }
12966 /// [glDrawTransformFeedbackStreamInstanced](http://docs.gl/gl4/glDrawTransformFeedbackStreamInstanced)(mode, id, stream, instancecount)
12967 /// * `mode` group: PrimitiveType
12968 #[cfg_attr(feature = "inline", inline)]
12969 #[cfg_attr(feature = "inline_always", inline(always))]
12970 pub unsafe fn DrawTransformFeedbackStreamInstanced(
12971 &self,
12972 mode: GLenum,
12973 id: GLuint,
12974 stream: GLuint,
12975 instancecount: GLsizei,
12976 ) {
12977 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12978 {
12979 trace!(
12980 "calling gl.DrawTransformFeedbackStreamInstanced({:#X}, {:?}, {:?}, {:?});",
12981 mode,
12982 id,
12983 stream,
12984 instancecount
12985 );
12986 }
12987 let out = call_atomic_ptr_4arg(
12988 "glDrawTransformFeedbackStreamInstanced",
12989 &self.glDrawTransformFeedbackStreamInstanced_p,
12990 mode,
12991 id,
12992 stream,
12993 instancecount,
12994 );
12995 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12996 {
12997 self.automatic_glGetError("glDrawTransformFeedbackStreamInstanced");
12998 }
12999 out
13000 }
13001 #[doc(hidden)]
13002 pub unsafe fn DrawTransformFeedbackStreamInstanced_load_with_dyn(
13003 &self,
13004 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13005 ) -> bool {
13006 load_dyn_name_atomic_ptr(
13007 get_proc_address,
13008 b"glDrawTransformFeedbackStreamInstanced\0",
13009 &self.glDrawTransformFeedbackStreamInstanced_p,
13010 )
13011 }
13012 #[inline]
13013 #[doc(hidden)]
13014 pub fn DrawTransformFeedbackStreamInstanced_is_loaded(&self) -> bool {
13015 !self
13016 .glDrawTransformFeedbackStreamInstanced_p
13017 .load(RELAX)
13018 .is_null()
13019 }
13020 /// [glEnable](http://docs.gl/gl4/glEnable)(cap)
13021 /// * `cap` group: EnableCap
13022 #[cfg_attr(feature = "inline", inline)]
13023 #[cfg_attr(feature = "inline_always", inline(always))]
13024 pub unsafe fn Enable(&self, cap: GLenum) {
13025 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13026 {
13027 trace!("calling gl.Enable({:#X});", cap);
13028 }
13029 let out = call_atomic_ptr_1arg("glEnable", &self.glEnable_p, cap);
13030 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13031 {
13032 self.automatic_glGetError("glEnable");
13033 }
13034 out
13035 }
13036 #[doc(hidden)]
13037 pub unsafe fn Enable_load_with_dyn(
13038 &self,
13039 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13040 ) -> bool {
13041 load_dyn_name_atomic_ptr(get_proc_address, b"glEnable\0", &self.glEnable_p)
13042 }
13043 #[inline]
13044 #[doc(hidden)]
13045 pub fn Enable_is_loaded(&self) -> bool {
13046 !self.glEnable_p.load(RELAX).is_null()
13047 }
13048 /// [glEnableIndexedEXT](http://docs.gl/gl4/glEnableIndexedEXT)(target, index)
13049 /// * `target` group: EnableCap
13050 /// * alias of: [`glEnablei`]
13051 #[cfg_attr(feature = "inline", inline)]
13052 #[cfg_attr(feature = "inline_always", inline(always))]
13053 pub unsafe fn EnableIndexedEXT(&self, target: GLenum, index: GLuint) {
13054 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13055 {
13056 trace!("calling gl.EnableIndexedEXT({:#X}, {:?});", target, index);
13057 }
13058 let out = call_atomic_ptr_2arg(
13059 "glEnableIndexedEXT",
13060 &self.glEnableIndexedEXT_p,
13061 target,
13062 index,
13063 );
13064 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13065 {
13066 self.automatic_glGetError("glEnableIndexedEXT");
13067 }
13068 out
13069 }
13070
13071 #[doc(hidden)]
13072 pub unsafe fn EnableIndexedEXT_load_with_dyn(
13073 &self,
13074 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13075 ) -> bool {
13076 load_dyn_name_atomic_ptr(
13077 get_proc_address,
13078 b"glEnableIndexedEXT\0",
13079 &self.glEnableIndexedEXT_p,
13080 )
13081 }
13082 #[inline]
13083 #[doc(hidden)]
13084
13085 pub fn EnableIndexedEXT_is_loaded(&self) -> bool {
13086 !self.glEnableIndexedEXT_p.load(RELAX).is_null()
13087 }
13088 /// [glEnableVertexArrayAttrib](http://docs.gl/gl4/glEnableVertexArrayAttrib)(vaobj, index)
13089 #[cfg_attr(feature = "inline", inline)]
13090 #[cfg_attr(feature = "inline_always", inline(always))]
13091 pub unsafe fn EnableVertexArrayAttrib(&self, vaobj: GLuint, index: GLuint) {
13092 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13093 {
13094 trace!(
13095 "calling gl.EnableVertexArrayAttrib({:?}, {:?});",
13096 vaobj,
13097 index
13098 );
13099 }
13100 let out = call_atomic_ptr_2arg(
13101 "glEnableVertexArrayAttrib",
13102 &self.glEnableVertexArrayAttrib_p,
13103 vaobj,
13104 index,
13105 );
13106 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13107 {
13108 self.automatic_glGetError("glEnableVertexArrayAttrib");
13109 }
13110 out
13111 }
13112 #[doc(hidden)]
13113 pub unsafe fn EnableVertexArrayAttrib_load_with_dyn(
13114 &self,
13115 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13116 ) -> bool {
13117 load_dyn_name_atomic_ptr(
13118 get_proc_address,
13119 b"glEnableVertexArrayAttrib\0",
13120 &self.glEnableVertexArrayAttrib_p,
13121 )
13122 }
13123 #[inline]
13124 #[doc(hidden)]
13125 pub fn EnableVertexArrayAttrib_is_loaded(&self) -> bool {
13126 !self.glEnableVertexArrayAttrib_p.load(RELAX).is_null()
13127 }
13128 /// [glEnableVertexAttribArray](http://docs.gl/gl4/glEnableVertexAttribArray)(index)
13129 #[cfg_attr(feature = "inline", inline)]
13130 #[cfg_attr(feature = "inline_always", inline(always))]
13131 pub unsafe fn EnableVertexAttribArray(&self, index: GLuint) {
13132 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13133 {
13134 trace!("calling gl.EnableVertexAttribArray({:?});", index);
13135 }
13136 let out = call_atomic_ptr_1arg(
13137 "glEnableVertexAttribArray",
13138 &self.glEnableVertexAttribArray_p,
13139 index,
13140 );
13141 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13142 {
13143 self.automatic_glGetError("glEnableVertexAttribArray");
13144 }
13145 out
13146 }
13147 #[doc(hidden)]
13148 pub unsafe fn EnableVertexAttribArray_load_with_dyn(
13149 &self,
13150 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13151 ) -> bool {
13152 load_dyn_name_atomic_ptr(
13153 get_proc_address,
13154 b"glEnableVertexAttribArray\0",
13155 &self.glEnableVertexAttribArray_p,
13156 )
13157 }
13158 #[inline]
13159 #[doc(hidden)]
13160 pub fn EnableVertexAttribArray_is_loaded(&self) -> bool {
13161 !self.glEnableVertexAttribArray_p.load(RELAX).is_null()
13162 }
13163 /// [glEnablei](http://docs.gl/gl4/glEnable)(target, index)
13164 /// * `target` group: EnableCap
13165 #[cfg_attr(feature = "inline", inline)]
13166 #[cfg_attr(feature = "inline_always", inline(always))]
13167 pub unsafe fn Enablei(&self, target: GLenum, index: GLuint) {
13168 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13169 {
13170 trace!("calling gl.Enablei({:#X}, {:?});", target, index);
13171 }
13172 let out = call_atomic_ptr_2arg("glEnablei", &self.glEnablei_p, target, index);
13173 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13174 {
13175 self.automatic_glGetError("glEnablei");
13176 }
13177 out
13178 }
13179 #[doc(hidden)]
13180 pub unsafe fn Enablei_load_with_dyn(
13181 &self,
13182 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13183 ) -> bool {
13184 load_dyn_name_atomic_ptr(get_proc_address, b"glEnablei\0", &self.glEnablei_p)
13185 }
13186 #[inline]
13187 #[doc(hidden)]
13188 pub fn Enablei_is_loaded(&self) -> bool {
13189 !self.glEnablei_p.load(RELAX).is_null()
13190 }
13191 /// [glEndConditionalRender](http://docs.gl/gl4/glEndConditionalRender)()
13192 #[cfg_attr(feature = "inline", inline)]
13193 #[cfg_attr(feature = "inline_always", inline(always))]
13194 pub unsafe fn EndConditionalRender(&self) {
13195 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13196 {
13197 trace!("calling gl.EndConditionalRender();",);
13198 }
13199 let out =
13200 call_atomic_ptr_0arg("glEndConditionalRender", &self.glEndConditionalRender_p);
13201 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13202 {
13203 self.automatic_glGetError("glEndConditionalRender");
13204 }
13205 out
13206 }
13207 #[doc(hidden)]
13208 pub unsafe fn EndConditionalRender_load_with_dyn(
13209 &self,
13210 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13211 ) -> bool {
13212 load_dyn_name_atomic_ptr(
13213 get_proc_address,
13214 b"glEndConditionalRender\0",
13215 &self.glEndConditionalRender_p,
13216 )
13217 }
13218 #[inline]
13219 #[doc(hidden)]
13220 pub fn EndConditionalRender_is_loaded(&self) -> bool {
13221 !self.glEndConditionalRender_p.load(RELAX).is_null()
13222 }
13223 /// [glEndQuery](http://docs.gl/gl4/glEndQuery)(target)
13224 /// * `target` group: QueryTarget
13225 #[cfg_attr(feature = "inline", inline)]
13226 #[cfg_attr(feature = "inline_always", inline(always))]
13227 pub unsafe fn EndQuery(&self, target: GLenum) {
13228 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13229 {
13230 trace!("calling gl.EndQuery({:#X});", target);
13231 }
13232 let out = call_atomic_ptr_1arg("glEndQuery", &self.glEndQuery_p, target);
13233 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13234 {
13235 self.automatic_glGetError("glEndQuery");
13236 }
13237 out
13238 }
13239 #[doc(hidden)]
13240 pub unsafe fn EndQuery_load_with_dyn(
13241 &self,
13242 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13243 ) -> bool {
13244 load_dyn_name_atomic_ptr(get_proc_address, b"glEndQuery\0", &self.glEndQuery_p)
13245 }
13246 #[inline]
13247 #[doc(hidden)]
13248 pub fn EndQuery_is_loaded(&self) -> bool {
13249 !self.glEndQuery_p.load(RELAX).is_null()
13250 }
13251 /// [glEndQueryIndexed](http://docs.gl/gl4/glEndQueryIndexed)(target, index)
13252 /// * `target` group: QueryTarget
13253 #[cfg_attr(feature = "inline", inline)]
13254 #[cfg_attr(feature = "inline_always", inline(always))]
13255 pub unsafe fn EndQueryIndexed(&self, target: GLenum, index: GLuint) {
13256 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13257 {
13258 trace!("calling gl.EndQueryIndexed({:#X}, {:?});", target, index);
13259 }
13260 let out = call_atomic_ptr_2arg(
13261 "glEndQueryIndexed",
13262 &self.glEndQueryIndexed_p,
13263 target,
13264 index,
13265 );
13266 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13267 {
13268 self.automatic_glGetError("glEndQueryIndexed");
13269 }
13270 out
13271 }
13272 #[doc(hidden)]
13273 pub unsafe fn EndQueryIndexed_load_with_dyn(
13274 &self,
13275 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13276 ) -> bool {
13277 load_dyn_name_atomic_ptr(
13278 get_proc_address,
13279 b"glEndQueryIndexed\0",
13280 &self.glEndQueryIndexed_p,
13281 )
13282 }
13283 #[inline]
13284 #[doc(hidden)]
13285 pub fn EndQueryIndexed_is_loaded(&self) -> bool {
13286 !self.glEndQueryIndexed_p.load(RELAX).is_null()
13287 }
13288 /// [glEndTransformFeedback](http://docs.gl/gl4/glEndTransformFeedback)()
13289 #[cfg_attr(feature = "inline", inline)]
13290 #[cfg_attr(feature = "inline_always", inline(always))]
13291 pub unsafe fn EndTransformFeedback(&self) {
13292 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13293 {
13294 trace!("calling gl.EndTransformFeedback();",);
13295 }
13296 let out =
13297 call_atomic_ptr_0arg("glEndTransformFeedback", &self.glEndTransformFeedback_p);
13298 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13299 {
13300 self.automatic_glGetError("glEndTransformFeedback");
13301 }
13302 out
13303 }
13304 #[doc(hidden)]
13305 pub unsafe fn EndTransformFeedback_load_with_dyn(
13306 &self,
13307 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13308 ) -> bool {
13309 load_dyn_name_atomic_ptr(
13310 get_proc_address,
13311 b"glEndTransformFeedback\0",
13312 &self.glEndTransformFeedback_p,
13313 )
13314 }
13315 #[inline]
13316 #[doc(hidden)]
13317 pub fn EndTransformFeedback_is_loaded(&self) -> bool {
13318 !self.glEndTransformFeedback_p.load(RELAX).is_null()
13319 }
13320 /// [glFenceSync](http://docs.gl/gl4/glFenceSync)(condition, flags)
13321 /// * `condition` group: SyncCondition
13322 /// * `flags` group: SyncBehaviorFlags
13323 /// * return value group: sync
13324 #[cfg_attr(feature = "inline", inline)]
13325 #[cfg_attr(feature = "inline_always", inline(always))]
13326 pub unsafe fn FenceSync(&self, condition: GLenum, flags: GLbitfield) -> GLsync {
13327 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13328 {
13329 trace!("calling gl.FenceSync({:#X}, {:?});", condition, flags);
13330 }
13331 let out = call_atomic_ptr_2arg("glFenceSync", &self.glFenceSync_p, condition, flags);
13332 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13333 {
13334 self.automatic_glGetError("glFenceSync");
13335 }
13336 out
13337 }
13338 #[doc(hidden)]
13339 pub unsafe fn FenceSync_load_with_dyn(
13340 &self,
13341 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13342 ) -> bool {
13343 load_dyn_name_atomic_ptr(get_proc_address, b"glFenceSync\0", &self.glFenceSync_p)
13344 }
13345 #[inline]
13346 #[doc(hidden)]
13347 pub fn FenceSync_is_loaded(&self) -> bool {
13348 !self.glFenceSync_p.load(RELAX).is_null()
13349 }
13350 /// [glFinish](http://docs.gl/gl4/glFinish)()
13351 #[cfg_attr(feature = "inline", inline)]
13352 #[cfg_attr(feature = "inline_always", inline(always))]
13353 pub unsafe fn Finish(&self) {
13354 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13355 {
13356 trace!("calling gl.Finish();",);
13357 }
13358 let out = call_atomic_ptr_0arg("glFinish", &self.glFinish_p);
13359 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13360 {
13361 self.automatic_glGetError("glFinish");
13362 }
13363 out
13364 }
13365 #[doc(hidden)]
13366 pub unsafe fn Finish_load_with_dyn(
13367 &self,
13368 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13369 ) -> bool {
13370 load_dyn_name_atomic_ptr(get_proc_address, b"glFinish\0", &self.glFinish_p)
13371 }
13372 #[inline]
13373 #[doc(hidden)]
13374 pub fn Finish_is_loaded(&self) -> bool {
13375 !self.glFinish_p.load(RELAX).is_null()
13376 }
13377 /// [glFlush](http://docs.gl/gl4/glFlush)()
13378 #[cfg_attr(feature = "inline", inline)]
13379 #[cfg_attr(feature = "inline_always", inline(always))]
13380 pub unsafe fn Flush(&self) {
13381 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13382 {
13383 trace!("calling gl.Flush();",);
13384 }
13385 let out = call_atomic_ptr_0arg("glFlush", &self.glFlush_p);
13386 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13387 {
13388 self.automatic_glGetError("glFlush");
13389 }
13390 out
13391 }
13392 #[doc(hidden)]
13393 pub unsafe fn Flush_load_with_dyn(
13394 &self,
13395 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13396 ) -> bool {
13397 load_dyn_name_atomic_ptr(get_proc_address, b"glFlush\0", &self.glFlush_p)
13398 }
13399 #[inline]
13400 #[doc(hidden)]
13401 pub fn Flush_is_loaded(&self) -> bool {
13402 !self.glFlush_p.load(RELAX).is_null()
13403 }
13404 /// [glFlushMappedBufferRange](http://docs.gl/gl4/glFlushMappedBufferRange)(target, offset, length)
13405 /// * `target` group: BufferTargetARB
13406 /// * `offset` group: BufferOffset
13407 /// * `length` group: BufferSize
13408 #[cfg_attr(feature = "inline", inline)]
13409 #[cfg_attr(feature = "inline_always", inline(always))]
13410 pub unsafe fn FlushMappedBufferRange(
13411 &self,
13412 target: GLenum,
13413 offset: GLintptr,
13414 length: GLsizeiptr,
13415 ) {
13416 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13417 {
13418 trace!(
13419 "calling gl.FlushMappedBufferRange({:#X}, {:?}, {:?});",
13420 target,
13421 offset,
13422 length
13423 );
13424 }
13425 let out = call_atomic_ptr_3arg(
13426 "glFlushMappedBufferRange",
13427 &self.glFlushMappedBufferRange_p,
13428 target,
13429 offset,
13430 length,
13431 );
13432 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13433 {
13434 self.automatic_glGetError("glFlushMappedBufferRange");
13435 }
13436 out
13437 }
13438 #[doc(hidden)]
13439 pub unsafe fn FlushMappedBufferRange_load_with_dyn(
13440 &self,
13441 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13442 ) -> bool {
13443 load_dyn_name_atomic_ptr(
13444 get_proc_address,
13445 b"glFlushMappedBufferRange\0",
13446 &self.glFlushMappedBufferRange_p,
13447 )
13448 }
13449 #[inline]
13450 #[doc(hidden)]
13451 pub fn FlushMappedBufferRange_is_loaded(&self) -> bool {
13452 !self.glFlushMappedBufferRange_p.load(RELAX).is_null()
13453 }
13454 /// [glFlushMappedNamedBufferRange](http://docs.gl/gl4/glFlushMappedNamedBufferRange)(buffer, offset, length)
13455 /// * `length` group: BufferSize
13456 #[cfg_attr(feature = "inline", inline)]
13457 #[cfg_attr(feature = "inline_always", inline(always))]
13458 pub unsafe fn FlushMappedNamedBufferRange(
13459 &self,
13460 buffer: GLuint,
13461 offset: GLintptr,
13462 length: GLsizeiptr,
13463 ) {
13464 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13465 {
13466 trace!(
13467 "calling gl.FlushMappedNamedBufferRange({:?}, {:?}, {:?});",
13468 buffer,
13469 offset,
13470 length
13471 );
13472 }
13473 let out = call_atomic_ptr_3arg(
13474 "glFlushMappedNamedBufferRange",
13475 &self.glFlushMappedNamedBufferRange_p,
13476 buffer,
13477 offset,
13478 length,
13479 );
13480 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13481 {
13482 self.automatic_glGetError("glFlushMappedNamedBufferRange");
13483 }
13484 out
13485 }
13486 #[doc(hidden)]
13487 pub unsafe fn FlushMappedNamedBufferRange_load_with_dyn(
13488 &self,
13489 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13490 ) -> bool {
13491 load_dyn_name_atomic_ptr(
13492 get_proc_address,
13493 b"glFlushMappedNamedBufferRange\0",
13494 &self.glFlushMappedNamedBufferRange_p,
13495 )
13496 }
13497 #[inline]
13498 #[doc(hidden)]
13499 pub fn FlushMappedNamedBufferRange_is_loaded(&self) -> bool {
13500 !self.glFlushMappedNamedBufferRange_p.load(RELAX).is_null()
13501 }
13502 /// [glFramebufferParameteri](http://docs.gl/gl4/glFramebufferParameter)(target, pname, param)
13503 /// * `target` group: FramebufferTarget
13504 /// * `pname` group: FramebufferParameterName
13505 #[cfg_attr(feature = "inline", inline)]
13506 #[cfg_attr(feature = "inline_always", inline(always))]
13507 pub unsafe fn FramebufferParameteri(&self, target: GLenum, pname: GLenum, param: GLint) {
13508 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13509 {
13510 trace!(
13511 "calling gl.FramebufferParameteri({:#X}, {:#X}, {:?});",
13512 target,
13513 pname,
13514 param
13515 );
13516 }
13517 let out = call_atomic_ptr_3arg(
13518 "glFramebufferParameteri",
13519 &self.glFramebufferParameteri_p,
13520 target,
13521 pname,
13522 param,
13523 );
13524 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13525 {
13526 self.automatic_glGetError("glFramebufferParameteri");
13527 }
13528 out
13529 }
13530 #[doc(hidden)]
13531 pub unsafe fn FramebufferParameteri_load_with_dyn(
13532 &self,
13533 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13534 ) -> bool {
13535 load_dyn_name_atomic_ptr(
13536 get_proc_address,
13537 b"glFramebufferParameteri\0",
13538 &self.glFramebufferParameteri_p,
13539 )
13540 }
13541 #[inline]
13542 #[doc(hidden)]
13543 pub fn FramebufferParameteri_is_loaded(&self) -> bool {
13544 !self.glFramebufferParameteri_p.load(RELAX).is_null()
13545 }
13546 /// [glFramebufferRenderbuffer](http://docs.gl/gl4/glFramebufferRenderbuffer)(target, attachment, renderbuffertarget, renderbuffer)
13547 /// * `target` group: FramebufferTarget
13548 /// * `attachment` group: FramebufferAttachment
13549 /// * `renderbuffertarget` group: RenderbufferTarget
13550 #[cfg_attr(feature = "inline", inline)]
13551 #[cfg_attr(feature = "inline_always", inline(always))]
13552 pub unsafe fn FramebufferRenderbuffer(
13553 &self,
13554 target: GLenum,
13555 attachment: GLenum,
13556 renderbuffertarget: GLenum,
13557 renderbuffer: GLuint,
13558 ) {
13559 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13560 {
13561 trace!(
13562 "calling gl.FramebufferRenderbuffer({:#X}, {:#X}, {:#X}, {:?});",
13563 target,
13564 attachment,
13565 renderbuffertarget,
13566 renderbuffer
13567 );
13568 }
13569 let out = call_atomic_ptr_4arg(
13570 "glFramebufferRenderbuffer",
13571 &self.glFramebufferRenderbuffer_p,
13572 target,
13573 attachment,
13574 renderbuffertarget,
13575 renderbuffer,
13576 );
13577 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13578 {
13579 self.automatic_glGetError("glFramebufferRenderbuffer");
13580 }
13581 out
13582 }
13583 #[doc(hidden)]
13584 pub unsafe fn FramebufferRenderbuffer_load_with_dyn(
13585 &self,
13586 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13587 ) -> bool {
13588 load_dyn_name_atomic_ptr(
13589 get_proc_address,
13590 b"glFramebufferRenderbuffer\0",
13591 &self.glFramebufferRenderbuffer_p,
13592 )
13593 }
13594 #[inline]
13595 #[doc(hidden)]
13596 pub fn FramebufferRenderbuffer_is_loaded(&self) -> bool {
13597 !self.glFramebufferRenderbuffer_p.load(RELAX).is_null()
13598 }
13599 /// [glFramebufferTexture](http://docs.gl/gl4/glFramebufferTexture)(target, attachment, texture, level)
13600 /// * `target` group: FramebufferTarget
13601 /// * `attachment` group: FramebufferAttachment
13602 #[cfg_attr(feature = "inline", inline)]
13603 #[cfg_attr(feature = "inline_always", inline(always))]
13604 pub unsafe fn FramebufferTexture(
13605 &self,
13606 target: GLenum,
13607 attachment: GLenum,
13608 texture: GLuint,
13609 level: GLint,
13610 ) {
13611 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13612 {
13613 trace!(
13614 "calling gl.FramebufferTexture({:#X}, {:#X}, {:?}, {:?});",
13615 target,
13616 attachment,
13617 texture,
13618 level
13619 );
13620 }
13621 let out = call_atomic_ptr_4arg(
13622 "glFramebufferTexture",
13623 &self.glFramebufferTexture_p,
13624 target,
13625 attachment,
13626 texture,
13627 level,
13628 );
13629 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13630 {
13631 self.automatic_glGetError("glFramebufferTexture");
13632 }
13633 out
13634 }
13635 #[doc(hidden)]
13636 pub unsafe fn FramebufferTexture_load_with_dyn(
13637 &self,
13638 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13639 ) -> bool {
13640 load_dyn_name_atomic_ptr(
13641 get_proc_address,
13642 b"glFramebufferTexture\0",
13643 &self.glFramebufferTexture_p,
13644 )
13645 }
13646 #[inline]
13647 #[doc(hidden)]
13648 pub fn FramebufferTexture_is_loaded(&self) -> bool {
13649 !self.glFramebufferTexture_p.load(RELAX).is_null()
13650 }
13651 /// [glFramebufferTexture1D](http://docs.gl/gl4/glFramebufferTexture1D)(target, attachment, textarget, texture, level)
13652 /// * `target` group: FramebufferTarget
13653 /// * `attachment` group: FramebufferAttachment
13654 /// * `textarget` group: TextureTarget
13655 #[cfg_attr(feature = "inline", inline)]
13656 #[cfg_attr(feature = "inline_always", inline(always))]
13657 pub unsafe fn FramebufferTexture1D(
13658 &self,
13659 target: GLenum,
13660 attachment: GLenum,
13661 textarget: GLenum,
13662 texture: GLuint,
13663 level: GLint,
13664 ) {
13665 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13666 {
13667 trace!(
13668 "calling gl.FramebufferTexture1D({:#X}, {:#X}, {:#X}, {:?}, {:?});",
13669 target,
13670 attachment,
13671 textarget,
13672 texture,
13673 level
13674 );
13675 }
13676 let out = call_atomic_ptr_5arg(
13677 "glFramebufferTexture1D",
13678 &self.glFramebufferTexture1D_p,
13679 target,
13680 attachment,
13681 textarget,
13682 texture,
13683 level,
13684 );
13685 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13686 {
13687 self.automatic_glGetError("glFramebufferTexture1D");
13688 }
13689 out
13690 }
13691 #[doc(hidden)]
13692 pub unsafe fn FramebufferTexture1D_load_with_dyn(
13693 &self,
13694 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13695 ) -> bool {
13696 load_dyn_name_atomic_ptr(
13697 get_proc_address,
13698 b"glFramebufferTexture1D\0",
13699 &self.glFramebufferTexture1D_p,
13700 )
13701 }
13702 #[inline]
13703 #[doc(hidden)]
13704 pub fn FramebufferTexture1D_is_loaded(&self) -> bool {
13705 !self.glFramebufferTexture1D_p.load(RELAX).is_null()
13706 }
13707 /// [glFramebufferTexture2D](http://docs.gl/gl4/glFramebufferTexture2D)(target, attachment, textarget, texture, level)
13708 /// * `target` group: FramebufferTarget
13709 /// * `attachment` group: FramebufferAttachment
13710 /// * `textarget` group: TextureTarget
13711 #[cfg_attr(feature = "inline", inline)]
13712 #[cfg_attr(feature = "inline_always", inline(always))]
13713 pub unsafe fn FramebufferTexture2D(
13714 &self,
13715 target: GLenum,
13716 attachment: GLenum,
13717 textarget: GLenum,
13718 texture: GLuint,
13719 level: GLint,
13720 ) {
13721 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13722 {
13723 trace!(
13724 "calling gl.FramebufferTexture2D({:#X}, {:#X}, {:#X}, {:?}, {:?});",
13725 target,
13726 attachment,
13727 textarget,
13728 texture,
13729 level
13730 );
13731 }
13732 let out = call_atomic_ptr_5arg(
13733 "glFramebufferTexture2D",
13734 &self.glFramebufferTexture2D_p,
13735 target,
13736 attachment,
13737 textarget,
13738 texture,
13739 level,
13740 );
13741 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13742 {
13743 self.automatic_glGetError("glFramebufferTexture2D");
13744 }
13745 out
13746 }
13747 #[doc(hidden)]
13748 pub unsafe fn FramebufferTexture2D_load_with_dyn(
13749 &self,
13750 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13751 ) -> bool {
13752 load_dyn_name_atomic_ptr(
13753 get_proc_address,
13754 b"glFramebufferTexture2D\0",
13755 &self.glFramebufferTexture2D_p,
13756 )
13757 }
13758 #[inline]
13759 #[doc(hidden)]
13760 pub fn FramebufferTexture2D_is_loaded(&self) -> bool {
13761 !self.glFramebufferTexture2D_p.load(RELAX).is_null()
13762 }
13763 /// [glFramebufferTexture3D](http://docs.gl/gl4/glFramebufferTexture3D)(target, attachment, textarget, texture, level, zoffset)
13764 /// * `target` group: FramebufferTarget
13765 /// * `attachment` group: FramebufferAttachment
13766 /// * `textarget` group: TextureTarget
13767 #[cfg_attr(feature = "inline", inline)]
13768 #[cfg_attr(feature = "inline_always", inline(always))]
13769 pub unsafe fn FramebufferTexture3D(
13770 &self,
13771 target: GLenum,
13772 attachment: GLenum,
13773 textarget: GLenum,
13774 texture: GLuint,
13775 level: GLint,
13776 zoffset: GLint,
13777 ) {
13778 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13779 {
13780 trace!(
13781 "calling gl.FramebufferTexture3D({:#X}, {:#X}, {:#X}, {:?}, {:?}, {:?});",
13782 target,
13783 attachment,
13784 textarget,
13785 texture,
13786 level,
13787 zoffset
13788 );
13789 }
13790 let out = call_atomic_ptr_6arg(
13791 "glFramebufferTexture3D",
13792 &self.glFramebufferTexture3D_p,
13793 target,
13794 attachment,
13795 textarget,
13796 texture,
13797 level,
13798 zoffset,
13799 );
13800 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13801 {
13802 self.automatic_glGetError("glFramebufferTexture3D");
13803 }
13804 out
13805 }
13806 #[doc(hidden)]
13807 pub unsafe fn FramebufferTexture3D_load_with_dyn(
13808 &self,
13809 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13810 ) -> bool {
13811 load_dyn_name_atomic_ptr(
13812 get_proc_address,
13813 b"glFramebufferTexture3D\0",
13814 &self.glFramebufferTexture3D_p,
13815 )
13816 }
13817 #[inline]
13818 #[doc(hidden)]
13819 pub fn FramebufferTexture3D_is_loaded(&self) -> bool {
13820 !self.glFramebufferTexture3D_p.load(RELAX).is_null()
13821 }
13822 /// [glFramebufferTextureLayer](http://docs.gl/gl4/glFramebufferTextureLayer)(target, attachment, texture, level, layer)
13823 /// * `target` group: FramebufferTarget
13824 /// * `attachment` group: FramebufferAttachment
13825 /// * `texture` group: Texture
13826 /// * `level` group: CheckedInt32
13827 /// * `layer` group: CheckedInt32
13828 #[cfg_attr(feature = "inline", inline)]
13829 #[cfg_attr(feature = "inline_always", inline(always))]
13830 pub unsafe fn FramebufferTextureLayer(
13831 &self,
13832 target: GLenum,
13833 attachment: GLenum,
13834 texture: GLuint,
13835 level: GLint,
13836 layer: GLint,
13837 ) {
13838 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13839 {
13840 trace!(
13841 "calling gl.FramebufferTextureLayer({:#X}, {:#X}, {:?}, {:?}, {:?});",
13842 target,
13843 attachment,
13844 texture,
13845 level,
13846 layer
13847 );
13848 }
13849 let out = call_atomic_ptr_5arg(
13850 "glFramebufferTextureLayer",
13851 &self.glFramebufferTextureLayer_p,
13852 target,
13853 attachment,
13854 texture,
13855 level,
13856 layer,
13857 );
13858 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13859 {
13860 self.automatic_glGetError("glFramebufferTextureLayer");
13861 }
13862 out
13863 }
13864 #[doc(hidden)]
13865 pub unsafe fn FramebufferTextureLayer_load_with_dyn(
13866 &self,
13867 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13868 ) -> bool {
13869 load_dyn_name_atomic_ptr(
13870 get_proc_address,
13871 b"glFramebufferTextureLayer\0",
13872 &self.glFramebufferTextureLayer_p,
13873 )
13874 }
13875 #[inline]
13876 #[doc(hidden)]
13877 pub fn FramebufferTextureLayer_is_loaded(&self) -> bool {
13878 !self.glFramebufferTextureLayer_p.load(RELAX).is_null()
13879 }
13880 /// [glFrontFace](http://docs.gl/gl4/glFrontFace)(mode)
13881 /// * `mode` group: FrontFaceDirection
13882 #[cfg_attr(feature = "inline", inline)]
13883 #[cfg_attr(feature = "inline_always", inline(always))]
13884 pub unsafe fn FrontFace(&self, mode: GLenum) {
13885 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13886 {
13887 trace!("calling gl.FrontFace({:#X});", mode);
13888 }
13889 let out = call_atomic_ptr_1arg("glFrontFace", &self.glFrontFace_p, mode);
13890 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13891 {
13892 self.automatic_glGetError("glFrontFace");
13893 }
13894 out
13895 }
13896 #[doc(hidden)]
13897 pub unsafe fn FrontFace_load_with_dyn(
13898 &self,
13899 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13900 ) -> bool {
13901 load_dyn_name_atomic_ptr(get_proc_address, b"glFrontFace\0", &self.glFrontFace_p)
13902 }
13903 #[inline]
13904 #[doc(hidden)]
13905 pub fn FrontFace_is_loaded(&self) -> bool {
13906 !self.glFrontFace_p.load(RELAX).is_null()
13907 }
13908 /// [glGenBuffers](http://docs.gl/gl4/glGenBuffers)(n, buffers)
13909 /// * `buffers` len: n
13910 #[cfg_attr(feature = "inline", inline)]
13911 #[cfg_attr(feature = "inline_always", inline(always))]
13912 pub unsafe fn GenBuffers(&self, n: GLsizei, buffers: *mut GLuint) {
13913 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13914 {
13915 trace!("calling gl.GenBuffers({:?}, {:p});", n, buffers);
13916 }
13917 let out = call_atomic_ptr_2arg("glGenBuffers", &self.glGenBuffers_p, n, buffers);
13918 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13919 {
13920 self.automatic_glGetError("glGenBuffers");
13921 }
13922 out
13923 }
13924 #[doc(hidden)]
13925 pub unsafe fn GenBuffers_load_with_dyn(
13926 &self,
13927 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13928 ) -> bool {
13929 load_dyn_name_atomic_ptr(get_proc_address, b"glGenBuffers\0", &self.glGenBuffers_p)
13930 }
13931 #[inline]
13932 #[doc(hidden)]
13933 pub fn GenBuffers_is_loaded(&self) -> bool {
13934 !self.glGenBuffers_p.load(RELAX).is_null()
13935 }
13936 /// [glGenFramebuffers](http://docs.gl/gl4/glGenFramebuffers)(n, framebuffers)
13937 /// * `framebuffers` len: n
13938 #[cfg_attr(feature = "inline", inline)]
13939 #[cfg_attr(feature = "inline_always", inline(always))]
13940 pub unsafe fn GenFramebuffers(&self, n: GLsizei, framebuffers: *mut GLuint) {
13941 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13942 {
13943 trace!("calling gl.GenFramebuffers({:?}, {:p});", n, framebuffers);
13944 }
13945 let out = call_atomic_ptr_2arg(
13946 "glGenFramebuffers",
13947 &self.glGenFramebuffers_p,
13948 n,
13949 framebuffers,
13950 );
13951 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13952 {
13953 self.automatic_glGetError("glGenFramebuffers");
13954 }
13955 out
13956 }
13957 #[doc(hidden)]
13958 pub unsafe fn GenFramebuffers_load_with_dyn(
13959 &self,
13960 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13961 ) -> bool {
13962 load_dyn_name_atomic_ptr(
13963 get_proc_address,
13964 b"glGenFramebuffers\0",
13965 &self.glGenFramebuffers_p,
13966 )
13967 }
13968 #[inline]
13969 #[doc(hidden)]
13970 pub fn GenFramebuffers_is_loaded(&self) -> bool {
13971 !self.glGenFramebuffers_p.load(RELAX).is_null()
13972 }
13973 /// [glGenProgramPipelines](http://docs.gl/gl4/glGenProgramPipelines)(n, pipelines)
13974 /// * `pipelines` len: n
13975 #[cfg_attr(feature = "inline", inline)]
13976 #[cfg_attr(feature = "inline_always", inline(always))]
13977 pub unsafe fn GenProgramPipelines(&self, n: GLsizei, pipelines: *mut GLuint) {
13978 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13979 {
13980 trace!("calling gl.GenProgramPipelines({:?}, {:p});", n, pipelines);
13981 }
13982 let out = call_atomic_ptr_2arg(
13983 "glGenProgramPipelines",
13984 &self.glGenProgramPipelines_p,
13985 n,
13986 pipelines,
13987 );
13988 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13989 {
13990 self.automatic_glGetError("glGenProgramPipelines");
13991 }
13992 out
13993 }
13994 #[doc(hidden)]
13995 pub unsafe fn GenProgramPipelines_load_with_dyn(
13996 &self,
13997 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13998 ) -> bool {
13999 load_dyn_name_atomic_ptr(
14000 get_proc_address,
14001 b"glGenProgramPipelines\0",
14002 &self.glGenProgramPipelines_p,
14003 )
14004 }
14005 #[inline]
14006 #[doc(hidden)]
14007 pub fn GenProgramPipelines_is_loaded(&self) -> bool {
14008 !self.glGenProgramPipelines_p.load(RELAX).is_null()
14009 }
14010 /// [glGenQueries](http://docs.gl/gl4/glGenQueries)(n, ids)
14011 /// * `ids` len: n
14012 #[cfg_attr(feature = "inline", inline)]
14013 #[cfg_attr(feature = "inline_always", inline(always))]
14014 pub unsafe fn GenQueries(&self, n: GLsizei, ids: *mut GLuint) {
14015 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14016 {
14017 trace!("calling gl.GenQueries({:?}, {:p});", n, ids);
14018 }
14019 let out = call_atomic_ptr_2arg("glGenQueries", &self.glGenQueries_p, n, ids);
14020 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14021 {
14022 self.automatic_glGetError("glGenQueries");
14023 }
14024 out
14025 }
14026 #[doc(hidden)]
14027 pub unsafe fn GenQueries_load_with_dyn(
14028 &self,
14029 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14030 ) -> bool {
14031 load_dyn_name_atomic_ptr(get_proc_address, b"glGenQueries\0", &self.glGenQueries_p)
14032 }
14033 #[inline]
14034 #[doc(hidden)]
14035 pub fn GenQueries_is_loaded(&self) -> bool {
14036 !self.glGenQueries_p.load(RELAX).is_null()
14037 }
14038 /// [glGenRenderbuffers](http://docs.gl/gl4/glGenRenderbuffers)(n, renderbuffers)
14039 /// * `renderbuffers` len: n
14040 #[cfg_attr(feature = "inline", inline)]
14041 #[cfg_attr(feature = "inline_always", inline(always))]
14042 pub unsafe fn GenRenderbuffers(&self, n: GLsizei, renderbuffers: *mut GLuint) {
14043 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14044 {
14045 trace!("calling gl.GenRenderbuffers({:?}, {:p});", n, renderbuffers);
14046 }
14047 let out = call_atomic_ptr_2arg(
14048 "glGenRenderbuffers",
14049 &self.glGenRenderbuffers_p,
14050 n,
14051 renderbuffers,
14052 );
14053 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14054 {
14055 self.automatic_glGetError("glGenRenderbuffers");
14056 }
14057 out
14058 }
14059 #[doc(hidden)]
14060 pub unsafe fn GenRenderbuffers_load_with_dyn(
14061 &self,
14062 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14063 ) -> bool {
14064 load_dyn_name_atomic_ptr(
14065 get_proc_address,
14066 b"glGenRenderbuffers\0",
14067 &self.glGenRenderbuffers_p,
14068 )
14069 }
14070 #[inline]
14071 #[doc(hidden)]
14072 pub fn GenRenderbuffers_is_loaded(&self) -> bool {
14073 !self.glGenRenderbuffers_p.load(RELAX).is_null()
14074 }
14075 /// [glGenSamplers](http://docs.gl/gl4/glGenSamplers)(count, samplers)
14076 /// * `samplers` len: count
14077 #[cfg_attr(feature = "inline", inline)]
14078 #[cfg_attr(feature = "inline_always", inline(always))]
14079 pub unsafe fn GenSamplers(&self, count: GLsizei, samplers: *mut GLuint) {
14080 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14081 {
14082 trace!("calling gl.GenSamplers({:?}, {:p});", count, samplers);
14083 }
14084 let out = call_atomic_ptr_2arg("glGenSamplers", &self.glGenSamplers_p, count, samplers);
14085 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14086 {
14087 self.automatic_glGetError("glGenSamplers");
14088 }
14089 out
14090 }
14091 #[doc(hidden)]
14092 pub unsafe fn GenSamplers_load_with_dyn(
14093 &self,
14094 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14095 ) -> bool {
14096 load_dyn_name_atomic_ptr(get_proc_address, b"glGenSamplers\0", &self.glGenSamplers_p)
14097 }
14098 #[inline]
14099 #[doc(hidden)]
14100 pub fn GenSamplers_is_loaded(&self) -> bool {
14101 !self.glGenSamplers_p.load(RELAX).is_null()
14102 }
14103 /// [glGenTextures](http://docs.gl/gl4/glGenTextures)(n, textures)
14104 /// * `textures` group: Texture
14105 /// * `textures` len: n
14106 #[cfg_attr(feature = "inline", inline)]
14107 #[cfg_attr(feature = "inline_always", inline(always))]
14108 pub unsafe fn GenTextures(&self, n: GLsizei, textures: *mut GLuint) {
14109 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14110 {
14111 trace!("calling gl.GenTextures({:?}, {:p});", n, textures);
14112 }
14113 let out = call_atomic_ptr_2arg("glGenTextures", &self.glGenTextures_p, n, textures);
14114 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14115 {
14116 self.automatic_glGetError("glGenTextures");
14117 }
14118 out
14119 }
14120 #[doc(hidden)]
14121 pub unsafe fn GenTextures_load_with_dyn(
14122 &self,
14123 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14124 ) -> bool {
14125 load_dyn_name_atomic_ptr(get_proc_address, b"glGenTextures\0", &self.glGenTextures_p)
14126 }
14127 #[inline]
14128 #[doc(hidden)]
14129 pub fn GenTextures_is_loaded(&self) -> bool {
14130 !self.glGenTextures_p.load(RELAX).is_null()
14131 }
14132 /// [glGenTransformFeedbacks](http://docs.gl/gl4/glGenTransformFeedbacks)(n, ids)
14133 /// * `ids` len: n
14134 #[cfg_attr(feature = "inline", inline)]
14135 #[cfg_attr(feature = "inline_always", inline(always))]
14136 pub unsafe fn GenTransformFeedbacks(&self, n: GLsizei, ids: *mut GLuint) {
14137 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14138 {
14139 trace!("calling gl.GenTransformFeedbacks({:?}, {:p});", n, ids);
14140 }
14141 let out = call_atomic_ptr_2arg(
14142 "glGenTransformFeedbacks",
14143 &self.glGenTransformFeedbacks_p,
14144 n,
14145 ids,
14146 );
14147 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14148 {
14149 self.automatic_glGetError("glGenTransformFeedbacks");
14150 }
14151 out
14152 }
14153 #[doc(hidden)]
14154 pub unsafe fn GenTransformFeedbacks_load_with_dyn(
14155 &self,
14156 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14157 ) -> bool {
14158 load_dyn_name_atomic_ptr(
14159 get_proc_address,
14160 b"glGenTransformFeedbacks\0",
14161 &self.glGenTransformFeedbacks_p,
14162 )
14163 }
14164 #[inline]
14165 #[doc(hidden)]
14166 pub fn GenTransformFeedbacks_is_loaded(&self) -> bool {
14167 !self.glGenTransformFeedbacks_p.load(RELAX).is_null()
14168 }
14169 /// [glGenVertexArrays](http://docs.gl/gl4/glGenVertexArrays)(n, arrays)
14170 /// * `arrays` len: n
14171 #[cfg_attr(feature = "inline", inline)]
14172 #[cfg_attr(feature = "inline_always", inline(always))]
14173 pub unsafe fn GenVertexArrays(&self, n: GLsizei, arrays: *mut GLuint) {
14174 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14175 {
14176 trace!("calling gl.GenVertexArrays({:?}, {:p});", n, arrays);
14177 }
14178 let out =
14179 call_atomic_ptr_2arg("glGenVertexArrays", &self.glGenVertexArrays_p, n, arrays);
14180 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14181 {
14182 self.automatic_glGetError("glGenVertexArrays");
14183 }
14184 out
14185 }
14186 #[doc(hidden)]
14187 pub unsafe fn GenVertexArrays_load_with_dyn(
14188 &self,
14189 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14190 ) -> bool {
14191 load_dyn_name_atomic_ptr(
14192 get_proc_address,
14193 b"glGenVertexArrays\0",
14194 &self.glGenVertexArrays_p,
14195 )
14196 }
14197 #[inline]
14198 #[doc(hidden)]
14199 pub fn GenVertexArrays_is_loaded(&self) -> bool {
14200 !self.glGenVertexArrays_p.load(RELAX).is_null()
14201 }
14202 /// [glGenerateMipmap](http://docs.gl/gl4/glGenerateMipmap)(target)
14203 /// * `target` group: TextureTarget
14204 #[cfg_attr(feature = "inline", inline)]
14205 #[cfg_attr(feature = "inline_always", inline(always))]
14206 pub unsafe fn GenerateMipmap(&self, target: GLenum) {
14207 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14208 {
14209 trace!("calling gl.GenerateMipmap({:#X});", target);
14210 }
14211 let out = call_atomic_ptr_1arg("glGenerateMipmap", &self.glGenerateMipmap_p, target);
14212 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14213 {
14214 self.automatic_glGetError("glGenerateMipmap");
14215 }
14216 out
14217 }
14218 #[doc(hidden)]
14219 pub unsafe fn GenerateMipmap_load_with_dyn(
14220 &self,
14221 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14222 ) -> bool {
14223 load_dyn_name_atomic_ptr(
14224 get_proc_address,
14225 b"glGenerateMipmap\0",
14226 &self.glGenerateMipmap_p,
14227 )
14228 }
14229 #[inline]
14230 #[doc(hidden)]
14231 pub fn GenerateMipmap_is_loaded(&self) -> bool {
14232 !self.glGenerateMipmap_p.load(RELAX).is_null()
14233 }
14234 /// [glGenerateTextureMipmap](http://docs.gl/gl4/glGenerateTextureMipmap)(texture)
14235 #[cfg_attr(feature = "inline", inline)]
14236 #[cfg_attr(feature = "inline_always", inline(always))]
14237 pub unsafe fn GenerateTextureMipmap(&self, texture: GLuint) {
14238 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14239 {
14240 trace!("calling gl.GenerateTextureMipmap({:?});", texture);
14241 }
14242 let out = call_atomic_ptr_1arg(
14243 "glGenerateTextureMipmap",
14244 &self.glGenerateTextureMipmap_p,
14245 texture,
14246 );
14247 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14248 {
14249 self.automatic_glGetError("glGenerateTextureMipmap");
14250 }
14251 out
14252 }
14253 #[doc(hidden)]
14254 pub unsafe fn GenerateTextureMipmap_load_with_dyn(
14255 &self,
14256 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14257 ) -> bool {
14258 load_dyn_name_atomic_ptr(
14259 get_proc_address,
14260 b"glGenerateTextureMipmap\0",
14261 &self.glGenerateTextureMipmap_p,
14262 )
14263 }
14264 #[inline]
14265 #[doc(hidden)]
14266 pub fn GenerateTextureMipmap_is_loaded(&self) -> bool {
14267 !self.glGenerateTextureMipmap_p.load(RELAX).is_null()
14268 }
14269 /// [glGetActiveAtomicCounterBufferiv](http://docs.gl/gl4/glGetActiveAtomicCounterBuffer)(program, bufferIndex, pname, params)
14270 /// * `pname` group: AtomicCounterBufferPName
14271 /// * `params` len: COMPSIZE(pname)
14272 #[cfg_attr(feature = "inline", inline)]
14273 #[cfg_attr(feature = "inline_always", inline(always))]
14274 pub unsafe fn GetActiveAtomicCounterBufferiv(
14275 &self,
14276 program: GLuint,
14277 bufferIndex: GLuint,
14278 pname: GLenum,
14279 params: *mut GLint,
14280 ) {
14281 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14282 {
14283 trace!(
14284 "calling gl.GetActiveAtomicCounterBufferiv({:?}, {:?}, {:#X}, {:p});",
14285 program,
14286 bufferIndex,
14287 pname,
14288 params
14289 );
14290 }
14291 let out = call_atomic_ptr_4arg(
14292 "glGetActiveAtomicCounterBufferiv",
14293 &self.glGetActiveAtomicCounterBufferiv_p,
14294 program,
14295 bufferIndex,
14296 pname,
14297 params,
14298 );
14299 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14300 {
14301 self.automatic_glGetError("glGetActiveAtomicCounterBufferiv");
14302 }
14303 out
14304 }
14305 #[doc(hidden)]
14306 pub unsafe fn GetActiveAtomicCounterBufferiv_load_with_dyn(
14307 &self,
14308 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14309 ) -> bool {
14310 load_dyn_name_atomic_ptr(
14311 get_proc_address,
14312 b"glGetActiveAtomicCounterBufferiv\0",
14313 &self.glGetActiveAtomicCounterBufferiv_p,
14314 )
14315 }
14316 #[inline]
14317 #[doc(hidden)]
14318 pub fn GetActiveAtomicCounterBufferiv_is_loaded(&self) -> bool {
14319 !self
14320 .glGetActiveAtomicCounterBufferiv_p
14321 .load(RELAX)
14322 .is_null()
14323 }
14324 /// [glGetActiveAttrib](http://docs.gl/gl4/glGetActiveAttrib)(program, index, bufSize, length, size, type_, name)
14325 /// * `length` len: 1
14326 /// * `size` len: 1
14327 /// * `type_` group: AttributeType
14328 /// * `type_` len: 1
14329 /// * `name` len: bufSize
14330 #[cfg_attr(feature = "inline", inline)]
14331 #[cfg_attr(feature = "inline_always", inline(always))]
14332 pub unsafe fn GetActiveAttrib(
14333 &self,
14334 program: GLuint,
14335 index: GLuint,
14336 bufSize: GLsizei,
14337 length: *mut GLsizei,
14338 size: *mut GLint,
14339 type_: *mut GLenum,
14340 name: *mut GLchar,
14341 ) {
14342 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14343 {
14344 trace!(
14345 "calling gl.GetActiveAttrib({:?}, {:?}, {:?}, {:p}, {:p}, {:p}, {:p});",
14346 program,
14347 index,
14348 bufSize,
14349 length,
14350 size,
14351 type_,
14352 name
14353 );
14354 }
14355 let out = call_atomic_ptr_7arg(
14356 "glGetActiveAttrib",
14357 &self.glGetActiveAttrib_p,
14358 program,
14359 index,
14360 bufSize,
14361 length,
14362 size,
14363 type_,
14364 name,
14365 );
14366 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14367 {
14368 self.automatic_glGetError("glGetActiveAttrib");
14369 }
14370 out
14371 }
14372 #[doc(hidden)]
14373 pub unsafe fn GetActiveAttrib_load_with_dyn(
14374 &self,
14375 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14376 ) -> bool {
14377 load_dyn_name_atomic_ptr(
14378 get_proc_address,
14379 b"glGetActiveAttrib\0",
14380 &self.glGetActiveAttrib_p,
14381 )
14382 }
14383 #[inline]
14384 #[doc(hidden)]
14385 pub fn GetActiveAttrib_is_loaded(&self) -> bool {
14386 !self.glGetActiveAttrib_p.load(RELAX).is_null()
14387 }
14388 /// [glGetActiveSubroutineName](http://docs.gl/gl4/glGetActiveSubroutineName)(program, shadertype, index, bufSize, length, name)
14389 /// * `shadertype` group: ShaderType
14390 /// * `length` len: 1
14391 /// * `name` len: bufSize
14392 #[cfg_attr(feature = "inline", inline)]
14393 #[cfg_attr(feature = "inline_always", inline(always))]
14394 pub unsafe fn GetActiveSubroutineName(
14395 &self,
14396 program: GLuint,
14397 shadertype: GLenum,
14398 index: GLuint,
14399 bufSize: GLsizei,
14400 length: *mut GLsizei,
14401 name: *mut GLchar,
14402 ) {
14403 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14404 {
14405 trace!(
14406 "calling gl.GetActiveSubroutineName({:?}, {:#X}, {:?}, {:?}, {:p}, {:p});",
14407 program,
14408 shadertype,
14409 index,
14410 bufSize,
14411 length,
14412 name
14413 );
14414 }
14415 let out = call_atomic_ptr_6arg(
14416 "glGetActiveSubroutineName",
14417 &self.glGetActiveSubroutineName_p,
14418 program,
14419 shadertype,
14420 index,
14421 bufSize,
14422 length,
14423 name,
14424 );
14425 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14426 {
14427 self.automatic_glGetError("glGetActiveSubroutineName");
14428 }
14429 out
14430 }
14431 #[doc(hidden)]
14432 pub unsafe fn GetActiveSubroutineName_load_with_dyn(
14433 &self,
14434 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14435 ) -> bool {
14436 load_dyn_name_atomic_ptr(
14437 get_proc_address,
14438 b"glGetActiveSubroutineName\0",
14439 &self.glGetActiveSubroutineName_p,
14440 )
14441 }
14442 #[inline]
14443 #[doc(hidden)]
14444 pub fn GetActiveSubroutineName_is_loaded(&self) -> bool {
14445 !self.glGetActiveSubroutineName_p.load(RELAX).is_null()
14446 }
14447 /// [glGetActiveSubroutineUniformName](http://docs.gl/gl4/glGetActiveSubroutineUniformName)(program, shadertype, index, bufSize, length, name)
14448 /// * `shadertype` group: ShaderType
14449 /// * `length` len: 1
14450 /// * `name` len: bufSize
14451 #[cfg_attr(feature = "inline", inline)]
14452 #[cfg_attr(feature = "inline_always", inline(always))]
14453 pub unsafe fn GetActiveSubroutineUniformName(
14454 &self,
14455 program: GLuint,
14456 shadertype: GLenum,
14457 index: GLuint,
14458 bufSize: GLsizei,
14459 length: *mut GLsizei,
14460 name: *mut GLchar,
14461 ) {
14462 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14463 {
14464 trace!("calling gl.GetActiveSubroutineUniformName({:?}, {:#X}, {:?}, {:?}, {:p}, {:p});", program, shadertype, index, bufSize, length, name);
14465 }
14466 let out = call_atomic_ptr_6arg(
14467 "glGetActiveSubroutineUniformName",
14468 &self.glGetActiveSubroutineUniformName_p,
14469 program,
14470 shadertype,
14471 index,
14472 bufSize,
14473 length,
14474 name,
14475 );
14476 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14477 {
14478 self.automatic_glGetError("glGetActiveSubroutineUniformName");
14479 }
14480 out
14481 }
14482 #[doc(hidden)]
14483 pub unsafe fn GetActiveSubroutineUniformName_load_with_dyn(
14484 &self,
14485 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14486 ) -> bool {
14487 load_dyn_name_atomic_ptr(
14488 get_proc_address,
14489 b"glGetActiveSubroutineUniformName\0",
14490 &self.glGetActiveSubroutineUniformName_p,
14491 )
14492 }
14493 #[inline]
14494 #[doc(hidden)]
14495 pub fn GetActiveSubroutineUniformName_is_loaded(&self) -> bool {
14496 !self
14497 .glGetActiveSubroutineUniformName_p
14498 .load(RELAX)
14499 .is_null()
14500 }
14501 /// [glGetActiveSubroutineUniformiv](http://docs.gl/gl4/glGetActiveSubroutineUniform)(program, shadertype, index, pname, values)
14502 /// * `shadertype` group: ShaderType
14503 /// * `pname` group: SubroutineParameterName
14504 /// * `values` len: COMPSIZE(pname)
14505 #[cfg_attr(feature = "inline", inline)]
14506 #[cfg_attr(feature = "inline_always", inline(always))]
14507 pub unsafe fn GetActiveSubroutineUniformiv(
14508 &self,
14509 program: GLuint,
14510 shadertype: GLenum,
14511 index: GLuint,
14512 pname: GLenum,
14513 values: *mut GLint,
14514 ) {
14515 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14516 {
14517 trace!(
14518 "calling gl.GetActiveSubroutineUniformiv({:?}, {:#X}, {:?}, {:#X}, {:p});",
14519 program,
14520 shadertype,
14521 index,
14522 pname,
14523 values
14524 );
14525 }
14526 let out = call_atomic_ptr_5arg(
14527 "glGetActiveSubroutineUniformiv",
14528 &self.glGetActiveSubroutineUniformiv_p,
14529 program,
14530 shadertype,
14531 index,
14532 pname,
14533 values,
14534 );
14535 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14536 {
14537 self.automatic_glGetError("glGetActiveSubroutineUniformiv");
14538 }
14539 out
14540 }
14541 #[doc(hidden)]
14542 pub unsafe fn GetActiveSubroutineUniformiv_load_with_dyn(
14543 &self,
14544 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14545 ) -> bool {
14546 load_dyn_name_atomic_ptr(
14547 get_proc_address,
14548 b"glGetActiveSubroutineUniformiv\0",
14549 &self.glGetActiveSubroutineUniformiv_p,
14550 )
14551 }
14552 #[inline]
14553 #[doc(hidden)]
14554 pub fn GetActiveSubroutineUniformiv_is_loaded(&self) -> bool {
14555 !self.glGetActiveSubroutineUniformiv_p.load(RELAX).is_null()
14556 }
14557 /// [glGetActiveUniform](http://docs.gl/gl4/glGetActiveUniform)(program, index, bufSize, length, size, type_, name)
14558 /// * `length` len: 1
14559 /// * `size` len: 1
14560 /// * `type_` group: UniformType
14561 /// * `type_` len: 1
14562 /// * `name` len: bufSize
14563 #[cfg_attr(feature = "inline", inline)]
14564 #[cfg_attr(feature = "inline_always", inline(always))]
14565 pub unsafe fn GetActiveUniform(
14566 &self,
14567 program: GLuint,
14568 index: GLuint,
14569 bufSize: GLsizei,
14570 length: *mut GLsizei,
14571 size: *mut GLint,
14572 type_: *mut GLenum,
14573 name: *mut GLchar,
14574 ) {
14575 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14576 {
14577 trace!(
14578 "calling gl.GetActiveUniform({:?}, {:?}, {:?}, {:p}, {:p}, {:p}, {:p});",
14579 program,
14580 index,
14581 bufSize,
14582 length,
14583 size,
14584 type_,
14585 name
14586 );
14587 }
14588 let out = call_atomic_ptr_7arg(
14589 "glGetActiveUniform",
14590 &self.glGetActiveUniform_p,
14591 program,
14592 index,
14593 bufSize,
14594 length,
14595 size,
14596 type_,
14597 name,
14598 );
14599 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14600 {
14601 self.automatic_glGetError("glGetActiveUniform");
14602 }
14603 out
14604 }
14605 #[doc(hidden)]
14606 pub unsafe fn GetActiveUniform_load_with_dyn(
14607 &self,
14608 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14609 ) -> bool {
14610 load_dyn_name_atomic_ptr(
14611 get_proc_address,
14612 b"glGetActiveUniform\0",
14613 &self.glGetActiveUniform_p,
14614 )
14615 }
14616 #[inline]
14617 #[doc(hidden)]
14618 pub fn GetActiveUniform_is_loaded(&self) -> bool {
14619 !self.glGetActiveUniform_p.load(RELAX).is_null()
14620 }
14621 /// [glGetActiveUniformBlockName](http://docs.gl/gl4/glGetActiveUniformBlockName)(program, uniformBlockIndex, bufSize, length, uniformBlockName)
14622 /// * `length` len: 1
14623 /// * `uniformBlockName` len: bufSize
14624 #[cfg_attr(feature = "inline", inline)]
14625 #[cfg_attr(feature = "inline_always", inline(always))]
14626 pub unsafe fn GetActiveUniformBlockName(
14627 &self,
14628 program: GLuint,
14629 uniformBlockIndex: GLuint,
14630 bufSize: GLsizei,
14631 length: *mut GLsizei,
14632 uniformBlockName: *mut GLchar,
14633 ) {
14634 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14635 {
14636 trace!(
14637 "calling gl.GetActiveUniformBlockName({:?}, {:?}, {:?}, {:p}, {:p});",
14638 program,
14639 uniformBlockIndex,
14640 bufSize,
14641 length,
14642 uniformBlockName
14643 );
14644 }
14645 let out = call_atomic_ptr_5arg(
14646 "glGetActiveUniformBlockName",
14647 &self.glGetActiveUniformBlockName_p,
14648 program,
14649 uniformBlockIndex,
14650 bufSize,
14651 length,
14652 uniformBlockName,
14653 );
14654 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14655 {
14656 self.automatic_glGetError("glGetActiveUniformBlockName");
14657 }
14658 out
14659 }
14660 #[doc(hidden)]
14661 pub unsafe fn GetActiveUniformBlockName_load_with_dyn(
14662 &self,
14663 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14664 ) -> bool {
14665 load_dyn_name_atomic_ptr(
14666 get_proc_address,
14667 b"glGetActiveUniformBlockName\0",
14668 &self.glGetActiveUniformBlockName_p,
14669 )
14670 }
14671 #[inline]
14672 #[doc(hidden)]
14673 pub fn GetActiveUniformBlockName_is_loaded(&self) -> bool {
14674 !self.glGetActiveUniformBlockName_p.load(RELAX).is_null()
14675 }
14676 /// [glGetActiveUniformBlockiv](http://docs.gl/gl4/glGetActiveUniformBlockiv)(program, uniformBlockIndex, pname, params)
14677 /// * `pname` group: UniformBlockPName
14678 /// * `params` len: COMPSIZE(program,uniformBlockIndex,pname)
14679 #[cfg_attr(feature = "inline", inline)]
14680 #[cfg_attr(feature = "inline_always", inline(always))]
14681 pub unsafe fn GetActiveUniformBlockiv(
14682 &self,
14683 program: GLuint,
14684 uniformBlockIndex: GLuint,
14685 pname: GLenum,
14686 params: *mut GLint,
14687 ) {
14688 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14689 {
14690 trace!(
14691 "calling gl.GetActiveUniformBlockiv({:?}, {:?}, {:#X}, {:p});",
14692 program,
14693 uniformBlockIndex,
14694 pname,
14695 params
14696 );
14697 }
14698 let out = call_atomic_ptr_4arg(
14699 "glGetActiveUniformBlockiv",
14700 &self.glGetActiveUniformBlockiv_p,
14701 program,
14702 uniformBlockIndex,
14703 pname,
14704 params,
14705 );
14706 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14707 {
14708 self.automatic_glGetError("glGetActiveUniformBlockiv");
14709 }
14710 out
14711 }
14712 #[doc(hidden)]
14713 pub unsafe fn GetActiveUniformBlockiv_load_with_dyn(
14714 &self,
14715 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14716 ) -> bool {
14717 load_dyn_name_atomic_ptr(
14718 get_proc_address,
14719 b"glGetActiveUniformBlockiv\0",
14720 &self.glGetActiveUniformBlockiv_p,
14721 )
14722 }
14723 #[inline]
14724 #[doc(hidden)]
14725 pub fn GetActiveUniformBlockiv_is_loaded(&self) -> bool {
14726 !self.glGetActiveUniformBlockiv_p.load(RELAX).is_null()
14727 }
14728 /// [glGetActiveUniformName](http://docs.gl/gl4/glGetActiveUniformName)(program, uniformIndex, bufSize, length, uniformName)
14729 /// * `length` len: 1
14730 /// * `uniformName` len: bufSize
14731 #[cfg_attr(feature = "inline", inline)]
14732 #[cfg_attr(feature = "inline_always", inline(always))]
14733 pub unsafe fn GetActiveUniformName(
14734 &self,
14735 program: GLuint,
14736 uniformIndex: GLuint,
14737 bufSize: GLsizei,
14738 length: *mut GLsizei,
14739 uniformName: *mut GLchar,
14740 ) {
14741 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14742 {
14743 trace!(
14744 "calling gl.GetActiveUniformName({:?}, {:?}, {:?}, {:p}, {:p});",
14745 program,
14746 uniformIndex,
14747 bufSize,
14748 length,
14749 uniformName
14750 );
14751 }
14752 let out = call_atomic_ptr_5arg(
14753 "glGetActiveUniformName",
14754 &self.glGetActiveUniformName_p,
14755 program,
14756 uniformIndex,
14757 bufSize,
14758 length,
14759 uniformName,
14760 );
14761 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14762 {
14763 self.automatic_glGetError("glGetActiveUniformName");
14764 }
14765 out
14766 }
14767 #[doc(hidden)]
14768 pub unsafe fn GetActiveUniformName_load_with_dyn(
14769 &self,
14770 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14771 ) -> bool {
14772 load_dyn_name_atomic_ptr(
14773 get_proc_address,
14774 b"glGetActiveUniformName\0",
14775 &self.glGetActiveUniformName_p,
14776 )
14777 }
14778 #[inline]
14779 #[doc(hidden)]
14780 pub fn GetActiveUniformName_is_loaded(&self) -> bool {
14781 !self.glGetActiveUniformName_p.load(RELAX).is_null()
14782 }
14783 /// [glGetActiveUniformsiv](http://docs.gl/gl4/glGetActiveUniformsiv)(program, uniformCount, uniformIndices, pname, params)
14784 /// * `uniformIndices` len: uniformCount
14785 /// * `pname` group: UniformPName
14786 /// * `params` len: COMPSIZE(uniformCount,pname)
14787 #[cfg_attr(feature = "inline", inline)]
14788 #[cfg_attr(feature = "inline_always", inline(always))]
14789 pub unsafe fn GetActiveUniformsiv(
14790 &self,
14791 program: GLuint,
14792 uniformCount: GLsizei,
14793 uniformIndices: *const GLuint,
14794 pname: GLenum,
14795 params: *mut GLint,
14796 ) {
14797 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14798 {
14799 trace!(
14800 "calling gl.GetActiveUniformsiv({:?}, {:?}, {:p}, {:#X}, {:p});",
14801 program,
14802 uniformCount,
14803 uniformIndices,
14804 pname,
14805 params
14806 );
14807 }
14808 let out = call_atomic_ptr_5arg(
14809 "glGetActiveUniformsiv",
14810 &self.glGetActiveUniformsiv_p,
14811 program,
14812 uniformCount,
14813 uniformIndices,
14814 pname,
14815 params,
14816 );
14817 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14818 {
14819 self.automatic_glGetError("glGetActiveUniformsiv");
14820 }
14821 out
14822 }
14823 #[doc(hidden)]
14824 pub unsafe fn GetActiveUniformsiv_load_with_dyn(
14825 &self,
14826 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14827 ) -> bool {
14828 load_dyn_name_atomic_ptr(
14829 get_proc_address,
14830 b"glGetActiveUniformsiv\0",
14831 &self.glGetActiveUniformsiv_p,
14832 )
14833 }
14834 #[inline]
14835 #[doc(hidden)]
14836 pub fn GetActiveUniformsiv_is_loaded(&self) -> bool {
14837 !self.glGetActiveUniformsiv_p.load(RELAX).is_null()
14838 }
14839 /// [glGetAttachedShaders](http://docs.gl/gl4/glGetAttachedShaders)(program, maxCount, count, shaders)
14840 /// * `count` len: 1
14841 /// * `shaders` len: maxCount
14842 #[cfg_attr(feature = "inline", inline)]
14843 #[cfg_attr(feature = "inline_always", inline(always))]
14844 pub unsafe fn GetAttachedShaders(
14845 &self,
14846 program: GLuint,
14847 maxCount: GLsizei,
14848 count: *mut GLsizei,
14849 shaders: *mut GLuint,
14850 ) {
14851 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14852 {
14853 trace!(
14854 "calling gl.GetAttachedShaders({:?}, {:?}, {:p}, {:p});",
14855 program,
14856 maxCount,
14857 count,
14858 shaders
14859 );
14860 }
14861 let out = call_atomic_ptr_4arg(
14862 "glGetAttachedShaders",
14863 &self.glGetAttachedShaders_p,
14864 program,
14865 maxCount,
14866 count,
14867 shaders,
14868 );
14869 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14870 {
14871 self.automatic_glGetError("glGetAttachedShaders");
14872 }
14873 out
14874 }
14875 #[doc(hidden)]
14876 pub unsafe fn GetAttachedShaders_load_with_dyn(
14877 &self,
14878 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14879 ) -> bool {
14880 load_dyn_name_atomic_ptr(
14881 get_proc_address,
14882 b"glGetAttachedShaders\0",
14883 &self.glGetAttachedShaders_p,
14884 )
14885 }
14886 #[inline]
14887 #[doc(hidden)]
14888 pub fn GetAttachedShaders_is_loaded(&self) -> bool {
14889 !self.glGetAttachedShaders_p.load(RELAX).is_null()
14890 }
14891 /// [glGetAttribLocation](http://docs.gl/gl4/glGetAttribLocation)(program, name)
14892 #[cfg_attr(feature = "inline", inline)]
14893 #[cfg_attr(feature = "inline_always", inline(always))]
14894 pub unsafe fn GetAttribLocation(&self, program: GLuint, name: *const GLchar) -> GLint {
14895 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14896 {
14897 trace!("calling gl.GetAttribLocation({:?}, {:p});", program, name);
14898 }
14899 let out = call_atomic_ptr_2arg(
14900 "glGetAttribLocation",
14901 &self.glGetAttribLocation_p,
14902 program,
14903 name,
14904 );
14905 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14906 {
14907 self.automatic_glGetError("glGetAttribLocation");
14908 }
14909 out
14910 }
14911 #[doc(hidden)]
14912 pub unsafe fn GetAttribLocation_load_with_dyn(
14913 &self,
14914 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14915 ) -> bool {
14916 load_dyn_name_atomic_ptr(
14917 get_proc_address,
14918 b"glGetAttribLocation\0",
14919 &self.glGetAttribLocation_p,
14920 )
14921 }
14922 #[inline]
14923 #[doc(hidden)]
14924 pub fn GetAttribLocation_is_loaded(&self) -> bool {
14925 !self.glGetAttribLocation_p.load(RELAX).is_null()
14926 }
14927 /// [glGetBooleanIndexedvEXT](http://docs.gl/gl4/glGetBooleanIndexedvEXT)(target, index, data)
14928 /// * `target` group: BufferTargetARB
14929 /// * `data` len: COMPSIZE(target)
14930 /// * alias of: [`glGetBooleani_v`]
14931 #[cfg_attr(feature = "inline", inline)]
14932 #[cfg_attr(feature = "inline_always", inline(always))]
14933 pub unsafe fn GetBooleanIndexedvEXT(
14934 &self,
14935 target: GLenum,
14936 index: GLuint,
14937 data: *mut GLboolean,
14938 ) {
14939 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14940 {
14941 trace!(
14942 "calling gl.GetBooleanIndexedvEXT({:#X}, {:?}, {:p});",
14943 target,
14944 index,
14945 data
14946 );
14947 }
14948 let out = call_atomic_ptr_3arg(
14949 "glGetBooleanIndexedvEXT",
14950 &self.glGetBooleanIndexedvEXT_p,
14951 target,
14952 index,
14953 data,
14954 );
14955 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14956 {
14957 self.automatic_glGetError("glGetBooleanIndexedvEXT");
14958 }
14959 out
14960 }
14961
14962 #[doc(hidden)]
14963 pub unsafe fn GetBooleanIndexedvEXT_load_with_dyn(
14964 &self,
14965 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14966 ) -> bool {
14967 load_dyn_name_atomic_ptr(
14968 get_proc_address,
14969 b"glGetBooleanIndexedvEXT\0",
14970 &self.glGetBooleanIndexedvEXT_p,
14971 )
14972 }
14973 #[inline]
14974 #[doc(hidden)]
14975
14976 pub fn GetBooleanIndexedvEXT_is_loaded(&self) -> bool {
14977 !self.glGetBooleanIndexedvEXT_p.load(RELAX).is_null()
14978 }
14979 /// [glGetBooleani_v](http://docs.gl/gl4/glGet)(target, index, data)
14980 /// * `target` group: BufferTargetARB
14981 /// * `data` len: COMPSIZE(target)
14982 #[cfg_attr(feature = "inline", inline)]
14983 #[cfg_attr(feature = "inline_always", inline(always))]
14984 pub unsafe fn GetBooleani_v(&self, target: GLenum, index: GLuint, data: *mut GLboolean) {
14985 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14986 {
14987 trace!(
14988 "calling gl.GetBooleani_v({:#X}, {:?}, {:p});",
14989 target,
14990 index,
14991 data
14992 );
14993 }
14994 let out = call_atomic_ptr_3arg(
14995 "glGetBooleani_v",
14996 &self.glGetBooleani_v_p,
14997 target,
14998 index,
14999 data,
15000 );
15001 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15002 {
15003 self.automatic_glGetError("glGetBooleani_v");
15004 }
15005 out
15006 }
15007 #[doc(hidden)]
15008 pub unsafe fn GetBooleani_v_load_with_dyn(
15009 &self,
15010 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15011 ) -> bool {
15012 load_dyn_name_atomic_ptr(
15013 get_proc_address,
15014 b"glGetBooleani_v\0",
15015 &self.glGetBooleani_v_p,
15016 )
15017 }
15018 #[inline]
15019 #[doc(hidden)]
15020 pub fn GetBooleani_v_is_loaded(&self) -> bool {
15021 !self.glGetBooleani_v_p.load(RELAX).is_null()
15022 }
15023 /// [glGetBooleanv](http://docs.gl/gl4/glGet)(pname, data)
15024 /// * `pname` group: GetPName
15025 /// * `data` len: COMPSIZE(pname)
15026 #[cfg_attr(feature = "inline", inline)]
15027 #[cfg_attr(feature = "inline_always", inline(always))]
15028 pub unsafe fn GetBooleanv(&self, pname: GLenum, data: *mut GLboolean) {
15029 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15030 {
15031 trace!("calling gl.GetBooleanv({:#X}, {:p});", pname, data);
15032 }
15033 let out = call_atomic_ptr_2arg("glGetBooleanv", &self.glGetBooleanv_p, pname, data);
15034 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15035 {
15036 self.automatic_glGetError("glGetBooleanv");
15037 }
15038 out
15039 }
15040 #[doc(hidden)]
15041 pub unsafe fn GetBooleanv_load_with_dyn(
15042 &self,
15043 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15044 ) -> bool {
15045 load_dyn_name_atomic_ptr(get_proc_address, b"glGetBooleanv\0", &self.glGetBooleanv_p)
15046 }
15047 #[inline]
15048 #[doc(hidden)]
15049 pub fn GetBooleanv_is_loaded(&self) -> bool {
15050 !self.glGetBooleanv_p.load(RELAX).is_null()
15051 }
15052 /// [glGetBufferParameteri64v](http://docs.gl/gl4/glGetBufferParameter)(target, pname, params)
15053 /// * `target` group: BufferTargetARB
15054 /// * `pname` group: BufferPNameARB
15055 /// * `params` len: COMPSIZE(pname)
15056 #[cfg_attr(feature = "inline", inline)]
15057 #[cfg_attr(feature = "inline_always", inline(always))]
15058 pub unsafe fn GetBufferParameteri64v(
15059 &self,
15060 target: GLenum,
15061 pname: GLenum,
15062 params: *mut GLint64,
15063 ) {
15064 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15065 {
15066 trace!(
15067 "calling gl.GetBufferParameteri64v({:#X}, {:#X}, {:p});",
15068 target,
15069 pname,
15070 params
15071 );
15072 }
15073 let out = call_atomic_ptr_3arg(
15074 "glGetBufferParameteri64v",
15075 &self.glGetBufferParameteri64v_p,
15076 target,
15077 pname,
15078 params,
15079 );
15080 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15081 {
15082 self.automatic_glGetError("glGetBufferParameteri64v");
15083 }
15084 out
15085 }
15086 #[doc(hidden)]
15087 pub unsafe fn GetBufferParameteri64v_load_with_dyn(
15088 &self,
15089 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15090 ) -> bool {
15091 load_dyn_name_atomic_ptr(
15092 get_proc_address,
15093 b"glGetBufferParameteri64v\0",
15094 &self.glGetBufferParameteri64v_p,
15095 )
15096 }
15097 #[inline]
15098 #[doc(hidden)]
15099 pub fn GetBufferParameteri64v_is_loaded(&self) -> bool {
15100 !self.glGetBufferParameteri64v_p.load(RELAX).is_null()
15101 }
15102 /// [glGetBufferParameteriv](http://docs.gl/gl4/glGetBufferParameter)(target, pname, params)
15103 /// * `target` group: BufferTargetARB
15104 /// * `pname` group: BufferPNameARB
15105 /// * `params` len: COMPSIZE(pname)
15106 #[cfg_attr(feature = "inline", inline)]
15107 #[cfg_attr(feature = "inline_always", inline(always))]
15108 pub unsafe fn GetBufferParameteriv(
15109 &self,
15110 target: GLenum,
15111 pname: GLenum,
15112 params: *mut GLint,
15113 ) {
15114 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15115 {
15116 trace!(
15117 "calling gl.GetBufferParameteriv({:#X}, {:#X}, {:p});",
15118 target,
15119 pname,
15120 params
15121 );
15122 }
15123 let out = call_atomic_ptr_3arg(
15124 "glGetBufferParameteriv",
15125 &self.glGetBufferParameteriv_p,
15126 target,
15127 pname,
15128 params,
15129 );
15130 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15131 {
15132 self.automatic_glGetError("glGetBufferParameteriv");
15133 }
15134 out
15135 }
15136 #[doc(hidden)]
15137 pub unsafe fn GetBufferParameteriv_load_with_dyn(
15138 &self,
15139 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15140 ) -> bool {
15141 load_dyn_name_atomic_ptr(
15142 get_proc_address,
15143 b"glGetBufferParameteriv\0",
15144 &self.glGetBufferParameteriv_p,
15145 )
15146 }
15147 #[inline]
15148 #[doc(hidden)]
15149 pub fn GetBufferParameteriv_is_loaded(&self) -> bool {
15150 !self.glGetBufferParameteriv_p.load(RELAX).is_null()
15151 }
15152 /// [glGetBufferPointerv](http://docs.gl/gl4/glGetBufferPointerv)(target, pname, params)
15153 /// * `target` group: BufferTargetARB
15154 /// * `pname` group: BufferPointerNameARB
15155 /// * `params` len: 1
15156 #[cfg_attr(feature = "inline", inline)]
15157 #[cfg_attr(feature = "inline_always", inline(always))]
15158 pub unsafe fn GetBufferPointerv(
15159 &self,
15160 target: GLenum,
15161 pname: GLenum,
15162 params: *mut *mut c_void,
15163 ) {
15164 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15165 {
15166 trace!(
15167 "calling gl.GetBufferPointerv({:#X}, {:#X}, {:p});",
15168 target,
15169 pname,
15170 params
15171 );
15172 }
15173 let out = call_atomic_ptr_3arg(
15174 "glGetBufferPointerv",
15175 &self.glGetBufferPointerv_p,
15176 target,
15177 pname,
15178 params,
15179 );
15180 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15181 {
15182 self.automatic_glGetError("glGetBufferPointerv");
15183 }
15184 out
15185 }
15186 #[doc(hidden)]
15187 pub unsafe fn GetBufferPointerv_load_with_dyn(
15188 &self,
15189 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15190 ) -> bool {
15191 load_dyn_name_atomic_ptr(
15192 get_proc_address,
15193 b"glGetBufferPointerv\0",
15194 &self.glGetBufferPointerv_p,
15195 )
15196 }
15197 #[inline]
15198 #[doc(hidden)]
15199 pub fn GetBufferPointerv_is_loaded(&self) -> bool {
15200 !self.glGetBufferPointerv_p.load(RELAX).is_null()
15201 }
15202 /// [glGetBufferSubData](http://docs.gl/gl4/glGetBufferSubData)(target, offset, size, data)
15203 /// * `target` group: BufferTargetARB
15204 /// * `offset` group: BufferOffset
15205 /// * `size` group: BufferSize
15206 /// * `data` len: size
15207 #[cfg_attr(feature = "inline", inline)]
15208 #[cfg_attr(feature = "inline_always", inline(always))]
15209 pub unsafe fn GetBufferSubData(
15210 &self,
15211 target: GLenum,
15212 offset: GLintptr,
15213 size: GLsizeiptr,
15214 data: *mut c_void,
15215 ) {
15216 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15217 {
15218 trace!(
15219 "calling gl.GetBufferSubData({:#X}, {:?}, {:?}, {:p});",
15220 target,
15221 offset,
15222 size,
15223 data
15224 );
15225 }
15226 let out = call_atomic_ptr_4arg(
15227 "glGetBufferSubData",
15228 &self.glGetBufferSubData_p,
15229 target,
15230 offset,
15231 size,
15232 data,
15233 );
15234 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15235 {
15236 self.automatic_glGetError("glGetBufferSubData");
15237 }
15238 out
15239 }
15240 #[doc(hidden)]
15241 pub unsafe fn GetBufferSubData_load_with_dyn(
15242 &self,
15243 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15244 ) -> bool {
15245 load_dyn_name_atomic_ptr(
15246 get_proc_address,
15247 b"glGetBufferSubData\0",
15248 &self.glGetBufferSubData_p,
15249 )
15250 }
15251 #[inline]
15252 #[doc(hidden)]
15253 pub fn GetBufferSubData_is_loaded(&self) -> bool {
15254 !self.glGetBufferSubData_p.load(RELAX).is_null()
15255 }
15256 /// [glGetCompressedTexImage](http://docs.gl/gl4/glGetCompressedTexImage)(target, level, img)
15257 /// * `target` group: TextureTarget
15258 /// * `level` group: CheckedInt32
15259 /// * `img` group: CompressedTextureARB
15260 /// * `img` len: COMPSIZE(target,level)
15261 #[cfg_attr(feature = "inline", inline)]
15262 #[cfg_attr(feature = "inline_always", inline(always))]
15263 pub unsafe fn GetCompressedTexImage(&self, target: GLenum, level: GLint, img: *mut c_void) {
15264 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15265 {
15266 trace!(
15267 "calling gl.GetCompressedTexImage({:#X}, {:?}, {:p});",
15268 target,
15269 level,
15270 img
15271 );
15272 }
15273 let out = call_atomic_ptr_3arg(
15274 "glGetCompressedTexImage",
15275 &self.glGetCompressedTexImage_p,
15276 target,
15277 level,
15278 img,
15279 );
15280 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15281 {
15282 self.automatic_glGetError("glGetCompressedTexImage");
15283 }
15284 out
15285 }
15286 #[doc(hidden)]
15287 pub unsafe fn GetCompressedTexImage_load_with_dyn(
15288 &self,
15289 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15290 ) -> bool {
15291 load_dyn_name_atomic_ptr(
15292 get_proc_address,
15293 b"glGetCompressedTexImage\0",
15294 &self.glGetCompressedTexImage_p,
15295 )
15296 }
15297 #[inline]
15298 #[doc(hidden)]
15299 pub fn GetCompressedTexImage_is_loaded(&self) -> bool {
15300 !self.glGetCompressedTexImage_p.load(RELAX).is_null()
15301 }
15302 /// [glGetCompressedTextureImage](http://docs.gl/gl4/glGetCompressedTextureImage)(texture, level, bufSize, pixels)
15303 #[cfg_attr(feature = "inline", inline)]
15304 #[cfg_attr(feature = "inline_always", inline(always))]
15305 pub unsafe fn GetCompressedTextureImage(
15306 &self,
15307 texture: GLuint,
15308 level: GLint,
15309 bufSize: GLsizei,
15310 pixels: *mut c_void,
15311 ) {
15312 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15313 {
15314 trace!(
15315 "calling gl.GetCompressedTextureImage({:?}, {:?}, {:?}, {:p});",
15316 texture,
15317 level,
15318 bufSize,
15319 pixels
15320 );
15321 }
15322 let out = call_atomic_ptr_4arg(
15323 "glGetCompressedTextureImage",
15324 &self.glGetCompressedTextureImage_p,
15325 texture,
15326 level,
15327 bufSize,
15328 pixels,
15329 );
15330 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15331 {
15332 self.automatic_glGetError("glGetCompressedTextureImage");
15333 }
15334 out
15335 }
15336 #[doc(hidden)]
15337 pub unsafe fn GetCompressedTextureImage_load_with_dyn(
15338 &self,
15339 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15340 ) -> bool {
15341 load_dyn_name_atomic_ptr(
15342 get_proc_address,
15343 b"glGetCompressedTextureImage\0",
15344 &self.glGetCompressedTextureImage_p,
15345 )
15346 }
15347 #[inline]
15348 #[doc(hidden)]
15349 pub fn GetCompressedTextureImage_is_loaded(&self) -> bool {
15350 !self.glGetCompressedTextureImage_p.load(RELAX).is_null()
15351 }
15352 /// [glGetCompressedTextureSubImage](http://docs.gl/gl4/glGetCompressedTextureSubImage)(texture, level, xoffset, yoffset, zoffset, width, height, depth, bufSize, pixels)
15353 #[cfg_attr(feature = "inline", inline)]
15354 #[cfg_attr(feature = "inline_always", inline(always))]
15355 pub unsafe fn GetCompressedTextureSubImage(
15356 &self,
15357 texture: GLuint,
15358 level: GLint,
15359 xoffset: GLint,
15360 yoffset: GLint,
15361 zoffset: GLint,
15362 width: GLsizei,
15363 height: GLsizei,
15364 depth: GLsizei,
15365 bufSize: GLsizei,
15366 pixels: *mut c_void,
15367 ) {
15368 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15369 {
15370 trace!("calling gl.GetCompressedTextureSubImage({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:p});", texture, level, xoffset, yoffset, zoffset, width, height, depth, bufSize, pixels);
15371 }
15372 let out = call_atomic_ptr_10arg(
15373 "glGetCompressedTextureSubImage",
15374 &self.glGetCompressedTextureSubImage_p,
15375 texture,
15376 level,
15377 xoffset,
15378 yoffset,
15379 zoffset,
15380 width,
15381 height,
15382 depth,
15383 bufSize,
15384 pixels,
15385 );
15386 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15387 {
15388 self.automatic_glGetError("glGetCompressedTextureSubImage");
15389 }
15390 out
15391 }
15392 #[doc(hidden)]
15393 pub unsafe fn GetCompressedTextureSubImage_load_with_dyn(
15394 &self,
15395 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15396 ) -> bool {
15397 load_dyn_name_atomic_ptr(
15398 get_proc_address,
15399 b"glGetCompressedTextureSubImage\0",
15400 &self.glGetCompressedTextureSubImage_p,
15401 )
15402 }
15403 #[inline]
15404 #[doc(hidden)]
15405 pub fn GetCompressedTextureSubImage_is_loaded(&self) -> bool {
15406 !self.glGetCompressedTextureSubImage_p.load(RELAX).is_null()
15407 }
15408 /// [glGetDebugMessageLog](http://docs.gl/gl4/glGetDebugMessageLog)(count, bufSize, sources, types, ids, severities, lengths, messageLog)
15409 /// * `sources` group: DebugSource
15410 /// * `sources` len: count
15411 /// * `types` group: DebugType
15412 /// * `types` len: count
15413 /// * `ids` len: count
15414 /// * `severities` group: DebugSeverity
15415 /// * `severities` len: count
15416 /// * `lengths` len: count
15417 /// * `messageLog` len: bufSize
15418 #[cfg_attr(feature = "inline", inline)]
15419 #[cfg_attr(feature = "inline_always", inline(always))]
15420 pub unsafe fn GetDebugMessageLog(
15421 &self,
15422 count: GLuint,
15423 bufSize: GLsizei,
15424 sources: *mut GLenum,
15425 types: *mut GLenum,
15426 ids: *mut GLuint,
15427 severities: *mut GLenum,
15428 lengths: *mut GLsizei,
15429 messageLog: *mut GLchar,
15430 ) -> GLuint {
15431 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15432 {
15433 trace!("calling gl.GetDebugMessageLog({:?}, {:?}, {:p}, {:p}, {:p}, {:p}, {:p}, {:p});", count, bufSize, sources, types, ids, severities, lengths, messageLog);
15434 }
15435 let out = call_atomic_ptr_8arg(
15436 "glGetDebugMessageLog",
15437 &self.glGetDebugMessageLog_p,
15438 count,
15439 bufSize,
15440 sources,
15441 types,
15442 ids,
15443 severities,
15444 lengths,
15445 messageLog,
15446 );
15447 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15448 {
15449 self.automatic_glGetError("glGetDebugMessageLog");
15450 }
15451 out
15452 }
15453 #[doc(hidden)]
15454 pub unsafe fn GetDebugMessageLog_load_with_dyn(
15455 &self,
15456 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15457 ) -> bool {
15458 load_dyn_name_atomic_ptr(
15459 get_proc_address,
15460 b"glGetDebugMessageLog\0",
15461 &self.glGetDebugMessageLog_p,
15462 )
15463 }
15464 #[inline]
15465 #[doc(hidden)]
15466 pub fn GetDebugMessageLog_is_loaded(&self) -> bool {
15467 !self.glGetDebugMessageLog_p.load(RELAX).is_null()
15468 }
15469 /// [glGetDebugMessageLogARB](http://docs.gl/gl4/glGetDebugMessageLogARB)(count, bufSize, sources, types, ids, severities, lengths, messageLog)
15470 /// * `sources` group: DebugSource
15471 /// * `sources` len: count
15472 /// * `types` group: DebugType
15473 /// * `types` len: count
15474 /// * `ids` len: count
15475 /// * `severities` group: DebugSeverity
15476 /// * `severities` len: count
15477 /// * `lengths` len: count
15478 /// * `messageLog` len: bufSize
15479 /// * alias of: [`glGetDebugMessageLog`]
15480 #[cfg_attr(feature = "inline", inline)]
15481 #[cfg_attr(feature = "inline_always", inline(always))]
15482 pub unsafe fn GetDebugMessageLogARB(
15483 &self,
15484 count: GLuint,
15485 bufSize: GLsizei,
15486 sources: *mut GLenum,
15487 types: *mut GLenum,
15488 ids: *mut GLuint,
15489 severities: *mut GLenum,
15490 lengths: *mut GLsizei,
15491 messageLog: *mut GLchar,
15492 ) -> GLuint {
15493 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15494 {
15495 trace!("calling gl.GetDebugMessageLogARB({:?}, {:?}, {:p}, {:p}, {:p}, {:p}, {:p}, {:p});", count, bufSize, sources, types, ids, severities, lengths, messageLog);
15496 }
15497 let out = call_atomic_ptr_8arg(
15498 "glGetDebugMessageLogARB",
15499 &self.glGetDebugMessageLogARB_p,
15500 count,
15501 bufSize,
15502 sources,
15503 types,
15504 ids,
15505 severities,
15506 lengths,
15507 messageLog,
15508 );
15509 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15510 {
15511 self.automatic_glGetError("glGetDebugMessageLogARB");
15512 }
15513 out
15514 }
15515
15516 #[doc(hidden)]
15517 pub unsafe fn GetDebugMessageLogARB_load_with_dyn(
15518 &self,
15519 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15520 ) -> bool {
15521 load_dyn_name_atomic_ptr(
15522 get_proc_address,
15523 b"glGetDebugMessageLogARB\0",
15524 &self.glGetDebugMessageLogARB_p,
15525 )
15526 }
15527 #[inline]
15528 #[doc(hidden)]
15529
15530 pub fn GetDebugMessageLogARB_is_loaded(&self) -> bool {
15531 !self.glGetDebugMessageLogARB_p.load(RELAX).is_null()
15532 }
15533 /// [glGetDebugMessageLogKHR](http://docs.gl/gl4/glGetDebugMessageLogKHR)(count, bufSize, sources, types, ids, severities, lengths, messageLog)
15534 /// * `sources` group: DebugSource
15535 /// * `sources` len: count
15536 /// * `types` group: DebugType
15537 /// * `types` len: count
15538 /// * `ids` len: count
15539 /// * `severities` group: DebugSeverity
15540 /// * `severities` len: count
15541 /// * `lengths` len: count
15542 /// * `messageLog` len: bufSize
15543 /// * alias of: [`glGetDebugMessageLog`]
15544 #[cfg_attr(feature = "inline", inline)]
15545 #[cfg_attr(feature = "inline_always", inline(always))]
15546 pub unsafe fn GetDebugMessageLogKHR(
15547 &self,
15548 count: GLuint,
15549 bufSize: GLsizei,
15550 sources: *mut GLenum,
15551 types: *mut GLenum,
15552 ids: *mut GLuint,
15553 severities: *mut GLenum,
15554 lengths: *mut GLsizei,
15555 messageLog: *mut GLchar,
15556 ) -> GLuint {
15557 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15558 {
15559 trace!("calling gl.GetDebugMessageLogKHR({:?}, {:?}, {:p}, {:p}, {:p}, {:p}, {:p}, {:p});", count, bufSize, sources, types, ids, severities, lengths, messageLog);
15560 }
15561 let out = call_atomic_ptr_8arg(
15562 "glGetDebugMessageLogKHR",
15563 &self.glGetDebugMessageLogKHR_p,
15564 count,
15565 bufSize,
15566 sources,
15567 types,
15568 ids,
15569 severities,
15570 lengths,
15571 messageLog,
15572 );
15573 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15574 {
15575 self.automatic_glGetError("glGetDebugMessageLogKHR");
15576 }
15577 out
15578 }
15579
15580 #[doc(hidden)]
15581 pub unsafe fn GetDebugMessageLogKHR_load_with_dyn(
15582 &self,
15583 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15584 ) -> bool {
15585 load_dyn_name_atomic_ptr(
15586 get_proc_address,
15587 b"glGetDebugMessageLogKHR\0",
15588 &self.glGetDebugMessageLogKHR_p,
15589 )
15590 }
15591 #[inline]
15592 #[doc(hidden)]
15593
15594 pub fn GetDebugMessageLogKHR_is_loaded(&self) -> bool {
15595 !self.glGetDebugMessageLogKHR_p.load(RELAX).is_null()
15596 }
15597 /// [glGetDoublei_v](http://docs.gl/gl4/glGetDoublei_v)(target, index, data)
15598 /// * `target` group: GetPName
15599 /// * `data` len: COMPSIZE(target)
15600 #[cfg_attr(feature = "inline", inline)]
15601 #[cfg_attr(feature = "inline_always", inline(always))]
15602 pub unsafe fn GetDoublei_v(&self, target: GLenum, index: GLuint, data: *mut GLdouble) {
15603 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15604 {
15605 trace!(
15606 "calling gl.GetDoublei_v({:#X}, {:?}, {:p});",
15607 target,
15608 index,
15609 data
15610 );
15611 }
15612 let out = call_atomic_ptr_3arg(
15613 "glGetDoublei_v",
15614 &self.glGetDoublei_v_p,
15615 target,
15616 index,
15617 data,
15618 );
15619 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15620 {
15621 self.automatic_glGetError("glGetDoublei_v");
15622 }
15623 out
15624 }
15625 #[doc(hidden)]
15626 pub unsafe fn GetDoublei_v_load_with_dyn(
15627 &self,
15628 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15629 ) -> bool {
15630 load_dyn_name_atomic_ptr(
15631 get_proc_address,
15632 b"glGetDoublei_v\0",
15633 &self.glGetDoublei_v_p,
15634 )
15635 }
15636 #[inline]
15637 #[doc(hidden)]
15638 pub fn GetDoublei_v_is_loaded(&self) -> bool {
15639 !self.glGetDoublei_v_p.load(RELAX).is_null()
15640 }
15641 /// [glGetDoublev](http://docs.gl/gl4/glGetDoublev)(pname, data)
15642 /// * `pname` group: GetPName
15643 /// * `data` len: COMPSIZE(pname)
15644 #[cfg_attr(feature = "inline", inline)]
15645 #[cfg_attr(feature = "inline_always", inline(always))]
15646 pub unsafe fn GetDoublev(&self, pname: GLenum, data: *mut GLdouble) {
15647 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15648 {
15649 trace!("calling gl.GetDoublev({:#X}, {:p});", pname, data);
15650 }
15651 let out = call_atomic_ptr_2arg("glGetDoublev", &self.glGetDoublev_p, pname, data);
15652 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15653 {
15654 self.automatic_glGetError("glGetDoublev");
15655 }
15656 out
15657 }
15658 #[doc(hidden)]
15659 pub unsafe fn GetDoublev_load_with_dyn(
15660 &self,
15661 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15662 ) -> bool {
15663 load_dyn_name_atomic_ptr(get_proc_address, b"glGetDoublev\0", &self.glGetDoublev_p)
15664 }
15665 #[inline]
15666 #[doc(hidden)]
15667 pub fn GetDoublev_is_loaded(&self) -> bool {
15668 !self.glGetDoublev_p.load(RELAX).is_null()
15669 }
15670 /// [glGetError](http://docs.gl/gl4/glGetError)()
15671 /// * return value group: ErrorCode
15672 #[cfg_attr(feature = "inline", inline)]
15673 #[cfg_attr(feature = "inline_always", inline(always))]
15674 pub unsafe fn GetError(&self) -> GLenum {
15675 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15676 {
15677 trace!("calling gl.GetError();",);
15678 }
15679 let out = call_atomic_ptr_0arg("glGetError", &self.glGetError_p);
15680
15681 out
15682 }
15683 #[doc(hidden)]
15684 pub unsafe fn GetError_load_with_dyn(
15685 &self,
15686 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15687 ) -> bool {
15688 load_dyn_name_atomic_ptr(get_proc_address, b"glGetError\0", &self.glGetError_p)
15689 }
15690 #[inline]
15691 #[doc(hidden)]
15692 pub fn GetError_is_loaded(&self) -> bool {
15693 !self.glGetError_p.load(RELAX).is_null()
15694 }
15695 /// [glGetFloati_v](http://docs.gl/gl4/glGetFloati_v)(target, index, data)
15696 /// * `target` group: GetPName
15697 /// * `data` len: COMPSIZE(target)
15698 #[cfg_attr(feature = "inline", inline)]
15699 #[cfg_attr(feature = "inline_always", inline(always))]
15700 pub unsafe fn GetFloati_v(&self, target: GLenum, index: GLuint, data: *mut GLfloat) {
15701 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15702 {
15703 trace!(
15704 "calling gl.GetFloati_v({:#X}, {:?}, {:p});",
15705 target,
15706 index,
15707 data
15708 );
15709 }
15710 let out =
15711 call_atomic_ptr_3arg("glGetFloati_v", &self.glGetFloati_v_p, target, index, data);
15712 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15713 {
15714 self.automatic_glGetError("glGetFloati_v");
15715 }
15716 out
15717 }
15718 #[doc(hidden)]
15719 pub unsafe fn GetFloati_v_load_with_dyn(
15720 &self,
15721 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15722 ) -> bool {
15723 load_dyn_name_atomic_ptr(get_proc_address, b"glGetFloati_v\0", &self.glGetFloati_v_p)
15724 }
15725 #[inline]
15726 #[doc(hidden)]
15727 pub fn GetFloati_v_is_loaded(&self) -> bool {
15728 !self.glGetFloati_v_p.load(RELAX).is_null()
15729 }
15730 /// [glGetFloatv](http://docs.gl/gl4/glGet)(pname, data)
15731 /// * `pname` group: GetPName
15732 /// * `data` len: COMPSIZE(pname)
15733 #[cfg_attr(feature = "inline", inline)]
15734 #[cfg_attr(feature = "inline_always", inline(always))]
15735 pub unsafe fn GetFloatv(&self, pname: GLenum, data: *mut GLfloat) {
15736 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15737 {
15738 trace!("calling gl.GetFloatv({:#X}, {:p});", pname, data);
15739 }
15740 let out = call_atomic_ptr_2arg("glGetFloatv", &self.glGetFloatv_p, pname, data);
15741 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15742 {
15743 self.automatic_glGetError("glGetFloatv");
15744 }
15745 out
15746 }
15747 #[doc(hidden)]
15748 pub unsafe fn GetFloatv_load_with_dyn(
15749 &self,
15750 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15751 ) -> bool {
15752 load_dyn_name_atomic_ptr(get_proc_address, b"glGetFloatv\0", &self.glGetFloatv_p)
15753 }
15754 #[inline]
15755 #[doc(hidden)]
15756 pub fn GetFloatv_is_loaded(&self) -> bool {
15757 !self.glGetFloatv_p.load(RELAX).is_null()
15758 }
15759 /// [glGetFragDataIndex](http://docs.gl/gl4/glGetFragDataIndex)(program, name)
15760 #[cfg_attr(feature = "inline", inline)]
15761 #[cfg_attr(feature = "inline_always", inline(always))]
15762 pub unsafe fn GetFragDataIndex(&self, program: GLuint, name: *const GLchar) -> GLint {
15763 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15764 {
15765 trace!("calling gl.GetFragDataIndex({:?}, {:p});", program, name);
15766 }
15767 let out = call_atomic_ptr_2arg(
15768 "glGetFragDataIndex",
15769 &self.glGetFragDataIndex_p,
15770 program,
15771 name,
15772 );
15773 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15774 {
15775 self.automatic_glGetError("glGetFragDataIndex");
15776 }
15777 out
15778 }
15779 #[doc(hidden)]
15780 pub unsafe fn GetFragDataIndex_load_with_dyn(
15781 &self,
15782 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15783 ) -> bool {
15784 load_dyn_name_atomic_ptr(
15785 get_proc_address,
15786 b"glGetFragDataIndex\0",
15787 &self.glGetFragDataIndex_p,
15788 )
15789 }
15790 #[inline]
15791 #[doc(hidden)]
15792 pub fn GetFragDataIndex_is_loaded(&self) -> bool {
15793 !self.glGetFragDataIndex_p.load(RELAX).is_null()
15794 }
15795 /// [glGetFragDataLocation](http://docs.gl/gl4/glGetFragDataLocation)(program, name)
15796 /// * `name` len: COMPSIZE(name)
15797 #[cfg_attr(feature = "inline", inline)]
15798 #[cfg_attr(feature = "inline_always", inline(always))]
15799 pub unsafe fn GetFragDataLocation(&self, program: GLuint, name: *const GLchar) -> GLint {
15800 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15801 {
15802 trace!("calling gl.GetFragDataLocation({:?}, {:p});", program, name);
15803 }
15804 let out = call_atomic_ptr_2arg(
15805 "glGetFragDataLocation",
15806 &self.glGetFragDataLocation_p,
15807 program,
15808 name,
15809 );
15810 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15811 {
15812 self.automatic_glGetError("glGetFragDataLocation");
15813 }
15814 out
15815 }
15816 #[doc(hidden)]
15817 pub unsafe fn GetFragDataLocation_load_with_dyn(
15818 &self,
15819 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15820 ) -> bool {
15821 load_dyn_name_atomic_ptr(
15822 get_proc_address,
15823 b"glGetFragDataLocation\0",
15824 &self.glGetFragDataLocation_p,
15825 )
15826 }
15827 #[inline]
15828 #[doc(hidden)]
15829 pub fn GetFragDataLocation_is_loaded(&self) -> bool {
15830 !self.glGetFragDataLocation_p.load(RELAX).is_null()
15831 }
15832 /// [glGetFramebufferAttachmentParameteriv](http://docs.gl/gl4/glGetFramebufferAttachmentParameter)(target, attachment, pname, params)
15833 /// * `target` group: FramebufferTarget
15834 /// * `attachment` group: FramebufferAttachment
15835 /// * `pname` group: FramebufferAttachmentParameterName
15836 /// * `params` len: COMPSIZE(pname)
15837 #[cfg_attr(feature = "inline", inline)]
15838 #[cfg_attr(feature = "inline_always", inline(always))]
15839 pub unsafe fn GetFramebufferAttachmentParameteriv(
15840 &self,
15841 target: GLenum,
15842 attachment: GLenum,
15843 pname: GLenum,
15844 params: *mut GLint,
15845 ) {
15846 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15847 {
15848 trace!(
15849 "calling gl.GetFramebufferAttachmentParameteriv({:#X}, {:#X}, {:#X}, {:p});",
15850 target,
15851 attachment,
15852 pname,
15853 params
15854 );
15855 }
15856 let out = call_atomic_ptr_4arg(
15857 "glGetFramebufferAttachmentParameteriv",
15858 &self.glGetFramebufferAttachmentParameteriv_p,
15859 target,
15860 attachment,
15861 pname,
15862 params,
15863 );
15864 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15865 {
15866 self.automatic_glGetError("glGetFramebufferAttachmentParameteriv");
15867 }
15868 out
15869 }
15870 #[doc(hidden)]
15871 pub unsafe fn GetFramebufferAttachmentParameteriv_load_with_dyn(
15872 &self,
15873 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15874 ) -> bool {
15875 load_dyn_name_atomic_ptr(
15876 get_proc_address,
15877 b"glGetFramebufferAttachmentParameteriv\0",
15878 &self.glGetFramebufferAttachmentParameteriv_p,
15879 )
15880 }
15881 #[inline]
15882 #[doc(hidden)]
15883 pub fn GetFramebufferAttachmentParameteriv_is_loaded(&self) -> bool {
15884 !self
15885 .glGetFramebufferAttachmentParameteriv_p
15886 .load(RELAX)
15887 .is_null()
15888 }
15889 /// [glGetFramebufferParameteriv](http://docs.gl/gl4/glGetFramebufferParameter)(target, pname, params)
15890 /// * `target` group: FramebufferTarget
15891 /// * `pname` group: FramebufferAttachmentParameterName
15892 /// * `params` len: COMPSIZE(pname)
15893 #[cfg_attr(feature = "inline", inline)]
15894 #[cfg_attr(feature = "inline_always", inline(always))]
15895 pub unsafe fn GetFramebufferParameteriv(
15896 &self,
15897 target: GLenum,
15898 pname: GLenum,
15899 params: *mut GLint,
15900 ) {
15901 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15902 {
15903 trace!(
15904 "calling gl.GetFramebufferParameteriv({:#X}, {:#X}, {:p});",
15905 target,
15906 pname,
15907 params
15908 );
15909 }
15910 let out = call_atomic_ptr_3arg(
15911 "glGetFramebufferParameteriv",
15912 &self.glGetFramebufferParameteriv_p,
15913 target,
15914 pname,
15915 params,
15916 );
15917 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15918 {
15919 self.automatic_glGetError("glGetFramebufferParameteriv");
15920 }
15921 out
15922 }
15923 #[doc(hidden)]
15924 pub unsafe fn GetFramebufferParameteriv_load_with_dyn(
15925 &self,
15926 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15927 ) -> bool {
15928 load_dyn_name_atomic_ptr(
15929 get_proc_address,
15930 b"glGetFramebufferParameteriv\0",
15931 &self.glGetFramebufferParameteriv_p,
15932 )
15933 }
15934 #[inline]
15935 #[doc(hidden)]
15936 pub fn GetFramebufferParameteriv_is_loaded(&self) -> bool {
15937 !self.glGetFramebufferParameteriv_p.load(RELAX).is_null()
15938 }
15939 /// [glGetGraphicsResetStatus](http://docs.gl/gl4/glGetGraphicsResetStatus)()
15940 /// * return value group: GraphicsResetStatus
15941 #[cfg_attr(feature = "inline", inline)]
15942 #[cfg_attr(feature = "inline_always", inline(always))]
15943 pub unsafe fn GetGraphicsResetStatus(&self) -> GLenum {
15944 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15945 {
15946 trace!("calling gl.GetGraphicsResetStatus();",);
15947 }
15948 let out =
15949 call_atomic_ptr_0arg("glGetGraphicsResetStatus", &self.glGetGraphicsResetStatus_p);
15950 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15951 {
15952 self.automatic_glGetError("glGetGraphicsResetStatus");
15953 }
15954 out
15955 }
15956 #[doc(hidden)]
15957 pub unsafe fn GetGraphicsResetStatus_load_with_dyn(
15958 &self,
15959 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15960 ) -> bool {
15961 load_dyn_name_atomic_ptr(
15962 get_proc_address,
15963 b"glGetGraphicsResetStatus\0",
15964 &self.glGetGraphicsResetStatus_p,
15965 )
15966 }
15967 #[inline]
15968 #[doc(hidden)]
15969 pub fn GetGraphicsResetStatus_is_loaded(&self) -> bool {
15970 !self.glGetGraphicsResetStatus_p.load(RELAX).is_null()
15971 }
15972 /// [glGetInteger64i_v](http://docs.gl/gl4/glGet)(target, index, data)
15973 /// * `target` group: GetPName
15974 /// * `data` len: COMPSIZE(target)
15975 #[cfg_attr(feature = "inline", inline)]
15976 #[cfg_attr(feature = "inline_always", inline(always))]
15977 pub unsafe fn GetInteger64i_v(&self, target: GLenum, index: GLuint, data: *mut GLint64) {
15978 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15979 {
15980 trace!(
15981 "calling gl.GetInteger64i_v({:#X}, {:?}, {:p});",
15982 target,
15983 index,
15984 data
15985 );
15986 }
15987 let out = call_atomic_ptr_3arg(
15988 "glGetInteger64i_v",
15989 &self.glGetInteger64i_v_p,
15990 target,
15991 index,
15992 data,
15993 );
15994 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15995 {
15996 self.automatic_glGetError("glGetInteger64i_v");
15997 }
15998 out
15999 }
16000 #[doc(hidden)]
16001 pub unsafe fn GetInteger64i_v_load_with_dyn(
16002 &self,
16003 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16004 ) -> bool {
16005 load_dyn_name_atomic_ptr(
16006 get_proc_address,
16007 b"glGetInteger64i_v\0",
16008 &self.glGetInteger64i_v_p,
16009 )
16010 }
16011 #[inline]
16012 #[doc(hidden)]
16013 pub fn GetInteger64i_v_is_loaded(&self) -> bool {
16014 !self.glGetInteger64i_v_p.load(RELAX).is_null()
16015 }
16016 /// [glGetInteger64v](http://docs.gl/gl4/glGet)(pname, data)
16017 /// * `pname` group: GetPName
16018 /// * `data` len: COMPSIZE(pname)
16019 #[cfg_attr(feature = "inline", inline)]
16020 #[cfg_attr(feature = "inline_always", inline(always))]
16021 pub unsafe fn GetInteger64v(&self, pname: GLenum, data: *mut GLint64) {
16022 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16023 {
16024 trace!("calling gl.GetInteger64v({:#X}, {:p});", pname, data);
16025 }
16026 let out = call_atomic_ptr_2arg("glGetInteger64v", &self.glGetInteger64v_p, pname, data);
16027 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16028 {
16029 self.automatic_glGetError("glGetInteger64v");
16030 }
16031 out
16032 }
16033 #[doc(hidden)]
16034 pub unsafe fn GetInteger64v_load_with_dyn(
16035 &self,
16036 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16037 ) -> bool {
16038 load_dyn_name_atomic_ptr(
16039 get_proc_address,
16040 b"glGetInteger64v\0",
16041 &self.glGetInteger64v_p,
16042 )
16043 }
16044 #[inline]
16045 #[doc(hidden)]
16046 pub fn GetInteger64v_is_loaded(&self) -> bool {
16047 !self.glGetInteger64v_p.load(RELAX).is_null()
16048 }
16049 /// [glGetIntegerIndexedvEXT](http://docs.gl/gl4/glGetIntegerIndexedvEXT)(target, index, data)
16050 /// * `target` group: GetPName
16051 /// * `data` len: COMPSIZE(target)
16052 /// * alias of: [`glGetIntegeri_v`]
16053 #[cfg_attr(feature = "inline", inline)]
16054 #[cfg_attr(feature = "inline_always", inline(always))]
16055 pub unsafe fn GetIntegerIndexedvEXT(
16056 &self,
16057 target: GLenum,
16058 index: GLuint,
16059 data: *mut GLint,
16060 ) {
16061 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16062 {
16063 trace!(
16064 "calling gl.GetIntegerIndexedvEXT({:#X}, {:?}, {:p});",
16065 target,
16066 index,
16067 data
16068 );
16069 }
16070 let out = call_atomic_ptr_3arg(
16071 "glGetIntegerIndexedvEXT",
16072 &self.glGetIntegerIndexedvEXT_p,
16073 target,
16074 index,
16075 data,
16076 );
16077 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16078 {
16079 self.automatic_glGetError("glGetIntegerIndexedvEXT");
16080 }
16081 out
16082 }
16083
16084 #[doc(hidden)]
16085 pub unsafe fn GetIntegerIndexedvEXT_load_with_dyn(
16086 &self,
16087 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16088 ) -> bool {
16089 load_dyn_name_atomic_ptr(
16090 get_proc_address,
16091 b"glGetIntegerIndexedvEXT\0",
16092 &self.glGetIntegerIndexedvEXT_p,
16093 )
16094 }
16095 #[inline]
16096 #[doc(hidden)]
16097
16098 pub fn GetIntegerIndexedvEXT_is_loaded(&self) -> bool {
16099 !self.glGetIntegerIndexedvEXT_p.load(RELAX).is_null()
16100 }
16101 /// [glGetIntegeri_v](http://docs.gl/gl4/glGet)(target, index, data)
16102 /// * `target` group: GetPName
16103 /// * `data` len: COMPSIZE(target)
16104 #[cfg_attr(feature = "inline", inline)]
16105 #[cfg_attr(feature = "inline_always", inline(always))]
16106 pub unsafe fn GetIntegeri_v(&self, target: GLenum, index: GLuint, data: *mut GLint) {
16107 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16108 {
16109 trace!(
16110 "calling gl.GetIntegeri_v({:#X}, {:?}, {:p});",
16111 target,
16112 index,
16113 data
16114 );
16115 }
16116 let out = call_atomic_ptr_3arg(
16117 "glGetIntegeri_v",
16118 &self.glGetIntegeri_v_p,
16119 target,
16120 index,
16121 data,
16122 );
16123 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16124 {
16125 self.automatic_glGetError("glGetIntegeri_v");
16126 }
16127 out
16128 }
16129 #[doc(hidden)]
16130 pub unsafe fn GetIntegeri_v_load_with_dyn(
16131 &self,
16132 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16133 ) -> bool {
16134 load_dyn_name_atomic_ptr(
16135 get_proc_address,
16136 b"glGetIntegeri_v\0",
16137 &self.glGetIntegeri_v_p,
16138 )
16139 }
16140 #[inline]
16141 #[doc(hidden)]
16142 pub fn GetIntegeri_v_is_loaded(&self) -> bool {
16143 !self.glGetIntegeri_v_p.load(RELAX).is_null()
16144 }
16145 /// [glGetIntegerv](http://docs.gl/gl4/glGet)(pname, data)
16146 /// * `pname` group: GetPName
16147 /// * `data` len: COMPSIZE(pname)
16148 #[cfg_attr(feature = "inline", inline)]
16149 #[cfg_attr(feature = "inline_always", inline(always))]
16150 pub unsafe fn GetIntegerv(&self, pname: GLenum, data: *mut GLint) {
16151 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16152 {
16153 trace!("calling gl.GetIntegerv({:#X}, {:p});", pname, data);
16154 }
16155 let out = call_atomic_ptr_2arg("glGetIntegerv", &self.glGetIntegerv_p, pname, data);
16156 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16157 {
16158 self.automatic_glGetError("glGetIntegerv");
16159 }
16160 out
16161 }
16162 #[doc(hidden)]
16163 pub unsafe fn GetIntegerv_load_with_dyn(
16164 &self,
16165 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16166 ) -> bool {
16167 load_dyn_name_atomic_ptr(get_proc_address, b"glGetIntegerv\0", &self.glGetIntegerv_p)
16168 }
16169 #[inline]
16170 #[doc(hidden)]
16171 pub fn GetIntegerv_is_loaded(&self) -> bool {
16172 !self.glGetIntegerv_p.load(RELAX).is_null()
16173 }
16174 /// [glGetInternalformati64v](http://docs.gl/gl4/glGetInternalformat)(target, internalformat, pname, count, params)
16175 /// * `target` group: TextureTarget
16176 /// * `internalformat` group: InternalFormat
16177 /// * `pname` group: InternalFormatPName
16178 /// * `params` len: count
16179 #[cfg_attr(feature = "inline", inline)]
16180 #[cfg_attr(feature = "inline_always", inline(always))]
16181 pub unsafe fn GetInternalformati64v(
16182 &self,
16183 target: GLenum,
16184 internalformat: GLenum,
16185 pname: GLenum,
16186 count: GLsizei,
16187 params: *mut GLint64,
16188 ) {
16189 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16190 {
16191 trace!(
16192 "calling gl.GetInternalformati64v({:#X}, {:#X}, {:#X}, {:?}, {:p});",
16193 target,
16194 internalformat,
16195 pname,
16196 count,
16197 params
16198 );
16199 }
16200 let out = call_atomic_ptr_5arg(
16201 "glGetInternalformati64v",
16202 &self.glGetInternalformati64v_p,
16203 target,
16204 internalformat,
16205 pname,
16206 count,
16207 params,
16208 );
16209 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16210 {
16211 self.automatic_glGetError("glGetInternalformati64v");
16212 }
16213 out
16214 }
16215 #[doc(hidden)]
16216 pub unsafe fn GetInternalformati64v_load_with_dyn(
16217 &self,
16218 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16219 ) -> bool {
16220 load_dyn_name_atomic_ptr(
16221 get_proc_address,
16222 b"glGetInternalformati64v\0",
16223 &self.glGetInternalformati64v_p,
16224 )
16225 }
16226 #[inline]
16227 #[doc(hidden)]
16228 pub fn GetInternalformati64v_is_loaded(&self) -> bool {
16229 !self.glGetInternalformati64v_p.load(RELAX).is_null()
16230 }
16231 /// [glGetInternalformativ](http://docs.gl/gl4/glGetInternalformativ)(target, internalformat, pname, count, params)
16232 /// * `target` group: TextureTarget
16233 /// * `internalformat` group: InternalFormat
16234 /// * `pname` group: InternalFormatPName
16235 /// * `params` len: count
16236 #[cfg_attr(feature = "inline", inline)]
16237 #[cfg_attr(feature = "inline_always", inline(always))]
16238 pub unsafe fn GetInternalformativ(
16239 &self,
16240 target: GLenum,
16241 internalformat: GLenum,
16242 pname: GLenum,
16243 count: GLsizei,
16244 params: *mut GLint,
16245 ) {
16246 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16247 {
16248 trace!(
16249 "calling gl.GetInternalformativ({:#X}, {:#X}, {:#X}, {:?}, {:p});",
16250 target,
16251 internalformat,
16252 pname,
16253 count,
16254 params
16255 );
16256 }
16257 let out = call_atomic_ptr_5arg(
16258 "glGetInternalformativ",
16259 &self.glGetInternalformativ_p,
16260 target,
16261 internalformat,
16262 pname,
16263 count,
16264 params,
16265 );
16266 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16267 {
16268 self.automatic_glGetError("glGetInternalformativ");
16269 }
16270 out
16271 }
16272 #[doc(hidden)]
16273 pub unsafe fn GetInternalformativ_load_with_dyn(
16274 &self,
16275 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16276 ) -> bool {
16277 load_dyn_name_atomic_ptr(
16278 get_proc_address,
16279 b"glGetInternalformativ\0",
16280 &self.glGetInternalformativ_p,
16281 )
16282 }
16283 #[inline]
16284 #[doc(hidden)]
16285 pub fn GetInternalformativ_is_loaded(&self) -> bool {
16286 !self.glGetInternalformativ_p.load(RELAX).is_null()
16287 }
16288 /// [glGetMultisamplefv](http://docs.gl/gl4/glGetMultisample)(pname, index, val)
16289 /// * `pname` group: GetMultisamplePNameNV
16290 /// * `val` len: COMPSIZE(pname)
16291 #[cfg_attr(feature = "inline", inline)]
16292 #[cfg_attr(feature = "inline_always", inline(always))]
16293 pub unsafe fn GetMultisamplefv(&self, pname: GLenum, index: GLuint, val: *mut GLfloat) {
16294 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16295 {
16296 trace!(
16297 "calling gl.GetMultisamplefv({:#X}, {:?}, {:p});",
16298 pname,
16299 index,
16300 val
16301 );
16302 }
16303 let out = call_atomic_ptr_3arg(
16304 "glGetMultisamplefv",
16305 &self.glGetMultisamplefv_p,
16306 pname,
16307 index,
16308 val,
16309 );
16310 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16311 {
16312 self.automatic_glGetError("glGetMultisamplefv");
16313 }
16314 out
16315 }
16316 #[doc(hidden)]
16317 pub unsafe fn GetMultisamplefv_load_with_dyn(
16318 &self,
16319 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16320 ) -> bool {
16321 load_dyn_name_atomic_ptr(
16322 get_proc_address,
16323 b"glGetMultisamplefv\0",
16324 &self.glGetMultisamplefv_p,
16325 )
16326 }
16327 #[inline]
16328 #[doc(hidden)]
16329 pub fn GetMultisamplefv_is_loaded(&self) -> bool {
16330 !self.glGetMultisamplefv_p.load(RELAX).is_null()
16331 }
16332 /// [glGetNamedBufferParameteri64v](http://docs.gl/gl4/glGetNamedBufferParameter)(buffer, pname, params)
16333 /// * `pname` group: BufferPNameARB
16334 #[cfg_attr(feature = "inline", inline)]
16335 #[cfg_attr(feature = "inline_always", inline(always))]
16336 pub unsafe fn GetNamedBufferParameteri64v(
16337 &self,
16338 buffer: GLuint,
16339 pname: GLenum,
16340 params: *mut GLint64,
16341 ) {
16342 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16343 {
16344 trace!(
16345 "calling gl.GetNamedBufferParameteri64v({:?}, {:#X}, {:p});",
16346 buffer,
16347 pname,
16348 params
16349 );
16350 }
16351 let out = call_atomic_ptr_3arg(
16352 "glGetNamedBufferParameteri64v",
16353 &self.glGetNamedBufferParameteri64v_p,
16354 buffer,
16355 pname,
16356 params,
16357 );
16358 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16359 {
16360 self.automatic_glGetError("glGetNamedBufferParameteri64v");
16361 }
16362 out
16363 }
16364 #[doc(hidden)]
16365 pub unsafe fn GetNamedBufferParameteri64v_load_with_dyn(
16366 &self,
16367 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16368 ) -> bool {
16369 load_dyn_name_atomic_ptr(
16370 get_proc_address,
16371 b"glGetNamedBufferParameteri64v\0",
16372 &self.glGetNamedBufferParameteri64v_p,
16373 )
16374 }
16375 #[inline]
16376 #[doc(hidden)]
16377 pub fn GetNamedBufferParameteri64v_is_loaded(&self) -> bool {
16378 !self.glGetNamedBufferParameteri64v_p.load(RELAX).is_null()
16379 }
16380 /// [glGetNamedBufferParameteriv](http://docs.gl/gl4/glGetNamedBufferParameter)(buffer, pname, params)
16381 /// * `pname` group: BufferPNameARB
16382 #[cfg_attr(feature = "inline", inline)]
16383 #[cfg_attr(feature = "inline_always", inline(always))]
16384 pub unsafe fn GetNamedBufferParameteriv(
16385 &self,
16386 buffer: GLuint,
16387 pname: GLenum,
16388 params: *mut GLint,
16389 ) {
16390 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16391 {
16392 trace!(
16393 "calling gl.GetNamedBufferParameteriv({:?}, {:#X}, {:p});",
16394 buffer,
16395 pname,
16396 params
16397 );
16398 }
16399 let out = call_atomic_ptr_3arg(
16400 "glGetNamedBufferParameteriv",
16401 &self.glGetNamedBufferParameteriv_p,
16402 buffer,
16403 pname,
16404 params,
16405 );
16406 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16407 {
16408 self.automatic_glGetError("glGetNamedBufferParameteriv");
16409 }
16410 out
16411 }
16412 #[doc(hidden)]
16413 pub unsafe fn GetNamedBufferParameteriv_load_with_dyn(
16414 &self,
16415 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16416 ) -> bool {
16417 load_dyn_name_atomic_ptr(
16418 get_proc_address,
16419 b"glGetNamedBufferParameteriv\0",
16420 &self.glGetNamedBufferParameteriv_p,
16421 )
16422 }
16423 #[inline]
16424 #[doc(hidden)]
16425 pub fn GetNamedBufferParameteriv_is_loaded(&self) -> bool {
16426 !self.glGetNamedBufferParameteriv_p.load(RELAX).is_null()
16427 }
16428 /// [glGetNamedBufferPointerv](http://docs.gl/gl4/glGetNamedBufferPointerv)(buffer, pname, params)
16429 /// * `pname` group: BufferPointerNameARB
16430 #[cfg_attr(feature = "inline", inline)]
16431 #[cfg_attr(feature = "inline_always", inline(always))]
16432 pub unsafe fn GetNamedBufferPointerv(
16433 &self,
16434 buffer: GLuint,
16435 pname: GLenum,
16436 params: *mut *mut c_void,
16437 ) {
16438 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16439 {
16440 trace!(
16441 "calling gl.GetNamedBufferPointerv({:?}, {:#X}, {:p});",
16442 buffer,
16443 pname,
16444 params
16445 );
16446 }
16447 let out = call_atomic_ptr_3arg(
16448 "glGetNamedBufferPointerv",
16449 &self.glGetNamedBufferPointerv_p,
16450 buffer,
16451 pname,
16452 params,
16453 );
16454 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16455 {
16456 self.automatic_glGetError("glGetNamedBufferPointerv");
16457 }
16458 out
16459 }
16460 #[doc(hidden)]
16461 pub unsafe fn GetNamedBufferPointerv_load_with_dyn(
16462 &self,
16463 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16464 ) -> bool {
16465 load_dyn_name_atomic_ptr(
16466 get_proc_address,
16467 b"glGetNamedBufferPointerv\0",
16468 &self.glGetNamedBufferPointerv_p,
16469 )
16470 }
16471 #[inline]
16472 #[doc(hidden)]
16473 pub fn GetNamedBufferPointerv_is_loaded(&self) -> bool {
16474 !self.glGetNamedBufferPointerv_p.load(RELAX).is_null()
16475 }
16476 /// [glGetNamedBufferSubData](http://docs.gl/gl4/glGetNamedBufferSubData)(buffer, offset, size, data)
16477 /// * `size` group: BufferSize
16478 #[cfg_attr(feature = "inline", inline)]
16479 #[cfg_attr(feature = "inline_always", inline(always))]
16480 pub unsafe fn GetNamedBufferSubData(
16481 &self,
16482 buffer: GLuint,
16483 offset: GLintptr,
16484 size: GLsizeiptr,
16485 data: *mut c_void,
16486 ) {
16487 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16488 {
16489 trace!(
16490 "calling gl.GetNamedBufferSubData({:?}, {:?}, {:?}, {:p});",
16491 buffer,
16492 offset,
16493 size,
16494 data
16495 );
16496 }
16497 let out = call_atomic_ptr_4arg(
16498 "glGetNamedBufferSubData",
16499 &self.glGetNamedBufferSubData_p,
16500 buffer,
16501 offset,
16502 size,
16503 data,
16504 );
16505 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16506 {
16507 self.automatic_glGetError("glGetNamedBufferSubData");
16508 }
16509 out
16510 }
16511 #[doc(hidden)]
16512 pub unsafe fn GetNamedBufferSubData_load_with_dyn(
16513 &self,
16514 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16515 ) -> bool {
16516 load_dyn_name_atomic_ptr(
16517 get_proc_address,
16518 b"glGetNamedBufferSubData\0",
16519 &self.glGetNamedBufferSubData_p,
16520 )
16521 }
16522 #[inline]
16523 #[doc(hidden)]
16524 pub fn GetNamedBufferSubData_is_loaded(&self) -> bool {
16525 !self.glGetNamedBufferSubData_p.load(RELAX).is_null()
16526 }
16527 /// [glGetNamedFramebufferAttachmentParameteriv](http://docs.gl/gl4/glGetNamedFramebufferAttachmentParameter)(framebuffer, attachment, pname, params)
16528 /// * `attachment` group: FramebufferAttachment
16529 /// * `pname` group: FramebufferAttachmentParameterName
16530 #[cfg_attr(feature = "inline", inline)]
16531 #[cfg_attr(feature = "inline_always", inline(always))]
16532 pub unsafe fn GetNamedFramebufferAttachmentParameteriv(
16533 &self,
16534 framebuffer: GLuint,
16535 attachment: GLenum,
16536 pname: GLenum,
16537 params: *mut GLint,
16538 ) {
16539 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16540 {
16541 trace!("calling gl.GetNamedFramebufferAttachmentParameteriv({:?}, {:#X}, {:#X}, {:p});", framebuffer, attachment, pname, params);
16542 }
16543 let out = call_atomic_ptr_4arg(
16544 "glGetNamedFramebufferAttachmentParameteriv",
16545 &self.glGetNamedFramebufferAttachmentParameteriv_p,
16546 framebuffer,
16547 attachment,
16548 pname,
16549 params,
16550 );
16551 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16552 {
16553 self.automatic_glGetError("glGetNamedFramebufferAttachmentParameteriv");
16554 }
16555 out
16556 }
16557 #[doc(hidden)]
16558 pub unsafe fn GetNamedFramebufferAttachmentParameteriv_load_with_dyn(
16559 &self,
16560 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16561 ) -> bool {
16562 load_dyn_name_atomic_ptr(
16563 get_proc_address,
16564 b"glGetNamedFramebufferAttachmentParameteriv\0",
16565 &self.glGetNamedFramebufferAttachmentParameteriv_p,
16566 )
16567 }
16568 #[inline]
16569 #[doc(hidden)]
16570 pub fn GetNamedFramebufferAttachmentParameteriv_is_loaded(&self) -> bool {
16571 !self
16572 .glGetNamedFramebufferAttachmentParameteriv_p
16573 .load(RELAX)
16574 .is_null()
16575 }
16576 /// [glGetNamedFramebufferParameteriv](http://docs.gl/gl4/glGetNamedFramebufferParameter)(framebuffer, pname, param)
16577 /// * `pname` group: GetFramebufferParameter
16578 #[cfg_attr(feature = "inline", inline)]
16579 #[cfg_attr(feature = "inline_always", inline(always))]
16580 pub unsafe fn GetNamedFramebufferParameteriv(
16581 &self,
16582 framebuffer: GLuint,
16583 pname: GLenum,
16584 param: *mut GLint,
16585 ) {
16586 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16587 {
16588 trace!(
16589 "calling gl.GetNamedFramebufferParameteriv({:?}, {:#X}, {:p});",
16590 framebuffer,
16591 pname,
16592 param
16593 );
16594 }
16595 let out = call_atomic_ptr_3arg(
16596 "glGetNamedFramebufferParameteriv",
16597 &self.glGetNamedFramebufferParameteriv_p,
16598 framebuffer,
16599 pname,
16600 param,
16601 );
16602 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16603 {
16604 self.automatic_glGetError("glGetNamedFramebufferParameteriv");
16605 }
16606 out
16607 }
16608 #[doc(hidden)]
16609 pub unsafe fn GetNamedFramebufferParameteriv_load_with_dyn(
16610 &self,
16611 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16612 ) -> bool {
16613 load_dyn_name_atomic_ptr(
16614 get_proc_address,
16615 b"glGetNamedFramebufferParameteriv\0",
16616 &self.glGetNamedFramebufferParameteriv_p,
16617 )
16618 }
16619 #[inline]
16620 #[doc(hidden)]
16621 pub fn GetNamedFramebufferParameteriv_is_loaded(&self) -> bool {
16622 !self
16623 .glGetNamedFramebufferParameteriv_p
16624 .load(RELAX)
16625 .is_null()
16626 }
16627 /// [glGetNamedRenderbufferParameteriv](http://docs.gl/gl4/glGetNamedRenderbufferParameter)(renderbuffer, pname, params)
16628 /// * `pname` group: RenderbufferParameterName
16629 #[cfg_attr(feature = "inline", inline)]
16630 #[cfg_attr(feature = "inline_always", inline(always))]
16631 pub unsafe fn GetNamedRenderbufferParameteriv(
16632 &self,
16633 renderbuffer: GLuint,
16634 pname: GLenum,
16635 params: *mut GLint,
16636 ) {
16637 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16638 {
16639 trace!(
16640 "calling gl.GetNamedRenderbufferParameteriv({:?}, {:#X}, {:p});",
16641 renderbuffer,
16642 pname,
16643 params
16644 );
16645 }
16646 let out = call_atomic_ptr_3arg(
16647 "glGetNamedRenderbufferParameteriv",
16648 &self.glGetNamedRenderbufferParameteriv_p,
16649 renderbuffer,
16650 pname,
16651 params,
16652 );
16653 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16654 {
16655 self.automatic_glGetError("glGetNamedRenderbufferParameteriv");
16656 }
16657 out
16658 }
16659 #[doc(hidden)]
16660 pub unsafe fn GetNamedRenderbufferParameteriv_load_with_dyn(
16661 &self,
16662 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16663 ) -> bool {
16664 load_dyn_name_atomic_ptr(
16665 get_proc_address,
16666 b"glGetNamedRenderbufferParameteriv\0",
16667 &self.glGetNamedRenderbufferParameteriv_p,
16668 )
16669 }
16670 #[inline]
16671 #[doc(hidden)]
16672 pub fn GetNamedRenderbufferParameteriv_is_loaded(&self) -> bool {
16673 !self
16674 .glGetNamedRenderbufferParameteriv_p
16675 .load(RELAX)
16676 .is_null()
16677 }
16678 /// [glGetObjectLabel](http://docs.gl/gl4/glGetObjectLabel)(identifier, name, bufSize, length, label)
16679 /// * `identifier` group: ObjectIdentifier
16680 /// * `length` len: 1
16681 /// * `label` len: bufSize
16682 #[cfg_attr(feature = "inline", inline)]
16683 #[cfg_attr(feature = "inline_always", inline(always))]
16684 pub unsafe fn GetObjectLabel(
16685 &self,
16686 identifier: GLenum,
16687 name: GLuint,
16688 bufSize: GLsizei,
16689 length: *mut GLsizei,
16690 label: *mut GLchar,
16691 ) {
16692 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16693 {
16694 trace!(
16695 "calling gl.GetObjectLabel({:#X}, {:?}, {:?}, {:p}, {:p});",
16696 identifier,
16697 name,
16698 bufSize,
16699 length,
16700 label
16701 );
16702 }
16703 let out = call_atomic_ptr_5arg(
16704 "glGetObjectLabel",
16705 &self.glGetObjectLabel_p,
16706 identifier,
16707 name,
16708 bufSize,
16709 length,
16710 label,
16711 );
16712 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16713 {
16714 self.automatic_glGetError("glGetObjectLabel");
16715 }
16716 out
16717 }
16718 #[doc(hidden)]
16719 pub unsafe fn GetObjectLabel_load_with_dyn(
16720 &self,
16721 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16722 ) -> bool {
16723 load_dyn_name_atomic_ptr(
16724 get_proc_address,
16725 b"glGetObjectLabel\0",
16726 &self.glGetObjectLabel_p,
16727 )
16728 }
16729 #[inline]
16730 #[doc(hidden)]
16731 pub fn GetObjectLabel_is_loaded(&self) -> bool {
16732 !self.glGetObjectLabel_p.load(RELAX).is_null()
16733 }
16734 /// [glGetObjectLabelKHR](http://docs.gl/gl4/glGetObjectLabelKHR)(identifier, name, bufSize, length, label)
16735 /// * `label` len: bufSize
16736 /// * alias of: [`glGetObjectLabel`]
16737 #[cfg_attr(feature = "inline", inline)]
16738 #[cfg_attr(feature = "inline_always", inline(always))]
16739 pub unsafe fn GetObjectLabelKHR(
16740 &self,
16741 identifier: GLenum,
16742 name: GLuint,
16743 bufSize: GLsizei,
16744 length: *mut GLsizei,
16745 label: *mut GLchar,
16746 ) {
16747 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16748 {
16749 trace!(
16750 "calling gl.GetObjectLabelKHR({:#X}, {:?}, {:?}, {:p}, {:p});",
16751 identifier,
16752 name,
16753 bufSize,
16754 length,
16755 label
16756 );
16757 }
16758 let out = call_atomic_ptr_5arg(
16759 "glGetObjectLabelKHR",
16760 &self.glGetObjectLabelKHR_p,
16761 identifier,
16762 name,
16763 bufSize,
16764 length,
16765 label,
16766 );
16767 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16768 {
16769 self.automatic_glGetError("glGetObjectLabelKHR");
16770 }
16771 out
16772 }
16773
16774 #[doc(hidden)]
16775 pub unsafe fn GetObjectLabelKHR_load_with_dyn(
16776 &self,
16777 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16778 ) -> bool {
16779 load_dyn_name_atomic_ptr(
16780 get_proc_address,
16781 b"glGetObjectLabelKHR\0",
16782 &self.glGetObjectLabelKHR_p,
16783 )
16784 }
16785 #[inline]
16786 #[doc(hidden)]
16787
16788 pub fn GetObjectLabelKHR_is_loaded(&self) -> bool {
16789 !self.glGetObjectLabelKHR_p.load(RELAX).is_null()
16790 }
16791 /// [glGetObjectPtrLabel](http://docs.gl/gl4/glGetObjectPtrLabel)(ptr, bufSize, length, label)
16792 /// * `length` len: 1
16793 /// * `label` len: bufSize
16794 #[cfg_attr(feature = "inline", inline)]
16795 #[cfg_attr(feature = "inline_always", inline(always))]
16796 pub unsafe fn GetObjectPtrLabel(
16797 &self,
16798 ptr: *const c_void,
16799 bufSize: GLsizei,
16800 length: *mut GLsizei,
16801 label: *mut GLchar,
16802 ) {
16803 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16804 {
16805 trace!(
16806 "calling gl.GetObjectPtrLabel({:p}, {:?}, {:p}, {:p});",
16807 ptr,
16808 bufSize,
16809 length,
16810 label
16811 );
16812 }
16813 let out = call_atomic_ptr_4arg(
16814 "glGetObjectPtrLabel",
16815 &self.glGetObjectPtrLabel_p,
16816 ptr,
16817 bufSize,
16818 length,
16819 label,
16820 );
16821 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16822 {
16823 self.automatic_glGetError("glGetObjectPtrLabel");
16824 }
16825 out
16826 }
16827 #[doc(hidden)]
16828 pub unsafe fn GetObjectPtrLabel_load_with_dyn(
16829 &self,
16830 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16831 ) -> bool {
16832 load_dyn_name_atomic_ptr(
16833 get_proc_address,
16834 b"glGetObjectPtrLabel\0",
16835 &self.glGetObjectPtrLabel_p,
16836 )
16837 }
16838 #[inline]
16839 #[doc(hidden)]
16840 pub fn GetObjectPtrLabel_is_loaded(&self) -> bool {
16841 !self.glGetObjectPtrLabel_p.load(RELAX).is_null()
16842 }
16843 /// [glGetObjectPtrLabelKHR](http://docs.gl/gl4/glGetObjectPtrLabelKHR)(ptr, bufSize, length, label)
16844 /// * `length` len: 1
16845 /// * `label` len: bufSize
16846 /// * alias of: [`glGetObjectPtrLabel`]
16847 #[cfg_attr(feature = "inline", inline)]
16848 #[cfg_attr(feature = "inline_always", inline(always))]
16849 pub unsafe fn GetObjectPtrLabelKHR(
16850 &self,
16851 ptr: *const c_void,
16852 bufSize: GLsizei,
16853 length: *mut GLsizei,
16854 label: *mut GLchar,
16855 ) {
16856 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16857 {
16858 trace!(
16859 "calling gl.GetObjectPtrLabelKHR({:p}, {:?}, {:p}, {:p});",
16860 ptr,
16861 bufSize,
16862 length,
16863 label
16864 );
16865 }
16866 let out = call_atomic_ptr_4arg(
16867 "glGetObjectPtrLabelKHR",
16868 &self.glGetObjectPtrLabelKHR_p,
16869 ptr,
16870 bufSize,
16871 length,
16872 label,
16873 );
16874 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16875 {
16876 self.automatic_glGetError("glGetObjectPtrLabelKHR");
16877 }
16878 out
16879 }
16880
16881 #[doc(hidden)]
16882 pub unsafe fn GetObjectPtrLabelKHR_load_with_dyn(
16883 &self,
16884 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16885 ) -> bool {
16886 load_dyn_name_atomic_ptr(
16887 get_proc_address,
16888 b"glGetObjectPtrLabelKHR\0",
16889 &self.glGetObjectPtrLabelKHR_p,
16890 )
16891 }
16892 #[inline]
16893 #[doc(hidden)]
16894
16895 pub fn GetObjectPtrLabelKHR_is_loaded(&self) -> bool {
16896 !self.glGetObjectPtrLabelKHR_p.load(RELAX).is_null()
16897 }
16898 /// [glGetPointerv](http://docs.gl/gl4/glGetPointerv)(pname, params)
16899 /// * `pname` group: GetPointervPName
16900 /// * `params` len: 1
16901 #[cfg_attr(feature = "inline", inline)]
16902 #[cfg_attr(feature = "inline_always", inline(always))]
16903 pub unsafe fn GetPointerv(&self, pname: GLenum, params: *mut *mut c_void) {
16904 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16905 {
16906 trace!("calling gl.GetPointerv({:#X}, {:p});", pname, params);
16907 }
16908 let out = call_atomic_ptr_2arg("glGetPointerv", &self.glGetPointerv_p, pname, params);
16909 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16910 {
16911 self.automatic_glGetError("glGetPointerv");
16912 }
16913 out
16914 }
16915 #[doc(hidden)]
16916 pub unsafe fn GetPointerv_load_with_dyn(
16917 &self,
16918 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16919 ) -> bool {
16920 load_dyn_name_atomic_ptr(get_proc_address, b"glGetPointerv\0", &self.glGetPointerv_p)
16921 }
16922 #[inline]
16923 #[doc(hidden)]
16924 pub fn GetPointerv_is_loaded(&self) -> bool {
16925 !self.glGetPointerv_p.load(RELAX).is_null()
16926 }
16927 /// [glGetPointervKHR](http://docs.gl/gl4/glGetPointervKHR)(pname, params)
16928 /// * alias of: [`glGetPointerv`]
16929 #[cfg_attr(feature = "inline", inline)]
16930 #[cfg_attr(feature = "inline_always", inline(always))]
16931 pub unsafe fn GetPointervKHR(&self, pname: GLenum, params: *mut *mut c_void) {
16932 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16933 {
16934 trace!("calling gl.GetPointervKHR({:#X}, {:p});", pname, params);
16935 }
16936 let out =
16937 call_atomic_ptr_2arg("glGetPointervKHR", &self.glGetPointervKHR_p, pname, params);
16938 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16939 {
16940 self.automatic_glGetError("glGetPointervKHR");
16941 }
16942 out
16943 }
16944
16945 #[doc(hidden)]
16946 pub unsafe fn GetPointervKHR_load_with_dyn(
16947 &self,
16948 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16949 ) -> bool {
16950 load_dyn_name_atomic_ptr(
16951 get_proc_address,
16952 b"glGetPointervKHR\0",
16953 &self.glGetPointervKHR_p,
16954 )
16955 }
16956 #[inline]
16957 #[doc(hidden)]
16958
16959 pub fn GetPointervKHR_is_loaded(&self) -> bool {
16960 !self.glGetPointervKHR_p.load(RELAX).is_null()
16961 }
16962 /// [glGetProgramBinary](http://docs.gl/gl4/glGetProgramBinary)(program, bufSize, length, binaryFormat, binary)
16963 /// * `length` len: 1
16964 /// * `binaryFormat` len: 1
16965 /// * `binary` len: bufSize
16966 #[cfg_attr(feature = "inline", inline)]
16967 #[cfg_attr(feature = "inline_always", inline(always))]
16968 pub unsafe fn GetProgramBinary(
16969 &self,
16970 program: GLuint,
16971 bufSize: GLsizei,
16972 length: *mut GLsizei,
16973 binaryFormat: *mut GLenum,
16974 binary: *mut c_void,
16975 ) {
16976 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16977 {
16978 trace!(
16979 "calling gl.GetProgramBinary({:?}, {:?}, {:p}, {:p}, {:p});",
16980 program,
16981 bufSize,
16982 length,
16983 binaryFormat,
16984 binary
16985 );
16986 }
16987 let out = call_atomic_ptr_5arg(
16988 "glGetProgramBinary",
16989 &self.glGetProgramBinary_p,
16990 program,
16991 bufSize,
16992 length,
16993 binaryFormat,
16994 binary,
16995 );
16996 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16997 {
16998 self.automatic_glGetError("glGetProgramBinary");
16999 }
17000 out
17001 }
17002 #[doc(hidden)]
17003 pub unsafe fn GetProgramBinary_load_with_dyn(
17004 &self,
17005 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17006 ) -> bool {
17007 load_dyn_name_atomic_ptr(
17008 get_proc_address,
17009 b"glGetProgramBinary\0",
17010 &self.glGetProgramBinary_p,
17011 )
17012 }
17013 #[inline]
17014 #[doc(hidden)]
17015 pub fn GetProgramBinary_is_loaded(&self) -> bool {
17016 !self.glGetProgramBinary_p.load(RELAX).is_null()
17017 }
17018 /// [glGetProgramInfoLog](http://docs.gl/gl4/glGetProgramInfoLog)(program, bufSize, length, infoLog)
17019 /// * `length` len: 1
17020 /// * `infoLog` len: bufSize
17021 #[cfg_attr(feature = "inline", inline)]
17022 #[cfg_attr(feature = "inline_always", inline(always))]
17023 pub unsafe fn GetProgramInfoLog(
17024 &self,
17025 program: GLuint,
17026 bufSize: GLsizei,
17027 length: *mut GLsizei,
17028 infoLog: *mut GLchar,
17029 ) {
17030 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17031 {
17032 trace!(
17033 "calling gl.GetProgramInfoLog({:?}, {:?}, {:p}, {:p});",
17034 program,
17035 bufSize,
17036 length,
17037 infoLog
17038 );
17039 }
17040 let out = call_atomic_ptr_4arg(
17041 "glGetProgramInfoLog",
17042 &self.glGetProgramInfoLog_p,
17043 program,
17044 bufSize,
17045 length,
17046 infoLog,
17047 );
17048 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17049 {
17050 self.automatic_glGetError("glGetProgramInfoLog");
17051 }
17052 out
17053 }
17054 #[doc(hidden)]
17055 pub unsafe fn GetProgramInfoLog_load_with_dyn(
17056 &self,
17057 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17058 ) -> bool {
17059 load_dyn_name_atomic_ptr(
17060 get_proc_address,
17061 b"glGetProgramInfoLog\0",
17062 &self.glGetProgramInfoLog_p,
17063 )
17064 }
17065 #[inline]
17066 #[doc(hidden)]
17067 pub fn GetProgramInfoLog_is_loaded(&self) -> bool {
17068 !self.glGetProgramInfoLog_p.load(RELAX).is_null()
17069 }
17070 /// [glGetProgramInterfaceiv](http://docs.gl/gl4/glGetProgramInterface)(program, programInterface, pname, params)
17071 /// * `programInterface` group: ProgramInterface
17072 /// * `pname` group: ProgramInterfacePName
17073 /// * `params` len: COMPSIZE(pname)
17074 #[cfg_attr(feature = "inline", inline)]
17075 #[cfg_attr(feature = "inline_always", inline(always))]
17076 pub unsafe fn GetProgramInterfaceiv(
17077 &self,
17078 program: GLuint,
17079 programInterface: GLenum,
17080 pname: GLenum,
17081 params: *mut GLint,
17082 ) {
17083 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17084 {
17085 trace!(
17086 "calling gl.GetProgramInterfaceiv({:?}, {:#X}, {:#X}, {:p});",
17087 program,
17088 programInterface,
17089 pname,
17090 params
17091 );
17092 }
17093 let out = call_atomic_ptr_4arg(
17094 "glGetProgramInterfaceiv",
17095 &self.glGetProgramInterfaceiv_p,
17096 program,
17097 programInterface,
17098 pname,
17099 params,
17100 );
17101 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17102 {
17103 self.automatic_glGetError("glGetProgramInterfaceiv");
17104 }
17105 out
17106 }
17107 #[doc(hidden)]
17108 pub unsafe fn GetProgramInterfaceiv_load_with_dyn(
17109 &self,
17110 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17111 ) -> bool {
17112 load_dyn_name_atomic_ptr(
17113 get_proc_address,
17114 b"glGetProgramInterfaceiv\0",
17115 &self.glGetProgramInterfaceiv_p,
17116 )
17117 }
17118 #[inline]
17119 #[doc(hidden)]
17120 pub fn GetProgramInterfaceiv_is_loaded(&self) -> bool {
17121 !self.glGetProgramInterfaceiv_p.load(RELAX).is_null()
17122 }
17123 /// [glGetProgramPipelineInfoLog](http://docs.gl/gl4/glGetProgramPipelineInfoLog)(pipeline, bufSize, length, infoLog)
17124 /// * `length` len: 1
17125 /// * `infoLog` len: bufSize
17126 #[cfg_attr(feature = "inline", inline)]
17127 #[cfg_attr(feature = "inline_always", inline(always))]
17128 pub unsafe fn GetProgramPipelineInfoLog(
17129 &self,
17130 pipeline: GLuint,
17131 bufSize: GLsizei,
17132 length: *mut GLsizei,
17133 infoLog: *mut GLchar,
17134 ) {
17135 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17136 {
17137 trace!(
17138 "calling gl.GetProgramPipelineInfoLog({:?}, {:?}, {:p}, {:p});",
17139 pipeline,
17140 bufSize,
17141 length,
17142 infoLog
17143 );
17144 }
17145 let out = call_atomic_ptr_4arg(
17146 "glGetProgramPipelineInfoLog",
17147 &self.glGetProgramPipelineInfoLog_p,
17148 pipeline,
17149 bufSize,
17150 length,
17151 infoLog,
17152 );
17153 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17154 {
17155 self.automatic_glGetError("glGetProgramPipelineInfoLog");
17156 }
17157 out
17158 }
17159 #[doc(hidden)]
17160 pub unsafe fn GetProgramPipelineInfoLog_load_with_dyn(
17161 &self,
17162 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17163 ) -> bool {
17164 load_dyn_name_atomic_ptr(
17165 get_proc_address,
17166 b"glGetProgramPipelineInfoLog\0",
17167 &self.glGetProgramPipelineInfoLog_p,
17168 )
17169 }
17170 #[inline]
17171 #[doc(hidden)]
17172 pub fn GetProgramPipelineInfoLog_is_loaded(&self) -> bool {
17173 !self.glGetProgramPipelineInfoLog_p.load(RELAX).is_null()
17174 }
17175 /// [glGetProgramPipelineiv](http://docs.gl/gl4/glGetProgramPipeline)(pipeline, pname, params)
17176 /// * `pname` group: PipelineParameterName
17177 /// * `params` len: COMPSIZE(pname)
17178 #[cfg_attr(feature = "inline", inline)]
17179 #[cfg_attr(feature = "inline_always", inline(always))]
17180 pub unsafe fn GetProgramPipelineiv(
17181 &self,
17182 pipeline: GLuint,
17183 pname: GLenum,
17184 params: *mut GLint,
17185 ) {
17186 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17187 {
17188 trace!(
17189 "calling gl.GetProgramPipelineiv({:?}, {:#X}, {:p});",
17190 pipeline,
17191 pname,
17192 params
17193 );
17194 }
17195 let out = call_atomic_ptr_3arg(
17196 "glGetProgramPipelineiv",
17197 &self.glGetProgramPipelineiv_p,
17198 pipeline,
17199 pname,
17200 params,
17201 );
17202 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17203 {
17204 self.automatic_glGetError("glGetProgramPipelineiv");
17205 }
17206 out
17207 }
17208 #[doc(hidden)]
17209 pub unsafe fn GetProgramPipelineiv_load_with_dyn(
17210 &self,
17211 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17212 ) -> bool {
17213 load_dyn_name_atomic_ptr(
17214 get_proc_address,
17215 b"glGetProgramPipelineiv\0",
17216 &self.glGetProgramPipelineiv_p,
17217 )
17218 }
17219 #[inline]
17220 #[doc(hidden)]
17221 pub fn GetProgramPipelineiv_is_loaded(&self) -> bool {
17222 !self.glGetProgramPipelineiv_p.load(RELAX).is_null()
17223 }
17224 /// [glGetProgramResourceIndex](http://docs.gl/gl4/glGetProgramResourceIndex)(program, programInterface, name)
17225 /// * `programInterface` group: ProgramInterface
17226 /// * `name` len: COMPSIZE(name)
17227 #[cfg_attr(feature = "inline", inline)]
17228 #[cfg_attr(feature = "inline_always", inline(always))]
17229 pub unsafe fn GetProgramResourceIndex(
17230 &self,
17231 program: GLuint,
17232 programInterface: GLenum,
17233 name: *const GLchar,
17234 ) -> GLuint {
17235 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17236 {
17237 trace!(
17238 "calling gl.GetProgramResourceIndex({:?}, {:#X}, {:p});",
17239 program,
17240 programInterface,
17241 name
17242 );
17243 }
17244 let out = call_atomic_ptr_3arg(
17245 "glGetProgramResourceIndex",
17246 &self.glGetProgramResourceIndex_p,
17247 program,
17248 programInterface,
17249 name,
17250 );
17251 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17252 {
17253 self.automatic_glGetError("glGetProgramResourceIndex");
17254 }
17255 out
17256 }
17257 #[doc(hidden)]
17258 pub unsafe fn GetProgramResourceIndex_load_with_dyn(
17259 &self,
17260 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17261 ) -> bool {
17262 load_dyn_name_atomic_ptr(
17263 get_proc_address,
17264 b"glGetProgramResourceIndex\0",
17265 &self.glGetProgramResourceIndex_p,
17266 )
17267 }
17268 #[inline]
17269 #[doc(hidden)]
17270 pub fn GetProgramResourceIndex_is_loaded(&self) -> bool {
17271 !self.glGetProgramResourceIndex_p.load(RELAX).is_null()
17272 }
17273 /// [glGetProgramResourceLocation](http://docs.gl/gl4/glGetProgramResourceLocation)(program, programInterface, name)
17274 /// * `programInterface` group: ProgramInterface
17275 /// * `name` len: COMPSIZE(name)
17276 #[cfg_attr(feature = "inline", inline)]
17277 #[cfg_attr(feature = "inline_always", inline(always))]
17278 pub unsafe fn GetProgramResourceLocation(
17279 &self,
17280 program: GLuint,
17281 programInterface: GLenum,
17282 name: *const GLchar,
17283 ) -> GLint {
17284 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17285 {
17286 trace!(
17287 "calling gl.GetProgramResourceLocation({:?}, {:#X}, {:p});",
17288 program,
17289 programInterface,
17290 name
17291 );
17292 }
17293 let out = call_atomic_ptr_3arg(
17294 "glGetProgramResourceLocation",
17295 &self.glGetProgramResourceLocation_p,
17296 program,
17297 programInterface,
17298 name,
17299 );
17300 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17301 {
17302 self.automatic_glGetError("glGetProgramResourceLocation");
17303 }
17304 out
17305 }
17306 #[doc(hidden)]
17307 pub unsafe fn GetProgramResourceLocation_load_with_dyn(
17308 &self,
17309 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17310 ) -> bool {
17311 load_dyn_name_atomic_ptr(
17312 get_proc_address,
17313 b"glGetProgramResourceLocation\0",
17314 &self.glGetProgramResourceLocation_p,
17315 )
17316 }
17317 #[inline]
17318 #[doc(hidden)]
17319 pub fn GetProgramResourceLocation_is_loaded(&self) -> bool {
17320 !self.glGetProgramResourceLocation_p.load(RELAX).is_null()
17321 }
17322 /// [glGetProgramResourceLocationIndex](http://docs.gl/gl4/glGetProgramResourceLocationIndex)(program, programInterface, name)
17323 /// * `programInterface` group: ProgramInterface
17324 /// * `name` len: COMPSIZE(name)
17325 #[cfg_attr(feature = "inline", inline)]
17326 #[cfg_attr(feature = "inline_always", inline(always))]
17327 pub unsafe fn GetProgramResourceLocationIndex(
17328 &self,
17329 program: GLuint,
17330 programInterface: GLenum,
17331 name: *const GLchar,
17332 ) -> GLint {
17333 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17334 {
17335 trace!(
17336 "calling gl.GetProgramResourceLocationIndex({:?}, {:#X}, {:p});",
17337 program,
17338 programInterface,
17339 name
17340 );
17341 }
17342 let out = call_atomic_ptr_3arg(
17343 "glGetProgramResourceLocationIndex",
17344 &self.glGetProgramResourceLocationIndex_p,
17345 program,
17346 programInterface,
17347 name,
17348 );
17349 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17350 {
17351 self.automatic_glGetError("glGetProgramResourceLocationIndex");
17352 }
17353 out
17354 }
17355 #[doc(hidden)]
17356 pub unsafe fn GetProgramResourceLocationIndex_load_with_dyn(
17357 &self,
17358 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17359 ) -> bool {
17360 load_dyn_name_atomic_ptr(
17361 get_proc_address,
17362 b"glGetProgramResourceLocationIndex\0",
17363 &self.glGetProgramResourceLocationIndex_p,
17364 )
17365 }
17366 #[inline]
17367 #[doc(hidden)]
17368 pub fn GetProgramResourceLocationIndex_is_loaded(&self) -> bool {
17369 !self
17370 .glGetProgramResourceLocationIndex_p
17371 .load(RELAX)
17372 .is_null()
17373 }
17374 /// [glGetProgramResourceName](http://docs.gl/gl4/glGetProgramResourceName)(program, programInterface, index, bufSize, length, name)
17375 /// * `programInterface` group: ProgramInterface
17376 /// * `length` len: 1
17377 /// * `name` len: bufSize
17378 #[cfg_attr(feature = "inline", inline)]
17379 #[cfg_attr(feature = "inline_always", inline(always))]
17380 pub unsafe fn GetProgramResourceName(
17381 &self,
17382 program: GLuint,
17383 programInterface: GLenum,
17384 index: GLuint,
17385 bufSize: GLsizei,
17386 length: *mut GLsizei,
17387 name: *mut GLchar,
17388 ) {
17389 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17390 {
17391 trace!(
17392 "calling gl.GetProgramResourceName({:?}, {:#X}, {:?}, {:?}, {:p}, {:p});",
17393 program,
17394 programInterface,
17395 index,
17396 bufSize,
17397 length,
17398 name
17399 );
17400 }
17401 let out = call_atomic_ptr_6arg(
17402 "glGetProgramResourceName",
17403 &self.glGetProgramResourceName_p,
17404 program,
17405 programInterface,
17406 index,
17407 bufSize,
17408 length,
17409 name,
17410 );
17411 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17412 {
17413 self.automatic_glGetError("glGetProgramResourceName");
17414 }
17415 out
17416 }
17417 #[doc(hidden)]
17418 pub unsafe fn GetProgramResourceName_load_with_dyn(
17419 &self,
17420 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17421 ) -> bool {
17422 load_dyn_name_atomic_ptr(
17423 get_proc_address,
17424 b"glGetProgramResourceName\0",
17425 &self.glGetProgramResourceName_p,
17426 )
17427 }
17428 #[inline]
17429 #[doc(hidden)]
17430 pub fn GetProgramResourceName_is_loaded(&self) -> bool {
17431 !self.glGetProgramResourceName_p.load(RELAX).is_null()
17432 }
17433 /// [glGetProgramResourceiv](http://docs.gl/gl4/glGetProgramResource)(program, programInterface, index, propCount, props, count, length, params)
17434 /// * `programInterface` group: ProgramInterface
17435 /// * `props` group: ProgramResourceProperty
17436 /// * `props` len: propCount
17437 /// * `length` len: 1
17438 /// * `params` len: count
17439 #[cfg_attr(feature = "inline", inline)]
17440 #[cfg_attr(feature = "inline_always", inline(always))]
17441 pub unsafe fn GetProgramResourceiv(
17442 &self,
17443 program: GLuint,
17444 programInterface: GLenum,
17445 index: GLuint,
17446 propCount: GLsizei,
17447 props: *const GLenum,
17448 count: GLsizei,
17449 length: *mut GLsizei,
17450 params: *mut GLint,
17451 ) {
17452 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17453 {
17454 trace!("calling gl.GetProgramResourceiv({:?}, {:#X}, {:?}, {:?}, {:p}, {:?}, {:p}, {:p});", program, programInterface, index, propCount, props, count, length, params);
17455 }
17456 let out = call_atomic_ptr_8arg(
17457 "glGetProgramResourceiv",
17458 &self.glGetProgramResourceiv_p,
17459 program,
17460 programInterface,
17461 index,
17462 propCount,
17463 props,
17464 count,
17465 length,
17466 params,
17467 );
17468 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17469 {
17470 self.automatic_glGetError("glGetProgramResourceiv");
17471 }
17472 out
17473 }
17474 #[doc(hidden)]
17475 pub unsafe fn GetProgramResourceiv_load_with_dyn(
17476 &self,
17477 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17478 ) -> bool {
17479 load_dyn_name_atomic_ptr(
17480 get_proc_address,
17481 b"glGetProgramResourceiv\0",
17482 &self.glGetProgramResourceiv_p,
17483 )
17484 }
17485 #[inline]
17486 #[doc(hidden)]
17487 pub fn GetProgramResourceiv_is_loaded(&self) -> bool {
17488 !self.glGetProgramResourceiv_p.load(RELAX).is_null()
17489 }
17490 /// [glGetProgramStageiv](http://docs.gl/gl4/glGetProgramStage)(program, shadertype, pname, values)
17491 /// * `shadertype` group: ShaderType
17492 /// * `pname` group: ProgramStagePName
17493 /// * `values` len: 1
17494 #[cfg_attr(feature = "inline", inline)]
17495 #[cfg_attr(feature = "inline_always", inline(always))]
17496 pub unsafe fn GetProgramStageiv(
17497 &self,
17498 program: GLuint,
17499 shadertype: GLenum,
17500 pname: GLenum,
17501 values: *mut GLint,
17502 ) {
17503 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17504 {
17505 trace!(
17506 "calling gl.GetProgramStageiv({:?}, {:#X}, {:#X}, {:p});",
17507 program,
17508 shadertype,
17509 pname,
17510 values
17511 );
17512 }
17513 let out = call_atomic_ptr_4arg(
17514 "glGetProgramStageiv",
17515 &self.glGetProgramStageiv_p,
17516 program,
17517 shadertype,
17518 pname,
17519 values,
17520 );
17521 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17522 {
17523 self.automatic_glGetError("glGetProgramStageiv");
17524 }
17525 out
17526 }
17527 #[doc(hidden)]
17528 pub unsafe fn GetProgramStageiv_load_with_dyn(
17529 &self,
17530 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17531 ) -> bool {
17532 load_dyn_name_atomic_ptr(
17533 get_proc_address,
17534 b"glGetProgramStageiv\0",
17535 &self.glGetProgramStageiv_p,
17536 )
17537 }
17538 #[inline]
17539 #[doc(hidden)]
17540 pub fn GetProgramStageiv_is_loaded(&self) -> bool {
17541 !self.glGetProgramStageiv_p.load(RELAX).is_null()
17542 }
17543 /// [glGetProgramiv](http://docs.gl/gl4/glGetProgram)(program, pname, params)
17544 /// * `pname` group: ProgramPropertyARB
17545 /// * `params` len: COMPSIZE(pname)
17546 #[cfg_attr(feature = "inline", inline)]
17547 #[cfg_attr(feature = "inline_always", inline(always))]
17548 pub unsafe fn GetProgramiv(&self, program: GLuint, pname: GLenum, params: *mut GLint) {
17549 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17550 {
17551 trace!(
17552 "calling gl.GetProgramiv({:?}, {:#X}, {:p});",
17553 program,
17554 pname,
17555 params
17556 );
17557 }
17558 let out = call_atomic_ptr_3arg(
17559 "glGetProgramiv",
17560 &self.glGetProgramiv_p,
17561 program,
17562 pname,
17563 params,
17564 );
17565 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17566 {
17567 self.automatic_glGetError("glGetProgramiv");
17568 }
17569 out
17570 }
17571 #[doc(hidden)]
17572 pub unsafe fn GetProgramiv_load_with_dyn(
17573 &self,
17574 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17575 ) -> bool {
17576 load_dyn_name_atomic_ptr(
17577 get_proc_address,
17578 b"glGetProgramiv\0",
17579 &self.glGetProgramiv_p,
17580 )
17581 }
17582 #[inline]
17583 #[doc(hidden)]
17584 pub fn GetProgramiv_is_loaded(&self) -> bool {
17585 !self.glGetProgramiv_p.load(RELAX).is_null()
17586 }
17587 /// [glGetQueryBufferObjecti64v](http://docs.gl/gl4/glGetQueryBufferObject)(id, buffer, pname, offset)
17588 /// * `pname` group: QueryObjectParameterName
17589 #[cfg_attr(feature = "inline", inline)]
17590 #[cfg_attr(feature = "inline_always", inline(always))]
17591 pub unsafe fn GetQueryBufferObjecti64v(
17592 &self,
17593 id: GLuint,
17594 buffer: GLuint,
17595 pname: GLenum,
17596 offset: GLintptr,
17597 ) {
17598 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17599 {
17600 trace!(
17601 "calling gl.GetQueryBufferObjecti64v({:?}, {:?}, {:#X}, {:?});",
17602 id,
17603 buffer,
17604 pname,
17605 offset
17606 );
17607 }
17608 let out = call_atomic_ptr_4arg(
17609 "glGetQueryBufferObjecti64v",
17610 &self.glGetQueryBufferObjecti64v_p,
17611 id,
17612 buffer,
17613 pname,
17614 offset,
17615 );
17616 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17617 {
17618 self.automatic_glGetError("glGetQueryBufferObjecti64v");
17619 }
17620 out
17621 }
17622 #[doc(hidden)]
17623 pub unsafe fn GetQueryBufferObjecti64v_load_with_dyn(
17624 &self,
17625 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17626 ) -> bool {
17627 load_dyn_name_atomic_ptr(
17628 get_proc_address,
17629 b"glGetQueryBufferObjecti64v\0",
17630 &self.glGetQueryBufferObjecti64v_p,
17631 )
17632 }
17633 #[inline]
17634 #[doc(hidden)]
17635 pub fn GetQueryBufferObjecti64v_is_loaded(&self) -> bool {
17636 !self.glGetQueryBufferObjecti64v_p.load(RELAX).is_null()
17637 }
17638 /// [glGetQueryBufferObjectiv](http://docs.gl/gl4/glGetQueryBufferObject)(id, buffer, pname, offset)
17639 /// * `pname` group: QueryObjectParameterName
17640 #[cfg_attr(feature = "inline", inline)]
17641 #[cfg_attr(feature = "inline_always", inline(always))]
17642 pub unsafe fn GetQueryBufferObjectiv(
17643 &self,
17644 id: GLuint,
17645 buffer: GLuint,
17646 pname: GLenum,
17647 offset: GLintptr,
17648 ) {
17649 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17650 {
17651 trace!(
17652 "calling gl.GetQueryBufferObjectiv({:?}, {:?}, {:#X}, {:?});",
17653 id,
17654 buffer,
17655 pname,
17656 offset
17657 );
17658 }
17659 let out = call_atomic_ptr_4arg(
17660 "glGetQueryBufferObjectiv",
17661 &self.glGetQueryBufferObjectiv_p,
17662 id,
17663 buffer,
17664 pname,
17665 offset,
17666 );
17667 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17668 {
17669 self.automatic_glGetError("glGetQueryBufferObjectiv");
17670 }
17671 out
17672 }
17673 #[doc(hidden)]
17674 pub unsafe fn GetQueryBufferObjectiv_load_with_dyn(
17675 &self,
17676 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17677 ) -> bool {
17678 load_dyn_name_atomic_ptr(
17679 get_proc_address,
17680 b"glGetQueryBufferObjectiv\0",
17681 &self.glGetQueryBufferObjectiv_p,
17682 )
17683 }
17684 #[inline]
17685 #[doc(hidden)]
17686 pub fn GetQueryBufferObjectiv_is_loaded(&self) -> bool {
17687 !self.glGetQueryBufferObjectiv_p.load(RELAX).is_null()
17688 }
17689 /// [glGetQueryBufferObjectui64v](http://docs.gl/gl4/glGetQueryBufferObjectu)(id, buffer, pname, offset)
17690 /// * `pname` group: QueryObjectParameterName
17691 #[cfg_attr(feature = "inline", inline)]
17692 #[cfg_attr(feature = "inline_always", inline(always))]
17693 pub unsafe fn GetQueryBufferObjectui64v(
17694 &self,
17695 id: GLuint,
17696 buffer: GLuint,
17697 pname: GLenum,
17698 offset: GLintptr,
17699 ) {
17700 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17701 {
17702 trace!(
17703 "calling gl.GetQueryBufferObjectui64v({:?}, {:?}, {:#X}, {:?});",
17704 id,
17705 buffer,
17706 pname,
17707 offset
17708 );
17709 }
17710 let out = call_atomic_ptr_4arg(
17711 "glGetQueryBufferObjectui64v",
17712 &self.glGetQueryBufferObjectui64v_p,
17713 id,
17714 buffer,
17715 pname,
17716 offset,
17717 );
17718 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17719 {
17720 self.automatic_glGetError("glGetQueryBufferObjectui64v");
17721 }
17722 out
17723 }
17724 #[doc(hidden)]
17725 pub unsafe fn GetQueryBufferObjectui64v_load_with_dyn(
17726 &self,
17727 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17728 ) -> bool {
17729 load_dyn_name_atomic_ptr(
17730 get_proc_address,
17731 b"glGetQueryBufferObjectui64v\0",
17732 &self.glGetQueryBufferObjectui64v_p,
17733 )
17734 }
17735 #[inline]
17736 #[doc(hidden)]
17737 pub fn GetQueryBufferObjectui64v_is_loaded(&self) -> bool {
17738 !self.glGetQueryBufferObjectui64v_p.load(RELAX).is_null()
17739 }
17740 /// [glGetQueryBufferObjectuiv](http://docs.gl/gl4/glGetQueryBufferObject)(id, buffer, pname, offset)
17741 /// * `pname` group: QueryObjectParameterName
17742 #[cfg_attr(feature = "inline", inline)]
17743 #[cfg_attr(feature = "inline_always", inline(always))]
17744 pub unsafe fn GetQueryBufferObjectuiv(
17745 &self,
17746 id: GLuint,
17747 buffer: GLuint,
17748 pname: GLenum,
17749 offset: GLintptr,
17750 ) {
17751 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17752 {
17753 trace!(
17754 "calling gl.GetQueryBufferObjectuiv({:?}, {:?}, {:#X}, {:?});",
17755 id,
17756 buffer,
17757 pname,
17758 offset
17759 );
17760 }
17761 let out = call_atomic_ptr_4arg(
17762 "glGetQueryBufferObjectuiv",
17763 &self.glGetQueryBufferObjectuiv_p,
17764 id,
17765 buffer,
17766 pname,
17767 offset,
17768 );
17769 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17770 {
17771 self.automatic_glGetError("glGetQueryBufferObjectuiv");
17772 }
17773 out
17774 }
17775 #[doc(hidden)]
17776 pub unsafe fn GetQueryBufferObjectuiv_load_with_dyn(
17777 &self,
17778 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17779 ) -> bool {
17780 load_dyn_name_atomic_ptr(
17781 get_proc_address,
17782 b"glGetQueryBufferObjectuiv\0",
17783 &self.glGetQueryBufferObjectuiv_p,
17784 )
17785 }
17786 #[inline]
17787 #[doc(hidden)]
17788 pub fn GetQueryBufferObjectuiv_is_loaded(&self) -> bool {
17789 !self.glGetQueryBufferObjectuiv_p.load(RELAX).is_null()
17790 }
17791 /// [glGetQueryIndexediv](http://docs.gl/gl4/glGetQueryIndexed)(target, index, pname, params)
17792 /// * `target` group: QueryTarget
17793 /// * `pname` group: QueryParameterName
17794 /// * `params` len: COMPSIZE(pname)
17795 #[cfg_attr(feature = "inline", inline)]
17796 #[cfg_attr(feature = "inline_always", inline(always))]
17797 pub unsafe fn GetQueryIndexediv(
17798 &self,
17799 target: GLenum,
17800 index: GLuint,
17801 pname: GLenum,
17802 params: *mut GLint,
17803 ) {
17804 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17805 {
17806 trace!(
17807 "calling gl.GetQueryIndexediv({:#X}, {:?}, {:#X}, {:p});",
17808 target,
17809 index,
17810 pname,
17811 params
17812 );
17813 }
17814 let out = call_atomic_ptr_4arg(
17815 "glGetQueryIndexediv",
17816 &self.glGetQueryIndexediv_p,
17817 target,
17818 index,
17819 pname,
17820 params,
17821 );
17822 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17823 {
17824 self.automatic_glGetError("glGetQueryIndexediv");
17825 }
17826 out
17827 }
17828 #[doc(hidden)]
17829 pub unsafe fn GetQueryIndexediv_load_with_dyn(
17830 &self,
17831 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17832 ) -> bool {
17833 load_dyn_name_atomic_ptr(
17834 get_proc_address,
17835 b"glGetQueryIndexediv\0",
17836 &self.glGetQueryIndexediv_p,
17837 )
17838 }
17839 #[inline]
17840 #[doc(hidden)]
17841 pub fn GetQueryIndexediv_is_loaded(&self) -> bool {
17842 !self.glGetQueryIndexediv_p.load(RELAX).is_null()
17843 }
17844 /// [glGetQueryObjecti64v](http://docs.gl/gl4/glGetQueryObject)(id, pname, params)
17845 /// * `pname` group: QueryObjectParameterName
17846 /// * `params` len: COMPSIZE(pname)
17847 #[cfg_attr(feature = "inline", inline)]
17848 #[cfg_attr(feature = "inline_always", inline(always))]
17849 pub unsafe fn GetQueryObjecti64v(&self, id: GLuint, pname: GLenum, params: *mut GLint64) {
17850 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17851 {
17852 trace!(
17853 "calling gl.GetQueryObjecti64v({:?}, {:#X}, {:p});",
17854 id,
17855 pname,
17856 params
17857 );
17858 }
17859 let out = call_atomic_ptr_3arg(
17860 "glGetQueryObjecti64v",
17861 &self.glGetQueryObjecti64v_p,
17862 id,
17863 pname,
17864 params,
17865 );
17866 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17867 {
17868 self.automatic_glGetError("glGetQueryObjecti64v");
17869 }
17870 out
17871 }
17872 #[doc(hidden)]
17873 pub unsafe fn GetQueryObjecti64v_load_with_dyn(
17874 &self,
17875 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17876 ) -> bool {
17877 load_dyn_name_atomic_ptr(
17878 get_proc_address,
17879 b"glGetQueryObjecti64v\0",
17880 &self.glGetQueryObjecti64v_p,
17881 )
17882 }
17883 #[inline]
17884 #[doc(hidden)]
17885 pub fn GetQueryObjecti64v_is_loaded(&self) -> bool {
17886 !self.glGetQueryObjecti64v_p.load(RELAX).is_null()
17887 }
17888 /// [glGetQueryObjectiv](http://docs.gl/gl4/glGetQueryObject)(id, pname, params)
17889 /// * `pname` group: QueryObjectParameterName
17890 /// * `params` len: COMPSIZE(pname)
17891 #[cfg_attr(feature = "inline", inline)]
17892 #[cfg_attr(feature = "inline_always", inline(always))]
17893 pub unsafe fn GetQueryObjectiv(&self, id: GLuint, pname: GLenum, params: *mut GLint) {
17894 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17895 {
17896 trace!(
17897 "calling gl.GetQueryObjectiv({:?}, {:#X}, {:p});",
17898 id,
17899 pname,
17900 params
17901 );
17902 }
17903 let out = call_atomic_ptr_3arg(
17904 "glGetQueryObjectiv",
17905 &self.glGetQueryObjectiv_p,
17906 id,
17907 pname,
17908 params,
17909 );
17910 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17911 {
17912 self.automatic_glGetError("glGetQueryObjectiv");
17913 }
17914 out
17915 }
17916 #[doc(hidden)]
17917 pub unsafe fn GetQueryObjectiv_load_with_dyn(
17918 &self,
17919 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17920 ) -> bool {
17921 load_dyn_name_atomic_ptr(
17922 get_proc_address,
17923 b"glGetQueryObjectiv\0",
17924 &self.glGetQueryObjectiv_p,
17925 )
17926 }
17927 #[inline]
17928 #[doc(hidden)]
17929 pub fn GetQueryObjectiv_is_loaded(&self) -> bool {
17930 !self.glGetQueryObjectiv_p.load(RELAX).is_null()
17931 }
17932 /// [glGetQueryObjectui64v](http://docs.gl/gl4/glGetQueryObjectu)(id, pname, params)
17933 /// * `pname` group: QueryObjectParameterName
17934 /// * `params` len: COMPSIZE(pname)
17935 #[cfg_attr(feature = "inline", inline)]
17936 #[cfg_attr(feature = "inline_always", inline(always))]
17937 pub unsafe fn GetQueryObjectui64v(&self, id: GLuint, pname: GLenum, params: *mut GLuint64) {
17938 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17939 {
17940 trace!(
17941 "calling gl.GetQueryObjectui64v({:?}, {:#X}, {:p});",
17942 id,
17943 pname,
17944 params
17945 );
17946 }
17947 let out = call_atomic_ptr_3arg(
17948 "glGetQueryObjectui64v",
17949 &self.glGetQueryObjectui64v_p,
17950 id,
17951 pname,
17952 params,
17953 );
17954 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17955 {
17956 self.automatic_glGetError("glGetQueryObjectui64v");
17957 }
17958 out
17959 }
17960 #[doc(hidden)]
17961 pub unsafe fn GetQueryObjectui64v_load_with_dyn(
17962 &self,
17963 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17964 ) -> bool {
17965 load_dyn_name_atomic_ptr(
17966 get_proc_address,
17967 b"glGetQueryObjectui64v\0",
17968 &self.glGetQueryObjectui64v_p,
17969 )
17970 }
17971 #[inline]
17972 #[doc(hidden)]
17973 pub fn GetQueryObjectui64v_is_loaded(&self) -> bool {
17974 !self.glGetQueryObjectui64v_p.load(RELAX).is_null()
17975 }
17976 /// [glGetQueryObjectuiv](http://docs.gl/gl4/glGetQueryObject)(id, pname, params)
17977 /// * `pname` group: QueryObjectParameterName
17978 /// * `params` len: COMPSIZE(pname)
17979 #[cfg_attr(feature = "inline", inline)]
17980 #[cfg_attr(feature = "inline_always", inline(always))]
17981 pub unsafe fn GetQueryObjectuiv(&self, id: GLuint, pname: GLenum, params: *mut GLuint) {
17982 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17983 {
17984 trace!(
17985 "calling gl.GetQueryObjectuiv({:?}, {:#X}, {:p});",
17986 id,
17987 pname,
17988 params
17989 );
17990 }
17991 let out = call_atomic_ptr_3arg(
17992 "glGetQueryObjectuiv",
17993 &self.glGetQueryObjectuiv_p,
17994 id,
17995 pname,
17996 params,
17997 );
17998 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17999 {
18000 self.automatic_glGetError("glGetQueryObjectuiv");
18001 }
18002 out
18003 }
18004 #[doc(hidden)]
18005 pub unsafe fn GetQueryObjectuiv_load_with_dyn(
18006 &self,
18007 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18008 ) -> bool {
18009 load_dyn_name_atomic_ptr(
18010 get_proc_address,
18011 b"glGetQueryObjectuiv\0",
18012 &self.glGetQueryObjectuiv_p,
18013 )
18014 }
18015 #[inline]
18016 #[doc(hidden)]
18017 pub fn GetQueryObjectuiv_is_loaded(&self) -> bool {
18018 !self.glGetQueryObjectuiv_p.load(RELAX).is_null()
18019 }
18020 /// [glGetQueryiv](http://docs.gl/gl4/glGetQuery)(target, pname, params)
18021 /// * `target` group: QueryTarget
18022 /// * `pname` group: QueryParameterName
18023 /// * `params` len: COMPSIZE(pname)
18024 #[cfg_attr(feature = "inline", inline)]
18025 #[cfg_attr(feature = "inline_always", inline(always))]
18026 pub unsafe fn GetQueryiv(&self, target: GLenum, pname: GLenum, params: *mut GLint) {
18027 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18028 {
18029 trace!(
18030 "calling gl.GetQueryiv({:#X}, {:#X}, {:p});",
18031 target,
18032 pname,
18033 params
18034 );
18035 }
18036 let out =
18037 call_atomic_ptr_3arg("glGetQueryiv", &self.glGetQueryiv_p, target, pname, params);
18038 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18039 {
18040 self.automatic_glGetError("glGetQueryiv");
18041 }
18042 out
18043 }
18044 #[doc(hidden)]
18045 pub unsafe fn GetQueryiv_load_with_dyn(
18046 &self,
18047 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18048 ) -> bool {
18049 load_dyn_name_atomic_ptr(get_proc_address, b"glGetQueryiv\0", &self.glGetQueryiv_p)
18050 }
18051 #[inline]
18052 #[doc(hidden)]
18053 pub fn GetQueryiv_is_loaded(&self) -> bool {
18054 !self.glGetQueryiv_p.load(RELAX).is_null()
18055 }
18056 /// [glGetRenderbufferParameteriv](http://docs.gl/gl4/glGetRenderbufferParameter)(target, pname, params)
18057 /// * `target` group: RenderbufferTarget
18058 /// * `pname` group: RenderbufferParameterName
18059 /// * `params` len: COMPSIZE(pname)
18060 #[cfg_attr(feature = "inline", inline)]
18061 #[cfg_attr(feature = "inline_always", inline(always))]
18062 pub unsafe fn GetRenderbufferParameteriv(
18063 &self,
18064 target: GLenum,
18065 pname: GLenum,
18066 params: *mut GLint,
18067 ) {
18068 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18069 {
18070 trace!(
18071 "calling gl.GetRenderbufferParameteriv({:#X}, {:#X}, {:p});",
18072 target,
18073 pname,
18074 params
18075 );
18076 }
18077 let out = call_atomic_ptr_3arg(
18078 "glGetRenderbufferParameteriv",
18079 &self.glGetRenderbufferParameteriv_p,
18080 target,
18081 pname,
18082 params,
18083 );
18084 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18085 {
18086 self.automatic_glGetError("glGetRenderbufferParameteriv");
18087 }
18088 out
18089 }
18090 #[doc(hidden)]
18091 pub unsafe fn GetRenderbufferParameteriv_load_with_dyn(
18092 &self,
18093 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18094 ) -> bool {
18095 load_dyn_name_atomic_ptr(
18096 get_proc_address,
18097 b"glGetRenderbufferParameteriv\0",
18098 &self.glGetRenderbufferParameteriv_p,
18099 )
18100 }
18101 #[inline]
18102 #[doc(hidden)]
18103 pub fn GetRenderbufferParameteriv_is_loaded(&self) -> bool {
18104 !self.glGetRenderbufferParameteriv_p.load(RELAX).is_null()
18105 }
18106 /// [glGetSamplerParameterIiv](http://docs.gl/gl4/glGetSamplerParameter)(sampler, pname, params)
18107 /// * `pname` group: SamplerParameterI
18108 /// * `params` len: COMPSIZE(pname)
18109 #[cfg_attr(feature = "inline", inline)]
18110 #[cfg_attr(feature = "inline_always", inline(always))]
18111 pub unsafe fn GetSamplerParameterIiv(
18112 &self,
18113 sampler: GLuint,
18114 pname: GLenum,
18115 params: *mut GLint,
18116 ) {
18117 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18118 {
18119 trace!(
18120 "calling gl.GetSamplerParameterIiv({:?}, {:#X}, {:p});",
18121 sampler,
18122 pname,
18123 params
18124 );
18125 }
18126 let out = call_atomic_ptr_3arg(
18127 "glGetSamplerParameterIiv",
18128 &self.glGetSamplerParameterIiv_p,
18129 sampler,
18130 pname,
18131 params,
18132 );
18133 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18134 {
18135 self.automatic_glGetError("glGetSamplerParameterIiv");
18136 }
18137 out
18138 }
18139 #[doc(hidden)]
18140 pub unsafe fn GetSamplerParameterIiv_load_with_dyn(
18141 &self,
18142 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18143 ) -> bool {
18144 load_dyn_name_atomic_ptr(
18145 get_proc_address,
18146 b"glGetSamplerParameterIiv\0",
18147 &self.glGetSamplerParameterIiv_p,
18148 )
18149 }
18150 #[inline]
18151 #[doc(hidden)]
18152 pub fn GetSamplerParameterIiv_is_loaded(&self) -> bool {
18153 !self.glGetSamplerParameterIiv_p.load(RELAX).is_null()
18154 }
18155 /// [glGetSamplerParameterIuiv](http://docs.gl/gl4/glGetSamplerParameter)(sampler, pname, params)
18156 /// * `pname` group: SamplerParameterI
18157 /// * `params` len: COMPSIZE(pname)
18158 #[cfg_attr(feature = "inline", inline)]
18159 #[cfg_attr(feature = "inline_always", inline(always))]
18160 pub unsafe fn GetSamplerParameterIuiv(
18161 &self,
18162 sampler: GLuint,
18163 pname: GLenum,
18164 params: *mut GLuint,
18165 ) {
18166 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18167 {
18168 trace!(
18169 "calling gl.GetSamplerParameterIuiv({:?}, {:#X}, {:p});",
18170 sampler,
18171 pname,
18172 params
18173 );
18174 }
18175 let out = call_atomic_ptr_3arg(
18176 "glGetSamplerParameterIuiv",
18177 &self.glGetSamplerParameterIuiv_p,
18178 sampler,
18179 pname,
18180 params,
18181 );
18182 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18183 {
18184 self.automatic_glGetError("glGetSamplerParameterIuiv");
18185 }
18186 out
18187 }
18188 #[doc(hidden)]
18189 pub unsafe fn GetSamplerParameterIuiv_load_with_dyn(
18190 &self,
18191 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18192 ) -> bool {
18193 load_dyn_name_atomic_ptr(
18194 get_proc_address,
18195 b"glGetSamplerParameterIuiv\0",
18196 &self.glGetSamplerParameterIuiv_p,
18197 )
18198 }
18199 #[inline]
18200 #[doc(hidden)]
18201 pub fn GetSamplerParameterIuiv_is_loaded(&self) -> bool {
18202 !self.glGetSamplerParameterIuiv_p.load(RELAX).is_null()
18203 }
18204 /// [glGetSamplerParameterfv](http://docs.gl/gl4/glGetSamplerParameter)(sampler, pname, params)
18205 /// * `pname` group: SamplerParameterF
18206 /// * `params` len: COMPSIZE(pname)
18207 #[cfg_attr(feature = "inline", inline)]
18208 #[cfg_attr(feature = "inline_always", inline(always))]
18209 pub unsafe fn GetSamplerParameterfv(
18210 &self,
18211 sampler: GLuint,
18212 pname: GLenum,
18213 params: *mut GLfloat,
18214 ) {
18215 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18216 {
18217 trace!(
18218 "calling gl.GetSamplerParameterfv({:?}, {:#X}, {:p});",
18219 sampler,
18220 pname,
18221 params
18222 );
18223 }
18224 let out = call_atomic_ptr_3arg(
18225 "glGetSamplerParameterfv",
18226 &self.glGetSamplerParameterfv_p,
18227 sampler,
18228 pname,
18229 params,
18230 );
18231 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18232 {
18233 self.automatic_glGetError("glGetSamplerParameterfv");
18234 }
18235 out
18236 }
18237 #[doc(hidden)]
18238 pub unsafe fn GetSamplerParameterfv_load_with_dyn(
18239 &self,
18240 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18241 ) -> bool {
18242 load_dyn_name_atomic_ptr(
18243 get_proc_address,
18244 b"glGetSamplerParameterfv\0",
18245 &self.glGetSamplerParameterfv_p,
18246 )
18247 }
18248 #[inline]
18249 #[doc(hidden)]
18250 pub fn GetSamplerParameterfv_is_loaded(&self) -> bool {
18251 !self.glGetSamplerParameterfv_p.load(RELAX).is_null()
18252 }
18253 /// [glGetSamplerParameteriv](http://docs.gl/gl4/glGetSamplerParameter)(sampler, pname, params)
18254 /// * `pname` group: SamplerParameterI
18255 /// * `params` len: COMPSIZE(pname)
18256 #[cfg_attr(feature = "inline", inline)]
18257 #[cfg_attr(feature = "inline_always", inline(always))]
18258 pub unsafe fn GetSamplerParameteriv(
18259 &self,
18260 sampler: GLuint,
18261 pname: GLenum,
18262 params: *mut GLint,
18263 ) {
18264 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18265 {
18266 trace!(
18267 "calling gl.GetSamplerParameteriv({:?}, {:#X}, {:p});",
18268 sampler,
18269 pname,
18270 params
18271 );
18272 }
18273 let out = call_atomic_ptr_3arg(
18274 "glGetSamplerParameteriv",
18275 &self.glGetSamplerParameteriv_p,
18276 sampler,
18277 pname,
18278 params,
18279 );
18280 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18281 {
18282 self.automatic_glGetError("glGetSamplerParameteriv");
18283 }
18284 out
18285 }
18286 #[doc(hidden)]
18287 pub unsafe fn GetSamplerParameteriv_load_with_dyn(
18288 &self,
18289 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18290 ) -> bool {
18291 load_dyn_name_atomic_ptr(
18292 get_proc_address,
18293 b"glGetSamplerParameteriv\0",
18294 &self.glGetSamplerParameteriv_p,
18295 )
18296 }
18297 #[inline]
18298 #[doc(hidden)]
18299 pub fn GetSamplerParameteriv_is_loaded(&self) -> bool {
18300 !self.glGetSamplerParameteriv_p.load(RELAX).is_null()
18301 }
18302 /// [glGetShaderInfoLog](http://docs.gl/gl4/glGetShaderInfoLog)(shader, bufSize, length, infoLog)
18303 /// * `length` len: 1
18304 /// * `infoLog` len: bufSize
18305 #[cfg_attr(feature = "inline", inline)]
18306 #[cfg_attr(feature = "inline_always", inline(always))]
18307 pub unsafe fn GetShaderInfoLog(
18308 &self,
18309 shader: GLuint,
18310 bufSize: GLsizei,
18311 length: *mut GLsizei,
18312 infoLog: *mut GLchar,
18313 ) {
18314 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18315 {
18316 trace!(
18317 "calling gl.GetShaderInfoLog({:?}, {:?}, {:p}, {:p});",
18318 shader,
18319 bufSize,
18320 length,
18321 infoLog
18322 );
18323 }
18324 let out = call_atomic_ptr_4arg(
18325 "glGetShaderInfoLog",
18326 &self.glGetShaderInfoLog_p,
18327 shader,
18328 bufSize,
18329 length,
18330 infoLog,
18331 );
18332 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18333 {
18334 self.automatic_glGetError("glGetShaderInfoLog");
18335 }
18336 out
18337 }
18338 #[doc(hidden)]
18339 pub unsafe fn GetShaderInfoLog_load_with_dyn(
18340 &self,
18341 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18342 ) -> bool {
18343 load_dyn_name_atomic_ptr(
18344 get_proc_address,
18345 b"glGetShaderInfoLog\0",
18346 &self.glGetShaderInfoLog_p,
18347 )
18348 }
18349 #[inline]
18350 #[doc(hidden)]
18351 pub fn GetShaderInfoLog_is_loaded(&self) -> bool {
18352 !self.glGetShaderInfoLog_p.load(RELAX).is_null()
18353 }
18354 /// [glGetShaderPrecisionFormat](http://docs.gl/gl4/glGetShaderPrecisionFormat)(shadertype, precisiontype, range, precision)
18355 /// * `shadertype` group: ShaderType
18356 /// * `precisiontype` group: PrecisionType
18357 /// * `range` len: 2
18358 /// * `precision` len: 1
18359 #[cfg_attr(feature = "inline", inline)]
18360 #[cfg_attr(feature = "inline_always", inline(always))]
18361 pub unsafe fn GetShaderPrecisionFormat(
18362 &self,
18363 shadertype: GLenum,
18364 precisiontype: GLenum,
18365 range: *mut GLint,
18366 precision: *mut GLint,
18367 ) {
18368 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18369 {
18370 trace!(
18371 "calling gl.GetShaderPrecisionFormat({:#X}, {:#X}, {:p}, {:p});",
18372 shadertype,
18373 precisiontype,
18374 range,
18375 precision
18376 );
18377 }
18378 let out = call_atomic_ptr_4arg(
18379 "glGetShaderPrecisionFormat",
18380 &self.glGetShaderPrecisionFormat_p,
18381 shadertype,
18382 precisiontype,
18383 range,
18384 precision,
18385 );
18386 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18387 {
18388 self.automatic_glGetError("glGetShaderPrecisionFormat");
18389 }
18390 out
18391 }
18392 #[doc(hidden)]
18393 pub unsafe fn GetShaderPrecisionFormat_load_with_dyn(
18394 &self,
18395 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18396 ) -> bool {
18397 load_dyn_name_atomic_ptr(
18398 get_proc_address,
18399 b"glGetShaderPrecisionFormat\0",
18400 &self.glGetShaderPrecisionFormat_p,
18401 )
18402 }
18403 #[inline]
18404 #[doc(hidden)]
18405 pub fn GetShaderPrecisionFormat_is_loaded(&self) -> bool {
18406 !self.glGetShaderPrecisionFormat_p.load(RELAX).is_null()
18407 }
18408 /// [glGetShaderSource](http://docs.gl/gl4/glGetShaderSource)(shader, bufSize, length, source)
18409 /// * `length` len: 1
18410 /// * `source` len: bufSize
18411 #[cfg_attr(feature = "inline", inline)]
18412 #[cfg_attr(feature = "inline_always", inline(always))]
18413 pub unsafe fn GetShaderSource(
18414 &self,
18415 shader: GLuint,
18416 bufSize: GLsizei,
18417 length: *mut GLsizei,
18418 source: *mut GLchar,
18419 ) {
18420 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18421 {
18422 trace!(
18423 "calling gl.GetShaderSource({:?}, {:?}, {:p}, {:p});",
18424 shader,
18425 bufSize,
18426 length,
18427 source
18428 );
18429 }
18430 let out = call_atomic_ptr_4arg(
18431 "glGetShaderSource",
18432 &self.glGetShaderSource_p,
18433 shader,
18434 bufSize,
18435 length,
18436 source,
18437 );
18438 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18439 {
18440 self.automatic_glGetError("glGetShaderSource");
18441 }
18442 out
18443 }
18444 #[doc(hidden)]
18445 pub unsafe fn GetShaderSource_load_with_dyn(
18446 &self,
18447 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18448 ) -> bool {
18449 load_dyn_name_atomic_ptr(
18450 get_proc_address,
18451 b"glGetShaderSource\0",
18452 &self.glGetShaderSource_p,
18453 )
18454 }
18455 #[inline]
18456 #[doc(hidden)]
18457 pub fn GetShaderSource_is_loaded(&self) -> bool {
18458 !self.glGetShaderSource_p.load(RELAX).is_null()
18459 }
18460 /// [glGetShaderiv](http://docs.gl/gl4/glGetShaderiv)(shader, pname, params)
18461 /// * `pname` group: ShaderParameterName
18462 /// * `params` len: COMPSIZE(pname)
18463 #[cfg_attr(feature = "inline", inline)]
18464 #[cfg_attr(feature = "inline_always", inline(always))]
18465 pub unsafe fn GetShaderiv(&self, shader: GLuint, pname: GLenum, params: *mut GLint) {
18466 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18467 {
18468 trace!(
18469 "calling gl.GetShaderiv({:?}, {:#X}, {:p});",
18470 shader,
18471 pname,
18472 params
18473 );
18474 }
18475 let out = call_atomic_ptr_3arg(
18476 "glGetShaderiv",
18477 &self.glGetShaderiv_p,
18478 shader,
18479 pname,
18480 params,
18481 );
18482 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18483 {
18484 self.automatic_glGetError("glGetShaderiv");
18485 }
18486 out
18487 }
18488 #[doc(hidden)]
18489 pub unsafe fn GetShaderiv_load_with_dyn(
18490 &self,
18491 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18492 ) -> bool {
18493 load_dyn_name_atomic_ptr(get_proc_address, b"glGetShaderiv\0", &self.glGetShaderiv_p)
18494 }
18495 #[inline]
18496 #[doc(hidden)]
18497 pub fn GetShaderiv_is_loaded(&self) -> bool {
18498 !self.glGetShaderiv_p.load(RELAX).is_null()
18499 }
18500 /// [glGetString](http://docs.gl/gl4/glGetString)(name)
18501 /// * `name` group: StringName
18502 /// * return value group: String
18503 #[cfg_attr(feature = "inline", inline)]
18504 #[cfg_attr(feature = "inline_always", inline(always))]
18505 pub unsafe fn GetString(&self, name: GLenum) -> *const GLubyte {
18506 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18507 {
18508 trace!("calling gl.GetString({:#X});", name);
18509 }
18510 let out = call_atomic_ptr_1arg("glGetString", &self.glGetString_p, name);
18511 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18512 {
18513 self.automatic_glGetError("glGetString");
18514 }
18515 out
18516 }
18517 #[doc(hidden)]
18518 pub unsafe fn GetString_load_with_dyn(
18519 &self,
18520 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18521 ) -> bool {
18522 load_dyn_name_atomic_ptr(get_proc_address, b"glGetString\0", &self.glGetString_p)
18523 }
18524 #[inline]
18525 #[doc(hidden)]
18526 pub fn GetString_is_loaded(&self) -> bool {
18527 !self.glGetString_p.load(RELAX).is_null()
18528 }
18529 /// [glGetStringi](http://docs.gl/gl4/glGetString)(name, index)
18530 /// * `name` group: StringName
18531 /// * return value group: String
18532 #[cfg_attr(feature = "inline", inline)]
18533 #[cfg_attr(feature = "inline_always", inline(always))]
18534 pub unsafe fn GetStringi(&self, name: GLenum, index: GLuint) -> *const GLubyte {
18535 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18536 {
18537 trace!("calling gl.GetStringi({:#X}, {:?});", name, index);
18538 }
18539 let out = call_atomic_ptr_2arg("glGetStringi", &self.glGetStringi_p, name, index);
18540 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18541 {
18542 self.automatic_glGetError("glGetStringi");
18543 }
18544 out
18545 }
18546 #[doc(hidden)]
18547 pub unsafe fn GetStringi_load_with_dyn(
18548 &self,
18549 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18550 ) -> bool {
18551 load_dyn_name_atomic_ptr(get_proc_address, b"glGetStringi\0", &self.glGetStringi_p)
18552 }
18553 #[inline]
18554 #[doc(hidden)]
18555 pub fn GetStringi_is_loaded(&self) -> bool {
18556 !self.glGetStringi_p.load(RELAX).is_null()
18557 }
18558 /// [glGetSubroutineIndex](http://docs.gl/gl4/glGetSubroutineIndex)(program, shadertype, name)
18559 /// * `shadertype` group: ShaderType
18560 #[cfg_attr(feature = "inline", inline)]
18561 #[cfg_attr(feature = "inline_always", inline(always))]
18562 pub unsafe fn GetSubroutineIndex(
18563 &self,
18564 program: GLuint,
18565 shadertype: GLenum,
18566 name: *const GLchar,
18567 ) -> GLuint {
18568 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18569 {
18570 trace!(
18571 "calling gl.GetSubroutineIndex({:?}, {:#X}, {:p});",
18572 program,
18573 shadertype,
18574 name
18575 );
18576 }
18577 let out = call_atomic_ptr_3arg(
18578 "glGetSubroutineIndex",
18579 &self.glGetSubroutineIndex_p,
18580 program,
18581 shadertype,
18582 name,
18583 );
18584 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18585 {
18586 self.automatic_glGetError("glGetSubroutineIndex");
18587 }
18588 out
18589 }
18590 #[doc(hidden)]
18591 pub unsafe fn GetSubroutineIndex_load_with_dyn(
18592 &self,
18593 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18594 ) -> bool {
18595 load_dyn_name_atomic_ptr(
18596 get_proc_address,
18597 b"glGetSubroutineIndex\0",
18598 &self.glGetSubroutineIndex_p,
18599 )
18600 }
18601 #[inline]
18602 #[doc(hidden)]
18603 pub fn GetSubroutineIndex_is_loaded(&self) -> bool {
18604 !self.glGetSubroutineIndex_p.load(RELAX).is_null()
18605 }
18606 /// [glGetSubroutineUniformLocation](http://docs.gl/gl4/glGetSubroutineUniformLocation)(program, shadertype, name)
18607 /// * `shadertype` group: ShaderType
18608 #[cfg_attr(feature = "inline", inline)]
18609 #[cfg_attr(feature = "inline_always", inline(always))]
18610 pub unsafe fn GetSubroutineUniformLocation(
18611 &self,
18612 program: GLuint,
18613 shadertype: GLenum,
18614 name: *const GLchar,
18615 ) -> GLint {
18616 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18617 {
18618 trace!(
18619 "calling gl.GetSubroutineUniformLocation({:?}, {:#X}, {:p});",
18620 program,
18621 shadertype,
18622 name
18623 );
18624 }
18625 let out = call_atomic_ptr_3arg(
18626 "glGetSubroutineUniformLocation",
18627 &self.glGetSubroutineUniformLocation_p,
18628 program,
18629 shadertype,
18630 name,
18631 );
18632 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18633 {
18634 self.automatic_glGetError("glGetSubroutineUniformLocation");
18635 }
18636 out
18637 }
18638 #[doc(hidden)]
18639 pub unsafe fn GetSubroutineUniformLocation_load_with_dyn(
18640 &self,
18641 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18642 ) -> bool {
18643 load_dyn_name_atomic_ptr(
18644 get_proc_address,
18645 b"glGetSubroutineUniformLocation\0",
18646 &self.glGetSubroutineUniformLocation_p,
18647 )
18648 }
18649 #[inline]
18650 #[doc(hidden)]
18651 pub fn GetSubroutineUniformLocation_is_loaded(&self) -> bool {
18652 !self.glGetSubroutineUniformLocation_p.load(RELAX).is_null()
18653 }
18654 /// [glGetSynciv](http://docs.gl/gl4/glGetSync)(sync, pname, count, length, values)
18655 /// * `sync` group: sync
18656 /// * `pname` group: SyncParameterName
18657 /// * `length` len: 1
18658 /// * `values` len: count
18659 #[cfg_attr(feature = "inline", inline)]
18660 #[cfg_attr(feature = "inline_always", inline(always))]
18661 pub unsafe fn GetSynciv(
18662 &self,
18663 sync: GLsync,
18664 pname: GLenum,
18665 count: GLsizei,
18666 length: *mut GLsizei,
18667 values: *mut GLint,
18668 ) {
18669 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18670 {
18671 trace!(
18672 "calling gl.GetSynciv({:p}, {:#X}, {:?}, {:p}, {:p});",
18673 sync,
18674 pname,
18675 count,
18676 length,
18677 values
18678 );
18679 }
18680 let out = call_atomic_ptr_5arg(
18681 "glGetSynciv",
18682 &self.glGetSynciv_p,
18683 sync,
18684 pname,
18685 count,
18686 length,
18687 values,
18688 );
18689 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18690 {
18691 self.automatic_glGetError("glGetSynciv");
18692 }
18693 out
18694 }
18695 #[doc(hidden)]
18696 pub unsafe fn GetSynciv_load_with_dyn(
18697 &self,
18698 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18699 ) -> bool {
18700 load_dyn_name_atomic_ptr(get_proc_address, b"glGetSynciv\0", &self.glGetSynciv_p)
18701 }
18702 #[inline]
18703 #[doc(hidden)]
18704 pub fn GetSynciv_is_loaded(&self) -> bool {
18705 !self.glGetSynciv_p.load(RELAX).is_null()
18706 }
18707 /// [glGetTexImage](http://docs.gl/gl4/glGetTexImage)(target, level, format, type_, pixels)
18708 /// * `target` group: TextureTarget
18709 /// * `level` group: CheckedInt32
18710 /// * `format` group: PixelFormat
18711 /// * `type_` group: PixelType
18712 /// * `pixels` len: COMPSIZE(target,level,format,type)
18713 #[cfg_attr(feature = "inline", inline)]
18714 #[cfg_attr(feature = "inline_always", inline(always))]
18715 pub unsafe fn GetTexImage(
18716 &self,
18717 target: GLenum,
18718 level: GLint,
18719 format: GLenum,
18720 type_: GLenum,
18721 pixels: *mut c_void,
18722 ) {
18723 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18724 {
18725 trace!(
18726 "calling gl.GetTexImage({:#X}, {:?}, {:#X}, {:#X}, {:p});",
18727 target,
18728 level,
18729 format,
18730 type_,
18731 pixels
18732 );
18733 }
18734 let out = call_atomic_ptr_5arg(
18735 "glGetTexImage",
18736 &self.glGetTexImage_p,
18737 target,
18738 level,
18739 format,
18740 type_,
18741 pixels,
18742 );
18743 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18744 {
18745 self.automatic_glGetError("glGetTexImage");
18746 }
18747 out
18748 }
18749 #[doc(hidden)]
18750 pub unsafe fn GetTexImage_load_with_dyn(
18751 &self,
18752 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18753 ) -> bool {
18754 load_dyn_name_atomic_ptr(get_proc_address, b"glGetTexImage\0", &self.glGetTexImage_p)
18755 }
18756 #[inline]
18757 #[doc(hidden)]
18758 pub fn GetTexImage_is_loaded(&self) -> bool {
18759 !self.glGetTexImage_p.load(RELAX).is_null()
18760 }
18761 /// [glGetTexLevelParameterfv](http://docs.gl/gl4/glGetTexLevelParameter)(target, level, pname, params)
18762 /// * `target` group: TextureTarget
18763 /// * `level` group: CheckedInt32
18764 /// * `pname` group: GetTextureParameter
18765 /// * `params` len: COMPSIZE(pname)
18766 #[cfg_attr(feature = "inline", inline)]
18767 #[cfg_attr(feature = "inline_always", inline(always))]
18768 pub unsafe fn GetTexLevelParameterfv(
18769 &self,
18770 target: GLenum,
18771 level: GLint,
18772 pname: GLenum,
18773 params: *mut GLfloat,
18774 ) {
18775 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18776 {
18777 trace!(
18778 "calling gl.GetTexLevelParameterfv({:#X}, {:?}, {:#X}, {:p});",
18779 target,
18780 level,
18781 pname,
18782 params
18783 );
18784 }
18785 let out = call_atomic_ptr_4arg(
18786 "glGetTexLevelParameterfv",
18787 &self.glGetTexLevelParameterfv_p,
18788 target,
18789 level,
18790 pname,
18791 params,
18792 );
18793 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18794 {
18795 self.automatic_glGetError("glGetTexLevelParameterfv");
18796 }
18797 out
18798 }
18799 #[doc(hidden)]
18800 pub unsafe fn GetTexLevelParameterfv_load_with_dyn(
18801 &self,
18802 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18803 ) -> bool {
18804 load_dyn_name_atomic_ptr(
18805 get_proc_address,
18806 b"glGetTexLevelParameterfv\0",
18807 &self.glGetTexLevelParameterfv_p,
18808 )
18809 }
18810 #[inline]
18811 #[doc(hidden)]
18812 pub fn GetTexLevelParameterfv_is_loaded(&self) -> bool {
18813 !self.glGetTexLevelParameterfv_p.load(RELAX).is_null()
18814 }
18815 /// [glGetTexLevelParameteriv](http://docs.gl/gl4/glGetTexLevelParameter)(target, level, pname, params)
18816 /// * `target` group: TextureTarget
18817 /// * `level` group: CheckedInt32
18818 /// * `pname` group: GetTextureParameter
18819 /// * `params` len: COMPSIZE(pname)
18820 #[cfg_attr(feature = "inline", inline)]
18821 #[cfg_attr(feature = "inline_always", inline(always))]
18822 pub unsafe fn GetTexLevelParameteriv(
18823 &self,
18824 target: GLenum,
18825 level: GLint,
18826 pname: GLenum,
18827 params: *mut GLint,
18828 ) {
18829 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18830 {
18831 trace!(
18832 "calling gl.GetTexLevelParameteriv({:#X}, {:?}, {:#X}, {:p});",
18833 target,
18834 level,
18835 pname,
18836 params
18837 );
18838 }
18839 let out = call_atomic_ptr_4arg(
18840 "glGetTexLevelParameteriv",
18841 &self.glGetTexLevelParameteriv_p,
18842 target,
18843 level,
18844 pname,
18845 params,
18846 );
18847 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18848 {
18849 self.automatic_glGetError("glGetTexLevelParameteriv");
18850 }
18851 out
18852 }
18853 #[doc(hidden)]
18854 pub unsafe fn GetTexLevelParameteriv_load_with_dyn(
18855 &self,
18856 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18857 ) -> bool {
18858 load_dyn_name_atomic_ptr(
18859 get_proc_address,
18860 b"glGetTexLevelParameteriv\0",
18861 &self.glGetTexLevelParameteriv_p,
18862 )
18863 }
18864 #[inline]
18865 #[doc(hidden)]
18866 pub fn GetTexLevelParameteriv_is_loaded(&self) -> bool {
18867 !self.glGetTexLevelParameteriv_p.load(RELAX).is_null()
18868 }
18869 /// [glGetTexParameterIiv](http://docs.gl/gl4/glGetTexParameter)(target, pname, params)
18870 /// * `target` group: TextureTarget
18871 /// * `pname` group: GetTextureParameter
18872 /// * `params` len: COMPSIZE(pname)
18873 #[cfg_attr(feature = "inline", inline)]
18874 #[cfg_attr(feature = "inline_always", inline(always))]
18875 pub unsafe fn GetTexParameterIiv(&self, target: GLenum, pname: GLenum, params: *mut GLint) {
18876 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18877 {
18878 trace!(
18879 "calling gl.GetTexParameterIiv({:#X}, {:#X}, {:p});",
18880 target,
18881 pname,
18882 params
18883 );
18884 }
18885 let out = call_atomic_ptr_3arg(
18886 "glGetTexParameterIiv",
18887 &self.glGetTexParameterIiv_p,
18888 target,
18889 pname,
18890 params,
18891 );
18892 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18893 {
18894 self.automatic_glGetError("glGetTexParameterIiv");
18895 }
18896 out
18897 }
18898 #[doc(hidden)]
18899 pub unsafe fn GetTexParameterIiv_load_with_dyn(
18900 &self,
18901 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18902 ) -> bool {
18903 load_dyn_name_atomic_ptr(
18904 get_proc_address,
18905 b"glGetTexParameterIiv\0",
18906 &self.glGetTexParameterIiv_p,
18907 )
18908 }
18909 #[inline]
18910 #[doc(hidden)]
18911 pub fn GetTexParameterIiv_is_loaded(&self) -> bool {
18912 !self.glGetTexParameterIiv_p.load(RELAX).is_null()
18913 }
18914 /// [glGetTexParameterIuiv](http://docs.gl/gl4/glGetTexParameter)(target, pname, params)
18915 /// * `target` group: TextureTarget
18916 /// * `pname` group: GetTextureParameter
18917 /// * `params` len: COMPSIZE(pname)
18918 #[cfg_attr(feature = "inline", inline)]
18919 #[cfg_attr(feature = "inline_always", inline(always))]
18920 pub unsafe fn GetTexParameterIuiv(
18921 &self,
18922 target: GLenum,
18923 pname: GLenum,
18924 params: *mut GLuint,
18925 ) {
18926 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18927 {
18928 trace!(
18929 "calling gl.GetTexParameterIuiv({:#X}, {:#X}, {:p});",
18930 target,
18931 pname,
18932 params
18933 );
18934 }
18935 let out = call_atomic_ptr_3arg(
18936 "glGetTexParameterIuiv",
18937 &self.glGetTexParameterIuiv_p,
18938 target,
18939 pname,
18940 params,
18941 );
18942 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18943 {
18944 self.automatic_glGetError("glGetTexParameterIuiv");
18945 }
18946 out
18947 }
18948 #[doc(hidden)]
18949 pub unsafe fn GetTexParameterIuiv_load_with_dyn(
18950 &self,
18951 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18952 ) -> bool {
18953 load_dyn_name_atomic_ptr(
18954 get_proc_address,
18955 b"glGetTexParameterIuiv\0",
18956 &self.glGetTexParameterIuiv_p,
18957 )
18958 }
18959 #[inline]
18960 #[doc(hidden)]
18961 pub fn GetTexParameterIuiv_is_loaded(&self) -> bool {
18962 !self.glGetTexParameterIuiv_p.load(RELAX).is_null()
18963 }
18964 /// [glGetTexParameterfv](http://docs.gl/gl4/glGetTexParameter)(target, pname, params)
18965 /// * `target` group: TextureTarget
18966 /// * `pname` group: GetTextureParameter
18967 /// * `params` len: COMPSIZE(pname)
18968 #[cfg_attr(feature = "inline", inline)]
18969 #[cfg_attr(feature = "inline_always", inline(always))]
18970 pub unsafe fn GetTexParameterfv(
18971 &self,
18972 target: GLenum,
18973 pname: GLenum,
18974 params: *mut GLfloat,
18975 ) {
18976 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18977 {
18978 trace!(
18979 "calling gl.GetTexParameterfv({:#X}, {:#X}, {:p});",
18980 target,
18981 pname,
18982 params
18983 );
18984 }
18985 let out = call_atomic_ptr_3arg(
18986 "glGetTexParameterfv",
18987 &self.glGetTexParameterfv_p,
18988 target,
18989 pname,
18990 params,
18991 );
18992 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18993 {
18994 self.automatic_glGetError("glGetTexParameterfv");
18995 }
18996 out
18997 }
18998 #[doc(hidden)]
18999 pub unsafe fn GetTexParameterfv_load_with_dyn(
19000 &self,
19001 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19002 ) -> bool {
19003 load_dyn_name_atomic_ptr(
19004 get_proc_address,
19005 b"glGetTexParameterfv\0",
19006 &self.glGetTexParameterfv_p,
19007 )
19008 }
19009 #[inline]
19010 #[doc(hidden)]
19011 pub fn GetTexParameterfv_is_loaded(&self) -> bool {
19012 !self.glGetTexParameterfv_p.load(RELAX).is_null()
19013 }
19014 /// [glGetTexParameteriv](http://docs.gl/gl4/glGetTexParameter)(target, pname, params)
19015 /// * `target` group: TextureTarget
19016 /// * `pname` group: GetTextureParameter
19017 /// * `params` len: COMPSIZE(pname)
19018 #[cfg_attr(feature = "inline", inline)]
19019 #[cfg_attr(feature = "inline_always", inline(always))]
19020 pub unsafe fn GetTexParameteriv(&self, target: GLenum, pname: GLenum, params: *mut GLint) {
19021 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19022 {
19023 trace!(
19024 "calling gl.GetTexParameteriv({:#X}, {:#X}, {:p});",
19025 target,
19026 pname,
19027 params
19028 );
19029 }
19030 let out = call_atomic_ptr_3arg(
19031 "glGetTexParameteriv",
19032 &self.glGetTexParameteriv_p,
19033 target,
19034 pname,
19035 params,
19036 );
19037 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19038 {
19039 self.automatic_glGetError("glGetTexParameteriv");
19040 }
19041 out
19042 }
19043 #[doc(hidden)]
19044 pub unsafe fn GetTexParameteriv_load_with_dyn(
19045 &self,
19046 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19047 ) -> bool {
19048 load_dyn_name_atomic_ptr(
19049 get_proc_address,
19050 b"glGetTexParameteriv\0",
19051 &self.glGetTexParameteriv_p,
19052 )
19053 }
19054 #[inline]
19055 #[doc(hidden)]
19056 pub fn GetTexParameteriv_is_loaded(&self) -> bool {
19057 !self.glGetTexParameteriv_p.load(RELAX).is_null()
19058 }
19059 /// [glGetTextureImage](http://docs.gl/gl4/glGetTextureImage)(texture, level, format, type_, bufSize, pixels)
19060 /// * `format` group: PixelFormat
19061 /// * `type_` group: PixelType
19062 #[cfg_attr(feature = "inline", inline)]
19063 #[cfg_attr(feature = "inline_always", inline(always))]
19064 pub unsafe fn GetTextureImage(
19065 &self,
19066 texture: GLuint,
19067 level: GLint,
19068 format: GLenum,
19069 type_: GLenum,
19070 bufSize: GLsizei,
19071 pixels: *mut c_void,
19072 ) {
19073 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19074 {
19075 trace!(
19076 "calling gl.GetTextureImage({:?}, {:?}, {:#X}, {:#X}, {:?}, {:p});",
19077 texture,
19078 level,
19079 format,
19080 type_,
19081 bufSize,
19082 pixels
19083 );
19084 }
19085 let out = call_atomic_ptr_6arg(
19086 "glGetTextureImage",
19087 &self.glGetTextureImage_p,
19088 texture,
19089 level,
19090 format,
19091 type_,
19092 bufSize,
19093 pixels,
19094 );
19095 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19096 {
19097 self.automatic_glGetError("glGetTextureImage");
19098 }
19099 out
19100 }
19101 #[doc(hidden)]
19102 pub unsafe fn GetTextureImage_load_with_dyn(
19103 &self,
19104 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19105 ) -> bool {
19106 load_dyn_name_atomic_ptr(
19107 get_proc_address,
19108 b"glGetTextureImage\0",
19109 &self.glGetTextureImage_p,
19110 )
19111 }
19112 #[inline]
19113 #[doc(hidden)]
19114 pub fn GetTextureImage_is_loaded(&self) -> bool {
19115 !self.glGetTextureImage_p.load(RELAX).is_null()
19116 }
19117 /// [glGetTextureLevelParameterfv](http://docs.gl/gl4/glGetTextureLevelParameter)(texture, level, pname, params)
19118 /// * `pname` group: GetTextureParameter
19119 #[cfg_attr(feature = "inline", inline)]
19120 #[cfg_attr(feature = "inline_always", inline(always))]
19121 pub unsafe fn GetTextureLevelParameterfv(
19122 &self,
19123 texture: GLuint,
19124 level: GLint,
19125 pname: GLenum,
19126 params: *mut GLfloat,
19127 ) {
19128 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19129 {
19130 trace!(
19131 "calling gl.GetTextureLevelParameterfv({:?}, {:?}, {:#X}, {:p});",
19132 texture,
19133 level,
19134 pname,
19135 params
19136 );
19137 }
19138 let out = call_atomic_ptr_4arg(
19139 "glGetTextureLevelParameterfv",
19140 &self.glGetTextureLevelParameterfv_p,
19141 texture,
19142 level,
19143 pname,
19144 params,
19145 );
19146 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19147 {
19148 self.automatic_glGetError("glGetTextureLevelParameterfv");
19149 }
19150 out
19151 }
19152 #[doc(hidden)]
19153 pub unsafe fn GetTextureLevelParameterfv_load_with_dyn(
19154 &self,
19155 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19156 ) -> bool {
19157 load_dyn_name_atomic_ptr(
19158 get_proc_address,
19159 b"glGetTextureLevelParameterfv\0",
19160 &self.glGetTextureLevelParameterfv_p,
19161 )
19162 }
19163 #[inline]
19164 #[doc(hidden)]
19165 pub fn GetTextureLevelParameterfv_is_loaded(&self) -> bool {
19166 !self.glGetTextureLevelParameterfv_p.load(RELAX).is_null()
19167 }
19168 /// [glGetTextureLevelParameteriv](http://docs.gl/gl4/glGetTextureLevelParameter)(texture, level, pname, params)
19169 /// * `pname` group: GetTextureParameter
19170 #[cfg_attr(feature = "inline", inline)]
19171 #[cfg_attr(feature = "inline_always", inline(always))]
19172 pub unsafe fn GetTextureLevelParameteriv(
19173 &self,
19174 texture: GLuint,
19175 level: GLint,
19176 pname: GLenum,
19177 params: *mut GLint,
19178 ) {
19179 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19180 {
19181 trace!(
19182 "calling gl.GetTextureLevelParameteriv({:?}, {:?}, {:#X}, {:p});",
19183 texture,
19184 level,
19185 pname,
19186 params
19187 );
19188 }
19189 let out = call_atomic_ptr_4arg(
19190 "glGetTextureLevelParameteriv",
19191 &self.glGetTextureLevelParameteriv_p,
19192 texture,
19193 level,
19194 pname,
19195 params,
19196 );
19197 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19198 {
19199 self.automatic_glGetError("glGetTextureLevelParameteriv");
19200 }
19201 out
19202 }
19203 #[doc(hidden)]
19204 pub unsafe fn GetTextureLevelParameteriv_load_with_dyn(
19205 &self,
19206 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19207 ) -> bool {
19208 load_dyn_name_atomic_ptr(
19209 get_proc_address,
19210 b"glGetTextureLevelParameteriv\0",
19211 &self.glGetTextureLevelParameteriv_p,
19212 )
19213 }
19214 #[inline]
19215 #[doc(hidden)]
19216 pub fn GetTextureLevelParameteriv_is_loaded(&self) -> bool {
19217 !self.glGetTextureLevelParameteriv_p.load(RELAX).is_null()
19218 }
19219 /// [glGetTextureParameterIiv](http://docs.gl/gl4/glGetTextureParameter)(texture, pname, params)
19220 /// * `pname` group: GetTextureParameter
19221 #[cfg_attr(feature = "inline", inline)]
19222 #[cfg_attr(feature = "inline_always", inline(always))]
19223 pub unsafe fn GetTextureParameterIiv(
19224 &self,
19225 texture: GLuint,
19226 pname: GLenum,
19227 params: *mut GLint,
19228 ) {
19229 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19230 {
19231 trace!(
19232 "calling gl.GetTextureParameterIiv({:?}, {:#X}, {:p});",
19233 texture,
19234 pname,
19235 params
19236 );
19237 }
19238 let out = call_atomic_ptr_3arg(
19239 "glGetTextureParameterIiv",
19240 &self.glGetTextureParameterIiv_p,
19241 texture,
19242 pname,
19243 params,
19244 );
19245 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19246 {
19247 self.automatic_glGetError("glGetTextureParameterIiv");
19248 }
19249 out
19250 }
19251 #[doc(hidden)]
19252 pub unsafe fn GetTextureParameterIiv_load_with_dyn(
19253 &self,
19254 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19255 ) -> bool {
19256 load_dyn_name_atomic_ptr(
19257 get_proc_address,
19258 b"glGetTextureParameterIiv\0",
19259 &self.glGetTextureParameterIiv_p,
19260 )
19261 }
19262 #[inline]
19263 #[doc(hidden)]
19264 pub fn GetTextureParameterIiv_is_loaded(&self) -> bool {
19265 !self.glGetTextureParameterIiv_p.load(RELAX).is_null()
19266 }
19267 /// [glGetTextureParameterIuiv](http://docs.gl/gl4/glGetTextureParameter)(texture, pname, params)
19268 /// * `pname` group: GetTextureParameter
19269 #[cfg_attr(feature = "inline", inline)]
19270 #[cfg_attr(feature = "inline_always", inline(always))]
19271 pub unsafe fn GetTextureParameterIuiv(
19272 &self,
19273 texture: GLuint,
19274 pname: GLenum,
19275 params: *mut GLuint,
19276 ) {
19277 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19278 {
19279 trace!(
19280 "calling gl.GetTextureParameterIuiv({:?}, {:#X}, {:p});",
19281 texture,
19282 pname,
19283 params
19284 );
19285 }
19286 let out = call_atomic_ptr_3arg(
19287 "glGetTextureParameterIuiv",
19288 &self.glGetTextureParameterIuiv_p,
19289 texture,
19290 pname,
19291 params,
19292 );
19293 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19294 {
19295 self.automatic_glGetError("glGetTextureParameterIuiv");
19296 }
19297 out
19298 }
19299 #[doc(hidden)]
19300 pub unsafe fn GetTextureParameterIuiv_load_with_dyn(
19301 &self,
19302 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19303 ) -> bool {
19304 load_dyn_name_atomic_ptr(
19305 get_proc_address,
19306 b"glGetTextureParameterIuiv\0",
19307 &self.glGetTextureParameterIuiv_p,
19308 )
19309 }
19310 #[inline]
19311 #[doc(hidden)]
19312 pub fn GetTextureParameterIuiv_is_loaded(&self) -> bool {
19313 !self.glGetTextureParameterIuiv_p.load(RELAX).is_null()
19314 }
19315 /// [glGetTextureParameterfv](http://docs.gl/gl4/glGetTextureParameter)(texture, pname, params)
19316 /// * `pname` group: GetTextureParameter
19317 #[cfg_attr(feature = "inline", inline)]
19318 #[cfg_attr(feature = "inline_always", inline(always))]
19319 pub unsafe fn GetTextureParameterfv(
19320 &self,
19321 texture: GLuint,
19322 pname: GLenum,
19323 params: *mut GLfloat,
19324 ) {
19325 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19326 {
19327 trace!(
19328 "calling gl.GetTextureParameterfv({:?}, {:#X}, {:p});",
19329 texture,
19330 pname,
19331 params
19332 );
19333 }
19334 let out = call_atomic_ptr_3arg(
19335 "glGetTextureParameterfv",
19336 &self.glGetTextureParameterfv_p,
19337 texture,
19338 pname,
19339 params,
19340 );
19341 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19342 {
19343 self.automatic_glGetError("glGetTextureParameterfv");
19344 }
19345 out
19346 }
19347 #[doc(hidden)]
19348 pub unsafe fn GetTextureParameterfv_load_with_dyn(
19349 &self,
19350 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19351 ) -> bool {
19352 load_dyn_name_atomic_ptr(
19353 get_proc_address,
19354 b"glGetTextureParameterfv\0",
19355 &self.glGetTextureParameterfv_p,
19356 )
19357 }
19358 #[inline]
19359 #[doc(hidden)]
19360 pub fn GetTextureParameterfv_is_loaded(&self) -> bool {
19361 !self.glGetTextureParameterfv_p.load(RELAX).is_null()
19362 }
19363 /// [glGetTextureParameteriv](http://docs.gl/gl4/glGetTextureParameter)(texture, pname, params)
19364 /// * `pname` group: GetTextureParameter
19365 #[cfg_attr(feature = "inline", inline)]
19366 #[cfg_attr(feature = "inline_always", inline(always))]
19367 pub unsafe fn GetTextureParameteriv(
19368 &self,
19369 texture: GLuint,
19370 pname: GLenum,
19371 params: *mut GLint,
19372 ) {
19373 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19374 {
19375 trace!(
19376 "calling gl.GetTextureParameteriv({:?}, {:#X}, {:p});",
19377 texture,
19378 pname,
19379 params
19380 );
19381 }
19382 let out = call_atomic_ptr_3arg(
19383 "glGetTextureParameteriv",
19384 &self.glGetTextureParameteriv_p,
19385 texture,
19386 pname,
19387 params,
19388 );
19389 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19390 {
19391 self.automatic_glGetError("glGetTextureParameteriv");
19392 }
19393 out
19394 }
19395 #[doc(hidden)]
19396 pub unsafe fn GetTextureParameteriv_load_with_dyn(
19397 &self,
19398 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19399 ) -> bool {
19400 load_dyn_name_atomic_ptr(
19401 get_proc_address,
19402 b"glGetTextureParameteriv\0",
19403 &self.glGetTextureParameteriv_p,
19404 )
19405 }
19406 #[inline]
19407 #[doc(hidden)]
19408 pub fn GetTextureParameteriv_is_loaded(&self) -> bool {
19409 !self.glGetTextureParameteriv_p.load(RELAX).is_null()
19410 }
19411 /// [glGetTextureSubImage](http://docs.gl/gl4/glGetTextureSubImage)(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type_, bufSize, pixels)
19412 /// * `format` group: PixelFormat
19413 /// * `type_` group: PixelType
19414 #[cfg_attr(feature = "inline", inline)]
19415 #[cfg_attr(feature = "inline_always", inline(always))]
19416 pub unsafe fn GetTextureSubImage(
19417 &self,
19418 texture: GLuint,
19419 level: GLint,
19420 xoffset: GLint,
19421 yoffset: GLint,
19422 zoffset: GLint,
19423 width: GLsizei,
19424 height: GLsizei,
19425 depth: GLsizei,
19426 format: GLenum,
19427 type_: GLenum,
19428 bufSize: GLsizei,
19429 pixels: *mut c_void,
19430 ) {
19431 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19432 {
19433 trace!("calling gl.GetTextureSubImage({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:?}, {:p});", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type_, bufSize, pixels);
19434 }
19435 let out = call_atomic_ptr_12arg(
19436 "glGetTextureSubImage",
19437 &self.glGetTextureSubImage_p,
19438 texture,
19439 level,
19440 xoffset,
19441 yoffset,
19442 zoffset,
19443 width,
19444 height,
19445 depth,
19446 format,
19447 type_,
19448 bufSize,
19449 pixels,
19450 );
19451 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19452 {
19453 self.automatic_glGetError("glGetTextureSubImage");
19454 }
19455 out
19456 }
19457 #[doc(hidden)]
19458 pub unsafe fn GetTextureSubImage_load_with_dyn(
19459 &self,
19460 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19461 ) -> bool {
19462 load_dyn_name_atomic_ptr(
19463 get_proc_address,
19464 b"glGetTextureSubImage\0",
19465 &self.glGetTextureSubImage_p,
19466 )
19467 }
19468 #[inline]
19469 #[doc(hidden)]
19470 pub fn GetTextureSubImage_is_loaded(&self) -> bool {
19471 !self.glGetTextureSubImage_p.load(RELAX).is_null()
19472 }
19473 /// [glGetTransformFeedbackVarying](http://docs.gl/gl4/glGetTransformFeedbackVarying)(program, index, bufSize, length, size, type_, name)
19474 /// * `length` len: 1
19475 /// * `size` len: 1
19476 /// * `type_` group: AttributeType
19477 /// * `type_` len: 1
19478 /// * `name` len: bufSize
19479 #[cfg_attr(feature = "inline", inline)]
19480 #[cfg_attr(feature = "inline_always", inline(always))]
19481 pub unsafe fn GetTransformFeedbackVarying(
19482 &self,
19483 program: GLuint,
19484 index: GLuint,
19485 bufSize: GLsizei,
19486 length: *mut GLsizei,
19487 size: *mut GLsizei,
19488 type_: *mut GLenum,
19489 name: *mut GLchar,
19490 ) {
19491 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19492 {
19493 trace!("calling gl.GetTransformFeedbackVarying({:?}, {:?}, {:?}, {:p}, {:p}, {:p}, {:p});", program, index, bufSize, length, size, type_, name);
19494 }
19495 let out = call_atomic_ptr_7arg(
19496 "glGetTransformFeedbackVarying",
19497 &self.glGetTransformFeedbackVarying_p,
19498 program,
19499 index,
19500 bufSize,
19501 length,
19502 size,
19503 type_,
19504 name,
19505 );
19506 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19507 {
19508 self.automatic_glGetError("glGetTransformFeedbackVarying");
19509 }
19510 out
19511 }
19512 #[doc(hidden)]
19513 pub unsafe fn GetTransformFeedbackVarying_load_with_dyn(
19514 &self,
19515 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19516 ) -> bool {
19517 load_dyn_name_atomic_ptr(
19518 get_proc_address,
19519 b"glGetTransformFeedbackVarying\0",
19520 &self.glGetTransformFeedbackVarying_p,
19521 )
19522 }
19523 #[inline]
19524 #[doc(hidden)]
19525 pub fn GetTransformFeedbackVarying_is_loaded(&self) -> bool {
19526 !self.glGetTransformFeedbackVarying_p.load(RELAX).is_null()
19527 }
19528 /// [glGetTransformFeedbacki64_v](http://docs.gl/gl4/glGetTransformFeedbacki64_v)(xfb, pname, index, param)
19529 /// * `pname` group: TransformFeedbackPName
19530 #[cfg_attr(feature = "inline", inline)]
19531 #[cfg_attr(feature = "inline_always", inline(always))]
19532 pub unsafe fn GetTransformFeedbacki64_v(
19533 &self,
19534 xfb: GLuint,
19535 pname: GLenum,
19536 index: GLuint,
19537 param: *mut GLint64,
19538 ) {
19539 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19540 {
19541 trace!(
19542 "calling gl.GetTransformFeedbacki64_v({:?}, {:#X}, {:?}, {:p});",
19543 xfb,
19544 pname,
19545 index,
19546 param
19547 );
19548 }
19549 let out = call_atomic_ptr_4arg(
19550 "glGetTransformFeedbacki64_v",
19551 &self.glGetTransformFeedbacki64_v_p,
19552 xfb,
19553 pname,
19554 index,
19555 param,
19556 );
19557 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19558 {
19559 self.automatic_glGetError("glGetTransformFeedbacki64_v");
19560 }
19561 out
19562 }
19563 #[doc(hidden)]
19564 pub unsafe fn GetTransformFeedbacki64_v_load_with_dyn(
19565 &self,
19566 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19567 ) -> bool {
19568 load_dyn_name_atomic_ptr(
19569 get_proc_address,
19570 b"glGetTransformFeedbacki64_v\0",
19571 &self.glGetTransformFeedbacki64_v_p,
19572 )
19573 }
19574 #[inline]
19575 #[doc(hidden)]
19576 pub fn GetTransformFeedbacki64_v_is_loaded(&self) -> bool {
19577 !self.glGetTransformFeedbacki64_v_p.load(RELAX).is_null()
19578 }
19579 /// [glGetTransformFeedbacki_v](http://docs.gl/gl4/glGetTransformFeedbacki_v)(xfb, pname, index, param)
19580 /// * `pname` group: TransformFeedbackPName
19581 #[cfg_attr(feature = "inline", inline)]
19582 #[cfg_attr(feature = "inline_always", inline(always))]
19583 pub unsafe fn GetTransformFeedbacki_v(
19584 &self,
19585 xfb: GLuint,
19586 pname: GLenum,
19587 index: GLuint,
19588 param: *mut GLint,
19589 ) {
19590 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19591 {
19592 trace!(
19593 "calling gl.GetTransformFeedbacki_v({:?}, {:#X}, {:?}, {:p});",
19594 xfb,
19595 pname,
19596 index,
19597 param
19598 );
19599 }
19600 let out = call_atomic_ptr_4arg(
19601 "glGetTransformFeedbacki_v",
19602 &self.glGetTransformFeedbacki_v_p,
19603 xfb,
19604 pname,
19605 index,
19606 param,
19607 );
19608 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19609 {
19610 self.automatic_glGetError("glGetTransformFeedbacki_v");
19611 }
19612 out
19613 }
19614 #[doc(hidden)]
19615 pub unsafe fn GetTransformFeedbacki_v_load_with_dyn(
19616 &self,
19617 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19618 ) -> bool {
19619 load_dyn_name_atomic_ptr(
19620 get_proc_address,
19621 b"glGetTransformFeedbacki_v\0",
19622 &self.glGetTransformFeedbacki_v_p,
19623 )
19624 }
19625 #[inline]
19626 #[doc(hidden)]
19627 pub fn GetTransformFeedbacki_v_is_loaded(&self) -> bool {
19628 !self.glGetTransformFeedbacki_v_p.load(RELAX).is_null()
19629 }
19630 /// [glGetTransformFeedbackiv](http://docs.gl/gl4/glGetTransformFeedback)(xfb, pname, param)
19631 /// * `pname` group: TransformFeedbackPName
19632 #[cfg_attr(feature = "inline", inline)]
19633 #[cfg_attr(feature = "inline_always", inline(always))]
19634 pub unsafe fn GetTransformFeedbackiv(&self, xfb: GLuint, pname: GLenum, param: *mut GLint) {
19635 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19636 {
19637 trace!(
19638 "calling gl.GetTransformFeedbackiv({:?}, {:#X}, {:p});",
19639 xfb,
19640 pname,
19641 param
19642 );
19643 }
19644 let out = call_atomic_ptr_3arg(
19645 "glGetTransformFeedbackiv",
19646 &self.glGetTransformFeedbackiv_p,
19647 xfb,
19648 pname,
19649 param,
19650 );
19651 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19652 {
19653 self.automatic_glGetError("glGetTransformFeedbackiv");
19654 }
19655 out
19656 }
19657 #[doc(hidden)]
19658 pub unsafe fn GetTransformFeedbackiv_load_with_dyn(
19659 &self,
19660 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19661 ) -> bool {
19662 load_dyn_name_atomic_ptr(
19663 get_proc_address,
19664 b"glGetTransformFeedbackiv\0",
19665 &self.glGetTransformFeedbackiv_p,
19666 )
19667 }
19668 #[inline]
19669 #[doc(hidden)]
19670 pub fn GetTransformFeedbackiv_is_loaded(&self) -> bool {
19671 !self.glGetTransformFeedbackiv_p.load(RELAX).is_null()
19672 }
19673 /// [glGetUniformBlockIndex](http://docs.gl/gl4/glGetUniformBlockIndex)(program, uniformBlockName)
19674 /// * `uniformBlockName` len: COMPSIZE()
19675 #[cfg_attr(feature = "inline", inline)]
19676 #[cfg_attr(feature = "inline_always", inline(always))]
19677 pub unsafe fn GetUniformBlockIndex(
19678 &self,
19679 program: GLuint,
19680 uniformBlockName: *const GLchar,
19681 ) -> GLuint {
19682 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19683 {
19684 trace!(
19685 "calling gl.GetUniformBlockIndex({:?}, {:p});",
19686 program,
19687 uniformBlockName
19688 );
19689 }
19690 let out = call_atomic_ptr_2arg(
19691 "glGetUniformBlockIndex",
19692 &self.glGetUniformBlockIndex_p,
19693 program,
19694 uniformBlockName,
19695 );
19696 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19697 {
19698 self.automatic_glGetError("glGetUniformBlockIndex");
19699 }
19700 out
19701 }
19702 #[doc(hidden)]
19703 pub unsafe fn GetUniformBlockIndex_load_with_dyn(
19704 &self,
19705 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19706 ) -> bool {
19707 load_dyn_name_atomic_ptr(
19708 get_proc_address,
19709 b"glGetUniformBlockIndex\0",
19710 &self.glGetUniformBlockIndex_p,
19711 )
19712 }
19713 #[inline]
19714 #[doc(hidden)]
19715 pub fn GetUniformBlockIndex_is_loaded(&self) -> bool {
19716 !self.glGetUniformBlockIndex_p.load(RELAX).is_null()
19717 }
19718 /// [glGetUniformIndices](http://docs.gl/gl4/glGetUniformIndices)(program, uniformCount, uniformNames, uniformIndices)
19719 /// * `uniformNames` len: COMPSIZE(uniformCount)
19720 /// * `uniformIndices` len: COMPSIZE(uniformCount)
19721 #[cfg_attr(feature = "inline", inline)]
19722 #[cfg_attr(feature = "inline_always", inline(always))]
19723 pub unsafe fn GetUniformIndices(
19724 &self,
19725 program: GLuint,
19726 uniformCount: GLsizei,
19727 uniformNames: *const *const GLchar,
19728 uniformIndices: *mut GLuint,
19729 ) {
19730 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19731 {
19732 trace!(
19733 "calling gl.GetUniformIndices({:?}, {:?}, {:p}, {:p});",
19734 program,
19735 uniformCount,
19736 uniformNames,
19737 uniformIndices
19738 );
19739 }
19740 let out = call_atomic_ptr_4arg(
19741 "glGetUniformIndices",
19742 &self.glGetUniformIndices_p,
19743 program,
19744 uniformCount,
19745 uniformNames,
19746 uniformIndices,
19747 );
19748 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19749 {
19750 self.automatic_glGetError("glGetUniformIndices");
19751 }
19752 out
19753 }
19754 #[doc(hidden)]
19755 pub unsafe fn GetUniformIndices_load_with_dyn(
19756 &self,
19757 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19758 ) -> bool {
19759 load_dyn_name_atomic_ptr(
19760 get_proc_address,
19761 b"glGetUniformIndices\0",
19762 &self.glGetUniformIndices_p,
19763 )
19764 }
19765 #[inline]
19766 #[doc(hidden)]
19767 pub fn GetUniformIndices_is_loaded(&self) -> bool {
19768 !self.glGetUniformIndices_p.load(RELAX).is_null()
19769 }
19770 /// [glGetUniformLocation](http://docs.gl/gl4/glGetUniformLocation)(program, name)
19771 #[cfg_attr(feature = "inline", inline)]
19772 #[cfg_attr(feature = "inline_always", inline(always))]
19773 pub unsafe fn GetUniformLocation(&self, program: GLuint, name: *const GLchar) -> GLint {
19774 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19775 {
19776 trace!("calling gl.GetUniformLocation({:?}, {:p});", program, name);
19777 }
19778 let out = call_atomic_ptr_2arg(
19779 "glGetUniformLocation",
19780 &self.glGetUniformLocation_p,
19781 program,
19782 name,
19783 );
19784 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19785 {
19786 self.automatic_glGetError("glGetUniformLocation");
19787 }
19788 out
19789 }
19790 #[doc(hidden)]
19791 pub unsafe fn GetUniformLocation_load_with_dyn(
19792 &self,
19793 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19794 ) -> bool {
19795 load_dyn_name_atomic_ptr(
19796 get_proc_address,
19797 b"glGetUniformLocation\0",
19798 &self.glGetUniformLocation_p,
19799 )
19800 }
19801 #[inline]
19802 #[doc(hidden)]
19803 pub fn GetUniformLocation_is_loaded(&self) -> bool {
19804 !self.glGetUniformLocation_p.load(RELAX).is_null()
19805 }
19806 /// [glGetUniformSubroutineuiv](http://docs.gl/gl4/glGetUniformSubroutine)(shadertype, location, params)
19807 /// * `shadertype` group: ShaderType
19808 /// * `params` len: 1
19809 #[cfg_attr(feature = "inline", inline)]
19810 #[cfg_attr(feature = "inline_always", inline(always))]
19811 pub unsafe fn GetUniformSubroutineuiv(
19812 &self,
19813 shadertype: GLenum,
19814 location: GLint,
19815 params: *mut GLuint,
19816 ) {
19817 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19818 {
19819 trace!(
19820 "calling gl.GetUniformSubroutineuiv({:#X}, {:?}, {:p});",
19821 shadertype,
19822 location,
19823 params
19824 );
19825 }
19826 let out = call_atomic_ptr_3arg(
19827 "glGetUniformSubroutineuiv",
19828 &self.glGetUniformSubroutineuiv_p,
19829 shadertype,
19830 location,
19831 params,
19832 );
19833 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19834 {
19835 self.automatic_glGetError("glGetUniformSubroutineuiv");
19836 }
19837 out
19838 }
19839 #[doc(hidden)]
19840 pub unsafe fn GetUniformSubroutineuiv_load_with_dyn(
19841 &self,
19842 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19843 ) -> bool {
19844 load_dyn_name_atomic_ptr(
19845 get_proc_address,
19846 b"glGetUniformSubroutineuiv\0",
19847 &self.glGetUniformSubroutineuiv_p,
19848 )
19849 }
19850 #[inline]
19851 #[doc(hidden)]
19852 pub fn GetUniformSubroutineuiv_is_loaded(&self) -> bool {
19853 !self.glGetUniformSubroutineuiv_p.load(RELAX).is_null()
19854 }
19855 /// [glGetUniformdv](http://docs.gl/gl4/glGetUniformdv)(program, location, params)
19856 /// * `params` len: COMPSIZE(program,location)
19857 #[cfg_attr(feature = "inline", inline)]
19858 #[cfg_attr(feature = "inline_always", inline(always))]
19859 pub unsafe fn GetUniformdv(&self, program: GLuint, location: GLint, params: *mut GLdouble) {
19860 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19861 {
19862 trace!(
19863 "calling gl.GetUniformdv({:?}, {:?}, {:p});",
19864 program,
19865 location,
19866 params
19867 );
19868 }
19869 let out = call_atomic_ptr_3arg(
19870 "glGetUniformdv",
19871 &self.glGetUniformdv_p,
19872 program,
19873 location,
19874 params,
19875 );
19876 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19877 {
19878 self.automatic_glGetError("glGetUniformdv");
19879 }
19880 out
19881 }
19882 #[doc(hidden)]
19883 pub unsafe fn GetUniformdv_load_with_dyn(
19884 &self,
19885 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19886 ) -> bool {
19887 load_dyn_name_atomic_ptr(
19888 get_proc_address,
19889 b"glGetUniformdv\0",
19890 &self.glGetUniformdv_p,
19891 )
19892 }
19893 #[inline]
19894 #[doc(hidden)]
19895 pub fn GetUniformdv_is_loaded(&self) -> bool {
19896 !self.glGetUniformdv_p.load(RELAX).is_null()
19897 }
19898 /// [glGetUniformfv](http://docs.gl/gl4/glGetUniform)(program, location, params)
19899 /// * `params` len: COMPSIZE(program,location)
19900 #[cfg_attr(feature = "inline", inline)]
19901 #[cfg_attr(feature = "inline_always", inline(always))]
19902 pub unsafe fn GetUniformfv(&self, program: GLuint, location: GLint, params: *mut GLfloat) {
19903 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19904 {
19905 trace!(
19906 "calling gl.GetUniformfv({:?}, {:?}, {:p});",
19907 program,
19908 location,
19909 params
19910 );
19911 }
19912 let out = call_atomic_ptr_3arg(
19913 "glGetUniformfv",
19914 &self.glGetUniformfv_p,
19915 program,
19916 location,
19917 params,
19918 );
19919 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19920 {
19921 self.automatic_glGetError("glGetUniformfv");
19922 }
19923 out
19924 }
19925 #[doc(hidden)]
19926 pub unsafe fn GetUniformfv_load_with_dyn(
19927 &self,
19928 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19929 ) -> bool {
19930 load_dyn_name_atomic_ptr(
19931 get_proc_address,
19932 b"glGetUniformfv\0",
19933 &self.glGetUniformfv_p,
19934 )
19935 }
19936 #[inline]
19937 #[doc(hidden)]
19938 pub fn GetUniformfv_is_loaded(&self) -> bool {
19939 !self.glGetUniformfv_p.load(RELAX).is_null()
19940 }
19941 /// [glGetUniformiv](http://docs.gl/gl4/glGetUniform)(program, location, params)
19942 /// * `params` len: COMPSIZE(program,location)
19943 #[cfg_attr(feature = "inline", inline)]
19944 #[cfg_attr(feature = "inline_always", inline(always))]
19945 pub unsafe fn GetUniformiv(&self, program: GLuint, location: GLint, params: *mut GLint) {
19946 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19947 {
19948 trace!(
19949 "calling gl.GetUniformiv({:?}, {:?}, {:p});",
19950 program,
19951 location,
19952 params
19953 );
19954 }
19955 let out = call_atomic_ptr_3arg(
19956 "glGetUniformiv",
19957 &self.glGetUniformiv_p,
19958 program,
19959 location,
19960 params,
19961 );
19962 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19963 {
19964 self.automatic_glGetError("glGetUniformiv");
19965 }
19966 out
19967 }
19968 #[doc(hidden)]
19969 pub unsafe fn GetUniformiv_load_with_dyn(
19970 &self,
19971 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19972 ) -> bool {
19973 load_dyn_name_atomic_ptr(
19974 get_proc_address,
19975 b"glGetUniformiv\0",
19976 &self.glGetUniformiv_p,
19977 )
19978 }
19979 #[inline]
19980 #[doc(hidden)]
19981 pub fn GetUniformiv_is_loaded(&self) -> bool {
19982 !self.glGetUniformiv_p.load(RELAX).is_null()
19983 }
19984 /// [glGetUniformuiv](http://docs.gl/gl4/glGetUniform)(program, location, params)
19985 /// * `params` len: COMPSIZE(program,location)
19986 #[cfg_attr(feature = "inline", inline)]
19987 #[cfg_attr(feature = "inline_always", inline(always))]
19988 pub unsafe fn GetUniformuiv(&self, program: GLuint, location: GLint, params: *mut GLuint) {
19989 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19990 {
19991 trace!(
19992 "calling gl.GetUniformuiv({:?}, {:?}, {:p});",
19993 program,
19994 location,
19995 params
19996 );
19997 }
19998 let out = call_atomic_ptr_3arg(
19999 "glGetUniformuiv",
20000 &self.glGetUniformuiv_p,
20001 program,
20002 location,
20003 params,
20004 );
20005 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20006 {
20007 self.automatic_glGetError("glGetUniformuiv");
20008 }
20009 out
20010 }
20011 #[doc(hidden)]
20012 pub unsafe fn GetUniformuiv_load_with_dyn(
20013 &self,
20014 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20015 ) -> bool {
20016 load_dyn_name_atomic_ptr(
20017 get_proc_address,
20018 b"glGetUniformuiv\0",
20019 &self.glGetUniformuiv_p,
20020 )
20021 }
20022 #[inline]
20023 #[doc(hidden)]
20024 pub fn GetUniformuiv_is_loaded(&self) -> bool {
20025 !self.glGetUniformuiv_p.load(RELAX).is_null()
20026 }
20027 /// [glGetVertexArrayIndexed64iv](http://docs.gl/gl4/glGetVertexArrayIndexed6)(vaobj, index, pname, param)
20028 /// * `pname` group: VertexArrayPName
20029 #[cfg_attr(feature = "inline", inline)]
20030 #[cfg_attr(feature = "inline_always", inline(always))]
20031 pub unsafe fn GetVertexArrayIndexed64iv(
20032 &self,
20033 vaobj: GLuint,
20034 index: GLuint,
20035 pname: GLenum,
20036 param: *mut GLint64,
20037 ) {
20038 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20039 {
20040 trace!(
20041 "calling gl.GetVertexArrayIndexed64iv({:?}, {:?}, {:#X}, {:p});",
20042 vaobj,
20043 index,
20044 pname,
20045 param
20046 );
20047 }
20048 let out = call_atomic_ptr_4arg(
20049 "glGetVertexArrayIndexed64iv",
20050 &self.glGetVertexArrayIndexed64iv_p,
20051 vaobj,
20052 index,
20053 pname,
20054 param,
20055 );
20056 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20057 {
20058 self.automatic_glGetError("glGetVertexArrayIndexed64iv");
20059 }
20060 out
20061 }
20062 #[doc(hidden)]
20063 pub unsafe fn GetVertexArrayIndexed64iv_load_with_dyn(
20064 &self,
20065 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20066 ) -> bool {
20067 load_dyn_name_atomic_ptr(
20068 get_proc_address,
20069 b"glGetVertexArrayIndexed64iv\0",
20070 &self.glGetVertexArrayIndexed64iv_p,
20071 )
20072 }
20073 #[inline]
20074 #[doc(hidden)]
20075 pub fn GetVertexArrayIndexed64iv_is_loaded(&self) -> bool {
20076 !self.glGetVertexArrayIndexed64iv_p.load(RELAX).is_null()
20077 }
20078 /// [glGetVertexArrayIndexediv](http://docs.gl/gl4/glGetVertexArrayIndexed)(vaobj, index, pname, param)
20079 /// * `pname` group: VertexArrayPName
20080 #[cfg_attr(feature = "inline", inline)]
20081 #[cfg_attr(feature = "inline_always", inline(always))]
20082 pub unsafe fn GetVertexArrayIndexediv(
20083 &self,
20084 vaobj: GLuint,
20085 index: GLuint,
20086 pname: GLenum,
20087 param: *mut GLint,
20088 ) {
20089 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20090 {
20091 trace!(
20092 "calling gl.GetVertexArrayIndexediv({:?}, {:?}, {:#X}, {:p});",
20093 vaobj,
20094 index,
20095 pname,
20096 param
20097 );
20098 }
20099 let out = call_atomic_ptr_4arg(
20100 "glGetVertexArrayIndexediv",
20101 &self.glGetVertexArrayIndexediv_p,
20102 vaobj,
20103 index,
20104 pname,
20105 param,
20106 );
20107 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20108 {
20109 self.automatic_glGetError("glGetVertexArrayIndexediv");
20110 }
20111 out
20112 }
20113 #[doc(hidden)]
20114 pub unsafe fn GetVertexArrayIndexediv_load_with_dyn(
20115 &self,
20116 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20117 ) -> bool {
20118 load_dyn_name_atomic_ptr(
20119 get_proc_address,
20120 b"glGetVertexArrayIndexediv\0",
20121 &self.glGetVertexArrayIndexediv_p,
20122 )
20123 }
20124 #[inline]
20125 #[doc(hidden)]
20126 pub fn GetVertexArrayIndexediv_is_loaded(&self) -> bool {
20127 !self.glGetVertexArrayIndexediv_p.load(RELAX).is_null()
20128 }
20129 /// [glGetVertexArrayiv](http://docs.gl/gl4/glGetVertexArray)(vaobj, pname, param)
20130 /// * `pname` group: VertexArrayPName
20131 #[cfg_attr(feature = "inline", inline)]
20132 #[cfg_attr(feature = "inline_always", inline(always))]
20133 pub unsafe fn GetVertexArrayiv(&self, vaobj: GLuint, pname: GLenum, param: *mut GLint) {
20134 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20135 {
20136 trace!(
20137 "calling gl.GetVertexArrayiv({:?}, {:#X}, {:p});",
20138 vaobj,
20139 pname,
20140 param
20141 );
20142 }
20143 let out = call_atomic_ptr_3arg(
20144 "glGetVertexArrayiv",
20145 &self.glGetVertexArrayiv_p,
20146 vaobj,
20147 pname,
20148 param,
20149 );
20150 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20151 {
20152 self.automatic_glGetError("glGetVertexArrayiv");
20153 }
20154 out
20155 }
20156 #[doc(hidden)]
20157 pub unsafe fn GetVertexArrayiv_load_with_dyn(
20158 &self,
20159 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20160 ) -> bool {
20161 load_dyn_name_atomic_ptr(
20162 get_proc_address,
20163 b"glGetVertexArrayiv\0",
20164 &self.glGetVertexArrayiv_p,
20165 )
20166 }
20167 #[inline]
20168 #[doc(hidden)]
20169 pub fn GetVertexArrayiv_is_loaded(&self) -> bool {
20170 !self.glGetVertexArrayiv_p.load(RELAX).is_null()
20171 }
20172 /// [glGetVertexAttribIiv](http://docs.gl/gl4/glGetVertexAttrib)(index, pname, params)
20173 /// * `pname` group: VertexAttribEnum
20174 /// * `params` len: 1
20175 #[cfg_attr(feature = "inline", inline)]
20176 #[cfg_attr(feature = "inline_always", inline(always))]
20177 pub unsafe fn GetVertexAttribIiv(&self, index: GLuint, pname: GLenum, params: *mut GLint) {
20178 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20179 {
20180 trace!(
20181 "calling gl.GetVertexAttribIiv({:?}, {:#X}, {:p});",
20182 index,
20183 pname,
20184 params
20185 );
20186 }
20187 let out = call_atomic_ptr_3arg(
20188 "glGetVertexAttribIiv",
20189 &self.glGetVertexAttribIiv_p,
20190 index,
20191 pname,
20192 params,
20193 );
20194 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20195 {
20196 self.automatic_glGetError("glGetVertexAttribIiv");
20197 }
20198 out
20199 }
20200 #[doc(hidden)]
20201 pub unsafe fn GetVertexAttribIiv_load_with_dyn(
20202 &self,
20203 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20204 ) -> bool {
20205 load_dyn_name_atomic_ptr(
20206 get_proc_address,
20207 b"glGetVertexAttribIiv\0",
20208 &self.glGetVertexAttribIiv_p,
20209 )
20210 }
20211 #[inline]
20212 #[doc(hidden)]
20213 pub fn GetVertexAttribIiv_is_loaded(&self) -> bool {
20214 !self.glGetVertexAttribIiv_p.load(RELAX).is_null()
20215 }
20216 /// [glGetVertexAttribIuiv](http://docs.gl/gl4/glGetVertexAttrib)(index, pname, params)
20217 /// * `pname` group: VertexAttribEnum
20218 /// * `params` len: 1
20219 #[cfg_attr(feature = "inline", inline)]
20220 #[cfg_attr(feature = "inline_always", inline(always))]
20221 pub unsafe fn GetVertexAttribIuiv(
20222 &self,
20223 index: GLuint,
20224 pname: GLenum,
20225 params: *mut GLuint,
20226 ) {
20227 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20228 {
20229 trace!(
20230 "calling gl.GetVertexAttribIuiv({:?}, {:#X}, {:p});",
20231 index,
20232 pname,
20233 params
20234 );
20235 }
20236 let out = call_atomic_ptr_3arg(
20237 "glGetVertexAttribIuiv",
20238 &self.glGetVertexAttribIuiv_p,
20239 index,
20240 pname,
20241 params,
20242 );
20243 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20244 {
20245 self.automatic_glGetError("glGetVertexAttribIuiv");
20246 }
20247 out
20248 }
20249 #[doc(hidden)]
20250 pub unsafe fn GetVertexAttribIuiv_load_with_dyn(
20251 &self,
20252 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20253 ) -> bool {
20254 load_dyn_name_atomic_ptr(
20255 get_proc_address,
20256 b"glGetVertexAttribIuiv\0",
20257 &self.glGetVertexAttribIuiv_p,
20258 )
20259 }
20260 #[inline]
20261 #[doc(hidden)]
20262 pub fn GetVertexAttribIuiv_is_loaded(&self) -> bool {
20263 !self.glGetVertexAttribIuiv_p.load(RELAX).is_null()
20264 }
20265 /// [glGetVertexAttribLdv](http://docs.gl/gl4/glGetVertexAttribLdv)(index, pname, params)
20266 /// * `pname` group: VertexAttribEnum
20267 /// * `params` len: COMPSIZE(pname)
20268 #[cfg_attr(feature = "inline", inline)]
20269 #[cfg_attr(feature = "inline_always", inline(always))]
20270 pub unsafe fn GetVertexAttribLdv(
20271 &self,
20272 index: GLuint,
20273 pname: GLenum,
20274 params: *mut GLdouble,
20275 ) {
20276 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20277 {
20278 trace!(
20279 "calling gl.GetVertexAttribLdv({:?}, {:#X}, {:p});",
20280 index,
20281 pname,
20282 params
20283 );
20284 }
20285 let out = call_atomic_ptr_3arg(
20286 "glGetVertexAttribLdv",
20287 &self.glGetVertexAttribLdv_p,
20288 index,
20289 pname,
20290 params,
20291 );
20292 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20293 {
20294 self.automatic_glGetError("glGetVertexAttribLdv");
20295 }
20296 out
20297 }
20298 #[doc(hidden)]
20299 pub unsafe fn GetVertexAttribLdv_load_with_dyn(
20300 &self,
20301 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20302 ) -> bool {
20303 load_dyn_name_atomic_ptr(
20304 get_proc_address,
20305 b"glGetVertexAttribLdv\0",
20306 &self.glGetVertexAttribLdv_p,
20307 )
20308 }
20309 #[inline]
20310 #[doc(hidden)]
20311 pub fn GetVertexAttribLdv_is_loaded(&self) -> bool {
20312 !self.glGetVertexAttribLdv_p.load(RELAX).is_null()
20313 }
20314 /// [glGetVertexAttribPointerv](http://docs.gl/gl4/glGetVertexAttribPointerv)(index, pname, pointer)
20315 /// * `pname` group: VertexAttribPointerPropertyARB
20316 /// * `pointer` len: 1
20317 #[cfg_attr(feature = "inline", inline)]
20318 #[cfg_attr(feature = "inline_always", inline(always))]
20319 pub unsafe fn GetVertexAttribPointerv(
20320 &self,
20321 index: GLuint,
20322 pname: GLenum,
20323 pointer: *mut *mut c_void,
20324 ) {
20325 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20326 {
20327 trace!(
20328 "calling gl.GetVertexAttribPointerv({:?}, {:#X}, {:p});",
20329 index,
20330 pname,
20331 pointer
20332 );
20333 }
20334 let out = call_atomic_ptr_3arg(
20335 "glGetVertexAttribPointerv",
20336 &self.glGetVertexAttribPointerv_p,
20337 index,
20338 pname,
20339 pointer,
20340 );
20341 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20342 {
20343 self.automatic_glGetError("glGetVertexAttribPointerv");
20344 }
20345 out
20346 }
20347 #[doc(hidden)]
20348 pub unsafe fn GetVertexAttribPointerv_load_with_dyn(
20349 &self,
20350 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20351 ) -> bool {
20352 load_dyn_name_atomic_ptr(
20353 get_proc_address,
20354 b"glGetVertexAttribPointerv\0",
20355 &self.glGetVertexAttribPointerv_p,
20356 )
20357 }
20358 #[inline]
20359 #[doc(hidden)]
20360 pub fn GetVertexAttribPointerv_is_loaded(&self) -> bool {
20361 !self.glGetVertexAttribPointerv_p.load(RELAX).is_null()
20362 }
20363 /// [glGetVertexAttribdv](http://docs.gl/gl4/glGetVertexAttribdv)(index, pname, params)
20364 /// * `pname` group: VertexAttribPropertyARB
20365 /// * `params` len: 4
20366 #[cfg_attr(feature = "inline", inline)]
20367 #[cfg_attr(feature = "inline_always", inline(always))]
20368 pub unsafe fn GetVertexAttribdv(
20369 &self,
20370 index: GLuint,
20371 pname: GLenum,
20372 params: *mut GLdouble,
20373 ) {
20374 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20375 {
20376 trace!(
20377 "calling gl.GetVertexAttribdv({:?}, {:#X}, {:p});",
20378 index,
20379 pname,
20380 params
20381 );
20382 }
20383 let out = call_atomic_ptr_3arg(
20384 "glGetVertexAttribdv",
20385 &self.glGetVertexAttribdv_p,
20386 index,
20387 pname,
20388 params,
20389 );
20390 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20391 {
20392 self.automatic_glGetError("glGetVertexAttribdv");
20393 }
20394 out
20395 }
20396 #[doc(hidden)]
20397 pub unsafe fn GetVertexAttribdv_load_with_dyn(
20398 &self,
20399 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20400 ) -> bool {
20401 load_dyn_name_atomic_ptr(
20402 get_proc_address,
20403 b"glGetVertexAttribdv\0",
20404 &self.glGetVertexAttribdv_p,
20405 )
20406 }
20407 #[inline]
20408 #[doc(hidden)]
20409 pub fn GetVertexAttribdv_is_loaded(&self) -> bool {
20410 !self.glGetVertexAttribdv_p.load(RELAX).is_null()
20411 }
20412 /// [glGetVertexAttribfv](http://docs.gl/gl4/glGetVertexAttrib)(index, pname, params)
20413 /// * `pname` group: VertexAttribPropertyARB
20414 /// * `params` len: 4
20415 #[cfg_attr(feature = "inline", inline)]
20416 #[cfg_attr(feature = "inline_always", inline(always))]
20417 pub unsafe fn GetVertexAttribfv(&self, index: GLuint, pname: GLenum, params: *mut GLfloat) {
20418 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20419 {
20420 trace!(
20421 "calling gl.GetVertexAttribfv({:?}, {:#X}, {:p});",
20422 index,
20423 pname,
20424 params
20425 );
20426 }
20427 let out = call_atomic_ptr_3arg(
20428 "glGetVertexAttribfv",
20429 &self.glGetVertexAttribfv_p,
20430 index,
20431 pname,
20432 params,
20433 );
20434 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20435 {
20436 self.automatic_glGetError("glGetVertexAttribfv");
20437 }
20438 out
20439 }
20440 #[doc(hidden)]
20441 pub unsafe fn GetVertexAttribfv_load_with_dyn(
20442 &self,
20443 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20444 ) -> bool {
20445 load_dyn_name_atomic_ptr(
20446 get_proc_address,
20447 b"glGetVertexAttribfv\0",
20448 &self.glGetVertexAttribfv_p,
20449 )
20450 }
20451 #[inline]
20452 #[doc(hidden)]
20453 pub fn GetVertexAttribfv_is_loaded(&self) -> bool {
20454 !self.glGetVertexAttribfv_p.load(RELAX).is_null()
20455 }
20456 /// [glGetVertexAttribiv](http://docs.gl/gl4/glGetVertexAttrib)(index, pname, params)
20457 /// * `pname` group: VertexAttribPropertyARB
20458 /// * `params` len: 4
20459 #[cfg_attr(feature = "inline", inline)]
20460 #[cfg_attr(feature = "inline_always", inline(always))]
20461 pub unsafe fn GetVertexAttribiv(&self, index: GLuint, pname: GLenum, params: *mut GLint) {
20462 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20463 {
20464 trace!(
20465 "calling gl.GetVertexAttribiv({:?}, {:#X}, {:p});",
20466 index,
20467 pname,
20468 params
20469 );
20470 }
20471 let out = call_atomic_ptr_3arg(
20472 "glGetVertexAttribiv",
20473 &self.glGetVertexAttribiv_p,
20474 index,
20475 pname,
20476 params,
20477 );
20478 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20479 {
20480 self.automatic_glGetError("glGetVertexAttribiv");
20481 }
20482 out
20483 }
20484 #[doc(hidden)]
20485 pub unsafe fn GetVertexAttribiv_load_with_dyn(
20486 &self,
20487 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20488 ) -> bool {
20489 load_dyn_name_atomic_ptr(
20490 get_proc_address,
20491 b"glGetVertexAttribiv\0",
20492 &self.glGetVertexAttribiv_p,
20493 )
20494 }
20495 #[inline]
20496 #[doc(hidden)]
20497 pub fn GetVertexAttribiv_is_loaded(&self) -> bool {
20498 !self.glGetVertexAttribiv_p.load(RELAX).is_null()
20499 }
20500 /// [glGetnCompressedTexImage](http://docs.gl/gl4/glGetnCompressedTexImage)(target, lod, bufSize, pixels)
20501 /// * `target` group: TextureTarget
20502 #[cfg_attr(feature = "inline", inline)]
20503 #[cfg_attr(feature = "inline_always", inline(always))]
20504 pub unsafe fn GetnCompressedTexImage(
20505 &self,
20506 target: GLenum,
20507 lod: GLint,
20508 bufSize: GLsizei,
20509 pixels: *mut c_void,
20510 ) {
20511 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20512 {
20513 trace!(
20514 "calling gl.GetnCompressedTexImage({:#X}, {:?}, {:?}, {:p});",
20515 target,
20516 lod,
20517 bufSize,
20518 pixels
20519 );
20520 }
20521 let out = call_atomic_ptr_4arg(
20522 "glGetnCompressedTexImage",
20523 &self.glGetnCompressedTexImage_p,
20524 target,
20525 lod,
20526 bufSize,
20527 pixels,
20528 );
20529 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20530 {
20531 self.automatic_glGetError("glGetnCompressedTexImage");
20532 }
20533 out
20534 }
20535 #[doc(hidden)]
20536 pub unsafe fn GetnCompressedTexImage_load_with_dyn(
20537 &self,
20538 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20539 ) -> bool {
20540 load_dyn_name_atomic_ptr(
20541 get_proc_address,
20542 b"glGetnCompressedTexImage\0",
20543 &self.glGetnCompressedTexImage_p,
20544 )
20545 }
20546 #[inline]
20547 #[doc(hidden)]
20548 pub fn GetnCompressedTexImage_is_loaded(&self) -> bool {
20549 !self.glGetnCompressedTexImage_p.load(RELAX).is_null()
20550 }
20551 /// [glGetnTexImage](http://docs.gl/gl4/glGetnTexImage)(target, level, format, type_, bufSize, pixels)
20552 /// * `target` group: TextureTarget
20553 /// * `format` group: PixelFormat
20554 /// * `type_` group: PixelType
20555 /// * `pixels` len: bufSize
20556 #[cfg_attr(feature = "inline", inline)]
20557 #[cfg_attr(feature = "inline_always", inline(always))]
20558 pub unsafe fn GetnTexImage(
20559 &self,
20560 target: GLenum,
20561 level: GLint,
20562 format: GLenum,
20563 type_: GLenum,
20564 bufSize: GLsizei,
20565 pixels: *mut c_void,
20566 ) {
20567 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20568 {
20569 trace!(
20570 "calling gl.GetnTexImage({:#X}, {:?}, {:#X}, {:#X}, {:?}, {:p});",
20571 target,
20572 level,
20573 format,
20574 type_,
20575 bufSize,
20576 pixels
20577 );
20578 }
20579 let out = call_atomic_ptr_6arg(
20580 "glGetnTexImage",
20581 &self.glGetnTexImage_p,
20582 target,
20583 level,
20584 format,
20585 type_,
20586 bufSize,
20587 pixels,
20588 );
20589 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20590 {
20591 self.automatic_glGetError("glGetnTexImage");
20592 }
20593 out
20594 }
20595 #[doc(hidden)]
20596 pub unsafe fn GetnTexImage_load_with_dyn(
20597 &self,
20598 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20599 ) -> bool {
20600 load_dyn_name_atomic_ptr(
20601 get_proc_address,
20602 b"glGetnTexImage\0",
20603 &self.glGetnTexImage_p,
20604 )
20605 }
20606 #[inline]
20607 #[doc(hidden)]
20608 pub fn GetnTexImage_is_loaded(&self) -> bool {
20609 !self.glGetnTexImage_p.load(RELAX).is_null()
20610 }
20611 /// [glGetnUniformdv](http://docs.gl/gl4/glGetnUniformdv)(program, location, bufSize, params)
20612 /// * `params` len: bufSize
20613 #[cfg_attr(feature = "inline", inline)]
20614 #[cfg_attr(feature = "inline_always", inline(always))]
20615 pub unsafe fn GetnUniformdv(
20616 &self,
20617 program: GLuint,
20618 location: GLint,
20619 bufSize: GLsizei,
20620 params: *mut GLdouble,
20621 ) {
20622 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20623 {
20624 trace!(
20625 "calling gl.GetnUniformdv({:?}, {:?}, {:?}, {:p});",
20626 program,
20627 location,
20628 bufSize,
20629 params
20630 );
20631 }
20632 let out = call_atomic_ptr_4arg(
20633 "glGetnUniformdv",
20634 &self.glGetnUniformdv_p,
20635 program,
20636 location,
20637 bufSize,
20638 params,
20639 );
20640 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20641 {
20642 self.automatic_glGetError("glGetnUniformdv");
20643 }
20644 out
20645 }
20646 #[doc(hidden)]
20647 pub unsafe fn GetnUniformdv_load_with_dyn(
20648 &self,
20649 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20650 ) -> bool {
20651 load_dyn_name_atomic_ptr(
20652 get_proc_address,
20653 b"glGetnUniformdv\0",
20654 &self.glGetnUniformdv_p,
20655 )
20656 }
20657 #[inline]
20658 #[doc(hidden)]
20659 pub fn GetnUniformdv_is_loaded(&self) -> bool {
20660 !self.glGetnUniformdv_p.load(RELAX).is_null()
20661 }
20662 /// [glGetnUniformfv](http://docs.gl/gl4/glGetnUniform)(program, location, bufSize, params)
20663 /// * `params` len: bufSize
20664 #[cfg_attr(feature = "inline", inline)]
20665 #[cfg_attr(feature = "inline_always", inline(always))]
20666 pub unsafe fn GetnUniformfv(
20667 &self,
20668 program: GLuint,
20669 location: GLint,
20670 bufSize: GLsizei,
20671 params: *mut GLfloat,
20672 ) {
20673 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20674 {
20675 trace!(
20676 "calling gl.GetnUniformfv({:?}, {:?}, {:?}, {:p});",
20677 program,
20678 location,
20679 bufSize,
20680 params
20681 );
20682 }
20683 let out = call_atomic_ptr_4arg(
20684 "glGetnUniformfv",
20685 &self.glGetnUniformfv_p,
20686 program,
20687 location,
20688 bufSize,
20689 params,
20690 );
20691 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20692 {
20693 self.automatic_glGetError("glGetnUniformfv");
20694 }
20695 out
20696 }
20697 #[doc(hidden)]
20698 pub unsafe fn GetnUniformfv_load_with_dyn(
20699 &self,
20700 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20701 ) -> bool {
20702 load_dyn_name_atomic_ptr(
20703 get_proc_address,
20704 b"glGetnUniformfv\0",
20705 &self.glGetnUniformfv_p,
20706 )
20707 }
20708 #[inline]
20709 #[doc(hidden)]
20710 pub fn GetnUniformfv_is_loaded(&self) -> bool {
20711 !self.glGetnUniformfv_p.load(RELAX).is_null()
20712 }
20713 /// [glGetnUniformiv](http://docs.gl/gl4/glGetnUniform)(program, location, bufSize, params)
20714 /// * `params` len: bufSize
20715 #[cfg_attr(feature = "inline", inline)]
20716 #[cfg_attr(feature = "inline_always", inline(always))]
20717 pub unsafe fn GetnUniformiv(
20718 &self,
20719 program: GLuint,
20720 location: GLint,
20721 bufSize: GLsizei,
20722 params: *mut GLint,
20723 ) {
20724 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20725 {
20726 trace!(
20727 "calling gl.GetnUniformiv({:?}, {:?}, {:?}, {:p});",
20728 program,
20729 location,
20730 bufSize,
20731 params
20732 );
20733 }
20734 let out = call_atomic_ptr_4arg(
20735 "glGetnUniformiv",
20736 &self.glGetnUniformiv_p,
20737 program,
20738 location,
20739 bufSize,
20740 params,
20741 );
20742 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20743 {
20744 self.automatic_glGetError("glGetnUniformiv");
20745 }
20746 out
20747 }
20748 #[doc(hidden)]
20749 pub unsafe fn GetnUniformiv_load_with_dyn(
20750 &self,
20751 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20752 ) -> bool {
20753 load_dyn_name_atomic_ptr(
20754 get_proc_address,
20755 b"glGetnUniformiv\0",
20756 &self.glGetnUniformiv_p,
20757 )
20758 }
20759 #[inline]
20760 #[doc(hidden)]
20761 pub fn GetnUniformiv_is_loaded(&self) -> bool {
20762 !self.glGetnUniformiv_p.load(RELAX).is_null()
20763 }
20764 /// [glGetnUniformuiv](http://docs.gl/gl4/glGetnUniform)(program, location, bufSize, params)
20765 /// * `params` len: bufSize
20766 #[cfg_attr(feature = "inline", inline)]
20767 #[cfg_attr(feature = "inline_always", inline(always))]
20768 pub unsafe fn GetnUniformuiv(
20769 &self,
20770 program: GLuint,
20771 location: GLint,
20772 bufSize: GLsizei,
20773 params: *mut GLuint,
20774 ) {
20775 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20776 {
20777 trace!(
20778 "calling gl.GetnUniformuiv({:?}, {:?}, {:?}, {:p});",
20779 program,
20780 location,
20781 bufSize,
20782 params
20783 );
20784 }
20785 let out = call_atomic_ptr_4arg(
20786 "glGetnUniformuiv",
20787 &self.glGetnUniformuiv_p,
20788 program,
20789 location,
20790 bufSize,
20791 params,
20792 );
20793 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20794 {
20795 self.automatic_glGetError("glGetnUniformuiv");
20796 }
20797 out
20798 }
20799 #[doc(hidden)]
20800 pub unsafe fn GetnUniformuiv_load_with_dyn(
20801 &self,
20802 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20803 ) -> bool {
20804 load_dyn_name_atomic_ptr(
20805 get_proc_address,
20806 b"glGetnUniformuiv\0",
20807 &self.glGetnUniformuiv_p,
20808 )
20809 }
20810 #[inline]
20811 #[doc(hidden)]
20812 pub fn GetnUniformuiv_is_loaded(&self) -> bool {
20813 !self.glGetnUniformuiv_p.load(RELAX).is_null()
20814 }
20815 /// [glHint](http://docs.gl/gl4/glHint)(target, mode)
20816 /// * `target` group: HintTarget
20817 /// * `mode` group: HintMode
20818 #[cfg_attr(feature = "inline", inline)]
20819 #[cfg_attr(feature = "inline_always", inline(always))]
20820 pub unsafe fn Hint(&self, target: GLenum, mode: GLenum) {
20821 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20822 {
20823 trace!("calling gl.Hint({:#X}, {:#X});", target, mode);
20824 }
20825 let out = call_atomic_ptr_2arg("glHint", &self.glHint_p, target, mode);
20826 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20827 {
20828 self.automatic_glGetError("glHint");
20829 }
20830 out
20831 }
20832 #[doc(hidden)]
20833 pub unsafe fn Hint_load_with_dyn(
20834 &self,
20835 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20836 ) -> bool {
20837 load_dyn_name_atomic_ptr(get_proc_address, b"glHint\0", &self.glHint_p)
20838 }
20839 #[inline]
20840 #[doc(hidden)]
20841 pub fn Hint_is_loaded(&self) -> bool {
20842 !self.glHint_p.load(RELAX).is_null()
20843 }
20844 /// [glInvalidateBufferData](http://docs.gl/gl4/glInvalidateBufferData)(buffer)
20845 #[cfg_attr(feature = "inline", inline)]
20846 #[cfg_attr(feature = "inline_always", inline(always))]
20847 pub unsafe fn InvalidateBufferData(&self, buffer: GLuint) {
20848 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20849 {
20850 trace!("calling gl.InvalidateBufferData({:?});", buffer);
20851 }
20852 let out = call_atomic_ptr_1arg(
20853 "glInvalidateBufferData",
20854 &self.glInvalidateBufferData_p,
20855 buffer,
20856 );
20857 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20858 {
20859 self.automatic_glGetError("glInvalidateBufferData");
20860 }
20861 out
20862 }
20863 #[doc(hidden)]
20864 pub unsafe fn InvalidateBufferData_load_with_dyn(
20865 &self,
20866 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20867 ) -> bool {
20868 load_dyn_name_atomic_ptr(
20869 get_proc_address,
20870 b"glInvalidateBufferData\0",
20871 &self.glInvalidateBufferData_p,
20872 )
20873 }
20874 #[inline]
20875 #[doc(hidden)]
20876 pub fn InvalidateBufferData_is_loaded(&self) -> bool {
20877 !self.glInvalidateBufferData_p.load(RELAX).is_null()
20878 }
20879 /// [glInvalidateBufferSubData](http://docs.gl/gl4/glInvalidateBufferSubData)(buffer, offset, length)
20880 /// * `offset` group: BufferOffset
20881 /// * `length` group: BufferSize
20882 #[cfg_attr(feature = "inline", inline)]
20883 #[cfg_attr(feature = "inline_always", inline(always))]
20884 pub unsafe fn InvalidateBufferSubData(
20885 &self,
20886 buffer: GLuint,
20887 offset: GLintptr,
20888 length: GLsizeiptr,
20889 ) {
20890 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20891 {
20892 trace!(
20893 "calling gl.InvalidateBufferSubData({:?}, {:?}, {:?});",
20894 buffer,
20895 offset,
20896 length
20897 );
20898 }
20899 let out = call_atomic_ptr_3arg(
20900 "glInvalidateBufferSubData",
20901 &self.glInvalidateBufferSubData_p,
20902 buffer,
20903 offset,
20904 length,
20905 );
20906 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20907 {
20908 self.automatic_glGetError("glInvalidateBufferSubData");
20909 }
20910 out
20911 }
20912 #[doc(hidden)]
20913 pub unsafe fn InvalidateBufferSubData_load_with_dyn(
20914 &self,
20915 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20916 ) -> bool {
20917 load_dyn_name_atomic_ptr(
20918 get_proc_address,
20919 b"glInvalidateBufferSubData\0",
20920 &self.glInvalidateBufferSubData_p,
20921 )
20922 }
20923 #[inline]
20924 #[doc(hidden)]
20925 pub fn InvalidateBufferSubData_is_loaded(&self) -> bool {
20926 !self.glInvalidateBufferSubData_p.load(RELAX).is_null()
20927 }
20928 /// [glInvalidateFramebuffer](http://docs.gl/gl4/glInvalidateFramebuffer)(target, numAttachments, attachments)
20929 /// * `target` group: FramebufferTarget
20930 /// * `attachments` group: InvalidateFramebufferAttachment
20931 /// * `attachments` len: numAttachments
20932 #[cfg_attr(feature = "inline", inline)]
20933 #[cfg_attr(feature = "inline_always", inline(always))]
20934 pub unsafe fn InvalidateFramebuffer(
20935 &self,
20936 target: GLenum,
20937 numAttachments: GLsizei,
20938 attachments: *const GLenum,
20939 ) {
20940 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20941 {
20942 trace!(
20943 "calling gl.InvalidateFramebuffer({:#X}, {:?}, {:p});",
20944 target,
20945 numAttachments,
20946 attachments
20947 );
20948 }
20949 let out = call_atomic_ptr_3arg(
20950 "glInvalidateFramebuffer",
20951 &self.glInvalidateFramebuffer_p,
20952 target,
20953 numAttachments,
20954 attachments,
20955 );
20956 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20957 {
20958 self.automatic_glGetError("glInvalidateFramebuffer");
20959 }
20960 out
20961 }
20962 #[doc(hidden)]
20963 pub unsafe fn InvalidateFramebuffer_load_with_dyn(
20964 &self,
20965 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20966 ) -> bool {
20967 load_dyn_name_atomic_ptr(
20968 get_proc_address,
20969 b"glInvalidateFramebuffer\0",
20970 &self.glInvalidateFramebuffer_p,
20971 )
20972 }
20973 #[inline]
20974 #[doc(hidden)]
20975 pub fn InvalidateFramebuffer_is_loaded(&self) -> bool {
20976 !self.glInvalidateFramebuffer_p.load(RELAX).is_null()
20977 }
20978 /// [glInvalidateNamedFramebufferData](http://docs.gl/gl4/glInvalidateNamedFramebufferData)(framebuffer, numAttachments, attachments)
20979 /// * `attachments` group: FramebufferAttachment
20980 #[cfg_attr(feature = "inline", inline)]
20981 #[cfg_attr(feature = "inline_always", inline(always))]
20982 pub unsafe fn InvalidateNamedFramebufferData(
20983 &self,
20984 framebuffer: GLuint,
20985 numAttachments: GLsizei,
20986 attachments: *const GLenum,
20987 ) {
20988 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20989 {
20990 trace!(
20991 "calling gl.InvalidateNamedFramebufferData({:?}, {:?}, {:p});",
20992 framebuffer,
20993 numAttachments,
20994 attachments
20995 );
20996 }
20997 let out = call_atomic_ptr_3arg(
20998 "glInvalidateNamedFramebufferData",
20999 &self.glInvalidateNamedFramebufferData_p,
21000 framebuffer,
21001 numAttachments,
21002 attachments,
21003 );
21004 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21005 {
21006 self.automatic_glGetError("glInvalidateNamedFramebufferData");
21007 }
21008 out
21009 }
21010 #[doc(hidden)]
21011 pub unsafe fn InvalidateNamedFramebufferData_load_with_dyn(
21012 &self,
21013 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21014 ) -> bool {
21015 load_dyn_name_atomic_ptr(
21016 get_proc_address,
21017 b"glInvalidateNamedFramebufferData\0",
21018 &self.glInvalidateNamedFramebufferData_p,
21019 )
21020 }
21021 #[inline]
21022 #[doc(hidden)]
21023 pub fn InvalidateNamedFramebufferData_is_loaded(&self) -> bool {
21024 !self
21025 .glInvalidateNamedFramebufferData_p
21026 .load(RELAX)
21027 .is_null()
21028 }
21029 /// [glInvalidateNamedFramebufferSubData](http://docs.gl/gl4/glInvalidateNamedFramebufferSubData)(framebuffer, numAttachments, attachments, x, y, width, height)
21030 /// * `attachments` group: FramebufferAttachment
21031 #[cfg_attr(feature = "inline", inline)]
21032 #[cfg_attr(feature = "inline_always", inline(always))]
21033 pub unsafe fn InvalidateNamedFramebufferSubData(
21034 &self,
21035 framebuffer: GLuint,
21036 numAttachments: GLsizei,
21037 attachments: *const GLenum,
21038 x: GLint,
21039 y: GLint,
21040 width: GLsizei,
21041 height: GLsizei,
21042 ) {
21043 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21044 {
21045 trace!("calling gl.InvalidateNamedFramebufferSubData({:?}, {:?}, {:p}, {:?}, {:?}, {:?}, {:?});", framebuffer, numAttachments, attachments, x, y, width, height);
21046 }
21047 let out = call_atomic_ptr_7arg(
21048 "glInvalidateNamedFramebufferSubData",
21049 &self.glInvalidateNamedFramebufferSubData_p,
21050 framebuffer,
21051 numAttachments,
21052 attachments,
21053 x,
21054 y,
21055 width,
21056 height,
21057 );
21058 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21059 {
21060 self.automatic_glGetError("glInvalidateNamedFramebufferSubData");
21061 }
21062 out
21063 }
21064 #[doc(hidden)]
21065 pub unsafe fn InvalidateNamedFramebufferSubData_load_with_dyn(
21066 &self,
21067 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21068 ) -> bool {
21069 load_dyn_name_atomic_ptr(
21070 get_proc_address,
21071 b"glInvalidateNamedFramebufferSubData\0",
21072 &self.glInvalidateNamedFramebufferSubData_p,
21073 )
21074 }
21075 #[inline]
21076 #[doc(hidden)]
21077 pub fn InvalidateNamedFramebufferSubData_is_loaded(&self) -> bool {
21078 !self
21079 .glInvalidateNamedFramebufferSubData_p
21080 .load(RELAX)
21081 .is_null()
21082 }
21083 /// [glInvalidateSubFramebuffer](http://docs.gl/gl4/glInvalidateSubFramebuffer)(target, numAttachments, attachments, x, y, width, height)
21084 /// * `target` group: FramebufferTarget
21085 /// * `attachments` group: InvalidateFramebufferAttachment
21086 /// * `attachments` len: numAttachments
21087 #[cfg_attr(feature = "inline", inline)]
21088 #[cfg_attr(feature = "inline_always", inline(always))]
21089 pub unsafe fn InvalidateSubFramebuffer(
21090 &self,
21091 target: GLenum,
21092 numAttachments: GLsizei,
21093 attachments: *const GLenum,
21094 x: GLint,
21095 y: GLint,
21096 width: GLsizei,
21097 height: GLsizei,
21098 ) {
21099 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21100 {
21101 trace!("calling gl.InvalidateSubFramebuffer({:#X}, {:?}, {:p}, {:?}, {:?}, {:?}, {:?});", target, numAttachments, attachments, x, y, width, height);
21102 }
21103 let out = call_atomic_ptr_7arg(
21104 "glInvalidateSubFramebuffer",
21105 &self.glInvalidateSubFramebuffer_p,
21106 target,
21107 numAttachments,
21108 attachments,
21109 x,
21110 y,
21111 width,
21112 height,
21113 );
21114 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21115 {
21116 self.automatic_glGetError("glInvalidateSubFramebuffer");
21117 }
21118 out
21119 }
21120 #[doc(hidden)]
21121 pub unsafe fn InvalidateSubFramebuffer_load_with_dyn(
21122 &self,
21123 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21124 ) -> bool {
21125 load_dyn_name_atomic_ptr(
21126 get_proc_address,
21127 b"glInvalidateSubFramebuffer\0",
21128 &self.glInvalidateSubFramebuffer_p,
21129 )
21130 }
21131 #[inline]
21132 #[doc(hidden)]
21133 pub fn InvalidateSubFramebuffer_is_loaded(&self) -> bool {
21134 !self.glInvalidateSubFramebuffer_p.load(RELAX).is_null()
21135 }
21136 /// [glInvalidateTexImage](http://docs.gl/gl4/glInvalidateTexImage)(texture, level)
21137 #[cfg_attr(feature = "inline", inline)]
21138 #[cfg_attr(feature = "inline_always", inline(always))]
21139 pub unsafe fn InvalidateTexImage(&self, texture: GLuint, level: GLint) {
21140 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21141 {
21142 trace!("calling gl.InvalidateTexImage({:?}, {:?});", texture, level);
21143 }
21144 let out = call_atomic_ptr_2arg(
21145 "glInvalidateTexImage",
21146 &self.glInvalidateTexImage_p,
21147 texture,
21148 level,
21149 );
21150 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21151 {
21152 self.automatic_glGetError("glInvalidateTexImage");
21153 }
21154 out
21155 }
21156 #[doc(hidden)]
21157 pub unsafe fn InvalidateTexImage_load_with_dyn(
21158 &self,
21159 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21160 ) -> bool {
21161 load_dyn_name_atomic_ptr(
21162 get_proc_address,
21163 b"glInvalidateTexImage\0",
21164 &self.glInvalidateTexImage_p,
21165 )
21166 }
21167 #[inline]
21168 #[doc(hidden)]
21169 pub fn InvalidateTexImage_is_loaded(&self) -> bool {
21170 !self.glInvalidateTexImage_p.load(RELAX).is_null()
21171 }
21172 /// [glInvalidateTexSubImage](http://docs.gl/gl4/glInvalidateTexSubImage)(texture, level, xoffset, yoffset, zoffset, width, height, depth)
21173 #[cfg_attr(feature = "inline", inline)]
21174 #[cfg_attr(feature = "inline_always", inline(always))]
21175 pub unsafe fn InvalidateTexSubImage(
21176 &self,
21177 texture: GLuint,
21178 level: GLint,
21179 xoffset: GLint,
21180 yoffset: GLint,
21181 zoffset: GLint,
21182 width: GLsizei,
21183 height: GLsizei,
21184 depth: GLsizei,
21185 ) {
21186 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21187 {
21188 trace!("calling gl.InvalidateTexSubImage({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", texture, level, xoffset, yoffset, zoffset, width, height, depth);
21189 }
21190 let out = call_atomic_ptr_8arg(
21191 "glInvalidateTexSubImage",
21192 &self.glInvalidateTexSubImage_p,
21193 texture,
21194 level,
21195 xoffset,
21196 yoffset,
21197 zoffset,
21198 width,
21199 height,
21200 depth,
21201 );
21202 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21203 {
21204 self.automatic_glGetError("glInvalidateTexSubImage");
21205 }
21206 out
21207 }
21208 #[doc(hidden)]
21209 pub unsafe fn InvalidateTexSubImage_load_with_dyn(
21210 &self,
21211 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21212 ) -> bool {
21213 load_dyn_name_atomic_ptr(
21214 get_proc_address,
21215 b"glInvalidateTexSubImage\0",
21216 &self.glInvalidateTexSubImage_p,
21217 )
21218 }
21219 #[inline]
21220 #[doc(hidden)]
21221 pub fn InvalidateTexSubImage_is_loaded(&self) -> bool {
21222 !self.glInvalidateTexSubImage_p.load(RELAX).is_null()
21223 }
21224 /// [glIsBuffer](http://docs.gl/gl4/glIsBuffer)(buffer)
21225 #[cfg_attr(feature = "inline", inline)]
21226 #[cfg_attr(feature = "inline_always", inline(always))]
21227 pub unsafe fn IsBuffer(&self, buffer: GLuint) -> GLboolean {
21228 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21229 {
21230 trace!("calling gl.IsBuffer({:?});", buffer);
21231 }
21232 let out = call_atomic_ptr_1arg("glIsBuffer", &self.glIsBuffer_p, buffer);
21233 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21234 {
21235 self.automatic_glGetError("glIsBuffer");
21236 }
21237 out
21238 }
21239 #[doc(hidden)]
21240 pub unsafe fn IsBuffer_load_with_dyn(
21241 &self,
21242 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21243 ) -> bool {
21244 load_dyn_name_atomic_ptr(get_proc_address, b"glIsBuffer\0", &self.glIsBuffer_p)
21245 }
21246 #[inline]
21247 #[doc(hidden)]
21248 pub fn IsBuffer_is_loaded(&self) -> bool {
21249 !self.glIsBuffer_p.load(RELAX).is_null()
21250 }
21251 /// [glIsEnabled](http://docs.gl/gl4/glIsEnabled)(cap)
21252 /// * `cap` group: EnableCap
21253 #[cfg_attr(feature = "inline", inline)]
21254 #[cfg_attr(feature = "inline_always", inline(always))]
21255 pub unsafe fn IsEnabled(&self, cap: GLenum) -> GLboolean {
21256 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21257 {
21258 trace!("calling gl.IsEnabled({:#X});", cap);
21259 }
21260 let out = call_atomic_ptr_1arg("glIsEnabled", &self.glIsEnabled_p, cap);
21261 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21262 {
21263 self.automatic_glGetError("glIsEnabled");
21264 }
21265 out
21266 }
21267 #[doc(hidden)]
21268 pub unsafe fn IsEnabled_load_with_dyn(
21269 &self,
21270 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21271 ) -> bool {
21272 load_dyn_name_atomic_ptr(get_proc_address, b"glIsEnabled\0", &self.glIsEnabled_p)
21273 }
21274 #[inline]
21275 #[doc(hidden)]
21276 pub fn IsEnabled_is_loaded(&self) -> bool {
21277 !self.glIsEnabled_p.load(RELAX).is_null()
21278 }
21279 /// [glIsEnabledIndexedEXT](http://docs.gl/gl4/glIsEnabledIndexedEXT)(target, index)
21280 /// * `target` group: EnableCap
21281 /// * alias of: [`glIsEnabledi`]
21282 #[cfg_attr(feature = "inline", inline)]
21283 #[cfg_attr(feature = "inline_always", inline(always))]
21284 pub unsafe fn IsEnabledIndexedEXT(&self, target: GLenum, index: GLuint) -> GLboolean {
21285 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21286 {
21287 trace!(
21288 "calling gl.IsEnabledIndexedEXT({:#X}, {:?});",
21289 target,
21290 index
21291 );
21292 }
21293 let out = call_atomic_ptr_2arg(
21294 "glIsEnabledIndexedEXT",
21295 &self.glIsEnabledIndexedEXT_p,
21296 target,
21297 index,
21298 );
21299 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21300 {
21301 self.automatic_glGetError("glIsEnabledIndexedEXT");
21302 }
21303 out
21304 }
21305
21306 #[doc(hidden)]
21307 pub unsafe fn IsEnabledIndexedEXT_load_with_dyn(
21308 &self,
21309 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21310 ) -> bool {
21311 load_dyn_name_atomic_ptr(
21312 get_proc_address,
21313 b"glIsEnabledIndexedEXT\0",
21314 &self.glIsEnabledIndexedEXT_p,
21315 )
21316 }
21317 #[inline]
21318 #[doc(hidden)]
21319
21320 pub fn IsEnabledIndexedEXT_is_loaded(&self) -> bool {
21321 !self.glIsEnabledIndexedEXT_p.load(RELAX).is_null()
21322 }
21323 /// [glIsEnabledi](http://docs.gl/gl4/glIsEnabled)(target, index)
21324 /// * `target` group: EnableCap
21325 #[cfg_attr(feature = "inline", inline)]
21326 #[cfg_attr(feature = "inline_always", inline(always))]
21327 pub unsafe fn IsEnabledi(&self, target: GLenum, index: GLuint) -> GLboolean {
21328 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21329 {
21330 trace!("calling gl.IsEnabledi({:#X}, {:?});", target, index);
21331 }
21332 let out = call_atomic_ptr_2arg("glIsEnabledi", &self.glIsEnabledi_p, target, index);
21333 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21334 {
21335 self.automatic_glGetError("glIsEnabledi");
21336 }
21337 out
21338 }
21339 #[doc(hidden)]
21340 pub unsafe fn IsEnabledi_load_with_dyn(
21341 &self,
21342 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21343 ) -> bool {
21344 load_dyn_name_atomic_ptr(get_proc_address, b"glIsEnabledi\0", &self.glIsEnabledi_p)
21345 }
21346 #[inline]
21347 #[doc(hidden)]
21348 pub fn IsEnabledi_is_loaded(&self) -> bool {
21349 !self.glIsEnabledi_p.load(RELAX).is_null()
21350 }
21351 /// [glIsFramebuffer](http://docs.gl/gl4/glIsFramebuffer)(framebuffer)
21352 #[cfg_attr(feature = "inline", inline)]
21353 #[cfg_attr(feature = "inline_always", inline(always))]
21354 pub unsafe fn IsFramebuffer(&self, framebuffer: GLuint) -> GLboolean {
21355 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21356 {
21357 trace!("calling gl.IsFramebuffer({:?});", framebuffer);
21358 }
21359 let out = call_atomic_ptr_1arg("glIsFramebuffer", &self.glIsFramebuffer_p, framebuffer);
21360 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21361 {
21362 self.automatic_glGetError("glIsFramebuffer");
21363 }
21364 out
21365 }
21366 #[doc(hidden)]
21367 pub unsafe fn IsFramebuffer_load_with_dyn(
21368 &self,
21369 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21370 ) -> bool {
21371 load_dyn_name_atomic_ptr(
21372 get_proc_address,
21373 b"glIsFramebuffer\0",
21374 &self.glIsFramebuffer_p,
21375 )
21376 }
21377 #[inline]
21378 #[doc(hidden)]
21379 pub fn IsFramebuffer_is_loaded(&self) -> bool {
21380 !self.glIsFramebuffer_p.load(RELAX).is_null()
21381 }
21382 /// [glIsProgram](http://docs.gl/gl4/glIsProgram)(program)
21383 #[cfg_attr(feature = "inline", inline)]
21384 #[cfg_attr(feature = "inline_always", inline(always))]
21385 pub unsafe fn IsProgram(&self, program: GLuint) -> GLboolean {
21386 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21387 {
21388 trace!("calling gl.IsProgram({:?});", program);
21389 }
21390 let out = call_atomic_ptr_1arg("glIsProgram", &self.glIsProgram_p, program);
21391 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21392 {
21393 self.automatic_glGetError("glIsProgram");
21394 }
21395 out
21396 }
21397 #[doc(hidden)]
21398 pub unsafe fn IsProgram_load_with_dyn(
21399 &self,
21400 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21401 ) -> bool {
21402 load_dyn_name_atomic_ptr(get_proc_address, b"glIsProgram\0", &self.glIsProgram_p)
21403 }
21404 #[inline]
21405 #[doc(hidden)]
21406 pub fn IsProgram_is_loaded(&self) -> bool {
21407 !self.glIsProgram_p.load(RELAX).is_null()
21408 }
21409 /// [glIsProgramPipeline](http://docs.gl/gl4/glIsProgramPipeline)(pipeline)
21410 #[cfg_attr(feature = "inline", inline)]
21411 #[cfg_attr(feature = "inline_always", inline(always))]
21412 pub unsafe fn IsProgramPipeline(&self, pipeline: GLuint) -> GLboolean {
21413 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21414 {
21415 trace!("calling gl.IsProgramPipeline({:?});", pipeline);
21416 }
21417 let out =
21418 call_atomic_ptr_1arg("glIsProgramPipeline", &self.glIsProgramPipeline_p, pipeline);
21419 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21420 {
21421 self.automatic_glGetError("glIsProgramPipeline");
21422 }
21423 out
21424 }
21425 #[doc(hidden)]
21426 pub unsafe fn IsProgramPipeline_load_with_dyn(
21427 &self,
21428 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21429 ) -> bool {
21430 load_dyn_name_atomic_ptr(
21431 get_proc_address,
21432 b"glIsProgramPipeline\0",
21433 &self.glIsProgramPipeline_p,
21434 )
21435 }
21436 #[inline]
21437 #[doc(hidden)]
21438 pub fn IsProgramPipeline_is_loaded(&self) -> bool {
21439 !self.glIsProgramPipeline_p.load(RELAX).is_null()
21440 }
21441 /// [glIsQuery](http://docs.gl/gl4/glIsQuery)(id)
21442 #[cfg_attr(feature = "inline", inline)]
21443 #[cfg_attr(feature = "inline_always", inline(always))]
21444 pub unsafe fn IsQuery(&self, id: GLuint) -> GLboolean {
21445 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21446 {
21447 trace!("calling gl.IsQuery({:?});", id);
21448 }
21449 let out = call_atomic_ptr_1arg("glIsQuery", &self.glIsQuery_p, id);
21450 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21451 {
21452 self.automatic_glGetError("glIsQuery");
21453 }
21454 out
21455 }
21456 #[doc(hidden)]
21457 pub unsafe fn IsQuery_load_with_dyn(
21458 &self,
21459 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21460 ) -> bool {
21461 load_dyn_name_atomic_ptr(get_proc_address, b"glIsQuery\0", &self.glIsQuery_p)
21462 }
21463 #[inline]
21464 #[doc(hidden)]
21465 pub fn IsQuery_is_loaded(&self) -> bool {
21466 !self.glIsQuery_p.load(RELAX).is_null()
21467 }
21468 /// [glIsRenderbuffer](http://docs.gl/gl4/glIsRenderbuffer)(renderbuffer)
21469 #[cfg_attr(feature = "inline", inline)]
21470 #[cfg_attr(feature = "inline_always", inline(always))]
21471 pub unsafe fn IsRenderbuffer(&self, renderbuffer: GLuint) -> GLboolean {
21472 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21473 {
21474 trace!("calling gl.IsRenderbuffer({:?});", renderbuffer);
21475 }
21476 let out =
21477 call_atomic_ptr_1arg("glIsRenderbuffer", &self.glIsRenderbuffer_p, renderbuffer);
21478 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21479 {
21480 self.automatic_glGetError("glIsRenderbuffer");
21481 }
21482 out
21483 }
21484 #[doc(hidden)]
21485 pub unsafe fn IsRenderbuffer_load_with_dyn(
21486 &self,
21487 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21488 ) -> bool {
21489 load_dyn_name_atomic_ptr(
21490 get_proc_address,
21491 b"glIsRenderbuffer\0",
21492 &self.glIsRenderbuffer_p,
21493 )
21494 }
21495 #[inline]
21496 #[doc(hidden)]
21497 pub fn IsRenderbuffer_is_loaded(&self) -> bool {
21498 !self.glIsRenderbuffer_p.load(RELAX).is_null()
21499 }
21500 /// [glIsSampler](http://docs.gl/gl4/glIsSampler)(sampler)
21501 #[cfg_attr(feature = "inline", inline)]
21502 #[cfg_attr(feature = "inline_always", inline(always))]
21503 pub unsafe fn IsSampler(&self, sampler: GLuint) -> GLboolean {
21504 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21505 {
21506 trace!("calling gl.IsSampler({:?});", sampler);
21507 }
21508 let out = call_atomic_ptr_1arg("glIsSampler", &self.glIsSampler_p, sampler);
21509 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21510 {
21511 self.automatic_glGetError("glIsSampler");
21512 }
21513 out
21514 }
21515 #[doc(hidden)]
21516 pub unsafe fn IsSampler_load_with_dyn(
21517 &self,
21518 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21519 ) -> bool {
21520 load_dyn_name_atomic_ptr(get_proc_address, b"glIsSampler\0", &self.glIsSampler_p)
21521 }
21522 #[inline]
21523 #[doc(hidden)]
21524 pub fn IsSampler_is_loaded(&self) -> bool {
21525 !self.glIsSampler_p.load(RELAX).is_null()
21526 }
21527 /// [glIsShader](http://docs.gl/gl4/glIsShader)(shader)
21528 #[cfg_attr(feature = "inline", inline)]
21529 #[cfg_attr(feature = "inline_always", inline(always))]
21530 pub unsafe fn IsShader(&self, shader: GLuint) -> GLboolean {
21531 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21532 {
21533 trace!("calling gl.IsShader({:?});", shader);
21534 }
21535 let out = call_atomic_ptr_1arg("glIsShader", &self.glIsShader_p, shader);
21536 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21537 {
21538 self.automatic_glGetError("glIsShader");
21539 }
21540 out
21541 }
21542 #[doc(hidden)]
21543 pub unsafe fn IsShader_load_with_dyn(
21544 &self,
21545 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21546 ) -> bool {
21547 load_dyn_name_atomic_ptr(get_proc_address, b"glIsShader\0", &self.glIsShader_p)
21548 }
21549 #[inline]
21550 #[doc(hidden)]
21551 pub fn IsShader_is_loaded(&self) -> bool {
21552 !self.glIsShader_p.load(RELAX).is_null()
21553 }
21554 /// [glIsSync](http://docs.gl/gl4/glIsSync)(sync)
21555 /// * `sync` group: sync
21556 #[cfg_attr(feature = "inline", inline)]
21557 #[cfg_attr(feature = "inline_always", inline(always))]
21558 pub unsafe fn IsSync(&self, sync: GLsync) -> GLboolean {
21559 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21560 {
21561 trace!("calling gl.IsSync({:p});", sync);
21562 }
21563 let out = call_atomic_ptr_1arg("glIsSync", &self.glIsSync_p, sync);
21564 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21565 {
21566 self.automatic_glGetError("glIsSync");
21567 }
21568 out
21569 }
21570 #[doc(hidden)]
21571 pub unsafe fn IsSync_load_with_dyn(
21572 &self,
21573 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21574 ) -> bool {
21575 load_dyn_name_atomic_ptr(get_proc_address, b"glIsSync\0", &self.glIsSync_p)
21576 }
21577 #[inline]
21578 #[doc(hidden)]
21579 pub fn IsSync_is_loaded(&self) -> bool {
21580 !self.glIsSync_p.load(RELAX).is_null()
21581 }
21582 /// [glIsTexture](http://docs.gl/gl4/glIsTexture)(texture)
21583 /// * `texture` group: Texture
21584 #[cfg_attr(feature = "inline", inline)]
21585 #[cfg_attr(feature = "inline_always", inline(always))]
21586 pub unsafe fn IsTexture(&self, texture: GLuint) -> GLboolean {
21587 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21588 {
21589 trace!("calling gl.IsTexture({:?});", texture);
21590 }
21591 let out = call_atomic_ptr_1arg("glIsTexture", &self.glIsTexture_p, texture);
21592 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21593 {
21594 self.automatic_glGetError("glIsTexture");
21595 }
21596 out
21597 }
21598 #[doc(hidden)]
21599 pub unsafe fn IsTexture_load_with_dyn(
21600 &self,
21601 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21602 ) -> bool {
21603 load_dyn_name_atomic_ptr(get_proc_address, b"glIsTexture\0", &self.glIsTexture_p)
21604 }
21605 #[inline]
21606 #[doc(hidden)]
21607 pub fn IsTexture_is_loaded(&self) -> bool {
21608 !self.glIsTexture_p.load(RELAX).is_null()
21609 }
21610 /// [glIsTransformFeedback](http://docs.gl/gl4/glIsTransformFeedback)(id)
21611 #[cfg_attr(feature = "inline", inline)]
21612 #[cfg_attr(feature = "inline_always", inline(always))]
21613 pub unsafe fn IsTransformFeedback(&self, id: GLuint) -> GLboolean {
21614 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21615 {
21616 trace!("calling gl.IsTransformFeedback({:?});", id);
21617 }
21618 let out =
21619 call_atomic_ptr_1arg("glIsTransformFeedback", &self.glIsTransformFeedback_p, id);
21620 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21621 {
21622 self.automatic_glGetError("glIsTransformFeedback");
21623 }
21624 out
21625 }
21626 #[doc(hidden)]
21627 pub unsafe fn IsTransformFeedback_load_with_dyn(
21628 &self,
21629 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21630 ) -> bool {
21631 load_dyn_name_atomic_ptr(
21632 get_proc_address,
21633 b"glIsTransformFeedback\0",
21634 &self.glIsTransformFeedback_p,
21635 )
21636 }
21637 #[inline]
21638 #[doc(hidden)]
21639 pub fn IsTransformFeedback_is_loaded(&self) -> bool {
21640 !self.glIsTransformFeedback_p.load(RELAX).is_null()
21641 }
21642 /// [glIsVertexArray](http://docs.gl/gl4/glIsVertexArray)(array)
21643 #[cfg_attr(feature = "inline", inline)]
21644 #[cfg_attr(feature = "inline_always", inline(always))]
21645 pub unsafe fn IsVertexArray(&self, array: GLuint) -> GLboolean {
21646 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21647 {
21648 trace!("calling gl.IsVertexArray({:?});", array);
21649 }
21650 let out = call_atomic_ptr_1arg("glIsVertexArray", &self.glIsVertexArray_p, array);
21651 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21652 {
21653 self.automatic_glGetError("glIsVertexArray");
21654 }
21655 out
21656 }
21657 #[doc(hidden)]
21658 pub unsafe fn IsVertexArray_load_with_dyn(
21659 &self,
21660 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21661 ) -> bool {
21662 load_dyn_name_atomic_ptr(
21663 get_proc_address,
21664 b"glIsVertexArray\0",
21665 &self.glIsVertexArray_p,
21666 )
21667 }
21668 #[inline]
21669 #[doc(hidden)]
21670 pub fn IsVertexArray_is_loaded(&self) -> bool {
21671 !self.glIsVertexArray_p.load(RELAX).is_null()
21672 }
21673 /// [glLineWidth](http://docs.gl/gl4/glLineWidth)(width)
21674 /// * `width` group: CheckedFloat32
21675 #[cfg_attr(feature = "inline", inline)]
21676 #[cfg_attr(feature = "inline_always", inline(always))]
21677 pub unsafe fn LineWidth(&self, width: GLfloat) {
21678 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21679 {
21680 trace!("calling gl.LineWidth({:?});", width);
21681 }
21682 let out = call_atomic_ptr_1arg("glLineWidth", &self.glLineWidth_p, width);
21683 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21684 {
21685 self.automatic_glGetError("glLineWidth");
21686 }
21687 out
21688 }
21689 #[doc(hidden)]
21690 pub unsafe fn LineWidth_load_with_dyn(
21691 &self,
21692 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21693 ) -> bool {
21694 load_dyn_name_atomic_ptr(get_proc_address, b"glLineWidth\0", &self.glLineWidth_p)
21695 }
21696 #[inline]
21697 #[doc(hidden)]
21698 pub fn LineWidth_is_loaded(&self) -> bool {
21699 !self.glLineWidth_p.load(RELAX).is_null()
21700 }
21701 /// [glLinkProgram](http://docs.gl/gl4/glLinkProgram)(program)
21702 #[cfg_attr(feature = "inline", inline)]
21703 #[cfg_attr(feature = "inline_always", inline(always))]
21704 pub unsafe fn LinkProgram(&self, program: GLuint) {
21705 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21706 {
21707 trace!("calling gl.LinkProgram({:?});", program);
21708 }
21709 let out = call_atomic_ptr_1arg("glLinkProgram", &self.glLinkProgram_p, program);
21710 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21711 {
21712 self.automatic_glGetError("glLinkProgram");
21713 }
21714 out
21715 }
21716 #[doc(hidden)]
21717 pub unsafe fn LinkProgram_load_with_dyn(
21718 &self,
21719 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21720 ) -> bool {
21721 load_dyn_name_atomic_ptr(get_proc_address, b"glLinkProgram\0", &self.glLinkProgram_p)
21722 }
21723 #[inline]
21724 #[doc(hidden)]
21725 pub fn LinkProgram_is_loaded(&self) -> bool {
21726 !self.glLinkProgram_p.load(RELAX).is_null()
21727 }
21728 /// [glLogicOp](http://docs.gl/gl4/glLogicOp)(opcode)
21729 /// * `opcode` group: LogicOp
21730 #[cfg_attr(feature = "inline", inline)]
21731 #[cfg_attr(feature = "inline_always", inline(always))]
21732 pub unsafe fn LogicOp(&self, opcode: GLenum) {
21733 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21734 {
21735 trace!("calling gl.LogicOp({:#X});", opcode);
21736 }
21737 let out = call_atomic_ptr_1arg("glLogicOp", &self.glLogicOp_p, opcode);
21738 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21739 {
21740 self.automatic_glGetError("glLogicOp");
21741 }
21742 out
21743 }
21744 #[doc(hidden)]
21745 pub unsafe fn LogicOp_load_with_dyn(
21746 &self,
21747 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21748 ) -> bool {
21749 load_dyn_name_atomic_ptr(get_proc_address, b"glLogicOp\0", &self.glLogicOp_p)
21750 }
21751 #[inline]
21752 #[doc(hidden)]
21753 pub fn LogicOp_is_loaded(&self) -> bool {
21754 !self.glLogicOp_p.load(RELAX).is_null()
21755 }
21756 /// [glMapBuffer](http://docs.gl/gl4/glMapBuffer)(target, access)
21757 /// * `target` group: BufferTargetARB
21758 /// * `access` group: BufferAccessARB
21759 #[cfg_attr(feature = "inline", inline)]
21760 #[cfg_attr(feature = "inline_always", inline(always))]
21761 pub unsafe fn MapBuffer(&self, target: GLenum, access: GLenum) -> *mut c_void {
21762 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21763 {
21764 trace!("calling gl.MapBuffer({:#X}, {:#X});", target, access);
21765 }
21766 let out = call_atomic_ptr_2arg("glMapBuffer", &self.glMapBuffer_p, target, access);
21767 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21768 {
21769 self.automatic_glGetError("glMapBuffer");
21770 }
21771 out
21772 }
21773 #[doc(hidden)]
21774 pub unsafe fn MapBuffer_load_with_dyn(
21775 &self,
21776 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21777 ) -> bool {
21778 load_dyn_name_atomic_ptr(get_proc_address, b"glMapBuffer\0", &self.glMapBuffer_p)
21779 }
21780 #[inline]
21781 #[doc(hidden)]
21782 pub fn MapBuffer_is_loaded(&self) -> bool {
21783 !self.glMapBuffer_p.load(RELAX).is_null()
21784 }
21785 /// [glMapBufferRange](http://docs.gl/gl4/glMapBufferRange)(target, offset, length, access)
21786 /// * `target` group: BufferTargetARB
21787 /// * `offset` group: BufferOffset
21788 /// * `length` group: BufferSize
21789 /// * `access` group: MapBufferAccessMask
21790 #[cfg_attr(feature = "inline", inline)]
21791 #[cfg_attr(feature = "inline_always", inline(always))]
21792 pub unsafe fn MapBufferRange(
21793 &self,
21794 target: GLenum,
21795 offset: GLintptr,
21796 length: GLsizeiptr,
21797 access: GLbitfield,
21798 ) -> *mut c_void {
21799 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21800 {
21801 trace!(
21802 "calling gl.MapBufferRange({:#X}, {:?}, {:?}, {:?});",
21803 target,
21804 offset,
21805 length,
21806 access
21807 );
21808 }
21809 let out = call_atomic_ptr_4arg(
21810 "glMapBufferRange",
21811 &self.glMapBufferRange_p,
21812 target,
21813 offset,
21814 length,
21815 access,
21816 );
21817 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21818 {
21819 self.automatic_glGetError("glMapBufferRange");
21820 }
21821 out
21822 }
21823 #[doc(hidden)]
21824 pub unsafe fn MapBufferRange_load_with_dyn(
21825 &self,
21826 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21827 ) -> bool {
21828 load_dyn_name_atomic_ptr(
21829 get_proc_address,
21830 b"glMapBufferRange\0",
21831 &self.glMapBufferRange_p,
21832 )
21833 }
21834 #[inline]
21835 #[doc(hidden)]
21836 pub fn MapBufferRange_is_loaded(&self) -> bool {
21837 !self.glMapBufferRange_p.load(RELAX).is_null()
21838 }
21839 /// [glMapNamedBuffer](http://docs.gl/gl4/glMapNamedBuffer)(buffer, access)
21840 /// * `access` group: BufferAccessARB
21841 #[cfg_attr(feature = "inline", inline)]
21842 #[cfg_attr(feature = "inline_always", inline(always))]
21843 pub unsafe fn MapNamedBuffer(&self, buffer: GLuint, access: GLenum) -> *mut c_void {
21844 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21845 {
21846 trace!("calling gl.MapNamedBuffer({:?}, {:#X});", buffer, access);
21847 }
21848 let out =
21849 call_atomic_ptr_2arg("glMapNamedBuffer", &self.glMapNamedBuffer_p, buffer, access);
21850 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21851 {
21852 self.automatic_glGetError("glMapNamedBuffer");
21853 }
21854 out
21855 }
21856 #[doc(hidden)]
21857 pub unsafe fn MapNamedBuffer_load_with_dyn(
21858 &self,
21859 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21860 ) -> bool {
21861 load_dyn_name_atomic_ptr(
21862 get_proc_address,
21863 b"glMapNamedBuffer\0",
21864 &self.glMapNamedBuffer_p,
21865 )
21866 }
21867 #[inline]
21868 #[doc(hidden)]
21869 pub fn MapNamedBuffer_is_loaded(&self) -> bool {
21870 !self.glMapNamedBuffer_p.load(RELAX).is_null()
21871 }
21872 /// [glMapNamedBufferRange](http://docs.gl/gl4/glMapNamedBufferRange)(buffer, offset, length, access)
21873 /// * `length` group: BufferSize
21874 /// * `access` group: MapBufferAccessMask
21875 #[cfg_attr(feature = "inline", inline)]
21876 #[cfg_attr(feature = "inline_always", inline(always))]
21877 pub unsafe fn MapNamedBufferRange(
21878 &self,
21879 buffer: GLuint,
21880 offset: GLintptr,
21881 length: GLsizeiptr,
21882 access: GLbitfield,
21883 ) -> *mut c_void {
21884 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21885 {
21886 trace!(
21887 "calling gl.MapNamedBufferRange({:?}, {:?}, {:?}, {:?});",
21888 buffer,
21889 offset,
21890 length,
21891 access
21892 );
21893 }
21894 let out = call_atomic_ptr_4arg(
21895 "glMapNamedBufferRange",
21896 &self.glMapNamedBufferRange_p,
21897 buffer,
21898 offset,
21899 length,
21900 access,
21901 );
21902 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21903 {
21904 self.automatic_glGetError("glMapNamedBufferRange");
21905 }
21906 out
21907 }
21908 #[doc(hidden)]
21909 pub unsafe fn MapNamedBufferRange_load_with_dyn(
21910 &self,
21911 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21912 ) -> bool {
21913 load_dyn_name_atomic_ptr(
21914 get_proc_address,
21915 b"glMapNamedBufferRange\0",
21916 &self.glMapNamedBufferRange_p,
21917 )
21918 }
21919 #[inline]
21920 #[doc(hidden)]
21921 pub fn MapNamedBufferRange_is_loaded(&self) -> bool {
21922 !self.glMapNamedBufferRange_p.load(RELAX).is_null()
21923 }
21924 /// [glMaxShaderCompilerThreadsARB](http://docs.gl/gl4/glMaxShaderCompilerThreadsARB)(count)
21925 /// * alias of: [`glMaxShaderCompilerThreadsKHR`]
21926 #[cfg_attr(feature = "inline", inline)]
21927 #[cfg_attr(feature = "inline_always", inline(always))]
21928 pub unsafe fn MaxShaderCompilerThreadsARB(&self, count: GLuint) {
21929 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21930 {
21931 trace!("calling gl.MaxShaderCompilerThreadsARB({:?});", count);
21932 }
21933 let out = call_atomic_ptr_1arg(
21934 "glMaxShaderCompilerThreadsARB",
21935 &self.glMaxShaderCompilerThreadsARB_p,
21936 count,
21937 );
21938 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21939 {
21940 self.automatic_glGetError("glMaxShaderCompilerThreadsARB");
21941 }
21942 out
21943 }
21944 #[doc(hidden)]
21945 pub unsafe fn MaxShaderCompilerThreadsARB_load_with_dyn(
21946 &self,
21947 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21948 ) -> bool {
21949 load_dyn_name_atomic_ptr(
21950 get_proc_address,
21951 b"glMaxShaderCompilerThreadsARB\0",
21952 &self.glMaxShaderCompilerThreadsARB_p,
21953 )
21954 }
21955 #[inline]
21956 #[doc(hidden)]
21957 pub fn MaxShaderCompilerThreadsARB_is_loaded(&self) -> bool {
21958 !self.glMaxShaderCompilerThreadsARB_p.load(RELAX).is_null()
21959 }
21960 /// [glMaxShaderCompilerThreadsKHR](http://docs.gl/gl4/glMaxShaderCompilerThreadsKHR)(count)
21961 #[cfg_attr(feature = "inline", inline)]
21962 #[cfg_attr(feature = "inline_always", inline(always))]
21963 pub unsafe fn MaxShaderCompilerThreadsKHR(&self, count: GLuint) {
21964 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21965 {
21966 trace!("calling gl.MaxShaderCompilerThreadsKHR({:?});", count);
21967 }
21968 let out = call_atomic_ptr_1arg(
21969 "glMaxShaderCompilerThreadsKHR",
21970 &self.glMaxShaderCompilerThreadsKHR_p,
21971 count,
21972 );
21973 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21974 {
21975 self.automatic_glGetError("glMaxShaderCompilerThreadsKHR");
21976 }
21977 out
21978 }
21979 #[doc(hidden)]
21980 pub unsafe fn MaxShaderCompilerThreadsKHR_load_with_dyn(
21981 &self,
21982 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21983 ) -> bool {
21984 load_dyn_name_atomic_ptr(
21985 get_proc_address,
21986 b"glMaxShaderCompilerThreadsKHR\0",
21987 &self.glMaxShaderCompilerThreadsKHR_p,
21988 )
21989 }
21990 #[inline]
21991 #[doc(hidden)]
21992 pub fn MaxShaderCompilerThreadsKHR_is_loaded(&self) -> bool {
21993 !self.glMaxShaderCompilerThreadsKHR_p.load(RELAX).is_null()
21994 }
21995 /// [glMemoryBarrier](http://docs.gl/gl4/glMemoryBarrier)(barriers)
21996 /// * `barriers` group: MemoryBarrierMask
21997 #[cfg_attr(feature = "inline", inline)]
21998 #[cfg_attr(feature = "inline_always", inline(always))]
21999 pub unsafe fn MemoryBarrier(&self, barriers: GLbitfield) {
22000 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22001 {
22002 trace!("calling gl.MemoryBarrier({:?});", barriers);
22003 }
22004 let out = call_atomic_ptr_1arg("glMemoryBarrier", &self.glMemoryBarrier_p, barriers);
22005 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22006 {
22007 self.automatic_glGetError("glMemoryBarrier");
22008 }
22009 out
22010 }
22011 #[doc(hidden)]
22012 pub unsafe fn MemoryBarrier_load_with_dyn(
22013 &self,
22014 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22015 ) -> bool {
22016 load_dyn_name_atomic_ptr(
22017 get_proc_address,
22018 b"glMemoryBarrier\0",
22019 &self.glMemoryBarrier_p,
22020 )
22021 }
22022 #[inline]
22023 #[doc(hidden)]
22024 pub fn MemoryBarrier_is_loaded(&self) -> bool {
22025 !self.glMemoryBarrier_p.load(RELAX).is_null()
22026 }
22027 /// [glMemoryBarrierByRegion](http://docs.gl/gl4/glMemoryBarrierByRegion)(barriers)
22028 /// * `barriers` group: MemoryBarrierMask
22029 #[cfg_attr(feature = "inline", inline)]
22030 #[cfg_attr(feature = "inline_always", inline(always))]
22031 pub unsafe fn MemoryBarrierByRegion(&self, barriers: GLbitfield) {
22032 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22033 {
22034 trace!("calling gl.MemoryBarrierByRegion({:?});", barriers);
22035 }
22036 let out = call_atomic_ptr_1arg(
22037 "glMemoryBarrierByRegion",
22038 &self.glMemoryBarrierByRegion_p,
22039 barriers,
22040 );
22041 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22042 {
22043 self.automatic_glGetError("glMemoryBarrierByRegion");
22044 }
22045 out
22046 }
22047 #[doc(hidden)]
22048 pub unsafe fn MemoryBarrierByRegion_load_with_dyn(
22049 &self,
22050 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22051 ) -> bool {
22052 load_dyn_name_atomic_ptr(
22053 get_proc_address,
22054 b"glMemoryBarrierByRegion\0",
22055 &self.glMemoryBarrierByRegion_p,
22056 )
22057 }
22058 #[inline]
22059 #[doc(hidden)]
22060 pub fn MemoryBarrierByRegion_is_loaded(&self) -> bool {
22061 !self.glMemoryBarrierByRegion_p.load(RELAX).is_null()
22062 }
22063 /// [glMinSampleShading](http://docs.gl/gl4/glMinSampleShading)(value)
22064 /// * `value` group: ColorF
22065 #[cfg_attr(feature = "inline", inline)]
22066 #[cfg_attr(feature = "inline_always", inline(always))]
22067 pub unsafe fn MinSampleShading(&self, value: GLfloat) {
22068 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22069 {
22070 trace!("calling gl.MinSampleShading({:?});", value);
22071 }
22072 let out = call_atomic_ptr_1arg("glMinSampleShading", &self.glMinSampleShading_p, value);
22073 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22074 {
22075 self.automatic_glGetError("glMinSampleShading");
22076 }
22077 out
22078 }
22079 #[doc(hidden)]
22080 pub unsafe fn MinSampleShading_load_with_dyn(
22081 &self,
22082 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22083 ) -> bool {
22084 load_dyn_name_atomic_ptr(
22085 get_proc_address,
22086 b"glMinSampleShading\0",
22087 &self.glMinSampleShading_p,
22088 )
22089 }
22090 #[inline]
22091 #[doc(hidden)]
22092 pub fn MinSampleShading_is_loaded(&self) -> bool {
22093 !self.glMinSampleShading_p.load(RELAX).is_null()
22094 }
22095 /// [glMultiDrawArrays](http://docs.gl/gl4/glMultiDrawArrays)(mode, first, count, drawcount)
22096 /// * `mode` group: PrimitiveType
22097 /// * `first` len: COMPSIZE(drawcount)
22098 /// * `count` len: COMPSIZE(drawcount)
22099 #[cfg_attr(feature = "inline", inline)]
22100 #[cfg_attr(feature = "inline_always", inline(always))]
22101 pub unsafe fn MultiDrawArrays(
22102 &self,
22103 mode: GLenum,
22104 first: *const GLint,
22105 count: *const GLsizei,
22106 drawcount: GLsizei,
22107 ) {
22108 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22109 {
22110 trace!(
22111 "calling gl.MultiDrawArrays({:#X}, {:p}, {:p}, {:?});",
22112 mode,
22113 first,
22114 count,
22115 drawcount
22116 );
22117 }
22118 let out = call_atomic_ptr_4arg(
22119 "glMultiDrawArrays",
22120 &self.glMultiDrawArrays_p,
22121 mode,
22122 first,
22123 count,
22124 drawcount,
22125 );
22126 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22127 {
22128 self.automatic_glGetError("glMultiDrawArrays");
22129 }
22130 out
22131 }
22132 #[doc(hidden)]
22133 pub unsafe fn MultiDrawArrays_load_with_dyn(
22134 &self,
22135 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22136 ) -> bool {
22137 load_dyn_name_atomic_ptr(
22138 get_proc_address,
22139 b"glMultiDrawArrays\0",
22140 &self.glMultiDrawArrays_p,
22141 )
22142 }
22143 #[inline]
22144 #[doc(hidden)]
22145 pub fn MultiDrawArrays_is_loaded(&self) -> bool {
22146 !self.glMultiDrawArrays_p.load(RELAX).is_null()
22147 }
22148 /// [glMultiDrawArraysIndirect](http://docs.gl/gl4/glMultiDrawArraysIndirect)(mode, indirect, drawcount, stride)
22149 /// * `mode` group: PrimitiveType
22150 /// * `indirect` len: COMPSIZE(drawcount,stride)
22151 #[cfg_attr(feature = "inline", inline)]
22152 #[cfg_attr(feature = "inline_always", inline(always))]
22153 pub unsafe fn MultiDrawArraysIndirect(
22154 &self,
22155 mode: GLenum,
22156 indirect: *const c_void,
22157 drawcount: GLsizei,
22158 stride: GLsizei,
22159 ) {
22160 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22161 {
22162 trace!(
22163 "calling gl.MultiDrawArraysIndirect({:#X}, {:p}, {:?}, {:?});",
22164 mode,
22165 indirect,
22166 drawcount,
22167 stride
22168 );
22169 }
22170 let out = call_atomic_ptr_4arg(
22171 "glMultiDrawArraysIndirect",
22172 &self.glMultiDrawArraysIndirect_p,
22173 mode,
22174 indirect,
22175 drawcount,
22176 stride,
22177 );
22178 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22179 {
22180 self.automatic_glGetError("glMultiDrawArraysIndirect");
22181 }
22182 out
22183 }
22184 #[doc(hidden)]
22185 pub unsafe fn MultiDrawArraysIndirect_load_with_dyn(
22186 &self,
22187 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22188 ) -> bool {
22189 load_dyn_name_atomic_ptr(
22190 get_proc_address,
22191 b"glMultiDrawArraysIndirect\0",
22192 &self.glMultiDrawArraysIndirect_p,
22193 )
22194 }
22195 #[inline]
22196 #[doc(hidden)]
22197 pub fn MultiDrawArraysIndirect_is_loaded(&self) -> bool {
22198 !self.glMultiDrawArraysIndirect_p.load(RELAX).is_null()
22199 }
22200 /// [glMultiDrawArraysIndirectCount](http://docs.gl/gl4/glMultiDrawArraysIndirectCount)(mode, indirect, drawcount, maxdrawcount, stride)
22201 /// * `mode` group: PrimitiveType
22202 #[cfg_attr(feature = "inline", inline)]
22203 #[cfg_attr(feature = "inline_always", inline(always))]
22204 pub unsafe fn MultiDrawArraysIndirectCount(
22205 &self,
22206 mode: GLenum,
22207 indirect: *const c_void,
22208 drawcount: GLintptr,
22209 maxdrawcount: GLsizei,
22210 stride: GLsizei,
22211 ) {
22212 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22213 {
22214 trace!(
22215 "calling gl.MultiDrawArraysIndirectCount({:#X}, {:p}, {:?}, {:?}, {:?});",
22216 mode,
22217 indirect,
22218 drawcount,
22219 maxdrawcount,
22220 stride
22221 );
22222 }
22223 let out = call_atomic_ptr_5arg(
22224 "glMultiDrawArraysIndirectCount",
22225 &self.glMultiDrawArraysIndirectCount_p,
22226 mode,
22227 indirect,
22228 drawcount,
22229 maxdrawcount,
22230 stride,
22231 );
22232 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22233 {
22234 self.automatic_glGetError("glMultiDrawArraysIndirectCount");
22235 }
22236 out
22237 }
22238 #[doc(hidden)]
22239 pub unsafe fn MultiDrawArraysIndirectCount_load_with_dyn(
22240 &self,
22241 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22242 ) -> bool {
22243 load_dyn_name_atomic_ptr(
22244 get_proc_address,
22245 b"glMultiDrawArraysIndirectCount\0",
22246 &self.glMultiDrawArraysIndirectCount_p,
22247 )
22248 }
22249 #[inline]
22250 #[doc(hidden)]
22251 pub fn MultiDrawArraysIndirectCount_is_loaded(&self) -> bool {
22252 !self.glMultiDrawArraysIndirectCount_p.load(RELAX).is_null()
22253 }
22254 /// [glMultiDrawElements](http://docs.gl/gl4/glMultiDrawElements)(mode, count, type_, indices, drawcount)
22255 /// * `mode` group: PrimitiveType
22256 /// * `count` len: COMPSIZE(drawcount)
22257 /// * `type_` group: DrawElementsType
22258 /// * `indices` len: COMPSIZE(drawcount)
22259 #[cfg_attr(feature = "inline", inline)]
22260 #[cfg_attr(feature = "inline_always", inline(always))]
22261 pub unsafe fn MultiDrawElements(
22262 &self,
22263 mode: GLenum,
22264 count: *const GLsizei,
22265 type_: GLenum,
22266 indices: *const *const c_void,
22267 drawcount: GLsizei,
22268 ) {
22269 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22270 {
22271 trace!(
22272 "calling gl.MultiDrawElements({:#X}, {:p}, {:#X}, {:p}, {:?});",
22273 mode,
22274 count,
22275 type_,
22276 indices,
22277 drawcount
22278 );
22279 }
22280 let out = call_atomic_ptr_5arg(
22281 "glMultiDrawElements",
22282 &self.glMultiDrawElements_p,
22283 mode,
22284 count,
22285 type_,
22286 indices,
22287 drawcount,
22288 );
22289 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22290 {
22291 self.automatic_glGetError("glMultiDrawElements");
22292 }
22293 out
22294 }
22295 #[doc(hidden)]
22296 pub unsafe fn MultiDrawElements_load_with_dyn(
22297 &self,
22298 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22299 ) -> bool {
22300 load_dyn_name_atomic_ptr(
22301 get_proc_address,
22302 b"glMultiDrawElements\0",
22303 &self.glMultiDrawElements_p,
22304 )
22305 }
22306 #[inline]
22307 #[doc(hidden)]
22308 pub fn MultiDrawElements_is_loaded(&self) -> bool {
22309 !self.glMultiDrawElements_p.load(RELAX).is_null()
22310 }
22311 /// [glMultiDrawElementsBaseVertex](http://docs.gl/gl4/glMultiDrawElementsBaseVertex)(mode, count, type_, indices, drawcount, basevertex)
22312 /// * `mode` group: PrimitiveType
22313 /// * `count` len: COMPSIZE(drawcount)
22314 /// * `type_` group: DrawElementsType
22315 /// * `indices` len: COMPSIZE(drawcount)
22316 /// * `basevertex` len: COMPSIZE(drawcount)
22317 #[cfg_attr(feature = "inline", inline)]
22318 #[cfg_attr(feature = "inline_always", inline(always))]
22319 pub unsafe fn MultiDrawElementsBaseVertex(
22320 &self,
22321 mode: GLenum,
22322 count: *const GLsizei,
22323 type_: GLenum,
22324 indices: *const *const c_void,
22325 drawcount: GLsizei,
22326 basevertex: *const GLint,
22327 ) {
22328 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22329 {
22330 trace!(
22331 "calling gl.MultiDrawElementsBaseVertex({:#X}, {:p}, {:#X}, {:p}, {:?}, {:p});",
22332 mode,
22333 count,
22334 type_,
22335 indices,
22336 drawcount,
22337 basevertex
22338 );
22339 }
22340 let out = call_atomic_ptr_6arg(
22341 "glMultiDrawElementsBaseVertex",
22342 &self.glMultiDrawElementsBaseVertex_p,
22343 mode,
22344 count,
22345 type_,
22346 indices,
22347 drawcount,
22348 basevertex,
22349 );
22350 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22351 {
22352 self.automatic_glGetError("glMultiDrawElementsBaseVertex");
22353 }
22354 out
22355 }
22356 #[doc(hidden)]
22357 pub unsafe fn MultiDrawElementsBaseVertex_load_with_dyn(
22358 &self,
22359 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22360 ) -> bool {
22361 load_dyn_name_atomic_ptr(
22362 get_proc_address,
22363 b"glMultiDrawElementsBaseVertex\0",
22364 &self.glMultiDrawElementsBaseVertex_p,
22365 )
22366 }
22367 #[inline]
22368 #[doc(hidden)]
22369 pub fn MultiDrawElementsBaseVertex_is_loaded(&self) -> bool {
22370 !self.glMultiDrawElementsBaseVertex_p.load(RELAX).is_null()
22371 }
22372 /// [glMultiDrawElementsIndirect](http://docs.gl/gl4/glMultiDrawElementsIndirect)(mode, type_, indirect, drawcount, stride)
22373 /// * `mode` group: PrimitiveType
22374 /// * `type_` group: DrawElementsType
22375 /// * `indirect` len: COMPSIZE(drawcount,stride)
22376 #[cfg_attr(feature = "inline", inline)]
22377 #[cfg_attr(feature = "inline_always", inline(always))]
22378 pub unsafe fn MultiDrawElementsIndirect(
22379 &self,
22380 mode: GLenum,
22381 type_: GLenum,
22382 indirect: *const c_void,
22383 drawcount: GLsizei,
22384 stride: GLsizei,
22385 ) {
22386 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22387 {
22388 trace!(
22389 "calling gl.MultiDrawElementsIndirect({:#X}, {:#X}, {:p}, {:?}, {:?});",
22390 mode,
22391 type_,
22392 indirect,
22393 drawcount,
22394 stride
22395 );
22396 }
22397 let out = call_atomic_ptr_5arg(
22398 "glMultiDrawElementsIndirect",
22399 &self.glMultiDrawElementsIndirect_p,
22400 mode,
22401 type_,
22402 indirect,
22403 drawcount,
22404 stride,
22405 );
22406 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22407 {
22408 self.automatic_glGetError("glMultiDrawElementsIndirect");
22409 }
22410 out
22411 }
22412 #[doc(hidden)]
22413 pub unsafe fn MultiDrawElementsIndirect_load_with_dyn(
22414 &self,
22415 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22416 ) -> bool {
22417 load_dyn_name_atomic_ptr(
22418 get_proc_address,
22419 b"glMultiDrawElementsIndirect\0",
22420 &self.glMultiDrawElementsIndirect_p,
22421 )
22422 }
22423 #[inline]
22424 #[doc(hidden)]
22425 pub fn MultiDrawElementsIndirect_is_loaded(&self) -> bool {
22426 !self.glMultiDrawElementsIndirect_p.load(RELAX).is_null()
22427 }
22428 /// [glMultiDrawElementsIndirectCount](http://docs.gl/gl4/glMultiDrawElementsIndirectCount)(mode, type_, indirect, drawcount, maxdrawcount, stride)
22429 /// * `mode` group: PrimitiveType
22430 /// * `type_` group: DrawElementsType
22431 #[cfg_attr(feature = "inline", inline)]
22432 #[cfg_attr(feature = "inline_always", inline(always))]
22433 pub unsafe fn MultiDrawElementsIndirectCount(
22434 &self,
22435 mode: GLenum,
22436 type_: GLenum,
22437 indirect: *const c_void,
22438 drawcount: GLintptr,
22439 maxdrawcount: GLsizei,
22440 stride: GLsizei,
22441 ) {
22442 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22443 {
22444 trace!("calling gl.MultiDrawElementsIndirectCount({:#X}, {:#X}, {:p}, {:?}, {:?}, {:?});", mode, type_, indirect, drawcount, maxdrawcount, stride);
22445 }
22446 let out = call_atomic_ptr_6arg(
22447 "glMultiDrawElementsIndirectCount",
22448 &self.glMultiDrawElementsIndirectCount_p,
22449 mode,
22450 type_,
22451 indirect,
22452 drawcount,
22453 maxdrawcount,
22454 stride,
22455 );
22456 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22457 {
22458 self.automatic_glGetError("glMultiDrawElementsIndirectCount");
22459 }
22460 out
22461 }
22462 #[doc(hidden)]
22463 pub unsafe fn MultiDrawElementsIndirectCount_load_with_dyn(
22464 &self,
22465 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22466 ) -> bool {
22467 load_dyn_name_atomic_ptr(
22468 get_proc_address,
22469 b"glMultiDrawElementsIndirectCount\0",
22470 &self.glMultiDrawElementsIndirectCount_p,
22471 )
22472 }
22473 #[inline]
22474 #[doc(hidden)]
22475 pub fn MultiDrawElementsIndirectCount_is_loaded(&self) -> bool {
22476 !self
22477 .glMultiDrawElementsIndirectCount_p
22478 .load(RELAX)
22479 .is_null()
22480 }
22481 /// [glNamedBufferData](http://docs.gl/gl4/glNamedBufferData)(buffer, size, data, usage)
22482 /// * `size` group: BufferSize
22483 /// * `usage` group: VertexBufferObjectUsage
22484 #[cfg_attr(feature = "inline", inline)]
22485 #[cfg_attr(feature = "inline_always", inline(always))]
22486 pub unsafe fn NamedBufferData(
22487 &self,
22488 buffer: GLuint,
22489 size: GLsizeiptr,
22490 data: *const c_void,
22491 usage: GLenum,
22492 ) {
22493 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22494 {
22495 trace!(
22496 "calling gl.NamedBufferData({:?}, {:?}, {:p}, {:#X});",
22497 buffer,
22498 size,
22499 data,
22500 usage
22501 );
22502 }
22503 let out = call_atomic_ptr_4arg(
22504 "glNamedBufferData",
22505 &self.glNamedBufferData_p,
22506 buffer,
22507 size,
22508 data,
22509 usage,
22510 );
22511 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22512 {
22513 self.automatic_glGetError("glNamedBufferData");
22514 }
22515 out
22516 }
22517 #[doc(hidden)]
22518 pub unsafe fn NamedBufferData_load_with_dyn(
22519 &self,
22520 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22521 ) -> bool {
22522 load_dyn_name_atomic_ptr(
22523 get_proc_address,
22524 b"glNamedBufferData\0",
22525 &self.glNamedBufferData_p,
22526 )
22527 }
22528 #[inline]
22529 #[doc(hidden)]
22530 pub fn NamedBufferData_is_loaded(&self) -> bool {
22531 !self.glNamedBufferData_p.load(RELAX).is_null()
22532 }
22533 /// [glNamedBufferStorage](http://docs.gl/gl4/glNamedBufferStorage)(buffer, size, data, flags)
22534 /// * `size` group: BufferSize
22535 /// * `data` len: size
22536 /// * `flags` group: BufferStorageMask
22537 #[cfg_attr(feature = "inline", inline)]
22538 #[cfg_attr(feature = "inline_always", inline(always))]
22539 pub unsafe fn NamedBufferStorage(
22540 &self,
22541 buffer: GLuint,
22542 size: GLsizeiptr,
22543 data: *const c_void,
22544 flags: GLbitfield,
22545 ) {
22546 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22547 {
22548 trace!(
22549 "calling gl.NamedBufferStorage({:?}, {:?}, {:p}, {:?});",
22550 buffer,
22551 size,
22552 data,
22553 flags
22554 );
22555 }
22556 let out = call_atomic_ptr_4arg(
22557 "glNamedBufferStorage",
22558 &self.glNamedBufferStorage_p,
22559 buffer,
22560 size,
22561 data,
22562 flags,
22563 );
22564 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22565 {
22566 self.automatic_glGetError("glNamedBufferStorage");
22567 }
22568 out
22569 }
22570 #[doc(hidden)]
22571 pub unsafe fn NamedBufferStorage_load_with_dyn(
22572 &self,
22573 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22574 ) -> bool {
22575 load_dyn_name_atomic_ptr(
22576 get_proc_address,
22577 b"glNamedBufferStorage\0",
22578 &self.glNamedBufferStorage_p,
22579 )
22580 }
22581 #[inline]
22582 #[doc(hidden)]
22583 pub fn NamedBufferStorage_is_loaded(&self) -> bool {
22584 !self.glNamedBufferStorage_p.load(RELAX).is_null()
22585 }
22586 /// [glNamedBufferSubData](http://docs.gl/gl4/glNamedBufferSubData)(buffer, offset, size, data)
22587 /// * `size` group: BufferSize
22588 /// * `data` len: COMPSIZE(size)
22589 #[cfg_attr(feature = "inline", inline)]
22590 #[cfg_attr(feature = "inline_always", inline(always))]
22591 pub unsafe fn NamedBufferSubData(
22592 &self,
22593 buffer: GLuint,
22594 offset: GLintptr,
22595 size: GLsizeiptr,
22596 data: *const c_void,
22597 ) {
22598 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22599 {
22600 trace!(
22601 "calling gl.NamedBufferSubData({:?}, {:?}, {:?}, {:p});",
22602 buffer,
22603 offset,
22604 size,
22605 data
22606 );
22607 }
22608 let out = call_atomic_ptr_4arg(
22609 "glNamedBufferSubData",
22610 &self.glNamedBufferSubData_p,
22611 buffer,
22612 offset,
22613 size,
22614 data,
22615 );
22616 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22617 {
22618 self.automatic_glGetError("glNamedBufferSubData");
22619 }
22620 out
22621 }
22622 #[doc(hidden)]
22623 pub unsafe fn NamedBufferSubData_load_with_dyn(
22624 &self,
22625 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22626 ) -> bool {
22627 load_dyn_name_atomic_ptr(
22628 get_proc_address,
22629 b"glNamedBufferSubData\0",
22630 &self.glNamedBufferSubData_p,
22631 )
22632 }
22633 #[inline]
22634 #[doc(hidden)]
22635 pub fn NamedBufferSubData_is_loaded(&self) -> bool {
22636 !self.glNamedBufferSubData_p.load(RELAX).is_null()
22637 }
22638 /// [glNamedFramebufferDrawBuffer](http://docs.gl/gl4/glNamedFramebufferDrawBuffer)(framebuffer, buf)
22639 /// * `buf` group: ColorBuffer
22640 #[cfg_attr(feature = "inline", inline)]
22641 #[cfg_attr(feature = "inline_always", inline(always))]
22642 pub unsafe fn NamedFramebufferDrawBuffer(&self, framebuffer: GLuint, buf: GLenum) {
22643 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22644 {
22645 trace!(
22646 "calling gl.NamedFramebufferDrawBuffer({:?}, {:#X});",
22647 framebuffer,
22648 buf
22649 );
22650 }
22651 let out = call_atomic_ptr_2arg(
22652 "glNamedFramebufferDrawBuffer",
22653 &self.glNamedFramebufferDrawBuffer_p,
22654 framebuffer,
22655 buf,
22656 );
22657 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22658 {
22659 self.automatic_glGetError("glNamedFramebufferDrawBuffer");
22660 }
22661 out
22662 }
22663 #[doc(hidden)]
22664 pub unsafe fn NamedFramebufferDrawBuffer_load_with_dyn(
22665 &self,
22666 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22667 ) -> bool {
22668 load_dyn_name_atomic_ptr(
22669 get_proc_address,
22670 b"glNamedFramebufferDrawBuffer\0",
22671 &self.glNamedFramebufferDrawBuffer_p,
22672 )
22673 }
22674 #[inline]
22675 #[doc(hidden)]
22676 pub fn NamedFramebufferDrawBuffer_is_loaded(&self) -> bool {
22677 !self.glNamedFramebufferDrawBuffer_p.load(RELAX).is_null()
22678 }
22679 /// [glNamedFramebufferDrawBuffers](http://docs.gl/gl4/glNamedFramebufferDrawBuffers)(framebuffer, n, bufs)
22680 /// * `bufs` group: ColorBuffer
22681 #[cfg_attr(feature = "inline", inline)]
22682 #[cfg_attr(feature = "inline_always", inline(always))]
22683 pub unsafe fn NamedFramebufferDrawBuffers(
22684 &self,
22685 framebuffer: GLuint,
22686 n: GLsizei,
22687 bufs: *const GLenum,
22688 ) {
22689 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22690 {
22691 trace!(
22692 "calling gl.NamedFramebufferDrawBuffers({:?}, {:?}, {:p});",
22693 framebuffer,
22694 n,
22695 bufs
22696 );
22697 }
22698 let out = call_atomic_ptr_3arg(
22699 "glNamedFramebufferDrawBuffers",
22700 &self.glNamedFramebufferDrawBuffers_p,
22701 framebuffer,
22702 n,
22703 bufs,
22704 );
22705 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22706 {
22707 self.automatic_glGetError("glNamedFramebufferDrawBuffers");
22708 }
22709 out
22710 }
22711 #[doc(hidden)]
22712 pub unsafe fn NamedFramebufferDrawBuffers_load_with_dyn(
22713 &self,
22714 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22715 ) -> bool {
22716 load_dyn_name_atomic_ptr(
22717 get_proc_address,
22718 b"glNamedFramebufferDrawBuffers\0",
22719 &self.glNamedFramebufferDrawBuffers_p,
22720 )
22721 }
22722 #[inline]
22723 #[doc(hidden)]
22724 pub fn NamedFramebufferDrawBuffers_is_loaded(&self) -> bool {
22725 !self.glNamedFramebufferDrawBuffers_p.load(RELAX).is_null()
22726 }
22727 /// [glNamedFramebufferParameteri](http://docs.gl/gl4/glNamedFramebufferParameter)(framebuffer, pname, param)
22728 /// * `pname` group: FramebufferParameterName
22729 #[cfg_attr(feature = "inline", inline)]
22730 #[cfg_attr(feature = "inline_always", inline(always))]
22731 pub unsafe fn NamedFramebufferParameteri(
22732 &self,
22733 framebuffer: GLuint,
22734 pname: GLenum,
22735 param: GLint,
22736 ) {
22737 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22738 {
22739 trace!(
22740 "calling gl.NamedFramebufferParameteri({:?}, {:#X}, {:?});",
22741 framebuffer,
22742 pname,
22743 param
22744 );
22745 }
22746 let out = call_atomic_ptr_3arg(
22747 "glNamedFramebufferParameteri",
22748 &self.glNamedFramebufferParameteri_p,
22749 framebuffer,
22750 pname,
22751 param,
22752 );
22753 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22754 {
22755 self.automatic_glGetError("glNamedFramebufferParameteri");
22756 }
22757 out
22758 }
22759 #[doc(hidden)]
22760 pub unsafe fn NamedFramebufferParameteri_load_with_dyn(
22761 &self,
22762 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22763 ) -> bool {
22764 load_dyn_name_atomic_ptr(
22765 get_proc_address,
22766 b"glNamedFramebufferParameteri\0",
22767 &self.glNamedFramebufferParameteri_p,
22768 )
22769 }
22770 #[inline]
22771 #[doc(hidden)]
22772 pub fn NamedFramebufferParameteri_is_loaded(&self) -> bool {
22773 !self.glNamedFramebufferParameteri_p.load(RELAX).is_null()
22774 }
22775 /// [glNamedFramebufferReadBuffer](http://docs.gl/gl4/glNamedFramebufferReadBuffer)(framebuffer, src)
22776 /// * `src` group: ColorBuffer
22777 #[cfg_attr(feature = "inline", inline)]
22778 #[cfg_attr(feature = "inline_always", inline(always))]
22779 pub unsafe fn NamedFramebufferReadBuffer(&self, framebuffer: GLuint, src: GLenum) {
22780 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22781 {
22782 trace!(
22783 "calling gl.NamedFramebufferReadBuffer({:?}, {:#X});",
22784 framebuffer,
22785 src
22786 );
22787 }
22788 let out = call_atomic_ptr_2arg(
22789 "glNamedFramebufferReadBuffer",
22790 &self.glNamedFramebufferReadBuffer_p,
22791 framebuffer,
22792 src,
22793 );
22794 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22795 {
22796 self.automatic_glGetError("glNamedFramebufferReadBuffer");
22797 }
22798 out
22799 }
22800 #[doc(hidden)]
22801 pub unsafe fn NamedFramebufferReadBuffer_load_with_dyn(
22802 &self,
22803 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22804 ) -> bool {
22805 load_dyn_name_atomic_ptr(
22806 get_proc_address,
22807 b"glNamedFramebufferReadBuffer\0",
22808 &self.glNamedFramebufferReadBuffer_p,
22809 )
22810 }
22811 #[inline]
22812 #[doc(hidden)]
22813 pub fn NamedFramebufferReadBuffer_is_loaded(&self) -> bool {
22814 !self.glNamedFramebufferReadBuffer_p.load(RELAX).is_null()
22815 }
22816 /// [glNamedFramebufferRenderbuffer](http://docs.gl/gl4/glNamedFramebufferRenderbuffer)(framebuffer, attachment, renderbuffertarget, renderbuffer)
22817 /// * `attachment` group: FramebufferAttachment
22818 /// * `renderbuffertarget` group: RenderbufferTarget
22819 #[cfg_attr(feature = "inline", inline)]
22820 #[cfg_attr(feature = "inline_always", inline(always))]
22821 pub unsafe fn NamedFramebufferRenderbuffer(
22822 &self,
22823 framebuffer: GLuint,
22824 attachment: GLenum,
22825 renderbuffertarget: GLenum,
22826 renderbuffer: GLuint,
22827 ) {
22828 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22829 {
22830 trace!(
22831 "calling gl.NamedFramebufferRenderbuffer({:?}, {:#X}, {:#X}, {:?});",
22832 framebuffer,
22833 attachment,
22834 renderbuffertarget,
22835 renderbuffer
22836 );
22837 }
22838 let out = call_atomic_ptr_4arg(
22839 "glNamedFramebufferRenderbuffer",
22840 &self.glNamedFramebufferRenderbuffer_p,
22841 framebuffer,
22842 attachment,
22843 renderbuffertarget,
22844 renderbuffer,
22845 );
22846 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22847 {
22848 self.automatic_glGetError("glNamedFramebufferRenderbuffer");
22849 }
22850 out
22851 }
22852 #[doc(hidden)]
22853 pub unsafe fn NamedFramebufferRenderbuffer_load_with_dyn(
22854 &self,
22855 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22856 ) -> bool {
22857 load_dyn_name_atomic_ptr(
22858 get_proc_address,
22859 b"glNamedFramebufferRenderbuffer\0",
22860 &self.glNamedFramebufferRenderbuffer_p,
22861 )
22862 }
22863 #[inline]
22864 #[doc(hidden)]
22865 pub fn NamedFramebufferRenderbuffer_is_loaded(&self) -> bool {
22866 !self.glNamedFramebufferRenderbuffer_p.load(RELAX).is_null()
22867 }
22868 /// [glNamedFramebufferTexture](http://docs.gl/gl4/glNamedFramebufferTexture)(framebuffer, attachment, texture, level)
22869 /// * `attachment` group: FramebufferAttachment
22870 #[cfg_attr(feature = "inline", inline)]
22871 #[cfg_attr(feature = "inline_always", inline(always))]
22872 pub unsafe fn NamedFramebufferTexture(
22873 &self,
22874 framebuffer: GLuint,
22875 attachment: GLenum,
22876 texture: GLuint,
22877 level: GLint,
22878 ) {
22879 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22880 {
22881 trace!(
22882 "calling gl.NamedFramebufferTexture({:?}, {:#X}, {:?}, {:?});",
22883 framebuffer,
22884 attachment,
22885 texture,
22886 level
22887 );
22888 }
22889 let out = call_atomic_ptr_4arg(
22890 "glNamedFramebufferTexture",
22891 &self.glNamedFramebufferTexture_p,
22892 framebuffer,
22893 attachment,
22894 texture,
22895 level,
22896 );
22897 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22898 {
22899 self.automatic_glGetError("glNamedFramebufferTexture");
22900 }
22901 out
22902 }
22903 #[doc(hidden)]
22904 pub unsafe fn NamedFramebufferTexture_load_with_dyn(
22905 &self,
22906 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22907 ) -> bool {
22908 load_dyn_name_atomic_ptr(
22909 get_proc_address,
22910 b"glNamedFramebufferTexture\0",
22911 &self.glNamedFramebufferTexture_p,
22912 )
22913 }
22914 #[inline]
22915 #[doc(hidden)]
22916 pub fn NamedFramebufferTexture_is_loaded(&self) -> bool {
22917 !self.glNamedFramebufferTexture_p.load(RELAX).is_null()
22918 }
22919 /// [glNamedFramebufferTextureLayer](http://docs.gl/gl4/glNamedFramebufferTextureLayer)(framebuffer, attachment, texture, level, layer)
22920 /// * `attachment` group: FramebufferAttachment
22921 #[cfg_attr(feature = "inline", inline)]
22922 #[cfg_attr(feature = "inline_always", inline(always))]
22923 pub unsafe fn NamedFramebufferTextureLayer(
22924 &self,
22925 framebuffer: GLuint,
22926 attachment: GLenum,
22927 texture: GLuint,
22928 level: GLint,
22929 layer: GLint,
22930 ) {
22931 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22932 {
22933 trace!(
22934 "calling gl.NamedFramebufferTextureLayer({:?}, {:#X}, {:?}, {:?}, {:?});",
22935 framebuffer,
22936 attachment,
22937 texture,
22938 level,
22939 layer
22940 );
22941 }
22942 let out = call_atomic_ptr_5arg(
22943 "glNamedFramebufferTextureLayer",
22944 &self.glNamedFramebufferTextureLayer_p,
22945 framebuffer,
22946 attachment,
22947 texture,
22948 level,
22949 layer,
22950 );
22951 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22952 {
22953 self.automatic_glGetError("glNamedFramebufferTextureLayer");
22954 }
22955 out
22956 }
22957 #[doc(hidden)]
22958 pub unsafe fn NamedFramebufferTextureLayer_load_with_dyn(
22959 &self,
22960 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22961 ) -> bool {
22962 load_dyn_name_atomic_ptr(
22963 get_proc_address,
22964 b"glNamedFramebufferTextureLayer\0",
22965 &self.glNamedFramebufferTextureLayer_p,
22966 )
22967 }
22968 #[inline]
22969 #[doc(hidden)]
22970 pub fn NamedFramebufferTextureLayer_is_loaded(&self) -> bool {
22971 !self.glNamedFramebufferTextureLayer_p.load(RELAX).is_null()
22972 }
22973 /// [glNamedRenderbufferStorage](http://docs.gl/gl4/glNamedRenderbufferStorage)(renderbuffer, internalformat, width, height)
22974 /// * `internalformat` group: InternalFormat
22975 #[cfg_attr(feature = "inline", inline)]
22976 #[cfg_attr(feature = "inline_always", inline(always))]
22977 pub unsafe fn NamedRenderbufferStorage(
22978 &self,
22979 renderbuffer: GLuint,
22980 internalformat: GLenum,
22981 width: GLsizei,
22982 height: GLsizei,
22983 ) {
22984 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22985 {
22986 trace!(
22987 "calling gl.NamedRenderbufferStorage({:?}, {:#X}, {:?}, {:?});",
22988 renderbuffer,
22989 internalformat,
22990 width,
22991 height
22992 );
22993 }
22994 let out = call_atomic_ptr_4arg(
22995 "glNamedRenderbufferStorage",
22996 &self.glNamedRenderbufferStorage_p,
22997 renderbuffer,
22998 internalformat,
22999 width,
23000 height,
23001 );
23002 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23003 {
23004 self.automatic_glGetError("glNamedRenderbufferStorage");
23005 }
23006 out
23007 }
23008 #[doc(hidden)]
23009 pub unsafe fn NamedRenderbufferStorage_load_with_dyn(
23010 &self,
23011 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23012 ) -> bool {
23013 load_dyn_name_atomic_ptr(
23014 get_proc_address,
23015 b"glNamedRenderbufferStorage\0",
23016 &self.glNamedRenderbufferStorage_p,
23017 )
23018 }
23019 #[inline]
23020 #[doc(hidden)]
23021 pub fn NamedRenderbufferStorage_is_loaded(&self) -> bool {
23022 !self.glNamedRenderbufferStorage_p.load(RELAX).is_null()
23023 }
23024 /// [glNamedRenderbufferStorageMultisample](http://docs.gl/gl4/glNamedRenderbufferStorageMultisample)(renderbuffer, samples, internalformat, width, height)
23025 /// * `internalformat` group: InternalFormat
23026 #[cfg_attr(feature = "inline", inline)]
23027 #[cfg_attr(feature = "inline_always", inline(always))]
23028 pub unsafe fn NamedRenderbufferStorageMultisample(
23029 &self,
23030 renderbuffer: GLuint,
23031 samples: GLsizei,
23032 internalformat: GLenum,
23033 width: GLsizei,
23034 height: GLsizei,
23035 ) {
23036 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23037 {
23038 trace!("calling gl.NamedRenderbufferStorageMultisample({:?}, {:?}, {:#X}, {:?}, {:?});", renderbuffer, samples, internalformat, width, height);
23039 }
23040 let out = call_atomic_ptr_5arg(
23041 "glNamedRenderbufferStorageMultisample",
23042 &self.glNamedRenderbufferStorageMultisample_p,
23043 renderbuffer,
23044 samples,
23045 internalformat,
23046 width,
23047 height,
23048 );
23049 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23050 {
23051 self.automatic_glGetError("glNamedRenderbufferStorageMultisample");
23052 }
23053 out
23054 }
23055 #[doc(hidden)]
23056 pub unsafe fn NamedRenderbufferStorageMultisample_load_with_dyn(
23057 &self,
23058 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23059 ) -> bool {
23060 load_dyn_name_atomic_ptr(
23061 get_proc_address,
23062 b"glNamedRenderbufferStorageMultisample\0",
23063 &self.glNamedRenderbufferStorageMultisample_p,
23064 )
23065 }
23066 #[inline]
23067 #[doc(hidden)]
23068 pub fn NamedRenderbufferStorageMultisample_is_loaded(&self) -> bool {
23069 !self
23070 .glNamedRenderbufferStorageMultisample_p
23071 .load(RELAX)
23072 .is_null()
23073 }
23074 /// [glObjectLabel](http://docs.gl/gl4/glObjectLabel)(identifier, name, length, label)
23075 /// * `identifier` group: ObjectIdentifier
23076 /// * `label` len: COMPSIZE(label,length)
23077 #[cfg_attr(feature = "inline", inline)]
23078 #[cfg_attr(feature = "inline_always", inline(always))]
23079 pub unsafe fn ObjectLabel(
23080 &self,
23081 identifier: GLenum,
23082 name: GLuint,
23083 length: GLsizei,
23084 label: *const GLchar,
23085 ) {
23086 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23087 {
23088 trace!(
23089 "calling gl.ObjectLabel({:#X}, {:?}, {:?}, {:p});",
23090 identifier,
23091 name,
23092 length,
23093 label
23094 );
23095 }
23096 let out = call_atomic_ptr_4arg(
23097 "glObjectLabel",
23098 &self.glObjectLabel_p,
23099 identifier,
23100 name,
23101 length,
23102 label,
23103 );
23104 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23105 {
23106 self.automatic_glGetError("glObjectLabel");
23107 }
23108 out
23109 }
23110 #[doc(hidden)]
23111 pub unsafe fn ObjectLabel_load_with_dyn(
23112 &self,
23113 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23114 ) -> bool {
23115 load_dyn_name_atomic_ptr(get_proc_address, b"glObjectLabel\0", &self.glObjectLabel_p)
23116 }
23117 #[inline]
23118 #[doc(hidden)]
23119 pub fn ObjectLabel_is_loaded(&self) -> bool {
23120 !self.glObjectLabel_p.load(RELAX).is_null()
23121 }
23122 /// [glObjectLabelKHR](http://docs.gl/gl4/glObjectLabelKHR)(identifier, name, length, label)
23123 /// * `identifier` group: ObjectIdentifier
23124 /// * alias of: [`glObjectLabel`]
23125 #[cfg_attr(feature = "inline", inline)]
23126 #[cfg_attr(feature = "inline_always", inline(always))]
23127 pub unsafe fn ObjectLabelKHR(
23128 &self,
23129 identifier: GLenum,
23130 name: GLuint,
23131 length: GLsizei,
23132 label: *const GLchar,
23133 ) {
23134 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23135 {
23136 trace!(
23137 "calling gl.ObjectLabelKHR({:#X}, {:?}, {:?}, {:p});",
23138 identifier,
23139 name,
23140 length,
23141 label
23142 );
23143 }
23144 let out = call_atomic_ptr_4arg(
23145 "glObjectLabelKHR",
23146 &self.glObjectLabelKHR_p,
23147 identifier,
23148 name,
23149 length,
23150 label,
23151 );
23152 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23153 {
23154 self.automatic_glGetError("glObjectLabelKHR");
23155 }
23156 out
23157 }
23158
23159 #[doc(hidden)]
23160 pub unsafe fn ObjectLabelKHR_load_with_dyn(
23161 &self,
23162 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23163 ) -> bool {
23164 load_dyn_name_atomic_ptr(
23165 get_proc_address,
23166 b"glObjectLabelKHR\0",
23167 &self.glObjectLabelKHR_p,
23168 )
23169 }
23170 #[inline]
23171 #[doc(hidden)]
23172
23173 pub fn ObjectLabelKHR_is_loaded(&self) -> bool {
23174 !self.glObjectLabelKHR_p.load(RELAX).is_null()
23175 }
23176 /// [glObjectPtrLabel](http://docs.gl/gl4/glObjectPtrLabel)(ptr, length, label)
23177 /// * `label` len: COMPSIZE(label,length)
23178 #[cfg_attr(feature = "inline", inline)]
23179 #[cfg_attr(feature = "inline_always", inline(always))]
23180 pub unsafe fn ObjectPtrLabel(
23181 &self,
23182 ptr: *const c_void,
23183 length: GLsizei,
23184 label: *const GLchar,
23185 ) {
23186 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23187 {
23188 trace!(
23189 "calling gl.ObjectPtrLabel({:p}, {:?}, {:p});",
23190 ptr,
23191 length,
23192 label
23193 );
23194 }
23195 let out = call_atomic_ptr_3arg(
23196 "glObjectPtrLabel",
23197 &self.glObjectPtrLabel_p,
23198 ptr,
23199 length,
23200 label,
23201 );
23202 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23203 {
23204 self.automatic_glGetError("glObjectPtrLabel");
23205 }
23206 out
23207 }
23208 #[doc(hidden)]
23209 pub unsafe fn ObjectPtrLabel_load_with_dyn(
23210 &self,
23211 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23212 ) -> bool {
23213 load_dyn_name_atomic_ptr(
23214 get_proc_address,
23215 b"glObjectPtrLabel\0",
23216 &self.glObjectPtrLabel_p,
23217 )
23218 }
23219 #[inline]
23220 #[doc(hidden)]
23221 pub fn ObjectPtrLabel_is_loaded(&self) -> bool {
23222 !self.glObjectPtrLabel_p.load(RELAX).is_null()
23223 }
23224 /// [glObjectPtrLabelKHR](http://docs.gl/gl4/glObjectPtrLabelKHR)(ptr, length, label)
23225 /// * alias of: [`glObjectPtrLabel`]
23226 #[cfg_attr(feature = "inline", inline)]
23227 #[cfg_attr(feature = "inline_always", inline(always))]
23228 pub unsafe fn ObjectPtrLabelKHR(
23229 &self,
23230 ptr: *const c_void,
23231 length: GLsizei,
23232 label: *const GLchar,
23233 ) {
23234 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23235 {
23236 trace!(
23237 "calling gl.ObjectPtrLabelKHR({:p}, {:?}, {:p});",
23238 ptr,
23239 length,
23240 label
23241 );
23242 }
23243 let out = call_atomic_ptr_3arg(
23244 "glObjectPtrLabelKHR",
23245 &self.glObjectPtrLabelKHR_p,
23246 ptr,
23247 length,
23248 label,
23249 );
23250 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23251 {
23252 self.automatic_glGetError("glObjectPtrLabelKHR");
23253 }
23254 out
23255 }
23256 #[doc(hidden)]
23257 pub unsafe fn ObjectPtrLabelKHR_load_with_dyn(
23258 &self,
23259 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23260 ) -> bool {
23261 load_dyn_name_atomic_ptr(
23262 get_proc_address,
23263 b"glObjectPtrLabelKHR\0",
23264 &self.glObjectPtrLabelKHR_p,
23265 )
23266 }
23267 #[inline]
23268 #[doc(hidden)]
23269 pub fn ObjectPtrLabelKHR_is_loaded(&self) -> bool {
23270 !self.glObjectPtrLabelKHR_p.load(RELAX).is_null()
23271 }
23272 /// [glPatchParameterfv](http://docs.gl/gl4/glPatchParameter)(pname, values)
23273 /// * `pname` group: PatchParameterName
23274 /// * `values` len: COMPSIZE(pname)
23275 #[cfg_attr(feature = "inline", inline)]
23276 #[cfg_attr(feature = "inline_always", inline(always))]
23277 pub unsafe fn PatchParameterfv(&self, pname: GLenum, values: *const GLfloat) {
23278 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23279 {
23280 trace!("calling gl.PatchParameterfv({:#X}, {:p});", pname, values);
23281 }
23282 let out = call_atomic_ptr_2arg(
23283 "glPatchParameterfv",
23284 &self.glPatchParameterfv_p,
23285 pname,
23286 values,
23287 );
23288 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23289 {
23290 self.automatic_glGetError("glPatchParameterfv");
23291 }
23292 out
23293 }
23294 #[doc(hidden)]
23295 pub unsafe fn PatchParameterfv_load_with_dyn(
23296 &self,
23297 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23298 ) -> bool {
23299 load_dyn_name_atomic_ptr(
23300 get_proc_address,
23301 b"glPatchParameterfv\0",
23302 &self.glPatchParameterfv_p,
23303 )
23304 }
23305 #[inline]
23306 #[doc(hidden)]
23307 pub fn PatchParameterfv_is_loaded(&self) -> bool {
23308 !self.glPatchParameterfv_p.load(RELAX).is_null()
23309 }
23310 /// [glPatchParameteri](http://docs.gl/gl4/glPatchParameter)(pname, value)
23311 /// * `pname` group: PatchParameterName
23312 #[cfg_attr(feature = "inline", inline)]
23313 #[cfg_attr(feature = "inline_always", inline(always))]
23314 pub unsafe fn PatchParameteri(&self, pname: GLenum, value: GLint) {
23315 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23316 {
23317 trace!("calling gl.PatchParameteri({:#X}, {:?});", pname, value);
23318 }
23319 let out =
23320 call_atomic_ptr_2arg("glPatchParameteri", &self.glPatchParameteri_p, pname, value);
23321 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23322 {
23323 self.automatic_glGetError("glPatchParameteri");
23324 }
23325 out
23326 }
23327 #[doc(hidden)]
23328 pub unsafe fn PatchParameteri_load_with_dyn(
23329 &self,
23330 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23331 ) -> bool {
23332 load_dyn_name_atomic_ptr(
23333 get_proc_address,
23334 b"glPatchParameteri\0",
23335 &self.glPatchParameteri_p,
23336 )
23337 }
23338 #[inline]
23339 #[doc(hidden)]
23340 pub fn PatchParameteri_is_loaded(&self) -> bool {
23341 !self.glPatchParameteri_p.load(RELAX).is_null()
23342 }
23343 /// [glPauseTransformFeedback](http://docs.gl/gl4/glPauseTransformFeedback)()
23344 #[cfg_attr(feature = "inline", inline)]
23345 #[cfg_attr(feature = "inline_always", inline(always))]
23346 pub unsafe fn PauseTransformFeedback(&self) {
23347 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23348 {
23349 trace!("calling gl.PauseTransformFeedback();",);
23350 }
23351 let out =
23352 call_atomic_ptr_0arg("glPauseTransformFeedback", &self.glPauseTransformFeedback_p);
23353 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23354 {
23355 self.automatic_glGetError("glPauseTransformFeedback");
23356 }
23357 out
23358 }
23359 #[doc(hidden)]
23360 pub unsafe fn PauseTransformFeedback_load_with_dyn(
23361 &self,
23362 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23363 ) -> bool {
23364 load_dyn_name_atomic_ptr(
23365 get_proc_address,
23366 b"glPauseTransformFeedback\0",
23367 &self.glPauseTransformFeedback_p,
23368 )
23369 }
23370 #[inline]
23371 #[doc(hidden)]
23372 pub fn PauseTransformFeedback_is_loaded(&self) -> bool {
23373 !self.glPauseTransformFeedback_p.load(RELAX).is_null()
23374 }
23375 /// [glPixelStoref](http://docs.gl/gl4/glPixelStore)(pname, param)
23376 /// * `pname` group: PixelStoreParameter
23377 /// * `param` group: CheckedFloat32
23378 #[cfg_attr(feature = "inline", inline)]
23379 #[cfg_attr(feature = "inline_always", inline(always))]
23380 pub unsafe fn PixelStoref(&self, pname: GLenum, param: GLfloat) {
23381 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23382 {
23383 trace!("calling gl.PixelStoref({:#X}, {:?});", pname, param);
23384 }
23385 let out = call_atomic_ptr_2arg("glPixelStoref", &self.glPixelStoref_p, pname, param);
23386 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23387 {
23388 self.automatic_glGetError("glPixelStoref");
23389 }
23390 out
23391 }
23392 #[doc(hidden)]
23393 pub unsafe fn PixelStoref_load_with_dyn(
23394 &self,
23395 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23396 ) -> bool {
23397 load_dyn_name_atomic_ptr(get_proc_address, b"glPixelStoref\0", &self.glPixelStoref_p)
23398 }
23399 #[inline]
23400 #[doc(hidden)]
23401 pub fn PixelStoref_is_loaded(&self) -> bool {
23402 !self.glPixelStoref_p.load(RELAX).is_null()
23403 }
23404 /// [glPixelStorei](http://docs.gl/gl4/glPixelStore)(pname, param)
23405 /// * `pname` group: PixelStoreParameter
23406 /// * `param` group: CheckedInt32
23407 #[cfg_attr(feature = "inline", inline)]
23408 #[cfg_attr(feature = "inline_always", inline(always))]
23409 pub unsafe fn PixelStorei(&self, pname: GLenum, param: GLint) {
23410 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23411 {
23412 trace!("calling gl.PixelStorei({:#X}, {:?});", pname, param);
23413 }
23414 let out = call_atomic_ptr_2arg("glPixelStorei", &self.glPixelStorei_p, pname, param);
23415 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23416 {
23417 self.automatic_glGetError("glPixelStorei");
23418 }
23419 out
23420 }
23421 #[doc(hidden)]
23422 pub unsafe fn PixelStorei_load_with_dyn(
23423 &self,
23424 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23425 ) -> bool {
23426 load_dyn_name_atomic_ptr(get_proc_address, b"glPixelStorei\0", &self.glPixelStorei_p)
23427 }
23428 #[inline]
23429 #[doc(hidden)]
23430 pub fn PixelStorei_is_loaded(&self) -> bool {
23431 !self.glPixelStorei_p.load(RELAX).is_null()
23432 }
23433 /// [glPointParameterf](http://docs.gl/gl4/glPointParameter)(pname, param)
23434 /// * `pname` group: PointParameterNameARB
23435 /// * `param` group: CheckedFloat32
23436 #[cfg_attr(feature = "inline", inline)]
23437 #[cfg_attr(feature = "inline_always", inline(always))]
23438 pub unsafe fn PointParameterf(&self, pname: GLenum, param: GLfloat) {
23439 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23440 {
23441 trace!("calling gl.PointParameterf({:#X}, {:?});", pname, param);
23442 }
23443 let out =
23444 call_atomic_ptr_2arg("glPointParameterf", &self.glPointParameterf_p, pname, param);
23445 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23446 {
23447 self.automatic_glGetError("glPointParameterf");
23448 }
23449 out
23450 }
23451 #[doc(hidden)]
23452 pub unsafe fn PointParameterf_load_with_dyn(
23453 &self,
23454 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23455 ) -> bool {
23456 load_dyn_name_atomic_ptr(
23457 get_proc_address,
23458 b"glPointParameterf\0",
23459 &self.glPointParameterf_p,
23460 )
23461 }
23462 #[inline]
23463 #[doc(hidden)]
23464 pub fn PointParameterf_is_loaded(&self) -> bool {
23465 !self.glPointParameterf_p.load(RELAX).is_null()
23466 }
23467 /// [glPointParameterfv](http://docs.gl/gl4/glPointParameter)(pname, params)
23468 /// * `pname` group: PointParameterNameARB
23469 /// * `params` group: CheckedFloat32
23470 /// * `params` len: COMPSIZE(pname)
23471 #[cfg_attr(feature = "inline", inline)]
23472 #[cfg_attr(feature = "inline_always", inline(always))]
23473 pub unsafe fn PointParameterfv(&self, pname: GLenum, params: *const GLfloat) {
23474 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23475 {
23476 trace!("calling gl.PointParameterfv({:#X}, {:p});", pname, params);
23477 }
23478 let out = call_atomic_ptr_2arg(
23479 "glPointParameterfv",
23480 &self.glPointParameterfv_p,
23481 pname,
23482 params,
23483 );
23484 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23485 {
23486 self.automatic_glGetError("glPointParameterfv");
23487 }
23488 out
23489 }
23490 #[doc(hidden)]
23491 pub unsafe fn PointParameterfv_load_with_dyn(
23492 &self,
23493 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23494 ) -> bool {
23495 load_dyn_name_atomic_ptr(
23496 get_proc_address,
23497 b"glPointParameterfv\0",
23498 &self.glPointParameterfv_p,
23499 )
23500 }
23501 #[inline]
23502 #[doc(hidden)]
23503 pub fn PointParameterfv_is_loaded(&self) -> bool {
23504 !self.glPointParameterfv_p.load(RELAX).is_null()
23505 }
23506 /// [glPointParameteri](http://docs.gl/gl4/glPointParameter)(pname, param)
23507 /// * `pname` group: PointParameterNameARB
23508 #[cfg_attr(feature = "inline", inline)]
23509 #[cfg_attr(feature = "inline_always", inline(always))]
23510 pub unsafe fn PointParameteri(&self, pname: GLenum, param: GLint) {
23511 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23512 {
23513 trace!("calling gl.PointParameteri({:#X}, {:?});", pname, param);
23514 }
23515 let out =
23516 call_atomic_ptr_2arg("glPointParameteri", &self.glPointParameteri_p, pname, param);
23517 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23518 {
23519 self.automatic_glGetError("glPointParameteri");
23520 }
23521 out
23522 }
23523 #[doc(hidden)]
23524 pub unsafe fn PointParameteri_load_with_dyn(
23525 &self,
23526 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23527 ) -> bool {
23528 load_dyn_name_atomic_ptr(
23529 get_proc_address,
23530 b"glPointParameteri\0",
23531 &self.glPointParameteri_p,
23532 )
23533 }
23534 #[inline]
23535 #[doc(hidden)]
23536 pub fn PointParameteri_is_loaded(&self) -> bool {
23537 !self.glPointParameteri_p.load(RELAX).is_null()
23538 }
23539 /// [glPointParameteriv](http://docs.gl/gl4/glPointParameter)(pname, params)
23540 /// * `pname` group: PointParameterNameARB
23541 /// * `params` len: COMPSIZE(pname)
23542 #[cfg_attr(feature = "inline", inline)]
23543 #[cfg_attr(feature = "inline_always", inline(always))]
23544 pub unsafe fn PointParameteriv(&self, pname: GLenum, params: *const GLint) {
23545 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23546 {
23547 trace!("calling gl.PointParameteriv({:#X}, {:p});", pname, params);
23548 }
23549 let out = call_atomic_ptr_2arg(
23550 "glPointParameteriv",
23551 &self.glPointParameteriv_p,
23552 pname,
23553 params,
23554 );
23555 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23556 {
23557 self.automatic_glGetError("glPointParameteriv");
23558 }
23559 out
23560 }
23561 #[doc(hidden)]
23562 pub unsafe fn PointParameteriv_load_with_dyn(
23563 &self,
23564 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23565 ) -> bool {
23566 load_dyn_name_atomic_ptr(
23567 get_proc_address,
23568 b"glPointParameteriv\0",
23569 &self.glPointParameteriv_p,
23570 )
23571 }
23572 #[inline]
23573 #[doc(hidden)]
23574 pub fn PointParameteriv_is_loaded(&self) -> bool {
23575 !self.glPointParameteriv_p.load(RELAX).is_null()
23576 }
23577 /// [glPointSize](http://docs.gl/gl4/glPointSize)(size)
23578 /// * `size` group: CheckedFloat32
23579 #[cfg_attr(feature = "inline", inline)]
23580 #[cfg_attr(feature = "inline_always", inline(always))]
23581 pub unsafe fn PointSize(&self, size: GLfloat) {
23582 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23583 {
23584 trace!("calling gl.PointSize({:?});", size);
23585 }
23586 let out = call_atomic_ptr_1arg("glPointSize", &self.glPointSize_p, size);
23587 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23588 {
23589 self.automatic_glGetError("glPointSize");
23590 }
23591 out
23592 }
23593 #[doc(hidden)]
23594 pub unsafe fn PointSize_load_with_dyn(
23595 &self,
23596 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23597 ) -> bool {
23598 load_dyn_name_atomic_ptr(get_proc_address, b"glPointSize\0", &self.glPointSize_p)
23599 }
23600 #[inline]
23601 #[doc(hidden)]
23602 pub fn PointSize_is_loaded(&self) -> bool {
23603 !self.glPointSize_p.load(RELAX).is_null()
23604 }
23605 /// [glPolygonMode](http://docs.gl/gl4/glPolygonMode)(face, mode)
23606 /// * `face` group: MaterialFace
23607 /// * `mode` group: PolygonMode
23608 #[cfg_attr(feature = "inline", inline)]
23609 #[cfg_attr(feature = "inline_always", inline(always))]
23610 pub unsafe fn PolygonMode(&self, face: GLenum, mode: GLenum) {
23611 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23612 {
23613 trace!("calling gl.PolygonMode({:#X}, {:#X});", face, mode);
23614 }
23615 let out = call_atomic_ptr_2arg("glPolygonMode", &self.glPolygonMode_p, face, mode);
23616 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23617 {
23618 self.automatic_glGetError("glPolygonMode");
23619 }
23620 out
23621 }
23622 #[doc(hidden)]
23623 pub unsafe fn PolygonMode_load_with_dyn(
23624 &self,
23625 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23626 ) -> bool {
23627 load_dyn_name_atomic_ptr(get_proc_address, b"glPolygonMode\0", &self.glPolygonMode_p)
23628 }
23629 #[inline]
23630 #[doc(hidden)]
23631 pub fn PolygonMode_is_loaded(&self) -> bool {
23632 !self.glPolygonMode_p.load(RELAX).is_null()
23633 }
23634 /// [glPolygonOffset](http://docs.gl/gl4/glPolygonOffset)(factor, units)
23635 #[cfg_attr(feature = "inline", inline)]
23636 #[cfg_attr(feature = "inline_always", inline(always))]
23637 pub unsafe fn PolygonOffset(&self, factor: GLfloat, units: GLfloat) {
23638 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23639 {
23640 trace!("calling gl.PolygonOffset({:?}, {:?});", factor, units);
23641 }
23642 let out =
23643 call_atomic_ptr_2arg("glPolygonOffset", &self.glPolygonOffset_p, factor, units);
23644 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23645 {
23646 self.automatic_glGetError("glPolygonOffset");
23647 }
23648 out
23649 }
23650 #[doc(hidden)]
23651 pub unsafe fn PolygonOffset_load_with_dyn(
23652 &self,
23653 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23654 ) -> bool {
23655 load_dyn_name_atomic_ptr(
23656 get_proc_address,
23657 b"glPolygonOffset\0",
23658 &self.glPolygonOffset_p,
23659 )
23660 }
23661 #[inline]
23662 #[doc(hidden)]
23663 pub fn PolygonOffset_is_loaded(&self) -> bool {
23664 !self.glPolygonOffset_p.load(RELAX).is_null()
23665 }
23666 /// [glPolygonOffsetClamp](http://docs.gl/gl4/glPolygonOffsetClamp)(factor, units, clamp)
23667 #[cfg_attr(feature = "inline", inline)]
23668 #[cfg_attr(feature = "inline_always", inline(always))]
23669 pub unsafe fn PolygonOffsetClamp(&self, factor: GLfloat, units: GLfloat, clamp: GLfloat) {
23670 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23671 {
23672 trace!(
23673 "calling gl.PolygonOffsetClamp({:?}, {:?}, {:?});",
23674 factor,
23675 units,
23676 clamp
23677 );
23678 }
23679 let out = call_atomic_ptr_3arg(
23680 "glPolygonOffsetClamp",
23681 &self.glPolygonOffsetClamp_p,
23682 factor,
23683 units,
23684 clamp,
23685 );
23686 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23687 {
23688 self.automatic_glGetError("glPolygonOffsetClamp");
23689 }
23690 out
23691 }
23692 #[doc(hidden)]
23693 pub unsafe fn PolygonOffsetClamp_load_with_dyn(
23694 &self,
23695 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23696 ) -> bool {
23697 load_dyn_name_atomic_ptr(
23698 get_proc_address,
23699 b"glPolygonOffsetClamp\0",
23700 &self.glPolygonOffsetClamp_p,
23701 )
23702 }
23703 #[inline]
23704 #[doc(hidden)]
23705 pub fn PolygonOffsetClamp_is_loaded(&self) -> bool {
23706 !self.glPolygonOffsetClamp_p.load(RELAX).is_null()
23707 }
23708 /// [glPopDebugGroup](http://docs.gl/gl4/glPopDebugGroup)()
23709 #[cfg_attr(feature = "inline", inline)]
23710 #[cfg_attr(feature = "inline_always", inline(always))]
23711 pub unsafe fn PopDebugGroup(&self) {
23712 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23713 {
23714 trace!("calling gl.PopDebugGroup();",);
23715 }
23716 let out = call_atomic_ptr_0arg("glPopDebugGroup", &self.glPopDebugGroup_p);
23717 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23718 {
23719 self.automatic_glGetError("glPopDebugGroup");
23720 }
23721 out
23722 }
23723 #[doc(hidden)]
23724 pub unsafe fn PopDebugGroup_load_with_dyn(
23725 &self,
23726 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23727 ) -> bool {
23728 load_dyn_name_atomic_ptr(
23729 get_proc_address,
23730 b"glPopDebugGroup\0",
23731 &self.glPopDebugGroup_p,
23732 )
23733 }
23734 #[inline]
23735 #[doc(hidden)]
23736 pub fn PopDebugGroup_is_loaded(&self) -> bool {
23737 !self.glPopDebugGroup_p.load(RELAX).is_null()
23738 }
23739 /// [glPopDebugGroupKHR](http://docs.gl/gl4/glPopDebugGroupKHR)()
23740 /// * alias of: [`glPopDebugGroup`]
23741 #[cfg_attr(feature = "inline", inline)]
23742 #[cfg_attr(feature = "inline_always", inline(always))]
23743 pub unsafe fn PopDebugGroupKHR(&self) {
23744 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23745 {
23746 trace!("calling gl.PopDebugGroupKHR();",);
23747 }
23748 let out = call_atomic_ptr_0arg("glPopDebugGroupKHR", &self.glPopDebugGroupKHR_p);
23749 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23750 {
23751 self.automatic_glGetError("glPopDebugGroupKHR");
23752 }
23753 out
23754 }
23755 #[doc(hidden)]
23756 pub unsafe fn PopDebugGroupKHR_load_with_dyn(
23757 &self,
23758 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23759 ) -> bool {
23760 load_dyn_name_atomic_ptr(
23761 get_proc_address,
23762 b"glPopDebugGroupKHR\0",
23763 &self.glPopDebugGroupKHR_p,
23764 )
23765 }
23766 #[inline]
23767 #[doc(hidden)]
23768 pub fn PopDebugGroupKHR_is_loaded(&self) -> bool {
23769 !self.glPopDebugGroupKHR_p.load(RELAX).is_null()
23770 }
23771 /// [glPrimitiveBoundingBox](http://docs.gl/gl4/glPrimitiveBoundingBox)(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW)
23772 #[cfg_attr(feature = "inline", inline)]
23773 #[cfg_attr(feature = "inline_always", inline(always))]
23774 pub unsafe fn PrimitiveBoundingBox(
23775 &self,
23776 minX: GLfloat,
23777 minY: GLfloat,
23778 minZ: GLfloat,
23779 minW: GLfloat,
23780 maxX: GLfloat,
23781 maxY: GLfloat,
23782 maxZ: GLfloat,
23783 maxW: GLfloat,
23784 ) {
23785 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23786 {
23787 trace!("calling gl.PrimitiveBoundingBox({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", minX, minY, minZ, minW, maxX, maxY, maxZ, maxW);
23788 }
23789 let out = call_atomic_ptr_8arg(
23790 "glPrimitiveBoundingBox",
23791 &self.glPrimitiveBoundingBox_p,
23792 minX,
23793 minY,
23794 minZ,
23795 minW,
23796 maxX,
23797 maxY,
23798 maxZ,
23799 maxW,
23800 );
23801 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23802 {
23803 self.automatic_glGetError("glPrimitiveBoundingBox");
23804 }
23805 out
23806 }
23807 #[doc(hidden)]
23808 pub unsafe fn PrimitiveBoundingBox_load_with_dyn(
23809 &self,
23810 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23811 ) -> bool {
23812 load_dyn_name_atomic_ptr(
23813 get_proc_address,
23814 b"glPrimitiveBoundingBox\0",
23815 &self.glPrimitiveBoundingBox_p,
23816 )
23817 }
23818 #[inline]
23819 #[doc(hidden)]
23820 pub fn PrimitiveBoundingBox_is_loaded(&self) -> bool {
23821 !self.glPrimitiveBoundingBox_p.load(RELAX).is_null()
23822 }
23823 /// [glPrimitiveRestartIndex](http://docs.gl/gl4/glPrimitiveRestartIndex)(index)
23824 #[cfg_attr(feature = "inline", inline)]
23825 #[cfg_attr(feature = "inline_always", inline(always))]
23826 pub unsafe fn PrimitiveRestartIndex(&self, index: GLuint) {
23827 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23828 {
23829 trace!("calling gl.PrimitiveRestartIndex({:?});", index);
23830 }
23831 let out = call_atomic_ptr_1arg(
23832 "glPrimitiveRestartIndex",
23833 &self.glPrimitiveRestartIndex_p,
23834 index,
23835 );
23836 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23837 {
23838 self.automatic_glGetError("glPrimitiveRestartIndex");
23839 }
23840 out
23841 }
23842 #[doc(hidden)]
23843 pub unsafe fn PrimitiveRestartIndex_load_with_dyn(
23844 &self,
23845 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23846 ) -> bool {
23847 load_dyn_name_atomic_ptr(
23848 get_proc_address,
23849 b"glPrimitiveRestartIndex\0",
23850 &self.glPrimitiveRestartIndex_p,
23851 )
23852 }
23853 #[inline]
23854 #[doc(hidden)]
23855 pub fn PrimitiveRestartIndex_is_loaded(&self) -> bool {
23856 !self.glPrimitiveRestartIndex_p.load(RELAX).is_null()
23857 }
23858 /// [glProgramBinary](http://docs.gl/gl4/glProgramBinary)(program, binaryFormat, binary, length)
23859 /// * `binary` len: length
23860 #[cfg_attr(feature = "inline", inline)]
23861 #[cfg_attr(feature = "inline_always", inline(always))]
23862 pub unsafe fn ProgramBinary(
23863 &self,
23864 program: GLuint,
23865 binaryFormat: GLenum,
23866 binary: *const c_void,
23867 length: GLsizei,
23868 ) {
23869 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23870 {
23871 trace!(
23872 "calling gl.ProgramBinary({:?}, {:#X}, {:p}, {:?});",
23873 program,
23874 binaryFormat,
23875 binary,
23876 length
23877 );
23878 }
23879 let out = call_atomic_ptr_4arg(
23880 "glProgramBinary",
23881 &self.glProgramBinary_p,
23882 program,
23883 binaryFormat,
23884 binary,
23885 length,
23886 );
23887 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23888 {
23889 self.automatic_glGetError("glProgramBinary");
23890 }
23891 out
23892 }
23893 #[doc(hidden)]
23894 pub unsafe fn ProgramBinary_load_with_dyn(
23895 &self,
23896 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23897 ) -> bool {
23898 load_dyn_name_atomic_ptr(
23899 get_proc_address,
23900 b"glProgramBinary\0",
23901 &self.glProgramBinary_p,
23902 )
23903 }
23904 #[inline]
23905 #[doc(hidden)]
23906 pub fn ProgramBinary_is_loaded(&self) -> bool {
23907 !self.glProgramBinary_p.load(RELAX).is_null()
23908 }
23909 /// [glProgramParameteri](http://docs.gl/gl4/glProgramParameteri)(program, pname, value)
23910 /// * `pname` group: ProgramParameterPName
23911 #[cfg_attr(feature = "inline", inline)]
23912 #[cfg_attr(feature = "inline_always", inline(always))]
23913 pub unsafe fn ProgramParameteri(&self, program: GLuint, pname: GLenum, value: GLint) {
23914 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23915 {
23916 trace!(
23917 "calling gl.ProgramParameteri({:?}, {:#X}, {:?});",
23918 program,
23919 pname,
23920 value
23921 );
23922 }
23923 let out = call_atomic_ptr_3arg(
23924 "glProgramParameteri",
23925 &self.glProgramParameteri_p,
23926 program,
23927 pname,
23928 value,
23929 );
23930 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23931 {
23932 self.automatic_glGetError("glProgramParameteri");
23933 }
23934 out
23935 }
23936 #[doc(hidden)]
23937 pub unsafe fn ProgramParameteri_load_with_dyn(
23938 &self,
23939 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23940 ) -> bool {
23941 load_dyn_name_atomic_ptr(
23942 get_proc_address,
23943 b"glProgramParameteri\0",
23944 &self.glProgramParameteri_p,
23945 )
23946 }
23947 #[inline]
23948 #[doc(hidden)]
23949 pub fn ProgramParameteri_is_loaded(&self) -> bool {
23950 !self.glProgramParameteri_p.load(RELAX).is_null()
23951 }
23952 /// [glProgramUniform1d](http://docs.gl/gl4/glProgramUniform1d)(program, location, v0)
23953 #[cfg_attr(feature = "inline", inline)]
23954 #[cfg_attr(feature = "inline_always", inline(always))]
23955 pub unsafe fn ProgramUniform1d(&self, program: GLuint, location: GLint, v0: GLdouble) {
23956 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23957 {
23958 trace!(
23959 "calling gl.ProgramUniform1d({:?}, {:?}, {:?});",
23960 program,
23961 location,
23962 v0
23963 );
23964 }
23965 let out = call_atomic_ptr_3arg(
23966 "glProgramUniform1d",
23967 &self.glProgramUniform1d_p,
23968 program,
23969 location,
23970 v0,
23971 );
23972 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23973 {
23974 self.automatic_glGetError("glProgramUniform1d");
23975 }
23976 out
23977 }
23978 #[doc(hidden)]
23979 pub unsafe fn ProgramUniform1d_load_with_dyn(
23980 &self,
23981 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23982 ) -> bool {
23983 load_dyn_name_atomic_ptr(
23984 get_proc_address,
23985 b"glProgramUniform1d\0",
23986 &self.glProgramUniform1d_p,
23987 )
23988 }
23989 #[inline]
23990 #[doc(hidden)]
23991 pub fn ProgramUniform1d_is_loaded(&self) -> bool {
23992 !self.glProgramUniform1d_p.load(RELAX).is_null()
23993 }
23994 /// [glProgramUniform1dv](http://docs.gl/gl4/glProgramUniform1dv)(program, location, count, value)
23995 /// * `value` len: count
23996 #[cfg_attr(feature = "inline", inline)]
23997 #[cfg_attr(feature = "inline_always", inline(always))]
23998 pub unsafe fn ProgramUniform1dv(
23999 &self,
24000 program: GLuint,
24001 location: GLint,
24002 count: GLsizei,
24003 value: *const GLdouble,
24004 ) {
24005 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24006 {
24007 trace!(
24008 "calling gl.ProgramUniform1dv({:?}, {:?}, {:?}, {:p});",
24009 program,
24010 location,
24011 count,
24012 value
24013 );
24014 }
24015 let out = call_atomic_ptr_4arg(
24016 "glProgramUniform1dv",
24017 &self.glProgramUniform1dv_p,
24018 program,
24019 location,
24020 count,
24021 value,
24022 );
24023 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24024 {
24025 self.automatic_glGetError("glProgramUniform1dv");
24026 }
24027 out
24028 }
24029 #[doc(hidden)]
24030 pub unsafe fn ProgramUniform1dv_load_with_dyn(
24031 &self,
24032 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24033 ) -> bool {
24034 load_dyn_name_atomic_ptr(
24035 get_proc_address,
24036 b"glProgramUniform1dv\0",
24037 &self.glProgramUniform1dv_p,
24038 )
24039 }
24040 #[inline]
24041 #[doc(hidden)]
24042 pub fn ProgramUniform1dv_is_loaded(&self) -> bool {
24043 !self.glProgramUniform1dv_p.load(RELAX).is_null()
24044 }
24045 /// [glProgramUniform1f](http://docs.gl/gl4/glProgramUniform)(program, location, v0)
24046 #[cfg_attr(feature = "inline", inline)]
24047 #[cfg_attr(feature = "inline_always", inline(always))]
24048 pub unsafe fn ProgramUniform1f(&self, program: GLuint, location: GLint, v0: GLfloat) {
24049 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24050 {
24051 trace!(
24052 "calling gl.ProgramUniform1f({:?}, {:?}, {:?});",
24053 program,
24054 location,
24055 v0
24056 );
24057 }
24058 let out = call_atomic_ptr_3arg(
24059 "glProgramUniform1f",
24060 &self.glProgramUniform1f_p,
24061 program,
24062 location,
24063 v0,
24064 );
24065 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24066 {
24067 self.automatic_glGetError("glProgramUniform1f");
24068 }
24069 out
24070 }
24071 #[doc(hidden)]
24072 pub unsafe fn ProgramUniform1f_load_with_dyn(
24073 &self,
24074 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24075 ) -> bool {
24076 load_dyn_name_atomic_ptr(
24077 get_proc_address,
24078 b"glProgramUniform1f\0",
24079 &self.glProgramUniform1f_p,
24080 )
24081 }
24082 #[inline]
24083 #[doc(hidden)]
24084 pub fn ProgramUniform1f_is_loaded(&self) -> bool {
24085 !self.glProgramUniform1f_p.load(RELAX).is_null()
24086 }
24087 /// [glProgramUniform1fv](http://docs.gl/gl4/glProgramUniform)(program, location, count, value)
24088 /// * `value` len: count
24089 #[cfg_attr(feature = "inline", inline)]
24090 #[cfg_attr(feature = "inline_always", inline(always))]
24091 pub unsafe fn ProgramUniform1fv(
24092 &self,
24093 program: GLuint,
24094 location: GLint,
24095 count: GLsizei,
24096 value: *const GLfloat,
24097 ) {
24098 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24099 {
24100 trace!(
24101 "calling gl.ProgramUniform1fv({:?}, {:?}, {:?}, {:p});",
24102 program,
24103 location,
24104 count,
24105 value
24106 );
24107 }
24108 let out = call_atomic_ptr_4arg(
24109 "glProgramUniform1fv",
24110 &self.glProgramUniform1fv_p,
24111 program,
24112 location,
24113 count,
24114 value,
24115 );
24116 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24117 {
24118 self.automatic_glGetError("glProgramUniform1fv");
24119 }
24120 out
24121 }
24122 #[doc(hidden)]
24123 pub unsafe fn ProgramUniform1fv_load_with_dyn(
24124 &self,
24125 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24126 ) -> bool {
24127 load_dyn_name_atomic_ptr(
24128 get_proc_address,
24129 b"glProgramUniform1fv\0",
24130 &self.glProgramUniform1fv_p,
24131 )
24132 }
24133 #[inline]
24134 #[doc(hidden)]
24135 pub fn ProgramUniform1fv_is_loaded(&self) -> bool {
24136 !self.glProgramUniform1fv_p.load(RELAX).is_null()
24137 }
24138 /// [glProgramUniform1i](http://docs.gl/gl4/glProgramUniform)(program, location, v0)
24139 #[cfg_attr(feature = "inline", inline)]
24140 #[cfg_attr(feature = "inline_always", inline(always))]
24141 pub unsafe fn ProgramUniform1i(&self, program: GLuint, location: GLint, v0: GLint) {
24142 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24143 {
24144 trace!(
24145 "calling gl.ProgramUniform1i({:?}, {:?}, {:?});",
24146 program,
24147 location,
24148 v0
24149 );
24150 }
24151 let out = call_atomic_ptr_3arg(
24152 "glProgramUniform1i",
24153 &self.glProgramUniform1i_p,
24154 program,
24155 location,
24156 v0,
24157 );
24158 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24159 {
24160 self.automatic_glGetError("glProgramUniform1i");
24161 }
24162 out
24163 }
24164 #[doc(hidden)]
24165 pub unsafe fn ProgramUniform1i_load_with_dyn(
24166 &self,
24167 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24168 ) -> bool {
24169 load_dyn_name_atomic_ptr(
24170 get_proc_address,
24171 b"glProgramUniform1i\0",
24172 &self.glProgramUniform1i_p,
24173 )
24174 }
24175 #[inline]
24176 #[doc(hidden)]
24177 pub fn ProgramUniform1i_is_loaded(&self) -> bool {
24178 !self.glProgramUniform1i_p.load(RELAX).is_null()
24179 }
24180 /// [glProgramUniform1iv](http://docs.gl/gl4/glProgramUniform)(program, location, count, value)
24181 /// * `value` len: count
24182 #[cfg_attr(feature = "inline", inline)]
24183 #[cfg_attr(feature = "inline_always", inline(always))]
24184 pub unsafe fn ProgramUniform1iv(
24185 &self,
24186 program: GLuint,
24187 location: GLint,
24188 count: GLsizei,
24189 value: *const GLint,
24190 ) {
24191 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24192 {
24193 trace!(
24194 "calling gl.ProgramUniform1iv({:?}, {:?}, {:?}, {:p});",
24195 program,
24196 location,
24197 count,
24198 value
24199 );
24200 }
24201 let out = call_atomic_ptr_4arg(
24202 "glProgramUniform1iv",
24203 &self.glProgramUniform1iv_p,
24204 program,
24205 location,
24206 count,
24207 value,
24208 );
24209 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24210 {
24211 self.automatic_glGetError("glProgramUniform1iv");
24212 }
24213 out
24214 }
24215 #[doc(hidden)]
24216 pub unsafe fn ProgramUniform1iv_load_with_dyn(
24217 &self,
24218 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24219 ) -> bool {
24220 load_dyn_name_atomic_ptr(
24221 get_proc_address,
24222 b"glProgramUniform1iv\0",
24223 &self.glProgramUniform1iv_p,
24224 )
24225 }
24226 #[inline]
24227 #[doc(hidden)]
24228 pub fn ProgramUniform1iv_is_loaded(&self) -> bool {
24229 !self.glProgramUniform1iv_p.load(RELAX).is_null()
24230 }
24231 /// [glProgramUniform1ui](http://docs.gl/gl4/glProgramUniform)(program, location, v0)
24232 #[cfg_attr(feature = "inline", inline)]
24233 #[cfg_attr(feature = "inline_always", inline(always))]
24234 pub unsafe fn ProgramUniform1ui(&self, program: GLuint, location: GLint, v0: GLuint) {
24235 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24236 {
24237 trace!(
24238 "calling gl.ProgramUniform1ui({:?}, {:?}, {:?});",
24239 program,
24240 location,
24241 v0
24242 );
24243 }
24244 let out = call_atomic_ptr_3arg(
24245 "glProgramUniform1ui",
24246 &self.glProgramUniform1ui_p,
24247 program,
24248 location,
24249 v0,
24250 );
24251 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24252 {
24253 self.automatic_glGetError("glProgramUniform1ui");
24254 }
24255 out
24256 }
24257 #[doc(hidden)]
24258 pub unsafe fn ProgramUniform1ui_load_with_dyn(
24259 &self,
24260 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24261 ) -> bool {
24262 load_dyn_name_atomic_ptr(
24263 get_proc_address,
24264 b"glProgramUniform1ui\0",
24265 &self.glProgramUniform1ui_p,
24266 )
24267 }
24268 #[inline]
24269 #[doc(hidden)]
24270 pub fn ProgramUniform1ui_is_loaded(&self) -> bool {
24271 !self.glProgramUniform1ui_p.load(RELAX).is_null()
24272 }
24273 /// [glProgramUniform1uiv](http://docs.gl/gl4/glProgramUniform)(program, location, count, value)
24274 /// * `value` len: count
24275 #[cfg_attr(feature = "inline", inline)]
24276 #[cfg_attr(feature = "inline_always", inline(always))]
24277 pub unsafe fn ProgramUniform1uiv(
24278 &self,
24279 program: GLuint,
24280 location: GLint,
24281 count: GLsizei,
24282 value: *const GLuint,
24283 ) {
24284 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24285 {
24286 trace!(
24287 "calling gl.ProgramUniform1uiv({:?}, {:?}, {:?}, {:p});",
24288 program,
24289 location,
24290 count,
24291 value
24292 );
24293 }
24294 let out = call_atomic_ptr_4arg(
24295 "glProgramUniform1uiv",
24296 &self.glProgramUniform1uiv_p,
24297 program,
24298 location,
24299 count,
24300 value,
24301 );
24302 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24303 {
24304 self.automatic_glGetError("glProgramUniform1uiv");
24305 }
24306 out
24307 }
24308 #[doc(hidden)]
24309 pub unsafe fn ProgramUniform1uiv_load_with_dyn(
24310 &self,
24311 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24312 ) -> bool {
24313 load_dyn_name_atomic_ptr(
24314 get_proc_address,
24315 b"glProgramUniform1uiv\0",
24316 &self.glProgramUniform1uiv_p,
24317 )
24318 }
24319 #[inline]
24320 #[doc(hidden)]
24321 pub fn ProgramUniform1uiv_is_loaded(&self) -> bool {
24322 !self.glProgramUniform1uiv_p.load(RELAX).is_null()
24323 }
24324 /// [glProgramUniform2d](http://docs.gl/gl4/glProgramUniform2d)(program, location, v0, v1)
24325 #[cfg_attr(feature = "inline", inline)]
24326 #[cfg_attr(feature = "inline_always", inline(always))]
24327 pub unsafe fn ProgramUniform2d(
24328 &self,
24329 program: GLuint,
24330 location: GLint,
24331 v0: GLdouble,
24332 v1: GLdouble,
24333 ) {
24334 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24335 {
24336 trace!(
24337 "calling gl.ProgramUniform2d({:?}, {:?}, {:?}, {:?});",
24338 program,
24339 location,
24340 v0,
24341 v1
24342 );
24343 }
24344 let out = call_atomic_ptr_4arg(
24345 "glProgramUniform2d",
24346 &self.glProgramUniform2d_p,
24347 program,
24348 location,
24349 v0,
24350 v1,
24351 );
24352 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24353 {
24354 self.automatic_glGetError("glProgramUniform2d");
24355 }
24356 out
24357 }
24358 #[doc(hidden)]
24359 pub unsafe fn ProgramUniform2d_load_with_dyn(
24360 &self,
24361 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24362 ) -> bool {
24363 load_dyn_name_atomic_ptr(
24364 get_proc_address,
24365 b"glProgramUniform2d\0",
24366 &self.glProgramUniform2d_p,
24367 )
24368 }
24369 #[inline]
24370 #[doc(hidden)]
24371 pub fn ProgramUniform2d_is_loaded(&self) -> bool {
24372 !self.glProgramUniform2d_p.load(RELAX).is_null()
24373 }
24374 /// [glProgramUniform2dv](http://docs.gl/gl4/glProgramUniform2dv)(program, location, count, value)
24375 /// * `value` len: count*2
24376 #[cfg_attr(feature = "inline", inline)]
24377 #[cfg_attr(feature = "inline_always", inline(always))]
24378 pub unsafe fn ProgramUniform2dv(
24379 &self,
24380 program: GLuint,
24381 location: GLint,
24382 count: GLsizei,
24383 value: *const GLdouble,
24384 ) {
24385 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24386 {
24387 trace!(
24388 "calling gl.ProgramUniform2dv({:?}, {:?}, {:?}, {:p});",
24389 program,
24390 location,
24391 count,
24392 value
24393 );
24394 }
24395 let out = call_atomic_ptr_4arg(
24396 "glProgramUniform2dv",
24397 &self.glProgramUniform2dv_p,
24398 program,
24399 location,
24400 count,
24401 value,
24402 );
24403 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24404 {
24405 self.automatic_glGetError("glProgramUniform2dv");
24406 }
24407 out
24408 }
24409 #[doc(hidden)]
24410 pub unsafe fn ProgramUniform2dv_load_with_dyn(
24411 &self,
24412 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24413 ) -> bool {
24414 load_dyn_name_atomic_ptr(
24415 get_proc_address,
24416 b"glProgramUniform2dv\0",
24417 &self.glProgramUniform2dv_p,
24418 )
24419 }
24420 #[inline]
24421 #[doc(hidden)]
24422 pub fn ProgramUniform2dv_is_loaded(&self) -> bool {
24423 !self.glProgramUniform2dv_p.load(RELAX).is_null()
24424 }
24425 /// [glProgramUniform2f](http://docs.gl/gl4/glProgramUniform)(program, location, v0, v1)
24426 #[cfg_attr(feature = "inline", inline)]
24427 #[cfg_attr(feature = "inline_always", inline(always))]
24428 pub unsafe fn ProgramUniform2f(
24429 &self,
24430 program: GLuint,
24431 location: GLint,
24432 v0: GLfloat,
24433 v1: GLfloat,
24434 ) {
24435 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24436 {
24437 trace!(
24438 "calling gl.ProgramUniform2f({:?}, {:?}, {:?}, {:?});",
24439 program,
24440 location,
24441 v0,
24442 v1
24443 );
24444 }
24445 let out = call_atomic_ptr_4arg(
24446 "glProgramUniform2f",
24447 &self.glProgramUniform2f_p,
24448 program,
24449 location,
24450 v0,
24451 v1,
24452 );
24453 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24454 {
24455 self.automatic_glGetError("glProgramUniform2f");
24456 }
24457 out
24458 }
24459 #[doc(hidden)]
24460 pub unsafe fn ProgramUniform2f_load_with_dyn(
24461 &self,
24462 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24463 ) -> bool {
24464 load_dyn_name_atomic_ptr(
24465 get_proc_address,
24466 b"glProgramUniform2f\0",
24467 &self.glProgramUniform2f_p,
24468 )
24469 }
24470 #[inline]
24471 #[doc(hidden)]
24472 pub fn ProgramUniform2f_is_loaded(&self) -> bool {
24473 !self.glProgramUniform2f_p.load(RELAX).is_null()
24474 }
24475 /// [glProgramUniform2fv](http://docs.gl/gl4/glProgramUniform)(program, location, count, value)
24476 /// * `value` len: count*2
24477 #[cfg_attr(feature = "inline", inline)]
24478 #[cfg_attr(feature = "inline_always", inline(always))]
24479 pub unsafe fn ProgramUniform2fv(
24480 &self,
24481 program: GLuint,
24482 location: GLint,
24483 count: GLsizei,
24484 value: *const GLfloat,
24485 ) {
24486 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24487 {
24488 trace!(
24489 "calling gl.ProgramUniform2fv({:?}, {:?}, {:?}, {:p});",
24490 program,
24491 location,
24492 count,
24493 value
24494 );
24495 }
24496 let out = call_atomic_ptr_4arg(
24497 "glProgramUniform2fv",
24498 &self.glProgramUniform2fv_p,
24499 program,
24500 location,
24501 count,
24502 value,
24503 );
24504 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24505 {
24506 self.automatic_glGetError("glProgramUniform2fv");
24507 }
24508 out
24509 }
24510 #[doc(hidden)]
24511 pub unsafe fn ProgramUniform2fv_load_with_dyn(
24512 &self,
24513 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24514 ) -> bool {
24515 load_dyn_name_atomic_ptr(
24516 get_proc_address,
24517 b"glProgramUniform2fv\0",
24518 &self.glProgramUniform2fv_p,
24519 )
24520 }
24521 #[inline]
24522 #[doc(hidden)]
24523 pub fn ProgramUniform2fv_is_loaded(&self) -> bool {
24524 !self.glProgramUniform2fv_p.load(RELAX).is_null()
24525 }
24526 /// [glProgramUniform2i](http://docs.gl/gl4/glProgramUniform)(program, location, v0, v1)
24527 #[cfg_attr(feature = "inline", inline)]
24528 #[cfg_attr(feature = "inline_always", inline(always))]
24529 pub unsafe fn ProgramUniform2i(
24530 &self,
24531 program: GLuint,
24532 location: GLint,
24533 v0: GLint,
24534 v1: GLint,
24535 ) {
24536 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24537 {
24538 trace!(
24539 "calling gl.ProgramUniform2i({:?}, {:?}, {:?}, {:?});",
24540 program,
24541 location,
24542 v0,
24543 v1
24544 );
24545 }
24546 let out = call_atomic_ptr_4arg(
24547 "glProgramUniform2i",
24548 &self.glProgramUniform2i_p,
24549 program,
24550 location,
24551 v0,
24552 v1,
24553 );
24554 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24555 {
24556 self.automatic_glGetError("glProgramUniform2i");
24557 }
24558 out
24559 }
24560 #[doc(hidden)]
24561 pub unsafe fn ProgramUniform2i_load_with_dyn(
24562 &self,
24563 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24564 ) -> bool {
24565 load_dyn_name_atomic_ptr(
24566 get_proc_address,
24567 b"glProgramUniform2i\0",
24568 &self.glProgramUniform2i_p,
24569 )
24570 }
24571 #[inline]
24572 #[doc(hidden)]
24573 pub fn ProgramUniform2i_is_loaded(&self) -> bool {
24574 !self.glProgramUniform2i_p.load(RELAX).is_null()
24575 }
24576 /// [glProgramUniform2iv](http://docs.gl/gl4/glProgramUniform)(program, location, count, value)
24577 /// * `value` len: count*2
24578 #[cfg_attr(feature = "inline", inline)]
24579 #[cfg_attr(feature = "inline_always", inline(always))]
24580 pub unsafe fn ProgramUniform2iv(
24581 &self,
24582 program: GLuint,
24583 location: GLint,
24584 count: GLsizei,
24585 value: *const GLint,
24586 ) {
24587 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24588 {
24589 trace!(
24590 "calling gl.ProgramUniform2iv({:?}, {:?}, {:?}, {:p});",
24591 program,
24592 location,
24593 count,
24594 value
24595 );
24596 }
24597 let out = call_atomic_ptr_4arg(
24598 "glProgramUniform2iv",
24599 &self.glProgramUniform2iv_p,
24600 program,
24601 location,
24602 count,
24603 value,
24604 );
24605 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24606 {
24607 self.automatic_glGetError("glProgramUniform2iv");
24608 }
24609 out
24610 }
24611 #[doc(hidden)]
24612 pub unsafe fn ProgramUniform2iv_load_with_dyn(
24613 &self,
24614 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24615 ) -> bool {
24616 load_dyn_name_atomic_ptr(
24617 get_proc_address,
24618 b"glProgramUniform2iv\0",
24619 &self.glProgramUniform2iv_p,
24620 )
24621 }
24622 #[inline]
24623 #[doc(hidden)]
24624 pub fn ProgramUniform2iv_is_loaded(&self) -> bool {
24625 !self.glProgramUniform2iv_p.load(RELAX).is_null()
24626 }
24627 /// [glProgramUniform2ui](http://docs.gl/gl4/glProgramUniform)(program, location, v0, v1)
24628 #[cfg_attr(feature = "inline", inline)]
24629 #[cfg_attr(feature = "inline_always", inline(always))]
24630 pub unsafe fn ProgramUniform2ui(
24631 &self,
24632 program: GLuint,
24633 location: GLint,
24634 v0: GLuint,
24635 v1: GLuint,
24636 ) {
24637 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24638 {
24639 trace!(
24640 "calling gl.ProgramUniform2ui({:?}, {:?}, {:?}, {:?});",
24641 program,
24642 location,
24643 v0,
24644 v1
24645 );
24646 }
24647 let out = call_atomic_ptr_4arg(
24648 "glProgramUniform2ui",
24649 &self.glProgramUniform2ui_p,
24650 program,
24651 location,
24652 v0,
24653 v1,
24654 );
24655 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24656 {
24657 self.automatic_glGetError("glProgramUniform2ui");
24658 }
24659 out
24660 }
24661 #[doc(hidden)]
24662 pub unsafe fn ProgramUniform2ui_load_with_dyn(
24663 &self,
24664 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24665 ) -> bool {
24666 load_dyn_name_atomic_ptr(
24667 get_proc_address,
24668 b"glProgramUniform2ui\0",
24669 &self.glProgramUniform2ui_p,
24670 )
24671 }
24672 #[inline]
24673 #[doc(hidden)]
24674 pub fn ProgramUniform2ui_is_loaded(&self) -> bool {
24675 !self.glProgramUniform2ui_p.load(RELAX).is_null()
24676 }
24677 /// [glProgramUniform2uiv](http://docs.gl/gl4/glProgramUniform)(program, location, count, value)
24678 /// * `value` len: count*2
24679 #[cfg_attr(feature = "inline", inline)]
24680 #[cfg_attr(feature = "inline_always", inline(always))]
24681 pub unsafe fn ProgramUniform2uiv(
24682 &self,
24683 program: GLuint,
24684 location: GLint,
24685 count: GLsizei,
24686 value: *const GLuint,
24687 ) {
24688 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24689 {
24690 trace!(
24691 "calling gl.ProgramUniform2uiv({:?}, {:?}, {:?}, {:p});",
24692 program,
24693 location,
24694 count,
24695 value
24696 );
24697 }
24698 let out = call_atomic_ptr_4arg(
24699 "glProgramUniform2uiv",
24700 &self.glProgramUniform2uiv_p,
24701 program,
24702 location,
24703 count,
24704 value,
24705 );
24706 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24707 {
24708 self.automatic_glGetError("glProgramUniform2uiv");
24709 }
24710 out
24711 }
24712 #[doc(hidden)]
24713 pub unsafe fn ProgramUniform2uiv_load_with_dyn(
24714 &self,
24715 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24716 ) -> bool {
24717 load_dyn_name_atomic_ptr(
24718 get_proc_address,
24719 b"glProgramUniform2uiv\0",
24720 &self.glProgramUniform2uiv_p,
24721 )
24722 }
24723 #[inline]
24724 #[doc(hidden)]
24725 pub fn ProgramUniform2uiv_is_loaded(&self) -> bool {
24726 !self.glProgramUniform2uiv_p.load(RELAX).is_null()
24727 }
24728 /// [glProgramUniform3d](http://docs.gl/gl4/glProgramUniform3d)(program, location, v0, v1, v2)
24729 #[cfg_attr(feature = "inline", inline)]
24730 #[cfg_attr(feature = "inline_always", inline(always))]
24731 pub unsafe fn ProgramUniform3d(
24732 &self,
24733 program: GLuint,
24734 location: GLint,
24735 v0: GLdouble,
24736 v1: GLdouble,
24737 v2: GLdouble,
24738 ) {
24739 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24740 {
24741 trace!(
24742 "calling gl.ProgramUniform3d({:?}, {:?}, {:?}, {:?}, {:?});",
24743 program,
24744 location,
24745 v0,
24746 v1,
24747 v2
24748 );
24749 }
24750 let out = call_atomic_ptr_5arg(
24751 "glProgramUniform3d",
24752 &self.glProgramUniform3d_p,
24753 program,
24754 location,
24755 v0,
24756 v1,
24757 v2,
24758 );
24759 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24760 {
24761 self.automatic_glGetError("glProgramUniform3d");
24762 }
24763 out
24764 }
24765 #[doc(hidden)]
24766 pub unsafe fn ProgramUniform3d_load_with_dyn(
24767 &self,
24768 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24769 ) -> bool {
24770 load_dyn_name_atomic_ptr(
24771 get_proc_address,
24772 b"glProgramUniform3d\0",
24773 &self.glProgramUniform3d_p,
24774 )
24775 }
24776 #[inline]
24777 #[doc(hidden)]
24778 pub fn ProgramUniform3d_is_loaded(&self) -> bool {
24779 !self.glProgramUniform3d_p.load(RELAX).is_null()
24780 }
24781 /// [glProgramUniform3dv](http://docs.gl/gl4/glProgramUniform3dv)(program, location, count, value)
24782 /// * `value` len: count*3
24783 #[cfg_attr(feature = "inline", inline)]
24784 #[cfg_attr(feature = "inline_always", inline(always))]
24785 pub unsafe fn ProgramUniform3dv(
24786 &self,
24787 program: GLuint,
24788 location: GLint,
24789 count: GLsizei,
24790 value: *const GLdouble,
24791 ) {
24792 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24793 {
24794 trace!(
24795 "calling gl.ProgramUniform3dv({:?}, {:?}, {:?}, {:p});",
24796 program,
24797 location,
24798 count,
24799 value
24800 );
24801 }
24802 let out = call_atomic_ptr_4arg(
24803 "glProgramUniform3dv",
24804 &self.glProgramUniform3dv_p,
24805 program,
24806 location,
24807 count,
24808 value,
24809 );
24810 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24811 {
24812 self.automatic_glGetError("glProgramUniform3dv");
24813 }
24814 out
24815 }
24816 #[doc(hidden)]
24817 pub unsafe fn ProgramUniform3dv_load_with_dyn(
24818 &self,
24819 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24820 ) -> bool {
24821 load_dyn_name_atomic_ptr(
24822 get_proc_address,
24823 b"glProgramUniform3dv\0",
24824 &self.glProgramUniform3dv_p,
24825 )
24826 }
24827 #[inline]
24828 #[doc(hidden)]
24829 pub fn ProgramUniform3dv_is_loaded(&self) -> bool {
24830 !self.glProgramUniform3dv_p.load(RELAX).is_null()
24831 }
24832 /// [glProgramUniform3f](http://docs.gl/gl4/glProgramUniform)(program, location, v0, v1, v2)
24833 #[cfg_attr(feature = "inline", inline)]
24834 #[cfg_attr(feature = "inline_always", inline(always))]
24835 pub unsafe fn ProgramUniform3f(
24836 &self,
24837 program: GLuint,
24838 location: GLint,
24839 v0: GLfloat,
24840 v1: GLfloat,
24841 v2: GLfloat,
24842 ) {
24843 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24844 {
24845 trace!(
24846 "calling gl.ProgramUniform3f({:?}, {:?}, {:?}, {:?}, {:?});",
24847 program,
24848 location,
24849 v0,
24850 v1,
24851 v2
24852 );
24853 }
24854 let out = call_atomic_ptr_5arg(
24855 "glProgramUniform3f",
24856 &self.glProgramUniform3f_p,
24857 program,
24858 location,
24859 v0,
24860 v1,
24861 v2,
24862 );
24863 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24864 {
24865 self.automatic_glGetError("glProgramUniform3f");
24866 }
24867 out
24868 }
24869 #[doc(hidden)]
24870 pub unsafe fn ProgramUniform3f_load_with_dyn(
24871 &self,
24872 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24873 ) -> bool {
24874 load_dyn_name_atomic_ptr(
24875 get_proc_address,
24876 b"glProgramUniform3f\0",
24877 &self.glProgramUniform3f_p,
24878 )
24879 }
24880 #[inline]
24881 #[doc(hidden)]
24882 pub fn ProgramUniform3f_is_loaded(&self) -> bool {
24883 !self.glProgramUniform3f_p.load(RELAX).is_null()
24884 }
24885 /// [glProgramUniform3fv](http://docs.gl/gl4/glProgramUniform)(program, location, count, value)
24886 /// * `value` len: count*3
24887 #[cfg_attr(feature = "inline", inline)]
24888 #[cfg_attr(feature = "inline_always", inline(always))]
24889 pub unsafe fn ProgramUniform3fv(
24890 &self,
24891 program: GLuint,
24892 location: GLint,
24893 count: GLsizei,
24894 value: *const GLfloat,
24895 ) {
24896 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24897 {
24898 trace!(
24899 "calling gl.ProgramUniform3fv({:?}, {:?}, {:?}, {:p});",
24900 program,
24901 location,
24902 count,
24903 value
24904 );
24905 }
24906 let out = call_atomic_ptr_4arg(
24907 "glProgramUniform3fv",
24908 &self.glProgramUniform3fv_p,
24909 program,
24910 location,
24911 count,
24912 value,
24913 );
24914 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24915 {
24916 self.automatic_glGetError("glProgramUniform3fv");
24917 }
24918 out
24919 }
24920 #[doc(hidden)]
24921 pub unsafe fn ProgramUniform3fv_load_with_dyn(
24922 &self,
24923 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24924 ) -> bool {
24925 load_dyn_name_atomic_ptr(
24926 get_proc_address,
24927 b"glProgramUniform3fv\0",
24928 &self.glProgramUniform3fv_p,
24929 )
24930 }
24931 #[inline]
24932 #[doc(hidden)]
24933 pub fn ProgramUniform3fv_is_loaded(&self) -> bool {
24934 !self.glProgramUniform3fv_p.load(RELAX).is_null()
24935 }
24936 /// [glProgramUniform3i](http://docs.gl/gl4/glProgramUniform)(program, location, v0, v1, v2)
24937 #[cfg_attr(feature = "inline", inline)]
24938 #[cfg_attr(feature = "inline_always", inline(always))]
24939 pub unsafe fn ProgramUniform3i(
24940 &self,
24941 program: GLuint,
24942 location: GLint,
24943 v0: GLint,
24944 v1: GLint,
24945 v2: GLint,
24946 ) {
24947 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24948 {
24949 trace!(
24950 "calling gl.ProgramUniform3i({:?}, {:?}, {:?}, {:?}, {:?});",
24951 program,
24952 location,
24953 v0,
24954 v1,
24955 v2
24956 );
24957 }
24958 let out = call_atomic_ptr_5arg(
24959 "glProgramUniform3i",
24960 &self.glProgramUniform3i_p,
24961 program,
24962 location,
24963 v0,
24964 v1,
24965 v2,
24966 );
24967 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24968 {
24969 self.automatic_glGetError("glProgramUniform3i");
24970 }
24971 out
24972 }
24973 #[doc(hidden)]
24974 pub unsafe fn ProgramUniform3i_load_with_dyn(
24975 &self,
24976 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24977 ) -> bool {
24978 load_dyn_name_atomic_ptr(
24979 get_proc_address,
24980 b"glProgramUniform3i\0",
24981 &self.glProgramUniform3i_p,
24982 )
24983 }
24984 #[inline]
24985 #[doc(hidden)]
24986 pub fn ProgramUniform3i_is_loaded(&self) -> bool {
24987 !self.glProgramUniform3i_p.load(RELAX).is_null()
24988 }
24989 /// [glProgramUniform3iv](http://docs.gl/gl4/glProgramUniform)(program, location, count, value)
24990 /// * `value` len: count*3
24991 #[cfg_attr(feature = "inline", inline)]
24992 #[cfg_attr(feature = "inline_always", inline(always))]
24993 pub unsafe fn ProgramUniform3iv(
24994 &self,
24995 program: GLuint,
24996 location: GLint,
24997 count: GLsizei,
24998 value: *const GLint,
24999 ) {
25000 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25001 {
25002 trace!(
25003 "calling gl.ProgramUniform3iv({:?}, {:?}, {:?}, {:p});",
25004 program,
25005 location,
25006 count,
25007 value
25008 );
25009 }
25010 let out = call_atomic_ptr_4arg(
25011 "glProgramUniform3iv",
25012 &self.glProgramUniform3iv_p,
25013 program,
25014 location,
25015 count,
25016 value,
25017 );
25018 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25019 {
25020 self.automatic_glGetError("glProgramUniform3iv");
25021 }
25022 out
25023 }
25024 #[doc(hidden)]
25025 pub unsafe fn ProgramUniform3iv_load_with_dyn(
25026 &self,
25027 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25028 ) -> bool {
25029 load_dyn_name_atomic_ptr(
25030 get_proc_address,
25031 b"glProgramUniform3iv\0",
25032 &self.glProgramUniform3iv_p,
25033 )
25034 }
25035 #[inline]
25036 #[doc(hidden)]
25037 pub fn ProgramUniform3iv_is_loaded(&self) -> bool {
25038 !self.glProgramUniform3iv_p.load(RELAX).is_null()
25039 }
25040 /// [glProgramUniform3ui](http://docs.gl/gl4/glProgramUniform)(program, location, v0, v1, v2)
25041 #[cfg_attr(feature = "inline", inline)]
25042 #[cfg_attr(feature = "inline_always", inline(always))]
25043 pub unsafe fn ProgramUniform3ui(
25044 &self,
25045 program: GLuint,
25046 location: GLint,
25047 v0: GLuint,
25048 v1: GLuint,
25049 v2: GLuint,
25050 ) {
25051 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25052 {
25053 trace!(
25054 "calling gl.ProgramUniform3ui({:?}, {:?}, {:?}, {:?}, {:?});",
25055 program,
25056 location,
25057 v0,
25058 v1,
25059 v2
25060 );
25061 }
25062 let out = call_atomic_ptr_5arg(
25063 "glProgramUniform3ui",
25064 &self.glProgramUniform3ui_p,
25065 program,
25066 location,
25067 v0,
25068 v1,
25069 v2,
25070 );
25071 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25072 {
25073 self.automatic_glGetError("glProgramUniform3ui");
25074 }
25075 out
25076 }
25077 #[doc(hidden)]
25078 pub unsafe fn ProgramUniform3ui_load_with_dyn(
25079 &self,
25080 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25081 ) -> bool {
25082 load_dyn_name_atomic_ptr(
25083 get_proc_address,
25084 b"glProgramUniform3ui\0",
25085 &self.glProgramUniform3ui_p,
25086 )
25087 }
25088 #[inline]
25089 #[doc(hidden)]
25090 pub fn ProgramUniform3ui_is_loaded(&self) -> bool {
25091 !self.glProgramUniform3ui_p.load(RELAX).is_null()
25092 }
25093 /// [glProgramUniform3uiv](http://docs.gl/gl4/glProgramUniform)(program, location, count, value)
25094 /// * `value` len: count*3
25095 #[cfg_attr(feature = "inline", inline)]
25096 #[cfg_attr(feature = "inline_always", inline(always))]
25097 pub unsafe fn ProgramUniform3uiv(
25098 &self,
25099 program: GLuint,
25100 location: GLint,
25101 count: GLsizei,
25102 value: *const GLuint,
25103 ) {
25104 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25105 {
25106 trace!(
25107 "calling gl.ProgramUniform3uiv({:?}, {:?}, {:?}, {:p});",
25108 program,
25109 location,
25110 count,
25111 value
25112 );
25113 }
25114 let out = call_atomic_ptr_4arg(
25115 "glProgramUniform3uiv",
25116 &self.glProgramUniform3uiv_p,
25117 program,
25118 location,
25119 count,
25120 value,
25121 );
25122 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25123 {
25124 self.automatic_glGetError("glProgramUniform3uiv");
25125 }
25126 out
25127 }
25128 #[doc(hidden)]
25129 pub unsafe fn ProgramUniform3uiv_load_with_dyn(
25130 &self,
25131 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25132 ) -> bool {
25133 load_dyn_name_atomic_ptr(
25134 get_proc_address,
25135 b"glProgramUniform3uiv\0",
25136 &self.glProgramUniform3uiv_p,
25137 )
25138 }
25139 #[inline]
25140 #[doc(hidden)]
25141 pub fn ProgramUniform3uiv_is_loaded(&self) -> bool {
25142 !self.glProgramUniform3uiv_p.load(RELAX).is_null()
25143 }
25144 /// [glProgramUniform4d](http://docs.gl/gl4/glProgramUniform4d)(program, location, v0, v1, v2, v3)
25145 #[cfg_attr(feature = "inline", inline)]
25146 #[cfg_attr(feature = "inline_always", inline(always))]
25147 pub unsafe fn ProgramUniform4d(
25148 &self,
25149 program: GLuint,
25150 location: GLint,
25151 v0: GLdouble,
25152 v1: GLdouble,
25153 v2: GLdouble,
25154 v3: GLdouble,
25155 ) {
25156 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25157 {
25158 trace!(
25159 "calling gl.ProgramUniform4d({:?}, {:?}, {:?}, {:?}, {:?}, {:?});",
25160 program,
25161 location,
25162 v0,
25163 v1,
25164 v2,
25165 v3
25166 );
25167 }
25168 let out = call_atomic_ptr_6arg(
25169 "glProgramUniform4d",
25170 &self.glProgramUniform4d_p,
25171 program,
25172 location,
25173 v0,
25174 v1,
25175 v2,
25176 v3,
25177 );
25178 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25179 {
25180 self.automatic_glGetError("glProgramUniform4d");
25181 }
25182 out
25183 }
25184 #[doc(hidden)]
25185 pub unsafe fn ProgramUniform4d_load_with_dyn(
25186 &self,
25187 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25188 ) -> bool {
25189 load_dyn_name_atomic_ptr(
25190 get_proc_address,
25191 b"glProgramUniform4d\0",
25192 &self.glProgramUniform4d_p,
25193 )
25194 }
25195 #[inline]
25196 #[doc(hidden)]
25197 pub fn ProgramUniform4d_is_loaded(&self) -> bool {
25198 !self.glProgramUniform4d_p.load(RELAX).is_null()
25199 }
25200 /// [glProgramUniform4dv](http://docs.gl/gl4/glProgramUniform4dv)(program, location, count, value)
25201 /// * `value` len: count*4
25202 #[cfg_attr(feature = "inline", inline)]
25203 #[cfg_attr(feature = "inline_always", inline(always))]
25204 pub unsafe fn ProgramUniform4dv(
25205 &self,
25206 program: GLuint,
25207 location: GLint,
25208 count: GLsizei,
25209 value: *const GLdouble,
25210 ) {
25211 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25212 {
25213 trace!(
25214 "calling gl.ProgramUniform4dv({:?}, {:?}, {:?}, {:p});",
25215 program,
25216 location,
25217 count,
25218 value
25219 );
25220 }
25221 let out = call_atomic_ptr_4arg(
25222 "glProgramUniform4dv",
25223 &self.glProgramUniform4dv_p,
25224 program,
25225 location,
25226 count,
25227 value,
25228 );
25229 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25230 {
25231 self.automatic_glGetError("glProgramUniform4dv");
25232 }
25233 out
25234 }
25235 #[doc(hidden)]
25236 pub unsafe fn ProgramUniform4dv_load_with_dyn(
25237 &self,
25238 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25239 ) -> bool {
25240 load_dyn_name_atomic_ptr(
25241 get_proc_address,
25242 b"glProgramUniform4dv\0",
25243 &self.glProgramUniform4dv_p,
25244 )
25245 }
25246 #[inline]
25247 #[doc(hidden)]
25248 pub fn ProgramUniform4dv_is_loaded(&self) -> bool {
25249 !self.glProgramUniform4dv_p.load(RELAX).is_null()
25250 }
25251 /// [glProgramUniform4f](http://docs.gl/gl4/glProgramUniform)(program, location, v0, v1, v2, v3)
25252 #[cfg_attr(feature = "inline", inline)]
25253 #[cfg_attr(feature = "inline_always", inline(always))]
25254 pub unsafe fn ProgramUniform4f(
25255 &self,
25256 program: GLuint,
25257 location: GLint,
25258 v0: GLfloat,
25259 v1: GLfloat,
25260 v2: GLfloat,
25261 v3: GLfloat,
25262 ) {
25263 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25264 {
25265 trace!(
25266 "calling gl.ProgramUniform4f({:?}, {:?}, {:?}, {:?}, {:?}, {:?});",
25267 program,
25268 location,
25269 v0,
25270 v1,
25271 v2,
25272 v3
25273 );
25274 }
25275 let out = call_atomic_ptr_6arg(
25276 "glProgramUniform4f",
25277 &self.glProgramUniform4f_p,
25278 program,
25279 location,
25280 v0,
25281 v1,
25282 v2,
25283 v3,
25284 );
25285 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25286 {
25287 self.automatic_glGetError("glProgramUniform4f");
25288 }
25289 out
25290 }
25291 #[doc(hidden)]
25292 pub unsafe fn ProgramUniform4f_load_with_dyn(
25293 &self,
25294 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25295 ) -> bool {
25296 load_dyn_name_atomic_ptr(
25297 get_proc_address,
25298 b"glProgramUniform4f\0",
25299 &self.glProgramUniform4f_p,
25300 )
25301 }
25302 #[inline]
25303 #[doc(hidden)]
25304 pub fn ProgramUniform4f_is_loaded(&self) -> bool {
25305 !self.glProgramUniform4f_p.load(RELAX).is_null()
25306 }
25307 /// [glProgramUniform4fv](http://docs.gl/gl4/glProgramUniform)(program, location, count, value)
25308 /// * `value` len: count*4
25309 #[cfg_attr(feature = "inline", inline)]
25310 #[cfg_attr(feature = "inline_always", inline(always))]
25311 pub unsafe fn ProgramUniform4fv(
25312 &self,
25313 program: GLuint,
25314 location: GLint,
25315 count: GLsizei,
25316 value: *const GLfloat,
25317 ) {
25318 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25319 {
25320 trace!(
25321 "calling gl.ProgramUniform4fv({:?}, {:?}, {:?}, {:p});",
25322 program,
25323 location,
25324 count,
25325 value
25326 );
25327 }
25328 let out = call_atomic_ptr_4arg(
25329 "glProgramUniform4fv",
25330 &self.glProgramUniform4fv_p,
25331 program,
25332 location,
25333 count,
25334 value,
25335 );
25336 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25337 {
25338 self.automatic_glGetError("glProgramUniform4fv");
25339 }
25340 out
25341 }
25342 #[doc(hidden)]
25343 pub unsafe fn ProgramUniform4fv_load_with_dyn(
25344 &self,
25345 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25346 ) -> bool {
25347 load_dyn_name_atomic_ptr(
25348 get_proc_address,
25349 b"glProgramUniform4fv\0",
25350 &self.glProgramUniform4fv_p,
25351 )
25352 }
25353 #[inline]
25354 #[doc(hidden)]
25355 pub fn ProgramUniform4fv_is_loaded(&self) -> bool {
25356 !self.glProgramUniform4fv_p.load(RELAX).is_null()
25357 }
25358 /// [glProgramUniform4i](http://docs.gl/gl4/glProgramUniform)(program, location, v0, v1, v2, v3)
25359 #[cfg_attr(feature = "inline", inline)]
25360 #[cfg_attr(feature = "inline_always", inline(always))]
25361 pub unsafe fn ProgramUniform4i(
25362 &self,
25363 program: GLuint,
25364 location: GLint,
25365 v0: GLint,
25366 v1: GLint,
25367 v2: GLint,
25368 v3: GLint,
25369 ) {
25370 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25371 {
25372 trace!(
25373 "calling gl.ProgramUniform4i({:?}, {:?}, {:?}, {:?}, {:?}, {:?});",
25374 program,
25375 location,
25376 v0,
25377 v1,
25378 v2,
25379 v3
25380 );
25381 }
25382 let out = call_atomic_ptr_6arg(
25383 "glProgramUniform4i",
25384 &self.glProgramUniform4i_p,
25385 program,
25386 location,
25387 v0,
25388 v1,
25389 v2,
25390 v3,
25391 );
25392 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25393 {
25394 self.automatic_glGetError("glProgramUniform4i");
25395 }
25396 out
25397 }
25398 #[doc(hidden)]
25399 pub unsafe fn ProgramUniform4i_load_with_dyn(
25400 &self,
25401 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25402 ) -> bool {
25403 load_dyn_name_atomic_ptr(
25404 get_proc_address,
25405 b"glProgramUniform4i\0",
25406 &self.glProgramUniform4i_p,
25407 )
25408 }
25409 #[inline]
25410 #[doc(hidden)]
25411 pub fn ProgramUniform4i_is_loaded(&self) -> bool {
25412 !self.glProgramUniform4i_p.load(RELAX).is_null()
25413 }
25414 /// [glProgramUniform4iv](http://docs.gl/gl4/glProgramUniform)(program, location, count, value)
25415 /// * `value` len: count*4
25416 #[cfg_attr(feature = "inline", inline)]
25417 #[cfg_attr(feature = "inline_always", inline(always))]
25418 pub unsafe fn ProgramUniform4iv(
25419 &self,
25420 program: GLuint,
25421 location: GLint,
25422 count: GLsizei,
25423 value: *const GLint,
25424 ) {
25425 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25426 {
25427 trace!(
25428 "calling gl.ProgramUniform4iv({:?}, {:?}, {:?}, {:p});",
25429 program,
25430 location,
25431 count,
25432 value
25433 );
25434 }
25435 let out = call_atomic_ptr_4arg(
25436 "glProgramUniform4iv",
25437 &self.glProgramUniform4iv_p,
25438 program,
25439 location,
25440 count,
25441 value,
25442 );
25443 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25444 {
25445 self.automatic_glGetError("glProgramUniform4iv");
25446 }
25447 out
25448 }
25449 #[doc(hidden)]
25450 pub unsafe fn ProgramUniform4iv_load_with_dyn(
25451 &self,
25452 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25453 ) -> bool {
25454 load_dyn_name_atomic_ptr(
25455 get_proc_address,
25456 b"glProgramUniform4iv\0",
25457 &self.glProgramUniform4iv_p,
25458 )
25459 }
25460 #[inline]
25461 #[doc(hidden)]
25462 pub fn ProgramUniform4iv_is_loaded(&self) -> bool {
25463 !self.glProgramUniform4iv_p.load(RELAX).is_null()
25464 }
25465 /// [glProgramUniform4ui](http://docs.gl/gl4/glProgramUniform)(program, location, v0, v1, v2, v3)
25466 #[cfg_attr(feature = "inline", inline)]
25467 #[cfg_attr(feature = "inline_always", inline(always))]
25468 pub unsafe fn ProgramUniform4ui(
25469 &self,
25470 program: GLuint,
25471 location: GLint,
25472 v0: GLuint,
25473 v1: GLuint,
25474 v2: GLuint,
25475 v3: GLuint,
25476 ) {
25477 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25478 {
25479 trace!(
25480 "calling gl.ProgramUniform4ui({:?}, {:?}, {:?}, {:?}, {:?}, {:?});",
25481 program,
25482 location,
25483 v0,
25484 v1,
25485 v2,
25486 v3
25487 );
25488 }
25489 let out = call_atomic_ptr_6arg(
25490 "glProgramUniform4ui",
25491 &self.glProgramUniform4ui_p,
25492 program,
25493 location,
25494 v0,
25495 v1,
25496 v2,
25497 v3,
25498 );
25499 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25500 {
25501 self.automatic_glGetError("glProgramUniform4ui");
25502 }
25503 out
25504 }
25505 #[doc(hidden)]
25506 pub unsafe fn ProgramUniform4ui_load_with_dyn(
25507 &self,
25508 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25509 ) -> bool {
25510 load_dyn_name_atomic_ptr(
25511 get_proc_address,
25512 b"glProgramUniform4ui\0",
25513 &self.glProgramUniform4ui_p,
25514 )
25515 }
25516 #[inline]
25517 #[doc(hidden)]
25518 pub fn ProgramUniform4ui_is_loaded(&self) -> bool {
25519 !self.glProgramUniform4ui_p.load(RELAX).is_null()
25520 }
25521 /// [glProgramUniform4uiv](http://docs.gl/gl4/glProgramUniform)(program, location, count, value)
25522 /// * `value` len: count*4
25523 #[cfg_attr(feature = "inline", inline)]
25524 #[cfg_attr(feature = "inline_always", inline(always))]
25525 pub unsafe fn ProgramUniform4uiv(
25526 &self,
25527 program: GLuint,
25528 location: GLint,
25529 count: GLsizei,
25530 value: *const GLuint,
25531 ) {
25532 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25533 {
25534 trace!(
25535 "calling gl.ProgramUniform4uiv({:?}, {:?}, {:?}, {:p});",
25536 program,
25537 location,
25538 count,
25539 value
25540 );
25541 }
25542 let out = call_atomic_ptr_4arg(
25543 "glProgramUniform4uiv",
25544 &self.glProgramUniform4uiv_p,
25545 program,
25546 location,
25547 count,
25548 value,
25549 );
25550 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25551 {
25552 self.automatic_glGetError("glProgramUniform4uiv");
25553 }
25554 out
25555 }
25556 #[doc(hidden)]
25557 pub unsafe fn ProgramUniform4uiv_load_with_dyn(
25558 &self,
25559 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25560 ) -> bool {
25561 load_dyn_name_atomic_ptr(
25562 get_proc_address,
25563 b"glProgramUniform4uiv\0",
25564 &self.glProgramUniform4uiv_p,
25565 )
25566 }
25567 #[inline]
25568 #[doc(hidden)]
25569 pub fn ProgramUniform4uiv_is_loaded(&self) -> bool {
25570 !self.glProgramUniform4uiv_p.load(RELAX).is_null()
25571 }
25572 /// [glProgramUniformMatrix2dv](http://docs.gl/gl4/glProgramUniformMatrix2dv)(program, location, count, transpose, value)
25573 /// * `value` len: count*4
25574 #[cfg_attr(feature = "inline", inline)]
25575 #[cfg_attr(feature = "inline_always", inline(always))]
25576 pub unsafe fn ProgramUniformMatrix2dv(
25577 &self,
25578 program: GLuint,
25579 location: GLint,
25580 count: GLsizei,
25581 transpose: GLboolean,
25582 value: *const GLdouble,
25583 ) {
25584 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25585 {
25586 trace!(
25587 "calling gl.ProgramUniformMatrix2dv({:?}, {:?}, {:?}, {:?}, {:p});",
25588 program,
25589 location,
25590 count,
25591 transpose,
25592 value
25593 );
25594 }
25595 let out = call_atomic_ptr_5arg(
25596 "glProgramUniformMatrix2dv",
25597 &self.glProgramUniformMatrix2dv_p,
25598 program,
25599 location,
25600 count,
25601 transpose,
25602 value,
25603 );
25604 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25605 {
25606 self.automatic_glGetError("glProgramUniformMatrix2dv");
25607 }
25608 out
25609 }
25610 #[doc(hidden)]
25611 pub unsafe fn ProgramUniformMatrix2dv_load_with_dyn(
25612 &self,
25613 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25614 ) -> bool {
25615 load_dyn_name_atomic_ptr(
25616 get_proc_address,
25617 b"glProgramUniformMatrix2dv\0",
25618 &self.glProgramUniformMatrix2dv_p,
25619 )
25620 }
25621 #[inline]
25622 #[doc(hidden)]
25623 pub fn ProgramUniformMatrix2dv_is_loaded(&self) -> bool {
25624 !self.glProgramUniformMatrix2dv_p.load(RELAX).is_null()
25625 }
25626 /// [glProgramUniformMatrix2fv](http://docs.gl/gl4/glProgramUniform)(program, location, count, transpose, value)
25627 /// * `value` len: count*4
25628 #[cfg_attr(feature = "inline", inline)]
25629 #[cfg_attr(feature = "inline_always", inline(always))]
25630 pub unsafe fn ProgramUniformMatrix2fv(
25631 &self,
25632 program: GLuint,
25633 location: GLint,
25634 count: GLsizei,
25635 transpose: GLboolean,
25636 value: *const GLfloat,
25637 ) {
25638 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25639 {
25640 trace!(
25641 "calling gl.ProgramUniformMatrix2fv({:?}, {:?}, {:?}, {:?}, {:p});",
25642 program,
25643 location,
25644 count,
25645 transpose,
25646 value
25647 );
25648 }
25649 let out = call_atomic_ptr_5arg(
25650 "glProgramUniformMatrix2fv",
25651 &self.glProgramUniformMatrix2fv_p,
25652 program,
25653 location,
25654 count,
25655 transpose,
25656 value,
25657 );
25658 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25659 {
25660 self.automatic_glGetError("glProgramUniformMatrix2fv");
25661 }
25662 out
25663 }
25664 #[doc(hidden)]
25665 pub unsafe fn ProgramUniformMatrix2fv_load_with_dyn(
25666 &self,
25667 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25668 ) -> bool {
25669 load_dyn_name_atomic_ptr(
25670 get_proc_address,
25671 b"glProgramUniformMatrix2fv\0",
25672 &self.glProgramUniformMatrix2fv_p,
25673 )
25674 }
25675 #[inline]
25676 #[doc(hidden)]
25677 pub fn ProgramUniformMatrix2fv_is_loaded(&self) -> bool {
25678 !self.glProgramUniformMatrix2fv_p.load(RELAX).is_null()
25679 }
25680 /// [glProgramUniformMatrix2x3dv](http://docs.gl/gl4/glProgramUniformMatrix2x3dv)(program, location, count, transpose, value)
25681 /// * `value` len: count*6
25682 #[cfg_attr(feature = "inline", inline)]
25683 #[cfg_attr(feature = "inline_always", inline(always))]
25684 pub unsafe fn ProgramUniformMatrix2x3dv(
25685 &self,
25686 program: GLuint,
25687 location: GLint,
25688 count: GLsizei,
25689 transpose: GLboolean,
25690 value: *const GLdouble,
25691 ) {
25692 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25693 {
25694 trace!(
25695 "calling gl.ProgramUniformMatrix2x3dv({:?}, {:?}, {:?}, {:?}, {:p});",
25696 program,
25697 location,
25698 count,
25699 transpose,
25700 value
25701 );
25702 }
25703 let out = call_atomic_ptr_5arg(
25704 "glProgramUniformMatrix2x3dv",
25705 &self.glProgramUniformMatrix2x3dv_p,
25706 program,
25707 location,
25708 count,
25709 transpose,
25710 value,
25711 );
25712 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25713 {
25714 self.automatic_glGetError("glProgramUniformMatrix2x3dv");
25715 }
25716 out
25717 }
25718 #[doc(hidden)]
25719 pub unsafe fn ProgramUniformMatrix2x3dv_load_with_dyn(
25720 &self,
25721 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25722 ) -> bool {
25723 load_dyn_name_atomic_ptr(
25724 get_proc_address,
25725 b"glProgramUniformMatrix2x3dv\0",
25726 &self.glProgramUniformMatrix2x3dv_p,
25727 )
25728 }
25729 #[inline]
25730 #[doc(hidden)]
25731 pub fn ProgramUniformMatrix2x3dv_is_loaded(&self) -> bool {
25732 !self.glProgramUniformMatrix2x3dv_p.load(RELAX).is_null()
25733 }
25734 /// [glProgramUniformMatrix2x3fv](http://docs.gl/gl4/glProgramUniform)(program, location, count, transpose, value)
25735 /// * `value` len: count*6
25736 #[cfg_attr(feature = "inline", inline)]
25737 #[cfg_attr(feature = "inline_always", inline(always))]
25738 pub unsafe fn ProgramUniformMatrix2x3fv(
25739 &self,
25740 program: GLuint,
25741 location: GLint,
25742 count: GLsizei,
25743 transpose: GLboolean,
25744 value: *const GLfloat,
25745 ) {
25746 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25747 {
25748 trace!(
25749 "calling gl.ProgramUniformMatrix2x3fv({:?}, {:?}, {:?}, {:?}, {:p});",
25750 program,
25751 location,
25752 count,
25753 transpose,
25754 value
25755 );
25756 }
25757 let out = call_atomic_ptr_5arg(
25758 "glProgramUniformMatrix2x3fv",
25759 &self.glProgramUniformMatrix2x3fv_p,
25760 program,
25761 location,
25762 count,
25763 transpose,
25764 value,
25765 );
25766 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25767 {
25768 self.automatic_glGetError("glProgramUniformMatrix2x3fv");
25769 }
25770 out
25771 }
25772 #[doc(hidden)]
25773 pub unsafe fn ProgramUniformMatrix2x3fv_load_with_dyn(
25774 &self,
25775 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25776 ) -> bool {
25777 load_dyn_name_atomic_ptr(
25778 get_proc_address,
25779 b"glProgramUniformMatrix2x3fv\0",
25780 &self.glProgramUniformMatrix2x3fv_p,
25781 )
25782 }
25783 #[inline]
25784 #[doc(hidden)]
25785 pub fn ProgramUniformMatrix2x3fv_is_loaded(&self) -> bool {
25786 !self.glProgramUniformMatrix2x3fv_p.load(RELAX).is_null()
25787 }
25788 /// [glProgramUniformMatrix2x4dv](http://docs.gl/gl4/glProgramUniformMatrix2x4dv)(program, location, count, transpose, value)
25789 /// * `value` len: count*8
25790 #[cfg_attr(feature = "inline", inline)]
25791 #[cfg_attr(feature = "inline_always", inline(always))]
25792 pub unsafe fn ProgramUniformMatrix2x4dv(
25793 &self,
25794 program: GLuint,
25795 location: GLint,
25796 count: GLsizei,
25797 transpose: GLboolean,
25798 value: *const GLdouble,
25799 ) {
25800 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25801 {
25802 trace!(
25803 "calling gl.ProgramUniformMatrix2x4dv({:?}, {:?}, {:?}, {:?}, {:p});",
25804 program,
25805 location,
25806 count,
25807 transpose,
25808 value
25809 );
25810 }
25811 let out = call_atomic_ptr_5arg(
25812 "glProgramUniformMatrix2x4dv",
25813 &self.glProgramUniformMatrix2x4dv_p,
25814 program,
25815 location,
25816 count,
25817 transpose,
25818 value,
25819 );
25820 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25821 {
25822 self.automatic_glGetError("glProgramUniformMatrix2x4dv");
25823 }
25824 out
25825 }
25826 #[doc(hidden)]
25827 pub unsafe fn ProgramUniformMatrix2x4dv_load_with_dyn(
25828 &self,
25829 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25830 ) -> bool {
25831 load_dyn_name_atomic_ptr(
25832 get_proc_address,
25833 b"glProgramUniformMatrix2x4dv\0",
25834 &self.glProgramUniformMatrix2x4dv_p,
25835 )
25836 }
25837 #[inline]
25838 #[doc(hidden)]
25839 pub fn ProgramUniformMatrix2x4dv_is_loaded(&self) -> bool {
25840 !self.glProgramUniformMatrix2x4dv_p.load(RELAX).is_null()
25841 }
25842 /// [glProgramUniformMatrix2x4fv](http://docs.gl/gl4/glProgramUniform)(program, location, count, transpose, value)
25843 /// * `value` len: count*8
25844 #[cfg_attr(feature = "inline", inline)]
25845 #[cfg_attr(feature = "inline_always", inline(always))]
25846 pub unsafe fn ProgramUniformMatrix2x4fv(
25847 &self,
25848 program: GLuint,
25849 location: GLint,
25850 count: GLsizei,
25851 transpose: GLboolean,
25852 value: *const GLfloat,
25853 ) {
25854 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25855 {
25856 trace!(
25857 "calling gl.ProgramUniformMatrix2x4fv({:?}, {:?}, {:?}, {:?}, {:p});",
25858 program,
25859 location,
25860 count,
25861 transpose,
25862 value
25863 );
25864 }
25865 let out = call_atomic_ptr_5arg(
25866 "glProgramUniformMatrix2x4fv",
25867 &self.glProgramUniformMatrix2x4fv_p,
25868 program,
25869 location,
25870 count,
25871 transpose,
25872 value,
25873 );
25874 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25875 {
25876 self.automatic_glGetError("glProgramUniformMatrix2x4fv");
25877 }
25878 out
25879 }
25880 #[doc(hidden)]
25881 pub unsafe fn ProgramUniformMatrix2x4fv_load_with_dyn(
25882 &self,
25883 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25884 ) -> bool {
25885 load_dyn_name_atomic_ptr(
25886 get_proc_address,
25887 b"glProgramUniformMatrix2x4fv\0",
25888 &self.glProgramUniformMatrix2x4fv_p,
25889 )
25890 }
25891 #[inline]
25892 #[doc(hidden)]
25893 pub fn ProgramUniformMatrix2x4fv_is_loaded(&self) -> bool {
25894 !self.glProgramUniformMatrix2x4fv_p.load(RELAX).is_null()
25895 }
25896 /// [glProgramUniformMatrix3dv](http://docs.gl/gl4/glProgramUniformMatrix3dv)(program, location, count, transpose, value)
25897 /// * `value` len: count*9
25898 #[cfg_attr(feature = "inline", inline)]
25899 #[cfg_attr(feature = "inline_always", inline(always))]
25900 pub unsafe fn ProgramUniformMatrix3dv(
25901 &self,
25902 program: GLuint,
25903 location: GLint,
25904 count: GLsizei,
25905 transpose: GLboolean,
25906 value: *const GLdouble,
25907 ) {
25908 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25909 {
25910 trace!(
25911 "calling gl.ProgramUniformMatrix3dv({:?}, {:?}, {:?}, {:?}, {:p});",
25912 program,
25913 location,
25914 count,
25915 transpose,
25916 value
25917 );
25918 }
25919 let out = call_atomic_ptr_5arg(
25920 "glProgramUniformMatrix3dv",
25921 &self.glProgramUniformMatrix3dv_p,
25922 program,
25923 location,
25924 count,
25925 transpose,
25926 value,
25927 );
25928 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25929 {
25930 self.automatic_glGetError("glProgramUniformMatrix3dv");
25931 }
25932 out
25933 }
25934 #[doc(hidden)]
25935 pub unsafe fn ProgramUniformMatrix3dv_load_with_dyn(
25936 &self,
25937 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25938 ) -> bool {
25939 load_dyn_name_atomic_ptr(
25940 get_proc_address,
25941 b"glProgramUniformMatrix3dv\0",
25942 &self.glProgramUniformMatrix3dv_p,
25943 )
25944 }
25945 #[inline]
25946 #[doc(hidden)]
25947 pub fn ProgramUniformMatrix3dv_is_loaded(&self) -> bool {
25948 !self.glProgramUniformMatrix3dv_p.load(RELAX).is_null()
25949 }
25950 /// [glProgramUniformMatrix3fv](http://docs.gl/gl4/glProgramUniform)(program, location, count, transpose, value)
25951 /// * `value` len: count*9
25952 #[cfg_attr(feature = "inline", inline)]
25953 #[cfg_attr(feature = "inline_always", inline(always))]
25954 pub unsafe fn ProgramUniformMatrix3fv(
25955 &self,
25956 program: GLuint,
25957 location: GLint,
25958 count: GLsizei,
25959 transpose: GLboolean,
25960 value: *const GLfloat,
25961 ) {
25962 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25963 {
25964 trace!(
25965 "calling gl.ProgramUniformMatrix3fv({:?}, {:?}, {:?}, {:?}, {:p});",
25966 program,
25967 location,
25968 count,
25969 transpose,
25970 value
25971 );
25972 }
25973 let out = call_atomic_ptr_5arg(
25974 "glProgramUniformMatrix3fv",
25975 &self.glProgramUniformMatrix3fv_p,
25976 program,
25977 location,
25978 count,
25979 transpose,
25980 value,
25981 );
25982 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25983 {
25984 self.automatic_glGetError("glProgramUniformMatrix3fv");
25985 }
25986 out
25987 }
25988 #[doc(hidden)]
25989 pub unsafe fn ProgramUniformMatrix3fv_load_with_dyn(
25990 &self,
25991 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25992 ) -> bool {
25993 load_dyn_name_atomic_ptr(
25994 get_proc_address,
25995 b"glProgramUniformMatrix3fv\0",
25996 &self.glProgramUniformMatrix3fv_p,
25997 )
25998 }
25999 #[inline]
26000 #[doc(hidden)]
26001 pub fn ProgramUniformMatrix3fv_is_loaded(&self) -> bool {
26002 !self.glProgramUniformMatrix3fv_p.load(RELAX).is_null()
26003 }
26004 /// [glProgramUniformMatrix3x2dv](http://docs.gl/gl4/glProgramUniformMatrix3x2dv)(program, location, count, transpose, value)
26005 /// * `value` len: count*6
26006 #[cfg_attr(feature = "inline", inline)]
26007 #[cfg_attr(feature = "inline_always", inline(always))]
26008 pub unsafe fn ProgramUniformMatrix3x2dv(
26009 &self,
26010 program: GLuint,
26011 location: GLint,
26012 count: GLsizei,
26013 transpose: GLboolean,
26014 value: *const GLdouble,
26015 ) {
26016 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26017 {
26018 trace!(
26019 "calling gl.ProgramUniformMatrix3x2dv({:?}, {:?}, {:?}, {:?}, {:p});",
26020 program,
26021 location,
26022 count,
26023 transpose,
26024 value
26025 );
26026 }
26027 let out = call_atomic_ptr_5arg(
26028 "glProgramUniformMatrix3x2dv",
26029 &self.glProgramUniformMatrix3x2dv_p,
26030 program,
26031 location,
26032 count,
26033 transpose,
26034 value,
26035 );
26036 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26037 {
26038 self.automatic_glGetError("glProgramUniformMatrix3x2dv");
26039 }
26040 out
26041 }
26042 #[doc(hidden)]
26043 pub unsafe fn ProgramUniformMatrix3x2dv_load_with_dyn(
26044 &self,
26045 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26046 ) -> bool {
26047 load_dyn_name_atomic_ptr(
26048 get_proc_address,
26049 b"glProgramUniformMatrix3x2dv\0",
26050 &self.glProgramUniformMatrix3x2dv_p,
26051 )
26052 }
26053 #[inline]
26054 #[doc(hidden)]
26055 pub fn ProgramUniformMatrix3x2dv_is_loaded(&self) -> bool {
26056 !self.glProgramUniformMatrix3x2dv_p.load(RELAX).is_null()
26057 }
26058 /// [glProgramUniformMatrix3x2fv](http://docs.gl/gl4/glProgramUniform)(program, location, count, transpose, value)
26059 /// * `value` len: count*6
26060 #[cfg_attr(feature = "inline", inline)]
26061 #[cfg_attr(feature = "inline_always", inline(always))]
26062 pub unsafe fn ProgramUniformMatrix3x2fv(
26063 &self,
26064 program: GLuint,
26065 location: GLint,
26066 count: GLsizei,
26067 transpose: GLboolean,
26068 value: *const GLfloat,
26069 ) {
26070 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26071 {
26072 trace!(
26073 "calling gl.ProgramUniformMatrix3x2fv({:?}, {:?}, {:?}, {:?}, {:p});",
26074 program,
26075 location,
26076 count,
26077 transpose,
26078 value
26079 );
26080 }
26081 let out = call_atomic_ptr_5arg(
26082 "glProgramUniformMatrix3x2fv",
26083 &self.glProgramUniformMatrix3x2fv_p,
26084 program,
26085 location,
26086 count,
26087 transpose,
26088 value,
26089 );
26090 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26091 {
26092 self.automatic_glGetError("glProgramUniformMatrix3x2fv");
26093 }
26094 out
26095 }
26096 #[doc(hidden)]
26097 pub unsafe fn ProgramUniformMatrix3x2fv_load_with_dyn(
26098 &self,
26099 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26100 ) -> bool {
26101 load_dyn_name_atomic_ptr(
26102 get_proc_address,
26103 b"glProgramUniformMatrix3x2fv\0",
26104 &self.glProgramUniformMatrix3x2fv_p,
26105 )
26106 }
26107 #[inline]
26108 #[doc(hidden)]
26109 pub fn ProgramUniformMatrix3x2fv_is_loaded(&self) -> bool {
26110 !self.glProgramUniformMatrix3x2fv_p.load(RELAX).is_null()
26111 }
26112 /// [glProgramUniformMatrix3x4dv](http://docs.gl/gl4/glProgramUniformMatrix3x4dv)(program, location, count, transpose, value)
26113 /// * `value` len: count*12
26114 #[cfg_attr(feature = "inline", inline)]
26115 #[cfg_attr(feature = "inline_always", inline(always))]
26116 pub unsafe fn ProgramUniformMatrix3x4dv(
26117 &self,
26118 program: GLuint,
26119 location: GLint,
26120 count: GLsizei,
26121 transpose: GLboolean,
26122 value: *const GLdouble,
26123 ) {
26124 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26125 {
26126 trace!(
26127 "calling gl.ProgramUniformMatrix3x4dv({:?}, {:?}, {:?}, {:?}, {:p});",
26128 program,
26129 location,
26130 count,
26131 transpose,
26132 value
26133 );
26134 }
26135 let out = call_atomic_ptr_5arg(
26136 "glProgramUniformMatrix3x4dv",
26137 &self.glProgramUniformMatrix3x4dv_p,
26138 program,
26139 location,
26140 count,
26141 transpose,
26142 value,
26143 );
26144 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26145 {
26146 self.automatic_glGetError("glProgramUniformMatrix3x4dv");
26147 }
26148 out
26149 }
26150 #[doc(hidden)]
26151 pub unsafe fn ProgramUniformMatrix3x4dv_load_with_dyn(
26152 &self,
26153 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26154 ) -> bool {
26155 load_dyn_name_atomic_ptr(
26156 get_proc_address,
26157 b"glProgramUniformMatrix3x4dv\0",
26158 &self.glProgramUniformMatrix3x4dv_p,
26159 )
26160 }
26161 #[inline]
26162 #[doc(hidden)]
26163 pub fn ProgramUniformMatrix3x4dv_is_loaded(&self) -> bool {
26164 !self.glProgramUniformMatrix3x4dv_p.load(RELAX).is_null()
26165 }
26166 /// [glProgramUniformMatrix3x4fv](http://docs.gl/gl4/glProgramUniform)(program, location, count, transpose, value)
26167 /// * `value` len: count*12
26168 #[cfg_attr(feature = "inline", inline)]
26169 #[cfg_attr(feature = "inline_always", inline(always))]
26170 pub unsafe fn ProgramUniformMatrix3x4fv(
26171 &self,
26172 program: GLuint,
26173 location: GLint,
26174 count: GLsizei,
26175 transpose: GLboolean,
26176 value: *const GLfloat,
26177 ) {
26178 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26179 {
26180 trace!(
26181 "calling gl.ProgramUniformMatrix3x4fv({:?}, {:?}, {:?}, {:?}, {:p});",
26182 program,
26183 location,
26184 count,
26185 transpose,
26186 value
26187 );
26188 }
26189 let out = call_atomic_ptr_5arg(
26190 "glProgramUniformMatrix3x4fv",
26191 &self.glProgramUniformMatrix3x4fv_p,
26192 program,
26193 location,
26194 count,
26195 transpose,
26196 value,
26197 );
26198 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26199 {
26200 self.automatic_glGetError("glProgramUniformMatrix3x4fv");
26201 }
26202 out
26203 }
26204 #[doc(hidden)]
26205 pub unsafe fn ProgramUniformMatrix3x4fv_load_with_dyn(
26206 &self,
26207 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26208 ) -> bool {
26209 load_dyn_name_atomic_ptr(
26210 get_proc_address,
26211 b"glProgramUniformMatrix3x4fv\0",
26212 &self.glProgramUniformMatrix3x4fv_p,
26213 )
26214 }
26215 #[inline]
26216 #[doc(hidden)]
26217 pub fn ProgramUniformMatrix3x4fv_is_loaded(&self) -> bool {
26218 !self.glProgramUniformMatrix3x4fv_p.load(RELAX).is_null()
26219 }
26220 /// [glProgramUniformMatrix4dv](http://docs.gl/gl4/glProgramUniformMatrix4dv)(program, location, count, transpose, value)
26221 /// * `value` len: count*16
26222 #[cfg_attr(feature = "inline", inline)]
26223 #[cfg_attr(feature = "inline_always", inline(always))]
26224 pub unsafe fn ProgramUniformMatrix4dv(
26225 &self,
26226 program: GLuint,
26227 location: GLint,
26228 count: GLsizei,
26229 transpose: GLboolean,
26230 value: *const GLdouble,
26231 ) {
26232 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26233 {
26234 trace!(
26235 "calling gl.ProgramUniformMatrix4dv({:?}, {:?}, {:?}, {:?}, {:p});",
26236 program,
26237 location,
26238 count,
26239 transpose,
26240 value
26241 );
26242 }
26243 let out = call_atomic_ptr_5arg(
26244 "glProgramUniformMatrix4dv",
26245 &self.glProgramUniformMatrix4dv_p,
26246 program,
26247 location,
26248 count,
26249 transpose,
26250 value,
26251 );
26252 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26253 {
26254 self.automatic_glGetError("glProgramUniformMatrix4dv");
26255 }
26256 out
26257 }
26258 #[doc(hidden)]
26259 pub unsafe fn ProgramUniformMatrix4dv_load_with_dyn(
26260 &self,
26261 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26262 ) -> bool {
26263 load_dyn_name_atomic_ptr(
26264 get_proc_address,
26265 b"glProgramUniformMatrix4dv\0",
26266 &self.glProgramUniformMatrix4dv_p,
26267 )
26268 }
26269 #[inline]
26270 #[doc(hidden)]
26271 pub fn ProgramUniformMatrix4dv_is_loaded(&self) -> bool {
26272 !self.glProgramUniformMatrix4dv_p.load(RELAX).is_null()
26273 }
26274 /// [glProgramUniformMatrix4fv](http://docs.gl/gl4/glProgramUniform)(program, location, count, transpose, value)
26275 /// * `value` len: count*16
26276 #[cfg_attr(feature = "inline", inline)]
26277 #[cfg_attr(feature = "inline_always", inline(always))]
26278 pub unsafe fn ProgramUniformMatrix4fv(
26279 &self,
26280 program: GLuint,
26281 location: GLint,
26282 count: GLsizei,
26283 transpose: GLboolean,
26284 value: *const GLfloat,
26285 ) {
26286 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26287 {
26288 trace!(
26289 "calling gl.ProgramUniformMatrix4fv({:?}, {:?}, {:?}, {:?}, {:p});",
26290 program,
26291 location,
26292 count,
26293 transpose,
26294 value
26295 );
26296 }
26297 let out = call_atomic_ptr_5arg(
26298 "glProgramUniformMatrix4fv",
26299 &self.glProgramUniformMatrix4fv_p,
26300 program,
26301 location,
26302 count,
26303 transpose,
26304 value,
26305 );
26306 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26307 {
26308 self.automatic_glGetError("glProgramUniformMatrix4fv");
26309 }
26310 out
26311 }
26312 #[doc(hidden)]
26313 pub unsafe fn ProgramUniformMatrix4fv_load_with_dyn(
26314 &self,
26315 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26316 ) -> bool {
26317 load_dyn_name_atomic_ptr(
26318 get_proc_address,
26319 b"glProgramUniformMatrix4fv\0",
26320 &self.glProgramUniformMatrix4fv_p,
26321 )
26322 }
26323 #[inline]
26324 #[doc(hidden)]
26325 pub fn ProgramUniformMatrix4fv_is_loaded(&self) -> bool {
26326 !self.glProgramUniformMatrix4fv_p.load(RELAX).is_null()
26327 }
26328 /// [glProgramUniformMatrix4x2dv](http://docs.gl/gl4/glProgramUniformMatrix4x2dv)(program, location, count, transpose, value)
26329 /// * `value` len: count*8
26330 #[cfg_attr(feature = "inline", inline)]
26331 #[cfg_attr(feature = "inline_always", inline(always))]
26332 pub unsafe fn ProgramUniformMatrix4x2dv(
26333 &self,
26334 program: GLuint,
26335 location: GLint,
26336 count: GLsizei,
26337 transpose: GLboolean,
26338 value: *const GLdouble,
26339 ) {
26340 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26341 {
26342 trace!(
26343 "calling gl.ProgramUniformMatrix4x2dv({:?}, {:?}, {:?}, {:?}, {:p});",
26344 program,
26345 location,
26346 count,
26347 transpose,
26348 value
26349 );
26350 }
26351 let out = call_atomic_ptr_5arg(
26352 "glProgramUniformMatrix4x2dv",
26353 &self.glProgramUniformMatrix4x2dv_p,
26354 program,
26355 location,
26356 count,
26357 transpose,
26358 value,
26359 );
26360 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26361 {
26362 self.automatic_glGetError("glProgramUniformMatrix4x2dv");
26363 }
26364 out
26365 }
26366 #[doc(hidden)]
26367 pub unsafe fn ProgramUniformMatrix4x2dv_load_with_dyn(
26368 &self,
26369 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26370 ) -> bool {
26371 load_dyn_name_atomic_ptr(
26372 get_proc_address,
26373 b"glProgramUniformMatrix4x2dv\0",
26374 &self.glProgramUniformMatrix4x2dv_p,
26375 )
26376 }
26377 #[inline]
26378 #[doc(hidden)]
26379 pub fn ProgramUniformMatrix4x2dv_is_loaded(&self) -> bool {
26380 !self.glProgramUniformMatrix4x2dv_p.load(RELAX).is_null()
26381 }
26382 /// [glProgramUniformMatrix4x2fv](http://docs.gl/gl4/glProgramUniform)(program, location, count, transpose, value)
26383 /// * `value` len: count*8
26384 #[cfg_attr(feature = "inline", inline)]
26385 #[cfg_attr(feature = "inline_always", inline(always))]
26386 pub unsafe fn ProgramUniformMatrix4x2fv(
26387 &self,
26388 program: GLuint,
26389 location: GLint,
26390 count: GLsizei,
26391 transpose: GLboolean,
26392 value: *const GLfloat,
26393 ) {
26394 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26395 {
26396 trace!(
26397 "calling gl.ProgramUniformMatrix4x2fv({:?}, {:?}, {:?}, {:?}, {:p});",
26398 program,
26399 location,
26400 count,
26401 transpose,
26402 value
26403 );
26404 }
26405 let out = call_atomic_ptr_5arg(
26406 "glProgramUniformMatrix4x2fv",
26407 &self.glProgramUniformMatrix4x2fv_p,
26408 program,
26409 location,
26410 count,
26411 transpose,
26412 value,
26413 );
26414 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26415 {
26416 self.automatic_glGetError("glProgramUniformMatrix4x2fv");
26417 }
26418 out
26419 }
26420 #[doc(hidden)]
26421 pub unsafe fn ProgramUniformMatrix4x2fv_load_with_dyn(
26422 &self,
26423 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26424 ) -> bool {
26425 load_dyn_name_atomic_ptr(
26426 get_proc_address,
26427 b"glProgramUniformMatrix4x2fv\0",
26428 &self.glProgramUniformMatrix4x2fv_p,
26429 )
26430 }
26431 #[inline]
26432 #[doc(hidden)]
26433 pub fn ProgramUniformMatrix4x2fv_is_loaded(&self) -> bool {
26434 !self.glProgramUniformMatrix4x2fv_p.load(RELAX).is_null()
26435 }
26436 /// [glProgramUniformMatrix4x3dv](http://docs.gl/gl4/glProgramUniformMatrix4x3dv)(program, location, count, transpose, value)
26437 /// * `value` len: count*12
26438 #[cfg_attr(feature = "inline", inline)]
26439 #[cfg_attr(feature = "inline_always", inline(always))]
26440 pub unsafe fn ProgramUniformMatrix4x3dv(
26441 &self,
26442 program: GLuint,
26443 location: GLint,
26444 count: GLsizei,
26445 transpose: GLboolean,
26446 value: *const GLdouble,
26447 ) {
26448 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26449 {
26450 trace!(
26451 "calling gl.ProgramUniformMatrix4x3dv({:?}, {:?}, {:?}, {:?}, {:p});",
26452 program,
26453 location,
26454 count,
26455 transpose,
26456 value
26457 );
26458 }
26459 let out = call_atomic_ptr_5arg(
26460 "glProgramUniformMatrix4x3dv",
26461 &self.glProgramUniformMatrix4x3dv_p,
26462 program,
26463 location,
26464 count,
26465 transpose,
26466 value,
26467 );
26468 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26469 {
26470 self.automatic_glGetError("glProgramUniformMatrix4x3dv");
26471 }
26472 out
26473 }
26474 #[doc(hidden)]
26475 pub unsafe fn ProgramUniformMatrix4x3dv_load_with_dyn(
26476 &self,
26477 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26478 ) -> bool {
26479 load_dyn_name_atomic_ptr(
26480 get_proc_address,
26481 b"glProgramUniformMatrix4x3dv\0",
26482 &self.glProgramUniformMatrix4x3dv_p,
26483 )
26484 }
26485 #[inline]
26486 #[doc(hidden)]
26487 pub fn ProgramUniformMatrix4x3dv_is_loaded(&self) -> bool {
26488 !self.glProgramUniformMatrix4x3dv_p.load(RELAX).is_null()
26489 }
26490 /// [glProgramUniformMatrix4x3fv](http://docs.gl/gl4/glProgramUniform)(program, location, count, transpose, value)
26491 /// * `value` len: count*12
26492 #[cfg_attr(feature = "inline", inline)]
26493 #[cfg_attr(feature = "inline_always", inline(always))]
26494 pub unsafe fn ProgramUniformMatrix4x3fv(
26495 &self,
26496 program: GLuint,
26497 location: GLint,
26498 count: GLsizei,
26499 transpose: GLboolean,
26500 value: *const GLfloat,
26501 ) {
26502 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26503 {
26504 trace!(
26505 "calling gl.ProgramUniformMatrix4x3fv({:?}, {:?}, {:?}, {:?}, {:p});",
26506 program,
26507 location,
26508 count,
26509 transpose,
26510 value
26511 );
26512 }
26513 let out = call_atomic_ptr_5arg(
26514 "glProgramUniformMatrix4x3fv",
26515 &self.glProgramUniformMatrix4x3fv_p,
26516 program,
26517 location,
26518 count,
26519 transpose,
26520 value,
26521 );
26522 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26523 {
26524 self.automatic_glGetError("glProgramUniformMatrix4x3fv");
26525 }
26526 out
26527 }
26528 #[doc(hidden)]
26529 pub unsafe fn ProgramUniformMatrix4x3fv_load_with_dyn(
26530 &self,
26531 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26532 ) -> bool {
26533 load_dyn_name_atomic_ptr(
26534 get_proc_address,
26535 b"glProgramUniformMatrix4x3fv\0",
26536 &self.glProgramUniformMatrix4x3fv_p,
26537 )
26538 }
26539 #[inline]
26540 #[doc(hidden)]
26541 pub fn ProgramUniformMatrix4x3fv_is_loaded(&self) -> bool {
26542 !self.glProgramUniformMatrix4x3fv_p.load(RELAX).is_null()
26543 }
26544 /// [glProvokingVertex](http://docs.gl/gl4/glProvokingVertex)(mode)
26545 /// * `mode` group: VertexProvokingMode
26546 #[cfg_attr(feature = "inline", inline)]
26547 #[cfg_attr(feature = "inline_always", inline(always))]
26548 pub unsafe fn ProvokingVertex(&self, mode: GLenum) {
26549 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26550 {
26551 trace!("calling gl.ProvokingVertex({:#X});", mode);
26552 }
26553 let out = call_atomic_ptr_1arg("glProvokingVertex", &self.glProvokingVertex_p, mode);
26554 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26555 {
26556 self.automatic_glGetError("glProvokingVertex");
26557 }
26558 out
26559 }
26560 #[doc(hidden)]
26561 pub unsafe fn ProvokingVertex_load_with_dyn(
26562 &self,
26563 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26564 ) -> bool {
26565 load_dyn_name_atomic_ptr(
26566 get_proc_address,
26567 b"glProvokingVertex\0",
26568 &self.glProvokingVertex_p,
26569 )
26570 }
26571 #[inline]
26572 #[doc(hidden)]
26573 pub fn ProvokingVertex_is_loaded(&self) -> bool {
26574 !self.glProvokingVertex_p.load(RELAX).is_null()
26575 }
26576 /// [glPushDebugGroup](http://docs.gl/gl4/glPushDebugGroup)(source, id, length, message)
26577 /// * `source` group: DebugSource
26578 /// * `message` len: COMPSIZE(message,length)
26579 #[cfg_attr(feature = "inline", inline)]
26580 #[cfg_attr(feature = "inline_always", inline(always))]
26581 pub unsafe fn PushDebugGroup(
26582 &self,
26583 source: GLenum,
26584 id: GLuint,
26585 length: GLsizei,
26586 message: *const GLchar,
26587 ) {
26588 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26589 {
26590 trace!(
26591 "calling gl.PushDebugGroup({:#X}, {:?}, {:?}, {:p});",
26592 source,
26593 id,
26594 length,
26595 message
26596 );
26597 }
26598 let out = call_atomic_ptr_4arg(
26599 "glPushDebugGroup",
26600 &self.glPushDebugGroup_p,
26601 source,
26602 id,
26603 length,
26604 message,
26605 );
26606 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26607 {
26608 self.automatic_glGetError("glPushDebugGroup");
26609 }
26610 out
26611 }
26612 #[doc(hidden)]
26613 pub unsafe fn PushDebugGroup_load_with_dyn(
26614 &self,
26615 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26616 ) -> bool {
26617 load_dyn_name_atomic_ptr(
26618 get_proc_address,
26619 b"glPushDebugGroup\0",
26620 &self.glPushDebugGroup_p,
26621 )
26622 }
26623 #[inline]
26624 #[doc(hidden)]
26625 pub fn PushDebugGroup_is_loaded(&self) -> bool {
26626 !self.glPushDebugGroup_p.load(RELAX).is_null()
26627 }
26628 /// [glPushDebugGroupKHR](http://docs.gl/gl4/glPushDebugGroupKHR)(source, id, length, message)
26629 /// * `source` group: DebugSource
26630 /// * alias of: [`glPushDebugGroup`]
26631 #[cfg_attr(feature = "inline", inline)]
26632 #[cfg_attr(feature = "inline_always", inline(always))]
26633 pub unsafe fn PushDebugGroupKHR(
26634 &self,
26635 source: GLenum,
26636 id: GLuint,
26637 length: GLsizei,
26638 message: *const GLchar,
26639 ) {
26640 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26641 {
26642 trace!(
26643 "calling gl.PushDebugGroupKHR({:#X}, {:?}, {:?}, {:p});",
26644 source,
26645 id,
26646 length,
26647 message
26648 );
26649 }
26650 let out = call_atomic_ptr_4arg(
26651 "glPushDebugGroupKHR",
26652 &self.glPushDebugGroupKHR_p,
26653 source,
26654 id,
26655 length,
26656 message,
26657 );
26658 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26659 {
26660 self.automatic_glGetError("glPushDebugGroupKHR");
26661 }
26662 out
26663 }
26664 #[doc(hidden)]
26665 pub unsafe fn PushDebugGroupKHR_load_with_dyn(
26666 &self,
26667 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26668 ) -> bool {
26669 load_dyn_name_atomic_ptr(
26670 get_proc_address,
26671 b"glPushDebugGroupKHR\0",
26672 &self.glPushDebugGroupKHR_p,
26673 )
26674 }
26675 #[inline]
26676 #[doc(hidden)]
26677 pub fn PushDebugGroupKHR_is_loaded(&self) -> bool {
26678 !self.glPushDebugGroupKHR_p.load(RELAX).is_null()
26679 }
26680 /// [glQueryCounter](http://docs.gl/gl4/glQueryCounter)(id, target)
26681 /// * `target` group: QueryCounterTarget
26682 #[cfg_attr(feature = "inline", inline)]
26683 #[cfg_attr(feature = "inline_always", inline(always))]
26684 pub unsafe fn QueryCounter(&self, id: GLuint, target: GLenum) {
26685 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26686 {
26687 trace!("calling gl.QueryCounter({:?}, {:#X});", id, target);
26688 }
26689 let out = call_atomic_ptr_2arg("glQueryCounter", &self.glQueryCounter_p, id, target);
26690 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26691 {
26692 self.automatic_glGetError("glQueryCounter");
26693 }
26694 out
26695 }
26696 #[doc(hidden)]
26697 pub unsafe fn QueryCounter_load_with_dyn(
26698 &self,
26699 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26700 ) -> bool {
26701 load_dyn_name_atomic_ptr(
26702 get_proc_address,
26703 b"glQueryCounter\0",
26704 &self.glQueryCounter_p,
26705 )
26706 }
26707 #[inline]
26708 #[doc(hidden)]
26709 pub fn QueryCounter_is_loaded(&self) -> bool {
26710 !self.glQueryCounter_p.load(RELAX).is_null()
26711 }
26712 /// [glReadBuffer](http://docs.gl/gl4/glReadBuffer)(src)
26713 /// * `src` group: ReadBufferMode
26714 #[cfg_attr(feature = "inline", inline)]
26715 #[cfg_attr(feature = "inline_always", inline(always))]
26716 pub unsafe fn ReadBuffer(&self, src: GLenum) {
26717 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26718 {
26719 trace!("calling gl.ReadBuffer({:#X});", src);
26720 }
26721 let out = call_atomic_ptr_1arg("glReadBuffer", &self.glReadBuffer_p, src);
26722 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26723 {
26724 self.automatic_glGetError("glReadBuffer");
26725 }
26726 out
26727 }
26728 #[doc(hidden)]
26729 pub unsafe fn ReadBuffer_load_with_dyn(
26730 &self,
26731 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26732 ) -> bool {
26733 load_dyn_name_atomic_ptr(get_proc_address, b"glReadBuffer\0", &self.glReadBuffer_p)
26734 }
26735 #[inline]
26736 #[doc(hidden)]
26737 pub fn ReadBuffer_is_loaded(&self) -> bool {
26738 !self.glReadBuffer_p.load(RELAX).is_null()
26739 }
26740 /// [glReadPixels](http://docs.gl/gl4/glReadPixels)(x, y, width, height, format, type_, pixels)
26741 /// * `x` group: WinCoord
26742 /// * `y` group: WinCoord
26743 /// * `format` group: PixelFormat
26744 /// * `type_` group: PixelType
26745 /// * `pixels` len: COMPSIZE(format,type,width,height)
26746 #[cfg_attr(feature = "inline", inline)]
26747 #[cfg_attr(feature = "inline_always", inline(always))]
26748 pub unsafe fn ReadPixels(
26749 &self,
26750 x: GLint,
26751 y: GLint,
26752 width: GLsizei,
26753 height: GLsizei,
26754 format: GLenum,
26755 type_: GLenum,
26756 pixels: *mut c_void,
26757 ) {
26758 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26759 {
26760 trace!(
26761 "calling gl.ReadPixels({:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});",
26762 x,
26763 y,
26764 width,
26765 height,
26766 format,
26767 type_,
26768 pixels
26769 );
26770 }
26771 let out = call_atomic_ptr_7arg(
26772 "glReadPixels",
26773 &self.glReadPixels_p,
26774 x,
26775 y,
26776 width,
26777 height,
26778 format,
26779 type_,
26780 pixels,
26781 );
26782 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26783 {
26784 self.automatic_glGetError("glReadPixels");
26785 }
26786 out
26787 }
26788 #[doc(hidden)]
26789 pub unsafe fn ReadPixels_load_with_dyn(
26790 &self,
26791 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26792 ) -> bool {
26793 load_dyn_name_atomic_ptr(get_proc_address, b"glReadPixels\0", &self.glReadPixels_p)
26794 }
26795 #[inline]
26796 #[doc(hidden)]
26797 pub fn ReadPixels_is_loaded(&self) -> bool {
26798 !self.glReadPixels_p.load(RELAX).is_null()
26799 }
26800 /// [glReadnPixels](http://docs.gl/gl4/glReadnPixels)(x, y, width, height, format, type_, bufSize, data)
26801 /// * `format` group: PixelFormat
26802 /// * `type_` group: PixelType
26803 /// * `data` len: bufSize
26804 #[cfg_attr(feature = "inline", inline)]
26805 #[cfg_attr(feature = "inline_always", inline(always))]
26806 pub unsafe fn ReadnPixels(
26807 &self,
26808 x: GLint,
26809 y: GLint,
26810 width: GLsizei,
26811 height: GLsizei,
26812 format: GLenum,
26813 type_: GLenum,
26814 bufSize: GLsizei,
26815 data: *mut c_void,
26816 ) {
26817 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26818 {
26819 trace!(
26820 "calling gl.ReadnPixels({:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:?}, {:p});",
26821 x,
26822 y,
26823 width,
26824 height,
26825 format,
26826 type_,
26827 bufSize,
26828 data
26829 );
26830 }
26831 let out = call_atomic_ptr_8arg(
26832 "glReadnPixels",
26833 &self.glReadnPixels_p,
26834 x,
26835 y,
26836 width,
26837 height,
26838 format,
26839 type_,
26840 bufSize,
26841 data,
26842 );
26843 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26844 {
26845 self.automatic_glGetError("glReadnPixels");
26846 }
26847 out
26848 }
26849 #[doc(hidden)]
26850 pub unsafe fn ReadnPixels_load_with_dyn(
26851 &self,
26852 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26853 ) -> bool {
26854 load_dyn_name_atomic_ptr(get_proc_address, b"glReadnPixels\0", &self.glReadnPixels_p)
26855 }
26856 #[inline]
26857 #[doc(hidden)]
26858 pub fn ReadnPixels_is_loaded(&self) -> bool {
26859 !self.glReadnPixels_p.load(RELAX).is_null()
26860 }
26861 /// [glReleaseShaderCompiler](http://docs.gl/gl4/glReleaseShaderCompiler)()
26862 #[cfg_attr(feature = "inline", inline)]
26863 #[cfg_attr(feature = "inline_always", inline(always))]
26864 pub unsafe fn ReleaseShaderCompiler(&self) {
26865 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26866 {
26867 trace!("calling gl.ReleaseShaderCompiler();",);
26868 }
26869 let out =
26870 call_atomic_ptr_0arg("glReleaseShaderCompiler", &self.glReleaseShaderCompiler_p);
26871 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26872 {
26873 self.automatic_glGetError("glReleaseShaderCompiler");
26874 }
26875 out
26876 }
26877 #[doc(hidden)]
26878 pub unsafe fn ReleaseShaderCompiler_load_with_dyn(
26879 &self,
26880 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26881 ) -> bool {
26882 load_dyn_name_atomic_ptr(
26883 get_proc_address,
26884 b"glReleaseShaderCompiler\0",
26885 &self.glReleaseShaderCompiler_p,
26886 )
26887 }
26888 #[inline]
26889 #[doc(hidden)]
26890 pub fn ReleaseShaderCompiler_is_loaded(&self) -> bool {
26891 !self.glReleaseShaderCompiler_p.load(RELAX).is_null()
26892 }
26893 /// [glRenderbufferStorage](http://docs.gl/gl4/glRenderbufferStorage)(target, internalformat, width, height)
26894 /// * `target` group: RenderbufferTarget
26895 /// * `internalformat` group: InternalFormat
26896 #[cfg_attr(feature = "inline", inline)]
26897 #[cfg_attr(feature = "inline_always", inline(always))]
26898 pub unsafe fn RenderbufferStorage(
26899 &self,
26900 target: GLenum,
26901 internalformat: GLenum,
26902 width: GLsizei,
26903 height: GLsizei,
26904 ) {
26905 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26906 {
26907 trace!(
26908 "calling gl.RenderbufferStorage({:#X}, {:#X}, {:?}, {:?});",
26909 target,
26910 internalformat,
26911 width,
26912 height
26913 );
26914 }
26915 let out = call_atomic_ptr_4arg(
26916 "glRenderbufferStorage",
26917 &self.glRenderbufferStorage_p,
26918 target,
26919 internalformat,
26920 width,
26921 height,
26922 );
26923 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26924 {
26925 self.automatic_glGetError("glRenderbufferStorage");
26926 }
26927 out
26928 }
26929 #[doc(hidden)]
26930 pub unsafe fn RenderbufferStorage_load_with_dyn(
26931 &self,
26932 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26933 ) -> bool {
26934 load_dyn_name_atomic_ptr(
26935 get_proc_address,
26936 b"glRenderbufferStorage\0",
26937 &self.glRenderbufferStorage_p,
26938 )
26939 }
26940 #[inline]
26941 #[doc(hidden)]
26942 pub fn RenderbufferStorage_is_loaded(&self) -> bool {
26943 !self.glRenderbufferStorage_p.load(RELAX).is_null()
26944 }
26945 /// [glRenderbufferStorageMultisample](http://docs.gl/gl4/glRenderbufferStorageMultisample)(target, samples, internalformat, width, height)
26946 /// * `target` group: RenderbufferTarget
26947 /// * `internalformat` group: InternalFormat
26948 #[cfg_attr(feature = "inline", inline)]
26949 #[cfg_attr(feature = "inline_always", inline(always))]
26950 pub unsafe fn RenderbufferStorageMultisample(
26951 &self,
26952 target: GLenum,
26953 samples: GLsizei,
26954 internalformat: GLenum,
26955 width: GLsizei,
26956 height: GLsizei,
26957 ) {
26958 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26959 {
26960 trace!(
26961 "calling gl.RenderbufferStorageMultisample({:#X}, {:?}, {:#X}, {:?}, {:?});",
26962 target,
26963 samples,
26964 internalformat,
26965 width,
26966 height
26967 );
26968 }
26969 let out = call_atomic_ptr_5arg(
26970 "glRenderbufferStorageMultisample",
26971 &self.glRenderbufferStorageMultisample_p,
26972 target,
26973 samples,
26974 internalformat,
26975 width,
26976 height,
26977 );
26978 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26979 {
26980 self.automatic_glGetError("glRenderbufferStorageMultisample");
26981 }
26982 out
26983 }
26984 #[doc(hidden)]
26985 pub unsafe fn RenderbufferStorageMultisample_load_with_dyn(
26986 &self,
26987 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26988 ) -> bool {
26989 load_dyn_name_atomic_ptr(
26990 get_proc_address,
26991 b"glRenderbufferStorageMultisample\0",
26992 &self.glRenderbufferStorageMultisample_p,
26993 )
26994 }
26995 #[inline]
26996 #[doc(hidden)]
26997 pub fn RenderbufferStorageMultisample_is_loaded(&self) -> bool {
26998 !self
26999 .glRenderbufferStorageMultisample_p
27000 .load(RELAX)
27001 .is_null()
27002 }
27003 /// [glResumeTransformFeedback](http://docs.gl/gl4/glResumeTransformFeedback)()
27004 #[cfg_attr(feature = "inline", inline)]
27005 #[cfg_attr(feature = "inline_always", inline(always))]
27006 pub unsafe fn ResumeTransformFeedback(&self) {
27007 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27008 {
27009 trace!("calling gl.ResumeTransformFeedback();",);
27010 }
27011 let out = call_atomic_ptr_0arg(
27012 "glResumeTransformFeedback",
27013 &self.glResumeTransformFeedback_p,
27014 );
27015 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27016 {
27017 self.automatic_glGetError("glResumeTransformFeedback");
27018 }
27019 out
27020 }
27021 #[doc(hidden)]
27022 pub unsafe fn ResumeTransformFeedback_load_with_dyn(
27023 &self,
27024 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27025 ) -> bool {
27026 load_dyn_name_atomic_ptr(
27027 get_proc_address,
27028 b"glResumeTransformFeedback\0",
27029 &self.glResumeTransformFeedback_p,
27030 )
27031 }
27032 #[inline]
27033 #[doc(hidden)]
27034 pub fn ResumeTransformFeedback_is_loaded(&self) -> bool {
27035 !self.glResumeTransformFeedback_p.load(RELAX).is_null()
27036 }
27037 /// [glSampleCoverage](http://docs.gl/gl4/glSampleCoverage)(value, invert)
27038 #[cfg_attr(feature = "inline", inline)]
27039 #[cfg_attr(feature = "inline_always", inline(always))]
27040 pub unsafe fn SampleCoverage(&self, value: GLfloat, invert: GLboolean) {
27041 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27042 {
27043 trace!("calling gl.SampleCoverage({:?}, {:?});", value, invert);
27044 }
27045 let out =
27046 call_atomic_ptr_2arg("glSampleCoverage", &self.glSampleCoverage_p, value, invert);
27047 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27048 {
27049 self.automatic_glGetError("glSampleCoverage");
27050 }
27051 out
27052 }
27053 #[doc(hidden)]
27054 pub unsafe fn SampleCoverage_load_with_dyn(
27055 &self,
27056 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27057 ) -> bool {
27058 load_dyn_name_atomic_ptr(
27059 get_proc_address,
27060 b"glSampleCoverage\0",
27061 &self.glSampleCoverage_p,
27062 )
27063 }
27064 #[inline]
27065 #[doc(hidden)]
27066 pub fn SampleCoverage_is_loaded(&self) -> bool {
27067 !self.glSampleCoverage_p.load(RELAX).is_null()
27068 }
27069 /// [glSampleMaski](http://docs.gl/gl4/glSampleMask)(maskNumber, mask)
27070 #[cfg_attr(feature = "inline", inline)]
27071 #[cfg_attr(feature = "inline_always", inline(always))]
27072 pub unsafe fn SampleMaski(&self, maskNumber: GLuint, mask: GLbitfield) {
27073 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27074 {
27075 trace!("calling gl.SampleMaski({:?}, {:?});", maskNumber, mask);
27076 }
27077 let out =
27078 call_atomic_ptr_2arg("glSampleMaski", &self.glSampleMaski_p, maskNumber, mask);
27079 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27080 {
27081 self.automatic_glGetError("glSampleMaski");
27082 }
27083 out
27084 }
27085 #[doc(hidden)]
27086 pub unsafe fn SampleMaski_load_with_dyn(
27087 &self,
27088 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27089 ) -> bool {
27090 load_dyn_name_atomic_ptr(get_proc_address, b"glSampleMaski\0", &self.glSampleMaski_p)
27091 }
27092 #[inline]
27093 #[doc(hidden)]
27094 pub fn SampleMaski_is_loaded(&self) -> bool {
27095 !self.glSampleMaski_p.load(RELAX).is_null()
27096 }
27097 /// [glSamplerParameterIiv](http://docs.gl/gl4/glSamplerParameter)(sampler, pname, param)
27098 /// * `pname` group: SamplerParameterI
27099 /// * `param` len: COMPSIZE(pname)
27100 #[cfg_attr(feature = "inline", inline)]
27101 #[cfg_attr(feature = "inline_always", inline(always))]
27102 pub unsafe fn SamplerParameterIiv(
27103 &self,
27104 sampler: GLuint,
27105 pname: GLenum,
27106 param: *const GLint,
27107 ) {
27108 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27109 {
27110 trace!(
27111 "calling gl.SamplerParameterIiv({:?}, {:#X}, {:p});",
27112 sampler,
27113 pname,
27114 param
27115 );
27116 }
27117 let out = call_atomic_ptr_3arg(
27118 "glSamplerParameterIiv",
27119 &self.glSamplerParameterIiv_p,
27120 sampler,
27121 pname,
27122 param,
27123 );
27124 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27125 {
27126 self.automatic_glGetError("glSamplerParameterIiv");
27127 }
27128 out
27129 }
27130 #[doc(hidden)]
27131 pub unsafe fn SamplerParameterIiv_load_with_dyn(
27132 &self,
27133 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27134 ) -> bool {
27135 load_dyn_name_atomic_ptr(
27136 get_proc_address,
27137 b"glSamplerParameterIiv\0",
27138 &self.glSamplerParameterIiv_p,
27139 )
27140 }
27141 #[inline]
27142 #[doc(hidden)]
27143 pub fn SamplerParameterIiv_is_loaded(&self) -> bool {
27144 !self.glSamplerParameterIiv_p.load(RELAX).is_null()
27145 }
27146 /// [glSamplerParameterIuiv](http://docs.gl/gl4/glSamplerParameter)(sampler, pname, param)
27147 /// * `pname` group: SamplerParameterI
27148 /// * `param` len: COMPSIZE(pname)
27149 #[cfg_attr(feature = "inline", inline)]
27150 #[cfg_attr(feature = "inline_always", inline(always))]
27151 pub unsafe fn SamplerParameterIuiv(
27152 &self,
27153 sampler: GLuint,
27154 pname: GLenum,
27155 param: *const GLuint,
27156 ) {
27157 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27158 {
27159 trace!(
27160 "calling gl.SamplerParameterIuiv({:?}, {:#X}, {:p});",
27161 sampler,
27162 pname,
27163 param
27164 );
27165 }
27166 let out = call_atomic_ptr_3arg(
27167 "glSamplerParameterIuiv",
27168 &self.glSamplerParameterIuiv_p,
27169 sampler,
27170 pname,
27171 param,
27172 );
27173 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27174 {
27175 self.automatic_glGetError("glSamplerParameterIuiv");
27176 }
27177 out
27178 }
27179 #[doc(hidden)]
27180 pub unsafe fn SamplerParameterIuiv_load_with_dyn(
27181 &self,
27182 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27183 ) -> bool {
27184 load_dyn_name_atomic_ptr(
27185 get_proc_address,
27186 b"glSamplerParameterIuiv\0",
27187 &self.glSamplerParameterIuiv_p,
27188 )
27189 }
27190 #[inline]
27191 #[doc(hidden)]
27192 pub fn SamplerParameterIuiv_is_loaded(&self) -> bool {
27193 !self.glSamplerParameterIuiv_p.load(RELAX).is_null()
27194 }
27195 /// [glSamplerParameterf](http://docs.gl/gl4/glSamplerParameter)(sampler, pname, param)
27196 /// * `pname` group: SamplerParameterF
27197 #[cfg_attr(feature = "inline", inline)]
27198 #[cfg_attr(feature = "inline_always", inline(always))]
27199 pub unsafe fn SamplerParameterf(&self, sampler: GLuint, pname: GLenum, param: GLfloat) {
27200 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27201 {
27202 trace!(
27203 "calling gl.SamplerParameterf({:?}, {:#X}, {:?});",
27204 sampler,
27205 pname,
27206 param
27207 );
27208 }
27209 let out = call_atomic_ptr_3arg(
27210 "glSamplerParameterf",
27211 &self.glSamplerParameterf_p,
27212 sampler,
27213 pname,
27214 param,
27215 );
27216 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27217 {
27218 self.automatic_glGetError("glSamplerParameterf");
27219 }
27220 out
27221 }
27222 #[doc(hidden)]
27223 pub unsafe fn SamplerParameterf_load_with_dyn(
27224 &self,
27225 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27226 ) -> bool {
27227 load_dyn_name_atomic_ptr(
27228 get_proc_address,
27229 b"glSamplerParameterf\0",
27230 &self.glSamplerParameterf_p,
27231 )
27232 }
27233 #[inline]
27234 #[doc(hidden)]
27235 pub fn SamplerParameterf_is_loaded(&self) -> bool {
27236 !self.glSamplerParameterf_p.load(RELAX).is_null()
27237 }
27238 /// [glSamplerParameterfv](http://docs.gl/gl4/glSamplerParameter)(sampler, pname, param)
27239 /// * `pname` group: SamplerParameterF
27240 /// * `param` len: COMPSIZE(pname)
27241 #[cfg_attr(feature = "inline", inline)]
27242 #[cfg_attr(feature = "inline_always", inline(always))]
27243 pub unsafe fn SamplerParameterfv(
27244 &self,
27245 sampler: GLuint,
27246 pname: GLenum,
27247 param: *const GLfloat,
27248 ) {
27249 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27250 {
27251 trace!(
27252 "calling gl.SamplerParameterfv({:?}, {:#X}, {:p});",
27253 sampler,
27254 pname,
27255 param
27256 );
27257 }
27258 let out = call_atomic_ptr_3arg(
27259 "glSamplerParameterfv",
27260 &self.glSamplerParameterfv_p,
27261 sampler,
27262 pname,
27263 param,
27264 );
27265 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27266 {
27267 self.automatic_glGetError("glSamplerParameterfv");
27268 }
27269 out
27270 }
27271 #[doc(hidden)]
27272 pub unsafe fn SamplerParameterfv_load_with_dyn(
27273 &self,
27274 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27275 ) -> bool {
27276 load_dyn_name_atomic_ptr(
27277 get_proc_address,
27278 b"glSamplerParameterfv\0",
27279 &self.glSamplerParameterfv_p,
27280 )
27281 }
27282 #[inline]
27283 #[doc(hidden)]
27284 pub fn SamplerParameterfv_is_loaded(&self) -> bool {
27285 !self.glSamplerParameterfv_p.load(RELAX).is_null()
27286 }
27287 /// [glSamplerParameteri](http://docs.gl/gl4/glSamplerParameter)(sampler, pname, param)
27288 /// * `pname` group: SamplerParameterI
27289 #[cfg_attr(feature = "inline", inline)]
27290 #[cfg_attr(feature = "inline_always", inline(always))]
27291 pub unsafe fn SamplerParameteri(&self, sampler: GLuint, pname: GLenum, param: GLint) {
27292 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27293 {
27294 trace!(
27295 "calling gl.SamplerParameteri({:?}, {:#X}, {:?});",
27296 sampler,
27297 pname,
27298 param
27299 );
27300 }
27301 let out = call_atomic_ptr_3arg(
27302 "glSamplerParameteri",
27303 &self.glSamplerParameteri_p,
27304 sampler,
27305 pname,
27306 param,
27307 );
27308 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27309 {
27310 self.automatic_glGetError("glSamplerParameteri");
27311 }
27312 out
27313 }
27314 #[doc(hidden)]
27315 pub unsafe fn SamplerParameteri_load_with_dyn(
27316 &self,
27317 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27318 ) -> bool {
27319 load_dyn_name_atomic_ptr(
27320 get_proc_address,
27321 b"glSamplerParameteri\0",
27322 &self.glSamplerParameteri_p,
27323 )
27324 }
27325 #[inline]
27326 #[doc(hidden)]
27327 pub fn SamplerParameteri_is_loaded(&self) -> bool {
27328 !self.glSamplerParameteri_p.load(RELAX).is_null()
27329 }
27330 /// [glSamplerParameteriv](http://docs.gl/gl4/glSamplerParameter)(sampler, pname, param)
27331 /// * `pname` group: SamplerParameterI
27332 /// * `param` len: COMPSIZE(pname)
27333 #[cfg_attr(feature = "inline", inline)]
27334 #[cfg_attr(feature = "inline_always", inline(always))]
27335 pub unsafe fn SamplerParameteriv(
27336 &self,
27337 sampler: GLuint,
27338 pname: GLenum,
27339 param: *const GLint,
27340 ) {
27341 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27342 {
27343 trace!(
27344 "calling gl.SamplerParameteriv({:?}, {:#X}, {:p});",
27345 sampler,
27346 pname,
27347 param
27348 );
27349 }
27350 let out = call_atomic_ptr_3arg(
27351 "glSamplerParameteriv",
27352 &self.glSamplerParameteriv_p,
27353 sampler,
27354 pname,
27355 param,
27356 );
27357 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27358 {
27359 self.automatic_glGetError("glSamplerParameteriv");
27360 }
27361 out
27362 }
27363 #[doc(hidden)]
27364 pub unsafe fn SamplerParameteriv_load_with_dyn(
27365 &self,
27366 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27367 ) -> bool {
27368 load_dyn_name_atomic_ptr(
27369 get_proc_address,
27370 b"glSamplerParameteriv\0",
27371 &self.glSamplerParameteriv_p,
27372 )
27373 }
27374 #[inline]
27375 #[doc(hidden)]
27376 pub fn SamplerParameteriv_is_loaded(&self) -> bool {
27377 !self.glSamplerParameteriv_p.load(RELAX).is_null()
27378 }
27379 /// [glScissor](http://docs.gl/gl4/glScissor)(x, y, width, height)
27380 /// * `x` group: WinCoord
27381 /// * `y` group: WinCoord
27382 #[cfg_attr(feature = "inline", inline)]
27383 #[cfg_attr(feature = "inline_always", inline(always))]
27384 pub unsafe fn Scissor(&self, x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
27385 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27386 {
27387 trace!(
27388 "calling gl.Scissor({:?}, {:?}, {:?}, {:?});",
27389 x,
27390 y,
27391 width,
27392 height
27393 );
27394 }
27395 let out = call_atomic_ptr_4arg("glScissor", &self.glScissor_p, x, y, width, height);
27396 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27397 {
27398 self.automatic_glGetError("glScissor");
27399 }
27400 out
27401 }
27402 #[doc(hidden)]
27403 pub unsafe fn Scissor_load_with_dyn(
27404 &self,
27405 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27406 ) -> bool {
27407 load_dyn_name_atomic_ptr(get_proc_address, b"glScissor\0", &self.glScissor_p)
27408 }
27409 #[inline]
27410 #[doc(hidden)]
27411 pub fn Scissor_is_loaded(&self) -> bool {
27412 !self.glScissor_p.load(RELAX).is_null()
27413 }
27414 /// [glScissorArrayv](http://docs.gl/gl4/glScissorArrayv)(first, count, v)
27415 /// * `v` len: COMPSIZE(count)
27416 #[cfg_attr(feature = "inline", inline)]
27417 #[cfg_attr(feature = "inline_always", inline(always))]
27418 pub unsafe fn ScissorArrayv(&self, first: GLuint, count: GLsizei, v: *const GLint) {
27419 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27420 {
27421 trace!(
27422 "calling gl.ScissorArrayv({:?}, {:?}, {:p});",
27423 first,
27424 count,
27425 v
27426 );
27427 }
27428 let out =
27429 call_atomic_ptr_3arg("glScissorArrayv", &self.glScissorArrayv_p, first, count, v);
27430 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27431 {
27432 self.automatic_glGetError("glScissorArrayv");
27433 }
27434 out
27435 }
27436 #[doc(hidden)]
27437 pub unsafe fn ScissorArrayv_load_with_dyn(
27438 &self,
27439 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27440 ) -> bool {
27441 load_dyn_name_atomic_ptr(
27442 get_proc_address,
27443 b"glScissorArrayv\0",
27444 &self.glScissorArrayv_p,
27445 )
27446 }
27447 #[inline]
27448 #[doc(hidden)]
27449 pub fn ScissorArrayv_is_loaded(&self) -> bool {
27450 !self.glScissorArrayv_p.load(RELAX).is_null()
27451 }
27452 /// [glScissorIndexed](http://docs.gl/gl4/glScissorIndexed)(index, left, bottom, width, height)
27453 #[cfg_attr(feature = "inline", inline)]
27454 #[cfg_attr(feature = "inline_always", inline(always))]
27455 pub unsafe fn ScissorIndexed(
27456 &self,
27457 index: GLuint,
27458 left: GLint,
27459 bottom: GLint,
27460 width: GLsizei,
27461 height: GLsizei,
27462 ) {
27463 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27464 {
27465 trace!(
27466 "calling gl.ScissorIndexed({:?}, {:?}, {:?}, {:?}, {:?});",
27467 index,
27468 left,
27469 bottom,
27470 width,
27471 height
27472 );
27473 }
27474 let out = call_atomic_ptr_5arg(
27475 "glScissorIndexed",
27476 &self.glScissorIndexed_p,
27477 index,
27478 left,
27479 bottom,
27480 width,
27481 height,
27482 );
27483 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27484 {
27485 self.automatic_glGetError("glScissorIndexed");
27486 }
27487 out
27488 }
27489 #[doc(hidden)]
27490 pub unsafe fn ScissorIndexed_load_with_dyn(
27491 &self,
27492 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27493 ) -> bool {
27494 load_dyn_name_atomic_ptr(
27495 get_proc_address,
27496 b"glScissorIndexed\0",
27497 &self.glScissorIndexed_p,
27498 )
27499 }
27500 #[inline]
27501 #[doc(hidden)]
27502 pub fn ScissorIndexed_is_loaded(&self) -> bool {
27503 !self.glScissorIndexed_p.load(RELAX).is_null()
27504 }
27505 /// [glScissorIndexedv](http://docs.gl/gl4/glScissorIndexedv)(index, v)
27506 /// * `v` len: 4
27507 #[cfg_attr(feature = "inline", inline)]
27508 #[cfg_attr(feature = "inline_always", inline(always))]
27509 pub unsafe fn ScissorIndexedv(&self, index: GLuint, v: *const GLint) {
27510 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27511 {
27512 trace!("calling gl.ScissorIndexedv({:?}, {:p});", index, v);
27513 }
27514 let out =
27515 call_atomic_ptr_2arg("glScissorIndexedv", &self.glScissorIndexedv_p, index, v);
27516 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27517 {
27518 self.automatic_glGetError("glScissorIndexedv");
27519 }
27520 out
27521 }
27522 #[doc(hidden)]
27523 pub unsafe fn ScissorIndexedv_load_with_dyn(
27524 &self,
27525 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27526 ) -> bool {
27527 load_dyn_name_atomic_ptr(
27528 get_proc_address,
27529 b"glScissorIndexedv\0",
27530 &self.glScissorIndexedv_p,
27531 )
27532 }
27533 #[inline]
27534 #[doc(hidden)]
27535 pub fn ScissorIndexedv_is_loaded(&self) -> bool {
27536 !self.glScissorIndexedv_p.load(RELAX).is_null()
27537 }
27538 /// [glShaderBinary](http://docs.gl/gl4/glShaderBinary)(count, shaders, binaryFormat, binary, length)
27539 /// * `shaders` len: count
27540 /// * `binaryFormat` group: ShaderBinaryFormat
27541 /// * `binary` len: length
27542 #[cfg_attr(feature = "inline", inline)]
27543 #[cfg_attr(feature = "inline_always", inline(always))]
27544 pub unsafe fn ShaderBinary(
27545 &self,
27546 count: GLsizei,
27547 shaders: *const GLuint,
27548 binaryFormat: GLenum,
27549 binary: *const c_void,
27550 length: GLsizei,
27551 ) {
27552 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27553 {
27554 trace!(
27555 "calling gl.ShaderBinary({:?}, {:p}, {:#X}, {:p}, {:?});",
27556 count,
27557 shaders,
27558 binaryFormat,
27559 binary,
27560 length
27561 );
27562 }
27563 let out = call_atomic_ptr_5arg(
27564 "glShaderBinary",
27565 &self.glShaderBinary_p,
27566 count,
27567 shaders,
27568 binaryFormat,
27569 binary,
27570 length,
27571 );
27572 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27573 {
27574 self.automatic_glGetError("glShaderBinary");
27575 }
27576 out
27577 }
27578 #[doc(hidden)]
27579 pub unsafe fn ShaderBinary_load_with_dyn(
27580 &self,
27581 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27582 ) -> bool {
27583 load_dyn_name_atomic_ptr(
27584 get_proc_address,
27585 b"glShaderBinary\0",
27586 &self.glShaderBinary_p,
27587 )
27588 }
27589 #[inline]
27590 #[doc(hidden)]
27591 pub fn ShaderBinary_is_loaded(&self) -> bool {
27592 !self.glShaderBinary_p.load(RELAX).is_null()
27593 }
27594 /// [glShaderSource](http://docs.gl/gl4/glShaderSource)(shader, count, string, length)
27595 /// * `string` len: count
27596 /// * `length` len: count
27597 #[cfg_attr(feature = "inline", inline)]
27598 #[cfg_attr(feature = "inline_always", inline(always))]
27599 pub unsafe fn ShaderSource(
27600 &self,
27601 shader: GLuint,
27602 count: GLsizei,
27603 string: *const *const GLchar,
27604 length: *const GLint,
27605 ) {
27606 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27607 {
27608 trace!(
27609 "calling gl.ShaderSource({:?}, {:?}, {:p}, {:p});",
27610 shader,
27611 count,
27612 string,
27613 length
27614 );
27615 }
27616 let out = call_atomic_ptr_4arg(
27617 "glShaderSource",
27618 &self.glShaderSource_p,
27619 shader,
27620 count,
27621 string,
27622 length,
27623 );
27624 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27625 {
27626 self.automatic_glGetError("glShaderSource");
27627 }
27628 out
27629 }
27630 #[doc(hidden)]
27631 pub unsafe fn ShaderSource_load_with_dyn(
27632 &self,
27633 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27634 ) -> bool {
27635 load_dyn_name_atomic_ptr(
27636 get_proc_address,
27637 b"glShaderSource\0",
27638 &self.glShaderSource_p,
27639 )
27640 }
27641 #[inline]
27642 #[doc(hidden)]
27643 pub fn ShaderSource_is_loaded(&self) -> bool {
27644 !self.glShaderSource_p.load(RELAX).is_null()
27645 }
27646 /// [glShaderStorageBlockBinding](http://docs.gl/gl4/glShaderStorageBlockBinding)(program, storageBlockIndex, storageBlockBinding)
27647 #[cfg_attr(feature = "inline", inline)]
27648 #[cfg_attr(feature = "inline_always", inline(always))]
27649 pub unsafe fn ShaderStorageBlockBinding(
27650 &self,
27651 program: GLuint,
27652 storageBlockIndex: GLuint,
27653 storageBlockBinding: GLuint,
27654 ) {
27655 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27656 {
27657 trace!(
27658 "calling gl.ShaderStorageBlockBinding({:?}, {:?}, {:?});",
27659 program,
27660 storageBlockIndex,
27661 storageBlockBinding
27662 );
27663 }
27664 let out = call_atomic_ptr_3arg(
27665 "glShaderStorageBlockBinding",
27666 &self.glShaderStorageBlockBinding_p,
27667 program,
27668 storageBlockIndex,
27669 storageBlockBinding,
27670 );
27671 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27672 {
27673 self.automatic_glGetError("glShaderStorageBlockBinding");
27674 }
27675 out
27676 }
27677 #[doc(hidden)]
27678 pub unsafe fn ShaderStorageBlockBinding_load_with_dyn(
27679 &self,
27680 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27681 ) -> bool {
27682 load_dyn_name_atomic_ptr(
27683 get_proc_address,
27684 b"glShaderStorageBlockBinding\0",
27685 &self.glShaderStorageBlockBinding_p,
27686 )
27687 }
27688 #[inline]
27689 #[doc(hidden)]
27690 pub fn ShaderStorageBlockBinding_is_loaded(&self) -> bool {
27691 !self.glShaderStorageBlockBinding_p.load(RELAX).is_null()
27692 }
27693 /// [glSpecializeShader](http://docs.gl/gl4/glSpecializeShader)(shader, pEntryPoint, numSpecializationConstants, pConstantIndex, pConstantValue)
27694 #[cfg_attr(feature = "inline", inline)]
27695 #[cfg_attr(feature = "inline_always", inline(always))]
27696 pub unsafe fn SpecializeShader(
27697 &self,
27698 shader: GLuint,
27699 pEntryPoint: *const GLchar,
27700 numSpecializationConstants: GLuint,
27701 pConstantIndex: *const GLuint,
27702 pConstantValue: *const GLuint,
27703 ) {
27704 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27705 {
27706 trace!(
27707 "calling gl.SpecializeShader({:?}, {:p}, {:?}, {:p}, {:p});",
27708 shader,
27709 pEntryPoint,
27710 numSpecializationConstants,
27711 pConstantIndex,
27712 pConstantValue
27713 );
27714 }
27715 let out = call_atomic_ptr_5arg(
27716 "glSpecializeShader",
27717 &self.glSpecializeShader_p,
27718 shader,
27719 pEntryPoint,
27720 numSpecializationConstants,
27721 pConstantIndex,
27722 pConstantValue,
27723 );
27724 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27725 {
27726 self.automatic_glGetError("glSpecializeShader");
27727 }
27728 out
27729 }
27730 #[doc(hidden)]
27731 pub unsafe fn SpecializeShader_load_with_dyn(
27732 &self,
27733 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27734 ) -> bool {
27735 load_dyn_name_atomic_ptr(
27736 get_proc_address,
27737 b"glSpecializeShader\0",
27738 &self.glSpecializeShader_p,
27739 )
27740 }
27741 #[inline]
27742 #[doc(hidden)]
27743 pub fn SpecializeShader_is_loaded(&self) -> bool {
27744 !self.glSpecializeShader_p.load(RELAX).is_null()
27745 }
27746 /// [glStencilFunc](http://docs.gl/gl4/glStencilFunc)(func, ref_, mask)
27747 /// * `func` group: StencilFunction
27748 /// * `ref_` group: StencilValue
27749 /// * `mask` group: MaskedStencilValue
27750 #[cfg_attr(feature = "inline", inline)]
27751 #[cfg_attr(feature = "inline_always", inline(always))]
27752 pub unsafe fn StencilFunc(&self, func: GLenum, ref_: GLint, mask: GLuint) {
27753 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27754 {
27755 trace!(
27756 "calling gl.StencilFunc({:#X}, {:?}, {:?});",
27757 func,
27758 ref_,
27759 mask
27760 );
27761 }
27762 let out =
27763 call_atomic_ptr_3arg("glStencilFunc", &self.glStencilFunc_p, func, ref_, mask);
27764 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27765 {
27766 self.automatic_glGetError("glStencilFunc");
27767 }
27768 out
27769 }
27770 #[doc(hidden)]
27771 pub unsafe fn StencilFunc_load_with_dyn(
27772 &self,
27773 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27774 ) -> bool {
27775 load_dyn_name_atomic_ptr(get_proc_address, b"glStencilFunc\0", &self.glStencilFunc_p)
27776 }
27777 #[inline]
27778 #[doc(hidden)]
27779 pub fn StencilFunc_is_loaded(&self) -> bool {
27780 !self.glStencilFunc_p.load(RELAX).is_null()
27781 }
27782 /// [glStencilFuncSeparate](http://docs.gl/gl4/glStencilFuncSeparate)(face, func, ref_, mask)
27783 /// * `face` group: StencilFaceDirection
27784 /// * `func` group: StencilFunction
27785 /// * `ref_` group: StencilValue
27786 /// * `mask` group: MaskedStencilValue
27787 #[cfg_attr(feature = "inline", inline)]
27788 #[cfg_attr(feature = "inline_always", inline(always))]
27789 pub unsafe fn StencilFuncSeparate(
27790 &self,
27791 face: GLenum,
27792 func: GLenum,
27793 ref_: GLint,
27794 mask: GLuint,
27795 ) {
27796 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27797 {
27798 trace!(
27799 "calling gl.StencilFuncSeparate({:#X}, {:#X}, {:?}, {:?});",
27800 face,
27801 func,
27802 ref_,
27803 mask
27804 );
27805 }
27806 let out = call_atomic_ptr_4arg(
27807 "glStencilFuncSeparate",
27808 &self.glStencilFuncSeparate_p,
27809 face,
27810 func,
27811 ref_,
27812 mask,
27813 );
27814 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27815 {
27816 self.automatic_glGetError("glStencilFuncSeparate");
27817 }
27818 out
27819 }
27820 #[doc(hidden)]
27821 pub unsafe fn StencilFuncSeparate_load_with_dyn(
27822 &self,
27823 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27824 ) -> bool {
27825 load_dyn_name_atomic_ptr(
27826 get_proc_address,
27827 b"glStencilFuncSeparate\0",
27828 &self.glStencilFuncSeparate_p,
27829 )
27830 }
27831 #[inline]
27832 #[doc(hidden)]
27833 pub fn StencilFuncSeparate_is_loaded(&self) -> bool {
27834 !self.glStencilFuncSeparate_p.load(RELAX).is_null()
27835 }
27836 /// [glStencilMask](http://docs.gl/gl4/glStencilMask)(mask)
27837 /// * `mask` group: MaskedStencilValue
27838 #[cfg_attr(feature = "inline", inline)]
27839 #[cfg_attr(feature = "inline_always", inline(always))]
27840 pub unsafe fn StencilMask(&self, mask: GLuint) {
27841 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27842 {
27843 trace!("calling gl.StencilMask({:?});", mask);
27844 }
27845 let out = call_atomic_ptr_1arg("glStencilMask", &self.glStencilMask_p, mask);
27846 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27847 {
27848 self.automatic_glGetError("glStencilMask");
27849 }
27850 out
27851 }
27852 #[doc(hidden)]
27853 pub unsafe fn StencilMask_load_with_dyn(
27854 &self,
27855 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27856 ) -> bool {
27857 load_dyn_name_atomic_ptr(get_proc_address, b"glStencilMask\0", &self.glStencilMask_p)
27858 }
27859 #[inline]
27860 #[doc(hidden)]
27861 pub fn StencilMask_is_loaded(&self) -> bool {
27862 !self.glStencilMask_p.load(RELAX).is_null()
27863 }
27864 /// [glStencilMaskSeparate](http://docs.gl/gl4/glStencilMaskSeparate)(face, mask)
27865 /// * `face` group: StencilFaceDirection
27866 /// * `mask` group: MaskedStencilValue
27867 #[cfg_attr(feature = "inline", inline)]
27868 #[cfg_attr(feature = "inline_always", inline(always))]
27869 pub unsafe fn StencilMaskSeparate(&self, face: GLenum, mask: GLuint) {
27870 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27871 {
27872 trace!("calling gl.StencilMaskSeparate({:#X}, {:?});", face, mask);
27873 }
27874 let out = call_atomic_ptr_2arg(
27875 "glStencilMaskSeparate",
27876 &self.glStencilMaskSeparate_p,
27877 face,
27878 mask,
27879 );
27880 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27881 {
27882 self.automatic_glGetError("glStencilMaskSeparate");
27883 }
27884 out
27885 }
27886 #[doc(hidden)]
27887 pub unsafe fn StencilMaskSeparate_load_with_dyn(
27888 &self,
27889 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27890 ) -> bool {
27891 load_dyn_name_atomic_ptr(
27892 get_proc_address,
27893 b"glStencilMaskSeparate\0",
27894 &self.glStencilMaskSeparate_p,
27895 )
27896 }
27897 #[inline]
27898 #[doc(hidden)]
27899 pub fn StencilMaskSeparate_is_loaded(&self) -> bool {
27900 !self.glStencilMaskSeparate_p.load(RELAX).is_null()
27901 }
27902 /// [glStencilOp](http://docs.gl/gl4/glStencilOp)(fail, zfail, zpass)
27903 /// * `fail` group: StencilOp
27904 /// * `zfail` group: StencilOp
27905 /// * `zpass` group: StencilOp
27906 #[cfg_attr(feature = "inline", inline)]
27907 #[cfg_attr(feature = "inline_always", inline(always))]
27908 pub unsafe fn StencilOp(&self, fail: GLenum, zfail: GLenum, zpass: GLenum) {
27909 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27910 {
27911 trace!(
27912 "calling gl.StencilOp({:#X}, {:#X}, {:#X});",
27913 fail,
27914 zfail,
27915 zpass
27916 );
27917 }
27918 let out = call_atomic_ptr_3arg("glStencilOp", &self.glStencilOp_p, fail, zfail, zpass);
27919 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27920 {
27921 self.automatic_glGetError("glStencilOp");
27922 }
27923 out
27924 }
27925 #[doc(hidden)]
27926 pub unsafe fn StencilOp_load_with_dyn(
27927 &self,
27928 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27929 ) -> bool {
27930 load_dyn_name_atomic_ptr(get_proc_address, b"glStencilOp\0", &self.glStencilOp_p)
27931 }
27932 #[inline]
27933 #[doc(hidden)]
27934 pub fn StencilOp_is_loaded(&self) -> bool {
27935 !self.glStencilOp_p.load(RELAX).is_null()
27936 }
27937 /// [glStencilOpSeparate](http://docs.gl/gl4/glStencilOpSeparate)(face, sfail, dpfail, dppass)
27938 /// * `face` group: StencilFaceDirection
27939 /// * `sfail` group: StencilOp
27940 /// * `dpfail` group: StencilOp
27941 /// * `dppass` group: StencilOp
27942 #[cfg_attr(feature = "inline", inline)]
27943 #[cfg_attr(feature = "inline_always", inline(always))]
27944 pub unsafe fn StencilOpSeparate(
27945 &self,
27946 face: GLenum,
27947 sfail: GLenum,
27948 dpfail: GLenum,
27949 dppass: GLenum,
27950 ) {
27951 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27952 {
27953 trace!(
27954 "calling gl.StencilOpSeparate({:#X}, {:#X}, {:#X}, {:#X});",
27955 face,
27956 sfail,
27957 dpfail,
27958 dppass
27959 );
27960 }
27961 let out = call_atomic_ptr_4arg(
27962 "glStencilOpSeparate",
27963 &self.glStencilOpSeparate_p,
27964 face,
27965 sfail,
27966 dpfail,
27967 dppass,
27968 );
27969 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27970 {
27971 self.automatic_glGetError("glStencilOpSeparate");
27972 }
27973 out
27974 }
27975 #[doc(hidden)]
27976 pub unsafe fn StencilOpSeparate_load_with_dyn(
27977 &self,
27978 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27979 ) -> bool {
27980 load_dyn_name_atomic_ptr(
27981 get_proc_address,
27982 b"glStencilOpSeparate\0",
27983 &self.glStencilOpSeparate_p,
27984 )
27985 }
27986 #[inline]
27987 #[doc(hidden)]
27988 pub fn StencilOpSeparate_is_loaded(&self) -> bool {
27989 !self.glStencilOpSeparate_p.load(RELAX).is_null()
27990 }
27991 /// [glTexBuffer](http://docs.gl/gl4/glTexBuffer)(target, internalformat, buffer)
27992 /// * `target` group: TextureTarget
27993 /// * `internalformat` group: InternalFormat
27994 #[cfg_attr(feature = "inline", inline)]
27995 #[cfg_attr(feature = "inline_always", inline(always))]
27996 pub unsafe fn TexBuffer(&self, target: GLenum, internalformat: GLenum, buffer: GLuint) {
27997 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27998 {
27999 trace!(
28000 "calling gl.TexBuffer({:#X}, {:#X}, {:?});",
28001 target,
28002 internalformat,
28003 buffer
28004 );
28005 }
28006 let out = call_atomic_ptr_3arg(
28007 "glTexBuffer",
28008 &self.glTexBuffer_p,
28009 target,
28010 internalformat,
28011 buffer,
28012 );
28013 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28014 {
28015 self.automatic_glGetError("glTexBuffer");
28016 }
28017 out
28018 }
28019 #[doc(hidden)]
28020 pub unsafe fn TexBuffer_load_with_dyn(
28021 &self,
28022 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28023 ) -> bool {
28024 load_dyn_name_atomic_ptr(get_proc_address, b"glTexBuffer\0", &self.glTexBuffer_p)
28025 }
28026 #[inline]
28027 #[doc(hidden)]
28028 pub fn TexBuffer_is_loaded(&self) -> bool {
28029 !self.glTexBuffer_p.load(RELAX).is_null()
28030 }
28031 /// [glTexBufferRange](http://docs.gl/gl4/glTexBufferRange)(target, internalformat, buffer, offset, size)
28032 /// * `target` group: TextureTarget
28033 /// * `internalformat` group: InternalFormat
28034 /// * `offset` group: BufferOffset
28035 /// * `size` group: BufferSize
28036 #[cfg_attr(feature = "inline", inline)]
28037 #[cfg_attr(feature = "inline_always", inline(always))]
28038 pub unsafe fn TexBufferRange(
28039 &self,
28040 target: GLenum,
28041 internalformat: GLenum,
28042 buffer: GLuint,
28043 offset: GLintptr,
28044 size: GLsizeiptr,
28045 ) {
28046 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28047 {
28048 trace!(
28049 "calling gl.TexBufferRange({:#X}, {:#X}, {:?}, {:?}, {:?});",
28050 target,
28051 internalformat,
28052 buffer,
28053 offset,
28054 size
28055 );
28056 }
28057 let out = call_atomic_ptr_5arg(
28058 "glTexBufferRange",
28059 &self.glTexBufferRange_p,
28060 target,
28061 internalformat,
28062 buffer,
28063 offset,
28064 size,
28065 );
28066 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28067 {
28068 self.automatic_glGetError("glTexBufferRange");
28069 }
28070 out
28071 }
28072 #[doc(hidden)]
28073 pub unsafe fn TexBufferRange_load_with_dyn(
28074 &self,
28075 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28076 ) -> bool {
28077 load_dyn_name_atomic_ptr(
28078 get_proc_address,
28079 b"glTexBufferRange\0",
28080 &self.glTexBufferRange_p,
28081 )
28082 }
28083 #[inline]
28084 #[doc(hidden)]
28085 pub fn TexBufferRange_is_loaded(&self) -> bool {
28086 !self.glTexBufferRange_p.load(RELAX).is_null()
28087 }
28088 /// [glTexImage1D](http://docs.gl/gl4/glTexImage1D)(target, level, internalformat, width, border, format, type_, pixels)
28089 /// * `target` group: TextureTarget
28090 /// * `level` group: CheckedInt32
28091 /// * `internalformat` group: InternalFormat
28092 /// * `border` group: CheckedInt32
28093 /// * `format` group: PixelFormat
28094 /// * `type_` group: PixelType
28095 /// * `pixels` len: COMPSIZE(format,type,width)
28096 #[cfg_attr(feature = "inline", inline)]
28097 #[cfg_attr(feature = "inline_always", inline(always))]
28098 pub unsafe fn TexImage1D(
28099 &self,
28100 target: GLenum,
28101 level: GLint,
28102 internalformat: GLint,
28103 width: GLsizei,
28104 border: GLint,
28105 format: GLenum,
28106 type_: GLenum,
28107 pixels: *const c_void,
28108 ) {
28109 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28110 {
28111 trace!(
28112 "calling gl.TexImage1D({:#X}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});",
28113 target,
28114 level,
28115 internalformat,
28116 width,
28117 border,
28118 format,
28119 type_,
28120 pixels
28121 );
28122 }
28123 let out = call_atomic_ptr_8arg(
28124 "glTexImage1D",
28125 &self.glTexImage1D_p,
28126 target,
28127 level,
28128 internalformat,
28129 width,
28130 border,
28131 format,
28132 type_,
28133 pixels,
28134 );
28135 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28136 {
28137 self.automatic_glGetError("glTexImage1D");
28138 }
28139 out
28140 }
28141 #[doc(hidden)]
28142 pub unsafe fn TexImage1D_load_with_dyn(
28143 &self,
28144 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28145 ) -> bool {
28146 load_dyn_name_atomic_ptr(get_proc_address, b"glTexImage1D\0", &self.glTexImage1D_p)
28147 }
28148 #[inline]
28149 #[doc(hidden)]
28150 pub fn TexImage1D_is_loaded(&self) -> bool {
28151 !self.glTexImage1D_p.load(RELAX).is_null()
28152 }
28153 /// [glTexImage2D](http://docs.gl/gl4/glTexImage2D)(target, level, internalformat, width, height, border, format, type_, pixels)
28154 /// * `target` group: TextureTarget
28155 /// * `level` group: CheckedInt32
28156 /// * `internalformat` group: InternalFormat
28157 /// * `border` group: CheckedInt32
28158 /// * `format` group: PixelFormat
28159 /// * `type_` group: PixelType
28160 /// * `pixels` len: COMPSIZE(format,type,width,height)
28161 #[cfg_attr(feature = "inline", inline)]
28162 #[cfg_attr(feature = "inline_always", inline(always))]
28163 pub unsafe fn TexImage2D(
28164 &self,
28165 target: GLenum,
28166 level: GLint,
28167 internalformat: GLint,
28168 width: GLsizei,
28169 height: GLsizei,
28170 border: GLint,
28171 format: GLenum,
28172 type_: GLenum,
28173 pixels: *const c_void,
28174 ) {
28175 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28176 {
28177 trace!("calling gl.TexImage2D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", target, level, internalformat, width, height, border, format, type_, pixels);
28178 }
28179 let out = call_atomic_ptr_9arg(
28180 "glTexImage2D",
28181 &self.glTexImage2D_p,
28182 target,
28183 level,
28184 internalformat,
28185 width,
28186 height,
28187 border,
28188 format,
28189 type_,
28190 pixels,
28191 );
28192 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28193 {
28194 self.automatic_glGetError("glTexImage2D");
28195 }
28196 out
28197 }
28198 #[doc(hidden)]
28199 pub unsafe fn TexImage2D_load_with_dyn(
28200 &self,
28201 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28202 ) -> bool {
28203 load_dyn_name_atomic_ptr(get_proc_address, b"glTexImage2D\0", &self.glTexImage2D_p)
28204 }
28205 #[inline]
28206 #[doc(hidden)]
28207 pub fn TexImage2D_is_loaded(&self) -> bool {
28208 !self.glTexImage2D_p.load(RELAX).is_null()
28209 }
28210 /// [glTexImage2DMultisample](http://docs.gl/gl4/glTexImage2DMultisample)(target, samples, internalformat, width, height, fixedsamplelocations)
28211 /// * `target` group: TextureTarget
28212 /// * `internalformat` group: InternalFormat
28213 #[cfg_attr(feature = "inline", inline)]
28214 #[cfg_attr(feature = "inline_always", inline(always))]
28215 pub unsafe fn TexImage2DMultisample(
28216 &self,
28217 target: GLenum,
28218 samples: GLsizei,
28219 internalformat: GLenum,
28220 width: GLsizei,
28221 height: GLsizei,
28222 fixedsamplelocations: GLboolean,
28223 ) {
28224 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28225 {
28226 trace!(
28227 "calling gl.TexImage2DMultisample({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?});",
28228 target,
28229 samples,
28230 internalformat,
28231 width,
28232 height,
28233 fixedsamplelocations
28234 );
28235 }
28236 let out = call_atomic_ptr_6arg(
28237 "glTexImage2DMultisample",
28238 &self.glTexImage2DMultisample_p,
28239 target,
28240 samples,
28241 internalformat,
28242 width,
28243 height,
28244 fixedsamplelocations,
28245 );
28246 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28247 {
28248 self.automatic_glGetError("glTexImage2DMultisample");
28249 }
28250 out
28251 }
28252 #[doc(hidden)]
28253 pub unsafe fn TexImage2DMultisample_load_with_dyn(
28254 &self,
28255 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28256 ) -> bool {
28257 load_dyn_name_atomic_ptr(
28258 get_proc_address,
28259 b"glTexImage2DMultisample\0",
28260 &self.glTexImage2DMultisample_p,
28261 )
28262 }
28263 #[inline]
28264 #[doc(hidden)]
28265 pub fn TexImage2DMultisample_is_loaded(&self) -> bool {
28266 !self.glTexImage2DMultisample_p.load(RELAX).is_null()
28267 }
28268 /// [glTexImage3D](http://docs.gl/gl4/glTexImage3D)(target, level, internalformat, width, height, depth, border, format, type_, pixels)
28269 /// * `target` group: TextureTarget
28270 /// * `level` group: CheckedInt32
28271 /// * `internalformat` group: InternalFormat
28272 /// * `border` group: CheckedInt32
28273 /// * `format` group: PixelFormat
28274 /// * `type_` group: PixelType
28275 /// * `pixels` len: COMPSIZE(format,type,width,height,depth)
28276 #[cfg_attr(feature = "inline", inline)]
28277 #[cfg_attr(feature = "inline_always", inline(always))]
28278 pub unsafe fn TexImage3D(
28279 &self,
28280 target: GLenum,
28281 level: GLint,
28282 internalformat: GLint,
28283 width: GLsizei,
28284 height: GLsizei,
28285 depth: GLsizei,
28286 border: GLint,
28287 format: GLenum,
28288 type_: GLenum,
28289 pixels: *const c_void,
28290 ) {
28291 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28292 {
28293 trace!("calling gl.TexImage3D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", target, level, internalformat, width, height, depth, border, format, type_, pixels);
28294 }
28295 let out = call_atomic_ptr_10arg(
28296 "glTexImage3D",
28297 &self.glTexImage3D_p,
28298 target,
28299 level,
28300 internalformat,
28301 width,
28302 height,
28303 depth,
28304 border,
28305 format,
28306 type_,
28307 pixels,
28308 );
28309 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28310 {
28311 self.automatic_glGetError("glTexImage3D");
28312 }
28313 out
28314 }
28315 #[doc(hidden)]
28316 pub unsafe fn TexImage3D_load_with_dyn(
28317 &self,
28318 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28319 ) -> bool {
28320 load_dyn_name_atomic_ptr(get_proc_address, b"glTexImage3D\0", &self.glTexImage3D_p)
28321 }
28322 #[inline]
28323 #[doc(hidden)]
28324 pub fn TexImage3D_is_loaded(&self) -> bool {
28325 !self.glTexImage3D_p.load(RELAX).is_null()
28326 }
28327 /// [glTexImage3DMultisample](http://docs.gl/gl4/glTexImage3DMultisample)(target, samples, internalformat, width, height, depth, fixedsamplelocations)
28328 /// * `target` group: TextureTarget
28329 /// * `internalformat` group: InternalFormat
28330 #[cfg_attr(feature = "inline", inline)]
28331 #[cfg_attr(feature = "inline_always", inline(always))]
28332 pub unsafe fn TexImage3DMultisample(
28333 &self,
28334 target: GLenum,
28335 samples: GLsizei,
28336 internalformat: GLenum,
28337 width: GLsizei,
28338 height: GLsizei,
28339 depth: GLsizei,
28340 fixedsamplelocations: GLboolean,
28341 ) {
28342 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28343 {
28344 trace!(
28345 "calling gl.TexImage3DMultisample({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?});",
28346 target,
28347 samples,
28348 internalformat,
28349 width,
28350 height,
28351 depth,
28352 fixedsamplelocations
28353 );
28354 }
28355 let out = call_atomic_ptr_7arg(
28356 "glTexImage3DMultisample",
28357 &self.glTexImage3DMultisample_p,
28358 target,
28359 samples,
28360 internalformat,
28361 width,
28362 height,
28363 depth,
28364 fixedsamplelocations,
28365 );
28366 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28367 {
28368 self.automatic_glGetError("glTexImage3DMultisample");
28369 }
28370 out
28371 }
28372 #[doc(hidden)]
28373 pub unsafe fn TexImage3DMultisample_load_with_dyn(
28374 &self,
28375 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28376 ) -> bool {
28377 load_dyn_name_atomic_ptr(
28378 get_proc_address,
28379 b"glTexImage3DMultisample\0",
28380 &self.glTexImage3DMultisample_p,
28381 )
28382 }
28383 #[inline]
28384 #[doc(hidden)]
28385 pub fn TexImage3DMultisample_is_loaded(&self) -> bool {
28386 !self.glTexImage3DMultisample_p.load(RELAX).is_null()
28387 }
28388 /// [glTexParameterIiv](http://docs.gl/gl4/glTexParameter)(target, pname, params)
28389 /// * `target` group: TextureTarget
28390 /// * `pname` group: TextureParameterName
28391 /// * `params` len: COMPSIZE(pname)
28392 #[cfg_attr(feature = "inline", inline)]
28393 #[cfg_attr(feature = "inline_always", inline(always))]
28394 pub unsafe fn TexParameterIiv(&self, target: GLenum, pname: GLenum, params: *const GLint) {
28395 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28396 {
28397 trace!(
28398 "calling gl.TexParameterIiv({:#X}, {:#X}, {:p});",
28399 target,
28400 pname,
28401 params
28402 );
28403 }
28404 let out = call_atomic_ptr_3arg(
28405 "glTexParameterIiv",
28406 &self.glTexParameterIiv_p,
28407 target,
28408 pname,
28409 params,
28410 );
28411 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28412 {
28413 self.automatic_glGetError("glTexParameterIiv");
28414 }
28415 out
28416 }
28417 #[doc(hidden)]
28418 pub unsafe fn TexParameterIiv_load_with_dyn(
28419 &self,
28420 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28421 ) -> bool {
28422 load_dyn_name_atomic_ptr(
28423 get_proc_address,
28424 b"glTexParameterIiv\0",
28425 &self.glTexParameterIiv_p,
28426 )
28427 }
28428 #[inline]
28429 #[doc(hidden)]
28430 pub fn TexParameterIiv_is_loaded(&self) -> bool {
28431 !self.glTexParameterIiv_p.load(RELAX).is_null()
28432 }
28433 /// [glTexParameterIuiv](http://docs.gl/gl4/glTexParameter)(target, pname, params)
28434 /// * `target` group: TextureTarget
28435 /// * `pname` group: TextureParameterName
28436 /// * `params` len: COMPSIZE(pname)
28437 #[cfg_attr(feature = "inline", inline)]
28438 #[cfg_attr(feature = "inline_always", inline(always))]
28439 pub unsafe fn TexParameterIuiv(
28440 &self,
28441 target: GLenum,
28442 pname: GLenum,
28443 params: *const GLuint,
28444 ) {
28445 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28446 {
28447 trace!(
28448 "calling gl.TexParameterIuiv({:#X}, {:#X}, {:p});",
28449 target,
28450 pname,
28451 params
28452 );
28453 }
28454 let out = call_atomic_ptr_3arg(
28455 "glTexParameterIuiv",
28456 &self.glTexParameterIuiv_p,
28457 target,
28458 pname,
28459 params,
28460 );
28461 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28462 {
28463 self.automatic_glGetError("glTexParameterIuiv");
28464 }
28465 out
28466 }
28467 #[doc(hidden)]
28468 pub unsafe fn TexParameterIuiv_load_with_dyn(
28469 &self,
28470 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28471 ) -> bool {
28472 load_dyn_name_atomic_ptr(
28473 get_proc_address,
28474 b"glTexParameterIuiv\0",
28475 &self.glTexParameterIuiv_p,
28476 )
28477 }
28478 #[inline]
28479 #[doc(hidden)]
28480 pub fn TexParameterIuiv_is_loaded(&self) -> bool {
28481 !self.glTexParameterIuiv_p.load(RELAX).is_null()
28482 }
28483 /// [glTexParameterf](http://docs.gl/gl4/glTexParameter)(target, pname, param)
28484 /// * `target` group: TextureTarget
28485 /// * `pname` group: TextureParameterName
28486 /// * `param` group: CheckedFloat32
28487 #[cfg_attr(feature = "inline", inline)]
28488 #[cfg_attr(feature = "inline_always", inline(always))]
28489 pub unsafe fn TexParameterf(&self, target: GLenum, pname: GLenum, param: GLfloat) {
28490 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28491 {
28492 trace!(
28493 "calling gl.TexParameterf({:#X}, {:#X}, {:?});",
28494 target,
28495 pname,
28496 param
28497 );
28498 }
28499 let out = call_atomic_ptr_3arg(
28500 "glTexParameterf",
28501 &self.glTexParameterf_p,
28502 target,
28503 pname,
28504 param,
28505 );
28506 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28507 {
28508 self.automatic_glGetError("glTexParameterf");
28509 }
28510 out
28511 }
28512 #[doc(hidden)]
28513 pub unsafe fn TexParameterf_load_with_dyn(
28514 &self,
28515 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28516 ) -> bool {
28517 load_dyn_name_atomic_ptr(
28518 get_proc_address,
28519 b"glTexParameterf\0",
28520 &self.glTexParameterf_p,
28521 )
28522 }
28523 #[inline]
28524 #[doc(hidden)]
28525 pub fn TexParameterf_is_loaded(&self) -> bool {
28526 !self.glTexParameterf_p.load(RELAX).is_null()
28527 }
28528 /// [glTexParameterfv](http://docs.gl/gl4/glTexParameter)(target, pname, params)
28529 /// * `target` group: TextureTarget
28530 /// * `pname` group: TextureParameterName
28531 /// * `params` group: CheckedFloat32
28532 /// * `params` len: COMPSIZE(pname)
28533 #[cfg_attr(feature = "inline", inline)]
28534 #[cfg_attr(feature = "inline_always", inline(always))]
28535 pub unsafe fn TexParameterfv(&self, target: GLenum, pname: GLenum, params: *const GLfloat) {
28536 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28537 {
28538 trace!(
28539 "calling gl.TexParameterfv({:#X}, {:#X}, {:p});",
28540 target,
28541 pname,
28542 params
28543 );
28544 }
28545 let out = call_atomic_ptr_3arg(
28546 "glTexParameterfv",
28547 &self.glTexParameterfv_p,
28548 target,
28549 pname,
28550 params,
28551 );
28552 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28553 {
28554 self.automatic_glGetError("glTexParameterfv");
28555 }
28556 out
28557 }
28558 #[doc(hidden)]
28559 pub unsafe fn TexParameterfv_load_with_dyn(
28560 &self,
28561 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28562 ) -> bool {
28563 load_dyn_name_atomic_ptr(
28564 get_proc_address,
28565 b"glTexParameterfv\0",
28566 &self.glTexParameterfv_p,
28567 )
28568 }
28569 #[inline]
28570 #[doc(hidden)]
28571 pub fn TexParameterfv_is_loaded(&self) -> bool {
28572 !self.glTexParameterfv_p.load(RELAX).is_null()
28573 }
28574 /// [glTexParameteri](http://docs.gl/gl4/glTexParameter)(target, pname, param)
28575 /// * `target` group: TextureTarget
28576 /// * `pname` group: TextureParameterName
28577 /// * `param` group: CheckedInt32
28578 #[cfg_attr(feature = "inline", inline)]
28579 #[cfg_attr(feature = "inline_always", inline(always))]
28580 pub unsafe fn TexParameteri(&self, target: GLenum, pname: GLenum, param: GLint) {
28581 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28582 {
28583 trace!(
28584 "calling gl.TexParameteri({:#X}, {:#X}, {:?});",
28585 target,
28586 pname,
28587 param
28588 );
28589 }
28590 let out = call_atomic_ptr_3arg(
28591 "glTexParameteri",
28592 &self.glTexParameteri_p,
28593 target,
28594 pname,
28595 param,
28596 );
28597 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28598 {
28599 self.automatic_glGetError("glTexParameteri");
28600 }
28601 out
28602 }
28603 #[doc(hidden)]
28604 pub unsafe fn TexParameteri_load_with_dyn(
28605 &self,
28606 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28607 ) -> bool {
28608 load_dyn_name_atomic_ptr(
28609 get_proc_address,
28610 b"glTexParameteri\0",
28611 &self.glTexParameteri_p,
28612 )
28613 }
28614 #[inline]
28615 #[doc(hidden)]
28616 pub fn TexParameteri_is_loaded(&self) -> bool {
28617 !self.glTexParameteri_p.load(RELAX).is_null()
28618 }
28619 /// [glTexParameteriv](http://docs.gl/gl4/glTexParameter)(target, pname, params)
28620 /// * `target` group: TextureTarget
28621 /// * `pname` group: TextureParameterName
28622 /// * `params` group: CheckedInt32
28623 /// * `params` len: COMPSIZE(pname)
28624 #[cfg_attr(feature = "inline", inline)]
28625 #[cfg_attr(feature = "inline_always", inline(always))]
28626 pub unsafe fn TexParameteriv(&self, target: GLenum, pname: GLenum, params: *const GLint) {
28627 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28628 {
28629 trace!(
28630 "calling gl.TexParameteriv({:#X}, {:#X}, {:p});",
28631 target,
28632 pname,
28633 params
28634 );
28635 }
28636 let out = call_atomic_ptr_3arg(
28637 "glTexParameteriv",
28638 &self.glTexParameteriv_p,
28639 target,
28640 pname,
28641 params,
28642 );
28643 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28644 {
28645 self.automatic_glGetError("glTexParameteriv");
28646 }
28647 out
28648 }
28649 #[doc(hidden)]
28650 pub unsafe fn TexParameteriv_load_with_dyn(
28651 &self,
28652 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28653 ) -> bool {
28654 load_dyn_name_atomic_ptr(
28655 get_proc_address,
28656 b"glTexParameteriv\0",
28657 &self.glTexParameteriv_p,
28658 )
28659 }
28660 #[inline]
28661 #[doc(hidden)]
28662 pub fn TexParameteriv_is_loaded(&self) -> bool {
28663 !self.glTexParameteriv_p.load(RELAX).is_null()
28664 }
28665 /// [glTexStorage1D](http://docs.gl/gl4/glTexStorage1D)(target, levels, internalformat, width)
28666 /// * `target` group: TextureTarget
28667 /// * `internalformat` group: InternalFormat
28668 #[cfg_attr(feature = "inline", inline)]
28669 #[cfg_attr(feature = "inline_always", inline(always))]
28670 pub unsafe fn TexStorage1D(
28671 &self,
28672 target: GLenum,
28673 levels: GLsizei,
28674 internalformat: GLenum,
28675 width: GLsizei,
28676 ) {
28677 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28678 {
28679 trace!(
28680 "calling gl.TexStorage1D({:#X}, {:?}, {:#X}, {:?});",
28681 target,
28682 levels,
28683 internalformat,
28684 width
28685 );
28686 }
28687 let out = call_atomic_ptr_4arg(
28688 "glTexStorage1D",
28689 &self.glTexStorage1D_p,
28690 target,
28691 levels,
28692 internalformat,
28693 width,
28694 );
28695 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28696 {
28697 self.automatic_glGetError("glTexStorage1D");
28698 }
28699 out
28700 }
28701 #[doc(hidden)]
28702 pub unsafe fn TexStorage1D_load_with_dyn(
28703 &self,
28704 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28705 ) -> bool {
28706 load_dyn_name_atomic_ptr(
28707 get_proc_address,
28708 b"glTexStorage1D\0",
28709 &self.glTexStorage1D_p,
28710 )
28711 }
28712 #[inline]
28713 #[doc(hidden)]
28714 pub fn TexStorage1D_is_loaded(&self) -> bool {
28715 !self.glTexStorage1D_p.load(RELAX).is_null()
28716 }
28717 /// [glTexStorage2D](http://docs.gl/gl4/glTexStorage2D)(target, levels, internalformat, width, height)
28718 /// * `target` group: TextureTarget
28719 /// * `internalformat` group: InternalFormat
28720 #[cfg_attr(feature = "inline", inline)]
28721 #[cfg_attr(feature = "inline_always", inline(always))]
28722 pub unsafe fn TexStorage2D(
28723 &self,
28724 target: GLenum,
28725 levels: GLsizei,
28726 internalformat: GLenum,
28727 width: GLsizei,
28728 height: GLsizei,
28729 ) {
28730 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28731 {
28732 trace!(
28733 "calling gl.TexStorage2D({:#X}, {:?}, {:#X}, {:?}, {:?});",
28734 target,
28735 levels,
28736 internalformat,
28737 width,
28738 height
28739 );
28740 }
28741 let out = call_atomic_ptr_5arg(
28742 "glTexStorage2D",
28743 &self.glTexStorage2D_p,
28744 target,
28745 levels,
28746 internalformat,
28747 width,
28748 height,
28749 );
28750 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28751 {
28752 self.automatic_glGetError("glTexStorage2D");
28753 }
28754 out
28755 }
28756 #[doc(hidden)]
28757 pub unsafe fn TexStorage2D_load_with_dyn(
28758 &self,
28759 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28760 ) -> bool {
28761 load_dyn_name_atomic_ptr(
28762 get_proc_address,
28763 b"glTexStorage2D\0",
28764 &self.glTexStorage2D_p,
28765 )
28766 }
28767 #[inline]
28768 #[doc(hidden)]
28769 pub fn TexStorage2D_is_loaded(&self) -> bool {
28770 !self.glTexStorage2D_p.load(RELAX).is_null()
28771 }
28772 /// [glTexStorage2DMultisample](http://docs.gl/gl4/glTexStorage2DMultisample)(target, samples, internalformat, width, height, fixedsamplelocations)
28773 /// * `target` group: TextureTarget
28774 /// * `internalformat` group: InternalFormat
28775 #[cfg_attr(feature = "inline", inline)]
28776 #[cfg_attr(feature = "inline_always", inline(always))]
28777 pub unsafe fn TexStorage2DMultisample(
28778 &self,
28779 target: GLenum,
28780 samples: GLsizei,
28781 internalformat: GLenum,
28782 width: GLsizei,
28783 height: GLsizei,
28784 fixedsamplelocations: GLboolean,
28785 ) {
28786 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28787 {
28788 trace!(
28789 "calling gl.TexStorage2DMultisample({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?});",
28790 target,
28791 samples,
28792 internalformat,
28793 width,
28794 height,
28795 fixedsamplelocations
28796 );
28797 }
28798 let out = call_atomic_ptr_6arg(
28799 "glTexStorage2DMultisample",
28800 &self.glTexStorage2DMultisample_p,
28801 target,
28802 samples,
28803 internalformat,
28804 width,
28805 height,
28806 fixedsamplelocations,
28807 );
28808 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28809 {
28810 self.automatic_glGetError("glTexStorage2DMultisample");
28811 }
28812 out
28813 }
28814 #[doc(hidden)]
28815 pub unsafe fn TexStorage2DMultisample_load_with_dyn(
28816 &self,
28817 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28818 ) -> bool {
28819 load_dyn_name_atomic_ptr(
28820 get_proc_address,
28821 b"glTexStorage2DMultisample\0",
28822 &self.glTexStorage2DMultisample_p,
28823 )
28824 }
28825 #[inline]
28826 #[doc(hidden)]
28827 pub fn TexStorage2DMultisample_is_loaded(&self) -> bool {
28828 !self.glTexStorage2DMultisample_p.load(RELAX).is_null()
28829 }
28830 /// [glTexStorage3D](http://docs.gl/gl4/glTexStorage3D)(target, levels, internalformat, width, height, depth)
28831 /// * `target` group: TextureTarget
28832 /// * `internalformat` group: InternalFormat
28833 #[cfg_attr(feature = "inline", inline)]
28834 #[cfg_attr(feature = "inline_always", inline(always))]
28835 pub unsafe fn TexStorage3D(
28836 &self,
28837 target: GLenum,
28838 levels: GLsizei,
28839 internalformat: GLenum,
28840 width: GLsizei,
28841 height: GLsizei,
28842 depth: GLsizei,
28843 ) {
28844 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28845 {
28846 trace!(
28847 "calling gl.TexStorage3D({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?});",
28848 target,
28849 levels,
28850 internalformat,
28851 width,
28852 height,
28853 depth
28854 );
28855 }
28856 let out = call_atomic_ptr_6arg(
28857 "glTexStorage3D",
28858 &self.glTexStorage3D_p,
28859 target,
28860 levels,
28861 internalformat,
28862 width,
28863 height,
28864 depth,
28865 );
28866 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28867 {
28868 self.automatic_glGetError("glTexStorage3D");
28869 }
28870 out
28871 }
28872 #[doc(hidden)]
28873 pub unsafe fn TexStorage3D_load_with_dyn(
28874 &self,
28875 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28876 ) -> bool {
28877 load_dyn_name_atomic_ptr(
28878 get_proc_address,
28879 b"glTexStorage3D\0",
28880 &self.glTexStorage3D_p,
28881 )
28882 }
28883 #[inline]
28884 #[doc(hidden)]
28885 pub fn TexStorage3D_is_loaded(&self) -> bool {
28886 !self.glTexStorage3D_p.load(RELAX).is_null()
28887 }
28888 /// [glTexStorage3DMultisample](http://docs.gl/gl4/glTexStorage3DMultisample)(target, samples, internalformat, width, height, depth, fixedsamplelocations)
28889 /// * `target` group: TextureTarget
28890 /// * `internalformat` group: InternalFormat
28891 #[cfg_attr(feature = "inline", inline)]
28892 #[cfg_attr(feature = "inline_always", inline(always))]
28893 pub unsafe fn TexStorage3DMultisample(
28894 &self,
28895 target: GLenum,
28896 samples: GLsizei,
28897 internalformat: GLenum,
28898 width: GLsizei,
28899 height: GLsizei,
28900 depth: GLsizei,
28901 fixedsamplelocations: GLboolean,
28902 ) {
28903 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28904 {
28905 trace!("calling gl.TexStorage3DMultisample({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?});", target, samples, internalformat, width, height, depth, fixedsamplelocations);
28906 }
28907 let out = call_atomic_ptr_7arg(
28908 "glTexStorage3DMultisample",
28909 &self.glTexStorage3DMultisample_p,
28910 target,
28911 samples,
28912 internalformat,
28913 width,
28914 height,
28915 depth,
28916 fixedsamplelocations,
28917 );
28918 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28919 {
28920 self.automatic_glGetError("glTexStorage3DMultisample");
28921 }
28922 out
28923 }
28924 #[doc(hidden)]
28925 pub unsafe fn TexStorage3DMultisample_load_with_dyn(
28926 &self,
28927 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28928 ) -> bool {
28929 load_dyn_name_atomic_ptr(
28930 get_proc_address,
28931 b"glTexStorage3DMultisample\0",
28932 &self.glTexStorage3DMultisample_p,
28933 )
28934 }
28935 #[inline]
28936 #[doc(hidden)]
28937 pub fn TexStorage3DMultisample_is_loaded(&self) -> bool {
28938 !self.glTexStorage3DMultisample_p.load(RELAX).is_null()
28939 }
28940 /// [glTexSubImage1D](http://docs.gl/gl4/glTexSubImage1D)(target, level, xoffset, width, format, type_, pixels)
28941 /// * `target` group: TextureTarget
28942 /// * `level` group: CheckedInt32
28943 /// * `xoffset` group: CheckedInt32
28944 /// * `format` group: PixelFormat
28945 /// * `type_` group: PixelType
28946 /// * `pixels` len: COMPSIZE(format,type,width)
28947 #[cfg_attr(feature = "inline", inline)]
28948 #[cfg_attr(feature = "inline_always", inline(always))]
28949 pub unsafe fn TexSubImage1D(
28950 &self,
28951 target: GLenum,
28952 level: GLint,
28953 xoffset: GLint,
28954 width: GLsizei,
28955 format: GLenum,
28956 type_: GLenum,
28957 pixels: *const c_void,
28958 ) {
28959 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28960 {
28961 trace!(
28962 "calling gl.TexSubImage1D({:#X}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});",
28963 target,
28964 level,
28965 xoffset,
28966 width,
28967 format,
28968 type_,
28969 pixels
28970 );
28971 }
28972 let out = call_atomic_ptr_7arg(
28973 "glTexSubImage1D",
28974 &self.glTexSubImage1D_p,
28975 target,
28976 level,
28977 xoffset,
28978 width,
28979 format,
28980 type_,
28981 pixels,
28982 );
28983 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28984 {
28985 self.automatic_glGetError("glTexSubImage1D");
28986 }
28987 out
28988 }
28989 #[doc(hidden)]
28990 pub unsafe fn TexSubImage1D_load_with_dyn(
28991 &self,
28992 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28993 ) -> bool {
28994 load_dyn_name_atomic_ptr(
28995 get_proc_address,
28996 b"glTexSubImage1D\0",
28997 &self.glTexSubImage1D_p,
28998 )
28999 }
29000 #[inline]
29001 #[doc(hidden)]
29002 pub fn TexSubImage1D_is_loaded(&self) -> bool {
29003 !self.glTexSubImage1D_p.load(RELAX).is_null()
29004 }
29005 /// [glTexSubImage2D](http://docs.gl/gl4/glTexSubImage2D)(target, level, xoffset, yoffset, width, height, format, type_, pixels)
29006 /// * `target` group: TextureTarget
29007 /// * `level` group: CheckedInt32
29008 /// * `xoffset` group: CheckedInt32
29009 /// * `yoffset` group: CheckedInt32
29010 /// * `format` group: PixelFormat
29011 /// * `type_` group: PixelType
29012 /// * `pixels` len: COMPSIZE(format,type,width,height)
29013 #[cfg_attr(feature = "inline", inline)]
29014 #[cfg_attr(feature = "inline_always", inline(always))]
29015 pub unsafe fn TexSubImage2D(
29016 &self,
29017 target: GLenum,
29018 level: GLint,
29019 xoffset: GLint,
29020 yoffset: GLint,
29021 width: GLsizei,
29022 height: GLsizei,
29023 format: GLenum,
29024 type_: GLenum,
29025 pixels: *const c_void,
29026 ) {
29027 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29028 {
29029 trace!("calling gl.TexSubImage2D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", target, level, xoffset, yoffset, width, height, format, type_, pixels);
29030 }
29031 let out = call_atomic_ptr_9arg(
29032 "glTexSubImage2D",
29033 &self.glTexSubImage2D_p,
29034 target,
29035 level,
29036 xoffset,
29037 yoffset,
29038 width,
29039 height,
29040 format,
29041 type_,
29042 pixels,
29043 );
29044 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29045 {
29046 self.automatic_glGetError("glTexSubImage2D");
29047 }
29048 out
29049 }
29050 #[doc(hidden)]
29051 pub unsafe fn TexSubImage2D_load_with_dyn(
29052 &self,
29053 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29054 ) -> bool {
29055 load_dyn_name_atomic_ptr(
29056 get_proc_address,
29057 b"glTexSubImage2D\0",
29058 &self.glTexSubImage2D_p,
29059 )
29060 }
29061 #[inline]
29062 #[doc(hidden)]
29063 pub fn TexSubImage2D_is_loaded(&self) -> bool {
29064 !self.glTexSubImage2D_p.load(RELAX).is_null()
29065 }
29066 /// [glTexSubImage3D](http://docs.gl/gl4/glTexSubImage3D)(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type_, pixels)
29067 /// * `target` group: TextureTarget
29068 /// * `level` group: CheckedInt32
29069 /// * `xoffset` group: CheckedInt32
29070 /// * `yoffset` group: CheckedInt32
29071 /// * `zoffset` group: CheckedInt32
29072 /// * `format` group: PixelFormat
29073 /// * `type_` group: PixelType
29074 /// * `pixels` len: COMPSIZE(format,type,width,height,depth)
29075 #[cfg_attr(feature = "inline", inline)]
29076 #[cfg_attr(feature = "inline_always", inline(always))]
29077 pub unsafe fn TexSubImage3D(
29078 &self,
29079 target: GLenum,
29080 level: GLint,
29081 xoffset: GLint,
29082 yoffset: GLint,
29083 zoffset: GLint,
29084 width: GLsizei,
29085 height: GLsizei,
29086 depth: GLsizei,
29087 format: GLenum,
29088 type_: GLenum,
29089 pixels: *const c_void,
29090 ) {
29091 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29092 {
29093 trace!("calling gl.TexSubImage3D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", target, level, xoffset, yoffset, zoffset, width, height, depth, format, type_, pixels);
29094 }
29095 let out = call_atomic_ptr_11arg(
29096 "glTexSubImage3D",
29097 &self.glTexSubImage3D_p,
29098 target,
29099 level,
29100 xoffset,
29101 yoffset,
29102 zoffset,
29103 width,
29104 height,
29105 depth,
29106 format,
29107 type_,
29108 pixels,
29109 );
29110 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29111 {
29112 self.automatic_glGetError("glTexSubImage3D");
29113 }
29114 out
29115 }
29116 #[doc(hidden)]
29117 pub unsafe fn TexSubImage3D_load_with_dyn(
29118 &self,
29119 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29120 ) -> bool {
29121 load_dyn_name_atomic_ptr(
29122 get_proc_address,
29123 b"glTexSubImage3D\0",
29124 &self.glTexSubImage3D_p,
29125 )
29126 }
29127 #[inline]
29128 #[doc(hidden)]
29129 pub fn TexSubImage3D_is_loaded(&self) -> bool {
29130 !self.glTexSubImage3D_p.load(RELAX).is_null()
29131 }
29132 /// [glTextureBarrier](http://docs.gl/gl4/glTextureBarrier)()
29133 #[cfg_attr(feature = "inline", inline)]
29134 #[cfg_attr(feature = "inline_always", inline(always))]
29135 pub unsafe fn TextureBarrier(&self) {
29136 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29137 {
29138 trace!("calling gl.TextureBarrier();",);
29139 }
29140 let out = call_atomic_ptr_0arg("glTextureBarrier", &self.glTextureBarrier_p);
29141 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29142 {
29143 self.automatic_glGetError("glTextureBarrier");
29144 }
29145 out
29146 }
29147 #[doc(hidden)]
29148 pub unsafe fn TextureBarrier_load_with_dyn(
29149 &self,
29150 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29151 ) -> bool {
29152 load_dyn_name_atomic_ptr(
29153 get_proc_address,
29154 b"glTextureBarrier\0",
29155 &self.glTextureBarrier_p,
29156 )
29157 }
29158 #[inline]
29159 #[doc(hidden)]
29160 pub fn TextureBarrier_is_loaded(&self) -> bool {
29161 !self.glTextureBarrier_p.load(RELAX).is_null()
29162 }
29163 /// [glTextureBuffer](http://docs.gl/gl4/glTextureBuffer)(texture, internalformat, buffer)
29164 /// * `internalformat` group: InternalFormat
29165 #[cfg_attr(feature = "inline", inline)]
29166 #[cfg_attr(feature = "inline_always", inline(always))]
29167 pub unsafe fn TextureBuffer(
29168 &self,
29169 texture: GLuint,
29170 internalformat: GLenum,
29171 buffer: GLuint,
29172 ) {
29173 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29174 {
29175 trace!(
29176 "calling gl.TextureBuffer({:?}, {:#X}, {:?});",
29177 texture,
29178 internalformat,
29179 buffer
29180 );
29181 }
29182 let out = call_atomic_ptr_3arg(
29183 "glTextureBuffer",
29184 &self.glTextureBuffer_p,
29185 texture,
29186 internalformat,
29187 buffer,
29188 );
29189 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29190 {
29191 self.automatic_glGetError("glTextureBuffer");
29192 }
29193 out
29194 }
29195 #[doc(hidden)]
29196 pub unsafe fn TextureBuffer_load_with_dyn(
29197 &self,
29198 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29199 ) -> bool {
29200 load_dyn_name_atomic_ptr(
29201 get_proc_address,
29202 b"glTextureBuffer\0",
29203 &self.glTextureBuffer_p,
29204 )
29205 }
29206 #[inline]
29207 #[doc(hidden)]
29208 pub fn TextureBuffer_is_loaded(&self) -> bool {
29209 !self.glTextureBuffer_p.load(RELAX).is_null()
29210 }
29211 /// [glTextureBufferRange](http://docs.gl/gl4/glTextureBufferRange)(texture, internalformat, buffer, offset, size)
29212 /// * `internalformat` group: InternalFormat
29213 /// * `size` group: BufferSize
29214 #[cfg_attr(feature = "inline", inline)]
29215 #[cfg_attr(feature = "inline_always", inline(always))]
29216 pub unsafe fn TextureBufferRange(
29217 &self,
29218 texture: GLuint,
29219 internalformat: GLenum,
29220 buffer: GLuint,
29221 offset: GLintptr,
29222 size: GLsizeiptr,
29223 ) {
29224 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29225 {
29226 trace!(
29227 "calling gl.TextureBufferRange({:?}, {:#X}, {:?}, {:?}, {:?});",
29228 texture,
29229 internalformat,
29230 buffer,
29231 offset,
29232 size
29233 );
29234 }
29235 let out = call_atomic_ptr_5arg(
29236 "glTextureBufferRange",
29237 &self.glTextureBufferRange_p,
29238 texture,
29239 internalformat,
29240 buffer,
29241 offset,
29242 size,
29243 );
29244 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29245 {
29246 self.automatic_glGetError("glTextureBufferRange");
29247 }
29248 out
29249 }
29250 #[doc(hidden)]
29251 pub unsafe fn TextureBufferRange_load_with_dyn(
29252 &self,
29253 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29254 ) -> bool {
29255 load_dyn_name_atomic_ptr(
29256 get_proc_address,
29257 b"glTextureBufferRange\0",
29258 &self.glTextureBufferRange_p,
29259 )
29260 }
29261 #[inline]
29262 #[doc(hidden)]
29263 pub fn TextureBufferRange_is_loaded(&self) -> bool {
29264 !self.glTextureBufferRange_p.load(RELAX).is_null()
29265 }
29266 /// [glTextureParameterIiv](http://docs.gl/gl4/glTextureParameter)(texture, pname, params)
29267 /// * `pname` group: TextureParameterName
29268 #[cfg_attr(feature = "inline", inline)]
29269 #[cfg_attr(feature = "inline_always", inline(always))]
29270 pub unsafe fn TextureParameterIiv(
29271 &self,
29272 texture: GLuint,
29273 pname: GLenum,
29274 params: *const GLint,
29275 ) {
29276 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29277 {
29278 trace!(
29279 "calling gl.TextureParameterIiv({:?}, {:#X}, {:p});",
29280 texture,
29281 pname,
29282 params
29283 );
29284 }
29285 let out = call_atomic_ptr_3arg(
29286 "glTextureParameterIiv",
29287 &self.glTextureParameterIiv_p,
29288 texture,
29289 pname,
29290 params,
29291 );
29292 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29293 {
29294 self.automatic_glGetError("glTextureParameterIiv");
29295 }
29296 out
29297 }
29298 #[doc(hidden)]
29299 pub unsafe fn TextureParameterIiv_load_with_dyn(
29300 &self,
29301 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29302 ) -> bool {
29303 load_dyn_name_atomic_ptr(
29304 get_proc_address,
29305 b"glTextureParameterIiv\0",
29306 &self.glTextureParameterIiv_p,
29307 )
29308 }
29309 #[inline]
29310 #[doc(hidden)]
29311 pub fn TextureParameterIiv_is_loaded(&self) -> bool {
29312 !self.glTextureParameterIiv_p.load(RELAX).is_null()
29313 }
29314 /// [glTextureParameterIuiv](http://docs.gl/gl4/glTextureParameter)(texture, pname, params)
29315 /// * `pname` group: TextureParameterName
29316 #[cfg_attr(feature = "inline", inline)]
29317 #[cfg_attr(feature = "inline_always", inline(always))]
29318 pub unsafe fn TextureParameterIuiv(
29319 &self,
29320 texture: GLuint,
29321 pname: GLenum,
29322 params: *const GLuint,
29323 ) {
29324 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29325 {
29326 trace!(
29327 "calling gl.TextureParameterIuiv({:?}, {:#X}, {:p});",
29328 texture,
29329 pname,
29330 params
29331 );
29332 }
29333 let out = call_atomic_ptr_3arg(
29334 "glTextureParameterIuiv",
29335 &self.glTextureParameterIuiv_p,
29336 texture,
29337 pname,
29338 params,
29339 );
29340 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29341 {
29342 self.automatic_glGetError("glTextureParameterIuiv");
29343 }
29344 out
29345 }
29346 #[doc(hidden)]
29347 pub unsafe fn TextureParameterIuiv_load_with_dyn(
29348 &self,
29349 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29350 ) -> bool {
29351 load_dyn_name_atomic_ptr(
29352 get_proc_address,
29353 b"glTextureParameterIuiv\0",
29354 &self.glTextureParameterIuiv_p,
29355 )
29356 }
29357 #[inline]
29358 #[doc(hidden)]
29359 pub fn TextureParameterIuiv_is_loaded(&self) -> bool {
29360 !self.glTextureParameterIuiv_p.load(RELAX).is_null()
29361 }
29362 /// [glTextureParameterf](http://docs.gl/gl4/glTextureParameter)(texture, pname, param)
29363 /// * `pname` group: TextureParameterName
29364 #[cfg_attr(feature = "inline", inline)]
29365 #[cfg_attr(feature = "inline_always", inline(always))]
29366 pub unsafe fn TextureParameterf(&self, texture: GLuint, pname: GLenum, param: GLfloat) {
29367 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29368 {
29369 trace!(
29370 "calling gl.TextureParameterf({:?}, {:#X}, {:?});",
29371 texture,
29372 pname,
29373 param
29374 );
29375 }
29376 let out = call_atomic_ptr_3arg(
29377 "glTextureParameterf",
29378 &self.glTextureParameterf_p,
29379 texture,
29380 pname,
29381 param,
29382 );
29383 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29384 {
29385 self.automatic_glGetError("glTextureParameterf");
29386 }
29387 out
29388 }
29389 #[doc(hidden)]
29390 pub unsafe fn TextureParameterf_load_with_dyn(
29391 &self,
29392 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29393 ) -> bool {
29394 load_dyn_name_atomic_ptr(
29395 get_proc_address,
29396 b"glTextureParameterf\0",
29397 &self.glTextureParameterf_p,
29398 )
29399 }
29400 #[inline]
29401 #[doc(hidden)]
29402 pub fn TextureParameterf_is_loaded(&self) -> bool {
29403 !self.glTextureParameterf_p.load(RELAX).is_null()
29404 }
29405 /// [glTextureParameterfv](http://docs.gl/gl4/glTextureParameter)(texture, pname, param)
29406 /// * `pname` group: TextureParameterName
29407 #[cfg_attr(feature = "inline", inline)]
29408 #[cfg_attr(feature = "inline_always", inline(always))]
29409 pub unsafe fn TextureParameterfv(
29410 &self,
29411 texture: GLuint,
29412 pname: GLenum,
29413 param: *const GLfloat,
29414 ) {
29415 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29416 {
29417 trace!(
29418 "calling gl.TextureParameterfv({:?}, {:#X}, {:p});",
29419 texture,
29420 pname,
29421 param
29422 );
29423 }
29424 let out = call_atomic_ptr_3arg(
29425 "glTextureParameterfv",
29426 &self.glTextureParameterfv_p,
29427 texture,
29428 pname,
29429 param,
29430 );
29431 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29432 {
29433 self.automatic_glGetError("glTextureParameterfv");
29434 }
29435 out
29436 }
29437 #[doc(hidden)]
29438 pub unsafe fn TextureParameterfv_load_with_dyn(
29439 &self,
29440 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29441 ) -> bool {
29442 load_dyn_name_atomic_ptr(
29443 get_proc_address,
29444 b"glTextureParameterfv\0",
29445 &self.glTextureParameterfv_p,
29446 )
29447 }
29448 #[inline]
29449 #[doc(hidden)]
29450 pub fn TextureParameterfv_is_loaded(&self) -> bool {
29451 !self.glTextureParameterfv_p.load(RELAX).is_null()
29452 }
29453 /// [glTextureParameteri](http://docs.gl/gl4/glTextureParameter)(texture, pname, param)
29454 /// * `pname` group: TextureParameterName
29455 #[cfg_attr(feature = "inline", inline)]
29456 #[cfg_attr(feature = "inline_always", inline(always))]
29457 pub unsafe fn TextureParameteri(&self, texture: GLuint, pname: GLenum, param: GLint) {
29458 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29459 {
29460 trace!(
29461 "calling gl.TextureParameteri({:?}, {:#X}, {:?});",
29462 texture,
29463 pname,
29464 param
29465 );
29466 }
29467 let out = call_atomic_ptr_3arg(
29468 "glTextureParameteri",
29469 &self.glTextureParameteri_p,
29470 texture,
29471 pname,
29472 param,
29473 );
29474 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29475 {
29476 self.automatic_glGetError("glTextureParameteri");
29477 }
29478 out
29479 }
29480 #[doc(hidden)]
29481 pub unsafe fn TextureParameteri_load_with_dyn(
29482 &self,
29483 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29484 ) -> bool {
29485 load_dyn_name_atomic_ptr(
29486 get_proc_address,
29487 b"glTextureParameteri\0",
29488 &self.glTextureParameteri_p,
29489 )
29490 }
29491 #[inline]
29492 #[doc(hidden)]
29493 pub fn TextureParameteri_is_loaded(&self) -> bool {
29494 !self.glTextureParameteri_p.load(RELAX).is_null()
29495 }
29496 /// [glTextureParameteriv](http://docs.gl/gl4/glTextureParameter)(texture, pname, param)
29497 /// * `pname` group: TextureParameterName
29498 #[cfg_attr(feature = "inline", inline)]
29499 #[cfg_attr(feature = "inline_always", inline(always))]
29500 pub unsafe fn TextureParameteriv(
29501 &self,
29502 texture: GLuint,
29503 pname: GLenum,
29504 param: *const GLint,
29505 ) {
29506 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29507 {
29508 trace!(
29509 "calling gl.TextureParameteriv({:?}, {:#X}, {:p});",
29510 texture,
29511 pname,
29512 param
29513 );
29514 }
29515 let out = call_atomic_ptr_3arg(
29516 "glTextureParameteriv",
29517 &self.glTextureParameteriv_p,
29518 texture,
29519 pname,
29520 param,
29521 );
29522 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29523 {
29524 self.automatic_glGetError("glTextureParameteriv");
29525 }
29526 out
29527 }
29528 #[doc(hidden)]
29529 pub unsafe fn TextureParameteriv_load_with_dyn(
29530 &self,
29531 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29532 ) -> bool {
29533 load_dyn_name_atomic_ptr(
29534 get_proc_address,
29535 b"glTextureParameteriv\0",
29536 &self.glTextureParameteriv_p,
29537 )
29538 }
29539 #[inline]
29540 #[doc(hidden)]
29541 pub fn TextureParameteriv_is_loaded(&self) -> bool {
29542 !self.glTextureParameteriv_p.load(RELAX).is_null()
29543 }
29544 /// [glTextureStorage1D](http://docs.gl/gl4/glTextureStorage1D)(texture, levels, internalformat, width)
29545 /// * `internalformat` group: InternalFormat
29546 #[cfg_attr(feature = "inline", inline)]
29547 #[cfg_attr(feature = "inline_always", inline(always))]
29548 pub unsafe fn TextureStorage1D(
29549 &self,
29550 texture: GLuint,
29551 levels: GLsizei,
29552 internalformat: GLenum,
29553 width: GLsizei,
29554 ) {
29555 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29556 {
29557 trace!(
29558 "calling gl.TextureStorage1D({:?}, {:?}, {:#X}, {:?});",
29559 texture,
29560 levels,
29561 internalformat,
29562 width
29563 );
29564 }
29565 let out = call_atomic_ptr_4arg(
29566 "glTextureStorage1D",
29567 &self.glTextureStorage1D_p,
29568 texture,
29569 levels,
29570 internalformat,
29571 width,
29572 );
29573 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29574 {
29575 self.automatic_glGetError("glTextureStorage1D");
29576 }
29577 out
29578 }
29579 #[doc(hidden)]
29580 pub unsafe fn TextureStorage1D_load_with_dyn(
29581 &self,
29582 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29583 ) -> bool {
29584 load_dyn_name_atomic_ptr(
29585 get_proc_address,
29586 b"glTextureStorage1D\0",
29587 &self.glTextureStorage1D_p,
29588 )
29589 }
29590 #[inline]
29591 #[doc(hidden)]
29592 pub fn TextureStorage1D_is_loaded(&self) -> bool {
29593 !self.glTextureStorage1D_p.load(RELAX).is_null()
29594 }
29595 /// [glTextureStorage2D](http://docs.gl/gl4/glTextureStorage2D)(texture, levels, internalformat, width, height)
29596 /// * `internalformat` group: InternalFormat
29597 #[cfg_attr(feature = "inline", inline)]
29598 #[cfg_attr(feature = "inline_always", inline(always))]
29599 pub unsafe fn TextureStorage2D(
29600 &self,
29601 texture: GLuint,
29602 levels: GLsizei,
29603 internalformat: GLenum,
29604 width: GLsizei,
29605 height: GLsizei,
29606 ) {
29607 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29608 {
29609 trace!(
29610 "calling gl.TextureStorage2D({:?}, {:?}, {:#X}, {:?}, {:?});",
29611 texture,
29612 levels,
29613 internalformat,
29614 width,
29615 height
29616 );
29617 }
29618 let out = call_atomic_ptr_5arg(
29619 "glTextureStorage2D",
29620 &self.glTextureStorage2D_p,
29621 texture,
29622 levels,
29623 internalformat,
29624 width,
29625 height,
29626 );
29627 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29628 {
29629 self.automatic_glGetError("glTextureStorage2D");
29630 }
29631 out
29632 }
29633 #[doc(hidden)]
29634 pub unsafe fn TextureStorage2D_load_with_dyn(
29635 &self,
29636 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29637 ) -> bool {
29638 load_dyn_name_atomic_ptr(
29639 get_proc_address,
29640 b"glTextureStorage2D\0",
29641 &self.glTextureStorage2D_p,
29642 )
29643 }
29644 #[inline]
29645 #[doc(hidden)]
29646 pub fn TextureStorage2D_is_loaded(&self) -> bool {
29647 !self.glTextureStorage2D_p.load(RELAX).is_null()
29648 }
29649 /// [glTextureStorage2DMultisample](http://docs.gl/gl4/glTextureStorage2DMultisample)(texture, samples, internalformat, width, height, fixedsamplelocations)
29650 /// * `internalformat` group: InternalFormat
29651 #[cfg_attr(feature = "inline", inline)]
29652 #[cfg_attr(feature = "inline_always", inline(always))]
29653 pub unsafe fn TextureStorage2DMultisample(
29654 &self,
29655 texture: GLuint,
29656 samples: GLsizei,
29657 internalformat: GLenum,
29658 width: GLsizei,
29659 height: GLsizei,
29660 fixedsamplelocations: GLboolean,
29661 ) {
29662 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29663 {
29664 trace!(
29665 "calling gl.TextureStorage2DMultisample({:?}, {:?}, {:#X}, {:?}, {:?}, {:?});",
29666 texture,
29667 samples,
29668 internalformat,
29669 width,
29670 height,
29671 fixedsamplelocations
29672 );
29673 }
29674 let out = call_atomic_ptr_6arg(
29675 "glTextureStorage2DMultisample",
29676 &self.glTextureStorage2DMultisample_p,
29677 texture,
29678 samples,
29679 internalformat,
29680 width,
29681 height,
29682 fixedsamplelocations,
29683 );
29684 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29685 {
29686 self.automatic_glGetError("glTextureStorage2DMultisample");
29687 }
29688 out
29689 }
29690 #[doc(hidden)]
29691 pub unsafe fn TextureStorage2DMultisample_load_with_dyn(
29692 &self,
29693 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29694 ) -> bool {
29695 load_dyn_name_atomic_ptr(
29696 get_proc_address,
29697 b"glTextureStorage2DMultisample\0",
29698 &self.glTextureStorage2DMultisample_p,
29699 )
29700 }
29701 #[inline]
29702 #[doc(hidden)]
29703 pub fn TextureStorage2DMultisample_is_loaded(&self) -> bool {
29704 !self.glTextureStorage2DMultisample_p.load(RELAX).is_null()
29705 }
29706 /// [glTextureStorage3D](http://docs.gl/gl4/glTextureStorage3D)(texture, levels, internalformat, width, height, depth)
29707 /// * `internalformat` group: InternalFormat
29708 #[cfg_attr(feature = "inline", inline)]
29709 #[cfg_attr(feature = "inline_always", inline(always))]
29710 pub unsafe fn TextureStorage3D(
29711 &self,
29712 texture: GLuint,
29713 levels: GLsizei,
29714 internalformat: GLenum,
29715 width: GLsizei,
29716 height: GLsizei,
29717 depth: GLsizei,
29718 ) {
29719 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29720 {
29721 trace!(
29722 "calling gl.TextureStorage3D({:?}, {:?}, {:#X}, {:?}, {:?}, {:?});",
29723 texture,
29724 levels,
29725 internalformat,
29726 width,
29727 height,
29728 depth
29729 );
29730 }
29731 let out = call_atomic_ptr_6arg(
29732 "glTextureStorage3D",
29733 &self.glTextureStorage3D_p,
29734 texture,
29735 levels,
29736 internalformat,
29737 width,
29738 height,
29739 depth,
29740 );
29741 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29742 {
29743 self.automatic_glGetError("glTextureStorage3D");
29744 }
29745 out
29746 }
29747 #[doc(hidden)]
29748 pub unsafe fn TextureStorage3D_load_with_dyn(
29749 &self,
29750 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29751 ) -> bool {
29752 load_dyn_name_atomic_ptr(
29753 get_proc_address,
29754 b"glTextureStorage3D\0",
29755 &self.glTextureStorage3D_p,
29756 )
29757 }
29758 #[inline]
29759 #[doc(hidden)]
29760 pub fn TextureStorage3D_is_loaded(&self) -> bool {
29761 !self.glTextureStorage3D_p.load(RELAX).is_null()
29762 }
29763 /// [glTextureStorage3DMultisample](http://docs.gl/gl4/glTextureStorage3DMultisample)(texture, samples, internalformat, width, height, depth, fixedsamplelocations)
29764 /// * `internalformat` group: InternalFormat
29765 #[cfg_attr(feature = "inline", inline)]
29766 #[cfg_attr(feature = "inline_always", inline(always))]
29767 pub unsafe fn TextureStorage3DMultisample(
29768 &self,
29769 texture: GLuint,
29770 samples: GLsizei,
29771 internalformat: GLenum,
29772 width: GLsizei,
29773 height: GLsizei,
29774 depth: GLsizei,
29775 fixedsamplelocations: GLboolean,
29776 ) {
29777 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29778 {
29779 trace!("calling gl.TextureStorage3DMultisample({:?}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?});", texture, samples, internalformat, width, height, depth, fixedsamplelocations);
29780 }
29781 let out = call_atomic_ptr_7arg(
29782 "glTextureStorage3DMultisample",
29783 &self.glTextureStorage3DMultisample_p,
29784 texture,
29785 samples,
29786 internalformat,
29787 width,
29788 height,
29789 depth,
29790 fixedsamplelocations,
29791 );
29792 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29793 {
29794 self.automatic_glGetError("glTextureStorage3DMultisample");
29795 }
29796 out
29797 }
29798 #[doc(hidden)]
29799 pub unsafe fn TextureStorage3DMultisample_load_with_dyn(
29800 &self,
29801 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29802 ) -> bool {
29803 load_dyn_name_atomic_ptr(
29804 get_proc_address,
29805 b"glTextureStorage3DMultisample\0",
29806 &self.glTextureStorage3DMultisample_p,
29807 )
29808 }
29809 #[inline]
29810 #[doc(hidden)]
29811 pub fn TextureStorage3DMultisample_is_loaded(&self) -> bool {
29812 !self.glTextureStorage3DMultisample_p.load(RELAX).is_null()
29813 }
29814 /// [glTextureSubImage1D](http://docs.gl/gl4/glTextureSubImage1D)(texture, level, xoffset, width, format, type_, pixels)
29815 /// * `format` group: PixelFormat
29816 /// * `type_` group: PixelType
29817 #[cfg_attr(feature = "inline", inline)]
29818 #[cfg_attr(feature = "inline_always", inline(always))]
29819 pub unsafe fn TextureSubImage1D(
29820 &self,
29821 texture: GLuint,
29822 level: GLint,
29823 xoffset: GLint,
29824 width: GLsizei,
29825 format: GLenum,
29826 type_: GLenum,
29827 pixels: *const c_void,
29828 ) {
29829 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29830 {
29831 trace!(
29832 "calling gl.TextureSubImage1D({:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});",
29833 texture,
29834 level,
29835 xoffset,
29836 width,
29837 format,
29838 type_,
29839 pixels
29840 );
29841 }
29842 let out = call_atomic_ptr_7arg(
29843 "glTextureSubImage1D",
29844 &self.glTextureSubImage1D_p,
29845 texture,
29846 level,
29847 xoffset,
29848 width,
29849 format,
29850 type_,
29851 pixels,
29852 );
29853 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29854 {
29855 self.automatic_glGetError("glTextureSubImage1D");
29856 }
29857 out
29858 }
29859 #[doc(hidden)]
29860 pub unsafe fn TextureSubImage1D_load_with_dyn(
29861 &self,
29862 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29863 ) -> bool {
29864 load_dyn_name_atomic_ptr(
29865 get_proc_address,
29866 b"glTextureSubImage1D\0",
29867 &self.glTextureSubImage1D_p,
29868 )
29869 }
29870 #[inline]
29871 #[doc(hidden)]
29872 pub fn TextureSubImage1D_is_loaded(&self) -> bool {
29873 !self.glTextureSubImage1D_p.load(RELAX).is_null()
29874 }
29875 /// [glTextureSubImage2D](http://docs.gl/gl4/glTextureSubImage2D)(texture, level, xoffset, yoffset, width, height, format, type_, pixels)
29876 /// * `format` group: PixelFormat
29877 /// * `type_` group: PixelType
29878 #[cfg_attr(feature = "inline", inline)]
29879 #[cfg_attr(feature = "inline_always", inline(always))]
29880 pub unsafe fn TextureSubImage2D(
29881 &self,
29882 texture: GLuint,
29883 level: GLint,
29884 xoffset: GLint,
29885 yoffset: GLint,
29886 width: GLsizei,
29887 height: GLsizei,
29888 format: GLenum,
29889 type_: GLenum,
29890 pixels: *const c_void,
29891 ) {
29892 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29893 {
29894 trace!("calling gl.TextureSubImage2D({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", texture, level, xoffset, yoffset, width, height, format, type_, pixels);
29895 }
29896 let out = call_atomic_ptr_9arg(
29897 "glTextureSubImage2D",
29898 &self.glTextureSubImage2D_p,
29899 texture,
29900 level,
29901 xoffset,
29902 yoffset,
29903 width,
29904 height,
29905 format,
29906 type_,
29907 pixels,
29908 );
29909 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29910 {
29911 self.automatic_glGetError("glTextureSubImage2D");
29912 }
29913 out
29914 }
29915 #[doc(hidden)]
29916 pub unsafe fn TextureSubImage2D_load_with_dyn(
29917 &self,
29918 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29919 ) -> bool {
29920 load_dyn_name_atomic_ptr(
29921 get_proc_address,
29922 b"glTextureSubImage2D\0",
29923 &self.glTextureSubImage2D_p,
29924 )
29925 }
29926 #[inline]
29927 #[doc(hidden)]
29928 pub fn TextureSubImage2D_is_loaded(&self) -> bool {
29929 !self.glTextureSubImage2D_p.load(RELAX).is_null()
29930 }
29931 /// [glTextureSubImage3D](http://docs.gl/gl4/glTextureSubImage3D)(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type_, pixels)
29932 /// * `format` group: PixelFormat
29933 /// * `type_` group: PixelType
29934 #[cfg_attr(feature = "inline", inline)]
29935 #[cfg_attr(feature = "inline_always", inline(always))]
29936 pub unsafe fn TextureSubImage3D(
29937 &self,
29938 texture: GLuint,
29939 level: GLint,
29940 xoffset: GLint,
29941 yoffset: GLint,
29942 zoffset: GLint,
29943 width: GLsizei,
29944 height: GLsizei,
29945 depth: GLsizei,
29946 format: GLenum,
29947 type_: GLenum,
29948 pixels: *const c_void,
29949 ) {
29950 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29951 {
29952 trace!("calling gl.TextureSubImage3D({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type_, pixels);
29953 }
29954 let out = call_atomic_ptr_11arg(
29955 "glTextureSubImage3D",
29956 &self.glTextureSubImage3D_p,
29957 texture,
29958 level,
29959 xoffset,
29960 yoffset,
29961 zoffset,
29962 width,
29963 height,
29964 depth,
29965 format,
29966 type_,
29967 pixels,
29968 );
29969 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29970 {
29971 self.automatic_glGetError("glTextureSubImage3D");
29972 }
29973 out
29974 }
29975 #[doc(hidden)]
29976 pub unsafe fn TextureSubImage3D_load_with_dyn(
29977 &self,
29978 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29979 ) -> bool {
29980 load_dyn_name_atomic_ptr(
29981 get_proc_address,
29982 b"glTextureSubImage3D\0",
29983 &self.glTextureSubImage3D_p,
29984 )
29985 }
29986 #[inline]
29987 #[doc(hidden)]
29988 pub fn TextureSubImage3D_is_loaded(&self) -> bool {
29989 !self.glTextureSubImage3D_p.load(RELAX).is_null()
29990 }
29991 /// [glTextureView](http://docs.gl/gl4/glTextureView)(texture, target, origtexture, internalformat, minlevel, numlevels, minlayer, numlayers)
29992 /// * `target` group: TextureTarget
29993 /// * `internalformat` group: InternalFormat
29994 #[cfg_attr(feature = "inline", inline)]
29995 #[cfg_attr(feature = "inline_always", inline(always))]
29996 pub unsafe fn TextureView(
29997 &self,
29998 texture: GLuint,
29999 target: GLenum,
30000 origtexture: GLuint,
30001 internalformat: GLenum,
30002 minlevel: GLuint,
30003 numlevels: GLuint,
30004 minlayer: GLuint,
30005 numlayers: GLuint,
30006 ) {
30007 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30008 {
30009 trace!(
30010 "calling gl.TextureView({:?}, {:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?});",
30011 texture,
30012 target,
30013 origtexture,
30014 internalformat,
30015 minlevel,
30016 numlevels,
30017 minlayer,
30018 numlayers
30019 );
30020 }
30021 let out = call_atomic_ptr_8arg(
30022 "glTextureView",
30023 &self.glTextureView_p,
30024 texture,
30025 target,
30026 origtexture,
30027 internalformat,
30028 minlevel,
30029 numlevels,
30030 minlayer,
30031 numlayers,
30032 );
30033 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30034 {
30035 self.automatic_glGetError("glTextureView");
30036 }
30037 out
30038 }
30039 #[doc(hidden)]
30040 pub unsafe fn TextureView_load_with_dyn(
30041 &self,
30042 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30043 ) -> bool {
30044 load_dyn_name_atomic_ptr(get_proc_address, b"glTextureView\0", &self.glTextureView_p)
30045 }
30046 #[inline]
30047 #[doc(hidden)]
30048 pub fn TextureView_is_loaded(&self) -> bool {
30049 !self.glTextureView_p.load(RELAX).is_null()
30050 }
30051 /// [glTransformFeedbackBufferBase](http://docs.gl/gl4/glTransformFeedbackBufferBase)(xfb, index, buffer)
30052 #[cfg_attr(feature = "inline", inline)]
30053 #[cfg_attr(feature = "inline_always", inline(always))]
30054 pub unsafe fn TransformFeedbackBufferBase(
30055 &self,
30056 xfb: GLuint,
30057 index: GLuint,
30058 buffer: GLuint,
30059 ) {
30060 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30061 {
30062 trace!(
30063 "calling gl.TransformFeedbackBufferBase({:?}, {:?}, {:?});",
30064 xfb,
30065 index,
30066 buffer
30067 );
30068 }
30069 let out = call_atomic_ptr_3arg(
30070 "glTransformFeedbackBufferBase",
30071 &self.glTransformFeedbackBufferBase_p,
30072 xfb,
30073 index,
30074 buffer,
30075 );
30076 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30077 {
30078 self.automatic_glGetError("glTransformFeedbackBufferBase");
30079 }
30080 out
30081 }
30082 #[doc(hidden)]
30083 pub unsafe fn TransformFeedbackBufferBase_load_with_dyn(
30084 &self,
30085 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30086 ) -> bool {
30087 load_dyn_name_atomic_ptr(
30088 get_proc_address,
30089 b"glTransformFeedbackBufferBase\0",
30090 &self.glTransformFeedbackBufferBase_p,
30091 )
30092 }
30093 #[inline]
30094 #[doc(hidden)]
30095 pub fn TransformFeedbackBufferBase_is_loaded(&self) -> bool {
30096 !self.glTransformFeedbackBufferBase_p.load(RELAX).is_null()
30097 }
30098 /// [glTransformFeedbackBufferRange](http://docs.gl/gl4/glTransformFeedbackBufferRange)(xfb, index, buffer, offset, size)
30099 /// * `size` group: BufferSize
30100 #[cfg_attr(feature = "inline", inline)]
30101 #[cfg_attr(feature = "inline_always", inline(always))]
30102 pub unsafe fn TransformFeedbackBufferRange(
30103 &self,
30104 xfb: GLuint,
30105 index: GLuint,
30106 buffer: GLuint,
30107 offset: GLintptr,
30108 size: GLsizeiptr,
30109 ) {
30110 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30111 {
30112 trace!(
30113 "calling gl.TransformFeedbackBufferRange({:?}, {:?}, {:?}, {:?}, {:?});",
30114 xfb,
30115 index,
30116 buffer,
30117 offset,
30118 size
30119 );
30120 }
30121 let out = call_atomic_ptr_5arg(
30122 "glTransformFeedbackBufferRange",
30123 &self.glTransformFeedbackBufferRange_p,
30124 xfb,
30125 index,
30126 buffer,
30127 offset,
30128 size,
30129 );
30130 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30131 {
30132 self.automatic_glGetError("glTransformFeedbackBufferRange");
30133 }
30134 out
30135 }
30136 #[doc(hidden)]
30137 pub unsafe fn TransformFeedbackBufferRange_load_with_dyn(
30138 &self,
30139 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30140 ) -> bool {
30141 load_dyn_name_atomic_ptr(
30142 get_proc_address,
30143 b"glTransformFeedbackBufferRange\0",
30144 &self.glTransformFeedbackBufferRange_p,
30145 )
30146 }
30147 #[inline]
30148 #[doc(hidden)]
30149 pub fn TransformFeedbackBufferRange_is_loaded(&self) -> bool {
30150 !self.glTransformFeedbackBufferRange_p.load(RELAX).is_null()
30151 }
30152 /// [glTransformFeedbackVaryings](http://docs.gl/gl4/glTransformFeedbackVaryings)(program, count, varyings, bufferMode)
30153 /// * `varyings` len: count
30154 /// * `bufferMode` group: TransformFeedbackBufferMode
30155 #[cfg_attr(feature = "inline", inline)]
30156 #[cfg_attr(feature = "inline_always", inline(always))]
30157 pub unsafe fn TransformFeedbackVaryings(
30158 &self,
30159 program: GLuint,
30160 count: GLsizei,
30161 varyings: *const *const GLchar,
30162 bufferMode: GLenum,
30163 ) {
30164 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30165 {
30166 trace!(
30167 "calling gl.TransformFeedbackVaryings({:?}, {:?}, {:p}, {:#X});",
30168 program,
30169 count,
30170 varyings,
30171 bufferMode
30172 );
30173 }
30174 let out = call_atomic_ptr_4arg(
30175 "glTransformFeedbackVaryings",
30176 &self.glTransformFeedbackVaryings_p,
30177 program,
30178 count,
30179 varyings,
30180 bufferMode,
30181 );
30182 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30183 {
30184 self.automatic_glGetError("glTransformFeedbackVaryings");
30185 }
30186 out
30187 }
30188 #[doc(hidden)]
30189 pub unsafe fn TransformFeedbackVaryings_load_with_dyn(
30190 &self,
30191 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30192 ) -> bool {
30193 load_dyn_name_atomic_ptr(
30194 get_proc_address,
30195 b"glTransformFeedbackVaryings\0",
30196 &self.glTransformFeedbackVaryings_p,
30197 )
30198 }
30199 #[inline]
30200 #[doc(hidden)]
30201 pub fn TransformFeedbackVaryings_is_loaded(&self) -> bool {
30202 !self.glTransformFeedbackVaryings_p.load(RELAX).is_null()
30203 }
30204 /// [glUniform1d](http://docs.gl/gl4/glUniform1d)(location, x)
30205 #[cfg_attr(feature = "inline", inline)]
30206 #[cfg_attr(feature = "inline_always", inline(always))]
30207 pub unsafe fn Uniform1d(&self, location: GLint, x: GLdouble) {
30208 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30209 {
30210 trace!("calling gl.Uniform1d({:?}, {:?});", location, x);
30211 }
30212 let out = call_atomic_ptr_2arg("glUniform1d", &self.glUniform1d_p, location, x);
30213 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30214 {
30215 self.automatic_glGetError("glUniform1d");
30216 }
30217 out
30218 }
30219 #[doc(hidden)]
30220 pub unsafe fn Uniform1d_load_with_dyn(
30221 &self,
30222 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30223 ) -> bool {
30224 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1d\0", &self.glUniform1d_p)
30225 }
30226 #[inline]
30227 #[doc(hidden)]
30228 pub fn Uniform1d_is_loaded(&self) -> bool {
30229 !self.glUniform1d_p.load(RELAX).is_null()
30230 }
30231 /// [glUniform1dv](http://docs.gl/gl4/glUniform1dv)(location, count, value)
30232 /// * `value` len: count*1
30233 #[cfg_attr(feature = "inline", inline)]
30234 #[cfg_attr(feature = "inline_always", inline(always))]
30235 pub unsafe fn Uniform1dv(&self, location: GLint, count: GLsizei, value: *const GLdouble) {
30236 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30237 {
30238 trace!(
30239 "calling gl.Uniform1dv({:?}, {:?}, {:p});",
30240 location,
30241 count,
30242 value
30243 );
30244 }
30245 let out =
30246 call_atomic_ptr_3arg("glUniform1dv", &self.glUniform1dv_p, location, count, value);
30247 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30248 {
30249 self.automatic_glGetError("glUniform1dv");
30250 }
30251 out
30252 }
30253 #[doc(hidden)]
30254 pub unsafe fn Uniform1dv_load_with_dyn(
30255 &self,
30256 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30257 ) -> bool {
30258 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1dv\0", &self.glUniform1dv_p)
30259 }
30260 #[inline]
30261 #[doc(hidden)]
30262 pub fn Uniform1dv_is_loaded(&self) -> bool {
30263 !self.glUniform1dv_p.load(RELAX).is_null()
30264 }
30265 /// [glUniform1f](http://docs.gl/gl4/glUniform)(location, v0)
30266 #[cfg_attr(feature = "inline", inline)]
30267 #[cfg_attr(feature = "inline_always", inline(always))]
30268 pub unsafe fn Uniform1f(&self, location: GLint, v0: GLfloat) {
30269 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30270 {
30271 trace!("calling gl.Uniform1f({:?}, {:?});", location, v0);
30272 }
30273 let out = call_atomic_ptr_2arg("glUniform1f", &self.glUniform1f_p, location, v0);
30274 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30275 {
30276 self.automatic_glGetError("glUniform1f");
30277 }
30278 out
30279 }
30280 #[doc(hidden)]
30281 pub unsafe fn Uniform1f_load_with_dyn(
30282 &self,
30283 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30284 ) -> bool {
30285 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1f\0", &self.glUniform1f_p)
30286 }
30287 #[inline]
30288 #[doc(hidden)]
30289 pub fn Uniform1f_is_loaded(&self) -> bool {
30290 !self.glUniform1f_p.load(RELAX).is_null()
30291 }
30292 /// [glUniform1fv](http://docs.gl/gl4/glUniform)(location, count, value)
30293 /// * `value` len: count*1
30294 #[cfg_attr(feature = "inline", inline)]
30295 #[cfg_attr(feature = "inline_always", inline(always))]
30296 pub unsafe fn Uniform1fv(&self, location: GLint, count: GLsizei, value: *const GLfloat) {
30297 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30298 {
30299 trace!(
30300 "calling gl.Uniform1fv({:?}, {:?}, {:p});",
30301 location,
30302 count,
30303 value
30304 );
30305 }
30306 let out =
30307 call_atomic_ptr_3arg("glUniform1fv", &self.glUniform1fv_p, location, count, value);
30308 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30309 {
30310 self.automatic_glGetError("glUniform1fv");
30311 }
30312 out
30313 }
30314 #[doc(hidden)]
30315 pub unsafe fn Uniform1fv_load_with_dyn(
30316 &self,
30317 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30318 ) -> bool {
30319 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1fv\0", &self.glUniform1fv_p)
30320 }
30321 #[inline]
30322 #[doc(hidden)]
30323 pub fn Uniform1fv_is_loaded(&self) -> bool {
30324 !self.glUniform1fv_p.load(RELAX).is_null()
30325 }
30326 /// [glUniform1i](http://docs.gl/gl4/glUniform)(location, v0)
30327 #[cfg_attr(feature = "inline", inline)]
30328 #[cfg_attr(feature = "inline_always", inline(always))]
30329 pub unsafe fn Uniform1i(&self, location: GLint, v0: GLint) {
30330 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30331 {
30332 trace!("calling gl.Uniform1i({:?}, {:?});", location, v0);
30333 }
30334 let out = call_atomic_ptr_2arg("glUniform1i", &self.glUniform1i_p, location, v0);
30335 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30336 {
30337 self.automatic_glGetError("glUniform1i");
30338 }
30339 out
30340 }
30341 #[doc(hidden)]
30342 pub unsafe fn Uniform1i_load_with_dyn(
30343 &self,
30344 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30345 ) -> bool {
30346 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1i\0", &self.glUniform1i_p)
30347 }
30348 #[inline]
30349 #[doc(hidden)]
30350 pub fn Uniform1i_is_loaded(&self) -> bool {
30351 !self.glUniform1i_p.load(RELAX).is_null()
30352 }
30353 /// [glUniform1iv](http://docs.gl/gl4/glUniform)(location, count, value)
30354 /// * `value` len: count*1
30355 #[cfg_attr(feature = "inline", inline)]
30356 #[cfg_attr(feature = "inline_always", inline(always))]
30357 pub unsafe fn Uniform1iv(&self, location: GLint, count: GLsizei, value: *const GLint) {
30358 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30359 {
30360 trace!(
30361 "calling gl.Uniform1iv({:?}, {:?}, {:p});",
30362 location,
30363 count,
30364 value
30365 );
30366 }
30367 let out =
30368 call_atomic_ptr_3arg("glUniform1iv", &self.glUniform1iv_p, location, count, value);
30369 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30370 {
30371 self.automatic_glGetError("glUniform1iv");
30372 }
30373 out
30374 }
30375 #[doc(hidden)]
30376 pub unsafe fn Uniform1iv_load_with_dyn(
30377 &self,
30378 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30379 ) -> bool {
30380 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1iv\0", &self.glUniform1iv_p)
30381 }
30382 #[inline]
30383 #[doc(hidden)]
30384 pub fn Uniform1iv_is_loaded(&self) -> bool {
30385 !self.glUniform1iv_p.load(RELAX).is_null()
30386 }
30387 /// [glUniform1ui](http://docs.gl/gl4/glUniform)(location, v0)
30388 #[cfg_attr(feature = "inline", inline)]
30389 #[cfg_attr(feature = "inline_always", inline(always))]
30390 pub unsafe fn Uniform1ui(&self, location: GLint, v0: GLuint) {
30391 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30392 {
30393 trace!("calling gl.Uniform1ui({:?}, {:?});", location, v0);
30394 }
30395 let out = call_atomic_ptr_2arg("glUniform1ui", &self.glUniform1ui_p, location, v0);
30396 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30397 {
30398 self.automatic_glGetError("glUniform1ui");
30399 }
30400 out
30401 }
30402 #[doc(hidden)]
30403 pub unsafe fn Uniform1ui_load_with_dyn(
30404 &self,
30405 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30406 ) -> bool {
30407 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1ui\0", &self.glUniform1ui_p)
30408 }
30409 #[inline]
30410 #[doc(hidden)]
30411 pub fn Uniform1ui_is_loaded(&self) -> bool {
30412 !self.glUniform1ui_p.load(RELAX).is_null()
30413 }
30414 /// [glUniform1uiv](http://docs.gl/gl4/glUniform)(location, count, value)
30415 /// * `value` len: count*1
30416 #[cfg_attr(feature = "inline", inline)]
30417 #[cfg_attr(feature = "inline_always", inline(always))]
30418 pub unsafe fn Uniform1uiv(&self, location: GLint, count: GLsizei, value: *const GLuint) {
30419 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30420 {
30421 trace!(
30422 "calling gl.Uniform1uiv({:?}, {:?}, {:p});",
30423 location,
30424 count,
30425 value
30426 );
30427 }
30428 let out = call_atomic_ptr_3arg(
30429 "glUniform1uiv",
30430 &self.glUniform1uiv_p,
30431 location,
30432 count,
30433 value,
30434 );
30435 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30436 {
30437 self.automatic_glGetError("glUniform1uiv");
30438 }
30439 out
30440 }
30441 #[doc(hidden)]
30442 pub unsafe fn Uniform1uiv_load_with_dyn(
30443 &self,
30444 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30445 ) -> bool {
30446 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1uiv\0", &self.glUniform1uiv_p)
30447 }
30448 #[inline]
30449 #[doc(hidden)]
30450 pub fn Uniform1uiv_is_loaded(&self) -> bool {
30451 !self.glUniform1uiv_p.load(RELAX).is_null()
30452 }
30453 /// [glUniform2d](http://docs.gl/gl4/glUniform2d)(location, x, y)
30454 #[cfg_attr(feature = "inline", inline)]
30455 #[cfg_attr(feature = "inline_always", inline(always))]
30456 pub unsafe fn Uniform2d(&self, location: GLint, x: GLdouble, y: GLdouble) {
30457 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30458 {
30459 trace!("calling gl.Uniform2d({:?}, {:?}, {:?});", location, x, y);
30460 }
30461 let out = call_atomic_ptr_3arg("glUniform2d", &self.glUniform2d_p, location, x, y);
30462 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30463 {
30464 self.automatic_glGetError("glUniform2d");
30465 }
30466 out
30467 }
30468 #[doc(hidden)]
30469 pub unsafe fn Uniform2d_load_with_dyn(
30470 &self,
30471 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30472 ) -> bool {
30473 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2d\0", &self.glUniform2d_p)
30474 }
30475 #[inline]
30476 #[doc(hidden)]
30477 pub fn Uniform2d_is_loaded(&self) -> bool {
30478 !self.glUniform2d_p.load(RELAX).is_null()
30479 }
30480 /// [glUniform2dv](http://docs.gl/gl4/glUniform2dv)(location, count, value)
30481 /// * `value` len: count*2
30482 #[cfg_attr(feature = "inline", inline)]
30483 #[cfg_attr(feature = "inline_always", inline(always))]
30484 pub unsafe fn Uniform2dv(&self, location: GLint, count: GLsizei, value: *const GLdouble) {
30485 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30486 {
30487 trace!(
30488 "calling gl.Uniform2dv({:?}, {:?}, {:p});",
30489 location,
30490 count,
30491 value
30492 );
30493 }
30494 let out =
30495 call_atomic_ptr_3arg("glUniform2dv", &self.glUniform2dv_p, location, count, value);
30496 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30497 {
30498 self.automatic_glGetError("glUniform2dv");
30499 }
30500 out
30501 }
30502 #[doc(hidden)]
30503 pub unsafe fn Uniform2dv_load_with_dyn(
30504 &self,
30505 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30506 ) -> bool {
30507 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2dv\0", &self.glUniform2dv_p)
30508 }
30509 #[inline]
30510 #[doc(hidden)]
30511 pub fn Uniform2dv_is_loaded(&self) -> bool {
30512 !self.glUniform2dv_p.load(RELAX).is_null()
30513 }
30514 /// [glUniform2f](http://docs.gl/gl4/glUniform)(location, v0, v1)
30515 #[cfg_attr(feature = "inline", inline)]
30516 #[cfg_attr(feature = "inline_always", inline(always))]
30517 pub unsafe fn Uniform2f(&self, location: GLint, v0: GLfloat, v1: GLfloat) {
30518 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30519 {
30520 trace!("calling gl.Uniform2f({:?}, {:?}, {:?});", location, v0, v1);
30521 }
30522 let out = call_atomic_ptr_3arg("glUniform2f", &self.glUniform2f_p, location, v0, v1);
30523 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30524 {
30525 self.automatic_glGetError("glUniform2f");
30526 }
30527 out
30528 }
30529 #[doc(hidden)]
30530 pub unsafe fn Uniform2f_load_with_dyn(
30531 &self,
30532 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30533 ) -> bool {
30534 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2f\0", &self.glUniform2f_p)
30535 }
30536 #[inline]
30537 #[doc(hidden)]
30538 pub fn Uniform2f_is_loaded(&self) -> bool {
30539 !self.glUniform2f_p.load(RELAX).is_null()
30540 }
30541 /// [glUniform2fv](http://docs.gl/gl4/glUniform)(location, count, value)
30542 /// * `value` len: count*2
30543 #[cfg_attr(feature = "inline", inline)]
30544 #[cfg_attr(feature = "inline_always", inline(always))]
30545 pub unsafe fn Uniform2fv(&self, location: GLint, count: GLsizei, value: *const GLfloat) {
30546 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30547 {
30548 trace!(
30549 "calling gl.Uniform2fv({:?}, {:?}, {:p});",
30550 location,
30551 count,
30552 value
30553 );
30554 }
30555 let out =
30556 call_atomic_ptr_3arg("glUniform2fv", &self.glUniform2fv_p, location, count, value);
30557 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30558 {
30559 self.automatic_glGetError("glUniform2fv");
30560 }
30561 out
30562 }
30563 #[doc(hidden)]
30564 pub unsafe fn Uniform2fv_load_with_dyn(
30565 &self,
30566 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30567 ) -> bool {
30568 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2fv\0", &self.glUniform2fv_p)
30569 }
30570 #[inline]
30571 #[doc(hidden)]
30572 pub fn Uniform2fv_is_loaded(&self) -> bool {
30573 !self.glUniform2fv_p.load(RELAX).is_null()
30574 }
30575 /// [glUniform2i](http://docs.gl/gl4/glUniform)(location, v0, v1)
30576 #[cfg_attr(feature = "inline", inline)]
30577 #[cfg_attr(feature = "inline_always", inline(always))]
30578 pub unsafe fn Uniform2i(&self, location: GLint, v0: GLint, v1: GLint) {
30579 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30580 {
30581 trace!("calling gl.Uniform2i({:?}, {:?}, {:?});", location, v0, v1);
30582 }
30583 let out = call_atomic_ptr_3arg("glUniform2i", &self.glUniform2i_p, location, v0, v1);
30584 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30585 {
30586 self.automatic_glGetError("glUniform2i");
30587 }
30588 out
30589 }
30590 #[doc(hidden)]
30591 pub unsafe fn Uniform2i_load_with_dyn(
30592 &self,
30593 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30594 ) -> bool {
30595 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2i\0", &self.glUniform2i_p)
30596 }
30597 #[inline]
30598 #[doc(hidden)]
30599 pub fn Uniform2i_is_loaded(&self) -> bool {
30600 !self.glUniform2i_p.load(RELAX).is_null()
30601 }
30602 /// [glUniform2iv](http://docs.gl/gl4/glUniform)(location, count, value)
30603 /// * `value` len: count*2
30604 #[cfg_attr(feature = "inline", inline)]
30605 #[cfg_attr(feature = "inline_always", inline(always))]
30606 pub unsafe fn Uniform2iv(&self, location: GLint, count: GLsizei, value: *const GLint) {
30607 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30608 {
30609 trace!(
30610 "calling gl.Uniform2iv({:?}, {:?}, {:p});",
30611 location,
30612 count,
30613 value
30614 );
30615 }
30616 let out =
30617 call_atomic_ptr_3arg("glUniform2iv", &self.glUniform2iv_p, location, count, value);
30618 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30619 {
30620 self.automatic_glGetError("glUniform2iv");
30621 }
30622 out
30623 }
30624 #[doc(hidden)]
30625 pub unsafe fn Uniform2iv_load_with_dyn(
30626 &self,
30627 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30628 ) -> bool {
30629 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2iv\0", &self.glUniform2iv_p)
30630 }
30631 #[inline]
30632 #[doc(hidden)]
30633 pub fn Uniform2iv_is_loaded(&self) -> bool {
30634 !self.glUniform2iv_p.load(RELAX).is_null()
30635 }
30636 /// [glUniform2ui](http://docs.gl/gl4/glUniform)(location, v0, v1)
30637 #[cfg_attr(feature = "inline", inline)]
30638 #[cfg_attr(feature = "inline_always", inline(always))]
30639 pub unsafe fn Uniform2ui(&self, location: GLint, v0: GLuint, v1: GLuint) {
30640 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30641 {
30642 trace!("calling gl.Uniform2ui({:?}, {:?}, {:?});", location, v0, v1);
30643 }
30644 let out = call_atomic_ptr_3arg("glUniform2ui", &self.glUniform2ui_p, location, v0, v1);
30645 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30646 {
30647 self.automatic_glGetError("glUniform2ui");
30648 }
30649 out
30650 }
30651 #[doc(hidden)]
30652 pub unsafe fn Uniform2ui_load_with_dyn(
30653 &self,
30654 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30655 ) -> bool {
30656 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2ui\0", &self.glUniform2ui_p)
30657 }
30658 #[inline]
30659 #[doc(hidden)]
30660 pub fn Uniform2ui_is_loaded(&self) -> bool {
30661 !self.glUniform2ui_p.load(RELAX).is_null()
30662 }
30663 /// [glUniform2uiv](http://docs.gl/gl4/glUniform)(location, count, value)
30664 /// * `value` len: count*2
30665 #[cfg_attr(feature = "inline", inline)]
30666 #[cfg_attr(feature = "inline_always", inline(always))]
30667 pub unsafe fn Uniform2uiv(&self, location: GLint, count: GLsizei, value: *const GLuint) {
30668 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30669 {
30670 trace!(
30671 "calling gl.Uniform2uiv({:?}, {:?}, {:p});",
30672 location,
30673 count,
30674 value
30675 );
30676 }
30677 let out = call_atomic_ptr_3arg(
30678 "glUniform2uiv",
30679 &self.glUniform2uiv_p,
30680 location,
30681 count,
30682 value,
30683 );
30684 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30685 {
30686 self.automatic_glGetError("glUniform2uiv");
30687 }
30688 out
30689 }
30690 #[doc(hidden)]
30691 pub unsafe fn Uniform2uiv_load_with_dyn(
30692 &self,
30693 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30694 ) -> bool {
30695 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2uiv\0", &self.glUniform2uiv_p)
30696 }
30697 #[inline]
30698 #[doc(hidden)]
30699 pub fn Uniform2uiv_is_loaded(&self) -> bool {
30700 !self.glUniform2uiv_p.load(RELAX).is_null()
30701 }
30702 /// [glUniform3d](http://docs.gl/gl4/glUniform3d)(location, x, y, z)
30703 #[cfg_attr(feature = "inline", inline)]
30704 #[cfg_attr(feature = "inline_always", inline(always))]
30705 pub unsafe fn Uniform3d(&self, location: GLint, x: GLdouble, y: GLdouble, z: GLdouble) {
30706 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30707 {
30708 trace!(
30709 "calling gl.Uniform3d({:?}, {:?}, {:?}, {:?});",
30710 location,
30711 x,
30712 y,
30713 z
30714 );
30715 }
30716 let out = call_atomic_ptr_4arg("glUniform3d", &self.glUniform3d_p, location, x, y, z);
30717 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30718 {
30719 self.automatic_glGetError("glUniform3d");
30720 }
30721 out
30722 }
30723 #[doc(hidden)]
30724 pub unsafe fn Uniform3d_load_with_dyn(
30725 &self,
30726 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30727 ) -> bool {
30728 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3d\0", &self.glUniform3d_p)
30729 }
30730 #[inline]
30731 #[doc(hidden)]
30732 pub fn Uniform3d_is_loaded(&self) -> bool {
30733 !self.glUniform3d_p.load(RELAX).is_null()
30734 }
30735 /// [glUniform3dv](http://docs.gl/gl4/glUniform3dv)(location, count, value)
30736 /// * `value` len: count*3
30737 #[cfg_attr(feature = "inline", inline)]
30738 #[cfg_attr(feature = "inline_always", inline(always))]
30739 pub unsafe fn Uniform3dv(&self, location: GLint, count: GLsizei, value: *const GLdouble) {
30740 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30741 {
30742 trace!(
30743 "calling gl.Uniform3dv({:?}, {:?}, {:p});",
30744 location,
30745 count,
30746 value
30747 );
30748 }
30749 let out =
30750 call_atomic_ptr_3arg("glUniform3dv", &self.glUniform3dv_p, location, count, value);
30751 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30752 {
30753 self.automatic_glGetError("glUniform3dv");
30754 }
30755 out
30756 }
30757 #[doc(hidden)]
30758 pub unsafe fn Uniform3dv_load_with_dyn(
30759 &self,
30760 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30761 ) -> bool {
30762 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3dv\0", &self.glUniform3dv_p)
30763 }
30764 #[inline]
30765 #[doc(hidden)]
30766 pub fn Uniform3dv_is_loaded(&self) -> bool {
30767 !self.glUniform3dv_p.load(RELAX).is_null()
30768 }
30769 /// [glUniform3f](http://docs.gl/gl4/glUniform)(location, v0, v1, v2)
30770 #[cfg_attr(feature = "inline", inline)]
30771 #[cfg_attr(feature = "inline_always", inline(always))]
30772 pub unsafe fn Uniform3f(&self, location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat) {
30773 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30774 {
30775 trace!(
30776 "calling gl.Uniform3f({:?}, {:?}, {:?}, {:?});",
30777 location,
30778 v0,
30779 v1,
30780 v2
30781 );
30782 }
30783 let out =
30784 call_atomic_ptr_4arg("glUniform3f", &self.glUniform3f_p, location, v0, v1, v2);
30785 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30786 {
30787 self.automatic_glGetError("glUniform3f");
30788 }
30789 out
30790 }
30791 #[doc(hidden)]
30792 pub unsafe fn Uniform3f_load_with_dyn(
30793 &self,
30794 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30795 ) -> bool {
30796 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3f\0", &self.glUniform3f_p)
30797 }
30798 #[inline]
30799 #[doc(hidden)]
30800 pub fn Uniform3f_is_loaded(&self) -> bool {
30801 !self.glUniform3f_p.load(RELAX).is_null()
30802 }
30803 /// [glUniform3fv](http://docs.gl/gl4/glUniform)(location, count, value)
30804 /// * `value` len: count*3
30805 #[cfg_attr(feature = "inline", inline)]
30806 #[cfg_attr(feature = "inline_always", inline(always))]
30807 pub unsafe fn Uniform3fv(&self, location: GLint, count: GLsizei, value: *const GLfloat) {
30808 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30809 {
30810 trace!(
30811 "calling gl.Uniform3fv({:?}, {:?}, {:p});",
30812 location,
30813 count,
30814 value
30815 );
30816 }
30817 let out =
30818 call_atomic_ptr_3arg("glUniform3fv", &self.glUniform3fv_p, location, count, value);
30819 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30820 {
30821 self.automatic_glGetError("glUniform3fv");
30822 }
30823 out
30824 }
30825 #[doc(hidden)]
30826 pub unsafe fn Uniform3fv_load_with_dyn(
30827 &self,
30828 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30829 ) -> bool {
30830 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3fv\0", &self.glUniform3fv_p)
30831 }
30832 #[inline]
30833 #[doc(hidden)]
30834 pub fn Uniform3fv_is_loaded(&self) -> bool {
30835 !self.glUniform3fv_p.load(RELAX).is_null()
30836 }
30837 /// [glUniform3i](http://docs.gl/gl4/glUniform)(location, v0, v1, v2)
30838 #[cfg_attr(feature = "inline", inline)]
30839 #[cfg_attr(feature = "inline_always", inline(always))]
30840 pub unsafe fn Uniform3i(&self, location: GLint, v0: GLint, v1: GLint, v2: GLint) {
30841 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30842 {
30843 trace!(
30844 "calling gl.Uniform3i({:?}, {:?}, {:?}, {:?});",
30845 location,
30846 v0,
30847 v1,
30848 v2
30849 );
30850 }
30851 let out =
30852 call_atomic_ptr_4arg("glUniform3i", &self.glUniform3i_p, location, v0, v1, v2);
30853 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30854 {
30855 self.automatic_glGetError("glUniform3i");
30856 }
30857 out
30858 }
30859 #[doc(hidden)]
30860 pub unsafe fn Uniform3i_load_with_dyn(
30861 &self,
30862 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30863 ) -> bool {
30864 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3i\0", &self.glUniform3i_p)
30865 }
30866 #[inline]
30867 #[doc(hidden)]
30868 pub fn Uniform3i_is_loaded(&self) -> bool {
30869 !self.glUniform3i_p.load(RELAX).is_null()
30870 }
30871 /// [glUniform3iv](http://docs.gl/gl4/glUniform)(location, count, value)
30872 /// * `value` len: count*3
30873 #[cfg_attr(feature = "inline", inline)]
30874 #[cfg_attr(feature = "inline_always", inline(always))]
30875 pub unsafe fn Uniform3iv(&self, location: GLint, count: GLsizei, value: *const GLint) {
30876 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30877 {
30878 trace!(
30879 "calling gl.Uniform3iv({:?}, {:?}, {:p});",
30880 location,
30881 count,
30882 value
30883 );
30884 }
30885 let out =
30886 call_atomic_ptr_3arg("glUniform3iv", &self.glUniform3iv_p, location, count, value);
30887 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30888 {
30889 self.automatic_glGetError("glUniform3iv");
30890 }
30891 out
30892 }
30893 #[doc(hidden)]
30894 pub unsafe fn Uniform3iv_load_with_dyn(
30895 &self,
30896 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30897 ) -> bool {
30898 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3iv\0", &self.glUniform3iv_p)
30899 }
30900 #[inline]
30901 #[doc(hidden)]
30902 pub fn Uniform3iv_is_loaded(&self) -> bool {
30903 !self.glUniform3iv_p.load(RELAX).is_null()
30904 }
30905 /// [glUniform3ui](http://docs.gl/gl4/glUniform)(location, v0, v1, v2)
30906 #[cfg_attr(feature = "inline", inline)]
30907 #[cfg_attr(feature = "inline_always", inline(always))]
30908 pub unsafe fn Uniform3ui(&self, location: GLint, v0: GLuint, v1: GLuint, v2: GLuint) {
30909 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30910 {
30911 trace!(
30912 "calling gl.Uniform3ui({:?}, {:?}, {:?}, {:?});",
30913 location,
30914 v0,
30915 v1,
30916 v2
30917 );
30918 }
30919 let out =
30920 call_atomic_ptr_4arg("glUniform3ui", &self.glUniform3ui_p, location, v0, v1, v2);
30921 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30922 {
30923 self.automatic_glGetError("glUniform3ui");
30924 }
30925 out
30926 }
30927 #[doc(hidden)]
30928 pub unsafe fn Uniform3ui_load_with_dyn(
30929 &self,
30930 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30931 ) -> bool {
30932 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3ui\0", &self.glUniform3ui_p)
30933 }
30934 #[inline]
30935 #[doc(hidden)]
30936 pub fn Uniform3ui_is_loaded(&self) -> bool {
30937 !self.glUniform3ui_p.load(RELAX).is_null()
30938 }
30939 /// [glUniform3uiv](http://docs.gl/gl4/glUniform)(location, count, value)
30940 /// * `value` len: count*3
30941 #[cfg_attr(feature = "inline", inline)]
30942 #[cfg_attr(feature = "inline_always", inline(always))]
30943 pub unsafe fn Uniform3uiv(&self, location: GLint, count: GLsizei, value: *const GLuint) {
30944 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30945 {
30946 trace!(
30947 "calling gl.Uniform3uiv({:?}, {:?}, {:p});",
30948 location,
30949 count,
30950 value
30951 );
30952 }
30953 let out = call_atomic_ptr_3arg(
30954 "glUniform3uiv",
30955 &self.glUniform3uiv_p,
30956 location,
30957 count,
30958 value,
30959 );
30960 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30961 {
30962 self.automatic_glGetError("glUniform3uiv");
30963 }
30964 out
30965 }
30966 #[doc(hidden)]
30967 pub unsafe fn Uniform3uiv_load_with_dyn(
30968 &self,
30969 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30970 ) -> bool {
30971 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3uiv\0", &self.glUniform3uiv_p)
30972 }
30973 #[inline]
30974 #[doc(hidden)]
30975 pub fn Uniform3uiv_is_loaded(&self) -> bool {
30976 !self.glUniform3uiv_p.load(RELAX).is_null()
30977 }
30978 /// [glUniform4d](http://docs.gl/gl4/glUniform4d)(location, x, y, z, w)
30979 #[cfg_attr(feature = "inline", inline)]
30980 #[cfg_attr(feature = "inline_always", inline(always))]
30981 pub unsafe fn Uniform4d(
30982 &self,
30983 location: GLint,
30984 x: GLdouble,
30985 y: GLdouble,
30986 z: GLdouble,
30987 w: GLdouble,
30988 ) {
30989 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30990 {
30991 trace!(
30992 "calling gl.Uniform4d({:?}, {:?}, {:?}, {:?}, {:?});",
30993 location,
30994 x,
30995 y,
30996 z,
30997 w
30998 );
30999 }
31000 let out =
31001 call_atomic_ptr_5arg("glUniform4d", &self.glUniform4d_p, location, x, y, z, w);
31002 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31003 {
31004 self.automatic_glGetError("glUniform4d");
31005 }
31006 out
31007 }
31008 #[doc(hidden)]
31009 pub unsafe fn Uniform4d_load_with_dyn(
31010 &self,
31011 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31012 ) -> bool {
31013 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4d\0", &self.glUniform4d_p)
31014 }
31015 #[inline]
31016 #[doc(hidden)]
31017 pub fn Uniform4d_is_loaded(&self) -> bool {
31018 !self.glUniform4d_p.load(RELAX).is_null()
31019 }
31020 /// [glUniform4dv](http://docs.gl/gl4/glUniform4dv)(location, count, value)
31021 /// * `value` len: count*4
31022 #[cfg_attr(feature = "inline", inline)]
31023 #[cfg_attr(feature = "inline_always", inline(always))]
31024 pub unsafe fn Uniform4dv(&self, location: GLint, count: GLsizei, value: *const GLdouble) {
31025 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31026 {
31027 trace!(
31028 "calling gl.Uniform4dv({:?}, {:?}, {:p});",
31029 location,
31030 count,
31031 value
31032 );
31033 }
31034 let out =
31035 call_atomic_ptr_3arg("glUniform4dv", &self.glUniform4dv_p, location, count, value);
31036 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31037 {
31038 self.automatic_glGetError("glUniform4dv");
31039 }
31040 out
31041 }
31042 #[doc(hidden)]
31043 pub unsafe fn Uniform4dv_load_with_dyn(
31044 &self,
31045 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31046 ) -> bool {
31047 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4dv\0", &self.glUniform4dv_p)
31048 }
31049 #[inline]
31050 #[doc(hidden)]
31051 pub fn Uniform4dv_is_loaded(&self) -> bool {
31052 !self.glUniform4dv_p.load(RELAX).is_null()
31053 }
31054 /// [glUniform4f](http://docs.gl/gl4/glUniform)(location, v0, v1, v2, v3)
31055 #[cfg_attr(feature = "inline", inline)]
31056 #[cfg_attr(feature = "inline_always", inline(always))]
31057 pub unsafe fn Uniform4f(
31058 &self,
31059 location: GLint,
31060 v0: GLfloat,
31061 v1: GLfloat,
31062 v2: GLfloat,
31063 v3: GLfloat,
31064 ) {
31065 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31066 {
31067 trace!(
31068 "calling gl.Uniform4f({:?}, {:?}, {:?}, {:?}, {:?});",
31069 location,
31070 v0,
31071 v1,
31072 v2,
31073 v3
31074 );
31075 }
31076 let out =
31077 call_atomic_ptr_5arg("glUniform4f", &self.glUniform4f_p, location, v0, v1, v2, v3);
31078 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31079 {
31080 self.automatic_glGetError("glUniform4f");
31081 }
31082 out
31083 }
31084 #[doc(hidden)]
31085 pub unsafe fn Uniform4f_load_with_dyn(
31086 &self,
31087 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31088 ) -> bool {
31089 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4f\0", &self.glUniform4f_p)
31090 }
31091 #[inline]
31092 #[doc(hidden)]
31093 pub fn Uniform4f_is_loaded(&self) -> bool {
31094 !self.glUniform4f_p.load(RELAX).is_null()
31095 }
31096 /// [glUniform4fv](http://docs.gl/gl4/glUniform)(location, count, value)
31097 /// * `value` len: count*4
31098 #[cfg_attr(feature = "inline", inline)]
31099 #[cfg_attr(feature = "inline_always", inline(always))]
31100 pub unsafe fn Uniform4fv(&self, location: GLint, count: GLsizei, value: *const GLfloat) {
31101 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31102 {
31103 trace!(
31104 "calling gl.Uniform4fv({:?}, {:?}, {:p});",
31105 location,
31106 count,
31107 value
31108 );
31109 }
31110 let out =
31111 call_atomic_ptr_3arg("glUniform4fv", &self.glUniform4fv_p, location, count, value);
31112 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31113 {
31114 self.automatic_glGetError("glUniform4fv");
31115 }
31116 out
31117 }
31118 #[doc(hidden)]
31119 pub unsafe fn Uniform4fv_load_with_dyn(
31120 &self,
31121 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31122 ) -> bool {
31123 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4fv\0", &self.glUniform4fv_p)
31124 }
31125 #[inline]
31126 #[doc(hidden)]
31127 pub fn Uniform4fv_is_loaded(&self) -> bool {
31128 !self.glUniform4fv_p.load(RELAX).is_null()
31129 }
31130 /// [glUniform4i](http://docs.gl/gl4/glUniform)(location, v0, v1, v2, v3)
31131 #[cfg_attr(feature = "inline", inline)]
31132 #[cfg_attr(feature = "inline_always", inline(always))]
31133 pub unsafe fn Uniform4i(
31134 &self,
31135 location: GLint,
31136 v0: GLint,
31137 v1: GLint,
31138 v2: GLint,
31139 v3: GLint,
31140 ) {
31141 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31142 {
31143 trace!(
31144 "calling gl.Uniform4i({:?}, {:?}, {:?}, {:?}, {:?});",
31145 location,
31146 v0,
31147 v1,
31148 v2,
31149 v3
31150 );
31151 }
31152 let out =
31153 call_atomic_ptr_5arg("glUniform4i", &self.glUniform4i_p, location, v0, v1, v2, v3);
31154 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31155 {
31156 self.automatic_glGetError("glUniform4i");
31157 }
31158 out
31159 }
31160 #[doc(hidden)]
31161 pub unsafe fn Uniform4i_load_with_dyn(
31162 &self,
31163 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31164 ) -> bool {
31165 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4i\0", &self.glUniform4i_p)
31166 }
31167 #[inline]
31168 #[doc(hidden)]
31169 pub fn Uniform4i_is_loaded(&self) -> bool {
31170 !self.glUniform4i_p.load(RELAX).is_null()
31171 }
31172 /// [glUniform4iv](http://docs.gl/gl4/glUniform)(location, count, value)
31173 /// * `value` len: count*4
31174 #[cfg_attr(feature = "inline", inline)]
31175 #[cfg_attr(feature = "inline_always", inline(always))]
31176 pub unsafe fn Uniform4iv(&self, location: GLint, count: GLsizei, value: *const GLint) {
31177 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31178 {
31179 trace!(
31180 "calling gl.Uniform4iv({:?}, {:?}, {:p});",
31181 location,
31182 count,
31183 value
31184 );
31185 }
31186 let out =
31187 call_atomic_ptr_3arg("glUniform4iv", &self.glUniform4iv_p, location, count, value);
31188 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31189 {
31190 self.automatic_glGetError("glUniform4iv");
31191 }
31192 out
31193 }
31194 #[doc(hidden)]
31195 pub unsafe fn Uniform4iv_load_with_dyn(
31196 &self,
31197 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31198 ) -> bool {
31199 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4iv\0", &self.glUniform4iv_p)
31200 }
31201 #[inline]
31202 #[doc(hidden)]
31203 pub fn Uniform4iv_is_loaded(&self) -> bool {
31204 !self.glUniform4iv_p.load(RELAX).is_null()
31205 }
31206 /// [glUniform4ui](http://docs.gl/gl4/glUniform)(location, v0, v1, v2, v3)
31207 #[cfg_attr(feature = "inline", inline)]
31208 #[cfg_attr(feature = "inline_always", inline(always))]
31209 pub unsafe fn Uniform4ui(
31210 &self,
31211 location: GLint,
31212 v0: GLuint,
31213 v1: GLuint,
31214 v2: GLuint,
31215 v3: GLuint,
31216 ) {
31217 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31218 {
31219 trace!(
31220 "calling gl.Uniform4ui({:?}, {:?}, {:?}, {:?}, {:?});",
31221 location,
31222 v0,
31223 v1,
31224 v2,
31225 v3
31226 );
31227 }
31228 let out = call_atomic_ptr_5arg(
31229 "glUniform4ui",
31230 &self.glUniform4ui_p,
31231 location,
31232 v0,
31233 v1,
31234 v2,
31235 v3,
31236 );
31237 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31238 {
31239 self.automatic_glGetError("glUniform4ui");
31240 }
31241 out
31242 }
31243 #[doc(hidden)]
31244 pub unsafe fn Uniform4ui_load_with_dyn(
31245 &self,
31246 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31247 ) -> bool {
31248 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4ui\0", &self.glUniform4ui_p)
31249 }
31250 #[inline]
31251 #[doc(hidden)]
31252 pub fn Uniform4ui_is_loaded(&self) -> bool {
31253 !self.glUniform4ui_p.load(RELAX).is_null()
31254 }
31255 /// [glUniform4uiv](http://docs.gl/gl4/glUniform)(location, count, value)
31256 /// * `value` len: count*4
31257 #[cfg_attr(feature = "inline", inline)]
31258 #[cfg_attr(feature = "inline_always", inline(always))]
31259 pub unsafe fn Uniform4uiv(&self, location: GLint, count: GLsizei, value: *const GLuint) {
31260 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31261 {
31262 trace!(
31263 "calling gl.Uniform4uiv({:?}, {:?}, {:p});",
31264 location,
31265 count,
31266 value
31267 );
31268 }
31269 let out = call_atomic_ptr_3arg(
31270 "glUniform4uiv",
31271 &self.glUniform4uiv_p,
31272 location,
31273 count,
31274 value,
31275 );
31276 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31277 {
31278 self.automatic_glGetError("glUniform4uiv");
31279 }
31280 out
31281 }
31282 #[doc(hidden)]
31283 pub unsafe fn Uniform4uiv_load_with_dyn(
31284 &self,
31285 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31286 ) -> bool {
31287 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4uiv\0", &self.glUniform4uiv_p)
31288 }
31289 #[inline]
31290 #[doc(hidden)]
31291 pub fn Uniform4uiv_is_loaded(&self) -> bool {
31292 !self.glUniform4uiv_p.load(RELAX).is_null()
31293 }
31294 /// [glUniformBlockBinding](http://docs.gl/gl4/glUniformBlockBinding)(program, uniformBlockIndex, uniformBlockBinding)
31295 #[cfg_attr(feature = "inline", inline)]
31296 #[cfg_attr(feature = "inline_always", inline(always))]
31297 pub unsafe fn UniformBlockBinding(
31298 &self,
31299 program: GLuint,
31300 uniformBlockIndex: GLuint,
31301 uniformBlockBinding: GLuint,
31302 ) {
31303 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31304 {
31305 trace!(
31306 "calling gl.UniformBlockBinding({:?}, {:?}, {:?});",
31307 program,
31308 uniformBlockIndex,
31309 uniformBlockBinding
31310 );
31311 }
31312 let out = call_atomic_ptr_3arg(
31313 "glUniformBlockBinding",
31314 &self.glUniformBlockBinding_p,
31315 program,
31316 uniformBlockIndex,
31317 uniformBlockBinding,
31318 );
31319 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31320 {
31321 self.automatic_glGetError("glUniformBlockBinding");
31322 }
31323 out
31324 }
31325 #[doc(hidden)]
31326 pub unsafe fn UniformBlockBinding_load_with_dyn(
31327 &self,
31328 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31329 ) -> bool {
31330 load_dyn_name_atomic_ptr(
31331 get_proc_address,
31332 b"glUniformBlockBinding\0",
31333 &self.glUniformBlockBinding_p,
31334 )
31335 }
31336 #[inline]
31337 #[doc(hidden)]
31338 pub fn UniformBlockBinding_is_loaded(&self) -> bool {
31339 !self.glUniformBlockBinding_p.load(RELAX).is_null()
31340 }
31341 /// [glUniformMatrix2dv](http://docs.gl/gl4/glUniformMatrix2dv)(location, count, transpose, value)
31342 /// * `value` len: count*4
31343 #[cfg_attr(feature = "inline", inline)]
31344 #[cfg_attr(feature = "inline_always", inline(always))]
31345 pub unsafe fn UniformMatrix2dv(
31346 &self,
31347 location: GLint,
31348 count: GLsizei,
31349 transpose: GLboolean,
31350 value: *const GLdouble,
31351 ) {
31352 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31353 {
31354 trace!(
31355 "calling gl.UniformMatrix2dv({:?}, {:?}, {:?}, {:p});",
31356 location,
31357 count,
31358 transpose,
31359 value
31360 );
31361 }
31362 let out = call_atomic_ptr_4arg(
31363 "glUniformMatrix2dv",
31364 &self.glUniformMatrix2dv_p,
31365 location,
31366 count,
31367 transpose,
31368 value,
31369 );
31370 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31371 {
31372 self.automatic_glGetError("glUniformMatrix2dv");
31373 }
31374 out
31375 }
31376 #[doc(hidden)]
31377 pub unsafe fn UniformMatrix2dv_load_with_dyn(
31378 &self,
31379 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31380 ) -> bool {
31381 load_dyn_name_atomic_ptr(
31382 get_proc_address,
31383 b"glUniformMatrix2dv\0",
31384 &self.glUniformMatrix2dv_p,
31385 )
31386 }
31387 #[inline]
31388 #[doc(hidden)]
31389 pub fn UniformMatrix2dv_is_loaded(&self) -> bool {
31390 !self.glUniformMatrix2dv_p.load(RELAX).is_null()
31391 }
31392 /// [glUniformMatrix2fv](http://docs.gl/gl4/glUniform)(location, count, transpose, value)
31393 /// * `value` len: count*4
31394 #[cfg_attr(feature = "inline", inline)]
31395 #[cfg_attr(feature = "inline_always", inline(always))]
31396 pub unsafe fn UniformMatrix2fv(
31397 &self,
31398 location: GLint,
31399 count: GLsizei,
31400 transpose: GLboolean,
31401 value: *const GLfloat,
31402 ) {
31403 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31404 {
31405 trace!(
31406 "calling gl.UniformMatrix2fv({:?}, {:?}, {:?}, {:p});",
31407 location,
31408 count,
31409 transpose,
31410 value
31411 );
31412 }
31413 let out = call_atomic_ptr_4arg(
31414 "glUniformMatrix2fv",
31415 &self.glUniformMatrix2fv_p,
31416 location,
31417 count,
31418 transpose,
31419 value,
31420 );
31421 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31422 {
31423 self.automatic_glGetError("glUniformMatrix2fv");
31424 }
31425 out
31426 }
31427 #[doc(hidden)]
31428 pub unsafe fn UniformMatrix2fv_load_with_dyn(
31429 &self,
31430 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31431 ) -> bool {
31432 load_dyn_name_atomic_ptr(
31433 get_proc_address,
31434 b"glUniformMatrix2fv\0",
31435 &self.glUniformMatrix2fv_p,
31436 )
31437 }
31438 #[inline]
31439 #[doc(hidden)]
31440 pub fn UniformMatrix2fv_is_loaded(&self) -> bool {
31441 !self.glUniformMatrix2fv_p.load(RELAX).is_null()
31442 }
31443 /// [glUniformMatrix2x3dv](http://docs.gl/gl4/glUniformMatrix2x3dv)(location, count, transpose, value)
31444 /// * `value` len: count*6
31445 #[cfg_attr(feature = "inline", inline)]
31446 #[cfg_attr(feature = "inline_always", inline(always))]
31447 pub unsafe fn UniformMatrix2x3dv(
31448 &self,
31449 location: GLint,
31450 count: GLsizei,
31451 transpose: GLboolean,
31452 value: *const GLdouble,
31453 ) {
31454 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31455 {
31456 trace!(
31457 "calling gl.UniformMatrix2x3dv({:?}, {:?}, {:?}, {:p});",
31458 location,
31459 count,
31460 transpose,
31461 value
31462 );
31463 }
31464 let out = call_atomic_ptr_4arg(
31465 "glUniformMatrix2x3dv",
31466 &self.glUniformMatrix2x3dv_p,
31467 location,
31468 count,
31469 transpose,
31470 value,
31471 );
31472 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31473 {
31474 self.automatic_glGetError("glUniformMatrix2x3dv");
31475 }
31476 out
31477 }
31478 #[doc(hidden)]
31479 pub unsafe fn UniformMatrix2x3dv_load_with_dyn(
31480 &self,
31481 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31482 ) -> bool {
31483 load_dyn_name_atomic_ptr(
31484 get_proc_address,
31485 b"glUniformMatrix2x3dv\0",
31486 &self.glUniformMatrix2x3dv_p,
31487 )
31488 }
31489 #[inline]
31490 #[doc(hidden)]
31491 pub fn UniformMatrix2x3dv_is_loaded(&self) -> bool {
31492 !self.glUniformMatrix2x3dv_p.load(RELAX).is_null()
31493 }
31494 /// [glUniformMatrix2x3fv](http://docs.gl/gl4/glUniform)(location, count, transpose, value)
31495 /// * `value` len: count*6
31496 #[cfg_attr(feature = "inline", inline)]
31497 #[cfg_attr(feature = "inline_always", inline(always))]
31498 pub unsafe fn UniformMatrix2x3fv(
31499 &self,
31500 location: GLint,
31501 count: GLsizei,
31502 transpose: GLboolean,
31503 value: *const GLfloat,
31504 ) {
31505 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31506 {
31507 trace!(
31508 "calling gl.UniformMatrix2x3fv({:?}, {:?}, {:?}, {:p});",
31509 location,
31510 count,
31511 transpose,
31512 value
31513 );
31514 }
31515 let out = call_atomic_ptr_4arg(
31516 "glUniformMatrix2x3fv",
31517 &self.glUniformMatrix2x3fv_p,
31518 location,
31519 count,
31520 transpose,
31521 value,
31522 );
31523 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31524 {
31525 self.automatic_glGetError("glUniformMatrix2x3fv");
31526 }
31527 out
31528 }
31529 #[doc(hidden)]
31530 pub unsafe fn UniformMatrix2x3fv_load_with_dyn(
31531 &self,
31532 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31533 ) -> bool {
31534 load_dyn_name_atomic_ptr(
31535 get_proc_address,
31536 b"glUniformMatrix2x3fv\0",
31537 &self.glUniformMatrix2x3fv_p,
31538 )
31539 }
31540 #[inline]
31541 #[doc(hidden)]
31542 pub fn UniformMatrix2x3fv_is_loaded(&self) -> bool {
31543 !self.glUniformMatrix2x3fv_p.load(RELAX).is_null()
31544 }
31545 /// [glUniformMatrix2x4dv](http://docs.gl/gl4/glUniformMatrix2x4dv)(location, count, transpose, value)
31546 /// * `value` len: count*8
31547 #[cfg_attr(feature = "inline", inline)]
31548 #[cfg_attr(feature = "inline_always", inline(always))]
31549 pub unsafe fn UniformMatrix2x4dv(
31550 &self,
31551 location: GLint,
31552 count: GLsizei,
31553 transpose: GLboolean,
31554 value: *const GLdouble,
31555 ) {
31556 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31557 {
31558 trace!(
31559 "calling gl.UniformMatrix2x4dv({:?}, {:?}, {:?}, {:p});",
31560 location,
31561 count,
31562 transpose,
31563 value
31564 );
31565 }
31566 let out = call_atomic_ptr_4arg(
31567 "glUniformMatrix2x4dv",
31568 &self.glUniformMatrix2x4dv_p,
31569 location,
31570 count,
31571 transpose,
31572 value,
31573 );
31574 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31575 {
31576 self.automatic_glGetError("glUniformMatrix2x4dv");
31577 }
31578 out
31579 }
31580 #[doc(hidden)]
31581 pub unsafe fn UniformMatrix2x4dv_load_with_dyn(
31582 &self,
31583 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31584 ) -> bool {
31585 load_dyn_name_atomic_ptr(
31586 get_proc_address,
31587 b"glUniformMatrix2x4dv\0",
31588 &self.glUniformMatrix2x4dv_p,
31589 )
31590 }
31591 #[inline]
31592 #[doc(hidden)]
31593 pub fn UniformMatrix2x4dv_is_loaded(&self) -> bool {
31594 !self.glUniformMatrix2x4dv_p.load(RELAX).is_null()
31595 }
31596 /// [glUniformMatrix2x4fv](http://docs.gl/gl4/glUniform)(location, count, transpose, value)
31597 /// * `value` len: count*8
31598 #[cfg_attr(feature = "inline", inline)]
31599 #[cfg_attr(feature = "inline_always", inline(always))]
31600 pub unsafe fn UniformMatrix2x4fv(
31601 &self,
31602 location: GLint,
31603 count: GLsizei,
31604 transpose: GLboolean,
31605 value: *const GLfloat,
31606 ) {
31607 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31608 {
31609 trace!(
31610 "calling gl.UniformMatrix2x4fv({:?}, {:?}, {:?}, {:p});",
31611 location,
31612 count,
31613 transpose,
31614 value
31615 );
31616 }
31617 let out = call_atomic_ptr_4arg(
31618 "glUniformMatrix2x4fv",
31619 &self.glUniformMatrix2x4fv_p,
31620 location,
31621 count,
31622 transpose,
31623 value,
31624 );
31625 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31626 {
31627 self.automatic_glGetError("glUniformMatrix2x4fv");
31628 }
31629 out
31630 }
31631 #[doc(hidden)]
31632 pub unsafe fn UniformMatrix2x4fv_load_with_dyn(
31633 &self,
31634 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31635 ) -> bool {
31636 load_dyn_name_atomic_ptr(
31637 get_proc_address,
31638 b"glUniformMatrix2x4fv\0",
31639 &self.glUniformMatrix2x4fv_p,
31640 )
31641 }
31642 #[inline]
31643 #[doc(hidden)]
31644 pub fn UniformMatrix2x4fv_is_loaded(&self) -> bool {
31645 !self.glUniformMatrix2x4fv_p.load(RELAX).is_null()
31646 }
31647 /// [glUniformMatrix3dv](http://docs.gl/gl4/glUniformMatrix3dv)(location, count, transpose, value)
31648 /// * `value` len: count*9
31649 #[cfg_attr(feature = "inline", inline)]
31650 #[cfg_attr(feature = "inline_always", inline(always))]
31651 pub unsafe fn UniformMatrix3dv(
31652 &self,
31653 location: GLint,
31654 count: GLsizei,
31655 transpose: GLboolean,
31656 value: *const GLdouble,
31657 ) {
31658 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31659 {
31660 trace!(
31661 "calling gl.UniformMatrix3dv({:?}, {:?}, {:?}, {:p});",
31662 location,
31663 count,
31664 transpose,
31665 value
31666 );
31667 }
31668 let out = call_atomic_ptr_4arg(
31669 "glUniformMatrix3dv",
31670 &self.glUniformMatrix3dv_p,
31671 location,
31672 count,
31673 transpose,
31674 value,
31675 );
31676 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31677 {
31678 self.automatic_glGetError("glUniformMatrix3dv");
31679 }
31680 out
31681 }
31682 #[doc(hidden)]
31683 pub unsafe fn UniformMatrix3dv_load_with_dyn(
31684 &self,
31685 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31686 ) -> bool {
31687 load_dyn_name_atomic_ptr(
31688 get_proc_address,
31689 b"glUniformMatrix3dv\0",
31690 &self.glUniformMatrix3dv_p,
31691 )
31692 }
31693 #[inline]
31694 #[doc(hidden)]
31695 pub fn UniformMatrix3dv_is_loaded(&self) -> bool {
31696 !self.glUniformMatrix3dv_p.load(RELAX).is_null()
31697 }
31698 /// [glUniformMatrix3fv](http://docs.gl/gl4/glUniform)(location, count, transpose, value)
31699 /// * `value` len: count*9
31700 #[cfg_attr(feature = "inline", inline)]
31701 #[cfg_attr(feature = "inline_always", inline(always))]
31702 pub unsafe fn UniformMatrix3fv(
31703 &self,
31704 location: GLint,
31705 count: GLsizei,
31706 transpose: GLboolean,
31707 value: *const GLfloat,
31708 ) {
31709 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31710 {
31711 trace!(
31712 "calling gl.UniformMatrix3fv({:?}, {:?}, {:?}, {:p});",
31713 location,
31714 count,
31715 transpose,
31716 value
31717 );
31718 }
31719 let out = call_atomic_ptr_4arg(
31720 "glUniformMatrix3fv",
31721 &self.glUniformMatrix3fv_p,
31722 location,
31723 count,
31724 transpose,
31725 value,
31726 );
31727 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31728 {
31729 self.automatic_glGetError("glUniformMatrix3fv");
31730 }
31731 out
31732 }
31733 #[doc(hidden)]
31734 pub unsafe fn UniformMatrix3fv_load_with_dyn(
31735 &self,
31736 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31737 ) -> bool {
31738 load_dyn_name_atomic_ptr(
31739 get_proc_address,
31740 b"glUniformMatrix3fv\0",
31741 &self.glUniformMatrix3fv_p,
31742 )
31743 }
31744 #[inline]
31745 #[doc(hidden)]
31746 pub fn UniformMatrix3fv_is_loaded(&self) -> bool {
31747 !self.glUniformMatrix3fv_p.load(RELAX).is_null()
31748 }
31749 /// [glUniformMatrix3x2dv](http://docs.gl/gl4/glUniformMatrix3x2dv)(location, count, transpose, value)
31750 /// * `value` len: count*6
31751 #[cfg_attr(feature = "inline", inline)]
31752 #[cfg_attr(feature = "inline_always", inline(always))]
31753 pub unsafe fn UniformMatrix3x2dv(
31754 &self,
31755 location: GLint,
31756 count: GLsizei,
31757 transpose: GLboolean,
31758 value: *const GLdouble,
31759 ) {
31760 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31761 {
31762 trace!(
31763 "calling gl.UniformMatrix3x2dv({:?}, {:?}, {:?}, {:p});",
31764 location,
31765 count,
31766 transpose,
31767 value
31768 );
31769 }
31770 let out = call_atomic_ptr_4arg(
31771 "glUniformMatrix3x2dv",
31772 &self.glUniformMatrix3x2dv_p,
31773 location,
31774 count,
31775 transpose,
31776 value,
31777 );
31778 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31779 {
31780 self.automatic_glGetError("glUniformMatrix3x2dv");
31781 }
31782 out
31783 }
31784 #[doc(hidden)]
31785 pub unsafe fn UniformMatrix3x2dv_load_with_dyn(
31786 &self,
31787 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31788 ) -> bool {
31789 load_dyn_name_atomic_ptr(
31790 get_proc_address,
31791 b"glUniformMatrix3x2dv\0",
31792 &self.glUniformMatrix3x2dv_p,
31793 )
31794 }
31795 #[inline]
31796 #[doc(hidden)]
31797 pub fn UniformMatrix3x2dv_is_loaded(&self) -> bool {
31798 !self.glUniformMatrix3x2dv_p.load(RELAX).is_null()
31799 }
31800 /// [glUniformMatrix3x2fv](http://docs.gl/gl4/glUniform)(location, count, transpose, value)
31801 /// * `value` len: count*6
31802 #[cfg_attr(feature = "inline", inline)]
31803 #[cfg_attr(feature = "inline_always", inline(always))]
31804 pub unsafe fn UniformMatrix3x2fv(
31805 &self,
31806 location: GLint,
31807 count: GLsizei,
31808 transpose: GLboolean,
31809 value: *const GLfloat,
31810 ) {
31811 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31812 {
31813 trace!(
31814 "calling gl.UniformMatrix3x2fv({:?}, {:?}, {:?}, {:p});",
31815 location,
31816 count,
31817 transpose,
31818 value
31819 );
31820 }
31821 let out = call_atomic_ptr_4arg(
31822 "glUniformMatrix3x2fv",
31823 &self.glUniformMatrix3x2fv_p,
31824 location,
31825 count,
31826 transpose,
31827 value,
31828 );
31829 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31830 {
31831 self.automatic_glGetError("glUniformMatrix3x2fv");
31832 }
31833 out
31834 }
31835 #[doc(hidden)]
31836 pub unsafe fn UniformMatrix3x2fv_load_with_dyn(
31837 &self,
31838 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31839 ) -> bool {
31840 load_dyn_name_atomic_ptr(
31841 get_proc_address,
31842 b"glUniformMatrix3x2fv\0",
31843 &self.glUniformMatrix3x2fv_p,
31844 )
31845 }
31846 #[inline]
31847 #[doc(hidden)]
31848 pub fn UniformMatrix3x2fv_is_loaded(&self) -> bool {
31849 !self.glUniformMatrix3x2fv_p.load(RELAX).is_null()
31850 }
31851 /// [glUniformMatrix3x4dv](http://docs.gl/gl4/glUniformMatrix3x4dv)(location, count, transpose, value)
31852 /// * `value` len: count*12
31853 #[cfg_attr(feature = "inline", inline)]
31854 #[cfg_attr(feature = "inline_always", inline(always))]
31855 pub unsafe fn UniformMatrix3x4dv(
31856 &self,
31857 location: GLint,
31858 count: GLsizei,
31859 transpose: GLboolean,
31860 value: *const GLdouble,
31861 ) {
31862 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31863 {
31864 trace!(
31865 "calling gl.UniformMatrix3x4dv({:?}, {:?}, {:?}, {:p});",
31866 location,
31867 count,
31868 transpose,
31869 value
31870 );
31871 }
31872 let out = call_atomic_ptr_4arg(
31873 "glUniformMatrix3x4dv",
31874 &self.glUniformMatrix3x4dv_p,
31875 location,
31876 count,
31877 transpose,
31878 value,
31879 );
31880 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31881 {
31882 self.automatic_glGetError("glUniformMatrix3x4dv");
31883 }
31884 out
31885 }
31886 #[doc(hidden)]
31887 pub unsafe fn UniformMatrix3x4dv_load_with_dyn(
31888 &self,
31889 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31890 ) -> bool {
31891 load_dyn_name_atomic_ptr(
31892 get_proc_address,
31893 b"glUniformMatrix3x4dv\0",
31894 &self.glUniformMatrix3x4dv_p,
31895 )
31896 }
31897 #[inline]
31898 #[doc(hidden)]
31899 pub fn UniformMatrix3x4dv_is_loaded(&self) -> bool {
31900 !self.glUniformMatrix3x4dv_p.load(RELAX).is_null()
31901 }
31902 /// [glUniformMatrix3x4fv](http://docs.gl/gl4/glUniform)(location, count, transpose, value)
31903 /// * `value` len: count*12
31904 #[cfg_attr(feature = "inline", inline)]
31905 #[cfg_attr(feature = "inline_always", inline(always))]
31906 pub unsafe fn UniformMatrix3x4fv(
31907 &self,
31908 location: GLint,
31909 count: GLsizei,
31910 transpose: GLboolean,
31911 value: *const GLfloat,
31912 ) {
31913 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31914 {
31915 trace!(
31916 "calling gl.UniformMatrix3x4fv({:?}, {:?}, {:?}, {:p});",
31917 location,
31918 count,
31919 transpose,
31920 value
31921 );
31922 }
31923 let out = call_atomic_ptr_4arg(
31924 "glUniformMatrix3x4fv",
31925 &self.glUniformMatrix3x4fv_p,
31926 location,
31927 count,
31928 transpose,
31929 value,
31930 );
31931 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31932 {
31933 self.automatic_glGetError("glUniformMatrix3x4fv");
31934 }
31935 out
31936 }
31937 #[doc(hidden)]
31938 pub unsafe fn UniformMatrix3x4fv_load_with_dyn(
31939 &self,
31940 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31941 ) -> bool {
31942 load_dyn_name_atomic_ptr(
31943 get_proc_address,
31944 b"glUniformMatrix3x4fv\0",
31945 &self.glUniformMatrix3x4fv_p,
31946 )
31947 }
31948 #[inline]
31949 #[doc(hidden)]
31950 pub fn UniformMatrix3x4fv_is_loaded(&self) -> bool {
31951 !self.glUniformMatrix3x4fv_p.load(RELAX).is_null()
31952 }
31953 /// [glUniformMatrix4dv](http://docs.gl/gl4/glUniformMatrix4dv)(location, count, transpose, value)
31954 /// * `value` len: count*16
31955 #[cfg_attr(feature = "inline", inline)]
31956 #[cfg_attr(feature = "inline_always", inline(always))]
31957 pub unsafe fn UniformMatrix4dv(
31958 &self,
31959 location: GLint,
31960 count: GLsizei,
31961 transpose: GLboolean,
31962 value: *const GLdouble,
31963 ) {
31964 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31965 {
31966 trace!(
31967 "calling gl.UniformMatrix4dv({:?}, {:?}, {:?}, {:p});",
31968 location,
31969 count,
31970 transpose,
31971 value
31972 );
31973 }
31974 let out = call_atomic_ptr_4arg(
31975 "glUniformMatrix4dv",
31976 &self.glUniformMatrix4dv_p,
31977 location,
31978 count,
31979 transpose,
31980 value,
31981 );
31982 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31983 {
31984 self.automatic_glGetError("glUniformMatrix4dv");
31985 }
31986 out
31987 }
31988 #[doc(hidden)]
31989 pub unsafe fn UniformMatrix4dv_load_with_dyn(
31990 &self,
31991 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31992 ) -> bool {
31993 load_dyn_name_atomic_ptr(
31994 get_proc_address,
31995 b"glUniformMatrix4dv\0",
31996 &self.glUniformMatrix4dv_p,
31997 )
31998 }
31999 #[inline]
32000 #[doc(hidden)]
32001 pub fn UniformMatrix4dv_is_loaded(&self) -> bool {
32002 !self.glUniformMatrix4dv_p.load(RELAX).is_null()
32003 }
32004 /// [glUniformMatrix4fv](http://docs.gl/gl4/glUniform)(location, count, transpose, value)
32005 /// * `value` len: count*16
32006 #[cfg_attr(feature = "inline", inline)]
32007 #[cfg_attr(feature = "inline_always", inline(always))]
32008 pub unsafe fn UniformMatrix4fv(
32009 &self,
32010 location: GLint,
32011 count: GLsizei,
32012 transpose: GLboolean,
32013 value: *const GLfloat,
32014 ) {
32015 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32016 {
32017 trace!(
32018 "calling gl.UniformMatrix4fv({:?}, {:?}, {:?}, {:p});",
32019 location,
32020 count,
32021 transpose,
32022 value
32023 );
32024 }
32025 let out = call_atomic_ptr_4arg(
32026 "glUniformMatrix4fv",
32027 &self.glUniformMatrix4fv_p,
32028 location,
32029 count,
32030 transpose,
32031 value,
32032 );
32033 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32034 {
32035 self.automatic_glGetError("glUniformMatrix4fv");
32036 }
32037 out
32038 }
32039 #[doc(hidden)]
32040 pub unsafe fn UniformMatrix4fv_load_with_dyn(
32041 &self,
32042 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32043 ) -> bool {
32044 load_dyn_name_atomic_ptr(
32045 get_proc_address,
32046 b"glUniformMatrix4fv\0",
32047 &self.glUniformMatrix4fv_p,
32048 )
32049 }
32050 #[inline]
32051 #[doc(hidden)]
32052 pub fn UniformMatrix4fv_is_loaded(&self) -> bool {
32053 !self.glUniformMatrix4fv_p.load(RELAX).is_null()
32054 }
32055 /// [glUniformMatrix4x2dv](http://docs.gl/gl4/glUniformMatrix4x2dv)(location, count, transpose, value)
32056 /// * `value` len: count*8
32057 #[cfg_attr(feature = "inline", inline)]
32058 #[cfg_attr(feature = "inline_always", inline(always))]
32059 pub unsafe fn UniformMatrix4x2dv(
32060 &self,
32061 location: GLint,
32062 count: GLsizei,
32063 transpose: GLboolean,
32064 value: *const GLdouble,
32065 ) {
32066 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32067 {
32068 trace!(
32069 "calling gl.UniformMatrix4x2dv({:?}, {:?}, {:?}, {:p});",
32070 location,
32071 count,
32072 transpose,
32073 value
32074 );
32075 }
32076 let out = call_atomic_ptr_4arg(
32077 "glUniformMatrix4x2dv",
32078 &self.glUniformMatrix4x2dv_p,
32079 location,
32080 count,
32081 transpose,
32082 value,
32083 );
32084 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32085 {
32086 self.automatic_glGetError("glUniformMatrix4x2dv");
32087 }
32088 out
32089 }
32090 #[doc(hidden)]
32091 pub unsafe fn UniformMatrix4x2dv_load_with_dyn(
32092 &self,
32093 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32094 ) -> bool {
32095 load_dyn_name_atomic_ptr(
32096 get_proc_address,
32097 b"glUniformMatrix4x2dv\0",
32098 &self.glUniformMatrix4x2dv_p,
32099 )
32100 }
32101 #[inline]
32102 #[doc(hidden)]
32103 pub fn UniformMatrix4x2dv_is_loaded(&self) -> bool {
32104 !self.glUniformMatrix4x2dv_p.load(RELAX).is_null()
32105 }
32106 /// [glUniformMatrix4x2fv](http://docs.gl/gl4/glUniform)(location, count, transpose, value)
32107 /// * `value` len: count*8
32108 #[cfg_attr(feature = "inline", inline)]
32109 #[cfg_attr(feature = "inline_always", inline(always))]
32110 pub unsafe fn UniformMatrix4x2fv(
32111 &self,
32112 location: GLint,
32113 count: GLsizei,
32114 transpose: GLboolean,
32115 value: *const GLfloat,
32116 ) {
32117 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32118 {
32119 trace!(
32120 "calling gl.UniformMatrix4x2fv({:?}, {:?}, {:?}, {:p});",
32121 location,
32122 count,
32123 transpose,
32124 value
32125 );
32126 }
32127 let out = call_atomic_ptr_4arg(
32128 "glUniformMatrix4x2fv",
32129 &self.glUniformMatrix4x2fv_p,
32130 location,
32131 count,
32132 transpose,
32133 value,
32134 );
32135 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32136 {
32137 self.automatic_glGetError("glUniformMatrix4x2fv");
32138 }
32139 out
32140 }
32141 #[doc(hidden)]
32142 pub unsafe fn UniformMatrix4x2fv_load_with_dyn(
32143 &self,
32144 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32145 ) -> bool {
32146 load_dyn_name_atomic_ptr(
32147 get_proc_address,
32148 b"glUniformMatrix4x2fv\0",
32149 &self.glUniformMatrix4x2fv_p,
32150 )
32151 }
32152 #[inline]
32153 #[doc(hidden)]
32154 pub fn UniformMatrix4x2fv_is_loaded(&self) -> bool {
32155 !self.glUniformMatrix4x2fv_p.load(RELAX).is_null()
32156 }
32157 /// [glUniformMatrix4x3dv](http://docs.gl/gl4/glUniformMatrix4x3dv)(location, count, transpose, value)
32158 /// * `value` len: count*12
32159 #[cfg_attr(feature = "inline", inline)]
32160 #[cfg_attr(feature = "inline_always", inline(always))]
32161 pub unsafe fn UniformMatrix4x3dv(
32162 &self,
32163 location: GLint,
32164 count: GLsizei,
32165 transpose: GLboolean,
32166 value: *const GLdouble,
32167 ) {
32168 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32169 {
32170 trace!(
32171 "calling gl.UniformMatrix4x3dv({:?}, {:?}, {:?}, {:p});",
32172 location,
32173 count,
32174 transpose,
32175 value
32176 );
32177 }
32178 let out = call_atomic_ptr_4arg(
32179 "glUniformMatrix4x3dv",
32180 &self.glUniformMatrix4x3dv_p,
32181 location,
32182 count,
32183 transpose,
32184 value,
32185 );
32186 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32187 {
32188 self.automatic_glGetError("glUniformMatrix4x3dv");
32189 }
32190 out
32191 }
32192 #[doc(hidden)]
32193 pub unsafe fn UniformMatrix4x3dv_load_with_dyn(
32194 &self,
32195 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32196 ) -> bool {
32197 load_dyn_name_atomic_ptr(
32198 get_proc_address,
32199 b"glUniformMatrix4x3dv\0",
32200 &self.glUniformMatrix4x3dv_p,
32201 )
32202 }
32203 #[inline]
32204 #[doc(hidden)]
32205 pub fn UniformMatrix4x3dv_is_loaded(&self) -> bool {
32206 !self.glUniformMatrix4x3dv_p.load(RELAX).is_null()
32207 }
32208 /// [glUniformMatrix4x3fv](http://docs.gl/gl4/glUniform)(location, count, transpose, value)
32209 /// * `value` len: count*12
32210 #[cfg_attr(feature = "inline", inline)]
32211 #[cfg_attr(feature = "inline_always", inline(always))]
32212 pub unsafe fn UniformMatrix4x3fv(
32213 &self,
32214 location: GLint,
32215 count: GLsizei,
32216 transpose: GLboolean,
32217 value: *const GLfloat,
32218 ) {
32219 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32220 {
32221 trace!(
32222 "calling gl.UniformMatrix4x3fv({:?}, {:?}, {:?}, {:p});",
32223 location,
32224 count,
32225 transpose,
32226 value
32227 );
32228 }
32229 let out = call_atomic_ptr_4arg(
32230 "glUniformMatrix4x3fv",
32231 &self.glUniformMatrix4x3fv_p,
32232 location,
32233 count,
32234 transpose,
32235 value,
32236 );
32237 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32238 {
32239 self.automatic_glGetError("glUniformMatrix4x3fv");
32240 }
32241 out
32242 }
32243 #[doc(hidden)]
32244 pub unsafe fn UniformMatrix4x3fv_load_with_dyn(
32245 &self,
32246 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32247 ) -> bool {
32248 load_dyn_name_atomic_ptr(
32249 get_proc_address,
32250 b"glUniformMatrix4x3fv\0",
32251 &self.glUniformMatrix4x3fv_p,
32252 )
32253 }
32254 #[inline]
32255 #[doc(hidden)]
32256 pub fn UniformMatrix4x3fv_is_loaded(&self) -> bool {
32257 !self.glUniformMatrix4x3fv_p.load(RELAX).is_null()
32258 }
32259 /// [glUniformSubroutinesuiv](http://docs.gl/gl4/glUniformSubroutines)(shadertype, count, indices)
32260 /// * `shadertype` group: ShaderType
32261 /// * `indices` len: count
32262 #[cfg_attr(feature = "inline", inline)]
32263 #[cfg_attr(feature = "inline_always", inline(always))]
32264 pub unsafe fn UniformSubroutinesuiv(
32265 &self,
32266 shadertype: GLenum,
32267 count: GLsizei,
32268 indices: *const GLuint,
32269 ) {
32270 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32271 {
32272 trace!(
32273 "calling gl.UniformSubroutinesuiv({:#X}, {:?}, {:p});",
32274 shadertype,
32275 count,
32276 indices
32277 );
32278 }
32279 let out = call_atomic_ptr_3arg(
32280 "glUniformSubroutinesuiv",
32281 &self.glUniformSubroutinesuiv_p,
32282 shadertype,
32283 count,
32284 indices,
32285 );
32286 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32287 {
32288 self.automatic_glGetError("glUniformSubroutinesuiv");
32289 }
32290 out
32291 }
32292 #[doc(hidden)]
32293 pub unsafe fn UniformSubroutinesuiv_load_with_dyn(
32294 &self,
32295 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32296 ) -> bool {
32297 load_dyn_name_atomic_ptr(
32298 get_proc_address,
32299 b"glUniformSubroutinesuiv\0",
32300 &self.glUniformSubroutinesuiv_p,
32301 )
32302 }
32303 #[inline]
32304 #[doc(hidden)]
32305 pub fn UniformSubroutinesuiv_is_loaded(&self) -> bool {
32306 !self.glUniformSubroutinesuiv_p.load(RELAX).is_null()
32307 }
32308 /// [glUnmapBuffer](http://docs.gl/gl4/glUnmapBuffer)(target)
32309 /// * `target` group: BufferTargetARB
32310 #[cfg_attr(feature = "inline", inline)]
32311 #[cfg_attr(feature = "inline_always", inline(always))]
32312 pub unsafe fn UnmapBuffer(&self, target: GLenum) -> GLboolean {
32313 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32314 {
32315 trace!("calling gl.UnmapBuffer({:#X});", target);
32316 }
32317 let out = call_atomic_ptr_1arg("glUnmapBuffer", &self.glUnmapBuffer_p, target);
32318 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32319 {
32320 self.automatic_glGetError("glUnmapBuffer");
32321 }
32322 out
32323 }
32324 #[doc(hidden)]
32325 pub unsafe fn UnmapBuffer_load_with_dyn(
32326 &self,
32327 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32328 ) -> bool {
32329 load_dyn_name_atomic_ptr(get_proc_address, b"glUnmapBuffer\0", &self.glUnmapBuffer_p)
32330 }
32331 #[inline]
32332 #[doc(hidden)]
32333 pub fn UnmapBuffer_is_loaded(&self) -> bool {
32334 !self.glUnmapBuffer_p.load(RELAX).is_null()
32335 }
32336 /// [glUnmapNamedBuffer](http://docs.gl/gl4/glUnmapNamedBuffer)(buffer)
32337 #[cfg_attr(feature = "inline", inline)]
32338 #[cfg_attr(feature = "inline_always", inline(always))]
32339 pub unsafe fn UnmapNamedBuffer(&self, buffer: GLuint) -> GLboolean {
32340 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32341 {
32342 trace!("calling gl.UnmapNamedBuffer({:?});", buffer);
32343 }
32344 let out =
32345 call_atomic_ptr_1arg("glUnmapNamedBuffer", &self.glUnmapNamedBuffer_p, buffer);
32346 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32347 {
32348 self.automatic_glGetError("glUnmapNamedBuffer");
32349 }
32350 out
32351 }
32352 #[doc(hidden)]
32353 pub unsafe fn UnmapNamedBuffer_load_with_dyn(
32354 &self,
32355 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32356 ) -> bool {
32357 load_dyn_name_atomic_ptr(
32358 get_proc_address,
32359 b"glUnmapNamedBuffer\0",
32360 &self.glUnmapNamedBuffer_p,
32361 )
32362 }
32363 #[inline]
32364 #[doc(hidden)]
32365 pub fn UnmapNamedBuffer_is_loaded(&self) -> bool {
32366 !self.glUnmapNamedBuffer_p.load(RELAX).is_null()
32367 }
32368 /// [glUseProgram](http://docs.gl/gl4/glUseProgram)(program)
32369 #[cfg_attr(feature = "inline", inline)]
32370 #[cfg_attr(feature = "inline_always", inline(always))]
32371 pub unsafe fn UseProgram(&self, program: GLuint) {
32372 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32373 {
32374 trace!("calling gl.UseProgram({:?});", program);
32375 }
32376 let out = call_atomic_ptr_1arg("glUseProgram", &self.glUseProgram_p, program);
32377 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32378 {
32379 self.automatic_glGetError("glUseProgram");
32380 }
32381 out
32382 }
32383 #[doc(hidden)]
32384 pub unsafe fn UseProgram_load_with_dyn(
32385 &self,
32386 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32387 ) -> bool {
32388 load_dyn_name_atomic_ptr(get_proc_address, b"glUseProgram\0", &self.glUseProgram_p)
32389 }
32390 #[inline]
32391 #[doc(hidden)]
32392 pub fn UseProgram_is_loaded(&self) -> bool {
32393 !self.glUseProgram_p.load(RELAX).is_null()
32394 }
32395 /// [glUseProgramStages](http://docs.gl/gl4/glUseProgramStages)(pipeline, stages, program)
32396 /// * `stages` group: UseProgramStageMask
32397 #[cfg_attr(feature = "inline", inline)]
32398 #[cfg_attr(feature = "inline_always", inline(always))]
32399 pub unsafe fn UseProgramStages(
32400 &self,
32401 pipeline: GLuint,
32402 stages: GLbitfield,
32403 program: GLuint,
32404 ) {
32405 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32406 {
32407 trace!(
32408 "calling gl.UseProgramStages({:?}, {:?}, {:?});",
32409 pipeline,
32410 stages,
32411 program
32412 );
32413 }
32414 let out = call_atomic_ptr_3arg(
32415 "glUseProgramStages",
32416 &self.glUseProgramStages_p,
32417 pipeline,
32418 stages,
32419 program,
32420 );
32421 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32422 {
32423 self.automatic_glGetError("glUseProgramStages");
32424 }
32425 out
32426 }
32427 #[doc(hidden)]
32428 pub unsafe fn UseProgramStages_load_with_dyn(
32429 &self,
32430 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32431 ) -> bool {
32432 load_dyn_name_atomic_ptr(
32433 get_proc_address,
32434 b"glUseProgramStages\0",
32435 &self.glUseProgramStages_p,
32436 )
32437 }
32438 #[inline]
32439 #[doc(hidden)]
32440 pub fn UseProgramStages_is_loaded(&self) -> bool {
32441 !self.glUseProgramStages_p.load(RELAX).is_null()
32442 }
32443 /// [glValidateProgram](http://docs.gl/gl4/glValidateProgram)(program)
32444 #[cfg_attr(feature = "inline", inline)]
32445 #[cfg_attr(feature = "inline_always", inline(always))]
32446 pub unsafe fn ValidateProgram(&self, program: GLuint) {
32447 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32448 {
32449 trace!("calling gl.ValidateProgram({:?});", program);
32450 }
32451 let out = call_atomic_ptr_1arg("glValidateProgram", &self.glValidateProgram_p, program);
32452 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32453 {
32454 self.automatic_glGetError("glValidateProgram");
32455 }
32456 out
32457 }
32458 #[doc(hidden)]
32459 pub unsafe fn ValidateProgram_load_with_dyn(
32460 &self,
32461 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32462 ) -> bool {
32463 load_dyn_name_atomic_ptr(
32464 get_proc_address,
32465 b"glValidateProgram\0",
32466 &self.glValidateProgram_p,
32467 )
32468 }
32469 #[inline]
32470 #[doc(hidden)]
32471 pub fn ValidateProgram_is_loaded(&self) -> bool {
32472 !self.glValidateProgram_p.load(RELAX).is_null()
32473 }
32474 /// [glValidateProgramPipeline](http://docs.gl/gl4/glValidateProgramPipeline)(pipeline)
32475 #[cfg_attr(feature = "inline", inline)]
32476 #[cfg_attr(feature = "inline_always", inline(always))]
32477 pub unsafe fn ValidateProgramPipeline(&self, pipeline: GLuint) {
32478 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32479 {
32480 trace!("calling gl.ValidateProgramPipeline({:?});", pipeline);
32481 }
32482 let out = call_atomic_ptr_1arg(
32483 "glValidateProgramPipeline",
32484 &self.glValidateProgramPipeline_p,
32485 pipeline,
32486 );
32487 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32488 {
32489 self.automatic_glGetError("glValidateProgramPipeline");
32490 }
32491 out
32492 }
32493 #[doc(hidden)]
32494 pub unsafe fn ValidateProgramPipeline_load_with_dyn(
32495 &self,
32496 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32497 ) -> bool {
32498 load_dyn_name_atomic_ptr(
32499 get_proc_address,
32500 b"glValidateProgramPipeline\0",
32501 &self.glValidateProgramPipeline_p,
32502 )
32503 }
32504 #[inline]
32505 #[doc(hidden)]
32506 pub fn ValidateProgramPipeline_is_loaded(&self) -> bool {
32507 !self.glValidateProgramPipeline_p.load(RELAX).is_null()
32508 }
32509 /// [glVertexArrayAttribBinding](http://docs.gl/gl4/glVertexArrayAttribBinding)(vaobj, attribindex, bindingindex)
32510 #[cfg_attr(feature = "inline", inline)]
32511 #[cfg_attr(feature = "inline_always", inline(always))]
32512 pub unsafe fn VertexArrayAttribBinding(
32513 &self,
32514 vaobj: GLuint,
32515 attribindex: GLuint,
32516 bindingindex: GLuint,
32517 ) {
32518 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32519 {
32520 trace!(
32521 "calling gl.VertexArrayAttribBinding({:?}, {:?}, {:?});",
32522 vaobj,
32523 attribindex,
32524 bindingindex
32525 );
32526 }
32527 let out = call_atomic_ptr_3arg(
32528 "glVertexArrayAttribBinding",
32529 &self.glVertexArrayAttribBinding_p,
32530 vaobj,
32531 attribindex,
32532 bindingindex,
32533 );
32534 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32535 {
32536 self.automatic_glGetError("glVertexArrayAttribBinding");
32537 }
32538 out
32539 }
32540 #[doc(hidden)]
32541 pub unsafe fn VertexArrayAttribBinding_load_with_dyn(
32542 &self,
32543 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32544 ) -> bool {
32545 load_dyn_name_atomic_ptr(
32546 get_proc_address,
32547 b"glVertexArrayAttribBinding\0",
32548 &self.glVertexArrayAttribBinding_p,
32549 )
32550 }
32551 #[inline]
32552 #[doc(hidden)]
32553 pub fn VertexArrayAttribBinding_is_loaded(&self) -> bool {
32554 !self.glVertexArrayAttribBinding_p.load(RELAX).is_null()
32555 }
32556 /// [glVertexArrayAttribFormat](http://docs.gl/gl4/glVertexArrayAttribFormat)(vaobj, attribindex, size, type_, normalized, relativeoffset)
32557 /// * `type_` group: VertexAttribType
32558 #[cfg_attr(feature = "inline", inline)]
32559 #[cfg_attr(feature = "inline_always", inline(always))]
32560 pub unsafe fn VertexArrayAttribFormat(
32561 &self,
32562 vaobj: GLuint,
32563 attribindex: GLuint,
32564 size: GLint,
32565 type_: GLenum,
32566 normalized: GLboolean,
32567 relativeoffset: GLuint,
32568 ) {
32569 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32570 {
32571 trace!(
32572 "calling gl.VertexArrayAttribFormat({:?}, {:?}, {:?}, {:#X}, {:?}, {:?});",
32573 vaobj,
32574 attribindex,
32575 size,
32576 type_,
32577 normalized,
32578 relativeoffset
32579 );
32580 }
32581 let out = call_atomic_ptr_6arg(
32582 "glVertexArrayAttribFormat",
32583 &self.glVertexArrayAttribFormat_p,
32584 vaobj,
32585 attribindex,
32586 size,
32587 type_,
32588 normalized,
32589 relativeoffset,
32590 );
32591 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32592 {
32593 self.automatic_glGetError("glVertexArrayAttribFormat");
32594 }
32595 out
32596 }
32597 #[doc(hidden)]
32598 pub unsafe fn VertexArrayAttribFormat_load_with_dyn(
32599 &self,
32600 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32601 ) -> bool {
32602 load_dyn_name_atomic_ptr(
32603 get_proc_address,
32604 b"glVertexArrayAttribFormat\0",
32605 &self.glVertexArrayAttribFormat_p,
32606 )
32607 }
32608 #[inline]
32609 #[doc(hidden)]
32610 pub fn VertexArrayAttribFormat_is_loaded(&self) -> bool {
32611 !self.glVertexArrayAttribFormat_p.load(RELAX).is_null()
32612 }
32613 /// [glVertexArrayAttribIFormat](http://docs.gl/gl4/glVertexArrayAttribIFormat)(vaobj, attribindex, size, type_, relativeoffset)
32614 /// * `type_` group: VertexAttribIType
32615 #[cfg_attr(feature = "inline", inline)]
32616 #[cfg_attr(feature = "inline_always", inline(always))]
32617 pub unsafe fn VertexArrayAttribIFormat(
32618 &self,
32619 vaobj: GLuint,
32620 attribindex: GLuint,
32621 size: GLint,
32622 type_: GLenum,
32623 relativeoffset: GLuint,
32624 ) {
32625 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32626 {
32627 trace!(
32628 "calling gl.VertexArrayAttribIFormat({:?}, {:?}, {:?}, {:#X}, {:?});",
32629 vaobj,
32630 attribindex,
32631 size,
32632 type_,
32633 relativeoffset
32634 );
32635 }
32636 let out = call_atomic_ptr_5arg(
32637 "glVertexArrayAttribIFormat",
32638 &self.glVertexArrayAttribIFormat_p,
32639 vaobj,
32640 attribindex,
32641 size,
32642 type_,
32643 relativeoffset,
32644 );
32645 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32646 {
32647 self.automatic_glGetError("glVertexArrayAttribIFormat");
32648 }
32649 out
32650 }
32651 #[doc(hidden)]
32652 pub unsafe fn VertexArrayAttribIFormat_load_with_dyn(
32653 &self,
32654 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32655 ) -> bool {
32656 load_dyn_name_atomic_ptr(
32657 get_proc_address,
32658 b"glVertexArrayAttribIFormat\0",
32659 &self.glVertexArrayAttribIFormat_p,
32660 )
32661 }
32662 #[inline]
32663 #[doc(hidden)]
32664 pub fn VertexArrayAttribIFormat_is_loaded(&self) -> bool {
32665 !self.glVertexArrayAttribIFormat_p.load(RELAX).is_null()
32666 }
32667 /// [glVertexArrayAttribLFormat](http://docs.gl/gl4/glVertexArrayAttribLFormat)(vaobj, attribindex, size, type_, relativeoffset)
32668 /// * `type_` group: VertexAttribLType
32669 #[cfg_attr(feature = "inline", inline)]
32670 #[cfg_attr(feature = "inline_always", inline(always))]
32671 pub unsafe fn VertexArrayAttribLFormat(
32672 &self,
32673 vaobj: GLuint,
32674 attribindex: GLuint,
32675 size: GLint,
32676 type_: GLenum,
32677 relativeoffset: GLuint,
32678 ) {
32679 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32680 {
32681 trace!(
32682 "calling gl.VertexArrayAttribLFormat({:?}, {:?}, {:?}, {:#X}, {:?});",
32683 vaobj,
32684 attribindex,
32685 size,
32686 type_,
32687 relativeoffset
32688 );
32689 }
32690 let out = call_atomic_ptr_5arg(
32691 "glVertexArrayAttribLFormat",
32692 &self.glVertexArrayAttribLFormat_p,
32693 vaobj,
32694 attribindex,
32695 size,
32696 type_,
32697 relativeoffset,
32698 );
32699 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32700 {
32701 self.automatic_glGetError("glVertexArrayAttribLFormat");
32702 }
32703 out
32704 }
32705 #[doc(hidden)]
32706 pub unsafe fn VertexArrayAttribLFormat_load_with_dyn(
32707 &self,
32708 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32709 ) -> bool {
32710 load_dyn_name_atomic_ptr(
32711 get_proc_address,
32712 b"glVertexArrayAttribLFormat\0",
32713 &self.glVertexArrayAttribLFormat_p,
32714 )
32715 }
32716 #[inline]
32717 #[doc(hidden)]
32718 pub fn VertexArrayAttribLFormat_is_loaded(&self) -> bool {
32719 !self.glVertexArrayAttribLFormat_p.load(RELAX).is_null()
32720 }
32721 /// [glVertexArrayBindingDivisor](http://docs.gl/gl4/glVertexArrayBindingDivisor)(vaobj, bindingindex, divisor)
32722 #[cfg_attr(feature = "inline", inline)]
32723 #[cfg_attr(feature = "inline_always", inline(always))]
32724 pub unsafe fn VertexArrayBindingDivisor(
32725 &self,
32726 vaobj: GLuint,
32727 bindingindex: GLuint,
32728 divisor: GLuint,
32729 ) {
32730 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32731 {
32732 trace!(
32733 "calling gl.VertexArrayBindingDivisor({:?}, {:?}, {:?});",
32734 vaobj,
32735 bindingindex,
32736 divisor
32737 );
32738 }
32739 let out = call_atomic_ptr_3arg(
32740 "glVertexArrayBindingDivisor",
32741 &self.glVertexArrayBindingDivisor_p,
32742 vaobj,
32743 bindingindex,
32744 divisor,
32745 );
32746 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32747 {
32748 self.automatic_glGetError("glVertexArrayBindingDivisor");
32749 }
32750 out
32751 }
32752 #[doc(hidden)]
32753 pub unsafe fn VertexArrayBindingDivisor_load_with_dyn(
32754 &self,
32755 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32756 ) -> bool {
32757 load_dyn_name_atomic_ptr(
32758 get_proc_address,
32759 b"glVertexArrayBindingDivisor\0",
32760 &self.glVertexArrayBindingDivisor_p,
32761 )
32762 }
32763 #[inline]
32764 #[doc(hidden)]
32765 pub fn VertexArrayBindingDivisor_is_loaded(&self) -> bool {
32766 !self.glVertexArrayBindingDivisor_p.load(RELAX).is_null()
32767 }
32768 /// [glVertexArrayElementBuffer](http://docs.gl/gl4/glVertexArrayElementBuffer)(vaobj, buffer)
32769 #[cfg_attr(feature = "inline", inline)]
32770 #[cfg_attr(feature = "inline_always", inline(always))]
32771 pub unsafe fn VertexArrayElementBuffer(&self, vaobj: GLuint, buffer: GLuint) {
32772 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32773 {
32774 trace!(
32775 "calling gl.VertexArrayElementBuffer({:?}, {:?});",
32776 vaobj,
32777 buffer
32778 );
32779 }
32780 let out = call_atomic_ptr_2arg(
32781 "glVertexArrayElementBuffer",
32782 &self.glVertexArrayElementBuffer_p,
32783 vaobj,
32784 buffer,
32785 );
32786 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32787 {
32788 self.automatic_glGetError("glVertexArrayElementBuffer");
32789 }
32790 out
32791 }
32792 #[doc(hidden)]
32793 pub unsafe fn VertexArrayElementBuffer_load_with_dyn(
32794 &self,
32795 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32796 ) -> bool {
32797 load_dyn_name_atomic_ptr(
32798 get_proc_address,
32799 b"glVertexArrayElementBuffer\0",
32800 &self.glVertexArrayElementBuffer_p,
32801 )
32802 }
32803 #[inline]
32804 #[doc(hidden)]
32805 pub fn VertexArrayElementBuffer_is_loaded(&self) -> bool {
32806 !self.glVertexArrayElementBuffer_p.load(RELAX).is_null()
32807 }
32808 /// [glVertexArrayVertexBuffer](http://docs.gl/gl4/glVertexArrayVertexBuffer)(vaobj, bindingindex, buffer, offset, stride)
32809 #[cfg_attr(feature = "inline", inline)]
32810 #[cfg_attr(feature = "inline_always", inline(always))]
32811 pub unsafe fn VertexArrayVertexBuffer(
32812 &self,
32813 vaobj: GLuint,
32814 bindingindex: GLuint,
32815 buffer: GLuint,
32816 offset: GLintptr,
32817 stride: GLsizei,
32818 ) {
32819 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32820 {
32821 trace!(
32822 "calling gl.VertexArrayVertexBuffer({:?}, {:?}, {:?}, {:?}, {:?});",
32823 vaobj,
32824 bindingindex,
32825 buffer,
32826 offset,
32827 stride
32828 );
32829 }
32830 let out = call_atomic_ptr_5arg(
32831 "glVertexArrayVertexBuffer",
32832 &self.glVertexArrayVertexBuffer_p,
32833 vaobj,
32834 bindingindex,
32835 buffer,
32836 offset,
32837 stride,
32838 );
32839 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32840 {
32841 self.automatic_glGetError("glVertexArrayVertexBuffer");
32842 }
32843 out
32844 }
32845 #[doc(hidden)]
32846 pub unsafe fn VertexArrayVertexBuffer_load_with_dyn(
32847 &self,
32848 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32849 ) -> bool {
32850 load_dyn_name_atomic_ptr(
32851 get_proc_address,
32852 b"glVertexArrayVertexBuffer\0",
32853 &self.glVertexArrayVertexBuffer_p,
32854 )
32855 }
32856 #[inline]
32857 #[doc(hidden)]
32858 pub fn VertexArrayVertexBuffer_is_loaded(&self) -> bool {
32859 !self.glVertexArrayVertexBuffer_p.load(RELAX).is_null()
32860 }
32861 /// [glVertexArrayVertexBuffers](http://docs.gl/gl4/glVertexArrayVertexBuffers)(vaobj, first, count, buffers, offsets, strides)
32862 #[cfg_attr(feature = "inline", inline)]
32863 #[cfg_attr(feature = "inline_always", inline(always))]
32864 pub unsafe fn VertexArrayVertexBuffers(
32865 &self,
32866 vaobj: GLuint,
32867 first: GLuint,
32868 count: GLsizei,
32869 buffers: *const GLuint,
32870 offsets: *const GLintptr,
32871 strides: *const GLsizei,
32872 ) {
32873 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32874 {
32875 trace!(
32876 "calling gl.VertexArrayVertexBuffers({:?}, {:?}, {:?}, {:p}, {:p}, {:p});",
32877 vaobj,
32878 first,
32879 count,
32880 buffers,
32881 offsets,
32882 strides
32883 );
32884 }
32885 let out = call_atomic_ptr_6arg(
32886 "glVertexArrayVertexBuffers",
32887 &self.glVertexArrayVertexBuffers_p,
32888 vaobj,
32889 first,
32890 count,
32891 buffers,
32892 offsets,
32893 strides,
32894 );
32895 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32896 {
32897 self.automatic_glGetError("glVertexArrayVertexBuffers");
32898 }
32899 out
32900 }
32901 #[doc(hidden)]
32902 pub unsafe fn VertexArrayVertexBuffers_load_with_dyn(
32903 &self,
32904 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32905 ) -> bool {
32906 load_dyn_name_atomic_ptr(
32907 get_proc_address,
32908 b"glVertexArrayVertexBuffers\0",
32909 &self.glVertexArrayVertexBuffers_p,
32910 )
32911 }
32912 #[inline]
32913 #[doc(hidden)]
32914 pub fn VertexArrayVertexBuffers_is_loaded(&self) -> bool {
32915 !self.glVertexArrayVertexBuffers_p.load(RELAX).is_null()
32916 }
32917 /// [glVertexAttrib1d](http://docs.gl/gl4/glVertexAttrib1d)(index, x)
32918 /// * vector equivalent: [`glVertexAttrib1dv`]
32919 #[cfg_attr(feature = "inline", inline)]
32920 #[cfg_attr(feature = "inline_always", inline(always))]
32921 pub unsafe fn VertexAttrib1d(&self, index: GLuint, x: GLdouble) {
32922 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32923 {
32924 trace!("calling gl.VertexAttrib1d({:?}, {:?});", index, x);
32925 }
32926 let out = call_atomic_ptr_2arg("glVertexAttrib1d", &self.glVertexAttrib1d_p, index, x);
32927 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32928 {
32929 self.automatic_glGetError("glVertexAttrib1d");
32930 }
32931 out
32932 }
32933 #[doc(hidden)]
32934 pub unsafe fn VertexAttrib1d_load_with_dyn(
32935 &self,
32936 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32937 ) -> bool {
32938 load_dyn_name_atomic_ptr(
32939 get_proc_address,
32940 b"glVertexAttrib1d\0",
32941 &self.glVertexAttrib1d_p,
32942 )
32943 }
32944 #[inline]
32945 #[doc(hidden)]
32946 pub fn VertexAttrib1d_is_loaded(&self) -> bool {
32947 !self.glVertexAttrib1d_p.load(RELAX).is_null()
32948 }
32949 /// [glVertexAttrib1dv](http://docs.gl/gl4/glVertexAttrib1dv)(index, v)
32950 /// * `v` len: 1
32951 #[cfg_attr(feature = "inline", inline)]
32952 #[cfg_attr(feature = "inline_always", inline(always))]
32953 pub unsafe fn VertexAttrib1dv(&self, index: GLuint, v: *const GLdouble) {
32954 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32955 {
32956 trace!("calling gl.VertexAttrib1dv({:?}, {:p});", index, v);
32957 }
32958 let out =
32959 call_atomic_ptr_2arg("glVertexAttrib1dv", &self.glVertexAttrib1dv_p, index, v);
32960 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32961 {
32962 self.automatic_glGetError("glVertexAttrib1dv");
32963 }
32964 out
32965 }
32966 #[doc(hidden)]
32967 pub unsafe fn VertexAttrib1dv_load_with_dyn(
32968 &self,
32969 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32970 ) -> bool {
32971 load_dyn_name_atomic_ptr(
32972 get_proc_address,
32973 b"glVertexAttrib1dv\0",
32974 &self.glVertexAttrib1dv_p,
32975 )
32976 }
32977 #[inline]
32978 #[doc(hidden)]
32979 pub fn VertexAttrib1dv_is_loaded(&self) -> bool {
32980 !self.glVertexAttrib1dv_p.load(RELAX).is_null()
32981 }
32982 /// [glVertexAttrib1f](http://docs.gl/gl4/glVertexAttrib)(index, x)
32983 /// * vector equivalent: [`glVertexAttrib1fv`]
32984 #[cfg_attr(feature = "inline", inline)]
32985 #[cfg_attr(feature = "inline_always", inline(always))]
32986 pub unsafe fn VertexAttrib1f(&self, index: GLuint, x: GLfloat) {
32987 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32988 {
32989 trace!("calling gl.VertexAttrib1f({:?}, {:?});", index, x);
32990 }
32991 let out = call_atomic_ptr_2arg("glVertexAttrib1f", &self.glVertexAttrib1f_p, index, x);
32992 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32993 {
32994 self.automatic_glGetError("glVertexAttrib1f");
32995 }
32996 out
32997 }
32998 #[doc(hidden)]
32999 pub unsafe fn VertexAttrib1f_load_with_dyn(
33000 &self,
33001 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33002 ) -> bool {
33003 load_dyn_name_atomic_ptr(
33004 get_proc_address,
33005 b"glVertexAttrib1f\0",
33006 &self.glVertexAttrib1f_p,
33007 )
33008 }
33009 #[inline]
33010 #[doc(hidden)]
33011 pub fn VertexAttrib1f_is_loaded(&self) -> bool {
33012 !self.glVertexAttrib1f_p.load(RELAX).is_null()
33013 }
33014 /// [glVertexAttrib1fv](http://docs.gl/gl4/glVertexAttrib)(index, v)
33015 /// * `v` len: 1
33016 #[cfg_attr(feature = "inline", inline)]
33017 #[cfg_attr(feature = "inline_always", inline(always))]
33018 pub unsafe fn VertexAttrib1fv(&self, index: GLuint, v: *const GLfloat) {
33019 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33020 {
33021 trace!("calling gl.VertexAttrib1fv({:?}, {:p});", index, v);
33022 }
33023 let out =
33024 call_atomic_ptr_2arg("glVertexAttrib1fv", &self.glVertexAttrib1fv_p, index, v);
33025 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33026 {
33027 self.automatic_glGetError("glVertexAttrib1fv");
33028 }
33029 out
33030 }
33031 #[doc(hidden)]
33032 pub unsafe fn VertexAttrib1fv_load_with_dyn(
33033 &self,
33034 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33035 ) -> bool {
33036 load_dyn_name_atomic_ptr(
33037 get_proc_address,
33038 b"glVertexAttrib1fv\0",
33039 &self.glVertexAttrib1fv_p,
33040 )
33041 }
33042 #[inline]
33043 #[doc(hidden)]
33044 pub fn VertexAttrib1fv_is_loaded(&self) -> bool {
33045 !self.glVertexAttrib1fv_p.load(RELAX).is_null()
33046 }
33047 /// [glVertexAttrib1s](http://docs.gl/gl4/glVertexAttrib1s)(index, x)
33048 /// * vector equivalent: [`glVertexAttrib1sv`]
33049 #[cfg_attr(feature = "inline", inline)]
33050 #[cfg_attr(feature = "inline_always", inline(always))]
33051 pub unsafe fn VertexAttrib1s(&self, index: GLuint, x: GLshort) {
33052 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33053 {
33054 trace!("calling gl.VertexAttrib1s({:?}, {:?});", index, x);
33055 }
33056 let out = call_atomic_ptr_2arg("glVertexAttrib1s", &self.glVertexAttrib1s_p, index, x);
33057 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33058 {
33059 self.automatic_glGetError("glVertexAttrib1s");
33060 }
33061 out
33062 }
33063 #[doc(hidden)]
33064 pub unsafe fn VertexAttrib1s_load_with_dyn(
33065 &self,
33066 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33067 ) -> bool {
33068 load_dyn_name_atomic_ptr(
33069 get_proc_address,
33070 b"glVertexAttrib1s\0",
33071 &self.glVertexAttrib1s_p,
33072 )
33073 }
33074 #[inline]
33075 #[doc(hidden)]
33076 pub fn VertexAttrib1s_is_loaded(&self) -> bool {
33077 !self.glVertexAttrib1s_p.load(RELAX).is_null()
33078 }
33079 /// [glVertexAttrib1sv](http://docs.gl/gl4/glVertexAttrib1sv)(index, v)
33080 /// * `v` len: 1
33081 #[cfg_attr(feature = "inline", inline)]
33082 #[cfg_attr(feature = "inline_always", inline(always))]
33083 pub unsafe fn VertexAttrib1sv(&self, index: GLuint, v: *const GLshort) {
33084 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33085 {
33086 trace!("calling gl.VertexAttrib1sv({:?}, {:p});", index, v);
33087 }
33088 let out =
33089 call_atomic_ptr_2arg("glVertexAttrib1sv", &self.glVertexAttrib1sv_p, index, v);
33090 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33091 {
33092 self.automatic_glGetError("glVertexAttrib1sv");
33093 }
33094 out
33095 }
33096 #[doc(hidden)]
33097 pub unsafe fn VertexAttrib1sv_load_with_dyn(
33098 &self,
33099 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33100 ) -> bool {
33101 load_dyn_name_atomic_ptr(
33102 get_proc_address,
33103 b"glVertexAttrib1sv\0",
33104 &self.glVertexAttrib1sv_p,
33105 )
33106 }
33107 #[inline]
33108 #[doc(hidden)]
33109 pub fn VertexAttrib1sv_is_loaded(&self) -> bool {
33110 !self.glVertexAttrib1sv_p.load(RELAX).is_null()
33111 }
33112 /// [glVertexAttrib2d](http://docs.gl/gl4/glVertexAttrib2d)(index, x, y)
33113 /// * vector equivalent: [`glVertexAttrib2dv`]
33114 #[cfg_attr(feature = "inline", inline)]
33115 #[cfg_attr(feature = "inline_always", inline(always))]
33116 pub unsafe fn VertexAttrib2d(&self, index: GLuint, x: GLdouble, y: GLdouble) {
33117 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33118 {
33119 trace!("calling gl.VertexAttrib2d({:?}, {:?}, {:?});", index, x, y);
33120 }
33121 let out =
33122 call_atomic_ptr_3arg("glVertexAttrib2d", &self.glVertexAttrib2d_p, index, x, y);
33123 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33124 {
33125 self.automatic_glGetError("glVertexAttrib2d");
33126 }
33127 out
33128 }
33129 #[doc(hidden)]
33130 pub unsafe fn VertexAttrib2d_load_with_dyn(
33131 &self,
33132 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33133 ) -> bool {
33134 load_dyn_name_atomic_ptr(
33135 get_proc_address,
33136 b"glVertexAttrib2d\0",
33137 &self.glVertexAttrib2d_p,
33138 )
33139 }
33140 #[inline]
33141 #[doc(hidden)]
33142 pub fn VertexAttrib2d_is_loaded(&self) -> bool {
33143 !self.glVertexAttrib2d_p.load(RELAX).is_null()
33144 }
33145 /// [glVertexAttrib2dv](http://docs.gl/gl4/glVertexAttrib2dv)(index, v)
33146 /// * `v` len: 2
33147 #[cfg_attr(feature = "inline", inline)]
33148 #[cfg_attr(feature = "inline_always", inline(always))]
33149 pub unsafe fn VertexAttrib2dv(&self, index: GLuint, v: *const GLdouble) {
33150 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33151 {
33152 trace!("calling gl.VertexAttrib2dv({:?}, {:p});", index, v);
33153 }
33154 let out =
33155 call_atomic_ptr_2arg("glVertexAttrib2dv", &self.glVertexAttrib2dv_p, index, v);
33156 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33157 {
33158 self.automatic_glGetError("glVertexAttrib2dv");
33159 }
33160 out
33161 }
33162 #[doc(hidden)]
33163 pub unsafe fn VertexAttrib2dv_load_with_dyn(
33164 &self,
33165 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33166 ) -> bool {
33167 load_dyn_name_atomic_ptr(
33168 get_proc_address,
33169 b"glVertexAttrib2dv\0",
33170 &self.glVertexAttrib2dv_p,
33171 )
33172 }
33173 #[inline]
33174 #[doc(hidden)]
33175 pub fn VertexAttrib2dv_is_loaded(&self) -> bool {
33176 !self.glVertexAttrib2dv_p.load(RELAX).is_null()
33177 }
33178 /// [glVertexAttrib2f](http://docs.gl/gl4/glVertexAttrib)(index, x, y)
33179 /// * vector equivalent: [`glVertexAttrib2fv`]
33180 #[cfg_attr(feature = "inline", inline)]
33181 #[cfg_attr(feature = "inline_always", inline(always))]
33182 pub unsafe fn VertexAttrib2f(&self, index: GLuint, x: GLfloat, y: GLfloat) {
33183 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33184 {
33185 trace!("calling gl.VertexAttrib2f({:?}, {:?}, {:?});", index, x, y);
33186 }
33187 let out =
33188 call_atomic_ptr_3arg("glVertexAttrib2f", &self.glVertexAttrib2f_p, index, x, y);
33189 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33190 {
33191 self.automatic_glGetError("glVertexAttrib2f");
33192 }
33193 out
33194 }
33195 #[doc(hidden)]
33196 pub unsafe fn VertexAttrib2f_load_with_dyn(
33197 &self,
33198 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33199 ) -> bool {
33200 load_dyn_name_atomic_ptr(
33201 get_proc_address,
33202 b"glVertexAttrib2f\0",
33203 &self.glVertexAttrib2f_p,
33204 )
33205 }
33206 #[inline]
33207 #[doc(hidden)]
33208 pub fn VertexAttrib2f_is_loaded(&self) -> bool {
33209 !self.glVertexAttrib2f_p.load(RELAX).is_null()
33210 }
33211 /// [glVertexAttrib2fv](http://docs.gl/gl4/glVertexAttrib)(index, v)
33212 /// * `v` len: 2
33213 #[cfg_attr(feature = "inline", inline)]
33214 #[cfg_attr(feature = "inline_always", inline(always))]
33215 pub unsafe fn VertexAttrib2fv(&self, index: GLuint, v: *const GLfloat) {
33216 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33217 {
33218 trace!("calling gl.VertexAttrib2fv({:?}, {:p});", index, v);
33219 }
33220 let out =
33221 call_atomic_ptr_2arg("glVertexAttrib2fv", &self.glVertexAttrib2fv_p, index, v);
33222 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33223 {
33224 self.automatic_glGetError("glVertexAttrib2fv");
33225 }
33226 out
33227 }
33228 #[doc(hidden)]
33229 pub unsafe fn VertexAttrib2fv_load_with_dyn(
33230 &self,
33231 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33232 ) -> bool {
33233 load_dyn_name_atomic_ptr(
33234 get_proc_address,
33235 b"glVertexAttrib2fv\0",
33236 &self.glVertexAttrib2fv_p,
33237 )
33238 }
33239 #[inline]
33240 #[doc(hidden)]
33241 pub fn VertexAttrib2fv_is_loaded(&self) -> bool {
33242 !self.glVertexAttrib2fv_p.load(RELAX).is_null()
33243 }
33244 /// [glVertexAttrib2s](http://docs.gl/gl4/glVertexAttrib2s)(index, x, y)
33245 /// * vector equivalent: [`glVertexAttrib2sv`]
33246 #[cfg_attr(feature = "inline", inline)]
33247 #[cfg_attr(feature = "inline_always", inline(always))]
33248 pub unsafe fn VertexAttrib2s(&self, index: GLuint, x: GLshort, y: GLshort) {
33249 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33250 {
33251 trace!("calling gl.VertexAttrib2s({:?}, {:?}, {:?});", index, x, y);
33252 }
33253 let out =
33254 call_atomic_ptr_3arg("glVertexAttrib2s", &self.glVertexAttrib2s_p, index, x, y);
33255 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33256 {
33257 self.automatic_glGetError("glVertexAttrib2s");
33258 }
33259 out
33260 }
33261 #[doc(hidden)]
33262 pub unsafe fn VertexAttrib2s_load_with_dyn(
33263 &self,
33264 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33265 ) -> bool {
33266 load_dyn_name_atomic_ptr(
33267 get_proc_address,
33268 b"glVertexAttrib2s\0",
33269 &self.glVertexAttrib2s_p,
33270 )
33271 }
33272 #[inline]
33273 #[doc(hidden)]
33274 pub fn VertexAttrib2s_is_loaded(&self) -> bool {
33275 !self.glVertexAttrib2s_p.load(RELAX).is_null()
33276 }
33277 /// [glVertexAttrib2sv](http://docs.gl/gl4/glVertexAttrib2sv)(index, v)
33278 /// * `v` len: 2
33279 #[cfg_attr(feature = "inline", inline)]
33280 #[cfg_attr(feature = "inline_always", inline(always))]
33281 pub unsafe fn VertexAttrib2sv(&self, index: GLuint, v: *const GLshort) {
33282 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33283 {
33284 trace!("calling gl.VertexAttrib2sv({:?}, {:p});", index, v);
33285 }
33286 let out =
33287 call_atomic_ptr_2arg("glVertexAttrib2sv", &self.glVertexAttrib2sv_p, index, v);
33288 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33289 {
33290 self.automatic_glGetError("glVertexAttrib2sv");
33291 }
33292 out
33293 }
33294 #[doc(hidden)]
33295 pub unsafe fn VertexAttrib2sv_load_with_dyn(
33296 &self,
33297 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33298 ) -> bool {
33299 load_dyn_name_atomic_ptr(
33300 get_proc_address,
33301 b"glVertexAttrib2sv\0",
33302 &self.glVertexAttrib2sv_p,
33303 )
33304 }
33305 #[inline]
33306 #[doc(hidden)]
33307 pub fn VertexAttrib2sv_is_loaded(&self) -> bool {
33308 !self.glVertexAttrib2sv_p.load(RELAX).is_null()
33309 }
33310 /// [glVertexAttrib3d](http://docs.gl/gl4/glVertexAttrib3d)(index, x, y, z)
33311 /// * vector equivalent: [`glVertexAttrib3dv`]
33312 #[cfg_attr(feature = "inline", inline)]
33313 #[cfg_attr(feature = "inline_always", inline(always))]
33314 pub unsafe fn VertexAttrib3d(&self, index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble) {
33315 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33316 {
33317 trace!(
33318 "calling gl.VertexAttrib3d({:?}, {:?}, {:?}, {:?});",
33319 index,
33320 x,
33321 y,
33322 z
33323 );
33324 }
33325 let out =
33326 call_atomic_ptr_4arg("glVertexAttrib3d", &self.glVertexAttrib3d_p, index, x, y, z);
33327 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33328 {
33329 self.automatic_glGetError("glVertexAttrib3d");
33330 }
33331 out
33332 }
33333 #[doc(hidden)]
33334 pub unsafe fn VertexAttrib3d_load_with_dyn(
33335 &self,
33336 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33337 ) -> bool {
33338 load_dyn_name_atomic_ptr(
33339 get_proc_address,
33340 b"glVertexAttrib3d\0",
33341 &self.glVertexAttrib3d_p,
33342 )
33343 }
33344 #[inline]
33345 #[doc(hidden)]
33346 pub fn VertexAttrib3d_is_loaded(&self) -> bool {
33347 !self.glVertexAttrib3d_p.load(RELAX).is_null()
33348 }
33349 /// [glVertexAttrib3dv](http://docs.gl/gl4/glVertexAttrib3dv)(index, v)
33350 /// * `v` len: 3
33351 #[cfg_attr(feature = "inline", inline)]
33352 #[cfg_attr(feature = "inline_always", inline(always))]
33353 pub unsafe fn VertexAttrib3dv(&self, index: GLuint, v: *const GLdouble) {
33354 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33355 {
33356 trace!("calling gl.VertexAttrib3dv({:?}, {:p});", index, v);
33357 }
33358 let out =
33359 call_atomic_ptr_2arg("glVertexAttrib3dv", &self.glVertexAttrib3dv_p, index, v);
33360 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33361 {
33362 self.automatic_glGetError("glVertexAttrib3dv");
33363 }
33364 out
33365 }
33366 #[doc(hidden)]
33367 pub unsafe fn VertexAttrib3dv_load_with_dyn(
33368 &self,
33369 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33370 ) -> bool {
33371 load_dyn_name_atomic_ptr(
33372 get_proc_address,
33373 b"glVertexAttrib3dv\0",
33374 &self.glVertexAttrib3dv_p,
33375 )
33376 }
33377 #[inline]
33378 #[doc(hidden)]
33379 pub fn VertexAttrib3dv_is_loaded(&self) -> bool {
33380 !self.glVertexAttrib3dv_p.load(RELAX).is_null()
33381 }
33382 /// [glVertexAttrib3f](http://docs.gl/gl4/glVertexAttrib)(index, x, y, z)
33383 /// * vector equivalent: [`glVertexAttrib3fv`]
33384 #[cfg_attr(feature = "inline", inline)]
33385 #[cfg_attr(feature = "inline_always", inline(always))]
33386 pub unsafe fn VertexAttrib3f(&self, index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat) {
33387 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33388 {
33389 trace!(
33390 "calling gl.VertexAttrib3f({:?}, {:?}, {:?}, {:?});",
33391 index,
33392 x,
33393 y,
33394 z
33395 );
33396 }
33397 let out =
33398 call_atomic_ptr_4arg("glVertexAttrib3f", &self.glVertexAttrib3f_p, index, x, y, z);
33399 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33400 {
33401 self.automatic_glGetError("glVertexAttrib3f");
33402 }
33403 out
33404 }
33405 #[doc(hidden)]
33406 pub unsafe fn VertexAttrib3f_load_with_dyn(
33407 &self,
33408 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33409 ) -> bool {
33410 load_dyn_name_atomic_ptr(
33411 get_proc_address,
33412 b"glVertexAttrib3f\0",
33413 &self.glVertexAttrib3f_p,
33414 )
33415 }
33416 #[inline]
33417 #[doc(hidden)]
33418 pub fn VertexAttrib3f_is_loaded(&self) -> bool {
33419 !self.glVertexAttrib3f_p.load(RELAX).is_null()
33420 }
33421 /// [glVertexAttrib3fv](http://docs.gl/gl4/glVertexAttrib)(index, v)
33422 /// * `v` len: 3
33423 #[cfg_attr(feature = "inline", inline)]
33424 #[cfg_attr(feature = "inline_always", inline(always))]
33425 pub unsafe fn VertexAttrib3fv(&self, index: GLuint, v: *const GLfloat) {
33426 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33427 {
33428 trace!("calling gl.VertexAttrib3fv({:?}, {:p});", index, v);
33429 }
33430 let out =
33431 call_atomic_ptr_2arg("glVertexAttrib3fv", &self.glVertexAttrib3fv_p, index, v);
33432 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33433 {
33434 self.automatic_glGetError("glVertexAttrib3fv");
33435 }
33436 out
33437 }
33438 #[doc(hidden)]
33439 pub unsafe fn VertexAttrib3fv_load_with_dyn(
33440 &self,
33441 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33442 ) -> bool {
33443 load_dyn_name_atomic_ptr(
33444 get_proc_address,
33445 b"glVertexAttrib3fv\0",
33446 &self.glVertexAttrib3fv_p,
33447 )
33448 }
33449 #[inline]
33450 #[doc(hidden)]
33451 pub fn VertexAttrib3fv_is_loaded(&self) -> bool {
33452 !self.glVertexAttrib3fv_p.load(RELAX).is_null()
33453 }
33454 /// [glVertexAttrib3s](http://docs.gl/gl4/glVertexAttrib3s)(index, x, y, z)
33455 /// * vector equivalent: [`glVertexAttrib3sv`]
33456 #[cfg_attr(feature = "inline", inline)]
33457 #[cfg_attr(feature = "inline_always", inline(always))]
33458 pub unsafe fn VertexAttrib3s(&self, index: GLuint, x: GLshort, y: GLshort, z: GLshort) {
33459 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33460 {
33461 trace!(
33462 "calling gl.VertexAttrib3s({:?}, {:?}, {:?}, {:?});",
33463 index,
33464 x,
33465 y,
33466 z
33467 );
33468 }
33469 let out =
33470 call_atomic_ptr_4arg("glVertexAttrib3s", &self.glVertexAttrib3s_p, index, x, y, z);
33471 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33472 {
33473 self.automatic_glGetError("glVertexAttrib3s");
33474 }
33475 out
33476 }
33477 #[doc(hidden)]
33478 pub unsafe fn VertexAttrib3s_load_with_dyn(
33479 &self,
33480 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33481 ) -> bool {
33482 load_dyn_name_atomic_ptr(
33483 get_proc_address,
33484 b"glVertexAttrib3s\0",
33485 &self.glVertexAttrib3s_p,
33486 )
33487 }
33488 #[inline]
33489 #[doc(hidden)]
33490 pub fn VertexAttrib3s_is_loaded(&self) -> bool {
33491 !self.glVertexAttrib3s_p.load(RELAX).is_null()
33492 }
33493 /// [glVertexAttrib3sv](http://docs.gl/gl4/glVertexAttrib3sv)(index, v)
33494 /// * `v` len: 3
33495 #[cfg_attr(feature = "inline", inline)]
33496 #[cfg_attr(feature = "inline_always", inline(always))]
33497 pub unsafe fn VertexAttrib3sv(&self, index: GLuint, v: *const GLshort) {
33498 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33499 {
33500 trace!("calling gl.VertexAttrib3sv({:?}, {:p});", index, v);
33501 }
33502 let out =
33503 call_atomic_ptr_2arg("glVertexAttrib3sv", &self.glVertexAttrib3sv_p, index, v);
33504 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33505 {
33506 self.automatic_glGetError("glVertexAttrib3sv");
33507 }
33508 out
33509 }
33510 #[doc(hidden)]
33511 pub unsafe fn VertexAttrib3sv_load_with_dyn(
33512 &self,
33513 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33514 ) -> bool {
33515 load_dyn_name_atomic_ptr(
33516 get_proc_address,
33517 b"glVertexAttrib3sv\0",
33518 &self.glVertexAttrib3sv_p,
33519 )
33520 }
33521 #[inline]
33522 #[doc(hidden)]
33523 pub fn VertexAttrib3sv_is_loaded(&self) -> bool {
33524 !self.glVertexAttrib3sv_p.load(RELAX).is_null()
33525 }
33526 /// [glVertexAttrib4Nbv](http://docs.gl/gl4/glVertexAttrib4Nbv)(index, v)
33527 /// * `v` len: 4
33528 #[cfg_attr(feature = "inline", inline)]
33529 #[cfg_attr(feature = "inline_always", inline(always))]
33530 pub unsafe fn VertexAttrib4Nbv(&self, index: GLuint, v: *const GLbyte) {
33531 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33532 {
33533 trace!("calling gl.VertexAttrib4Nbv({:?}, {:p});", index, v);
33534 }
33535 let out =
33536 call_atomic_ptr_2arg("glVertexAttrib4Nbv", &self.glVertexAttrib4Nbv_p, index, v);
33537 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33538 {
33539 self.automatic_glGetError("glVertexAttrib4Nbv");
33540 }
33541 out
33542 }
33543 #[doc(hidden)]
33544 pub unsafe fn VertexAttrib4Nbv_load_with_dyn(
33545 &self,
33546 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33547 ) -> bool {
33548 load_dyn_name_atomic_ptr(
33549 get_proc_address,
33550 b"glVertexAttrib4Nbv\0",
33551 &self.glVertexAttrib4Nbv_p,
33552 )
33553 }
33554 #[inline]
33555 #[doc(hidden)]
33556 pub fn VertexAttrib4Nbv_is_loaded(&self) -> bool {
33557 !self.glVertexAttrib4Nbv_p.load(RELAX).is_null()
33558 }
33559 /// [glVertexAttrib4Niv](http://docs.gl/gl4/glVertexAttrib4N)(index, v)
33560 /// * `v` len: 4
33561 #[cfg_attr(feature = "inline", inline)]
33562 #[cfg_attr(feature = "inline_always", inline(always))]
33563 pub unsafe fn VertexAttrib4Niv(&self, index: GLuint, v: *const GLint) {
33564 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33565 {
33566 trace!("calling gl.VertexAttrib4Niv({:?}, {:p});", index, v);
33567 }
33568 let out =
33569 call_atomic_ptr_2arg("glVertexAttrib4Niv", &self.glVertexAttrib4Niv_p, index, v);
33570 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33571 {
33572 self.automatic_glGetError("glVertexAttrib4Niv");
33573 }
33574 out
33575 }
33576 #[doc(hidden)]
33577 pub unsafe fn VertexAttrib4Niv_load_with_dyn(
33578 &self,
33579 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33580 ) -> bool {
33581 load_dyn_name_atomic_ptr(
33582 get_proc_address,
33583 b"glVertexAttrib4Niv\0",
33584 &self.glVertexAttrib4Niv_p,
33585 )
33586 }
33587 #[inline]
33588 #[doc(hidden)]
33589 pub fn VertexAttrib4Niv_is_loaded(&self) -> bool {
33590 !self.glVertexAttrib4Niv_p.load(RELAX).is_null()
33591 }
33592 /// [glVertexAttrib4Nsv](http://docs.gl/gl4/glVertexAttrib4Nsv)(index, v)
33593 /// * `v` len: 4
33594 #[cfg_attr(feature = "inline", inline)]
33595 #[cfg_attr(feature = "inline_always", inline(always))]
33596 pub unsafe fn VertexAttrib4Nsv(&self, index: GLuint, v: *const GLshort) {
33597 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33598 {
33599 trace!("calling gl.VertexAttrib4Nsv({:?}, {:p});", index, v);
33600 }
33601 let out =
33602 call_atomic_ptr_2arg("glVertexAttrib4Nsv", &self.glVertexAttrib4Nsv_p, index, v);
33603 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33604 {
33605 self.automatic_glGetError("glVertexAttrib4Nsv");
33606 }
33607 out
33608 }
33609 #[doc(hidden)]
33610 pub unsafe fn VertexAttrib4Nsv_load_with_dyn(
33611 &self,
33612 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33613 ) -> bool {
33614 load_dyn_name_atomic_ptr(
33615 get_proc_address,
33616 b"glVertexAttrib4Nsv\0",
33617 &self.glVertexAttrib4Nsv_p,
33618 )
33619 }
33620 #[inline]
33621 #[doc(hidden)]
33622 pub fn VertexAttrib4Nsv_is_loaded(&self) -> bool {
33623 !self.glVertexAttrib4Nsv_p.load(RELAX).is_null()
33624 }
33625 /// [glVertexAttrib4Nub](http://docs.gl/gl4/glVertexAttrib4Nub)(index, x, y, z, w)
33626 #[cfg_attr(feature = "inline", inline)]
33627 #[cfg_attr(feature = "inline_always", inline(always))]
33628 pub unsafe fn VertexAttrib4Nub(
33629 &self,
33630 index: GLuint,
33631 x: GLubyte,
33632 y: GLubyte,
33633 z: GLubyte,
33634 w: GLubyte,
33635 ) {
33636 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33637 {
33638 trace!(
33639 "calling gl.VertexAttrib4Nub({:?}, {:?}, {:?}, {:?}, {:?});",
33640 index,
33641 x,
33642 y,
33643 z,
33644 w
33645 );
33646 }
33647 let out = call_atomic_ptr_5arg(
33648 "glVertexAttrib4Nub",
33649 &self.glVertexAttrib4Nub_p,
33650 index,
33651 x,
33652 y,
33653 z,
33654 w,
33655 );
33656 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33657 {
33658 self.automatic_glGetError("glVertexAttrib4Nub");
33659 }
33660 out
33661 }
33662 #[doc(hidden)]
33663 pub unsafe fn VertexAttrib4Nub_load_with_dyn(
33664 &self,
33665 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33666 ) -> bool {
33667 load_dyn_name_atomic_ptr(
33668 get_proc_address,
33669 b"glVertexAttrib4Nub\0",
33670 &self.glVertexAttrib4Nub_p,
33671 )
33672 }
33673 #[inline]
33674 #[doc(hidden)]
33675 pub fn VertexAttrib4Nub_is_loaded(&self) -> bool {
33676 !self.glVertexAttrib4Nub_p.load(RELAX).is_null()
33677 }
33678 /// [glVertexAttrib4Nubv](http://docs.gl/gl4/glVertexAttrib4Nubv)(index, v)
33679 /// * `v` len: 4
33680 #[cfg_attr(feature = "inline", inline)]
33681 #[cfg_attr(feature = "inline_always", inline(always))]
33682 pub unsafe fn VertexAttrib4Nubv(&self, index: GLuint, v: *const GLubyte) {
33683 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33684 {
33685 trace!("calling gl.VertexAttrib4Nubv({:?}, {:p});", index, v);
33686 }
33687 let out =
33688 call_atomic_ptr_2arg("glVertexAttrib4Nubv", &self.glVertexAttrib4Nubv_p, index, v);
33689 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33690 {
33691 self.automatic_glGetError("glVertexAttrib4Nubv");
33692 }
33693 out
33694 }
33695 #[doc(hidden)]
33696 pub unsafe fn VertexAttrib4Nubv_load_with_dyn(
33697 &self,
33698 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33699 ) -> bool {
33700 load_dyn_name_atomic_ptr(
33701 get_proc_address,
33702 b"glVertexAttrib4Nubv\0",
33703 &self.glVertexAttrib4Nubv_p,
33704 )
33705 }
33706 #[inline]
33707 #[doc(hidden)]
33708 pub fn VertexAttrib4Nubv_is_loaded(&self) -> bool {
33709 !self.glVertexAttrib4Nubv_p.load(RELAX).is_null()
33710 }
33711 /// [glVertexAttrib4Nuiv](http://docs.gl/gl4/glVertexAttrib4N)(index, v)
33712 /// * `v` len: 4
33713 #[cfg_attr(feature = "inline", inline)]
33714 #[cfg_attr(feature = "inline_always", inline(always))]
33715 pub unsafe fn VertexAttrib4Nuiv(&self, index: GLuint, v: *const GLuint) {
33716 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33717 {
33718 trace!("calling gl.VertexAttrib4Nuiv({:?}, {:p});", index, v);
33719 }
33720 let out =
33721 call_atomic_ptr_2arg("glVertexAttrib4Nuiv", &self.glVertexAttrib4Nuiv_p, index, v);
33722 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33723 {
33724 self.automatic_glGetError("glVertexAttrib4Nuiv");
33725 }
33726 out
33727 }
33728 #[doc(hidden)]
33729 pub unsafe fn VertexAttrib4Nuiv_load_with_dyn(
33730 &self,
33731 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33732 ) -> bool {
33733 load_dyn_name_atomic_ptr(
33734 get_proc_address,
33735 b"glVertexAttrib4Nuiv\0",
33736 &self.glVertexAttrib4Nuiv_p,
33737 )
33738 }
33739 #[inline]
33740 #[doc(hidden)]
33741 pub fn VertexAttrib4Nuiv_is_loaded(&self) -> bool {
33742 !self.glVertexAttrib4Nuiv_p.load(RELAX).is_null()
33743 }
33744 /// [glVertexAttrib4Nusv](http://docs.gl/gl4/glVertexAttrib4Nusv)(index, v)
33745 /// * `v` len: 4
33746 #[cfg_attr(feature = "inline", inline)]
33747 #[cfg_attr(feature = "inline_always", inline(always))]
33748 pub unsafe fn VertexAttrib4Nusv(&self, index: GLuint, v: *const GLushort) {
33749 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33750 {
33751 trace!("calling gl.VertexAttrib4Nusv({:?}, {:p});", index, v);
33752 }
33753 let out =
33754 call_atomic_ptr_2arg("glVertexAttrib4Nusv", &self.glVertexAttrib4Nusv_p, index, v);
33755 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33756 {
33757 self.automatic_glGetError("glVertexAttrib4Nusv");
33758 }
33759 out
33760 }
33761 #[doc(hidden)]
33762 pub unsafe fn VertexAttrib4Nusv_load_with_dyn(
33763 &self,
33764 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33765 ) -> bool {
33766 load_dyn_name_atomic_ptr(
33767 get_proc_address,
33768 b"glVertexAttrib4Nusv\0",
33769 &self.glVertexAttrib4Nusv_p,
33770 )
33771 }
33772 #[inline]
33773 #[doc(hidden)]
33774 pub fn VertexAttrib4Nusv_is_loaded(&self) -> bool {
33775 !self.glVertexAttrib4Nusv_p.load(RELAX).is_null()
33776 }
33777 /// [glVertexAttrib4bv](http://docs.gl/gl4/glVertexAttrib4bv)(index, v)
33778 /// * `v` len: 4
33779 #[cfg_attr(feature = "inline", inline)]
33780 #[cfg_attr(feature = "inline_always", inline(always))]
33781 pub unsafe fn VertexAttrib4bv(&self, index: GLuint, v: *const GLbyte) {
33782 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33783 {
33784 trace!("calling gl.VertexAttrib4bv({:?}, {:p});", index, v);
33785 }
33786 let out =
33787 call_atomic_ptr_2arg("glVertexAttrib4bv", &self.glVertexAttrib4bv_p, index, v);
33788 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33789 {
33790 self.automatic_glGetError("glVertexAttrib4bv");
33791 }
33792 out
33793 }
33794 #[doc(hidden)]
33795 pub unsafe fn VertexAttrib4bv_load_with_dyn(
33796 &self,
33797 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33798 ) -> bool {
33799 load_dyn_name_atomic_ptr(
33800 get_proc_address,
33801 b"glVertexAttrib4bv\0",
33802 &self.glVertexAttrib4bv_p,
33803 )
33804 }
33805 #[inline]
33806 #[doc(hidden)]
33807 pub fn VertexAttrib4bv_is_loaded(&self) -> bool {
33808 !self.glVertexAttrib4bv_p.load(RELAX).is_null()
33809 }
33810 /// [glVertexAttrib4d](http://docs.gl/gl4/glVertexAttrib4d)(index, x, y, z, w)
33811 /// * vector equivalent: [`glVertexAttrib4dv`]
33812 #[cfg_attr(feature = "inline", inline)]
33813 #[cfg_attr(feature = "inline_always", inline(always))]
33814 pub unsafe fn VertexAttrib4d(
33815 &self,
33816 index: GLuint,
33817 x: GLdouble,
33818 y: GLdouble,
33819 z: GLdouble,
33820 w: GLdouble,
33821 ) {
33822 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33823 {
33824 trace!(
33825 "calling gl.VertexAttrib4d({:?}, {:?}, {:?}, {:?}, {:?});",
33826 index,
33827 x,
33828 y,
33829 z,
33830 w
33831 );
33832 }
33833 let out = call_atomic_ptr_5arg(
33834 "glVertexAttrib4d",
33835 &self.glVertexAttrib4d_p,
33836 index,
33837 x,
33838 y,
33839 z,
33840 w,
33841 );
33842 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33843 {
33844 self.automatic_glGetError("glVertexAttrib4d");
33845 }
33846 out
33847 }
33848 #[doc(hidden)]
33849 pub unsafe fn VertexAttrib4d_load_with_dyn(
33850 &self,
33851 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33852 ) -> bool {
33853 load_dyn_name_atomic_ptr(
33854 get_proc_address,
33855 b"glVertexAttrib4d\0",
33856 &self.glVertexAttrib4d_p,
33857 )
33858 }
33859 #[inline]
33860 #[doc(hidden)]
33861 pub fn VertexAttrib4d_is_loaded(&self) -> bool {
33862 !self.glVertexAttrib4d_p.load(RELAX).is_null()
33863 }
33864 /// [glVertexAttrib4dv](http://docs.gl/gl4/glVertexAttrib4dv)(index, v)
33865 /// * `v` len: 4
33866 #[cfg_attr(feature = "inline", inline)]
33867 #[cfg_attr(feature = "inline_always", inline(always))]
33868 pub unsafe fn VertexAttrib4dv(&self, index: GLuint, v: *const GLdouble) {
33869 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33870 {
33871 trace!("calling gl.VertexAttrib4dv({:?}, {:p});", index, v);
33872 }
33873 let out =
33874 call_atomic_ptr_2arg("glVertexAttrib4dv", &self.glVertexAttrib4dv_p, index, v);
33875 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33876 {
33877 self.automatic_glGetError("glVertexAttrib4dv");
33878 }
33879 out
33880 }
33881 #[doc(hidden)]
33882 pub unsafe fn VertexAttrib4dv_load_with_dyn(
33883 &self,
33884 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33885 ) -> bool {
33886 load_dyn_name_atomic_ptr(
33887 get_proc_address,
33888 b"glVertexAttrib4dv\0",
33889 &self.glVertexAttrib4dv_p,
33890 )
33891 }
33892 #[inline]
33893 #[doc(hidden)]
33894 pub fn VertexAttrib4dv_is_loaded(&self) -> bool {
33895 !self.glVertexAttrib4dv_p.load(RELAX).is_null()
33896 }
33897 /// [glVertexAttrib4f](http://docs.gl/gl4/glVertexAttrib)(index, x, y, z, w)
33898 /// * vector equivalent: [`glVertexAttrib4fv`]
33899 #[cfg_attr(feature = "inline", inline)]
33900 #[cfg_attr(feature = "inline_always", inline(always))]
33901 pub unsafe fn VertexAttrib4f(
33902 &self,
33903 index: GLuint,
33904 x: GLfloat,
33905 y: GLfloat,
33906 z: GLfloat,
33907 w: GLfloat,
33908 ) {
33909 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33910 {
33911 trace!(
33912 "calling gl.VertexAttrib4f({:?}, {:?}, {:?}, {:?}, {:?});",
33913 index,
33914 x,
33915 y,
33916 z,
33917 w
33918 );
33919 }
33920 let out = call_atomic_ptr_5arg(
33921 "glVertexAttrib4f",
33922 &self.glVertexAttrib4f_p,
33923 index,
33924 x,
33925 y,
33926 z,
33927 w,
33928 );
33929 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33930 {
33931 self.automatic_glGetError("glVertexAttrib4f");
33932 }
33933 out
33934 }
33935 #[doc(hidden)]
33936 pub unsafe fn VertexAttrib4f_load_with_dyn(
33937 &self,
33938 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33939 ) -> bool {
33940 load_dyn_name_atomic_ptr(
33941 get_proc_address,
33942 b"glVertexAttrib4f\0",
33943 &self.glVertexAttrib4f_p,
33944 )
33945 }
33946 #[inline]
33947 #[doc(hidden)]
33948 pub fn VertexAttrib4f_is_loaded(&self) -> bool {
33949 !self.glVertexAttrib4f_p.load(RELAX).is_null()
33950 }
33951 /// [glVertexAttrib4fv](http://docs.gl/gl4/glVertexAttrib)(index, v)
33952 /// * `v` len: 4
33953 #[cfg_attr(feature = "inline", inline)]
33954 #[cfg_attr(feature = "inline_always", inline(always))]
33955 pub unsafe fn VertexAttrib4fv(&self, index: GLuint, v: *const GLfloat) {
33956 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33957 {
33958 trace!("calling gl.VertexAttrib4fv({:?}, {:p});", index, v);
33959 }
33960 let out =
33961 call_atomic_ptr_2arg("glVertexAttrib4fv", &self.glVertexAttrib4fv_p, index, v);
33962 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33963 {
33964 self.automatic_glGetError("glVertexAttrib4fv");
33965 }
33966 out
33967 }
33968 #[doc(hidden)]
33969 pub unsafe fn VertexAttrib4fv_load_with_dyn(
33970 &self,
33971 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33972 ) -> bool {
33973 load_dyn_name_atomic_ptr(
33974 get_proc_address,
33975 b"glVertexAttrib4fv\0",
33976 &self.glVertexAttrib4fv_p,
33977 )
33978 }
33979 #[inline]
33980 #[doc(hidden)]
33981 pub fn VertexAttrib4fv_is_loaded(&self) -> bool {
33982 !self.glVertexAttrib4fv_p.load(RELAX).is_null()
33983 }
33984 /// [glVertexAttrib4iv](http://docs.gl/gl4/glVertexAttrib)(index, v)
33985 /// * `v` len: 4
33986 #[cfg_attr(feature = "inline", inline)]
33987 #[cfg_attr(feature = "inline_always", inline(always))]
33988 pub unsafe fn VertexAttrib4iv(&self, index: GLuint, v: *const GLint) {
33989 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33990 {
33991 trace!("calling gl.VertexAttrib4iv({:?}, {:p});", index, v);
33992 }
33993 let out =
33994 call_atomic_ptr_2arg("glVertexAttrib4iv", &self.glVertexAttrib4iv_p, index, v);
33995 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33996 {
33997 self.automatic_glGetError("glVertexAttrib4iv");
33998 }
33999 out
34000 }
34001 #[doc(hidden)]
34002 pub unsafe fn VertexAttrib4iv_load_with_dyn(
34003 &self,
34004 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34005 ) -> bool {
34006 load_dyn_name_atomic_ptr(
34007 get_proc_address,
34008 b"glVertexAttrib4iv\0",
34009 &self.glVertexAttrib4iv_p,
34010 )
34011 }
34012 #[inline]
34013 #[doc(hidden)]
34014 pub fn VertexAttrib4iv_is_loaded(&self) -> bool {
34015 !self.glVertexAttrib4iv_p.load(RELAX).is_null()
34016 }
34017 /// [glVertexAttrib4s](http://docs.gl/gl4/glVertexAttrib4s)(index, x, y, z, w)
34018 /// * vector equivalent: [`glVertexAttrib4sv`]
34019 #[cfg_attr(feature = "inline", inline)]
34020 #[cfg_attr(feature = "inline_always", inline(always))]
34021 pub unsafe fn VertexAttrib4s(
34022 &self,
34023 index: GLuint,
34024 x: GLshort,
34025 y: GLshort,
34026 z: GLshort,
34027 w: GLshort,
34028 ) {
34029 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34030 {
34031 trace!(
34032 "calling gl.VertexAttrib4s({:?}, {:?}, {:?}, {:?}, {:?});",
34033 index,
34034 x,
34035 y,
34036 z,
34037 w
34038 );
34039 }
34040 let out = call_atomic_ptr_5arg(
34041 "glVertexAttrib4s",
34042 &self.glVertexAttrib4s_p,
34043 index,
34044 x,
34045 y,
34046 z,
34047 w,
34048 );
34049 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34050 {
34051 self.automatic_glGetError("glVertexAttrib4s");
34052 }
34053 out
34054 }
34055 #[doc(hidden)]
34056 pub unsafe fn VertexAttrib4s_load_with_dyn(
34057 &self,
34058 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34059 ) -> bool {
34060 load_dyn_name_atomic_ptr(
34061 get_proc_address,
34062 b"glVertexAttrib4s\0",
34063 &self.glVertexAttrib4s_p,
34064 )
34065 }
34066 #[inline]
34067 #[doc(hidden)]
34068 pub fn VertexAttrib4s_is_loaded(&self) -> bool {
34069 !self.glVertexAttrib4s_p.load(RELAX).is_null()
34070 }
34071 /// [glVertexAttrib4sv](http://docs.gl/gl4/glVertexAttrib4sv)(index, v)
34072 /// * `v` len: 4
34073 #[cfg_attr(feature = "inline", inline)]
34074 #[cfg_attr(feature = "inline_always", inline(always))]
34075 pub unsafe fn VertexAttrib4sv(&self, index: GLuint, v: *const GLshort) {
34076 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34077 {
34078 trace!("calling gl.VertexAttrib4sv({:?}, {:p});", index, v);
34079 }
34080 let out =
34081 call_atomic_ptr_2arg("glVertexAttrib4sv", &self.glVertexAttrib4sv_p, index, v);
34082 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34083 {
34084 self.automatic_glGetError("glVertexAttrib4sv");
34085 }
34086 out
34087 }
34088 #[doc(hidden)]
34089 pub unsafe fn VertexAttrib4sv_load_with_dyn(
34090 &self,
34091 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34092 ) -> bool {
34093 load_dyn_name_atomic_ptr(
34094 get_proc_address,
34095 b"glVertexAttrib4sv\0",
34096 &self.glVertexAttrib4sv_p,
34097 )
34098 }
34099 #[inline]
34100 #[doc(hidden)]
34101 pub fn VertexAttrib4sv_is_loaded(&self) -> bool {
34102 !self.glVertexAttrib4sv_p.load(RELAX).is_null()
34103 }
34104 /// [glVertexAttrib4ubv](http://docs.gl/gl4/glVertexAttrib4ubv)(index, v)
34105 /// * `v` len: 4
34106 #[cfg_attr(feature = "inline", inline)]
34107 #[cfg_attr(feature = "inline_always", inline(always))]
34108 pub unsafe fn VertexAttrib4ubv(&self, index: GLuint, v: *const GLubyte) {
34109 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34110 {
34111 trace!("calling gl.VertexAttrib4ubv({:?}, {:p});", index, v);
34112 }
34113 let out =
34114 call_atomic_ptr_2arg("glVertexAttrib4ubv", &self.glVertexAttrib4ubv_p, index, v);
34115 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34116 {
34117 self.automatic_glGetError("glVertexAttrib4ubv");
34118 }
34119 out
34120 }
34121 #[doc(hidden)]
34122 pub unsafe fn VertexAttrib4ubv_load_with_dyn(
34123 &self,
34124 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34125 ) -> bool {
34126 load_dyn_name_atomic_ptr(
34127 get_proc_address,
34128 b"glVertexAttrib4ubv\0",
34129 &self.glVertexAttrib4ubv_p,
34130 )
34131 }
34132 #[inline]
34133 #[doc(hidden)]
34134 pub fn VertexAttrib4ubv_is_loaded(&self) -> bool {
34135 !self.glVertexAttrib4ubv_p.load(RELAX).is_null()
34136 }
34137 /// [glVertexAttrib4uiv](http://docs.gl/gl4/glVertexAttrib)(index, v)
34138 /// * `v` len: 4
34139 #[cfg_attr(feature = "inline", inline)]
34140 #[cfg_attr(feature = "inline_always", inline(always))]
34141 pub unsafe fn VertexAttrib4uiv(&self, index: GLuint, v: *const GLuint) {
34142 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34143 {
34144 trace!("calling gl.VertexAttrib4uiv({:?}, {:p});", index, v);
34145 }
34146 let out =
34147 call_atomic_ptr_2arg("glVertexAttrib4uiv", &self.glVertexAttrib4uiv_p, index, v);
34148 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34149 {
34150 self.automatic_glGetError("glVertexAttrib4uiv");
34151 }
34152 out
34153 }
34154 #[doc(hidden)]
34155 pub unsafe fn VertexAttrib4uiv_load_with_dyn(
34156 &self,
34157 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34158 ) -> bool {
34159 load_dyn_name_atomic_ptr(
34160 get_proc_address,
34161 b"glVertexAttrib4uiv\0",
34162 &self.glVertexAttrib4uiv_p,
34163 )
34164 }
34165 #[inline]
34166 #[doc(hidden)]
34167 pub fn VertexAttrib4uiv_is_loaded(&self) -> bool {
34168 !self.glVertexAttrib4uiv_p.load(RELAX).is_null()
34169 }
34170 /// [glVertexAttrib4usv](http://docs.gl/gl4/glVertexAttrib4usv)(index, v)
34171 /// * `v` len: 4
34172 #[cfg_attr(feature = "inline", inline)]
34173 #[cfg_attr(feature = "inline_always", inline(always))]
34174 pub unsafe fn VertexAttrib4usv(&self, index: GLuint, v: *const GLushort) {
34175 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34176 {
34177 trace!("calling gl.VertexAttrib4usv({:?}, {:p});", index, v);
34178 }
34179 let out =
34180 call_atomic_ptr_2arg("glVertexAttrib4usv", &self.glVertexAttrib4usv_p, index, v);
34181 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34182 {
34183 self.automatic_glGetError("glVertexAttrib4usv");
34184 }
34185 out
34186 }
34187 #[doc(hidden)]
34188 pub unsafe fn VertexAttrib4usv_load_with_dyn(
34189 &self,
34190 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34191 ) -> bool {
34192 load_dyn_name_atomic_ptr(
34193 get_proc_address,
34194 b"glVertexAttrib4usv\0",
34195 &self.glVertexAttrib4usv_p,
34196 )
34197 }
34198 #[inline]
34199 #[doc(hidden)]
34200 pub fn VertexAttrib4usv_is_loaded(&self) -> bool {
34201 !self.glVertexAttrib4usv_p.load(RELAX).is_null()
34202 }
34203 /// [glVertexAttribBinding](http://docs.gl/gl4/glVertexAttribBinding)(attribindex, bindingindex)
34204 #[cfg_attr(feature = "inline", inline)]
34205 #[cfg_attr(feature = "inline_always", inline(always))]
34206 pub unsafe fn VertexAttribBinding(&self, attribindex: GLuint, bindingindex: GLuint) {
34207 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34208 {
34209 trace!(
34210 "calling gl.VertexAttribBinding({:?}, {:?});",
34211 attribindex,
34212 bindingindex
34213 );
34214 }
34215 let out = call_atomic_ptr_2arg(
34216 "glVertexAttribBinding",
34217 &self.glVertexAttribBinding_p,
34218 attribindex,
34219 bindingindex,
34220 );
34221 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34222 {
34223 self.automatic_glGetError("glVertexAttribBinding");
34224 }
34225 out
34226 }
34227 #[doc(hidden)]
34228 pub unsafe fn VertexAttribBinding_load_with_dyn(
34229 &self,
34230 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34231 ) -> bool {
34232 load_dyn_name_atomic_ptr(
34233 get_proc_address,
34234 b"glVertexAttribBinding\0",
34235 &self.glVertexAttribBinding_p,
34236 )
34237 }
34238 #[inline]
34239 #[doc(hidden)]
34240 pub fn VertexAttribBinding_is_loaded(&self) -> bool {
34241 !self.glVertexAttribBinding_p.load(RELAX).is_null()
34242 }
34243 /// [glVertexAttribDivisor](http://docs.gl/gl4/glVertexAttribDivisor)(index, divisor)
34244 #[cfg_attr(feature = "inline", inline)]
34245 #[cfg_attr(feature = "inline_always", inline(always))]
34246 pub unsafe fn VertexAttribDivisor(&self, index: GLuint, divisor: GLuint) {
34247 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34248 {
34249 trace!(
34250 "calling gl.VertexAttribDivisor({:?}, {:?});",
34251 index,
34252 divisor
34253 );
34254 }
34255 let out = call_atomic_ptr_2arg(
34256 "glVertexAttribDivisor",
34257 &self.glVertexAttribDivisor_p,
34258 index,
34259 divisor,
34260 );
34261 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34262 {
34263 self.automatic_glGetError("glVertexAttribDivisor");
34264 }
34265 out
34266 }
34267 #[doc(hidden)]
34268 pub unsafe fn VertexAttribDivisor_load_with_dyn(
34269 &self,
34270 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34271 ) -> bool {
34272 load_dyn_name_atomic_ptr(
34273 get_proc_address,
34274 b"glVertexAttribDivisor\0",
34275 &self.glVertexAttribDivisor_p,
34276 )
34277 }
34278 #[inline]
34279 #[doc(hidden)]
34280 pub fn VertexAttribDivisor_is_loaded(&self) -> bool {
34281 !self.glVertexAttribDivisor_p.load(RELAX).is_null()
34282 }
34283 /// [glVertexAttribDivisorARB](http://docs.gl/gl4/glVertexAttribDivisorARB)(index, divisor)
34284 /// * alias of: [`glVertexAttribDivisor`]
34285 #[cfg_attr(feature = "inline", inline)]
34286 #[cfg_attr(feature = "inline_always", inline(always))]
34287 pub unsafe fn VertexAttribDivisorARB(&self, index: GLuint, divisor: GLuint) {
34288 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34289 {
34290 trace!(
34291 "calling gl.VertexAttribDivisorARB({:?}, {:?});",
34292 index,
34293 divisor
34294 );
34295 }
34296 let out = call_atomic_ptr_2arg(
34297 "glVertexAttribDivisorARB",
34298 &self.glVertexAttribDivisorARB_p,
34299 index,
34300 divisor,
34301 );
34302 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34303 {
34304 self.automatic_glGetError("glVertexAttribDivisorARB");
34305 }
34306 out
34307 }
34308 #[doc(hidden)]
34309 pub unsafe fn VertexAttribDivisorARB_load_with_dyn(
34310 &self,
34311 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34312 ) -> bool {
34313 load_dyn_name_atomic_ptr(
34314 get_proc_address,
34315 b"glVertexAttribDivisorARB\0",
34316 &self.glVertexAttribDivisorARB_p,
34317 )
34318 }
34319 #[inline]
34320 #[doc(hidden)]
34321 pub fn VertexAttribDivisorARB_is_loaded(&self) -> bool {
34322 !self.glVertexAttribDivisorARB_p.load(RELAX).is_null()
34323 }
34324 /// [glVertexAttribFormat](http://docs.gl/gl4/glVertexAttribFormat)(attribindex, size, type_, normalized, relativeoffset)
34325 /// * `type_` group: VertexAttribType
34326 #[cfg_attr(feature = "inline", inline)]
34327 #[cfg_attr(feature = "inline_always", inline(always))]
34328 pub unsafe fn VertexAttribFormat(
34329 &self,
34330 attribindex: GLuint,
34331 size: GLint,
34332 type_: GLenum,
34333 normalized: GLboolean,
34334 relativeoffset: GLuint,
34335 ) {
34336 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34337 {
34338 trace!(
34339 "calling gl.VertexAttribFormat({:?}, {:?}, {:#X}, {:?}, {:?});",
34340 attribindex,
34341 size,
34342 type_,
34343 normalized,
34344 relativeoffset
34345 );
34346 }
34347 let out = call_atomic_ptr_5arg(
34348 "glVertexAttribFormat",
34349 &self.glVertexAttribFormat_p,
34350 attribindex,
34351 size,
34352 type_,
34353 normalized,
34354 relativeoffset,
34355 );
34356 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34357 {
34358 self.automatic_glGetError("glVertexAttribFormat");
34359 }
34360 out
34361 }
34362 #[doc(hidden)]
34363 pub unsafe fn VertexAttribFormat_load_with_dyn(
34364 &self,
34365 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34366 ) -> bool {
34367 load_dyn_name_atomic_ptr(
34368 get_proc_address,
34369 b"glVertexAttribFormat\0",
34370 &self.glVertexAttribFormat_p,
34371 )
34372 }
34373 #[inline]
34374 #[doc(hidden)]
34375 pub fn VertexAttribFormat_is_loaded(&self) -> bool {
34376 !self.glVertexAttribFormat_p.load(RELAX).is_null()
34377 }
34378 /// [glVertexAttribI1i](http://docs.gl/gl4/glVertexAttribI)(index, x)
34379 /// * vector equivalent: [`glVertexAttribI1iv`]
34380 #[cfg_attr(feature = "inline", inline)]
34381 #[cfg_attr(feature = "inline_always", inline(always))]
34382 pub unsafe fn VertexAttribI1i(&self, index: GLuint, x: GLint) {
34383 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34384 {
34385 trace!("calling gl.VertexAttribI1i({:?}, {:?});", index, x);
34386 }
34387 let out =
34388 call_atomic_ptr_2arg("glVertexAttribI1i", &self.glVertexAttribI1i_p, index, x);
34389 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34390 {
34391 self.automatic_glGetError("glVertexAttribI1i");
34392 }
34393 out
34394 }
34395 #[doc(hidden)]
34396 pub unsafe fn VertexAttribI1i_load_with_dyn(
34397 &self,
34398 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34399 ) -> bool {
34400 load_dyn_name_atomic_ptr(
34401 get_proc_address,
34402 b"glVertexAttribI1i\0",
34403 &self.glVertexAttribI1i_p,
34404 )
34405 }
34406 #[inline]
34407 #[doc(hidden)]
34408 pub fn VertexAttribI1i_is_loaded(&self) -> bool {
34409 !self.glVertexAttribI1i_p.load(RELAX).is_null()
34410 }
34411 /// [glVertexAttribI1iv](http://docs.gl/gl4/glVertexAttribI)(index, v)
34412 /// * `v` len: 1
34413 #[cfg_attr(feature = "inline", inline)]
34414 #[cfg_attr(feature = "inline_always", inline(always))]
34415 pub unsafe fn VertexAttribI1iv(&self, index: GLuint, v: *const GLint) {
34416 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34417 {
34418 trace!("calling gl.VertexAttribI1iv({:?}, {:p});", index, v);
34419 }
34420 let out =
34421 call_atomic_ptr_2arg("glVertexAttribI1iv", &self.glVertexAttribI1iv_p, index, v);
34422 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34423 {
34424 self.automatic_glGetError("glVertexAttribI1iv");
34425 }
34426 out
34427 }
34428 #[doc(hidden)]
34429 pub unsafe fn VertexAttribI1iv_load_with_dyn(
34430 &self,
34431 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34432 ) -> bool {
34433 load_dyn_name_atomic_ptr(
34434 get_proc_address,
34435 b"glVertexAttribI1iv\0",
34436 &self.glVertexAttribI1iv_p,
34437 )
34438 }
34439 #[inline]
34440 #[doc(hidden)]
34441 pub fn VertexAttribI1iv_is_loaded(&self) -> bool {
34442 !self.glVertexAttribI1iv_p.load(RELAX).is_null()
34443 }
34444 /// [glVertexAttribI1ui](http://docs.gl/gl4/glVertexAttribI)(index, x)
34445 /// * vector equivalent: [`glVertexAttribI1uiv`]
34446 #[cfg_attr(feature = "inline", inline)]
34447 #[cfg_attr(feature = "inline_always", inline(always))]
34448 pub unsafe fn VertexAttribI1ui(&self, index: GLuint, x: GLuint) {
34449 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34450 {
34451 trace!("calling gl.VertexAttribI1ui({:?}, {:?});", index, x);
34452 }
34453 let out =
34454 call_atomic_ptr_2arg("glVertexAttribI1ui", &self.glVertexAttribI1ui_p, index, x);
34455 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34456 {
34457 self.automatic_glGetError("glVertexAttribI1ui");
34458 }
34459 out
34460 }
34461 #[doc(hidden)]
34462 pub unsafe fn VertexAttribI1ui_load_with_dyn(
34463 &self,
34464 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34465 ) -> bool {
34466 load_dyn_name_atomic_ptr(
34467 get_proc_address,
34468 b"glVertexAttribI1ui\0",
34469 &self.glVertexAttribI1ui_p,
34470 )
34471 }
34472 #[inline]
34473 #[doc(hidden)]
34474 pub fn VertexAttribI1ui_is_loaded(&self) -> bool {
34475 !self.glVertexAttribI1ui_p.load(RELAX).is_null()
34476 }
34477 /// [glVertexAttribI1uiv](http://docs.gl/gl4/glVertexAttribI)(index, v)
34478 /// * `v` len: 1
34479 #[cfg_attr(feature = "inline", inline)]
34480 #[cfg_attr(feature = "inline_always", inline(always))]
34481 pub unsafe fn VertexAttribI1uiv(&self, index: GLuint, v: *const GLuint) {
34482 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34483 {
34484 trace!("calling gl.VertexAttribI1uiv({:?}, {:p});", index, v);
34485 }
34486 let out =
34487 call_atomic_ptr_2arg("glVertexAttribI1uiv", &self.glVertexAttribI1uiv_p, index, v);
34488 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34489 {
34490 self.automatic_glGetError("glVertexAttribI1uiv");
34491 }
34492 out
34493 }
34494 #[doc(hidden)]
34495 pub unsafe fn VertexAttribI1uiv_load_with_dyn(
34496 &self,
34497 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34498 ) -> bool {
34499 load_dyn_name_atomic_ptr(
34500 get_proc_address,
34501 b"glVertexAttribI1uiv\0",
34502 &self.glVertexAttribI1uiv_p,
34503 )
34504 }
34505 #[inline]
34506 #[doc(hidden)]
34507 pub fn VertexAttribI1uiv_is_loaded(&self) -> bool {
34508 !self.glVertexAttribI1uiv_p.load(RELAX).is_null()
34509 }
34510 /// [glVertexAttribI2i](http://docs.gl/gl4/glVertexAttribI)(index, x, y)
34511 /// * vector equivalent: [`glVertexAttribI2iv`]
34512 #[cfg_attr(feature = "inline", inline)]
34513 #[cfg_attr(feature = "inline_always", inline(always))]
34514 pub unsafe fn VertexAttribI2i(&self, index: GLuint, x: GLint, y: GLint) {
34515 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34516 {
34517 trace!("calling gl.VertexAttribI2i({:?}, {:?}, {:?});", index, x, y);
34518 }
34519 let out =
34520 call_atomic_ptr_3arg("glVertexAttribI2i", &self.glVertexAttribI2i_p, index, x, y);
34521 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34522 {
34523 self.automatic_glGetError("glVertexAttribI2i");
34524 }
34525 out
34526 }
34527 #[doc(hidden)]
34528 pub unsafe fn VertexAttribI2i_load_with_dyn(
34529 &self,
34530 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34531 ) -> bool {
34532 load_dyn_name_atomic_ptr(
34533 get_proc_address,
34534 b"glVertexAttribI2i\0",
34535 &self.glVertexAttribI2i_p,
34536 )
34537 }
34538 #[inline]
34539 #[doc(hidden)]
34540 pub fn VertexAttribI2i_is_loaded(&self) -> bool {
34541 !self.glVertexAttribI2i_p.load(RELAX).is_null()
34542 }
34543 /// [glVertexAttribI2iv](http://docs.gl/gl4/glVertexAttribI)(index, v)
34544 /// * `v` len: 2
34545 #[cfg_attr(feature = "inline", inline)]
34546 #[cfg_attr(feature = "inline_always", inline(always))]
34547 pub unsafe fn VertexAttribI2iv(&self, index: GLuint, v: *const GLint) {
34548 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34549 {
34550 trace!("calling gl.VertexAttribI2iv({:?}, {:p});", index, v);
34551 }
34552 let out =
34553 call_atomic_ptr_2arg("glVertexAttribI2iv", &self.glVertexAttribI2iv_p, index, v);
34554 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34555 {
34556 self.automatic_glGetError("glVertexAttribI2iv");
34557 }
34558 out
34559 }
34560 #[doc(hidden)]
34561 pub unsafe fn VertexAttribI2iv_load_with_dyn(
34562 &self,
34563 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34564 ) -> bool {
34565 load_dyn_name_atomic_ptr(
34566 get_proc_address,
34567 b"glVertexAttribI2iv\0",
34568 &self.glVertexAttribI2iv_p,
34569 )
34570 }
34571 #[inline]
34572 #[doc(hidden)]
34573 pub fn VertexAttribI2iv_is_loaded(&self) -> bool {
34574 !self.glVertexAttribI2iv_p.load(RELAX).is_null()
34575 }
34576 /// [glVertexAttribI2ui](http://docs.gl/gl4/glVertexAttribI)(index, x, y)
34577 /// * vector equivalent: [`glVertexAttribI2uiv`]
34578 #[cfg_attr(feature = "inline", inline)]
34579 #[cfg_attr(feature = "inline_always", inline(always))]
34580 pub unsafe fn VertexAttribI2ui(&self, index: GLuint, x: GLuint, y: GLuint) {
34581 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34582 {
34583 trace!(
34584 "calling gl.VertexAttribI2ui({:?}, {:?}, {:?});",
34585 index,
34586 x,
34587 y
34588 );
34589 }
34590 let out = call_atomic_ptr_3arg(
34591 "glVertexAttribI2ui",
34592 &self.glVertexAttribI2ui_p,
34593 index,
34594 x,
34595 y,
34596 );
34597 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34598 {
34599 self.automatic_glGetError("glVertexAttribI2ui");
34600 }
34601 out
34602 }
34603 #[doc(hidden)]
34604 pub unsafe fn VertexAttribI2ui_load_with_dyn(
34605 &self,
34606 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34607 ) -> bool {
34608 load_dyn_name_atomic_ptr(
34609 get_proc_address,
34610 b"glVertexAttribI2ui\0",
34611 &self.glVertexAttribI2ui_p,
34612 )
34613 }
34614 #[inline]
34615 #[doc(hidden)]
34616 pub fn VertexAttribI2ui_is_loaded(&self) -> bool {
34617 !self.glVertexAttribI2ui_p.load(RELAX).is_null()
34618 }
34619 /// [glVertexAttribI2uiv](http://docs.gl/gl4/glVertexAttribI)(index, v)
34620 /// * `v` len: 2
34621 #[cfg_attr(feature = "inline", inline)]
34622 #[cfg_attr(feature = "inline_always", inline(always))]
34623 pub unsafe fn VertexAttribI2uiv(&self, index: GLuint, v: *const GLuint) {
34624 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34625 {
34626 trace!("calling gl.VertexAttribI2uiv({:?}, {:p});", index, v);
34627 }
34628 let out =
34629 call_atomic_ptr_2arg("glVertexAttribI2uiv", &self.glVertexAttribI2uiv_p, index, v);
34630 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34631 {
34632 self.automatic_glGetError("glVertexAttribI2uiv");
34633 }
34634 out
34635 }
34636 #[doc(hidden)]
34637 pub unsafe fn VertexAttribI2uiv_load_with_dyn(
34638 &self,
34639 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34640 ) -> bool {
34641 load_dyn_name_atomic_ptr(
34642 get_proc_address,
34643 b"glVertexAttribI2uiv\0",
34644 &self.glVertexAttribI2uiv_p,
34645 )
34646 }
34647 #[inline]
34648 #[doc(hidden)]
34649 pub fn VertexAttribI2uiv_is_loaded(&self) -> bool {
34650 !self.glVertexAttribI2uiv_p.load(RELAX).is_null()
34651 }
34652 /// [glVertexAttribI3i](http://docs.gl/gl4/glVertexAttribI)(index, x, y, z)
34653 /// * vector equivalent: [`glVertexAttribI3iv`]
34654 #[cfg_attr(feature = "inline", inline)]
34655 #[cfg_attr(feature = "inline_always", inline(always))]
34656 pub unsafe fn VertexAttribI3i(&self, index: GLuint, x: GLint, y: GLint, z: GLint) {
34657 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34658 {
34659 trace!(
34660 "calling gl.VertexAttribI3i({:?}, {:?}, {:?}, {:?});",
34661 index,
34662 x,
34663 y,
34664 z
34665 );
34666 }
34667 let out = call_atomic_ptr_4arg(
34668 "glVertexAttribI3i",
34669 &self.glVertexAttribI3i_p,
34670 index,
34671 x,
34672 y,
34673 z,
34674 );
34675 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34676 {
34677 self.automatic_glGetError("glVertexAttribI3i");
34678 }
34679 out
34680 }
34681 #[doc(hidden)]
34682 pub unsafe fn VertexAttribI3i_load_with_dyn(
34683 &self,
34684 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34685 ) -> bool {
34686 load_dyn_name_atomic_ptr(
34687 get_proc_address,
34688 b"glVertexAttribI3i\0",
34689 &self.glVertexAttribI3i_p,
34690 )
34691 }
34692 #[inline]
34693 #[doc(hidden)]
34694 pub fn VertexAttribI3i_is_loaded(&self) -> bool {
34695 !self.glVertexAttribI3i_p.load(RELAX).is_null()
34696 }
34697 /// [glVertexAttribI3iv](http://docs.gl/gl4/glVertexAttribI)(index, v)
34698 /// * `v` len: 3
34699 #[cfg_attr(feature = "inline", inline)]
34700 #[cfg_attr(feature = "inline_always", inline(always))]
34701 pub unsafe fn VertexAttribI3iv(&self, index: GLuint, v: *const GLint) {
34702 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34703 {
34704 trace!("calling gl.VertexAttribI3iv({:?}, {:p});", index, v);
34705 }
34706 let out =
34707 call_atomic_ptr_2arg("glVertexAttribI3iv", &self.glVertexAttribI3iv_p, index, v);
34708 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34709 {
34710 self.automatic_glGetError("glVertexAttribI3iv");
34711 }
34712 out
34713 }
34714 #[doc(hidden)]
34715 pub unsafe fn VertexAttribI3iv_load_with_dyn(
34716 &self,
34717 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34718 ) -> bool {
34719 load_dyn_name_atomic_ptr(
34720 get_proc_address,
34721 b"glVertexAttribI3iv\0",
34722 &self.glVertexAttribI3iv_p,
34723 )
34724 }
34725 #[inline]
34726 #[doc(hidden)]
34727 pub fn VertexAttribI3iv_is_loaded(&self) -> bool {
34728 !self.glVertexAttribI3iv_p.load(RELAX).is_null()
34729 }
34730 /// [glVertexAttribI3ui](http://docs.gl/gl4/glVertexAttribI)(index, x, y, z)
34731 /// * vector equivalent: [`glVertexAttribI3uiv`]
34732 #[cfg_attr(feature = "inline", inline)]
34733 #[cfg_attr(feature = "inline_always", inline(always))]
34734 pub unsafe fn VertexAttribI3ui(&self, index: GLuint, x: GLuint, y: GLuint, z: GLuint) {
34735 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34736 {
34737 trace!(
34738 "calling gl.VertexAttribI3ui({:?}, {:?}, {:?}, {:?});",
34739 index,
34740 x,
34741 y,
34742 z
34743 );
34744 }
34745 let out = call_atomic_ptr_4arg(
34746 "glVertexAttribI3ui",
34747 &self.glVertexAttribI3ui_p,
34748 index,
34749 x,
34750 y,
34751 z,
34752 );
34753 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34754 {
34755 self.automatic_glGetError("glVertexAttribI3ui");
34756 }
34757 out
34758 }
34759 #[doc(hidden)]
34760 pub unsafe fn VertexAttribI3ui_load_with_dyn(
34761 &self,
34762 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34763 ) -> bool {
34764 load_dyn_name_atomic_ptr(
34765 get_proc_address,
34766 b"glVertexAttribI3ui\0",
34767 &self.glVertexAttribI3ui_p,
34768 )
34769 }
34770 #[inline]
34771 #[doc(hidden)]
34772 pub fn VertexAttribI3ui_is_loaded(&self) -> bool {
34773 !self.glVertexAttribI3ui_p.load(RELAX).is_null()
34774 }
34775 /// [glVertexAttribI3uiv](http://docs.gl/gl4/glVertexAttribI)(index, v)
34776 /// * `v` len: 3
34777 #[cfg_attr(feature = "inline", inline)]
34778 #[cfg_attr(feature = "inline_always", inline(always))]
34779 pub unsafe fn VertexAttribI3uiv(&self, index: GLuint, v: *const GLuint) {
34780 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34781 {
34782 trace!("calling gl.VertexAttribI3uiv({:?}, {:p});", index, v);
34783 }
34784 let out =
34785 call_atomic_ptr_2arg("glVertexAttribI3uiv", &self.glVertexAttribI3uiv_p, index, v);
34786 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34787 {
34788 self.automatic_glGetError("glVertexAttribI3uiv");
34789 }
34790 out
34791 }
34792 #[doc(hidden)]
34793 pub unsafe fn VertexAttribI3uiv_load_with_dyn(
34794 &self,
34795 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34796 ) -> bool {
34797 load_dyn_name_atomic_ptr(
34798 get_proc_address,
34799 b"glVertexAttribI3uiv\0",
34800 &self.glVertexAttribI3uiv_p,
34801 )
34802 }
34803 #[inline]
34804 #[doc(hidden)]
34805 pub fn VertexAttribI3uiv_is_loaded(&self) -> bool {
34806 !self.glVertexAttribI3uiv_p.load(RELAX).is_null()
34807 }
34808 /// [glVertexAttribI4bv](http://docs.gl/gl4/glVertexAttribI4bv)(index, v)
34809 /// * `v` len: 4
34810 #[cfg_attr(feature = "inline", inline)]
34811 #[cfg_attr(feature = "inline_always", inline(always))]
34812 pub unsafe fn VertexAttribI4bv(&self, index: GLuint, v: *const GLbyte) {
34813 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34814 {
34815 trace!("calling gl.VertexAttribI4bv({:?}, {:p});", index, v);
34816 }
34817 let out =
34818 call_atomic_ptr_2arg("glVertexAttribI4bv", &self.glVertexAttribI4bv_p, index, v);
34819 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34820 {
34821 self.automatic_glGetError("glVertexAttribI4bv");
34822 }
34823 out
34824 }
34825 #[doc(hidden)]
34826 pub unsafe fn VertexAttribI4bv_load_with_dyn(
34827 &self,
34828 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34829 ) -> bool {
34830 load_dyn_name_atomic_ptr(
34831 get_proc_address,
34832 b"glVertexAttribI4bv\0",
34833 &self.glVertexAttribI4bv_p,
34834 )
34835 }
34836 #[inline]
34837 #[doc(hidden)]
34838 pub fn VertexAttribI4bv_is_loaded(&self) -> bool {
34839 !self.glVertexAttribI4bv_p.load(RELAX).is_null()
34840 }
34841 /// [glVertexAttribI4i](http://docs.gl/gl4/glVertexAttribI)(index, x, y, z, w)
34842 /// * vector equivalent: [`glVertexAttribI4iv`]
34843 #[cfg_attr(feature = "inline", inline)]
34844 #[cfg_attr(feature = "inline_always", inline(always))]
34845 pub unsafe fn VertexAttribI4i(
34846 &self,
34847 index: GLuint,
34848 x: GLint,
34849 y: GLint,
34850 z: GLint,
34851 w: GLint,
34852 ) {
34853 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34854 {
34855 trace!(
34856 "calling gl.VertexAttribI4i({:?}, {:?}, {:?}, {:?}, {:?});",
34857 index,
34858 x,
34859 y,
34860 z,
34861 w
34862 );
34863 }
34864 let out = call_atomic_ptr_5arg(
34865 "glVertexAttribI4i",
34866 &self.glVertexAttribI4i_p,
34867 index,
34868 x,
34869 y,
34870 z,
34871 w,
34872 );
34873 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34874 {
34875 self.automatic_glGetError("glVertexAttribI4i");
34876 }
34877 out
34878 }
34879 #[doc(hidden)]
34880 pub unsafe fn VertexAttribI4i_load_with_dyn(
34881 &self,
34882 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34883 ) -> bool {
34884 load_dyn_name_atomic_ptr(
34885 get_proc_address,
34886 b"glVertexAttribI4i\0",
34887 &self.glVertexAttribI4i_p,
34888 )
34889 }
34890 #[inline]
34891 #[doc(hidden)]
34892 pub fn VertexAttribI4i_is_loaded(&self) -> bool {
34893 !self.glVertexAttribI4i_p.load(RELAX).is_null()
34894 }
34895 /// [glVertexAttribI4iv](http://docs.gl/gl4/glVertexAttrib)(index, v)
34896 /// * `v` len: 4
34897 #[cfg_attr(feature = "inline", inline)]
34898 #[cfg_attr(feature = "inline_always", inline(always))]
34899 pub unsafe fn VertexAttribI4iv(&self, index: GLuint, v: *const GLint) {
34900 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34901 {
34902 trace!("calling gl.VertexAttribI4iv({:?}, {:p});", index, v);
34903 }
34904 let out =
34905 call_atomic_ptr_2arg("glVertexAttribI4iv", &self.glVertexAttribI4iv_p, index, v);
34906 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34907 {
34908 self.automatic_glGetError("glVertexAttribI4iv");
34909 }
34910 out
34911 }
34912 #[doc(hidden)]
34913 pub unsafe fn VertexAttribI4iv_load_with_dyn(
34914 &self,
34915 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34916 ) -> bool {
34917 load_dyn_name_atomic_ptr(
34918 get_proc_address,
34919 b"glVertexAttribI4iv\0",
34920 &self.glVertexAttribI4iv_p,
34921 )
34922 }
34923 #[inline]
34924 #[doc(hidden)]
34925 pub fn VertexAttribI4iv_is_loaded(&self) -> bool {
34926 !self.glVertexAttribI4iv_p.load(RELAX).is_null()
34927 }
34928 /// [glVertexAttribI4sv](http://docs.gl/gl4/glVertexAttribI4sv)(index, v)
34929 /// * `v` len: 4
34930 #[cfg_attr(feature = "inline", inline)]
34931 #[cfg_attr(feature = "inline_always", inline(always))]
34932 pub unsafe fn VertexAttribI4sv(&self, index: GLuint, v: *const GLshort) {
34933 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34934 {
34935 trace!("calling gl.VertexAttribI4sv({:?}, {:p});", index, v);
34936 }
34937 let out =
34938 call_atomic_ptr_2arg("glVertexAttribI4sv", &self.glVertexAttribI4sv_p, index, v);
34939 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34940 {
34941 self.automatic_glGetError("glVertexAttribI4sv");
34942 }
34943 out
34944 }
34945 #[doc(hidden)]
34946 pub unsafe fn VertexAttribI4sv_load_with_dyn(
34947 &self,
34948 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34949 ) -> bool {
34950 load_dyn_name_atomic_ptr(
34951 get_proc_address,
34952 b"glVertexAttribI4sv\0",
34953 &self.glVertexAttribI4sv_p,
34954 )
34955 }
34956 #[inline]
34957 #[doc(hidden)]
34958 pub fn VertexAttribI4sv_is_loaded(&self) -> bool {
34959 !self.glVertexAttribI4sv_p.load(RELAX).is_null()
34960 }
34961 /// [glVertexAttribI4ubv](http://docs.gl/gl4/glVertexAttribI4ubv)(index, v)
34962 /// * `v` len: 4
34963 #[cfg_attr(feature = "inline", inline)]
34964 #[cfg_attr(feature = "inline_always", inline(always))]
34965 pub unsafe fn VertexAttribI4ubv(&self, index: GLuint, v: *const GLubyte) {
34966 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34967 {
34968 trace!("calling gl.VertexAttribI4ubv({:?}, {:p});", index, v);
34969 }
34970 let out =
34971 call_atomic_ptr_2arg("glVertexAttribI4ubv", &self.glVertexAttribI4ubv_p, index, v);
34972 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34973 {
34974 self.automatic_glGetError("glVertexAttribI4ubv");
34975 }
34976 out
34977 }
34978 #[doc(hidden)]
34979 pub unsafe fn VertexAttribI4ubv_load_with_dyn(
34980 &self,
34981 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34982 ) -> bool {
34983 load_dyn_name_atomic_ptr(
34984 get_proc_address,
34985 b"glVertexAttribI4ubv\0",
34986 &self.glVertexAttribI4ubv_p,
34987 )
34988 }
34989 #[inline]
34990 #[doc(hidden)]
34991 pub fn VertexAttribI4ubv_is_loaded(&self) -> bool {
34992 !self.glVertexAttribI4ubv_p.load(RELAX).is_null()
34993 }
34994 /// [glVertexAttribI4ui](http://docs.gl/gl4/glVertexAttrib)(index, x, y, z, w)
34995 /// * vector equivalent: [`glVertexAttribI4uiv`]
34996 #[cfg_attr(feature = "inline", inline)]
34997 #[cfg_attr(feature = "inline_always", inline(always))]
34998 pub unsafe fn VertexAttribI4ui(
34999 &self,
35000 index: GLuint,
35001 x: GLuint,
35002 y: GLuint,
35003 z: GLuint,
35004 w: GLuint,
35005 ) {
35006 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35007 {
35008 trace!(
35009 "calling gl.VertexAttribI4ui({:?}, {:?}, {:?}, {:?}, {:?});",
35010 index,
35011 x,
35012 y,
35013 z,
35014 w
35015 );
35016 }
35017 let out = call_atomic_ptr_5arg(
35018 "glVertexAttribI4ui",
35019 &self.glVertexAttribI4ui_p,
35020 index,
35021 x,
35022 y,
35023 z,
35024 w,
35025 );
35026 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35027 {
35028 self.automatic_glGetError("glVertexAttribI4ui");
35029 }
35030 out
35031 }
35032 #[doc(hidden)]
35033 pub unsafe fn VertexAttribI4ui_load_with_dyn(
35034 &self,
35035 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35036 ) -> bool {
35037 load_dyn_name_atomic_ptr(
35038 get_proc_address,
35039 b"glVertexAttribI4ui\0",
35040 &self.glVertexAttribI4ui_p,
35041 )
35042 }
35043 #[inline]
35044 #[doc(hidden)]
35045 pub fn VertexAttribI4ui_is_loaded(&self) -> bool {
35046 !self.glVertexAttribI4ui_p.load(RELAX).is_null()
35047 }
35048 /// [glVertexAttribI4uiv](http://docs.gl/gl4/glVertexAttrib)(index, v)
35049 /// * `v` len: 4
35050 #[cfg_attr(feature = "inline", inline)]
35051 #[cfg_attr(feature = "inline_always", inline(always))]
35052 pub unsafe fn VertexAttribI4uiv(&self, index: GLuint, v: *const GLuint) {
35053 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35054 {
35055 trace!("calling gl.VertexAttribI4uiv({:?}, {:p});", index, v);
35056 }
35057 let out =
35058 call_atomic_ptr_2arg("glVertexAttribI4uiv", &self.glVertexAttribI4uiv_p, index, v);
35059 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35060 {
35061 self.automatic_glGetError("glVertexAttribI4uiv");
35062 }
35063 out
35064 }
35065 #[doc(hidden)]
35066 pub unsafe fn VertexAttribI4uiv_load_with_dyn(
35067 &self,
35068 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35069 ) -> bool {
35070 load_dyn_name_atomic_ptr(
35071 get_proc_address,
35072 b"glVertexAttribI4uiv\0",
35073 &self.glVertexAttribI4uiv_p,
35074 )
35075 }
35076 #[inline]
35077 #[doc(hidden)]
35078 pub fn VertexAttribI4uiv_is_loaded(&self) -> bool {
35079 !self.glVertexAttribI4uiv_p.load(RELAX).is_null()
35080 }
35081 /// [glVertexAttribI4usv](http://docs.gl/gl4/glVertexAttribI4usv)(index, v)
35082 /// * `v` len: 4
35083 #[cfg_attr(feature = "inline", inline)]
35084 #[cfg_attr(feature = "inline_always", inline(always))]
35085 pub unsafe fn VertexAttribI4usv(&self, index: GLuint, v: *const GLushort) {
35086 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35087 {
35088 trace!("calling gl.VertexAttribI4usv({:?}, {:p});", index, v);
35089 }
35090 let out =
35091 call_atomic_ptr_2arg("glVertexAttribI4usv", &self.glVertexAttribI4usv_p, index, v);
35092 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35093 {
35094 self.automatic_glGetError("glVertexAttribI4usv");
35095 }
35096 out
35097 }
35098 #[doc(hidden)]
35099 pub unsafe fn VertexAttribI4usv_load_with_dyn(
35100 &self,
35101 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35102 ) -> bool {
35103 load_dyn_name_atomic_ptr(
35104 get_proc_address,
35105 b"glVertexAttribI4usv\0",
35106 &self.glVertexAttribI4usv_p,
35107 )
35108 }
35109 #[inline]
35110 #[doc(hidden)]
35111 pub fn VertexAttribI4usv_is_loaded(&self) -> bool {
35112 !self.glVertexAttribI4usv_p.load(RELAX).is_null()
35113 }
35114 /// [glVertexAttribIFormat](http://docs.gl/gl4/glVertexAttribIFormat)(attribindex, size, type_, relativeoffset)
35115 /// * `type_` group: VertexAttribIType
35116 #[cfg_attr(feature = "inline", inline)]
35117 #[cfg_attr(feature = "inline_always", inline(always))]
35118 pub unsafe fn VertexAttribIFormat(
35119 &self,
35120 attribindex: GLuint,
35121 size: GLint,
35122 type_: GLenum,
35123 relativeoffset: GLuint,
35124 ) {
35125 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35126 {
35127 trace!(
35128 "calling gl.VertexAttribIFormat({:?}, {:?}, {:#X}, {:?});",
35129 attribindex,
35130 size,
35131 type_,
35132 relativeoffset
35133 );
35134 }
35135 let out = call_atomic_ptr_4arg(
35136 "glVertexAttribIFormat",
35137 &self.glVertexAttribIFormat_p,
35138 attribindex,
35139 size,
35140 type_,
35141 relativeoffset,
35142 );
35143 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35144 {
35145 self.automatic_glGetError("glVertexAttribIFormat");
35146 }
35147 out
35148 }
35149 #[doc(hidden)]
35150 pub unsafe fn VertexAttribIFormat_load_with_dyn(
35151 &self,
35152 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35153 ) -> bool {
35154 load_dyn_name_atomic_ptr(
35155 get_proc_address,
35156 b"glVertexAttribIFormat\0",
35157 &self.glVertexAttribIFormat_p,
35158 )
35159 }
35160 #[inline]
35161 #[doc(hidden)]
35162 pub fn VertexAttribIFormat_is_loaded(&self) -> bool {
35163 !self.glVertexAttribIFormat_p.load(RELAX).is_null()
35164 }
35165 /// [glVertexAttribIPointer](http://docs.gl/gl4/glVertexAttribPointer)(index, size, type_, stride, pointer)
35166 /// * `type_` group: VertexAttribIType
35167 /// * `pointer` len: COMPSIZE(size,type,stride)
35168 #[cfg_attr(feature = "inline", inline)]
35169 #[cfg_attr(feature = "inline_always", inline(always))]
35170 pub unsafe fn VertexAttribIPointer(
35171 &self,
35172 index: GLuint,
35173 size: GLint,
35174 type_: GLenum,
35175 stride: GLsizei,
35176 pointer: *const c_void,
35177 ) {
35178 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35179 {
35180 trace!(
35181 "calling gl.VertexAttribIPointer({:?}, {:?}, {:#X}, {:?}, {:p});",
35182 index,
35183 size,
35184 type_,
35185 stride,
35186 pointer
35187 );
35188 }
35189 let out = call_atomic_ptr_5arg(
35190 "glVertexAttribIPointer",
35191 &self.glVertexAttribIPointer_p,
35192 index,
35193 size,
35194 type_,
35195 stride,
35196 pointer,
35197 );
35198 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35199 {
35200 self.automatic_glGetError("glVertexAttribIPointer");
35201 }
35202 out
35203 }
35204 #[doc(hidden)]
35205 pub unsafe fn VertexAttribIPointer_load_with_dyn(
35206 &self,
35207 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35208 ) -> bool {
35209 load_dyn_name_atomic_ptr(
35210 get_proc_address,
35211 b"glVertexAttribIPointer\0",
35212 &self.glVertexAttribIPointer_p,
35213 )
35214 }
35215 #[inline]
35216 #[doc(hidden)]
35217 pub fn VertexAttribIPointer_is_loaded(&self) -> bool {
35218 !self.glVertexAttribIPointer_p.load(RELAX).is_null()
35219 }
35220 /// [glVertexAttribL1d](http://docs.gl/gl4/glVertexAttribL1d)(index, x)
35221 #[cfg_attr(feature = "inline", inline)]
35222 #[cfg_attr(feature = "inline_always", inline(always))]
35223 pub unsafe fn VertexAttribL1d(&self, index: GLuint, x: GLdouble) {
35224 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35225 {
35226 trace!("calling gl.VertexAttribL1d({:?}, {:?});", index, x);
35227 }
35228 let out =
35229 call_atomic_ptr_2arg("glVertexAttribL1d", &self.glVertexAttribL1d_p, index, x);
35230 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35231 {
35232 self.automatic_glGetError("glVertexAttribL1d");
35233 }
35234 out
35235 }
35236 #[doc(hidden)]
35237 pub unsafe fn VertexAttribL1d_load_with_dyn(
35238 &self,
35239 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35240 ) -> bool {
35241 load_dyn_name_atomic_ptr(
35242 get_proc_address,
35243 b"glVertexAttribL1d\0",
35244 &self.glVertexAttribL1d_p,
35245 )
35246 }
35247 #[inline]
35248 #[doc(hidden)]
35249 pub fn VertexAttribL1d_is_loaded(&self) -> bool {
35250 !self.glVertexAttribL1d_p.load(RELAX).is_null()
35251 }
35252 /// [glVertexAttribL1dv](http://docs.gl/gl4/glVertexAttribL1dv)(index, v)
35253 /// * `v` len: 1
35254 #[cfg_attr(feature = "inline", inline)]
35255 #[cfg_attr(feature = "inline_always", inline(always))]
35256 pub unsafe fn VertexAttribL1dv(&self, index: GLuint, v: *const GLdouble) {
35257 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35258 {
35259 trace!("calling gl.VertexAttribL1dv({:?}, {:p});", index, v);
35260 }
35261 let out =
35262 call_atomic_ptr_2arg("glVertexAttribL1dv", &self.glVertexAttribL1dv_p, index, v);
35263 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35264 {
35265 self.automatic_glGetError("glVertexAttribL1dv");
35266 }
35267 out
35268 }
35269 #[doc(hidden)]
35270 pub unsafe fn VertexAttribL1dv_load_with_dyn(
35271 &self,
35272 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35273 ) -> bool {
35274 load_dyn_name_atomic_ptr(
35275 get_proc_address,
35276 b"glVertexAttribL1dv\0",
35277 &self.glVertexAttribL1dv_p,
35278 )
35279 }
35280 #[inline]
35281 #[doc(hidden)]
35282 pub fn VertexAttribL1dv_is_loaded(&self) -> bool {
35283 !self.glVertexAttribL1dv_p.load(RELAX).is_null()
35284 }
35285 /// [glVertexAttribL2d](http://docs.gl/gl4/glVertexAttribL2d)(index, x, y)
35286 #[cfg_attr(feature = "inline", inline)]
35287 #[cfg_attr(feature = "inline_always", inline(always))]
35288 pub unsafe fn VertexAttribL2d(&self, index: GLuint, x: GLdouble, y: GLdouble) {
35289 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35290 {
35291 trace!("calling gl.VertexAttribL2d({:?}, {:?}, {:?});", index, x, y);
35292 }
35293 let out =
35294 call_atomic_ptr_3arg("glVertexAttribL2d", &self.glVertexAttribL2d_p, index, x, y);
35295 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35296 {
35297 self.automatic_glGetError("glVertexAttribL2d");
35298 }
35299 out
35300 }
35301 #[doc(hidden)]
35302 pub unsafe fn VertexAttribL2d_load_with_dyn(
35303 &self,
35304 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35305 ) -> bool {
35306 load_dyn_name_atomic_ptr(
35307 get_proc_address,
35308 b"glVertexAttribL2d\0",
35309 &self.glVertexAttribL2d_p,
35310 )
35311 }
35312 #[inline]
35313 #[doc(hidden)]
35314 pub fn VertexAttribL2d_is_loaded(&self) -> bool {
35315 !self.glVertexAttribL2d_p.load(RELAX).is_null()
35316 }
35317 /// [glVertexAttribL2dv](http://docs.gl/gl4/glVertexAttribL2dv)(index, v)
35318 /// * `v` len: 2
35319 #[cfg_attr(feature = "inline", inline)]
35320 #[cfg_attr(feature = "inline_always", inline(always))]
35321 pub unsafe fn VertexAttribL2dv(&self, index: GLuint, v: *const GLdouble) {
35322 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35323 {
35324 trace!("calling gl.VertexAttribL2dv({:?}, {:p});", index, v);
35325 }
35326 let out =
35327 call_atomic_ptr_2arg("glVertexAttribL2dv", &self.glVertexAttribL2dv_p, index, v);
35328 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35329 {
35330 self.automatic_glGetError("glVertexAttribL2dv");
35331 }
35332 out
35333 }
35334 #[doc(hidden)]
35335 pub unsafe fn VertexAttribL2dv_load_with_dyn(
35336 &self,
35337 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35338 ) -> bool {
35339 load_dyn_name_atomic_ptr(
35340 get_proc_address,
35341 b"glVertexAttribL2dv\0",
35342 &self.glVertexAttribL2dv_p,
35343 )
35344 }
35345 #[inline]
35346 #[doc(hidden)]
35347 pub fn VertexAttribL2dv_is_loaded(&self) -> bool {
35348 !self.glVertexAttribL2dv_p.load(RELAX).is_null()
35349 }
35350 /// [glVertexAttribL3d](http://docs.gl/gl4/glVertexAttribL3d)(index, x, y, z)
35351 #[cfg_attr(feature = "inline", inline)]
35352 #[cfg_attr(feature = "inline_always", inline(always))]
35353 pub unsafe fn VertexAttribL3d(&self, index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble) {
35354 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35355 {
35356 trace!(
35357 "calling gl.VertexAttribL3d({:?}, {:?}, {:?}, {:?});",
35358 index,
35359 x,
35360 y,
35361 z
35362 );
35363 }
35364 let out = call_atomic_ptr_4arg(
35365 "glVertexAttribL3d",
35366 &self.glVertexAttribL3d_p,
35367 index,
35368 x,
35369 y,
35370 z,
35371 );
35372 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35373 {
35374 self.automatic_glGetError("glVertexAttribL3d");
35375 }
35376 out
35377 }
35378 #[doc(hidden)]
35379 pub unsafe fn VertexAttribL3d_load_with_dyn(
35380 &self,
35381 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35382 ) -> bool {
35383 load_dyn_name_atomic_ptr(
35384 get_proc_address,
35385 b"glVertexAttribL3d\0",
35386 &self.glVertexAttribL3d_p,
35387 )
35388 }
35389 #[inline]
35390 #[doc(hidden)]
35391 pub fn VertexAttribL3d_is_loaded(&self) -> bool {
35392 !self.glVertexAttribL3d_p.load(RELAX).is_null()
35393 }
35394 /// [glVertexAttribL3dv](http://docs.gl/gl4/glVertexAttribL3dv)(index, v)
35395 /// * `v` len: 3
35396 #[cfg_attr(feature = "inline", inline)]
35397 #[cfg_attr(feature = "inline_always", inline(always))]
35398 pub unsafe fn VertexAttribL3dv(&self, index: GLuint, v: *const GLdouble) {
35399 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35400 {
35401 trace!("calling gl.VertexAttribL3dv({:?}, {:p});", index, v);
35402 }
35403 let out =
35404 call_atomic_ptr_2arg("glVertexAttribL3dv", &self.glVertexAttribL3dv_p, index, v);
35405 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35406 {
35407 self.automatic_glGetError("glVertexAttribL3dv");
35408 }
35409 out
35410 }
35411 #[doc(hidden)]
35412 pub unsafe fn VertexAttribL3dv_load_with_dyn(
35413 &self,
35414 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35415 ) -> bool {
35416 load_dyn_name_atomic_ptr(
35417 get_proc_address,
35418 b"glVertexAttribL3dv\0",
35419 &self.glVertexAttribL3dv_p,
35420 )
35421 }
35422 #[inline]
35423 #[doc(hidden)]
35424 pub fn VertexAttribL3dv_is_loaded(&self) -> bool {
35425 !self.glVertexAttribL3dv_p.load(RELAX).is_null()
35426 }
35427 /// [glVertexAttribL4d](http://docs.gl/gl4/glVertexAttribL4d)(index, x, y, z, w)
35428 #[cfg_attr(feature = "inline", inline)]
35429 #[cfg_attr(feature = "inline_always", inline(always))]
35430 pub unsafe fn VertexAttribL4d(
35431 &self,
35432 index: GLuint,
35433 x: GLdouble,
35434 y: GLdouble,
35435 z: GLdouble,
35436 w: GLdouble,
35437 ) {
35438 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35439 {
35440 trace!(
35441 "calling gl.VertexAttribL4d({:?}, {:?}, {:?}, {:?}, {:?});",
35442 index,
35443 x,
35444 y,
35445 z,
35446 w
35447 );
35448 }
35449 let out = call_atomic_ptr_5arg(
35450 "glVertexAttribL4d",
35451 &self.glVertexAttribL4d_p,
35452 index,
35453 x,
35454 y,
35455 z,
35456 w,
35457 );
35458 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35459 {
35460 self.automatic_glGetError("glVertexAttribL4d");
35461 }
35462 out
35463 }
35464 #[doc(hidden)]
35465 pub unsafe fn VertexAttribL4d_load_with_dyn(
35466 &self,
35467 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35468 ) -> bool {
35469 load_dyn_name_atomic_ptr(
35470 get_proc_address,
35471 b"glVertexAttribL4d\0",
35472 &self.glVertexAttribL4d_p,
35473 )
35474 }
35475 #[inline]
35476 #[doc(hidden)]
35477 pub fn VertexAttribL4d_is_loaded(&self) -> bool {
35478 !self.glVertexAttribL4d_p.load(RELAX).is_null()
35479 }
35480 /// [glVertexAttribL4dv](http://docs.gl/gl4/glVertexAttribL4dv)(index, v)
35481 /// * `v` len: 4
35482 #[cfg_attr(feature = "inline", inline)]
35483 #[cfg_attr(feature = "inline_always", inline(always))]
35484 pub unsafe fn VertexAttribL4dv(&self, index: GLuint, v: *const GLdouble) {
35485 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35486 {
35487 trace!("calling gl.VertexAttribL4dv({:?}, {:p});", index, v);
35488 }
35489 let out =
35490 call_atomic_ptr_2arg("glVertexAttribL4dv", &self.glVertexAttribL4dv_p, index, v);
35491 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35492 {
35493 self.automatic_glGetError("glVertexAttribL4dv");
35494 }
35495 out
35496 }
35497 #[doc(hidden)]
35498 pub unsafe fn VertexAttribL4dv_load_with_dyn(
35499 &self,
35500 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35501 ) -> bool {
35502 load_dyn_name_atomic_ptr(
35503 get_proc_address,
35504 b"glVertexAttribL4dv\0",
35505 &self.glVertexAttribL4dv_p,
35506 )
35507 }
35508 #[inline]
35509 #[doc(hidden)]
35510 pub fn VertexAttribL4dv_is_loaded(&self) -> bool {
35511 !self.glVertexAttribL4dv_p.load(RELAX).is_null()
35512 }
35513 /// [glVertexAttribLFormat](http://docs.gl/gl4/glVertexAttribLFormat)(attribindex, size, type_, relativeoffset)
35514 /// * `type_` group: VertexAttribLType
35515 #[cfg_attr(feature = "inline", inline)]
35516 #[cfg_attr(feature = "inline_always", inline(always))]
35517 pub unsafe fn VertexAttribLFormat(
35518 &self,
35519 attribindex: GLuint,
35520 size: GLint,
35521 type_: GLenum,
35522 relativeoffset: GLuint,
35523 ) {
35524 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35525 {
35526 trace!(
35527 "calling gl.VertexAttribLFormat({:?}, {:?}, {:#X}, {:?});",
35528 attribindex,
35529 size,
35530 type_,
35531 relativeoffset
35532 );
35533 }
35534 let out = call_atomic_ptr_4arg(
35535 "glVertexAttribLFormat",
35536 &self.glVertexAttribLFormat_p,
35537 attribindex,
35538 size,
35539 type_,
35540 relativeoffset,
35541 );
35542 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35543 {
35544 self.automatic_glGetError("glVertexAttribLFormat");
35545 }
35546 out
35547 }
35548 #[doc(hidden)]
35549 pub unsafe fn VertexAttribLFormat_load_with_dyn(
35550 &self,
35551 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35552 ) -> bool {
35553 load_dyn_name_atomic_ptr(
35554 get_proc_address,
35555 b"glVertexAttribLFormat\0",
35556 &self.glVertexAttribLFormat_p,
35557 )
35558 }
35559 #[inline]
35560 #[doc(hidden)]
35561 pub fn VertexAttribLFormat_is_loaded(&self) -> bool {
35562 !self.glVertexAttribLFormat_p.load(RELAX).is_null()
35563 }
35564 /// [glVertexAttribLPointer](http://docs.gl/gl4/glVertexAttribLPointer)(index, size, type_, stride, pointer)
35565 /// * `type_` group: VertexAttribLType
35566 /// * `pointer` len: size
35567 #[cfg_attr(feature = "inline", inline)]
35568 #[cfg_attr(feature = "inline_always", inline(always))]
35569 pub unsafe fn VertexAttribLPointer(
35570 &self,
35571 index: GLuint,
35572 size: GLint,
35573 type_: GLenum,
35574 stride: GLsizei,
35575 pointer: *const c_void,
35576 ) {
35577 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35578 {
35579 trace!(
35580 "calling gl.VertexAttribLPointer({:?}, {:?}, {:#X}, {:?}, {:p});",
35581 index,
35582 size,
35583 type_,
35584 stride,
35585 pointer
35586 );
35587 }
35588 let out = call_atomic_ptr_5arg(
35589 "glVertexAttribLPointer",
35590 &self.glVertexAttribLPointer_p,
35591 index,
35592 size,
35593 type_,
35594 stride,
35595 pointer,
35596 );
35597 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35598 {
35599 self.automatic_glGetError("glVertexAttribLPointer");
35600 }
35601 out
35602 }
35603 #[doc(hidden)]
35604 pub unsafe fn VertexAttribLPointer_load_with_dyn(
35605 &self,
35606 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35607 ) -> bool {
35608 load_dyn_name_atomic_ptr(
35609 get_proc_address,
35610 b"glVertexAttribLPointer\0",
35611 &self.glVertexAttribLPointer_p,
35612 )
35613 }
35614 #[inline]
35615 #[doc(hidden)]
35616 pub fn VertexAttribLPointer_is_loaded(&self) -> bool {
35617 !self.glVertexAttribLPointer_p.load(RELAX).is_null()
35618 }
35619 /// [glVertexAttribP1ui](http://docs.gl/gl4/glVertexAttribP)(index, type_, normalized, value)
35620 /// * `type_` group: VertexAttribPointerType
35621 #[cfg_attr(feature = "inline", inline)]
35622 #[cfg_attr(feature = "inline_always", inline(always))]
35623 pub unsafe fn VertexAttribP1ui(
35624 &self,
35625 index: GLuint,
35626 type_: GLenum,
35627 normalized: GLboolean,
35628 value: GLuint,
35629 ) {
35630 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35631 {
35632 trace!(
35633 "calling gl.VertexAttribP1ui({:?}, {:#X}, {:?}, {:?});",
35634 index,
35635 type_,
35636 normalized,
35637 value
35638 );
35639 }
35640 let out = call_atomic_ptr_4arg(
35641 "glVertexAttribP1ui",
35642 &self.glVertexAttribP1ui_p,
35643 index,
35644 type_,
35645 normalized,
35646 value,
35647 );
35648 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35649 {
35650 self.automatic_glGetError("glVertexAttribP1ui");
35651 }
35652 out
35653 }
35654 #[doc(hidden)]
35655 pub unsafe fn VertexAttribP1ui_load_with_dyn(
35656 &self,
35657 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35658 ) -> bool {
35659 load_dyn_name_atomic_ptr(
35660 get_proc_address,
35661 b"glVertexAttribP1ui\0",
35662 &self.glVertexAttribP1ui_p,
35663 )
35664 }
35665 #[inline]
35666 #[doc(hidden)]
35667 pub fn VertexAttribP1ui_is_loaded(&self) -> bool {
35668 !self.glVertexAttribP1ui_p.load(RELAX).is_null()
35669 }
35670 /// [glVertexAttribP1uiv](http://docs.gl/gl4/glVertexAttribP)(index, type_, normalized, value)
35671 /// * `type_` group: VertexAttribPointerType
35672 /// * `value` len: 1
35673 #[cfg_attr(feature = "inline", inline)]
35674 #[cfg_attr(feature = "inline_always", inline(always))]
35675 pub unsafe fn VertexAttribP1uiv(
35676 &self,
35677 index: GLuint,
35678 type_: GLenum,
35679 normalized: GLboolean,
35680 value: *const GLuint,
35681 ) {
35682 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35683 {
35684 trace!(
35685 "calling gl.VertexAttribP1uiv({:?}, {:#X}, {:?}, {:p});",
35686 index,
35687 type_,
35688 normalized,
35689 value
35690 );
35691 }
35692 let out = call_atomic_ptr_4arg(
35693 "glVertexAttribP1uiv",
35694 &self.glVertexAttribP1uiv_p,
35695 index,
35696 type_,
35697 normalized,
35698 value,
35699 );
35700 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35701 {
35702 self.automatic_glGetError("glVertexAttribP1uiv");
35703 }
35704 out
35705 }
35706 #[doc(hidden)]
35707 pub unsafe fn VertexAttribP1uiv_load_with_dyn(
35708 &self,
35709 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35710 ) -> bool {
35711 load_dyn_name_atomic_ptr(
35712 get_proc_address,
35713 b"glVertexAttribP1uiv\0",
35714 &self.glVertexAttribP1uiv_p,
35715 )
35716 }
35717 #[inline]
35718 #[doc(hidden)]
35719 pub fn VertexAttribP1uiv_is_loaded(&self) -> bool {
35720 !self.glVertexAttribP1uiv_p.load(RELAX).is_null()
35721 }
35722 /// [glVertexAttribP2ui](http://docs.gl/gl4/glVertexAttribP)(index, type_, normalized, value)
35723 /// * `type_` group: VertexAttribPointerType
35724 #[cfg_attr(feature = "inline", inline)]
35725 #[cfg_attr(feature = "inline_always", inline(always))]
35726 pub unsafe fn VertexAttribP2ui(
35727 &self,
35728 index: GLuint,
35729 type_: GLenum,
35730 normalized: GLboolean,
35731 value: GLuint,
35732 ) {
35733 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35734 {
35735 trace!(
35736 "calling gl.VertexAttribP2ui({:?}, {:#X}, {:?}, {:?});",
35737 index,
35738 type_,
35739 normalized,
35740 value
35741 );
35742 }
35743 let out = call_atomic_ptr_4arg(
35744 "glVertexAttribP2ui",
35745 &self.glVertexAttribP2ui_p,
35746 index,
35747 type_,
35748 normalized,
35749 value,
35750 );
35751 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35752 {
35753 self.automatic_glGetError("glVertexAttribP2ui");
35754 }
35755 out
35756 }
35757 #[doc(hidden)]
35758 pub unsafe fn VertexAttribP2ui_load_with_dyn(
35759 &self,
35760 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35761 ) -> bool {
35762 load_dyn_name_atomic_ptr(
35763 get_proc_address,
35764 b"glVertexAttribP2ui\0",
35765 &self.glVertexAttribP2ui_p,
35766 )
35767 }
35768 #[inline]
35769 #[doc(hidden)]
35770 pub fn VertexAttribP2ui_is_loaded(&self) -> bool {
35771 !self.glVertexAttribP2ui_p.load(RELAX).is_null()
35772 }
35773 /// [glVertexAttribP2uiv](http://docs.gl/gl4/glVertexAttribP)(index, type_, normalized, value)
35774 /// * `type_` group: VertexAttribPointerType
35775 /// * `value` len: 1
35776 #[cfg_attr(feature = "inline", inline)]
35777 #[cfg_attr(feature = "inline_always", inline(always))]
35778 pub unsafe fn VertexAttribP2uiv(
35779 &self,
35780 index: GLuint,
35781 type_: GLenum,
35782 normalized: GLboolean,
35783 value: *const GLuint,
35784 ) {
35785 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35786 {
35787 trace!(
35788 "calling gl.VertexAttribP2uiv({:?}, {:#X}, {:?}, {:p});",
35789 index,
35790 type_,
35791 normalized,
35792 value
35793 );
35794 }
35795 let out = call_atomic_ptr_4arg(
35796 "glVertexAttribP2uiv",
35797 &self.glVertexAttribP2uiv_p,
35798 index,
35799 type_,
35800 normalized,
35801 value,
35802 );
35803 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35804 {
35805 self.automatic_glGetError("glVertexAttribP2uiv");
35806 }
35807 out
35808 }
35809 #[doc(hidden)]
35810 pub unsafe fn VertexAttribP2uiv_load_with_dyn(
35811 &self,
35812 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35813 ) -> bool {
35814 load_dyn_name_atomic_ptr(
35815 get_proc_address,
35816 b"glVertexAttribP2uiv\0",
35817 &self.glVertexAttribP2uiv_p,
35818 )
35819 }
35820 #[inline]
35821 #[doc(hidden)]
35822 pub fn VertexAttribP2uiv_is_loaded(&self) -> bool {
35823 !self.glVertexAttribP2uiv_p.load(RELAX).is_null()
35824 }
35825 /// [glVertexAttribP3ui](http://docs.gl/gl4/glVertexAttribP)(index, type_, normalized, value)
35826 /// * `type_` group: VertexAttribPointerType
35827 #[cfg_attr(feature = "inline", inline)]
35828 #[cfg_attr(feature = "inline_always", inline(always))]
35829 pub unsafe fn VertexAttribP3ui(
35830 &self,
35831 index: GLuint,
35832 type_: GLenum,
35833 normalized: GLboolean,
35834 value: GLuint,
35835 ) {
35836 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35837 {
35838 trace!(
35839 "calling gl.VertexAttribP3ui({:?}, {:#X}, {:?}, {:?});",
35840 index,
35841 type_,
35842 normalized,
35843 value
35844 );
35845 }
35846 let out = call_atomic_ptr_4arg(
35847 "glVertexAttribP3ui",
35848 &self.glVertexAttribP3ui_p,
35849 index,
35850 type_,
35851 normalized,
35852 value,
35853 );
35854 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35855 {
35856 self.automatic_glGetError("glVertexAttribP3ui");
35857 }
35858 out
35859 }
35860 #[doc(hidden)]
35861 pub unsafe fn VertexAttribP3ui_load_with_dyn(
35862 &self,
35863 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35864 ) -> bool {
35865 load_dyn_name_atomic_ptr(
35866 get_proc_address,
35867 b"glVertexAttribP3ui\0",
35868 &self.glVertexAttribP3ui_p,
35869 )
35870 }
35871 #[inline]
35872 #[doc(hidden)]
35873 pub fn VertexAttribP3ui_is_loaded(&self) -> bool {
35874 !self.glVertexAttribP3ui_p.load(RELAX).is_null()
35875 }
35876 /// [glVertexAttribP3uiv](http://docs.gl/gl4/glVertexAttribP)(index, type_, normalized, value)
35877 /// * `type_` group: VertexAttribPointerType
35878 /// * `value` len: 1
35879 #[cfg_attr(feature = "inline", inline)]
35880 #[cfg_attr(feature = "inline_always", inline(always))]
35881 pub unsafe fn VertexAttribP3uiv(
35882 &self,
35883 index: GLuint,
35884 type_: GLenum,
35885 normalized: GLboolean,
35886 value: *const GLuint,
35887 ) {
35888 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35889 {
35890 trace!(
35891 "calling gl.VertexAttribP3uiv({:?}, {:#X}, {:?}, {:p});",
35892 index,
35893 type_,
35894 normalized,
35895 value
35896 );
35897 }
35898 let out = call_atomic_ptr_4arg(
35899 "glVertexAttribP3uiv",
35900 &self.glVertexAttribP3uiv_p,
35901 index,
35902 type_,
35903 normalized,
35904 value,
35905 );
35906 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35907 {
35908 self.automatic_glGetError("glVertexAttribP3uiv");
35909 }
35910 out
35911 }
35912 #[doc(hidden)]
35913 pub unsafe fn VertexAttribP3uiv_load_with_dyn(
35914 &self,
35915 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35916 ) -> bool {
35917 load_dyn_name_atomic_ptr(
35918 get_proc_address,
35919 b"glVertexAttribP3uiv\0",
35920 &self.glVertexAttribP3uiv_p,
35921 )
35922 }
35923 #[inline]
35924 #[doc(hidden)]
35925 pub fn VertexAttribP3uiv_is_loaded(&self) -> bool {
35926 !self.glVertexAttribP3uiv_p.load(RELAX).is_null()
35927 }
35928 /// [glVertexAttribP4ui](http://docs.gl/gl4/glVertexAttribP)(index, type_, normalized, value)
35929 /// * `type_` group: VertexAttribPointerType
35930 #[cfg_attr(feature = "inline", inline)]
35931 #[cfg_attr(feature = "inline_always", inline(always))]
35932 pub unsafe fn VertexAttribP4ui(
35933 &self,
35934 index: GLuint,
35935 type_: GLenum,
35936 normalized: GLboolean,
35937 value: GLuint,
35938 ) {
35939 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35940 {
35941 trace!(
35942 "calling gl.VertexAttribP4ui({:?}, {:#X}, {:?}, {:?});",
35943 index,
35944 type_,
35945 normalized,
35946 value
35947 );
35948 }
35949 let out = call_atomic_ptr_4arg(
35950 "glVertexAttribP4ui",
35951 &self.glVertexAttribP4ui_p,
35952 index,
35953 type_,
35954 normalized,
35955 value,
35956 );
35957 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35958 {
35959 self.automatic_glGetError("glVertexAttribP4ui");
35960 }
35961 out
35962 }
35963 #[doc(hidden)]
35964 pub unsafe fn VertexAttribP4ui_load_with_dyn(
35965 &self,
35966 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35967 ) -> bool {
35968 load_dyn_name_atomic_ptr(
35969 get_proc_address,
35970 b"glVertexAttribP4ui\0",
35971 &self.glVertexAttribP4ui_p,
35972 )
35973 }
35974 #[inline]
35975 #[doc(hidden)]
35976 pub fn VertexAttribP4ui_is_loaded(&self) -> bool {
35977 !self.glVertexAttribP4ui_p.load(RELAX).is_null()
35978 }
35979 /// [glVertexAttribP4uiv](http://docs.gl/gl4/glVertexAttribP)(index, type_, normalized, value)
35980 /// * `type_` group: VertexAttribPointerType
35981 /// * `value` len: 1
35982 #[cfg_attr(feature = "inline", inline)]
35983 #[cfg_attr(feature = "inline_always", inline(always))]
35984 pub unsafe fn VertexAttribP4uiv(
35985 &self,
35986 index: GLuint,
35987 type_: GLenum,
35988 normalized: GLboolean,
35989 value: *const GLuint,
35990 ) {
35991 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35992 {
35993 trace!(
35994 "calling gl.VertexAttribP4uiv({:?}, {:#X}, {:?}, {:p});",
35995 index,
35996 type_,
35997 normalized,
35998 value
35999 );
36000 }
36001 let out = call_atomic_ptr_4arg(
36002 "glVertexAttribP4uiv",
36003 &self.glVertexAttribP4uiv_p,
36004 index,
36005 type_,
36006 normalized,
36007 value,
36008 );
36009 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36010 {
36011 self.automatic_glGetError("glVertexAttribP4uiv");
36012 }
36013 out
36014 }
36015 #[doc(hidden)]
36016 pub unsafe fn VertexAttribP4uiv_load_with_dyn(
36017 &self,
36018 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36019 ) -> bool {
36020 load_dyn_name_atomic_ptr(
36021 get_proc_address,
36022 b"glVertexAttribP4uiv\0",
36023 &self.glVertexAttribP4uiv_p,
36024 )
36025 }
36026 #[inline]
36027 #[doc(hidden)]
36028 pub fn VertexAttribP4uiv_is_loaded(&self) -> bool {
36029 !self.glVertexAttribP4uiv_p.load(RELAX).is_null()
36030 }
36031 /// [glVertexAttribPointer](http://docs.gl/gl4/glVertexAttribPointer)(index, size, type_, normalized, stride, pointer)
36032 /// * `type_` group: VertexAttribPointerType
36033 /// * `pointer` len: COMPSIZE(size,type,stride)
36034 #[cfg_attr(feature = "inline", inline)]
36035 #[cfg_attr(feature = "inline_always", inline(always))]
36036 pub unsafe fn VertexAttribPointer(
36037 &self,
36038 index: GLuint,
36039 size: GLint,
36040 type_: GLenum,
36041 normalized: GLboolean,
36042 stride: GLsizei,
36043 pointer: *const c_void,
36044 ) {
36045 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36046 {
36047 trace!(
36048 "calling gl.VertexAttribPointer({:?}, {:?}, {:#X}, {:?}, {:?}, {:p});",
36049 index,
36050 size,
36051 type_,
36052 normalized,
36053 stride,
36054 pointer
36055 );
36056 }
36057 let out = call_atomic_ptr_6arg(
36058 "glVertexAttribPointer",
36059 &self.glVertexAttribPointer_p,
36060 index,
36061 size,
36062 type_,
36063 normalized,
36064 stride,
36065 pointer,
36066 );
36067 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36068 {
36069 self.automatic_glGetError("glVertexAttribPointer");
36070 }
36071 out
36072 }
36073 #[doc(hidden)]
36074 pub unsafe fn VertexAttribPointer_load_with_dyn(
36075 &self,
36076 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36077 ) -> bool {
36078 load_dyn_name_atomic_ptr(
36079 get_proc_address,
36080 b"glVertexAttribPointer\0",
36081 &self.glVertexAttribPointer_p,
36082 )
36083 }
36084 #[inline]
36085 #[doc(hidden)]
36086 pub fn VertexAttribPointer_is_loaded(&self) -> bool {
36087 !self.glVertexAttribPointer_p.load(RELAX).is_null()
36088 }
36089 /// [glVertexBindingDivisor](http://docs.gl/gl4/glVertexBindingDivisor)(bindingindex, divisor)
36090 #[cfg_attr(feature = "inline", inline)]
36091 #[cfg_attr(feature = "inline_always", inline(always))]
36092 pub unsafe fn VertexBindingDivisor(&self, bindingindex: GLuint, divisor: GLuint) {
36093 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36094 {
36095 trace!(
36096 "calling gl.VertexBindingDivisor({:?}, {:?});",
36097 bindingindex,
36098 divisor
36099 );
36100 }
36101 let out = call_atomic_ptr_2arg(
36102 "glVertexBindingDivisor",
36103 &self.glVertexBindingDivisor_p,
36104 bindingindex,
36105 divisor,
36106 );
36107 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36108 {
36109 self.automatic_glGetError("glVertexBindingDivisor");
36110 }
36111 out
36112 }
36113 #[doc(hidden)]
36114 pub unsafe fn VertexBindingDivisor_load_with_dyn(
36115 &self,
36116 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36117 ) -> bool {
36118 load_dyn_name_atomic_ptr(
36119 get_proc_address,
36120 b"glVertexBindingDivisor\0",
36121 &self.glVertexBindingDivisor_p,
36122 )
36123 }
36124 #[inline]
36125 #[doc(hidden)]
36126 pub fn VertexBindingDivisor_is_loaded(&self) -> bool {
36127 !self.glVertexBindingDivisor_p.load(RELAX).is_null()
36128 }
36129 /// [glViewport](http://docs.gl/gl4/glViewport)(x, y, width, height)
36130 /// * `x` group: WinCoord
36131 /// * `y` group: WinCoord
36132 #[cfg_attr(feature = "inline", inline)]
36133 #[cfg_attr(feature = "inline_always", inline(always))]
36134 pub unsafe fn Viewport(&self, x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
36135 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36136 {
36137 trace!(
36138 "calling gl.Viewport({:?}, {:?}, {:?}, {:?});",
36139 x,
36140 y,
36141 width,
36142 height
36143 );
36144 }
36145 let out = call_atomic_ptr_4arg("glViewport", &self.glViewport_p, x, y, width, height);
36146 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36147 {
36148 self.automatic_glGetError("glViewport");
36149 }
36150 out
36151 }
36152 #[doc(hidden)]
36153 pub unsafe fn Viewport_load_with_dyn(
36154 &self,
36155 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36156 ) -> bool {
36157 load_dyn_name_atomic_ptr(get_proc_address, b"glViewport\0", &self.glViewport_p)
36158 }
36159 #[inline]
36160 #[doc(hidden)]
36161 pub fn Viewport_is_loaded(&self) -> bool {
36162 !self.glViewport_p.load(RELAX).is_null()
36163 }
36164 /// [glViewportArrayv](http://docs.gl/gl4/glViewportArrayv)(first, count, v)
36165 /// * `v` len: COMPSIZE(count)
36166 #[cfg_attr(feature = "inline", inline)]
36167 #[cfg_attr(feature = "inline_always", inline(always))]
36168 pub unsafe fn ViewportArrayv(&self, first: GLuint, count: GLsizei, v: *const GLfloat) {
36169 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36170 {
36171 trace!(
36172 "calling gl.ViewportArrayv({:?}, {:?}, {:p});",
36173 first,
36174 count,
36175 v
36176 );
36177 }
36178 let out = call_atomic_ptr_3arg(
36179 "glViewportArrayv",
36180 &self.glViewportArrayv_p,
36181 first,
36182 count,
36183 v,
36184 );
36185 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36186 {
36187 self.automatic_glGetError("glViewportArrayv");
36188 }
36189 out
36190 }
36191 #[doc(hidden)]
36192 pub unsafe fn ViewportArrayv_load_with_dyn(
36193 &self,
36194 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36195 ) -> bool {
36196 load_dyn_name_atomic_ptr(
36197 get_proc_address,
36198 b"glViewportArrayv\0",
36199 &self.glViewportArrayv_p,
36200 )
36201 }
36202 #[inline]
36203 #[doc(hidden)]
36204 pub fn ViewportArrayv_is_loaded(&self) -> bool {
36205 !self.glViewportArrayv_p.load(RELAX).is_null()
36206 }
36207 /// [glViewportIndexedf](http://docs.gl/gl4/glViewportIndexed)(index, x, y, w, h)
36208 #[cfg_attr(feature = "inline", inline)]
36209 #[cfg_attr(feature = "inline_always", inline(always))]
36210 pub unsafe fn ViewportIndexedf(
36211 &self,
36212 index: GLuint,
36213 x: GLfloat,
36214 y: GLfloat,
36215 w: GLfloat,
36216 h: GLfloat,
36217 ) {
36218 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36219 {
36220 trace!(
36221 "calling gl.ViewportIndexedf({:?}, {:?}, {:?}, {:?}, {:?});",
36222 index,
36223 x,
36224 y,
36225 w,
36226 h
36227 );
36228 }
36229 let out = call_atomic_ptr_5arg(
36230 "glViewportIndexedf",
36231 &self.glViewportIndexedf_p,
36232 index,
36233 x,
36234 y,
36235 w,
36236 h,
36237 );
36238 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36239 {
36240 self.automatic_glGetError("glViewportIndexedf");
36241 }
36242 out
36243 }
36244 #[doc(hidden)]
36245 pub unsafe fn ViewportIndexedf_load_with_dyn(
36246 &self,
36247 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36248 ) -> bool {
36249 load_dyn_name_atomic_ptr(
36250 get_proc_address,
36251 b"glViewportIndexedf\0",
36252 &self.glViewportIndexedf_p,
36253 )
36254 }
36255 #[inline]
36256 #[doc(hidden)]
36257 pub fn ViewportIndexedf_is_loaded(&self) -> bool {
36258 !self.glViewportIndexedf_p.load(RELAX).is_null()
36259 }
36260 /// [glViewportIndexedfv](http://docs.gl/gl4/glViewportIndexed)(index, v)
36261 /// * `v` len: 4
36262 #[cfg_attr(feature = "inline", inline)]
36263 #[cfg_attr(feature = "inline_always", inline(always))]
36264 pub unsafe fn ViewportIndexedfv(&self, index: GLuint, v: *const GLfloat) {
36265 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36266 {
36267 trace!("calling gl.ViewportIndexedfv({:?}, {:p});", index, v);
36268 }
36269 let out =
36270 call_atomic_ptr_2arg("glViewportIndexedfv", &self.glViewportIndexedfv_p, index, v);
36271 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36272 {
36273 self.automatic_glGetError("glViewportIndexedfv");
36274 }
36275 out
36276 }
36277 #[doc(hidden)]
36278 pub unsafe fn ViewportIndexedfv_load_with_dyn(
36279 &self,
36280 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36281 ) -> bool {
36282 load_dyn_name_atomic_ptr(
36283 get_proc_address,
36284 b"glViewportIndexedfv\0",
36285 &self.glViewportIndexedfv_p,
36286 )
36287 }
36288 #[inline]
36289 #[doc(hidden)]
36290 pub fn ViewportIndexedfv_is_loaded(&self) -> bool {
36291 !self.glViewportIndexedfv_p.load(RELAX).is_null()
36292 }
36293 /// [glWaitSync](http://docs.gl/gl4/glWaitSync)(sync, flags, timeout)
36294 /// * `sync` group: sync
36295 /// * `flags` group: SyncBehaviorFlags
36296 #[cfg_attr(feature = "inline", inline)]
36297 #[cfg_attr(feature = "inline_always", inline(always))]
36298 pub unsafe fn WaitSync(&self, sync: GLsync, flags: GLbitfield, timeout: GLuint64) {
36299 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36300 {
36301 trace!(
36302 "calling gl.WaitSync({:p}, {:?}, {:?});",
36303 sync,
36304 flags,
36305 timeout
36306 );
36307 }
36308 let out = call_atomic_ptr_3arg("glWaitSync", &self.glWaitSync_p, sync, flags, timeout);
36309 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36310 {
36311 self.automatic_glGetError("glWaitSync");
36312 }
36313 out
36314 }
36315 #[doc(hidden)]
36316 pub unsafe fn WaitSync_load_with_dyn(
36317 &self,
36318 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36319 ) -> bool {
36320 load_dyn_name_atomic_ptr(get_proc_address, b"glWaitSync\0", &self.glWaitSync_p)
36321 }
36322 #[inline]
36323 #[doc(hidden)]
36324 pub fn WaitSync_is_loaded(&self) -> bool {
36325 !self.glWaitSync_p.load(RELAX).is_null()
36326 }
36327 }
36328 /// This holds the many, many function pointers for GL.
36329 ///
36330 /// It's typically quite large (hundreds of pointers), depending on what API level and extensions you selected during the generation.
36331 #[repr(C)]
36332 pub struct GlFns {
36333 glActiveShaderProgram_p: APcv,
36334 glActiveTexture_p: APcv,
36335 glAttachShader_p: APcv,
36336 glBeginConditionalRender_p: APcv,
36337 glBeginQuery_p: APcv,
36338 glBeginQueryIndexed_p: APcv,
36339 glBeginTransformFeedback_p: APcv,
36340 glBindAttribLocation_p: APcv,
36341 glBindBuffer_p: APcv,
36342 glBindBufferBase_p: APcv,
36343 glBindBufferRange_p: APcv,
36344 glBindBuffersBase_p: APcv,
36345 glBindBuffersRange_p: APcv,
36346 glBindFragDataLocation_p: APcv,
36347 glBindFragDataLocationIndexed_p: APcv,
36348 glBindFramebuffer_p: APcv,
36349 glBindImageTexture_p: APcv,
36350 glBindImageTextures_p: APcv,
36351 glBindProgramPipeline_p: APcv,
36352 glBindRenderbuffer_p: APcv,
36353 glBindSampler_p: APcv,
36354 glBindSamplers_p: APcv,
36355 glBindTexture_p: APcv,
36356 glBindTextureUnit_p: APcv,
36357 glBindTextures_p: APcv,
36358 glBindTransformFeedback_p: APcv,
36359 glBindVertexArray_p: APcv,
36360 glBindVertexBuffer_p: APcv,
36361 glBindVertexBuffers_p: APcv,
36362 glBlendBarrier_p: APcv,
36363 glBlendColor_p: APcv,
36364 glBlendEquation_p: APcv,
36365 glBlendEquationSeparate_p: APcv,
36366 glBlendEquationSeparatei_p: APcv,
36367 glBlendEquationi_p: APcv,
36368 glBlendFunc_p: APcv,
36369 glBlendFuncSeparate_p: APcv,
36370 glBlendFuncSeparatei_p: APcv,
36371 glBlendFunci_p: APcv,
36372 glBlitFramebuffer_p: APcv,
36373 glBlitNamedFramebuffer_p: APcv,
36374 glBufferData_p: APcv,
36375 glBufferStorage_p: APcv,
36376 glBufferStorageEXT_p: APcv,
36377 glBufferSubData_p: APcv,
36378 glCheckFramebufferStatus_p: APcv,
36379 glCheckNamedFramebufferStatus_p: APcv,
36380 glClampColor_p: APcv,
36381 glClear_p: APcv,
36382 glClearBufferData_p: APcv,
36383 glClearBufferSubData_p: APcv,
36384 glClearBufferfi_p: APcv,
36385 glClearBufferfv_p: APcv,
36386 glClearBufferiv_p: APcv,
36387 glClearBufferuiv_p: APcv,
36388 glClearColor_p: APcv,
36389 glClearDepth_p: APcv,
36390 glClearDepthf_p: APcv,
36391 glClearNamedBufferData_p: APcv,
36392 glClearNamedBufferSubData_p: APcv,
36393 glClearNamedFramebufferfi_p: APcv,
36394 glClearNamedFramebufferfv_p: APcv,
36395 glClearNamedFramebufferiv_p: APcv,
36396 glClearNamedFramebufferuiv_p: APcv,
36397 glClearStencil_p: APcv,
36398 glClearTexImage_p: APcv,
36399 glClearTexSubImage_p: APcv,
36400 glClientWaitSync_p: APcv,
36401 glClipControl_p: APcv,
36402 glColorMask_p: APcv,
36403 glColorMaskIndexedEXT_p: APcv,
36404 glColorMaski_p: APcv,
36405 glCompileShader_p: APcv,
36406 glCompressedTexImage1D_p: APcv,
36407 glCompressedTexImage2D_p: APcv,
36408 glCompressedTexImage3D_p: APcv,
36409 glCompressedTexSubImage1D_p: APcv,
36410 glCompressedTexSubImage2D_p: APcv,
36411 glCompressedTexSubImage3D_p: APcv,
36412 glCompressedTextureSubImage1D_p: APcv,
36413 glCompressedTextureSubImage2D_p: APcv,
36414 glCompressedTextureSubImage3D_p: APcv,
36415 glCopyBufferSubData_p: APcv,
36416 glCopyBufferSubDataNV_p: APcv,
36417 glCopyImageSubData_p: APcv,
36418 glCopyNamedBufferSubData_p: APcv,
36419 glCopyTexImage1D_p: APcv,
36420 glCopyTexImage2D_p: APcv,
36421 glCopyTexSubImage1D_p: APcv,
36422 glCopyTexSubImage2D_p: APcv,
36423 glCopyTexSubImage3D_p: APcv,
36424 glCopyTextureSubImage1D_p: APcv,
36425 glCopyTextureSubImage2D_p: APcv,
36426 glCopyTextureSubImage3D_p: APcv,
36427 glCreateBuffers_p: APcv,
36428 glCreateFramebuffers_p: APcv,
36429 glCreateProgram_p: APcv,
36430 glCreateProgramPipelines_p: APcv,
36431 glCreateQueries_p: APcv,
36432 glCreateRenderbuffers_p: APcv,
36433 glCreateSamplers_p: APcv,
36434 glCreateShader_p: APcv,
36435 glCreateShaderProgramv_p: APcv,
36436 glCreateTextures_p: APcv,
36437 glCreateTransformFeedbacks_p: APcv,
36438 glCreateVertexArrays_p: APcv,
36439 glCullFace_p: APcv,
36440 glDebugMessageCallback_p: APcv,
36441 glDebugMessageCallbackARB_p: APcv,
36442 glDebugMessageCallbackKHR_p: APcv,
36443 glDebugMessageControl_p: APcv,
36444 glDebugMessageControlARB_p: APcv,
36445 glDebugMessageControlKHR_p: APcv,
36446 glDebugMessageInsert_p: APcv,
36447 glDebugMessageInsertARB_p: APcv,
36448 glDebugMessageInsertKHR_p: APcv,
36449 glDeleteBuffers_p: APcv,
36450 glDeleteFramebuffers_p: APcv,
36451 glDeleteProgram_p: APcv,
36452 glDeleteProgramPipelines_p: APcv,
36453 glDeleteQueries_p: APcv,
36454 glDeleteRenderbuffers_p: APcv,
36455 glDeleteSamplers_p: APcv,
36456 glDeleteShader_p: APcv,
36457 glDeleteSync_p: APcv,
36458 glDeleteTextures_p: APcv,
36459 glDeleteTransformFeedbacks_p: APcv,
36460 glDeleteVertexArrays_p: APcv,
36461 glDepthFunc_p: APcv,
36462 glDepthMask_p: APcv,
36463 glDepthRange_p: APcv,
36464 glDepthRangeArrayv_p: APcv,
36465 glDepthRangeIndexed_p: APcv,
36466 glDepthRangef_p: APcv,
36467 glDetachShader_p: APcv,
36468 glDisable_p: APcv,
36469 glDisableIndexedEXT_p: APcv,
36470 glDisableVertexArrayAttrib_p: APcv,
36471 glDisableVertexAttribArray_p: APcv,
36472 glDisablei_p: APcv,
36473 glDispatchCompute_p: APcv,
36474 glDispatchComputeIndirect_p: APcv,
36475 glDrawArrays_p: APcv,
36476 glDrawArraysIndirect_p: APcv,
36477 glDrawArraysInstanced_p: APcv,
36478 glDrawArraysInstancedARB_p: APcv,
36479 glDrawArraysInstancedBaseInstance_p: APcv,
36480 glDrawBuffer_p: APcv,
36481 glDrawBuffers_p: APcv,
36482 glDrawElements_p: APcv,
36483 glDrawElementsBaseVertex_p: APcv,
36484 glDrawElementsIndirect_p: APcv,
36485 glDrawElementsInstanced_p: APcv,
36486 glDrawElementsInstancedARB_p: APcv,
36487 glDrawElementsInstancedBaseInstance_p: APcv,
36488 glDrawElementsInstancedBaseVertex_p: APcv,
36489 glDrawElementsInstancedBaseVertexBaseInstance_p: APcv,
36490 glDrawRangeElements_p: APcv,
36491 glDrawRangeElementsBaseVertex_p: APcv,
36492 glDrawTransformFeedback_p: APcv,
36493 glDrawTransformFeedbackInstanced_p: APcv,
36494 glDrawTransformFeedbackStream_p: APcv,
36495 glDrawTransformFeedbackStreamInstanced_p: APcv,
36496 glEnable_p: APcv,
36497 glEnableIndexedEXT_p: APcv,
36498 glEnableVertexArrayAttrib_p: APcv,
36499 glEnableVertexAttribArray_p: APcv,
36500 glEnablei_p: APcv,
36501 glEndConditionalRender_p: APcv,
36502 glEndQuery_p: APcv,
36503 glEndQueryIndexed_p: APcv,
36504 glEndTransformFeedback_p: APcv,
36505 glFenceSync_p: APcv,
36506 glFinish_p: APcv,
36507 glFlush_p: APcv,
36508 glFlushMappedBufferRange_p: APcv,
36509 glFlushMappedNamedBufferRange_p: APcv,
36510 glFramebufferParameteri_p: APcv,
36511 glFramebufferRenderbuffer_p: APcv,
36512 glFramebufferTexture_p: APcv,
36513 glFramebufferTexture1D_p: APcv,
36514 glFramebufferTexture2D_p: APcv,
36515 glFramebufferTexture3D_p: APcv,
36516 glFramebufferTextureLayer_p: APcv,
36517 glFrontFace_p: APcv,
36518 glGenBuffers_p: APcv,
36519 glGenFramebuffers_p: APcv,
36520 glGenProgramPipelines_p: APcv,
36521 glGenQueries_p: APcv,
36522 glGenRenderbuffers_p: APcv,
36523 glGenSamplers_p: APcv,
36524 glGenTextures_p: APcv,
36525 glGenTransformFeedbacks_p: APcv,
36526 glGenVertexArrays_p: APcv,
36527 glGenerateMipmap_p: APcv,
36528 glGenerateTextureMipmap_p: APcv,
36529 glGetActiveAtomicCounterBufferiv_p: APcv,
36530 glGetActiveAttrib_p: APcv,
36531 glGetActiveSubroutineName_p: APcv,
36532 glGetActiveSubroutineUniformName_p: APcv,
36533 glGetActiveSubroutineUniformiv_p: APcv,
36534 glGetActiveUniform_p: APcv,
36535 glGetActiveUniformBlockName_p: APcv,
36536 glGetActiveUniformBlockiv_p: APcv,
36537 glGetActiveUniformName_p: APcv,
36538 glGetActiveUniformsiv_p: APcv,
36539 glGetAttachedShaders_p: APcv,
36540 glGetAttribLocation_p: APcv,
36541 glGetBooleanIndexedvEXT_p: APcv,
36542 glGetBooleani_v_p: APcv,
36543 glGetBooleanv_p: APcv,
36544 glGetBufferParameteri64v_p: APcv,
36545 glGetBufferParameteriv_p: APcv,
36546 glGetBufferPointerv_p: APcv,
36547 glGetBufferSubData_p: APcv,
36548 glGetCompressedTexImage_p: APcv,
36549 glGetCompressedTextureImage_p: APcv,
36550 glGetCompressedTextureSubImage_p: APcv,
36551 glGetDebugMessageLog_p: APcv,
36552 glGetDebugMessageLogARB_p: APcv,
36553 glGetDebugMessageLogKHR_p: APcv,
36554 glGetDoublei_v_p: APcv,
36555 glGetDoublev_p: APcv,
36556 glGetError_p: APcv,
36557 glGetFloati_v_p: APcv,
36558 glGetFloatv_p: APcv,
36559 glGetFragDataIndex_p: APcv,
36560 glGetFragDataLocation_p: APcv,
36561 glGetFramebufferAttachmentParameteriv_p: APcv,
36562 glGetFramebufferParameteriv_p: APcv,
36563 glGetGraphicsResetStatus_p: APcv,
36564 glGetInteger64i_v_p: APcv,
36565 glGetInteger64v_p: APcv,
36566 glGetIntegerIndexedvEXT_p: APcv,
36567 glGetIntegeri_v_p: APcv,
36568 glGetIntegerv_p: APcv,
36569 glGetInternalformati64v_p: APcv,
36570 glGetInternalformativ_p: APcv,
36571 glGetMultisamplefv_p: APcv,
36572 glGetNamedBufferParameteri64v_p: APcv,
36573 glGetNamedBufferParameteriv_p: APcv,
36574 glGetNamedBufferPointerv_p: APcv,
36575 glGetNamedBufferSubData_p: APcv,
36576 glGetNamedFramebufferAttachmentParameteriv_p: APcv,
36577 glGetNamedFramebufferParameteriv_p: APcv,
36578 glGetNamedRenderbufferParameteriv_p: APcv,
36579 glGetObjectLabel_p: APcv,
36580 glGetObjectLabelKHR_p: APcv,
36581 glGetObjectPtrLabel_p: APcv,
36582 glGetObjectPtrLabelKHR_p: APcv,
36583 glGetPointerv_p: APcv,
36584 glGetPointervKHR_p: APcv,
36585 glGetProgramBinary_p: APcv,
36586 glGetProgramInfoLog_p: APcv,
36587 glGetProgramInterfaceiv_p: APcv,
36588 glGetProgramPipelineInfoLog_p: APcv,
36589 glGetProgramPipelineiv_p: APcv,
36590 glGetProgramResourceIndex_p: APcv,
36591 glGetProgramResourceLocation_p: APcv,
36592 glGetProgramResourceLocationIndex_p: APcv,
36593 glGetProgramResourceName_p: APcv,
36594 glGetProgramResourceiv_p: APcv,
36595 glGetProgramStageiv_p: APcv,
36596 glGetProgramiv_p: APcv,
36597 glGetQueryBufferObjecti64v_p: APcv,
36598 glGetQueryBufferObjectiv_p: APcv,
36599 glGetQueryBufferObjectui64v_p: APcv,
36600 glGetQueryBufferObjectuiv_p: APcv,
36601 glGetQueryIndexediv_p: APcv,
36602 glGetQueryObjecti64v_p: APcv,
36603 glGetQueryObjectiv_p: APcv,
36604 glGetQueryObjectui64v_p: APcv,
36605 glGetQueryObjectuiv_p: APcv,
36606 glGetQueryiv_p: APcv,
36607 glGetRenderbufferParameteriv_p: APcv,
36608 glGetSamplerParameterIiv_p: APcv,
36609 glGetSamplerParameterIuiv_p: APcv,
36610 glGetSamplerParameterfv_p: APcv,
36611 glGetSamplerParameteriv_p: APcv,
36612 glGetShaderInfoLog_p: APcv,
36613 glGetShaderPrecisionFormat_p: APcv,
36614 glGetShaderSource_p: APcv,
36615 glGetShaderiv_p: APcv,
36616 glGetString_p: APcv,
36617 glGetStringi_p: APcv,
36618 glGetSubroutineIndex_p: APcv,
36619 glGetSubroutineUniformLocation_p: APcv,
36620 glGetSynciv_p: APcv,
36621 glGetTexImage_p: APcv,
36622 glGetTexLevelParameterfv_p: APcv,
36623 glGetTexLevelParameteriv_p: APcv,
36624 glGetTexParameterIiv_p: APcv,
36625 glGetTexParameterIuiv_p: APcv,
36626 glGetTexParameterfv_p: APcv,
36627 glGetTexParameteriv_p: APcv,
36628 glGetTextureImage_p: APcv,
36629 glGetTextureLevelParameterfv_p: APcv,
36630 glGetTextureLevelParameteriv_p: APcv,
36631 glGetTextureParameterIiv_p: APcv,
36632 glGetTextureParameterIuiv_p: APcv,
36633 glGetTextureParameterfv_p: APcv,
36634 glGetTextureParameteriv_p: APcv,
36635 glGetTextureSubImage_p: APcv,
36636 glGetTransformFeedbackVarying_p: APcv,
36637 glGetTransformFeedbacki64_v_p: APcv,
36638 glGetTransformFeedbacki_v_p: APcv,
36639 glGetTransformFeedbackiv_p: APcv,
36640 glGetUniformBlockIndex_p: APcv,
36641 glGetUniformIndices_p: APcv,
36642 glGetUniformLocation_p: APcv,
36643 glGetUniformSubroutineuiv_p: APcv,
36644 glGetUniformdv_p: APcv,
36645 glGetUniformfv_p: APcv,
36646 glGetUniformiv_p: APcv,
36647 glGetUniformuiv_p: APcv,
36648 glGetVertexArrayIndexed64iv_p: APcv,
36649 glGetVertexArrayIndexediv_p: APcv,
36650 glGetVertexArrayiv_p: APcv,
36651 glGetVertexAttribIiv_p: APcv,
36652 glGetVertexAttribIuiv_p: APcv,
36653 glGetVertexAttribLdv_p: APcv,
36654 glGetVertexAttribPointerv_p: APcv,
36655 glGetVertexAttribdv_p: APcv,
36656 glGetVertexAttribfv_p: APcv,
36657 glGetVertexAttribiv_p: APcv,
36658 glGetnCompressedTexImage_p: APcv,
36659 glGetnTexImage_p: APcv,
36660 glGetnUniformdv_p: APcv,
36661 glGetnUniformfv_p: APcv,
36662 glGetnUniformiv_p: APcv,
36663 glGetnUniformuiv_p: APcv,
36664 glHint_p: APcv,
36665 glInvalidateBufferData_p: APcv,
36666 glInvalidateBufferSubData_p: APcv,
36667 glInvalidateFramebuffer_p: APcv,
36668 glInvalidateNamedFramebufferData_p: APcv,
36669 glInvalidateNamedFramebufferSubData_p: APcv,
36670 glInvalidateSubFramebuffer_p: APcv,
36671 glInvalidateTexImage_p: APcv,
36672 glInvalidateTexSubImage_p: APcv,
36673 glIsBuffer_p: APcv,
36674 glIsEnabled_p: APcv,
36675 glIsEnabledIndexedEXT_p: APcv,
36676 glIsEnabledi_p: APcv,
36677 glIsFramebuffer_p: APcv,
36678 glIsProgram_p: APcv,
36679 glIsProgramPipeline_p: APcv,
36680 glIsQuery_p: APcv,
36681 glIsRenderbuffer_p: APcv,
36682 glIsSampler_p: APcv,
36683 glIsShader_p: APcv,
36684 glIsSync_p: APcv,
36685 glIsTexture_p: APcv,
36686 glIsTransformFeedback_p: APcv,
36687 glIsVertexArray_p: APcv,
36688 glLineWidth_p: APcv,
36689 glLinkProgram_p: APcv,
36690 glLogicOp_p: APcv,
36691 glMapBuffer_p: APcv,
36692 glMapBufferRange_p: APcv,
36693 glMapNamedBuffer_p: APcv,
36694 glMapNamedBufferRange_p: APcv,
36695 glMaxShaderCompilerThreadsARB_p: APcv,
36696 glMaxShaderCompilerThreadsKHR_p: APcv,
36697 glMemoryBarrier_p: APcv,
36698 glMemoryBarrierByRegion_p: APcv,
36699 glMinSampleShading_p: APcv,
36700 glMultiDrawArrays_p: APcv,
36701 glMultiDrawArraysIndirect_p: APcv,
36702 glMultiDrawArraysIndirectCount_p: APcv,
36703 glMultiDrawElements_p: APcv,
36704 glMultiDrawElementsBaseVertex_p: APcv,
36705 glMultiDrawElementsIndirect_p: APcv,
36706 glMultiDrawElementsIndirectCount_p: APcv,
36707 glNamedBufferData_p: APcv,
36708 glNamedBufferStorage_p: APcv,
36709 glNamedBufferSubData_p: APcv,
36710 glNamedFramebufferDrawBuffer_p: APcv,
36711 glNamedFramebufferDrawBuffers_p: APcv,
36712 glNamedFramebufferParameteri_p: APcv,
36713 glNamedFramebufferReadBuffer_p: APcv,
36714 glNamedFramebufferRenderbuffer_p: APcv,
36715 glNamedFramebufferTexture_p: APcv,
36716 glNamedFramebufferTextureLayer_p: APcv,
36717 glNamedRenderbufferStorage_p: APcv,
36718 glNamedRenderbufferStorageMultisample_p: APcv,
36719 glObjectLabel_p: APcv,
36720 glObjectLabelKHR_p: APcv,
36721 glObjectPtrLabel_p: APcv,
36722 glObjectPtrLabelKHR_p: APcv,
36723 glPatchParameterfv_p: APcv,
36724 glPatchParameteri_p: APcv,
36725 glPauseTransformFeedback_p: APcv,
36726 glPixelStoref_p: APcv,
36727 glPixelStorei_p: APcv,
36728 glPointParameterf_p: APcv,
36729 glPointParameterfv_p: APcv,
36730 glPointParameteri_p: APcv,
36731 glPointParameteriv_p: APcv,
36732 glPointSize_p: APcv,
36733 glPolygonMode_p: APcv,
36734 glPolygonOffset_p: APcv,
36735 glPolygonOffsetClamp_p: APcv,
36736 glPopDebugGroup_p: APcv,
36737 glPopDebugGroupKHR_p: APcv,
36738 glPrimitiveBoundingBox_p: APcv,
36739 glPrimitiveRestartIndex_p: APcv,
36740 glProgramBinary_p: APcv,
36741 glProgramParameteri_p: APcv,
36742 glProgramUniform1d_p: APcv,
36743 glProgramUniform1dv_p: APcv,
36744 glProgramUniform1f_p: APcv,
36745 glProgramUniform1fv_p: APcv,
36746 glProgramUniform1i_p: APcv,
36747 glProgramUniform1iv_p: APcv,
36748 glProgramUniform1ui_p: APcv,
36749 glProgramUniform1uiv_p: APcv,
36750 glProgramUniform2d_p: APcv,
36751 glProgramUniform2dv_p: APcv,
36752 glProgramUniform2f_p: APcv,
36753 glProgramUniform2fv_p: APcv,
36754 glProgramUniform2i_p: APcv,
36755 glProgramUniform2iv_p: APcv,
36756 glProgramUniform2ui_p: APcv,
36757 glProgramUniform2uiv_p: APcv,
36758 glProgramUniform3d_p: APcv,
36759 glProgramUniform3dv_p: APcv,
36760 glProgramUniform3f_p: APcv,
36761 glProgramUniform3fv_p: APcv,
36762 glProgramUniform3i_p: APcv,
36763 glProgramUniform3iv_p: APcv,
36764 glProgramUniform3ui_p: APcv,
36765 glProgramUniform3uiv_p: APcv,
36766 glProgramUniform4d_p: APcv,
36767 glProgramUniform4dv_p: APcv,
36768 glProgramUniform4f_p: APcv,
36769 glProgramUniform4fv_p: APcv,
36770 glProgramUniform4i_p: APcv,
36771 glProgramUniform4iv_p: APcv,
36772 glProgramUniform4ui_p: APcv,
36773 glProgramUniform4uiv_p: APcv,
36774 glProgramUniformMatrix2dv_p: APcv,
36775 glProgramUniformMatrix2fv_p: APcv,
36776 glProgramUniformMatrix2x3dv_p: APcv,
36777 glProgramUniformMatrix2x3fv_p: APcv,
36778 glProgramUniformMatrix2x4dv_p: APcv,
36779 glProgramUniformMatrix2x4fv_p: APcv,
36780 glProgramUniformMatrix3dv_p: APcv,
36781 glProgramUniformMatrix3fv_p: APcv,
36782 glProgramUniformMatrix3x2dv_p: APcv,
36783 glProgramUniformMatrix3x2fv_p: APcv,
36784 glProgramUniformMatrix3x4dv_p: APcv,
36785 glProgramUniformMatrix3x4fv_p: APcv,
36786 glProgramUniformMatrix4dv_p: APcv,
36787 glProgramUniformMatrix4fv_p: APcv,
36788 glProgramUniformMatrix4x2dv_p: APcv,
36789 glProgramUniformMatrix4x2fv_p: APcv,
36790 glProgramUniformMatrix4x3dv_p: APcv,
36791 glProgramUniformMatrix4x3fv_p: APcv,
36792 glProvokingVertex_p: APcv,
36793 glPushDebugGroup_p: APcv,
36794 glPushDebugGroupKHR_p: APcv,
36795 glQueryCounter_p: APcv,
36796 glReadBuffer_p: APcv,
36797 glReadPixels_p: APcv,
36798 glReadnPixels_p: APcv,
36799 glReleaseShaderCompiler_p: APcv,
36800 glRenderbufferStorage_p: APcv,
36801 glRenderbufferStorageMultisample_p: APcv,
36802 glResumeTransformFeedback_p: APcv,
36803 glSampleCoverage_p: APcv,
36804 glSampleMaski_p: APcv,
36805 glSamplerParameterIiv_p: APcv,
36806 glSamplerParameterIuiv_p: APcv,
36807 glSamplerParameterf_p: APcv,
36808 glSamplerParameterfv_p: APcv,
36809 glSamplerParameteri_p: APcv,
36810 glSamplerParameteriv_p: APcv,
36811 glScissor_p: APcv,
36812 glScissorArrayv_p: APcv,
36813 glScissorIndexed_p: APcv,
36814 glScissorIndexedv_p: APcv,
36815 glShaderBinary_p: APcv,
36816 glShaderSource_p: APcv,
36817 glShaderStorageBlockBinding_p: APcv,
36818 glSpecializeShader_p: APcv,
36819 glStencilFunc_p: APcv,
36820 glStencilFuncSeparate_p: APcv,
36821 glStencilMask_p: APcv,
36822 glStencilMaskSeparate_p: APcv,
36823 glStencilOp_p: APcv,
36824 glStencilOpSeparate_p: APcv,
36825 glTexBuffer_p: APcv,
36826 glTexBufferRange_p: APcv,
36827 glTexImage1D_p: APcv,
36828 glTexImage2D_p: APcv,
36829 glTexImage2DMultisample_p: APcv,
36830 glTexImage3D_p: APcv,
36831 glTexImage3DMultisample_p: APcv,
36832 glTexParameterIiv_p: APcv,
36833 glTexParameterIuiv_p: APcv,
36834 glTexParameterf_p: APcv,
36835 glTexParameterfv_p: APcv,
36836 glTexParameteri_p: APcv,
36837 glTexParameteriv_p: APcv,
36838 glTexStorage1D_p: APcv,
36839 glTexStorage2D_p: APcv,
36840 glTexStorage2DMultisample_p: APcv,
36841 glTexStorage3D_p: APcv,
36842 glTexStorage3DMultisample_p: APcv,
36843 glTexSubImage1D_p: APcv,
36844 glTexSubImage2D_p: APcv,
36845 glTexSubImage3D_p: APcv,
36846 glTextureBarrier_p: APcv,
36847 glTextureBuffer_p: APcv,
36848 glTextureBufferRange_p: APcv,
36849 glTextureParameterIiv_p: APcv,
36850 glTextureParameterIuiv_p: APcv,
36851 glTextureParameterf_p: APcv,
36852 glTextureParameterfv_p: APcv,
36853 glTextureParameteri_p: APcv,
36854 glTextureParameteriv_p: APcv,
36855 glTextureStorage1D_p: APcv,
36856 glTextureStorage2D_p: APcv,
36857 glTextureStorage2DMultisample_p: APcv,
36858 glTextureStorage3D_p: APcv,
36859 glTextureStorage3DMultisample_p: APcv,
36860 glTextureSubImage1D_p: APcv,
36861 glTextureSubImage2D_p: APcv,
36862 glTextureSubImage3D_p: APcv,
36863 glTextureView_p: APcv,
36864 glTransformFeedbackBufferBase_p: APcv,
36865 glTransformFeedbackBufferRange_p: APcv,
36866 glTransformFeedbackVaryings_p: APcv,
36867 glUniform1d_p: APcv,
36868 glUniform1dv_p: APcv,
36869 glUniform1f_p: APcv,
36870 glUniform1fv_p: APcv,
36871 glUniform1i_p: APcv,
36872 glUniform1iv_p: APcv,
36873 glUniform1ui_p: APcv,
36874 glUniform1uiv_p: APcv,
36875 glUniform2d_p: APcv,
36876 glUniform2dv_p: APcv,
36877 glUniform2f_p: APcv,
36878 glUniform2fv_p: APcv,
36879 glUniform2i_p: APcv,
36880 glUniform2iv_p: APcv,
36881 glUniform2ui_p: APcv,
36882 glUniform2uiv_p: APcv,
36883 glUniform3d_p: APcv,
36884 glUniform3dv_p: APcv,
36885 glUniform3f_p: APcv,
36886 glUniform3fv_p: APcv,
36887 glUniform3i_p: APcv,
36888 glUniform3iv_p: APcv,
36889 glUniform3ui_p: APcv,
36890 glUniform3uiv_p: APcv,
36891 glUniform4d_p: APcv,
36892 glUniform4dv_p: APcv,
36893 glUniform4f_p: APcv,
36894 glUniform4fv_p: APcv,
36895 glUniform4i_p: APcv,
36896 glUniform4iv_p: APcv,
36897 glUniform4ui_p: APcv,
36898 glUniform4uiv_p: APcv,
36899 glUniformBlockBinding_p: APcv,
36900 glUniformMatrix2dv_p: APcv,
36901 glUniformMatrix2fv_p: APcv,
36902 glUniformMatrix2x3dv_p: APcv,
36903 glUniformMatrix2x3fv_p: APcv,
36904 glUniformMatrix2x4dv_p: APcv,
36905 glUniformMatrix2x4fv_p: APcv,
36906 glUniformMatrix3dv_p: APcv,
36907 glUniformMatrix3fv_p: APcv,
36908 glUniformMatrix3x2dv_p: APcv,
36909 glUniformMatrix3x2fv_p: APcv,
36910 glUniformMatrix3x4dv_p: APcv,
36911 glUniformMatrix3x4fv_p: APcv,
36912 glUniformMatrix4dv_p: APcv,
36913 glUniformMatrix4fv_p: APcv,
36914 glUniformMatrix4x2dv_p: APcv,
36915 glUniformMatrix4x2fv_p: APcv,
36916 glUniformMatrix4x3dv_p: APcv,
36917 glUniformMatrix4x3fv_p: APcv,
36918 glUniformSubroutinesuiv_p: APcv,
36919 glUnmapBuffer_p: APcv,
36920 glUnmapNamedBuffer_p: APcv,
36921 glUseProgram_p: APcv,
36922 glUseProgramStages_p: APcv,
36923 glValidateProgram_p: APcv,
36924 glValidateProgramPipeline_p: APcv,
36925 glVertexArrayAttribBinding_p: APcv,
36926 glVertexArrayAttribFormat_p: APcv,
36927 glVertexArrayAttribIFormat_p: APcv,
36928 glVertexArrayAttribLFormat_p: APcv,
36929 glVertexArrayBindingDivisor_p: APcv,
36930 glVertexArrayElementBuffer_p: APcv,
36931 glVertexArrayVertexBuffer_p: APcv,
36932 glVertexArrayVertexBuffers_p: APcv,
36933 glVertexAttrib1d_p: APcv,
36934 glVertexAttrib1dv_p: APcv,
36935 glVertexAttrib1f_p: APcv,
36936 glVertexAttrib1fv_p: APcv,
36937 glVertexAttrib1s_p: APcv,
36938 glVertexAttrib1sv_p: APcv,
36939 glVertexAttrib2d_p: APcv,
36940 glVertexAttrib2dv_p: APcv,
36941 glVertexAttrib2f_p: APcv,
36942 glVertexAttrib2fv_p: APcv,
36943 glVertexAttrib2s_p: APcv,
36944 glVertexAttrib2sv_p: APcv,
36945 glVertexAttrib3d_p: APcv,
36946 glVertexAttrib3dv_p: APcv,
36947 glVertexAttrib3f_p: APcv,
36948 glVertexAttrib3fv_p: APcv,
36949 glVertexAttrib3s_p: APcv,
36950 glVertexAttrib3sv_p: APcv,
36951 glVertexAttrib4Nbv_p: APcv,
36952 glVertexAttrib4Niv_p: APcv,
36953 glVertexAttrib4Nsv_p: APcv,
36954 glVertexAttrib4Nub_p: APcv,
36955 glVertexAttrib4Nubv_p: APcv,
36956 glVertexAttrib4Nuiv_p: APcv,
36957 glVertexAttrib4Nusv_p: APcv,
36958 glVertexAttrib4bv_p: APcv,
36959 glVertexAttrib4d_p: APcv,
36960 glVertexAttrib4dv_p: APcv,
36961 glVertexAttrib4f_p: APcv,
36962 glVertexAttrib4fv_p: APcv,
36963 glVertexAttrib4iv_p: APcv,
36964 glVertexAttrib4s_p: APcv,
36965 glVertexAttrib4sv_p: APcv,
36966 glVertexAttrib4ubv_p: APcv,
36967 glVertexAttrib4uiv_p: APcv,
36968 glVertexAttrib4usv_p: APcv,
36969 glVertexAttribBinding_p: APcv,
36970 glVertexAttribDivisor_p: APcv,
36971 glVertexAttribDivisorARB_p: APcv,
36972 glVertexAttribFormat_p: APcv,
36973 glVertexAttribI1i_p: APcv,
36974 glVertexAttribI1iv_p: APcv,
36975 glVertexAttribI1ui_p: APcv,
36976 glVertexAttribI1uiv_p: APcv,
36977 glVertexAttribI2i_p: APcv,
36978 glVertexAttribI2iv_p: APcv,
36979 glVertexAttribI2ui_p: APcv,
36980 glVertexAttribI2uiv_p: APcv,
36981 glVertexAttribI3i_p: APcv,
36982 glVertexAttribI3iv_p: APcv,
36983 glVertexAttribI3ui_p: APcv,
36984 glVertexAttribI3uiv_p: APcv,
36985 glVertexAttribI4bv_p: APcv,
36986 glVertexAttribI4i_p: APcv,
36987 glVertexAttribI4iv_p: APcv,
36988 glVertexAttribI4sv_p: APcv,
36989 glVertexAttribI4ubv_p: APcv,
36990 glVertexAttribI4ui_p: APcv,
36991 glVertexAttribI4uiv_p: APcv,
36992 glVertexAttribI4usv_p: APcv,
36993 glVertexAttribIFormat_p: APcv,
36994 glVertexAttribIPointer_p: APcv,
36995 glVertexAttribL1d_p: APcv,
36996 glVertexAttribL1dv_p: APcv,
36997 glVertexAttribL2d_p: APcv,
36998 glVertexAttribL2dv_p: APcv,
36999 glVertexAttribL3d_p: APcv,
37000 glVertexAttribL3dv_p: APcv,
37001 glVertexAttribL4d_p: APcv,
37002 glVertexAttribL4dv_p: APcv,
37003 glVertexAttribLFormat_p: APcv,
37004 glVertexAttribLPointer_p: APcv,
37005 glVertexAttribP1ui_p: APcv,
37006 glVertexAttribP1uiv_p: APcv,
37007 glVertexAttribP2ui_p: APcv,
37008 glVertexAttribP2uiv_p: APcv,
37009 glVertexAttribP3ui_p: APcv,
37010 glVertexAttribP3uiv_p: APcv,
37011 glVertexAttribP4ui_p: APcv,
37012 glVertexAttribP4uiv_p: APcv,
37013 glVertexAttribPointer_p: APcv,
37014 glVertexBindingDivisor_p: APcv,
37015 glViewport_p: APcv,
37016 glViewportArrayv_p: APcv,
37017 glViewportIndexedf_p: APcv,
37018 glViewportIndexedfv_p: APcv,
37019 glWaitSync_p: APcv,
37020 }
37021 #[cfg(feature = "bytemuck")]
37022 unsafe impl bytemuck::Zeroable for GlFns {}
37023 impl core::fmt::Debug for GlFns {
37024 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
37025 write!(f, "GlFns")
37026 }
37027 }
37028}
37029// end of module
37030