1#![allow(unused)]
2#![no_std]
3#![allow(bad_style)]
4#![deny(missing_docs)]
5#![deny(missing_debug_implementations)]
6
7#[cfg(any(
120 all(
121 not(feature = "log"),
122 any(feature = "debug_trace_calls", feature = "debug_automatic_glGetError")
123 ),
124 not(feature = "chlorine"),
125))]
126extern crate std;
127
128use std::os::raw::*;
129
130#[cfg(feature = "log")]
131#[allow(unused)]
132use log::{error, trace};
133#[cfg(all(not(feature = "log"), feature = "debug_trace_calls"))]
134macro_rules! trace { ($($arg:tt)*) => { std::println!($($arg)*) } }
135#[cfg(all(not(feature = "log"), feature = "debug_automatic_glGetError"))]
136macro_rules! error { ($($arg:tt)*) => { std::eprintln!($($arg)*) } }
137
138use core::{
139 mem::transmute,
140 ptr::null_mut,
141 sync::atomic::{AtomicPtr, Ordering},
142};
143#[allow(dead_code)]
144const RELAX: Ordering = Ordering::Relaxed;
145#[allow(dead_code)]
146type APcv = AtomicPtr<c_void>;
147const fn ap_null() -> APcv {
148 AtomicPtr::new(null_mut())
149}
150
151pub use types::*;
152#[allow(missing_docs)]
153pub mod types {
154 use super::*;
156 pub type GLenum = c_uint;
157 pub type GLboolean = c_uchar;
158 pub type GLbitfield = c_uint;
159 pub type GLvoid = c_void;
160 pub type GLbyte = i8;
161 pub type GLubyte = u8;
162 pub type GLshort = i16;
163 pub type GLushort = u16;
164 pub type GLint = c_int;
165 pub type GLuint = c_uint;
166 pub type GLclampx = i32;
167 pub type GLsizei = c_int;
168 pub type GLfloat = c_float;
169 pub type GLclampf = c_float;
170 pub type GLdouble = c_double;
171 pub type GLclampd = c_double;
172 pub type GLeglClientBufferEXT = *mut c_void;
173 pub type GLeglImageOES = *mut c_void;
174 pub type GLchar = c_char;
175 pub type GLcharARB = c_char;
176 #[cfg(any(target_os = "macos", target_os = "ios"))]
177 pub type GLhandleARB = *mut c_void;
178 #[cfg(not(any(target_os = "macos", target_os = "ios")))]
179 pub type GLhandleARB = c_uint;
180 pub type GLhalf = u16;
181 pub type GLhalfARB = u16;
182 pub type GLfixed = i32;
183 pub type GLintptr = isize;
184 pub type GLintptrARB = isize;
185 pub type GLsizeiptr = isize;
186 pub type GLsizeiptrARB = isize;
187 pub type GLint64 = i64;
188 pub type GLint64EXT = i64;
189 pub type GLuint64 = u64;
190 pub type GLuint64EXT = u64;
191 #[doc(hidden)]
192 pub struct __GLsync {
193 _priv: u8,
194 }
195 impl core::fmt::Debug for __GLsync {
196 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
197 write!(f, "__GLsync")
198 }
199 }
200 pub type GLsync = *mut __GLsync;
201 pub struct _cl_context {
202 _priv: u8,
203 }
204 impl core::fmt::Debug for _cl_context {
205 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
206 write!(f, "_cl_context")
207 }
208 }
209 pub struct _cl_event {
210 _priv: u8,
211 }
212 impl core::fmt::Debug for _cl_event {
213 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
214 write!(f, "_cl_event")
215 }
216 }
217 pub type GLDEBUGPROC = Option<
218 unsafe extern "system" fn(
219 source: GLenum,
220 gltype: GLenum,
221 id: GLuint,
222 severity: GLenum,
223 length: GLsizei,
224 message: *const GLchar,
225 userParam: *mut c_void,
226 ),
227 >;
228 pub type GLDEBUGPROCARB = Option<
229 extern "system" fn(
230 source: GLenum,
231 gltype: GLenum,
232 id: GLuint,
233 severity: GLenum,
234 length: GLsizei,
235 message: *const GLchar,
236 userParam: *mut c_void,
237 ),
238 >;
239 pub type GLDEBUGPROCKHR = Option<
240 extern "system" fn(
241 source: GLenum,
242 gltype: GLenum,
243 id: GLuint,
244 severity: GLenum,
245 length: GLsizei,
246 message: *const GLchar,
247 userParam: *mut c_void,
248 ),
249 >;
250 pub type GLDEBUGPROCAMD = Option<
251 extern "system" fn(
252 id: GLuint,
253 category: GLenum,
254 severity: GLenum,
255 length: GLsizei,
256 message: *const GLchar,
257 userParam: *mut c_void,
258 ),
259 >;
260 pub type GLhalfNV = c_ushort;
261 pub type GLvdpauSurfaceNV = GLintptr;
262 pub type GLVULKANPROCNV = Option<extern "system" fn()>;
263}
264
265pub use enums::*;
266pub mod enums {
267 use super::*;
271 #[doc = "`GL_ACTIVE_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92D9`"]
272 #[doc = "* **Group:** ProgramPropertyARB"]
273 pub const GL_ACTIVE_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92D9;
274 #[doc = "`GL_ACTIVE_ATTRIBUTES: GLenum = 0x8B89`"]
275 #[doc = "* **Group:** ProgramPropertyARB"]
276 pub const GL_ACTIVE_ATTRIBUTES: GLenum = 0x8B89;
277 #[doc = "`GL_ACTIVE_ATTRIBUTE_MAX_LENGTH: GLenum = 0x8B8A`"]
278 #[doc = "* **Group:** ProgramPropertyARB"]
279 pub const GL_ACTIVE_ATTRIBUTE_MAX_LENGTH: GLenum = 0x8B8A;
280 #[doc = "`GL_ACTIVE_PROGRAM: GLenum = 0x8259`"]
281 #[doc = "* **Group:** PipelineParameterName"]
282 pub const GL_ACTIVE_PROGRAM: GLenum = 0x8259;
283 #[doc = "`GL_ACTIVE_RESOURCES: GLenum = 0x92F5`"]
284 #[doc = "* **Group:** ProgramInterfacePName"]
285 pub const GL_ACTIVE_RESOURCES: GLenum = 0x92F5;
286 #[doc = "`GL_ACTIVE_SUBROUTINES: GLenum = 0x8DE5`"]
287 #[doc = "* **Group:** ProgramStagePName"]
288 pub const GL_ACTIVE_SUBROUTINES: GLenum = 0x8DE5;
289 #[doc = "`GL_ACTIVE_SUBROUTINE_MAX_LENGTH: GLenum = 0x8E48`"]
290 #[doc = "* **Group:** ProgramStagePName"]
291 pub const GL_ACTIVE_SUBROUTINE_MAX_LENGTH: GLenum = 0x8E48;
292 #[doc = "`GL_ACTIVE_SUBROUTINE_UNIFORMS: GLenum = 0x8DE6`"]
293 #[doc = "* **Group:** ProgramStagePName"]
294 pub const GL_ACTIVE_SUBROUTINE_UNIFORMS: GLenum = 0x8DE6;
295 #[doc = "`GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS: GLenum = 0x8E47`"]
296 #[doc = "* **Group:** ProgramStagePName"]
297 pub const GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS: GLenum = 0x8E47;
298 #[doc = "`GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH: GLenum = 0x8E49`"]
299 #[doc = "* **Group:** ProgramStagePName"]
300 pub const GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH: GLenum = 0x8E49;
301 #[doc = "`GL_ACTIVE_TEXTURE: GLenum = 0x84E0`"]
302 #[doc = "* **Group:** GetPName"]
303 pub const GL_ACTIVE_TEXTURE: GLenum = 0x84E0;
304 #[doc = "`GL_ACTIVE_UNIFORMS: GLenum = 0x8B86`"]
305 #[doc = "* **Group:** ProgramPropertyARB"]
306 pub const GL_ACTIVE_UNIFORMS: GLenum = 0x8B86;
307 #[doc = "`GL_ACTIVE_UNIFORM_BLOCKS: GLenum = 0x8A36`"]
308 #[doc = "* **Group:** ProgramPropertyARB"]
309 pub const GL_ACTIVE_UNIFORM_BLOCKS: GLenum = 0x8A36;
310 #[doc = "`GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH: GLenum = 0x8A35`"]
311 #[doc = "* **Group:** ProgramPropertyARB"]
312 pub const GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH: GLenum = 0x8A35;
313 #[doc = "`GL_ACTIVE_UNIFORM_MAX_LENGTH: GLenum = 0x8B87`"]
314 #[doc = "* **Group:** ProgramPropertyARB"]
315 pub const GL_ACTIVE_UNIFORM_MAX_LENGTH: GLenum = 0x8B87;
316 #[doc = "`GL_ACTIVE_VARIABLES: GLenum = 0x9305`"]
317 #[doc = "* **Group:** ProgramResourceProperty"]
318 pub const GL_ACTIVE_VARIABLES: GLenum = 0x9305;
319 #[doc = "`GL_ALIASED_LINE_WIDTH_RANGE: GLenum = 0x846E`"]
320 #[doc = "* **Group:** GetPName"]
321 pub const GL_ALIASED_LINE_WIDTH_RANGE: GLenum = 0x846E;
322 #[doc = "`GL_ALIASED_POINT_SIZE_RANGE: GLenum = 0x846D`"]
323 #[doc = "* **Group:** GetPName"]
324 pub const GL_ALIASED_POINT_SIZE_RANGE: GLenum = 0x846D;
325 #[doc = "`GL_ALL_BARRIER_BITS: GLbitfield = 0xFFFFFFFF`"]
326 #[doc = "* **Group:** MemoryBarrierMask"]
327 pub const GL_ALL_BARRIER_BITS: GLbitfield = 0xFFFFFFFF;
328 #[doc = "`GL_ALL_SHADER_BITS: GLbitfield = 0xFFFFFFFF`"]
329 #[doc = "* **Group:** UseProgramStageMask"]
330 pub const GL_ALL_SHADER_BITS: GLbitfield = 0xFFFFFFFF;
331 #[doc = "`GL_ALPHA: GLenum = 0x1906`"]
332 #[doc = "* **Groups:** TextureSwizzle, CombinerPortionNV, PathColorFormat, CombinerComponentUsageNV, PixelFormat"]
333 pub const GL_ALPHA: GLenum = 0x1906;
334 #[doc = "`GL_ALPHA_BITS: GLenum = 0x0D55`"]
335 #[doc = "* **Group:** GetPName"]
336 pub const GL_ALPHA_BITS: GLenum = 0x0D55;
337 #[doc = "`GL_ALREADY_SIGNALED: GLenum = 0x911A`"]
338 #[doc = "* **Group:** SyncStatus"]
339 pub const GL_ALREADY_SIGNALED: GLenum = 0x911A;
340 #[doc = "`GL_ALWAYS: GLenum = 0x0207`"]
341 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
342 pub const GL_ALWAYS: GLenum = 0x0207;
343 #[doc = "`GL_AND: GLenum = 0x1501`"]
344 #[doc = "* **Group:** LogicOp"]
345 pub const GL_AND: GLenum = 0x1501;
346 #[doc = "`GL_AND_INVERTED: GLenum = 0x1504`"]
347 #[doc = "* **Group:** LogicOp"]
348 pub const GL_AND_INVERTED: GLenum = 0x1504;
349 #[doc = "`GL_AND_REVERSE: GLenum = 0x1502`"]
350 #[doc = "* **Group:** LogicOp"]
351 pub const GL_AND_REVERSE: GLenum = 0x1502;
352 #[doc = "`GL_ANY_SAMPLES_PASSED: GLenum = 0x8C2F`"]
353 #[doc = "* **Group:** QueryTarget"]
354 pub const GL_ANY_SAMPLES_PASSED: GLenum = 0x8C2F;
355 #[doc = "`GL_ANY_SAMPLES_PASSED_CONSERVATIVE: GLenum = 0x8D6A`"]
356 #[doc = "* **Group:** QueryTarget"]
357 pub const GL_ANY_SAMPLES_PASSED_CONSERVATIVE: GLenum = 0x8D6A;
358 #[doc = "`GL_ARRAY_BUFFER: GLenum = 0x8892`"]
359 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
360 pub const GL_ARRAY_BUFFER: GLenum = 0x8892;
361 #[doc = "`GL_ARRAY_BUFFER_BINDING: GLenum = 0x8894`"]
362 #[doc = "* **Group:** GetPName"]
363 pub const GL_ARRAY_BUFFER_BINDING: GLenum = 0x8894;
364 #[doc = "`GL_ARRAY_SIZE: GLenum = 0x92FB`"]
365 #[doc = "* **Group:** ProgramResourceProperty"]
366 pub const GL_ARRAY_SIZE: GLenum = 0x92FB;
367 #[doc = "`GL_ARRAY_STRIDE: GLenum = 0x92FE`"]
368 #[doc = "* **Group:** ProgramResourceProperty"]
369 pub const GL_ARRAY_STRIDE: GLenum = 0x92FE;
370 #[doc = "`GL_ATOMIC_COUNTER_BARRIER_BIT: GLbitfield = 0x00001000`"]
371 #[doc = "* **Group:** MemoryBarrierMask"]
372 pub const GL_ATOMIC_COUNTER_BARRIER_BIT: GLbitfield = 0x00001000;
373 #[doc = "`GL_ATOMIC_COUNTER_BUFFER: GLenum = 0x92C0`"]
374 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
375 pub const GL_ATOMIC_COUNTER_BUFFER: GLenum = 0x92C0;
376 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS: GLenum = 0x92C5`"]
377 #[doc = "* **Group:** AtomicCounterBufferPName"]
378 pub const GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS: GLenum = 0x92C5;
379 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES: GLenum = 0x92C6`"]
380 #[doc = "* **Group:** AtomicCounterBufferPName"]
381 pub const GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES: GLenum = 0x92C6;
382 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_BINDING: GLenum = 0x92C1`"]
383 #[doc = "* **Group:** AtomicCounterBufferPName"]
384 pub const GL_ATOMIC_COUNTER_BUFFER_BINDING: GLenum = 0x92C1;
385 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE: GLenum = 0x92C4`"]
386 #[doc = "* **Group:** AtomicCounterBufferPName"]
387 pub const GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE: GLenum = 0x92C4;
388 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_INDEX: GLenum = 0x9301`"]
389 #[doc = "* **Group:** ProgramResourceProperty"]
390 pub const GL_ATOMIC_COUNTER_BUFFER_INDEX: GLenum = 0x9301;
391 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER: GLenum = 0x90ED`"]
392 #[doc = "* **Group:** AtomicCounterBufferPName"]
393 pub const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER: GLenum = 0x90ED;
394 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER: GLenum = 0x92CB`"]
395 #[doc = "* **Group:** AtomicCounterBufferPName"]
396 pub const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER: GLenum = 0x92CB;
397 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER: GLenum = 0x92CA`"]
398 #[doc = "* **Group:** AtomicCounterBufferPName"]
399 pub const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER: GLenum = 0x92CA;
400 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER: GLenum = 0x92C8`"]
401 #[doc = "* **Group:** AtomicCounterBufferPName"]
402 pub const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER: GLenum = 0x92C8;
403 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER: GLenum = 0x92C9`"]
404 #[doc = "* **Group:** AtomicCounterBufferPName"]
405 pub const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER: GLenum = 0x92C9;
406 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER: GLenum = 0x92C7`"]
407 #[doc = "* **Group:** AtomicCounterBufferPName"]
408 pub const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER: GLenum = 0x92C7;
409 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_SIZE: GLenum = 0x92C3`"]
410 pub const GL_ATOMIC_COUNTER_BUFFER_SIZE: GLenum = 0x92C3;
411 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_START: GLenum = 0x92C2`"]
412 pub const GL_ATOMIC_COUNTER_BUFFER_START: GLenum = 0x92C2;
413 #[doc = "`GL_ATTACHED_SHADERS: GLenum = 0x8B85`"]
414 #[doc = "* **Group:** ProgramPropertyARB"]
415 pub const GL_ATTACHED_SHADERS: GLenum = 0x8B85;
416 #[doc = "`GL_AUTO_GENERATE_MIPMAP: GLenum = 0x8295`"]
417 #[doc = "* **Group:** InternalFormatPName"]
418 pub const GL_AUTO_GENERATE_MIPMAP: GLenum = 0x8295;
419 #[doc = "`GL_BACK: GLenum = 0x0405`"]
420 #[doc = "* **Groups:** ColorBuffer, ColorMaterialFace, CullFaceMode, DrawBufferMode, ReadBufferMode, StencilFaceDirection, MaterialFace"]
421 pub const GL_BACK: GLenum = 0x0405;
422 #[doc = "`GL_BACK_LEFT: GLenum = 0x0402`"]
423 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode"]
424 pub const GL_BACK_LEFT: GLenum = 0x0402;
425 #[doc = "`GL_BACK_RIGHT: GLenum = 0x0403`"]
426 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode"]
427 pub const GL_BACK_RIGHT: GLenum = 0x0403;
428 #[doc = "`GL_BGR: GLenum = 0x80E0`"]
429 #[doc = "* **Group:** PixelFormat"]
430 pub const GL_BGR: GLenum = 0x80E0;
431 #[doc = "`GL_BGRA: GLenum = 0x80E1`"]
432 #[doc = "* **Group:** PixelFormat"]
433 pub const GL_BGRA: GLenum = 0x80E1;
434 #[doc = "`GL_BGRA_INTEGER: GLenum = 0x8D9B`"]
435 #[doc = "* **Group:** PixelFormat"]
436 pub const GL_BGRA_INTEGER: GLenum = 0x8D9B;
437 #[doc = "`GL_BGR_INTEGER: GLenum = 0x8D9A`"]
438 #[doc = "* **Group:** PixelFormat"]
439 pub const GL_BGR_INTEGER: GLenum = 0x8D9A;
440 #[doc = "`GL_BLEND: GLenum = 0x0BE2`"]
441 #[doc = "* **Groups:** TextureEnvMode, EnableCap, GetPName"]
442 pub const GL_BLEND: GLenum = 0x0BE2;
443 #[doc = "`GL_BLEND_COLOR: GLenum = 0x8005`"]
444 #[doc = "* **Group:** GetPName"]
445 pub const GL_BLEND_COLOR: GLenum = 0x8005;
446 #[doc = "`GL_BLEND_DST: GLenum = 0x0BE0`"]
447 #[doc = "* **Group:** GetPName"]
448 pub const GL_BLEND_DST: GLenum = 0x0BE0;
449 #[doc = "`GL_BLEND_DST_ALPHA: GLenum = 0x80CA`"]
450 #[doc = "* **Group:** GetPName"]
451 pub const GL_BLEND_DST_ALPHA: GLenum = 0x80CA;
452 #[doc = "`GL_BLEND_DST_RGB: GLenum = 0x80C8`"]
453 #[doc = "* **Group:** GetPName"]
454 pub const GL_BLEND_DST_RGB: GLenum = 0x80C8;
455 #[doc = "`GL_BLEND_EQUATION: GLenum = 0x8009`"]
456 pub const GL_BLEND_EQUATION: GLenum = 0x8009;
457 #[doc = "`GL_BLEND_EQUATION_ALPHA: GLenum = 0x883D`"]
458 #[doc = "* **Group:** GetPName"]
459 pub const GL_BLEND_EQUATION_ALPHA: GLenum = 0x883D;
460 #[doc = "`GL_BLEND_EQUATION_RGB: GLenum = 0x8009`"]
461 #[doc = "* **Group:** GetPName"]
462 pub const GL_BLEND_EQUATION_RGB: GLenum = 0x8009;
463 #[doc = "`GL_BLEND_SRC: GLenum = 0x0BE1`"]
464 #[doc = "* **Group:** GetPName"]
465 pub const GL_BLEND_SRC: GLenum = 0x0BE1;
466 #[doc = "`GL_BLEND_SRC_ALPHA: GLenum = 0x80CB`"]
467 #[doc = "* **Group:** GetPName"]
468 pub const GL_BLEND_SRC_ALPHA: GLenum = 0x80CB;
469 #[doc = "`GL_BLEND_SRC_RGB: GLenum = 0x80C9`"]
470 #[doc = "* **Group:** GetPName"]
471 pub const GL_BLEND_SRC_RGB: GLenum = 0x80C9;
472 #[doc = "`GL_BLOCK_INDEX: GLenum = 0x92FD`"]
473 #[doc = "* **Group:** ProgramResourceProperty"]
474 pub const GL_BLOCK_INDEX: GLenum = 0x92FD;
475 #[doc = "`GL_BLUE: GLenum = 0x1905`"]
476 #[doc = "* **Groups:** TextureSwizzle, CombinerComponentUsageNV, PixelFormat"]
477 pub const GL_BLUE: GLenum = 0x1905;
478 #[doc = "`GL_BLUE_BITS: GLenum = 0x0D54`"]
479 #[doc = "* **Group:** GetPName"]
480 pub const GL_BLUE_BITS: GLenum = 0x0D54;
481 #[doc = "`GL_BLUE_INTEGER: GLenum = 0x8D96`"]
482 #[doc = "* **Group:** PixelFormat"]
483 pub const GL_BLUE_INTEGER: GLenum = 0x8D96;
484 #[doc = "`GL_BOOL: GLenum = 0x8B56`"]
485 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
486 pub const GL_BOOL: GLenum = 0x8B56;
487 #[doc = "`GL_BOOL_VEC2: GLenum = 0x8B57`"]
488 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
489 pub const GL_BOOL_VEC2: GLenum = 0x8B57;
490 #[doc = "`GL_BOOL_VEC3: GLenum = 0x8B58`"]
491 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
492 pub const GL_BOOL_VEC3: GLenum = 0x8B58;
493 #[doc = "`GL_BOOL_VEC4: GLenum = 0x8B59`"]
494 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
495 pub const GL_BOOL_VEC4: GLenum = 0x8B59;
496 #[doc = "`GL_BUFFER: GLenum = 0x82E0`"]
497 #[doc = "* **Group:** ObjectIdentifier"]
498 pub const GL_BUFFER: GLenum = 0x82E0;
499 #[doc = "`GL_BUFFER_ACCESS: GLenum = 0x88BB`"]
500 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
501 pub const GL_BUFFER_ACCESS: GLenum = 0x88BB;
502 #[doc = "`GL_BUFFER_ACCESS_FLAGS: GLenum = 0x911F`"]
503 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
504 pub const GL_BUFFER_ACCESS_FLAGS: GLenum = 0x911F;
505 #[doc = "`GL_BUFFER_BINDING: GLenum = 0x9302`"]
506 #[doc = "* **Group:** ProgramResourceProperty"]
507 pub const GL_BUFFER_BINDING: GLenum = 0x9302;
508 #[doc = "`GL_BUFFER_DATA_SIZE: GLenum = 0x9303`"]
509 #[doc = "* **Group:** ProgramResourceProperty"]
510 pub const GL_BUFFER_DATA_SIZE: GLenum = 0x9303;
511 #[doc = "`GL_BUFFER_IMMUTABLE_STORAGE: GLenum = 0x821F`"]
512 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
513 pub const GL_BUFFER_IMMUTABLE_STORAGE: GLenum = 0x821F;
514 #[doc = "`GL_BUFFER_IMMUTABLE_STORAGE_EXT: GLenum = 0x821F`"]
515 pub const GL_BUFFER_IMMUTABLE_STORAGE_EXT: GLenum = 0x821F;
516 #[doc = "`GL_BUFFER_KHR: GLenum = 0x82E0`"]
517 pub const GL_BUFFER_KHR: GLenum = 0x82E0;
518 #[doc = "`GL_BUFFER_MAPPED: GLenum = 0x88BC`"]
519 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
520 pub const GL_BUFFER_MAPPED: GLenum = 0x88BC;
521 #[doc = "`GL_BUFFER_MAP_LENGTH: GLenum = 0x9120`"]
522 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
523 pub const GL_BUFFER_MAP_LENGTH: GLenum = 0x9120;
524 #[doc = "`GL_BUFFER_MAP_OFFSET: GLenum = 0x9121`"]
525 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
526 pub const GL_BUFFER_MAP_OFFSET: GLenum = 0x9121;
527 #[doc = "`GL_BUFFER_MAP_POINTER: GLenum = 0x88BD`"]
528 #[doc = "* **Group:** BufferPointerNameARB"]
529 pub const GL_BUFFER_MAP_POINTER: GLenum = 0x88BD;
530 #[doc = "`GL_BUFFER_SIZE: GLenum = 0x8764`"]
531 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
532 pub const GL_BUFFER_SIZE: GLenum = 0x8764;
533 #[doc = "`GL_BUFFER_STORAGE_FLAGS: GLenum = 0x8220`"]
534 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
535 pub const GL_BUFFER_STORAGE_FLAGS: GLenum = 0x8220;
536 #[doc = "`GL_BUFFER_STORAGE_FLAGS_EXT: GLenum = 0x8220`"]
537 pub const GL_BUFFER_STORAGE_FLAGS_EXT: GLenum = 0x8220;
538 #[doc = "`GL_BUFFER_UPDATE_BARRIER_BIT: GLbitfield = 0x00000200`"]
539 #[doc = "* **Group:** MemoryBarrierMask"]
540 pub const GL_BUFFER_UPDATE_BARRIER_BIT: GLbitfield = 0x00000200;
541 #[doc = "`GL_BUFFER_USAGE: GLenum = 0x8765`"]
542 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
543 pub const GL_BUFFER_USAGE: GLenum = 0x8765;
544 #[doc = "`GL_BUFFER_VARIABLE: GLenum = 0x92E5`"]
545 #[doc = "* **Group:** ProgramInterface"]
546 pub const GL_BUFFER_VARIABLE: GLenum = 0x92E5;
547 #[doc = "`GL_BYTE: GLenum = 0x1400`"]
548 #[doc = "* **Groups:** VertexAttribIType, WeightPointerTypeARB, TangentPointerTypeEXT, BinormalPointerTypeEXT, ColorPointerType, ListNameType, NormalPointerType, PixelType, VertexAttribType, VertexAttribPointerType"]
549 pub const GL_BYTE: GLenum = 0x1400;
550 #[doc = "`GL_CAVEAT_SUPPORT: GLenum = 0x82B8`"]
551 pub const GL_CAVEAT_SUPPORT: GLenum = 0x82B8;
552 #[doc = "`GL_CCW: GLenum = 0x0901`"]
553 #[doc = "* **Group:** FrontFaceDirection"]
554 pub const GL_CCW: GLenum = 0x0901;
555 #[doc = "`GL_CLAMP_READ_COLOR: GLenum = 0x891C`"]
556 #[doc = "* **Group:** ClampColorTargetARB"]
557 pub const GL_CLAMP_READ_COLOR: GLenum = 0x891C;
558 #[doc = "`GL_CLAMP_TO_BORDER: GLenum = 0x812D`"]
559 #[doc = "* **Group:** TextureWrapMode"]
560 pub const GL_CLAMP_TO_BORDER: GLenum = 0x812D;
561 #[doc = "`GL_CLAMP_TO_EDGE: GLenum = 0x812F`"]
562 #[doc = "* **Group:** TextureWrapMode"]
563 pub const GL_CLAMP_TO_EDGE: GLenum = 0x812F;
564 #[doc = "`GL_CLEAR: GLenum = 0x1500`"]
565 #[doc = "* **Group:** LogicOp"]
566 pub const GL_CLEAR: GLenum = 0x1500;
567 #[doc = "`GL_CLEAR_BUFFER: GLenum = 0x82B4`"]
568 #[doc = "* **Group:** InternalFormatPName"]
569 pub const GL_CLEAR_BUFFER: GLenum = 0x82B4;
570 #[doc = "`GL_CLEAR_TEXTURE: GLenum = 0x9365`"]
571 #[doc = "* **Group:** InternalFormatPName"]
572 pub const GL_CLEAR_TEXTURE: GLenum = 0x9365;
573 #[doc = "`GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT: GLbitfield = 0x00004000`"]
574 #[doc = "* **Group:** MemoryBarrierMask"]
575 pub const GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT: GLbitfield = 0x00004000;
576 #[doc = "`GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT: GLbitfield = 0x00004000`"]
577 #[doc = "* **Group:** MemoryBarrierMask"]
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 pub const GL_CLIENT_STORAGE_BIT_EXT: GLbitfield = 0x0200;
585 #[doc = "`GL_CLIPPING_INPUT_PRIMITIVES: GLenum = 0x82F6`"]
586 pub const GL_CLIPPING_INPUT_PRIMITIVES: GLenum = 0x82F6;
587 #[doc = "`GL_CLIPPING_OUTPUT_PRIMITIVES: GLenum = 0x82F7`"]
588 pub const GL_CLIPPING_OUTPUT_PRIMITIVES: GLenum = 0x82F7;
589 #[doc = "`GL_CLIP_DEPTH_MODE: GLenum = 0x935D`"]
590 pub const GL_CLIP_DEPTH_MODE: GLenum = 0x935D;
591 #[doc = "`GL_CLIP_DISTANCE0: GLenum = 0x3000`"]
592 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
593 #[doc = "* **Alias Of:** `GL_CLIP_PLANE0`"]
594 pub const GL_CLIP_DISTANCE0: GLenum = 0x3000;
595 #[doc = "`GL_CLIP_DISTANCE1: GLenum = 0x3001`"]
596 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
597 #[doc = "* **Alias Of:** `GL_CLIP_PLANE1`"]
598 pub const GL_CLIP_DISTANCE1: GLenum = 0x3001;
599 #[doc = "`GL_CLIP_DISTANCE2: GLenum = 0x3002`"]
600 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
601 #[doc = "* **Alias Of:** `GL_CLIP_PLANE2`"]
602 pub const GL_CLIP_DISTANCE2: GLenum = 0x3002;
603 #[doc = "`GL_CLIP_DISTANCE3: GLenum = 0x3003`"]
604 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
605 #[doc = "* **Alias Of:** `GL_CLIP_PLANE3`"]
606 pub const GL_CLIP_DISTANCE3: GLenum = 0x3003;
607 #[doc = "`GL_CLIP_DISTANCE4: GLenum = 0x3004`"]
608 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
609 #[doc = "* **Alias Of:** `GL_CLIP_PLANE4`"]
610 pub const GL_CLIP_DISTANCE4: GLenum = 0x3004;
611 #[doc = "`GL_CLIP_DISTANCE5: GLenum = 0x3005`"]
612 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
613 #[doc = "* **Alias Of:** `GL_CLIP_PLANE5`"]
614 pub const GL_CLIP_DISTANCE5: GLenum = 0x3005;
615 #[doc = "`GL_CLIP_DISTANCE6: GLenum = 0x3006`"]
616 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
617 pub const GL_CLIP_DISTANCE6: GLenum = 0x3006;
618 #[doc = "`GL_CLIP_DISTANCE7: GLenum = 0x3007`"]
619 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
620 pub const GL_CLIP_DISTANCE7: GLenum = 0x3007;
621 #[doc = "`GL_CLIP_ORIGIN: GLenum = 0x935C`"]
622 pub const GL_CLIP_ORIGIN: GLenum = 0x935C;
623 #[doc = "`GL_COLOR: GLenum = 0x1800`"]
624 #[doc = "* **Groups:** Buffer, PixelCopyType, InvalidateFramebufferAttachment"]
625 pub const GL_COLOR: GLenum = 0x1800;
626 #[doc = "`GL_COLORBURN: GLenum = 0x929A`"]
627 pub const GL_COLORBURN: GLenum = 0x929A;
628 #[doc = "`GL_COLORDODGE: GLenum = 0x9299`"]
629 pub const GL_COLORDODGE: GLenum = 0x9299;
630 #[doc = "`GL_COLOR_ATTACHMENT0: GLenum = 0x8CE0`"]
631 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
632 pub const GL_COLOR_ATTACHMENT0: GLenum = 0x8CE0;
633 #[doc = "`GL_COLOR_ATTACHMENT1: GLenum = 0x8CE1`"]
634 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
635 pub const GL_COLOR_ATTACHMENT1: GLenum = 0x8CE1;
636 #[doc = "`GL_COLOR_ATTACHMENT10: GLenum = 0x8CEA`"]
637 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
638 pub const GL_COLOR_ATTACHMENT10: GLenum = 0x8CEA;
639 #[doc = "`GL_COLOR_ATTACHMENT11: GLenum = 0x8CEB`"]
640 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
641 pub const GL_COLOR_ATTACHMENT11: GLenum = 0x8CEB;
642 #[doc = "`GL_COLOR_ATTACHMENT12: GLenum = 0x8CEC`"]
643 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
644 pub const GL_COLOR_ATTACHMENT12: GLenum = 0x8CEC;
645 #[doc = "`GL_COLOR_ATTACHMENT13: GLenum = 0x8CED`"]
646 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
647 pub const GL_COLOR_ATTACHMENT13: GLenum = 0x8CED;
648 #[doc = "`GL_COLOR_ATTACHMENT14: GLenum = 0x8CEE`"]
649 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
650 pub const GL_COLOR_ATTACHMENT14: GLenum = 0x8CEE;
651 #[doc = "`GL_COLOR_ATTACHMENT15: GLenum = 0x8CEF`"]
652 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
653 pub const GL_COLOR_ATTACHMENT15: GLenum = 0x8CEF;
654 #[doc = "`GL_COLOR_ATTACHMENT16: GLenum = 0x8CF0`"]
655 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
656 pub const GL_COLOR_ATTACHMENT16: GLenum = 0x8CF0;
657 #[doc = "`GL_COLOR_ATTACHMENT17: GLenum = 0x8CF1`"]
658 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
659 pub const GL_COLOR_ATTACHMENT17: GLenum = 0x8CF1;
660 #[doc = "`GL_COLOR_ATTACHMENT18: GLenum = 0x8CF2`"]
661 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
662 pub const GL_COLOR_ATTACHMENT18: GLenum = 0x8CF2;
663 #[doc = "`GL_COLOR_ATTACHMENT19: GLenum = 0x8CF3`"]
664 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
665 pub const GL_COLOR_ATTACHMENT19: GLenum = 0x8CF3;
666 #[doc = "`GL_COLOR_ATTACHMENT2: GLenum = 0x8CE2`"]
667 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
668 pub const GL_COLOR_ATTACHMENT2: GLenum = 0x8CE2;
669 #[doc = "`GL_COLOR_ATTACHMENT20: GLenum = 0x8CF4`"]
670 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
671 pub const GL_COLOR_ATTACHMENT20: GLenum = 0x8CF4;
672 #[doc = "`GL_COLOR_ATTACHMENT21: GLenum = 0x8CF5`"]
673 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
674 pub const GL_COLOR_ATTACHMENT21: GLenum = 0x8CF5;
675 #[doc = "`GL_COLOR_ATTACHMENT22: GLenum = 0x8CF6`"]
676 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
677 pub const GL_COLOR_ATTACHMENT22: GLenum = 0x8CF6;
678 #[doc = "`GL_COLOR_ATTACHMENT23: GLenum = 0x8CF7`"]
679 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
680 pub const GL_COLOR_ATTACHMENT23: GLenum = 0x8CF7;
681 #[doc = "`GL_COLOR_ATTACHMENT24: GLenum = 0x8CF8`"]
682 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
683 pub const GL_COLOR_ATTACHMENT24: GLenum = 0x8CF8;
684 #[doc = "`GL_COLOR_ATTACHMENT25: GLenum = 0x8CF9`"]
685 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
686 pub const GL_COLOR_ATTACHMENT25: GLenum = 0x8CF9;
687 #[doc = "`GL_COLOR_ATTACHMENT26: GLenum = 0x8CFA`"]
688 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
689 pub const GL_COLOR_ATTACHMENT26: GLenum = 0x8CFA;
690 #[doc = "`GL_COLOR_ATTACHMENT27: GLenum = 0x8CFB`"]
691 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
692 pub const GL_COLOR_ATTACHMENT27: GLenum = 0x8CFB;
693 #[doc = "`GL_COLOR_ATTACHMENT28: GLenum = 0x8CFC`"]
694 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
695 pub const GL_COLOR_ATTACHMENT28: GLenum = 0x8CFC;
696 #[doc = "`GL_COLOR_ATTACHMENT29: GLenum = 0x8CFD`"]
697 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
698 pub const GL_COLOR_ATTACHMENT29: GLenum = 0x8CFD;
699 #[doc = "`GL_COLOR_ATTACHMENT3: GLenum = 0x8CE3`"]
700 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
701 pub const GL_COLOR_ATTACHMENT3: GLenum = 0x8CE3;
702 #[doc = "`GL_COLOR_ATTACHMENT30: GLenum = 0x8CFE`"]
703 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
704 pub const GL_COLOR_ATTACHMENT30: GLenum = 0x8CFE;
705 #[doc = "`GL_COLOR_ATTACHMENT31: GLenum = 0x8CFF`"]
706 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
707 pub const GL_COLOR_ATTACHMENT31: GLenum = 0x8CFF;
708 #[doc = "`GL_COLOR_ATTACHMENT4: GLenum = 0x8CE4`"]
709 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
710 pub const GL_COLOR_ATTACHMENT4: GLenum = 0x8CE4;
711 #[doc = "`GL_COLOR_ATTACHMENT5: GLenum = 0x8CE5`"]
712 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
713 pub const GL_COLOR_ATTACHMENT5: GLenum = 0x8CE5;
714 #[doc = "`GL_COLOR_ATTACHMENT6: GLenum = 0x8CE6`"]
715 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
716 pub const GL_COLOR_ATTACHMENT6: GLenum = 0x8CE6;
717 #[doc = "`GL_COLOR_ATTACHMENT7: GLenum = 0x8CE7`"]
718 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
719 pub const GL_COLOR_ATTACHMENT7: GLenum = 0x8CE7;
720 #[doc = "`GL_COLOR_ATTACHMENT8: GLenum = 0x8CE8`"]
721 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
722 pub const GL_COLOR_ATTACHMENT8: GLenum = 0x8CE8;
723 #[doc = "`GL_COLOR_ATTACHMENT9: GLenum = 0x8CE9`"]
724 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
725 pub const GL_COLOR_ATTACHMENT9: GLenum = 0x8CE9;
726 #[doc = "`GL_COLOR_BUFFER_BIT: GLbitfield = 0x00004000`"]
727 #[doc = "* **Groups:** ClearBufferMask, AttribMask"]
728 pub const GL_COLOR_BUFFER_BIT: GLbitfield = 0x00004000;
729 #[doc = "`GL_COLOR_CLEAR_VALUE: GLenum = 0x0C22`"]
730 #[doc = "* **Group:** GetPName"]
731 pub const GL_COLOR_CLEAR_VALUE: GLenum = 0x0C22;
732 #[doc = "`GL_COLOR_COMPONENTS: GLenum = 0x8283`"]
733 #[doc = "* **Group:** InternalFormatPName"]
734 pub const GL_COLOR_COMPONENTS: GLenum = 0x8283;
735 #[doc = "`GL_COLOR_ENCODING: GLenum = 0x8296`"]
736 #[doc = "* **Group:** InternalFormatPName"]
737 pub const GL_COLOR_ENCODING: GLenum = 0x8296;
738 #[doc = "`GL_COLOR_LOGIC_OP: GLenum = 0x0BF2`"]
739 #[doc = "* **Groups:** GetPName, EnableCap"]
740 pub const GL_COLOR_LOGIC_OP: GLenum = 0x0BF2;
741 #[doc = "`GL_COLOR_RENDERABLE: GLenum = 0x8286`"]
742 #[doc = "* **Group:** InternalFormatPName"]
743 pub const GL_COLOR_RENDERABLE: GLenum = 0x8286;
744 #[doc = "`GL_COLOR_WRITEMASK: GLenum = 0x0C23`"]
745 #[doc = "* **Group:** GetPName"]
746 pub const GL_COLOR_WRITEMASK: GLenum = 0x0C23;
747 #[doc = "`GL_COMMAND_BARRIER_BIT: GLbitfield = 0x00000040`"]
748 #[doc = "* **Group:** MemoryBarrierMask"]
749 pub const GL_COMMAND_BARRIER_BIT: GLbitfield = 0x00000040;
750 #[doc = "`GL_COMPARE_REF_TO_TEXTURE: GLenum = 0x884E`"]
751 #[doc = "* **Group:** TextureCompareMode"]
752 #[doc = "* **Alias Of:** `GL_COMPARE_R_TO_TEXTURE`"]
753 pub const GL_COMPARE_REF_TO_TEXTURE: GLenum = 0x884E;
754 #[doc = "`GL_COMPATIBLE_SUBROUTINES: GLenum = 0x8E4B`"]
755 #[doc = "* **Groups:** ProgramResourceProperty, SubroutineParameterName"]
756 pub const GL_COMPATIBLE_SUBROUTINES: GLenum = 0x8E4B;
757 #[doc = "`GL_COMPILE_STATUS: GLenum = 0x8B81`"]
758 #[doc = "* **Group:** ShaderParameterName"]
759 pub const GL_COMPILE_STATUS: GLenum = 0x8B81;
760 #[doc = "`GL_COMPLETION_STATUS_ARB: GLenum = 0x91B1`"]
761 #[doc = "* **Alias Of:** `GL_COMPLETION_STATUS_KHR`"]
762 pub const GL_COMPLETION_STATUS_ARB: GLenum = 0x91B1;
763 #[doc = "`GL_COMPLETION_STATUS_KHR: GLenum = 0x91B1`"]
764 pub const GL_COMPLETION_STATUS_KHR: GLenum = 0x91B1;
765 #[doc = "`GL_COMPRESSED_R11_EAC: GLenum = 0x9270`"]
766 #[doc = "* **Group:** InternalFormat"]
767 pub const GL_COMPRESSED_R11_EAC: GLenum = 0x9270;
768 #[doc = "`GL_COMPRESSED_RED: GLenum = 0x8225`"]
769 #[doc = "* **Group:** InternalFormat"]
770 pub const GL_COMPRESSED_RED: GLenum = 0x8225;
771 #[doc = "`GL_COMPRESSED_RED_RGTC1: GLenum = 0x8DBB`"]
772 #[doc = "* **Group:** InternalFormat"]
773 pub const GL_COMPRESSED_RED_RGTC1: GLenum = 0x8DBB;
774 #[doc = "`GL_COMPRESSED_RG: GLenum = 0x8226`"]
775 #[doc = "* **Group:** InternalFormat"]
776 pub const GL_COMPRESSED_RG: GLenum = 0x8226;
777 #[doc = "`GL_COMPRESSED_RG11_EAC: GLenum = 0x9272`"]
778 #[doc = "* **Group:** InternalFormat"]
779 pub const GL_COMPRESSED_RG11_EAC: GLenum = 0x9272;
780 #[doc = "`GL_COMPRESSED_RGB: GLenum = 0x84ED`"]
781 #[doc = "* **Group:** InternalFormat"]
782 pub const GL_COMPRESSED_RGB: GLenum = 0x84ED;
783 #[doc = "`GL_COMPRESSED_RGB8_ETC2: GLenum = 0x9274`"]
784 #[doc = "* **Group:** InternalFormat"]
785 pub const GL_COMPRESSED_RGB8_ETC2: GLenum = 0x9274;
786 #[doc = "`GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: GLenum = 0x9276`"]
787 #[doc = "* **Group:** InternalFormat"]
788 pub const GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: GLenum = 0x9276;
789 #[doc = "`GL_COMPRESSED_RGBA: GLenum = 0x84EE`"]
790 #[doc = "* **Group:** InternalFormat"]
791 pub const GL_COMPRESSED_RGBA: GLenum = 0x84EE;
792 #[doc = "`GL_COMPRESSED_RGBA8_ETC2_EAC: GLenum = 0x9278`"]
793 #[doc = "* **Group:** InternalFormat"]
794 pub const GL_COMPRESSED_RGBA8_ETC2_EAC: GLenum = 0x9278;
795 #[doc = "`GL_COMPRESSED_RGBA_ASTC_10x10: GLenum = 0x93BB`"]
796 #[doc = "* **Group:** InternalFormat"]
797 pub const GL_COMPRESSED_RGBA_ASTC_10x10: GLenum = 0x93BB;
798 #[doc = "`GL_COMPRESSED_RGBA_ASTC_10x5: GLenum = 0x93B8`"]
799 #[doc = "* **Group:** InternalFormat"]
800 pub const GL_COMPRESSED_RGBA_ASTC_10x5: GLenum = 0x93B8;
801 #[doc = "`GL_COMPRESSED_RGBA_ASTC_10x6: GLenum = 0x93B9`"]
802 #[doc = "* **Group:** InternalFormat"]
803 pub const GL_COMPRESSED_RGBA_ASTC_10x6: GLenum = 0x93B9;
804 #[doc = "`GL_COMPRESSED_RGBA_ASTC_10x8: GLenum = 0x93BA`"]
805 #[doc = "* **Group:** InternalFormat"]
806 pub const GL_COMPRESSED_RGBA_ASTC_10x8: GLenum = 0x93BA;
807 #[doc = "`GL_COMPRESSED_RGBA_ASTC_12x10: GLenum = 0x93BC`"]
808 #[doc = "* **Group:** InternalFormat"]
809 pub const GL_COMPRESSED_RGBA_ASTC_12x10: GLenum = 0x93BC;
810 #[doc = "`GL_COMPRESSED_RGBA_ASTC_12x12: GLenum = 0x93BD`"]
811 #[doc = "* **Group:** InternalFormat"]
812 pub const GL_COMPRESSED_RGBA_ASTC_12x12: GLenum = 0x93BD;
813 #[doc = "`GL_COMPRESSED_RGBA_ASTC_4x4: GLenum = 0x93B0`"]
814 #[doc = "* **Group:** InternalFormat"]
815 pub const GL_COMPRESSED_RGBA_ASTC_4x4: GLenum = 0x93B0;
816 #[doc = "`GL_COMPRESSED_RGBA_ASTC_5x4: GLenum = 0x93B1`"]
817 #[doc = "* **Group:** InternalFormat"]
818 pub const GL_COMPRESSED_RGBA_ASTC_5x4: GLenum = 0x93B1;
819 #[doc = "`GL_COMPRESSED_RGBA_ASTC_5x5: GLenum = 0x93B2`"]
820 #[doc = "* **Group:** InternalFormat"]
821 pub const GL_COMPRESSED_RGBA_ASTC_5x5: GLenum = 0x93B2;
822 #[doc = "`GL_COMPRESSED_RGBA_ASTC_6x5: GLenum = 0x93B3`"]
823 #[doc = "* **Group:** InternalFormat"]
824 pub const GL_COMPRESSED_RGBA_ASTC_6x5: GLenum = 0x93B3;
825 #[doc = "`GL_COMPRESSED_RGBA_ASTC_6x6: GLenum = 0x93B4`"]
826 #[doc = "* **Group:** InternalFormat"]
827 pub const GL_COMPRESSED_RGBA_ASTC_6x6: GLenum = 0x93B4;
828 #[doc = "`GL_COMPRESSED_RGBA_ASTC_8x5: GLenum = 0x93B5`"]
829 #[doc = "* **Group:** InternalFormat"]
830 pub const GL_COMPRESSED_RGBA_ASTC_8x5: GLenum = 0x93B5;
831 #[doc = "`GL_COMPRESSED_RGBA_ASTC_8x6: GLenum = 0x93B6`"]
832 #[doc = "* **Group:** InternalFormat"]
833 pub const GL_COMPRESSED_RGBA_ASTC_8x6: GLenum = 0x93B6;
834 #[doc = "`GL_COMPRESSED_RGBA_ASTC_8x8: GLenum = 0x93B7`"]
835 #[doc = "* **Group:** InternalFormat"]
836 pub const GL_COMPRESSED_RGBA_ASTC_8x8: GLenum = 0x93B7;
837 #[doc = "`GL_COMPRESSED_RGBA_BPTC_UNORM: GLenum = 0x8E8C`"]
838 #[doc = "* **Group:** InternalFormat"]
839 pub const GL_COMPRESSED_RGBA_BPTC_UNORM: GLenum = 0x8E8C;
840 #[doc = "`GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT: GLenum = 0x8E8E`"]
841 #[doc = "* **Group:** InternalFormat"]
842 pub const GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT: GLenum = 0x8E8E;
843 #[doc = "`GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT: GLenum = 0x8E8F`"]
844 #[doc = "* **Group:** InternalFormat"]
845 pub const GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT: GLenum = 0x8E8F;
846 #[doc = "`GL_COMPRESSED_RG_RGTC2: GLenum = 0x8DBD`"]
847 #[doc = "* **Group:** InternalFormat"]
848 pub const GL_COMPRESSED_RG_RGTC2: GLenum = 0x8DBD;
849 #[doc = "`GL_COMPRESSED_SIGNED_R11_EAC: GLenum = 0x9271`"]
850 #[doc = "* **Group:** InternalFormat"]
851 pub const GL_COMPRESSED_SIGNED_R11_EAC: GLenum = 0x9271;
852 #[doc = "`GL_COMPRESSED_SIGNED_RED_RGTC1: GLenum = 0x8DBC`"]
853 #[doc = "* **Group:** InternalFormat"]
854 pub const GL_COMPRESSED_SIGNED_RED_RGTC1: GLenum = 0x8DBC;
855 #[doc = "`GL_COMPRESSED_SIGNED_RG11_EAC: GLenum = 0x9273`"]
856 #[doc = "* **Group:** InternalFormat"]
857 pub const GL_COMPRESSED_SIGNED_RG11_EAC: GLenum = 0x9273;
858 #[doc = "`GL_COMPRESSED_SIGNED_RG_RGTC2: GLenum = 0x8DBE`"]
859 #[doc = "* **Group:** InternalFormat"]
860 pub const GL_COMPRESSED_SIGNED_RG_RGTC2: GLenum = 0x8DBE;
861 #[doc = "`GL_COMPRESSED_SRGB: GLenum = 0x8C48`"]
862 #[doc = "* **Group:** InternalFormat"]
863 pub const GL_COMPRESSED_SRGB: GLenum = 0x8C48;
864 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10: GLenum = 0x93DB`"]
865 #[doc = "* **Group:** InternalFormat"]
866 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10: GLenum = 0x93DB;
867 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5: GLenum = 0x93D8`"]
868 #[doc = "* **Group:** InternalFormat"]
869 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5: GLenum = 0x93D8;
870 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6: GLenum = 0x93D9`"]
871 #[doc = "* **Group:** InternalFormat"]
872 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6: GLenum = 0x93D9;
873 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8: GLenum = 0x93DA`"]
874 #[doc = "* **Group:** InternalFormat"]
875 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8: GLenum = 0x93DA;
876 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10: GLenum = 0x93DC`"]
877 #[doc = "* **Group:** InternalFormat"]
878 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10: GLenum = 0x93DC;
879 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12: GLenum = 0x93DD`"]
880 #[doc = "* **Group:** InternalFormat"]
881 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12: GLenum = 0x93DD;
882 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4: GLenum = 0x93D0`"]
883 #[doc = "* **Group:** InternalFormat"]
884 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4: GLenum = 0x93D0;
885 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4: GLenum = 0x93D1`"]
886 #[doc = "* **Group:** InternalFormat"]
887 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4: GLenum = 0x93D1;
888 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5: GLenum = 0x93D2`"]
889 #[doc = "* **Group:** InternalFormat"]
890 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5: GLenum = 0x93D2;
891 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5: GLenum = 0x93D3`"]
892 #[doc = "* **Group:** InternalFormat"]
893 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5: GLenum = 0x93D3;
894 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6: GLenum = 0x93D4`"]
895 #[doc = "* **Group:** InternalFormat"]
896 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6: GLenum = 0x93D4;
897 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5: GLenum = 0x93D5`"]
898 #[doc = "* **Group:** InternalFormat"]
899 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5: GLenum = 0x93D5;
900 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6: GLenum = 0x93D6`"]
901 #[doc = "* **Group:** InternalFormat"]
902 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6: GLenum = 0x93D6;
903 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8: GLenum = 0x93D7`"]
904 #[doc = "* **Group:** InternalFormat"]
905 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8: GLenum = 0x93D7;
906 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: GLenum = 0x9279`"]
907 #[doc = "* **Group:** InternalFormat"]
908 pub const GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: GLenum = 0x9279;
909 #[doc = "`GL_COMPRESSED_SRGB8_ETC2: GLenum = 0x9275`"]
910 #[doc = "* **Group:** InternalFormat"]
911 pub const GL_COMPRESSED_SRGB8_ETC2: GLenum = 0x9275;
912 #[doc = "`GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: GLenum = 0x9277`"]
913 #[doc = "* **Group:** InternalFormat"]
914 pub const GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: GLenum = 0x9277;
915 #[doc = "`GL_COMPRESSED_SRGB_ALPHA: GLenum = 0x8C49`"]
916 #[doc = "* **Group:** InternalFormat"]
917 pub const GL_COMPRESSED_SRGB_ALPHA: GLenum = 0x8C49;
918 #[doc = "`GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM: GLenum = 0x8E8D`"]
919 #[doc = "* **Group:** InternalFormat"]
920 pub const GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM: GLenum = 0x8E8D;
921 #[doc = "`GL_COMPRESSED_TEXTURE_FORMATS: GLenum = 0x86A3`"]
922 #[doc = "* **Group:** GetPName"]
923 pub const GL_COMPRESSED_TEXTURE_FORMATS: GLenum = 0x86A3;
924 #[doc = "`GL_COMPUTE_SHADER: GLenum = 0x91B9`"]
925 #[doc = "* **Group:** ShaderType"]
926 pub const GL_COMPUTE_SHADER: GLenum = 0x91B9;
927 #[doc = "`GL_COMPUTE_SHADER_BIT: GLbitfield = 0x00000020`"]
928 #[doc = "* **Group:** UseProgramStageMask"]
929 pub const GL_COMPUTE_SHADER_BIT: GLbitfield = 0x00000020;
930 #[doc = "`GL_COMPUTE_SHADER_INVOCATIONS: GLenum = 0x82F5`"]
931 pub const GL_COMPUTE_SHADER_INVOCATIONS: GLenum = 0x82F5;
932 #[doc = "`GL_COMPUTE_SUBROUTINE: GLenum = 0x92ED`"]
933 #[doc = "* **Group:** ProgramInterface"]
934 pub const GL_COMPUTE_SUBROUTINE: GLenum = 0x92ED;
935 #[doc = "`GL_COMPUTE_SUBROUTINE_UNIFORM: GLenum = 0x92F3`"]
936 #[doc = "* **Group:** ProgramInterface"]
937 pub const GL_COMPUTE_SUBROUTINE_UNIFORM: GLenum = 0x92F3;
938 #[doc = "`GL_COMPUTE_TEXTURE: GLenum = 0x82A0`"]
939 #[doc = "* **Group:** InternalFormatPName"]
940 pub const GL_COMPUTE_TEXTURE: GLenum = 0x82A0;
941 #[doc = "`GL_COMPUTE_WORK_GROUP_SIZE: GLenum = 0x8267`"]
942 #[doc = "* **Group:** ProgramPropertyARB"]
943 pub const GL_COMPUTE_WORK_GROUP_SIZE: GLenum = 0x8267;
944 #[doc = "`GL_CONDITION_SATISFIED: GLenum = 0x911C`"]
945 #[doc = "* **Group:** SyncStatus"]
946 pub const GL_CONDITION_SATISFIED: GLenum = 0x911C;
947 #[doc = "`GL_CONSTANT_ALPHA: GLenum = 0x8003`"]
948 #[doc = "* **Group:** BlendingFactor"]
949 pub const GL_CONSTANT_ALPHA: GLenum = 0x8003;
950 #[doc = "`GL_CONSTANT_COLOR: GLenum = 0x8001`"]
951 #[doc = "* **Group:** BlendingFactor"]
952 pub const GL_CONSTANT_COLOR: GLenum = 0x8001;
953 #[doc = "`GL_CONTEXT_COMPATIBILITY_PROFILE_BIT: GLbitfield = 0x00000002`"]
954 #[doc = "* **Group:** ContextProfileMask"]
955 pub const GL_CONTEXT_COMPATIBILITY_PROFILE_BIT: GLbitfield = 0x00000002;
956 #[doc = "`GL_CONTEXT_CORE_PROFILE_BIT: GLbitfield = 0x00000001`"]
957 #[doc = "* **Group:** ContextProfileMask"]
958 pub const GL_CONTEXT_CORE_PROFILE_BIT: GLbitfield = 0x00000001;
959 #[doc = "`GL_CONTEXT_FLAGS: GLenum = 0x821E`"]
960 #[doc = "* **Group:** GetPName"]
961 pub const GL_CONTEXT_FLAGS: GLenum = 0x821E;
962 #[doc = "`GL_CONTEXT_FLAG_DEBUG_BIT: GLbitfield = 0x00000002`"]
963 #[doc = "* **Group:** ContextFlagMask"]
964 pub const GL_CONTEXT_FLAG_DEBUG_BIT: GLbitfield = 0x00000002;
965 #[doc = "`GL_CONTEXT_FLAG_DEBUG_BIT_KHR: GLbitfield = 0x00000002`"]
966 #[doc = "* **Group:** ContextFlagMask"]
967 pub const GL_CONTEXT_FLAG_DEBUG_BIT_KHR: GLbitfield = 0x00000002;
968 #[doc = "`GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT: GLbitfield = 0x00000001`"]
969 #[doc = "* **Group:** ContextFlagMask"]
970 pub const GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT: GLbitfield = 0x00000001;
971 #[doc = "`GL_CONTEXT_FLAG_NO_ERROR_BIT: GLbitfield = 0x00000008`"]
972 #[doc = "* **Group:** ContextFlagMask"]
973 pub const GL_CONTEXT_FLAG_NO_ERROR_BIT: GLbitfield = 0x00000008;
974 #[doc = "`GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT: GLbitfield = 0x00000004`"]
975 #[doc = "* **Group:** ContextFlagMask"]
976 pub const GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT: GLbitfield = 0x00000004;
977 #[doc = "`GL_CONTEXT_LOST: GLenum = 0x0507`"]
978 pub const GL_CONTEXT_LOST: GLenum = 0x0507;
979 #[doc = "`GL_CONTEXT_PROFILE_MASK: GLenum = 0x9126`"]
980 #[doc = "* **Group:** GetPName"]
981 pub const GL_CONTEXT_PROFILE_MASK: GLenum = 0x9126;
982 #[doc = "`GL_CONTEXT_RELEASE_BEHAVIOR: GLenum = 0x82FB`"]
983 pub const GL_CONTEXT_RELEASE_BEHAVIOR: GLenum = 0x82FB;
984 #[doc = "`GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH: GLenum = 0x82FC`"]
985 pub const GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH: GLenum = 0x82FC;
986 #[doc = "`GL_COPY: GLenum = 0x1503`"]
987 #[doc = "* **Group:** LogicOp"]
988 pub const GL_COPY: GLenum = 0x1503;
989 #[doc = "`GL_COPY_INVERTED: GLenum = 0x150C`"]
990 #[doc = "* **Group:** LogicOp"]
991 pub const GL_COPY_INVERTED: GLenum = 0x150C;
992 #[doc = "`GL_COPY_READ_BUFFER: GLenum = 0x8F36`"]
993 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
994 pub const GL_COPY_READ_BUFFER: GLenum = 0x8F36;
995 #[doc = "`GL_COPY_READ_BUFFER_BINDING: GLenum = 0x8F36`"]
996 #[doc = "* **Alias Of:** `GL_COPY_READ_BUFFER`"]
997 pub const GL_COPY_READ_BUFFER_BINDING: GLenum = 0x8F36;
998 #[doc = "`GL_COPY_READ_BUFFER_NV: GLenum = 0x8F36`"]
999 pub const GL_COPY_READ_BUFFER_NV: GLenum = 0x8F36;
1000 #[doc = "`GL_COPY_WRITE_BUFFER: GLenum = 0x8F37`"]
1001 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
1002 pub const GL_COPY_WRITE_BUFFER: GLenum = 0x8F37;
1003 #[doc = "`GL_COPY_WRITE_BUFFER_BINDING: GLenum = 0x8F37`"]
1004 #[doc = "* **Alias Of:** `GL_COPY_WRITE_BUFFER`"]
1005 pub const GL_COPY_WRITE_BUFFER_BINDING: GLenum = 0x8F37;
1006 #[doc = "`GL_COPY_WRITE_BUFFER_NV: GLenum = 0x8F37`"]
1007 pub const GL_COPY_WRITE_BUFFER_NV: GLenum = 0x8F37;
1008 #[doc = "`GL_CULL_FACE: GLenum = 0x0B44`"]
1009 #[doc = "* **Groups:** GetPName, EnableCap"]
1010 pub const GL_CULL_FACE: GLenum = 0x0B44;
1011 #[doc = "`GL_CULL_FACE_MODE: GLenum = 0x0B45`"]
1012 #[doc = "* **Group:** GetPName"]
1013 pub const GL_CULL_FACE_MODE: GLenum = 0x0B45;
1014 #[doc = "`GL_CURRENT_PROGRAM: GLenum = 0x8B8D`"]
1015 #[doc = "* **Group:** GetPName"]
1016 pub const GL_CURRENT_PROGRAM: GLenum = 0x8B8D;
1017 #[doc = "`GL_CURRENT_QUERY: GLenum = 0x8865`"]
1018 #[doc = "* **Group:** QueryParameterName"]
1019 pub const GL_CURRENT_QUERY: GLenum = 0x8865;
1020 #[doc = "`GL_CURRENT_QUERY_EXT: GLenum = 0x8865`"]
1021 pub const GL_CURRENT_QUERY_EXT: GLenum = 0x8865;
1022 #[doc = "`GL_CURRENT_VERTEX_ATTRIB: GLenum = 0x8626`"]
1023 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB"]
1024 pub const GL_CURRENT_VERTEX_ATTRIB: GLenum = 0x8626;
1025 #[doc = "`GL_CW: GLenum = 0x0900`"]
1026 #[doc = "* **Group:** FrontFaceDirection"]
1027 pub const GL_CW: GLenum = 0x0900;
1028 #[doc = "`GL_DARKEN: GLenum = 0x9297`"]
1029 pub const GL_DARKEN: GLenum = 0x9297;
1030 #[doc = "`GL_DEBUG_CALLBACK_FUNCTION: GLenum = 0x8244`"]
1031 #[doc = "* **Group:** GetPointervPName"]
1032 pub const GL_DEBUG_CALLBACK_FUNCTION: GLenum = 0x8244;
1033 #[doc = "`GL_DEBUG_CALLBACK_FUNCTION_ARB: GLenum = 0x8244`"]
1034 pub const GL_DEBUG_CALLBACK_FUNCTION_ARB: GLenum = 0x8244;
1035 #[doc = "`GL_DEBUG_CALLBACK_FUNCTION_KHR: GLenum = 0x8244`"]
1036 pub const GL_DEBUG_CALLBACK_FUNCTION_KHR: GLenum = 0x8244;
1037 #[doc = "`GL_DEBUG_CALLBACK_USER_PARAM: GLenum = 0x8245`"]
1038 #[doc = "* **Group:** GetPointervPName"]
1039 pub const GL_DEBUG_CALLBACK_USER_PARAM: GLenum = 0x8245;
1040 #[doc = "`GL_DEBUG_CALLBACK_USER_PARAM_ARB: GLenum = 0x8245`"]
1041 pub const GL_DEBUG_CALLBACK_USER_PARAM_ARB: GLenum = 0x8245;
1042 #[doc = "`GL_DEBUG_CALLBACK_USER_PARAM_KHR: GLenum = 0x8245`"]
1043 pub const GL_DEBUG_CALLBACK_USER_PARAM_KHR: GLenum = 0x8245;
1044 #[doc = "`GL_DEBUG_GROUP_STACK_DEPTH: GLenum = 0x826D`"]
1045 #[doc = "* **Group:** GetPName"]
1046 pub const GL_DEBUG_GROUP_STACK_DEPTH: GLenum = 0x826D;
1047 #[doc = "`GL_DEBUG_GROUP_STACK_DEPTH_KHR: GLenum = 0x826D`"]
1048 pub const GL_DEBUG_GROUP_STACK_DEPTH_KHR: GLenum = 0x826D;
1049 #[doc = "`GL_DEBUG_LOGGED_MESSAGES: GLenum = 0x9145`"]
1050 pub const GL_DEBUG_LOGGED_MESSAGES: GLenum = 0x9145;
1051 #[doc = "`GL_DEBUG_LOGGED_MESSAGES_ARB: GLenum = 0x9145`"]
1052 pub const GL_DEBUG_LOGGED_MESSAGES_ARB: GLenum = 0x9145;
1053 #[doc = "`GL_DEBUG_LOGGED_MESSAGES_KHR: GLenum = 0x9145`"]
1054 pub const GL_DEBUG_LOGGED_MESSAGES_KHR: GLenum = 0x9145;
1055 #[doc = "`GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH: GLenum = 0x8243`"]
1056 pub const GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH: GLenum = 0x8243;
1057 #[doc = "`GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB: GLenum = 0x8243`"]
1058 pub const GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB: GLenum = 0x8243;
1059 #[doc = "`GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR: GLenum = 0x8243`"]
1060 pub const GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR: GLenum = 0x8243;
1061 #[doc = "`GL_DEBUG_OUTPUT: GLenum = 0x92E0`"]
1062 #[doc = "* **Group:** EnableCap"]
1063 pub const GL_DEBUG_OUTPUT: GLenum = 0x92E0;
1064 #[doc = "`GL_DEBUG_OUTPUT_KHR: GLenum = 0x92E0`"]
1065 pub const GL_DEBUG_OUTPUT_KHR: GLenum = 0x92E0;
1066 #[doc = "`GL_DEBUG_OUTPUT_SYNCHRONOUS: GLenum = 0x8242`"]
1067 #[doc = "* **Group:** EnableCap"]
1068 pub const GL_DEBUG_OUTPUT_SYNCHRONOUS: GLenum = 0x8242;
1069 #[doc = "`GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB: GLenum = 0x8242`"]
1070 pub const GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB: GLenum = 0x8242;
1071 #[doc = "`GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR: GLenum = 0x8242`"]
1072 pub const GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR: GLenum = 0x8242;
1073 #[doc = "`GL_DEBUG_SEVERITY_HIGH: GLenum = 0x9146`"]
1074 #[doc = "* **Group:** DebugSeverity"]
1075 pub const GL_DEBUG_SEVERITY_HIGH: GLenum = 0x9146;
1076 #[doc = "`GL_DEBUG_SEVERITY_HIGH_ARB: GLenum = 0x9146`"]
1077 pub const GL_DEBUG_SEVERITY_HIGH_ARB: GLenum = 0x9146;
1078 #[doc = "`GL_DEBUG_SEVERITY_HIGH_KHR: GLenum = 0x9146`"]
1079 pub const GL_DEBUG_SEVERITY_HIGH_KHR: GLenum = 0x9146;
1080 #[doc = "`GL_DEBUG_SEVERITY_LOW: GLenum = 0x9148`"]
1081 #[doc = "* **Group:** DebugSeverity"]
1082 pub const GL_DEBUG_SEVERITY_LOW: GLenum = 0x9148;
1083 #[doc = "`GL_DEBUG_SEVERITY_LOW_ARB: GLenum = 0x9148`"]
1084 pub const GL_DEBUG_SEVERITY_LOW_ARB: GLenum = 0x9148;
1085 #[doc = "`GL_DEBUG_SEVERITY_LOW_KHR: GLenum = 0x9148`"]
1086 pub const GL_DEBUG_SEVERITY_LOW_KHR: GLenum = 0x9148;
1087 #[doc = "`GL_DEBUG_SEVERITY_MEDIUM: GLenum = 0x9147`"]
1088 #[doc = "* **Group:** DebugSeverity"]
1089 pub const GL_DEBUG_SEVERITY_MEDIUM: GLenum = 0x9147;
1090 #[doc = "`GL_DEBUG_SEVERITY_MEDIUM_ARB: GLenum = 0x9147`"]
1091 pub const GL_DEBUG_SEVERITY_MEDIUM_ARB: GLenum = 0x9147;
1092 #[doc = "`GL_DEBUG_SEVERITY_MEDIUM_KHR: GLenum = 0x9147`"]
1093 pub const GL_DEBUG_SEVERITY_MEDIUM_KHR: GLenum = 0x9147;
1094 #[doc = "`GL_DEBUG_SEVERITY_NOTIFICATION: GLenum = 0x826B`"]
1095 #[doc = "* **Group:** DebugSeverity"]
1096 pub const GL_DEBUG_SEVERITY_NOTIFICATION: GLenum = 0x826B;
1097 #[doc = "`GL_DEBUG_SEVERITY_NOTIFICATION_KHR: GLenum = 0x826B`"]
1098 pub const GL_DEBUG_SEVERITY_NOTIFICATION_KHR: GLenum = 0x826B;
1099 #[doc = "`GL_DEBUG_SOURCE_API: GLenum = 0x8246`"]
1100 #[doc = "* **Group:** DebugSource"]
1101 pub const GL_DEBUG_SOURCE_API: GLenum = 0x8246;
1102 #[doc = "`GL_DEBUG_SOURCE_API_ARB: GLenum = 0x8246`"]
1103 pub const GL_DEBUG_SOURCE_API_ARB: GLenum = 0x8246;
1104 #[doc = "`GL_DEBUG_SOURCE_API_KHR: GLenum = 0x8246`"]
1105 pub const GL_DEBUG_SOURCE_API_KHR: GLenum = 0x8246;
1106 #[doc = "`GL_DEBUG_SOURCE_APPLICATION: GLenum = 0x824A`"]
1107 #[doc = "* **Group:** DebugSource"]
1108 pub const GL_DEBUG_SOURCE_APPLICATION: GLenum = 0x824A;
1109 #[doc = "`GL_DEBUG_SOURCE_APPLICATION_ARB: GLenum = 0x824A`"]
1110 pub const GL_DEBUG_SOURCE_APPLICATION_ARB: GLenum = 0x824A;
1111 #[doc = "`GL_DEBUG_SOURCE_APPLICATION_KHR: GLenum = 0x824A`"]
1112 pub const GL_DEBUG_SOURCE_APPLICATION_KHR: GLenum = 0x824A;
1113 #[doc = "`GL_DEBUG_SOURCE_OTHER: GLenum = 0x824B`"]
1114 #[doc = "* **Group:** DebugSource"]
1115 pub const GL_DEBUG_SOURCE_OTHER: GLenum = 0x824B;
1116 #[doc = "`GL_DEBUG_SOURCE_OTHER_ARB: GLenum = 0x824B`"]
1117 pub const GL_DEBUG_SOURCE_OTHER_ARB: GLenum = 0x824B;
1118 #[doc = "`GL_DEBUG_SOURCE_OTHER_KHR: GLenum = 0x824B`"]
1119 pub const GL_DEBUG_SOURCE_OTHER_KHR: GLenum = 0x824B;
1120 #[doc = "`GL_DEBUG_SOURCE_SHADER_COMPILER: GLenum = 0x8248`"]
1121 #[doc = "* **Group:** DebugSource"]
1122 pub const GL_DEBUG_SOURCE_SHADER_COMPILER: GLenum = 0x8248;
1123 #[doc = "`GL_DEBUG_SOURCE_SHADER_COMPILER_ARB: GLenum = 0x8248`"]
1124 pub const GL_DEBUG_SOURCE_SHADER_COMPILER_ARB: GLenum = 0x8248;
1125 #[doc = "`GL_DEBUG_SOURCE_SHADER_COMPILER_KHR: GLenum = 0x8248`"]
1126 pub const GL_DEBUG_SOURCE_SHADER_COMPILER_KHR: GLenum = 0x8248;
1127 #[doc = "`GL_DEBUG_SOURCE_THIRD_PARTY: GLenum = 0x8249`"]
1128 #[doc = "* **Group:** DebugSource"]
1129 pub const GL_DEBUG_SOURCE_THIRD_PARTY: GLenum = 0x8249;
1130 #[doc = "`GL_DEBUG_SOURCE_THIRD_PARTY_ARB: GLenum = 0x8249`"]
1131 pub const GL_DEBUG_SOURCE_THIRD_PARTY_ARB: GLenum = 0x8249;
1132 #[doc = "`GL_DEBUG_SOURCE_THIRD_PARTY_KHR: GLenum = 0x8249`"]
1133 pub const GL_DEBUG_SOURCE_THIRD_PARTY_KHR: GLenum = 0x8249;
1134 #[doc = "`GL_DEBUG_SOURCE_WINDOW_SYSTEM: GLenum = 0x8247`"]
1135 #[doc = "* **Group:** DebugSource"]
1136 pub const GL_DEBUG_SOURCE_WINDOW_SYSTEM: GLenum = 0x8247;
1137 #[doc = "`GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB: GLenum = 0x8247`"]
1138 pub const GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB: GLenum = 0x8247;
1139 #[doc = "`GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR: GLenum = 0x8247`"]
1140 pub const GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR: GLenum = 0x8247;
1141 #[doc = "`GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: GLenum = 0x824D`"]
1142 #[doc = "* **Group:** DebugType"]
1143 pub const GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: GLenum = 0x824D;
1144 #[doc = "`GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB: GLenum = 0x824D`"]
1145 pub const GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB: GLenum = 0x824D;
1146 #[doc = "`GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR: GLenum = 0x824D`"]
1147 pub const GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR: GLenum = 0x824D;
1148 #[doc = "`GL_DEBUG_TYPE_ERROR: GLenum = 0x824C`"]
1149 #[doc = "* **Group:** DebugType"]
1150 pub const GL_DEBUG_TYPE_ERROR: GLenum = 0x824C;
1151 #[doc = "`GL_DEBUG_TYPE_ERROR_ARB: GLenum = 0x824C`"]
1152 pub const GL_DEBUG_TYPE_ERROR_ARB: GLenum = 0x824C;
1153 #[doc = "`GL_DEBUG_TYPE_ERROR_KHR: GLenum = 0x824C`"]
1154 pub const GL_DEBUG_TYPE_ERROR_KHR: GLenum = 0x824C;
1155 #[doc = "`GL_DEBUG_TYPE_MARKER: GLenum = 0x8268`"]
1156 #[doc = "* **Group:** DebugType"]
1157 pub const GL_DEBUG_TYPE_MARKER: GLenum = 0x8268;
1158 #[doc = "`GL_DEBUG_TYPE_MARKER_KHR: GLenum = 0x8268`"]
1159 pub const GL_DEBUG_TYPE_MARKER_KHR: GLenum = 0x8268;
1160 #[doc = "`GL_DEBUG_TYPE_OTHER: GLenum = 0x8251`"]
1161 #[doc = "* **Group:** DebugType"]
1162 pub const GL_DEBUG_TYPE_OTHER: GLenum = 0x8251;
1163 #[doc = "`GL_DEBUG_TYPE_OTHER_ARB: GLenum = 0x8251`"]
1164 pub const GL_DEBUG_TYPE_OTHER_ARB: GLenum = 0x8251;
1165 #[doc = "`GL_DEBUG_TYPE_OTHER_KHR: GLenum = 0x8251`"]
1166 pub const GL_DEBUG_TYPE_OTHER_KHR: GLenum = 0x8251;
1167 #[doc = "`GL_DEBUG_TYPE_PERFORMANCE: GLenum = 0x8250`"]
1168 #[doc = "* **Group:** DebugType"]
1169 pub const GL_DEBUG_TYPE_PERFORMANCE: GLenum = 0x8250;
1170 #[doc = "`GL_DEBUG_TYPE_PERFORMANCE_ARB: GLenum = 0x8250`"]
1171 pub const GL_DEBUG_TYPE_PERFORMANCE_ARB: GLenum = 0x8250;
1172 #[doc = "`GL_DEBUG_TYPE_PERFORMANCE_KHR: GLenum = 0x8250`"]
1173 pub const GL_DEBUG_TYPE_PERFORMANCE_KHR: GLenum = 0x8250;
1174 #[doc = "`GL_DEBUG_TYPE_POP_GROUP: GLenum = 0x826A`"]
1175 #[doc = "* **Group:** DebugType"]
1176 pub const GL_DEBUG_TYPE_POP_GROUP: GLenum = 0x826A;
1177 #[doc = "`GL_DEBUG_TYPE_POP_GROUP_KHR: GLenum = 0x826A`"]
1178 pub const GL_DEBUG_TYPE_POP_GROUP_KHR: GLenum = 0x826A;
1179 #[doc = "`GL_DEBUG_TYPE_PORTABILITY: GLenum = 0x824F`"]
1180 #[doc = "* **Group:** DebugType"]
1181 pub const GL_DEBUG_TYPE_PORTABILITY: GLenum = 0x824F;
1182 #[doc = "`GL_DEBUG_TYPE_PORTABILITY_ARB: GLenum = 0x824F`"]
1183 pub const GL_DEBUG_TYPE_PORTABILITY_ARB: GLenum = 0x824F;
1184 #[doc = "`GL_DEBUG_TYPE_PORTABILITY_KHR: GLenum = 0x824F`"]
1185 pub const GL_DEBUG_TYPE_PORTABILITY_KHR: GLenum = 0x824F;
1186 #[doc = "`GL_DEBUG_TYPE_PUSH_GROUP: GLenum = 0x8269`"]
1187 #[doc = "* **Group:** DebugType"]
1188 pub const GL_DEBUG_TYPE_PUSH_GROUP: GLenum = 0x8269;
1189 #[doc = "`GL_DEBUG_TYPE_PUSH_GROUP_KHR: GLenum = 0x8269`"]
1190 pub const GL_DEBUG_TYPE_PUSH_GROUP_KHR: GLenum = 0x8269;
1191 #[doc = "`GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: GLenum = 0x824E`"]
1192 #[doc = "* **Group:** DebugType"]
1193 pub const GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: GLenum = 0x824E;
1194 #[doc = "`GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB: GLenum = 0x824E`"]
1195 pub const GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB: GLenum = 0x824E;
1196 #[doc = "`GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR: GLenum = 0x824E`"]
1197 pub const GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR: GLenum = 0x824E;
1198 #[doc = "`GL_DECR: GLenum = 0x1E03`"]
1199 #[doc = "* **Group:** StencilOp"]
1200 pub const GL_DECR: GLenum = 0x1E03;
1201 #[doc = "`GL_DECR_WRAP: GLenum = 0x8508`"]
1202 #[doc = "* **Group:** StencilOp"]
1203 pub const GL_DECR_WRAP: GLenum = 0x8508;
1204 #[doc = "`GL_DELETE_STATUS: GLenum = 0x8B80`"]
1205 #[doc = "* **Groups:** ProgramPropertyARB, ShaderParameterName"]
1206 pub const GL_DELETE_STATUS: GLenum = 0x8B80;
1207 #[doc = "`GL_DEPTH: GLenum = 0x1801`"]
1208 #[doc = "* **Groups:** Buffer, PixelCopyType, InvalidateFramebufferAttachment"]
1209 pub const GL_DEPTH: GLenum = 0x1801;
1210 #[doc = "`GL_DEPTH24_STENCIL8: GLenum = 0x88F0`"]
1211 #[doc = "* **Group:** InternalFormat"]
1212 pub const GL_DEPTH24_STENCIL8: GLenum = 0x88F0;
1213 #[doc = "`GL_DEPTH32F_STENCIL8: GLenum = 0x8CAD`"]
1214 #[doc = "* **Group:** InternalFormat"]
1215 pub const GL_DEPTH32F_STENCIL8: GLenum = 0x8CAD;
1216 #[doc = "`GL_DEPTH_ATTACHMENT: GLenum = 0x8D00`"]
1217 #[doc = "* **Groups:** InvalidateFramebufferAttachment, FramebufferAttachment"]
1218 pub const GL_DEPTH_ATTACHMENT: GLenum = 0x8D00;
1219 #[doc = "`GL_DEPTH_BITS: GLenum = 0x0D56`"]
1220 #[doc = "* **Group:** GetPName"]
1221 pub const GL_DEPTH_BITS: GLenum = 0x0D56;
1222 #[doc = "`GL_DEPTH_BUFFER_BIT: GLbitfield = 0x00000100`"]
1223 #[doc = "* **Groups:** ClearBufferMask, AttribMask"]
1224 pub const GL_DEPTH_BUFFER_BIT: GLbitfield = 0x00000100;
1225 #[doc = "`GL_DEPTH_CLAMP: GLenum = 0x864F`"]
1226 #[doc = "* **Group:** EnableCap"]
1227 pub const GL_DEPTH_CLAMP: GLenum = 0x864F;
1228 #[doc = "`GL_DEPTH_CLEAR_VALUE: GLenum = 0x0B73`"]
1229 #[doc = "* **Group:** GetPName"]
1230 pub const GL_DEPTH_CLEAR_VALUE: GLenum = 0x0B73;
1231 #[doc = "`GL_DEPTH_COMPONENT: GLenum = 0x1902`"]
1232 #[doc = "* **Groups:** InternalFormat, PixelFormat"]
1233 pub const GL_DEPTH_COMPONENT: GLenum = 0x1902;
1234 #[doc = "`GL_DEPTH_COMPONENT16: GLenum = 0x81A5`"]
1235 #[doc = "* **Group:** InternalFormat"]
1236 pub const GL_DEPTH_COMPONENT16: GLenum = 0x81A5;
1237 #[doc = "`GL_DEPTH_COMPONENT24: GLenum = 0x81A6`"]
1238 pub const GL_DEPTH_COMPONENT24: GLenum = 0x81A6;
1239 #[doc = "`GL_DEPTH_COMPONENT32: GLenum = 0x81A7`"]
1240 pub const GL_DEPTH_COMPONENT32: GLenum = 0x81A7;
1241 #[doc = "`GL_DEPTH_COMPONENT32F: GLenum = 0x8CAC`"]
1242 #[doc = "* **Group:** InternalFormat"]
1243 pub const GL_DEPTH_COMPONENT32F: GLenum = 0x8CAC;
1244 #[doc = "`GL_DEPTH_COMPONENTS: GLenum = 0x8284`"]
1245 pub const GL_DEPTH_COMPONENTS: GLenum = 0x8284;
1246 #[doc = "`GL_DEPTH_FUNC: GLenum = 0x0B74`"]
1247 #[doc = "* **Group:** GetPName"]
1248 pub const GL_DEPTH_FUNC: GLenum = 0x0B74;
1249 #[doc = "`GL_DEPTH_RANGE: GLenum = 0x0B70`"]
1250 #[doc = "* **Group:** GetPName"]
1251 pub const GL_DEPTH_RANGE: GLenum = 0x0B70;
1252 #[doc = "`GL_DEPTH_RENDERABLE: GLenum = 0x8287`"]
1253 #[doc = "* **Group:** InternalFormatPName"]
1254 pub const GL_DEPTH_RENDERABLE: GLenum = 0x8287;
1255 #[doc = "`GL_DEPTH_STENCIL: GLenum = 0x84F9`"]
1256 #[doc = "* **Groups:** InternalFormat, PixelFormat"]
1257 pub const GL_DEPTH_STENCIL: GLenum = 0x84F9;
1258 #[doc = "`GL_DEPTH_STENCIL_ATTACHMENT: GLenum = 0x821A`"]
1259 #[doc = "* **Group:** InvalidateFramebufferAttachment"]
1260 pub const GL_DEPTH_STENCIL_ATTACHMENT: GLenum = 0x821A;
1261 #[doc = "`GL_DEPTH_STENCIL_TEXTURE_MODE: GLenum = 0x90EA`"]
1262 #[doc = "* **Group:** TextureParameterName"]
1263 pub const GL_DEPTH_STENCIL_TEXTURE_MODE: GLenum = 0x90EA;
1264 #[doc = "`GL_DEPTH_TEST: GLenum = 0x0B71`"]
1265 #[doc = "* **Groups:** GetPName, EnableCap"]
1266 pub const GL_DEPTH_TEST: GLenum = 0x0B71;
1267 #[doc = "`GL_DEPTH_WRITEMASK: GLenum = 0x0B72`"]
1268 #[doc = "* **Group:** GetPName"]
1269 pub const GL_DEPTH_WRITEMASK: GLenum = 0x0B72;
1270 #[doc = "`GL_DIFFERENCE: GLenum = 0x929E`"]
1271 pub const GL_DIFFERENCE: GLenum = 0x929E;
1272 #[doc = "`GL_DISPATCH_INDIRECT_BUFFER: GLenum = 0x90EE`"]
1273 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
1274 pub const GL_DISPATCH_INDIRECT_BUFFER: GLenum = 0x90EE;
1275 #[doc = "`GL_DISPATCH_INDIRECT_BUFFER_BINDING: GLenum = 0x90EF`"]
1276 #[doc = "* **Group:** GetPName"]
1277 pub const GL_DISPATCH_INDIRECT_BUFFER_BINDING: GLenum = 0x90EF;
1278 #[doc = "`GL_DITHER: GLenum = 0x0BD0`"]
1279 #[doc = "* **Groups:** GetPName, EnableCap"]
1280 pub const GL_DITHER: GLenum = 0x0BD0;
1281 #[doc = "`GL_DONT_CARE: GLenum = 0x1100`"]
1282 #[doc = "* **Groups:** DebugSeverity, HintMode, DebugSource, DebugType"]
1283 pub const GL_DONT_CARE: GLenum = 0x1100;
1284 #[doc = "`GL_DOUBLE: GLenum = 0x140A`"]
1285 #[doc = "* **Groups:** VertexAttribLType, MapTypeNV, SecondaryColorPointerTypeIBM, WeightPointerTypeARB, TangentPointerTypeEXT, BinormalPointerTypeEXT, FogCoordinatePointerType, FogPointerTypeEXT, FogPointerTypeIBM, IndexPointerType, NormalPointerType, TexCoordPointerType, VertexPointerType, VertexAttribType, AttributeType, UniformType, VertexAttribPointerType, GlslTypeToken"]
1286 pub const GL_DOUBLE: GLenum = 0x140A;
1287 #[doc = "`GL_DOUBLEBUFFER: GLenum = 0x0C32`"]
1288 #[doc = "* **Groups:** GetFramebufferParameter, GetPName"]
1289 pub const GL_DOUBLEBUFFER: GLenum = 0x0C32;
1290 #[doc = "`GL_DOUBLE_MAT2: GLenum = 0x8F46`"]
1291 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1292 pub const GL_DOUBLE_MAT2: GLenum = 0x8F46;
1293 #[doc = "`GL_DOUBLE_MAT2x3: GLenum = 0x8F49`"]
1294 #[doc = "* **Groups:** UniformType, AttributeType"]
1295 pub const GL_DOUBLE_MAT2x3: GLenum = 0x8F49;
1296 #[doc = "`GL_DOUBLE_MAT2x4: GLenum = 0x8F4A`"]
1297 #[doc = "* **Groups:** UniformType, AttributeType"]
1298 pub const GL_DOUBLE_MAT2x4: GLenum = 0x8F4A;
1299 #[doc = "`GL_DOUBLE_MAT3: GLenum = 0x8F47`"]
1300 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1301 pub const GL_DOUBLE_MAT3: GLenum = 0x8F47;
1302 #[doc = "`GL_DOUBLE_MAT3x2: GLenum = 0x8F4B`"]
1303 #[doc = "* **Groups:** UniformType, AttributeType"]
1304 pub const GL_DOUBLE_MAT3x2: GLenum = 0x8F4B;
1305 #[doc = "`GL_DOUBLE_MAT3x4: GLenum = 0x8F4C`"]
1306 #[doc = "* **Groups:** UniformType, AttributeType"]
1307 pub const GL_DOUBLE_MAT3x4: GLenum = 0x8F4C;
1308 #[doc = "`GL_DOUBLE_MAT4: GLenum = 0x8F48`"]
1309 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1310 pub const GL_DOUBLE_MAT4: GLenum = 0x8F48;
1311 #[doc = "`GL_DOUBLE_MAT4x2: GLenum = 0x8F4D`"]
1312 #[doc = "* **Groups:** UniformType, AttributeType"]
1313 pub const GL_DOUBLE_MAT4x2: GLenum = 0x8F4D;
1314 #[doc = "`GL_DOUBLE_MAT4x3: GLenum = 0x8F4E`"]
1315 #[doc = "* **Groups:** UniformType, AttributeType"]
1316 pub const GL_DOUBLE_MAT4x3: GLenum = 0x8F4E;
1317 #[doc = "`GL_DOUBLE_VEC2: GLenum = 0x8FFC`"]
1318 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1319 pub const GL_DOUBLE_VEC2: GLenum = 0x8FFC;
1320 #[doc = "`GL_DOUBLE_VEC3: GLenum = 0x8FFD`"]
1321 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1322 pub const GL_DOUBLE_VEC3: GLenum = 0x8FFD;
1323 #[doc = "`GL_DOUBLE_VEC4: GLenum = 0x8FFE`"]
1324 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1325 pub const GL_DOUBLE_VEC4: GLenum = 0x8FFE;
1326 #[doc = "`GL_DRAW_BUFFER: GLenum = 0x0C01`"]
1327 #[doc = "* **Group:** GetPName"]
1328 pub const GL_DRAW_BUFFER: GLenum = 0x0C01;
1329 #[doc = "`GL_DRAW_BUFFER0: GLenum = 0x8825`"]
1330 pub const GL_DRAW_BUFFER0: GLenum = 0x8825;
1331 #[doc = "`GL_DRAW_BUFFER1: GLenum = 0x8826`"]
1332 pub const GL_DRAW_BUFFER1: GLenum = 0x8826;
1333 #[doc = "`GL_DRAW_BUFFER10: GLenum = 0x882F`"]
1334 pub const GL_DRAW_BUFFER10: GLenum = 0x882F;
1335 #[doc = "`GL_DRAW_BUFFER11: GLenum = 0x8830`"]
1336 pub const GL_DRAW_BUFFER11: GLenum = 0x8830;
1337 #[doc = "`GL_DRAW_BUFFER12: GLenum = 0x8831`"]
1338 pub const GL_DRAW_BUFFER12: GLenum = 0x8831;
1339 #[doc = "`GL_DRAW_BUFFER13: GLenum = 0x8832`"]
1340 pub const GL_DRAW_BUFFER13: GLenum = 0x8832;
1341 #[doc = "`GL_DRAW_BUFFER14: GLenum = 0x8833`"]
1342 pub const GL_DRAW_BUFFER14: GLenum = 0x8833;
1343 #[doc = "`GL_DRAW_BUFFER15: GLenum = 0x8834`"]
1344 pub const GL_DRAW_BUFFER15: GLenum = 0x8834;
1345 #[doc = "`GL_DRAW_BUFFER2: GLenum = 0x8827`"]
1346 pub const GL_DRAW_BUFFER2: GLenum = 0x8827;
1347 #[doc = "`GL_DRAW_BUFFER3: GLenum = 0x8828`"]
1348 pub const GL_DRAW_BUFFER3: GLenum = 0x8828;
1349 #[doc = "`GL_DRAW_BUFFER4: GLenum = 0x8829`"]
1350 pub const GL_DRAW_BUFFER4: GLenum = 0x8829;
1351 #[doc = "`GL_DRAW_BUFFER5: GLenum = 0x882A`"]
1352 pub const GL_DRAW_BUFFER5: GLenum = 0x882A;
1353 #[doc = "`GL_DRAW_BUFFER6: GLenum = 0x882B`"]
1354 pub const GL_DRAW_BUFFER6: GLenum = 0x882B;
1355 #[doc = "`GL_DRAW_BUFFER7: GLenum = 0x882C`"]
1356 pub const GL_DRAW_BUFFER7: GLenum = 0x882C;
1357 #[doc = "`GL_DRAW_BUFFER8: GLenum = 0x882D`"]
1358 pub const GL_DRAW_BUFFER8: GLenum = 0x882D;
1359 #[doc = "`GL_DRAW_BUFFER9: GLenum = 0x882E`"]
1360 pub const GL_DRAW_BUFFER9: GLenum = 0x882E;
1361 #[doc = "`GL_DRAW_FRAMEBUFFER: GLenum = 0x8CA9`"]
1362 #[doc = "* **Groups:** CheckFramebufferStatusTarget, FramebufferTarget"]
1363 pub const GL_DRAW_FRAMEBUFFER: GLenum = 0x8CA9;
1364 #[doc = "`GL_DRAW_FRAMEBUFFER_BINDING: GLenum = 0x8CA6`"]
1365 #[doc = "* **Group:** GetPName"]
1366 pub const GL_DRAW_FRAMEBUFFER_BINDING: GLenum = 0x8CA6;
1367 #[doc = "`GL_DRAW_INDIRECT_BUFFER: GLenum = 0x8F3F`"]
1368 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
1369 pub const GL_DRAW_INDIRECT_BUFFER: GLenum = 0x8F3F;
1370 #[doc = "`GL_DRAW_INDIRECT_BUFFER_BINDING: GLenum = 0x8F43`"]
1371 pub const GL_DRAW_INDIRECT_BUFFER_BINDING: GLenum = 0x8F43;
1372 #[doc = "`GL_DST_ALPHA: GLenum = 0x0304`"]
1373 #[doc = "* **Group:** BlendingFactor"]
1374 pub const GL_DST_ALPHA: GLenum = 0x0304;
1375 #[doc = "`GL_DST_COLOR: GLenum = 0x0306`"]
1376 #[doc = "* **Group:** BlendingFactor"]
1377 pub const GL_DST_COLOR: GLenum = 0x0306;
1378 #[doc = "`GL_DYNAMIC_COPY: GLenum = 0x88EA`"]
1379 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
1380 pub const GL_DYNAMIC_COPY: GLenum = 0x88EA;
1381 #[doc = "`GL_DYNAMIC_DRAW: GLenum = 0x88E8`"]
1382 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
1383 pub const GL_DYNAMIC_DRAW: GLenum = 0x88E8;
1384 #[doc = "`GL_DYNAMIC_READ: GLenum = 0x88E9`"]
1385 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
1386 pub const GL_DYNAMIC_READ: GLenum = 0x88E9;
1387 #[doc = "`GL_DYNAMIC_STORAGE_BIT: GLbitfield = 0x0100`"]
1388 #[doc = "* **Group:** BufferStorageMask"]
1389 pub const GL_DYNAMIC_STORAGE_BIT: GLbitfield = 0x0100;
1390 #[doc = "`GL_DYNAMIC_STORAGE_BIT_EXT: GLbitfield = 0x0100`"]
1391 #[doc = "* **Group:** BufferStorageMask"]
1392 pub const GL_DYNAMIC_STORAGE_BIT_EXT: GLbitfield = 0x0100;
1393 #[doc = "`GL_ELEMENT_ARRAY_BARRIER_BIT: GLbitfield = 0x00000002`"]
1394 #[doc = "* **Group:** MemoryBarrierMask"]
1395 pub const GL_ELEMENT_ARRAY_BARRIER_BIT: GLbitfield = 0x00000002;
1396 #[doc = "`GL_ELEMENT_ARRAY_BUFFER: GLenum = 0x8893`"]
1397 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
1398 pub const GL_ELEMENT_ARRAY_BUFFER: GLenum = 0x8893;
1399 #[doc = "`GL_ELEMENT_ARRAY_BUFFER_BINDING: GLenum = 0x8895`"]
1400 #[doc = "* **Group:** GetPName"]
1401 pub const GL_ELEMENT_ARRAY_BUFFER_BINDING: GLenum = 0x8895;
1402 #[doc = "`GL_EQUAL: GLenum = 0x0202`"]
1403 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
1404 pub const GL_EQUAL: GLenum = 0x0202;
1405 #[doc = "`GL_EQUIV: GLenum = 0x1509`"]
1406 #[doc = "* **Group:** LogicOp"]
1407 pub const GL_EQUIV: GLenum = 0x1509;
1408 #[doc = "`GL_EXCLUSION: GLenum = 0x92A0`"]
1409 pub const GL_EXCLUSION: GLenum = 0x92A0;
1410 #[doc = "`GL_EXTENSIONS: GLenum = 0x1F03`"]
1411 #[doc = "* **Group:** StringName"]
1412 pub const GL_EXTENSIONS: GLenum = 0x1F03;
1413 #[doc = "`GL_FALSE: GLenum = 0`"]
1414 #[doc = "* **Groups:** Boolean, VertexShaderWriteMaskEXT, ClampColorModeARB"]
1415 pub const GL_FALSE: GLenum = 0;
1416 #[doc = "`GL_FASTEST: GLenum = 0x1101`"]
1417 #[doc = "* **Group:** HintMode"]
1418 pub const GL_FASTEST: GLenum = 0x1101;
1419 #[doc = "`GL_FILL: GLenum = 0x1B02`"]
1420 #[doc = "* **Groups:** PolygonMode, MeshMode2"]
1421 pub const GL_FILL: GLenum = 0x1B02;
1422 #[doc = "`GL_FILTER: GLenum = 0x829A`"]
1423 #[doc = "* **Group:** InternalFormatPName"]
1424 pub const GL_FILTER: GLenum = 0x829A;
1425 #[doc = "`GL_FIRST_VERTEX_CONVENTION: GLenum = 0x8E4D`"]
1426 #[doc = "* **Group:** VertexProvokingMode"]
1427 pub const GL_FIRST_VERTEX_CONVENTION: GLenum = 0x8E4D;
1428 #[doc = "`GL_FIXED: GLenum = 0x140C`"]
1429 #[doc = "* **Groups:** VertexAttribPointerType, VertexAttribType"]
1430 pub const GL_FIXED: GLenum = 0x140C;
1431 #[doc = "`GL_FIXED_ONLY: GLenum = 0x891D`"]
1432 #[doc = "* **Group:** ClampColorModeARB"]
1433 pub const GL_FIXED_ONLY: GLenum = 0x891D;
1434 #[doc = "`GL_FLOAT: GLenum = 0x1406`"]
1435 #[doc = "* **Groups:** GlslTypeToken, MapTypeNV, SecondaryColorPointerTypeIBM, WeightPointerTypeARB, VertexWeightPointerTypeEXT, TangentPointerTypeEXT, BinormalPointerTypeEXT, FogCoordinatePointerType, FogPointerTypeEXT, FogPointerTypeIBM, IndexPointerType, ListNameType, NormalPointerType, PixelType, TexCoordPointerType, VertexPointerType, VertexAttribType, AttributeType, UniformType, VertexAttribPointerType"]
1436 pub const GL_FLOAT: GLenum = 0x1406;
1437 #[doc = "`GL_FLOAT_32_UNSIGNED_INT_24_8_REV: GLenum = 0x8DAD`"]
1438 pub const GL_FLOAT_32_UNSIGNED_INT_24_8_REV: GLenum = 0x8DAD;
1439 #[doc = "`GL_FLOAT_MAT2: GLenum = 0x8B5A`"]
1440 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1441 pub const GL_FLOAT_MAT2: GLenum = 0x8B5A;
1442 #[doc = "`GL_FLOAT_MAT2x3: GLenum = 0x8B65`"]
1443 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1444 pub const GL_FLOAT_MAT2x3: GLenum = 0x8B65;
1445 #[doc = "`GL_FLOAT_MAT2x4: GLenum = 0x8B66`"]
1446 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1447 pub const GL_FLOAT_MAT2x4: GLenum = 0x8B66;
1448 #[doc = "`GL_FLOAT_MAT3: GLenum = 0x8B5B`"]
1449 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1450 pub const GL_FLOAT_MAT3: GLenum = 0x8B5B;
1451 #[doc = "`GL_FLOAT_MAT3x2: GLenum = 0x8B67`"]
1452 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1453 pub const GL_FLOAT_MAT3x2: GLenum = 0x8B67;
1454 #[doc = "`GL_FLOAT_MAT3x4: GLenum = 0x8B68`"]
1455 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1456 pub const GL_FLOAT_MAT3x4: GLenum = 0x8B68;
1457 #[doc = "`GL_FLOAT_MAT4: GLenum = 0x8B5C`"]
1458 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1459 pub const GL_FLOAT_MAT4: GLenum = 0x8B5C;
1460 #[doc = "`GL_FLOAT_MAT4x2: GLenum = 0x8B69`"]
1461 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1462 pub const GL_FLOAT_MAT4x2: GLenum = 0x8B69;
1463 #[doc = "`GL_FLOAT_MAT4x3: GLenum = 0x8B6A`"]
1464 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1465 pub const GL_FLOAT_MAT4x3: GLenum = 0x8B6A;
1466 #[doc = "`GL_FLOAT_VEC2: GLenum = 0x8B50`"]
1467 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1468 pub const GL_FLOAT_VEC2: GLenum = 0x8B50;
1469 #[doc = "`GL_FLOAT_VEC3: GLenum = 0x8B51`"]
1470 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1471 pub const GL_FLOAT_VEC3: GLenum = 0x8B51;
1472 #[doc = "`GL_FLOAT_VEC4: GLenum = 0x8B52`"]
1473 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1474 pub const GL_FLOAT_VEC4: GLenum = 0x8B52;
1475 #[doc = "`GL_FRACTIONAL_EVEN: GLenum = 0x8E7C`"]
1476 pub const GL_FRACTIONAL_EVEN: GLenum = 0x8E7C;
1477 #[doc = "`GL_FRACTIONAL_ODD: GLenum = 0x8E7B`"]
1478 pub const GL_FRACTIONAL_ODD: GLenum = 0x8E7B;
1479 #[doc = "`GL_FRAGMENT_INTERPOLATION_OFFSET_BITS: GLenum = 0x8E5D`"]
1480 pub const GL_FRAGMENT_INTERPOLATION_OFFSET_BITS: GLenum = 0x8E5D;
1481 #[doc = "`GL_FRAGMENT_SHADER: GLenum = 0x8B30`"]
1482 #[doc = "* **Groups:** PipelineParameterName, ShaderType"]
1483 pub const GL_FRAGMENT_SHADER: GLenum = 0x8B30;
1484 #[doc = "`GL_FRAGMENT_SHADER_BIT: GLbitfield = 0x00000002`"]
1485 #[doc = "* **Group:** UseProgramStageMask"]
1486 pub const GL_FRAGMENT_SHADER_BIT: GLbitfield = 0x00000002;
1487 #[doc = "`GL_FRAGMENT_SHADER_DERIVATIVE_HINT: GLenum = 0x8B8B`"]
1488 #[doc = "* **Groups:** HintTarget, GetPName"]
1489 pub const GL_FRAGMENT_SHADER_DERIVATIVE_HINT: GLenum = 0x8B8B;
1490 #[doc = "`GL_FRAGMENT_SHADER_INVOCATIONS: GLenum = 0x82F4`"]
1491 pub const GL_FRAGMENT_SHADER_INVOCATIONS: GLenum = 0x82F4;
1492 #[doc = "`GL_FRAGMENT_SUBROUTINE: GLenum = 0x92EC`"]
1493 #[doc = "* **Group:** ProgramInterface"]
1494 pub const GL_FRAGMENT_SUBROUTINE: GLenum = 0x92EC;
1495 #[doc = "`GL_FRAGMENT_SUBROUTINE_UNIFORM: GLenum = 0x92F2`"]
1496 #[doc = "* **Group:** ProgramInterface"]
1497 pub const GL_FRAGMENT_SUBROUTINE_UNIFORM: GLenum = 0x92F2;
1498 #[doc = "`GL_FRAGMENT_TEXTURE: GLenum = 0x829F`"]
1499 #[doc = "* **Group:** InternalFormatPName"]
1500 pub const GL_FRAGMENT_TEXTURE: GLenum = 0x829F;
1501 #[doc = "`GL_FRAMEBUFFER: GLenum = 0x8D40`"]
1502 #[doc = "* **Groups:** ObjectIdentifier, FramebufferTarget, CheckFramebufferStatusTarget"]
1503 pub const GL_FRAMEBUFFER: GLenum = 0x8D40;
1504 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: GLenum = 0x8215`"]
1505 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1506 pub const GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: GLenum = 0x8215;
1507 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: GLenum = 0x8214`"]
1508 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1509 pub const GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: GLenum = 0x8214;
1510 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: GLenum = 0x8210`"]
1511 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1512 pub const GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: GLenum = 0x8210;
1513 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: GLenum = 0x8211`"]
1514 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1515 pub const GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: GLenum = 0x8211;
1516 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: GLenum = 0x8216`"]
1517 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1518 pub const GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: GLenum = 0x8216;
1519 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: GLenum = 0x8213`"]
1520 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1521 pub const GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: GLenum = 0x8213;
1522 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_LAYERED: GLenum = 0x8DA7`"]
1523 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1524 pub const GL_FRAMEBUFFER_ATTACHMENT_LAYERED: GLenum = 0x8DA7;
1525 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum = 0x8CD1`"]
1526 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1527 pub const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum = 0x8CD1;
1528 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum = 0x8CD0`"]
1529 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1530 pub const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum = 0x8CD0;
1531 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE: GLenum = 0x8212`"]
1532 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1533 pub const GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE: GLenum = 0x8212;
1534 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: GLenum = 0x8217`"]
1535 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1536 pub const GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: GLenum = 0x8217;
1537 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum = 0x8CD3`"]
1538 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1539 pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum = 0x8CD3;
1540 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: GLenum = 0x8CD4`"]
1541 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1542 pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: GLenum = 0x8CD4;
1543 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum = 0x8CD2`"]
1544 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1545 pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum = 0x8CD2;
1546 #[doc = "`GL_FRAMEBUFFER_BARRIER_BIT: GLbitfield = 0x00000400`"]
1547 #[doc = "* **Group:** MemoryBarrierMask"]
1548 pub const GL_FRAMEBUFFER_BARRIER_BIT: GLbitfield = 0x00000400;
1549 #[doc = "`GL_FRAMEBUFFER_BINDING: GLenum = 0x8CA6`"]
1550 pub const GL_FRAMEBUFFER_BINDING: GLenum = 0x8CA6;
1551 #[doc = "`GL_FRAMEBUFFER_BLEND: GLenum = 0x828B`"]
1552 #[doc = "* **Group:** InternalFormatPName"]
1553 pub const GL_FRAMEBUFFER_BLEND: GLenum = 0x828B;
1554 #[doc = "`GL_FRAMEBUFFER_COMPLETE: GLenum = 0x8CD5`"]
1555 #[doc = "* **Group:** FramebufferStatus"]
1556 pub const GL_FRAMEBUFFER_COMPLETE: GLenum = 0x8CD5;
1557 #[doc = "`GL_FRAMEBUFFER_DEFAULT: GLenum = 0x8218`"]
1558 pub const GL_FRAMEBUFFER_DEFAULT: GLenum = 0x8218;
1559 #[doc = "`GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS: GLenum = 0x9314`"]
1560 #[doc = "* **Groups:** GetFramebufferParameter, FramebufferParameterName"]
1561 pub const GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS: GLenum = 0x9314;
1562 #[doc = "`GL_FRAMEBUFFER_DEFAULT_HEIGHT: GLenum = 0x9311`"]
1563 #[doc = "* **Groups:** GetFramebufferParameter, FramebufferParameterName"]
1564 pub const GL_FRAMEBUFFER_DEFAULT_HEIGHT: GLenum = 0x9311;
1565 #[doc = "`GL_FRAMEBUFFER_DEFAULT_LAYERS: GLenum = 0x9312`"]
1566 #[doc = "* **Groups:** GetFramebufferParameter, FramebufferParameterName"]
1567 pub const GL_FRAMEBUFFER_DEFAULT_LAYERS: GLenum = 0x9312;
1568 #[doc = "`GL_FRAMEBUFFER_DEFAULT_SAMPLES: GLenum = 0x9313`"]
1569 #[doc = "* **Groups:** GetFramebufferParameter, FramebufferParameterName"]
1570 pub const GL_FRAMEBUFFER_DEFAULT_SAMPLES: GLenum = 0x9313;
1571 #[doc = "`GL_FRAMEBUFFER_DEFAULT_WIDTH: GLenum = 0x9310`"]
1572 #[doc = "* **Groups:** GetFramebufferParameter, FramebufferParameterName"]
1573 pub const GL_FRAMEBUFFER_DEFAULT_WIDTH: GLenum = 0x9310;
1574 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum = 0x8CD6`"]
1575 #[doc = "* **Group:** FramebufferStatus"]
1576 pub const GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum = 0x8CD6;
1577 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum = 0x8CD9`"]
1578 pub const GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum = 0x8CD9;
1579 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER: GLenum = 0x8CDB`"]
1580 #[doc = "* **Group:** FramebufferStatus"]
1581 pub const GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER: GLenum = 0x8CDB;
1582 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS: GLenum = 0x8DA8`"]
1583 #[doc = "* **Group:** FramebufferStatus"]
1584 pub const GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS: GLenum = 0x8DA8;
1585 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum = 0x8CD7`"]
1586 #[doc = "* **Group:** FramebufferStatus"]
1587 pub const GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum = 0x8CD7;
1588 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: GLenum = 0x8D56`"]
1589 #[doc = "* **Group:** FramebufferStatus"]
1590 pub const GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: GLenum = 0x8D56;
1591 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER: GLenum = 0x8CDC`"]
1592 #[doc = "* **Group:** FramebufferStatus"]
1593 pub const GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER: GLenum = 0x8CDC;
1594 #[doc = "`GL_FRAMEBUFFER_RENDERABLE: GLenum = 0x8289`"]
1595 #[doc = "* **Group:** InternalFormatPName"]
1596 pub const GL_FRAMEBUFFER_RENDERABLE: GLenum = 0x8289;
1597 #[doc = "`GL_FRAMEBUFFER_RENDERABLE_LAYERED: GLenum = 0x828A`"]
1598 #[doc = "* **Group:** InternalFormatPName"]
1599 pub const GL_FRAMEBUFFER_RENDERABLE_LAYERED: GLenum = 0x828A;
1600 #[doc = "`GL_FRAMEBUFFER_SRGB: GLenum = 0x8DB9`"]
1601 #[doc = "* **Group:** EnableCap"]
1602 pub const GL_FRAMEBUFFER_SRGB: GLenum = 0x8DB9;
1603 #[doc = "`GL_FRAMEBUFFER_UNDEFINED: GLenum = 0x8219`"]
1604 #[doc = "* **Group:** FramebufferStatus"]
1605 pub const GL_FRAMEBUFFER_UNDEFINED: GLenum = 0x8219;
1606 #[doc = "`GL_FRAMEBUFFER_UNSUPPORTED: GLenum = 0x8CDD`"]
1607 #[doc = "* **Group:** FramebufferStatus"]
1608 pub const GL_FRAMEBUFFER_UNSUPPORTED: GLenum = 0x8CDD;
1609 #[doc = "`GL_FRONT: GLenum = 0x0404`"]
1610 #[doc = "* **Groups:** ColorBuffer, ColorMaterialFace, CullFaceMode, DrawBufferMode, ReadBufferMode, StencilFaceDirection, MaterialFace"]
1611 pub const GL_FRONT: GLenum = 0x0404;
1612 #[doc = "`GL_FRONT_AND_BACK: GLenum = 0x0408`"]
1613 #[doc = "* **Groups:** ColorBuffer, ColorMaterialFace, CullFaceMode, DrawBufferMode, StencilFaceDirection, MaterialFace"]
1614 pub const GL_FRONT_AND_BACK: GLenum = 0x0408;
1615 #[doc = "`GL_FRONT_FACE: GLenum = 0x0B46`"]
1616 #[doc = "* **Group:** GetPName"]
1617 pub const GL_FRONT_FACE: GLenum = 0x0B46;
1618 #[doc = "`GL_FRONT_LEFT: GLenum = 0x0400`"]
1619 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode"]
1620 pub const GL_FRONT_LEFT: GLenum = 0x0400;
1621 #[doc = "`GL_FRONT_RIGHT: GLenum = 0x0401`"]
1622 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode"]
1623 pub const GL_FRONT_RIGHT: GLenum = 0x0401;
1624 #[doc = "`GL_FULL_SUPPORT: GLenum = 0x82B7`"]
1625 pub const GL_FULL_SUPPORT: GLenum = 0x82B7;
1626 #[doc = "`GL_FUNC_ADD: GLenum = 0x8006`"]
1627 #[doc = "* **Group:** BlendEquationModeEXT"]
1628 pub const GL_FUNC_ADD: GLenum = 0x8006;
1629 #[doc = "`GL_FUNC_REVERSE_SUBTRACT: GLenum = 0x800B`"]
1630 #[doc = "* **Group:** BlendEquationModeEXT"]
1631 pub const GL_FUNC_REVERSE_SUBTRACT: GLenum = 0x800B;
1632 #[doc = "`GL_FUNC_SUBTRACT: GLenum = 0x800A`"]
1633 #[doc = "* **Group:** BlendEquationModeEXT"]
1634 pub const GL_FUNC_SUBTRACT: GLenum = 0x800A;
1635 #[doc = "`GL_GENERATE_MIPMAP_HINT: GLenum = 0x8192`"]
1636 #[doc = "* **Group:** HintTarget"]
1637 pub const GL_GENERATE_MIPMAP_HINT: GLenum = 0x8192;
1638 #[doc = "`GL_GEOMETRY_INPUT_TYPE: GLenum = 0x8917`"]
1639 #[doc = "* **Group:** ProgramPropertyARB"]
1640 pub const GL_GEOMETRY_INPUT_TYPE: GLenum = 0x8917;
1641 #[doc = "`GL_GEOMETRY_OUTPUT_TYPE: GLenum = 0x8918`"]
1642 #[doc = "* **Group:** ProgramPropertyARB"]
1643 pub const GL_GEOMETRY_OUTPUT_TYPE: GLenum = 0x8918;
1644 #[doc = "`GL_GEOMETRY_SHADER: GLenum = 0x8DD9`"]
1645 #[doc = "* **Groups:** PipelineParameterName, ShaderType"]
1646 pub const GL_GEOMETRY_SHADER: GLenum = 0x8DD9;
1647 #[doc = "`GL_GEOMETRY_SHADER_BIT: GLbitfield = 0x00000004`"]
1648 #[doc = "* **Group:** UseProgramStageMask"]
1649 pub const GL_GEOMETRY_SHADER_BIT: GLbitfield = 0x00000004;
1650 #[doc = "`GL_GEOMETRY_SHADER_INVOCATIONS: GLenum = 0x887F`"]
1651 pub const GL_GEOMETRY_SHADER_INVOCATIONS: GLenum = 0x887F;
1652 #[doc = "`GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED: GLenum = 0x82F3`"]
1653 pub const GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED: GLenum = 0x82F3;
1654 #[doc = "`GL_GEOMETRY_SUBROUTINE: GLenum = 0x92EB`"]
1655 #[doc = "* **Group:** ProgramInterface"]
1656 pub const GL_GEOMETRY_SUBROUTINE: GLenum = 0x92EB;
1657 #[doc = "`GL_GEOMETRY_SUBROUTINE_UNIFORM: GLenum = 0x92F1`"]
1658 #[doc = "* **Group:** ProgramInterface"]
1659 pub const GL_GEOMETRY_SUBROUTINE_UNIFORM: GLenum = 0x92F1;
1660 #[doc = "`GL_GEOMETRY_TEXTURE: GLenum = 0x829E`"]
1661 #[doc = "* **Group:** InternalFormatPName"]
1662 pub const GL_GEOMETRY_TEXTURE: GLenum = 0x829E;
1663 #[doc = "`GL_GEOMETRY_VERTICES_OUT: GLenum = 0x8916`"]
1664 #[doc = "* **Group:** ProgramPropertyARB"]
1665 pub const GL_GEOMETRY_VERTICES_OUT: GLenum = 0x8916;
1666 #[doc = "`GL_GEQUAL: GLenum = 0x0206`"]
1667 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
1668 pub const GL_GEQUAL: GLenum = 0x0206;
1669 #[doc = "`GL_GET_TEXTURE_IMAGE_FORMAT: GLenum = 0x8291`"]
1670 #[doc = "* **Group:** InternalFormatPName"]
1671 pub const GL_GET_TEXTURE_IMAGE_FORMAT: GLenum = 0x8291;
1672 #[doc = "`GL_GET_TEXTURE_IMAGE_TYPE: GLenum = 0x8292`"]
1673 #[doc = "* **Group:** InternalFormatPName"]
1674 pub const GL_GET_TEXTURE_IMAGE_TYPE: GLenum = 0x8292;
1675 #[doc = "`GL_GPU_DISJOINT_EXT: GLenum = 0x8FBB`"]
1676 pub const GL_GPU_DISJOINT_EXT: GLenum = 0x8FBB;
1677 #[doc = "`GL_GREATER: GLenum = 0x0204`"]
1678 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
1679 pub const GL_GREATER: GLenum = 0x0204;
1680 #[doc = "`GL_GREEN: GLenum = 0x1904`"]
1681 #[doc = "* **Groups:** TextureSwizzle, PixelFormat"]
1682 pub const GL_GREEN: GLenum = 0x1904;
1683 #[doc = "`GL_GREEN_BITS: GLenum = 0x0D53`"]
1684 #[doc = "* **Group:** GetPName"]
1685 pub const GL_GREEN_BITS: GLenum = 0x0D53;
1686 #[doc = "`GL_GREEN_INTEGER: GLenum = 0x8D95`"]
1687 #[doc = "* **Group:** PixelFormat"]
1688 pub const GL_GREEN_INTEGER: GLenum = 0x8D95;
1689 #[doc = "`GL_GUILTY_CONTEXT_RESET: GLenum = 0x8253`"]
1690 #[doc = "* **Group:** GraphicsResetStatus"]
1691 pub const GL_GUILTY_CONTEXT_RESET: GLenum = 0x8253;
1692 #[doc = "`GL_HALF_FLOAT: GLenum = 0x140B`"]
1693 #[doc = "* **Groups:** VertexAttribPointerType, VertexAttribType"]
1694 pub const GL_HALF_FLOAT: GLenum = 0x140B;
1695 #[doc = "`GL_HARDLIGHT: GLenum = 0x929B`"]
1696 pub const GL_HARDLIGHT: GLenum = 0x929B;
1697 #[doc = "`GL_HIGH_FLOAT: GLenum = 0x8DF2`"]
1698 #[doc = "* **Group:** PrecisionType"]
1699 pub const GL_HIGH_FLOAT: GLenum = 0x8DF2;
1700 #[doc = "`GL_HIGH_INT: GLenum = 0x8DF5`"]
1701 #[doc = "* **Group:** PrecisionType"]
1702 pub const GL_HIGH_INT: GLenum = 0x8DF5;
1703 #[doc = "`GL_HSL_COLOR: GLenum = 0x92AF`"]
1704 pub const GL_HSL_COLOR: GLenum = 0x92AF;
1705 #[doc = "`GL_HSL_HUE: GLenum = 0x92AD`"]
1706 pub const GL_HSL_HUE: GLenum = 0x92AD;
1707 #[doc = "`GL_HSL_LUMINOSITY: GLenum = 0x92B0`"]
1708 pub const GL_HSL_LUMINOSITY: GLenum = 0x92B0;
1709 #[doc = "`GL_HSL_SATURATION: GLenum = 0x92AE`"]
1710 pub const GL_HSL_SATURATION: GLenum = 0x92AE;
1711 #[doc = "`GL_IMAGE_1D: GLenum = 0x904C`"]
1712 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1713 pub const GL_IMAGE_1D: GLenum = 0x904C;
1714 #[doc = "`GL_IMAGE_1D_ARRAY: GLenum = 0x9052`"]
1715 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1716 pub const GL_IMAGE_1D_ARRAY: GLenum = 0x9052;
1717 #[doc = "`GL_IMAGE_2D: GLenum = 0x904D`"]
1718 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1719 pub const GL_IMAGE_2D: GLenum = 0x904D;
1720 #[doc = "`GL_IMAGE_2D_ARRAY: GLenum = 0x9053`"]
1721 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1722 pub const GL_IMAGE_2D_ARRAY: GLenum = 0x9053;
1723 #[doc = "`GL_IMAGE_2D_MULTISAMPLE: GLenum = 0x9055`"]
1724 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1725 pub const GL_IMAGE_2D_MULTISAMPLE: GLenum = 0x9055;
1726 #[doc = "`GL_IMAGE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9056`"]
1727 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1728 pub const GL_IMAGE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9056;
1729 #[doc = "`GL_IMAGE_2D_RECT: GLenum = 0x904F`"]
1730 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1731 pub const GL_IMAGE_2D_RECT: GLenum = 0x904F;
1732 #[doc = "`GL_IMAGE_3D: GLenum = 0x904E`"]
1733 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1734 pub const GL_IMAGE_3D: GLenum = 0x904E;
1735 #[doc = "`GL_IMAGE_BINDING_ACCESS: GLenum = 0x8F3E`"]
1736 pub const GL_IMAGE_BINDING_ACCESS: GLenum = 0x8F3E;
1737 #[doc = "`GL_IMAGE_BINDING_FORMAT: GLenum = 0x906E`"]
1738 pub const GL_IMAGE_BINDING_FORMAT: GLenum = 0x906E;
1739 #[doc = "`GL_IMAGE_BINDING_LAYER: GLenum = 0x8F3D`"]
1740 pub const GL_IMAGE_BINDING_LAYER: GLenum = 0x8F3D;
1741 #[doc = "`GL_IMAGE_BINDING_LAYERED: GLenum = 0x8F3C`"]
1742 pub const GL_IMAGE_BINDING_LAYERED: GLenum = 0x8F3C;
1743 #[doc = "`GL_IMAGE_BINDING_LEVEL: GLenum = 0x8F3B`"]
1744 pub const GL_IMAGE_BINDING_LEVEL: GLenum = 0x8F3B;
1745 #[doc = "`GL_IMAGE_BINDING_NAME: GLenum = 0x8F3A`"]
1746 pub const GL_IMAGE_BINDING_NAME: GLenum = 0x8F3A;
1747 #[doc = "`GL_IMAGE_BUFFER: GLenum = 0x9051`"]
1748 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1749 pub const GL_IMAGE_BUFFER: GLenum = 0x9051;
1750 #[doc = "`GL_IMAGE_CLASS_10_10_10_2: GLenum = 0x82C3`"]
1751 pub const GL_IMAGE_CLASS_10_10_10_2: GLenum = 0x82C3;
1752 #[doc = "`GL_IMAGE_CLASS_11_11_10: GLenum = 0x82C2`"]
1753 pub const GL_IMAGE_CLASS_11_11_10: GLenum = 0x82C2;
1754 #[doc = "`GL_IMAGE_CLASS_1_X_16: GLenum = 0x82BE`"]
1755 pub const GL_IMAGE_CLASS_1_X_16: GLenum = 0x82BE;
1756 #[doc = "`GL_IMAGE_CLASS_1_X_32: GLenum = 0x82BB`"]
1757 pub const GL_IMAGE_CLASS_1_X_32: GLenum = 0x82BB;
1758 #[doc = "`GL_IMAGE_CLASS_1_X_8: GLenum = 0x82C1`"]
1759 pub const GL_IMAGE_CLASS_1_X_8: GLenum = 0x82C1;
1760 #[doc = "`GL_IMAGE_CLASS_2_X_16: GLenum = 0x82BD`"]
1761 pub const GL_IMAGE_CLASS_2_X_16: GLenum = 0x82BD;
1762 #[doc = "`GL_IMAGE_CLASS_2_X_32: GLenum = 0x82BA`"]
1763 pub const GL_IMAGE_CLASS_2_X_32: GLenum = 0x82BA;
1764 #[doc = "`GL_IMAGE_CLASS_2_X_8: GLenum = 0x82C0`"]
1765 pub const GL_IMAGE_CLASS_2_X_8: GLenum = 0x82C0;
1766 #[doc = "`GL_IMAGE_CLASS_4_X_16: GLenum = 0x82BC`"]
1767 pub const GL_IMAGE_CLASS_4_X_16: GLenum = 0x82BC;
1768 #[doc = "`GL_IMAGE_CLASS_4_X_32: GLenum = 0x82B9`"]
1769 pub const GL_IMAGE_CLASS_4_X_32: GLenum = 0x82B9;
1770 #[doc = "`GL_IMAGE_CLASS_4_X_8: GLenum = 0x82BF`"]
1771 pub const GL_IMAGE_CLASS_4_X_8: GLenum = 0x82BF;
1772 #[doc = "`GL_IMAGE_COMPATIBILITY_CLASS: GLenum = 0x82A8`"]
1773 #[doc = "* **Group:** InternalFormatPName"]
1774 pub const GL_IMAGE_COMPATIBILITY_CLASS: GLenum = 0x82A8;
1775 #[doc = "`GL_IMAGE_CUBE: GLenum = 0x9050`"]
1776 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1777 pub const GL_IMAGE_CUBE: GLenum = 0x9050;
1778 #[doc = "`GL_IMAGE_CUBE_MAP_ARRAY: GLenum = 0x9054`"]
1779 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1780 pub const GL_IMAGE_CUBE_MAP_ARRAY: GLenum = 0x9054;
1781 #[doc = "`GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS: GLenum = 0x90C9`"]
1782 pub const GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS: GLenum = 0x90C9;
1783 #[doc = "`GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE: GLenum = 0x90C8`"]
1784 pub const GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE: GLenum = 0x90C8;
1785 #[doc = "`GL_IMAGE_FORMAT_COMPATIBILITY_TYPE: GLenum = 0x90C7`"]
1786 #[doc = "* **Group:** InternalFormatPName"]
1787 pub const GL_IMAGE_FORMAT_COMPATIBILITY_TYPE: GLenum = 0x90C7;
1788 #[doc = "`GL_IMAGE_PIXEL_FORMAT: GLenum = 0x82A9`"]
1789 #[doc = "* **Group:** InternalFormatPName"]
1790 pub const GL_IMAGE_PIXEL_FORMAT: GLenum = 0x82A9;
1791 #[doc = "`GL_IMAGE_PIXEL_TYPE: GLenum = 0x82AA`"]
1792 #[doc = "* **Group:** InternalFormatPName"]
1793 pub const GL_IMAGE_PIXEL_TYPE: GLenum = 0x82AA;
1794 #[doc = "`GL_IMAGE_TEXEL_SIZE: GLenum = 0x82A7`"]
1795 #[doc = "* **Group:** InternalFormatPName"]
1796 pub const GL_IMAGE_TEXEL_SIZE: GLenum = 0x82A7;
1797 #[doc = "`GL_IMPLEMENTATION_COLOR_READ_FORMAT: GLenum = 0x8B9B`"]
1798 #[doc = "* **Groups:** GetFramebufferParameter, GetPName"]
1799 pub const GL_IMPLEMENTATION_COLOR_READ_FORMAT: GLenum = 0x8B9B;
1800 #[doc = "`GL_IMPLEMENTATION_COLOR_READ_TYPE: GLenum = 0x8B9A`"]
1801 #[doc = "* **Groups:** GetFramebufferParameter, GetPName"]
1802 pub const GL_IMPLEMENTATION_COLOR_READ_TYPE: GLenum = 0x8B9A;
1803 #[doc = "`GL_INCR: GLenum = 0x1E02`"]
1804 #[doc = "* **Group:** StencilOp"]
1805 pub const GL_INCR: GLenum = 0x1E02;
1806 #[doc = "`GL_INCR_WRAP: GLenum = 0x8507`"]
1807 #[doc = "* **Group:** StencilOp"]
1808 pub const GL_INCR_WRAP: GLenum = 0x8507;
1809 #[doc = "`GL_INFO_LOG_LENGTH: GLenum = 0x8B84`"]
1810 #[doc = "* **Groups:** ProgramPropertyARB, ShaderParameterName, PipelineParameterName"]
1811 pub const GL_INFO_LOG_LENGTH: GLenum = 0x8B84;
1812 #[doc = "`GL_INNOCENT_CONTEXT_RESET: GLenum = 0x8254`"]
1813 #[doc = "* **Group:** GraphicsResetStatus"]
1814 pub const GL_INNOCENT_CONTEXT_RESET: GLenum = 0x8254;
1815 #[doc = "`GL_INT: GLenum = 0x1404`"]
1816 #[doc = "* **Groups:** VertexAttribIType, SecondaryColorPointerTypeIBM, WeightPointerTypeARB, TangentPointerTypeEXT, BinormalPointerTypeEXT, IndexPointerType, ListNameType, NormalPointerType, PixelType, TexCoordPointerType, VertexPointerType, VertexAttribType, AttributeType, UniformType, VertexAttribPointerType, GlslTypeToken"]
1817 pub const GL_INT: GLenum = 0x1404;
1818 #[doc = "`GL_INTERLEAVED_ATTRIBS: GLenum = 0x8C8C`"]
1819 #[doc = "* **Group:** TransformFeedbackBufferMode"]
1820 pub const GL_INTERLEAVED_ATTRIBS: GLenum = 0x8C8C;
1821 #[doc = "`GL_INTERNALFORMAT_ALPHA_SIZE: GLenum = 0x8274`"]
1822 #[doc = "* **Group:** InternalFormatPName"]
1823 pub const GL_INTERNALFORMAT_ALPHA_SIZE: GLenum = 0x8274;
1824 #[doc = "`GL_INTERNALFORMAT_ALPHA_TYPE: GLenum = 0x827B`"]
1825 #[doc = "* **Group:** InternalFormatPName"]
1826 pub const GL_INTERNALFORMAT_ALPHA_TYPE: GLenum = 0x827B;
1827 #[doc = "`GL_INTERNALFORMAT_BLUE_SIZE: GLenum = 0x8273`"]
1828 #[doc = "* **Group:** InternalFormatPName"]
1829 pub const GL_INTERNALFORMAT_BLUE_SIZE: GLenum = 0x8273;
1830 #[doc = "`GL_INTERNALFORMAT_BLUE_TYPE: GLenum = 0x827A`"]
1831 #[doc = "* **Group:** InternalFormatPName"]
1832 pub const GL_INTERNALFORMAT_BLUE_TYPE: GLenum = 0x827A;
1833 #[doc = "`GL_INTERNALFORMAT_DEPTH_SIZE: GLenum = 0x8275`"]
1834 #[doc = "* **Group:** InternalFormatPName"]
1835 pub const GL_INTERNALFORMAT_DEPTH_SIZE: GLenum = 0x8275;
1836 #[doc = "`GL_INTERNALFORMAT_DEPTH_TYPE: GLenum = 0x827C`"]
1837 #[doc = "* **Group:** InternalFormatPName"]
1838 pub const GL_INTERNALFORMAT_DEPTH_TYPE: GLenum = 0x827C;
1839 #[doc = "`GL_INTERNALFORMAT_GREEN_SIZE: GLenum = 0x8272`"]
1840 #[doc = "* **Group:** InternalFormatPName"]
1841 pub const GL_INTERNALFORMAT_GREEN_SIZE: GLenum = 0x8272;
1842 #[doc = "`GL_INTERNALFORMAT_GREEN_TYPE: GLenum = 0x8279`"]
1843 #[doc = "* **Group:** InternalFormatPName"]
1844 pub const GL_INTERNALFORMAT_GREEN_TYPE: GLenum = 0x8279;
1845 #[doc = "`GL_INTERNALFORMAT_PREFERRED: GLenum = 0x8270`"]
1846 #[doc = "* **Group:** InternalFormatPName"]
1847 pub const GL_INTERNALFORMAT_PREFERRED: GLenum = 0x8270;
1848 #[doc = "`GL_INTERNALFORMAT_RED_SIZE: GLenum = 0x8271`"]
1849 #[doc = "* **Group:** InternalFormatPName"]
1850 pub const GL_INTERNALFORMAT_RED_SIZE: GLenum = 0x8271;
1851 #[doc = "`GL_INTERNALFORMAT_RED_TYPE: GLenum = 0x8278`"]
1852 #[doc = "* **Group:** InternalFormatPName"]
1853 pub const GL_INTERNALFORMAT_RED_TYPE: GLenum = 0x8278;
1854 #[doc = "`GL_INTERNALFORMAT_SHARED_SIZE: GLenum = 0x8277`"]
1855 #[doc = "* **Group:** InternalFormatPName"]
1856 pub const GL_INTERNALFORMAT_SHARED_SIZE: GLenum = 0x8277;
1857 #[doc = "`GL_INTERNALFORMAT_STENCIL_SIZE: GLenum = 0x8276`"]
1858 #[doc = "* **Group:** InternalFormatPName"]
1859 pub const GL_INTERNALFORMAT_STENCIL_SIZE: GLenum = 0x8276;
1860 #[doc = "`GL_INTERNALFORMAT_STENCIL_TYPE: GLenum = 0x827D`"]
1861 #[doc = "* **Group:** InternalFormatPName"]
1862 pub const GL_INTERNALFORMAT_STENCIL_TYPE: GLenum = 0x827D;
1863 #[doc = "`GL_INTERNALFORMAT_SUPPORTED: GLenum = 0x826F`"]
1864 #[doc = "* **Group:** InternalFormatPName"]
1865 pub const GL_INTERNALFORMAT_SUPPORTED: GLenum = 0x826F;
1866 #[doc = "`GL_INT_2_10_10_10_REV: GLenum = 0x8D9F`"]
1867 #[doc = "* **Groups:** VertexAttribPointerType, VertexAttribType"]
1868 pub const GL_INT_2_10_10_10_REV: GLenum = 0x8D9F;
1869 #[doc = "`GL_INT_IMAGE_1D: GLenum = 0x9057`"]
1870 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1871 pub const GL_INT_IMAGE_1D: GLenum = 0x9057;
1872 #[doc = "`GL_INT_IMAGE_1D_ARRAY: GLenum = 0x905D`"]
1873 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1874 pub const GL_INT_IMAGE_1D_ARRAY: GLenum = 0x905D;
1875 #[doc = "`GL_INT_IMAGE_2D: GLenum = 0x9058`"]
1876 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1877 pub const GL_INT_IMAGE_2D: GLenum = 0x9058;
1878 #[doc = "`GL_INT_IMAGE_2D_ARRAY: GLenum = 0x905E`"]
1879 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1880 pub const GL_INT_IMAGE_2D_ARRAY: GLenum = 0x905E;
1881 #[doc = "`GL_INT_IMAGE_2D_MULTISAMPLE: GLenum = 0x9060`"]
1882 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1883 pub const GL_INT_IMAGE_2D_MULTISAMPLE: GLenum = 0x9060;
1884 #[doc = "`GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9061`"]
1885 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1886 pub const GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9061;
1887 #[doc = "`GL_INT_IMAGE_2D_RECT: GLenum = 0x905A`"]
1888 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1889 pub const GL_INT_IMAGE_2D_RECT: GLenum = 0x905A;
1890 #[doc = "`GL_INT_IMAGE_3D: GLenum = 0x9059`"]
1891 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1892 pub const GL_INT_IMAGE_3D: GLenum = 0x9059;
1893 #[doc = "`GL_INT_IMAGE_BUFFER: GLenum = 0x905C`"]
1894 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1895 pub const GL_INT_IMAGE_BUFFER: GLenum = 0x905C;
1896 #[doc = "`GL_INT_IMAGE_CUBE: GLenum = 0x905B`"]
1897 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1898 pub const GL_INT_IMAGE_CUBE: GLenum = 0x905B;
1899 #[doc = "`GL_INT_IMAGE_CUBE_MAP_ARRAY: GLenum = 0x905F`"]
1900 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1901 pub const GL_INT_IMAGE_CUBE_MAP_ARRAY: GLenum = 0x905F;
1902 #[doc = "`GL_INT_SAMPLER_1D: GLenum = 0x8DC9`"]
1903 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1904 pub const GL_INT_SAMPLER_1D: GLenum = 0x8DC9;
1905 #[doc = "`GL_INT_SAMPLER_1D_ARRAY: GLenum = 0x8DCE`"]
1906 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1907 pub const GL_INT_SAMPLER_1D_ARRAY: GLenum = 0x8DCE;
1908 #[doc = "`GL_INT_SAMPLER_2D: GLenum = 0x8DCA`"]
1909 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1910 pub const GL_INT_SAMPLER_2D: GLenum = 0x8DCA;
1911 #[doc = "`GL_INT_SAMPLER_2D_ARRAY: GLenum = 0x8DCF`"]
1912 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1913 pub const GL_INT_SAMPLER_2D_ARRAY: GLenum = 0x8DCF;
1914 #[doc = "`GL_INT_SAMPLER_2D_MULTISAMPLE: GLenum = 0x9109`"]
1915 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1916 pub const GL_INT_SAMPLER_2D_MULTISAMPLE: GLenum = 0x9109;
1917 #[doc = "`GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: GLenum = 0x910C`"]
1918 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1919 pub const GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: GLenum = 0x910C;
1920 #[doc = "`GL_INT_SAMPLER_2D_RECT: GLenum = 0x8DCD`"]
1921 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1922 pub const GL_INT_SAMPLER_2D_RECT: GLenum = 0x8DCD;
1923 #[doc = "`GL_INT_SAMPLER_3D: GLenum = 0x8DCB`"]
1924 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1925 pub const GL_INT_SAMPLER_3D: GLenum = 0x8DCB;
1926 #[doc = "`GL_INT_SAMPLER_BUFFER: GLenum = 0x8DD0`"]
1927 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1928 pub const GL_INT_SAMPLER_BUFFER: GLenum = 0x8DD0;
1929 #[doc = "`GL_INT_SAMPLER_CUBE: GLenum = 0x8DCC`"]
1930 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1931 pub const GL_INT_SAMPLER_CUBE: GLenum = 0x8DCC;
1932 #[doc = "`GL_INT_SAMPLER_CUBE_MAP_ARRAY: GLenum = 0x900E`"]
1933 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1934 pub const GL_INT_SAMPLER_CUBE_MAP_ARRAY: GLenum = 0x900E;
1935 #[doc = "`GL_INT_VEC2: GLenum = 0x8B53`"]
1936 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1937 pub const GL_INT_VEC2: GLenum = 0x8B53;
1938 #[doc = "`GL_INT_VEC3: GLenum = 0x8B54`"]
1939 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1940 pub const GL_INT_VEC3: GLenum = 0x8B54;
1941 #[doc = "`GL_INT_VEC4: GLenum = 0x8B55`"]
1942 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1943 pub const GL_INT_VEC4: GLenum = 0x8B55;
1944 #[doc = "`GL_INVALID_ENUM: GLenum = 0x0500`"]
1945 #[doc = "* **Group:** ErrorCode"]
1946 pub const GL_INVALID_ENUM: GLenum = 0x0500;
1947 #[doc = "`GL_INVALID_FRAMEBUFFER_OPERATION: GLenum = 0x0506`"]
1948 #[doc = "* **Group:** ErrorCode"]
1949 pub const GL_INVALID_FRAMEBUFFER_OPERATION: GLenum = 0x0506;
1950 #[doc = "`GL_INVALID_INDEX: GLenum = 0xFFFFFFFF`"]
1951 pub const GL_INVALID_INDEX: GLenum = 0xFFFFFFFF;
1952 #[doc = "`GL_INVALID_OPERATION: GLenum = 0x0502`"]
1953 #[doc = "* **Group:** ErrorCode"]
1954 pub const GL_INVALID_OPERATION: GLenum = 0x0502;
1955 #[doc = "`GL_INVALID_VALUE: GLenum = 0x0501`"]
1956 #[doc = "* **Group:** ErrorCode"]
1957 pub const GL_INVALID_VALUE: GLenum = 0x0501;
1958 #[doc = "`GL_INVERT: GLenum = 0x150A`"]
1959 #[doc = "* **Groups:** PathFillMode, LogicOp, StencilOp"]
1960 pub const GL_INVERT: GLenum = 0x150A;
1961 #[doc = "`GL_ISOLINES: GLenum = 0x8E7A`"]
1962 pub const GL_ISOLINES: GLenum = 0x8E7A;
1963 #[doc = "`GL_IS_PER_PATCH: GLenum = 0x92E7`"]
1964 #[doc = "* **Group:** ProgramResourceProperty"]
1965 pub const GL_IS_PER_PATCH: GLenum = 0x92E7;
1966 #[doc = "`GL_IS_ROW_MAJOR: GLenum = 0x9300`"]
1967 #[doc = "* **Group:** ProgramResourceProperty"]
1968 pub const GL_IS_ROW_MAJOR: GLenum = 0x9300;
1969 #[doc = "`GL_KEEP: GLenum = 0x1E00`"]
1970 #[doc = "* **Group:** StencilOp"]
1971 pub const GL_KEEP: GLenum = 0x1E00;
1972 #[doc = "`GL_LAST_VERTEX_CONVENTION: GLenum = 0x8E4E`"]
1973 #[doc = "* **Group:** VertexProvokingMode"]
1974 pub const GL_LAST_VERTEX_CONVENTION: GLenum = 0x8E4E;
1975 #[doc = "`GL_LAYER_PROVOKING_VERTEX: GLenum = 0x825E`"]
1976 #[doc = "* **Group:** GetPName"]
1977 pub const GL_LAYER_PROVOKING_VERTEX: GLenum = 0x825E;
1978 #[doc = "`GL_LEFT: GLenum = 0x0406`"]
1979 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode"]
1980 pub const GL_LEFT: GLenum = 0x0406;
1981 #[doc = "`GL_LEQUAL: GLenum = 0x0203`"]
1982 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
1983 pub const GL_LEQUAL: GLenum = 0x0203;
1984 #[doc = "`GL_LESS: GLenum = 0x0201`"]
1985 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
1986 pub const GL_LESS: GLenum = 0x0201;
1987 #[doc = "`GL_LIGHTEN: GLenum = 0x9298`"]
1988 pub const GL_LIGHTEN: GLenum = 0x9298;
1989 #[doc = "`GL_LINE: GLenum = 0x1B01`"]
1990 #[doc = "* **Groups:** PolygonMode, MeshMode1, MeshMode2"]
1991 pub const GL_LINE: GLenum = 0x1B01;
1992 #[doc = "`GL_LINEAR: GLenum = 0x2601`"]
1993 #[doc = "* **Groups:** BlitFramebufferFilter, FogMode, TextureMagFilter, TextureMinFilter"]
1994 pub const GL_LINEAR: GLenum = 0x2601;
1995 #[doc = "`GL_LINEAR_MIPMAP_LINEAR: GLenum = 0x2703`"]
1996 #[doc = "* **Groups:** TextureWrapMode, TextureMinFilter"]
1997 pub const GL_LINEAR_MIPMAP_LINEAR: GLenum = 0x2703;
1998 #[doc = "`GL_LINEAR_MIPMAP_NEAREST: GLenum = 0x2701`"]
1999 #[doc = "* **Group:** TextureMinFilter"]
2000 pub const GL_LINEAR_MIPMAP_NEAREST: GLenum = 0x2701;
2001 #[doc = "`GL_LINES: GLenum = 0x0001`"]
2002 #[doc = "* **Group:** PrimitiveType"]
2003 pub const GL_LINES: GLenum = 0x0001;
2004 #[doc = "`GL_LINES_ADJACENCY: GLenum = 0x000A`"]
2005 #[doc = "* **Group:** PrimitiveType"]
2006 pub const GL_LINES_ADJACENCY: GLenum = 0x000A;
2007 #[doc = "`GL_LINE_LOOP: GLenum = 0x0002`"]
2008 #[doc = "* **Group:** PrimitiveType"]
2009 pub const GL_LINE_LOOP: GLenum = 0x0002;
2010 #[doc = "`GL_LINE_SMOOTH: GLenum = 0x0B20`"]
2011 #[doc = "* **Groups:** GetPName, EnableCap"]
2012 pub const GL_LINE_SMOOTH: GLenum = 0x0B20;
2013 #[doc = "`GL_LINE_SMOOTH_HINT: GLenum = 0x0C52`"]
2014 #[doc = "* **Groups:** HintTarget, GetPName"]
2015 pub const GL_LINE_SMOOTH_HINT: GLenum = 0x0C52;
2016 #[doc = "`GL_LINE_STRIP: GLenum = 0x0003`"]
2017 #[doc = "* **Group:** PrimitiveType"]
2018 pub const GL_LINE_STRIP: GLenum = 0x0003;
2019 #[doc = "`GL_LINE_STRIP_ADJACENCY: GLenum = 0x000B`"]
2020 #[doc = "* **Group:** PrimitiveType"]
2021 pub const GL_LINE_STRIP_ADJACENCY: GLenum = 0x000B;
2022 #[doc = "`GL_LINE_WIDTH: GLenum = 0x0B21`"]
2023 #[doc = "* **Group:** GetPName"]
2024 pub const GL_LINE_WIDTH: GLenum = 0x0B21;
2025 #[doc = "`GL_LINE_WIDTH_GRANULARITY: GLenum = 0x0B23`"]
2026 #[doc = "* **Group:** GetPName"]
2027 pub const GL_LINE_WIDTH_GRANULARITY: GLenum = 0x0B23;
2028 #[doc = "`GL_LINE_WIDTH_RANGE: GLenum = 0x0B22`"]
2029 #[doc = "* **Group:** GetPName"]
2030 pub const GL_LINE_WIDTH_RANGE: GLenum = 0x0B22;
2031 #[doc = "`GL_LINK_STATUS: GLenum = 0x8B82`"]
2032 #[doc = "* **Group:** ProgramPropertyARB"]
2033 pub const GL_LINK_STATUS: GLenum = 0x8B82;
2034 #[doc = "`GL_LOCATION: GLenum = 0x930E`"]
2035 #[doc = "* **Group:** ProgramResourceProperty"]
2036 pub const GL_LOCATION: GLenum = 0x930E;
2037 #[doc = "`GL_LOCATION_COMPONENT: GLenum = 0x934A`"]
2038 #[doc = "* **Group:** ProgramResourceProperty"]
2039 pub const GL_LOCATION_COMPONENT: GLenum = 0x934A;
2040 #[doc = "`GL_LOCATION_INDEX: GLenum = 0x930F`"]
2041 #[doc = "* **Group:** ProgramResourceProperty"]
2042 pub const GL_LOCATION_INDEX: GLenum = 0x930F;
2043 #[doc = "`GL_LOGIC_OP_MODE: GLenum = 0x0BF0`"]
2044 #[doc = "* **Group:** GetPName"]
2045 pub const GL_LOGIC_OP_MODE: GLenum = 0x0BF0;
2046 #[doc = "`GL_LOSE_CONTEXT_ON_RESET: GLenum = 0x8252`"]
2047 pub const GL_LOSE_CONTEXT_ON_RESET: GLenum = 0x8252;
2048 #[doc = "`GL_LOWER_LEFT: GLenum = 0x8CA1`"]
2049 #[doc = "* **Group:** ClipControlOrigin"]
2050 pub const GL_LOWER_LEFT: GLenum = 0x8CA1;
2051 #[doc = "`GL_LOW_FLOAT: GLenum = 0x8DF0`"]
2052 #[doc = "* **Group:** PrecisionType"]
2053 pub const GL_LOW_FLOAT: GLenum = 0x8DF0;
2054 #[doc = "`GL_LOW_INT: GLenum = 0x8DF3`"]
2055 #[doc = "* **Group:** PrecisionType"]
2056 pub const GL_LOW_INT: GLenum = 0x8DF3;
2057 #[doc = "`GL_LUMINANCE: GLenum = 0x1909`"]
2058 #[doc = "* **Groups:** PixelTexGenMode, PathColorFormat, PixelFormat"]
2059 pub const GL_LUMINANCE: GLenum = 0x1909;
2060 #[doc = "`GL_LUMINANCE_ALPHA: GLenum = 0x190A`"]
2061 #[doc = "* **Groups:** PixelTexGenMode, PathColorFormat, PixelFormat"]
2062 pub const GL_LUMINANCE_ALPHA: GLenum = 0x190A;
2063 #[doc = "`GL_MAJOR_VERSION: GLenum = 0x821B`"]
2064 #[doc = "* **Group:** GetPName"]
2065 pub const GL_MAJOR_VERSION: GLenum = 0x821B;
2066 #[doc = "`GL_MANUAL_GENERATE_MIPMAP: GLenum = 0x8294`"]
2067 pub const GL_MANUAL_GENERATE_MIPMAP: GLenum = 0x8294;
2068 #[doc = "`GL_MAP_COHERENT_BIT: GLbitfield = 0x0080`"]
2069 #[doc = "* **Groups:** MapBufferAccessMask, BufferStorageMask"]
2070 pub const GL_MAP_COHERENT_BIT: GLbitfield = 0x0080;
2071 #[doc = "`GL_MAP_COHERENT_BIT_EXT: GLbitfield = 0x0080`"]
2072 #[doc = "* **Groups:** MapBufferAccessMask, BufferStorageMask"]
2073 pub const GL_MAP_COHERENT_BIT_EXT: GLbitfield = 0x0080;
2074 #[doc = "`GL_MAP_FLUSH_EXPLICIT_BIT: GLbitfield = 0x0010`"]
2075 #[doc = "* **Group:** MapBufferAccessMask"]
2076 pub const GL_MAP_FLUSH_EXPLICIT_BIT: GLbitfield = 0x0010;
2077 #[doc = "`GL_MAP_INVALIDATE_BUFFER_BIT: GLbitfield = 0x0008`"]
2078 #[doc = "* **Group:** MapBufferAccessMask"]
2079 pub const GL_MAP_INVALIDATE_BUFFER_BIT: GLbitfield = 0x0008;
2080 #[doc = "`GL_MAP_INVALIDATE_RANGE_BIT: GLbitfield = 0x0004`"]
2081 #[doc = "* **Group:** MapBufferAccessMask"]
2082 pub const GL_MAP_INVALIDATE_RANGE_BIT: GLbitfield = 0x0004;
2083 #[doc = "`GL_MAP_PERSISTENT_BIT: GLbitfield = 0x0040`"]
2084 #[doc = "* **Groups:** MapBufferAccessMask, BufferStorageMask"]
2085 pub const GL_MAP_PERSISTENT_BIT: GLbitfield = 0x0040;
2086 #[doc = "`GL_MAP_PERSISTENT_BIT_EXT: GLbitfield = 0x0040`"]
2087 #[doc = "* **Groups:** MapBufferAccessMask, BufferStorageMask"]
2088 pub const GL_MAP_PERSISTENT_BIT_EXT: GLbitfield = 0x0040;
2089 #[doc = "`GL_MAP_READ_BIT: GLbitfield = 0x0001`"]
2090 #[doc = "* **Groups:** MapBufferAccessMask, BufferStorageMask"]
2091 pub const GL_MAP_READ_BIT: GLbitfield = 0x0001;
2092 #[doc = "`GL_MAP_UNSYNCHRONIZED_BIT: GLbitfield = 0x0020`"]
2093 #[doc = "* **Group:** MapBufferAccessMask"]
2094 pub const GL_MAP_UNSYNCHRONIZED_BIT: GLbitfield = 0x0020;
2095 #[doc = "`GL_MAP_WRITE_BIT: GLbitfield = 0x0002`"]
2096 #[doc = "* **Groups:** MapBufferAccessMask, BufferStorageMask"]
2097 pub const GL_MAP_WRITE_BIT: GLbitfield = 0x0002;
2098 #[doc = "`GL_MATRIX_STRIDE: GLenum = 0x92FF`"]
2099 #[doc = "* **Group:** ProgramResourceProperty"]
2100 pub const GL_MATRIX_STRIDE: GLenum = 0x92FF;
2101 #[doc = "`GL_MAX: GLenum = 0x8008`"]
2102 #[doc = "* **Group:** BlendEquationModeEXT"]
2103 pub const GL_MAX: GLenum = 0x8008;
2104 #[doc = "`GL_MAX_3D_TEXTURE_SIZE: GLenum = 0x8073`"]
2105 #[doc = "* **Group:** GetPName"]
2106 pub const GL_MAX_3D_TEXTURE_SIZE: GLenum = 0x8073;
2107 #[doc = "`GL_MAX_ARRAY_TEXTURE_LAYERS: GLenum = 0x88FF`"]
2108 #[doc = "* **Group:** GetPName"]
2109 pub const GL_MAX_ARRAY_TEXTURE_LAYERS: GLenum = 0x88FF;
2110 #[doc = "`GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS: GLenum = 0x92DC`"]
2111 pub const GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS: GLenum = 0x92DC;
2112 #[doc = "`GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE: GLenum = 0x92D8`"]
2113 pub const GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE: GLenum = 0x92D8;
2114 #[doc = "`GL_MAX_CLIP_DISTANCES: GLenum = 0x0D32`"]
2115 #[doc = "* **Group:** GetPName"]
2116 #[doc = "* **Alias Of:** `GL_MAX_CLIP_PLANES`"]
2117 pub const GL_MAX_CLIP_DISTANCES: GLenum = 0x0D32;
2118 #[doc = "`GL_MAX_COLOR_ATTACHMENTS: GLenum = 0x8CDF`"]
2119 pub const GL_MAX_COLOR_ATTACHMENTS: GLenum = 0x8CDF;
2120 #[doc = "`GL_MAX_COLOR_TEXTURE_SAMPLES: GLenum = 0x910E`"]
2121 #[doc = "* **Group:** GetPName"]
2122 pub const GL_MAX_COLOR_TEXTURE_SAMPLES: GLenum = 0x910E;
2123 #[doc = "`GL_MAX_COMBINED_ATOMIC_COUNTERS: GLenum = 0x92D7`"]
2124 #[doc = "* **Group:** GetPName"]
2125 pub const GL_MAX_COMBINED_ATOMIC_COUNTERS: GLenum = 0x92D7;
2126 #[doc = "`GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92D1`"]
2127 pub const GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92D1;
2128 #[doc = "`GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES: GLenum = 0x82FA`"]
2129 pub const GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES: GLenum = 0x82FA;
2130 #[doc = "`GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS: GLenum = 0x8266`"]
2131 #[doc = "* **Group:** GetPName"]
2132 pub const GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS: GLenum = 0x8266;
2133 #[doc = "`GL_MAX_COMBINED_DIMENSIONS: GLenum = 0x8282`"]
2134 pub const GL_MAX_COMBINED_DIMENSIONS: GLenum = 0x8282;
2135 #[doc = "`GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: GLenum = 0x8A33`"]
2136 #[doc = "* **Group:** GetPName"]
2137 pub const GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: GLenum = 0x8A33;
2138 #[doc = "`GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS: GLenum = 0x8A32`"]
2139 #[doc = "* **Group:** GetPName"]
2140 pub const GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS: GLenum = 0x8A32;
2141 #[doc = "`GL_MAX_COMBINED_IMAGE_UNIFORMS: GLenum = 0x90CF`"]
2142 pub const GL_MAX_COMBINED_IMAGE_UNIFORMS: GLenum = 0x90CF;
2143 #[doc = "`GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS: GLenum = 0x8F39`"]
2144 pub const GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS: GLenum = 0x8F39;
2145 #[doc = "`GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES: GLenum = 0x8F39`"]
2146 #[doc = "* **Alias Of:** `GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS`"]
2147 pub const GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES: GLenum = 0x8F39;
2148 #[doc = "`GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS: GLenum = 0x90DC`"]
2149 #[doc = "* **Group:** GetPName"]
2150 pub const GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS: GLenum = 0x90DC;
2151 #[doc = "`GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS: GLenum = 0x8E1E`"]
2152 pub const GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS: GLenum = 0x8E1E;
2153 #[doc = "`GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS: GLenum = 0x8E1F`"]
2154 pub const GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS: GLenum = 0x8E1F;
2155 #[doc = "`GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum = 0x8B4D`"]
2156 #[doc = "* **Group:** GetPName"]
2157 pub const GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum = 0x8B4D;
2158 #[doc = "`GL_MAX_COMBINED_UNIFORM_BLOCKS: GLenum = 0x8A2E`"]
2159 #[doc = "* **Group:** GetPName"]
2160 pub const GL_MAX_COMBINED_UNIFORM_BLOCKS: GLenum = 0x8A2E;
2161 #[doc = "`GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: GLenum = 0x8A31`"]
2162 #[doc = "* **Group:** GetPName"]
2163 pub const GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: GLenum = 0x8A31;
2164 #[doc = "`GL_MAX_COMPUTE_ATOMIC_COUNTERS: GLenum = 0x8265`"]
2165 #[doc = "* **Group:** GetPName"]
2166 pub const GL_MAX_COMPUTE_ATOMIC_COUNTERS: GLenum = 0x8265;
2167 #[doc = "`GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS: GLenum = 0x8264`"]
2168 #[doc = "* **Group:** GetPName"]
2169 pub const GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS: GLenum = 0x8264;
2170 #[doc = "`GL_MAX_COMPUTE_IMAGE_UNIFORMS: GLenum = 0x91BD`"]
2171 pub const GL_MAX_COMPUTE_IMAGE_UNIFORMS: GLenum = 0x91BD;
2172 #[doc = "`GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS: GLenum = 0x90DB`"]
2173 #[doc = "* **Group:** GetPName"]
2174 pub const GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS: GLenum = 0x90DB;
2175 #[doc = "`GL_MAX_COMPUTE_SHARED_MEMORY_SIZE: GLenum = 0x8262`"]
2176 pub const GL_MAX_COMPUTE_SHARED_MEMORY_SIZE: GLenum = 0x8262;
2177 #[doc = "`GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS: GLenum = 0x91BC`"]
2178 #[doc = "* **Group:** GetPName"]
2179 pub const GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS: GLenum = 0x91BC;
2180 #[doc = "`GL_MAX_COMPUTE_UNIFORM_BLOCKS: GLenum = 0x91BB`"]
2181 #[doc = "* **Group:** GetPName"]
2182 pub const GL_MAX_COMPUTE_UNIFORM_BLOCKS: GLenum = 0x91BB;
2183 #[doc = "`GL_MAX_COMPUTE_UNIFORM_COMPONENTS: GLenum = 0x8263`"]
2184 #[doc = "* **Group:** GetPName"]
2185 pub const GL_MAX_COMPUTE_UNIFORM_COMPONENTS: GLenum = 0x8263;
2186 #[doc = "`GL_MAX_COMPUTE_WORK_GROUP_COUNT: GLenum = 0x91BE`"]
2187 #[doc = "* **Group:** GetPName"]
2188 pub const GL_MAX_COMPUTE_WORK_GROUP_COUNT: GLenum = 0x91BE;
2189 #[doc = "`GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS: GLenum = 0x90EB`"]
2190 #[doc = "* **Group:** GetPName"]
2191 pub const GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS: GLenum = 0x90EB;
2192 #[doc = "`GL_MAX_COMPUTE_WORK_GROUP_SIZE: GLenum = 0x91BF`"]
2193 #[doc = "* **Group:** GetPName"]
2194 pub const GL_MAX_COMPUTE_WORK_GROUP_SIZE: GLenum = 0x91BF;
2195 #[doc = "`GL_MAX_CUBE_MAP_TEXTURE_SIZE: GLenum = 0x851C`"]
2196 #[doc = "* **Group:** GetPName"]
2197 pub const GL_MAX_CUBE_MAP_TEXTURE_SIZE: GLenum = 0x851C;
2198 #[doc = "`GL_MAX_CULL_DISTANCES: GLenum = 0x82F9`"]
2199 pub const GL_MAX_CULL_DISTANCES: GLenum = 0x82F9;
2200 #[doc = "`GL_MAX_DEBUG_GROUP_STACK_DEPTH: GLenum = 0x826C`"]
2201 #[doc = "* **Group:** GetPName"]
2202 pub const GL_MAX_DEBUG_GROUP_STACK_DEPTH: GLenum = 0x826C;
2203 #[doc = "`GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR: GLenum = 0x826C`"]
2204 pub const GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR: GLenum = 0x826C;
2205 #[doc = "`GL_MAX_DEBUG_LOGGED_MESSAGES: GLenum = 0x9144`"]
2206 pub const GL_MAX_DEBUG_LOGGED_MESSAGES: GLenum = 0x9144;
2207 #[doc = "`GL_MAX_DEBUG_LOGGED_MESSAGES_ARB: GLenum = 0x9144`"]
2208 pub const GL_MAX_DEBUG_LOGGED_MESSAGES_ARB: GLenum = 0x9144;
2209 #[doc = "`GL_MAX_DEBUG_LOGGED_MESSAGES_KHR: GLenum = 0x9144`"]
2210 pub const GL_MAX_DEBUG_LOGGED_MESSAGES_KHR: GLenum = 0x9144;
2211 #[doc = "`GL_MAX_DEBUG_MESSAGE_LENGTH: GLenum = 0x9143`"]
2212 pub const GL_MAX_DEBUG_MESSAGE_LENGTH: GLenum = 0x9143;
2213 #[doc = "`GL_MAX_DEBUG_MESSAGE_LENGTH_ARB: GLenum = 0x9143`"]
2214 pub const GL_MAX_DEBUG_MESSAGE_LENGTH_ARB: GLenum = 0x9143;
2215 #[doc = "`GL_MAX_DEBUG_MESSAGE_LENGTH_KHR: GLenum = 0x9143`"]
2216 pub const GL_MAX_DEBUG_MESSAGE_LENGTH_KHR: GLenum = 0x9143;
2217 #[doc = "`GL_MAX_DEPTH: GLenum = 0x8280`"]
2218 #[doc = "* **Group:** InternalFormatPName"]
2219 pub const GL_MAX_DEPTH: GLenum = 0x8280;
2220 #[doc = "`GL_MAX_DEPTH_TEXTURE_SAMPLES: GLenum = 0x910F`"]
2221 #[doc = "* **Group:** GetPName"]
2222 pub const GL_MAX_DEPTH_TEXTURE_SAMPLES: GLenum = 0x910F;
2223 #[doc = "`GL_MAX_DRAW_BUFFERS: GLenum = 0x8824`"]
2224 #[doc = "* **Group:** GetPName"]
2225 pub const GL_MAX_DRAW_BUFFERS: GLenum = 0x8824;
2226 #[doc = "`GL_MAX_DUAL_SOURCE_DRAW_BUFFERS: GLenum = 0x88FC`"]
2227 #[doc = "* **Group:** GetPName"]
2228 pub const GL_MAX_DUAL_SOURCE_DRAW_BUFFERS: GLenum = 0x88FC;
2229 #[doc = "`GL_MAX_ELEMENTS_INDICES: GLenum = 0x80E9`"]
2230 #[doc = "* **Group:** GetPName"]
2231 pub const GL_MAX_ELEMENTS_INDICES: GLenum = 0x80E9;
2232 #[doc = "`GL_MAX_ELEMENTS_VERTICES: GLenum = 0x80E8`"]
2233 #[doc = "* **Group:** GetPName"]
2234 pub const GL_MAX_ELEMENTS_VERTICES: GLenum = 0x80E8;
2235 #[doc = "`GL_MAX_ELEMENT_INDEX: GLenum = 0x8D6B`"]
2236 #[doc = "* **Group:** GetPName"]
2237 pub const GL_MAX_ELEMENT_INDEX: GLenum = 0x8D6B;
2238 #[doc = "`GL_MAX_FRAGMENT_ATOMIC_COUNTERS: GLenum = 0x92D6`"]
2239 #[doc = "* **Group:** GetPName"]
2240 pub const GL_MAX_FRAGMENT_ATOMIC_COUNTERS: GLenum = 0x92D6;
2241 #[doc = "`GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92D0`"]
2242 pub const GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92D0;
2243 #[doc = "`GL_MAX_FRAGMENT_IMAGE_UNIFORMS: GLenum = 0x90CE`"]
2244 pub const GL_MAX_FRAGMENT_IMAGE_UNIFORMS: GLenum = 0x90CE;
2245 #[doc = "`GL_MAX_FRAGMENT_INPUT_COMPONENTS: GLenum = 0x9125`"]
2246 #[doc = "* **Group:** GetPName"]
2247 pub const GL_MAX_FRAGMENT_INPUT_COMPONENTS: GLenum = 0x9125;
2248 #[doc = "`GL_MAX_FRAGMENT_INTERPOLATION_OFFSET: GLenum = 0x8E5C`"]
2249 pub const GL_MAX_FRAGMENT_INTERPOLATION_OFFSET: GLenum = 0x8E5C;
2250 #[doc = "`GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS: GLenum = 0x90DA`"]
2251 #[doc = "* **Group:** GetPName"]
2252 pub const GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS: GLenum = 0x90DA;
2253 #[doc = "`GL_MAX_FRAGMENT_UNIFORM_BLOCKS: GLenum = 0x8A2D`"]
2254 #[doc = "* **Group:** GetPName"]
2255 pub const GL_MAX_FRAGMENT_UNIFORM_BLOCKS: GLenum = 0x8A2D;
2256 #[doc = "`GL_MAX_FRAGMENT_UNIFORM_COMPONENTS: GLenum = 0x8B49`"]
2257 #[doc = "* **Group:** GetPName"]
2258 pub const GL_MAX_FRAGMENT_UNIFORM_COMPONENTS: GLenum = 0x8B49;
2259 #[doc = "`GL_MAX_FRAGMENT_UNIFORM_VECTORS: GLenum = 0x8DFD`"]
2260 #[doc = "* **Group:** GetPName"]
2261 pub const GL_MAX_FRAGMENT_UNIFORM_VECTORS: GLenum = 0x8DFD;
2262 #[doc = "`GL_MAX_FRAMEBUFFER_HEIGHT: GLenum = 0x9316`"]
2263 #[doc = "* **Group:** GetPName"]
2264 pub const GL_MAX_FRAMEBUFFER_HEIGHT: GLenum = 0x9316;
2265 #[doc = "`GL_MAX_FRAMEBUFFER_LAYERS: GLenum = 0x9317`"]
2266 #[doc = "* **Group:** GetPName"]
2267 pub const GL_MAX_FRAMEBUFFER_LAYERS: GLenum = 0x9317;
2268 #[doc = "`GL_MAX_FRAMEBUFFER_SAMPLES: GLenum = 0x9318`"]
2269 #[doc = "* **Group:** GetPName"]
2270 pub const GL_MAX_FRAMEBUFFER_SAMPLES: GLenum = 0x9318;
2271 #[doc = "`GL_MAX_FRAMEBUFFER_WIDTH: GLenum = 0x9315`"]
2272 #[doc = "* **Group:** GetPName"]
2273 pub const GL_MAX_FRAMEBUFFER_WIDTH: GLenum = 0x9315;
2274 #[doc = "`GL_MAX_GEOMETRY_ATOMIC_COUNTERS: GLenum = 0x92D5`"]
2275 #[doc = "* **Group:** GetPName"]
2276 pub const GL_MAX_GEOMETRY_ATOMIC_COUNTERS: GLenum = 0x92D5;
2277 #[doc = "`GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CF`"]
2278 pub const GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CF;
2279 #[doc = "`GL_MAX_GEOMETRY_IMAGE_UNIFORMS: GLenum = 0x90CD`"]
2280 pub const GL_MAX_GEOMETRY_IMAGE_UNIFORMS: GLenum = 0x90CD;
2281 #[doc = "`GL_MAX_GEOMETRY_INPUT_COMPONENTS: GLenum = 0x9123`"]
2282 #[doc = "* **Group:** GetPName"]
2283 pub const GL_MAX_GEOMETRY_INPUT_COMPONENTS: GLenum = 0x9123;
2284 #[doc = "`GL_MAX_GEOMETRY_OUTPUT_COMPONENTS: GLenum = 0x9124`"]
2285 #[doc = "* **Group:** GetPName"]
2286 pub const GL_MAX_GEOMETRY_OUTPUT_COMPONENTS: GLenum = 0x9124;
2287 #[doc = "`GL_MAX_GEOMETRY_OUTPUT_VERTICES: GLenum = 0x8DE0`"]
2288 pub const GL_MAX_GEOMETRY_OUTPUT_VERTICES: GLenum = 0x8DE0;
2289 #[doc = "`GL_MAX_GEOMETRY_SHADER_INVOCATIONS: GLenum = 0x8E5A`"]
2290 pub const GL_MAX_GEOMETRY_SHADER_INVOCATIONS: GLenum = 0x8E5A;
2291 #[doc = "`GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS: GLenum = 0x90D7`"]
2292 #[doc = "* **Group:** GetPName"]
2293 pub const GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS: GLenum = 0x90D7;
2294 #[doc = "`GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS: GLenum = 0x8C29`"]
2295 #[doc = "* **Group:** GetPName"]
2296 pub const GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS: GLenum = 0x8C29;
2297 #[doc = "`GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS: GLenum = 0x8DE1`"]
2298 pub const GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS: GLenum = 0x8DE1;
2299 #[doc = "`GL_MAX_GEOMETRY_UNIFORM_BLOCKS: GLenum = 0x8A2C`"]
2300 #[doc = "* **Group:** GetPName"]
2301 pub const GL_MAX_GEOMETRY_UNIFORM_BLOCKS: GLenum = 0x8A2C;
2302 #[doc = "`GL_MAX_GEOMETRY_UNIFORM_COMPONENTS: GLenum = 0x8DDF`"]
2303 #[doc = "* **Group:** GetPName"]
2304 pub const GL_MAX_GEOMETRY_UNIFORM_COMPONENTS: GLenum = 0x8DDF;
2305 #[doc = "`GL_MAX_HEIGHT: GLenum = 0x827F`"]
2306 #[doc = "* **Group:** InternalFormatPName"]
2307 pub const GL_MAX_HEIGHT: GLenum = 0x827F;
2308 #[doc = "`GL_MAX_IMAGE_SAMPLES: GLenum = 0x906D`"]
2309 pub const GL_MAX_IMAGE_SAMPLES: GLenum = 0x906D;
2310 #[doc = "`GL_MAX_IMAGE_UNITS: GLenum = 0x8F38`"]
2311 pub const GL_MAX_IMAGE_UNITS: GLenum = 0x8F38;
2312 #[doc = "`GL_MAX_INTEGER_SAMPLES: GLenum = 0x9110`"]
2313 #[doc = "* **Group:** GetPName"]
2314 pub const GL_MAX_INTEGER_SAMPLES: GLenum = 0x9110;
2315 #[doc = "`GL_MAX_LABEL_LENGTH: GLenum = 0x82E8`"]
2316 #[doc = "* **Group:** GetPName"]
2317 pub const GL_MAX_LABEL_LENGTH: GLenum = 0x82E8;
2318 #[doc = "`GL_MAX_LABEL_LENGTH_KHR: GLenum = 0x82E8`"]
2319 pub const GL_MAX_LABEL_LENGTH_KHR: GLenum = 0x82E8;
2320 #[doc = "`GL_MAX_LAYERS: GLenum = 0x8281`"]
2321 #[doc = "* **Group:** InternalFormatPName"]
2322 pub const GL_MAX_LAYERS: GLenum = 0x8281;
2323 #[doc = "`GL_MAX_NAME_LENGTH: GLenum = 0x92F6`"]
2324 #[doc = "* **Group:** ProgramInterfacePName"]
2325 pub const GL_MAX_NAME_LENGTH: GLenum = 0x92F6;
2326 #[doc = "`GL_MAX_NUM_ACTIVE_VARIABLES: GLenum = 0x92F7`"]
2327 #[doc = "* **Group:** ProgramInterfacePName"]
2328 pub const GL_MAX_NUM_ACTIVE_VARIABLES: GLenum = 0x92F7;
2329 #[doc = "`GL_MAX_NUM_COMPATIBLE_SUBROUTINES: GLenum = 0x92F8`"]
2330 #[doc = "* **Group:** ProgramInterfacePName"]
2331 pub const GL_MAX_NUM_COMPATIBLE_SUBROUTINES: GLenum = 0x92F8;
2332 #[doc = "`GL_MAX_PATCH_VERTICES: GLenum = 0x8E7D`"]
2333 pub const GL_MAX_PATCH_VERTICES: GLenum = 0x8E7D;
2334 #[doc = "`GL_MAX_PROGRAM_TEXEL_OFFSET: GLenum = 0x8905`"]
2335 #[doc = "* **Group:** GetPName"]
2336 pub const GL_MAX_PROGRAM_TEXEL_OFFSET: GLenum = 0x8905;
2337 #[doc = "`GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET: GLenum = 0x8E5F`"]
2338 pub const GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET: GLenum = 0x8E5F;
2339 #[doc = "`GL_MAX_RECTANGLE_TEXTURE_SIZE: GLenum = 0x84F8`"]
2340 #[doc = "* **Group:** GetPName"]
2341 pub const GL_MAX_RECTANGLE_TEXTURE_SIZE: GLenum = 0x84F8;
2342 #[doc = "`GL_MAX_RENDERBUFFER_SIZE: GLenum = 0x84E8`"]
2343 #[doc = "* **Group:** GetPName"]
2344 pub const GL_MAX_RENDERBUFFER_SIZE: GLenum = 0x84E8;
2345 #[doc = "`GL_MAX_SAMPLES: GLenum = 0x8D57`"]
2346 pub const GL_MAX_SAMPLES: GLenum = 0x8D57;
2347 #[doc = "`GL_MAX_SAMPLE_MASK_WORDS: GLenum = 0x8E59`"]
2348 #[doc = "* **Group:** GetPName"]
2349 pub const GL_MAX_SAMPLE_MASK_WORDS: GLenum = 0x8E59;
2350 #[doc = "`GL_MAX_SERVER_WAIT_TIMEOUT: GLenum = 0x9111`"]
2351 #[doc = "* **Group:** GetPName"]
2352 pub const GL_MAX_SERVER_WAIT_TIMEOUT: GLenum = 0x9111;
2353 #[doc = "`GL_MAX_SHADER_COMPILER_THREADS_ARB: GLenum = 0x91B0`"]
2354 #[doc = "* **Alias Of:** `GL_MAX_SHADER_COMPILER_THREADS_KHR`"]
2355 pub const GL_MAX_SHADER_COMPILER_THREADS_ARB: GLenum = 0x91B0;
2356 #[doc = "`GL_MAX_SHADER_COMPILER_THREADS_KHR: GLenum = 0x91B0`"]
2357 pub const GL_MAX_SHADER_COMPILER_THREADS_KHR: GLenum = 0x91B0;
2358 #[doc = "`GL_MAX_SHADER_STORAGE_BLOCK_SIZE: GLenum = 0x90DE`"]
2359 pub const GL_MAX_SHADER_STORAGE_BLOCK_SIZE: GLenum = 0x90DE;
2360 #[doc = "`GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS: GLenum = 0x90DD`"]
2361 #[doc = "* **Group:** GetPName"]
2362 pub const GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS: GLenum = 0x90DD;
2363 #[doc = "`GL_MAX_SUBROUTINES: GLenum = 0x8DE7`"]
2364 pub const GL_MAX_SUBROUTINES: GLenum = 0x8DE7;
2365 #[doc = "`GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS: GLenum = 0x8DE8`"]
2366 pub const GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS: GLenum = 0x8DE8;
2367 #[doc = "`GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS: GLenum = 0x92D3`"]
2368 #[doc = "* **Group:** GetPName"]
2369 pub const GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS: GLenum = 0x92D3;
2370 #[doc = "`GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CD`"]
2371 pub const GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CD;
2372 #[doc = "`GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS: GLenum = 0x90CB`"]
2373 pub const GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS: GLenum = 0x90CB;
2374 #[doc = "`GL_MAX_TESS_CONTROL_INPUT_COMPONENTS: GLenum = 0x886C`"]
2375 pub const GL_MAX_TESS_CONTROL_INPUT_COMPONENTS: GLenum = 0x886C;
2376 #[doc = "`GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS: GLenum = 0x8E83`"]
2377 pub const GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS: GLenum = 0x8E83;
2378 #[doc = "`GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS: GLenum = 0x90D8`"]
2379 #[doc = "* **Group:** GetPName"]
2380 pub const GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS: GLenum = 0x90D8;
2381 #[doc = "`GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS: GLenum = 0x8E81`"]
2382 pub const GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS: GLenum = 0x8E81;
2383 #[doc = "`GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS: GLenum = 0x8E85`"]
2384 pub const GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS: GLenum = 0x8E85;
2385 #[doc = "`GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS: GLenum = 0x8E89`"]
2386 #[doc = "* **Group:** GetPName"]
2387 pub const GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS: GLenum = 0x8E89;
2388 #[doc = "`GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS: GLenum = 0x8E7F`"]
2389 pub const GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS: GLenum = 0x8E7F;
2390 #[doc = "`GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS: GLenum = 0x92D4`"]
2391 #[doc = "* **Group:** GetPName"]
2392 pub const GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS: GLenum = 0x92D4;
2393 #[doc = "`GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CE`"]
2394 pub const GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CE;
2395 #[doc = "`GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS: GLenum = 0x90CC`"]
2396 pub const GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS: GLenum = 0x90CC;
2397 #[doc = "`GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS: GLenum = 0x886D`"]
2398 pub const GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS: GLenum = 0x886D;
2399 #[doc = "`GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS: GLenum = 0x8E86`"]
2400 pub const GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS: GLenum = 0x8E86;
2401 #[doc = "`GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS: GLenum = 0x90D9`"]
2402 #[doc = "* **Group:** GetPName"]
2403 pub const GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS: GLenum = 0x90D9;
2404 #[doc = "`GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS: GLenum = 0x8E82`"]
2405 pub const GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS: GLenum = 0x8E82;
2406 #[doc = "`GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS: GLenum = 0x8E8A`"]
2407 #[doc = "* **Group:** GetPName"]
2408 pub const GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS: GLenum = 0x8E8A;
2409 #[doc = "`GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS: GLenum = 0x8E80`"]
2410 pub const GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS: GLenum = 0x8E80;
2411 #[doc = "`GL_MAX_TESS_GEN_LEVEL: GLenum = 0x8E7E`"]
2412 pub const GL_MAX_TESS_GEN_LEVEL: GLenum = 0x8E7E;
2413 #[doc = "`GL_MAX_TESS_PATCH_COMPONENTS: GLenum = 0x8E84`"]
2414 pub const GL_MAX_TESS_PATCH_COMPONENTS: GLenum = 0x8E84;
2415 #[doc = "`GL_MAX_TEXTURE_BUFFER_SIZE: GLenum = 0x8C2B`"]
2416 #[doc = "* **Group:** GetPName"]
2417 pub const GL_MAX_TEXTURE_BUFFER_SIZE: GLenum = 0x8C2B;
2418 #[doc = "`GL_MAX_TEXTURE_IMAGE_UNITS: GLenum = 0x8872`"]
2419 #[doc = "* **Group:** GetPName"]
2420 pub const GL_MAX_TEXTURE_IMAGE_UNITS: GLenum = 0x8872;
2421 #[doc = "`GL_MAX_TEXTURE_LOD_BIAS: GLenum = 0x84FD`"]
2422 #[doc = "* **Group:** GetPName"]
2423 pub const GL_MAX_TEXTURE_LOD_BIAS: GLenum = 0x84FD;
2424 #[doc = "`GL_MAX_TEXTURE_MAX_ANISOTROPY: GLenum = 0x84FF`"]
2425 pub const GL_MAX_TEXTURE_MAX_ANISOTROPY: GLenum = 0x84FF;
2426 #[doc = "`GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: GLenum = 0x84FF`"]
2427 #[doc = "* **Alias Of:** `GL_MAX_TEXTURE_MAX_ANISOTROPY`"]
2428 pub const GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: GLenum = 0x84FF;
2429 #[doc = "`GL_MAX_TEXTURE_SIZE: GLenum = 0x0D33`"]
2430 #[doc = "* **Group:** GetPName"]
2431 pub const GL_MAX_TEXTURE_SIZE: GLenum = 0x0D33;
2432 #[doc = "`GL_MAX_TRANSFORM_FEEDBACK_BUFFERS: GLenum = 0x8E70`"]
2433 pub const GL_MAX_TRANSFORM_FEEDBACK_BUFFERS: GLenum = 0x8E70;
2434 #[doc = "`GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: GLenum = 0x8C8A`"]
2435 pub const GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: GLenum = 0x8C8A;
2436 #[doc = "`GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: GLenum = 0x8C8B`"]
2437 pub const GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: GLenum = 0x8C8B;
2438 #[doc = "`GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: GLenum = 0x8C80`"]
2439 pub const GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: GLenum = 0x8C80;
2440 #[doc = "`GL_MAX_UNIFORM_BLOCK_SIZE: GLenum = 0x8A30`"]
2441 #[doc = "* **Group:** GetPName"]
2442 pub const GL_MAX_UNIFORM_BLOCK_SIZE: GLenum = 0x8A30;
2443 #[doc = "`GL_MAX_UNIFORM_BUFFER_BINDINGS: GLenum = 0x8A2F`"]
2444 #[doc = "* **Group:** GetPName"]
2445 pub const GL_MAX_UNIFORM_BUFFER_BINDINGS: GLenum = 0x8A2F;
2446 #[doc = "`GL_MAX_UNIFORM_LOCATIONS: GLenum = 0x826E`"]
2447 #[doc = "* **Group:** GetPName"]
2448 pub const GL_MAX_UNIFORM_LOCATIONS: GLenum = 0x826E;
2449 #[doc = "`GL_MAX_VARYING_COMPONENTS: GLenum = 0x8B4B`"]
2450 #[doc = "* **Group:** GetPName"]
2451 #[doc = "* **Alias Of:** `MAX_VARYING_FLOATS`"]
2452 pub const GL_MAX_VARYING_COMPONENTS: GLenum = 0x8B4B;
2453 #[doc = "`GL_MAX_VARYING_FLOATS: GLenum = 0x8B4B`"]
2454 #[doc = "* **Group:** GetPName"]
2455 pub const GL_MAX_VARYING_FLOATS: GLenum = 0x8B4B;
2456 #[doc = "`GL_MAX_VARYING_VECTORS: GLenum = 0x8DFC`"]
2457 #[doc = "* **Group:** GetPName"]
2458 pub const GL_MAX_VARYING_VECTORS: GLenum = 0x8DFC;
2459 #[doc = "`GL_MAX_VERTEX_ATOMIC_COUNTERS: GLenum = 0x92D2`"]
2460 #[doc = "* **Group:** GetPName"]
2461 pub const GL_MAX_VERTEX_ATOMIC_COUNTERS: GLenum = 0x92D2;
2462 #[doc = "`GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CC`"]
2463 pub const GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CC;
2464 #[doc = "`GL_MAX_VERTEX_ATTRIBS: GLenum = 0x8869`"]
2465 #[doc = "* **Group:** GetPName"]
2466 pub const GL_MAX_VERTEX_ATTRIBS: GLenum = 0x8869;
2467 #[doc = "`GL_MAX_VERTEX_ATTRIB_BINDINGS: GLenum = 0x82DA`"]
2468 #[doc = "* **Group:** GetPName"]
2469 pub const GL_MAX_VERTEX_ATTRIB_BINDINGS: GLenum = 0x82DA;
2470 #[doc = "`GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET: GLenum = 0x82D9`"]
2471 #[doc = "* **Group:** GetPName"]
2472 pub const GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET: GLenum = 0x82D9;
2473 #[doc = "`GL_MAX_VERTEX_ATTRIB_STRIDE: GLenum = 0x82E5`"]
2474 pub const GL_MAX_VERTEX_ATTRIB_STRIDE: GLenum = 0x82E5;
2475 #[doc = "`GL_MAX_VERTEX_IMAGE_UNIFORMS: GLenum = 0x90CA`"]
2476 pub const GL_MAX_VERTEX_IMAGE_UNIFORMS: GLenum = 0x90CA;
2477 #[doc = "`GL_MAX_VERTEX_OUTPUT_COMPONENTS: GLenum = 0x9122`"]
2478 #[doc = "* **Group:** GetPName"]
2479 pub const GL_MAX_VERTEX_OUTPUT_COMPONENTS: GLenum = 0x9122;
2480 #[doc = "`GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS: GLenum = 0x90D6`"]
2481 #[doc = "* **Group:** GetPName"]
2482 pub const GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS: GLenum = 0x90D6;
2483 #[doc = "`GL_MAX_VERTEX_STREAMS: GLenum = 0x8E71`"]
2484 pub const GL_MAX_VERTEX_STREAMS: GLenum = 0x8E71;
2485 #[doc = "`GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum = 0x8B4C`"]
2486 #[doc = "* **Group:** GetPName"]
2487 pub const GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum = 0x8B4C;
2488 #[doc = "`GL_MAX_VERTEX_UNIFORM_BLOCKS: GLenum = 0x8A2B`"]
2489 #[doc = "* **Group:** GetPName"]
2490 pub const GL_MAX_VERTEX_UNIFORM_BLOCKS: GLenum = 0x8A2B;
2491 #[doc = "`GL_MAX_VERTEX_UNIFORM_COMPONENTS: GLenum = 0x8B4A`"]
2492 #[doc = "* **Group:** GetPName"]
2493 pub const GL_MAX_VERTEX_UNIFORM_COMPONENTS: GLenum = 0x8B4A;
2494 #[doc = "`GL_MAX_VERTEX_UNIFORM_VECTORS: GLenum = 0x8DFB`"]
2495 #[doc = "* **Group:** GetPName"]
2496 pub const GL_MAX_VERTEX_UNIFORM_VECTORS: GLenum = 0x8DFB;
2497 #[doc = "`GL_MAX_VIEWPORTS: GLenum = 0x825B`"]
2498 #[doc = "* **Group:** GetPName"]
2499 pub const GL_MAX_VIEWPORTS: GLenum = 0x825B;
2500 #[doc = "`GL_MAX_VIEWPORT_DIMS: GLenum = 0x0D3A`"]
2501 #[doc = "* **Group:** GetPName"]
2502 pub const GL_MAX_VIEWPORT_DIMS: GLenum = 0x0D3A;
2503 #[doc = "`GL_MAX_WIDTH: GLenum = 0x827E`"]
2504 #[doc = "* **Group:** InternalFormatPName"]
2505 pub const GL_MAX_WIDTH: GLenum = 0x827E;
2506 #[doc = "`GL_MEDIUM_FLOAT: GLenum = 0x8DF1`"]
2507 #[doc = "* **Group:** PrecisionType"]
2508 pub const GL_MEDIUM_FLOAT: GLenum = 0x8DF1;
2509 #[doc = "`GL_MEDIUM_INT: GLenum = 0x8DF4`"]
2510 #[doc = "* **Group:** PrecisionType"]
2511 pub const GL_MEDIUM_INT: GLenum = 0x8DF4;
2512 #[doc = "`GL_MIN: GLenum = 0x8007`"]
2513 #[doc = "* **Group:** BlendEquationModeEXT"]
2514 pub const GL_MIN: GLenum = 0x8007;
2515 #[doc = "`GL_MINOR_VERSION: GLenum = 0x821C`"]
2516 #[doc = "* **Group:** GetPName"]
2517 pub const GL_MINOR_VERSION: GLenum = 0x821C;
2518 #[doc = "`GL_MIN_FRAGMENT_INTERPOLATION_OFFSET: GLenum = 0x8E5B`"]
2519 pub const GL_MIN_FRAGMENT_INTERPOLATION_OFFSET: GLenum = 0x8E5B;
2520 #[doc = "`GL_MIN_MAP_BUFFER_ALIGNMENT: GLenum = 0x90BC`"]
2521 #[doc = "* **Group:** GetPName"]
2522 pub const GL_MIN_MAP_BUFFER_ALIGNMENT: GLenum = 0x90BC;
2523 #[doc = "`GL_MIN_PROGRAM_TEXEL_OFFSET: GLenum = 0x8904`"]
2524 #[doc = "* **Group:** GetPName"]
2525 pub const GL_MIN_PROGRAM_TEXEL_OFFSET: GLenum = 0x8904;
2526 #[doc = "`GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET: GLenum = 0x8E5E`"]
2527 pub const GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET: GLenum = 0x8E5E;
2528 #[doc = "`GL_MIN_SAMPLE_SHADING_VALUE: GLenum = 0x8C37`"]
2529 pub const GL_MIN_SAMPLE_SHADING_VALUE: GLenum = 0x8C37;
2530 #[doc = "`GL_MIPMAP: GLenum = 0x8293`"]
2531 #[doc = "* **Group:** InternalFormatPName"]
2532 pub const GL_MIPMAP: GLenum = 0x8293;
2533 #[doc = "`GL_MIRRORED_REPEAT: GLenum = 0x8370`"]
2534 #[doc = "* **Group:** TextureWrapMode"]
2535 pub const GL_MIRRORED_REPEAT: GLenum = 0x8370;
2536 #[doc = "`GL_MIRROR_CLAMP_TO_EDGE: GLenum = 0x8743`"]
2537 pub const GL_MIRROR_CLAMP_TO_EDGE: GLenum = 0x8743;
2538 #[doc = "`GL_MULTIPLY: GLenum = 0x9294`"]
2539 pub const GL_MULTIPLY: GLenum = 0x9294;
2540 #[doc = "`GL_MULTISAMPLE: GLenum = 0x809D`"]
2541 #[doc = "* **Group:** EnableCap"]
2542 pub const GL_MULTISAMPLE: GLenum = 0x809D;
2543 #[doc = "`GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY: GLenum = 0x9382`"]
2544 pub const GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY: GLenum = 0x9382;
2545 #[doc = "`GL_MULTISAMPLE_LINE_WIDTH_RANGE: GLenum = 0x9381`"]
2546 pub const GL_MULTISAMPLE_LINE_WIDTH_RANGE: GLenum = 0x9381;
2547 #[doc = "`GL_NAME_LENGTH: GLenum = 0x92F9`"]
2548 #[doc = "* **Group:** ProgramResourceProperty"]
2549 pub const GL_NAME_LENGTH: GLenum = 0x92F9;
2550 #[doc = "`GL_NAND: GLenum = 0x150E`"]
2551 #[doc = "* **Group:** LogicOp"]
2552 pub const GL_NAND: GLenum = 0x150E;
2553 #[doc = "`GL_NEAREST: GLenum = 0x2600`"]
2554 #[doc = "* **Groups:** BlitFramebufferFilter, TextureMagFilter, TextureMinFilter"]
2555 pub const GL_NEAREST: GLenum = 0x2600;
2556 #[doc = "`GL_NEAREST_MIPMAP_LINEAR: GLenum = 0x2702`"]
2557 #[doc = "* **Group:** TextureMinFilter"]
2558 pub const GL_NEAREST_MIPMAP_LINEAR: GLenum = 0x2702;
2559 #[doc = "`GL_NEAREST_MIPMAP_NEAREST: GLenum = 0x2700`"]
2560 #[doc = "* **Group:** TextureMinFilter"]
2561 pub const GL_NEAREST_MIPMAP_NEAREST: GLenum = 0x2700;
2562 #[doc = "`GL_NEGATIVE_ONE_TO_ONE: GLenum = 0x935E`"]
2563 #[doc = "* **Group:** ClipControlDepth"]
2564 pub const GL_NEGATIVE_ONE_TO_ONE: GLenum = 0x935E;
2565 #[doc = "`GL_NEVER: GLenum = 0x0200`"]
2566 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
2567 pub const GL_NEVER: GLenum = 0x0200;
2568 #[doc = "`GL_NICEST: GLenum = 0x1102`"]
2569 #[doc = "* **Group:** HintMode"]
2570 pub const GL_NICEST: GLenum = 0x1102;
2571 #[doc = "`GL_NONE: GLenum = 0`"]
2572 #[doc = "* **Groups:** SyncBehaviorFlags, TextureCompareMode, PathColorFormat, CombinerBiasNV, CombinerScaleNV, DrawBufferMode, PixelTexGenMode, ReadBufferMode, ColorBuffer, PathGenMode, PathTransformType, PathFontStyle"]
2573 pub const GL_NONE: GLenum = 0;
2574 #[doc = "`GL_NOOP: GLenum = 0x1505`"]
2575 #[doc = "* **Group:** LogicOp"]
2576 pub const GL_NOOP: GLenum = 0x1505;
2577 #[doc = "`GL_NOR: GLenum = 0x1508`"]
2578 #[doc = "* **Group:** LogicOp"]
2579 pub const GL_NOR: GLenum = 0x1508;
2580 #[doc = "`GL_NOTEQUAL: GLenum = 0x0205`"]
2581 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
2582 pub const GL_NOTEQUAL: GLenum = 0x0205;
2583 #[doc = "`GL_NO_ERROR: GLenum = 0`"]
2584 #[doc = "* **Groups:** GraphicsResetStatus, ErrorCode"]
2585 pub const GL_NO_ERROR: GLenum = 0;
2586 #[doc = "`GL_NO_RESET_NOTIFICATION: GLenum = 0x8261`"]
2587 pub const GL_NO_RESET_NOTIFICATION: GLenum = 0x8261;
2588 #[doc = "`GL_NUM_ACTIVE_VARIABLES: GLenum = 0x9304`"]
2589 #[doc = "* **Group:** ProgramResourceProperty"]
2590 pub const GL_NUM_ACTIVE_VARIABLES: GLenum = 0x9304;
2591 #[doc = "`GL_NUM_COMPATIBLE_SUBROUTINES: GLenum = 0x8E4A`"]
2592 #[doc = "* **Groups:** ProgramResourceProperty, SubroutineParameterName"]
2593 pub const GL_NUM_COMPATIBLE_SUBROUTINES: GLenum = 0x8E4A;
2594 #[doc = "`GL_NUM_COMPRESSED_TEXTURE_FORMATS: GLenum = 0x86A2`"]
2595 #[doc = "* **Group:** GetPName"]
2596 pub const GL_NUM_COMPRESSED_TEXTURE_FORMATS: GLenum = 0x86A2;
2597 #[doc = "`GL_NUM_EXTENSIONS: GLenum = 0x821D`"]
2598 #[doc = "* **Group:** GetPName"]
2599 pub const GL_NUM_EXTENSIONS: GLenum = 0x821D;
2600 #[doc = "`GL_NUM_PROGRAM_BINARY_FORMATS: GLenum = 0x87FE`"]
2601 #[doc = "* **Group:** GetPName"]
2602 pub const GL_NUM_PROGRAM_BINARY_FORMATS: GLenum = 0x87FE;
2603 #[doc = "`GL_NUM_SAMPLE_COUNTS: GLenum = 0x9380`"]
2604 #[doc = "* **Group:** InternalFormatPName"]
2605 pub const GL_NUM_SAMPLE_COUNTS: GLenum = 0x9380;
2606 #[doc = "`GL_NUM_SHADER_BINARY_FORMATS: GLenum = 0x8DF9`"]
2607 #[doc = "* **Group:** GetPName"]
2608 pub const GL_NUM_SHADER_BINARY_FORMATS: GLenum = 0x8DF9;
2609 #[doc = "`GL_NUM_SHADING_LANGUAGE_VERSIONS: GLenum = 0x82E9`"]
2610 pub const GL_NUM_SHADING_LANGUAGE_VERSIONS: GLenum = 0x82E9;
2611 #[doc = "`GL_NUM_SPIR_V_EXTENSIONS: GLenum = 0x9554`"]
2612 pub const GL_NUM_SPIR_V_EXTENSIONS: GLenum = 0x9554;
2613 #[doc = "`GL_OBJECT_TYPE: GLenum = 0x9112`"]
2614 #[doc = "* **Group:** SyncParameterName"]
2615 pub const GL_OBJECT_TYPE: GLenum = 0x9112;
2616 #[doc = "`GL_OFFSET: GLenum = 0x92FC`"]
2617 #[doc = "* **Group:** ProgramResourceProperty"]
2618 pub const GL_OFFSET: GLenum = 0x92FC;
2619 #[doc = "`GL_ONE: GLenum = 1`"]
2620 #[doc = "* **Groups:** TextureSwizzle, BlendingFactor"]
2621 pub const GL_ONE: GLenum = 1;
2622 #[doc = "`GL_ONE_MINUS_CONSTANT_ALPHA: GLenum = 0x8004`"]
2623 #[doc = "* **Group:** BlendingFactor"]
2624 pub const GL_ONE_MINUS_CONSTANT_ALPHA: GLenum = 0x8004;
2625 #[doc = "`GL_ONE_MINUS_CONSTANT_COLOR: GLenum = 0x8002`"]
2626 #[doc = "* **Group:** BlendingFactor"]
2627 pub const GL_ONE_MINUS_CONSTANT_COLOR: GLenum = 0x8002;
2628 #[doc = "`GL_ONE_MINUS_DST_ALPHA: GLenum = 0x0305`"]
2629 #[doc = "* **Group:** BlendingFactor"]
2630 pub const GL_ONE_MINUS_DST_ALPHA: GLenum = 0x0305;
2631 #[doc = "`GL_ONE_MINUS_DST_COLOR: GLenum = 0x0307`"]
2632 #[doc = "* **Group:** BlendingFactor"]
2633 pub const GL_ONE_MINUS_DST_COLOR: GLenum = 0x0307;
2634 #[doc = "`GL_ONE_MINUS_SRC1_ALPHA: GLenum = 0x88FB`"]
2635 #[doc = "* **Group:** BlendingFactor"]
2636 pub const GL_ONE_MINUS_SRC1_ALPHA: GLenum = 0x88FB;
2637 #[doc = "`GL_ONE_MINUS_SRC1_COLOR: GLenum = 0x88FA`"]
2638 #[doc = "* **Group:** BlendingFactor"]
2639 pub const GL_ONE_MINUS_SRC1_COLOR: GLenum = 0x88FA;
2640 #[doc = "`GL_ONE_MINUS_SRC_ALPHA: GLenum = 0x0303`"]
2641 #[doc = "* **Group:** BlendingFactor"]
2642 pub const GL_ONE_MINUS_SRC_ALPHA: GLenum = 0x0303;
2643 #[doc = "`GL_ONE_MINUS_SRC_COLOR: GLenum = 0x0301`"]
2644 #[doc = "* **Group:** BlendingFactor"]
2645 pub const GL_ONE_MINUS_SRC_COLOR: GLenum = 0x0301;
2646 #[doc = "`GL_OR: GLenum = 0x1507`"]
2647 #[doc = "* **Group:** LogicOp"]
2648 pub const GL_OR: GLenum = 0x1507;
2649 #[doc = "`GL_OR_INVERTED: GLenum = 0x150D`"]
2650 #[doc = "* **Group:** LogicOp"]
2651 pub const GL_OR_INVERTED: GLenum = 0x150D;
2652 #[doc = "`GL_OR_REVERSE: GLenum = 0x150B`"]
2653 #[doc = "* **Group:** LogicOp"]
2654 pub const GL_OR_REVERSE: GLenum = 0x150B;
2655 #[doc = "`GL_OUT_OF_MEMORY: GLenum = 0x0505`"]
2656 #[doc = "* **Group:** ErrorCode"]
2657 pub const GL_OUT_OF_MEMORY: GLenum = 0x0505;
2658 #[doc = "`GL_OVERLAY: GLenum = 0x9296`"]
2659 pub const GL_OVERLAY: GLenum = 0x9296;
2660 #[doc = "`GL_PACK_ALIGNMENT: GLenum = 0x0D05`"]
2661 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2662 pub const GL_PACK_ALIGNMENT: GLenum = 0x0D05;
2663 #[doc = "`GL_PACK_COMPRESSED_BLOCK_DEPTH: GLenum = 0x912D`"]
2664 pub const GL_PACK_COMPRESSED_BLOCK_DEPTH: GLenum = 0x912D;
2665 #[doc = "`GL_PACK_COMPRESSED_BLOCK_HEIGHT: GLenum = 0x912C`"]
2666 pub const GL_PACK_COMPRESSED_BLOCK_HEIGHT: GLenum = 0x912C;
2667 #[doc = "`GL_PACK_COMPRESSED_BLOCK_SIZE: GLenum = 0x912E`"]
2668 pub const GL_PACK_COMPRESSED_BLOCK_SIZE: GLenum = 0x912E;
2669 #[doc = "`GL_PACK_COMPRESSED_BLOCK_WIDTH: GLenum = 0x912B`"]
2670 pub const GL_PACK_COMPRESSED_BLOCK_WIDTH: GLenum = 0x912B;
2671 #[doc = "`GL_PACK_IMAGE_HEIGHT: GLenum = 0x806C`"]
2672 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2673 pub const GL_PACK_IMAGE_HEIGHT: GLenum = 0x806C;
2674 #[doc = "`GL_PACK_LSB_FIRST: GLenum = 0x0D01`"]
2675 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2676 pub const GL_PACK_LSB_FIRST: GLenum = 0x0D01;
2677 #[doc = "`GL_PACK_ROW_LENGTH: GLenum = 0x0D02`"]
2678 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2679 pub const GL_PACK_ROW_LENGTH: GLenum = 0x0D02;
2680 #[doc = "`GL_PACK_SKIP_IMAGES: GLenum = 0x806B`"]
2681 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2682 pub const GL_PACK_SKIP_IMAGES: GLenum = 0x806B;
2683 #[doc = "`GL_PACK_SKIP_PIXELS: GLenum = 0x0D04`"]
2684 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2685 pub const GL_PACK_SKIP_PIXELS: GLenum = 0x0D04;
2686 #[doc = "`GL_PACK_SKIP_ROWS: GLenum = 0x0D03`"]
2687 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2688 pub const GL_PACK_SKIP_ROWS: GLenum = 0x0D03;
2689 #[doc = "`GL_PACK_SWAP_BYTES: GLenum = 0x0D00`"]
2690 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2691 pub const GL_PACK_SWAP_BYTES: GLenum = 0x0D00;
2692 #[doc = "`GL_PARAMETER_BUFFER: GLenum = 0x80EE`"]
2693 #[doc = "* **Group:** BufferTargetARB"]
2694 pub const GL_PARAMETER_BUFFER: GLenum = 0x80EE;
2695 #[doc = "`GL_PARAMETER_BUFFER_BINDING: GLenum = 0x80EF`"]
2696 pub const GL_PARAMETER_BUFFER_BINDING: GLenum = 0x80EF;
2697 #[doc = "`GL_PATCHES: GLenum = 0x000E`"]
2698 #[doc = "* **Group:** PrimitiveType"]
2699 pub const GL_PATCHES: GLenum = 0x000E;
2700 #[doc = "`GL_PATCH_DEFAULT_INNER_LEVEL: GLenum = 0x8E73`"]
2701 #[doc = "* **Group:** PatchParameterName"]
2702 pub const GL_PATCH_DEFAULT_INNER_LEVEL: GLenum = 0x8E73;
2703 #[doc = "`GL_PATCH_DEFAULT_OUTER_LEVEL: GLenum = 0x8E74`"]
2704 #[doc = "* **Group:** PatchParameterName"]
2705 pub const GL_PATCH_DEFAULT_OUTER_LEVEL: GLenum = 0x8E74;
2706 #[doc = "`GL_PATCH_VERTICES: GLenum = 0x8E72`"]
2707 #[doc = "* **Group:** PatchParameterName"]
2708 pub const GL_PATCH_VERTICES: GLenum = 0x8E72;
2709 #[doc = "`GL_PIXEL_BUFFER_BARRIER_BIT: GLbitfield = 0x00000080`"]
2710 #[doc = "* **Group:** MemoryBarrierMask"]
2711 pub const GL_PIXEL_BUFFER_BARRIER_BIT: GLbitfield = 0x00000080;
2712 #[doc = "`GL_PIXEL_PACK_BUFFER: GLenum = 0x88EB`"]
2713 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
2714 pub const GL_PIXEL_PACK_BUFFER: GLenum = 0x88EB;
2715 #[doc = "`GL_PIXEL_PACK_BUFFER_BINDING: GLenum = 0x88ED`"]
2716 #[doc = "* **Group:** GetPName"]
2717 pub const GL_PIXEL_PACK_BUFFER_BINDING: GLenum = 0x88ED;
2718 #[doc = "`GL_PIXEL_UNPACK_BUFFER: GLenum = 0x88EC`"]
2719 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
2720 pub const GL_PIXEL_UNPACK_BUFFER: GLenum = 0x88EC;
2721 #[doc = "`GL_PIXEL_UNPACK_BUFFER_BINDING: GLenum = 0x88EF`"]
2722 #[doc = "* **Group:** GetPName"]
2723 pub const GL_PIXEL_UNPACK_BUFFER_BINDING: GLenum = 0x88EF;
2724 #[doc = "`GL_POINT: GLenum = 0x1B00`"]
2725 #[doc = "* **Groups:** PolygonMode, MeshMode1, MeshMode2"]
2726 pub const GL_POINT: GLenum = 0x1B00;
2727 #[doc = "`GL_POINTS: GLenum = 0x0000`"]
2728 #[doc = "* **Group:** PrimitiveType"]
2729 pub const GL_POINTS: GLenum = 0x0000;
2730 #[doc = "`GL_POINT_FADE_THRESHOLD_SIZE: GLenum = 0x8128`"]
2731 #[doc = "* **Groups:** PointParameterNameSGIS, PointParameterNameARB, GetPName"]
2732 pub const GL_POINT_FADE_THRESHOLD_SIZE: GLenum = 0x8128;
2733 #[doc = "`GL_POINT_SIZE: GLenum = 0x0B11`"]
2734 #[doc = "* **Group:** GetPName"]
2735 pub const GL_POINT_SIZE: GLenum = 0x0B11;
2736 #[doc = "`GL_POINT_SIZE_GRANULARITY: GLenum = 0x0B13`"]
2737 #[doc = "* **Group:** GetPName"]
2738 pub const GL_POINT_SIZE_GRANULARITY: GLenum = 0x0B13;
2739 #[doc = "`GL_POINT_SIZE_RANGE: GLenum = 0x0B12`"]
2740 #[doc = "* **Group:** GetPName"]
2741 pub const GL_POINT_SIZE_RANGE: GLenum = 0x0B12;
2742 #[doc = "`GL_POINT_SPRITE_COORD_ORIGIN: GLenum = 0x8CA0`"]
2743 pub const GL_POINT_SPRITE_COORD_ORIGIN: GLenum = 0x8CA0;
2744 #[doc = "`GL_POLYGON_MODE: GLenum = 0x0B40`"]
2745 #[doc = "* **Group:** GetPName"]
2746 pub const GL_POLYGON_MODE: GLenum = 0x0B40;
2747 #[doc = "`GL_POLYGON_OFFSET_CLAMP: GLenum = 0x8E1B`"]
2748 pub const GL_POLYGON_OFFSET_CLAMP: GLenum = 0x8E1B;
2749 #[doc = "`GL_POLYGON_OFFSET_FACTOR: GLenum = 0x8038`"]
2750 #[doc = "* **Group:** GetPName"]
2751 pub const GL_POLYGON_OFFSET_FACTOR: GLenum = 0x8038;
2752 #[doc = "`GL_POLYGON_OFFSET_FILL: GLenum = 0x8037`"]
2753 #[doc = "* **Groups:** GetPName, EnableCap"]
2754 pub const GL_POLYGON_OFFSET_FILL: GLenum = 0x8037;
2755 #[doc = "`GL_POLYGON_OFFSET_LINE: GLenum = 0x2A02`"]
2756 #[doc = "* **Groups:** GetPName, EnableCap"]
2757 pub const GL_POLYGON_OFFSET_LINE: GLenum = 0x2A02;
2758 #[doc = "`GL_POLYGON_OFFSET_POINT: GLenum = 0x2A01`"]
2759 #[doc = "* **Groups:** GetPName, EnableCap"]
2760 pub const GL_POLYGON_OFFSET_POINT: GLenum = 0x2A01;
2761 #[doc = "`GL_POLYGON_OFFSET_UNITS: GLenum = 0x2A00`"]
2762 #[doc = "* **Group:** GetPName"]
2763 pub const GL_POLYGON_OFFSET_UNITS: GLenum = 0x2A00;
2764 #[doc = "`GL_POLYGON_SMOOTH: GLenum = 0x0B41`"]
2765 #[doc = "* **Groups:** GetPName, EnableCap"]
2766 pub const GL_POLYGON_SMOOTH: GLenum = 0x0B41;
2767 #[doc = "`GL_POLYGON_SMOOTH_HINT: GLenum = 0x0C53`"]
2768 #[doc = "* **Groups:** HintTarget, GetPName"]
2769 pub const GL_POLYGON_SMOOTH_HINT: GLenum = 0x0C53;
2770 #[doc = "`GL_PRIMITIVES_GENERATED: GLenum = 0x8C87`"]
2771 #[doc = "* **Group:** QueryTarget"]
2772 pub const GL_PRIMITIVES_GENERATED: GLenum = 0x8C87;
2773 #[doc = "`GL_PRIMITIVES_SUBMITTED: GLenum = 0x82EF`"]
2774 #[doc = "* **Group:** QueryTarget"]
2775 pub const GL_PRIMITIVES_SUBMITTED: GLenum = 0x82EF;
2776 #[doc = "`GL_PRIMITIVE_BOUNDING_BOX: GLenum = 0x92BE`"]
2777 pub const GL_PRIMITIVE_BOUNDING_BOX: GLenum = 0x92BE;
2778 #[doc = "`GL_PRIMITIVE_RESTART: GLenum = 0x8F9D`"]
2779 #[doc = "* **Group:** EnableCap"]
2780 pub const GL_PRIMITIVE_RESTART: GLenum = 0x8F9D;
2781 #[doc = "`GL_PRIMITIVE_RESTART_FIXED_INDEX: GLenum = 0x8D69`"]
2782 #[doc = "* **Group:** EnableCap"]
2783 pub const GL_PRIMITIVE_RESTART_FIXED_INDEX: GLenum = 0x8D69;
2784 #[doc = "`GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED: GLenum = 0x8221`"]
2785 pub const GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED: GLenum = 0x8221;
2786 #[doc = "`GL_PRIMITIVE_RESTART_INDEX: GLenum = 0x8F9E`"]
2787 #[doc = "* **Group:** GetPName"]
2788 pub const GL_PRIMITIVE_RESTART_INDEX: GLenum = 0x8F9E;
2789 #[doc = "`GL_PROGRAM: GLenum = 0x82E2`"]
2790 #[doc = "* **Group:** ObjectIdentifier"]
2791 pub const GL_PROGRAM: GLenum = 0x82E2;
2792 #[doc = "`GL_PROGRAM_BINARY_FORMATS: GLenum = 0x87FF`"]
2793 #[doc = "* **Group:** GetPName"]
2794 pub const GL_PROGRAM_BINARY_FORMATS: GLenum = 0x87FF;
2795 #[doc = "`GL_PROGRAM_BINARY_LENGTH: GLenum = 0x8741`"]
2796 #[doc = "* **Group:** ProgramPropertyARB"]
2797 pub const GL_PROGRAM_BINARY_LENGTH: GLenum = 0x8741;
2798 #[doc = "`GL_PROGRAM_BINARY_RETRIEVABLE_HINT: GLenum = 0x8257`"]
2799 #[doc = "* **Groups:** ProgramParameterPName, HintTarget"]
2800 pub const GL_PROGRAM_BINARY_RETRIEVABLE_HINT: GLenum = 0x8257;
2801 #[doc = "`GL_PROGRAM_INPUT: GLenum = 0x92E3`"]
2802 #[doc = "* **Group:** ProgramInterface"]
2803 pub const GL_PROGRAM_INPUT: GLenum = 0x92E3;
2804 #[doc = "`GL_PROGRAM_KHR: GLenum = 0x82E2`"]
2805 pub const GL_PROGRAM_KHR: GLenum = 0x82E2;
2806 #[doc = "`GL_PROGRAM_OUTPUT: GLenum = 0x92E4`"]
2807 #[doc = "* **Group:** ProgramInterface"]
2808 pub const GL_PROGRAM_OUTPUT: GLenum = 0x92E4;
2809 #[doc = "`GL_PROGRAM_PIPELINE: GLenum = 0x82E4`"]
2810 #[doc = "* **Group:** ObjectIdentifier"]
2811 pub const GL_PROGRAM_PIPELINE: GLenum = 0x82E4;
2812 #[doc = "`GL_PROGRAM_PIPELINE_BINDING: GLenum = 0x825A`"]
2813 #[doc = "* **Group:** GetPName"]
2814 pub const GL_PROGRAM_PIPELINE_BINDING: GLenum = 0x825A;
2815 #[doc = "`GL_PROGRAM_PIPELINE_KHR: GLenum = 0x82E4`"]
2816 pub const GL_PROGRAM_PIPELINE_KHR: GLenum = 0x82E4;
2817 #[doc = "`GL_PROGRAM_POINT_SIZE: GLenum = 0x8642`"]
2818 #[doc = "* **Groups:** GetPName, EnableCap"]
2819 #[doc = "* **Alias Of:** `GL_VERTEX_PROGRAM_POINT_SIZE`"]
2820 pub const GL_PROGRAM_POINT_SIZE: GLenum = 0x8642;
2821 #[doc = "`GL_PROGRAM_SEPARABLE: GLenum = 0x8258`"]
2822 #[doc = "* **Group:** ProgramParameterPName"]
2823 pub const GL_PROGRAM_SEPARABLE: GLenum = 0x8258;
2824 #[doc = "`GL_PROVOKING_VERTEX: GLenum = 0x8E4F`"]
2825 #[doc = "* **Group:** GetPName"]
2826 pub const GL_PROVOKING_VERTEX: GLenum = 0x8E4F;
2827 #[doc = "`GL_PROXY_TEXTURE_1D: GLenum = 0x8063`"]
2828 #[doc = "* **Group:** TextureTarget"]
2829 pub const GL_PROXY_TEXTURE_1D: GLenum = 0x8063;
2830 #[doc = "`GL_PROXY_TEXTURE_1D_ARRAY: GLenum = 0x8C19`"]
2831 #[doc = "* **Group:** TextureTarget"]
2832 pub const GL_PROXY_TEXTURE_1D_ARRAY: GLenum = 0x8C19;
2833 #[doc = "`GL_PROXY_TEXTURE_2D: GLenum = 0x8064`"]
2834 #[doc = "* **Group:** TextureTarget"]
2835 pub const GL_PROXY_TEXTURE_2D: GLenum = 0x8064;
2836 #[doc = "`GL_PROXY_TEXTURE_2D_ARRAY: GLenum = 0x8C1B`"]
2837 #[doc = "* **Group:** TextureTarget"]
2838 pub const GL_PROXY_TEXTURE_2D_ARRAY: GLenum = 0x8C1B;
2839 #[doc = "`GL_PROXY_TEXTURE_2D_MULTISAMPLE: GLenum = 0x9101`"]
2840 #[doc = "* **Group:** TextureTarget"]
2841 pub const GL_PROXY_TEXTURE_2D_MULTISAMPLE: GLenum = 0x9101;
2842 #[doc = "`GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9103`"]
2843 #[doc = "* **Group:** TextureTarget"]
2844 pub const GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9103;
2845 #[doc = "`GL_PROXY_TEXTURE_3D: GLenum = 0x8070`"]
2846 #[doc = "* **Group:** TextureTarget"]
2847 pub const GL_PROXY_TEXTURE_3D: GLenum = 0x8070;
2848 #[doc = "`GL_PROXY_TEXTURE_CUBE_MAP: GLenum = 0x851B`"]
2849 #[doc = "* **Group:** TextureTarget"]
2850 pub const GL_PROXY_TEXTURE_CUBE_MAP: GLenum = 0x851B;
2851 #[doc = "`GL_PROXY_TEXTURE_CUBE_MAP_ARRAY: GLenum = 0x900B`"]
2852 #[doc = "* **Group:** TextureTarget"]
2853 pub const GL_PROXY_TEXTURE_CUBE_MAP_ARRAY: GLenum = 0x900B;
2854 #[doc = "`GL_PROXY_TEXTURE_RECTANGLE: GLenum = 0x84F7`"]
2855 #[doc = "* **Group:** TextureTarget"]
2856 pub const GL_PROXY_TEXTURE_RECTANGLE: GLenum = 0x84F7;
2857 #[doc = "`GL_QUADS: GLenum = 0x0007`"]
2858 #[doc = "* **Group:** PrimitiveType"]
2859 pub const GL_QUADS: GLenum = 0x0007;
2860 #[doc = "`GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION: GLenum = 0x8E4C`"]
2861 pub const GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION: GLenum = 0x8E4C;
2862 #[doc = "`GL_QUERY: GLenum = 0x82E3`"]
2863 #[doc = "* **Group:** ObjectIdentifier"]
2864 pub const GL_QUERY: GLenum = 0x82E3;
2865 #[doc = "`GL_QUERY_BUFFER: GLenum = 0x9192`"]
2866 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
2867 pub const GL_QUERY_BUFFER: GLenum = 0x9192;
2868 #[doc = "`GL_QUERY_BUFFER_BARRIER_BIT: GLbitfield = 0x00008000`"]
2869 #[doc = "* **Group:** MemoryBarrierMask"]
2870 pub const GL_QUERY_BUFFER_BARRIER_BIT: GLbitfield = 0x00008000;
2871 #[doc = "`GL_QUERY_BUFFER_BINDING: GLenum = 0x9193`"]
2872 pub const GL_QUERY_BUFFER_BINDING: GLenum = 0x9193;
2873 #[doc = "`GL_QUERY_BY_REGION_NO_WAIT: GLenum = 0x8E16`"]
2874 #[doc = "* **Group:** ConditionalRenderMode"]
2875 pub const GL_QUERY_BY_REGION_NO_WAIT: GLenum = 0x8E16;
2876 #[doc = "`GL_QUERY_BY_REGION_NO_WAIT_INVERTED: GLenum = 0x8E1A`"]
2877 #[doc = "* **Group:** ConditionalRenderMode"]
2878 pub const GL_QUERY_BY_REGION_NO_WAIT_INVERTED: GLenum = 0x8E1A;
2879 #[doc = "`GL_QUERY_BY_REGION_WAIT: GLenum = 0x8E15`"]
2880 #[doc = "* **Group:** ConditionalRenderMode"]
2881 pub const GL_QUERY_BY_REGION_WAIT: GLenum = 0x8E15;
2882 #[doc = "`GL_QUERY_BY_REGION_WAIT_INVERTED: GLenum = 0x8E19`"]
2883 #[doc = "* **Group:** ConditionalRenderMode"]
2884 pub const GL_QUERY_BY_REGION_WAIT_INVERTED: GLenum = 0x8E19;
2885 #[doc = "`GL_QUERY_COUNTER_BITS: GLenum = 0x8864`"]
2886 #[doc = "* **Group:** QueryParameterName"]
2887 pub const GL_QUERY_COUNTER_BITS: GLenum = 0x8864;
2888 #[doc = "`GL_QUERY_COUNTER_BITS_EXT: GLenum = 0x8864`"]
2889 pub const GL_QUERY_COUNTER_BITS_EXT: GLenum = 0x8864;
2890 #[doc = "`GL_QUERY_KHR: GLenum = 0x82E3`"]
2891 pub const GL_QUERY_KHR: GLenum = 0x82E3;
2892 #[doc = "`GL_QUERY_NO_WAIT: GLenum = 0x8E14`"]
2893 #[doc = "* **Group:** ConditionalRenderMode"]
2894 pub const GL_QUERY_NO_WAIT: GLenum = 0x8E14;
2895 #[doc = "`GL_QUERY_NO_WAIT_INVERTED: GLenum = 0x8E18`"]
2896 #[doc = "* **Group:** ConditionalRenderMode"]
2897 pub const GL_QUERY_NO_WAIT_INVERTED: GLenum = 0x8E18;
2898 #[doc = "`GL_QUERY_RESULT: GLenum = 0x8866`"]
2899 #[doc = "* **Group:** QueryObjectParameterName"]
2900 pub const GL_QUERY_RESULT: GLenum = 0x8866;
2901 #[doc = "`GL_QUERY_RESULT_AVAILABLE: GLenum = 0x8867`"]
2902 #[doc = "* **Group:** QueryObjectParameterName"]
2903 pub const GL_QUERY_RESULT_AVAILABLE: GLenum = 0x8867;
2904 #[doc = "`GL_QUERY_RESULT_AVAILABLE_EXT: GLenum = 0x8867`"]
2905 pub const GL_QUERY_RESULT_AVAILABLE_EXT: GLenum = 0x8867;
2906 #[doc = "`GL_QUERY_RESULT_EXT: GLenum = 0x8866`"]
2907 pub const GL_QUERY_RESULT_EXT: GLenum = 0x8866;
2908 #[doc = "`GL_QUERY_RESULT_NO_WAIT: GLenum = 0x9194`"]
2909 #[doc = "* **Group:** QueryObjectParameterName"]
2910 pub const GL_QUERY_RESULT_NO_WAIT: GLenum = 0x9194;
2911 #[doc = "`GL_QUERY_TARGET: GLenum = 0x82EA`"]
2912 #[doc = "* **Group:** QueryObjectParameterName"]
2913 pub const GL_QUERY_TARGET: GLenum = 0x82EA;
2914 #[doc = "`GL_QUERY_WAIT: GLenum = 0x8E13`"]
2915 #[doc = "* **Group:** ConditionalRenderMode"]
2916 pub const GL_QUERY_WAIT: GLenum = 0x8E13;
2917 #[doc = "`GL_QUERY_WAIT_INVERTED: GLenum = 0x8E17`"]
2918 #[doc = "* **Group:** ConditionalRenderMode"]
2919 pub const GL_QUERY_WAIT_INVERTED: GLenum = 0x8E17;
2920 #[doc = "`GL_R11F_G11F_B10F: GLenum = 0x8C3A`"]
2921 #[doc = "* **Group:** InternalFormat"]
2922 pub const GL_R11F_G11F_B10F: GLenum = 0x8C3A;
2923 #[doc = "`GL_R16: GLenum = 0x822A`"]
2924 #[doc = "* **Group:** InternalFormat"]
2925 pub const GL_R16: GLenum = 0x822A;
2926 #[doc = "`GL_R16F: GLenum = 0x822D`"]
2927 #[doc = "* **Group:** InternalFormat"]
2928 pub const GL_R16F: GLenum = 0x822D;
2929 #[doc = "`GL_R16I: GLenum = 0x8233`"]
2930 #[doc = "* **Group:** InternalFormat"]
2931 pub const GL_R16I: GLenum = 0x8233;
2932 #[doc = "`GL_R16UI: GLenum = 0x8234`"]
2933 #[doc = "* **Group:** InternalFormat"]
2934 pub const GL_R16UI: GLenum = 0x8234;
2935 #[doc = "`GL_R16_SNORM: GLenum = 0x8F98`"]
2936 #[doc = "* **Group:** InternalFormat"]
2937 pub const GL_R16_SNORM: GLenum = 0x8F98;
2938 #[doc = "`GL_R32F: GLenum = 0x822E`"]
2939 #[doc = "* **Group:** InternalFormat"]
2940 pub const GL_R32F: GLenum = 0x822E;
2941 #[doc = "`GL_R32I: GLenum = 0x8235`"]
2942 #[doc = "* **Group:** InternalFormat"]
2943 pub const GL_R32I: GLenum = 0x8235;
2944 #[doc = "`GL_R32UI: GLenum = 0x8236`"]
2945 #[doc = "* **Group:** InternalFormat"]
2946 pub const GL_R32UI: GLenum = 0x8236;
2947 #[doc = "`GL_R3_G3_B2: GLenum = 0x2A10`"]
2948 #[doc = "* **Group:** InternalFormat"]
2949 pub const GL_R3_G3_B2: GLenum = 0x2A10;
2950 #[doc = "`GL_R8: GLenum = 0x8229`"]
2951 #[doc = "* **Group:** InternalFormat"]
2952 pub const GL_R8: GLenum = 0x8229;
2953 #[doc = "`GL_R8I: GLenum = 0x8231`"]
2954 #[doc = "* **Group:** InternalFormat"]
2955 pub const GL_R8I: GLenum = 0x8231;
2956 #[doc = "`GL_R8UI: GLenum = 0x8232`"]
2957 #[doc = "* **Group:** InternalFormat"]
2958 pub const GL_R8UI: GLenum = 0x8232;
2959 #[doc = "`GL_R8_SNORM: GLenum = 0x8F94`"]
2960 #[doc = "* **Group:** InternalFormat"]
2961 pub const GL_R8_SNORM: GLenum = 0x8F94;
2962 #[doc = "`GL_RASTERIZER_DISCARD: GLenum = 0x8C89`"]
2963 #[doc = "* **Group:** EnableCap"]
2964 pub const GL_RASTERIZER_DISCARD: GLenum = 0x8C89;
2965 #[doc = "`GL_READ_BUFFER: GLenum = 0x0C02`"]
2966 #[doc = "* **Group:** GetPName"]
2967 pub const GL_READ_BUFFER: GLenum = 0x0C02;
2968 #[doc = "`GL_READ_FRAMEBUFFER: GLenum = 0x8CA8`"]
2969 #[doc = "* **Groups:** CheckFramebufferStatusTarget, FramebufferTarget"]
2970 pub const GL_READ_FRAMEBUFFER: GLenum = 0x8CA8;
2971 #[doc = "`GL_READ_FRAMEBUFFER_BINDING: GLenum = 0x8CAA`"]
2972 #[doc = "* **Group:** GetPName"]
2973 pub const GL_READ_FRAMEBUFFER_BINDING: GLenum = 0x8CAA;
2974 #[doc = "`GL_READ_ONLY: GLenum = 0x88B8`"]
2975 #[doc = "* **Group:** BufferAccessARB"]
2976 pub const GL_READ_ONLY: GLenum = 0x88B8;
2977 #[doc = "`GL_READ_PIXELS: GLenum = 0x828C`"]
2978 #[doc = "* **Group:** InternalFormatPName"]
2979 pub const GL_READ_PIXELS: GLenum = 0x828C;
2980 #[doc = "`GL_READ_PIXELS_FORMAT: GLenum = 0x828D`"]
2981 #[doc = "* **Group:** InternalFormatPName"]
2982 pub const GL_READ_PIXELS_FORMAT: GLenum = 0x828D;
2983 #[doc = "`GL_READ_PIXELS_TYPE: GLenum = 0x828E`"]
2984 #[doc = "* **Group:** InternalFormatPName"]
2985 pub const GL_READ_PIXELS_TYPE: GLenum = 0x828E;
2986 #[doc = "`GL_READ_WRITE: GLenum = 0x88BA`"]
2987 #[doc = "* **Group:** BufferAccessARB"]
2988 pub const GL_READ_WRITE: GLenum = 0x88BA;
2989 #[doc = "`GL_RED: GLenum = 0x1903`"]
2990 #[doc = "* **Groups:** TextureSwizzle, PixelFormat, InternalFormat"]
2991 pub const GL_RED: GLenum = 0x1903;
2992 #[doc = "`GL_RED_BITS: GLenum = 0x0D52`"]
2993 #[doc = "* **Group:** GetPName"]
2994 pub const GL_RED_BITS: GLenum = 0x0D52;
2995 #[doc = "`GL_RED_INTEGER: GLenum = 0x8D94`"]
2996 #[doc = "* **Group:** PixelFormat"]
2997 pub const GL_RED_INTEGER: GLenum = 0x8D94;
2998 #[doc = "`GL_REFERENCED_BY_COMPUTE_SHADER: GLenum = 0x930B`"]
2999 #[doc = "* **Group:** ProgramResourceProperty"]
3000 pub const GL_REFERENCED_BY_COMPUTE_SHADER: GLenum = 0x930B;
3001 #[doc = "`GL_REFERENCED_BY_FRAGMENT_SHADER: GLenum = 0x930A`"]
3002 #[doc = "* **Group:** ProgramResourceProperty"]
3003 pub const GL_REFERENCED_BY_FRAGMENT_SHADER: GLenum = 0x930A;
3004 #[doc = "`GL_REFERENCED_BY_GEOMETRY_SHADER: GLenum = 0x9309`"]
3005 #[doc = "* **Group:** ProgramResourceProperty"]
3006 pub const GL_REFERENCED_BY_GEOMETRY_SHADER: GLenum = 0x9309;
3007 #[doc = "`GL_REFERENCED_BY_TESS_CONTROL_SHADER: GLenum = 0x9307`"]
3008 #[doc = "* **Group:** ProgramResourceProperty"]
3009 pub const GL_REFERENCED_BY_TESS_CONTROL_SHADER: GLenum = 0x9307;
3010 #[doc = "`GL_REFERENCED_BY_TESS_EVALUATION_SHADER: GLenum = 0x9308`"]
3011 #[doc = "* **Group:** ProgramResourceProperty"]
3012 pub const GL_REFERENCED_BY_TESS_EVALUATION_SHADER: GLenum = 0x9308;
3013 #[doc = "`GL_REFERENCED_BY_VERTEX_SHADER: GLenum = 0x9306`"]
3014 #[doc = "* **Group:** ProgramResourceProperty"]
3015 pub const GL_REFERENCED_BY_VERTEX_SHADER: GLenum = 0x9306;
3016 #[doc = "`GL_RENDERBUFFER: GLenum = 0x8D41`"]
3017 #[doc = "* **Groups:** ObjectIdentifier, RenderbufferTarget, CopyImageSubDataTarget"]
3018 pub const GL_RENDERBUFFER: GLenum = 0x8D41;
3019 #[doc = "`GL_RENDERBUFFER_ALPHA_SIZE: GLenum = 0x8D53`"]
3020 #[doc = "* **Group:** RenderbufferParameterName"]
3021 pub const GL_RENDERBUFFER_ALPHA_SIZE: GLenum = 0x8D53;
3022 #[doc = "`GL_RENDERBUFFER_BINDING: GLenum = 0x8CA7`"]
3023 #[doc = "* **Group:** GetPName"]
3024 pub const GL_RENDERBUFFER_BINDING: GLenum = 0x8CA7;
3025 #[doc = "`GL_RENDERBUFFER_BLUE_SIZE: GLenum = 0x8D52`"]
3026 #[doc = "* **Group:** RenderbufferParameterName"]
3027 pub const GL_RENDERBUFFER_BLUE_SIZE: GLenum = 0x8D52;
3028 #[doc = "`GL_RENDERBUFFER_DEPTH_SIZE: GLenum = 0x8D54`"]
3029 #[doc = "* **Group:** RenderbufferParameterName"]
3030 pub const GL_RENDERBUFFER_DEPTH_SIZE: GLenum = 0x8D54;
3031 #[doc = "`GL_RENDERBUFFER_GREEN_SIZE: GLenum = 0x8D51`"]
3032 #[doc = "* **Group:** RenderbufferParameterName"]
3033 pub const GL_RENDERBUFFER_GREEN_SIZE: GLenum = 0x8D51;
3034 #[doc = "`GL_RENDERBUFFER_HEIGHT: GLenum = 0x8D43`"]
3035 #[doc = "* **Group:** RenderbufferParameterName"]
3036 pub const GL_RENDERBUFFER_HEIGHT: GLenum = 0x8D43;
3037 #[doc = "`GL_RENDERBUFFER_INTERNAL_FORMAT: GLenum = 0x8D44`"]
3038 #[doc = "* **Group:** RenderbufferParameterName"]
3039 pub const GL_RENDERBUFFER_INTERNAL_FORMAT: GLenum = 0x8D44;
3040 #[doc = "`GL_RENDERBUFFER_RED_SIZE: GLenum = 0x8D50`"]
3041 #[doc = "* **Group:** RenderbufferParameterName"]
3042 pub const GL_RENDERBUFFER_RED_SIZE: GLenum = 0x8D50;
3043 #[doc = "`GL_RENDERBUFFER_SAMPLES: GLenum = 0x8CAB`"]
3044 #[doc = "* **Group:** RenderbufferParameterName"]
3045 pub const GL_RENDERBUFFER_SAMPLES: GLenum = 0x8CAB;
3046 #[doc = "`GL_RENDERBUFFER_STENCIL_SIZE: GLenum = 0x8D55`"]
3047 #[doc = "* **Group:** RenderbufferParameterName"]
3048 pub const GL_RENDERBUFFER_STENCIL_SIZE: GLenum = 0x8D55;
3049 #[doc = "`GL_RENDERBUFFER_WIDTH: GLenum = 0x8D42`"]
3050 #[doc = "* **Group:** RenderbufferParameterName"]
3051 pub const GL_RENDERBUFFER_WIDTH: GLenum = 0x8D42;
3052 #[doc = "`GL_RENDERER: GLenum = 0x1F01`"]
3053 #[doc = "* **Group:** StringName"]
3054 pub const GL_RENDERER: GLenum = 0x1F01;
3055 #[doc = "`GL_REPEAT: GLenum = 0x2901`"]
3056 #[doc = "* **Group:** TextureWrapMode"]
3057 pub const GL_REPEAT: GLenum = 0x2901;
3058 #[doc = "`GL_REPLACE: GLenum = 0x1E01`"]
3059 #[doc = "* **Groups:** StencilOp, LightEnvModeSGIX"]
3060 pub const GL_REPLACE: GLenum = 0x1E01;
3061 #[doc = "`GL_RESET_NOTIFICATION_STRATEGY: GLenum = 0x8256`"]
3062 pub const GL_RESET_NOTIFICATION_STRATEGY: GLenum = 0x8256;
3063 #[doc = "`GL_RG: GLenum = 0x8227`"]
3064 #[doc = "* **Groups:** InternalFormat, PixelFormat"]
3065 pub const GL_RG: GLenum = 0x8227;
3066 #[doc = "`GL_RG16: GLenum = 0x822C`"]
3067 #[doc = "* **Group:** InternalFormat"]
3068 pub const GL_RG16: GLenum = 0x822C;
3069 #[doc = "`GL_RG16F: GLenum = 0x822F`"]
3070 #[doc = "* **Group:** InternalFormat"]
3071 pub const GL_RG16F: GLenum = 0x822F;
3072 #[doc = "`GL_RG16I: GLenum = 0x8239`"]
3073 #[doc = "* **Group:** InternalFormat"]
3074 pub const GL_RG16I: GLenum = 0x8239;
3075 #[doc = "`GL_RG16UI: GLenum = 0x823A`"]
3076 #[doc = "* **Group:** InternalFormat"]
3077 pub const GL_RG16UI: GLenum = 0x823A;
3078 #[doc = "`GL_RG16_SNORM: GLenum = 0x8F99`"]
3079 #[doc = "* **Group:** InternalFormat"]
3080 pub const GL_RG16_SNORM: GLenum = 0x8F99;
3081 #[doc = "`GL_RG32F: GLenum = 0x8230`"]
3082 #[doc = "* **Group:** InternalFormat"]
3083 pub const GL_RG32F: GLenum = 0x8230;
3084 #[doc = "`GL_RG32I: GLenum = 0x823B`"]
3085 #[doc = "* **Group:** InternalFormat"]
3086 pub const GL_RG32I: GLenum = 0x823B;
3087 #[doc = "`GL_RG32UI: GLenum = 0x823C`"]
3088 #[doc = "* **Group:** InternalFormat"]
3089 pub const GL_RG32UI: GLenum = 0x823C;
3090 #[doc = "`GL_RG8: GLenum = 0x822B`"]
3091 #[doc = "* **Group:** InternalFormat"]
3092 pub const GL_RG8: GLenum = 0x822B;
3093 #[doc = "`GL_RG8I: GLenum = 0x8237`"]
3094 #[doc = "* **Group:** InternalFormat"]
3095 pub const GL_RG8I: GLenum = 0x8237;
3096 #[doc = "`GL_RG8UI: GLenum = 0x8238`"]
3097 #[doc = "* **Group:** InternalFormat"]
3098 pub const GL_RG8UI: GLenum = 0x8238;
3099 #[doc = "`GL_RG8_SNORM: GLenum = 0x8F95`"]
3100 #[doc = "* **Group:** InternalFormat"]
3101 pub const GL_RG8_SNORM: GLenum = 0x8F95;
3102 #[doc = "`GL_RGB: GLenum = 0x1907`"]
3103 #[doc = "* **Groups:** PixelTexGenMode, CombinerPortionNV, PathColorFormat, CombinerComponentUsageNV, PixelFormat, InternalFormat"]
3104 pub const GL_RGB: GLenum = 0x1907;
3105 #[doc = "`GL_RGB10: GLenum = 0x8052`"]
3106 #[doc = "* **Group:** InternalFormat"]
3107 pub const GL_RGB10: GLenum = 0x8052;
3108 #[doc = "`GL_RGB10_A2: GLenum = 0x8059`"]
3109 #[doc = "* **Group:** InternalFormat"]
3110 pub const GL_RGB10_A2: GLenum = 0x8059;
3111 #[doc = "`GL_RGB10_A2UI: GLenum = 0x906F`"]
3112 #[doc = "* **Group:** InternalFormat"]
3113 pub const GL_RGB10_A2UI: GLenum = 0x906F;
3114 #[doc = "`GL_RGB12: GLenum = 0x8053`"]
3115 #[doc = "* **Group:** InternalFormat"]
3116 pub const GL_RGB12: GLenum = 0x8053;
3117 #[doc = "`GL_RGB16: GLenum = 0x8054`"]
3118 #[doc = "* **Group:** InternalFormat"]
3119 pub const GL_RGB16: GLenum = 0x8054;
3120 #[doc = "`GL_RGB16F: GLenum = 0x881B`"]
3121 #[doc = "* **Group:** InternalFormat"]
3122 pub const GL_RGB16F: GLenum = 0x881B;
3123 #[doc = "`GL_RGB16I: GLenum = 0x8D89`"]
3124 #[doc = "* **Group:** InternalFormat"]
3125 pub const GL_RGB16I: GLenum = 0x8D89;
3126 #[doc = "`GL_RGB16UI: GLenum = 0x8D77`"]
3127 #[doc = "* **Group:** InternalFormat"]
3128 pub const GL_RGB16UI: GLenum = 0x8D77;
3129 #[doc = "`GL_RGB16_SNORM: GLenum = 0x8F9A`"]
3130 #[doc = "* **Group:** InternalFormat"]
3131 pub const GL_RGB16_SNORM: GLenum = 0x8F9A;
3132 #[doc = "`GL_RGB32F: GLenum = 0x8815`"]
3133 #[doc = "* **Group:** InternalFormat"]
3134 pub const GL_RGB32F: GLenum = 0x8815;
3135 #[doc = "`GL_RGB32I: GLenum = 0x8D83`"]
3136 #[doc = "* **Group:** InternalFormat"]
3137 pub const GL_RGB32I: GLenum = 0x8D83;
3138 #[doc = "`GL_RGB32UI: GLenum = 0x8D71`"]
3139 #[doc = "* **Group:** InternalFormat"]
3140 pub const GL_RGB32UI: GLenum = 0x8D71;
3141 #[doc = "`GL_RGB4: GLenum = 0x804F`"]
3142 #[doc = "* **Group:** InternalFormat"]
3143 pub const GL_RGB4: GLenum = 0x804F;
3144 #[doc = "`GL_RGB5: GLenum = 0x8050`"]
3145 #[doc = "* **Group:** InternalFormat"]
3146 pub const GL_RGB5: GLenum = 0x8050;
3147 #[doc = "`GL_RGB565: GLenum = 0x8D62`"]
3148 pub const GL_RGB565: GLenum = 0x8D62;
3149 #[doc = "`GL_RGB5_A1: GLenum = 0x8057`"]
3150 #[doc = "* **Group:** InternalFormat"]
3151 pub const GL_RGB5_A1: GLenum = 0x8057;
3152 #[doc = "`GL_RGB8: GLenum = 0x8051`"]
3153 #[doc = "* **Group:** InternalFormat"]
3154 pub const GL_RGB8: GLenum = 0x8051;
3155 #[doc = "`GL_RGB8I: GLenum = 0x8D8F`"]
3156 #[doc = "* **Group:** InternalFormat"]
3157 pub const GL_RGB8I: GLenum = 0x8D8F;
3158 #[doc = "`GL_RGB8UI: GLenum = 0x8D7D`"]
3159 #[doc = "* **Group:** InternalFormat"]
3160 pub const GL_RGB8UI: GLenum = 0x8D7D;
3161 #[doc = "`GL_RGB8_SNORM: GLenum = 0x8F96`"]
3162 #[doc = "* **Group:** InternalFormat"]
3163 pub const GL_RGB8_SNORM: GLenum = 0x8F96;
3164 #[doc = "`GL_RGB9_E5: GLenum = 0x8C3D`"]
3165 #[doc = "* **Group:** InternalFormat"]
3166 pub const GL_RGB9_E5: GLenum = 0x8C3D;
3167 #[doc = "`GL_RGBA: GLenum = 0x1908`"]
3168 #[doc = "* **Groups:** PixelTexGenMode, PathColorFormat, PixelFormat, InternalFormat"]
3169 pub const GL_RGBA: GLenum = 0x1908;
3170 #[doc = "`GL_RGBA12: GLenum = 0x805A`"]
3171 #[doc = "* **Group:** InternalFormat"]
3172 pub const GL_RGBA12: GLenum = 0x805A;
3173 #[doc = "`GL_RGBA16: GLenum = 0x805B`"]
3174 #[doc = "* **Group:** InternalFormat"]
3175 pub const GL_RGBA16: GLenum = 0x805B;
3176 #[doc = "`GL_RGBA16F: GLenum = 0x881A`"]
3177 #[doc = "* **Group:** InternalFormat"]
3178 pub const GL_RGBA16F: GLenum = 0x881A;
3179 #[doc = "`GL_RGBA16I: GLenum = 0x8D88`"]
3180 #[doc = "* **Group:** InternalFormat"]
3181 pub const GL_RGBA16I: GLenum = 0x8D88;
3182 #[doc = "`GL_RGBA16UI: GLenum = 0x8D76`"]
3183 #[doc = "* **Group:** InternalFormat"]
3184 pub const GL_RGBA16UI: GLenum = 0x8D76;
3185 #[doc = "`GL_RGBA16_SNORM: GLenum = 0x8F9B`"]
3186 pub const GL_RGBA16_SNORM: GLenum = 0x8F9B;
3187 #[doc = "`GL_RGBA2: GLenum = 0x8055`"]
3188 pub const GL_RGBA2: GLenum = 0x8055;
3189 #[doc = "`GL_RGBA32F: GLenum = 0x8814`"]
3190 #[doc = "* **Group:** InternalFormat"]
3191 pub const GL_RGBA32F: GLenum = 0x8814;
3192 #[doc = "`GL_RGBA32I: GLenum = 0x8D82`"]
3193 #[doc = "* **Group:** InternalFormat"]
3194 pub const GL_RGBA32I: GLenum = 0x8D82;
3195 #[doc = "`GL_RGBA32UI: GLenum = 0x8D70`"]
3196 #[doc = "* **Group:** InternalFormat"]
3197 pub const GL_RGBA32UI: GLenum = 0x8D70;
3198 #[doc = "`GL_RGBA4: GLenum = 0x8056`"]
3199 #[doc = "* **Group:** InternalFormat"]
3200 pub const GL_RGBA4: GLenum = 0x8056;
3201 #[doc = "`GL_RGBA8: GLenum = 0x8058`"]
3202 #[doc = "* **Group:** InternalFormat"]
3203 pub const GL_RGBA8: GLenum = 0x8058;
3204 #[doc = "`GL_RGBA8I: GLenum = 0x8D8E`"]
3205 #[doc = "* **Group:** InternalFormat"]
3206 pub const GL_RGBA8I: GLenum = 0x8D8E;
3207 #[doc = "`GL_RGBA8UI: GLenum = 0x8D7C`"]
3208 #[doc = "* **Group:** InternalFormat"]
3209 pub const GL_RGBA8UI: GLenum = 0x8D7C;
3210 #[doc = "`GL_RGBA8_SNORM: GLenum = 0x8F97`"]
3211 #[doc = "* **Group:** InternalFormat"]
3212 pub const GL_RGBA8_SNORM: GLenum = 0x8F97;
3213 #[doc = "`GL_RGBA_INTEGER: GLenum = 0x8D99`"]
3214 #[doc = "* **Group:** PixelFormat"]
3215 pub const GL_RGBA_INTEGER: GLenum = 0x8D99;
3216 #[doc = "`GL_RGB_INTEGER: GLenum = 0x8D98`"]
3217 #[doc = "* **Group:** PixelFormat"]
3218 pub const GL_RGB_INTEGER: GLenum = 0x8D98;
3219 #[doc = "`GL_RG_INTEGER: GLenum = 0x8228`"]
3220 #[doc = "* **Group:** PixelFormat"]
3221 pub const GL_RG_INTEGER: GLenum = 0x8228;
3222 #[doc = "`GL_RIGHT: GLenum = 0x0407`"]
3223 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode"]
3224 pub const GL_RIGHT: GLenum = 0x0407;
3225 #[doc = "`GL_SAMPLER: GLenum = 0x82E6`"]
3226 #[doc = "* **Group:** ObjectIdentifier"]
3227 pub const GL_SAMPLER: GLenum = 0x82E6;
3228 #[doc = "`GL_SAMPLER_1D: GLenum = 0x8B5D`"]
3229 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3230 pub const GL_SAMPLER_1D: GLenum = 0x8B5D;
3231 #[doc = "`GL_SAMPLER_1D_ARRAY: GLenum = 0x8DC0`"]
3232 #[doc = "* **Groups:** GlslTypeToken, UniformType"]
3233 pub const GL_SAMPLER_1D_ARRAY: GLenum = 0x8DC0;
3234 #[doc = "`GL_SAMPLER_1D_ARRAY_SHADOW: GLenum = 0x8DC3`"]
3235 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3236 pub const GL_SAMPLER_1D_ARRAY_SHADOW: GLenum = 0x8DC3;
3237 #[doc = "`GL_SAMPLER_1D_SHADOW: GLenum = 0x8B61`"]
3238 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3239 pub const GL_SAMPLER_1D_SHADOW: GLenum = 0x8B61;
3240 #[doc = "`GL_SAMPLER_2D: GLenum = 0x8B5E`"]
3241 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3242 pub const GL_SAMPLER_2D: GLenum = 0x8B5E;
3243 #[doc = "`GL_SAMPLER_2D_ARRAY: GLenum = 0x8DC1`"]
3244 #[doc = "* **Groups:** GlslTypeToken, UniformType"]
3245 pub const GL_SAMPLER_2D_ARRAY: GLenum = 0x8DC1;
3246 #[doc = "`GL_SAMPLER_2D_ARRAY_SHADOW: GLenum = 0x8DC4`"]
3247 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3248 pub const GL_SAMPLER_2D_ARRAY_SHADOW: GLenum = 0x8DC4;
3249 #[doc = "`GL_SAMPLER_2D_MULTISAMPLE: GLenum = 0x9108`"]
3250 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3251 pub const GL_SAMPLER_2D_MULTISAMPLE: GLenum = 0x9108;
3252 #[doc = "`GL_SAMPLER_2D_MULTISAMPLE_ARRAY: GLenum = 0x910B`"]
3253 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3254 pub const GL_SAMPLER_2D_MULTISAMPLE_ARRAY: GLenum = 0x910B;
3255 #[doc = "`GL_SAMPLER_2D_RECT: GLenum = 0x8B63`"]
3256 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3257 pub const GL_SAMPLER_2D_RECT: GLenum = 0x8B63;
3258 #[doc = "`GL_SAMPLER_2D_RECT_SHADOW: GLenum = 0x8B64`"]
3259 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3260 pub const GL_SAMPLER_2D_RECT_SHADOW: GLenum = 0x8B64;
3261 #[doc = "`GL_SAMPLER_2D_SHADOW: GLenum = 0x8B62`"]
3262 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3263 pub const GL_SAMPLER_2D_SHADOW: GLenum = 0x8B62;
3264 #[doc = "`GL_SAMPLER_3D: GLenum = 0x8B5F`"]
3265 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3266 pub const GL_SAMPLER_3D: GLenum = 0x8B5F;
3267 #[doc = "`GL_SAMPLER_BINDING: GLenum = 0x8919`"]
3268 #[doc = "* **Group:** GetPName"]
3269 pub const GL_SAMPLER_BINDING: GLenum = 0x8919;
3270 #[doc = "`GL_SAMPLER_BUFFER: GLenum = 0x8DC2`"]
3271 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3272 pub const GL_SAMPLER_BUFFER: GLenum = 0x8DC2;
3273 #[doc = "`GL_SAMPLER_CUBE: GLenum = 0x8B60`"]
3274 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3275 pub const GL_SAMPLER_CUBE: GLenum = 0x8B60;
3276 #[doc = "`GL_SAMPLER_CUBE_MAP_ARRAY: GLenum = 0x900C`"]
3277 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3278 pub const GL_SAMPLER_CUBE_MAP_ARRAY: GLenum = 0x900C;
3279 #[doc = "`GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW: GLenum = 0x900D`"]
3280 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3281 pub const GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW: GLenum = 0x900D;
3282 #[doc = "`GL_SAMPLER_CUBE_SHADOW: GLenum = 0x8DC5`"]
3283 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3284 pub const GL_SAMPLER_CUBE_SHADOW: GLenum = 0x8DC5;
3285 #[doc = "`GL_SAMPLER_KHR: GLenum = 0x82E6`"]
3286 pub const GL_SAMPLER_KHR: GLenum = 0x82E6;
3287 #[doc = "`GL_SAMPLES: GLenum = 0x80A9`"]
3288 #[doc = "* **Groups:** GetFramebufferParameter, GetPName, InternalFormatPName"]
3289 pub const GL_SAMPLES: GLenum = 0x80A9;
3290 #[doc = "`GL_SAMPLES_PASSED: GLenum = 0x8914`"]
3291 #[doc = "* **Group:** QueryTarget"]
3292 pub const GL_SAMPLES_PASSED: GLenum = 0x8914;
3293 #[doc = "`GL_SAMPLE_ALPHA_TO_COVERAGE: GLenum = 0x809E`"]
3294 #[doc = "* **Group:** EnableCap"]
3295 pub const GL_SAMPLE_ALPHA_TO_COVERAGE: GLenum = 0x809E;
3296 #[doc = "`GL_SAMPLE_ALPHA_TO_ONE: GLenum = 0x809F`"]
3297 #[doc = "* **Group:** EnableCap"]
3298 pub const GL_SAMPLE_ALPHA_TO_ONE: GLenum = 0x809F;
3299 #[doc = "`GL_SAMPLE_BUFFERS: GLenum = 0x80A8`"]
3300 #[doc = "* **Groups:** GetFramebufferParameter, GetPName"]
3301 pub const GL_SAMPLE_BUFFERS: GLenum = 0x80A8;
3302 #[doc = "`GL_SAMPLE_COVERAGE: GLenum = 0x80A0`"]
3303 #[doc = "* **Group:** EnableCap"]
3304 pub const GL_SAMPLE_COVERAGE: GLenum = 0x80A0;
3305 #[doc = "`GL_SAMPLE_COVERAGE_INVERT: GLenum = 0x80AB`"]
3306 #[doc = "* **Group:** GetPName"]
3307 pub const GL_SAMPLE_COVERAGE_INVERT: GLenum = 0x80AB;
3308 #[doc = "`GL_SAMPLE_COVERAGE_VALUE: GLenum = 0x80AA`"]
3309 #[doc = "* **Group:** GetPName"]
3310 pub const GL_SAMPLE_COVERAGE_VALUE: GLenum = 0x80AA;
3311 #[doc = "`GL_SAMPLE_MASK: GLenum = 0x8E51`"]
3312 #[doc = "* **Group:** EnableCap"]
3313 pub const GL_SAMPLE_MASK: GLenum = 0x8E51;
3314 #[doc = "`GL_SAMPLE_MASK_VALUE: GLenum = 0x8E52`"]
3315 pub const GL_SAMPLE_MASK_VALUE: GLenum = 0x8E52;
3316 #[doc = "`GL_SAMPLE_POSITION: GLenum = 0x8E50`"]
3317 #[doc = "* **Group:** GetMultisamplePNameNV"]
3318 pub const GL_SAMPLE_POSITION: GLenum = 0x8E50;
3319 #[doc = "`GL_SAMPLE_SHADING: GLenum = 0x8C36`"]
3320 #[doc = "* **Group:** EnableCap"]
3321 pub const GL_SAMPLE_SHADING: GLenum = 0x8C36;
3322 #[doc = "`GL_SCISSOR_BOX: GLenum = 0x0C10`"]
3323 #[doc = "* **Group:** GetPName"]
3324 pub const GL_SCISSOR_BOX: GLenum = 0x0C10;
3325 #[doc = "`GL_SCISSOR_TEST: GLenum = 0x0C11`"]
3326 #[doc = "* **Groups:** GetPName, EnableCap"]
3327 pub const GL_SCISSOR_TEST: GLenum = 0x0C11;
3328 #[doc = "`GL_SCREEN: GLenum = 0x9295`"]
3329 pub const GL_SCREEN: GLenum = 0x9295;
3330 #[doc = "`GL_SEPARATE_ATTRIBS: GLenum = 0x8C8D`"]
3331 #[doc = "* **Group:** TransformFeedbackBufferMode"]
3332 pub const GL_SEPARATE_ATTRIBS: GLenum = 0x8C8D;
3333 #[doc = "`GL_SET: GLenum = 0x150F`"]
3334 #[doc = "* **Group:** LogicOp"]
3335 pub const GL_SET: GLenum = 0x150F;
3336 #[doc = "`GL_SHADER: GLenum = 0x82E1`"]
3337 #[doc = "* **Group:** ObjectIdentifier"]
3338 pub const GL_SHADER: GLenum = 0x82E1;
3339 #[doc = "`GL_SHADER_BINARY_FORMATS: GLenum = 0x8DF8`"]
3340 pub const GL_SHADER_BINARY_FORMATS: GLenum = 0x8DF8;
3341 #[doc = "`GL_SHADER_BINARY_FORMAT_SPIR_V: GLenum = 0x9551`"]
3342 #[doc = "* **Group:** ShaderBinaryFormat"]
3343 pub const GL_SHADER_BINARY_FORMAT_SPIR_V: GLenum = 0x9551;
3344 #[doc = "`GL_SHADER_COMPILER: GLenum = 0x8DFA`"]
3345 #[doc = "* **Group:** GetPName"]
3346 pub const GL_SHADER_COMPILER: GLenum = 0x8DFA;
3347 #[doc = "`GL_SHADER_IMAGE_ACCESS_BARRIER_BIT: GLbitfield = 0x00000020`"]
3348 #[doc = "* **Group:** MemoryBarrierMask"]
3349 pub const GL_SHADER_IMAGE_ACCESS_BARRIER_BIT: GLbitfield = 0x00000020;
3350 #[doc = "`GL_SHADER_IMAGE_ATOMIC: GLenum = 0x82A6`"]
3351 #[doc = "* **Group:** InternalFormatPName"]
3352 pub const GL_SHADER_IMAGE_ATOMIC: GLenum = 0x82A6;
3353 #[doc = "`GL_SHADER_IMAGE_LOAD: GLenum = 0x82A4`"]
3354 #[doc = "* **Group:** InternalFormatPName"]
3355 pub const GL_SHADER_IMAGE_LOAD: GLenum = 0x82A4;
3356 #[doc = "`GL_SHADER_IMAGE_STORE: GLenum = 0x82A5`"]
3357 #[doc = "* **Group:** InternalFormatPName"]
3358 pub const GL_SHADER_IMAGE_STORE: GLenum = 0x82A5;
3359 #[doc = "`GL_SHADER_KHR: GLenum = 0x82E1`"]
3360 pub const GL_SHADER_KHR: GLenum = 0x82E1;
3361 #[doc = "`GL_SHADER_SOURCE_LENGTH: GLenum = 0x8B88`"]
3362 #[doc = "* **Group:** ShaderParameterName"]
3363 pub const GL_SHADER_SOURCE_LENGTH: GLenum = 0x8B88;
3364 #[doc = "`GL_SHADER_STORAGE_BARRIER_BIT: GLbitfield = 0x00002000`"]
3365 #[doc = "* **Group:** MemoryBarrierMask"]
3366 pub const GL_SHADER_STORAGE_BARRIER_BIT: GLbitfield = 0x00002000;
3367 #[doc = "`GL_SHADER_STORAGE_BLOCK: GLenum = 0x92E6`"]
3368 #[doc = "* **Group:** ProgramInterface"]
3369 pub const GL_SHADER_STORAGE_BLOCK: GLenum = 0x92E6;
3370 #[doc = "`GL_SHADER_STORAGE_BUFFER: GLenum = 0x90D2`"]
3371 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
3372 pub const GL_SHADER_STORAGE_BUFFER: GLenum = 0x90D2;
3373 #[doc = "`GL_SHADER_STORAGE_BUFFER_BINDING: GLenum = 0x90D3`"]
3374 #[doc = "* **Group:** GetPName"]
3375 pub const GL_SHADER_STORAGE_BUFFER_BINDING: GLenum = 0x90D3;
3376 #[doc = "`GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT: GLenum = 0x90DF`"]
3377 #[doc = "* **Group:** GetPName"]
3378 pub const GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT: GLenum = 0x90DF;
3379 #[doc = "`GL_SHADER_STORAGE_BUFFER_SIZE: GLenum = 0x90D5`"]
3380 #[doc = "* **Group:** GetPName"]
3381 pub const GL_SHADER_STORAGE_BUFFER_SIZE: GLenum = 0x90D5;
3382 #[doc = "`GL_SHADER_STORAGE_BUFFER_START: GLenum = 0x90D4`"]
3383 #[doc = "* **Group:** GetPName"]
3384 pub const GL_SHADER_STORAGE_BUFFER_START: GLenum = 0x90D4;
3385 #[doc = "`GL_SHADER_TYPE: GLenum = 0x8B4F`"]
3386 #[doc = "* **Group:** ShaderParameterName"]
3387 pub const GL_SHADER_TYPE: GLenum = 0x8B4F;
3388 #[doc = "`GL_SHADING_LANGUAGE_VERSION: GLenum = 0x8B8C`"]
3389 #[doc = "* **Group:** StringName"]
3390 pub const GL_SHADING_LANGUAGE_VERSION: GLenum = 0x8B8C;
3391 #[doc = "`GL_SHORT: GLenum = 0x1402`"]
3392 #[doc = "* **Groups:** VertexAttribIType, SecondaryColorPointerTypeIBM, WeightPointerTypeARB, TangentPointerTypeEXT, BinormalPointerTypeEXT, IndexPointerType, ListNameType, NormalPointerType, PixelType, TexCoordPointerType, VertexPointerType, VertexAttribType, VertexAttribPointerType"]
3393 pub const GL_SHORT: GLenum = 0x1402;
3394 #[doc = "`GL_SIGNALED: GLenum = 0x9119`"]
3395 pub const GL_SIGNALED: GLenum = 0x9119;
3396 #[doc = "`GL_SIGNED_NORMALIZED: GLenum = 0x8F9C`"]
3397 pub const GL_SIGNED_NORMALIZED: GLenum = 0x8F9C;
3398 #[doc = "`GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST: GLenum = 0x82AC`"]
3399 #[doc = "* **Group:** InternalFormatPName"]
3400 pub const GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST: GLenum = 0x82AC;
3401 #[doc = "`GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE: GLenum = 0x82AE`"]
3402 #[doc = "* **Group:** InternalFormatPName"]
3403 pub const GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE: GLenum = 0x82AE;
3404 #[doc = "`GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST: GLenum = 0x82AD`"]
3405 #[doc = "* **Group:** InternalFormatPName"]
3406 pub const GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST: GLenum = 0x82AD;
3407 #[doc = "`GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE: GLenum = 0x82AF`"]
3408 #[doc = "* **Group:** InternalFormatPName"]
3409 pub const GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE: GLenum = 0x82AF;
3410 #[doc = "`GL_SMOOTH_LINE_WIDTH_GRANULARITY: GLenum = 0x0B23`"]
3411 #[doc = "* **Group:** GetPName"]
3412 #[doc = "* **Alias Of:** `GL_LINE_WIDTH_GRANULARITY`"]
3413 pub const GL_SMOOTH_LINE_WIDTH_GRANULARITY: GLenum = 0x0B23;
3414 #[doc = "`GL_SMOOTH_LINE_WIDTH_RANGE: GLenum = 0x0B22`"]
3415 #[doc = "* **Group:** GetPName"]
3416 #[doc = "* **Alias Of:** `GL_LINE_WIDTH_RANGE`"]
3417 pub const GL_SMOOTH_LINE_WIDTH_RANGE: GLenum = 0x0B22;
3418 #[doc = "`GL_SMOOTH_POINT_SIZE_GRANULARITY: GLenum = 0x0B13`"]
3419 #[doc = "* **Group:** GetPName"]
3420 #[doc = "* **Alias Of:** `GL_POINT_SIZE_GRANULARITY`"]
3421 pub const GL_SMOOTH_POINT_SIZE_GRANULARITY: GLenum = 0x0B13;
3422 #[doc = "`GL_SMOOTH_POINT_SIZE_RANGE: GLenum = 0x0B12`"]
3423 #[doc = "* **Group:** GetPName"]
3424 #[doc = "* **Alias Of:** `GL_POINT_SIZE_RANGE`"]
3425 pub const GL_SMOOTH_POINT_SIZE_RANGE: GLenum = 0x0B12;
3426 #[doc = "`GL_SOFTLIGHT: GLenum = 0x929C`"]
3427 pub const GL_SOFTLIGHT: GLenum = 0x929C;
3428 #[doc = "`GL_SPIR_V_BINARY: GLenum = 0x9552`"]
3429 pub const GL_SPIR_V_BINARY: GLenum = 0x9552;
3430 #[doc = "`GL_SPIR_V_EXTENSIONS: GLenum = 0x9553`"]
3431 pub const GL_SPIR_V_EXTENSIONS: GLenum = 0x9553;
3432 #[doc = "`GL_SRC1_ALPHA: GLenum = 0x8589`"]
3433 #[doc = "* **Group:** BlendingFactor"]
3434 #[doc = "* **Alias Of:** `GL_SOURCE1_ALPHA`"]
3435 pub const GL_SRC1_ALPHA: GLenum = 0x8589;
3436 #[doc = "`GL_SRC1_COLOR: GLenum = 0x88F9`"]
3437 #[doc = "* **Group:** BlendingFactor"]
3438 pub const GL_SRC1_COLOR: GLenum = 0x88F9;
3439 #[doc = "`GL_SRC_ALPHA: GLenum = 0x0302`"]
3440 #[doc = "* **Group:** BlendingFactor"]
3441 pub const GL_SRC_ALPHA: GLenum = 0x0302;
3442 #[doc = "`GL_SRC_ALPHA_SATURATE: GLenum = 0x0308`"]
3443 #[doc = "* **Group:** BlendingFactor"]
3444 pub const GL_SRC_ALPHA_SATURATE: GLenum = 0x0308;
3445 #[doc = "`GL_SRC_COLOR: GLenum = 0x0300`"]
3446 #[doc = "* **Group:** BlendingFactor"]
3447 pub const GL_SRC_COLOR: GLenum = 0x0300;
3448 #[doc = "`GL_SRGB: GLenum = 0x8C40`"]
3449 #[doc = "* **Group:** InternalFormat"]
3450 pub const GL_SRGB: GLenum = 0x8C40;
3451 #[doc = "`GL_SRGB8: GLenum = 0x8C41`"]
3452 #[doc = "* **Group:** InternalFormat"]
3453 pub const GL_SRGB8: GLenum = 0x8C41;
3454 #[doc = "`GL_SRGB8_ALPHA8: GLenum = 0x8C43`"]
3455 #[doc = "* **Group:** InternalFormat"]
3456 pub const GL_SRGB8_ALPHA8: GLenum = 0x8C43;
3457 #[doc = "`GL_SRGB_ALPHA: GLenum = 0x8C42`"]
3458 #[doc = "* **Group:** InternalFormat"]
3459 pub const GL_SRGB_ALPHA: GLenum = 0x8C42;
3460 #[doc = "`GL_SRGB_READ: GLenum = 0x8297`"]
3461 #[doc = "* **Group:** InternalFormatPName"]
3462 pub const GL_SRGB_READ: GLenum = 0x8297;
3463 #[doc = "`GL_SRGB_WRITE: GLenum = 0x8298`"]
3464 #[doc = "* **Group:** InternalFormatPName"]
3465 pub const GL_SRGB_WRITE: GLenum = 0x8298;
3466 #[doc = "`GL_STACK_OVERFLOW: GLenum = 0x0503`"]
3467 #[doc = "* **Group:** ErrorCode"]
3468 pub const GL_STACK_OVERFLOW: GLenum = 0x0503;
3469 #[doc = "`GL_STACK_OVERFLOW_KHR: GLenum = 0x0503`"]
3470 pub const GL_STACK_OVERFLOW_KHR: GLenum = 0x0503;
3471 #[doc = "`GL_STACK_UNDERFLOW: GLenum = 0x0504`"]
3472 #[doc = "* **Group:** ErrorCode"]
3473 pub const GL_STACK_UNDERFLOW: GLenum = 0x0504;
3474 #[doc = "`GL_STACK_UNDERFLOW_KHR: GLenum = 0x0504`"]
3475 pub const GL_STACK_UNDERFLOW_KHR: GLenum = 0x0504;
3476 #[doc = "`GL_STATIC_COPY: GLenum = 0x88E6`"]
3477 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
3478 pub const GL_STATIC_COPY: GLenum = 0x88E6;
3479 #[doc = "`GL_STATIC_DRAW: GLenum = 0x88E4`"]
3480 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
3481 pub const GL_STATIC_DRAW: GLenum = 0x88E4;
3482 #[doc = "`GL_STATIC_READ: GLenum = 0x88E5`"]
3483 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
3484 pub const GL_STATIC_READ: GLenum = 0x88E5;
3485 #[doc = "`GL_STENCIL: GLenum = 0x1802`"]
3486 #[doc = "* **Groups:** Buffer, PixelCopyType, InvalidateFramebufferAttachment"]
3487 pub const GL_STENCIL: GLenum = 0x1802;
3488 #[doc = "`GL_STENCIL_ATTACHMENT: GLenum = 0x8D20`"]
3489 #[doc = "* **Group:** FramebufferAttachment"]
3490 pub const GL_STENCIL_ATTACHMENT: GLenum = 0x8D20;
3491 #[doc = "`GL_STENCIL_BACK_FAIL: GLenum = 0x8801`"]
3492 #[doc = "* **Group:** GetPName"]
3493 pub const GL_STENCIL_BACK_FAIL: GLenum = 0x8801;
3494 #[doc = "`GL_STENCIL_BACK_FUNC: GLenum = 0x8800`"]
3495 #[doc = "* **Group:** GetPName"]
3496 pub const GL_STENCIL_BACK_FUNC: GLenum = 0x8800;
3497 #[doc = "`GL_STENCIL_BACK_PASS_DEPTH_FAIL: GLenum = 0x8802`"]
3498 #[doc = "* **Group:** GetPName"]
3499 pub const GL_STENCIL_BACK_PASS_DEPTH_FAIL: GLenum = 0x8802;
3500 #[doc = "`GL_STENCIL_BACK_PASS_DEPTH_PASS: GLenum = 0x8803`"]
3501 #[doc = "* **Group:** GetPName"]
3502 pub const GL_STENCIL_BACK_PASS_DEPTH_PASS: GLenum = 0x8803;
3503 #[doc = "`GL_STENCIL_BACK_REF: GLenum = 0x8CA3`"]
3504 #[doc = "* **Group:** GetPName"]
3505 pub const GL_STENCIL_BACK_REF: GLenum = 0x8CA3;
3506 #[doc = "`GL_STENCIL_BACK_VALUE_MASK: GLenum = 0x8CA4`"]
3507 #[doc = "* **Group:** GetPName"]
3508 pub const GL_STENCIL_BACK_VALUE_MASK: GLenum = 0x8CA4;
3509 #[doc = "`GL_STENCIL_BACK_WRITEMASK: GLenum = 0x8CA5`"]
3510 #[doc = "* **Group:** GetPName"]
3511 pub const GL_STENCIL_BACK_WRITEMASK: GLenum = 0x8CA5;
3512 #[doc = "`GL_STENCIL_BITS: GLenum = 0x0D57`"]
3513 #[doc = "* **Group:** GetPName"]
3514 pub const GL_STENCIL_BITS: GLenum = 0x0D57;
3515 #[doc = "`GL_STENCIL_BUFFER_BIT: GLbitfield = 0x00000400`"]
3516 #[doc = "* **Groups:** ClearBufferMask, AttribMask"]
3517 pub const GL_STENCIL_BUFFER_BIT: GLbitfield = 0x00000400;
3518 #[doc = "`GL_STENCIL_CLEAR_VALUE: GLenum = 0x0B91`"]
3519 #[doc = "* **Group:** GetPName"]
3520 pub const GL_STENCIL_CLEAR_VALUE: GLenum = 0x0B91;
3521 #[doc = "`GL_STENCIL_COMPONENTS: GLenum = 0x8285`"]
3522 pub const GL_STENCIL_COMPONENTS: GLenum = 0x8285;
3523 #[doc = "`GL_STENCIL_FAIL: GLenum = 0x0B94`"]
3524 #[doc = "* **Group:** GetPName"]
3525 pub const GL_STENCIL_FAIL: GLenum = 0x0B94;
3526 #[doc = "`GL_STENCIL_FUNC: GLenum = 0x0B92`"]
3527 #[doc = "* **Group:** GetPName"]
3528 pub const GL_STENCIL_FUNC: GLenum = 0x0B92;
3529 #[doc = "`GL_STENCIL_INDEX: GLenum = 0x1901`"]
3530 #[doc = "* **Groups:** InternalFormat, PixelFormat"]
3531 pub const GL_STENCIL_INDEX: GLenum = 0x1901;
3532 #[doc = "`GL_STENCIL_INDEX1: GLenum = 0x8D46`"]
3533 #[doc = "* **Group:** InternalFormat"]
3534 pub const GL_STENCIL_INDEX1: GLenum = 0x8D46;
3535 #[doc = "`GL_STENCIL_INDEX16: GLenum = 0x8D49`"]
3536 #[doc = "* **Group:** InternalFormat"]
3537 pub const GL_STENCIL_INDEX16: GLenum = 0x8D49;
3538 #[doc = "`GL_STENCIL_INDEX4: GLenum = 0x8D47`"]
3539 #[doc = "* **Group:** InternalFormat"]
3540 pub const GL_STENCIL_INDEX4: GLenum = 0x8D47;
3541 #[doc = "`GL_STENCIL_INDEX8: GLenum = 0x8D48`"]
3542 #[doc = "* **Group:** InternalFormat"]
3543 pub const GL_STENCIL_INDEX8: GLenum = 0x8D48;
3544 #[doc = "`GL_STENCIL_PASS_DEPTH_FAIL: GLenum = 0x0B95`"]
3545 #[doc = "* **Group:** GetPName"]
3546 pub const GL_STENCIL_PASS_DEPTH_FAIL: GLenum = 0x0B95;
3547 #[doc = "`GL_STENCIL_PASS_DEPTH_PASS: GLenum = 0x0B96`"]
3548 #[doc = "* **Group:** GetPName"]
3549 pub const GL_STENCIL_PASS_DEPTH_PASS: GLenum = 0x0B96;
3550 #[doc = "`GL_STENCIL_REF: GLenum = 0x0B97`"]
3551 #[doc = "* **Group:** GetPName"]
3552 pub const GL_STENCIL_REF: GLenum = 0x0B97;
3553 #[doc = "`GL_STENCIL_RENDERABLE: GLenum = 0x8288`"]
3554 #[doc = "* **Group:** InternalFormatPName"]
3555 pub const GL_STENCIL_RENDERABLE: GLenum = 0x8288;
3556 #[doc = "`GL_STENCIL_TEST: GLenum = 0x0B90`"]
3557 #[doc = "* **Groups:** GetPName, EnableCap"]
3558 pub const GL_STENCIL_TEST: GLenum = 0x0B90;
3559 #[doc = "`GL_STENCIL_VALUE_MASK: GLenum = 0x0B93`"]
3560 #[doc = "* **Group:** GetPName"]
3561 pub const GL_STENCIL_VALUE_MASK: GLenum = 0x0B93;
3562 #[doc = "`GL_STENCIL_WRITEMASK: GLenum = 0x0B98`"]
3563 #[doc = "* **Group:** GetPName"]
3564 pub const GL_STENCIL_WRITEMASK: GLenum = 0x0B98;
3565 #[doc = "`GL_STEREO: GLenum = 0x0C33`"]
3566 #[doc = "* **Groups:** GetFramebufferParameter, GetPName"]
3567 pub const GL_STEREO: GLenum = 0x0C33;
3568 #[doc = "`GL_STREAM_COPY: GLenum = 0x88E2`"]
3569 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
3570 pub const GL_STREAM_COPY: GLenum = 0x88E2;
3571 #[doc = "`GL_STREAM_DRAW: GLenum = 0x88E0`"]
3572 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
3573 pub const GL_STREAM_DRAW: GLenum = 0x88E0;
3574 #[doc = "`GL_STREAM_READ: GLenum = 0x88E1`"]
3575 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
3576 pub const GL_STREAM_READ: GLenum = 0x88E1;
3577 #[doc = "`GL_SUBPIXEL_BITS: GLenum = 0x0D50`"]
3578 #[doc = "* **Group:** GetPName"]
3579 pub const GL_SUBPIXEL_BITS: GLenum = 0x0D50;
3580 #[doc = "`GL_SYNC_CONDITION: GLenum = 0x9113`"]
3581 #[doc = "* **Group:** SyncParameterName"]
3582 pub const GL_SYNC_CONDITION: GLenum = 0x9113;
3583 #[doc = "`GL_SYNC_FENCE: GLenum = 0x9116`"]
3584 pub const GL_SYNC_FENCE: GLenum = 0x9116;
3585 #[doc = "`GL_SYNC_FLAGS: GLenum = 0x9115`"]
3586 #[doc = "* **Group:** SyncParameterName"]
3587 pub const GL_SYNC_FLAGS: GLenum = 0x9115;
3588 #[doc = "`GL_SYNC_FLUSH_COMMANDS_BIT: GLbitfield = 0x00000001`"]
3589 #[doc = "* **Group:** SyncObjectMask"]
3590 pub const GL_SYNC_FLUSH_COMMANDS_BIT: GLbitfield = 0x00000001;
3591 #[doc = "`GL_SYNC_GPU_COMMANDS_COMPLETE: GLenum = 0x9117`"]
3592 #[doc = "* **Group:** SyncCondition"]
3593 pub const GL_SYNC_GPU_COMMANDS_COMPLETE: GLenum = 0x9117;
3594 #[doc = "`GL_SYNC_STATUS: GLenum = 0x9114`"]
3595 #[doc = "* **Group:** SyncParameterName"]
3596 pub const GL_SYNC_STATUS: GLenum = 0x9114;
3597 #[doc = "`GL_TESS_CONTROL_OUTPUT_VERTICES: GLenum = 0x8E75`"]
3598 pub const GL_TESS_CONTROL_OUTPUT_VERTICES: GLenum = 0x8E75;
3599 #[doc = "`GL_TESS_CONTROL_SHADER: GLenum = 0x8E88`"]
3600 #[doc = "* **Groups:** PipelineParameterName, ShaderType"]
3601 pub const GL_TESS_CONTROL_SHADER: GLenum = 0x8E88;
3602 #[doc = "`GL_TESS_CONTROL_SHADER_BIT: GLbitfield = 0x00000008`"]
3603 #[doc = "* **Group:** UseProgramStageMask"]
3604 pub const GL_TESS_CONTROL_SHADER_BIT: GLbitfield = 0x00000008;
3605 #[doc = "`GL_TESS_CONTROL_SHADER_PATCHES: GLenum = 0x82F1`"]
3606 pub const GL_TESS_CONTROL_SHADER_PATCHES: GLenum = 0x82F1;
3607 #[doc = "`GL_TESS_CONTROL_SUBROUTINE: GLenum = 0x92E9`"]
3608 #[doc = "* **Group:** ProgramInterface"]
3609 pub const GL_TESS_CONTROL_SUBROUTINE: GLenum = 0x92E9;
3610 #[doc = "`GL_TESS_CONTROL_SUBROUTINE_UNIFORM: GLenum = 0x92EF`"]
3611 #[doc = "* **Group:** ProgramInterface"]
3612 pub const GL_TESS_CONTROL_SUBROUTINE_UNIFORM: GLenum = 0x92EF;
3613 #[doc = "`GL_TESS_CONTROL_TEXTURE: GLenum = 0x829C`"]
3614 #[doc = "* **Group:** InternalFormatPName"]
3615 pub const GL_TESS_CONTROL_TEXTURE: GLenum = 0x829C;
3616 #[doc = "`GL_TESS_EVALUATION_SHADER: GLenum = 0x8E87`"]
3617 #[doc = "* **Groups:** PipelineParameterName, ShaderType"]
3618 pub const GL_TESS_EVALUATION_SHADER: GLenum = 0x8E87;
3619 #[doc = "`GL_TESS_EVALUATION_SHADER_BIT: GLbitfield = 0x00000010`"]
3620 #[doc = "* **Group:** UseProgramStageMask"]
3621 pub const GL_TESS_EVALUATION_SHADER_BIT: GLbitfield = 0x00000010;
3622 #[doc = "`GL_TESS_EVALUATION_SHADER_INVOCATIONS: GLenum = 0x82F2`"]
3623 pub const GL_TESS_EVALUATION_SHADER_INVOCATIONS: GLenum = 0x82F2;
3624 #[doc = "`GL_TESS_EVALUATION_SUBROUTINE: GLenum = 0x92EA`"]
3625 #[doc = "* **Group:** ProgramInterface"]
3626 pub const GL_TESS_EVALUATION_SUBROUTINE: GLenum = 0x92EA;
3627 #[doc = "`GL_TESS_EVALUATION_SUBROUTINE_UNIFORM: GLenum = 0x92F0`"]
3628 #[doc = "* **Group:** ProgramInterface"]
3629 pub const GL_TESS_EVALUATION_SUBROUTINE_UNIFORM: GLenum = 0x92F0;
3630 #[doc = "`GL_TESS_EVALUATION_TEXTURE: GLenum = 0x829D`"]
3631 #[doc = "* **Group:** InternalFormatPName"]
3632 pub const GL_TESS_EVALUATION_TEXTURE: GLenum = 0x829D;
3633 #[doc = "`GL_TESS_GEN_MODE: GLenum = 0x8E76`"]
3634 pub const GL_TESS_GEN_MODE: GLenum = 0x8E76;
3635 #[doc = "`GL_TESS_GEN_POINT_MODE: GLenum = 0x8E79`"]
3636 pub const GL_TESS_GEN_POINT_MODE: GLenum = 0x8E79;
3637 #[doc = "`GL_TESS_GEN_SPACING: GLenum = 0x8E77`"]
3638 pub const GL_TESS_GEN_SPACING: GLenum = 0x8E77;
3639 #[doc = "`GL_TESS_GEN_VERTEX_ORDER: GLenum = 0x8E78`"]
3640 pub const GL_TESS_GEN_VERTEX_ORDER: GLenum = 0x8E78;
3641 #[doc = "`GL_TEXTURE: GLenum = 0x1702`"]
3642 #[doc = "* **Groups:** ObjectIdentifier, MatrixMode"]
3643 pub const GL_TEXTURE: GLenum = 0x1702;
3644 #[doc = "`GL_TEXTURE0: GLenum = 0x84C0`"]
3645 #[doc = "* **Group:** TextureUnit"]
3646 pub const GL_TEXTURE0: GLenum = 0x84C0;
3647 #[doc = "`GL_TEXTURE1: GLenum = 0x84C1`"]
3648 #[doc = "* **Group:** TextureUnit"]
3649 pub const GL_TEXTURE1: GLenum = 0x84C1;
3650 #[doc = "`GL_TEXTURE10: GLenum = 0x84CA`"]
3651 #[doc = "* **Group:** TextureUnit"]
3652 pub const GL_TEXTURE10: GLenum = 0x84CA;
3653 #[doc = "`GL_TEXTURE11: GLenum = 0x84CB`"]
3654 #[doc = "* **Group:** TextureUnit"]
3655 pub const GL_TEXTURE11: GLenum = 0x84CB;
3656 #[doc = "`GL_TEXTURE12: GLenum = 0x84CC`"]
3657 #[doc = "* **Group:** TextureUnit"]
3658 pub const GL_TEXTURE12: GLenum = 0x84CC;
3659 #[doc = "`GL_TEXTURE13: GLenum = 0x84CD`"]
3660 #[doc = "* **Group:** TextureUnit"]
3661 pub const GL_TEXTURE13: GLenum = 0x84CD;
3662 #[doc = "`GL_TEXTURE14: GLenum = 0x84CE`"]
3663 #[doc = "* **Group:** TextureUnit"]
3664 pub const GL_TEXTURE14: GLenum = 0x84CE;
3665 #[doc = "`GL_TEXTURE15: GLenum = 0x84CF`"]
3666 #[doc = "* **Group:** TextureUnit"]
3667 pub const GL_TEXTURE15: GLenum = 0x84CF;
3668 #[doc = "`GL_TEXTURE16: GLenum = 0x84D0`"]
3669 #[doc = "* **Group:** TextureUnit"]
3670 pub const GL_TEXTURE16: GLenum = 0x84D0;
3671 #[doc = "`GL_TEXTURE17: GLenum = 0x84D1`"]
3672 #[doc = "* **Group:** TextureUnit"]
3673 pub const GL_TEXTURE17: GLenum = 0x84D1;
3674 #[doc = "`GL_TEXTURE18: GLenum = 0x84D2`"]
3675 #[doc = "* **Group:** TextureUnit"]
3676 pub const GL_TEXTURE18: GLenum = 0x84D2;
3677 #[doc = "`GL_TEXTURE19: GLenum = 0x84D3`"]
3678 #[doc = "* **Group:** TextureUnit"]
3679 pub const GL_TEXTURE19: GLenum = 0x84D3;
3680 #[doc = "`GL_TEXTURE2: GLenum = 0x84C2`"]
3681 #[doc = "* **Group:** TextureUnit"]
3682 pub const GL_TEXTURE2: GLenum = 0x84C2;
3683 #[doc = "`GL_TEXTURE20: GLenum = 0x84D4`"]
3684 #[doc = "* **Group:** TextureUnit"]
3685 pub const GL_TEXTURE20: GLenum = 0x84D4;
3686 #[doc = "`GL_TEXTURE21: GLenum = 0x84D5`"]
3687 #[doc = "* **Group:** TextureUnit"]
3688 pub const GL_TEXTURE21: GLenum = 0x84D5;
3689 #[doc = "`GL_TEXTURE22: GLenum = 0x84D6`"]
3690 #[doc = "* **Group:** TextureUnit"]
3691 pub const GL_TEXTURE22: GLenum = 0x84D6;
3692 #[doc = "`GL_TEXTURE23: GLenum = 0x84D7`"]
3693 #[doc = "* **Group:** TextureUnit"]
3694 pub const GL_TEXTURE23: GLenum = 0x84D7;
3695 #[doc = "`GL_TEXTURE24: GLenum = 0x84D8`"]
3696 #[doc = "* **Group:** TextureUnit"]
3697 pub const GL_TEXTURE24: GLenum = 0x84D8;
3698 #[doc = "`GL_TEXTURE25: GLenum = 0x84D9`"]
3699 #[doc = "* **Group:** TextureUnit"]
3700 pub const GL_TEXTURE25: GLenum = 0x84D9;
3701 #[doc = "`GL_TEXTURE26: GLenum = 0x84DA`"]
3702 #[doc = "* **Group:** TextureUnit"]
3703 pub const GL_TEXTURE26: GLenum = 0x84DA;
3704 #[doc = "`GL_TEXTURE27: GLenum = 0x84DB`"]
3705 #[doc = "* **Group:** TextureUnit"]
3706 pub const GL_TEXTURE27: GLenum = 0x84DB;
3707 #[doc = "`GL_TEXTURE28: GLenum = 0x84DC`"]
3708 #[doc = "* **Group:** TextureUnit"]
3709 pub const GL_TEXTURE28: GLenum = 0x84DC;
3710 #[doc = "`GL_TEXTURE29: GLenum = 0x84DD`"]
3711 #[doc = "* **Group:** TextureUnit"]
3712 pub const GL_TEXTURE29: GLenum = 0x84DD;
3713 #[doc = "`GL_TEXTURE3: GLenum = 0x84C3`"]
3714 #[doc = "* **Group:** TextureUnit"]
3715 pub const GL_TEXTURE3: GLenum = 0x84C3;
3716 #[doc = "`GL_TEXTURE30: GLenum = 0x84DE`"]
3717 #[doc = "* **Group:** TextureUnit"]
3718 pub const GL_TEXTURE30: GLenum = 0x84DE;
3719 #[doc = "`GL_TEXTURE31: GLenum = 0x84DF`"]
3720 #[doc = "* **Group:** TextureUnit"]
3721 pub const GL_TEXTURE31: GLenum = 0x84DF;
3722 #[doc = "`GL_TEXTURE4: GLenum = 0x84C4`"]
3723 #[doc = "* **Group:** TextureUnit"]
3724 pub const GL_TEXTURE4: GLenum = 0x84C4;
3725 #[doc = "`GL_TEXTURE5: GLenum = 0x84C5`"]
3726 #[doc = "* **Group:** TextureUnit"]
3727 pub const GL_TEXTURE5: GLenum = 0x84C5;
3728 #[doc = "`GL_TEXTURE6: GLenum = 0x84C6`"]
3729 #[doc = "* **Group:** TextureUnit"]
3730 pub const GL_TEXTURE6: GLenum = 0x84C6;
3731 #[doc = "`GL_TEXTURE7: GLenum = 0x84C7`"]
3732 #[doc = "* **Group:** TextureUnit"]
3733 pub const GL_TEXTURE7: GLenum = 0x84C7;
3734 #[doc = "`GL_TEXTURE8: GLenum = 0x84C8`"]
3735 #[doc = "* **Group:** TextureUnit"]
3736 pub const GL_TEXTURE8: GLenum = 0x84C8;
3737 #[doc = "`GL_TEXTURE9: GLenum = 0x84C9`"]
3738 #[doc = "* **Group:** TextureUnit"]
3739 pub const GL_TEXTURE9: GLenum = 0x84C9;
3740 #[doc = "`GL_TEXTURE_1D: GLenum = 0x0DE0`"]
3741 #[doc = "* **Groups:** CopyImageSubDataTarget, EnableCap, GetPName, TextureTarget"]
3742 pub const GL_TEXTURE_1D: GLenum = 0x0DE0;
3743 #[doc = "`GL_TEXTURE_1D_ARRAY: GLenum = 0x8C18`"]
3744 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3745 pub const GL_TEXTURE_1D_ARRAY: GLenum = 0x8C18;
3746 #[doc = "`GL_TEXTURE_2D: GLenum = 0x0DE1`"]
3747 #[doc = "* **Groups:** CopyImageSubDataTarget, EnableCap, GetPName, TextureTarget"]
3748 pub const GL_TEXTURE_2D: GLenum = 0x0DE1;
3749 #[doc = "`GL_TEXTURE_2D_ARRAY: GLenum = 0x8C1A`"]
3750 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3751 pub const GL_TEXTURE_2D_ARRAY: GLenum = 0x8C1A;
3752 #[doc = "`GL_TEXTURE_2D_MULTISAMPLE: GLenum = 0x9100`"]
3753 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3754 pub const GL_TEXTURE_2D_MULTISAMPLE: GLenum = 0x9100;
3755 #[doc = "`GL_TEXTURE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9102`"]
3756 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3757 pub const GL_TEXTURE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9102;
3758 #[doc = "`GL_TEXTURE_3D: GLenum = 0x806F`"]
3759 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3760 pub const GL_TEXTURE_3D: GLenum = 0x806F;
3761 #[doc = "`GL_TEXTURE_ALPHA_SIZE: GLenum = 0x805F`"]
3762 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
3763 pub const GL_TEXTURE_ALPHA_SIZE: GLenum = 0x805F;
3764 #[doc = "`GL_TEXTURE_ALPHA_TYPE: GLenum = 0x8C13`"]
3765 pub const GL_TEXTURE_ALPHA_TYPE: GLenum = 0x8C13;
3766 #[doc = "`GL_TEXTURE_BASE_LEVEL: GLenum = 0x813C`"]
3767 #[doc = "* **Group:** TextureParameterName"]
3768 pub const GL_TEXTURE_BASE_LEVEL: GLenum = 0x813C;
3769 #[doc = "`GL_TEXTURE_BINDING_1D: GLenum = 0x8068`"]
3770 #[doc = "* **Group:** GetPName"]
3771 pub const GL_TEXTURE_BINDING_1D: GLenum = 0x8068;
3772 #[doc = "`GL_TEXTURE_BINDING_1D_ARRAY: GLenum = 0x8C1C`"]
3773 #[doc = "* **Group:** GetPName"]
3774 pub const GL_TEXTURE_BINDING_1D_ARRAY: GLenum = 0x8C1C;
3775 #[doc = "`GL_TEXTURE_BINDING_2D: GLenum = 0x8069`"]
3776 #[doc = "* **Group:** GetPName"]
3777 pub const GL_TEXTURE_BINDING_2D: GLenum = 0x8069;
3778 #[doc = "`GL_TEXTURE_BINDING_2D_ARRAY: GLenum = 0x8C1D`"]
3779 #[doc = "* **Group:** GetPName"]
3780 pub const GL_TEXTURE_BINDING_2D_ARRAY: GLenum = 0x8C1D;
3781 #[doc = "`GL_TEXTURE_BINDING_2D_MULTISAMPLE: GLenum = 0x9104`"]
3782 #[doc = "* **Group:** GetPName"]
3783 pub const GL_TEXTURE_BINDING_2D_MULTISAMPLE: GLenum = 0x9104;
3784 #[doc = "`GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY: GLenum = 0x9105`"]
3785 #[doc = "* **Group:** GetPName"]
3786 pub const GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY: GLenum = 0x9105;
3787 #[doc = "`GL_TEXTURE_BINDING_3D: GLenum = 0x806A`"]
3788 #[doc = "* **Group:** GetPName"]
3789 pub const GL_TEXTURE_BINDING_3D: GLenum = 0x806A;
3790 #[doc = "`GL_TEXTURE_BINDING_BUFFER: GLenum = 0x8C2C`"]
3791 #[doc = "* **Group:** GetPName"]
3792 pub const GL_TEXTURE_BINDING_BUFFER: GLenum = 0x8C2C;
3793 #[doc = "`GL_TEXTURE_BINDING_CUBE_MAP: GLenum = 0x8514`"]
3794 #[doc = "* **Group:** GetPName"]
3795 pub const GL_TEXTURE_BINDING_CUBE_MAP: GLenum = 0x8514;
3796 #[doc = "`GL_TEXTURE_BINDING_CUBE_MAP_ARRAY: GLenum = 0x900A`"]
3797 pub const GL_TEXTURE_BINDING_CUBE_MAP_ARRAY: GLenum = 0x900A;
3798 #[doc = "`GL_TEXTURE_BINDING_RECTANGLE: GLenum = 0x84F6`"]
3799 #[doc = "* **Group:** GetPName"]
3800 pub const GL_TEXTURE_BINDING_RECTANGLE: GLenum = 0x84F6;
3801 #[doc = "`GL_TEXTURE_BLUE_SIZE: GLenum = 0x805E`"]
3802 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
3803 pub const GL_TEXTURE_BLUE_SIZE: GLenum = 0x805E;
3804 #[doc = "`GL_TEXTURE_BLUE_TYPE: GLenum = 0x8C12`"]
3805 pub const GL_TEXTURE_BLUE_TYPE: GLenum = 0x8C12;
3806 #[doc = "`GL_TEXTURE_BORDER_COLOR: GLenum = 0x1004`"]
3807 #[doc = "* **Groups:** SamplerParameterF, GetTextureParameter, TextureParameterName"]
3808 pub const GL_TEXTURE_BORDER_COLOR: GLenum = 0x1004;
3809 #[doc = "`GL_TEXTURE_BUFFER: GLenum = 0x8C2A`"]
3810 #[doc = "* **Groups:** TextureTarget, CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
3811 pub const GL_TEXTURE_BUFFER: GLenum = 0x8C2A;
3812 #[doc = "`GL_TEXTURE_BUFFER_BINDING: GLenum = 0x8C2A`"]
3813 pub const GL_TEXTURE_BUFFER_BINDING: GLenum = 0x8C2A;
3814 #[doc = "`GL_TEXTURE_BUFFER_DATA_STORE_BINDING: GLenum = 0x8C2D`"]
3815 pub const GL_TEXTURE_BUFFER_DATA_STORE_BINDING: GLenum = 0x8C2D;
3816 #[doc = "`GL_TEXTURE_BUFFER_OFFSET: GLenum = 0x919D`"]
3817 pub const GL_TEXTURE_BUFFER_OFFSET: GLenum = 0x919D;
3818 #[doc = "`GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT: GLenum = 0x919F`"]
3819 #[doc = "* **Group:** GetPName"]
3820 pub const GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT: GLenum = 0x919F;
3821 #[doc = "`GL_TEXTURE_BUFFER_SIZE: GLenum = 0x919E`"]
3822 pub const GL_TEXTURE_BUFFER_SIZE: GLenum = 0x919E;
3823 #[doc = "`GL_TEXTURE_COMPARE_FUNC: GLenum = 0x884D`"]
3824 #[doc = "* **Groups:** SamplerParameterI, TextureParameterName"]
3825 pub const GL_TEXTURE_COMPARE_FUNC: GLenum = 0x884D;
3826 #[doc = "`GL_TEXTURE_COMPARE_MODE: GLenum = 0x884C`"]
3827 #[doc = "* **Groups:** SamplerParameterI, TextureParameterName"]
3828 pub const GL_TEXTURE_COMPARE_MODE: GLenum = 0x884C;
3829 #[doc = "`GL_TEXTURE_COMPRESSED: GLenum = 0x86A1`"]
3830 #[doc = "* **Group:** InternalFormatPName"]
3831 pub const GL_TEXTURE_COMPRESSED: GLenum = 0x86A1;
3832 #[doc = "`GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT: GLenum = 0x82B2`"]
3833 #[doc = "* **Group:** InternalFormatPName"]
3834 pub const GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT: GLenum = 0x82B2;
3835 #[doc = "`GL_TEXTURE_COMPRESSED_BLOCK_SIZE: GLenum = 0x82B3`"]
3836 #[doc = "* **Group:** InternalFormatPName"]
3837 pub const GL_TEXTURE_COMPRESSED_BLOCK_SIZE: GLenum = 0x82B3;
3838 #[doc = "`GL_TEXTURE_COMPRESSED_BLOCK_WIDTH: GLenum = 0x82B1`"]
3839 #[doc = "* **Group:** InternalFormatPName"]
3840 pub const GL_TEXTURE_COMPRESSED_BLOCK_WIDTH: GLenum = 0x82B1;
3841 #[doc = "`GL_TEXTURE_COMPRESSED_IMAGE_SIZE: GLenum = 0x86A0`"]
3842 pub const GL_TEXTURE_COMPRESSED_IMAGE_SIZE: GLenum = 0x86A0;
3843 #[doc = "`GL_TEXTURE_COMPRESSION_HINT: GLenum = 0x84EF`"]
3844 #[doc = "* **Groups:** HintTarget, GetPName"]
3845 pub const GL_TEXTURE_COMPRESSION_HINT: GLenum = 0x84EF;
3846 #[doc = "`GL_TEXTURE_CUBE_MAP: GLenum = 0x8513`"]
3847 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3848 pub const GL_TEXTURE_CUBE_MAP: GLenum = 0x8513;
3849 #[doc = "`GL_TEXTURE_CUBE_MAP_ARRAY: GLenum = 0x9009`"]
3850 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3851 pub const GL_TEXTURE_CUBE_MAP_ARRAY: GLenum = 0x9009;
3852 #[doc = "`GL_TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum = 0x8516`"]
3853 #[doc = "* **Group:** TextureTarget"]
3854 pub const GL_TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum = 0x8516;
3855 #[doc = "`GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum = 0x8518`"]
3856 #[doc = "* **Group:** TextureTarget"]
3857 pub const GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum = 0x8518;
3858 #[doc = "`GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum = 0x851A`"]
3859 #[doc = "* **Group:** TextureTarget"]
3860 pub const GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum = 0x851A;
3861 #[doc = "`GL_TEXTURE_CUBE_MAP_POSITIVE_X: GLenum = 0x8515`"]
3862 #[doc = "* **Group:** TextureTarget"]
3863 pub const GL_TEXTURE_CUBE_MAP_POSITIVE_X: GLenum = 0x8515;
3864 #[doc = "`GL_TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum = 0x8517`"]
3865 #[doc = "* **Group:** TextureTarget"]
3866 pub const GL_TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum = 0x8517;
3867 #[doc = "`GL_TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum = 0x8519`"]
3868 #[doc = "* **Group:** TextureTarget"]
3869 pub const GL_TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum = 0x8519;
3870 #[doc = "`GL_TEXTURE_CUBE_MAP_SEAMLESS: GLenum = 0x884F`"]
3871 #[doc = "* **Group:** EnableCap"]
3872 pub const GL_TEXTURE_CUBE_MAP_SEAMLESS: GLenum = 0x884F;
3873 #[doc = "`GL_TEXTURE_DEPTH: GLenum = 0x8071`"]
3874 pub const GL_TEXTURE_DEPTH: GLenum = 0x8071;
3875 #[doc = "`GL_TEXTURE_DEPTH_SIZE: GLenum = 0x884A`"]
3876 pub const GL_TEXTURE_DEPTH_SIZE: GLenum = 0x884A;
3877 #[doc = "`GL_TEXTURE_DEPTH_TYPE: GLenum = 0x8C16`"]
3878 pub const GL_TEXTURE_DEPTH_TYPE: GLenum = 0x8C16;
3879 #[doc = "`GL_TEXTURE_FETCH_BARRIER_BIT: GLbitfield = 0x00000008`"]
3880 #[doc = "* **Group:** MemoryBarrierMask"]
3881 pub const GL_TEXTURE_FETCH_BARRIER_BIT: GLbitfield = 0x00000008;
3882 #[doc = "`GL_TEXTURE_FIXED_SAMPLE_LOCATIONS: GLenum = 0x9107`"]
3883 pub const GL_TEXTURE_FIXED_SAMPLE_LOCATIONS: GLenum = 0x9107;
3884 #[doc = "`GL_TEXTURE_GATHER: GLenum = 0x82A2`"]
3885 #[doc = "* **Group:** InternalFormatPName"]
3886 pub const GL_TEXTURE_GATHER: GLenum = 0x82A2;
3887 #[doc = "`GL_TEXTURE_GATHER_SHADOW: GLenum = 0x82A3`"]
3888 #[doc = "* **Group:** InternalFormatPName"]
3889 pub const GL_TEXTURE_GATHER_SHADOW: GLenum = 0x82A3;
3890 #[doc = "`GL_TEXTURE_GREEN_SIZE: GLenum = 0x805D`"]
3891 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
3892 pub const GL_TEXTURE_GREEN_SIZE: GLenum = 0x805D;
3893 #[doc = "`GL_TEXTURE_GREEN_TYPE: GLenum = 0x8C11`"]
3894 pub const GL_TEXTURE_GREEN_TYPE: GLenum = 0x8C11;
3895 #[doc = "`GL_TEXTURE_HEIGHT: GLenum = 0x1001`"]
3896 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
3897 pub const GL_TEXTURE_HEIGHT: GLenum = 0x1001;
3898 #[doc = "`GL_TEXTURE_IMAGE_FORMAT: GLenum = 0x828F`"]
3899 #[doc = "* **Group:** InternalFormatPName"]
3900 pub const GL_TEXTURE_IMAGE_FORMAT: GLenum = 0x828F;
3901 #[doc = "`GL_TEXTURE_IMAGE_TYPE: GLenum = 0x8290`"]
3902 #[doc = "* **Group:** InternalFormatPName"]
3903 pub const GL_TEXTURE_IMAGE_TYPE: GLenum = 0x8290;
3904 #[doc = "`GL_TEXTURE_IMMUTABLE_FORMAT: GLenum = 0x912F`"]
3905 pub const GL_TEXTURE_IMMUTABLE_FORMAT: GLenum = 0x912F;
3906 #[doc = "`GL_TEXTURE_IMMUTABLE_LEVELS: GLenum = 0x82DF`"]
3907 pub const GL_TEXTURE_IMMUTABLE_LEVELS: GLenum = 0x82DF;
3908 #[doc = "`GL_TEXTURE_INTERNAL_FORMAT: GLenum = 0x1003`"]
3909 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
3910 pub const GL_TEXTURE_INTERNAL_FORMAT: GLenum = 0x1003;
3911 #[doc = "`GL_TEXTURE_LOD_BIAS: GLenum = 0x8501`"]
3912 #[doc = "* **Groups:** TextureParameterName, SamplerParameterF"]
3913 pub const GL_TEXTURE_LOD_BIAS: GLenum = 0x8501;
3914 #[doc = "`GL_TEXTURE_MAG_FILTER: GLenum = 0x2800`"]
3915 #[doc = "* **Groups:** SamplerParameterI, GetTextureParameter, TextureParameterName"]
3916 pub const GL_TEXTURE_MAG_FILTER: GLenum = 0x2800;
3917 #[doc = "`GL_TEXTURE_MAX_ANISOTROPY: GLenum = 0x84FE`"]
3918 #[doc = "* **Group:** SamplerParameterF"]
3919 pub const GL_TEXTURE_MAX_ANISOTROPY: GLenum = 0x84FE;
3920 #[doc = "`GL_TEXTURE_MAX_ANISOTROPY_EXT: GLenum = 0x84FE`"]
3921 #[doc = "* **Alias Of:** `GL_TEXTURE_MAX_ANISOTROPY`"]
3922 pub const GL_TEXTURE_MAX_ANISOTROPY_EXT: GLenum = 0x84FE;
3923 #[doc = "`GL_TEXTURE_MAX_LEVEL: GLenum = 0x813D`"]
3924 #[doc = "* **Group:** TextureParameterName"]
3925 pub const GL_TEXTURE_MAX_LEVEL: GLenum = 0x813D;
3926 #[doc = "`GL_TEXTURE_MAX_LOD: GLenum = 0x813B`"]
3927 #[doc = "* **Groups:** SamplerParameterF, TextureParameterName"]
3928 pub const GL_TEXTURE_MAX_LOD: GLenum = 0x813B;
3929 #[doc = "`GL_TEXTURE_MIN_FILTER: GLenum = 0x2801`"]
3930 #[doc = "* **Groups:** SamplerParameterI, GetTextureParameter, TextureParameterName"]
3931 pub const GL_TEXTURE_MIN_FILTER: GLenum = 0x2801;
3932 #[doc = "`GL_TEXTURE_MIN_LOD: GLenum = 0x813A`"]
3933 #[doc = "* **Groups:** SamplerParameterF, TextureParameterName"]
3934 pub const GL_TEXTURE_MIN_LOD: GLenum = 0x813A;
3935 #[doc = "`GL_TEXTURE_RECTANGLE: GLenum = 0x84F5`"]
3936 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3937 pub const GL_TEXTURE_RECTANGLE: GLenum = 0x84F5;
3938 #[doc = "`GL_TEXTURE_RED_SIZE: GLenum = 0x805C`"]
3939 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
3940 pub const GL_TEXTURE_RED_SIZE: GLenum = 0x805C;
3941 #[doc = "`GL_TEXTURE_RED_TYPE: GLenum = 0x8C10`"]
3942 pub const GL_TEXTURE_RED_TYPE: GLenum = 0x8C10;
3943 #[doc = "`GL_TEXTURE_SAMPLES: GLenum = 0x9106`"]
3944 pub const GL_TEXTURE_SAMPLES: GLenum = 0x9106;
3945 #[doc = "`GL_TEXTURE_SHADOW: GLenum = 0x82A1`"]
3946 #[doc = "* **Group:** InternalFormatPName"]
3947 pub const GL_TEXTURE_SHADOW: GLenum = 0x82A1;
3948 #[doc = "`GL_TEXTURE_SHARED_SIZE: GLenum = 0x8C3F`"]
3949 pub const GL_TEXTURE_SHARED_SIZE: GLenum = 0x8C3F;
3950 #[doc = "`GL_TEXTURE_STENCIL_SIZE: GLenum = 0x88F1`"]
3951 pub const GL_TEXTURE_STENCIL_SIZE: GLenum = 0x88F1;
3952 #[doc = "`GL_TEXTURE_SWIZZLE_A: GLenum = 0x8E45`"]
3953 #[doc = "* **Group:** TextureParameterName"]
3954 pub const GL_TEXTURE_SWIZZLE_A: GLenum = 0x8E45;
3955 #[doc = "`GL_TEXTURE_SWIZZLE_B: GLenum = 0x8E44`"]
3956 #[doc = "* **Group:** TextureParameterName"]
3957 pub const GL_TEXTURE_SWIZZLE_B: GLenum = 0x8E44;
3958 #[doc = "`GL_TEXTURE_SWIZZLE_G: GLenum = 0x8E43`"]
3959 #[doc = "* **Group:** TextureParameterName"]
3960 pub const GL_TEXTURE_SWIZZLE_G: GLenum = 0x8E43;
3961 #[doc = "`GL_TEXTURE_SWIZZLE_R: GLenum = 0x8E42`"]
3962 #[doc = "* **Group:** TextureParameterName"]
3963 pub const GL_TEXTURE_SWIZZLE_R: GLenum = 0x8E42;
3964 #[doc = "`GL_TEXTURE_SWIZZLE_RGBA: GLenum = 0x8E46`"]
3965 #[doc = "* **Group:** TextureParameterName"]
3966 pub const GL_TEXTURE_SWIZZLE_RGBA: GLenum = 0x8E46;
3967 #[doc = "`GL_TEXTURE_TARGET: GLenum = 0x1006`"]
3968 pub const GL_TEXTURE_TARGET: GLenum = 0x1006;
3969 #[doc = "`GL_TEXTURE_UPDATE_BARRIER_BIT: GLbitfield = 0x00000100`"]
3970 #[doc = "* **Group:** MemoryBarrierMask"]
3971 pub const GL_TEXTURE_UPDATE_BARRIER_BIT: GLbitfield = 0x00000100;
3972 #[doc = "`GL_TEXTURE_VIEW: GLenum = 0x82B5`"]
3973 #[doc = "* **Group:** InternalFormatPName"]
3974 pub const GL_TEXTURE_VIEW: GLenum = 0x82B5;
3975 #[doc = "`GL_TEXTURE_VIEW_MIN_LAYER: GLenum = 0x82DD`"]
3976 pub const GL_TEXTURE_VIEW_MIN_LAYER: GLenum = 0x82DD;
3977 #[doc = "`GL_TEXTURE_VIEW_MIN_LEVEL: GLenum = 0x82DB`"]
3978 pub const GL_TEXTURE_VIEW_MIN_LEVEL: GLenum = 0x82DB;
3979 #[doc = "`GL_TEXTURE_VIEW_NUM_LAYERS: GLenum = 0x82DE`"]
3980 pub const GL_TEXTURE_VIEW_NUM_LAYERS: GLenum = 0x82DE;
3981 #[doc = "`GL_TEXTURE_VIEW_NUM_LEVELS: GLenum = 0x82DC`"]
3982 pub const GL_TEXTURE_VIEW_NUM_LEVELS: GLenum = 0x82DC;
3983 #[doc = "`GL_TEXTURE_WIDTH: GLenum = 0x1000`"]
3984 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
3985 pub const GL_TEXTURE_WIDTH: GLenum = 0x1000;
3986 #[doc = "`GL_TEXTURE_WRAP_R: GLenum = 0x8072`"]
3987 #[doc = "* **Groups:** SamplerParameterI, TextureParameterName"]
3988 pub const GL_TEXTURE_WRAP_R: GLenum = 0x8072;
3989 #[doc = "`GL_TEXTURE_WRAP_S: GLenum = 0x2802`"]
3990 #[doc = "* **Groups:** SamplerParameterI, GetTextureParameter, TextureParameterName"]
3991 pub const GL_TEXTURE_WRAP_S: GLenum = 0x2802;
3992 #[doc = "`GL_TEXTURE_WRAP_T: GLenum = 0x2803`"]
3993 #[doc = "* **Groups:** SamplerParameterI, GetTextureParameter, TextureParameterName"]
3994 pub const GL_TEXTURE_WRAP_T: GLenum = 0x2803;
3995 #[doc = "`GL_TIMEOUT_EXPIRED: GLenum = 0x911B`"]
3996 #[doc = "* **Group:** SyncStatus"]
3997 pub const GL_TIMEOUT_EXPIRED: GLenum = 0x911B;
3998 #[doc = "`GL_TIMEOUT_IGNORED: u64 = 0xFFFFFFFFFFFFFFFF`"]
3999 pub const GL_TIMEOUT_IGNORED: u64 = 0xFFFFFFFFFFFFFFFF;
4000 #[doc = "`GL_TIMESTAMP: GLenum = 0x8E28`"]
4001 #[doc = "* **Groups:** QueryCounterTarget, GetPName"]
4002 pub const GL_TIMESTAMP: GLenum = 0x8E28;
4003 #[doc = "`GL_TIMESTAMP_EXT: GLenum = 0x8E28`"]
4004 pub const GL_TIMESTAMP_EXT: GLenum = 0x8E28;
4005 #[doc = "`GL_TIME_ELAPSED: GLenum = 0x88BF`"]
4006 #[doc = "* **Group:** QueryTarget"]
4007 pub const GL_TIME_ELAPSED: GLenum = 0x88BF;
4008 #[doc = "`GL_TIME_ELAPSED_EXT: GLenum = 0x88BF`"]
4009 pub const GL_TIME_ELAPSED_EXT: GLenum = 0x88BF;
4010 #[doc = "`GL_TOP_LEVEL_ARRAY_SIZE: GLenum = 0x930C`"]
4011 #[doc = "* **Group:** ProgramResourceProperty"]
4012 pub const GL_TOP_LEVEL_ARRAY_SIZE: GLenum = 0x930C;
4013 #[doc = "`GL_TOP_LEVEL_ARRAY_STRIDE: GLenum = 0x930D`"]
4014 #[doc = "* **Group:** ProgramResourceProperty"]
4015 pub const GL_TOP_LEVEL_ARRAY_STRIDE: GLenum = 0x930D;
4016 #[doc = "`GL_TRANSFORM_FEEDBACK: GLenum = 0x8E22`"]
4017 #[doc = "* **Groups:** ObjectIdentifier, BindTransformFeedbackTarget"]
4018 pub const GL_TRANSFORM_FEEDBACK: GLenum = 0x8E22;
4019 #[doc = "`GL_TRANSFORM_FEEDBACK_ACTIVE: GLenum = 0x8E24`"]
4020 #[doc = "* **Group:** TransformFeedbackPName"]
4021 #[doc = "* **Alias Of:** `GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE`"]
4022 pub const GL_TRANSFORM_FEEDBACK_ACTIVE: GLenum = 0x8E24;
4023 #[doc = "`GL_TRANSFORM_FEEDBACK_BARRIER_BIT: GLbitfield = 0x00000800`"]
4024 #[doc = "* **Group:** MemoryBarrierMask"]
4025 pub const GL_TRANSFORM_FEEDBACK_BARRIER_BIT: GLbitfield = 0x00000800;
4026 #[doc = "`GL_TRANSFORM_FEEDBACK_BINDING: GLenum = 0x8E25`"]
4027 pub const GL_TRANSFORM_FEEDBACK_BINDING: GLenum = 0x8E25;
4028 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER: GLenum = 0x8C8E`"]
4029 #[doc = "* **Groups:** ProgramInterface, BufferTargetARB, BufferStorageTarget, CopyBufferSubDataTarget"]
4030 pub const GL_TRANSFORM_FEEDBACK_BUFFER: GLenum = 0x8C8E;
4031 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE: GLenum = 0x8E24`"]
4032 pub const GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE: GLenum = 0x8E24;
4033 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_BINDING: GLenum = 0x8C8F`"]
4034 #[doc = "* **Groups:** TransformFeedbackPName, GetPName"]
4035 pub const GL_TRANSFORM_FEEDBACK_BUFFER_BINDING: GLenum = 0x8C8F;
4036 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_INDEX: GLenum = 0x934B`"]
4037 #[doc = "* **Group:** ProgramResourceProperty"]
4038 pub const GL_TRANSFORM_FEEDBACK_BUFFER_INDEX: GLenum = 0x934B;
4039 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_MODE: GLenum = 0x8C7F`"]
4040 #[doc = "* **Group:** ProgramPropertyARB"]
4041 pub const GL_TRANSFORM_FEEDBACK_BUFFER_MODE: GLenum = 0x8C7F;
4042 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED: GLenum = 0x8E23`"]
4043 pub const GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED: GLenum = 0x8E23;
4044 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_SIZE: GLenum = 0x8C85`"]
4045 #[doc = "* **Groups:** TransformFeedbackPName, GetPName"]
4046 pub const GL_TRANSFORM_FEEDBACK_BUFFER_SIZE: GLenum = 0x8C85;
4047 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_START: GLenum = 0x8C84`"]
4048 #[doc = "* **Groups:** TransformFeedbackPName, GetPName"]
4049 pub const GL_TRANSFORM_FEEDBACK_BUFFER_START: GLenum = 0x8C84;
4050 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE: GLenum = 0x934C`"]
4051 #[doc = "* **Group:** ProgramResourceProperty"]
4052 pub const GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE: GLenum = 0x934C;
4053 #[doc = "`GL_TRANSFORM_FEEDBACK_OVERFLOW: GLenum = 0x82EC`"]
4054 #[doc = "* **Group:** QueryTarget"]
4055 pub const GL_TRANSFORM_FEEDBACK_OVERFLOW: GLenum = 0x82EC;
4056 #[doc = "`GL_TRANSFORM_FEEDBACK_PAUSED: GLenum = 0x8E23`"]
4057 #[doc = "* **Group:** TransformFeedbackPName"]
4058 #[doc = "* **Alias Of:** `GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED`"]
4059 pub const GL_TRANSFORM_FEEDBACK_PAUSED: GLenum = 0x8E23;
4060 #[doc = "`GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: GLenum = 0x8C88`"]
4061 #[doc = "* **Group:** QueryTarget"]
4062 pub const GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: GLenum = 0x8C88;
4063 #[doc = "`GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW: GLenum = 0x82ED`"]
4064 pub const GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW: GLenum = 0x82ED;
4065 #[doc = "`GL_TRANSFORM_FEEDBACK_VARYING: GLenum = 0x92F4`"]
4066 #[doc = "* **Group:** ProgramInterface"]
4067 pub const GL_TRANSFORM_FEEDBACK_VARYING: GLenum = 0x92F4;
4068 #[doc = "`GL_TRANSFORM_FEEDBACK_VARYINGS: GLenum = 0x8C83`"]
4069 #[doc = "* **Group:** ProgramPropertyARB"]
4070 pub const GL_TRANSFORM_FEEDBACK_VARYINGS: GLenum = 0x8C83;
4071 #[doc = "`GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH: GLenum = 0x8C76`"]
4072 #[doc = "* **Group:** ProgramPropertyARB"]
4073 pub const GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH: GLenum = 0x8C76;
4074 #[doc = "`GL_TRIANGLES: GLenum = 0x0004`"]
4075 #[doc = "* **Group:** PrimitiveType"]
4076 pub const GL_TRIANGLES: GLenum = 0x0004;
4077 #[doc = "`GL_TRIANGLES_ADJACENCY: GLenum = 0x000C`"]
4078 #[doc = "* **Group:** PrimitiveType"]
4079 pub const GL_TRIANGLES_ADJACENCY: GLenum = 0x000C;
4080 #[doc = "`GL_TRIANGLE_FAN: GLenum = 0x0006`"]
4081 #[doc = "* **Group:** PrimitiveType"]
4082 pub const GL_TRIANGLE_FAN: GLenum = 0x0006;
4083 #[doc = "`GL_TRIANGLE_STRIP: GLenum = 0x0005`"]
4084 #[doc = "* **Group:** PrimitiveType"]
4085 pub const GL_TRIANGLE_STRIP: GLenum = 0x0005;
4086 #[doc = "`GL_TRIANGLE_STRIP_ADJACENCY: GLenum = 0x000D`"]
4087 #[doc = "* **Group:** PrimitiveType"]
4088 pub const GL_TRIANGLE_STRIP_ADJACENCY: GLenum = 0x000D;
4089 #[doc = "`GL_TRUE: GLenum = 1`"]
4090 #[doc = "* **Groups:** Boolean, VertexShaderWriteMaskEXT, ClampColorModeARB"]
4091 pub const GL_TRUE: GLenum = 1;
4092 #[doc = "`GL_TYPE: GLenum = 0x92FA`"]
4093 #[doc = "* **Group:** ProgramResourceProperty"]
4094 pub const GL_TYPE: GLenum = 0x92FA;
4095 #[doc = "`GL_UNDEFINED_VERTEX: GLenum = 0x8260`"]
4096 pub const GL_UNDEFINED_VERTEX: GLenum = 0x8260;
4097 #[doc = "`GL_UNIFORM: GLenum = 0x92E1`"]
4098 #[doc = "* **Groups:** ProgramResourceProperty, ProgramInterface"]
4099 pub const GL_UNIFORM: GLenum = 0x92E1;
4100 #[doc = "`GL_UNIFORM_ARRAY_STRIDE: GLenum = 0x8A3C`"]
4101 #[doc = "* **Group:** UniformPName"]
4102 pub const GL_UNIFORM_ARRAY_STRIDE: GLenum = 0x8A3C;
4103 #[doc = "`GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX: GLenum = 0x92DA`"]
4104 #[doc = "* **Group:** UniformPName"]
4105 pub const GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX: GLenum = 0x92DA;
4106 #[doc = "`GL_UNIFORM_BARRIER_BIT: GLbitfield = 0x00000004`"]
4107 #[doc = "* **Group:** MemoryBarrierMask"]
4108 pub const GL_UNIFORM_BARRIER_BIT: GLbitfield = 0x00000004;
4109 #[doc = "`GL_UNIFORM_BLOCK: GLenum = 0x92E2`"]
4110 #[doc = "* **Group:** ProgramInterface"]
4111 pub const GL_UNIFORM_BLOCK: GLenum = 0x92E2;
4112 #[doc = "`GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS: GLenum = 0x8A42`"]
4113 #[doc = "* **Group:** UniformBlockPName"]
4114 pub const GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS: GLenum = 0x8A42;
4115 #[doc = "`GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: GLenum = 0x8A43`"]
4116 #[doc = "* **Group:** UniformBlockPName"]
4117 pub const GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: GLenum = 0x8A43;
4118 #[doc = "`GL_UNIFORM_BLOCK_BINDING: GLenum = 0x8A3F`"]
4119 #[doc = "* **Group:** UniformBlockPName"]
4120 pub const GL_UNIFORM_BLOCK_BINDING: GLenum = 0x8A3F;
4121 #[doc = "`GL_UNIFORM_BLOCK_DATA_SIZE: GLenum = 0x8A40`"]
4122 #[doc = "* **Group:** UniformBlockPName"]
4123 pub const GL_UNIFORM_BLOCK_DATA_SIZE: GLenum = 0x8A40;
4124 #[doc = "`GL_UNIFORM_BLOCK_INDEX: GLenum = 0x8A3A`"]
4125 #[doc = "* **Group:** UniformPName"]
4126 pub const GL_UNIFORM_BLOCK_INDEX: GLenum = 0x8A3A;
4127 #[doc = "`GL_UNIFORM_BLOCK_NAME_LENGTH: GLenum = 0x8A41`"]
4128 #[doc = "* **Group:** UniformBlockPName"]
4129 pub const GL_UNIFORM_BLOCK_NAME_LENGTH: GLenum = 0x8A41;
4130 #[doc = "`GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER: GLenum = 0x90EC`"]
4131 #[doc = "* **Group:** UniformBlockPName"]
4132 pub const GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER: GLenum = 0x90EC;
4133 #[doc = "`GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: GLenum = 0x8A46`"]
4134 #[doc = "* **Group:** UniformBlockPName"]
4135 pub const GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: GLenum = 0x8A46;
4136 #[doc = "`GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER: GLenum = 0x8A45`"]
4137 #[doc = "* **Group:** UniformBlockPName"]
4138 pub const GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER: GLenum = 0x8A45;
4139 #[doc = "`GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER: GLenum = 0x84F0`"]
4140 #[doc = "* **Group:** UniformBlockPName"]
4141 pub const GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER: GLenum = 0x84F0;
4142 #[doc = "`GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER: GLenum = 0x84F1`"]
4143 #[doc = "* **Group:** UniformBlockPName"]
4144 pub const GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER: GLenum = 0x84F1;
4145 #[doc = "`GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: GLenum = 0x8A44`"]
4146 #[doc = "* **Group:** UniformBlockPName"]
4147 pub const GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: GLenum = 0x8A44;
4148 #[doc = "`GL_UNIFORM_BUFFER: GLenum = 0x8A11`"]
4149 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
4150 pub const GL_UNIFORM_BUFFER: GLenum = 0x8A11;
4151 #[doc = "`GL_UNIFORM_BUFFER_BINDING: GLenum = 0x8A28`"]
4152 #[doc = "* **Group:** GetPName"]
4153 pub const GL_UNIFORM_BUFFER_BINDING: GLenum = 0x8A28;
4154 #[doc = "`GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT: GLenum = 0x8A34`"]
4155 #[doc = "* **Group:** GetPName"]
4156 pub const GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT: GLenum = 0x8A34;
4157 #[doc = "`GL_UNIFORM_BUFFER_SIZE: GLenum = 0x8A2A`"]
4158 #[doc = "* **Group:** GetPName"]
4159 pub const GL_UNIFORM_BUFFER_SIZE: GLenum = 0x8A2A;
4160 #[doc = "`GL_UNIFORM_BUFFER_START: GLenum = 0x8A29`"]
4161 #[doc = "* **Group:** GetPName"]
4162 pub const GL_UNIFORM_BUFFER_START: GLenum = 0x8A29;
4163 #[doc = "`GL_UNIFORM_IS_ROW_MAJOR: GLenum = 0x8A3E`"]
4164 #[doc = "* **Group:** UniformPName"]
4165 pub const GL_UNIFORM_IS_ROW_MAJOR: GLenum = 0x8A3E;
4166 #[doc = "`GL_UNIFORM_MATRIX_STRIDE: GLenum = 0x8A3D`"]
4167 #[doc = "* **Group:** UniformPName"]
4168 pub const GL_UNIFORM_MATRIX_STRIDE: GLenum = 0x8A3D;
4169 #[doc = "`GL_UNIFORM_NAME_LENGTH: GLenum = 0x8A39`"]
4170 #[doc = "* **Groups:** SubroutineParameterName, UniformPName"]
4171 pub const GL_UNIFORM_NAME_LENGTH: GLenum = 0x8A39;
4172 #[doc = "`GL_UNIFORM_OFFSET: GLenum = 0x8A3B`"]
4173 #[doc = "* **Group:** UniformPName"]
4174 pub const GL_UNIFORM_OFFSET: GLenum = 0x8A3B;
4175 #[doc = "`GL_UNIFORM_SIZE: GLenum = 0x8A38`"]
4176 #[doc = "* **Groups:** SubroutineParameterName, UniformPName"]
4177 pub const GL_UNIFORM_SIZE: GLenum = 0x8A38;
4178 #[doc = "`GL_UNIFORM_TYPE: GLenum = 0x8A37`"]
4179 #[doc = "* **Group:** UniformPName"]
4180 pub const GL_UNIFORM_TYPE: GLenum = 0x8A37;
4181 #[doc = "`GL_UNKNOWN_CONTEXT_RESET: GLenum = 0x8255`"]
4182 #[doc = "* **Group:** GraphicsResetStatus"]
4183 pub const GL_UNKNOWN_CONTEXT_RESET: GLenum = 0x8255;
4184 #[doc = "`GL_UNPACK_ALIGNMENT: GLenum = 0x0CF5`"]
4185 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4186 pub const GL_UNPACK_ALIGNMENT: GLenum = 0x0CF5;
4187 #[doc = "`GL_UNPACK_COMPRESSED_BLOCK_DEPTH: GLenum = 0x9129`"]
4188 pub const GL_UNPACK_COMPRESSED_BLOCK_DEPTH: GLenum = 0x9129;
4189 #[doc = "`GL_UNPACK_COMPRESSED_BLOCK_HEIGHT: GLenum = 0x9128`"]
4190 pub const GL_UNPACK_COMPRESSED_BLOCK_HEIGHT: GLenum = 0x9128;
4191 #[doc = "`GL_UNPACK_COMPRESSED_BLOCK_SIZE: GLenum = 0x912A`"]
4192 pub const GL_UNPACK_COMPRESSED_BLOCK_SIZE: GLenum = 0x912A;
4193 #[doc = "`GL_UNPACK_COMPRESSED_BLOCK_WIDTH: GLenum = 0x9127`"]
4194 pub const GL_UNPACK_COMPRESSED_BLOCK_WIDTH: GLenum = 0x9127;
4195 #[doc = "`GL_UNPACK_IMAGE_HEIGHT: GLenum = 0x806E`"]
4196 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4197 pub const GL_UNPACK_IMAGE_HEIGHT: GLenum = 0x806E;
4198 #[doc = "`GL_UNPACK_LSB_FIRST: GLenum = 0x0CF1`"]
4199 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4200 pub const GL_UNPACK_LSB_FIRST: GLenum = 0x0CF1;
4201 #[doc = "`GL_UNPACK_ROW_LENGTH: GLenum = 0x0CF2`"]
4202 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4203 pub const GL_UNPACK_ROW_LENGTH: GLenum = 0x0CF2;
4204 #[doc = "`GL_UNPACK_SKIP_IMAGES: GLenum = 0x806D`"]
4205 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4206 pub const GL_UNPACK_SKIP_IMAGES: GLenum = 0x806D;
4207 #[doc = "`GL_UNPACK_SKIP_PIXELS: GLenum = 0x0CF4`"]
4208 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4209 pub const GL_UNPACK_SKIP_PIXELS: GLenum = 0x0CF4;
4210 #[doc = "`GL_UNPACK_SKIP_ROWS: GLenum = 0x0CF3`"]
4211 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4212 pub const GL_UNPACK_SKIP_ROWS: GLenum = 0x0CF3;
4213 #[doc = "`GL_UNPACK_SWAP_BYTES: GLenum = 0x0CF0`"]
4214 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4215 pub const GL_UNPACK_SWAP_BYTES: GLenum = 0x0CF0;
4216 #[doc = "`GL_UNSIGNALED: GLenum = 0x9118`"]
4217 pub const GL_UNSIGNALED: GLenum = 0x9118;
4218 #[doc = "`GL_UNSIGNED_BYTE: GLenum = 0x1401`"]
4219 #[doc = "* **Groups:** VertexAttribIType, ScalarType, ReplacementCodeTypeSUN, ElementPointerTypeATI, MatrixIndexPointerTypeARB, WeightPointerTypeARB, ColorPointerType, DrawElementsType, ListNameType, PixelType, VertexAttribType, VertexAttribPointerType"]
4220 pub const GL_UNSIGNED_BYTE: GLenum = 0x1401;
4221 #[doc = "`GL_UNSIGNED_BYTE_2_3_3_REV: GLenum = 0x8362`"]
4222 pub const GL_UNSIGNED_BYTE_2_3_3_REV: GLenum = 0x8362;
4223 #[doc = "`GL_UNSIGNED_BYTE_3_3_2: GLenum = 0x8032`"]
4224 #[doc = "* **Group:** PixelType"]
4225 pub const GL_UNSIGNED_BYTE_3_3_2: GLenum = 0x8032;
4226 #[doc = "`GL_UNSIGNED_INT: GLenum = 0x1405`"]
4227 #[doc = "* **Groups:** VertexAttribIType, ScalarType, ReplacementCodeTypeSUN, ElementPointerTypeATI, MatrixIndexPointerTypeARB, WeightPointerTypeARB, ColorPointerType, DrawElementsType, ListNameType, PixelFormat, PixelType, VertexAttribType, AttributeType, UniformType, VertexAttribPointerType, GlslTypeToken"]
4228 pub const GL_UNSIGNED_INT: GLenum = 0x1405;
4229 #[doc = "`GL_UNSIGNED_INT_10F_11F_11F_REV: GLenum = 0x8C3B`"]
4230 #[doc = "* **Groups:** VertexAttribPointerType, VertexAttribType"]
4231 pub const GL_UNSIGNED_INT_10F_11F_11F_REV: GLenum = 0x8C3B;
4232 #[doc = "`GL_UNSIGNED_INT_10_10_10_2: GLenum = 0x8036`"]
4233 #[doc = "* **Group:** PixelType"]
4234 pub const GL_UNSIGNED_INT_10_10_10_2: GLenum = 0x8036;
4235 #[doc = "`GL_UNSIGNED_INT_24_8: GLenum = 0x84FA`"]
4236 pub const GL_UNSIGNED_INT_24_8: GLenum = 0x84FA;
4237 #[doc = "`GL_UNSIGNED_INT_2_10_10_10_REV: GLenum = 0x8368`"]
4238 #[doc = "* **Groups:** VertexAttribPointerType, VertexAttribType"]
4239 pub const GL_UNSIGNED_INT_2_10_10_10_REV: GLenum = 0x8368;
4240 #[doc = "`GL_UNSIGNED_INT_5_9_9_9_REV: GLenum = 0x8C3E`"]
4241 pub const GL_UNSIGNED_INT_5_9_9_9_REV: GLenum = 0x8C3E;
4242 #[doc = "`GL_UNSIGNED_INT_8_8_8_8: GLenum = 0x8035`"]
4243 #[doc = "* **Group:** PixelType"]
4244 pub const GL_UNSIGNED_INT_8_8_8_8: GLenum = 0x8035;
4245 #[doc = "`GL_UNSIGNED_INT_8_8_8_8_REV: GLenum = 0x8367`"]
4246 pub const GL_UNSIGNED_INT_8_8_8_8_REV: GLenum = 0x8367;
4247 #[doc = "`GL_UNSIGNED_INT_ATOMIC_COUNTER: GLenum = 0x92DB`"]
4248 #[doc = "* **Group:** GlslTypeToken"]
4249 pub const GL_UNSIGNED_INT_ATOMIC_COUNTER: GLenum = 0x92DB;
4250 #[doc = "`GL_UNSIGNED_INT_IMAGE_1D: GLenum = 0x9062`"]
4251 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4252 pub const GL_UNSIGNED_INT_IMAGE_1D: GLenum = 0x9062;
4253 #[doc = "`GL_UNSIGNED_INT_IMAGE_1D_ARRAY: GLenum = 0x9068`"]
4254 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4255 pub const GL_UNSIGNED_INT_IMAGE_1D_ARRAY: GLenum = 0x9068;
4256 #[doc = "`GL_UNSIGNED_INT_IMAGE_2D: GLenum = 0x9063`"]
4257 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4258 pub const GL_UNSIGNED_INT_IMAGE_2D: GLenum = 0x9063;
4259 #[doc = "`GL_UNSIGNED_INT_IMAGE_2D_ARRAY: GLenum = 0x9069`"]
4260 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4261 pub const GL_UNSIGNED_INT_IMAGE_2D_ARRAY: GLenum = 0x9069;
4262 #[doc = "`GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE: GLenum = 0x906B`"]
4263 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4264 pub const GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE: GLenum = 0x906B;
4265 #[doc = "`GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY: GLenum = 0x906C`"]
4266 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4267 pub const GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY: GLenum = 0x906C;
4268 #[doc = "`GL_UNSIGNED_INT_IMAGE_2D_RECT: GLenum = 0x9065`"]
4269 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4270 pub const GL_UNSIGNED_INT_IMAGE_2D_RECT: GLenum = 0x9065;
4271 #[doc = "`GL_UNSIGNED_INT_IMAGE_3D: GLenum = 0x9064`"]
4272 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4273 pub const GL_UNSIGNED_INT_IMAGE_3D: GLenum = 0x9064;
4274 #[doc = "`GL_UNSIGNED_INT_IMAGE_BUFFER: GLenum = 0x9067`"]
4275 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4276 pub const GL_UNSIGNED_INT_IMAGE_BUFFER: GLenum = 0x9067;
4277 #[doc = "`GL_UNSIGNED_INT_IMAGE_CUBE: GLenum = 0x9066`"]
4278 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4279 pub const GL_UNSIGNED_INT_IMAGE_CUBE: GLenum = 0x9066;
4280 #[doc = "`GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY: GLenum = 0x906A`"]
4281 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4282 pub const GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY: GLenum = 0x906A;
4283 #[doc = "`GL_UNSIGNED_INT_SAMPLER_1D: GLenum = 0x8DD1`"]
4284 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4285 pub const GL_UNSIGNED_INT_SAMPLER_1D: GLenum = 0x8DD1;
4286 #[doc = "`GL_UNSIGNED_INT_SAMPLER_1D_ARRAY: GLenum = 0x8DD6`"]
4287 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4288 pub const GL_UNSIGNED_INT_SAMPLER_1D_ARRAY: GLenum = 0x8DD6;
4289 #[doc = "`GL_UNSIGNED_INT_SAMPLER_2D: GLenum = 0x8DD2`"]
4290 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4291 pub const GL_UNSIGNED_INT_SAMPLER_2D: GLenum = 0x8DD2;
4292 #[doc = "`GL_UNSIGNED_INT_SAMPLER_2D_ARRAY: GLenum = 0x8DD7`"]
4293 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4294 pub const GL_UNSIGNED_INT_SAMPLER_2D_ARRAY: GLenum = 0x8DD7;
4295 #[doc = "`GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE: GLenum = 0x910A`"]
4296 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4297 pub const GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE: GLenum = 0x910A;
4298 #[doc = "`GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: GLenum = 0x910D`"]
4299 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4300 pub const GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: GLenum = 0x910D;
4301 #[doc = "`GL_UNSIGNED_INT_SAMPLER_2D_RECT: GLenum = 0x8DD5`"]
4302 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4303 pub const GL_UNSIGNED_INT_SAMPLER_2D_RECT: GLenum = 0x8DD5;
4304 #[doc = "`GL_UNSIGNED_INT_SAMPLER_3D: GLenum = 0x8DD3`"]
4305 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4306 pub const GL_UNSIGNED_INT_SAMPLER_3D: GLenum = 0x8DD3;
4307 #[doc = "`GL_UNSIGNED_INT_SAMPLER_BUFFER: GLenum = 0x8DD8`"]
4308 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4309 pub const GL_UNSIGNED_INT_SAMPLER_BUFFER: GLenum = 0x8DD8;
4310 #[doc = "`GL_UNSIGNED_INT_SAMPLER_CUBE: GLenum = 0x8DD4`"]
4311 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4312 pub const GL_UNSIGNED_INT_SAMPLER_CUBE: GLenum = 0x8DD4;
4313 #[doc = "`GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY: GLenum = 0x900F`"]
4314 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4315 pub const GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY: GLenum = 0x900F;
4316 #[doc = "`GL_UNSIGNED_INT_VEC2: GLenum = 0x8DC6`"]
4317 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4318 pub const GL_UNSIGNED_INT_VEC2: GLenum = 0x8DC6;
4319 #[doc = "`GL_UNSIGNED_INT_VEC3: GLenum = 0x8DC7`"]
4320 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4321 pub const GL_UNSIGNED_INT_VEC3: GLenum = 0x8DC7;
4322 #[doc = "`GL_UNSIGNED_INT_VEC4: GLenum = 0x8DC8`"]
4323 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4324 pub const GL_UNSIGNED_INT_VEC4: GLenum = 0x8DC8;
4325 #[doc = "`GL_UNSIGNED_NORMALIZED: GLenum = 0x8C17`"]
4326 pub const GL_UNSIGNED_NORMALIZED: GLenum = 0x8C17;
4327 #[doc = "`GL_UNSIGNED_SHORT: GLenum = 0x1403`"]
4328 #[doc = "* **Groups:** VertexAttribIType, ScalarType, ReplacementCodeTypeSUN, ElementPointerTypeATI, MatrixIndexPointerTypeARB, WeightPointerTypeARB, ColorPointerType, DrawElementsType, ListNameType, PixelFormat, PixelType, VertexAttribType, VertexAttribPointerType"]
4329 pub const GL_UNSIGNED_SHORT: GLenum = 0x1403;
4330 #[doc = "`GL_UNSIGNED_SHORT_1_5_5_5_REV: GLenum = 0x8366`"]
4331 pub const GL_UNSIGNED_SHORT_1_5_5_5_REV: GLenum = 0x8366;
4332 #[doc = "`GL_UNSIGNED_SHORT_4_4_4_4: GLenum = 0x8033`"]
4333 #[doc = "* **Group:** PixelType"]
4334 pub const GL_UNSIGNED_SHORT_4_4_4_4: GLenum = 0x8033;
4335 #[doc = "`GL_UNSIGNED_SHORT_4_4_4_4_REV: GLenum = 0x8365`"]
4336 pub const GL_UNSIGNED_SHORT_4_4_4_4_REV: GLenum = 0x8365;
4337 #[doc = "`GL_UNSIGNED_SHORT_5_5_5_1: GLenum = 0x8034`"]
4338 #[doc = "* **Group:** PixelType"]
4339 pub const GL_UNSIGNED_SHORT_5_5_5_1: GLenum = 0x8034;
4340 #[doc = "`GL_UNSIGNED_SHORT_5_6_5: GLenum = 0x8363`"]
4341 pub const GL_UNSIGNED_SHORT_5_6_5: GLenum = 0x8363;
4342 #[doc = "`GL_UNSIGNED_SHORT_5_6_5_REV: GLenum = 0x8364`"]
4343 pub const GL_UNSIGNED_SHORT_5_6_5_REV: GLenum = 0x8364;
4344 #[doc = "`GL_UPPER_LEFT: GLenum = 0x8CA2`"]
4345 #[doc = "* **Group:** ClipControlOrigin"]
4346 pub const GL_UPPER_LEFT: GLenum = 0x8CA2;
4347 #[doc = "`GL_VALIDATE_STATUS: GLenum = 0x8B83`"]
4348 #[doc = "* **Group:** ProgramPropertyARB"]
4349 pub const GL_VALIDATE_STATUS: GLenum = 0x8B83;
4350 #[doc = "`GL_VENDOR: GLenum = 0x1F00`"]
4351 #[doc = "* **Group:** StringName"]
4352 pub const GL_VENDOR: GLenum = 0x1F00;
4353 #[doc = "`GL_VERSION: GLenum = 0x1F02`"]
4354 #[doc = "* **Group:** StringName"]
4355 pub const GL_VERSION: GLenum = 0x1F02;
4356 #[doc = "`GL_VERTEX_ARRAY: GLenum = 0x8074`"]
4357 #[doc = "* **Groups:** ObjectIdentifier, EnableCap, GetPName"]
4358 pub const GL_VERTEX_ARRAY: GLenum = 0x8074;
4359 #[doc = "`GL_VERTEX_ARRAY_BINDING: GLenum = 0x85B5`"]
4360 #[doc = "* **Group:** GetPName"]
4361 pub const GL_VERTEX_ARRAY_BINDING: GLenum = 0x85B5;
4362 #[doc = "`GL_VERTEX_ARRAY_BINDING_APPLE: GLenum = 0x85B5`"]
4363 pub const GL_VERTEX_ARRAY_BINDING_APPLE: GLenum = 0x85B5;
4364 #[doc = "`GL_VERTEX_ARRAY_BINDING_OES: GLenum = 0x85B5`"]
4365 pub const GL_VERTEX_ARRAY_BINDING_OES: GLenum = 0x85B5;
4366 #[doc = "`GL_VERTEX_ARRAY_KHR: GLenum = 0x8074`"]
4367 pub const GL_VERTEX_ARRAY_KHR: GLenum = 0x8074;
4368 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT: GLbitfield = 0x00000001`"]
4369 #[doc = "* **Group:** MemoryBarrierMask"]
4370 pub const GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT: GLbitfield = 0x00000001;
4371 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum = 0x889F`"]
4372 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB"]
4373 pub const GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum = 0x889F;
4374 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_DIVISOR: GLenum = 0x88FE`"]
4375 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4376 pub const GL_VERTEX_ATTRIB_ARRAY_DIVISOR: GLenum = 0x88FE;
4377 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB: GLenum = 0x88FE`"]
4378 pub const GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB: GLenum = 0x88FE;
4379 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_ENABLED: GLenum = 0x8622`"]
4380 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4381 pub const GL_VERTEX_ATTRIB_ARRAY_ENABLED: GLenum = 0x8622;
4382 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_INTEGER: GLenum = 0x88FD`"]
4383 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4384 pub const GL_VERTEX_ATTRIB_ARRAY_INTEGER: GLenum = 0x88FD;
4385 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_LONG: GLenum = 0x874E`"]
4386 #[doc = "* **Groups:** VertexArrayPName, VertexAttribPropertyARB"]
4387 pub const GL_VERTEX_ATTRIB_ARRAY_LONG: GLenum = 0x874E;
4388 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum = 0x886A`"]
4389 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4390 pub const GL_VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum = 0x886A;
4391 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_POINTER: GLenum = 0x8645`"]
4392 #[doc = "* **Group:** VertexAttribPointerPropertyARB"]
4393 pub const GL_VERTEX_ATTRIB_ARRAY_POINTER: GLenum = 0x8645;
4394 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_SIZE: GLenum = 0x8623`"]
4395 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4396 pub const GL_VERTEX_ATTRIB_ARRAY_SIZE: GLenum = 0x8623;
4397 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_STRIDE: GLenum = 0x8624`"]
4398 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4399 pub const GL_VERTEX_ATTRIB_ARRAY_STRIDE: GLenum = 0x8624;
4400 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_TYPE: GLenum = 0x8625`"]
4401 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4402 pub const GL_VERTEX_ATTRIB_ARRAY_TYPE: GLenum = 0x8625;
4403 #[doc = "`GL_VERTEX_ATTRIB_BINDING: GLenum = 0x82D4`"]
4404 #[doc = "* **Group:** VertexAttribPropertyARB"]
4405 pub const GL_VERTEX_ATTRIB_BINDING: GLenum = 0x82D4;
4406 #[doc = "`GL_VERTEX_ATTRIB_RELATIVE_OFFSET: GLenum = 0x82D5`"]
4407 #[doc = "* **Groups:** VertexArrayPName, VertexAttribPropertyARB"]
4408 pub const GL_VERTEX_ATTRIB_RELATIVE_OFFSET: GLenum = 0x82D5;
4409 #[doc = "`GL_VERTEX_BINDING_BUFFER: GLenum = 0x8F4F`"]
4410 pub const GL_VERTEX_BINDING_BUFFER: GLenum = 0x8F4F;
4411 #[doc = "`GL_VERTEX_BINDING_DIVISOR: GLenum = 0x82D6`"]
4412 #[doc = "* **Group:** GetPName"]
4413 pub const GL_VERTEX_BINDING_DIVISOR: GLenum = 0x82D6;
4414 #[doc = "`GL_VERTEX_BINDING_OFFSET: GLenum = 0x82D7`"]
4415 #[doc = "* **Group:** GetPName"]
4416 pub const GL_VERTEX_BINDING_OFFSET: GLenum = 0x82D7;
4417 #[doc = "`GL_VERTEX_BINDING_STRIDE: GLenum = 0x82D8`"]
4418 #[doc = "* **Group:** GetPName"]
4419 pub const GL_VERTEX_BINDING_STRIDE: GLenum = 0x82D8;
4420 #[doc = "`GL_VERTEX_PROGRAM_POINT_SIZE: GLenum = 0x8642`"]
4421 pub const GL_VERTEX_PROGRAM_POINT_SIZE: GLenum = 0x8642;
4422 #[doc = "`GL_VERTEX_SHADER: GLenum = 0x8B31`"]
4423 #[doc = "* **Groups:** PipelineParameterName, ShaderType"]
4424 pub const GL_VERTEX_SHADER: GLenum = 0x8B31;
4425 #[doc = "`GL_VERTEX_SHADER_BIT: GLbitfield = 0x00000001`"]
4426 #[doc = "* **Group:** UseProgramStageMask"]
4427 pub const GL_VERTEX_SHADER_BIT: GLbitfield = 0x00000001;
4428 #[doc = "`GL_VERTEX_SHADER_INVOCATIONS: GLenum = 0x82F0`"]
4429 #[doc = "* **Group:** QueryTarget"]
4430 pub const GL_VERTEX_SHADER_INVOCATIONS: GLenum = 0x82F0;
4431 #[doc = "`GL_VERTEX_SUBROUTINE: GLenum = 0x92E8`"]
4432 #[doc = "* **Group:** ProgramInterface"]
4433 pub const GL_VERTEX_SUBROUTINE: GLenum = 0x92E8;
4434 #[doc = "`GL_VERTEX_SUBROUTINE_UNIFORM: GLenum = 0x92EE`"]
4435 #[doc = "* **Group:** ProgramInterface"]
4436 pub const GL_VERTEX_SUBROUTINE_UNIFORM: GLenum = 0x92EE;
4437 #[doc = "`GL_VERTEX_TEXTURE: GLenum = 0x829B`"]
4438 #[doc = "* **Group:** InternalFormatPName"]
4439 pub const GL_VERTEX_TEXTURE: GLenum = 0x829B;
4440 #[doc = "`GL_VERTICES_SUBMITTED: GLenum = 0x82EE`"]
4441 #[doc = "* **Group:** QueryTarget"]
4442 pub const GL_VERTICES_SUBMITTED: GLenum = 0x82EE;
4443 #[doc = "`GL_VIEWPORT: GLenum = 0x0BA2`"]
4444 #[doc = "* **Group:** GetPName"]
4445 pub const GL_VIEWPORT: GLenum = 0x0BA2;
4446 #[doc = "`GL_VIEWPORT_BOUNDS_RANGE: GLenum = 0x825D`"]
4447 #[doc = "* **Group:** GetPName"]
4448 pub const GL_VIEWPORT_BOUNDS_RANGE: GLenum = 0x825D;
4449 #[doc = "`GL_VIEWPORT_INDEX_PROVOKING_VERTEX: GLenum = 0x825F`"]
4450 #[doc = "* **Group:** GetPName"]
4451 pub const GL_VIEWPORT_INDEX_PROVOKING_VERTEX: GLenum = 0x825F;
4452 #[doc = "`GL_VIEWPORT_SUBPIXEL_BITS: GLenum = 0x825C`"]
4453 #[doc = "* **Group:** GetPName"]
4454 pub const GL_VIEWPORT_SUBPIXEL_BITS: GLenum = 0x825C;
4455 #[doc = "`GL_VIEW_CLASS_128_BITS: GLenum = 0x82C4`"]
4456 pub const GL_VIEW_CLASS_128_BITS: GLenum = 0x82C4;
4457 #[doc = "`GL_VIEW_CLASS_16_BITS: GLenum = 0x82CA`"]
4458 pub const GL_VIEW_CLASS_16_BITS: GLenum = 0x82CA;
4459 #[doc = "`GL_VIEW_CLASS_24_BITS: GLenum = 0x82C9`"]
4460 pub const GL_VIEW_CLASS_24_BITS: GLenum = 0x82C9;
4461 #[doc = "`GL_VIEW_CLASS_32_BITS: GLenum = 0x82C8`"]
4462 pub const GL_VIEW_CLASS_32_BITS: GLenum = 0x82C8;
4463 #[doc = "`GL_VIEW_CLASS_48_BITS: GLenum = 0x82C7`"]
4464 pub const GL_VIEW_CLASS_48_BITS: GLenum = 0x82C7;
4465 #[doc = "`GL_VIEW_CLASS_64_BITS: GLenum = 0x82C6`"]
4466 pub const GL_VIEW_CLASS_64_BITS: GLenum = 0x82C6;
4467 #[doc = "`GL_VIEW_CLASS_8_BITS: GLenum = 0x82CB`"]
4468 pub const GL_VIEW_CLASS_8_BITS: GLenum = 0x82CB;
4469 #[doc = "`GL_VIEW_CLASS_96_BITS: GLenum = 0x82C5`"]
4470 pub const GL_VIEW_CLASS_96_BITS: GLenum = 0x82C5;
4471 #[doc = "`GL_VIEW_CLASS_BPTC_FLOAT: GLenum = 0x82D3`"]
4472 pub const GL_VIEW_CLASS_BPTC_FLOAT: GLenum = 0x82D3;
4473 #[doc = "`GL_VIEW_CLASS_BPTC_UNORM: GLenum = 0x82D2`"]
4474 pub const GL_VIEW_CLASS_BPTC_UNORM: GLenum = 0x82D2;
4475 #[doc = "`GL_VIEW_CLASS_RGTC1_RED: GLenum = 0x82D0`"]
4476 pub const GL_VIEW_CLASS_RGTC1_RED: GLenum = 0x82D0;
4477 #[doc = "`GL_VIEW_CLASS_RGTC2_RG: GLenum = 0x82D1`"]
4478 pub const GL_VIEW_CLASS_RGTC2_RG: GLenum = 0x82D1;
4479 #[doc = "`GL_VIEW_CLASS_S3TC_DXT1_RGB: GLenum = 0x82CC`"]
4480 pub const GL_VIEW_CLASS_S3TC_DXT1_RGB: GLenum = 0x82CC;
4481 #[doc = "`GL_VIEW_CLASS_S3TC_DXT1_RGBA: GLenum = 0x82CD`"]
4482 pub const GL_VIEW_CLASS_S3TC_DXT1_RGBA: GLenum = 0x82CD;
4483 #[doc = "`GL_VIEW_CLASS_S3TC_DXT3_RGBA: GLenum = 0x82CE`"]
4484 pub const GL_VIEW_CLASS_S3TC_DXT3_RGBA: GLenum = 0x82CE;
4485 #[doc = "`GL_VIEW_CLASS_S3TC_DXT5_RGBA: GLenum = 0x82CF`"]
4486 pub const GL_VIEW_CLASS_S3TC_DXT5_RGBA: GLenum = 0x82CF;
4487 #[doc = "`GL_VIEW_COMPATIBILITY_CLASS: GLenum = 0x82B6`"]
4488 #[doc = "* **Group:** InternalFormatPName"]
4489 pub const GL_VIEW_COMPATIBILITY_CLASS: GLenum = 0x82B6;
4490 #[doc = "`GL_WAIT_FAILED: GLenum = 0x911D`"]
4491 #[doc = "* **Group:** SyncStatus"]
4492 pub const GL_WAIT_FAILED: GLenum = 0x911D;
4493 #[doc = "`GL_WRITE_ONLY: GLenum = 0x88B9`"]
4494 #[doc = "* **Group:** BufferAccessARB"]
4495 pub const GL_WRITE_ONLY: GLenum = 0x88B9;
4496 #[doc = "`GL_XOR: GLenum = 0x1506`"]
4497 #[doc = "* **Group:** LogicOp"]
4498 pub const GL_XOR: GLenum = 0x1506;
4499 #[doc = "`GL_ZERO: GLenum = 0`"]
4500 #[doc = "* **Groups:** TextureSwizzle, StencilOp, BlendingFactor"]
4501 pub const GL_ZERO: GLenum = 0;
4502 #[doc = "`GL_ZERO_TO_ONE: GLenum = 0x935F`"]
4503 #[doc = "* **Group:** ClipControlDepth"]
4504 pub const GL_ZERO_TO_ONE: GLenum = 0x935F;
4505}
4506
4507#[cold]
4512#[inline(never)]
4513#[allow(dead_code)]
4514fn go_panic_because_fn_not_loaded(name: &str) -> ! {
4515 panic!("called {name} but it was not loaded.", name = name)
4516}
4517
4518#[inline(never)]
4524#[allow(dead_code)]
4525fn load_dyn_name_atomic_ptr(
4526 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
4527 fn_name: &[u8],
4528 ptr: &APcv,
4529) -> bool {
4530 debug_assert_eq!(*fn_name.last().unwrap(), 0);
4533 let p: *mut c_void = get_proc_address(fn_name.as_ptr() as *const c_char);
4534 let p_usize = p as usize;
4535 if p_usize == core::usize::MAX || p_usize < 8 {
4540 ptr.store(null_mut(), RELAX);
4541 false
4542 } else {
4543 ptr.store(p, RELAX);
4544 true
4545 }
4546}
4547
4548#[cfg(feature = "debug_automatic_glGetError")]
4550#[inline(never)]
4551fn report_error_code_from(name: &str, err: GLenum) {
4552 match err {
4553 GL_NO_ERROR => return,
4554 GL_INVALID_ENUM => error!("Invalid Enum to {name}.", name = name),
4555 GL_INVALID_VALUE => error!("Invalid Value to {name}.", name = name),
4556 GL_INVALID_OPERATION => error!("Invalid Operation to {name}.", name = name),
4557 GL_INVALID_FRAMEBUFFER_OPERATION => {
4558 error!("Invalid Framebuffer Operation to {name}.", name = name)
4559 }
4560 GL_OUT_OF_MEMORY => error!("Out of Memory in {name}.", name = name),
4561 GL_STACK_UNDERFLOW => error!("Stack Underflow in {name}.", name = name),
4562 GL_STACK_OVERFLOW => error!("Stack Overflow in {name}.", name = name),
4563 unknown => error!(
4564 "Unknown error code {unknown} to {name}.",
4565 name = name,
4566 unknown = unknown
4567 ),
4568 }
4569}
4570
4571#[inline(always)]
4572#[allow(dead_code)]
4573unsafe fn call_atomic_ptr_0arg<Ret>(name: &str, ptr: &APcv) -> Ret {
4574 let p = ptr.load(RELAX);
4575 match transmute::<*mut c_void, Option<extern "system" fn() -> Ret>>(p) {
4576 Some(fn_p) => fn_p(),
4577 None => go_panic_because_fn_not_loaded(name),
4578 }
4579}
4580
4581#[inline(always)]
4582#[allow(dead_code)]
4583unsafe fn call_atomic_ptr_1arg<Ret, A>(name: &str, ptr: &APcv, a: A) -> Ret {
4584 let p = ptr.load(RELAX);
4585 match transmute::<*mut c_void, Option<extern "system" fn(A) -> Ret>>(p) {
4586 Some(fn_p) => fn_p(a),
4587 None => go_panic_because_fn_not_loaded(name),
4588 }
4589}
4590
4591#[inline(always)]
4592#[allow(dead_code)]
4593unsafe fn call_atomic_ptr_2arg<Ret, A, B>(name: &str, ptr: &APcv, a: A, b: B) -> Ret {
4594 let p = ptr.load(RELAX);
4595 match transmute::<*mut c_void, Option<extern "system" fn(A, B) -> Ret>>(p) {
4596 Some(fn_p) => fn_p(a, b),
4597 None => go_panic_because_fn_not_loaded(name),
4598 }
4599}
4600
4601#[inline(always)]
4602#[allow(dead_code)]
4603unsafe fn call_atomic_ptr_3arg<Ret, A, B, C>(name: &str, ptr: &APcv, a: A, b: B, c: C) -> Ret {
4604 let p = ptr.load(RELAX);
4605 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C) -> Ret>>(p) {
4606 Some(fn_p) => fn_p(a, b, c),
4607 None => go_panic_because_fn_not_loaded(name),
4608 }
4609}
4610
4611#[inline(always)]
4612#[allow(dead_code)]
4613unsafe fn call_atomic_ptr_4arg<Ret, A, B, C, D>(
4614 name: &str,
4615 ptr: &APcv,
4616 a: A,
4617 b: B,
4618 c: C,
4619 d: D,
4620) -> Ret {
4621 let p = ptr.load(RELAX);
4622 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D) -> Ret>>(p) {
4623 Some(fn_p) => fn_p(a, b, c, d),
4624 None => go_panic_because_fn_not_loaded(name),
4625 }
4626}
4627
4628#[inline(always)]
4629#[allow(dead_code)]
4630unsafe fn call_atomic_ptr_5arg<Ret, A, B, C, D, E>(
4631 name: &str,
4632 ptr: &APcv,
4633 a: A,
4634 b: B,
4635 c: C,
4636 d: D,
4637 e: E,
4638) -> Ret {
4639 let p = ptr.load(RELAX);
4640 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E) -> Ret>>(p) {
4641 Some(fn_p) => fn_p(a, b, c, d, e),
4642 None => go_panic_because_fn_not_loaded(name),
4643 }
4644}
4645
4646#[inline(always)]
4647#[allow(dead_code)]
4648unsafe fn call_atomic_ptr_6arg<Ret, A, B, C, D, E, F>(
4649 name: &str,
4650 ptr: &APcv,
4651 a: A,
4652 b: B,
4653 c: C,
4654 d: D,
4655 e: E,
4656 f: F,
4657) -> Ret {
4658 let p = ptr.load(RELAX);
4659 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E, F) -> Ret>>(p) {
4660 Some(fn_p) => fn_p(a, b, c, d, e, f),
4661 None => go_panic_because_fn_not_loaded(name),
4662 }
4663}
4664
4665#[inline(always)]
4666#[allow(dead_code)]
4667unsafe fn call_atomic_ptr_7arg<Ret, A, B, C, D, E, F, G>(
4668 name: &str,
4669 ptr: &APcv,
4670 a: A,
4671 b: B,
4672 c: C,
4673 d: D,
4674 e: E,
4675 f: F,
4676 g: G,
4677) -> Ret {
4678 let p = ptr.load(RELAX);
4679 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E, F, G) -> Ret>>(p) {
4680 Some(fn_p) => fn_p(a, b, c, d, e, f, g),
4681 None => go_panic_because_fn_not_loaded(name),
4682 }
4683}
4684
4685#[inline(always)]
4686#[allow(dead_code)]
4687unsafe fn call_atomic_ptr_8arg<Ret, A, B, C, D, E, F, G, H>(
4688 name: &str,
4689 ptr: &APcv,
4690 a: A,
4691 b: B,
4692 c: C,
4693 d: D,
4694 e: E,
4695 f: F,
4696 g: G,
4697 h: H,
4698) -> Ret {
4699 let p = ptr.load(RELAX);
4700 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E, F, G, H) -> Ret>>(p) {
4701 Some(fn_p) => fn_p(a, b, c, d, e, f, g, h),
4702 None => go_panic_because_fn_not_loaded(name),
4703 }
4704}
4705
4706#[inline(always)]
4707#[allow(dead_code)]
4708unsafe fn call_atomic_ptr_9arg<Ret, A, B, C, D, E, F, G, H, I>(
4709 name: &str,
4710 ptr: &APcv,
4711 a: A,
4712 b: B,
4713 c: C,
4714 d: D,
4715 e: E,
4716 f: F,
4717 g: G,
4718 h: H,
4719 i: I,
4720) -> Ret {
4721 let p = ptr.load(RELAX);
4722 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E, F, G, H, I) -> Ret>>(p)
4723 {
4724 Some(fn_p) => fn_p(a, b, c, d, e, f, g, h, i),
4725 None => go_panic_because_fn_not_loaded(name),
4726 }
4727}
4728
4729#[inline(always)]
4730#[allow(dead_code)]
4731unsafe fn call_atomic_ptr_10arg<Ret, A, B, C, D, E, F, G, H, I, J>(
4732 name: &str,
4733 ptr: &APcv,
4734 a: A,
4735 b: B,
4736 c: C,
4737 d: D,
4738 e: E,
4739 f: F,
4740 g: G,
4741 h: H,
4742 i: I,
4743 j: J,
4744) -> Ret {
4745 let p = ptr.load(RELAX);
4746 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E, F, G, H, I, J) -> Ret>>(
4747 p,
4748 ) {
4749 Some(fn_p) => fn_p(a, b, c, d, e, f, g, h, i, j),
4750 None => go_panic_because_fn_not_loaded(name),
4751 }
4752}
4753
4754#[inline(always)]
4755#[allow(dead_code)]
4756unsafe fn call_atomic_ptr_11arg<Ret, A, B, C, D, E, F, G, H, I, J, K>(
4757 name: &str,
4758 ptr: &APcv,
4759 a: A,
4760 b: B,
4761 c: C,
4762 d: D,
4763 e: E,
4764 f: F,
4765 g: G,
4766 h: H,
4767 i: I,
4768 j: J,
4769 k: K,
4770) -> Ret {
4771 let p = ptr.load(RELAX);
4772 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret>>(
4773 p,
4774 ) {
4775 Some(fn_p) => fn_p(a, b, c, d, e, f, g, h, i, j, k),
4776 None => go_panic_because_fn_not_loaded(name),
4777 }
4778}
4779
4780#[inline(always)]
4781#[allow(dead_code)]
4782unsafe fn call_atomic_ptr_12arg<Ret, A, B, C, D, E, F, G, H, I, J, K, L>(
4783 name: &str,
4784 ptr: &APcv,
4785 a: A,
4786 b: B,
4787 c: C,
4788 d: D,
4789 e: E,
4790 f: F,
4791 g: G,
4792 h: H,
4793 i: I,
4794 j: J,
4795 k: K,
4796 l: L,
4797) -> Ret {
4798 let p = ptr.load(RELAX);
4799 match transmute::<
4800 *mut c_void,
4801 Option<extern "system" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret>,
4802 >(p)
4803 {
4804 Some(fn_p) => fn_p(a, b, c, d, e, f, g, h, i, j, k, l),
4805 None => go_panic_because_fn_not_loaded(name),
4806 }
4807}
4808
4809#[inline(always)]
4810#[allow(dead_code)]
4811unsafe fn call_atomic_ptr_15arg<Ret, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O>(
4812 name: &str,
4813 ptr: &APcv,
4814 a: A,
4815 b: B,
4816 c: C,
4817 d: D,
4818 e: E,
4819 f: F,
4820 g: G,
4821 h: H,
4822 i: I,
4823 j: J,
4824 k: K,
4825 l: L,
4826 m: M,
4827 n: N,
4828 o: O,
4829) -> Ret {
4830 let p = ptr.load(RELAX);
4831 match transmute::<
4832 *mut c_void,
4833 Option<extern "system" fn(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O) -> Ret>,
4834 >(p)
4835 {
4836 Some(fn_p) => fn_p(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o),
4837 None => go_panic_because_fn_not_loaded(name),
4838 }
4839}
4840
4841pub use struct_commands::*;
4842pub mod struct_commands {
4843 use super::*;
4845 impl GlFns {
4846 pub unsafe fn load_with<F>(mut get_proc_address: F) -> Self
4848 where
4849 F: FnMut(*const c_char) -> *mut c_void,
4850 {
4851 let out: Self = core::mem::zeroed();
4854 out.load_all_with_dyn(&mut get_proc_address);
4855 out
4856 }
4857
4858 #[cfg(feature = "debug_automatic_glGetError")]
4859 #[inline(never)]
4860 unsafe fn automatic_glGetError(&self, name: &str) {
4861 let mut err = self.GetError();
4862 while err != GL_NO_ERROR {
4863 report_error_code_from(name, err);
4864 err = self.GetError();
4865 }
4866 }
4867
4868 #[doc(hidden)]
4870 #[inline(never)]
4871 pub unsafe fn load_all_with_dyn(
4872 &self,
4873 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
4874 ) {
4875 self.ActiveShaderProgram_load_with_dyn(get_proc_address);
4876 self.ActiveTexture_load_with_dyn(get_proc_address);
4877 self.AttachShader_load_with_dyn(get_proc_address);
4878 self.BeginConditionalRender_load_with_dyn(get_proc_address);
4879 self.BeginQuery_load_with_dyn(get_proc_address);
4880 {
4881 self.BeginQueryEXT_load_with_dyn(get_proc_address);
4882 }
4883 self.BeginQueryIndexed_load_with_dyn(get_proc_address);
4884 self.BeginTransformFeedback_load_with_dyn(get_proc_address);
4885 self.BindAttribLocation_load_with_dyn(get_proc_address);
4886 self.BindBuffer_load_with_dyn(get_proc_address);
4887 self.BindBufferBase_load_with_dyn(get_proc_address);
4888 self.BindBufferRange_load_with_dyn(get_proc_address);
4889 self.BindBuffersBase_load_with_dyn(get_proc_address);
4890 self.BindBuffersRange_load_with_dyn(get_proc_address);
4891 self.BindFragDataLocation_load_with_dyn(get_proc_address);
4892 self.BindFragDataLocationIndexed_load_with_dyn(get_proc_address);
4893 self.BindFramebuffer_load_with_dyn(get_proc_address);
4894 self.BindImageTexture_load_with_dyn(get_proc_address);
4895 self.BindImageTextures_load_with_dyn(get_proc_address);
4896 self.BindProgramPipeline_load_with_dyn(get_proc_address);
4897 self.BindRenderbuffer_load_with_dyn(get_proc_address);
4898 self.BindSampler_load_with_dyn(get_proc_address);
4899 self.BindSamplers_load_with_dyn(get_proc_address);
4900 self.BindTexture_load_with_dyn(get_proc_address);
4901 self.BindTextureUnit_load_with_dyn(get_proc_address);
4902 self.BindTextures_load_with_dyn(get_proc_address);
4903 self.BindTransformFeedback_load_with_dyn(get_proc_address);
4904 self.BindVertexArray_load_with_dyn(get_proc_address);
4905 {
4906 self.BindVertexArrayAPPLE_load_with_dyn(get_proc_address);
4907 }
4908 {
4909 self.BindVertexArrayOES_load_with_dyn(get_proc_address);
4910 }
4911 self.BindVertexBuffer_load_with_dyn(get_proc_address);
4912 self.BindVertexBuffers_load_with_dyn(get_proc_address);
4913 self.BlendBarrier_load_with_dyn(get_proc_address);
4914 self.BlendColor_load_with_dyn(get_proc_address);
4915 self.BlendEquation_load_with_dyn(get_proc_address);
4916 self.BlendEquationSeparate_load_with_dyn(get_proc_address);
4917 self.BlendEquationSeparatei_load_with_dyn(get_proc_address);
4918 self.BlendEquationi_load_with_dyn(get_proc_address);
4919 self.BlendFunc_load_with_dyn(get_proc_address);
4920 self.BlendFuncSeparate_load_with_dyn(get_proc_address);
4921 self.BlendFuncSeparatei_load_with_dyn(get_proc_address);
4922 self.BlendFunci_load_with_dyn(get_proc_address);
4923 self.BlitFramebuffer_load_with_dyn(get_proc_address);
4924 self.BlitNamedFramebuffer_load_with_dyn(get_proc_address);
4925 self.BufferData_load_with_dyn(get_proc_address);
4926 self.BufferStorage_load_with_dyn(get_proc_address);
4927 {
4928 self.BufferStorageEXT_load_with_dyn(get_proc_address);
4929 }
4930 self.BufferSubData_load_with_dyn(get_proc_address);
4931 self.CheckFramebufferStatus_load_with_dyn(get_proc_address);
4932 self.CheckNamedFramebufferStatus_load_with_dyn(get_proc_address);
4933 self.ClampColor_load_with_dyn(get_proc_address);
4934 self.Clear_load_with_dyn(get_proc_address);
4935 self.ClearBufferData_load_with_dyn(get_proc_address);
4936 self.ClearBufferSubData_load_with_dyn(get_proc_address);
4937 self.ClearBufferfi_load_with_dyn(get_proc_address);
4938 self.ClearBufferfv_load_with_dyn(get_proc_address);
4939 self.ClearBufferiv_load_with_dyn(get_proc_address);
4940 self.ClearBufferuiv_load_with_dyn(get_proc_address);
4941 self.ClearColor_load_with_dyn(get_proc_address);
4942 self.ClearDepth_load_with_dyn(get_proc_address);
4943 self.ClearDepthf_load_with_dyn(get_proc_address);
4944 self.ClearNamedBufferData_load_with_dyn(get_proc_address);
4945 self.ClearNamedBufferSubData_load_with_dyn(get_proc_address);
4946 self.ClearNamedFramebufferfi_load_with_dyn(get_proc_address);
4947 self.ClearNamedFramebufferfv_load_with_dyn(get_proc_address);
4948 self.ClearNamedFramebufferiv_load_with_dyn(get_proc_address);
4949 self.ClearNamedFramebufferuiv_load_with_dyn(get_proc_address);
4950 self.ClearStencil_load_with_dyn(get_proc_address);
4951 self.ClearTexImage_load_with_dyn(get_proc_address);
4952 self.ClearTexSubImage_load_with_dyn(get_proc_address);
4953 self.ClientWaitSync_load_with_dyn(get_proc_address);
4954 self.ClipControl_load_with_dyn(get_proc_address);
4955 self.ColorMask_load_with_dyn(get_proc_address);
4956 {
4957 self.ColorMaskIndexedEXT_load_with_dyn(get_proc_address);
4958 }
4959 self.ColorMaski_load_with_dyn(get_proc_address);
4960 self.CompileShader_load_with_dyn(get_proc_address);
4961 self.CompressedTexImage1D_load_with_dyn(get_proc_address);
4962 self.CompressedTexImage2D_load_with_dyn(get_proc_address);
4963 self.CompressedTexImage3D_load_with_dyn(get_proc_address);
4964 self.CompressedTexSubImage1D_load_with_dyn(get_proc_address);
4965 self.CompressedTexSubImage2D_load_with_dyn(get_proc_address);
4966 self.CompressedTexSubImage3D_load_with_dyn(get_proc_address);
4967 self.CompressedTextureSubImage1D_load_with_dyn(get_proc_address);
4968 self.CompressedTextureSubImage2D_load_with_dyn(get_proc_address);
4969 self.CompressedTextureSubImage3D_load_with_dyn(get_proc_address);
4970 self.CopyBufferSubData_load_with_dyn(get_proc_address);
4971 {
4972 self.CopyBufferSubDataNV_load_with_dyn(get_proc_address);
4973 }
4974 self.CopyImageSubData_load_with_dyn(get_proc_address);
4975 self.CopyNamedBufferSubData_load_with_dyn(get_proc_address);
4976 self.CopyTexImage1D_load_with_dyn(get_proc_address);
4977 self.CopyTexImage2D_load_with_dyn(get_proc_address);
4978 self.CopyTexSubImage1D_load_with_dyn(get_proc_address);
4979 self.CopyTexSubImage2D_load_with_dyn(get_proc_address);
4980 self.CopyTexSubImage3D_load_with_dyn(get_proc_address);
4981 self.CopyTextureSubImage1D_load_with_dyn(get_proc_address);
4982 self.CopyTextureSubImage2D_load_with_dyn(get_proc_address);
4983 self.CopyTextureSubImage3D_load_with_dyn(get_proc_address);
4984 self.CreateBuffers_load_with_dyn(get_proc_address);
4985 self.CreateFramebuffers_load_with_dyn(get_proc_address);
4986 self.CreateProgram_load_with_dyn(get_proc_address);
4987 self.CreateProgramPipelines_load_with_dyn(get_proc_address);
4988 self.CreateQueries_load_with_dyn(get_proc_address);
4989 self.CreateRenderbuffers_load_with_dyn(get_proc_address);
4990 self.CreateSamplers_load_with_dyn(get_proc_address);
4991 self.CreateShader_load_with_dyn(get_proc_address);
4992 self.CreateShaderProgramv_load_with_dyn(get_proc_address);
4993 self.CreateTextures_load_with_dyn(get_proc_address);
4994 self.CreateTransformFeedbacks_load_with_dyn(get_proc_address);
4995 self.CreateVertexArrays_load_with_dyn(get_proc_address);
4996 self.CullFace_load_with_dyn(get_proc_address);
4997 self.DebugMessageCallback_load_with_dyn(get_proc_address);
4998 {
4999 self.DebugMessageCallbackARB_load_with_dyn(get_proc_address);
5000 }
5001 {
5002 self.DebugMessageCallbackKHR_load_with_dyn(get_proc_address);
5003 }
5004 self.DebugMessageControl_load_with_dyn(get_proc_address);
5005 {
5006 self.DebugMessageControlARB_load_with_dyn(get_proc_address);
5007 }
5008 {
5009 self.DebugMessageControlKHR_load_with_dyn(get_proc_address);
5010 }
5011 self.DebugMessageInsert_load_with_dyn(get_proc_address);
5012 {
5013 self.DebugMessageInsertARB_load_with_dyn(get_proc_address);
5014 }
5015 {
5016 self.DebugMessageInsertKHR_load_with_dyn(get_proc_address);
5017 }
5018 self.DeleteBuffers_load_with_dyn(get_proc_address);
5019 self.DeleteFramebuffers_load_with_dyn(get_proc_address);
5020 self.DeleteProgram_load_with_dyn(get_proc_address);
5021 self.DeleteProgramPipelines_load_with_dyn(get_proc_address);
5022 self.DeleteQueries_load_with_dyn(get_proc_address);
5023 {
5024 self.DeleteQueriesEXT_load_with_dyn(get_proc_address);
5025 }
5026 self.DeleteRenderbuffers_load_with_dyn(get_proc_address);
5027 self.DeleteSamplers_load_with_dyn(get_proc_address);
5028 self.DeleteShader_load_with_dyn(get_proc_address);
5029 self.DeleteSync_load_with_dyn(get_proc_address);
5030 self.DeleteTextures_load_with_dyn(get_proc_address);
5031 self.DeleteTransformFeedbacks_load_with_dyn(get_proc_address);
5032 self.DeleteVertexArrays_load_with_dyn(get_proc_address);
5033 {
5034 self.DeleteVertexArraysAPPLE_load_with_dyn(get_proc_address);
5035 }
5036 {
5037 self.DeleteVertexArraysOES_load_with_dyn(get_proc_address);
5038 }
5039 self.DepthFunc_load_with_dyn(get_proc_address);
5040 self.DepthMask_load_with_dyn(get_proc_address);
5041 self.DepthRange_load_with_dyn(get_proc_address);
5042 self.DepthRangeArrayv_load_with_dyn(get_proc_address);
5043 self.DepthRangeIndexed_load_with_dyn(get_proc_address);
5044 self.DepthRangef_load_with_dyn(get_proc_address);
5045 self.DetachShader_load_with_dyn(get_proc_address);
5046 self.Disable_load_with_dyn(get_proc_address);
5047 {
5048 self.DisableIndexedEXT_load_with_dyn(get_proc_address);
5049 }
5050 self.DisableVertexArrayAttrib_load_with_dyn(get_proc_address);
5051 self.DisableVertexAttribArray_load_with_dyn(get_proc_address);
5052 self.Disablei_load_with_dyn(get_proc_address);
5053 self.DispatchCompute_load_with_dyn(get_proc_address);
5054 self.DispatchComputeIndirect_load_with_dyn(get_proc_address);
5055 self.DrawArrays_load_with_dyn(get_proc_address);
5056 self.DrawArraysIndirect_load_with_dyn(get_proc_address);
5057 self.DrawArraysInstanced_load_with_dyn(get_proc_address);
5058 {
5059 self.DrawArraysInstancedARB_load_with_dyn(get_proc_address);
5060 }
5061 self.DrawArraysInstancedBaseInstance_load_with_dyn(get_proc_address);
5062 self.DrawBuffer_load_with_dyn(get_proc_address);
5063 self.DrawBuffers_load_with_dyn(get_proc_address);
5064 self.DrawElements_load_with_dyn(get_proc_address);
5065 self.DrawElementsBaseVertex_load_with_dyn(get_proc_address);
5066 self.DrawElementsIndirect_load_with_dyn(get_proc_address);
5067 self.DrawElementsInstanced_load_with_dyn(get_proc_address);
5068 {
5069 self.DrawElementsInstancedARB_load_with_dyn(get_proc_address);
5070 }
5071 self.DrawElementsInstancedBaseInstance_load_with_dyn(get_proc_address);
5072 self.DrawElementsInstancedBaseVertex_load_with_dyn(get_proc_address);
5073 self.DrawElementsInstancedBaseVertexBaseInstance_load_with_dyn(get_proc_address);
5074 self.DrawRangeElements_load_with_dyn(get_proc_address);
5075 self.DrawRangeElementsBaseVertex_load_with_dyn(get_proc_address);
5076 self.DrawTransformFeedback_load_with_dyn(get_proc_address);
5077 self.DrawTransformFeedbackInstanced_load_with_dyn(get_proc_address);
5078 self.DrawTransformFeedbackStream_load_with_dyn(get_proc_address);
5079 self.DrawTransformFeedbackStreamInstanced_load_with_dyn(get_proc_address);
5080 self.Enable_load_with_dyn(get_proc_address);
5081 {
5082 self.EnableIndexedEXT_load_with_dyn(get_proc_address);
5083 }
5084 self.EnableVertexArrayAttrib_load_with_dyn(get_proc_address);
5085 self.EnableVertexAttribArray_load_with_dyn(get_proc_address);
5086 self.Enablei_load_with_dyn(get_proc_address);
5087 self.EndConditionalRender_load_with_dyn(get_proc_address);
5088 self.EndQuery_load_with_dyn(get_proc_address);
5089 {
5090 self.EndQueryEXT_load_with_dyn(get_proc_address);
5091 }
5092 self.EndQueryIndexed_load_with_dyn(get_proc_address);
5093 self.EndTransformFeedback_load_with_dyn(get_proc_address);
5094 self.FenceSync_load_with_dyn(get_proc_address);
5095 self.Finish_load_with_dyn(get_proc_address);
5096 self.Flush_load_with_dyn(get_proc_address);
5097 self.FlushMappedBufferRange_load_with_dyn(get_proc_address);
5098 self.FlushMappedNamedBufferRange_load_with_dyn(get_proc_address);
5099 self.FramebufferParameteri_load_with_dyn(get_proc_address);
5100 self.FramebufferRenderbuffer_load_with_dyn(get_proc_address);
5101 self.FramebufferTexture_load_with_dyn(get_proc_address);
5102 self.FramebufferTexture1D_load_with_dyn(get_proc_address);
5103 self.FramebufferTexture2D_load_with_dyn(get_proc_address);
5104 self.FramebufferTexture3D_load_with_dyn(get_proc_address);
5105 self.FramebufferTextureLayer_load_with_dyn(get_proc_address);
5106 self.FrontFace_load_with_dyn(get_proc_address);
5107 self.GenBuffers_load_with_dyn(get_proc_address);
5108 self.GenFramebuffers_load_with_dyn(get_proc_address);
5109 self.GenProgramPipelines_load_with_dyn(get_proc_address);
5110 self.GenQueries_load_with_dyn(get_proc_address);
5111 {
5112 self.GenQueriesEXT_load_with_dyn(get_proc_address);
5113 }
5114 self.GenRenderbuffers_load_with_dyn(get_proc_address);
5115 self.GenSamplers_load_with_dyn(get_proc_address);
5116 self.GenTextures_load_with_dyn(get_proc_address);
5117 self.GenTransformFeedbacks_load_with_dyn(get_proc_address);
5118 self.GenVertexArrays_load_with_dyn(get_proc_address);
5119 {
5120 self.GenVertexArraysAPPLE_load_with_dyn(get_proc_address);
5121 }
5122 {
5123 self.GenVertexArraysOES_load_with_dyn(get_proc_address);
5124 }
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 {
5140 self.GetBooleanIndexedvEXT_load_with_dyn(get_proc_address);
5141 }
5142 self.GetBooleani_v_load_with_dyn(get_proc_address);
5143 self.GetBooleanv_load_with_dyn(get_proc_address);
5144 self.GetBufferParameteri64v_load_with_dyn(get_proc_address);
5145 self.GetBufferParameteriv_load_with_dyn(get_proc_address);
5146 self.GetBufferPointerv_load_with_dyn(get_proc_address);
5147 self.GetBufferSubData_load_with_dyn(get_proc_address);
5148 self.GetCompressedTexImage_load_with_dyn(get_proc_address);
5149 self.GetCompressedTextureImage_load_with_dyn(get_proc_address);
5150 self.GetCompressedTextureSubImage_load_with_dyn(get_proc_address);
5151 self.GetDebugMessageLog_load_with_dyn(get_proc_address);
5152 {
5153 self.GetDebugMessageLogARB_load_with_dyn(get_proc_address);
5154 }
5155 {
5156 self.GetDebugMessageLogKHR_load_with_dyn(get_proc_address);
5157 }
5158 self.GetDoublei_v_load_with_dyn(get_proc_address);
5159 self.GetDoublev_load_with_dyn(get_proc_address);
5160 self.GetError_load_with_dyn(get_proc_address);
5161 self.GetFloati_v_load_with_dyn(get_proc_address);
5162 self.GetFloatv_load_with_dyn(get_proc_address);
5163 self.GetFragDataIndex_load_with_dyn(get_proc_address);
5164 self.GetFragDataLocation_load_with_dyn(get_proc_address);
5165 self.GetFramebufferAttachmentParameteriv_load_with_dyn(get_proc_address);
5166 self.GetFramebufferParameteriv_load_with_dyn(get_proc_address);
5167 self.GetGraphicsResetStatus_load_with_dyn(get_proc_address);
5168 self.GetInteger64i_v_load_with_dyn(get_proc_address);
5169 self.GetInteger64v_load_with_dyn(get_proc_address);
5170 {
5171 self.GetInteger64vEXT_load_with_dyn(get_proc_address);
5172 }
5173 {
5174 self.GetIntegerIndexedvEXT_load_with_dyn(get_proc_address);
5175 }
5176 self.GetIntegeri_v_load_with_dyn(get_proc_address);
5177 self.GetIntegerv_load_with_dyn(get_proc_address);
5178 self.GetInternalformati64v_load_with_dyn(get_proc_address);
5179 self.GetInternalformativ_load_with_dyn(get_proc_address);
5180 self.GetMultisamplefv_load_with_dyn(get_proc_address);
5181 self.GetNamedBufferParameteri64v_load_with_dyn(get_proc_address);
5182 self.GetNamedBufferParameteriv_load_with_dyn(get_proc_address);
5183 self.GetNamedBufferPointerv_load_with_dyn(get_proc_address);
5184 self.GetNamedBufferSubData_load_with_dyn(get_proc_address);
5185 self.GetNamedFramebufferAttachmentParameteriv_load_with_dyn(get_proc_address);
5186 self.GetNamedFramebufferParameteriv_load_with_dyn(get_proc_address);
5187 self.GetNamedRenderbufferParameteriv_load_with_dyn(get_proc_address);
5188 self.GetObjectLabel_load_with_dyn(get_proc_address);
5189 {
5190 self.GetObjectLabelKHR_load_with_dyn(get_proc_address);
5191 }
5192 self.GetObjectPtrLabel_load_with_dyn(get_proc_address);
5193 {
5194 self.GetObjectPtrLabelKHR_load_with_dyn(get_proc_address);
5195 }
5196 self.GetPointerv_load_with_dyn(get_proc_address);
5197 {
5198 self.GetPointervKHR_load_with_dyn(get_proc_address);
5199 }
5200 self.GetProgramBinary_load_with_dyn(get_proc_address);
5201 self.GetProgramInfoLog_load_with_dyn(get_proc_address);
5202 self.GetProgramInterfaceiv_load_with_dyn(get_proc_address);
5203 self.GetProgramPipelineInfoLog_load_with_dyn(get_proc_address);
5204 self.GetProgramPipelineiv_load_with_dyn(get_proc_address);
5205 self.GetProgramResourceIndex_load_with_dyn(get_proc_address);
5206 self.GetProgramResourceLocation_load_with_dyn(get_proc_address);
5207 self.GetProgramResourceLocationIndex_load_with_dyn(get_proc_address);
5208 self.GetProgramResourceName_load_with_dyn(get_proc_address);
5209 self.GetProgramResourceiv_load_with_dyn(get_proc_address);
5210 self.GetProgramStageiv_load_with_dyn(get_proc_address);
5211 self.GetProgramiv_load_with_dyn(get_proc_address);
5212 self.GetQueryBufferObjecti64v_load_with_dyn(get_proc_address);
5213 self.GetQueryBufferObjectiv_load_with_dyn(get_proc_address);
5214 self.GetQueryBufferObjectui64v_load_with_dyn(get_proc_address);
5215 self.GetQueryBufferObjectuiv_load_with_dyn(get_proc_address);
5216 self.GetQueryIndexediv_load_with_dyn(get_proc_address);
5217 self.GetQueryObjecti64v_load_with_dyn(get_proc_address);
5218 {
5219 self.GetQueryObjecti64vEXT_load_with_dyn(get_proc_address);
5220 }
5221 self.GetQueryObjectiv_load_with_dyn(get_proc_address);
5222 {
5223 self.GetQueryObjectivEXT_load_with_dyn(get_proc_address);
5224 }
5225 self.GetQueryObjectui64v_load_with_dyn(get_proc_address);
5226 {
5227 self.GetQueryObjectui64vEXT_load_with_dyn(get_proc_address);
5228 }
5229 self.GetQueryObjectuiv_load_with_dyn(get_proc_address);
5230 {
5231 self.GetQueryObjectuivEXT_load_with_dyn(get_proc_address);
5232 }
5233 self.GetQueryiv_load_with_dyn(get_proc_address);
5234 {
5235 self.GetQueryivEXT_load_with_dyn(get_proc_address);
5236 }
5237 self.GetRenderbufferParameteriv_load_with_dyn(get_proc_address);
5238 self.GetSamplerParameterIiv_load_with_dyn(get_proc_address);
5239 self.GetSamplerParameterIuiv_load_with_dyn(get_proc_address);
5240 self.GetSamplerParameterfv_load_with_dyn(get_proc_address);
5241 self.GetSamplerParameteriv_load_with_dyn(get_proc_address);
5242 self.GetShaderInfoLog_load_with_dyn(get_proc_address);
5243 self.GetShaderPrecisionFormat_load_with_dyn(get_proc_address);
5244 self.GetShaderSource_load_with_dyn(get_proc_address);
5245 self.GetShaderiv_load_with_dyn(get_proc_address);
5246 self.GetString_load_with_dyn(get_proc_address);
5247 self.GetStringi_load_with_dyn(get_proc_address);
5248 self.GetSubroutineIndex_load_with_dyn(get_proc_address);
5249 self.GetSubroutineUniformLocation_load_with_dyn(get_proc_address);
5250 self.GetSynciv_load_with_dyn(get_proc_address);
5251 self.GetTexImage_load_with_dyn(get_proc_address);
5252 self.GetTexLevelParameterfv_load_with_dyn(get_proc_address);
5253 self.GetTexLevelParameteriv_load_with_dyn(get_proc_address);
5254 self.GetTexParameterIiv_load_with_dyn(get_proc_address);
5255 self.GetTexParameterIuiv_load_with_dyn(get_proc_address);
5256 self.GetTexParameterfv_load_with_dyn(get_proc_address);
5257 self.GetTexParameteriv_load_with_dyn(get_proc_address);
5258 self.GetTextureImage_load_with_dyn(get_proc_address);
5259 self.GetTextureLevelParameterfv_load_with_dyn(get_proc_address);
5260 self.GetTextureLevelParameteriv_load_with_dyn(get_proc_address);
5261 self.GetTextureParameterIiv_load_with_dyn(get_proc_address);
5262 self.GetTextureParameterIuiv_load_with_dyn(get_proc_address);
5263 self.GetTextureParameterfv_load_with_dyn(get_proc_address);
5264 self.GetTextureParameteriv_load_with_dyn(get_proc_address);
5265 self.GetTextureSubImage_load_with_dyn(get_proc_address);
5266 self.GetTransformFeedbackVarying_load_with_dyn(get_proc_address);
5267 self.GetTransformFeedbacki64_v_load_with_dyn(get_proc_address);
5268 self.GetTransformFeedbacki_v_load_with_dyn(get_proc_address);
5269 self.GetTransformFeedbackiv_load_with_dyn(get_proc_address);
5270 self.GetUniformBlockIndex_load_with_dyn(get_proc_address);
5271 self.GetUniformIndices_load_with_dyn(get_proc_address);
5272 self.GetUniformLocation_load_with_dyn(get_proc_address);
5273 self.GetUniformSubroutineuiv_load_with_dyn(get_proc_address);
5274 self.GetUniformdv_load_with_dyn(get_proc_address);
5275 self.GetUniformfv_load_with_dyn(get_proc_address);
5276 self.GetUniformiv_load_with_dyn(get_proc_address);
5277 self.GetUniformuiv_load_with_dyn(get_proc_address);
5278 self.GetVertexArrayIndexed64iv_load_with_dyn(get_proc_address);
5279 self.GetVertexArrayIndexediv_load_with_dyn(get_proc_address);
5280 self.GetVertexArrayiv_load_with_dyn(get_proc_address);
5281 self.GetVertexAttribIiv_load_with_dyn(get_proc_address);
5282 self.GetVertexAttribIuiv_load_with_dyn(get_proc_address);
5283 self.GetVertexAttribLdv_load_with_dyn(get_proc_address);
5284 self.GetVertexAttribPointerv_load_with_dyn(get_proc_address);
5285 self.GetVertexAttribdv_load_with_dyn(get_proc_address);
5286 self.GetVertexAttribfv_load_with_dyn(get_proc_address);
5287 self.GetVertexAttribiv_load_with_dyn(get_proc_address);
5288 self.GetnCompressedTexImage_load_with_dyn(get_proc_address);
5289 self.GetnTexImage_load_with_dyn(get_proc_address);
5290 self.GetnUniformdv_load_with_dyn(get_proc_address);
5291 self.GetnUniformfv_load_with_dyn(get_proc_address);
5292 self.GetnUniformiv_load_with_dyn(get_proc_address);
5293 self.GetnUniformuiv_load_with_dyn(get_proc_address);
5294 self.Hint_load_with_dyn(get_proc_address);
5295 self.InvalidateBufferData_load_with_dyn(get_proc_address);
5296 self.InvalidateBufferSubData_load_with_dyn(get_proc_address);
5297 self.InvalidateFramebuffer_load_with_dyn(get_proc_address);
5298 self.InvalidateNamedFramebufferData_load_with_dyn(get_proc_address);
5299 self.InvalidateNamedFramebufferSubData_load_with_dyn(get_proc_address);
5300 self.InvalidateSubFramebuffer_load_with_dyn(get_proc_address);
5301 self.InvalidateTexImage_load_with_dyn(get_proc_address);
5302 self.InvalidateTexSubImage_load_with_dyn(get_proc_address);
5303 self.IsBuffer_load_with_dyn(get_proc_address);
5304 self.IsEnabled_load_with_dyn(get_proc_address);
5305 {
5306 self.IsEnabledIndexedEXT_load_with_dyn(get_proc_address);
5307 }
5308 self.IsEnabledi_load_with_dyn(get_proc_address);
5309 self.IsFramebuffer_load_with_dyn(get_proc_address);
5310 self.IsProgram_load_with_dyn(get_proc_address);
5311 self.IsProgramPipeline_load_with_dyn(get_proc_address);
5312 self.IsQuery_load_with_dyn(get_proc_address);
5313 {
5314 self.IsQueryEXT_load_with_dyn(get_proc_address);
5315 }
5316 self.IsRenderbuffer_load_with_dyn(get_proc_address);
5317 self.IsSampler_load_with_dyn(get_proc_address);
5318 self.IsShader_load_with_dyn(get_proc_address);
5319 self.IsSync_load_with_dyn(get_proc_address);
5320 self.IsTexture_load_with_dyn(get_proc_address);
5321 self.IsTransformFeedback_load_with_dyn(get_proc_address);
5322 self.IsVertexArray_load_with_dyn(get_proc_address);
5323 {
5324 self.IsVertexArrayAPPLE_load_with_dyn(get_proc_address);
5325 }
5326 {
5327 self.IsVertexArrayOES_load_with_dyn(get_proc_address);
5328 }
5329 self.LineWidth_load_with_dyn(get_proc_address);
5330 self.LinkProgram_load_with_dyn(get_proc_address);
5331 self.LogicOp_load_with_dyn(get_proc_address);
5332 self.MapBuffer_load_with_dyn(get_proc_address);
5333 self.MapBufferRange_load_with_dyn(get_proc_address);
5334 self.MapNamedBuffer_load_with_dyn(get_proc_address);
5335 self.MapNamedBufferRange_load_with_dyn(get_proc_address);
5336 {
5337 self.MaxShaderCompilerThreadsARB_load_with_dyn(get_proc_address);
5338 }
5339 {
5340 self.MaxShaderCompilerThreadsKHR_load_with_dyn(get_proc_address);
5341 }
5342 self.MemoryBarrier_load_with_dyn(get_proc_address);
5343 self.MemoryBarrierByRegion_load_with_dyn(get_proc_address);
5344 self.MinSampleShading_load_with_dyn(get_proc_address);
5345 self.MultiDrawArrays_load_with_dyn(get_proc_address);
5346 self.MultiDrawArraysIndirect_load_with_dyn(get_proc_address);
5347 self.MultiDrawArraysIndirectCount_load_with_dyn(get_proc_address);
5348 self.MultiDrawElements_load_with_dyn(get_proc_address);
5349 self.MultiDrawElementsBaseVertex_load_with_dyn(get_proc_address);
5350 self.MultiDrawElementsIndirect_load_with_dyn(get_proc_address);
5351 self.MultiDrawElementsIndirectCount_load_with_dyn(get_proc_address);
5352 self.NamedBufferData_load_with_dyn(get_proc_address);
5353 self.NamedBufferStorage_load_with_dyn(get_proc_address);
5354 self.NamedBufferSubData_load_with_dyn(get_proc_address);
5355 self.NamedFramebufferDrawBuffer_load_with_dyn(get_proc_address);
5356 self.NamedFramebufferDrawBuffers_load_with_dyn(get_proc_address);
5357 self.NamedFramebufferParameteri_load_with_dyn(get_proc_address);
5358 self.NamedFramebufferReadBuffer_load_with_dyn(get_proc_address);
5359 self.NamedFramebufferRenderbuffer_load_with_dyn(get_proc_address);
5360 self.NamedFramebufferTexture_load_with_dyn(get_proc_address);
5361 self.NamedFramebufferTextureLayer_load_with_dyn(get_proc_address);
5362 self.NamedRenderbufferStorage_load_with_dyn(get_proc_address);
5363 self.NamedRenderbufferStorageMultisample_load_with_dyn(get_proc_address);
5364 self.ObjectLabel_load_with_dyn(get_proc_address);
5365 {
5366 self.ObjectLabelKHR_load_with_dyn(get_proc_address);
5367 }
5368 self.ObjectPtrLabel_load_with_dyn(get_proc_address);
5369 {
5370 self.ObjectPtrLabelKHR_load_with_dyn(get_proc_address);
5371 }
5372 self.PatchParameterfv_load_with_dyn(get_proc_address);
5373 self.PatchParameteri_load_with_dyn(get_proc_address);
5374 self.PauseTransformFeedback_load_with_dyn(get_proc_address);
5375 self.PixelStoref_load_with_dyn(get_proc_address);
5376 self.PixelStorei_load_with_dyn(get_proc_address);
5377 self.PointParameterf_load_with_dyn(get_proc_address);
5378 self.PointParameterfv_load_with_dyn(get_proc_address);
5379 self.PointParameteri_load_with_dyn(get_proc_address);
5380 self.PointParameteriv_load_with_dyn(get_proc_address);
5381 self.PointSize_load_with_dyn(get_proc_address);
5382 self.PolygonMode_load_with_dyn(get_proc_address);
5383 self.PolygonOffset_load_with_dyn(get_proc_address);
5384 self.PolygonOffsetClamp_load_with_dyn(get_proc_address);
5385 self.PopDebugGroup_load_with_dyn(get_proc_address);
5386 {
5387 self.PopDebugGroupKHR_load_with_dyn(get_proc_address);
5388 }
5389 self.PrimitiveBoundingBox_load_with_dyn(get_proc_address);
5390 self.PrimitiveRestartIndex_load_with_dyn(get_proc_address);
5391 self.ProgramBinary_load_with_dyn(get_proc_address);
5392 self.ProgramParameteri_load_with_dyn(get_proc_address);
5393 self.ProgramUniform1d_load_with_dyn(get_proc_address);
5394 self.ProgramUniform1dv_load_with_dyn(get_proc_address);
5395 self.ProgramUniform1f_load_with_dyn(get_proc_address);
5396 self.ProgramUniform1fv_load_with_dyn(get_proc_address);
5397 self.ProgramUniform1i_load_with_dyn(get_proc_address);
5398 self.ProgramUniform1iv_load_with_dyn(get_proc_address);
5399 self.ProgramUniform1ui_load_with_dyn(get_proc_address);
5400 self.ProgramUniform1uiv_load_with_dyn(get_proc_address);
5401 self.ProgramUniform2d_load_with_dyn(get_proc_address);
5402 self.ProgramUniform2dv_load_with_dyn(get_proc_address);
5403 self.ProgramUniform2f_load_with_dyn(get_proc_address);
5404 self.ProgramUniform2fv_load_with_dyn(get_proc_address);
5405 self.ProgramUniform2i_load_with_dyn(get_proc_address);
5406 self.ProgramUniform2iv_load_with_dyn(get_proc_address);
5407 self.ProgramUniform2ui_load_with_dyn(get_proc_address);
5408 self.ProgramUniform2uiv_load_with_dyn(get_proc_address);
5409 self.ProgramUniform3d_load_with_dyn(get_proc_address);
5410 self.ProgramUniform3dv_load_with_dyn(get_proc_address);
5411 self.ProgramUniform3f_load_with_dyn(get_proc_address);
5412 self.ProgramUniform3fv_load_with_dyn(get_proc_address);
5413 self.ProgramUniform3i_load_with_dyn(get_proc_address);
5414 self.ProgramUniform3iv_load_with_dyn(get_proc_address);
5415 self.ProgramUniform3ui_load_with_dyn(get_proc_address);
5416 self.ProgramUniform3uiv_load_with_dyn(get_proc_address);
5417 self.ProgramUniform4d_load_with_dyn(get_proc_address);
5418 self.ProgramUniform4dv_load_with_dyn(get_proc_address);
5419 self.ProgramUniform4f_load_with_dyn(get_proc_address);
5420 self.ProgramUniform4fv_load_with_dyn(get_proc_address);
5421 self.ProgramUniform4i_load_with_dyn(get_proc_address);
5422 self.ProgramUniform4iv_load_with_dyn(get_proc_address);
5423 self.ProgramUniform4ui_load_with_dyn(get_proc_address);
5424 self.ProgramUniform4uiv_load_with_dyn(get_proc_address);
5425 self.ProgramUniformMatrix2dv_load_with_dyn(get_proc_address);
5426 self.ProgramUniformMatrix2fv_load_with_dyn(get_proc_address);
5427 self.ProgramUniformMatrix2x3dv_load_with_dyn(get_proc_address);
5428 self.ProgramUniformMatrix2x3fv_load_with_dyn(get_proc_address);
5429 self.ProgramUniformMatrix2x4dv_load_with_dyn(get_proc_address);
5430 self.ProgramUniformMatrix2x4fv_load_with_dyn(get_proc_address);
5431 self.ProgramUniformMatrix3dv_load_with_dyn(get_proc_address);
5432 self.ProgramUniformMatrix3fv_load_with_dyn(get_proc_address);
5433 self.ProgramUniformMatrix3x2dv_load_with_dyn(get_proc_address);
5434 self.ProgramUniformMatrix3x2fv_load_with_dyn(get_proc_address);
5435 self.ProgramUniformMatrix3x4dv_load_with_dyn(get_proc_address);
5436 self.ProgramUniformMatrix3x4fv_load_with_dyn(get_proc_address);
5437 self.ProgramUniformMatrix4dv_load_with_dyn(get_proc_address);
5438 self.ProgramUniformMatrix4fv_load_with_dyn(get_proc_address);
5439 self.ProgramUniformMatrix4x2dv_load_with_dyn(get_proc_address);
5440 self.ProgramUniformMatrix4x2fv_load_with_dyn(get_proc_address);
5441 self.ProgramUniformMatrix4x3dv_load_with_dyn(get_proc_address);
5442 self.ProgramUniformMatrix4x3fv_load_with_dyn(get_proc_address);
5443 self.ProvokingVertex_load_with_dyn(get_proc_address);
5444 self.PushDebugGroup_load_with_dyn(get_proc_address);
5445 {
5446 self.PushDebugGroupKHR_load_with_dyn(get_proc_address);
5447 }
5448 self.QueryCounter_load_with_dyn(get_proc_address);
5449 {
5450 self.QueryCounterEXT_load_with_dyn(get_proc_address);
5451 }
5452 self.ReadBuffer_load_with_dyn(get_proc_address);
5453 self.ReadPixels_load_with_dyn(get_proc_address);
5454 self.ReadnPixels_load_with_dyn(get_proc_address);
5455 self.ReleaseShaderCompiler_load_with_dyn(get_proc_address);
5456 self.RenderbufferStorage_load_with_dyn(get_proc_address);
5457 self.RenderbufferStorageMultisample_load_with_dyn(get_proc_address);
5458 self.ResumeTransformFeedback_load_with_dyn(get_proc_address);
5459 self.SampleCoverage_load_with_dyn(get_proc_address);
5460 self.SampleMaski_load_with_dyn(get_proc_address);
5461 self.SamplerParameterIiv_load_with_dyn(get_proc_address);
5462 self.SamplerParameterIuiv_load_with_dyn(get_proc_address);
5463 self.SamplerParameterf_load_with_dyn(get_proc_address);
5464 self.SamplerParameterfv_load_with_dyn(get_proc_address);
5465 self.SamplerParameteri_load_with_dyn(get_proc_address);
5466 self.SamplerParameteriv_load_with_dyn(get_proc_address);
5467 self.Scissor_load_with_dyn(get_proc_address);
5468 self.ScissorArrayv_load_with_dyn(get_proc_address);
5469 self.ScissorIndexed_load_with_dyn(get_proc_address);
5470 self.ScissorIndexedv_load_with_dyn(get_proc_address);
5471 self.ShaderBinary_load_with_dyn(get_proc_address);
5472 self.ShaderSource_load_with_dyn(get_proc_address);
5473 self.ShaderStorageBlockBinding_load_with_dyn(get_proc_address);
5474 self.SpecializeShader_load_with_dyn(get_proc_address);
5475 self.StencilFunc_load_with_dyn(get_proc_address);
5476 self.StencilFuncSeparate_load_with_dyn(get_proc_address);
5477 self.StencilMask_load_with_dyn(get_proc_address);
5478 self.StencilMaskSeparate_load_with_dyn(get_proc_address);
5479 self.StencilOp_load_with_dyn(get_proc_address);
5480 self.StencilOpSeparate_load_with_dyn(get_proc_address);
5481 self.TexBuffer_load_with_dyn(get_proc_address);
5482 self.TexBufferRange_load_with_dyn(get_proc_address);
5483 self.TexImage1D_load_with_dyn(get_proc_address);
5484 self.TexImage2D_load_with_dyn(get_proc_address);
5485 self.TexImage2DMultisample_load_with_dyn(get_proc_address);
5486 self.TexImage3D_load_with_dyn(get_proc_address);
5487 self.TexImage3DMultisample_load_with_dyn(get_proc_address);
5488 self.TexParameterIiv_load_with_dyn(get_proc_address);
5489 self.TexParameterIuiv_load_with_dyn(get_proc_address);
5490 self.TexParameterf_load_with_dyn(get_proc_address);
5491 self.TexParameterfv_load_with_dyn(get_proc_address);
5492 self.TexParameteri_load_with_dyn(get_proc_address);
5493 self.TexParameteriv_load_with_dyn(get_proc_address);
5494 self.TexStorage1D_load_with_dyn(get_proc_address);
5495 self.TexStorage2D_load_with_dyn(get_proc_address);
5496 self.TexStorage2DMultisample_load_with_dyn(get_proc_address);
5497 self.TexStorage3D_load_with_dyn(get_proc_address);
5498 self.TexStorage3DMultisample_load_with_dyn(get_proc_address);
5499 self.TexSubImage1D_load_with_dyn(get_proc_address);
5500 self.TexSubImage2D_load_with_dyn(get_proc_address);
5501 self.TexSubImage3D_load_with_dyn(get_proc_address);
5502 self.TextureBarrier_load_with_dyn(get_proc_address);
5503 self.TextureBuffer_load_with_dyn(get_proc_address);
5504 self.TextureBufferRange_load_with_dyn(get_proc_address);
5505 self.TextureParameterIiv_load_with_dyn(get_proc_address);
5506 self.TextureParameterIuiv_load_with_dyn(get_proc_address);
5507 self.TextureParameterf_load_with_dyn(get_proc_address);
5508 self.TextureParameterfv_load_with_dyn(get_proc_address);
5509 self.TextureParameteri_load_with_dyn(get_proc_address);
5510 self.TextureParameteriv_load_with_dyn(get_proc_address);
5511 self.TextureStorage1D_load_with_dyn(get_proc_address);
5512 self.TextureStorage2D_load_with_dyn(get_proc_address);
5513 self.TextureStorage2DMultisample_load_with_dyn(get_proc_address);
5514 self.TextureStorage3D_load_with_dyn(get_proc_address);
5515 self.TextureStorage3DMultisample_load_with_dyn(get_proc_address);
5516 self.TextureSubImage1D_load_with_dyn(get_proc_address);
5517 self.TextureSubImage2D_load_with_dyn(get_proc_address);
5518 self.TextureSubImage3D_load_with_dyn(get_proc_address);
5519 self.TextureView_load_with_dyn(get_proc_address);
5520 self.TransformFeedbackBufferBase_load_with_dyn(get_proc_address);
5521 self.TransformFeedbackBufferRange_load_with_dyn(get_proc_address);
5522 self.TransformFeedbackVaryings_load_with_dyn(get_proc_address);
5523 self.Uniform1d_load_with_dyn(get_proc_address);
5524 self.Uniform1dv_load_with_dyn(get_proc_address);
5525 self.Uniform1f_load_with_dyn(get_proc_address);
5526 self.Uniform1fv_load_with_dyn(get_proc_address);
5527 self.Uniform1i_load_with_dyn(get_proc_address);
5528 self.Uniform1iv_load_with_dyn(get_proc_address);
5529 self.Uniform1ui_load_with_dyn(get_proc_address);
5530 self.Uniform1uiv_load_with_dyn(get_proc_address);
5531 self.Uniform2d_load_with_dyn(get_proc_address);
5532 self.Uniform2dv_load_with_dyn(get_proc_address);
5533 self.Uniform2f_load_with_dyn(get_proc_address);
5534 self.Uniform2fv_load_with_dyn(get_proc_address);
5535 self.Uniform2i_load_with_dyn(get_proc_address);
5536 self.Uniform2iv_load_with_dyn(get_proc_address);
5537 self.Uniform2ui_load_with_dyn(get_proc_address);
5538 self.Uniform2uiv_load_with_dyn(get_proc_address);
5539 self.Uniform3d_load_with_dyn(get_proc_address);
5540 self.Uniform3dv_load_with_dyn(get_proc_address);
5541 self.Uniform3f_load_with_dyn(get_proc_address);
5542 self.Uniform3fv_load_with_dyn(get_proc_address);
5543 self.Uniform3i_load_with_dyn(get_proc_address);
5544 self.Uniform3iv_load_with_dyn(get_proc_address);
5545 self.Uniform3ui_load_with_dyn(get_proc_address);
5546 self.Uniform3uiv_load_with_dyn(get_proc_address);
5547 self.Uniform4d_load_with_dyn(get_proc_address);
5548 self.Uniform4dv_load_with_dyn(get_proc_address);
5549 self.Uniform4f_load_with_dyn(get_proc_address);
5550 self.Uniform4fv_load_with_dyn(get_proc_address);
5551 self.Uniform4i_load_with_dyn(get_proc_address);
5552 self.Uniform4iv_load_with_dyn(get_proc_address);
5553 self.Uniform4ui_load_with_dyn(get_proc_address);
5554 self.Uniform4uiv_load_with_dyn(get_proc_address);
5555 self.UniformBlockBinding_load_with_dyn(get_proc_address);
5556 self.UniformMatrix2dv_load_with_dyn(get_proc_address);
5557 self.UniformMatrix2fv_load_with_dyn(get_proc_address);
5558 self.UniformMatrix2x3dv_load_with_dyn(get_proc_address);
5559 self.UniformMatrix2x3fv_load_with_dyn(get_proc_address);
5560 self.UniformMatrix2x4dv_load_with_dyn(get_proc_address);
5561 self.UniformMatrix2x4fv_load_with_dyn(get_proc_address);
5562 self.UniformMatrix3dv_load_with_dyn(get_proc_address);
5563 self.UniformMatrix3fv_load_with_dyn(get_proc_address);
5564 self.UniformMatrix3x2dv_load_with_dyn(get_proc_address);
5565 self.UniformMatrix3x2fv_load_with_dyn(get_proc_address);
5566 self.UniformMatrix3x4dv_load_with_dyn(get_proc_address);
5567 self.UniformMatrix3x4fv_load_with_dyn(get_proc_address);
5568 self.UniformMatrix4dv_load_with_dyn(get_proc_address);
5569 self.UniformMatrix4fv_load_with_dyn(get_proc_address);
5570 self.UniformMatrix4x2dv_load_with_dyn(get_proc_address);
5571 self.UniformMatrix4x2fv_load_with_dyn(get_proc_address);
5572 self.UniformMatrix4x3dv_load_with_dyn(get_proc_address);
5573 self.UniformMatrix4x3fv_load_with_dyn(get_proc_address);
5574 self.UniformSubroutinesuiv_load_with_dyn(get_proc_address);
5575 self.UnmapBuffer_load_with_dyn(get_proc_address);
5576 self.UnmapNamedBuffer_load_with_dyn(get_proc_address);
5577 self.UseProgram_load_with_dyn(get_proc_address);
5578 self.UseProgramStages_load_with_dyn(get_proc_address);
5579 self.ValidateProgram_load_with_dyn(get_proc_address);
5580 self.ValidateProgramPipeline_load_with_dyn(get_proc_address);
5581 self.VertexArrayAttribBinding_load_with_dyn(get_proc_address);
5582 self.VertexArrayAttribFormat_load_with_dyn(get_proc_address);
5583 self.VertexArrayAttribIFormat_load_with_dyn(get_proc_address);
5584 self.VertexArrayAttribLFormat_load_with_dyn(get_proc_address);
5585 self.VertexArrayBindingDivisor_load_with_dyn(get_proc_address);
5586 self.VertexArrayElementBuffer_load_with_dyn(get_proc_address);
5587 self.VertexArrayVertexBuffer_load_with_dyn(get_proc_address);
5588 self.VertexArrayVertexBuffers_load_with_dyn(get_proc_address);
5589 self.VertexAttrib1d_load_with_dyn(get_proc_address);
5590 self.VertexAttrib1dv_load_with_dyn(get_proc_address);
5591 self.VertexAttrib1f_load_with_dyn(get_proc_address);
5592 self.VertexAttrib1fv_load_with_dyn(get_proc_address);
5593 self.VertexAttrib1s_load_with_dyn(get_proc_address);
5594 self.VertexAttrib1sv_load_with_dyn(get_proc_address);
5595 self.VertexAttrib2d_load_with_dyn(get_proc_address);
5596 self.VertexAttrib2dv_load_with_dyn(get_proc_address);
5597 self.VertexAttrib2f_load_with_dyn(get_proc_address);
5598 self.VertexAttrib2fv_load_with_dyn(get_proc_address);
5599 self.VertexAttrib2s_load_with_dyn(get_proc_address);
5600 self.VertexAttrib2sv_load_with_dyn(get_proc_address);
5601 self.VertexAttrib3d_load_with_dyn(get_proc_address);
5602 self.VertexAttrib3dv_load_with_dyn(get_proc_address);
5603 self.VertexAttrib3f_load_with_dyn(get_proc_address);
5604 self.VertexAttrib3fv_load_with_dyn(get_proc_address);
5605 self.VertexAttrib3s_load_with_dyn(get_proc_address);
5606 self.VertexAttrib3sv_load_with_dyn(get_proc_address);
5607 self.VertexAttrib4Nbv_load_with_dyn(get_proc_address);
5608 self.VertexAttrib4Niv_load_with_dyn(get_proc_address);
5609 self.VertexAttrib4Nsv_load_with_dyn(get_proc_address);
5610 self.VertexAttrib4Nub_load_with_dyn(get_proc_address);
5611 self.VertexAttrib4Nubv_load_with_dyn(get_proc_address);
5612 self.VertexAttrib4Nuiv_load_with_dyn(get_proc_address);
5613 self.VertexAttrib4Nusv_load_with_dyn(get_proc_address);
5614 self.VertexAttrib4bv_load_with_dyn(get_proc_address);
5615 self.VertexAttrib4d_load_with_dyn(get_proc_address);
5616 self.VertexAttrib4dv_load_with_dyn(get_proc_address);
5617 self.VertexAttrib4f_load_with_dyn(get_proc_address);
5618 self.VertexAttrib4fv_load_with_dyn(get_proc_address);
5619 self.VertexAttrib4iv_load_with_dyn(get_proc_address);
5620 self.VertexAttrib4s_load_with_dyn(get_proc_address);
5621 self.VertexAttrib4sv_load_with_dyn(get_proc_address);
5622 self.VertexAttrib4ubv_load_with_dyn(get_proc_address);
5623 self.VertexAttrib4uiv_load_with_dyn(get_proc_address);
5624 self.VertexAttrib4usv_load_with_dyn(get_proc_address);
5625 self.VertexAttribBinding_load_with_dyn(get_proc_address);
5626 self.VertexAttribDivisor_load_with_dyn(get_proc_address);
5627 {
5628 self.VertexAttribDivisorARB_load_with_dyn(get_proc_address);
5629 }
5630 self.VertexAttribFormat_load_with_dyn(get_proc_address);
5631 self.VertexAttribI1i_load_with_dyn(get_proc_address);
5632 self.VertexAttribI1iv_load_with_dyn(get_proc_address);
5633 self.VertexAttribI1ui_load_with_dyn(get_proc_address);
5634 self.VertexAttribI1uiv_load_with_dyn(get_proc_address);
5635 self.VertexAttribI2i_load_with_dyn(get_proc_address);
5636 self.VertexAttribI2iv_load_with_dyn(get_proc_address);
5637 self.VertexAttribI2ui_load_with_dyn(get_proc_address);
5638 self.VertexAttribI2uiv_load_with_dyn(get_proc_address);
5639 self.VertexAttribI3i_load_with_dyn(get_proc_address);
5640 self.VertexAttribI3iv_load_with_dyn(get_proc_address);
5641 self.VertexAttribI3ui_load_with_dyn(get_proc_address);
5642 self.VertexAttribI3uiv_load_with_dyn(get_proc_address);
5643 self.VertexAttribI4bv_load_with_dyn(get_proc_address);
5644 self.VertexAttribI4i_load_with_dyn(get_proc_address);
5645 self.VertexAttribI4iv_load_with_dyn(get_proc_address);
5646 self.VertexAttribI4sv_load_with_dyn(get_proc_address);
5647 self.VertexAttribI4ubv_load_with_dyn(get_proc_address);
5648 self.VertexAttribI4ui_load_with_dyn(get_proc_address);
5649 self.VertexAttribI4uiv_load_with_dyn(get_proc_address);
5650 self.VertexAttribI4usv_load_with_dyn(get_proc_address);
5651 self.VertexAttribIFormat_load_with_dyn(get_proc_address);
5652 self.VertexAttribIPointer_load_with_dyn(get_proc_address);
5653 self.VertexAttribL1d_load_with_dyn(get_proc_address);
5654 self.VertexAttribL1dv_load_with_dyn(get_proc_address);
5655 self.VertexAttribL2d_load_with_dyn(get_proc_address);
5656 self.VertexAttribL2dv_load_with_dyn(get_proc_address);
5657 self.VertexAttribL3d_load_with_dyn(get_proc_address);
5658 self.VertexAttribL3dv_load_with_dyn(get_proc_address);
5659 self.VertexAttribL4d_load_with_dyn(get_proc_address);
5660 self.VertexAttribL4dv_load_with_dyn(get_proc_address);
5661 self.VertexAttribLFormat_load_with_dyn(get_proc_address);
5662 self.VertexAttribLPointer_load_with_dyn(get_proc_address);
5663 self.VertexAttribP1ui_load_with_dyn(get_proc_address);
5664 self.VertexAttribP1uiv_load_with_dyn(get_proc_address);
5665 self.VertexAttribP2ui_load_with_dyn(get_proc_address);
5666 self.VertexAttribP2uiv_load_with_dyn(get_proc_address);
5667 self.VertexAttribP3ui_load_with_dyn(get_proc_address);
5668 self.VertexAttribP3uiv_load_with_dyn(get_proc_address);
5669 self.VertexAttribP4ui_load_with_dyn(get_proc_address);
5670 self.VertexAttribP4uiv_load_with_dyn(get_proc_address);
5671 self.VertexAttribPointer_load_with_dyn(get_proc_address);
5672 self.VertexBindingDivisor_load_with_dyn(get_proc_address);
5673 self.Viewport_load_with_dyn(get_proc_address);
5674 self.ViewportArrayv_load_with_dyn(get_proc_address);
5675 self.ViewportIndexedf_load_with_dyn(get_proc_address);
5676 self.ViewportIndexedfv_load_with_dyn(get_proc_address);
5677 self.WaitSync_load_with_dyn(get_proc_address);
5678 }
5679 #[cfg_attr(feature = "inline", inline)]
5681 #[cfg_attr(feature = "inline_always", inline(always))]
5682 pub unsafe fn ActiveShaderProgram(&self, pipeline: GLuint, program: GLuint) {
5683 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5684 {
5685 trace!(
5686 "calling gl.ActiveShaderProgram({:?}, {:?});",
5687 pipeline,
5688 program
5689 );
5690 }
5691 let out = call_atomic_ptr_2arg(
5692 "glActiveShaderProgram",
5693 &self.glActiveShaderProgram_p,
5694 pipeline,
5695 program,
5696 );
5697 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5698 {
5699 self.automatic_glGetError("glActiveShaderProgram");
5700 }
5701 out
5702 }
5703 #[doc(hidden)]
5704 pub unsafe fn ActiveShaderProgram_load_with_dyn(
5705 &self,
5706 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5707 ) -> bool {
5708 load_dyn_name_atomic_ptr(
5709 get_proc_address,
5710 b"glActiveShaderProgram\0",
5711 &self.glActiveShaderProgram_p,
5712 )
5713 }
5714 #[inline]
5715 #[doc(hidden)]
5716 pub fn ActiveShaderProgram_is_loaded(&self) -> bool {
5717 !self.glActiveShaderProgram_p.load(RELAX).is_null()
5718 }
5719 #[cfg_attr(feature = "inline", inline)]
5722 #[cfg_attr(feature = "inline_always", inline(always))]
5723 pub unsafe fn ActiveTexture(&self, texture: GLenum) {
5724 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5725 {
5726 trace!("calling gl.ActiveTexture({:#X});", texture);
5727 }
5728 let out = call_atomic_ptr_1arg("glActiveTexture", &self.glActiveTexture_p, texture);
5729 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5730 {
5731 self.automatic_glGetError("glActiveTexture");
5732 }
5733 out
5734 }
5735 #[doc(hidden)]
5736 pub unsafe fn ActiveTexture_load_with_dyn(
5737 &self,
5738 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5739 ) -> bool {
5740 load_dyn_name_atomic_ptr(
5741 get_proc_address,
5742 b"glActiveTexture\0",
5743 &self.glActiveTexture_p,
5744 )
5745 }
5746 #[inline]
5747 #[doc(hidden)]
5748 pub fn ActiveTexture_is_loaded(&self) -> bool {
5749 !self.glActiveTexture_p.load(RELAX).is_null()
5750 }
5751 #[cfg_attr(feature = "inline", inline)]
5753 #[cfg_attr(feature = "inline_always", inline(always))]
5754 pub unsafe fn AttachShader(&self, program: GLuint, shader: GLuint) {
5755 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5756 {
5757 trace!("calling gl.AttachShader({:?}, {:?});", program, shader);
5758 }
5759 let out =
5760 call_atomic_ptr_2arg("glAttachShader", &self.glAttachShader_p, program, shader);
5761 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5762 {
5763 self.automatic_glGetError("glAttachShader");
5764 }
5765 out
5766 }
5767 #[doc(hidden)]
5768 pub unsafe fn AttachShader_load_with_dyn(
5769 &self,
5770 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5771 ) -> bool {
5772 load_dyn_name_atomic_ptr(
5773 get_proc_address,
5774 b"glAttachShader\0",
5775 &self.glAttachShader_p,
5776 )
5777 }
5778 #[inline]
5779 #[doc(hidden)]
5780 pub fn AttachShader_is_loaded(&self) -> bool {
5781 !self.glAttachShader_p.load(RELAX).is_null()
5782 }
5783 #[cfg_attr(feature = "inline", inline)]
5786 #[cfg_attr(feature = "inline_always", inline(always))]
5787 pub unsafe fn BeginConditionalRender(&self, id: GLuint, mode: GLenum) {
5788 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5789 {
5790 trace!("calling gl.BeginConditionalRender({:?}, {:#X});", id, mode);
5791 }
5792 let out = call_atomic_ptr_2arg(
5793 "glBeginConditionalRender",
5794 &self.glBeginConditionalRender_p,
5795 id,
5796 mode,
5797 );
5798 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5799 {
5800 self.automatic_glGetError("glBeginConditionalRender");
5801 }
5802 out
5803 }
5804 #[doc(hidden)]
5805 pub unsafe fn BeginConditionalRender_load_with_dyn(
5806 &self,
5807 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5808 ) -> bool {
5809 load_dyn_name_atomic_ptr(
5810 get_proc_address,
5811 b"glBeginConditionalRender\0",
5812 &self.glBeginConditionalRender_p,
5813 )
5814 }
5815 #[inline]
5816 #[doc(hidden)]
5817 pub fn BeginConditionalRender_is_loaded(&self) -> bool {
5818 !self.glBeginConditionalRender_p.load(RELAX).is_null()
5819 }
5820 #[cfg_attr(feature = "inline", inline)]
5823 #[cfg_attr(feature = "inline_always", inline(always))]
5824 pub unsafe fn BeginQuery(&self, target: GLenum, id: GLuint) {
5825 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5826 {
5827 trace!("calling gl.BeginQuery({:#X}, {:?});", target, id);
5828 }
5829 let out = call_atomic_ptr_2arg("glBeginQuery", &self.glBeginQuery_p, target, id);
5830 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5831 {
5832 self.automatic_glGetError("glBeginQuery");
5833 }
5834 out
5835 }
5836 #[doc(hidden)]
5837 pub unsafe fn BeginQuery_load_with_dyn(
5838 &self,
5839 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5840 ) -> bool {
5841 load_dyn_name_atomic_ptr(get_proc_address, b"glBeginQuery\0", &self.glBeginQuery_p)
5842 }
5843 #[inline]
5844 #[doc(hidden)]
5845 pub fn BeginQuery_is_loaded(&self) -> bool {
5846 !self.glBeginQuery_p.load(RELAX).is_null()
5847 }
5848 #[cfg_attr(feature = "inline", inline)]
5851 #[cfg_attr(feature = "inline_always", inline(always))]
5852 pub unsafe fn BeginQueryEXT(&self, target: GLenum, id: GLuint) {
5853 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5854 {
5855 trace!("calling gl.BeginQueryEXT({:#X}, {:?});", target, id);
5856 }
5857 let out = call_atomic_ptr_2arg("glBeginQueryEXT", &self.glBeginQueryEXT_p, target, id);
5858 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5859 {
5860 self.automatic_glGetError("glBeginQueryEXT");
5861 }
5862 out
5863 }
5864 #[doc(hidden)]
5865 pub unsafe fn BeginQueryEXT_load_with_dyn(
5866 &self,
5867 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5868 ) -> bool {
5869 load_dyn_name_atomic_ptr(
5870 get_proc_address,
5871 b"glBeginQueryEXT\0",
5872 &self.glBeginQueryEXT_p,
5873 )
5874 }
5875 #[inline]
5876 #[doc(hidden)]
5877 pub fn BeginQueryEXT_is_loaded(&self) -> bool {
5878 !self.glBeginQueryEXT_p.load(RELAX).is_null()
5879 }
5880 #[cfg_attr(feature = "inline", inline)]
5883 #[cfg_attr(feature = "inline_always", inline(always))]
5884 pub unsafe fn BeginQueryIndexed(&self, target: GLenum, index: GLuint, id: GLuint) {
5885 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5886 {
5887 trace!(
5888 "calling gl.BeginQueryIndexed({:#X}, {:?}, {:?});",
5889 target,
5890 index,
5891 id
5892 );
5893 }
5894 let out = call_atomic_ptr_3arg(
5895 "glBeginQueryIndexed",
5896 &self.glBeginQueryIndexed_p,
5897 target,
5898 index,
5899 id,
5900 );
5901 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5902 {
5903 self.automatic_glGetError("glBeginQueryIndexed");
5904 }
5905 out
5906 }
5907 #[doc(hidden)]
5908 pub unsafe fn BeginQueryIndexed_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"glBeginQueryIndexed\0",
5915 &self.glBeginQueryIndexed_p,
5916 )
5917 }
5918 #[inline]
5919 #[doc(hidden)]
5920 pub fn BeginQueryIndexed_is_loaded(&self) -> bool {
5921 !self.glBeginQueryIndexed_p.load(RELAX).is_null()
5922 }
5923 #[cfg_attr(feature = "inline", inline)]
5926 #[cfg_attr(feature = "inline_always", inline(always))]
5927 pub unsafe fn BeginTransformFeedback(&self, primitiveMode: GLenum) {
5928 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5929 {
5930 trace!("calling gl.BeginTransformFeedback({:#X});", primitiveMode);
5931 }
5932 let out = call_atomic_ptr_1arg(
5933 "glBeginTransformFeedback",
5934 &self.glBeginTransformFeedback_p,
5935 primitiveMode,
5936 );
5937 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5938 {
5939 self.automatic_glGetError("glBeginTransformFeedback");
5940 }
5941 out
5942 }
5943 #[doc(hidden)]
5944 pub unsafe fn BeginTransformFeedback_load_with_dyn(
5945 &self,
5946 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5947 ) -> bool {
5948 load_dyn_name_atomic_ptr(
5949 get_proc_address,
5950 b"glBeginTransformFeedback\0",
5951 &self.glBeginTransformFeedback_p,
5952 )
5953 }
5954 #[inline]
5955 #[doc(hidden)]
5956 pub fn BeginTransformFeedback_is_loaded(&self) -> bool {
5957 !self.glBeginTransformFeedback_p.load(RELAX).is_null()
5958 }
5959 #[cfg_attr(feature = "inline", inline)]
5961 #[cfg_attr(feature = "inline_always", inline(always))]
5962 pub unsafe fn BindAttribLocation(
5963 &self,
5964 program: GLuint,
5965 index: GLuint,
5966 name: *const GLchar,
5967 ) {
5968 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5969 {
5970 trace!(
5971 "calling gl.BindAttribLocation({:?}, {:?}, {:p});",
5972 program,
5973 index,
5974 name
5975 );
5976 }
5977 let out = call_atomic_ptr_3arg(
5978 "glBindAttribLocation",
5979 &self.glBindAttribLocation_p,
5980 program,
5981 index,
5982 name,
5983 );
5984 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5985 {
5986 self.automatic_glGetError("glBindAttribLocation");
5987 }
5988 out
5989 }
5990 #[doc(hidden)]
5991 pub unsafe fn BindAttribLocation_load_with_dyn(
5992 &self,
5993 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5994 ) -> bool {
5995 load_dyn_name_atomic_ptr(
5996 get_proc_address,
5997 b"glBindAttribLocation\0",
5998 &self.glBindAttribLocation_p,
5999 )
6000 }
6001 #[inline]
6002 #[doc(hidden)]
6003 pub fn BindAttribLocation_is_loaded(&self) -> bool {
6004 !self.glBindAttribLocation_p.load(RELAX).is_null()
6005 }
6006 #[cfg_attr(feature = "inline", inline)]
6009 #[cfg_attr(feature = "inline_always", inline(always))]
6010 pub unsafe fn BindBuffer(&self, target: GLenum, buffer: GLuint) {
6011 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6012 {
6013 trace!("calling gl.BindBuffer({:#X}, {:?});", target, buffer);
6014 }
6015 let out = call_atomic_ptr_2arg("glBindBuffer", &self.glBindBuffer_p, target, buffer);
6016 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6017 {
6018 self.automatic_glGetError("glBindBuffer");
6019 }
6020 out
6021 }
6022 #[doc(hidden)]
6023 pub unsafe fn BindBuffer_load_with_dyn(
6024 &self,
6025 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6026 ) -> bool {
6027 load_dyn_name_atomic_ptr(get_proc_address, b"glBindBuffer\0", &self.glBindBuffer_p)
6028 }
6029 #[inline]
6030 #[doc(hidden)]
6031 pub fn BindBuffer_is_loaded(&self) -> bool {
6032 !self.glBindBuffer_p.load(RELAX).is_null()
6033 }
6034 #[cfg_attr(feature = "inline", inline)]
6037 #[cfg_attr(feature = "inline_always", inline(always))]
6038 pub unsafe fn BindBufferBase(&self, target: GLenum, index: GLuint, buffer: GLuint) {
6039 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6040 {
6041 trace!(
6042 "calling gl.BindBufferBase({:#X}, {:?}, {:?});",
6043 target,
6044 index,
6045 buffer
6046 );
6047 }
6048 let out = call_atomic_ptr_3arg(
6049 "glBindBufferBase",
6050 &self.glBindBufferBase_p,
6051 target,
6052 index,
6053 buffer,
6054 );
6055 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6056 {
6057 self.automatic_glGetError("glBindBufferBase");
6058 }
6059 out
6060 }
6061 #[doc(hidden)]
6062 pub unsafe fn BindBufferBase_load_with_dyn(
6063 &self,
6064 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6065 ) -> bool {
6066 load_dyn_name_atomic_ptr(
6067 get_proc_address,
6068 b"glBindBufferBase\0",
6069 &self.glBindBufferBase_p,
6070 )
6071 }
6072 #[inline]
6073 #[doc(hidden)]
6074 pub fn BindBufferBase_is_loaded(&self) -> bool {
6075 !self.glBindBufferBase_p.load(RELAX).is_null()
6076 }
6077 #[cfg_attr(feature = "inline", inline)]
6082 #[cfg_attr(feature = "inline_always", inline(always))]
6083 pub unsafe fn BindBufferRange(
6084 &self,
6085 target: GLenum,
6086 index: GLuint,
6087 buffer: GLuint,
6088 offset: GLintptr,
6089 size: GLsizeiptr,
6090 ) {
6091 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6092 {
6093 trace!(
6094 "calling gl.BindBufferRange({:#X}, {:?}, {:?}, {:?}, {:?});",
6095 target,
6096 index,
6097 buffer,
6098 offset,
6099 size
6100 );
6101 }
6102 let out = call_atomic_ptr_5arg(
6103 "glBindBufferRange",
6104 &self.glBindBufferRange_p,
6105 target,
6106 index,
6107 buffer,
6108 offset,
6109 size,
6110 );
6111 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6112 {
6113 self.automatic_glGetError("glBindBufferRange");
6114 }
6115 out
6116 }
6117 #[doc(hidden)]
6118 pub unsafe fn BindBufferRange_load_with_dyn(
6119 &self,
6120 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6121 ) -> bool {
6122 load_dyn_name_atomic_ptr(
6123 get_proc_address,
6124 b"glBindBufferRange\0",
6125 &self.glBindBufferRange_p,
6126 )
6127 }
6128 #[inline]
6129 #[doc(hidden)]
6130 pub fn BindBufferRange_is_loaded(&self) -> bool {
6131 !self.glBindBufferRange_p.load(RELAX).is_null()
6132 }
6133 #[cfg_attr(feature = "inline", inline)]
6137 #[cfg_attr(feature = "inline_always", inline(always))]
6138 pub unsafe fn BindBuffersBase(
6139 &self,
6140 target: GLenum,
6141 first: GLuint,
6142 count: GLsizei,
6143 buffers: *const GLuint,
6144 ) {
6145 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6146 {
6147 trace!(
6148 "calling gl.BindBuffersBase({:#X}, {:?}, {:?}, {:p});",
6149 target,
6150 first,
6151 count,
6152 buffers
6153 );
6154 }
6155 let out = call_atomic_ptr_4arg(
6156 "glBindBuffersBase",
6157 &self.glBindBuffersBase_p,
6158 target,
6159 first,
6160 count,
6161 buffers,
6162 );
6163 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6164 {
6165 self.automatic_glGetError("glBindBuffersBase");
6166 }
6167 out
6168 }
6169 #[doc(hidden)]
6170 pub unsafe fn BindBuffersBase_load_with_dyn(
6171 &self,
6172 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6173 ) -> bool {
6174 load_dyn_name_atomic_ptr(
6175 get_proc_address,
6176 b"glBindBuffersBase\0",
6177 &self.glBindBuffersBase_p,
6178 )
6179 }
6180 #[inline]
6181 #[doc(hidden)]
6182 pub fn BindBuffersBase_is_loaded(&self) -> bool {
6183 !self.glBindBuffersBase_p.load(RELAX).is_null()
6184 }
6185 #[cfg_attr(feature = "inline", inline)]
6191 #[cfg_attr(feature = "inline_always", inline(always))]
6192 pub unsafe fn BindBuffersRange(
6193 &self,
6194 target: GLenum,
6195 first: GLuint,
6196 count: GLsizei,
6197 buffers: *const GLuint,
6198 offsets: *const GLintptr,
6199 sizes: *const GLsizeiptr,
6200 ) {
6201 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6202 {
6203 trace!(
6204 "calling gl.BindBuffersRange({:#X}, {:?}, {:?}, {:p}, {:p}, {:p});",
6205 target,
6206 first,
6207 count,
6208 buffers,
6209 offsets,
6210 sizes
6211 );
6212 }
6213 let out = call_atomic_ptr_6arg(
6214 "glBindBuffersRange",
6215 &self.glBindBuffersRange_p,
6216 target,
6217 first,
6218 count,
6219 buffers,
6220 offsets,
6221 sizes,
6222 );
6223 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6224 {
6225 self.automatic_glGetError("glBindBuffersRange");
6226 }
6227 out
6228 }
6229 #[doc(hidden)]
6230 pub unsafe fn BindBuffersRange_load_with_dyn(
6231 &self,
6232 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6233 ) -> bool {
6234 load_dyn_name_atomic_ptr(
6235 get_proc_address,
6236 b"glBindBuffersRange\0",
6237 &self.glBindBuffersRange_p,
6238 )
6239 }
6240 #[inline]
6241 #[doc(hidden)]
6242 pub fn BindBuffersRange_is_loaded(&self) -> bool {
6243 !self.glBindBuffersRange_p.load(RELAX).is_null()
6244 }
6245 #[cfg_attr(feature = "inline", inline)]
6248 #[cfg_attr(feature = "inline_always", inline(always))]
6249 pub unsafe fn BindFragDataLocation(
6250 &self,
6251 program: GLuint,
6252 color: GLuint,
6253 name: *const GLchar,
6254 ) {
6255 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6256 {
6257 trace!(
6258 "calling gl.BindFragDataLocation({:?}, {:?}, {:p});",
6259 program,
6260 color,
6261 name
6262 );
6263 }
6264 let out = call_atomic_ptr_3arg(
6265 "glBindFragDataLocation",
6266 &self.glBindFragDataLocation_p,
6267 program,
6268 color,
6269 name,
6270 );
6271 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6272 {
6273 self.automatic_glGetError("glBindFragDataLocation");
6274 }
6275 out
6276 }
6277 #[doc(hidden)]
6278 pub unsafe fn BindFragDataLocation_load_with_dyn(
6279 &self,
6280 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6281 ) -> bool {
6282 load_dyn_name_atomic_ptr(
6283 get_proc_address,
6284 b"glBindFragDataLocation\0",
6285 &self.glBindFragDataLocation_p,
6286 )
6287 }
6288 #[inline]
6289 #[doc(hidden)]
6290 pub fn BindFragDataLocation_is_loaded(&self) -> bool {
6291 !self.glBindFragDataLocation_p.load(RELAX).is_null()
6292 }
6293 #[cfg_attr(feature = "inline", inline)]
6295 #[cfg_attr(feature = "inline_always", inline(always))]
6296 pub unsafe fn BindFragDataLocationIndexed(
6297 &self,
6298 program: GLuint,
6299 colorNumber: GLuint,
6300 index: GLuint,
6301 name: *const GLchar,
6302 ) {
6303 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6304 {
6305 trace!(
6306 "calling gl.BindFragDataLocationIndexed({:?}, {:?}, {:?}, {:p});",
6307 program,
6308 colorNumber,
6309 index,
6310 name
6311 );
6312 }
6313 let out = call_atomic_ptr_4arg(
6314 "glBindFragDataLocationIndexed",
6315 &self.glBindFragDataLocationIndexed_p,
6316 program,
6317 colorNumber,
6318 index,
6319 name,
6320 );
6321 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6322 {
6323 self.automatic_glGetError("glBindFragDataLocationIndexed");
6324 }
6325 out
6326 }
6327 #[doc(hidden)]
6328 pub unsafe fn BindFragDataLocationIndexed_load_with_dyn(
6329 &self,
6330 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6331 ) -> bool {
6332 load_dyn_name_atomic_ptr(
6333 get_proc_address,
6334 b"glBindFragDataLocationIndexed\0",
6335 &self.glBindFragDataLocationIndexed_p,
6336 )
6337 }
6338 #[inline]
6339 #[doc(hidden)]
6340 pub fn BindFragDataLocationIndexed_is_loaded(&self) -> bool {
6341 !self.glBindFragDataLocationIndexed_p.load(RELAX).is_null()
6342 }
6343 #[cfg_attr(feature = "inline", inline)]
6346 #[cfg_attr(feature = "inline_always", inline(always))]
6347 pub unsafe fn BindFramebuffer(&self, target: GLenum, framebuffer: GLuint) {
6348 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6349 {
6350 trace!(
6351 "calling gl.BindFramebuffer({:#X}, {:?});",
6352 target,
6353 framebuffer
6354 );
6355 }
6356 let out = call_atomic_ptr_2arg(
6357 "glBindFramebuffer",
6358 &self.glBindFramebuffer_p,
6359 target,
6360 framebuffer,
6361 );
6362 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6363 {
6364 self.automatic_glGetError("glBindFramebuffer");
6365 }
6366 out
6367 }
6368 #[doc(hidden)]
6369 pub unsafe fn BindFramebuffer_load_with_dyn(
6370 &self,
6371 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6372 ) -> bool {
6373 load_dyn_name_atomic_ptr(
6374 get_proc_address,
6375 b"glBindFramebuffer\0",
6376 &self.glBindFramebuffer_p,
6377 )
6378 }
6379 #[inline]
6380 #[doc(hidden)]
6381 pub fn BindFramebuffer_is_loaded(&self) -> bool {
6382 !self.glBindFramebuffer_p.load(RELAX).is_null()
6383 }
6384 #[cfg_attr(feature = "inline", inline)]
6388 #[cfg_attr(feature = "inline_always", inline(always))]
6389 pub unsafe fn BindImageTexture(
6390 &self,
6391 unit: GLuint,
6392 texture: GLuint,
6393 level: GLint,
6394 layered: GLboolean,
6395 layer: GLint,
6396 access: GLenum,
6397 format: GLenum,
6398 ) {
6399 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6400 {
6401 trace!(
6402 "calling gl.BindImageTexture({:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X});",
6403 unit,
6404 texture,
6405 level,
6406 layered,
6407 layer,
6408 access,
6409 format
6410 );
6411 }
6412 let out = call_atomic_ptr_7arg(
6413 "glBindImageTexture",
6414 &self.glBindImageTexture_p,
6415 unit,
6416 texture,
6417 level,
6418 layered,
6419 layer,
6420 access,
6421 format,
6422 );
6423 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6424 {
6425 self.automatic_glGetError("glBindImageTexture");
6426 }
6427 out
6428 }
6429 #[doc(hidden)]
6430 pub unsafe fn BindImageTexture_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"glBindImageTexture\0",
6437 &self.glBindImageTexture_p,
6438 )
6439 }
6440 #[inline]
6441 #[doc(hidden)]
6442 pub fn BindImageTexture_is_loaded(&self) -> bool {
6443 !self.glBindImageTexture_p.load(RELAX).is_null()
6444 }
6445 #[cfg_attr(feature = "inline", inline)]
6448 #[cfg_attr(feature = "inline_always", inline(always))]
6449 pub unsafe fn BindImageTextures(
6450 &self,
6451 first: GLuint,
6452 count: GLsizei,
6453 textures: *const GLuint,
6454 ) {
6455 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6456 {
6457 trace!(
6458 "calling gl.BindImageTextures({:?}, {:?}, {:p});",
6459 first,
6460 count,
6461 textures
6462 );
6463 }
6464 let out = call_atomic_ptr_3arg(
6465 "glBindImageTextures",
6466 &self.glBindImageTextures_p,
6467 first,
6468 count,
6469 textures,
6470 );
6471 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6472 {
6473 self.automatic_glGetError("glBindImageTextures");
6474 }
6475 out
6476 }
6477 #[doc(hidden)]
6478 pub unsafe fn BindImageTextures_load_with_dyn(
6479 &self,
6480 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6481 ) -> bool {
6482 load_dyn_name_atomic_ptr(
6483 get_proc_address,
6484 b"glBindImageTextures\0",
6485 &self.glBindImageTextures_p,
6486 )
6487 }
6488 #[inline]
6489 #[doc(hidden)]
6490 pub fn BindImageTextures_is_loaded(&self) -> bool {
6491 !self.glBindImageTextures_p.load(RELAX).is_null()
6492 }
6493 #[cfg_attr(feature = "inline", inline)]
6495 #[cfg_attr(feature = "inline_always", inline(always))]
6496 pub unsafe fn BindProgramPipeline(&self, pipeline: GLuint) {
6497 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6498 {
6499 trace!("calling gl.BindProgramPipeline({:?});", pipeline);
6500 }
6501 let out = call_atomic_ptr_1arg(
6502 "glBindProgramPipeline",
6503 &self.glBindProgramPipeline_p,
6504 pipeline,
6505 );
6506 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6507 {
6508 self.automatic_glGetError("glBindProgramPipeline");
6509 }
6510 out
6511 }
6512 #[doc(hidden)]
6513 pub unsafe fn BindProgramPipeline_load_with_dyn(
6514 &self,
6515 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6516 ) -> bool {
6517 load_dyn_name_atomic_ptr(
6518 get_proc_address,
6519 b"glBindProgramPipeline\0",
6520 &self.glBindProgramPipeline_p,
6521 )
6522 }
6523 #[inline]
6524 #[doc(hidden)]
6525 pub fn BindProgramPipeline_is_loaded(&self) -> bool {
6526 !self.glBindProgramPipeline_p.load(RELAX).is_null()
6527 }
6528 #[cfg_attr(feature = "inline", inline)]
6531 #[cfg_attr(feature = "inline_always", inline(always))]
6532 pub unsafe fn BindRenderbuffer(&self, target: GLenum, renderbuffer: GLuint) {
6533 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6534 {
6535 trace!(
6536 "calling gl.BindRenderbuffer({:#X}, {:?});",
6537 target,
6538 renderbuffer
6539 );
6540 }
6541 let out = call_atomic_ptr_2arg(
6542 "glBindRenderbuffer",
6543 &self.glBindRenderbuffer_p,
6544 target,
6545 renderbuffer,
6546 );
6547 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6548 {
6549 self.automatic_glGetError("glBindRenderbuffer");
6550 }
6551 out
6552 }
6553 #[doc(hidden)]
6554 pub unsafe fn BindRenderbuffer_load_with_dyn(
6555 &self,
6556 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6557 ) -> bool {
6558 load_dyn_name_atomic_ptr(
6559 get_proc_address,
6560 b"glBindRenderbuffer\0",
6561 &self.glBindRenderbuffer_p,
6562 )
6563 }
6564 #[inline]
6565 #[doc(hidden)]
6566 pub fn BindRenderbuffer_is_loaded(&self) -> bool {
6567 !self.glBindRenderbuffer_p.load(RELAX).is_null()
6568 }
6569 #[cfg_attr(feature = "inline", inline)]
6571 #[cfg_attr(feature = "inline_always", inline(always))]
6572 pub unsafe fn BindSampler(&self, unit: GLuint, sampler: GLuint) {
6573 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6574 {
6575 trace!("calling gl.BindSampler({:?}, {:?});", unit, sampler);
6576 }
6577 let out = call_atomic_ptr_2arg("glBindSampler", &self.glBindSampler_p, unit, sampler);
6578 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6579 {
6580 self.automatic_glGetError("glBindSampler");
6581 }
6582 out
6583 }
6584 #[doc(hidden)]
6585 pub unsafe fn BindSampler_load_with_dyn(
6586 &self,
6587 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6588 ) -> bool {
6589 load_dyn_name_atomic_ptr(get_proc_address, b"glBindSampler\0", &self.glBindSampler_p)
6590 }
6591 #[inline]
6592 #[doc(hidden)]
6593 pub fn BindSampler_is_loaded(&self) -> bool {
6594 !self.glBindSampler_p.load(RELAX).is_null()
6595 }
6596 #[cfg_attr(feature = "inline", inline)]
6599 #[cfg_attr(feature = "inline_always", inline(always))]
6600 pub unsafe fn BindSamplers(&self, first: GLuint, count: GLsizei, samplers: *const GLuint) {
6601 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6602 {
6603 trace!(
6604 "calling gl.BindSamplers({:?}, {:?}, {:p});",
6605 first,
6606 count,
6607 samplers
6608 );
6609 }
6610 let out = call_atomic_ptr_3arg(
6611 "glBindSamplers",
6612 &self.glBindSamplers_p,
6613 first,
6614 count,
6615 samplers,
6616 );
6617 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6618 {
6619 self.automatic_glGetError("glBindSamplers");
6620 }
6621 out
6622 }
6623 #[doc(hidden)]
6624 pub unsafe fn BindSamplers_load_with_dyn(
6625 &self,
6626 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6627 ) -> bool {
6628 load_dyn_name_atomic_ptr(
6629 get_proc_address,
6630 b"glBindSamplers\0",
6631 &self.glBindSamplers_p,
6632 )
6633 }
6634 #[inline]
6635 #[doc(hidden)]
6636 pub fn BindSamplers_is_loaded(&self) -> bool {
6637 !self.glBindSamplers_p.load(RELAX).is_null()
6638 }
6639 #[cfg_attr(feature = "inline", inline)]
6643 #[cfg_attr(feature = "inline_always", inline(always))]
6644 pub unsafe fn BindTexture(&self, target: GLenum, texture: GLuint) {
6645 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6646 {
6647 trace!("calling gl.BindTexture({:#X}, {:?});", target, texture);
6648 }
6649 let out = call_atomic_ptr_2arg("glBindTexture", &self.glBindTexture_p, target, texture);
6650 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6651 {
6652 self.automatic_glGetError("glBindTexture");
6653 }
6654 out
6655 }
6656 #[doc(hidden)]
6657 pub unsafe fn BindTexture_load_with_dyn(
6658 &self,
6659 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6660 ) -> bool {
6661 load_dyn_name_atomic_ptr(get_proc_address, b"glBindTexture\0", &self.glBindTexture_p)
6662 }
6663 #[inline]
6664 #[doc(hidden)]
6665 pub fn BindTexture_is_loaded(&self) -> bool {
6666 !self.glBindTexture_p.load(RELAX).is_null()
6667 }
6668 #[cfg_attr(feature = "inline", inline)]
6670 #[cfg_attr(feature = "inline_always", inline(always))]
6671 pub unsafe fn BindTextureUnit(&self, unit: GLuint, texture: GLuint) {
6672 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6673 {
6674 trace!("calling gl.BindTextureUnit({:?}, {:?});", unit, texture);
6675 }
6676 let out = call_atomic_ptr_2arg(
6677 "glBindTextureUnit",
6678 &self.glBindTextureUnit_p,
6679 unit,
6680 texture,
6681 );
6682 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6683 {
6684 self.automatic_glGetError("glBindTextureUnit");
6685 }
6686 out
6687 }
6688 #[doc(hidden)]
6689 pub unsafe fn BindTextureUnit_load_with_dyn(
6690 &self,
6691 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6692 ) -> bool {
6693 load_dyn_name_atomic_ptr(
6694 get_proc_address,
6695 b"glBindTextureUnit\0",
6696 &self.glBindTextureUnit_p,
6697 )
6698 }
6699 #[inline]
6700 #[doc(hidden)]
6701 pub fn BindTextureUnit_is_loaded(&self) -> bool {
6702 !self.glBindTextureUnit_p.load(RELAX).is_null()
6703 }
6704 #[cfg_attr(feature = "inline", inline)]
6707 #[cfg_attr(feature = "inline_always", inline(always))]
6708 pub unsafe fn BindTextures(&self, first: GLuint, count: GLsizei, textures: *const GLuint) {
6709 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6710 {
6711 trace!(
6712 "calling gl.BindTextures({:?}, {:?}, {:p});",
6713 first,
6714 count,
6715 textures
6716 );
6717 }
6718 let out = call_atomic_ptr_3arg(
6719 "glBindTextures",
6720 &self.glBindTextures_p,
6721 first,
6722 count,
6723 textures,
6724 );
6725 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6726 {
6727 self.automatic_glGetError("glBindTextures");
6728 }
6729 out
6730 }
6731 #[doc(hidden)]
6732 pub unsafe fn BindTextures_load_with_dyn(
6733 &self,
6734 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6735 ) -> bool {
6736 load_dyn_name_atomic_ptr(
6737 get_proc_address,
6738 b"glBindTextures\0",
6739 &self.glBindTextures_p,
6740 )
6741 }
6742 #[inline]
6743 #[doc(hidden)]
6744 pub fn BindTextures_is_loaded(&self) -> bool {
6745 !self.glBindTextures_p.load(RELAX).is_null()
6746 }
6747 #[cfg_attr(feature = "inline", inline)]
6750 #[cfg_attr(feature = "inline_always", inline(always))]
6751 pub unsafe fn BindTransformFeedback(&self, target: GLenum, id: GLuint) {
6752 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6753 {
6754 trace!("calling gl.BindTransformFeedback({:#X}, {:?});", target, id);
6755 }
6756 let out = call_atomic_ptr_2arg(
6757 "glBindTransformFeedback",
6758 &self.glBindTransformFeedback_p,
6759 target,
6760 id,
6761 );
6762 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6763 {
6764 self.automatic_glGetError("glBindTransformFeedback");
6765 }
6766 out
6767 }
6768 #[doc(hidden)]
6769 pub unsafe fn BindTransformFeedback_load_with_dyn(
6770 &self,
6771 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6772 ) -> bool {
6773 load_dyn_name_atomic_ptr(
6774 get_proc_address,
6775 b"glBindTransformFeedback\0",
6776 &self.glBindTransformFeedback_p,
6777 )
6778 }
6779 #[inline]
6780 #[doc(hidden)]
6781 pub fn BindTransformFeedback_is_loaded(&self) -> bool {
6782 !self.glBindTransformFeedback_p.load(RELAX).is_null()
6783 }
6784 #[cfg_attr(feature = "inline", inline)]
6786 #[cfg_attr(feature = "inline_always", inline(always))]
6787 pub unsafe fn BindVertexArray(&self, array: GLuint) {
6788 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6789 {
6790 trace!("calling gl.BindVertexArray({:?});", array);
6791 }
6792 let out = call_atomic_ptr_1arg("glBindVertexArray", &self.glBindVertexArray_p, array);
6793 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6794 {
6795 self.automatic_glGetError("glBindVertexArray");
6796 }
6797 out
6798 }
6799 #[doc(hidden)]
6800 pub unsafe fn BindVertexArray_load_with_dyn(
6801 &self,
6802 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6803 ) -> bool {
6804 load_dyn_name_atomic_ptr(
6805 get_proc_address,
6806 b"glBindVertexArray\0",
6807 &self.glBindVertexArray_p,
6808 )
6809 }
6810 #[inline]
6811 #[doc(hidden)]
6812 pub fn BindVertexArray_is_loaded(&self) -> bool {
6813 !self.glBindVertexArray_p.load(RELAX).is_null()
6814 }
6815 #[cfg_attr(feature = "inline", inline)]
6817 #[cfg_attr(feature = "inline_always", inline(always))]
6818 pub unsafe fn BindVertexArrayAPPLE(&self, array: GLuint) {
6819 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6820 {
6821 trace!("calling gl.BindVertexArrayAPPLE({:?});", array);
6822 }
6823 let out = call_atomic_ptr_1arg(
6824 "glBindVertexArrayAPPLE",
6825 &self.glBindVertexArrayAPPLE_p,
6826 array,
6827 );
6828 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6829 {
6830 self.automatic_glGetError("glBindVertexArrayAPPLE");
6831 }
6832 out
6833 }
6834 #[doc(hidden)]
6835 pub unsafe fn BindVertexArrayAPPLE_load_with_dyn(
6836 &self,
6837 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6838 ) -> bool {
6839 load_dyn_name_atomic_ptr(
6840 get_proc_address,
6841 b"glBindVertexArrayAPPLE\0",
6842 &self.glBindVertexArrayAPPLE_p,
6843 )
6844 }
6845 #[inline]
6846 #[doc(hidden)]
6847 pub fn BindVertexArrayAPPLE_is_loaded(&self) -> bool {
6848 !self.glBindVertexArrayAPPLE_p.load(RELAX).is_null()
6849 }
6850 #[cfg_attr(feature = "inline", inline)]
6853 #[cfg_attr(feature = "inline_always", inline(always))]
6854 pub unsafe fn BindVertexArrayOES(&self, array: GLuint) {
6855 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6856 {
6857 trace!("calling gl.BindVertexArrayOES({:?});", array);
6858 }
6859 let out =
6860 call_atomic_ptr_1arg("glBindVertexArrayOES", &self.glBindVertexArrayOES_p, array);
6861 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6862 {
6863 self.automatic_glGetError("glBindVertexArrayOES");
6864 }
6865 out
6866 }
6867 #[doc(hidden)]
6868 pub unsafe fn BindVertexArrayOES_load_with_dyn(
6869 &self,
6870 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6871 ) -> bool {
6872 load_dyn_name_atomic_ptr(
6873 get_proc_address,
6874 b"glBindVertexArrayOES\0",
6875 &self.glBindVertexArrayOES_p,
6876 )
6877 }
6878 #[inline]
6879 #[doc(hidden)]
6880 pub fn BindVertexArrayOES_is_loaded(&self) -> bool {
6881 !self.glBindVertexArrayOES_p.load(RELAX).is_null()
6882 }
6883 #[cfg_attr(feature = "inline", inline)]
6886 #[cfg_attr(feature = "inline_always", inline(always))]
6887 pub unsafe fn BindVertexBuffer(
6888 &self,
6889 bindingindex: GLuint,
6890 buffer: GLuint,
6891 offset: GLintptr,
6892 stride: GLsizei,
6893 ) {
6894 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6895 {
6896 trace!(
6897 "calling gl.BindVertexBuffer({:?}, {:?}, {:?}, {:?});",
6898 bindingindex,
6899 buffer,
6900 offset,
6901 stride
6902 );
6903 }
6904 let out = call_atomic_ptr_4arg(
6905 "glBindVertexBuffer",
6906 &self.glBindVertexBuffer_p,
6907 bindingindex,
6908 buffer,
6909 offset,
6910 stride,
6911 );
6912 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6913 {
6914 self.automatic_glGetError("glBindVertexBuffer");
6915 }
6916 out
6917 }
6918 #[doc(hidden)]
6919 pub unsafe fn BindVertexBuffer_load_with_dyn(
6920 &self,
6921 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6922 ) -> bool {
6923 load_dyn_name_atomic_ptr(
6924 get_proc_address,
6925 b"glBindVertexBuffer\0",
6926 &self.glBindVertexBuffer_p,
6927 )
6928 }
6929 #[inline]
6930 #[doc(hidden)]
6931 pub fn BindVertexBuffer_is_loaded(&self) -> bool {
6932 !self.glBindVertexBuffer_p.load(RELAX).is_null()
6933 }
6934 #[cfg_attr(feature = "inline", inline)]
6939 #[cfg_attr(feature = "inline_always", inline(always))]
6940 pub unsafe fn BindVertexBuffers(
6941 &self,
6942 first: GLuint,
6943 count: GLsizei,
6944 buffers: *const GLuint,
6945 offsets: *const GLintptr,
6946 strides: *const GLsizei,
6947 ) {
6948 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6949 {
6950 trace!(
6951 "calling gl.BindVertexBuffers({:?}, {:?}, {:p}, {:p}, {:p});",
6952 first,
6953 count,
6954 buffers,
6955 offsets,
6956 strides
6957 );
6958 }
6959 let out = call_atomic_ptr_5arg(
6960 "glBindVertexBuffers",
6961 &self.glBindVertexBuffers_p,
6962 first,
6963 count,
6964 buffers,
6965 offsets,
6966 strides,
6967 );
6968 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6969 {
6970 self.automatic_glGetError("glBindVertexBuffers");
6971 }
6972 out
6973 }
6974 #[doc(hidden)]
6975 pub unsafe fn BindVertexBuffers_load_with_dyn(
6976 &self,
6977 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6978 ) -> bool {
6979 load_dyn_name_atomic_ptr(
6980 get_proc_address,
6981 b"glBindVertexBuffers\0",
6982 &self.glBindVertexBuffers_p,
6983 )
6984 }
6985 #[inline]
6986 #[doc(hidden)]
6987 pub fn BindVertexBuffers_is_loaded(&self) -> bool {
6988 !self.glBindVertexBuffers_p.load(RELAX).is_null()
6989 }
6990 #[cfg_attr(feature = "inline", inline)]
6992 #[cfg_attr(feature = "inline_always", inline(always))]
6993 pub unsafe fn BlendBarrier(&self) {
6994 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6995 {
6996 trace!("calling gl.BlendBarrier();",);
6997 }
6998 let out = call_atomic_ptr_0arg("glBlendBarrier", &self.glBlendBarrier_p);
6999 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7000 {
7001 self.automatic_glGetError("glBlendBarrier");
7002 }
7003 out
7004 }
7005 #[doc(hidden)]
7006 pub unsafe fn BlendBarrier_load_with_dyn(
7007 &self,
7008 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7009 ) -> bool {
7010 load_dyn_name_atomic_ptr(
7011 get_proc_address,
7012 b"glBlendBarrier\0",
7013 &self.glBlendBarrier_p,
7014 )
7015 }
7016 #[inline]
7017 #[doc(hidden)]
7018 pub fn BlendBarrier_is_loaded(&self) -> bool {
7019 !self.glBlendBarrier_p.load(RELAX).is_null()
7020 }
7021 #[cfg_attr(feature = "inline", inline)]
7027 #[cfg_attr(feature = "inline_always", inline(always))]
7028 pub unsafe fn BlendColor(
7029 &self,
7030 red: GLfloat,
7031 green: GLfloat,
7032 blue: GLfloat,
7033 alpha: GLfloat,
7034 ) {
7035 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7036 {
7037 trace!(
7038 "calling gl.BlendColor({:?}, {:?}, {:?}, {:?});",
7039 red,
7040 green,
7041 blue,
7042 alpha
7043 );
7044 }
7045 let out = call_atomic_ptr_4arg(
7046 "glBlendColor",
7047 &self.glBlendColor_p,
7048 red,
7049 green,
7050 blue,
7051 alpha,
7052 );
7053 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7054 {
7055 self.automatic_glGetError("glBlendColor");
7056 }
7057 out
7058 }
7059 #[doc(hidden)]
7060 pub unsafe fn BlendColor_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(get_proc_address, b"glBlendColor\0", &self.glBlendColor_p)
7065 }
7066 #[inline]
7067 #[doc(hidden)]
7068 pub fn BlendColor_is_loaded(&self) -> bool {
7069 !self.glBlendColor_p.load(RELAX).is_null()
7070 }
7071 #[cfg_attr(feature = "inline", inline)]
7074 #[cfg_attr(feature = "inline_always", inline(always))]
7075 pub unsafe fn BlendEquation(&self, mode: GLenum) {
7076 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7077 {
7078 trace!("calling gl.BlendEquation({:#X});", mode);
7079 }
7080 let out = call_atomic_ptr_1arg("glBlendEquation", &self.glBlendEquation_p, mode);
7081 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7082 {
7083 self.automatic_glGetError("glBlendEquation");
7084 }
7085 out
7086 }
7087 #[doc(hidden)]
7088 pub unsafe fn BlendEquation_load_with_dyn(
7089 &self,
7090 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7091 ) -> bool {
7092 load_dyn_name_atomic_ptr(
7093 get_proc_address,
7094 b"glBlendEquation\0",
7095 &self.glBlendEquation_p,
7096 )
7097 }
7098 #[inline]
7099 #[doc(hidden)]
7100 pub fn BlendEquation_is_loaded(&self) -> bool {
7101 !self.glBlendEquation_p.load(RELAX).is_null()
7102 }
7103 #[cfg_attr(feature = "inline", inline)]
7107 #[cfg_attr(feature = "inline_always", inline(always))]
7108 pub unsafe fn BlendEquationSeparate(&self, modeRGB: GLenum, modeAlpha: GLenum) {
7109 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7110 {
7111 trace!(
7112 "calling gl.BlendEquationSeparate({:#X}, {:#X});",
7113 modeRGB,
7114 modeAlpha
7115 );
7116 }
7117 let out = call_atomic_ptr_2arg(
7118 "glBlendEquationSeparate",
7119 &self.glBlendEquationSeparate_p,
7120 modeRGB,
7121 modeAlpha,
7122 );
7123 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7124 {
7125 self.automatic_glGetError("glBlendEquationSeparate");
7126 }
7127 out
7128 }
7129 #[doc(hidden)]
7130 pub unsafe fn BlendEquationSeparate_load_with_dyn(
7131 &self,
7132 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7133 ) -> bool {
7134 load_dyn_name_atomic_ptr(
7135 get_proc_address,
7136 b"glBlendEquationSeparate\0",
7137 &self.glBlendEquationSeparate_p,
7138 )
7139 }
7140 #[inline]
7141 #[doc(hidden)]
7142 pub fn BlendEquationSeparate_is_loaded(&self) -> bool {
7143 !self.glBlendEquationSeparate_p.load(RELAX).is_null()
7144 }
7145 #[cfg_attr(feature = "inline", inline)]
7149 #[cfg_attr(feature = "inline_always", inline(always))]
7150 pub unsafe fn BlendEquationSeparatei(
7151 &self,
7152 buf: GLuint,
7153 modeRGB: GLenum,
7154 modeAlpha: GLenum,
7155 ) {
7156 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7157 {
7158 trace!(
7159 "calling gl.BlendEquationSeparatei({:?}, {:#X}, {:#X});",
7160 buf,
7161 modeRGB,
7162 modeAlpha
7163 );
7164 }
7165 let out = call_atomic_ptr_3arg(
7166 "glBlendEquationSeparatei",
7167 &self.glBlendEquationSeparatei_p,
7168 buf,
7169 modeRGB,
7170 modeAlpha,
7171 );
7172 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7173 {
7174 self.automatic_glGetError("glBlendEquationSeparatei");
7175 }
7176 out
7177 }
7178 #[doc(hidden)]
7179 pub unsafe fn BlendEquationSeparatei_load_with_dyn(
7180 &self,
7181 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7182 ) -> bool {
7183 load_dyn_name_atomic_ptr(
7184 get_proc_address,
7185 b"glBlendEquationSeparatei\0",
7186 &self.glBlendEquationSeparatei_p,
7187 )
7188 }
7189 #[inline]
7190 #[doc(hidden)]
7191 pub fn BlendEquationSeparatei_is_loaded(&self) -> bool {
7192 !self.glBlendEquationSeparatei_p.load(RELAX).is_null()
7193 }
7194 #[cfg_attr(feature = "inline", inline)]
7197 #[cfg_attr(feature = "inline_always", inline(always))]
7198 pub unsafe fn BlendEquationi(&self, buf: GLuint, mode: GLenum) {
7199 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7200 {
7201 trace!("calling gl.BlendEquationi({:?}, {:#X});", buf, mode);
7202 }
7203 let out = call_atomic_ptr_2arg("glBlendEquationi", &self.glBlendEquationi_p, buf, mode);
7204 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7205 {
7206 self.automatic_glGetError("glBlendEquationi");
7207 }
7208 out
7209 }
7210 #[doc(hidden)]
7211 pub unsafe fn BlendEquationi_load_with_dyn(
7212 &self,
7213 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7214 ) -> bool {
7215 load_dyn_name_atomic_ptr(
7216 get_proc_address,
7217 b"glBlendEquationi\0",
7218 &self.glBlendEquationi_p,
7219 )
7220 }
7221 #[inline]
7222 #[doc(hidden)]
7223 pub fn BlendEquationi_is_loaded(&self) -> bool {
7224 !self.glBlendEquationi_p.load(RELAX).is_null()
7225 }
7226 #[cfg_attr(feature = "inline", inline)]
7230 #[cfg_attr(feature = "inline_always", inline(always))]
7231 pub unsafe fn BlendFunc(&self, sfactor: GLenum, dfactor: GLenum) {
7232 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7233 {
7234 trace!("calling gl.BlendFunc({:#X}, {:#X});", sfactor, dfactor);
7235 }
7236 let out = call_atomic_ptr_2arg("glBlendFunc", &self.glBlendFunc_p, sfactor, dfactor);
7237 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7238 {
7239 self.automatic_glGetError("glBlendFunc");
7240 }
7241 out
7242 }
7243 #[doc(hidden)]
7244 pub unsafe fn BlendFunc_load_with_dyn(
7245 &self,
7246 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7247 ) -> bool {
7248 load_dyn_name_atomic_ptr(get_proc_address, b"glBlendFunc\0", &self.glBlendFunc_p)
7249 }
7250 #[inline]
7251 #[doc(hidden)]
7252 pub fn BlendFunc_is_loaded(&self) -> bool {
7253 !self.glBlendFunc_p.load(RELAX).is_null()
7254 }
7255 #[cfg_attr(feature = "inline", inline)]
7261 #[cfg_attr(feature = "inline_always", inline(always))]
7262 pub unsafe fn BlendFuncSeparate(
7263 &self,
7264 sfactorRGB: GLenum,
7265 dfactorRGB: GLenum,
7266 sfactorAlpha: GLenum,
7267 dfactorAlpha: GLenum,
7268 ) {
7269 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7270 {
7271 trace!(
7272 "calling gl.BlendFuncSeparate({:#X}, {:#X}, {:#X}, {:#X});",
7273 sfactorRGB,
7274 dfactorRGB,
7275 sfactorAlpha,
7276 dfactorAlpha
7277 );
7278 }
7279 let out = call_atomic_ptr_4arg(
7280 "glBlendFuncSeparate",
7281 &self.glBlendFuncSeparate_p,
7282 sfactorRGB,
7283 dfactorRGB,
7284 sfactorAlpha,
7285 dfactorAlpha,
7286 );
7287 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7288 {
7289 self.automatic_glGetError("glBlendFuncSeparate");
7290 }
7291 out
7292 }
7293 #[doc(hidden)]
7294 pub unsafe fn BlendFuncSeparate_load_with_dyn(
7295 &self,
7296 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7297 ) -> bool {
7298 load_dyn_name_atomic_ptr(
7299 get_proc_address,
7300 b"glBlendFuncSeparate\0",
7301 &self.glBlendFuncSeparate_p,
7302 )
7303 }
7304 #[inline]
7305 #[doc(hidden)]
7306 pub fn BlendFuncSeparate_is_loaded(&self) -> bool {
7307 !self.glBlendFuncSeparate_p.load(RELAX).is_null()
7308 }
7309 #[cfg_attr(feature = "inline", inline)]
7315 #[cfg_attr(feature = "inline_always", inline(always))]
7316 pub unsafe fn BlendFuncSeparatei(
7317 &self,
7318 buf: GLuint,
7319 srcRGB: GLenum,
7320 dstRGB: GLenum,
7321 srcAlpha: GLenum,
7322 dstAlpha: GLenum,
7323 ) {
7324 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7325 {
7326 trace!(
7327 "calling gl.BlendFuncSeparatei({:?}, {:#X}, {:#X}, {:#X}, {:#X});",
7328 buf,
7329 srcRGB,
7330 dstRGB,
7331 srcAlpha,
7332 dstAlpha
7333 );
7334 }
7335 let out = call_atomic_ptr_5arg(
7336 "glBlendFuncSeparatei",
7337 &self.glBlendFuncSeparatei_p,
7338 buf,
7339 srcRGB,
7340 dstRGB,
7341 srcAlpha,
7342 dstAlpha,
7343 );
7344 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7345 {
7346 self.automatic_glGetError("glBlendFuncSeparatei");
7347 }
7348 out
7349 }
7350 #[doc(hidden)]
7351 pub unsafe fn BlendFuncSeparatei_load_with_dyn(
7352 &self,
7353 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7354 ) -> bool {
7355 load_dyn_name_atomic_ptr(
7356 get_proc_address,
7357 b"glBlendFuncSeparatei\0",
7358 &self.glBlendFuncSeparatei_p,
7359 )
7360 }
7361 #[inline]
7362 #[doc(hidden)]
7363 pub fn BlendFuncSeparatei_is_loaded(&self) -> bool {
7364 !self.glBlendFuncSeparatei_p.load(RELAX).is_null()
7365 }
7366 #[cfg_attr(feature = "inline", inline)]
7370 #[cfg_attr(feature = "inline_always", inline(always))]
7371 pub unsafe fn BlendFunci(&self, buf: GLuint, src: GLenum, dst: GLenum) {
7372 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7373 {
7374 trace!("calling gl.BlendFunci({:?}, {:#X}, {:#X});", buf, src, dst);
7375 }
7376 let out = call_atomic_ptr_3arg("glBlendFunci", &self.glBlendFunci_p, buf, src, dst);
7377 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7378 {
7379 self.automatic_glGetError("glBlendFunci");
7380 }
7381 out
7382 }
7383 #[doc(hidden)]
7384 pub unsafe fn BlendFunci_load_with_dyn(
7385 &self,
7386 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7387 ) -> bool {
7388 load_dyn_name_atomic_ptr(get_proc_address, b"glBlendFunci\0", &self.glBlendFunci_p)
7389 }
7390 #[inline]
7391 #[doc(hidden)]
7392 pub fn BlendFunci_is_loaded(&self) -> bool {
7393 !self.glBlendFunci_p.load(RELAX).is_null()
7394 }
7395 #[cfg_attr(feature = "inline", inline)]
7399 #[cfg_attr(feature = "inline_always", inline(always))]
7400 pub unsafe fn BlitFramebuffer(
7401 &self,
7402 srcX0: GLint,
7403 srcY0: GLint,
7404 srcX1: GLint,
7405 srcY1: GLint,
7406 dstX0: GLint,
7407 dstY0: GLint,
7408 dstX1: GLint,
7409 dstY1: GLint,
7410 mask: GLbitfield,
7411 filter: GLenum,
7412 ) {
7413 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7414 {
7415 trace!("calling gl.BlitFramebuffer({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X});", srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
7416 }
7417 let out = call_atomic_ptr_10arg(
7418 "glBlitFramebuffer",
7419 &self.glBlitFramebuffer_p,
7420 srcX0,
7421 srcY0,
7422 srcX1,
7423 srcY1,
7424 dstX0,
7425 dstY0,
7426 dstX1,
7427 dstY1,
7428 mask,
7429 filter,
7430 );
7431 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7432 {
7433 self.automatic_glGetError("glBlitFramebuffer");
7434 }
7435 out
7436 }
7437 #[doc(hidden)]
7438 pub unsafe fn BlitFramebuffer_load_with_dyn(
7439 &self,
7440 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7441 ) -> bool {
7442 load_dyn_name_atomic_ptr(
7443 get_proc_address,
7444 b"glBlitFramebuffer\0",
7445 &self.glBlitFramebuffer_p,
7446 )
7447 }
7448 #[inline]
7449 #[doc(hidden)]
7450 pub fn BlitFramebuffer_is_loaded(&self) -> bool {
7451 !self.glBlitFramebuffer_p.load(RELAX).is_null()
7452 }
7453 #[cfg_attr(feature = "inline", inline)]
7457 #[cfg_attr(feature = "inline_always", inline(always))]
7458 pub unsafe fn BlitNamedFramebuffer(
7459 &self,
7460 readFramebuffer: GLuint,
7461 drawFramebuffer: GLuint,
7462 srcX0: GLint,
7463 srcY0: GLint,
7464 srcX1: GLint,
7465 srcY1: GLint,
7466 dstX0: GLint,
7467 dstY0: GLint,
7468 dstX1: GLint,
7469 dstY1: GLint,
7470 mask: GLbitfield,
7471 filter: GLenum,
7472 ) {
7473 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7474 {
7475 trace!("calling gl.BlitNamedFramebuffer({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X});", readFramebuffer, drawFramebuffer, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
7476 }
7477 let out = call_atomic_ptr_12arg(
7478 "glBlitNamedFramebuffer",
7479 &self.glBlitNamedFramebuffer_p,
7480 readFramebuffer,
7481 drawFramebuffer,
7482 srcX0,
7483 srcY0,
7484 srcX1,
7485 srcY1,
7486 dstX0,
7487 dstY0,
7488 dstX1,
7489 dstY1,
7490 mask,
7491 filter,
7492 );
7493 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7494 {
7495 self.automatic_glGetError("glBlitNamedFramebuffer");
7496 }
7497 out
7498 }
7499 #[doc(hidden)]
7500 pub unsafe fn BlitNamedFramebuffer_load_with_dyn(
7501 &self,
7502 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7503 ) -> bool {
7504 load_dyn_name_atomic_ptr(
7505 get_proc_address,
7506 b"glBlitNamedFramebuffer\0",
7507 &self.glBlitNamedFramebuffer_p,
7508 )
7509 }
7510 #[inline]
7511 #[doc(hidden)]
7512 pub fn BlitNamedFramebuffer_is_loaded(&self) -> bool {
7513 !self.glBlitNamedFramebuffer_p.load(RELAX).is_null()
7514 }
7515 #[cfg_attr(feature = "inline", inline)]
7521 #[cfg_attr(feature = "inline_always", inline(always))]
7522 pub unsafe fn BufferData(
7523 &self,
7524 target: GLenum,
7525 size: GLsizeiptr,
7526 data: *const c_void,
7527 usage: GLenum,
7528 ) {
7529 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7530 {
7531 trace!(
7532 "calling gl.BufferData({:#X}, {:?}, {:p}, {:#X});",
7533 target,
7534 size,
7535 data,
7536 usage
7537 );
7538 }
7539 let out = call_atomic_ptr_4arg(
7540 "glBufferData",
7541 &self.glBufferData_p,
7542 target,
7543 size,
7544 data,
7545 usage,
7546 );
7547 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7548 {
7549 self.automatic_glGetError("glBufferData");
7550 }
7551 out
7552 }
7553 #[doc(hidden)]
7554 pub unsafe fn BufferData_load_with_dyn(
7555 &self,
7556 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7557 ) -> bool {
7558 load_dyn_name_atomic_ptr(get_proc_address, b"glBufferData\0", &self.glBufferData_p)
7559 }
7560 #[inline]
7561 #[doc(hidden)]
7562 pub fn BufferData_is_loaded(&self) -> bool {
7563 !self.glBufferData_p.load(RELAX).is_null()
7564 }
7565 #[cfg_attr(feature = "inline", inline)]
7570 #[cfg_attr(feature = "inline_always", inline(always))]
7571 pub unsafe fn BufferStorage(
7572 &self,
7573 target: GLenum,
7574 size: GLsizeiptr,
7575 data: *const c_void,
7576 flags: GLbitfield,
7577 ) {
7578 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7579 {
7580 trace!(
7581 "calling gl.BufferStorage({:#X}, {:?}, {:p}, {:?});",
7582 target,
7583 size,
7584 data,
7585 flags
7586 );
7587 }
7588 let out = call_atomic_ptr_4arg(
7589 "glBufferStorage",
7590 &self.glBufferStorage_p,
7591 target,
7592 size,
7593 data,
7594 flags,
7595 );
7596 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7597 {
7598 self.automatic_glGetError("glBufferStorage");
7599 }
7600 out
7601 }
7602 #[doc(hidden)]
7603 pub unsafe fn BufferStorage_load_with_dyn(
7604 &self,
7605 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7606 ) -> bool {
7607 load_dyn_name_atomic_ptr(
7608 get_proc_address,
7609 b"glBufferStorage\0",
7610 &self.glBufferStorage_p,
7611 )
7612 }
7613 #[inline]
7614 #[doc(hidden)]
7615 pub fn BufferStorage_is_loaded(&self) -> bool {
7616 !self.glBufferStorage_p.load(RELAX).is_null()
7617 }
7618 #[cfg_attr(feature = "inline", inline)]
7624 #[cfg_attr(feature = "inline_always", inline(always))]
7625 pub unsafe fn BufferStorageEXT(
7626 &self,
7627 target: GLenum,
7628 size: GLsizeiptr,
7629 data: *const c_void,
7630 flags: GLbitfield,
7631 ) {
7632 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7633 {
7634 trace!(
7635 "calling gl.BufferStorageEXT({:#X}, {:?}, {:p}, {:?});",
7636 target,
7637 size,
7638 data,
7639 flags
7640 );
7641 }
7642 let out = call_atomic_ptr_4arg(
7643 "glBufferStorageEXT",
7644 &self.glBufferStorageEXT_p,
7645 target,
7646 size,
7647 data,
7648 flags,
7649 );
7650 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7651 {
7652 self.automatic_glGetError("glBufferStorageEXT");
7653 }
7654 out
7655 }
7656 #[doc(hidden)]
7657 pub unsafe fn BufferStorageEXT_load_with_dyn(
7658 &self,
7659 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7660 ) -> bool {
7661 load_dyn_name_atomic_ptr(
7662 get_proc_address,
7663 b"glBufferStorageEXT\0",
7664 &self.glBufferStorageEXT_p,
7665 )
7666 }
7667 #[inline]
7668 #[doc(hidden)]
7669 pub fn BufferStorageEXT_is_loaded(&self) -> bool {
7670 !self.glBufferStorageEXT_p.load(RELAX).is_null()
7671 }
7672 #[cfg_attr(feature = "inline", inline)]
7678 #[cfg_attr(feature = "inline_always", inline(always))]
7679 pub unsafe fn BufferSubData(
7680 &self,
7681 target: GLenum,
7682 offset: GLintptr,
7683 size: GLsizeiptr,
7684 data: *const c_void,
7685 ) {
7686 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7687 {
7688 trace!(
7689 "calling gl.BufferSubData({:#X}, {:?}, {:?}, {:p});",
7690 target,
7691 offset,
7692 size,
7693 data
7694 );
7695 }
7696 let out = call_atomic_ptr_4arg(
7697 "glBufferSubData",
7698 &self.glBufferSubData_p,
7699 target,
7700 offset,
7701 size,
7702 data,
7703 );
7704 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7705 {
7706 self.automatic_glGetError("glBufferSubData");
7707 }
7708 out
7709 }
7710 #[doc(hidden)]
7711 pub unsafe fn BufferSubData_load_with_dyn(
7712 &self,
7713 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7714 ) -> bool {
7715 load_dyn_name_atomic_ptr(
7716 get_proc_address,
7717 b"glBufferSubData\0",
7718 &self.glBufferSubData_p,
7719 )
7720 }
7721 #[inline]
7722 #[doc(hidden)]
7723 pub fn BufferSubData_is_loaded(&self) -> bool {
7724 !self.glBufferSubData_p.load(RELAX).is_null()
7725 }
7726 #[cfg_attr(feature = "inline", inline)]
7730 #[cfg_attr(feature = "inline_always", inline(always))]
7731 pub unsafe fn CheckFramebufferStatus(&self, target: GLenum) -> GLenum {
7732 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7733 {
7734 trace!("calling gl.CheckFramebufferStatus({:#X});", target);
7735 }
7736 let out = call_atomic_ptr_1arg(
7737 "glCheckFramebufferStatus",
7738 &self.glCheckFramebufferStatus_p,
7739 target,
7740 );
7741 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7742 {
7743 self.automatic_glGetError("glCheckFramebufferStatus");
7744 }
7745 out
7746 }
7747 #[doc(hidden)]
7748 pub unsafe fn CheckFramebufferStatus_load_with_dyn(
7749 &self,
7750 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7751 ) -> bool {
7752 load_dyn_name_atomic_ptr(
7753 get_proc_address,
7754 b"glCheckFramebufferStatus\0",
7755 &self.glCheckFramebufferStatus_p,
7756 )
7757 }
7758 #[inline]
7759 #[doc(hidden)]
7760 pub fn CheckFramebufferStatus_is_loaded(&self) -> bool {
7761 !self.glCheckFramebufferStatus_p.load(RELAX).is_null()
7762 }
7763 #[cfg_attr(feature = "inline", inline)]
7767 #[cfg_attr(feature = "inline_always", inline(always))]
7768 pub unsafe fn CheckNamedFramebufferStatus(
7769 &self,
7770 framebuffer: GLuint,
7771 target: GLenum,
7772 ) -> GLenum {
7773 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7774 {
7775 trace!(
7776 "calling gl.CheckNamedFramebufferStatus({:?}, {:#X});",
7777 framebuffer,
7778 target
7779 );
7780 }
7781 let out = call_atomic_ptr_2arg(
7782 "glCheckNamedFramebufferStatus",
7783 &self.glCheckNamedFramebufferStatus_p,
7784 framebuffer,
7785 target,
7786 );
7787 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7788 {
7789 self.automatic_glGetError("glCheckNamedFramebufferStatus");
7790 }
7791 out
7792 }
7793 #[doc(hidden)]
7794 pub unsafe fn CheckNamedFramebufferStatus_load_with_dyn(
7795 &self,
7796 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7797 ) -> bool {
7798 load_dyn_name_atomic_ptr(
7799 get_proc_address,
7800 b"glCheckNamedFramebufferStatus\0",
7801 &self.glCheckNamedFramebufferStatus_p,
7802 )
7803 }
7804 #[inline]
7805 #[doc(hidden)]
7806 pub fn CheckNamedFramebufferStatus_is_loaded(&self) -> bool {
7807 !self.glCheckNamedFramebufferStatus_p.load(RELAX).is_null()
7808 }
7809 #[cfg_attr(feature = "inline", inline)]
7813 #[cfg_attr(feature = "inline_always", inline(always))]
7814 pub unsafe fn ClampColor(&self, target: GLenum, clamp: GLenum) {
7815 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7816 {
7817 trace!("calling gl.ClampColor({:#X}, {:#X});", target, clamp);
7818 }
7819 let out = call_atomic_ptr_2arg("glClampColor", &self.glClampColor_p, target, clamp);
7820 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7821 {
7822 self.automatic_glGetError("glClampColor");
7823 }
7824 out
7825 }
7826 #[doc(hidden)]
7827 pub unsafe fn ClampColor_load_with_dyn(
7828 &self,
7829 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7830 ) -> bool {
7831 load_dyn_name_atomic_ptr(get_proc_address, b"glClampColor\0", &self.glClampColor_p)
7832 }
7833 #[inline]
7834 #[doc(hidden)]
7835 pub fn ClampColor_is_loaded(&self) -> bool {
7836 !self.glClampColor_p.load(RELAX).is_null()
7837 }
7838 #[cfg_attr(feature = "inline", inline)]
7841 #[cfg_attr(feature = "inline_always", inline(always))]
7842 pub unsafe fn Clear(&self, mask: GLbitfield) {
7843 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7844 {
7845 trace!("calling gl.Clear({:?});", mask);
7846 }
7847 let out = call_atomic_ptr_1arg("glClear", &self.glClear_p, mask);
7848 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7849 {
7850 self.automatic_glGetError("glClear");
7851 }
7852 out
7853 }
7854 #[doc(hidden)]
7855 pub unsafe fn Clear_load_with_dyn(
7856 &self,
7857 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7858 ) -> bool {
7859 load_dyn_name_atomic_ptr(get_proc_address, b"glClear\0", &self.glClear_p)
7860 }
7861 #[inline]
7862 #[doc(hidden)]
7863 pub fn Clear_is_loaded(&self) -> bool {
7864 !self.glClear_p.load(RELAX).is_null()
7865 }
7866 #[cfg_attr(feature = "inline", inline)]
7873 #[cfg_attr(feature = "inline_always", inline(always))]
7874 pub unsafe fn ClearBufferData(
7875 &self,
7876 target: GLenum,
7877 internalformat: GLenum,
7878 format: GLenum,
7879 type_: GLenum,
7880 data: *const c_void,
7881 ) {
7882 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7883 {
7884 trace!(
7885 "calling gl.ClearBufferData({:#X}, {:#X}, {:#X}, {:#X}, {:p});",
7886 target,
7887 internalformat,
7888 format,
7889 type_,
7890 data
7891 );
7892 }
7893 let out = call_atomic_ptr_5arg(
7894 "glClearBufferData",
7895 &self.glClearBufferData_p,
7896 target,
7897 internalformat,
7898 format,
7899 type_,
7900 data,
7901 );
7902 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7903 {
7904 self.automatic_glGetError("glClearBufferData");
7905 }
7906 out
7907 }
7908 #[doc(hidden)]
7909 pub unsafe fn ClearBufferData_load_with_dyn(
7910 &self,
7911 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7912 ) -> bool {
7913 load_dyn_name_atomic_ptr(
7914 get_proc_address,
7915 b"glClearBufferData\0",
7916 &self.glClearBufferData_p,
7917 )
7918 }
7919 #[inline]
7920 #[doc(hidden)]
7921 pub fn ClearBufferData_is_loaded(&self) -> bool {
7922 !self.glClearBufferData_p.load(RELAX).is_null()
7923 }
7924 #[cfg_attr(feature = "inline", inline)]
7933 #[cfg_attr(feature = "inline_always", inline(always))]
7934 pub unsafe fn ClearBufferSubData(
7935 &self,
7936 target: GLenum,
7937 internalformat: GLenum,
7938 offset: GLintptr,
7939 size: GLsizeiptr,
7940 format: GLenum,
7941 type_: GLenum,
7942 data: *const c_void,
7943 ) {
7944 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7945 {
7946 trace!(
7947 "calling gl.ClearBufferSubData({:#X}, {:#X}, {:?}, {:?}, {:#X}, {:#X}, {:p});",
7948 target,
7949 internalformat,
7950 offset,
7951 size,
7952 format,
7953 type_,
7954 data
7955 );
7956 }
7957 let out = call_atomic_ptr_7arg(
7958 "glClearBufferSubData",
7959 &self.glClearBufferSubData_p,
7960 target,
7961 internalformat,
7962 offset,
7963 size,
7964 format,
7965 type_,
7966 data,
7967 );
7968 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7969 {
7970 self.automatic_glGetError("glClearBufferSubData");
7971 }
7972 out
7973 }
7974 #[doc(hidden)]
7975 pub unsafe fn ClearBufferSubData_load_with_dyn(
7976 &self,
7977 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7978 ) -> bool {
7979 load_dyn_name_atomic_ptr(
7980 get_proc_address,
7981 b"glClearBufferSubData\0",
7982 &self.glClearBufferSubData_p,
7983 )
7984 }
7985 #[inline]
7986 #[doc(hidden)]
7987 pub fn ClearBufferSubData_is_loaded(&self) -> bool {
7988 !self.glClearBufferSubData_p.load(RELAX).is_null()
7989 }
7990 #[cfg_attr(feature = "inline", inline)]
7994 #[cfg_attr(feature = "inline_always", inline(always))]
7995 pub unsafe fn ClearBufferfi(
7996 &self,
7997 buffer: GLenum,
7998 drawbuffer: GLint,
7999 depth: GLfloat,
8000 stencil: GLint,
8001 ) {
8002 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8003 {
8004 trace!(
8005 "calling gl.ClearBufferfi({:#X}, {:?}, {:?}, {:?});",
8006 buffer,
8007 drawbuffer,
8008 depth,
8009 stencil
8010 );
8011 }
8012 let out = call_atomic_ptr_4arg(
8013 "glClearBufferfi",
8014 &self.glClearBufferfi_p,
8015 buffer,
8016 drawbuffer,
8017 depth,
8018 stencil,
8019 );
8020 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8021 {
8022 self.automatic_glGetError("glClearBufferfi");
8023 }
8024 out
8025 }
8026 #[doc(hidden)]
8027 pub unsafe fn ClearBufferfi_load_with_dyn(
8028 &self,
8029 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8030 ) -> bool {
8031 load_dyn_name_atomic_ptr(
8032 get_proc_address,
8033 b"glClearBufferfi\0",
8034 &self.glClearBufferfi_p,
8035 )
8036 }
8037 #[inline]
8038 #[doc(hidden)]
8039 pub fn ClearBufferfi_is_loaded(&self) -> bool {
8040 !self.glClearBufferfi_p.load(RELAX).is_null()
8041 }
8042 #[cfg_attr(feature = "inline", inline)]
8047 #[cfg_attr(feature = "inline_always", inline(always))]
8048 pub unsafe fn ClearBufferfv(
8049 &self,
8050 buffer: GLenum,
8051 drawbuffer: GLint,
8052 value: *const GLfloat,
8053 ) {
8054 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8055 {
8056 trace!(
8057 "calling gl.ClearBufferfv({:#X}, {:?}, {:p});",
8058 buffer,
8059 drawbuffer,
8060 value
8061 );
8062 }
8063 let out = call_atomic_ptr_3arg(
8064 "glClearBufferfv",
8065 &self.glClearBufferfv_p,
8066 buffer,
8067 drawbuffer,
8068 value,
8069 );
8070 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8071 {
8072 self.automatic_glGetError("glClearBufferfv");
8073 }
8074 out
8075 }
8076 #[doc(hidden)]
8077 pub unsafe fn ClearBufferfv_load_with_dyn(
8078 &self,
8079 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8080 ) -> bool {
8081 load_dyn_name_atomic_ptr(
8082 get_proc_address,
8083 b"glClearBufferfv\0",
8084 &self.glClearBufferfv_p,
8085 )
8086 }
8087 #[inline]
8088 #[doc(hidden)]
8089 pub fn ClearBufferfv_is_loaded(&self) -> bool {
8090 !self.glClearBufferfv_p.load(RELAX).is_null()
8091 }
8092 #[cfg_attr(feature = "inline", inline)]
8097 #[cfg_attr(feature = "inline_always", inline(always))]
8098 pub unsafe fn ClearBufferiv(&self, buffer: GLenum, drawbuffer: GLint, value: *const GLint) {
8099 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8100 {
8101 trace!(
8102 "calling gl.ClearBufferiv({:#X}, {:?}, {:p});",
8103 buffer,
8104 drawbuffer,
8105 value
8106 );
8107 }
8108 let out = call_atomic_ptr_3arg(
8109 "glClearBufferiv",
8110 &self.glClearBufferiv_p,
8111 buffer,
8112 drawbuffer,
8113 value,
8114 );
8115 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8116 {
8117 self.automatic_glGetError("glClearBufferiv");
8118 }
8119 out
8120 }
8121 #[doc(hidden)]
8122 pub unsafe fn ClearBufferiv_load_with_dyn(
8123 &self,
8124 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8125 ) -> bool {
8126 load_dyn_name_atomic_ptr(
8127 get_proc_address,
8128 b"glClearBufferiv\0",
8129 &self.glClearBufferiv_p,
8130 )
8131 }
8132 #[inline]
8133 #[doc(hidden)]
8134 pub fn ClearBufferiv_is_loaded(&self) -> bool {
8135 !self.glClearBufferiv_p.load(RELAX).is_null()
8136 }
8137 #[cfg_attr(feature = "inline", inline)]
8142 #[cfg_attr(feature = "inline_always", inline(always))]
8143 pub unsafe fn ClearBufferuiv(
8144 &self,
8145 buffer: GLenum,
8146 drawbuffer: GLint,
8147 value: *const GLuint,
8148 ) {
8149 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8150 {
8151 trace!(
8152 "calling gl.ClearBufferuiv({:#X}, {:?}, {:p});",
8153 buffer,
8154 drawbuffer,
8155 value
8156 );
8157 }
8158 let out = call_atomic_ptr_3arg(
8159 "glClearBufferuiv",
8160 &self.glClearBufferuiv_p,
8161 buffer,
8162 drawbuffer,
8163 value,
8164 );
8165 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8166 {
8167 self.automatic_glGetError("glClearBufferuiv");
8168 }
8169 out
8170 }
8171 #[doc(hidden)]
8172 pub unsafe fn ClearBufferuiv_load_with_dyn(
8173 &self,
8174 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8175 ) -> bool {
8176 load_dyn_name_atomic_ptr(
8177 get_proc_address,
8178 b"glClearBufferuiv\0",
8179 &self.glClearBufferuiv_p,
8180 )
8181 }
8182 #[inline]
8183 #[doc(hidden)]
8184 pub fn ClearBufferuiv_is_loaded(&self) -> bool {
8185 !self.glClearBufferuiv_p.load(RELAX).is_null()
8186 }
8187 #[cfg_attr(feature = "inline", inline)]
8193 #[cfg_attr(feature = "inline_always", inline(always))]
8194 pub unsafe fn ClearColor(
8195 &self,
8196 red: GLfloat,
8197 green: GLfloat,
8198 blue: GLfloat,
8199 alpha: GLfloat,
8200 ) {
8201 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8202 {
8203 trace!(
8204 "calling gl.ClearColor({:?}, {:?}, {:?}, {:?});",
8205 red,
8206 green,
8207 blue,
8208 alpha
8209 );
8210 }
8211 let out = call_atomic_ptr_4arg(
8212 "glClearColor",
8213 &self.glClearColor_p,
8214 red,
8215 green,
8216 blue,
8217 alpha,
8218 );
8219 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8220 {
8221 self.automatic_glGetError("glClearColor");
8222 }
8223 out
8224 }
8225 #[doc(hidden)]
8226 pub unsafe fn ClearColor_load_with_dyn(
8227 &self,
8228 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8229 ) -> bool {
8230 load_dyn_name_atomic_ptr(get_proc_address, b"glClearColor\0", &self.glClearColor_p)
8231 }
8232 #[inline]
8233 #[doc(hidden)]
8234 pub fn ClearColor_is_loaded(&self) -> bool {
8235 !self.glClearColor_p.load(RELAX).is_null()
8236 }
8237 #[cfg_attr(feature = "inline", inline)]
8239 #[cfg_attr(feature = "inline_always", inline(always))]
8240 pub unsafe fn ClearDepth(&self, depth: GLdouble) {
8241 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8242 {
8243 trace!("calling gl.ClearDepth({:?});", depth);
8244 }
8245 let out = call_atomic_ptr_1arg("glClearDepth", &self.glClearDepth_p, depth);
8246 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8247 {
8248 self.automatic_glGetError("glClearDepth");
8249 }
8250 out
8251 }
8252 #[doc(hidden)]
8253 pub unsafe fn ClearDepth_load_with_dyn(
8254 &self,
8255 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8256 ) -> bool {
8257 load_dyn_name_atomic_ptr(get_proc_address, b"glClearDepth\0", &self.glClearDepth_p)
8258 }
8259 #[inline]
8260 #[doc(hidden)]
8261 pub fn ClearDepth_is_loaded(&self) -> bool {
8262 !self.glClearDepth_p.load(RELAX).is_null()
8263 }
8264 #[cfg_attr(feature = "inline", inline)]
8266 #[cfg_attr(feature = "inline_always", inline(always))]
8267 pub unsafe fn ClearDepthf(&self, d: GLfloat) {
8268 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8269 {
8270 trace!("calling gl.ClearDepthf({:?});", d);
8271 }
8272 let out = call_atomic_ptr_1arg("glClearDepthf", &self.glClearDepthf_p, d);
8273 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8274 {
8275 self.automatic_glGetError("glClearDepthf");
8276 }
8277 out
8278 }
8279 #[doc(hidden)]
8280 pub unsafe fn ClearDepthf_load_with_dyn(
8281 &self,
8282 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8283 ) -> bool {
8284 load_dyn_name_atomic_ptr(get_proc_address, b"glClearDepthf\0", &self.glClearDepthf_p)
8285 }
8286 #[inline]
8287 #[doc(hidden)]
8288 pub fn ClearDepthf_is_loaded(&self) -> bool {
8289 !self.glClearDepthf_p.load(RELAX).is_null()
8290 }
8291 #[cfg_attr(feature = "inline", inline)]
8296 #[cfg_attr(feature = "inline_always", inline(always))]
8297 pub unsafe fn ClearNamedBufferData(
8298 &self,
8299 buffer: GLuint,
8300 internalformat: GLenum,
8301 format: GLenum,
8302 type_: GLenum,
8303 data: *const c_void,
8304 ) {
8305 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8306 {
8307 trace!(
8308 "calling gl.ClearNamedBufferData({:?}, {:#X}, {:#X}, {:#X}, {:p});",
8309 buffer,
8310 internalformat,
8311 format,
8312 type_,
8313 data
8314 );
8315 }
8316 let out = call_atomic_ptr_5arg(
8317 "glClearNamedBufferData",
8318 &self.glClearNamedBufferData_p,
8319 buffer,
8320 internalformat,
8321 format,
8322 type_,
8323 data,
8324 );
8325 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8326 {
8327 self.automatic_glGetError("glClearNamedBufferData");
8328 }
8329 out
8330 }
8331 #[doc(hidden)]
8332 pub unsafe fn ClearNamedBufferData_load_with_dyn(
8333 &self,
8334 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8335 ) -> bool {
8336 load_dyn_name_atomic_ptr(
8337 get_proc_address,
8338 b"glClearNamedBufferData\0",
8339 &self.glClearNamedBufferData_p,
8340 )
8341 }
8342 #[inline]
8343 #[doc(hidden)]
8344 pub fn ClearNamedBufferData_is_loaded(&self) -> bool {
8345 !self.glClearNamedBufferData_p.load(RELAX).is_null()
8346 }
8347 #[cfg_attr(feature = "inline", inline)]
8353 #[cfg_attr(feature = "inline_always", inline(always))]
8354 pub unsafe fn ClearNamedBufferSubData(
8355 &self,
8356 buffer: GLuint,
8357 internalformat: GLenum,
8358 offset: GLintptr,
8359 size: GLsizeiptr,
8360 format: GLenum,
8361 type_: GLenum,
8362 data: *const c_void,
8363 ) {
8364 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8365 {
8366 trace!("calling gl.ClearNamedBufferSubData({:?}, {:#X}, {:?}, {:?}, {:#X}, {:#X}, {:p});", buffer, internalformat, offset, size, format, type_, data);
8367 }
8368 let out = call_atomic_ptr_7arg(
8369 "glClearNamedBufferSubData",
8370 &self.glClearNamedBufferSubData_p,
8371 buffer,
8372 internalformat,
8373 offset,
8374 size,
8375 format,
8376 type_,
8377 data,
8378 );
8379 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8380 {
8381 self.automatic_glGetError("glClearNamedBufferSubData");
8382 }
8383 out
8384 }
8385 #[doc(hidden)]
8386 pub unsafe fn ClearNamedBufferSubData_load_with_dyn(
8387 &self,
8388 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8389 ) -> bool {
8390 load_dyn_name_atomic_ptr(
8391 get_proc_address,
8392 b"glClearNamedBufferSubData\0",
8393 &self.glClearNamedBufferSubData_p,
8394 )
8395 }
8396 #[inline]
8397 #[doc(hidden)]
8398 pub fn ClearNamedBufferSubData_is_loaded(&self) -> bool {
8399 !self.glClearNamedBufferSubData_p.load(RELAX).is_null()
8400 }
8401 #[cfg_attr(feature = "inline", inline)]
8404 #[cfg_attr(feature = "inline_always", inline(always))]
8405 pub unsafe fn ClearNamedFramebufferfi(
8406 &self,
8407 framebuffer: GLuint,
8408 buffer: GLenum,
8409 drawbuffer: GLint,
8410 depth: GLfloat,
8411 stencil: GLint,
8412 ) {
8413 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8414 {
8415 trace!(
8416 "calling gl.ClearNamedFramebufferfi({:?}, {:#X}, {:?}, {:?}, {:?});",
8417 framebuffer,
8418 buffer,
8419 drawbuffer,
8420 depth,
8421 stencil
8422 );
8423 }
8424 let out = call_atomic_ptr_5arg(
8425 "glClearNamedFramebufferfi",
8426 &self.glClearNamedFramebufferfi_p,
8427 framebuffer,
8428 buffer,
8429 drawbuffer,
8430 depth,
8431 stencil,
8432 );
8433 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8434 {
8435 self.automatic_glGetError("glClearNamedFramebufferfi");
8436 }
8437 out
8438 }
8439 #[doc(hidden)]
8440 pub unsafe fn ClearNamedFramebufferfi_load_with_dyn(
8441 &self,
8442 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8443 ) -> bool {
8444 load_dyn_name_atomic_ptr(
8445 get_proc_address,
8446 b"glClearNamedFramebufferfi\0",
8447 &self.glClearNamedFramebufferfi_p,
8448 )
8449 }
8450 #[inline]
8451 #[doc(hidden)]
8452 pub fn ClearNamedFramebufferfi_is_loaded(&self) -> bool {
8453 !self.glClearNamedFramebufferfi_p.load(RELAX).is_null()
8454 }
8455 #[cfg_attr(feature = "inline", inline)]
8458 #[cfg_attr(feature = "inline_always", inline(always))]
8459 pub unsafe fn ClearNamedFramebufferfv(
8460 &self,
8461 framebuffer: GLuint,
8462 buffer: GLenum,
8463 drawbuffer: GLint,
8464 value: *const GLfloat,
8465 ) {
8466 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8467 {
8468 trace!(
8469 "calling gl.ClearNamedFramebufferfv({:?}, {:#X}, {:?}, {:p});",
8470 framebuffer,
8471 buffer,
8472 drawbuffer,
8473 value
8474 );
8475 }
8476 let out = call_atomic_ptr_4arg(
8477 "glClearNamedFramebufferfv",
8478 &self.glClearNamedFramebufferfv_p,
8479 framebuffer,
8480 buffer,
8481 drawbuffer,
8482 value,
8483 );
8484 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8485 {
8486 self.automatic_glGetError("glClearNamedFramebufferfv");
8487 }
8488 out
8489 }
8490 #[doc(hidden)]
8491 pub unsafe fn ClearNamedFramebufferfv_load_with_dyn(
8492 &self,
8493 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8494 ) -> bool {
8495 load_dyn_name_atomic_ptr(
8496 get_proc_address,
8497 b"glClearNamedFramebufferfv\0",
8498 &self.glClearNamedFramebufferfv_p,
8499 )
8500 }
8501 #[inline]
8502 #[doc(hidden)]
8503 pub fn ClearNamedFramebufferfv_is_loaded(&self) -> bool {
8504 !self.glClearNamedFramebufferfv_p.load(RELAX).is_null()
8505 }
8506 #[cfg_attr(feature = "inline", inline)]
8509 #[cfg_attr(feature = "inline_always", inline(always))]
8510 pub unsafe fn ClearNamedFramebufferiv(
8511 &self,
8512 framebuffer: GLuint,
8513 buffer: GLenum,
8514 drawbuffer: GLint,
8515 value: *const GLint,
8516 ) {
8517 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8518 {
8519 trace!(
8520 "calling gl.ClearNamedFramebufferiv({:?}, {:#X}, {:?}, {:p});",
8521 framebuffer,
8522 buffer,
8523 drawbuffer,
8524 value
8525 );
8526 }
8527 let out = call_atomic_ptr_4arg(
8528 "glClearNamedFramebufferiv",
8529 &self.glClearNamedFramebufferiv_p,
8530 framebuffer,
8531 buffer,
8532 drawbuffer,
8533 value,
8534 );
8535 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8536 {
8537 self.automatic_glGetError("glClearNamedFramebufferiv");
8538 }
8539 out
8540 }
8541 #[doc(hidden)]
8542 pub unsafe fn ClearNamedFramebufferiv_load_with_dyn(
8543 &self,
8544 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8545 ) -> bool {
8546 load_dyn_name_atomic_ptr(
8547 get_proc_address,
8548 b"glClearNamedFramebufferiv\0",
8549 &self.glClearNamedFramebufferiv_p,
8550 )
8551 }
8552 #[inline]
8553 #[doc(hidden)]
8554 pub fn ClearNamedFramebufferiv_is_loaded(&self) -> bool {
8555 !self.glClearNamedFramebufferiv_p.load(RELAX).is_null()
8556 }
8557 #[cfg_attr(feature = "inline", inline)]
8560 #[cfg_attr(feature = "inline_always", inline(always))]
8561 pub unsafe fn ClearNamedFramebufferuiv(
8562 &self,
8563 framebuffer: GLuint,
8564 buffer: GLenum,
8565 drawbuffer: GLint,
8566 value: *const GLuint,
8567 ) {
8568 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8569 {
8570 trace!(
8571 "calling gl.ClearNamedFramebufferuiv({:?}, {:#X}, {:?}, {:p});",
8572 framebuffer,
8573 buffer,
8574 drawbuffer,
8575 value
8576 );
8577 }
8578 let out = call_atomic_ptr_4arg(
8579 "glClearNamedFramebufferuiv",
8580 &self.glClearNamedFramebufferuiv_p,
8581 framebuffer,
8582 buffer,
8583 drawbuffer,
8584 value,
8585 );
8586 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8587 {
8588 self.automatic_glGetError("glClearNamedFramebufferuiv");
8589 }
8590 out
8591 }
8592 #[doc(hidden)]
8593 pub unsafe fn ClearNamedFramebufferuiv_load_with_dyn(
8594 &self,
8595 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8596 ) -> bool {
8597 load_dyn_name_atomic_ptr(
8598 get_proc_address,
8599 b"glClearNamedFramebufferuiv\0",
8600 &self.glClearNamedFramebufferuiv_p,
8601 )
8602 }
8603 #[inline]
8604 #[doc(hidden)]
8605 pub fn ClearNamedFramebufferuiv_is_loaded(&self) -> bool {
8606 !self.glClearNamedFramebufferuiv_p.load(RELAX).is_null()
8607 }
8608 #[cfg_attr(feature = "inline", inline)]
8611 #[cfg_attr(feature = "inline_always", inline(always))]
8612 pub unsafe fn ClearStencil(&self, s: GLint) {
8613 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8614 {
8615 trace!("calling gl.ClearStencil({:?});", s);
8616 }
8617 let out = call_atomic_ptr_1arg("glClearStencil", &self.glClearStencil_p, s);
8618 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8619 {
8620 self.automatic_glGetError("glClearStencil");
8621 }
8622 out
8623 }
8624 #[doc(hidden)]
8625 pub unsafe fn ClearStencil_load_with_dyn(
8626 &self,
8627 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8628 ) -> bool {
8629 load_dyn_name_atomic_ptr(
8630 get_proc_address,
8631 b"glClearStencil\0",
8632 &self.glClearStencil_p,
8633 )
8634 }
8635 #[inline]
8636 #[doc(hidden)]
8637 pub fn ClearStencil_is_loaded(&self) -> bool {
8638 !self.glClearStencil_p.load(RELAX).is_null()
8639 }
8640 #[cfg_attr(feature = "inline", inline)]
8645 #[cfg_attr(feature = "inline_always", inline(always))]
8646 pub unsafe fn ClearTexImage(
8647 &self,
8648 texture: GLuint,
8649 level: GLint,
8650 format: GLenum,
8651 type_: GLenum,
8652 data: *const c_void,
8653 ) {
8654 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8655 {
8656 trace!(
8657 "calling gl.ClearTexImage({:?}, {:?}, {:#X}, {:#X}, {:p});",
8658 texture,
8659 level,
8660 format,
8661 type_,
8662 data
8663 );
8664 }
8665 let out = call_atomic_ptr_5arg(
8666 "glClearTexImage",
8667 &self.glClearTexImage_p,
8668 texture,
8669 level,
8670 format,
8671 type_,
8672 data,
8673 );
8674 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8675 {
8676 self.automatic_glGetError("glClearTexImage");
8677 }
8678 out
8679 }
8680 #[doc(hidden)]
8681 pub unsafe fn ClearTexImage_load_with_dyn(
8682 &self,
8683 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8684 ) -> bool {
8685 load_dyn_name_atomic_ptr(
8686 get_proc_address,
8687 b"glClearTexImage\0",
8688 &self.glClearTexImage_p,
8689 )
8690 }
8691 #[inline]
8692 #[doc(hidden)]
8693 pub fn ClearTexImage_is_loaded(&self) -> bool {
8694 !self.glClearTexImage_p.load(RELAX).is_null()
8695 }
8696 #[cfg_attr(feature = "inline", inline)]
8701 #[cfg_attr(feature = "inline_always", inline(always))]
8702 pub unsafe fn ClearTexSubImage(
8703 &self,
8704 texture: GLuint,
8705 level: GLint,
8706 xoffset: GLint,
8707 yoffset: GLint,
8708 zoffset: GLint,
8709 width: GLsizei,
8710 height: GLsizei,
8711 depth: GLsizei,
8712 format: GLenum,
8713 type_: GLenum,
8714 data: *const c_void,
8715 ) {
8716 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8717 {
8718 trace!("calling gl.ClearTexSubImage({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type_, data);
8719 }
8720 let out = call_atomic_ptr_11arg(
8721 "glClearTexSubImage",
8722 &self.glClearTexSubImage_p,
8723 texture,
8724 level,
8725 xoffset,
8726 yoffset,
8727 zoffset,
8728 width,
8729 height,
8730 depth,
8731 format,
8732 type_,
8733 data,
8734 );
8735 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8736 {
8737 self.automatic_glGetError("glClearTexSubImage");
8738 }
8739 out
8740 }
8741 #[doc(hidden)]
8742 pub unsafe fn ClearTexSubImage_load_with_dyn(
8743 &self,
8744 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8745 ) -> bool {
8746 load_dyn_name_atomic_ptr(
8747 get_proc_address,
8748 b"glClearTexSubImage\0",
8749 &self.glClearTexSubImage_p,
8750 )
8751 }
8752 #[inline]
8753 #[doc(hidden)]
8754 pub fn ClearTexSubImage_is_loaded(&self) -> bool {
8755 !self.glClearTexSubImage_p.load(RELAX).is_null()
8756 }
8757 #[cfg_attr(feature = "inline", inline)]
8762 #[cfg_attr(feature = "inline_always", inline(always))]
8763 pub unsafe fn ClientWaitSync(
8764 &self,
8765 sync: GLsync,
8766 flags: GLbitfield,
8767 timeout: GLuint64,
8768 ) -> GLenum {
8769 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8770 {
8771 trace!(
8772 "calling gl.ClientWaitSync({:p}, {:?}, {:?});",
8773 sync,
8774 flags,
8775 timeout
8776 );
8777 }
8778 let out = call_atomic_ptr_3arg(
8779 "glClientWaitSync",
8780 &self.glClientWaitSync_p,
8781 sync,
8782 flags,
8783 timeout,
8784 );
8785 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8786 {
8787 self.automatic_glGetError("glClientWaitSync");
8788 }
8789 out
8790 }
8791 #[doc(hidden)]
8792 pub unsafe fn ClientWaitSync_load_with_dyn(
8793 &self,
8794 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8795 ) -> bool {
8796 load_dyn_name_atomic_ptr(
8797 get_proc_address,
8798 b"glClientWaitSync\0",
8799 &self.glClientWaitSync_p,
8800 )
8801 }
8802 #[inline]
8803 #[doc(hidden)]
8804 pub fn ClientWaitSync_is_loaded(&self) -> bool {
8805 !self.glClientWaitSync_p.load(RELAX).is_null()
8806 }
8807 #[cfg_attr(feature = "inline", inline)]
8811 #[cfg_attr(feature = "inline_always", inline(always))]
8812 pub unsafe fn ClipControl(&self, origin: GLenum, depth: GLenum) {
8813 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8814 {
8815 trace!("calling gl.ClipControl({:#X}, {:#X});", origin, depth);
8816 }
8817 let out = call_atomic_ptr_2arg("glClipControl", &self.glClipControl_p, origin, depth);
8818 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8819 {
8820 self.automatic_glGetError("glClipControl");
8821 }
8822 out
8823 }
8824 #[doc(hidden)]
8825 pub unsafe fn ClipControl_load_with_dyn(
8826 &self,
8827 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8828 ) -> bool {
8829 load_dyn_name_atomic_ptr(get_proc_address, b"glClipControl\0", &self.glClipControl_p)
8830 }
8831 #[inline]
8832 #[doc(hidden)]
8833 pub fn ClipControl_is_loaded(&self) -> bool {
8834 !self.glClipControl_p.load(RELAX).is_null()
8835 }
8836 #[cfg_attr(feature = "inline", inline)]
8838 #[cfg_attr(feature = "inline_always", inline(always))]
8839 pub unsafe fn ColorMask(
8840 &self,
8841 red: GLboolean,
8842 green: GLboolean,
8843 blue: GLboolean,
8844 alpha: GLboolean,
8845 ) {
8846 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8847 {
8848 trace!(
8849 "calling gl.ColorMask({:?}, {:?}, {:?}, {:?});",
8850 red,
8851 green,
8852 blue,
8853 alpha
8854 );
8855 }
8856 let out =
8857 call_atomic_ptr_4arg("glColorMask", &self.glColorMask_p, red, green, blue, alpha);
8858 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8859 {
8860 self.automatic_glGetError("glColorMask");
8861 }
8862 out
8863 }
8864 #[doc(hidden)]
8865 pub unsafe fn ColorMask_load_with_dyn(
8866 &self,
8867 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8868 ) -> bool {
8869 load_dyn_name_atomic_ptr(get_proc_address, b"glColorMask\0", &self.glColorMask_p)
8870 }
8871 #[inline]
8872 #[doc(hidden)]
8873 pub fn ColorMask_is_loaded(&self) -> bool {
8874 !self.glColorMask_p.load(RELAX).is_null()
8875 }
8876 #[cfg_attr(feature = "inline", inline)]
8879 #[cfg_attr(feature = "inline_always", inline(always))]
8880 pub unsafe fn ColorMaskIndexedEXT(
8881 &self,
8882 index: GLuint,
8883 r: GLboolean,
8884 g: GLboolean,
8885 b: GLboolean,
8886 a: GLboolean,
8887 ) {
8888 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8889 {
8890 trace!(
8891 "calling gl.ColorMaskIndexedEXT({:?}, {:?}, {:?}, {:?}, {:?});",
8892 index,
8893 r,
8894 g,
8895 b,
8896 a
8897 );
8898 }
8899 let out = call_atomic_ptr_5arg(
8900 "glColorMaskIndexedEXT",
8901 &self.glColorMaskIndexedEXT_p,
8902 index,
8903 r,
8904 g,
8905 b,
8906 a,
8907 );
8908 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8909 {
8910 self.automatic_glGetError("glColorMaskIndexedEXT");
8911 }
8912 out
8913 }
8914 #[doc(hidden)]
8915 pub unsafe fn ColorMaskIndexedEXT_load_with_dyn(
8916 &self,
8917 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8918 ) -> bool {
8919 load_dyn_name_atomic_ptr(
8920 get_proc_address,
8921 b"glColorMaskIndexedEXT\0",
8922 &self.glColorMaskIndexedEXT_p,
8923 )
8924 }
8925 #[inline]
8926 #[doc(hidden)]
8927 pub fn ColorMaskIndexedEXT_is_loaded(&self) -> bool {
8928 !self.glColorMaskIndexedEXT_p.load(RELAX).is_null()
8929 }
8930 #[cfg_attr(feature = "inline", inline)]
8932 #[cfg_attr(feature = "inline_always", inline(always))]
8933 pub unsafe fn ColorMaski(
8934 &self,
8935 index: GLuint,
8936 r: GLboolean,
8937 g: GLboolean,
8938 b: GLboolean,
8939 a: GLboolean,
8940 ) {
8941 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8942 {
8943 trace!(
8944 "calling gl.ColorMaski({:?}, {:?}, {:?}, {:?}, {:?});",
8945 index,
8946 r,
8947 g,
8948 b,
8949 a
8950 );
8951 }
8952 let out = call_atomic_ptr_5arg("glColorMaski", &self.glColorMaski_p, index, r, g, b, a);
8953 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8954 {
8955 self.automatic_glGetError("glColorMaski");
8956 }
8957 out
8958 }
8959 #[doc(hidden)]
8960 pub unsafe fn ColorMaski_load_with_dyn(
8961 &self,
8962 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8963 ) -> bool {
8964 load_dyn_name_atomic_ptr(get_proc_address, b"glColorMaski\0", &self.glColorMaski_p)
8965 }
8966 #[inline]
8967 #[doc(hidden)]
8968 pub fn ColorMaski_is_loaded(&self) -> bool {
8969 !self.glColorMaski_p.load(RELAX).is_null()
8970 }
8971 #[cfg_attr(feature = "inline", inline)]
8973 #[cfg_attr(feature = "inline_always", inline(always))]
8974 pub unsafe fn CompileShader(&self, shader: GLuint) {
8975 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8976 {
8977 trace!("calling gl.CompileShader({:?});", shader);
8978 }
8979 let out = call_atomic_ptr_1arg("glCompileShader", &self.glCompileShader_p, shader);
8980 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8981 {
8982 self.automatic_glGetError("glCompileShader");
8983 }
8984 out
8985 }
8986 #[doc(hidden)]
8987 pub unsafe fn CompileShader_load_with_dyn(
8988 &self,
8989 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8990 ) -> bool {
8991 load_dyn_name_atomic_ptr(
8992 get_proc_address,
8993 b"glCompileShader\0",
8994 &self.glCompileShader_p,
8995 )
8996 }
8997 #[inline]
8998 #[doc(hidden)]
8999 pub fn CompileShader_is_loaded(&self) -> bool {
9000 !self.glCompileShader_p.load(RELAX).is_null()
9001 }
9002 #[cfg_attr(feature = "inline", inline)]
9010 #[cfg_attr(feature = "inline_always", inline(always))]
9011 pub unsafe fn CompressedTexImage1D(
9012 &self,
9013 target: GLenum,
9014 level: GLint,
9015 internalformat: GLenum,
9016 width: GLsizei,
9017 border: GLint,
9018 imageSize: GLsizei,
9019 data: *const c_void,
9020 ) {
9021 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9022 {
9023 trace!(
9024 "calling gl.CompressedTexImage1D({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:p});",
9025 target,
9026 level,
9027 internalformat,
9028 width,
9029 border,
9030 imageSize,
9031 data
9032 );
9033 }
9034 let out = call_atomic_ptr_7arg(
9035 "glCompressedTexImage1D",
9036 &self.glCompressedTexImage1D_p,
9037 target,
9038 level,
9039 internalformat,
9040 width,
9041 border,
9042 imageSize,
9043 data,
9044 );
9045 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9046 {
9047 self.automatic_glGetError("glCompressedTexImage1D");
9048 }
9049 out
9050 }
9051 #[doc(hidden)]
9052 pub unsafe fn CompressedTexImage1D_load_with_dyn(
9053 &self,
9054 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9055 ) -> bool {
9056 load_dyn_name_atomic_ptr(
9057 get_proc_address,
9058 b"glCompressedTexImage1D\0",
9059 &self.glCompressedTexImage1D_p,
9060 )
9061 }
9062 #[inline]
9063 #[doc(hidden)]
9064 pub fn CompressedTexImage1D_is_loaded(&self) -> bool {
9065 !self.glCompressedTexImage1D_p.load(RELAX).is_null()
9066 }
9067 #[cfg_attr(feature = "inline", inline)]
9075 #[cfg_attr(feature = "inline_always", inline(always))]
9076 pub unsafe fn CompressedTexImage2D(
9077 &self,
9078 target: GLenum,
9079 level: GLint,
9080 internalformat: GLenum,
9081 width: GLsizei,
9082 height: GLsizei,
9083 border: GLint,
9084 imageSize: GLsizei,
9085 data: *const c_void,
9086 ) {
9087 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9088 {
9089 trace!("calling gl.CompressedTexImage2D({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?}, {:p});", target, level, internalformat, width, height, border, imageSize, data);
9090 }
9091 let out = call_atomic_ptr_8arg(
9092 "glCompressedTexImage2D",
9093 &self.glCompressedTexImage2D_p,
9094 target,
9095 level,
9096 internalformat,
9097 width,
9098 height,
9099 border,
9100 imageSize,
9101 data,
9102 );
9103 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9104 {
9105 self.automatic_glGetError("glCompressedTexImage2D");
9106 }
9107 out
9108 }
9109 #[doc(hidden)]
9110 pub unsafe fn CompressedTexImage2D_load_with_dyn(
9111 &self,
9112 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9113 ) -> bool {
9114 load_dyn_name_atomic_ptr(
9115 get_proc_address,
9116 b"glCompressedTexImage2D\0",
9117 &self.glCompressedTexImage2D_p,
9118 )
9119 }
9120 #[inline]
9121 #[doc(hidden)]
9122 pub fn CompressedTexImage2D_is_loaded(&self) -> bool {
9123 !self.glCompressedTexImage2D_p.load(RELAX).is_null()
9124 }
9125 #[cfg_attr(feature = "inline", inline)]
9133 #[cfg_attr(feature = "inline_always", inline(always))]
9134 pub unsafe fn CompressedTexImage3D(
9135 &self,
9136 target: GLenum,
9137 level: GLint,
9138 internalformat: GLenum,
9139 width: GLsizei,
9140 height: GLsizei,
9141 depth: GLsizei,
9142 border: GLint,
9143 imageSize: GLsizei,
9144 data: *const c_void,
9145 ) {
9146 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9147 {
9148 trace!("calling gl.CompressedTexImage3D({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:p});", target, level, internalformat, width, height, depth, border, imageSize, data);
9149 }
9150 let out = call_atomic_ptr_9arg(
9151 "glCompressedTexImage3D",
9152 &self.glCompressedTexImage3D_p,
9153 target,
9154 level,
9155 internalformat,
9156 width,
9157 height,
9158 depth,
9159 border,
9160 imageSize,
9161 data,
9162 );
9163 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9164 {
9165 self.automatic_glGetError("glCompressedTexImage3D");
9166 }
9167 out
9168 }
9169 #[doc(hidden)]
9170 pub unsafe fn CompressedTexImage3D_load_with_dyn(
9171 &self,
9172 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9173 ) -> bool {
9174 load_dyn_name_atomic_ptr(
9175 get_proc_address,
9176 b"glCompressedTexImage3D\0",
9177 &self.glCompressedTexImage3D_p,
9178 )
9179 }
9180 #[inline]
9181 #[doc(hidden)]
9182 pub fn CompressedTexImage3D_is_loaded(&self) -> bool {
9183 !self.glCompressedTexImage3D_p.load(RELAX).is_null()
9184 }
9185 #[cfg_attr(feature = "inline", inline)]
9193 #[cfg_attr(feature = "inline_always", inline(always))]
9194 pub unsafe fn CompressedTexSubImage1D(
9195 &self,
9196 target: GLenum,
9197 level: GLint,
9198 xoffset: GLint,
9199 width: GLsizei,
9200 format: GLenum,
9201 imageSize: GLsizei,
9202 data: *const c_void,
9203 ) {
9204 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9205 {
9206 trace!("calling gl.CompressedTexSubImage1D({:#X}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:p});", target, level, xoffset, width, format, imageSize, data);
9207 }
9208 let out = call_atomic_ptr_7arg(
9209 "glCompressedTexSubImage1D",
9210 &self.glCompressedTexSubImage1D_p,
9211 target,
9212 level,
9213 xoffset,
9214 width,
9215 format,
9216 imageSize,
9217 data,
9218 );
9219 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9220 {
9221 self.automatic_glGetError("glCompressedTexSubImage1D");
9222 }
9223 out
9224 }
9225 #[doc(hidden)]
9226 pub unsafe fn CompressedTexSubImage1D_load_with_dyn(
9227 &self,
9228 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9229 ) -> bool {
9230 load_dyn_name_atomic_ptr(
9231 get_proc_address,
9232 b"glCompressedTexSubImage1D\0",
9233 &self.glCompressedTexSubImage1D_p,
9234 )
9235 }
9236 #[inline]
9237 #[doc(hidden)]
9238 pub fn CompressedTexSubImage1D_is_loaded(&self) -> bool {
9239 !self.glCompressedTexSubImage1D_p.load(RELAX).is_null()
9240 }
9241 #[cfg_attr(feature = "inline", inline)]
9250 #[cfg_attr(feature = "inline_always", inline(always))]
9251 pub unsafe fn CompressedTexSubImage2D(
9252 &self,
9253 target: GLenum,
9254 level: GLint,
9255 xoffset: GLint,
9256 yoffset: GLint,
9257 width: GLsizei,
9258 height: GLsizei,
9259 format: GLenum,
9260 imageSize: GLsizei,
9261 data: *const c_void,
9262 ) {
9263 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9264 {
9265 trace!("calling gl.CompressedTexSubImage2D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:p});", target, level, xoffset, yoffset, width, height, format, imageSize, data);
9266 }
9267 let out = call_atomic_ptr_9arg(
9268 "glCompressedTexSubImage2D",
9269 &self.glCompressedTexSubImage2D_p,
9270 target,
9271 level,
9272 xoffset,
9273 yoffset,
9274 width,
9275 height,
9276 format,
9277 imageSize,
9278 data,
9279 );
9280 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9281 {
9282 self.automatic_glGetError("glCompressedTexSubImage2D");
9283 }
9284 out
9285 }
9286 #[doc(hidden)]
9287 pub unsafe fn CompressedTexSubImage2D_load_with_dyn(
9288 &self,
9289 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9290 ) -> bool {
9291 load_dyn_name_atomic_ptr(
9292 get_proc_address,
9293 b"glCompressedTexSubImage2D\0",
9294 &self.glCompressedTexSubImage2D_p,
9295 )
9296 }
9297 #[inline]
9298 #[doc(hidden)]
9299 pub fn CompressedTexSubImage2D_is_loaded(&self) -> bool {
9300 !self.glCompressedTexSubImage2D_p.load(RELAX).is_null()
9301 }
9302 #[cfg_attr(feature = "inline", inline)]
9312 #[cfg_attr(feature = "inline_always", inline(always))]
9313 pub unsafe fn CompressedTexSubImage3D(
9314 &self,
9315 target: GLenum,
9316 level: GLint,
9317 xoffset: GLint,
9318 yoffset: GLint,
9319 zoffset: GLint,
9320 width: GLsizei,
9321 height: GLsizei,
9322 depth: GLsizei,
9323 format: GLenum,
9324 imageSize: GLsizei,
9325 data: *const c_void,
9326 ) {
9327 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9328 {
9329 trace!("calling gl.CompressedTexSubImage3D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:p});", target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
9330 }
9331 let out = call_atomic_ptr_11arg(
9332 "glCompressedTexSubImage3D",
9333 &self.glCompressedTexSubImage3D_p,
9334 target,
9335 level,
9336 xoffset,
9337 yoffset,
9338 zoffset,
9339 width,
9340 height,
9341 depth,
9342 format,
9343 imageSize,
9344 data,
9345 );
9346 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9347 {
9348 self.automatic_glGetError("glCompressedTexSubImage3D");
9349 }
9350 out
9351 }
9352 #[doc(hidden)]
9353 pub unsafe fn CompressedTexSubImage3D_load_with_dyn(
9354 &self,
9355 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9356 ) -> bool {
9357 load_dyn_name_atomic_ptr(
9358 get_proc_address,
9359 b"glCompressedTexSubImage3D\0",
9360 &self.glCompressedTexSubImage3D_p,
9361 )
9362 }
9363 #[inline]
9364 #[doc(hidden)]
9365 pub fn CompressedTexSubImage3D_is_loaded(&self) -> bool {
9366 !self.glCompressedTexSubImage3D_p.load(RELAX).is_null()
9367 }
9368 #[cfg_attr(feature = "inline", inline)]
9371 #[cfg_attr(feature = "inline_always", inline(always))]
9372 pub unsafe fn CompressedTextureSubImage1D(
9373 &self,
9374 texture: GLuint,
9375 level: GLint,
9376 xoffset: GLint,
9377 width: GLsizei,
9378 format: GLenum,
9379 imageSize: GLsizei,
9380 data: *const c_void,
9381 ) {
9382 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9383 {
9384 trace!("calling gl.CompressedTextureSubImage1D({:?}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:p});", texture, level, xoffset, width, format, imageSize, data);
9385 }
9386 let out = call_atomic_ptr_7arg(
9387 "glCompressedTextureSubImage1D",
9388 &self.glCompressedTextureSubImage1D_p,
9389 texture,
9390 level,
9391 xoffset,
9392 width,
9393 format,
9394 imageSize,
9395 data,
9396 );
9397 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9398 {
9399 self.automatic_glGetError("glCompressedTextureSubImage1D");
9400 }
9401 out
9402 }
9403 #[doc(hidden)]
9404 pub unsafe fn CompressedTextureSubImage1D_load_with_dyn(
9405 &self,
9406 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9407 ) -> bool {
9408 load_dyn_name_atomic_ptr(
9409 get_proc_address,
9410 b"glCompressedTextureSubImage1D\0",
9411 &self.glCompressedTextureSubImage1D_p,
9412 )
9413 }
9414 #[inline]
9415 #[doc(hidden)]
9416 pub fn CompressedTextureSubImage1D_is_loaded(&self) -> bool {
9417 !self.glCompressedTextureSubImage1D_p.load(RELAX).is_null()
9418 }
9419 #[cfg_attr(feature = "inline", inline)]
9422 #[cfg_attr(feature = "inline_always", inline(always))]
9423 pub unsafe fn CompressedTextureSubImage2D(
9424 &self,
9425 texture: GLuint,
9426 level: GLint,
9427 xoffset: GLint,
9428 yoffset: GLint,
9429 width: GLsizei,
9430 height: GLsizei,
9431 format: GLenum,
9432 imageSize: GLsizei,
9433 data: *const c_void,
9434 ) {
9435 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9436 {
9437 trace!("calling gl.CompressedTextureSubImage2D({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:p});", texture, level, xoffset, yoffset, width, height, format, imageSize, data);
9438 }
9439 let out = call_atomic_ptr_9arg(
9440 "glCompressedTextureSubImage2D",
9441 &self.glCompressedTextureSubImage2D_p,
9442 texture,
9443 level,
9444 xoffset,
9445 yoffset,
9446 width,
9447 height,
9448 format,
9449 imageSize,
9450 data,
9451 );
9452 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9453 {
9454 self.automatic_glGetError("glCompressedTextureSubImage2D");
9455 }
9456 out
9457 }
9458 #[doc(hidden)]
9459 pub unsafe fn CompressedTextureSubImage2D_load_with_dyn(
9460 &self,
9461 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9462 ) -> bool {
9463 load_dyn_name_atomic_ptr(
9464 get_proc_address,
9465 b"glCompressedTextureSubImage2D\0",
9466 &self.glCompressedTextureSubImage2D_p,
9467 )
9468 }
9469 #[inline]
9470 #[doc(hidden)]
9471 pub fn CompressedTextureSubImage2D_is_loaded(&self) -> bool {
9472 !self.glCompressedTextureSubImage2D_p.load(RELAX).is_null()
9473 }
9474 #[cfg_attr(feature = "inline", inline)]
9477 #[cfg_attr(feature = "inline_always", inline(always))]
9478 pub unsafe fn CompressedTextureSubImage3D(
9479 &self,
9480 texture: GLuint,
9481 level: GLint,
9482 xoffset: GLint,
9483 yoffset: GLint,
9484 zoffset: GLint,
9485 width: GLsizei,
9486 height: GLsizei,
9487 depth: GLsizei,
9488 format: GLenum,
9489 imageSize: GLsizei,
9490 data: *const c_void,
9491 ) {
9492 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9493 {
9494 trace!("calling gl.CompressedTextureSubImage3D({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:p});", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
9495 }
9496 let out = call_atomic_ptr_11arg(
9497 "glCompressedTextureSubImage3D",
9498 &self.glCompressedTextureSubImage3D_p,
9499 texture,
9500 level,
9501 xoffset,
9502 yoffset,
9503 zoffset,
9504 width,
9505 height,
9506 depth,
9507 format,
9508 imageSize,
9509 data,
9510 );
9511 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9512 {
9513 self.automatic_glGetError("glCompressedTextureSubImage3D");
9514 }
9515 out
9516 }
9517 #[doc(hidden)]
9518 pub unsafe fn CompressedTextureSubImage3D_load_with_dyn(
9519 &self,
9520 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9521 ) -> bool {
9522 load_dyn_name_atomic_ptr(
9523 get_proc_address,
9524 b"glCompressedTextureSubImage3D\0",
9525 &self.glCompressedTextureSubImage3D_p,
9526 )
9527 }
9528 #[inline]
9529 #[doc(hidden)]
9530 pub fn CompressedTextureSubImage3D_is_loaded(&self) -> bool {
9531 !self.glCompressedTextureSubImage3D_p.load(RELAX).is_null()
9532 }
9533 #[cfg_attr(feature = "inline", inline)]
9540 #[cfg_attr(feature = "inline_always", inline(always))]
9541 pub unsafe fn CopyBufferSubData(
9542 &self,
9543 readTarget: GLenum,
9544 writeTarget: GLenum,
9545 readOffset: GLintptr,
9546 writeOffset: GLintptr,
9547 size: GLsizeiptr,
9548 ) {
9549 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9550 {
9551 trace!(
9552 "calling gl.CopyBufferSubData({:#X}, {:#X}, {:?}, {:?}, {:?});",
9553 readTarget,
9554 writeTarget,
9555 readOffset,
9556 writeOffset,
9557 size
9558 );
9559 }
9560 let out = call_atomic_ptr_5arg(
9561 "glCopyBufferSubData",
9562 &self.glCopyBufferSubData_p,
9563 readTarget,
9564 writeTarget,
9565 readOffset,
9566 writeOffset,
9567 size,
9568 );
9569 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9570 {
9571 self.automatic_glGetError("glCopyBufferSubData");
9572 }
9573 out
9574 }
9575 #[doc(hidden)]
9576 pub unsafe fn CopyBufferSubData_load_with_dyn(
9577 &self,
9578 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9579 ) -> bool {
9580 load_dyn_name_atomic_ptr(
9581 get_proc_address,
9582 b"glCopyBufferSubData\0",
9583 &self.glCopyBufferSubData_p,
9584 )
9585 }
9586 #[inline]
9587 #[doc(hidden)]
9588 pub fn CopyBufferSubData_is_loaded(&self) -> bool {
9589 !self.glCopyBufferSubData_p.load(RELAX).is_null()
9590 }
9591 #[cfg_attr(feature = "inline", inline)]
9599 #[cfg_attr(feature = "inline_always", inline(always))]
9600 pub unsafe fn CopyBufferSubDataNV(
9601 &self,
9602 readTarget: GLenum,
9603 writeTarget: GLenum,
9604 readOffset: GLintptr,
9605 writeOffset: GLintptr,
9606 size: GLsizeiptr,
9607 ) {
9608 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9609 {
9610 trace!(
9611 "calling gl.CopyBufferSubDataNV({:#X}, {:#X}, {:?}, {:?}, {:?});",
9612 readTarget,
9613 writeTarget,
9614 readOffset,
9615 writeOffset,
9616 size
9617 );
9618 }
9619 let out = call_atomic_ptr_5arg(
9620 "glCopyBufferSubDataNV",
9621 &self.glCopyBufferSubDataNV_p,
9622 readTarget,
9623 writeTarget,
9624 readOffset,
9625 writeOffset,
9626 size,
9627 );
9628 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9629 {
9630 self.automatic_glGetError("glCopyBufferSubDataNV");
9631 }
9632 out
9633 }
9634 #[doc(hidden)]
9635 pub unsafe fn CopyBufferSubDataNV_load_with_dyn(
9636 &self,
9637 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9638 ) -> bool {
9639 load_dyn_name_atomic_ptr(
9640 get_proc_address,
9641 b"glCopyBufferSubDataNV\0",
9642 &self.glCopyBufferSubDataNV_p,
9643 )
9644 }
9645 #[inline]
9646 #[doc(hidden)]
9647 pub fn CopyBufferSubDataNV_is_loaded(&self) -> bool {
9648 !self.glCopyBufferSubDataNV_p.load(RELAX).is_null()
9649 }
9650 #[cfg_attr(feature = "inline", inline)]
9654 #[cfg_attr(feature = "inline_always", inline(always))]
9655 pub unsafe fn CopyImageSubData(
9656 &self,
9657 srcName: GLuint,
9658 srcTarget: GLenum,
9659 srcLevel: GLint,
9660 srcX: GLint,
9661 srcY: GLint,
9662 srcZ: GLint,
9663 dstName: GLuint,
9664 dstTarget: GLenum,
9665 dstLevel: GLint,
9666 dstX: GLint,
9667 dstY: GLint,
9668 dstZ: GLint,
9669 srcWidth: GLsizei,
9670 srcHeight: GLsizei,
9671 srcDepth: GLsizei,
9672 ) {
9673 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9674 {
9675 trace!("calling gl.CopyImageSubData({:?}, {:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
9676 }
9677 let out = call_atomic_ptr_15arg(
9678 "glCopyImageSubData",
9679 &self.glCopyImageSubData_p,
9680 srcName,
9681 srcTarget,
9682 srcLevel,
9683 srcX,
9684 srcY,
9685 srcZ,
9686 dstName,
9687 dstTarget,
9688 dstLevel,
9689 dstX,
9690 dstY,
9691 dstZ,
9692 srcWidth,
9693 srcHeight,
9694 srcDepth,
9695 );
9696 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9697 {
9698 self.automatic_glGetError("glCopyImageSubData");
9699 }
9700 out
9701 }
9702 #[doc(hidden)]
9703 pub unsafe fn CopyImageSubData_load_with_dyn(
9704 &self,
9705 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9706 ) -> bool {
9707 load_dyn_name_atomic_ptr(
9708 get_proc_address,
9709 b"glCopyImageSubData\0",
9710 &self.glCopyImageSubData_p,
9711 )
9712 }
9713 #[inline]
9714 #[doc(hidden)]
9715 pub fn CopyImageSubData_is_loaded(&self) -> bool {
9716 !self.glCopyImageSubData_p.load(RELAX).is_null()
9717 }
9718 #[cfg_attr(feature = "inline", inline)]
9721 #[cfg_attr(feature = "inline_always", inline(always))]
9722 pub unsafe fn CopyNamedBufferSubData(
9723 &self,
9724 readBuffer: GLuint,
9725 writeBuffer: GLuint,
9726 readOffset: GLintptr,
9727 writeOffset: GLintptr,
9728 size: GLsizeiptr,
9729 ) {
9730 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9731 {
9732 trace!(
9733 "calling gl.CopyNamedBufferSubData({:?}, {:?}, {:?}, {:?}, {:?});",
9734 readBuffer,
9735 writeBuffer,
9736 readOffset,
9737 writeOffset,
9738 size
9739 );
9740 }
9741 let out = call_atomic_ptr_5arg(
9742 "glCopyNamedBufferSubData",
9743 &self.glCopyNamedBufferSubData_p,
9744 readBuffer,
9745 writeBuffer,
9746 readOffset,
9747 writeOffset,
9748 size,
9749 );
9750 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9751 {
9752 self.automatic_glGetError("glCopyNamedBufferSubData");
9753 }
9754 out
9755 }
9756 #[doc(hidden)]
9757 pub unsafe fn CopyNamedBufferSubData_load_with_dyn(
9758 &self,
9759 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9760 ) -> bool {
9761 load_dyn_name_atomic_ptr(
9762 get_proc_address,
9763 b"glCopyNamedBufferSubData\0",
9764 &self.glCopyNamedBufferSubData_p,
9765 )
9766 }
9767 #[inline]
9768 #[doc(hidden)]
9769 pub fn CopyNamedBufferSubData_is_loaded(&self) -> bool {
9770 !self.glCopyNamedBufferSubData_p.load(RELAX).is_null()
9771 }
9772 #[cfg_attr(feature = "inline", inline)]
9780 #[cfg_attr(feature = "inline_always", inline(always))]
9781 pub unsafe fn CopyTexImage1D(
9782 &self,
9783 target: GLenum,
9784 level: GLint,
9785 internalformat: GLenum,
9786 x: GLint,
9787 y: GLint,
9788 width: GLsizei,
9789 border: GLint,
9790 ) {
9791 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9792 {
9793 trace!(
9794 "calling gl.CopyTexImage1D({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?});",
9795 target,
9796 level,
9797 internalformat,
9798 x,
9799 y,
9800 width,
9801 border
9802 );
9803 }
9804 let out = call_atomic_ptr_7arg(
9805 "glCopyTexImage1D",
9806 &self.glCopyTexImage1D_p,
9807 target,
9808 level,
9809 internalformat,
9810 x,
9811 y,
9812 width,
9813 border,
9814 );
9815 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9816 {
9817 self.automatic_glGetError("glCopyTexImage1D");
9818 }
9819 out
9820 }
9821 #[doc(hidden)]
9822 pub unsafe fn CopyTexImage1D_load_with_dyn(
9823 &self,
9824 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9825 ) -> bool {
9826 load_dyn_name_atomic_ptr(
9827 get_proc_address,
9828 b"glCopyTexImage1D\0",
9829 &self.glCopyTexImage1D_p,
9830 )
9831 }
9832 #[inline]
9833 #[doc(hidden)]
9834 pub fn CopyTexImage1D_is_loaded(&self) -> bool {
9835 !self.glCopyTexImage1D_p.load(RELAX).is_null()
9836 }
9837 #[cfg_attr(feature = "inline", inline)]
9845 #[cfg_attr(feature = "inline_always", inline(always))]
9846 pub unsafe fn CopyTexImage2D(
9847 &self,
9848 target: GLenum,
9849 level: GLint,
9850 internalformat: GLenum,
9851 x: GLint,
9852 y: GLint,
9853 width: GLsizei,
9854 height: GLsizei,
9855 border: GLint,
9856 ) {
9857 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9858 {
9859 trace!(
9860 "calling gl.CopyTexImage2D({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?}, {:?});",
9861 target,
9862 level,
9863 internalformat,
9864 x,
9865 y,
9866 width,
9867 height,
9868 border
9869 );
9870 }
9871 let out = call_atomic_ptr_8arg(
9872 "glCopyTexImage2D",
9873 &self.glCopyTexImage2D_p,
9874 target,
9875 level,
9876 internalformat,
9877 x,
9878 y,
9879 width,
9880 height,
9881 border,
9882 );
9883 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9884 {
9885 self.automatic_glGetError("glCopyTexImage2D");
9886 }
9887 out
9888 }
9889 #[doc(hidden)]
9890 pub unsafe fn CopyTexImage2D_load_with_dyn(
9891 &self,
9892 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9893 ) -> bool {
9894 load_dyn_name_atomic_ptr(
9895 get_proc_address,
9896 b"glCopyTexImage2D\0",
9897 &self.glCopyTexImage2D_p,
9898 )
9899 }
9900 #[inline]
9901 #[doc(hidden)]
9902 pub fn CopyTexImage2D_is_loaded(&self) -> bool {
9903 !self.glCopyTexImage2D_p.load(RELAX).is_null()
9904 }
9905 #[cfg_attr(feature = "inline", inline)]
9912 #[cfg_attr(feature = "inline_always", inline(always))]
9913 pub unsafe fn CopyTexSubImage1D(
9914 &self,
9915 target: GLenum,
9916 level: GLint,
9917 xoffset: GLint,
9918 x: GLint,
9919 y: GLint,
9920 width: GLsizei,
9921 ) {
9922 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9923 {
9924 trace!(
9925 "calling gl.CopyTexSubImage1D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?});",
9926 target,
9927 level,
9928 xoffset,
9929 x,
9930 y,
9931 width
9932 );
9933 }
9934 let out = call_atomic_ptr_6arg(
9935 "glCopyTexSubImage1D",
9936 &self.glCopyTexSubImage1D_p,
9937 target,
9938 level,
9939 xoffset,
9940 x,
9941 y,
9942 width,
9943 );
9944 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9945 {
9946 self.automatic_glGetError("glCopyTexSubImage1D");
9947 }
9948 out
9949 }
9950 #[doc(hidden)]
9951 pub unsafe fn CopyTexSubImage1D_load_with_dyn(
9952 &self,
9953 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9954 ) -> bool {
9955 load_dyn_name_atomic_ptr(
9956 get_proc_address,
9957 b"glCopyTexSubImage1D\0",
9958 &self.glCopyTexSubImage1D_p,
9959 )
9960 }
9961 #[inline]
9962 #[doc(hidden)]
9963 pub fn CopyTexSubImage1D_is_loaded(&self) -> bool {
9964 !self.glCopyTexSubImage1D_p.load(RELAX).is_null()
9965 }
9966 #[cfg_attr(feature = "inline", inline)]
9974 #[cfg_attr(feature = "inline_always", inline(always))]
9975 pub unsafe fn CopyTexSubImage2D(
9976 &self,
9977 target: GLenum,
9978 level: GLint,
9979 xoffset: GLint,
9980 yoffset: GLint,
9981 x: GLint,
9982 y: GLint,
9983 width: GLsizei,
9984 height: GLsizei,
9985 ) {
9986 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9987 {
9988 trace!("calling gl.CopyTexSubImage2D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", target, level, xoffset, yoffset, x, y, width, height);
9989 }
9990 let out = call_atomic_ptr_8arg(
9991 "glCopyTexSubImage2D",
9992 &self.glCopyTexSubImage2D_p,
9993 target,
9994 level,
9995 xoffset,
9996 yoffset,
9997 x,
9998 y,
9999 width,
10000 height,
10001 );
10002 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10003 {
10004 self.automatic_glGetError("glCopyTexSubImage2D");
10005 }
10006 out
10007 }
10008 #[doc(hidden)]
10009 pub unsafe fn CopyTexSubImage2D_load_with_dyn(
10010 &self,
10011 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10012 ) -> bool {
10013 load_dyn_name_atomic_ptr(
10014 get_proc_address,
10015 b"glCopyTexSubImage2D\0",
10016 &self.glCopyTexSubImage2D_p,
10017 )
10018 }
10019 #[inline]
10020 #[doc(hidden)]
10021 pub fn CopyTexSubImage2D_is_loaded(&self) -> bool {
10022 !self.glCopyTexSubImage2D_p.load(RELAX).is_null()
10023 }
10024 #[cfg_attr(feature = "inline", inline)]
10033 #[cfg_attr(feature = "inline_always", inline(always))]
10034 pub unsafe fn CopyTexSubImage3D(
10035 &self,
10036 target: GLenum,
10037 level: GLint,
10038 xoffset: GLint,
10039 yoffset: GLint,
10040 zoffset: GLint,
10041 x: GLint,
10042 y: GLint,
10043 width: GLsizei,
10044 height: GLsizei,
10045 ) {
10046 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10047 {
10048 trace!("calling gl.CopyTexSubImage3D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", target, level, xoffset, yoffset, zoffset, x, y, width, height);
10049 }
10050 let out = call_atomic_ptr_9arg(
10051 "glCopyTexSubImage3D",
10052 &self.glCopyTexSubImage3D_p,
10053 target,
10054 level,
10055 xoffset,
10056 yoffset,
10057 zoffset,
10058 x,
10059 y,
10060 width,
10061 height,
10062 );
10063 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10064 {
10065 self.automatic_glGetError("glCopyTexSubImage3D");
10066 }
10067 out
10068 }
10069 #[doc(hidden)]
10070 pub unsafe fn CopyTexSubImage3D_load_with_dyn(
10071 &self,
10072 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10073 ) -> bool {
10074 load_dyn_name_atomic_ptr(
10075 get_proc_address,
10076 b"glCopyTexSubImage3D\0",
10077 &self.glCopyTexSubImage3D_p,
10078 )
10079 }
10080 #[inline]
10081 #[doc(hidden)]
10082 pub fn CopyTexSubImage3D_is_loaded(&self) -> bool {
10083 !self.glCopyTexSubImage3D_p.load(RELAX).is_null()
10084 }
10085 #[cfg_attr(feature = "inline", inline)]
10087 #[cfg_attr(feature = "inline_always", inline(always))]
10088 pub unsafe fn CopyTextureSubImage1D(
10089 &self,
10090 texture: GLuint,
10091 level: GLint,
10092 xoffset: GLint,
10093 x: GLint,
10094 y: GLint,
10095 width: GLsizei,
10096 ) {
10097 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10098 {
10099 trace!(
10100 "calling gl.CopyTextureSubImage1D({:?}, {:?}, {:?}, {:?}, {:?}, {:?});",
10101 texture,
10102 level,
10103 xoffset,
10104 x,
10105 y,
10106 width
10107 );
10108 }
10109 let out = call_atomic_ptr_6arg(
10110 "glCopyTextureSubImage1D",
10111 &self.glCopyTextureSubImage1D_p,
10112 texture,
10113 level,
10114 xoffset,
10115 x,
10116 y,
10117 width,
10118 );
10119 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10120 {
10121 self.automatic_glGetError("glCopyTextureSubImage1D");
10122 }
10123 out
10124 }
10125 #[doc(hidden)]
10126 pub unsafe fn CopyTextureSubImage1D_load_with_dyn(
10127 &self,
10128 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10129 ) -> bool {
10130 load_dyn_name_atomic_ptr(
10131 get_proc_address,
10132 b"glCopyTextureSubImage1D\0",
10133 &self.glCopyTextureSubImage1D_p,
10134 )
10135 }
10136 #[inline]
10137 #[doc(hidden)]
10138 pub fn CopyTextureSubImage1D_is_loaded(&self) -> bool {
10139 !self.glCopyTextureSubImage1D_p.load(RELAX).is_null()
10140 }
10141 #[cfg_attr(feature = "inline", inline)]
10143 #[cfg_attr(feature = "inline_always", inline(always))]
10144 pub unsafe fn CopyTextureSubImage2D(
10145 &self,
10146 texture: GLuint,
10147 level: GLint,
10148 xoffset: GLint,
10149 yoffset: GLint,
10150 x: GLint,
10151 y: GLint,
10152 width: GLsizei,
10153 height: GLsizei,
10154 ) {
10155 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10156 {
10157 trace!("calling gl.CopyTextureSubImage2D({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", texture, level, xoffset, yoffset, x, y, width, height);
10158 }
10159 let out = call_atomic_ptr_8arg(
10160 "glCopyTextureSubImage2D",
10161 &self.glCopyTextureSubImage2D_p,
10162 texture,
10163 level,
10164 xoffset,
10165 yoffset,
10166 x,
10167 y,
10168 width,
10169 height,
10170 );
10171 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10172 {
10173 self.automatic_glGetError("glCopyTextureSubImage2D");
10174 }
10175 out
10176 }
10177 #[doc(hidden)]
10178 pub unsafe fn CopyTextureSubImage2D_load_with_dyn(
10179 &self,
10180 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10181 ) -> bool {
10182 load_dyn_name_atomic_ptr(
10183 get_proc_address,
10184 b"glCopyTextureSubImage2D\0",
10185 &self.glCopyTextureSubImage2D_p,
10186 )
10187 }
10188 #[inline]
10189 #[doc(hidden)]
10190 pub fn CopyTextureSubImage2D_is_loaded(&self) -> bool {
10191 !self.glCopyTextureSubImage2D_p.load(RELAX).is_null()
10192 }
10193 #[cfg_attr(feature = "inline", inline)]
10195 #[cfg_attr(feature = "inline_always", inline(always))]
10196 pub unsafe fn CopyTextureSubImage3D(
10197 &self,
10198 texture: GLuint,
10199 level: GLint,
10200 xoffset: GLint,
10201 yoffset: GLint,
10202 zoffset: GLint,
10203 x: GLint,
10204 y: GLint,
10205 width: GLsizei,
10206 height: GLsizei,
10207 ) {
10208 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10209 {
10210 trace!("calling gl.CopyTextureSubImage3D({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", texture, level, xoffset, yoffset, zoffset, x, y, width, height);
10211 }
10212 let out = call_atomic_ptr_9arg(
10213 "glCopyTextureSubImage3D",
10214 &self.glCopyTextureSubImage3D_p,
10215 texture,
10216 level,
10217 xoffset,
10218 yoffset,
10219 zoffset,
10220 x,
10221 y,
10222 width,
10223 height,
10224 );
10225 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10226 {
10227 self.automatic_glGetError("glCopyTextureSubImage3D");
10228 }
10229 out
10230 }
10231 #[doc(hidden)]
10232 pub unsafe fn CopyTextureSubImage3D_load_with_dyn(
10233 &self,
10234 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10235 ) -> bool {
10236 load_dyn_name_atomic_ptr(
10237 get_proc_address,
10238 b"glCopyTextureSubImage3D\0",
10239 &self.glCopyTextureSubImage3D_p,
10240 )
10241 }
10242 #[inline]
10243 #[doc(hidden)]
10244 pub fn CopyTextureSubImage3D_is_loaded(&self) -> bool {
10245 !self.glCopyTextureSubImage3D_p.load(RELAX).is_null()
10246 }
10247 #[cfg_attr(feature = "inline", inline)]
10250 #[cfg_attr(feature = "inline_always", inline(always))]
10251 pub unsafe fn CreateBuffers(&self, n: GLsizei, buffers: *mut GLuint) {
10252 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10253 {
10254 trace!("calling gl.CreateBuffers({:?}, {:p});", n, buffers);
10255 }
10256 let out = call_atomic_ptr_2arg("glCreateBuffers", &self.glCreateBuffers_p, n, buffers);
10257 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10258 {
10259 self.automatic_glGetError("glCreateBuffers");
10260 }
10261 out
10262 }
10263 #[doc(hidden)]
10264 pub unsafe fn CreateBuffers_load_with_dyn(
10265 &self,
10266 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10267 ) -> bool {
10268 load_dyn_name_atomic_ptr(
10269 get_proc_address,
10270 b"glCreateBuffers\0",
10271 &self.glCreateBuffers_p,
10272 )
10273 }
10274 #[inline]
10275 #[doc(hidden)]
10276 pub fn CreateBuffers_is_loaded(&self) -> bool {
10277 !self.glCreateBuffers_p.load(RELAX).is_null()
10278 }
10279 #[cfg_attr(feature = "inline", inline)]
10282 #[cfg_attr(feature = "inline_always", inline(always))]
10283 pub unsafe fn CreateFramebuffers(&self, n: GLsizei, framebuffers: *mut GLuint) {
10284 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10285 {
10286 trace!(
10287 "calling gl.CreateFramebuffers({:?}, {:p});",
10288 n,
10289 framebuffers
10290 );
10291 }
10292 let out = call_atomic_ptr_2arg(
10293 "glCreateFramebuffers",
10294 &self.glCreateFramebuffers_p,
10295 n,
10296 framebuffers,
10297 );
10298 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10299 {
10300 self.automatic_glGetError("glCreateFramebuffers");
10301 }
10302 out
10303 }
10304 #[doc(hidden)]
10305 pub unsafe fn CreateFramebuffers_load_with_dyn(
10306 &self,
10307 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10308 ) -> bool {
10309 load_dyn_name_atomic_ptr(
10310 get_proc_address,
10311 b"glCreateFramebuffers\0",
10312 &self.glCreateFramebuffers_p,
10313 )
10314 }
10315 #[inline]
10316 #[doc(hidden)]
10317 pub fn CreateFramebuffers_is_loaded(&self) -> bool {
10318 !self.glCreateFramebuffers_p.load(RELAX).is_null()
10319 }
10320 #[cfg_attr(feature = "inline", inline)]
10322 #[cfg_attr(feature = "inline_always", inline(always))]
10323 pub unsafe fn CreateProgram(&self) -> GLuint {
10324 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10325 {
10326 trace!("calling gl.CreateProgram();",);
10327 }
10328 let out = call_atomic_ptr_0arg("glCreateProgram", &self.glCreateProgram_p);
10329 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10330 {
10331 self.automatic_glGetError("glCreateProgram");
10332 }
10333 out
10334 }
10335 #[doc(hidden)]
10336 pub unsafe fn CreateProgram_load_with_dyn(
10337 &self,
10338 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10339 ) -> bool {
10340 load_dyn_name_atomic_ptr(
10341 get_proc_address,
10342 b"glCreateProgram\0",
10343 &self.glCreateProgram_p,
10344 )
10345 }
10346 #[inline]
10347 #[doc(hidden)]
10348 pub fn CreateProgram_is_loaded(&self) -> bool {
10349 !self.glCreateProgram_p.load(RELAX).is_null()
10350 }
10351 #[cfg_attr(feature = "inline", inline)]
10354 #[cfg_attr(feature = "inline_always", inline(always))]
10355 pub unsafe fn CreateProgramPipelines(&self, n: GLsizei, pipelines: *mut GLuint) {
10356 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10357 {
10358 trace!(
10359 "calling gl.CreateProgramPipelines({:?}, {:p});",
10360 n,
10361 pipelines
10362 );
10363 }
10364 let out = call_atomic_ptr_2arg(
10365 "glCreateProgramPipelines",
10366 &self.glCreateProgramPipelines_p,
10367 n,
10368 pipelines,
10369 );
10370 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10371 {
10372 self.automatic_glGetError("glCreateProgramPipelines");
10373 }
10374 out
10375 }
10376 #[doc(hidden)]
10377 pub unsafe fn CreateProgramPipelines_load_with_dyn(
10378 &self,
10379 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10380 ) -> bool {
10381 load_dyn_name_atomic_ptr(
10382 get_proc_address,
10383 b"glCreateProgramPipelines\0",
10384 &self.glCreateProgramPipelines_p,
10385 )
10386 }
10387 #[inline]
10388 #[doc(hidden)]
10389 pub fn CreateProgramPipelines_is_loaded(&self) -> bool {
10390 !self.glCreateProgramPipelines_p.load(RELAX).is_null()
10391 }
10392 #[cfg_attr(feature = "inline", inline)]
10396 #[cfg_attr(feature = "inline_always", inline(always))]
10397 pub unsafe fn CreateQueries(&self, target: GLenum, n: GLsizei, ids: *mut GLuint) {
10398 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10399 {
10400 trace!(
10401 "calling gl.CreateQueries({:#X}, {:?}, {:p});",
10402 target,
10403 n,
10404 ids
10405 );
10406 }
10407 let out =
10408 call_atomic_ptr_3arg("glCreateQueries", &self.glCreateQueries_p, target, n, ids);
10409 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10410 {
10411 self.automatic_glGetError("glCreateQueries");
10412 }
10413 out
10414 }
10415 #[doc(hidden)]
10416 pub unsafe fn CreateQueries_load_with_dyn(
10417 &self,
10418 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10419 ) -> bool {
10420 load_dyn_name_atomic_ptr(
10421 get_proc_address,
10422 b"glCreateQueries\0",
10423 &self.glCreateQueries_p,
10424 )
10425 }
10426 #[inline]
10427 #[doc(hidden)]
10428 pub fn CreateQueries_is_loaded(&self) -> bool {
10429 !self.glCreateQueries_p.load(RELAX).is_null()
10430 }
10431 #[cfg_attr(feature = "inline", inline)]
10434 #[cfg_attr(feature = "inline_always", inline(always))]
10435 pub unsafe fn CreateRenderbuffers(&self, n: GLsizei, renderbuffers: *mut GLuint) {
10436 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10437 {
10438 trace!(
10439 "calling gl.CreateRenderbuffers({:?}, {:p});",
10440 n,
10441 renderbuffers
10442 );
10443 }
10444 let out = call_atomic_ptr_2arg(
10445 "glCreateRenderbuffers",
10446 &self.glCreateRenderbuffers_p,
10447 n,
10448 renderbuffers,
10449 );
10450 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10451 {
10452 self.automatic_glGetError("glCreateRenderbuffers");
10453 }
10454 out
10455 }
10456 #[doc(hidden)]
10457 pub unsafe fn CreateRenderbuffers_load_with_dyn(
10458 &self,
10459 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10460 ) -> bool {
10461 load_dyn_name_atomic_ptr(
10462 get_proc_address,
10463 b"glCreateRenderbuffers\0",
10464 &self.glCreateRenderbuffers_p,
10465 )
10466 }
10467 #[inline]
10468 #[doc(hidden)]
10469 pub fn CreateRenderbuffers_is_loaded(&self) -> bool {
10470 !self.glCreateRenderbuffers_p.load(RELAX).is_null()
10471 }
10472 #[cfg_attr(feature = "inline", inline)]
10475 #[cfg_attr(feature = "inline_always", inline(always))]
10476 pub unsafe fn CreateSamplers(&self, n: GLsizei, samplers: *mut GLuint) {
10477 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10478 {
10479 trace!("calling gl.CreateSamplers({:?}, {:p});", n, samplers);
10480 }
10481 let out =
10482 call_atomic_ptr_2arg("glCreateSamplers", &self.glCreateSamplers_p, n, samplers);
10483 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10484 {
10485 self.automatic_glGetError("glCreateSamplers");
10486 }
10487 out
10488 }
10489 #[doc(hidden)]
10490 pub unsafe fn CreateSamplers_load_with_dyn(
10491 &self,
10492 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10493 ) -> bool {
10494 load_dyn_name_atomic_ptr(
10495 get_proc_address,
10496 b"glCreateSamplers\0",
10497 &self.glCreateSamplers_p,
10498 )
10499 }
10500 #[inline]
10501 #[doc(hidden)]
10502 pub fn CreateSamplers_is_loaded(&self) -> bool {
10503 !self.glCreateSamplers_p.load(RELAX).is_null()
10504 }
10505 #[cfg_attr(feature = "inline", inline)]
10508 #[cfg_attr(feature = "inline_always", inline(always))]
10509 pub unsafe fn CreateShader(&self, type_: GLenum) -> GLuint {
10510 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10511 {
10512 trace!("calling gl.CreateShader({:#X});", type_);
10513 }
10514 let out = call_atomic_ptr_1arg("glCreateShader", &self.glCreateShader_p, type_);
10515 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10516 {
10517 self.automatic_glGetError("glCreateShader");
10518 }
10519 out
10520 }
10521 #[doc(hidden)]
10522 pub unsafe fn CreateShader_load_with_dyn(
10523 &self,
10524 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10525 ) -> bool {
10526 load_dyn_name_atomic_ptr(
10527 get_proc_address,
10528 b"glCreateShader\0",
10529 &self.glCreateShader_p,
10530 )
10531 }
10532 #[inline]
10533 #[doc(hidden)]
10534 pub fn CreateShader_is_loaded(&self) -> bool {
10535 !self.glCreateShader_p.load(RELAX).is_null()
10536 }
10537 #[cfg_attr(feature = "inline", inline)]
10541 #[cfg_attr(feature = "inline_always", inline(always))]
10542 pub unsafe fn CreateShaderProgramv(
10543 &self,
10544 type_: GLenum,
10545 count: GLsizei,
10546 strings: *const *const GLchar,
10547 ) -> GLuint {
10548 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10549 {
10550 trace!(
10551 "calling gl.CreateShaderProgramv({:#X}, {:?}, {:p});",
10552 type_,
10553 count,
10554 strings
10555 );
10556 }
10557 let out = call_atomic_ptr_3arg(
10558 "glCreateShaderProgramv",
10559 &self.glCreateShaderProgramv_p,
10560 type_,
10561 count,
10562 strings,
10563 );
10564 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10565 {
10566 self.automatic_glGetError("glCreateShaderProgramv");
10567 }
10568 out
10569 }
10570 #[doc(hidden)]
10571 pub unsafe fn CreateShaderProgramv_load_with_dyn(
10572 &self,
10573 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10574 ) -> bool {
10575 load_dyn_name_atomic_ptr(
10576 get_proc_address,
10577 b"glCreateShaderProgramv\0",
10578 &self.glCreateShaderProgramv_p,
10579 )
10580 }
10581 #[inline]
10582 #[doc(hidden)]
10583 pub fn CreateShaderProgramv_is_loaded(&self) -> bool {
10584 !self.glCreateShaderProgramv_p.load(RELAX).is_null()
10585 }
10586 #[cfg_attr(feature = "inline", inline)]
10590 #[cfg_attr(feature = "inline_always", inline(always))]
10591 pub unsafe fn CreateTextures(&self, target: GLenum, n: GLsizei, textures: *mut GLuint) {
10592 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10593 {
10594 trace!(
10595 "calling gl.CreateTextures({:#X}, {:?}, {:p});",
10596 target,
10597 n,
10598 textures
10599 );
10600 }
10601 let out = call_atomic_ptr_3arg(
10602 "glCreateTextures",
10603 &self.glCreateTextures_p,
10604 target,
10605 n,
10606 textures,
10607 );
10608 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10609 {
10610 self.automatic_glGetError("glCreateTextures");
10611 }
10612 out
10613 }
10614 #[doc(hidden)]
10615 pub unsafe fn CreateTextures_load_with_dyn(
10616 &self,
10617 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10618 ) -> bool {
10619 load_dyn_name_atomic_ptr(
10620 get_proc_address,
10621 b"glCreateTextures\0",
10622 &self.glCreateTextures_p,
10623 )
10624 }
10625 #[inline]
10626 #[doc(hidden)]
10627 pub fn CreateTextures_is_loaded(&self) -> bool {
10628 !self.glCreateTextures_p.load(RELAX).is_null()
10629 }
10630 #[cfg_attr(feature = "inline", inline)]
10633 #[cfg_attr(feature = "inline_always", inline(always))]
10634 pub unsafe fn CreateTransformFeedbacks(&self, n: GLsizei, ids: *mut GLuint) {
10635 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10636 {
10637 trace!("calling gl.CreateTransformFeedbacks({:?}, {:p});", n, ids);
10638 }
10639 let out = call_atomic_ptr_2arg(
10640 "glCreateTransformFeedbacks",
10641 &self.glCreateTransformFeedbacks_p,
10642 n,
10643 ids,
10644 );
10645 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10646 {
10647 self.automatic_glGetError("glCreateTransformFeedbacks");
10648 }
10649 out
10650 }
10651 #[doc(hidden)]
10652 pub unsafe fn CreateTransformFeedbacks_load_with_dyn(
10653 &self,
10654 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10655 ) -> bool {
10656 load_dyn_name_atomic_ptr(
10657 get_proc_address,
10658 b"glCreateTransformFeedbacks\0",
10659 &self.glCreateTransformFeedbacks_p,
10660 )
10661 }
10662 #[inline]
10663 #[doc(hidden)]
10664 pub fn CreateTransformFeedbacks_is_loaded(&self) -> bool {
10665 !self.glCreateTransformFeedbacks_p.load(RELAX).is_null()
10666 }
10667 #[cfg_attr(feature = "inline", inline)]
10670 #[cfg_attr(feature = "inline_always", inline(always))]
10671 pub unsafe fn CreateVertexArrays(&self, n: GLsizei, arrays: *mut GLuint) {
10672 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10673 {
10674 trace!("calling gl.CreateVertexArrays({:?}, {:p});", n, arrays);
10675 }
10676 let out = call_atomic_ptr_2arg(
10677 "glCreateVertexArrays",
10678 &self.glCreateVertexArrays_p,
10679 n,
10680 arrays,
10681 );
10682 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10683 {
10684 self.automatic_glGetError("glCreateVertexArrays");
10685 }
10686 out
10687 }
10688 #[doc(hidden)]
10689 pub unsafe fn CreateVertexArrays_load_with_dyn(
10690 &self,
10691 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10692 ) -> bool {
10693 load_dyn_name_atomic_ptr(
10694 get_proc_address,
10695 b"glCreateVertexArrays\0",
10696 &self.glCreateVertexArrays_p,
10697 )
10698 }
10699 #[inline]
10700 #[doc(hidden)]
10701 pub fn CreateVertexArrays_is_loaded(&self) -> bool {
10702 !self.glCreateVertexArrays_p.load(RELAX).is_null()
10703 }
10704 #[cfg_attr(feature = "inline", inline)]
10707 #[cfg_attr(feature = "inline_always", inline(always))]
10708 pub unsafe fn CullFace(&self, mode: GLenum) {
10709 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10710 {
10711 trace!("calling gl.CullFace({:#X});", mode);
10712 }
10713 let out = call_atomic_ptr_1arg("glCullFace", &self.glCullFace_p, mode);
10714 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10715 {
10716 self.automatic_glGetError("glCullFace");
10717 }
10718 out
10719 }
10720 #[doc(hidden)]
10721 pub unsafe fn CullFace_load_with_dyn(
10722 &self,
10723 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10724 ) -> bool {
10725 load_dyn_name_atomic_ptr(get_proc_address, b"glCullFace\0", &self.glCullFace_p)
10726 }
10727 #[inline]
10728 #[doc(hidden)]
10729 pub fn CullFace_is_loaded(&self) -> bool {
10730 !self.glCullFace_p.load(RELAX).is_null()
10731 }
10732 #[cfg_attr(feature = "inline", inline)]
10734 #[cfg_attr(feature = "inline_always", inline(always))]
10735 pub unsafe fn DebugMessageCallback(&self, callback: GLDEBUGPROC, userParam: *const c_void) {
10736 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10737 {
10738 trace!(
10739 "calling gl.DebugMessageCallback({:?}, {:p});",
10740 transmute::<_, Option<fn()>>(callback),
10741 userParam
10742 );
10743 }
10744 let out = call_atomic_ptr_2arg(
10745 "glDebugMessageCallback",
10746 &self.glDebugMessageCallback_p,
10747 callback,
10748 userParam,
10749 );
10750 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10751 {
10752 self.automatic_glGetError("glDebugMessageCallback");
10753 }
10754 out
10755 }
10756 #[doc(hidden)]
10757 pub unsafe fn DebugMessageCallback_load_with_dyn(
10758 &self,
10759 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10760 ) -> bool {
10761 load_dyn_name_atomic_ptr(
10762 get_proc_address,
10763 b"glDebugMessageCallback\0",
10764 &self.glDebugMessageCallback_p,
10765 )
10766 }
10767 #[inline]
10768 #[doc(hidden)]
10769 pub fn DebugMessageCallback_is_loaded(&self) -> bool {
10770 !self.glDebugMessageCallback_p.load(RELAX).is_null()
10771 }
10772 #[cfg_attr(feature = "inline", inline)]
10776 #[cfg_attr(feature = "inline_always", inline(always))]
10777 pub unsafe fn DebugMessageCallbackARB(
10778 &self,
10779 callback: GLDEBUGPROCARB,
10780 userParam: *const c_void,
10781 ) {
10782 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10783 {
10784 trace!(
10785 "calling gl.DebugMessageCallbackARB({:?}, {:p});",
10786 transmute::<_, Option<fn()>>(callback),
10787 userParam
10788 );
10789 }
10790 let out = call_atomic_ptr_2arg(
10791 "glDebugMessageCallbackARB",
10792 &self.glDebugMessageCallbackARB_p,
10793 callback,
10794 userParam,
10795 );
10796 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10797 {
10798 self.automatic_glGetError("glDebugMessageCallbackARB");
10799 }
10800 out
10801 }
10802 #[doc(hidden)]
10803 pub unsafe fn DebugMessageCallbackARB_load_with_dyn(
10804 &self,
10805 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10806 ) -> bool {
10807 load_dyn_name_atomic_ptr(
10808 get_proc_address,
10809 b"glDebugMessageCallbackARB\0",
10810 &self.glDebugMessageCallbackARB_p,
10811 )
10812 }
10813 #[inline]
10814 #[doc(hidden)]
10815 pub fn DebugMessageCallbackARB_is_loaded(&self) -> bool {
10816 !self.glDebugMessageCallbackARB_p.load(RELAX).is_null()
10817 }
10818 #[cfg_attr(feature = "inline", inline)]
10821 #[cfg_attr(feature = "inline_always", inline(always))]
10822 pub unsafe fn DebugMessageCallbackKHR(
10823 &self,
10824 callback: GLDEBUGPROCKHR,
10825 userParam: *const c_void,
10826 ) {
10827 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10828 {
10829 trace!(
10830 "calling gl.DebugMessageCallbackKHR({:?}, {:p});",
10831 transmute::<_, Option<fn()>>(callback),
10832 userParam
10833 );
10834 }
10835 let out = call_atomic_ptr_2arg(
10836 "glDebugMessageCallbackKHR",
10837 &self.glDebugMessageCallbackKHR_p,
10838 callback,
10839 userParam,
10840 );
10841 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10842 {
10843 self.automatic_glGetError("glDebugMessageCallbackKHR");
10844 }
10845 out
10846 }
10847 #[doc(hidden)]
10848 pub unsafe fn DebugMessageCallbackKHR_load_with_dyn(
10849 &self,
10850 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10851 ) -> bool {
10852 load_dyn_name_atomic_ptr(
10853 get_proc_address,
10854 b"glDebugMessageCallbackKHR\0",
10855 &self.glDebugMessageCallbackKHR_p,
10856 )
10857 }
10858 #[inline]
10859 #[doc(hidden)]
10860 pub fn DebugMessageCallbackKHR_is_loaded(&self) -> bool {
10861 !self.glDebugMessageCallbackKHR_p.load(RELAX).is_null()
10862 }
10863 #[cfg_attr(feature = "inline", inline)]
10869 #[cfg_attr(feature = "inline_always", inline(always))]
10870 pub unsafe fn DebugMessageControl(
10871 &self,
10872 source: GLenum,
10873 type_: GLenum,
10874 severity: GLenum,
10875 count: GLsizei,
10876 ids: *const GLuint,
10877 enabled: GLboolean,
10878 ) {
10879 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10880 {
10881 trace!(
10882 "calling gl.DebugMessageControl({:#X}, {:#X}, {:#X}, {:?}, {:p}, {:?});",
10883 source,
10884 type_,
10885 severity,
10886 count,
10887 ids,
10888 enabled
10889 );
10890 }
10891 let out = call_atomic_ptr_6arg(
10892 "glDebugMessageControl",
10893 &self.glDebugMessageControl_p,
10894 source,
10895 type_,
10896 severity,
10897 count,
10898 ids,
10899 enabled,
10900 );
10901 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10902 {
10903 self.automatic_glGetError("glDebugMessageControl");
10904 }
10905 out
10906 }
10907 #[doc(hidden)]
10908 pub unsafe fn DebugMessageControl_load_with_dyn(
10909 &self,
10910 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10911 ) -> bool {
10912 load_dyn_name_atomic_ptr(
10913 get_proc_address,
10914 b"glDebugMessageControl\0",
10915 &self.glDebugMessageControl_p,
10916 )
10917 }
10918 #[inline]
10919 #[doc(hidden)]
10920 pub fn DebugMessageControl_is_loaded(&self) -> bool {
10921 !self.glDebugMessageControl_p.load(RELAX).is_null()
10922 }
10923 #[cfg_attr(feature = "inline", inline)]
10930 #[cfg_attr(feature = "inline_always", inline(always))]
10931 pub unsafe fn DebugMessageControlARB(
10932 &self,
10933 source: GLenum,
10934 type_: GLenum,
10935 severity: GLenum,
10936 count: GLsizei,
10937 ids: *const GLuint,
10938 enabled: GLboolean,
10939 ) {
10940 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10941 {
10942 trace!(
10943 "calling gl.DebugMessageControlARB({:#X}, {:#X}, {:#X}, {:?}, {:p}, {:?});",
10944 source,
10945 type_,
10946 severity,
10947 count,
10948 ids,
10949 enabled
10950 );
10951 }
10952 let out = call_atomic_ptr_6arg(
10953 "glDebugMessageControlARB",
10954 &self.glDebugMessageControlARB_p,
10955 source,
10956 type_,
10957 severity,
10958 count,
10959 ids,
10960 enabled,
10961 );
10962 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10963 {
10964 self.automatic_glGetError("glDebugMessageControlARB");
10965 }
10966 out
10967 }
10968 #[doc(hidden)]
10969 pub unsafe fn DebugMessageControlARB_load_with_dyn(
10970 &self,
10971 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10972 ) -> bool {
10973 load_dyn_name_atomic_ptr(
10974 get_proc_address,
10975 b"glDebugMessageControlARB\0",
10976 &self.glDebugMessageControlARB_p,
10977 )
10978 }
10979 #[inline]
10980 #[doc(hidden)]
10981 pub fn DebugMessageControlARB_is_loaded(&self) -> bool {
10982 !self.glDebugMessageControlARB_p.load(RELAX).is_null()
10983 }
10984 #[cfg_attr(feature = "inline", inline)]
10990 #[cfg_attr(feature = "inline_always", inline(always))]
10991 pub unsafe fn DebugMessageControlKHR(
10992 &self,
10993 source: GLenum,
10994 type_: GLenum,
10995 severity: GLenum,
10996 count: GLsizei,
10997 ids: *const GLuint,
10998 enabled: GLboolean,
10999 ) {
11000 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11001 {
11002 trace!(
11003 "calling gl.DebugMessageControlKHR({:#X}, {:#X}, {:#X}, {:?}, {:p}, {:?});",
11004 source,
11005 type_,
11006 severity,
11007 count,
11008 ids,
11009 enabled
11010 );
11011 }
11012 let out = call_atomic_ptr_6arg(
11013 "glDebugMessageControlKHR",
11014 &self.glDebugMessageControlKHR_p,
11015 source,
11016 type_,
11017 severity,
11018 count,
11019 ids,
11020 enabled,
11021 );
11022 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11023 {
11024 self.automatic_glGetError("glDebugMessageControlKHR");
11025 }
11026 out
11027 }
11028 #[doc(hidden)]
11029 pub unsafe fn DebugMessageControlKHR_load_with_dyn(
11030 &self,
11031 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11032 ) -> bool {
11033 load_dyn_name_atomic_ptr(
11034 get_proc_address,
11035 b"glDebugMessageControlKHR\0",
11036 &self.glDebugMessageControlKHR_p,
11037 )
11038 }
11039 #[inline]
11040 #[doc(hidden)]
11041 pub fn DebugMessageControlKHR_is_loaded(&self) -> bool {
11042 !self.glDebugMessageControlKHR_p.load(RELAX).is_null()
11043 }
11044 #[cfg_attr(feature = "inline", inline)]
11050 #[cfg_attr(feature = "inline_always", inline(always))]
11051 pub unsafe fn DebugMessageInsert(
11052 &self,
11053 source: GLenum,
11054 type_: GLenum,
11055 id: GLuint,
11056 severity: GLenum,
11057 length: GLsizei,
11058 buf: *const GLchar,
11059 ) {
11060 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11061 {
11062 trace!(
11063 "calling gl.DebugMessageInsert({:#X}, {:#X}, {:?}, {:#X}, {:?}, {:p});",
11064 source,
11065 type_,
11066 id,
11067 severity,
11068 length,
11069 buf
11070 );
11071 }
11072 let out = call_atomic_ptr_6arg(
11073 "glDebugMessageInsert",
11074 &self.glDebugMessageInsert_p,
11075 source,
11076 type_,
11077 id,
11078 severity,
11079 length,
11080 buf,
11081 );
11082 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11083 {
11084 self.automatic_glGetError("glDebugMessageInsert");
11085 }
11086 out
11087 }
11088 #[doc(hidden)]
11089 pub unsafe fn DebugMessageInsert_load_with_dyn(
11090 &self,
11091 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11092 ) -> bool {
11093 load_dyn_name_atomic_ptr(
11094 get_proc_address,
11095 b"glDebugMessageInsert\0",
11096 &self.glDebugMessageInsert_p,
11097 )
11098 }
11099 #[inline]
11100 #[doc(hidden)]
11101 pub fn DebugMessageInsert_is_loaded(&self) -> bool {
11102 !self.glDebugMessageInsert_p.load(RELAX).is_null()
11103 }
11104 #[cfg_attr(feature = "inline", inline)]
11111 #[cfg_attr(feature = "inline_always", inline(always))]
11112 pub unsafe fn DebugMessageInsertARB(
11113 &self,
11114 source: GLenum,
11115 type_: GLenum,
11116 id: GLuint,
11117 severity: GLenum,
11118 length: GLsizei,
11119 buf: *const GLchar,
11120 ) {
11121 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11122 {
11123 trace!(
11124 "calling gl.DebugMessageInsertARB({:#X}, {:#X}, {:?}, {:#X}, {:?}, {:p});",
11125 source,
11126 type_,
11127 id,
11128 severity,
11129 length,
11130 buf
11131 );
11132 }
11133 let out = call_atomic_ptr_6arg(
11134 "glDebugMessageInsertARB",
11135 &self.glDebugMessageInsertARB_p,
11136 source,
11137 type_,
11138 id,
11139 severity,
11140 length,
11141 buf,
11142 );
11143 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11144 {
11145 self.automatic_glGetError("glDebugMessageInsertARB");
11146 }
11147 out
11148 }
11149 #[doc(hidden)]
11150 pub unsafe fn DebugMessageInsertARB_load_with_dyn(
11151 &self,
11152 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11153 ) -> bool {
11154 load_dyn_name_atomic_ptr(
11155 get_proc_address,
11156 b"glDebugMessageInsertARB\0",
11157 &self.glDebugMessageInsertARB_p,
11158 )
11159 }
11160 #[inline]
11161 #[doc(hidden)]
11162 pub fn DebugMessageInsertARB_is_loaded(&self) -> bool {
11163 !self.glDebugMessageInsertARB_p.load(RELAX).is_null()
11164 }
11165 #[cfg_attr(feature = "inline", inline)]
11171 #[cfg_attr(feature = "inline_always", inline(always))]
11172 pub unsafe fn DebugMessageInsertKHR(
11173 &self,
11174 source: GLenum,
11175 type_: GLenum,
11176 id: GLuint,
11177 severity: GLenum,
11178 length: GLsizei,
11179 buf: *const GLchar,
11180 ) {
11181 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11182 {
11183 trace!(
11184 "calling gl.DebugMessageInsertKHR({:#X}, {:#X}, {:?}, {:#X}, {:?}, {:p});",
11185 source,
11186 type_,
11187 id,
11188 severity,
11189 length,
11190 buf
11191 );
11192 }
11193 let out = call_atomic_ptr_6arg(
11194 "glDebugMessageInsertKHR",
11195 &self.glDebugMessageInsertKHR_p,
11196 source,
11197 type_,
11198 id,
11199 severity,
11200 length,
11201 buf,
11202 );
11203 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11204 {
11205 self.automatic_glGetError("glDebugMessageInsertKHR");
11206 }
11207 out
11208 }
11209 #[doc(hidden)]
11210 pub unsafe fn DebugMessageInsertKHR_load_with_dyn(
11211 &self,
11212 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11213 ) -> bool {
11214 load_dyn_name_atomic_ptr(
11215 get_proc_address,
11216 b"glDebugMessageInsertKHR\0",
11217 &self.glDebugMessageInsertKHR_p,
11218 )
11219 }
11220 #[inline]
11221 #[doc(hidden)]
11222 pub fn DebugMessageInsertKHR_is_loaded(&self) -> bool {
11223 !self.glDebugMessageInsertKHR_p.load(RELAX).is_null()
11224 }
11225 #[cfg_attr(feature = "inline", inline)]
11228 #[cfg_attr(feature = "inline_always", inline(always))]
11229 pub unsafe fn DeleteBuffers(&self, n: GLsizei, buffers: *const GLuint) {
11230 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11231 {
11232 trace!("calling gl.DeleteBuffers({:?}, {:p});", n, buffers);
11233 }
11234 let out = call_atomic_ptr_2arg("glDeleteBuffers", &self.glDeleteBuffers_p, n, buffers);
11235 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11236 {
11237 self.automatic_glGetError("glDeleteBuffers");
11238 }
11239 out
11240 }
11241 #[doc(hidden)]
11242 pub unsafe fn DeleteBuffers_load_with_dyn(
11243 &self,
11244 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11245 ) -> bool {
11246 load_dyn_name_atomic_ptr(
11247 get_proc_address,
11248 b"glDeleteBuffers\0",
11249 &self.glDeleteBuffers_p,
11250 )
11251 }
11252 #[inline]
11253 #[doc(hidden)]
11254 pub fn DeleteBuffers_is_loaded(&self) -> bool {
11255 !self.glDeleteBuffers_p.load(RELAX).is_null()
11256 }
11257 #[cfg_attr(feature = "inline", inline)]
11260 #[cfg_attr(feature = "inline_always", inline(always))]
11261 pub unsafe fn DeleteFramebuffers(&self, n: GLsizei, framebuffers: *const GLuint) {
11262 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11263 {
11264 trace!(
11265 "calling gl.DeleteFramebuffers({:?}, {:p});",
11266 n,
11267 framebuffers
11268 );
11269 }
11270 let out = call_atomic_ptr_2arg(
11271 "glDeleteFramebuffers",
11272 &self.glDeleteFramebuffers_p,
11273 n,
11274 framebuffers,
11275 );
11276 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11277 {
11278 self.automatic_glGetError("glDeleteFramebuffers");
11279 }
11280 out
11281 }
11282 #[doc(hidden)]
11283 pub unsafe fn DeleteFramebuffers_load_with_dyn(
11284 &self,
11285 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11286 ) -> bool {
11287 load_dyn_name_atomic_ptr(
11288 get_proc_address,
11289 b"glDeleteFramebuffers\0",
11290 &self.glDeleteFramebuffers_p,
11291 )
11292 }
11293 #[inline]
11294 #[doc(hidden)]
11295 pub fn DeleteFramebuffers_is_loaded(&self) -> bool {
11296 !self.glDeleteFramebuffers_p.load(RELAX).is_null()
11297 }
11298 #[cfg_attr(feature = "inline", inline)]
11300 #[cfg_attr(feature = "inline_always", inline(always))]
11301 pub unsafe fn DeleteProgram(&self, program: GLuint) {
11302 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11303 {
11304 trace!("calling gl.DeleteProgram({:?});", program);
11305 }
11306 let out = call_atomic_ptr_1arg("glDeleteProgram", &self.glDeleteProgram_p, program);
11307 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11308 {
11309 self.automatic_glGetError("glDeleteProgram");
11310 }
11311 out
11312 }
11313 #[doc(hidden)]
11314 pub unsafe fn DeleteProgram_load_with_dyn(
11315 &self,
11316 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11317 ) -> bool {
11318 load_dyn_name_atomic_ptr(
11319 get_proc_address,
11320 b"glDeleteProgram\0",
11321 &self.glDeleteProgram_p,
11322 )
11323 }
11324 #[inline]
11325 #[doc(hidden)]
11326 pub fn DeleteProgram_is_loaded(&self) -> bool {
11327 !self.glDeleteProgram_p.load(RELAX).is_null()
11328 }
11329 #[cfg_attr(feature = "inline", inline)]
11332 #[cfg_attr(feature = "inline_always", inline(always))]
11333 pub unsafe fn DeleteProgramPipelines(&self, n: GLsizei, pipelines: *const GLuint) {
11334 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11335 {
11336 trace!(
11337 "calling gl.DeleteProgramPipelines({:?}, {:p});",
11338 n,
11339 pipelines
11340 );
11341 }
11342 let out = call_atomic_ptr_2arg(
11343 "glDeleteProgramPipelines",
11344 &self.glDeleteProgramPipelines_p,
11345 n,
11346 pipelines,
11347 );
11348 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11349 {
11350 self.automatic_glGetError("glDeleteProgramPipelines");
11351 }
11352 out
11353 }
11354 #[doc(hidden)]
11355 pub unsafe fn DeleteProgramPipelines_load_with_dyn(
11356 &self,
11357 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11358 ) -> bool {
11359 load_dyn_name_atomic_ptr(
11360 get_proc_address,
11361 b"glDeleteProgramPipelines\0",
11362 &self.glDeleteProgramPipelines_p,
11363 )
11364 }
11365 #[inline]
11366 #[doc(hidden)]
11367 pub fn DeleteProgramPipelines_is_loaded(&self) -> bool {
11368 !self.glDeleteProgramPipelines_p.load(RELAX).is_null()
11369 }
11370 #[cfg_attr(feature = "inline", inline)]
11373 #[cfg_attr(feature = "inline_always", inline(always))]
11374 pub unsafe fn DeleteQueries(&self, n: GLsizei, ids: *const GLuint) {
11375 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11376 {
11377 trace!("calling gl.DeleteQueries({:?}, {:p});", n, ids);
11378 }
11379 let out = call_atomic_ptr_2arg("glDeleteQueries", &self.glDeleteQueries_p, n, ids);
11380 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11381 {
11382 self.automatic_glGetError("glDeleteQueries");
11383 }
11384 out
11385 }
11386 #[doc(hidden)]
11387 pub unsafe fn DeleteQueries_load_with_dyn(
11388 &self,
11389 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11390 ) -> bool {
11391 load_dyn_name_atomic_ptr(
11392 get_proc_address,
11393 b"glDeleteQueries\0",
11394 &self.glDeleteQueries_p,
11395 )
11396 }
11397 #[inline]
11398 #[doc(hidden)]
11399 pub fn DeleteQueries_is_loaded(&self) -> bool {
11400 !self.glDeleteQueries_p.load(RELAX).is_null()
11401 }
11402 #[cfg_attr(feature = "inline", inline)]
11405 #[cfg_attr(feature = "inline_always", inline(always))]
11406 pub unsafe fn DeleteQueriesEXT(&self, n: GLsizei, ids: *const GLuint) {
11407 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11408 {
11409 trace!("calling gl.DeleteQueriesEXT({:?}, {:p});", n, ids);
11410 }
11411 let out =
11412 call_atomic_ptr_2arg("glDeleteQueriesEXT", &self.glDeleteQueriesEXT_p, n, ids);
11413 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11414 {
11415 self.automatic_glGetError("glDeleteQueriesEXT");
11416 }
11417 out
11418 }
11419 #[doc(hidden)]
11420 pub unsafe fn DeleteQueriesEXT_load_with_dyn(
11421 &self,
11422 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11423 ) -> bool {
11424 load_dyn_name_atomic_ptr(
11425 get_proc_address,
11426 b"glDeleteQueriesEXT\0",
11427 &self.glDeleteQueriesEXT_p,
11428 )
11429 }
11430 #[inline]
11431 #[doc(hidden)]
11432 pub fn DeleteQueriesEXT_is_loaded(&self) -> bool {
11433 !self.glDeleteQueriesEXT_p.load(RELAX).is_null()
11434 }
11435 #[cfg_attr(feature = "inline", inline)]
11438 #[cfg_attr(feature = "inline_always", inline(always))]
11439 pub unsafe fn DeleteRenderbuffers(&self, n: GLsizei, renderbuffers: *const GLuint) {
11440 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11441 {
11442 trace!(
11443 "calling gl.DeleteRenderbuffers({:?}, {:p});",
11444 n,
11445 renderbuffers
11446 );
11447 }
11448 let out = call_atomic_ptr_2arg(
11449 "glDeleteRenderbuffers",
11450 &self.glDeleteRenderbuffers_p,
11451 n,
11452 renderbuffers,
11453 );
11454 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11455 {
11456 self.automatic_glGetError("glDeleteRenderbuffers");
11457 }
11458 out
11459 }
11460 #[doc(hidden)]
11461 pub unsafe fn DeleteRenderbuffers_load_with_dyn(
11462 &self,
11463 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11464 ) -> bool {
11465 load_dyn_name_atomic_ptr(
11466 get_proc_address,
11467 b"glDeleteRenderbuffers\0",
11468 &self.glDeleteRenderbuffers_p,
11469 )
11470 }
11471 #[inline]
11472 #[doc(hidden)]
11473 pub fn DeleteRenderbuffers_is_loaded(&self) -> bool {
11474 !self.glDeleteRenderbuffers_p.load(RELAX).is_null()
11475 }
11476 #[cfg_attr(feature = "inline", inline)]
11479 #[cfg_attr(feature = "inline_always", inline(always))]
11480 pub unsafe fn DeleteSamplers(&self, count: GLsizei, samplers: *const GLuint) {
11481 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11482 {
11483 trace!("calling gl.DeleteSamplers({:?}, {:p});", count, samplers);
11484 }
11485 let out = call_atomic_ptr_2arg(
11486 "glDeleteSamplers",
11487 &self.glDeleteSamplers_p,
11488 count,
11489 samplers,
11490 );
11491 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11492 {
11493 self.automatic_glGetError("glDeleteSamplers");
11494 }
11495 out
11496 }
11497 #[doc(hidden)]
11498 pub unsafe fn DeleteSamplers_load_with_dyn(
11499 &self,
11500 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11501 ) -> bool {
11502 load_dyn_name_atomic_ptr(
11503 get_proc_address,
11504 b"glDeleteSamplers\0",
11505 &self.glDeleteSamplers_p,
11506 )
11507 }
11508 #[inline]
11509 #[doc(hidden)]
11510 pub fn DeleteSamplers_is_loaded(&self) -> bool {
11511 !self.glDeleteSamplers_p.load(RELAX).is_null()
11512 }
11513 #[cfg_attr(feature = "inline", inline)]
11515 #[cfg_attr(feature = "inline_always", inline(always))]
11516 pub unsafe fn DeleteShader(&self, shader: GLuint) {
11517 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11518 {
11519 trace!("calling gl.DeleteShader({:?});", shader);
11520 }
11521 let out = call_atomic_ptr_1arg("glDeleteShader", &self.glDeleteShader_p, shader);
11522 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11523 {
11524 self.automatic_glGetError("glDeleteShader");
11525 }
11526 out
11527 }
11528 #[doc(hidden)]
11529 pub unsafe fn DeleteShader_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(
11534 get_proc_address,
11535 b"glDeleteShader\0",
11536 &self.glDeleteShader_p,
11537 )
11538 }
11539 #[inline]
11540 #[doc(hidden)]
11541 pub fn DeleteShader_is_loaded(&self) -> bool {
11542 !self.glDeleteShader_p.load(RELAX).is_null()
11543 }
11544 #[cfg_attr(feature = "inline", inline)]
11547 #[cfg_attr(feature = "inline_always", inline(always))]
11548 pub unsafe fn DeleteSync(&self, sync: GLsync) {
11549 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11550 {
11551 trace!("calling gl.DeleteSync({:p});", sync);
11552 }
11553 let out = call_atomic_ptr_1arg("glDeleteSync", &self.glDeleteSync_p, sync);
11554 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11555 {
11556 self.automatic_glGetError("glDeleteSync");
11557 }
11558 out
11559 }
11560 #[doc(hidden)]
11561 pub unsafe fn DeleteSync_load_with_dyn(
11562 &self,
11563 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11564 ) -> bool {
11565 load_dyn_name_atomic_ptr(get_proc_address, b"glDeleteSync\0", &self.glDeleteSync_p)
11566 }
11567 #[inline]
11568 #[doc(hidden)]
11569 pub fn DeleteSync_is_loaded(&self) -> bool {
11570 !self.glDeleteSync_p.load(RELAX).is_null()
11571 }
11572 #[cfg_attr(feature = "inline", inline)]
11576 #[cfg_attr(feature = "inline_always", inline(always))]
11577 pub unsafe fn DeleteTextures(&self, n: GLsizei, textures: *const GLuint) {
11578 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11579 {
11580 trace!("calling gl.DeleteTextures({:?}, {:p});", n, textures);
11581 }
11582 let out =
11583 call_atomic_ptr_2arg("glDeleteTextures", &self.glDeleteTextures_p, n, textures);
11584 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11585 {
11586 self.automatic_glGetError("glDeleteTextures");
11587 }
11588 out
11589 }
11590 #[doc(hidden)]
11591 pub unsafe fn DeleteTextures_load_with_dyn(
11592 &self,
11593 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11594 ) -> bool {
11595 load_dyn_name_atomic_ptr(
11596 get_proc_address,
11597 b"glDeleteTextures\0",
11598 &self.glDeleteTextures_p,
11599 )
11600 }
11601 #[inline]
11602 #[doc(hidden)]
11603 pub fn DeleteTextures_is_loaded(&self) -> bool {
11604 !self.glDeleteTextures_p.load(RELAX).is_null()
11605 }
11606 #[cfg_attr(feature = "inline", inline)]
11609 #[cfg_attr(feature = "inline_always", inline(always))]
11610 pub unsafe fn DeleteTransformFeedbacks(&self, n: GLsizei, ids: *const GLuint) {
11611 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11612 {
11613 trace!("calling gl.DeleteTransformFeedbacks({:?}, {:p});", n, ids);
11614 }
11615 let out = call_atomic_ptr_2arg(
11616 "glDeleteTransformFeedbacks",
11617 &self.glDeleteTransformFeedbacks_p,
11618 n,
11619 ids,
11620 );
11621 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11622 {
11623 self.automatic_glGetError("glDeleteTransformFeedbacks");
11624 }
11625 out
11626 }
11627 #[doc(hidden)]
11628 pub unsafe fn DeleteTransformFeedbacks_load_with_dyn(
11629 &self,
11630 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11631 ) -> bool {
11632 load_dyn_name_atomic_ptr(
11633 get_proc_address,
11634 b"glDeleteTransformFeedbacks\0",
11635 &self.glDeleteTransformFeedbacks_p,
11636 )
11637 }
11638 #[inline]
11639 #[doc(hidden)]
11640 pub fn DeleteTransformFeedbacks_is_loaded(&self) -> bool {
11641 !self.glDeleteTransformFeedbacks_p.load(RELAX).is_null()
11642 }
11643 #[cfg_attr(feature = "inline", inline)]
11646 #[cfg_attr(feature = "inline_always", inline(always))]
11647 pub unsafe fn DeleteVertexArrays(&self, n: GLsizei, arrays: *const GLuint) {
11648 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11649 {
11650 trace!("calling gl.DeleteVertexArrays({:?}, {:p});", n, arrays);
11651 }
11652 let out = call_atomic_ptr_2arg(
11653 "glDeleteVertexArrays",
11654 &self.glDeleteVertexArrays_p,
11655 n,
11656 arrays,
11657 );
11658 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11659 {
11660 self.automatic_glGetError("glDeleteVertexArrays");
11661 }
11662 out
11663 }
11664 #[doc(hidden)]
11665 pub unsafe fn DeleteVertexArrays_load_with_dyn(
11666 &self,
11667 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11668 ) -> bool {
11669 load_dyn_name_atomic_ptr(
11670 get_proc_address,
11671 b"glDeleteVertexArrays\0",
11672 &self.glDeleteVertexArrays_p,
11673 )
11674 }
11675 #[inline]
11676 #[doc(hidden)]
11677 pub fn DeleteVertexArrays_is_loaded(&self) -> bool {
11678 !self.glDeleteVertexArrays_p.load(RELAX).is_null()
11679 }
11680 #[cfg_attr(feature = "inline", inline)]
11684 #[cfg_attr(feature = "inline_always", inline(always))]
11685 pub unsafe fn DeleteVertexArraysAPPLE(&self, n: GLsizei, arrays: *const GLuint) {
11686 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11687 {
11688 trace!("calling gl.DeleteVertexArraysAPPLE({:?}, {:p});", n, arrays);
11689 }
11690 let out = call_atomic_ptr_2arg(
11691 "glDeleteVertexArraysAPPLE",
11692 &self.glDeleteVertexArraysAPPLE_p,
11693 n,
11694 arrays,
11695 );
11696 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11697 {
11698 self.automatic_glGetError("glDeleteVertexArraysAPPLE");
11699 }
11700 out
11701 }
11702 #[doc(hidden)]
11703 pub unsafe fn DeleteVertexArraysAPPLE_load_with_dyn(
11704 &self,
11705 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11706 ) -> bool {
11707 load_dyn_name_atomic_ptr(
11708 get_proc_address,
11709 b"glDeleteVertexArraysAPPLE\0",
11710 &self.glDeleteVertexArraysAPPLE_p,
11711 )
11712 }
11713 #[inline]
11714 #[doc(hidden)]
11715 pub fn DeleteVertexArraysAPPLE_is_loaded(&self) -> bool {
11716 !self.glDeleteVertexArraysAPPLE_p.load(RELAX).is_null()
11717 }
11718 #[cfg_attr(feature = "inline", inline)]
11722 #[cfg_attr(feature = "inline_always", inline(always))]
11723 pub unsafe fn DeleteVertexArraysOES(&self, n: GLsizei, arrays: *const GLuint) {
11724 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11725 {
11726 trace!("calling gl.DeleteVertexArraysOES({:?}, {:p});", n, arrays);
11727 }
11728 let out = call_atomic_ptr_2arg(
11729 "glDeleteVertexArraysOES",
11730 &self.glDeleteVertexArraysOES_p,
11731 n,
11732 arrays,
11733 );
11734 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11735 {
11736 self.automatic_glGetError("glDeleteVertexArraysOES");
11737 }
11738 out
11739 }
11740 #[doc(hidden)]
11741 pub unsafe fn DeleteVertexArraysOES_load_with_dyn(
11742 &self,
11743 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11744 ) -> bool {
11745 load_dyn_name_atomic_ptr(
11746 get_proc_address,
11747 b"glDeleteVertexArraysOES\0",
11748 &self.glDeleteVertexArraysOES_p,
11749 )
11750 }
11751 #[inline]
11752 #[doc(hidden)]
11753 pub fn DeleteVertexArraysOES_is_loaded(&self) -> bool {
11754 !self.glDeleteVertexArraysOES_p.load(RELAX).is_null()
11755 }
11756 #[cfg_attr(feature = "inline", inline)]
11759 #[cfg_attr(feature = "inline_always", inline(always))]
11760 pub unsafe fn DepthFunc(&self, func: GLenum) {
11761 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11762 {
11763 trace!("calling gl.DepthFunc({:#X});", func);
11764 }
11765 let out = call_atomic_ptr_1arg("glDepthFunc", &self.glDepthFunc_p, func);
11766 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11767 {
11768 self.automatic_glGetError("glDepthFunc");
11769 }
11770 out
11771 }
11772 #[doc(hidden)]
11773 pub unsafe fn DepthFunc_load_with_dyn(
11774 &self,
11775 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11776 ) -> bool {
11777 load_dyn_name_atomic_ptr(get_proc_address, b"glDepthFunc\0", &self.glDepthFunc_p)
11778 }
11779 #[inline]
11780 #[doc(hidden)]
11781 pub fn DepthFunc_is_loaded(&self) -> bool {
11782 !self.glDepthFunc_p.load(RELAX).is_null()
11783 }
11784 #[cfg_attr(feature = "inline", inline)]
11786 #[cfg_attr(feature = "inline_always", inline(always))]
11787 pub unsafe fn DepthMask(&self, flag: GLboolean) {
11788 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11789 {
11790 trace!("calling gl.DepthMask({:?});", flag);
11791 }
11792 let out = call_atomic_ptr_1arg("glDepthMask", &self.glDepthMask_p, flag);
11793 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11794 {
11795 self.automatic_glGetError("glDepthMask");
11796 }
11797 out
11798 }
11799 #[doc(hidden)]
11800 pub unsafe fn DepthMask_load_with_dyn(
11801 &self,
11802 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11803 ) -> bool {
11804 load_dyn_name_atomic_ptr(get_proc_address, b"glDepthMask\0", &self.glDepthMask_p)
11805 }
11806 #[inline]
11807 #[doc(hidden)]
11808 pub fn DepthMask_is_loaded(&self) -> bool {
11809 !self.glDepthMask_p.load(RELAX).is_null()
11810 }
11811 #[cfg_attr(feature = "inline", inline)]
11813 #[cfg_attr(feature = "inline_always", inline(always))]
11814 pub unsafe fn DepthRange(&self, n: GLdouble, f: GLdouble) {
11815 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11816 {
11817 trace!("calling gl.DepthRange({:?}, {:?});", n, f);
11818 }
11819 let out = call_atomic_ptr_2arg("glDepthRange", &self.glDepthRange_p, n, f);
11820 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11821 {
11822 self.automatic_glGetError("glDepthRange");
11823 }
11824 out
11825 }
11826 #[doc(hidden)]
11827 pub unsafe fn DepthRange_load_with_dyn(
11828 &self,
11829 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11830 ) -> bool {
11831 load_dyn_name_atomic_ptr(get_proc_address, b"glDepthRange\0", &self.glDepthRange_p)
11832 }
11833 #[inline]
11834 #[doc(hidden)]
11835 pub fn DepthRange_is_loaded(&self) -> bool {
11836 !self.glDepthRange_p.load(RELAX).is_null()
11837 }
11838 #[cfg_attr(feature = "inline", inline)]
11841 #[cfg_attr(feature = "inline_always", inline(always))]
11842 pub unsafe fn DepthRangeArrayv(&self, first: GLuint, count: GLsizei, v: *const GLdouble) {
11843 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11844 {
11845 trace!(
11846 "calling gl.DepthRangeArrayv({:?}, {:?}, {:p});",
11847 first,
11848 count,
11849 v
11850 );
11851 }
11852 let out = call_atomic_ptr_3arg(
11853 "glDepthRangeArrayv",
11854 &self.glDepthRangeArrayv_p,
11855 first,
11856 count,
11857 v,
11858 );
11859 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11860 {
11861 self.automatic_glGetError("glDepthRangeArrayv");
11862 }
11863 out
11864 }
11865 #[doc(hidden)]
11866 pub unsafe fn DepthRangeArrayv_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"glDepthRangeArrayv\0",
11873 &self.glDepthRangeArrayv_p,
11874 )
11875 }
11876 #[inline]
11877 #[doc(hidden)]
11878 pub fn DepthRangeArrayv_is_loaded(&self) -> bool {
11879 !self.glDepthRangeArrayv_p.load(RELAX).is_null()
11880 }
11881 #[cfg_attr(feature = "inline", inline)]
11883 #[cfg_attr(feature = "inline_always", inline(always))]
11884 pub unsafe fn DepthRangeIndexed(&self, index: GLuint, n: GLdouble, f: GLdouble) {
11885 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11886 {
11887 trace!(
11888 "calling gl.DepthRangeIndexed({:?}, {:?}, {:?});",
11889 index,
11890 n,
11891 f
11892 );
11893 }
11894 let out = call_atomic_ptr_3arg(
11895 "glDepthRangeIndexed",
11896 &self.glDepthRangeIndexed_p,
11897 index,
11898 n,
11899 f,
11900 );
11901 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11902 {
11903 self.automatic_glGetError("glDepthRangeIndexed");
11904 }
11905 out
11906 }
11907 #[doc(hidden)]
11908 pub unsafe fn DepthRangeIndexed_load_with_dyn(
11909 &self,
11910 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11911 ) -> bool {
11912 load_dyn_name_atomic_ptr(
11913 get_proc_address,
11914 b"glDepthRangeIndexed\0",
11915 &self.glDepthRangeIndexed_p,
11916 )
11917 }
11918 #[inline]
11919 #[doc(hidden)]
11920 pub fn DepthRangeIndexed_is_loaded(&self) -> bool {
11921 !self.glDepthRangeIndexed_p.load(RELAX).is_null()
11922 }
11923 #[cfg_attr(feature = "inline", inline)]
11925 #[cfg_attr(feature = "inline_always", inline(always))]
11926 pub unsafe fn DepthRangef(&self, n: GLfloat, f: GLfloat) {
11927 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11928 {
11929 trace!("calling gl.DepthRangef({:?}, {:?});", n, f);
11930 }
11931 let out = call_atomic_ptr_2arg("glDepthRangef", &self.glDepthRangef_p, n, f);
11932 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11933 {
11934 self.automatic_glGetError("glDepthRangef");
11935 }
11936 out
11937 }
11938 #[doc(hidden)]
11939 pub unsafe fn DepthRangef_load_with_dyn(
11940 &self,
11941 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11942 ) -> bool {
11943 load_dyn_name_atomic_ptr(get_proc_address, b"glDepthRangef\0", &self.glDepthRangef_p)
11944 }
11945 #[inline]
11946 #[doc(hidden)]
11947 pub fn DepthRangef_is_loaded(&self) -> bool {
11948 !self.glDepthRangef_p.load(RELAX).is_null()
11949 }
11950 #[cfg_attr(feature = "inline", inline)]
11952 #[cfg_attr(feature = "inline_always", inline(always))]
11953 pub unsafe fn DetachShader(&self, program: GLuint, shader: GLuint) {
11954 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11955 {
11956 trace!("calling gl.DetachShader({:?}, {:?});", program, shader);
11957 }
11958 let out =
11959 call_atomic_ptr_2arg("glDetachShader", &self.glDetachShader_p, program, shader);
11960 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11961 {
11962 self.automatic_glGetError("glDetachShader");
11963 }
11964 out
11965 }
11966 #[doc(hidden)]
11967 pub unsafe fn DetachShader_load_with_dyn(
11968 &self,
11969 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11970 ) -> bool {
11971 load_dyn_name_atomic_ptr(
11972 get_proc_address,
11973 b"glDetachShader\0",
11974 &self.glDetachShader_p,
11975 )
11976 }
11977 #[inline]
11978 #[doc(hidden)]
11979 pub fn DetachShader_is_loaded(&self) -> bool {
11980 !self.glDetachShader_p.load(RELAX).is_null()
11981 }
11982 #[cfg_attr(feature = "inline", inline)]
11985 #[cfg_attr(feature = "inline_always", inline(always))]
11986 pub unsafe fn Disable(&self, cap: GLenum) {
11987 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11988 {
11989 trace!("calling gl.Disable({:#X});", cap);
11990 }
11991 let out = call_atomic_ptr_1arg("glDisable", &self.glDisable_p, cap);
11992 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11993 {
11994 self.automatic_glGetError("glDisable");
11995 }
11996 out
11997 }
11998 #[doc(hidden)]
11999 pub unsafe fn Disable_load_with_dyn(
12000 &self,
12001 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12002 ) -> bool {
12003 load_dyn_name_atomic_ptr(get_proc_address, b"glDisable\0", &self.glDisable_p)
12004 }
12005 #[inline]
12006 #[doc(hidden)]
12007 pub fn Disable_is_loaded(&self) -> bool {
12008 !self.glDisable_p.load(RELAX).is_null()
12009 }
12010 #[cfg_attr(feature = "inline", inline)]
12014 #[cfg_attr(feature = "inline_always", inline(always))]
12015 pub unsafe fn DisableIndexedEXT(&self, target: GLenum, index: GLuint) {
12016 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12017 {
12018 trace!("calling gl.DisableIndexedEXT({:#X}, {:?});", target, index);
12019 }
12020 let out = call_atomic_ptr_2arg(
12021 "glDisableIndexedEXT",
12022 &self.glDisableIndexedEXT_p,
12023 target,
12024 index,
12025 );
12026 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12027 {
12028 self.automatic_glGetError("glDisableIndexedEXT");
12029 }
12030 out
12031 }
12032 #[doc(hidden)]
12033 pub unsafe fn DisableIndexedEXT_load_with_dyn(
12034 &self,
12035 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12036 ) -> bool {
12037 load_dyn_name_atomic_ptr(
12038 get_proc_address,
12039 b"glDisableIndexedEXT\0",
12040 &self.glDisableIndexedEXT_p,
12041 )
12042 }
12043 #[inline]
12044 #[doc(hidden)]
12045 pub fn DisableIndexedEXT_is_loaded(&self) -> bool {
12046 !self.glDisableIndexedEXT_p.load(RELAX).is_null()
12047 }
12048 #[cfg_attr(feature = "inline", inline)]
12050 #[cfg_attr(feature = "inline_always", inline(always))]
12051 pub unsafe fn DisableVertexArrayAttrib(&self, vaobj: GLuint, index: GLuint) {
12052 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12053 {
12054 trace!(
12055 "calling gl.DisableVertexArrayAttrib({:?}, {:?});",
12056 vaobj,
12057 index
12058 );
12059 }
12060 let out = call_atomic_ptr_2arg(
12061 "glDisableVertexArrayAttrib",
12062 &self.glDisableVertexArrayAttrib_p,
12063 vaobj,
12064 index,
12065 );
12066 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12067 {
12068 self.automatic_glGetError("glDisableVertexArrayAttrib");
12069 }
12070 out
12071 }
12072 #[doc(hidden)]
12073 pub unsafe fn DisableVertexArrayAttrib_load_with_dyn(
12074 &self,
12075 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12076 ) -> bool {
12077 load_dyn_name_atomic_ptr(
12078 get_proc_address,
12079 b"glDisableVertexArrayAttrib\0",
12080 &self.glDisableVertexArrayAttrib_p,
12081 )
12082 }
12083 #[inline]
12084 #[doc(hidden)]
12085 pub fn DisableVertexArrayAttrib_is_loaded(&self) -> bool {
12086 !self.glDisableVertexArrayAttrib_p.load(RELAX).is_null()
12087 }
12088 #[cfg_attr(feature = "inline", inline)]
12090 #[cfg_attr(feature = "inline_always", inline(always))]
12091 pub unsafe fn DisableVertexAttribArray(&self, index: GLuint) {
12092 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12093 {
12094 trace!("calling gl.DisableVertexAttribArray({:?});", index);
12095 }
12096 let out = call_atomic_ptr_1arg(
12097 "glDisableVertexAttribArray",
12098 &self.glDisableVertexAttribArray_p,
12099 index,
12100 );
12101 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12102 {
12103 self.automatic_glGetError("glDisableVertexAttribArray");
12104 }
12105 out
12106 }
12107 #[doc(hidden)]
12108 pub unsafe fn DisableVertexAttribArray_load_with_dyn(
12109 &self,
12110 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12111 ) -> bool {
12112 load_dyn_name_atomic_ptr(
12113 get_proc_address,
12114 b"glDisableVertexAttribArray\0",
12115 &self.glDisableVertexAttribArray_p,
12116 )
12117 }
12118 #[inline]
12119 #[doc(hidden)]
12120 pub fn DisableVertexAttribArray_is_loaded(&self) -> bool {
12121 !self.glDisableVertexAttribArray_p.load(RELAX).is_null()
12122 }
12123 #[cfg_attr(feature = "inline", inline)]
12126 #[cfg_attr(feature = "inline_always", inline(always))]
12127 pub unsafe fn Disablei(&self, target: GLenum, index: GLuint) {
12128 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12129 {
12130 trace!("calling gl.Disablei({:#X}, {:?});", target, index);
12131 }
12132 let out = call_atomic_ptr_2arg("glDisablei", &self.glDisablei_p, target, index);
12133 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12134 {
12135 self.automatic_glGetError("glDisablei");
12136 }
12137 out
12138 }
12139 #[doc(hidden)]
12140 pub unsafe fn Disablei_load_with_dyn(
12141 &self,
12142 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12143 ) -> bool {
12144 load_dyn_name_atomic_ptr(get_proc_address, b"glDisablei\0", &self.glDisablei_p)
12145 }
12146 #[inline]
12147 #[doc(hidden)]
12148 pub fn Disablei_is_loaded(&self) -> bool {
12149 !self.glDisablei_p.load(RELAX).is_null()
12150 }
12151 #[cfg_attr(feature = "inline", inline)]
12153 #[cfg_attr(feature = "inline_always", inline(always))]
12154 pub unsafe fn DispatchCompute(
12155 &self,
12156 num_groups_x: GLuint,
12157 num_groups_y: GLuint,
12158 num_groups_z: GLuint,
12159 ) {
12160 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12161 {
12162 trace!(
12163 "calling gl.DispatchCompute({:?}, {:?}, {:?});",
12164 num_groups_x,
12165 num_groups_y,
12166 num_groups_z
12167 );
12168 }
12169 let out = call_atomic_ptr_3arg(
12170 "glDispatchCompute",
12171 &self.glDispatchCompute_p,
12172 num_groups_x,
12173 num_groups_y,
12174 num_groups_z,
12175 );
12176 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12177 {
12178 self.automatic_glGetError("glDispatchCompute");
12179 }
12180 out
12181 }
12182 #[doc(hidden)]
12183 pub unsafe fn DispatchCompute_load_with_dyn(
12184 &self,
12185 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12186 ) -> bool {
12187 load_dyn_name_atomic_ptr(
12188 get_proc_address,
12189 b"glDispatchCompute\0",
12190 &self.glDispatchCompute_p,
12191 )
12192 }
12193 #[inline]
12194 #[doc(hidden)]
12195 pub fn DispatchCompute_is_loaded(&self) -> bool {
12196 !self.glDispatchCompute_p.load(RELAX).is_null()
12197 }
12198 #[cfg_attr(feature = "inline", inline)]
12201 #[cfg_attr(feature = "inline_always", inline(always))]
12202 pub unsafe fn DispatchComputeIndirect(&self, indirect: GLintptr) {
12203 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12204 {
12205 trace!("calling gl.DispatchComputeIndirect({:?});", indirect);
12206 }
12207 let out = call_atomic_ptr_1arg(
12208 "glDispatchComputeIndirect",
12209 &self.glDispatchComputeIndirect_p,
12210 indirect,
12211 );
12212 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12213 {
12214 self.automatic_glGetError("glDispatchComputeIndirect");
12215 }
12216 out
12217 }
12218 #[doc(hidden)]
12219 pub unsafe fn DispatchComputeIndirect_load_with_dyn(
12220 &self,
12221 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12222 ) -> bool {
12223 load_dyn_name_atomic_ptr(
12224 get_proc_address,
12225 b"glDispatchComputeIndirect\0",
12226 &self.glDispatchComputeIndirect_p,
12227 )
12228 }
12229 #[inline]
12230 #[doc(hidden)]
12231 pub fn DispatchComputeIndirect_is_loaded(&self) -> bool {
12232 !self.glDispatchComputeIndirect_p.load(RELAX).is_null()
12233 }
12234 #[cfg_attr(feature = "inline", inline)]
12237 #[cfg_attr(feature = "inline_always", inline(always))]
12238 pub unsafe fn DrawArrays(&self, mode: GLenum, first: GLint, count: GLsizei) {
12239 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12240 {
12241 trace!(
12242 "calling gl.DrawArrays({:#X}, {:?}, {:?});",
12243 mode,
12244 first,
12245 count
12246 );
12247 }
12248 let out =
12249 call_atomic_ptr_3arg("glDrawArrays", &self.glDrawArrays_p, mode, first, count);
12250 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12251 {
12252 self.automatic_glGetError("glDrawArrays");
12253 }
12254 out
12255 }
12256 #[doc(hidden)]
12257 pub unsafe fn DrawArrays_load_with_dyn(
12258 &self,
12259 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12260 ) -> bool {
12261 load_dyn_name_atomic_ptr(get_proc_address, b"glDrawArrays\0", &self.glDrawArrays_p)
12262 }
12263 #[inline]
12264 #[doc(hidden)]
12265 pub fn DrawArrays_is_loaded(&self) -> bool {
12266 !self.glDrawArrays_p.load(RELAX).is_null()
12267 }
12268 #[cfg_attr(feature = "inline", inline)]
12271 #[cfg_attr(feature = "inline_always", inline(always))]
12272 pub unsafe fn DrawArraysIndirect(&self, mode: GLenum, indirect: *const c_void) {
12273 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12274 {
12275 trace!(
12276 "calling gl.DrawArraysIndirect({:#X}, {:p});",
12277 mode,
12278 indirect
12279 );
12280 }
12281 let out = call_atomic_ptr_2arg(
12282 "glDrawArraysIndirect",
12283 &self.glDrawArraysIndirect_p,
12284 mode,
12285 indirect,
12286 );
12287 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12288 {
12289 self.automatic_glGetError("glDrawArraysIndirect");
12290 }
12291 out
12292 }
12293 #[doc(hidden)]
12294 pub unsafe fn DrawArraysIndirect_load_with_dyn(
12295 &self,
12296 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12297 ) -> bool {
12298 load_dyn_name_atomic_ptr(
12299 get_proc_address,
12300 b"glDrawArraysIndirect\0",
12301 &self.glDrawArraysIndirect_p,
12302 )
12303 }
12304 #[inline]
12305 #[doc(hidden)]
12306 pub fn DrawArraysIndirect_is_loaded(&self) -> bool {
12307 !self.glDrawArraysIndirect_p.load(RELAX).is_null()
12308 }
12309 #[cfg_attr(feature = "inline", inline)]
12312 #[cfg_attr(feature = "inline_always", inline(always))]
12313 pub unsafe fn DrawArraysInstanced(
12314 &self,
12315 mode: GLenum,
12316 first: GLint,
12317 count: GLsizei,
12318 instancecount: GLsizei,
12319 ) {
12320 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12321 {
12322 trace!(
12323 "calling gl.DrawArraysInstanced({:#X}, {:?}, {:?}, {:?});",
12324 mode,
12325 first,
12326 count,
12327 instancecount
12328 );
12329 }
12330 let out = call_atomic_ptr_4arg(
12331 "glDrawArraysInstanced",
12332 &self.glDrawArraysInstanced_p,
12333 mode,
12334 first,
12335 count,
12336 instancecount,
12337 );
12338 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12339 {
12340 self.automatic_glGetError("glDrawArraysInstanced");
12341 }
12342 out
12343 }
12344 #[doc(hidden)]
12345 pub unsafe fn DrawArraysInstanced_load_with_dyn(
12346 &self,
12347 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12348 ) -> bool {
12349 load_dyn_name_atomic_ptr(
12350 get_proc_address,
12351 b"glDrawArraysInstanced\0",
12352 &self.glDrawArraysInstanced_p,
12353 )
12354 }
12355 #[inline]
12356 #[doc(hidden)]
12357 pub fn DrawArraysInstanced_is_loaded(&self) -> bool {
12358 !self.glDrawArraysInstanced_p.load(RELAX).is_null()
12359 }
12360 #[cfg_attr(feature = "inline", inline)]
12364 #[cfg_attr(feature = "inline_always", inline(always))]
12365 pub unsafe fn DrawArraysInstancedARB(
12366 &self,
12367 mode: GLenum,
12368 first: GLint,
12369 count: GLsizei,
12370 primcount: GLsizei,
12371 ) {
12372 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12373 {
12374 trace!(
12375 "calling gl.DrawArraysInstancedARB({:#X}, {:?}, {:?}, {:?});",
12376 mode,
12377 first,
12378 count,
12379 primcount
12380 );
12381 }
12382 let out = call_atomic_ptr_4arg(
12383 "glDrawArraysInstancedARB",
12384 &self.glDrawArraysInstancedARB_p,
12385 mode,
12386 first,
12387 count,
12388 primcount,
12389 );
12390 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12391 {
12392 self.automatic_glGetError("glDrawArraysInstancedARB");
12393 }
12394 out
12395 }
12396 #[doc(hidden)]
12397 pub unsafe fn DrawArraysInstancedARB_load_with_dyn(
12398 &self,
12399 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12400 ) -> bool {
12401 load_dyn_name_atomic_ptr(
12402 get_proc_address,
12403 b"glDrawArraysInstancedARB\0",
12404 &self.glDrawArraysInstancedARB_p,
12405 )
12406 }
12407 #[inline]
12408 #[doc(hidden)]
12409 pub fn DrawArraysInstancedARB_is_loaded(&self) -> bool {
12410 !self.glDrawArraysInstancedARB_p.load(RELAX).is_null()
12411 }
12412 #[cfg_attr(feature = "inline", inline)]
12415 #[cfg_attr(feature = "inline_always", inline(always))]
12416 pub unsafe fn DrawArraysInstancedBaseInstance(
12417 &self,
12418 mode: GLenum,
12419 first: GLint,
12420 count: GLsizei,
12421 instancecount: GLsizei,
12422 baseinstance: GLuint,
12423 ) {
12424 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12425 {
12426 trace!(
12427 "calling gl.DrawArraysInstancedBaseInstance({:#X}, {:?}, {:?}, {:?}, {:?});",
12428 mode,
12429 first,
12430 count,
12431 instancecount,
12432 baseinstance
12433 );
12434 }
12435 let out = call_atomic_ptr_5arg(
12436 "glDrawArraysInstancedBaseInstance",
12437 &self.glDrawArraysInstancedBaseInstance_p,
12438 mode,
12439 first,
12440 count,
12441 instancecount,
12442 baseinstance,
12443 );
12444 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12445 {
12446 self.automatic_glGetError("glDrawArraysInstancedBaseInstance");
12447 }
12448 out
12449 }
12450 #[doc(hidden)]
12451 pub unsafe fn DrawArraysInstancedBaseInstance_load_with_dyn(
12452 &self,
12453 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12454 ) -> bool {
12455 load_dyn_name_atomic_ptr(
12456 get_proc_address,
12457 b"glDrawArraysInstancedBaseInstance\0",
12458 &self.glDrawArraysInstancedBaseInstance_p,
12459 )
12460 }
12461 #[inline]
12462 #[doc(hidden)]
12463 pub fn DrawArraysInstancedBaseInstance_is_loaded(&self) -> bool {
12464 !self
12465 .glDrawArraysInstancedBaseInstance_p
12466 .load(RELAX)
12467 .is_null()
12468 }
12469 #[cfg_attr(feature = "inline", inline)]
12472 #[cfg_attr(feature = "inline_always", inline(always))]
12473 pub unsafe fn DrawBuffer(&self, buf: GLenum) {
12474 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12475 {
12476 trace!("calling gl.DrawBuffer({:#X});", buf);
12477 }
12478 let out = call_atomic_ptr_1arg("glDrawBuffer", &self.glDrawBuffer_p, buf);
12479 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12480 {
12481 self.automatic_glGetError("glDrawBuffer");
12482 }
12483 out
12484 }
12485 #[doc(hidden)]
12486 pub unsafe fn DrawBuffer_load_with_dyn(
12487 &self,
12488 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12489 ) -> bool {
12490 load_dyn_name_atomic_ptr(get_proc_address, b"glDrawBuffer\0", &self.glDrawBuffer_p)
12491 }
12492 #[inline]
12493 #[doc(hidden)]
12494 pub fn DrawBuffer_is_loaded(&self) -> bool {
12495 !self.glDrawBuffer_p.load(RELAX).is_null()
12496 }
12497 #[cfg_attr(feature = "inline", inline)]
12501 #[cfg_attr(feature = "inline_always", inline(always))]
12502 pub unsafe fn DrawBuffers(&self, n: GLsizei, bufs: *const GLenum) {
12503 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12504 {
12505 trace!("calling gl.DrawBuffers({:?}, {:p});", n, bufs);
12506 }
12507 let out = call_atomic_ptr_2arg("glDrawBuffers", &self.glDrawBuffers_p, n, bufs);
12508 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12509 {
12510 self.automatic_glGetError("glDrawBuffers");
12511 }
12512 out
12513 }
12514 #[doc(hidden)]
12515 pub unsafe fn DrawBuffers_load_with_dyn(
12516 &self,
12517 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12518 ) -> bool {
12519 load_dyn_name_atomic_ptr(get_proc_address, b"glDrawBuffers\0", &self.glDrawBuffers_p)
12520 }
12521 #[inline]
12522 #[doc(hidden)]
12523 pub fn DrawBuffers_is_loaded(&self) -> bool {
12524 !self.glDrawBuffers_p.load(RELAX).is_null()
12525 }
12526 #[cfg_attr(feature = "inline", inline)]
12531 #[cfg_attr(feature = "inline_always", inline(always))]
12532 pub unsafe fn DrawElements(
12533 &self,
12534 mode: GLenum,
12535 count: GLsizei,
12536 type_: GLenum,
12537 indices: *const c_void,
12538 ) {
12539 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12540 {
12541 trace!(
12542 "calling gl.DrawElements({:#X}, {:?}, {:#X}, {:p});",
12543 mode,
12544 count,
12545 type_,
12546 indices
12547 );
12548 }
12549 let out = call_atomic_ptr_4arg(
12550 "glDrawElements",
12551 &self.glDrawElements_p,
12552 mode,
12553 count,
12554 type_,
12555 indices,
12556 );
12557 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12558 {
12559 self.automatic_glGetError("glDrawElements");
12560 }
12561 out
12562 }
12563 #[doc(hidden)]
12564 pub unsafe fn DrawElements_load_with_dyn(
12565 &self,
12566 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12567 ) -> bool {
12568 load_dyn_name_atomic_ptr(
12569 get_proc_address,
12570 b"glDrawElements\0",
12571 &self.glDrawElements_p,
12572 )
12573 }
12574 #[inline]
12575 #[doc(hidden)]
12576 pub fn DrawElements_is_loaded(&self) -> bool {
12577 !self.glDrawElements_p.load(RELAX).is_null()
12578 }
12579 #[cfg_attr(feature = "inline", inline)]
12584 #[cfg_attr(feature = "inline_always", inline(always))]
12585 pub unsafe fn DrawElementsBaseVertex(
12586 &self,
12587 mode: GLenum,
12588 count: GLsizei,
12589 type_: GLenum,
12590 indices: *const c_void,
12591 basevertex: GLint,
12592 ) {
12593 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12594 {
12595 trace!(
12596 "calling gl.DrawElementsBaseVertex({:#X}, {:?}, {:#X}, {:p}, {:?});",
12597 mode,
12598 count,
12599 type_,
12600 indices,
12601 basevertex
12602 );
12603 }
12604 let out = call_atomic_ptr_5arg(
12605 "glDrawElementsBaseVertex",
12606 &self.glDrawElementsBaseVertex_p,
12607 mode,
12608 count,
12609 type_,
12610 indices,
12611 basevertex,
12612 );
12613 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12614 {
12615 self.automatic_glGetError("glDrawElementsBaseVertex");
12616 }
12617 out
12618 }
12619 #[doc(hidden)]
12620 pub unsafe fn DrawElementsBaseVertex_load_with_dyn(
12621 &self,
12622 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12623 ) -> bool {
12624 load_dyn_name_atomic_ptr(
12625 get_proc_address,
12626 b"glDrawElementsBaseVertex\0",
12627 &self.glDrawElementsBaseVertex_p,
12628 )
12629 }
12630 #[inline]
12631 #[doc(hidden)]
12632 pub fn DrawElementsBaseVertex_is_loaded(&self) -> bool {
12633 !self.glDrawElementsBaseVertex_p.load(RELAX).is_null()
12634 }
12635 #[cfg_attr(feature = "inline", inline)]
12639 #[cfg_attr(feature = "inline_always", inline(always))]
12640 pub unsafe fn DrawElementsIndirect(
12641 &self,
12642 mode: GLenum,
12643 type_: GLenum,
12644 indirect: *const c_void,
12645 ) {
12646 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12647 {
12648 trace!(
12649 "calling gl.DrawElementsIndirect({:#X}, {:#X}, {:p});",
12650 mode,
12651 type_,
12652 indirect
12653 );
12654 }
12655 let out = call_atomic_ptr_3arg(
12656 "glDrawElementsIndirect",
12657 &self.glDrawElementsIndirect_p,
12658 mode,
12659 type_,
12660 indirect,
12661 );
12662 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12663 {
12664 self.automatic_glGetError("glDrawElementsIndirect");
12665 }
12666 out
12667 }
12668 #[doc(hidden)]
12669 pub unsafe fn DrawElementsIndirect_load_with_dyn(
12670 &self,
12671 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12672 ) -> bool {
12673 load_dyn_name_atomic_ptr(
12674 get_proc_address,
12675 b"glDrawElementsIndirect\0",
12676 &self.glDrawElementsIndirect_p,
12677 )
12678 }
12679 #[inline]
12680 #[doc(hidden)]
12681 pub fn DrawElementsIndirect_is_loaded(&self) -> bool {
12682 !self.glDrawElementsIndirect_p.load(RELAX).is_null()
12683 }
12684 #[cfg_attr(feature = "inline", inline)]
12689 #[cfg_attr(feature = "inline_always", inline(always))]
12690 pub unsafe fn DrawElementsInstanced(
12691 &self,
12692 mode: GLenum,
12693 count: GLsizei,
12694 type_: GLenum,
12695 indices: *const c_void,
12696 instancecount: GLsizei,
12697 ) {
12698 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12699 {
12700 trace!(
12701 "calling gl.DrawElementsInstanced({:#X}, {:?}, {:#X}, {:p}, {:?});",
12702 mode,
12703 count,
12704 type_,
12705 indices,
12706 instancecount
12707 );
12708 }
12709 let out = call_atomic_ptr_5arg(
12710 "glDrawElementsInstanced",
12711 &self.glDrawElementsInstanced_p,
12712 mode,
12713 count,
12714 type_,
12715 indices,
12716 instancecount,
12717 );
12718 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12719 {
12720 self.automatic_glGetError("glDrawElementsInstanced");
12721 }
12722 out
12723 }
12724 #[doc(hidden)]
12725 pub unsafe fn DrawElementsInstanced_load_with_dyn(
12726 &self,
12727 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12728 ) -> bool {
12729 load_dyn_name_atomic_ptr(
12730 get_proc_address,
12731 b"glDrawElementsInstanced\0",
12732 &self.glDrawElementsInstanced_p,
12733 )
12734 }
12735 #[inline]
12736 #[doc(hidden)]
12737 pub fn DrawElementsInstanced_is_loaded(&self) -> bool {
12738 !self.glDrawElementsInstanced_p.load(RELAX).is_null()
12739 }
12740 #[cfg_attr(feature = "inline", inline)]
12746 #[cfg_attr(feature = "inline_always", inline(always))]
12747 pub unsafe fn DrawElementsInstancedARB(
12748 &self,
12749 mode: GLenum,
12750 count: GLsizei,
12751 type_: GLenum,
12752 indices: *const c_void,
12753 primcount: GLsizei,
12754 ) {
12755 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12756 {
12757 trace!(
12758 "calling gl.DrawElementsInstancedARB({:#X}, {:?}, {:#X}, {:p}, {:?});",
12759 mode,
12760 count,
12761 type_,
12762 indices,
12763 primcount
12764 );
12765 }
12766 let out = call_atomic_ptr_5arg(
12767 "glDrawElementsInstancedARB",
12768 &self.glDrawElementsInstancedARB_p,
12769 mode,
12770 count,
12771 type_,
12772 indices,
12773 primcount,
12774 );
12775 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12776 {
12777 self.automatic_glGetError("glDrawElementsInstancedARB");
12778 }
12779 out
12780 }
12781 #[doc(hidden)]
12782 pub unsafe fn DrawElementsInstancedARB_load_with_dyn(
12783 &self,
12784 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12785 ) -> bool {
12786 load_dyn_name_atomic_ptr(
12787 get_proc_address,
12788 b"glDrawElementsInstancedARB\0",
12789 &self.glDrawElementsInstancedARB_p,
12790 )
12791 }
12792 #[inline]
12793 #[doc(hidden)]
12794 pub fn DrawElementsInstancedARB_is_loaded(&self) -> bool {
12795 !self.glDrawElementsInstancedARB_p.load(RELAX).is_null()
12796 }
12797 #[cfg_attr(feature = "inline", inline)]
12802 #[cfg_attr(feature = "inline_always", inline(always))]
12803 pub unsafe fn DrawElementsInstancedBaseInstance(
12804 &self,
12805 mode: GLenum,
12806 count: GLsizei,
12807 type_: GLenum,
12808 indices: *const c_void,
12809 instancecount: GLsizei,
12810 baseinstance: GLuint,
12811 ) {
12812 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12813 {
12814 trace!("calling gl.DrawElementsInstancedBaseInstance({:#X}, {:?}, {:#X}, {:p}, {:?}, {:?});", mode, count, type_, indices, instancecount, baseinstance);
12815 }
12816 let out = call_atomic_ptr_6arg(
12817 "glDrawElementsInstancedBaseInstance",
12818 &self.glDrawElementsInstancedBaseInstance_p,
12819 mode,
12820 count,
12821 type_,
12822 indices,
12823 instancecount,
12824 baseinstance,
12825 );
12826 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12827 {
12828 self.automatic_glGetError("glDrawElementsInstancedBaseInstance");
12829 }
12830 out
12831 }
12832 #[doc(hidden)]
12833 pub unsafe fn DrawElementsInstancedBaseInstance_load_with_dyn(
12834 &self,
12835 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12836 ) -> bool {
12837 load_dyn_name_atomic_ptr(
12838 get_proc_address,
12839 b"glDrawElementsInstancedBaseInstance\0",
12840 &self.glDrawElementsInstancedBaseInstance_p,
12841 )
12842 }
12843 #[inline]
12844 #[doc(hidden)]
12845 pub fn DrawElementsInstancedBaseInstance_is_loaded(&self) -> bool {
12846 !self
12847 .glDrawElementsInstancedBaseInstance_p
12848 .load(RELAX)
12849 .is_null()
12850 }
12851 #[cfg_attr(feature = "inline", inline)]
12856 #[cfg_attr(feature = "inline_always", inline(always))]
12857 pub unsafe fn DrawElementsInstancedBaseVertex(
12858 &self,
12859 mode: GLenum,
12860 count: GLsizei,
12861 type_: GLenum,
12862 indices: *const c_void,
12863 instancecount: GLsizei,
12864 basevertex: GLint,
12865 ) {
12866 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12867 {
12868 trace!("calling gl.DrawElementsInstancedBaseVertex({:#X}, {:?}, {:#X}, {:p}, {:?}, {:?});", mode, count, type_, indices, instancecount, basevertex);
12869 }
12870 let out = call_atomic_ptr_6arg(
12871 "glDrawElementsInstancedBaseVertex",
12872 &self.glDrawElementsInstancedBaseVertex_p,
12873 mode,
12874 count,
12875 type_,
12876 indices,
12877 instancecount,
12878 basevertex,
12879 );
12880 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12881 {
12882 self.automatic_glGetError("glDrawElementsInstancedBaseVertex");
12883 }
12884 out
12885 }
12886 #[doc(hidden)]
12887 pub unsafe fn DrawElementsInstancedBaseVertex_load_with_dyn(
12888 &self,
12889 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12890 ) -> bool {
12891 load_dyn_name_atomic_ptr(
12892 get_proc_address,
12893 b"glDrawElementsInstancedBaseVertex\0",
12894 &self.glDrawElementsInstancedBaseVertex_p,
12895 )
12896 }
12897 #[inline]
12898 #[doc(hidden)]
12899 pub fn DrawElementsInstancedBaseVertex_is_loaded(&self) -> bool {
12900 !self
12901 .glDrawElementsInstancedBaseVertex_p
12902 .load(RELAX)
12903 .is_null()
12904 }
12905 #[cfg_attr(feature = "inline", inline)]
12910 #[cfg_attr(feature = "inline_always", inline(always))]
12911 pub unsafe fn DrawElementsInstancedBaseVertexBaseInstance(
12912 &self,
12913 mode: GLenum,
12914 count: GLsizei,
12915 type_: GLenum,
12916 indices: *const c_void,
12917 instancecount: GLsizei,
12918 basevertex: GLint,
12919 baseinstance: GLuint,
12920 ) {
12921 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12922 {
12923 trace!("calling gl.DrawElementsInstancedBaseVertexBaseInstance({:#X}, {:?}, {:#X}, {:p}, {:?}, {:?}, {:?});", mode, count, type_, indices, instancecount, basevertex, baseinstance);
12924 }
12925 let out = call_atomic_ptr_7arg(
12926 "glDrawElementsInstancedBaseVertexBaseInstance",
12927 &self.glDrawElementsInstancedBaseVertexBaseInstance_p,
12928 mode,
12929 count,
12930 type_,
12931 indices,
12932 instancecount,
12933 basevertex,
12934 baseinstance,
12935 );
12936 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12937 {
12938 self.automatic_glGetError("glDrawElementsInstancedBaseVertexBaseInstance");
12939 }
12940 out
12941 }
12942 #[doc(hidden)]
12943 pub unsafe fn DrawElementsInstancedBaseVertexBaseInstance_load_with_dyn(
12944 &self,
12945 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12946 ) -> bool {
12947 load_dyn_name_atomic_ptr(
12948 get_proc_address,
12949 b"glDrawElementsInstancedBaseVertexBaseInstance\0",
12950 &self.glDrawElementsInstancedBaseVertexBaseInstance_p,
12951 )
12952 }
12953 #[inline]
12954 #[doc(hidden)]
12955 pub fn DrawElementsInstancedBaseVertexBaseInstance_is_loaded(&self) -> bool {
12956 !self
12957 .glDrawElementsInstancedBaseVertexBaseInstance_p
12958 .load(RELAX)
12959 .is_null()
12960 }
12961 #[cfg_attr(feature = "inline", inline)]
12966 #[cfg_attr(feature = "inline_always", inline(always))]
12967 pub unsafe fn DrawRangeElements(
12968 &self,
12969 mode: GLenum,
12970 start: GLuint,
12971 end: GLuint,
12972 count: GLsizei,
12973 type_: GLenum,
12974 indices: *const c_void,
12975 ) {
12976 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12977 {
12978 trace!(
12979 "calling gl.DrawRangeElements({:#X}, {:?}, {:?}, {:?}, {:#X}, {:p});",
12980 mode,
12981 start,
12982 end,
12983 count,
12984 type_,
12985 indices
12986 );
12987 }
12988 let out = call_atomic_ptr_6arg(
12989 "glDrawRangeElements",
12990 &self.glDrawRangeElements_p,
12991 mode,
12992 start,
12993 end,
12994 count,
12995 type_,
12996 indices,
12997 );
12998 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12999 {
13000 self.automatic_glGetError("glDrawRangeElements");
13001 }
13002 out
13003 }
13004 #[doc(hidden)]
13005 pub unsafe fn DrawRangeElements_load_with_dyn(
13006 &self,
13007 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13008 ) -> bool {
13009 load_dyn_name_atomic_ptr(
13010 get_proc_address,
13011 b"glDrawRangeElements\0",
13012 &self.glDrawRangeElements_p,
13013 )
13014 }
13015 #[inline]
13016 #[doc(hidden)]
13017 pub fn DrawRangeElements_is_loaded(&self) -> bool {
13018 !self.glDrawRangeElements_p.load(RELAX).is_null()
13019 }
13020 #[cfg_attr(feature = "inline", inline)]
13025 #[cfg_attr(feature = "inline_always", inline(always))]
13026 pub unsafe fn DrawRangeElementsBaseVertex(
13027 &self,
13028 mode: GLenum,
13029 start: GLuint,
13030 end: GLuint,
13031 count: GLsizei,
13032 type_: GLenum,
13033 indices: *const c_void,
13034 basevertex: GLint,
13035 ) {
13036 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13037 {
13038 trace!("calling gl.DrawRangeElementsBaseVertex({:#X}, {:?}, {:?}, {:?}, {:#X}, {:p}, {:?});", mode, start, end, count, type_, indices, basevertex);
13039 }
13040 let out = call_atomic_ptr_7arg(
13041 "glDrawRangeElementsBaseVertex",
13042 &self.glDrawRangeElementsBaseVertex_p,
13043 mode,
13044 start,
13045 end,
13046 count,
13047 type_,
13048 indices,
13049 basevertex,
13050 );
13051 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13052 {
13053 self.automatic_glGetError("glDrawRangeElementsBaseVertex");
13054 }
13055 out
13056 }
13057 #[doc(hidden)]
13058 pub unsafe fn DrawRangeElementsBaseVertex_load_with_dyn(
13059 &self,
13060 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13061 ) -> bool {
13062 load_dyn_name_atomic_ptr(
13063 get_proc_address,
13064 b"glDrawRangeElementsBaseVertex\0",
13065 &self.glDrawRangeElementsBaseVertex_p,
13066 )
13067 }
13068 #[inline]
13069 #[doc(hidden)]
13070 pub fn DrawRangeElementsBaseVertex_is_loaded(&self) -> bool {
13071 !self.glDrawRangeElementsBaseVertex_p.load(RELAX).is_null()
13072 }
13073 #[cfg_attr(feature = "inline", inline)]
13076 #[cfg_attr(feature = "inline_always", inline(always))]
13077 pub unsafe fn DrawTransformFeedback(&self, mode: GLenum, id: GLuint) {
13078 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13079 {
13080 trace!("calling gl.DrawTransformFeedback({:#X}, {:?});", mode, id);
13081 }
13082 let out = call_atomic_ptr_2arg(
13083 "glDrawTransformFeedback",
13084 &self.glDrawTransformFeedback_p,
13085 mode,
13086 id,
13087 );
13088 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13089 {
13090 self.automatic_glGetError("glDrawTransformFeedback");
13091 }
13092 out
13093 }
13094 #[doc(hidden)]
13095 pub unsafe fn DrawTransformFeedback_load_with_dyn(
13096 &self,
13097 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13098 ) -> bool {
13099 load_dyn_name_atomic_ptr(
13100 get_proc_address,
13101 b"glDrawTransformFeedback\0",
13102 &self.glDrawTransformFeedback_p,
13103 )
13104 }
13105 #[inline]
13106 #[doc(hidden)]
13107 pub fn DrawTransformFeedback_is_loaded(&self) -> bool {
13108 !self.glDrawTransformFeedback_p.load(RELAX).is_null()
13109 }
13110 #[cfg_attr(feature = "inline", inline)]
13113 #[cfg_attr(feature = "inline_always", inline(always))]
13114 pub unsafe fn DrawTransformFeedbackInstanced(
13115 &self,
13116 mode: GLenum,
13117 id: GLuint,
13118 instancecount: GLsizei,
13119 ) {
13120 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13121 {
13122 trace!(
13123 "calling gl.DrawTransformFeedbackInstanced({:#X}, {:?}, {:?});",
13124 mode,
13125 id,
13126 instancecount
13127 );
13128 }
13129 let out = call_atomic_ptr_3arg(
13130 "glDrawTransformFeedbackInstanced",
13131 &self.glDrawTransformFeedbackInstanced_p,
13132 mode,
13133 id,
13134 instancecount,
13135 );
13136 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13137 {
13138 self.automatic_glGetError("glDrawTransformFeedbackInstanced");
13139 }
13140 out
13141 }
13142 #[doc(hidden)]
13143 pub unsafe fn DrawTransformFeedbackInstanced_load_with_dyn(
13144 &self,
13145 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13146 ) -> bool {
13147 load_dyn_name_atomic_ptr(
13148 get_proc_address,
13149 b"glDrawTransformFeedbackInstanced\0",
13150 &self.glDrawTransformFeedbackInstanced_p,
13151 )
13152 }
13153 #[inline]
13154 #[doc(hidden)]
13155 pub fn DrawTransformFeedbackInstanced_is_loaded(&self) -> bool {
13156 !self
13157 .glDrawTransformFeedbackInstanced_p
13158 .load(RELAX)
13159 .is_null()
13160 }
13161 #[cfg_attr(feature = "inline", inline)]
13164 #[cfg_attr(feature = "inline_always", inline(always))]
13165 pub unsafe fn DrawTransformFeedbackStream(&self, mode: GLenum, id: GLuint, stream: GLuint) {
13166 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13167 {
13168 trace!(
13169 "calling gl.DrawTransformFeedbackStream({:#X}, {:?}, {:?});",
13170 mode,
13171 id,
13172 stream
13173 );
13174 }
13175 let out = call_atomic_ptr_3arg(
13176 "glDrawTransformFeedbackStream",
13177 &self.glDrawTransformFeedbackStream_p,
13178 mode,
13179 id,
13180 stream,
13181 );
13182 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13183 {
13184 self.automatic_glGetError("glDrawTransformFeedbackStream");
13185 }
13186 out
13187 }
13188 #[doc(hidden)]
13189 pub unsafe fn DrawTransformFeedbackStream_load_with_dyn(
13190 &self,
13191 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13192 ) -> bool {
13193 load_dyn_name_atomic_ptr(
13194 get_proc_address,
13195 b"glDrawTransformFeedbackStream\0",
13196 &self.glDrawTransformFeedbackStream_p,
13197 )
13198 }
13199 #[inline]
13200 #[doc(hidden)]
13201 pub fn DrawTransformFeedbackStream_is_loaded(&self) -> bool {
13202 !self.glDrawTransformFeedbackStream_p.load(RELAX).is_null()
13203 }
13204 #[cfg_attr(feature = "inline", inline)]
13207 #[cfg_attr(feature = "inline_always", inline(always))]
13208 pub unsafe fn DrawTransformFeedbackStreamInstanced(
13209 &self,
13210 mode: GLenum,
13211 id: GLuint,
13212 stream: GLuint,
13213 instancecount: GLsizei,
13214 ) {
13215 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13216 {
13217 trace!(
13218 "calling gl.DrawTransformFeedbackStreamInstanced({:#X}, {:?}, {:?}, {:?});",
13219 mode,
13220 id,
13221 stream,
13222 instancecount
13223 );
13224 }
13225 let out = call_atomic_ptr_4arg(
13226 "glDrawTransformFeedbackStreamInstanced",
13227 &self.glDrawTransformFeedbackStreamInstanced_p,
13228 mode,
13229 id,
13230 stream,
13231 instancecount,
13232 );
13233 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13234 {
13235 self.automatic_glGetError("glDrawTransformFeedbackStreamInstanced");
13236 }
13237 out
13238 }
13239 #[doc(hidden)]
13240 pub unsafe fn DrawTransformFeedbackStreamInstanced_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(
13245 get_proc_address,
13246 b"glDrawTransformFeedbackStreamInstanced\0",
13247 &self.glDrawTransformFeedbackStreamInstanced_p,
13248 )
13249 }
13250 #[inline]
13251 #[doc(hidden)]
13252 pub fn DrawTransformFeedbackStreamInstanced_is_loaded(&self) -> bool {
13253 !self
13254 .glDrawTransformFeedbackStreamInstanced_p
13255 .load(RELAX)
13256 .is_null()
13257 }
13258 #[cfg_attr(feature = "inline", inline)]
13261 #[cfg_attr(feature = "inline_always", inline(always))]
13262 pub unsafe fn Enable(&self, cap: GLenum) {
13263 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13264 {
13265 trace!("calling gl.Enable({:#X});", cap);
13266 }
13267 let out = call_atomic_ptr_1arg("glEnable", &self.glEnable_p, cap);
13268 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13269 {
13270 self.automatic_glGetError("glEnable");
13271 }
13272 out
13273 }
13274 #[doc(hidden)]
13275 pub unsafe fn Enable_load_with_dyn(
13276 &self,
13277 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13278 ) -> bool {
13279 load_dyn_name_atomic_ptr(get_proc_address, b"glEnable\0", &self.glEnable_p)
13280 }
13281 #[inline]
13282 #[doc(hidden)]
13283 pub fn Enable_is_loaded(&self) -> bool {
13284 !self.glEnable_p.load(RELAX).is_null()
13285 }
13286 #[cfg_attr(feature = "inline", inline)]
13290 #[cfg_attr(feature = "inline_always", inline(always))]
13291 pub unsafe fn EnableIndexedEXT(&self, target: GLenum, index: GLuint) {
13292 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13293 {
13294 trace!("calling gl.EnableIndexedEXT({:#X}, {:?});", target, index);
13295 }
13296 let out = call_atomic_ptr_2arg(
13297 "glEnableIndexedEXT",
13298 &self.glEnableIndexedEXT_p,
13299 target,
13300 index,
13301 );
13302 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13303 {
13304 self.automatic_glGetError("glEnableIndexedEXT");
13305 }
13306 out
13307 }
13308 #[doc(hidden)]
13309 pub unsafe fn EnableIndexedEXT_load_with_dyn(
13310 &self,
13311 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13312 ) -> bool {
13313 load_dyn_name_atomic_ptr(
13314 get_proc_address,
13315 b"glEnableIndexedEXT\0",
13316 &self.glEnableIndexedEXT_p,
13317 )
13318 }
13319 #[inline]
13320 #[doc(hidden)]
13321 pub fn EnableIndexedEXT_is_loaded(&self) -> bool {
13322 !self.glEnableIndexedEXT_p.load(RELAX).is_null()
13323 }
13324 #[cfg_attr(feature = "inline", inline)]
13326 #[cfg_attr(feature = "inline_always", inline(always))]
13327 pub unsafe fn EnableVertexArrayAttrib(&self, vaobj: GLuint, index: GLuint) {
13328 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13329 {
13330 trace!(
13331 "calling gl.EnableVertexArrayAttrib({:?}, {:?});",
13332 vaobj,
13333 index
13334 );
13335 }
13336 let out = call_atomic_ptr_2arg(
13337 "glEnableVertexArrayAttrib",
13338 &self.glEnableVertexArrayAttrib_p,
13339 vaobj,
13340 index,
13341 );
13342 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13343 {
13344 self.automatic_glGetError("glEnableVertexArrayAttrib");
13345 }
13346 out
13347 }
13348 #[doc(hidden)]
13349 pub unsafe fn EnableVertexArrayAttrib_load_with_dyn(
13350 &self,
13351 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13352 ) -> bool {
13353 load_dyn_name_atomic_ptr(
13354 get_proc_address,
13355 b"glEnableVertexArrayAttrib\0",
13356 &self.glEnableVertexArrayAttrib_p,
13357 )
13358 }
13359 #[inline]
13360 #[doc(hidden)]
13361 pub fn EnableVertexArrayAttrib_is_loaded(&self) -> bool {
13362 !self.glEnableVertexArrayAttrib_p.load(RELAX).is_null()
13363 }
13364 #[cfg_attr(feature = "inline", inline)]
13366 #[cfg_attr(feature = "inline_always", inline(always))]
13367 pub unsafe fn EnableVertexAttribArray(&self, index: GLuint) {
13368 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13369 {
13370 trace!("calling gl.EnableVertexAttribArray({:?});", index);
13371 }
13372 let out = call_atomic_ptr_1arg(
13373 "glEnableVertexAttribArray",
13374 &self.glEnableVertexAttribArray_p,
13375 index,
13376 );
13377 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13378 {
13379 self.automatic_glGetError("glEnableVertexAttribArray");
13380 }
13381 out
13382 }
13383 #[doc(hidden)]
13384 pub unsafe fn EnableVertexAttribArray_load_with_dyn(
13385 &self,
13386 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13387 ) -> bool {
13388 load_dyn_name_atomic_ptr(
13389 get_proc_address,
13390 b"glEnableVertexAttribArray\0",
13391 &self.glEnableVertexAttribArray_p,
13392 )
13393 }
13394 #[inline]
13395 #[doc(hidden)]
13396 pub fn EnableVertexAttribArray_is_loaded(&self) -> bool {
13397 !self.glEnableVertexAttribArray_p.load(RELAX).is_null()
13398 }
13399 #[cfg_attr(feature = "inline", inline)]
13402 #[cfg_attr(feature = "inline_always", inline(always))]
13403 pub unsafe fn Enablei(&self, target: GLenum, index: GLuint) {
13404 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13405 {
13406 trace!("calling gl.Enablei({:#X}, {:?});", target, index);
13407 }
13408 let out = call_atomic_ptr_2arg("glEnablei", &self.glEnablei_p, target, index);
13409 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13410 {
13411 self.automatic_glGetError("glEnablei");
13412 }
13413 out
13414 }
13415 #[doc(hidden)]
13416 pub unsafe fn Enablei_load_with_dyn(
13417 &self,
13418 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13419 ) -> bool {
13420 load_dyn_name_atomic_ptr(get_proc_address, b"glEnablei\0", &self.glEnablei_p)
13421 }
13422 #[inline]
13423 #[doc(hidden)]
13424 pub fn Enablei_is_loaded(&self) -> bool {
13425 !self.glEnablei_p.load(RELAX).is_null()
13426 }
13427 #[cfg_attr(feature = "inline", inline)]
13429 #[cfg_attr(feature = "inline_always", inline(always))]
13430 pub unsafe fn EndConditionalRender(&self) {
13431 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13432 {
13433 trace!("calling gl.EndConditionalRender();",);
13434 }
13435 let out =
13436 call_atomic_ptr_0arg("glEndConditionalRender", &self.glEndConditionalRender_p);
13437 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13438 {
13439 self.automatic_glGetError("glEndConditionalRender");
13440 }
13441 out
13442 }
13443 #[doc(hidden)]
13444 pub unsafe fn EndConditionalRender_load_with_dyn(
13445 &self,
13446 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13447 ) -> bool {
13448 load_dyn_name_atomic_ptr(
13449 get_proc_address,
13450 b"glEndConditionalRender\0",
13451 &self.glEndConditionalRender_p,
13452 )
13453 }
13454 #[inline]
13455 #[doc(hidden)]
13456 pub fn EndConditionalRender_is_loaded(&self) -> bool {
13457 !self.glEndConditionalRender_p.load(RELAX).is_null()
13458 }
13459 #[cfg_attr(feature = "inline", inline)]
13462 #[cfg_attr(feature = "inline_always", inline(always))]
13463 pub unsafe fn EndQuery(&self, target: GLenum) {
13464 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13465 {
13466 trace!("calling gl.EndQuery({:#X});", target);
13467 }
13468 let out = call_atomic_ptr_1arg("glEndQuery", &self.glEndQuery_p, target);
13469 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13470 {
13471 self.automatic_glGetError("glEndQuery");
13472 }
13473 out
13474 }
13475 #[doc(hidden)]
13476 pub unsafe fn EndQuery_load_with_dyn(
13477 &self,
13478 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13479 ) -> bool {
13480 load_dyn_name_atomic_ptr(get_proc_address, b"glEndQuery\0", &self.glEndQuery_p)
13481 }
13482 #[inline]
13483 #[doc(hidden)]
13484 pub fn EndQuery_is_loaded(&self) -> bool {
13485 !self.glEndQuery_p.load(RELAX).is_null()
13486 }
13487 #[cfg_attr(feature = "inline", inline)]
13490 #[cfg_attr(feature = "inline_always", inline(always))]
13491 pub unsafe fn EndQueryEXT(&self, target: GLenum) {
13492 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13493 {
13494 trace!("calling gl.EndQueryEXT({:#X});", target);
13495 }
13496 let out = call_atomic_ptr_1arg("glEndQueryEXT", &self.glEndQueryEXT_p, target);
13497 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13498 {
13499 self.automatic_glGetError("glEndQueryEXT");
13500 }
13501 out
13502 }
13503 #[doc(hidden)]
13504 pub unsafe fn EndQueryEXT_load_with_dyn(
13505 &self,
13506 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13507 ) -> bool {
13508 load_dyn_name_atomic_ptr(get_proc_address, b"glEndQueryEXT\0", &self.glEndQueryEXT_p)
13509 }
13510 #[inline]
13511 #[doc(hidden)]
13512 pub fn EndQueryEXT_is_loaded(&self) -> bool {
13513 !self.glEndQueryEXT_p.load(RELAX).is_null()
13514 }
13515 #[cfg_attr(feature = "inline", inline)]
13518 #[cfg_attr(feature = "inline_always", inline(always))]
13519 pub unsafe fn EndQueryIndexed(&self, target: GLenum, index: GLuint) {
13520 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13521 {
13522 trace!("calling gl.EndQueryIndexed({:#X}, {:?});", target, index);
13523 }
13524 let out = call_atomic_ptr_2arg(
13525 "glEndQueryIndexed",
13526 &self.glEndQueryIndexed_p,
13527 target,
13528 index,
13529 );
13530 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13531 {
13532 self.automatic_glGetError("glEndQueryIndexed");
13533 }
13534 out
13535 }
13536 #[doc(hidden)]
13537 pub unsafe fn EndQueryIndexed_load_with_dyn(
13538 &self,
13539 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13540 ) -> bool {
13541 load_dyn_name_atomic_ptr(
13542 get_proc_address,
13543 b"glEndQueryIndexed\0",
13544 &self.glEndQueryIndexed_p,
13545 )
13546 }
13547 #[inline]
13548 #[doc(hidden)]
13549 pub fn EndQueryIndexed_is_loaded(&self) -> bool {
13550 !self.glEndQueryIndexed_p.load(RELAX).is_null()
13551 }
13552 #[cfg_attr(feature = "inline", inline)]
13554 #[cfg_attr(feature = "inline_always", inline(always))]
13555 pub unsafe fn EndTransformFeedback(&self) {
13556 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13557 {
13558 trace!("calling gl.EndTransformFeedback();",);
13559 }
13560 let out =
13561 call_atomic_ptr_0arg("glEndTransformFeedback", &self.glEndTransformFeedback_p);
13562 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13563 {
13564 self.automatic_glGetError("glEndTransformFeedback");
13565 }
13566 out
13567 }
13568 #[doc(hidden)]
13569 pub unsafe fn EndTransformFeedback_load_with_dyn(
13570 &self,
13571 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13572 ) -> bool {
13573 load_dyn_name_atomic_ptr(
13574 get_proc_address,
13575 b"glEndTransformFeedback\0",
13576 &self.glEndTransformFeedback_p,
13577 )
13578 }
13579 #[inline]
13580 #[doc(hidden)]
13581 pub fn EndTransformFeedback_is_loaded(&self) -> bool {
13582 !self.glEndTransformFeedback_p.load(RELAX).is_null()
13583 }
13584 #[cfg_attr(feature = "inline", inline)]
13589 #[cfg_attr(feature = "inline_always", inline(always))]
13590 pub unsafe fn FenceSync(&self, condition: GLenum, flags: GLbitfield) -> GLsync {
13591 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13592 {
13593 trace!("calling gl.FenceSync({:#X}, {:?});", condition, flags);
13594 }
13595 let out = call_atomic_ptr_2arg("glFenceSync", &self.glFenceSync_p, condition, flags);
13596 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13597 {
13598 self.automatic_glGetError("glFenceSync");
13599 }
13600 out
13601 }
13602 #[doc(hidden)]
13603 pub unsafe fn FenceSync_load_with_dyn(
13604 &self,
13605 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13606 ) -> bool {
13607 load_dyn_name_atomic_ptr(get_proc_address, b"glFenceSync\0", &self.glFenceSync_p)
13608 }
13609 #[inline]
13610 #[doc(hidden)]
13611 pub fn FenceSync_is_loaded(&self) -> bool {
13612 !self.glFenceSync_p.load(RELAX).is_null()
13613 }
13614 #[cfg_attr(feature = "inline", inline)]
13616 #[cfg_attr(feature = "inline_always", inline(always))]
13617 pub unsafe fn Finish(&self) {
13618 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13619 {
13620 trace!("calling gl.Finish();",);
13621 }
13622 let out = call_atomic_ptr_0arg("glFinish", &self.glFinish_p);
13623 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13624 {
13625 self.automatic_glGetError("glFinish");
13626 }
13627 out
13628 }
13629 #[doc(hidden)]
13630 pub unsafe fn Finish_load_with_dyn(
13631 &self,
13632 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13633 ) -> bool {
13634 load_dyn_name_atomic_ptr(get_proc_address, b"glFinish\0", &self.glFinish_p)
13635 }
13636 #[inline]
13637 #[doc(hidden)]
13638 pub fn Finish_is_loaded(&self) -> bool {
13639 !self.glFinish_p.load(RELAX).is_null()
13640 }
13641 #[cfg_attr(feature = "inline", inline)]
13643 #[cfg_attr(feature = "inline_always", inline(always))]
13644 pub unsafe fn Flush(&self) {
13645 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13646 {
13647 trace!("calling gl.Flush();",);
13648 }
13649 let out = call_atomic_ptr_0arg("glFlush", &self.glFlush_p);
13650 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13651 {
13652 self.automatic_glGetError("glFlush");
13653 }
13654 out
13655 }
13656 #[doc(hidden)]
13657 pub unsafe fn Flush_load_with_dyn(
13658 &self,
13659 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13660 ) -> bool {
13661 load_dyn_name_atomic_ptr(get_proc_address, b"glFlush\0", &self.glFlush_p)
13662 }
13663 #[inline]
13664 #[doc(hidden)]
13665 pub fn Flush_is_loaded(&self) -> bool {
13666 !self.glFlush_p.load(RELAX).is_null()
13667 }
13668 #[cfg_attr(feature = "inline", inline)]
13673 #[cfg_attr(feature = "inline_always", inline(always))]
13674 pub unsafe fn FlushMappedBufferRange(
13675 &self,
13676 target: GLenum,
13677 offset: GLintptr,
13678 length: GLsizeiptr,
13679 ) {
13680 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13681 {
13682 trace!(
13683 "calling gl.FlushMappedBufferRange({:#X}, {:?}, {:?});",
13684 target,
13685 offset,
13686 length
13687 );
13688 }
13689 let out = call_atomic_ptr_3arg(
13690 "glFlushMappedBufferRange",
13691 &self.glFlushMappedBufferRange_p,
13692 target,
13693 offset,
13694 length,
13695 );
13696 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13697 {
13698 self.automatic_glGetError("glFlushMappedBufferRange");
13699 }
13700 out
13701 }
13702 #[doc(hidden)]
13703 pub unsafe fn FlushMappedBufferRange_load_with_dyn(
13704 &self,
13705 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13706 ) -> bool {
13707 load_dyn_name_atomic_ptr(
13708 get_proc_address,
13709 b"glFlushMappedBufferRange\0",
13710 &self.glFlushMappedBufferRange_p,
13711 )
13712 }
13713 #[inline]
13714 #[doc(hidden)]
13715 pub fn FlushMappedBufferRange_is_loaded(&self) -> bool {
13716 !self.glFlushMappedBufferRange_p.load(RELAX).is_null()
13717 }
13718 #[cfg_attr(feature = "inline", inline)]
13721 #[cfg_attr(feature = "inline_always", inline(always))]
13722 pub unsafe fn FlushMappedNamedBufferRange(
13723 &self,
13724 buffer: GLuint,
13725 offset: GLintptr,
13726 length: GLsizeiptr,
13727 ) {
13728 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13729 {
13730 trace!(
13731 "calling gl.FlushMappedNamedBufferRange({:?}, {:?}, {:?});",
13732 buffer,
13733 offset,
13734 length
13735 );
13736 }
13737 let out = call_atomic_ptr_3arg(
13738 "glFlushMappedNamedBufferRange",
13739 &self.glFlushMappedNamedBufferRange_p,
13740 buffer,
13741 offset,
13742 length,
13743 );
13744 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13745 {
13746 self.automatic_glGetError("glFlushMappedNamedBufferRange");
13747 }
13748 out
13749 }
13750 #[doc(hidden)]
13751 pub unsafe fn FlushMappedNamedBufferRange_load_with_dyn(
13752 &self,
13753 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13754 ) -> bool {
13755 load_dyn_name_atomic_ptr(
13756 get_proc_address,
13757 b"glFlushMappedNamedBufferRange\0",
13758 &self.glFlushMappedNamedBufferRange_p,
13759 )
13760 }
13761 #[inline]
13762 #[doc(hidden)]
13763 pub fn FlushMappedNamedBufferRange_is_loaded(&self) -> bool {
13764 !self.glFlushMappedNamedBufferRange_p.load(RELAX).is_null()
13765 }
13766 #[cfg_attr(feature = "inline", inline)]
13770 #[cfg_attr(feature = "inline_always", inline(always))]
13771 pub unsafe fn FramebufferParameteri(&self, target: GLenum, pname: GLenum, param: GLint) {
13772 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13773 {
13774 trace!(
13775 "calling gl.FramebufferParameteri({:#X}, {:#X}, {:?});",
13776 target,
13777 pname,
13778 param
13779 );
13780 }
13781 let out = call_atomic_ptr_3arg(
13782 "glFramebufferParameteri",
13783 &self.glFramebufferParameteri_p,
13784 target,
13785 pname,
13786 param,
13787 );
13788 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13789 {
13790 self.automatic_glGetError("glFramebufferParameteri");
13791 }
13792 out
13793 }
13794 #[doc(hidden)]
13795 pub unsafe fn FramebufferParameteri_load_with_dyn(
13796 &self,
13797 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13798 ) -> bool {
13799 load_dyn_name_atomic_ptr(
13800 get_proc_address,
13801 b"glFramebufferParameteri\0",
13802 &self.glFramebufferParameteri_p,
13803 )
13804 }
13805 #[inline]
13806 #[doc(hidden)]
13807 pub fn FramebufferParameteri_is_loaded(&self) -> bool {
13808 !self.glFramebufferParameteri_p.load(RELAX).is_null()
13809 }
13810 #[cfg_attr(feature = "inline", inline)]
13815 #[cfg_attr(feature = "inline_always", inline(always))]
13816 pub unsafe fn FramebufferRenderbuffer(
13817 &self,
13818 target: GLenum,
13819 attachment: GLenum,
13820 renderbuffertarget: GLenum,
13821 renderbuffer: GLuint,
13822 ) {
13823 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13824 {
13825 trace!(
13826 "calling gl.FramebufferRenderbuffer({:#X}, {:#X}, {:#X}, {:?});",
13827 target,
13828 attachment,
13829 renderbuffertarget,
13830 renderbuffer
13831 );
13832 }
13833 let out = call_atomic_ptr_4arg(
13834 "glFramebufferRenderbuffer",
13835 &self.glFramebufferRenderbuffer_p,
13836 target,
13837 attachment,
13838 renderbuffertarget,
13839 renderbuffer,
13840 );
13841 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13842 {
13843 self.automatic_glGetError("glFramebufferRenderbuffer");
13844 }
13845 out
13846 }
13847 #[doc(hidden)]
13848 pub unsafe fn FramebufferRenderbuffer_load_with_dyn(
13849 &self,
13850 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13851 ) -> bool {
13852 load_dyn_name_atomic_ptr(
13853 get_proc_address,
13854 b"glFramebufferRenderbuffer\0",
13855 &self.glFramebufferRenderbuffer_p,
13856 )
13857 }
13858 #[inline]
13859 #[doc(hidden)]
13860 pub fn FramebufferRenderbuffer_is_loaded(&self) -> bool {
13861 !self.glFramebufferRenderbuffer_p.load(RELAX).is_null()
13862 }
13863 #[cfg_attr(feature = "inline", inline)]
13867 #[cfg_attr(feature = "inline_always", inline(always))]
13868 pub unsafe fn FramebufferTexture(
13869 &self,
13870 target: GLenum,
13871 attachment: GLenum,
13872 texture: GLuint,
13873 level: GLint,
13874 ) {
13875 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13876 {
13877 trace!(
13878 "calling gl.FramebufferTexture({:#X}, {:#X}, {:?}, {:?});",
13879 target,
13880 attachment,
13881 texture,
13882 level
13883 );
13884 }
13885 let out = call_atomic_ptr_4arg(
13886 "glFramebufferTexture",
13887 &self.glFramebufferTexture_p,
13888 target,
13889 attachment,
13890 texture,
13891 level,
13892 );
13893 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13894 {
13895 self.automatic_glGetError("glFramebufferTexture");
13896 }
13897 out
13898 }
13899 #[doc(hidden)]
13900 pub unsafe fn FramebufferTexture_load_with_dyn(
13901 &self,
13902 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13903 ) -> bool {
13904 load_dyn_name_atomic_ptr(
13905 get_proc_address,
13906 b"glFramebufferTexture\0",
13907 &self.glFramebufferTexture_p,
13908 )
13909 }
13910 #[inline]
13911 #[doc(hidden)]
13912 pub fn FramebufferTexture_is_loaded(&self) -> bool {
13913 !self.glFramebufferTexture_p.load(RELAX).is_null()
13914 }
13915 #[cfg_attr(feature = "inline", inline)]
13920 #[cfg_attr(feature = "inline_always", inline(always))]
13921 pub unsafe fn FramebufferTexture1D(
13922 &self,
13923 target: GLenum,
13924 attachment: GLenum,
13925 textarget: GLenum,
13926 texture: GLuint,
13927 level: GLint,
13928 ) {
13929 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13930 {
13931 trace!(
13932 "calling gl.FramebufferTexture1D({:#X}, {:#X}, {:#X}, {:?}, {:?});",
13933 target,
13934 attachment,
13935 textarget,
13936 texture,
13937 level
13938 );
13939 }
13940 let out = call_atomic_ptr_5arg(
13941 "glFramebufferTexture1D",
13942 &self.glFramebufferTexture1D_p,
13943 target,
13944 attachment,
13945 textarget,
13946 texture,
13947 level,
13948 );
13949 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13950 {
13951 self.automatic_glGetError("glFramebufferTexture1D");
13952 }
13953 out
13954 }
13955 #[doc(hidden)]
13956 pub unsafe fn FramebufferTexture1D_load_with_dyn(
13957 &self,
13958 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13959 ) -> bool {
13960 load_dyn_name_atomic_ptr(
13961 get_proc_address,
13962 b"glFramebufferTexture1D\0",
13963 &self.glFramebufferTexture1D_p,
13964 )
13965 }
13966 #[inline]
13967 #[doc(hidden)]
13968 pub fn FramebufferTexture1D_is_loaded(&self) -> bool {
13969 !self.glFramebufferTexture1D_p.load(RELAX).is_null()
13970 }
13971 #[cfg_attr(feature = "inline", inline)]
13976 #[cfg_attr(feature = "inline_always", inline(always))]
13977 pub unsafe fn FramebufferTexture2D(
13978 &self,
13979 target: GLenum,
13980 attachment: GLenum,
13981 textarget: GLenum,
13982 texture: GLuint,
13983 level: GLint,
13984 ) {
13985 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13986 {
13987 trace!(
13988 "calling gl.FramebufferTexture2D({:#X}, {:#X}, {:#X}, {:?}, {:?});",
13989 target,
13990 attachment,
13991 textarget,
13992 texture,
13993 level
13994 );
13995 }
13996 let out = call_atomic_ptr_5arg(
13997 "glFramebufferTexture2D",
13998 &self.glFramebufferTexture2D_p,
13999 target,
14000 attachment,
14001 textarget,
14002 texture,
14003 level,
14004 );
14005 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14006 {
14007 self.automatic_glGetError("glFramebufferTexture2D");
14008 }
14009 out
14010 }
14011 #[doc(hidden)]
14012 pub unsafe fn FramebufferTexture2D_load_with_dyn(
14013 &self,
14014 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14015 ) -> bool {
14016 load_dyn_name_atomic_ptr(
14017 get_proc_address,
14018 b"glFramebufferTexture2D\0",
14019 &self.glFramebufferTexture2D_p,
14020 )
14021 }
14022 #[inline]
14023 #[doc(hidden)]
14024 pub fn FramebufferTexture2D_is_loaded(&self) -> bool {
14025 !self.glFramebufferTexture2D_p.load(RELAX).is_null()
14026 }
14027 #[cfg_attr(feature = "inline", inline)]
14032 #[cfg_attr(feature = "inline_always", inline(always))]
14033 pub unsafe fn FramebufferTexture3D(
14034 &self,
14035 target: GLenum,
14036 attachment: GLenum,
14037 textarget: GLenum,
14038 texture: GLuint,
14039 level: GLint,
14040 zoffset: GLint,
14041 ) {
14042 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14043 {
14044 trace!(
14045 "calling gl.FramebufferTexture3D({:#X}, {:#X}, {:#X}, {:?}, {:?}, {:?});",
14046 target,
14047 attachment,
14048 textarget,
14049 texture,
14050 level,
14051 zoffset
14052 );
14053 }
14054 let out = call_atomic_ptr_6arg(
14055 "glFramebufferTexture3D",
14056 &self.glFramebufferTexture3D_p,
14057 target,
14058 attachment,
14059 textarget,
14060 texture,
14061 level,
14062 zoffset,
14063 );
14064 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14065 {
14066 self.automatic_glGetError("glFramebufferTexture3D");
14067 }
14068 out
14069 }
14070 #[doc(hidden)]
14071 pub unsafe fn FramebufferTexture3D_load_with_dyn(
14072 &self,
14073 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14074 ) -> bool {
14075 load_dyn_name_atomic_ptr(
14076 get_proc_address,
14077 b"glFramebufferTexture3D\0",
14078 &self.glFramebufferTexture3D_p,
14079 )
14080 }
14081 #[inline]
14082 #[doc(hidden)]
14083 pub fn FramebufferTexture3D_is_loaded(&self) -> bool {
14084 !self.glFramebufferTexture3D_p.load(RELAX).is_null()
14085 }
14086 #[cfg_attr(feature = "inline", inline)]
14093 #[cfg_attr(feature = "inline_always", inline(always))]
14094 pub unsafe fn FramebufferTextureLayer(
14095 &self,
14096 target: GLenum,
14097 attachment: GLenum,
14098 texture: GLuint,
14099 level: GLint,
14100 layer: GLint,
14101 ) {
14102 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14103 {
14104 trace!(
14105 "calling gl.FramebufferTextureLayer({:#X}, {:#X}, {:?}, {:?}, {:?});",
14106 target,
14107 attachment,
14108 texture,
14109 level,
14110 layer
14111 );
14112 }
14113 let out = call_atomic_ptr_5arg(
14114 "glFramebufferTextureLayer",
14115 &self.glFramebufferTextureLayer_p,
14116 target,
14117 attachment,
14118 texture,
14119 level,
14120 layer,
14121 );
14122 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14123 {
14124 self.automatic_glGetError("glFramebufferTextureLayer");
14125 }
14126 out
14127 }
14128 #[doc(hidden)]
14129 pub unsafe fn FramebufferTextureLayer_load_with_dyn(
14130 &self,
14131 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14132 ) -> bool {
14133 load_dyn_name_atomic_ptr(
14134 get_proc_address,
14135 b"glFramebufferTextureLayer\0",
14136 &self.glFramebufferTextureLayer_p,
14137 )
14138 }
14139 #[inline]
14140 #[doc(hidden)]
14141 pub fn FramebufferTextureLayer_is_loaded(&self) -> bool {
14142 !self.glFramebufferTextureLayer_p.load(RELAX).is_null()
14143 }
14144 #[cfg_attr(feature = "inline", inline)]
14147 #[cfg_attr(feature = "inline_always", inline(always))]
14148 pub unsafe fn FrontFace(&self, mode: GLenum) {
14149 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14150 {
14151 trace!("calling gl.FrontFace({:#X});", mode);
14152 }
14153 let out = call_atomic_ptr_1arg("glFrontFace", &self.glFrontFace_p, mode);
14154 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14155 {
14156 self.automatic_glGetError("glFrontFace");
14157 }
14158 out
14159 }
14160 #[doc(hidden)]
14161 pub unsafe fn FrontFace_load_with_dyn(
14162 &self,
14163 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14164 ) -> bool {
14165 load_dyn_name_atomic_ptr(get_proc_address, b"glFrontFace\0", &self.glFrontFace_p)
14166 }
14167 #[inline]
14168 #[doc(hidden)]
14169 pub fn FrontFace_is_loaded(&self) -> bool {
14170 !self.glFrontFace_p.load(RELAX).is_null()
14171 }
14172 #[cfg_attr(feature = "inline", inline)]
14175 #[cfg_attr(feature = "inline_always", inline(always))]
14176 pub unsafe fn GenBuffers(&self, n: GLsizei, buffers: *mut GLuint) {
14177 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14178 {
14179 trace!("calling gl.GenBuffers({:?}, {:p});", n, buffers);
14180 }
14181 let out = call_atomic_ptr_2arg("glGenBuffers", &self.glGenBuffers_p, n, buffers);
14182 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14183 {
14184 self.automatic_glGetError("glGenBuffers");
14185 }
14186 out
14187 }
14188 #[doc(hidden)]
14189 pub unsafe fn GenBuffers_load_with_dyn(
14190 &self,
14191 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14192 ) -> bool {
14193 load_dyn_name_atomic_ptr(get_proc_address, b"glGenBuffers\0", &self.glGenBuffers_p)
14194 }
14195 #[inline]
14196 #[doc(hidden)]
14197 pub fn GenBuffers_is_loaded(&self) -> bool {
14198 !self.glGenBuffers_p.load(RELAX).is_null()
14199 }
14200 #[cfg_attr(feature = "inline", inline)]
14203 #[cfg_attr(feature = "inline_always", inline(always))]
14204 pub unsafe fn GenFramebuffers(&self, n: GLsizei, framebuffers: *mut GLuint) {
14205 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14206 {
14207 trace!("calling gl.GenFramebuffers({:?}, {:p});", n, framebuffers);
14208 }
14209 let out = call_atomic_ptr_2arg(
14210 "glGenFramebuffers",
14211 &self.glGenFramebuffers_p,
14212 n,
14213 framebuffers,
14214 );
14215 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14216 {
14217 self.automatic_glGetError("glGenFramebuffers");
14218 }
14219 out
14220 }
14221 #[doc(hidden)]
14222 pub unsafe fn GenFramebuffers_load_with_dyn(
14223 &self,
14224 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14225 ) -> bool {
14226 load_dyn_name_atomic_ptr(
14227 get_proc_address,
14228 b"glGenFramebuffers\0",
14229 &self.glGenFramebuffers_p,
14230 )
14231 }
14232 #[inline]
14233 #[doc(hidden)]
14234 pub fn GenFramebuffers_is_loaded(&self) -> bool {
14235 !self.glGenFramebuffers_p.load(RELAX).is_null()
14236 }
14237 #[cfg_attr(feature = "inline", inline)]
14240 #[cfg_attr(feature = "inline_always", inline(always))]
14241 pub unsafe fn GenProgramPipelines(&self, n: GLsizei, pipelines: *mut GLuint) {
14242 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14243 {
14244 trace!("calling gl.GenProgramPipelines({:?}, {:p});", n, pipelines);
14245 }
14246 let out = call_atomic_ptr_2arg(
14247 "glGenProgramPipelines",
14248 &self.glGenProgramPipelines_p,
14249 n,
14250 pipelines,
14251 );
14252 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14253 {
14254 self.automatic_glGetError("glGenProgramPipelines");
14255 }
14256 out
14257 }
14258 #[doc(hidden)]
14259 pub unsafe fn GenProgramPipelines_load_with_dyn(
14260 &self,
14261 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14262 ) -> bool {
14263 load_dyn_name_atomic_ptr(
14264 get_proc_address,
14265 b"glGenProgramPipelines\0",
14266 &self.glGenProgramPipelines_p,
14267 )
14268 }
14269 #[inline]
14270 #[doc(hidden)]
14271 pub fn GenProgramPipelines_is_loaded(&self) -> bool {
14272 !self.glGenProgramPipelines_p.load(RELAX).is_null()
14273 }
14274 #[cfg_attr(feature = "inline", inline)]
14277 #[cfg_attr(feature = "inline_always", inline(always))]
14278 pub unsafe fn GenQueries(&self, n: GLsizei, ids: *mut GLuint) {
14279 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14280 {
14281 trace!("calling gl.GenQueries({:?}, {:p});", n, ids);
14282 }
14283 let out = call_atomic_ptr_2arg("glGenQueries", &self.glGenQueries_p, n, ids);
14284 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14285 {
14286 self.automatic_glGetError("glGenQueries");
14287 }
14288 out
14289 }
14290 #[doc(hidden)]
14291 pub unsafe fn GenQueries_load_with_dyn(
14292 &self,
14293 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14294 ) -> bool {
14295 load_dyn_name_atomic_ptr(get_proc_address, b"glGenQueries\0", &self.glGenQueries_p)
14296 }
14297 #[inline]
14298 #[doc(hidden)]
14299 pub fn GenQueries_is_loaded(&self) -> bool {
14300 !self.glGenQueries_p.load(RELAX).is_null()
14301 }
14302 #[cfg_attr(feature = "inline", inline)]
14305 #[cfg_attr(feature = "inline_always", inline(always))]
14306 pub unsafe fn GenQueriesEXT(&self, n: GLsizei, ids: *mut GLuint) {
14307 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14308 {
14309 trace!("calling gl.GenQueriesEXT({:?}, {:p});", n, ids);
14310 }
14311 let out = call_atomic_ptr_2arg("glGenQueriesEXT", &self.glGenQueriesEXT_p, n, ids);
14312 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14313 {
14314 self.automatic_glGetError("glGenQueriesEXT");
14315 }
14316 out
14317 }
14318 #[doc(hidden)]
14319 pub unsafe fn GenQueriesEXT_load_with_dyn(
14320 &self,
14321 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14322 ) -> bool {
14323 load_dyn_name_atomic_ptr(
14324 get_proc_address,
14325 b"glGenQueriesEXT\0",
14326 &self.glGenQueriesEXT_p,
14327 )
14328 }
14329 #[inline]
14330 #[doc(hidden)]
14331 pub fn GenQueriesEXT_is_loaded(&self) -> bool {
14332 !self.glGenQueriesEXT_p.load(RELAX).is_null()
14333 }
14334 #[cfg_attr(feature = "inline", inline)]
14337 #[cfg_attr(feature = "inline_always", inline(always))]
14338 pub unsafe fn GenRenderbuffers(&self, n: GLsizei, renderbuffers: *mut GLuint) {
14339 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14340 {
14341 trace!("calling gl.GenRenderbuffers({:?}, {:p});", n, renderbuffers);
14342 }
14343 let out = call_atomic_ptr_2arg(
14344 "glGenRenderbuffers",
14345 &self.glGenRenderbuffers_p,
14346 n,
14347 renderbuffers,
14348 );
14349 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14350 {
14351 self.automatic_glGetError("glGenRenderbuffers");
14352 }
14353 out
14354 }
14355 #[doc(hidden)]
14356 pub unsafe fn GenRenderbuffers_load_with_dyn(
14357 &self,
14358 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14359 ) -> bool {
14360 load_dyn_name_atomic_ptr(
14361 get_proc_address,
14362 b"glGenRenderbuffers\0",
14363 &self.glGenRenderbuffers_p,
14364 )
14365 }
14366 #[inline]
14367 #[doc(hidden)]
14368 pub fn GenRenderbuffers_is_loaded(&self) -> bool {
14369 !self.glGenRenderbuffers_p.load(RELAX).is_null()
14370 }
14371 #[cfg_attr(feature = "inline", inline)]
14374 #[cfg_attr(feature = "inline_always", inline(always))]
14375 pub unsafe fn GenSamplers(&self, count: GLsizei, samplers: *mut GLuint) {
14376 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14377 {
14378 trace!("calling gl.GenSamplers({:?}, {:p});", count, samplers);
14379 }
14380 let out = call_atomic_ptr_2arg("glGenSamplers", &self.glGenSamplers_p, count, samplers);
14381 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14382 {
14383 self.automatic_glGetError("glGenSamplers");
14384 }
14385 out
14386 }
14387 #[doc(hidden)]
14388 pub unsafe fn GenSamplers_load_with_dyn(
14389 &self,
14390 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14391 ) -> bool {
14392 load_dyn_name_atomic_ptr(get_proc_address, b"glGenSamplers\0", &self.glGenSamplers_p)
14393 }
14394 #[inline]
14395 #[doc(hidden)]
14396 pub fn GenSamplers_is_loaded(&self) -> bool {
14397 !self.glGenSamplers_p.load(RELAX).is_null()
14398 }
14399 #[cfg_attr(feature = "inline", inline)]
14403 #[cfg_attr(feature = "inline_always", inline(always))]
14404 pub unsafe fn GenTextures(&self, n: GLsizei, textures: *mut GLuint) {
14405 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14406 {
14407 trace!("calling gl.GenTextures({:?}, {:p});", n, textures);
14408 }
14409 let out = call_atomic_ptr_2arg("glGenTextures", &self.glGenTextures_p, n, textures);
14410 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14411 {
14412 self.automatic_glGetError("glGenTextures");
14413 }
14414 out
14415 }
14416 #[doc(hidden)]
14417 pub unsafe fn GenTextures_load_with_dyn(
14418 &self,
14419 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14420 ) -> bool {
14421 load_dyn_name_atomic_ptr(get_proc_address, b"glGenTextures\0", &self.glGenTextures_p)
14422 }
14423 #[inline]
14424 #[doc(hidden)]
14425 pub fn GenTextures_is_loaded(&self) -> bool {
14426 !self.glGenTextures_p.load(RELAX).is_null()
14427 }
14428 #[cfg_attr(feature = "inline", inline)]
14431 #[cfg_attr(feature = "inline_always", inline(always))]
14432 pub unsafe fn GenTransformFeedbacks(&self, n: GLsizei, ids: *mut GLuint) {
14433 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14434 {
14435 trace!("calling gl.GenTransformFeedbacks({:?}, {:p});", n, ids);
14436 }
14437 let out = call_atomic_ptr_2arg(
14438 "glGenTransformFeedbacks",
14439 &self.glGenTransformFeedbacks_p,
14440 n,
14441 ids,
14442 );
14443 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14444 {
14445 self.automatic_glGetError("glGenTransformFeedbacks");
14446 }
14447 out
14448 }
14449 #[doc(hidden)]
14450 pub unsafe fn GenTransformFeedbacks_load_with_dyn(
14451 &self,
14452 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14453 ) -> bool {
14454 load_dyn_name_atomic_ptr(
14455 get_proc_address,
14456 b"glGenTransformFeedbacks\0",
14457 &self.glGenTransformFeedbacks_p,
14458 )
14459 }
14460 #[inline]
14461 #[doc(hidden)]
14462 pub fn GenTransformFeedbacks_is_loaded(&self) -> bool {
14463 !self.glGenTransformFeedbacks_p.load(RELAX).is_null()
14464 }
14465 #[cfg_attr(feature = "inline", inline)]
14468 #[cfg_attr(feature = "inline_always", inline(always))]
14469 pub unsafe fn GenVertexArrays(&self, n: GLsizei, arrays: *mut GLuint) {
14470 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14471 {
14472 trace!("calling gl.GenVertexArrays({:?}, {:p});", n, arrays);
14473 }
14474 let out =
14475 call_atomic_ptr_2arg("glGenVertexArrays", &self.glGenVertexArrays_p, n, arrays);
14476 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14477 {
14478 self.automatic_glGetError("glGenVertexArrays");
14479 }
14480 out
14481 }
14482 #[doc(hidden)]
14483 pub unsafe fn GenVertexArrays_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"glGenVertexArrays\0",
14490 &self.glGenVertexArrays_p,
14491 )
14492 }
14493 #[inline]
14494 #[doc(hidden)]
14495 pub fn GenVertexArrays_is_loaded(&self) -> bool {
14496 !self.glGenVertexArrays_p.load(RELAX).is_null()
14497 }
14498 #[cfg_attr(feature = "inline", inline)]
14502 #[cfg_attr(feature = "inline_always", inline(always))]
14503 pub unsafe fn GenVertexArraysAPPLE(&self, n: GLsizei, arrays: *mut GLuint) {
14504 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14505 {
14506 trace!("calling gl.GenVertexArraysAPPLE({:?}, {:p});", n, arrays);
14507 }
14508 let out = call_atomic_ptr_2arg(
14509 "glGenVertexArraysAPPLE",
14510 &self.glGenVertexArraysAPPLE_p,
14511 n,
14512 arrays,
14513 );
14514 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14515 {
14516 self.automatic_glGetError("glGenVertexArraysAPPLE");
14517 }
14518 out
14519 }
14520 #[doc(hidden)]
14521 pub unsafe fn GenVertexArraysAPPLE_load_with_dyn(
14522 &self,
14523 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14524 ) -> bool {
14525 load_dyn_name_atomic_ptr(
14526 get_proc_address,
14527 b"glGenVertexArraysAPPLE\0",
14528 &self.glGenVertexArraysAPPLE_p,
14529 )
14530 }
14531 #[inline]
14532 #[doc(hidden)]
14533 pub fn GenVertexArraysAPPLE_is_loaded(&self) -> bool {
14534 !self.glGenVertexArraysAPPLE_p.load(RELAX).is_null()
14535 }
14536 #[cfg_attr(feature = "inline", inline)]
14540 #[cfg_attr(feature = "inline_always", inline(always))]
14541 pub unsafe fn GenVertexArraysOES(&self, n: GLsizei, arrays: *mut GLuint) {
14542 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14543 {
14544 trace!("calling gl.GenVertexArraysOES({:?}, {:p});", n, arrays);
14545 }
14546 let out = call_atomic_ptr_2arg(
14547 "glGenVertexArraysOES",
14548 &self.glGenVertexArraysOES_p,
14549 n,
14550 arrays,
14551 );
14552 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14553 {
14554 self.automatic_glGetError("glGenVertexArraysOES");
14555 }
14556 out
14557 }
14558 #[doc(hidden)]
14559 pub unsafe fn GenVertexArraysOES_load_with_dyn(
14560 &self,
14561 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14562 ) -> bool {
14563 load_dyn_name_atomic_ptr(
14564 get_proc_address,
14565 b"glGenVertexArraysOES\0",
14566 &self.glGenVertexArraysOES_p,
14567 )
14568 }
14569 #[inline]
14570 #[doc(hidden)]
14571 pub fn GenVertexArraysOES_is_loaded(&self) -> bool {
14572 !self.glGenVertexArraysOES_p.load(RELAX).is_null()
14573 }
14574 #[cfg_attr(feature = "inline", inline)]
14577 #[cfg_attr(feature = "inline_always", inline(always))]
14578 pub unsafe fn GenerateMipmap(&self, target: GLenum) {
14579 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14580 {
14581 trace!("calling gl.GenerateMipmap({:#X});", target);
14582 }
14583 let out = call_atomic_ptr_1arg("glGenerateMipmap", &self.glGenerateMipmap_p, target);
14584 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14585 {
14586 self.automatic_glGetError("glGenerateMipmap");
14587 }
14588 out
14589 }
14590 #[doc(hidden)]
14591 pub unsafe fn GenerateMipmap_load_with_dyn(
14592 &self,
14593 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14594 ) -> bool {
14595 load_dyn_name_atomic_ptr(
14596 get_proc_address,
14597 b"glGenerateMipmap\0",
14598 &self.glGenerateMipmap_p,
14599 )
14600 }
14601 #[inline]
14602 #[doc(hidden)]
14603 pub fn GenerateMipmap_is_loaded(&self) -> bool {
14604 !self.glGenerateMipmap_p.load(RELAX).is_null()
14605 }
14606 #[cfg_attr(feature = "inline", inline)]
14608 #[cfg_attr(feature = "inline_always", inline(always))]
14609 pub unsafe fn GenerateTextureMipmap(&self, texture: GLuint) {
14610 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14611 {
14612 trace!("calling gl.GenerateTextureMipmap({:?});", texture);
14613 }
14614 let out = call_atomic_ptr_1arg(
14615 "glGenerateTextureMipmap",
14616 &self.glGenerateTextureMipmap_p,
14617 texture,
14618 );
14619 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14620 {
14621 self.automatic_glGetError("glGenerateTextureMipmap");
14622 }
14623 out
14624 }
14625 #[doc(hidden)]
14626 pub unsafe fn GenerateTextureMipmap_load_with_dyn(
14627 &self,
14628 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14629 ) -> bool {
14630 load_dyn_name_atomic_ptr(
14631 get_proc_address,
14632 b"glGenerateTextureMipmap\0",
14633 &self.glGenerateTextureMipmap_p,
14634 )
14635 }
14636 #[inline]
14637 #[doc(hidden)]
14638 pub fn GenerateTextureMipmap_is_loaded(&self) -> bool {
14639 !self.glGenerateTextureMipmap_p.load(RELAX).is_null()
14640 }
14641 #[cfg_attr(feature = "inline", inline)]
14645 #[cfg_attr(feature = "inline_always", inline(always))]
14646 pub unsafe fn GetActiveAtomicCounterBufferiv(
14647 &self,
14648 program: GLuint,
14649 bufferIndex: GLuint,
14650 pname: GLenum,
14651 params: *mut GLint,
14652 ) {
14653 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14654 {
14655 trace!(
14656 "calling gl.GetActiveAtomicCounterBufferiv({:?}, {:?}, {:#X}, {:p});",
14657 program,
14658 bufferIndex,
14659 pname,
14660 params
14661 );
14662 }
14663 let out = call_atomic_ptr_4arg(
14664 "glGetActiveAtomicCounterBufferiv",
14665 &self.glGetActiveAtomicCounterBufferiv_p,
14666 program,
14667 bufferIndex,
14668 pname,
14669 params,
14670 );
14671 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14672 {
14673 self.automatic_glGetError("glGetActiveAtomicCounterBufferiv");
14674 }
14675 out
14676 }
14677 #[doc(hidden)]
14678 pub unsafe fn GetActiveAtomicCounterBufferiv_load_with_dyn(
14679 &self,
14680 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14681 ) -> bool {
14682 load_dyn_name_atomic_ptr(
14683 get_proc_address,
14684 b"glGetActiveAtomicCounterBufferiv\0",
14685 &self.glGetActiveAtomicCounterBufferiv_p,
14686 )
14687 }
14688 #[inline]
14689 #[doc(hidden)]
14690 pub fn GetActiveAtomicCounterBufferiv_is_loaded(&self) -> bool {
14691 !self
14692 .glGetActiveAtomicCounterBufferiv_p
14693 .load(RELAX)
14694 .is_null()
14695 }
14696 #[cfg_attr(feature = "inline", inline)]
14703 #[cfg_attr(feature = "inline_always", inline(always))]
14704 pub unsafe fn GetActiveAttrib(
14705 &self,
14706 program: GLuint,
14707 index: GLuint,
14708 bufSize: GLsizei,
14709 length: *mut GLsizei,
14710 size: *mut GLint,
14711 type_: *mut GLenum,
14712 name: *mut GLchar,
14713 ) {
14714 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14715 {
14716 trace!(
14717 "calling gl.GetActiveAttrib({:?}, {:?}, {:?}, {:p}, {:p}, {:p}, {:p});",
14718 program,
14719 index,
14720 bufSize,
14721 length,
14722 size,
14723 type_,
14724 name
14725 );
14726 }
14727 let out = call_atomic_ptr_7arg(
14728 "glGetActiveAttrib",
14729 &self.glGetActiveAttrib_p,
14730 program,
14731 index,
14732 bufSize,
14733 length,
14734 size,
14735 type_,
14736 name,
14737 );
14738 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14739 {
14740 self.automatic_glGetError("glGetActiveAttrib");
14741 }
14742 out
14743 }
14744 #[doc(hidden)]
14745 pub unsafe fn GetActiveAttrib_load_with_dyn(
14746 &self,
14747 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14748 ) -> bool {
14749 load_dyn_name_atomic_ptr(
14750 get_proc_address,
14751 b"glGetActiveAttrib\0",
14752 &self.glGetActiveAttrib_p,
14753 )
14754 }
14755 #[inline]
14756 #[doc(hidden)]
14757 pub fn GetActiveAttrib_is_loaded(&self) -> bool {
14758 !self.glGetActiveAttrib_p.load(RELAX).is_null()
14759 }
14760 #[cfg_attr(feature = "inline", inline)]
14765 #[cfg_attr(feature = "inline_always", inline(always))]
14766 pub unsafe fn GetActiveSubroutineName(
14767 &self,
14768 program: GLuint,
14769 shadertype: GLenum,
14770 index: GLuint,
14771 bufSize: GLsizei,
14772 length: *mut GLsizei,
14773 name: *mut GLchar,
14774 ) {
14775 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14776 {
14777 trace!(
14778 "calling gl.GetActiveSubroutineName({:?}, {:#X}, {:?}, {:?}, {:p}, {:p});",
14779 program,
14780 shadertype,
14781 index,
14782 bufSize,
14783 length,
14784 name
14785 );
14786 }
14787 let out = call_atomic_ptr_6arg(
14788 "glGetActiveSubroutineName",
14789 &self.glGetActiveSubroutineName_p,
14790 program,
14791 shadertype,
14792 index,
14793 bufSize,
14794 length,
14795 name,
14796 );
14797 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14798 {
14799 self.automatic_glGetError("glGetActiveSubroutineName");
14800 }
14801 out
14802 }
14803 #[doc(hidden)]
14804 pub unsafe fn GetActiveSubroutineName_load_with_dyn(
14805 &self,
14806 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14807 ) -> bool {
14808 load_dyn_name_atomic_ptr(
14809 get_proc_address,
14810 b"glGetActiveSubroutineName\0",
14811 &self.glGetActiveSubroutineName_p,
14812 )
14813 }
14814 #[inline]
14815 #[doc(hidden)]
14816 pub fn GetActiveSubroutineName_is_loaded(&self) -> bool {
14817 !self.glGetActiveSubroutineName_p.load(RELAX).is_null()
14818 }
14819 #[cfg_attr(feature = "inline", inline)]
14824 #[cfg_attr(feature = "inline_always", inline(always))]
14825 pub unsafe fn GetActiveSubroutineUniformName(
14826 &self,
14827 program: GLuint,
14828 shadertype: GLenum,
14829 index: GLuint,
14830 bufSize: GLsizei,
14831 length: *mut GLsizei,
14832 name: *mut GLchar,
14833 ) {
14834 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14835 {
14836 trace!("calling gl.GetActiveSubroutineUniformName({:?}, {:#X}, {:?}, {:?}, {:p}, {:p});", program, shadertype, index, bufSize, length, name);
14837 }
14838 let out = call_atomic_ptr_6arg(
14839 "glGetActiveSubroutineUniformName",
14840 &self.glGetActiveSubroutineUniformName_p,
14841 program,
14842 shadertype,
14843 index,
14844 bufSize,
14845 length,
14846 name,
14847 );
14848 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14849 {
14850 self.automatic_glGetError("glGetActiveSubroutineUniformName");
14851 }
14852 out
14853 }
14854 #[doc(hidden)]
14855 pub unsafe fn GetActiveSubroutineUniformName_load_with_dyn(
14856 &self,
14857 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14858 ) -> bool {
14859 load_dyn_name_atomic_ptr(
14860 get_proc_address,
14861 b"glGetActiveSubroutineUniformName\0",
14862 &self.glGetActiveSubroutineUniformName_p,
14863 )
14864 }
14865 #[inline]
14866 #[doc(hidden)]
14867 pub fn GetActiveSubroutineUniformName_is_loaded(&self) -> bool {
14868 !self
14869 .glGetActiveSubroutineUniformName_p
14870 .load(RELAX)
14871 .is_null()
14872 }
14873 #[cfg_attr(feature = "inline", inline)]
14878 #[cfg_attr(feature = "inline_always", inline(always))]
14879 pub unsafe fn GetActiveSubroutineUniformiv(
14880 &self,
14881 program: GLuint,
14882 shadertype: GLenum,
14883 index: GLuint,
14884 pname: GLenum,
14885 values: *mut GLint,
14886 ) {
14887 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14888 {
14889 trace!(
14890 "calling gl.GetActiveSubroutineUniformiv({:?}, {:#X}, {:?}, {:#X}, {:p});",
14891 program,
14892 shadertype,
14893 index,
14894 pname,
14895 values
14896 );
14897 }
14898 let out = call_atomic_ptr_5arg(
14899 "glGetActiveSubroutineUniformiv",
14900 &self.glGetActiveSubroutineUniformiv_p,
14901 program,
14902 shadertype,
14903 index,
14904 pname,
14905 values,
14906 );
14907 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14908 {
14909 self.automatic_glGetError("glGetActiveSubroutineUniformiv");
14910 }
14911 out
14912 }
14913 #[doc(hidden)]
14914 pub unsafe fn GetActiveSubroutineUniformiv_load_with_dyn(
14915 &self,
14916 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14917 ) -> bool {
14918 load_dyn_name_atomic_ptr(
14919 get_proc_address,
14920 b"glGetActiveSubroutineUniformiv\0",
14921 &self.glGetActiveSubroutineUniformiv_p,
14922 )
14923 }
14924 #[inline]
14925 #[doc(hidden)]
14926 pub fn GetActiveSubroutineUniformiv_is_loaded(&self) -> bool {
14927 !self.glGetActiveSubroutineUniformiv_p.load(RELAX).is_null()
14928 }
14929 #[cfg_attr(feature = "inline", inline)]
14936 #[cfg_attr(feature = "inline_always", inline(always))]
14937 pub unsafe fn GetActiveUniform(
14938 &self,
14939 program: GLuint,
14940 index: GLuint,
14941 bufSize: GLsizei,
14942 length: *mut GLsizei,
14943 size: *mut GLint,
14944 type_: *mut GLenum,
14945 name: *mut GLchar,
14946 ) {
14947 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14948 {
14949 trace!(
14950 "calling gl.GetActiveUniform({:?}, {:?}, {:?}, {:p}, {:p}, {:p}, {:p});",
14951 program,
14952 index,
14953 bufSize,
14954 length,
14955 size,
14956 type_,
14957 name
14958 );
14959 }
14960 let out = call_atomic_ptr_7arg(
14961 "glGetActiveUniform",
14962 &self.glGetActiveUniform_p,
14963 program,
14964 index,
14965 bufSize,
14966 length,
14967 size,
14968 type_,
14969 name,
14970 );
14971 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14972 {
14973 self.automatic_glGetError("glGetActiveUniform");
14974 }
14975 out
14976 }
14977 #[doc(hidden)]
14978 pub unsafe fn GetActiveUniform_load_with_dyn(
14979 &self,
14980 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14981 ) -> bool {
14982 load_dyn_name_atomic_ptr(
14983 get_proc_address,
14984 b"glGetActiveUniform\0",
14985 &self.glGetActiveUniform_p,
14986 )
14987 }
14988 #[inline]
14989 #[doc(hidden)]
14990 pub fn GetActiveUniform_is_loaded(&self) -> bool {
14991 !self.glGetActiveUniform_p.load(RELAX).is_null()
14992 }
14993 #[cfg_attr(feature = "inline", inline)]
14997 #[cfg_attr(feature = "inline_always", inline(always))]
14998 pub unsafe fn GetActiveUniformBlockName(
14999 &self,
15000 program: GLuint,
15001 uniformBlockIndex: GLuint,
15002 bufSize: GLsizei,
15003 length: *mut GLsizei,
15004 uniformBlockName: *mut GLchar,
15005 ) {
15006 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15007 {
15008 trace!(
15009 "calling gl.GetActiveUniformBlockName({:?}, {:?}, {:?}, {:p}, {:p});",
15010 program,
15011 uniformBlockIndex,
15012 bufSize,
15013 length,
15014 uniformBlockName
15015 );
15016 }
15017 let out = call_atomic_ptr_5arg(
15018 "glGetActiveUniformBlockName",
15019 &self.glGetActiveUniformBlockName_p,
15020 program,
15021 uniformBlockIndex,
15022 bufSize,
15023 length,
15024 uniformBlockName,
15025 );
15026 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15027 {
15028 self.automatic_glGetError("glGetActiveUniformBlockName");
15029 }
15030 out
15031 }
15032 #[doc(hidden)]
15033 pub unsafe fn GetActiveUniformBlockName_load_with_dyn(
15034 &self,
15035 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15036 ) -> bool {
15037 load_dyn_name_atomic_ptr(
15038 get_proc_address,
15039 b"glGetActiveUniformBlockName\0",
15040 &self.glGetActiveUniformBlockName_p,
15041 )
15042 }
15043 #[inline]
15044 #[doc(hidden)]
15045 pub fn GetActiveUniformBlockName_is_loaded(&self) -> bool {
15046 !self.glGetActiveUniformBlockName_p.load(RELAX).is_null()
15047 }
15048 #[cfg_attr(feature = "inline", inline)]
15052 #[cfg_attr(feature = "inline_always", inline(always))]
15053 pub unsafe fn GetActiveUniformBlockiv(
15054 &self,
15055 program: GLuint,
15056 uniformBlockIndex: GLuint,
15057 pname: GLenum,
15058 params: *mut GLint,
15059 ) {
15060 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15061 {
15062 trace!(
15063 "calling gl.GetActiveUniformBlockiv({:?}, {:?}, {:#X}, {:p});",
15064 program,
15065 uniformBlockIndex,
15066 pname,
15067 params
15068 );
15069 }
15070 let out = call_atomic_ptr_4arg(
15071 "glGetActiveUniformBlockiv",
15072 &self.glGetActiveUniformBlockiv_p,
15073 program,
15074 uniformBlockIndex,
15075 pname,
15076 params,
15077 );
15078 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15079 {
15080 self.automatic_glGetError("glGetActiveUniformBlockiv");
15081 }
15082 out
15083 }
15084 #[doc(hidden)]
15085 pub unsafe fn GetActiveUniformBlockiv_load_with_dyn(
15086 &self,
15087 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15088 ) -> bool {
15089 load_dyn_name_atomic_ptr(
15090 get_proc_address,
15091 b"glGetActiveUniformBlockiv\0",
15092 &self.glGetActiveUniformBlockiv_p,
15093 )
15094 }
15095 #[inline]
15096 #[doc(hidden)]
15097 pub fn GetActiveUniformBlockiv_is_loaded(&self) -> bool {
15098 !self.glGetActiveUniformBlockiv_p.load(RELAX).is_null()
15099 }
15100 #[cfg_attr(feature = "inline", inline)]
15104 #[cfg_attr(feature = "inline_always", inline(always))]
15105 pub unsafe fn GetActiveUniformName(
15106 &self,
15107 program: GLuint,
15108 uniformIndex: GLuint,
15109 bufSize: GLsizei,
15110 length: *mut GLsizei,
15111 uniformName: *mut GLchar,
15112 ) {
15113 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15114 {
15115 trace!(
15116 "calling gl.GetActiveUniformName({:?}, {:?}, {:?}, {:p}, {:p});",
15117 program,
15118 uniformIndex,
15119 bufSize,
15120 length,
15121 uniformName
15122 );
15123 }
15124 let out = call_atomic_ptr_5arg(
15125 "glGetActiveUniformName",
15126 &self.glGetActiveUniformName_p,
15127 program,
15128 uniformIndex,
15129 bufSize,
15130 length,
15131 uniformName,
15132 );
15133 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15134 {
15135 self.automatic_glGetError("glGetActiveUniformName");
15136 }
15137 out
15138 }
15139 #[doc(hidden)]
15140 pub unsafe fn GetActiveUniformName_load_with_dyn(
15141 &self,
15142 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15143 ) -> bool {
15144 load_dyn_name_atomic_ptr(
15145 get_proc_address,
15146 b"glGetActiveUniformName\0",
15147 &self.glGetActiveUniformName_p,
15148 )
15149 }
15150 #[inline]
15151 #[doc(hidden)]
15152 pub fn GetActiveUniformName_is_loaded(&self) -> bool {
15153 !self.glGetActiveUniformName_p.load(RELAX).is_null()
15154 }
15155 #[cfg_attr(feature = "inline", inline)]
15160 #[cfg_attr(feature = "inline_always", inline(always))]
15161 pub unsafe fn GetActiveUniformsiv(
15162 &self,
15163 program: GLuint,
15164 uniformCount: GLsizei,
15165 uniformIndices: *const GLuint,
15166 pname: GLenum,
15167 params: *mut GLint,
15168 ) {
15169 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15170 {
15171 trace!(
15172 "calling gl.GetActiveUniformsiv({:?}, {:?}, {:p}, {:#X}, {:p});",
15173 program,
15174 uniformCount,
15175 uniformIndices,
15176 pname,
15177 params
15178 );
15179 }
15180 let out = call_atomic_ptr_5arg(
15181 "glGetActiveUniformsiv",
15182 &self.glGetActiveUniformsiv_p,
15183 program,
15184 uniformCount,
15185 uniformIndices,
15186 pname,
15187 params,
15188 );
15189 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15190 {
15191 self.automatic_glGetError("glGetActiveUniformsiv");
15192 }
15193 out
15194 }
15195 #[doc(hidden)]
15196 pub unsafe fn GetActiveUniformsiv_load_with_dyn(
15197 &self,
15198 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15199 ) -> bool {
15200 load_dyn_name_atomic_ptr(
15201 get_proc_address,
15202 b"glGetActiveUniformsiv\0",
15203 &self.glGetActiveUniformsiv_p,
15204 )
15205 }
15206 #[inline]
15207 #[doc(hidden)]
15208 pub fn GetActiveUniformsiv_is_loaded(&self) -> bool {
15209 !self.glGetActiveUniformsiv_p.load(RELAX).is_null()
15210 }
15211 #[cfg_attr(feature = "inline", inline)]
15215 #[cfg_attr(feature = "inline_always", inline(always))]
15216 pub unsafe fn GetAttachedShaders(
15217 &self,
15218 program: GLuint,
15219 maxCount: GLsizei,
15220 count: *mut GLsizei,
15221 shaders: *mut GLuint,
15222 ) {
15223 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15224 {
15225 trace!(
15226 "calling gl.GetAttachedShaders({:?}, {:?}, {:p}, {:p});",
15227 program,
15228 maxCount,
15229 count,
15230 shaders
15231 );
15232 }
15233 let out = call_atomic_ptr_4arg(
15234 "glGetAttachedShaders",
15235 &self.glGetAttachedShaders_p,
15236 program,
15237 maxCount,
15238 count,
15239 shaders,
15240 );
15241 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15242 {
15243 self.automatic_glGetError("glGetAttachedShaders");
15244 }
15245 out
15246 }
15247 #[doc(hidden)]
15248 pub unsafe fn GetAttachedShaders_load_with_dyn(
15249 &self,
15250 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15251 ) -> bool {
15252 load_dyn_name_atomic_ptr(
15253 get_proc_address,
15254 b"glGetAttachedShaders\0",
15255 &self.glGetAttachedShaders_p,
15256 )
15257 }
15258 #[inline]
15259 #[doc(hidden)]
15260 pub fn GetAttachedShaders_is_loaded(&self) -> bool {
15261 !self.glGetAttachedShaders_p.load(RELAX).is_null()
15262 }
15263 #[cfg_attr(feature = "inline", inline)]
15265 #[cfg_attr(feature = "inline_always", inline(always))]
15266 pub unsafe fn GetAttribLocation(&self, program: GLuint, name: *const GLchar) -> GLint {
15267 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15268 {
15269 trace!("calling gl.GetAttribLocation({:?}, {:p});", program, name);
15270 }
15271 let out = call_atomic_ptr_2arg(
15272 "glGetAttribLocation",
15273 &self.glGetAttribLocation_p,
15274 program,
15275 name,
15276 );
15277 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15278 {
15279 self.automatic_glGetError("glGetAttribLocation");
15280 }
15281 out
15282 }
15283 #[doc(hidden)]
15284 pub unsafe fn GetAttribLocation_load_with_dyn(
15285 &self,
15286 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15287 ) -> bool {
15288 load_dyn_name_atomic_ptr(
15289 get_proc_address,
15290 b"glGetAttribLocation\0",
15291 &self.glGetAttribLocation_p,
15292 )
15293 }
15294 #[inline]
15295 #[doc(hidden)]
15296 pub fn GetAttribLocation_is_loaded(&self) -> bool {
15297 !self.glGetAttribLocation_p.load(RELAX).is_null()
15298 }
15299 #[cfg_attr(feature = "inline", inline)]
15304 #[cfg_attr(feature = "inline_always", inline(always))]
15305 pub unsafe fn GetBooleanIndexedvEXT(
15306 &self,
15307 target: GLenum,
15308 index: GLuint,
15309 data: *mut GLboolean,
15310 ) {
15311 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15312 {
15313 trace!(
15314 "calling gl.GetBooleanIndexedvEXT({:#X}, {:?}, {:p});",
15315 target,
15316 index,
15317 data
15318 );
15319 }
15320 let out = call_atomic_ptr_3arg(
15321 "glGetBooleanIndexedvEXT",
15322 &self.glGetBooleanIndexedvEXT_p,
15323 target,
15324 index,
15325 data,
15326 );
15327 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15328 {
15329 self.automatic_glGetError("glGetBooleanIndexedvEXT");
15330 }
15331 out
15332 }
15333 #[doc(hidden)]
15334 pub unsafe fn GetBooleanIndexedvEXT_load_with_dyn(
15335 &self,
15336 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15337 ) -> bool {
15338 load_dyn_name_atomic_ptr(
15339 get_proc_address,
15340 b"glGetBooleanIndexedvEXT\0",
15341 &self.glGetBooleanIndexedvEXT_p,
15342 )
15343 }
15344 #[inline]
15345 #[doc(hidden)]
15346 pub fn GetBooleanIndexedvEXT_is_loaded(&self) -> bool {
15347 !self.glGetBooleanIndexedvEXT_p.load(RELAX).is_null()
15348 }
15349 #[cfg_attr(feature = "inline", inline)]
15353 #[cfg_attr(feature = "inline_always", inline(always))]
15354 pub unsafe fn GetBooleani_v(&self, target: GLenum, index: GLuint, data: *mut GLboolean) {
15355 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15356 {
15357 trace!(
15358 "calling gl.GetBooleani_v({:#X}, {:?}, {:p});",
15359 target,
15360 index,
15361 data
15362 );
15363 }
15364 let out = call_atomic_ptr_3arg(
15365 "glGetBooleani_v",
15366 &self.glGetBooleani_v_p,
15367 target,
15368 index,
15369 data,
15370 );
15371 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15372 {
15373 self.automatic_glGetError("glGetBooleani_v");
15374 }
15375 out
15376 }
15377 #[doc(hidden)]
15378 pub unsafe fn GetBooleani_v_load_with_dyn(
15379 &self,
15380 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15381 ) -> bool {
15382 load_dyn_name_atomic_ptr(
15383 get_proc_address,
15384 b"glGetBooleani_v\0",
15385 &self.glGetBooleani_v_p,
15386 )
15387 }
15388 #[inline]
15389 #[doc(hidden)]
15390 pub fn GetBooleani_v_is_loaded(&self) -> bool {
15391 !self.glGetBooleani_v_p.load(RELAX).is_null()
15392 }
15393 #[cfg_attr(feature = "inline", inline)]
15397 #[cfg_attr(feature = "inline_always", inline(always))]
15398 pub unsafe fn GetBooleanv(&self, pname: GLenum, data: *mut GLboolean) {
15399 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15400 {
15401 trace!("calling gl.GetBooleanv({:#X}, {:p});", pname, data);
15402 }
15403 let out = call_atomic_ptr_2arg("glGetBooleanv", &self.glGetBooleanv_p, pname, data);
15404 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15405 {
15406 self.automatic_glGetError("glGetBooleanv");
15407 }
15408 out
15409 }
15410 #[doc(hidden)]
15411 pub unsafe fn GetBooleanv_load_with_dyn(
15412 &self,
15413 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15414 ) -> bool {
15415 load_dyn_name_atomic_ptr(get_proc_address, b"glGetBooleanv\0", &self.glGetBooleanv_p)
15416 }
15417 #[inline]
15418 #[doc(hidden)]
15419 pub fn GetBooleanv_is_loaded(&self) -> bool {
15420 !self.glGetBooleanv_p.load(RELAX).is_null()
15421 }
15422 #[cfg_attr(feature = "inline", inline)]
15427 #[cfg_attr(feature = "inline_always", inline(always))]
15428 pub unsafe fn GetBufferParameteri64v(
15429 &self,
15430 target: GLenum,
15431 pname: GLenum,
15432 params: *mut GLint64,
15433 ) {
15434 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15435 {
15436 trace!(
15437 "calling gl.GetBufferParameteri64v({:#X}, {:#X}, {:p});",
15438 target,
15439 pname,
15440 params
15441 );
15442 }
15443 let out = call_atomic_ptr_3arg(
15444 "glGetBufferParameteri64v",
15445 &self.glGetBufferParameteri64v_p,
15446 target,
15447 pname,
15448 params,
15449 );
15450 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15451 {
15452 self.automatic_glGetError("glGetBufferParameteri64v");
15453 }
15454 out
15455 }
15456 #[doc(hidden)]
15457 pub unsafe fn GetBufferParameteri64v_load_with_dyn(
15458 &self,
15459 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15460 ) -> bool {
15461 load_dyn_name_atomic_ptr(
15462 get_proc_address,
15463 b"glGetBufferParameteri64v\0",
15464 &self.glGetBufferParameteri64v_p,
15465 )
15466 }
15467 #[inline]
15468 #[doc(hidden)]
15469 pub fn GetBufferParameteri64v_is_loaded(&self) -> bool {
15470 !self.glGetBufferParameteri64v_p.load(RELAX).is_null()
15471 }
15472 #[cfg_attr(feature = "inline", inline)]
15477 #[cfg_attr(feature = "inline_always", inline(always))]
15478 pub unsafe fn GetBufferParameteriv(
15479 &self,
15480 target: GLenum,
15481 pname: GLenum,
15482 params: *mut GLint,
15483 ) {
15484 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15485 {
15486 trace!(
15487 "calling gl.GetBufferParameteriv({:#X}, {:#X}, {:p});",
15488 target,
15489 pname,
15490 params
15491 );
15492 }
15493 let out = call_atomic_ptr_3arg(
15494 "glGetBufferParameteriv",
15495 &self.glGetBufferParameteriv_p,
15496 target,
15497 pname,
15498 params,
15499 );
15500 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15501 {
15502 self.automatic_glGetError("glGetBufferParameteriv");
15503 }
15504 out
15505 }
15506 #[doc(hidden)]
15507 pub unsafe fn GetBufferParameteriv_load_with_dyn(
15508 &self,
15509 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15510 ) -> bool {
15511 load_dyn_name_atomic_ptr(
15512 get_proc_address,
15513 b"glGetBufferParameteriv\0",
15514 &self.glGetBufferParameteriv_p,
15515 )
15516 }
15517 #[inline]
15518 #[doc(hidden)]
15519 pub fn GetBufferParameteriv_is_loaded(&self) -> bool {
15520 !self.glGetBufferParameteriv_p.load(RELAX).is_null()
15521 }
15522 #[cfg_attr(feature = "inline", inline)]
15527 #[cfg_attr(feature = "inline_always", inline(always))]
15528 pub unsafe fn GetBufferPointerv(
15529 &self,
15530 target: GLenum,
15531 pname: GLenum,
15532 params: *mut *mut c_void,
15533 ) {
15534 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15535 {
15536 trace!(
15537 "calling gl.GetBufferPointerv({:#X}, {:#X}, {:p});",
15538 target,
15539 pname,
15540 params
15541 );
15542 }
15543 let out = call_atomic_ptr_3arg(
15544 "glGetBufferPointerv",
15545 &self.glGetBufferPointerv_p,
15546 target,
15547 pname,
15548 params,
15549 );
15550 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15551 {
15552 self.automatic_glGetError("glGetBufferPointerv");
15553 }
15554 out
15555 }
15556 #[doc(hidden)]
15557 pub unsafe fn GetBufferPointerv_load_with_dyn(
15558 &self,
15559 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15560 ) -> bool {
15561 load_dyn_name_atomic_ptr(
15562 get_proc_address,
15563 b"glGetBufferPointerv\0",
15564 &self.glGetBufferPointerv_p,
15565 )
15566 }
15567 #[inline]
15568 #[doc(hidden)]
15569 pub fn GetBufferPointerv_is_loaded(&self) -> bool {
15570 !self.glGetBufferPointerv_p.load(RELAX).is_null()
15571 }
15572 #[cfg_attr(feature = "inline", inline)]
15578 #[cfg_attr(feature = "inline_always", inline(always))]
15579 pub unsafe fn GetBufferSubData(
15580 &self,
15581 target: GLenum,
15582 offset: GLintptr,
15583 size: GLsizeiptr,
15584 data: *mut c_void,
15585 ) {
15586 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15587 {
15588 trace!(
15589 "calling gl.GetBufferSubData({:#X}, {:?}, {:?}, {:p});",
15590 target,
15591 offset,
15592 size,
15593 data
15594 );
15595 }
15596 let out = call_atomic_ptr_4arg(
15597 "glGetBufferSubData",
15598 &self.glGetBufferSubData_p,
15599 target,
15600 offset,
15601 size,
15602 data,
15603 );
15604 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15605 {
15606 self.automatic_glGetError("glGetBufferSubData");
15607 }
15608 out
15609 }
15610 #[doc(hidden)]
15611 pub unsafe fn GetBufferSubData_load_with_dyn(
15612 &self,
15613 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15614 ) -> bool {
15615 load_dyn_name_atomic_ptr(
15616 get_proc_address,
15617 b"glGetBufferSubData\0",
15618 &self.glGetBufferSubData_p,
15619 )
15620 }
15621 #[inline]
15622 #[doc(hidden)]
15623 pub fn GetBufferSubData_is_loaded(&self) -> bool {
15624 !self.glGetBufferSubData_p.load(RELAX).is_null()
15625 }
15626 #[cfg_attr(feature = "inline", inline)]
15632 #[cfg_attr(feature = "inline_always", inline(always))]
15633 pub unsafe fn GetCompressedTexImage(&self, target: GLenum, level: GLint, img: *mut c_void) {
15634 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15635 {
15636 trace!(
15637 "calling gl.GetCompressedTexImage({:#X}, {:?}, {:p});",
15638 target,
15639 level,
15640 img
15641 );
15642 }
15643 let out = call_atomic_ptr_3arg(
15644 "glGetCompressedTexImage",
15645 &self.glGetCompressedTexImage_p,
15646 target,
15647 level,
15648 img,
15649 );
15650 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15651 {
15652 self.automatic_glGetError("glGetCompressedTexImage");
15653 }
15654 out
15655 }
15656 #[doc(hidden)]
15657 pub unsafe fn GetCompressedTexImage_load_with_dyn(
15658 &self,
15659 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15660 ) -> bool {
15661 load_dyn_name_atomic_ptr(
15662 get_proc_address,
15663 b"glGetCompressedTexImage\0",
15664 &self.glGetCompressedTexImage_p,
15665 )
15666 }
15667 #[inline]
15668 #[doc(hidden)]
15669 pub fn GetCompressedTexImage_is_loaded(&self) -> bool {
15670 !self.glGetCompressedTexImage_p.load(RELAX).is_null()
15671 }
15672 #[cfg_attr(feature = "inline", inline)]
15674 #[cfg_attr(feature = "inline_always", inline(always))]
15675 pub unsafe fn GetCompressedTextureImage(
15676 &self,
15677 texture: GLuint,
15678 level: GLint,
15679 bufSize: GLsizei,
15680 pixels: *mut c_void,
15681 ) {
15682 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15683 {
15684 trace!(
15685 "calling gl.GetCompressedTextureImage({:?}, {:?}, {:?}, {:p});",
15686 texture,
15687 level,
15688 bufSize,
15689 pixels
15690 );
15691 }
15692 let out = call_atomic_ptr_4arg(
15693 "glGetCompressedTextureImage",
15694 &self.glGetCompressedTextureImage_p,
15695 texture,
15696 level,
15697 bufSize,
15698 pixels,
15699 );
15700 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15701 {
15702 self.automatic_glGetError("glGetCompressedTextureImage");
15703 }
15704 out
15705 }
15706 #[doc(hidden)]
15707 pub unsafe fn GetCompressedTextureImage_load_with_dyn(
15708 &self,
15709 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15710 ) -> bool {
15711 load_dyn_name_atomic_ptr(
15712 get_proc_address,
15713 b"glGetCompressedTextureImage\0",
15714 &self.glGetCompressedTextureImage_p,
15715 )
15716 }
15717 #[inline]
15718 #[doc(hidden)]
15719 pub fn GetCompressedTextureImage_is_loaded(&self) -> bool {
15720 !self.glGetCompressedTextureImage_p.load(RELAX).is_null()
15721 }
15722 #[cfg_attr(feature = "inline", inline)]
15724 #[cfg_attr(feature = "inline_always", inline(always))]
15725 pub unsafe fn GetCompressedTextureSubImage(
15726 &self,
15727 texture: GLuint,
15728 level: GLint,
15729 xoffset: GLint,
15730 yoffset: GLint,
15731 zoffset: GLint,
15732 width: GLsizei,
15733 height: GLsizei,
15734 depth: GLsizei,
15735 bufSize: GLsizei,
15736 pixels: *mut c_void,
15737 ) {
15738 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15739 {
15740 trace!("calling gl.GetCompressedTextureSubImage({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:p});", texture, level, xoffset, yoffset, zoffset, width, height, depth, bufSize, pixels);
15741 }
15742 let out = call_atomic_ptr_10arg(
15743 "glGetCompressedTextureSubImage",
15744 &self.glGetCompressedTextureSubImage_p,
15745 texture,
15746 level,
15747 xoffset,
15748 yoffset,
15749 zoffset,
15750 width,
15751 height,
15752 depth,
15753 bufSize,
15754 pixels,
15755 );
15756 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15757 {
15758 self.automatic_glGetError("glGetCompressedTextureSubImage");
15759 }
15760 out
15761 }
15762 #[doc(hidden)]
15763 pub unsafe fn GetCompressedTextureSubImage_load_with_dyn(
15764 &self,
15765 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15766 ) -> bool {
15767 load_dyn_name_atomic_ptr(
15768 get_proc_address,
15769 b"glGetCompressedTextureSubImage\0",
15770 &self.glGetCompressedTextureSubImage_p,
15771 )
15772 }
15773 #[inline]
15774 #[doc(hidden)]
15775 pub fn GetCompressedTextureSubImage_is_loaded(&self) -> bool {
15776 !self.glGetCompressedTextureSubImage_p.load(RELAX).is_null()
15777 }
15778 #[cfg_attr(feature = "inline", inline)]
15789 #[cfg_attr(feature = "inline_always", inline(always))]
15790 pub unsafe fn GetDebugMessageLog(
15791 &self,
15792 count: GLuint,
15793 bufSize: GLsizei,
15794 sources: *mut GLenum,
15795 types: *mut GLenum,
15796 ids: *mut GLuint,
15797 severities: *mut GLenum,
15798 lengths: *mut GLsizei,
15799 messageLog: *mut GLchar,
15800 ) -> GLuint {
15801 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15802 {
15803 trace!("calling gl.GetDebugMessageLog({:?}, {:?}, {:p}, {:p}, {:p}, {:p}, {:p}, {:p});", count, bufSize, sources, types, ids, severities, lengths, messageLog);
15804 }
15805 let out = call_atomic_ptr_8arg(
15806 "glGetDebugMessageLog",
15807 &self.glGetDebugMessageLog_p,
15808 count,
15809 bufSize,
15810 sources,
15811 types,
15812 ids,
15813 severities,
15814 lengths,
15815 messageLog,
15816 );
15817 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15818 {
15819 self.automatic_glGetError("glGetDebugMessageLog");
15820 }
15821 out
15822 }
15823 #[doc(hidden)]
15824 pub unsafe fn GetDebugMessageLog_load_with_dyn(
15825 &self,
15826 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15827 ) -> bool {
15828 load_dyn_name_atomic_ptr(
15829 get_proc_address,
15830 b"glGetDebugMessageLog\0",
15831 &self.glGetDebugMessageLog_p,
15832 )
15833 }
15834 #[inline]
15835 #[doc(hidden)]
15836 pub fn GetDebugMessageLog_is_loaded(&self) -> bool {
15837 !self.glGetDebugMessageLog_p.load(RELAX).is_null()
15838 }
15839 #[cfg_attr(feature = "inline", inline)]
15851 #[cfg_attr(feature = "inline_always", inline(always))]
15852 pub unsafe fn GetDebugMessageLogARB(
15853 &self,
15854 count: GLuint,
15855 bufSize: GLsizei,
15856 sources: *mut GLenum,
15857 types: *mut GLenum,
15858 ids: *mut GLuint,
15859 severities: *mut GLenum,
15860 lengths: *mut GLsizei,
15861 messageLog: *mut GLchar,
15862 ) -> GLuint {
15863 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15864 {
15865 trace!("calling gl.GetDebugMessageLogARB({:?}, {:?}, {:p}, {:p}, {:p}, {:p}, {:p}, {:p});", count, bufSize, sources, types, ids, severities, lengths, messageLog);
15866 }
15867 let out = call_atomic_ptr_8arg(
15868 "glGetDebugMessageLogARB",
15869 &self.glGetDebugMessageLogARB_p,
15870 count,
15871 bufSize,
15872 sources,
15873 types,
15874 ids,
15875 severities,
15876 lengths,
15877 messageLog,
15878 );
15879 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15880 {
15881 self.automatic_glGetError("glGetDebugMessageLogARB");
15882 }
15883 out
15884 }
15885 #[doc(hidden)]
15886 pub unsafe fn GetDebugMessageLogARB_load_with_dyn(
15887 &self,
15888 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15889 ) -> bool {
15890 load_dyn_name_atomic_ptr(
15891 get_proc_address,
15892 b"glGetDebugMessageLogARB\0",
15893 &self.glGetDebugMessageLogARB_p,
15894 )
15895 }
15896 #[inline]
15897 #[doc(hidden)]
15898 pub fn GetDebugMessageLogARB_is_loaded(&self) -> bool {
15899 !self.glGetDebugMessageLogARB_p.load(RELAX).is_null()
15900 }
15901 #[cfg_attr(feature = "inline", inline)]
15913 #[cfg_attr(feature = "inline_always", inline(always))]
15914 pub unsafe fn GetDebugMessageLogKHR(
15915 &self,
15916 count: GLuint,
15917 bufSize: GLsizei,
15918 sources: *mut GLenum,
15919 types: *mut GLenum,
15920 ids: *mut GLuint,
15921 severities: *mut GLenum,
15922 lengths: *mut GLsizei,
15923 messageLog: *mut GLchar,
15924 ) -> GLuint {
15925 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15926 {
15927 trace!("calling gl.GetDebugMessageLogKHR({:?}, {:?}, {:p}, {:p}, {:p}, {:p}, {:p}, {:p});", count, bufSize, sources, types, ids, severities, lengths, messageLog);
15928 }
15929 let out = call_atomic_ptr_8arg(
15930 "glGetDebugMessageLogKHR",
15931 &self.glGetDebugMessageLogKHR_p,
15932 count,
15933 bufSize,
15934 sources,
15935 types,
15936 ids,
15937 severities,
15938 lengths,
15939 messageLog,
15940 );
15941 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15942 {
15943 self.automatic_glGetError("glGetDebugMessageLogKHR");
15944 }
15945 out
15946 }
15947 #[doc(hidden)]
15948 pub unsafe fn GetDebugMessageLogKHR_load_with_dyn(
15949 &self,
15950 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15951 ) -> bool {
15952 load_dyn_name_atomic_ptr(
15953 get_proc_address,
15954 b"glGetDebugMessageLogKHR\0",
15955 &self.glGetDebugMessageLogKHR_p,
15956 )
15957 }
15958 #[inline]
15959 #[doc(hidden)]
15960 pub fn GetDebugMessageLogKHR_is_loaded(&self) -> bool {
15961 !self.glGetDebugMessageLogKHR_p.load(RELAX).is_null()
15962 }
15963 #[cfg_attr(feature = "inline", inline)]
15967 #[cfg_attr(feature = "inline_always", inline(always))]
15968 pub unsafe fn GetDoublei_v(&self, target: GLenum, index: GLuint, data: *mut GLdouble) {
15969 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15970 {
15971 trace!(
15972 "calling gl.GetDoublei_v({:#X}, {:?}, {:p});",
15973 target,
15974 index,
15975 data
15976 );
15977 }
15978 let out = call_atomic_ptr_3arg(
15979 "glGetDoublei_v",
15980 &self.glGetDoublei_v_p,
15981 target,
15982 index,
15983 data,
15984 );
15985 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15986 {
15987 self.automatic_glGetError("glGetDoublei_v");
15988 }
15989 out
15990 }
15991 #[doc(hidden)]
15992 pub unsafe fn GetDoublei_v_load_with_dyn(
15993 &self,
15994 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15995 ) -> bool {
15996 load_dyn_name_atomic_ptr(
15997 get_proc_address,
15998 b"glGetDoublei_v\0",
15999 &self.glGetDoublei_v_p,
16000 )
16001 }
16002 #[inline]
16003 #[doc(hidden)]
16004 pub fn GetDoublei_v_is_loaded(&self) -> bool {
16005 !self.glGetDoublei_v_p.load(RELAX).is_null()
16006 }
16007 #[cfg_attr(feature = "inline", inline)]
16011 #[cfg_attr(feature = "inline_always", inline(always))]
16012 pub unsafe fn GetDoublev(&self, pname: GLenum, data: *mut GLdouble) {
16013 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16014 {
16015 trace!("calling gl.GetDoublev({:#X}, {:p});", pname, data);
16016 }
16017 let out = call_atomic_ptr_2arg("glGetDoublev", &self.glGetDoublev_p, pname, data);
16018 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16019 {
16020 self.automatic_glGetError("glGetDoublev");
16021 }
16022 out
16023 }
16024 #[doc(hidden)]
16025 pub unsafe fn GetDoublev_load_with_dyn(
16026 &self,
16027 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16028 ) -> bool {
16029 load_dyn_name_atomic_ptr(get_proc_address, b"glGetDoublev\0", &self.glGetDoublev_p)
16030 }
16031 #[inline]
16032 #[doc(hidden)]
16033 pub fn GetDoublev_is_loaded(&self) -> bool {
16034 !self.glGetDoublev_p.load(RELAX).is_null()
16035 }
16036 #[cfg_attr(feature = "inline", inline)]
16039 #[cfg_attr(feature = "inline_always", inline(always))]
16040 pub unsafe fn GetError(&self) -> GLenum {
16041 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16042 {
16043 trace!("calling gl.GetError();",);
16044 }
16045 let out = call_atomic_ptr_0arg("glGetError", &self.glGetError_p);
16046
16047 out
16048 }
16049 #[doc(hidden)]
16050 pub unsafe fn GetError_load_with_dyn(
16051 &self,
16052 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16053 ) -> bool {
16054 load_dyn_name_atomic_ptr(get_proc_address, b"glGetError\0", &self.glGetError_p)
16055 }
16056 #[inline]
16057 #[doc(hidden)]
16058 pub fn GetError_is_loaded(&self) -> bool {
16059 !self.glGetError_p.load(RELAX).is_null()
16060 }
16061 #[cfg_attr(feature = "inline", inline)]
16065 #[cfg_attr(feature = "inline_always", inline(always))]
16066 pub unsafe fn GetFloati_v(&self, target: GLenum, index: GLuint, data: *mut GLfloat) {
16067 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16068 {
16069 trace!(
16070 "calling gl.GetFloati_v({:#X}, {:?}, {:p});",
16071 target,
16072 index,
16073 data
16074 );
16075 }
16076 let out =
16077 call_atomic_ptr_3arg("glGetFloati_v", &self.glGetFloati_v_p, target, index, data);
16078 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16079 {
16080 self.automatic_glGetError("glGetFloati_v");
16081 }
16082 out
16083 }
16084 #[doc(hidden)]
16085 pub unsafe fn GetFloati_v_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(get_proc_address, b"glGetFloati_v\0", &self.glGetFloati_v_p)
16090 }
16091 #[inline]
16092 #[doc(hidden)]
16093 pub fn GetFloati_v_is_loaded(&self) -> bool {
16094 !self.glGetFloati_v_p.load(RELAX).is_null()
16095 }
16096 #[cfg_attr(feature = "inline", inline)]
16100 #[cfg_attr(feature = "inline_always", inline(always))]
16101 pub unsafe fn GetFloatv(&self, pname: GLenum, data: *mut GLfloat) {
16102 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16103 {
16104 trace!("calling gl.GetFloatv({:#X}, {:p});", pname, data);
16105 }
16106 let out = call_atomic_ptr_2arg("glGetFloatv", &self.glGetFloatv_p, pname, data);
16107 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16108 {
16109 self.automatic_glGetError("glGetFloatv");
16110 }
16111 out
16112 }
16113 #[doc(hidden)]
16114 pub unsafe fn GetFloatv_load_with_dyn(
16115 &self,
16116 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16117 ) -> bool {
16118 load_dyn_name_atomic_ptr(get_proc_address, b"glGetFloatv\0", &self.glGetFloatv_p)
16119 }
16120 #[inline]
16121 #[doc(hidden)]
16122 pub fn GetFloatv_is_loaded(&self) -> bool {
16123 !self.glGetFloatv_p.load(RELAX).is_null()
16124 }
16125 #[cfg_attr(feature = "inline", inline)]
16127 #[cfg_attr(feature = "inline_always", inline(always))]
16128 pub unsafe fn GetFragDataIndex(&self, program: GLuint, name: *const GLchar) -> GLint {
16129 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16130 {
16131 trace!("calling gl.GetFragDataIndex({:?}, {:p});", program, name);
16132 }
16133 let out = call_atomic_ptr_2arg(
16134 "glGetFragDataIndex",
16135 &self.glGetFragDataIndex_p,
16136 program,
16137 name,
16138 );
16139 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16140 {
16141 self.automatic_glGetError("glGetFragDataIndex");
16142 }
16143 out
16144 }
16145 #[doc(hidden)]
16146 pub unsafe fn GetFragDataIndex_load_with_dyn(
16147 &self,
16148 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16149 ) -> bool {
16150 load_dyn_name_atomic_ptr(
16151 get_proc_address,
16152 b"glGetFragDataIndex\0",
16153 &self.glGetFragDataIndex_p,
16154 )
16155 }
16156 #[inline]
16157 #[doc(hidden)]
16158 pub fn GetFragDataIndex_is_loaded(&self) -> bool {
16159 !self.glGetFragDataIndex_p.load(RELAX).is_null()
16160 }
16161 #[cfg_attr(feature = "inline", inline)]
16164 #[cfg_attr(feature = "inline_always", inline(always))]
16165 pub unsafe fn GetFragDataLocation(&self, program: GLuint, name: *const GLchar) -> GLint {
16166 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16167 {
16168 trace!("calling gl.GetFragDataLocation({:?}, {:p});", program, name);
16169 }
16170 let out = call_atomic_ptr_2arg(
16171 "glGetFragDataLocation",
16172 &self.glGetFragDataLocation_p,
16173 program,
16174 name,
16175 );
16176 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16177 {
16178 self.automatic_glGetError("glGetFragDataLocation");
16179 }
16180 out
16181 }
16182 #[doc(hidden)]
16183 pub unsafe fn GetFragDataLocation_load_with_dyn(
16184 &self,
16185 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16186 ) -> bool {
16187 load_dyn_name_atomic_ptr(
16188 get_proc_address,
16189 b"glGetFragDataLocation\0",
16190 &self.glGetFragDataLocation_p,
16191 )
16192 }
16193 #[inline]
16194 #[doc(hidden)]
16195 pub fn GetFragDataLocation_is_loaded(&self) -> bool {
16196 !self.glGetFragDataLocation_p.load(RELAX).is_null()
16197 }
16198 #[cfg_attr(feature = "inline", inline)]
16204 #[cfg_attr(feature = "inline_always", inline(always))]
16205 pub unsafe fn GetFramebufferAttachmentParameteriv(
16206 &self,
16207 target: GLenum,
16208 attachment: GLenum,
16209 pname: GLenum,
16210 params: *mut GLint,
16211 ) {
16212 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16213 {
16214 trace!(
16215 "calling gl.GetFramebufferAttachmentParameteriv({:#X}, {:#X}, {:#X}, {:p});",
16216 target,
16217 attachment,
16218 pname,
16219 params
16220 );
16221 }
16222 let out = call_atomic_ptr_4arg(
16223 "glGetFramebufferAttachmentParameteriv",
16224 &self.glGetFramebufferAttachmentParameteriv_p,
16225 target,
16226 attachment,
16227 pname,
16228 params,
16229 );
16230 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16231 {
16232 self.automatic_glGetError("glGetFramebufferAttachmentParameteriv");
16233 }
16234 out
16235 }
16236 #[doc(hidden)]
16237 pub unsafe fn GetFramebufferAttachmentParameteriv_load_with_dyn(
16238 &self,
16239 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16240 ) -> bool {
16241 load_dyn_name_atomic_ptr(
16242 get_proc_address,
16243 b"glGetFramebufferAttachmentParameteriv\0",
16244 &self.glGetFramebufferAttachmentParameteriv_p,
16245 )
16246 }
16247 #[inline]
16248 #[doc(hidden)]
16249 pub fn GetFramebufferAttachmentParameteriv_is_loaded(&self) -> bool {
16250 !self
16251 .glGetFramebufferAttachmentParameteriv_p
16252 .load(RELAX)
16253 .is_null()
16254 }
16255 #[cfg_attr(feature = "inline", inline)]
16260 #[cfg_attr(feature = "inline_always", inline(always))]
16261 pub unsafe fn GetFramebufferParameteriv(
16262 &self,
16263 target: GLenum,
16264 pname: GLenum,
16265 params: *mut GLint,
16266 ) {
16267 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16268 {
16269 trace!(
16270 "calling gl.GetFramebufferParameteriv({:#X}, {:#X}, {:p});",
16271 target,
16272 pname,
16273 params
16274 );
16275 }
16276 let out = call_atomic_ptr_3arg(
16277 "glGetFramebufferParameteriv",
16278 &self.glGetFramebufferParameteriv_p,
16279 target,
16280 pname,
16281 params,
16282 );
16283 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16284 {
16285 self.automatic_glGetError("glGetFramebufferParameteriv");
16286 }
16287 out
16288 }
16289 #[doc(hidden)]
16290 pub unsafe fn GetFramebufferParameteriv_load_with_dyn(
16291 &self,
16292 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16293 ) -> bool {
16294 load_dyn_name_atomic_ptr(
16295 get_proc_address,
16296 b"glGetFramebufferParameteriv\0",
16297 &self.glGetFramebufferParameteriv_p,
16298 )
16299 }
16300 #[inline]
16301 #[doc(hidden)]
16302 pub fn GetFramebufferParameteriv_is_loaded(&self) -> bool {
16303 !self.glGetFramebufferParameteriv_p.load(RELAX).is_null()
16304 }
16305 #[cfg_attr(feature = "inline", inline)]
16308 #[cfg_attr(feature = "inline_always", inline(always))]
16309 pub unsafe fn GetGraphicsResetStatus(&self) -> GLenum {
16310 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16311 {
16312 trace!("calling gl.GetGraphicsResetStatus();",);
16313 }
16314 let out =
16315 call_atomic_ptr_0arg("glGetGraphicsResetStatus", &self.glGetGraphicsResetStatus_p);
16316 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16317 {
16318 self.automatic_glGetError("glGetGraphicsResetStatus");
16319 }
16320 out
16321 }
16322 #[doc(hidden)]
16323 pub unsafe fn GetGraphicsResetStatus_load_with_dyn(
16324 &self,
16325 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16326 ) -> bool {
16327 load_dyn_name_atomic_ptr(
16328 get_proc_address,
16329 b"glGetGraphicsResetStatus\0",
16330 &self.glGetGraphicsResetStatus_p,
16331 )
16332 }
16333 #[inline]
16334 #[doc(hidden)]
16335 pub fn GetGraphicsResetStatus_is_loaded(&self) -> bool {
16336 !self.glGetGraphicsResetStatus_p.load(RELAX).is_null()
16337 }
16338 #[cfg_attr(feature = "inline", inline)]
16342 #[cfg_attr(feature = "inline_always", inline(always))]
16343 pub unsafe fn GetInteger64i_v(&self, target: GLenum, index: GLuint, data: *mut GLint64) {
16344 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16345 {
16346 trace!(
16347 "calling gl.GetInteger64i_v({:#X}, {:?}, {:p});",
16348 target,
16349 index,
16350 data
16351 );
16352 }
16353 let out = call_atomic_ptr_3arg(
16354 "glGetInteger64i_v",
16355 &self.glGetInteger64i_v_p,
16356 target,
16357 index,
16358 data,
16359 );
16360 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16361 {
16362 self.automatic_glGetError("glGetInteger64i_v");
16363 }
16364 out
16365 }
16366 #[doc(hidden)]
16367 pub unsafe fn GetInteger64i_v_load_with_dyn(
16368 &self,
16369 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16370 ) -> bool {
16371 load_dyn_name_atomic_ptr(
16372 get_proc_address,
16373 b"glGetInteger64i_v\0",
16374 &self.glGetInteger64i_v_p,
16375 )
16376 }
16377 #[inline]
16378 #[doc(hidden)]
16379 pub fn GetInteger64i_v_is_loaded(&self) -> bool {
16380 !self.glGetInteger64i_v_p.load(RELAX).is_null()
16381 }
16382 #[cfg_attr(feature = "inline", inline)]
16386 #[cfg_attr(feature = "inline_always", inline(always))]
16387 pub unsafe fn GetInteger64v(&self, pname: GLenum, data: *mut GLint64) {
16388 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16389 {
16390 trace!("calling gl.GetInteger64v({:#X}, {:p});", pname, data);
16391 }
16392 let out = call_atomic_ptr_2arg("glGetInteger64v", &self.glGetInteger64v_p, pname, data);
16393 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16394 {
16395 self.automatic_glGetError("glGetInteger64v");
16396 }
16397 out
16398 }
16399 #[doc(hidden)]
16400 pub unsafe fn GetInteger64v_load_with_dyn(
16401 &self,
16402 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16403 ) -> bool {
16404 load_dyn_name_atomic_ptr(
16405 get_proc_address,
16406 b"glGetInteger64v\0",
16407 &self.glGetInteger64v_p,
16408 )
16409 }
16410 #[inline]
16411 #[doc(hidden)]
16412 pub fn GetInteger64v_is_loaded(&self) -> bool {
16413 !self.glGetInteger64v_p.load(RELAX).is_null()
16414 }
16415 #[cfg_attr(feature = "inline", inline)]
16420 #[cfg_attr(feature = "inline_always", inline(always))]
16421 pub unsafe fn GetInteger64vEXT(&self, pname: GLenum, data: *mut GLint64) {
16422 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16423 {
16424 trace!("calling gl.GetInteger64vEXT({:#X}, {:p});", pname, data);
16425 }
16426 let out = call_atomic_ptr_2arg(
16427 "glGetInteger64vEXT",
16428 &self.glGetInteger64vEXT_p,
16429 pname,
16430 data,
16431 );
16432 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16433 {
16434 self.automatic_glGetError("glGetInteger64vEXT");
16435 }
16436 out
16437 }
16438 #[doc(hidden)]
16439 pub unsafe fn GetInteger64vEXT_load_with_dyn(
16440 &self,
16441 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16442 ) -> bool {
16443 load_dyn_name_atomic_ptr(
16444 get_proc_address,
16445 b"glGetInteger64vEXT\0",
16446 &self.glGetInteger64vEXT_p,
16447 )
16448 }
16449 #[inline]
16450 #[doc(hidden)]
16451 pub fn GetInteger64vEXT_is_loaded(&self) -> bool {
16452 !self.glGetInteger64vEXT_p.load(RELAX).is_null()
16453 }
16454 #[cfg_attr(feature = "inline", inline)]
16459 #[cfg_attr(feature = "inline_always", inline(always))]
16460 pub unsafe fn GetIntegerIndexedvEXT(
16461 &self,
16462 target: GLenum,
16463 index: GLuint,
16464 data: *mut GLint,
16465 ) {
16466 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16467 {
16468 trace!(
16469 "calling gl.GetIntegerIndexedvEXT({:#X}, {:?}, {:p});",
16470 target,
16471 index,
16472 data
16473 );
16474 }
16475 let out = call_atomic_ptr_3arg(
16476 "glGetIntegerIndexedvEXT",
16477 &self.glGetIntegerIndexedvEXT_p,
16478 target,
16479 index,
16480 data,
16481 );
16482 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16483 {
16484 self.automatic_glGetError("glGetIntegerIndexedvEXT");
16485 }
16486 out
16487 }
16488 #[doc(hidden)]
16489 pub unsafe fn GetIntegerIndexedvEXT_load_with_dyn(
16490 &self,
16491 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16492 ) -> bool {
16493 load_dyn_name_atomic_ptr(
16494 get_proc_address,
16495 b"glGetIntegerIndexedvEXT\0",
16496 &self.glGetIntegerIndexedvEXT_p,
16497 )
16498 }
16499 #[inline]
16500 #[doc(hidden)]
16501 pub fn GetIntegerIndexedvEXT_is_loaded(&self) -> bool {
16502 !self.glGetIntegerIndexedvEXT_p.load(RELAX).is_null()
16503 }
16504 #[cfg_attr(feature = "inline", inline)]
16508 #[cfg_attr(feature = "inline_always", inline(always))]
16509 pub unsafe fn GetIntegeri_v(&self, target: GLenum, index: GLuint, data: *mut GLint) {
16510 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16511 {
16512 trace!(
16513 "calling gl.GetIntegeri_v({:#X}, {:?}, {:p});",
16514 target,
16515 index,
16516 data
16517 );
16518 }
16519 let out = call_atomic_ptr_3arg(
16520 "glGetIntegeri_v",
16521 &self.glGetIntegeri_v_p,
16522 target,
16523 index,
16524 data,
16525 );
16526 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16527 {
16528 self.automatic_glGetError("glGetIntegeri_v");
16529 }
16530 out
16531 }
16532 #[doc(hidden)]
16533 pub unsafe fn GetIntegeri_v_load_with_dyn(
16534 &self,
16535 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16536 ) -> bool {
16537 load_dyn_name_atomic_ptr(
16538 get_proc_address,
16539 b"glGetIntegeri_v\0",
16540 &self.glGetIntegeri_v_p,
16541 )
16542 }
16543 #[inline]
16544 #[doc(hidden)]
16545 pub fn GetIntegeri_v_is_loaded(&self) -> bool {
16546 !self.glGetIntegeri_v_p.load(RELAX).is_null()
16547 }
16548 #[cfg_attr(feature = "inline", inline)]
16552 #[cfg_attr(feature = "inline_always", inline(always))]
16553 pub unsafe fn GetIntegerv(&self, pname: GLenum, data: *mut GLint) {
16554 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16555 {
16556 trace!("calling gl.GetIntegerv({:#X}, {:p});", pname, data);
16557 }
16558 let out = call_atomic_ptr_2arg("glGetIntegerv", &self.glGetIntegerv_p, pname, data);
16559 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16560 {
16561 self.automatic_glGetError("glGetIntegerv");
16562 }
16563 out
16564 }
16565 #[doc(hidden)]
16566 pub unsafe fn GetIntegerv_load_with_dyn(
16567 &self,
16568 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16569 ) -> bool {
16570 load_dyn_name_atomic_ptr(get_proc_address, b"glGetIntegerv\0", &self.glGetIntegerv_p)
16571 }
16572 #[inline]
16573 #[doc(hidden)]
16574 pub fn GetIntegerv_is_loaded(&self) -> bool {
16575 !self.glGetIntegerv_p.load(RELAX).is_null()
16576 }
16577 #[cfg_attr(feature = "inline", inline)]
16583 #[cfg_attr(feature = "inline_always", inline(always))]
16584 pub unsafe fn GetInternalformati64v(
16585 &self,
16586 target: GLenum,
16587 internalformat: GLenum,
16588 pname: GLenum,
16589 count: GLsizei,
16590 params: *mut GLint64,
16591 ) {
16592 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16593 {
16594 trace!(
16595 "calling gl.GetInternalformati64v({:#X}, {:#X}, {:#X}, {:?}, {:p});",
16596 target,
16597 internalformat,
16598 pname,
16599 count,
16600 params
16601 );
16602 }
16603 let out = call_atomic_ptr_5arg(
16604 "glGetInternalformati64v",
16605 &self.glGetInternalformati64v_p,
16606 target,
16607 internalformat,
16608 pname,
16609 count,
16610 params,
16611 );
16612 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16613 {
16614 self.automatic_glGetError("glGetInternalformati64v");
16615 }
16616 out
16617 }
16618 #[doc(hidden)]
16619 pub unsafe fn GetInternalformati64v_load_with_dyn(
16620 &self,
16621 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16622 ) -> bool {
16623 load_dyn_name_atomic_ptr(
16624 get_proc_address,
16625 b"glGetInternalformati64v\0",
16626 &self.glGetInternalformati64v_p,
16627 )
16628 }
16629 #[inline]
16630 #[doc(hidden)]
16631 pub fn GetInternalformati64v_is_loaded(&self) -> bool {
16632 !self.glGetInternalformati64v_p.load(RELAX).is_null()
16633 }
16634 #[cfg_attr(feature = "inline", inline)]
16640 #[cfg_attr(feature = "inline_always", inline(always))]
16641 pub unsafe fn GetInternalformativ(
16642 &self,
16643 target: GLenum,
16644 internalformat: GLenum,
16645 pname: GLenum,
16646 count: GLsizei,
16647 params: *mut GLint,
16648 ) {
16649 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16650 {
16651 trace!(
16652 "calling gl.GetInternalformativ({:#X}, {:#X}, {:#X}, {:?}, {:p});",
16653 target,
16654 internalformat,
16655 pname,
16656 count,
16657 params
16658 );
16659 }
16660 let out = call_atomic_ptr_5arg(
16661 "glGetInternalformativ",
16662 &self.glGetInternalformativ_p,
16663 target,
16664 internalformat,
16665 pname,
16666 count,
16667 params,
16668 );
16669 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16670 {
16671 self.automatic_glGetError("glGetInternalformativ");
16672 }
16673 out
16674 }
16675 #[doc(hidden)]
16676 pub unsafe fn GetInternalformativ_load_with_dyn(
16677 &self,
16678 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16679 ) -> bool {
16680 load_dyn_name_atomic_ptr(
16681 get_proc_address,
16682 b"glGetInternalformativ\0",
16683 &self.glGetInternalformativ_p,
16684 )
16685 }
16686 #[inline]
16687 #[doc(hidden)]
16688 pub fn GetInternalformativ_is_loaded(&self) -> bool {
16689 !self.glGetInternalformativ_p.load(RELAX).is_null()
16690 }
16691 #[cfg_attr(feature = "inline", inline)]
16695 #[cfg_attr(feature = "inline_always", inline(always))]
16696 pub unsafe fn GetMultisamplefv(&self, pname: GLenum, index: GLuint, val: *mut GLfloat) {
16697 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16698 {
16699 trace!(
16700 "calling gl.GetMultisamplefv({:#X}, {:?}, {:p});",
16701 pname,
16702 index,
16703 val
16704 );
16705 }
16706 let out = call_atomic_ptr_3arg(
16707 "glGetMultisamplefv",
16708 &self.glGetMultisamplefv_p,
16709 pname,
16710 index,
16711 val,
16712 );
16713 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16714 {
16715 self.automatic_glGetError("glGetMultisamplefv");
16716 }
16717 out
16718 }
16719 #[doc(hidden)]
16720 pub unsafe fn GetMultisamplefv_load_with_dyn(
16721 &self,
16722 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16723 ) -> bool {
16724 load_dyn_name_atomic_ptr(
16725 get_proc_address,
16726 b"glGetMultisamplefv\0",
16727 &self.glGetMultisamplefv_p,
16728 )
16729 }
16730 #[inline]
16731 #[doc(hidden)]
16732 pub fn GetMultisamplefv_is_loaded(&self) -> bool {
16733 !self.glGetMultisamplefv_p.load(RELAX).is_null()
16734 }
16735 #[cfg_attr(feature = "inline", inline)]
16738 #[cfg_attr(feature = "inline_always", inline(always))]
16739 pub unsafe fn GetNamedBufferParameteri64v(
16740 &self,
16741 buffer: GLuint,
16742 pname: GLenum,
16743 params: *mut GLint64,
16744 ) {
16745 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16746 {
16747 trace!(
16748 "calling gl.GetNamedBufferParameteri64v({:?}, {:#X}, {:p});",
16749 buffer,
16750 pname,
16751 params
16752 );
16753 }
16754 let out = call_atomic_ptr_3arg(
16755 "glGetNamedBufferParameteri64v",
16756 &self.glGetNamedBufferParameteri64v_p,
16757 buffer,
16758 pname,
16759 params,
16760 );
16761 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16762 {
16763 self.automatic_glGetError("glGetNamedBufferParameteri64v");
16764 }
16765 out
16766 }
16767 #[doc(hidden)]
16768 pub unsafe fn GetNamedBufferParameteri64v_load_with_dyn(
16769 &self,
16770 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16771 ) -> bool {
16772 load_dyn_name_atomic_ptr(
16773 get_proc_address,
16774 b"glGetNamedBufferParameteri64v\0",
16775 &self.glGetNamedBufferParameteri64v_p,
16776 )
16777 }
16778 #[inline]
16779 #[doc(hidden)]
16780 pub fn GetNamedBufferParameteri64v_is_loaded(&self) -> bool {
16781 !self.glGetNamedBufferParameteri64v_p.load(RELAX).is_null()
16782 }
16783 #[cfg_attr(feature = "inline", inline)]
16786 #[cfg_attr(feature = "inline_always", inline(always))]
16787 pub unsafe fn GetNamedBufferParameteriv(
16788 &self,
16789 buffer: GLuint,
16790 pname: GLenum,
16791 params: *mut GLint,
16792 ) {
16793 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16794 {
16795 trace!(
16796 "calling gl.GetNamedBufferParameteriv({:?}, {:#X}, {:p});",
16797 buffer,
16798 pname,
16799 params
16800 );
16801 }
16802 let out = call_atomic_ptr_3arg(
16803 "glGetNamedBufferParameteriv",
16804 &self.glGetNamedBufferParameteriv_p,
16805 buffer,
16806 pname,
16807 params,
16808 );
16809 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16810 {
16811 self.automatic_glGetError("glGetNamedBufferParameteriv");
16812 }
16813 out
16814 }
16815 #[doc(hidden)]
16816 pub unsafe fn GetNamedBufferParameteriv_load_with_dyn(
16817 &self,
16818 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16819 ) -> bool {
16820 load_dyn_name_atomic_ptr(
16821 get_proc_address,
16822 b"glGetNamedBufferParameteriv\0",
16823 &self.glGetNamedBufferParameteriv_p,
16824 )
16825 }
16826 #[inline]
16827 #[doc(hidden)]
16828 pub fn GetNamedBufferParameteriv_is_loaded(&self) -> bool {
16829 !self.glGetNamedBufferParameteriv_p.load(RELAX).is_null()
16830 }
16831 #[cfg_attr(feature = "inline", inline)]
16834 #[cfg_attr(feature = "inline_always", inline(always))]
16835 pub unsafe fn GetNamedBufferPointerv(
16836 &self,
16837 buffer: GLuint,
16838 pname: GLenum,
16839 params: *mut *mut c_void,
16840 ) {
16841 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16842 {
16843 trace!(
16844 "calling gl.GetNamedBufferPointerv({:?}, {:#X}, {:p});",
16845 buffer,
16846 pname,
16847 params
16848 );
16849 }
16850 let out = call_atomic_ptr_3arg(
16851 "glGetNamedBufferPointerv",
16852 &self.glGetNamedBufferPointerv_p,
16853 buffer,
16854 pname,
16855 params,
16856 );
16857 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16858 {
16859 self.automatic_glGetError("glGetNamedBufferPointerv");
16860 }
16861 out
16862 }
16863 #[doc(hidden)]
16864 pub unsafe fn GetNamedBufferPointerv_load_with_dyn(
16865 &self,
16866 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16867 ) -> bool {
16868 load_dyn_name_atomic_ptr(
16869 get_proc_address,
16870 b"glGetNamedBufferPointerv\0",
16871 &self.glGetNamedBufferPointerv_p,
16872 )
16873 }
16874 #[inline]
16875 #[doc(hidden)]
16876 pub fn GetNamedBufferPointerv_is_loaded(&self) -> bool {
16877 !self.glGetNamedBufferPointerv_p.load(RELAX).is_null()
16878 }
16879 #[cfg_attr(feature = "inline", inline)]
16882 #[cfg_attr(feature = "inline_always", inline(always))]
16883 pub unsafe fn GetNamedBufferSubData(
16884 &self,
16885 buffer: GLuint,
16886 offset: GLintptr,
16887 size: GLsizeiptr,
16888 data: *mut c_void,
16889 ) {
16890 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16891 {
16892 trace!(
16893 "calling gl.GetNamedBufferSubData({:?}, {:?}, {:?}, {:p});",
16894 buffer,
16895 offset,
16896 size,
16897 data
16898 );
16899 }
16900 let out = call_atomic_ptr_4arg(
16901 "glGetNamedBufferSubData",
16902 &self.glGetNamedBufferSubData_p,
16903 buffer,
16904 offset,
16905 size,
16906 data,
16907 );
16908 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16909 {
16910 self.automatic_glGetError("glGetNamedBufferSubData");
16911 }
16912 out
16913 }
16914 #[doc(hidden)]
16915 pub unsafe fn GetNamedBufferSubData_load_with_dyn(
16916 &self,
16917 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16918 ) -> bool {
16919 load_dyn_name_atomic_ptr(
16920 get_proc_address,
16921 b"glGetNamedBufferSubData\0",
16922 &self.glGetNamedBufferSubData_p,
16923 )
16924 }
16925 #[inline]
16926 #[doc(hidden)]
16927 pub fn GetNamedBufferSubData_is_loaded(&self) -> bool {
16928 !self.glGetNamedBufferSubData_p.load(RELAX).is_null()
16929 }
16930 #[cfg_attr(feature = "inline", inline)]
16934 #[cfg_attr(feature = "inline_always", inline(always))]
16935 pub unsafe fn GetNamedFramebufferAttachmentParameteriv(
16936 &self,
16937 framebuffer: GLuint,
16938 attachment: GLenum,
16939 pname: GLenum,
16940 params: *mut GLint,
16941 ) {
16942 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16943 {
16944 trace!("calling gl.GetNamedFramebufferAttachmentParameteriv({:?}, {:#X}, {:#X}, {:p});", framebuffer, attachment, pname, params);
16945 }
16946 let out = call_atomic_ptr_4arg(
16947 "glGetNamedFramebufferAttachmentParameteriv",
16948 &self.glGetNamedFramebufferAttachmentParameteriv_p,
16949 framebuffer,
16950 attachment,
16951 pname,
16952 params,
16953 );
16954 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16955 {
16956 self.automatic_glGetError("glGetNamedFramebufferAttachmentParameteriv");
16957 }
16958 out
16959 }
16960 #[doc(hidden)]
16961 pub unsafe fn GetNamedFramebufferAttachmentParameteriv_load_with_dyn(
16962 &self,
16963 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16964 ) -> bool {
16965 load_dyn_name_atomic_ptr(
16966 get_proc_address,
16967 b"glGetNamedFramebufferAttachmentParameteriv\0",
16968 &self.glGetNamedFramebufferAttachmentParameteriv_p,
16969 )
16970 }
16971 #[inline]
16972 #[doc(hidden)]
16973 pub fn GetNamedFramebufferAttachmentParameteriv_is_loaded(&self) -> bool {
16974 !self
16975 .glGetNamedFramebufferAttachmentParameteriv_p
16976 .load(RELAX)
16977 .is_null()
16978 }
16979 #[cfg_attr(feature = "inline", inline)]
16982 #[cfg_attr(feature = "inline_always", inline(always))]
16983 pub unsafe fn GetNamedFramebufferParameteriv(
16984 &self,
16985 framebuffer: GLuint,
16986 pname: GLenum,
16987 param: *mut GLint,
16988 ) {
16989 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16990 {
16991 trace!(
16992 "calling gl.GetNamedFramebufferParameteriv({:?}, {:#X}, {:p});",
16993 framebuffer,
16994 pname,
16995 param
16996 );
16997 }
16998 let out = call_atomic_ptr_3arg(
16999 "glGetNamedFramebufferParameteriv",
17000 &self.glGetNamedFramebufferParameteriv_p,
17001 framebuffer,
17002 pname,
17003 param,
17004 );
17005 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17006 {
17007 self.automatic_glGetError("glGetNamedFramebufferParameteriv");
17008 }
17009 out
17010 }
17011 #[doc(hidden)]
17012 pub unsafe fn GetNamedFramebufferParameteriv_load_with_dyn(
17013 &self,
17014 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17015 ) -> bool {
17016 load_dyn_name_atomic_ptr(
17017 get_proc_address,
17018 b"glGetNamedFramebufferParameteriv\0",
17019 &self.glGetNamedFramebufferParameteriv_p,
17020 )
17021 }
17022 #[inline]
17023 #[doc(hidden)]
17024 pub fn GetNamedFramebufferParameteriv_is_loaded(&self) -> bool {
17025 !self
17026 .glGetNamedFramebufferParameteriv_p
17027 .load(RELAX)
17028 .is_null()
17029 }
17030 #[cfg_attr(feature = "inline", inline)]
17033 #[cfg_attr(feature = "inline_always", inline(always))]
17034 pub unsafe fn GetNamedRenderbufferParameteriv(
17035 &self,
17036 renderbuffer: GLuint,
17037 pname: GLenum,
17038 params: *mut GLint,
17039 ) {
17040 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17041 {
17042 trace!(
17043 "calling gl.GetNamedRenderbufferParameteriv({:?}, {:#X}, {:p});",
17044 renderbuffer,
17045 pname,
17046 params
17047 );
17048 }
17049 let out = call_atomic_ptr_3arg(
17050 "glGetNamedRenderbufferParameteriv",
17051 &self.glGetNamedRenderbufferParameteriv_p,
17052 renderbuffer,
17053 pname,
17054 params,
17055 );
17056 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17057 {
17058 self.automatic_glGetError("glGetNamedRenderbufferParameteriv");
17059 }
17060 out
17061 }
17062 #[doc(hidden)]
17063 pub unsafe fn GetNamedRenderbufferParameteriv_load_with_dyn(
17064 &self,
17065 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17066 ) -> bool {
17067 load_dyn_name_atomic_ptr(
17068 get_proc_address,
17069 b"glGetNamedRenderbufferParameteriv\0",
17070 &self.glGetNamedRenderbufferParameteriv_p,
17071 )
17072 }
17073 #[inline]
17074 #[doc(hidden)]
17075 pub fn GetNamedRenderbufferParameteriv_is_loaded(&self) -> bool {
17076 !self
17077 .glGetNamedRenderbufferParameteriv_p
17078 .load(RELAX)
17079 .is_null()
17080 }
17081 #[cfg_attr(feature = "inline", inline)]
17086 #[cfg_attr(feature = "inline_always", inline(always))]
17087 pub unsafe fn GetObjectLabel(
17088 &self,
17089 identifier: GLenum,
17090 name: GLuint,
17091 bufSize: GLsizei,
17092 length: *mut GLsizei,
17093 label: *mut GLchar,
17094 ) {
17095 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17096 {
17097 trace!(
17098 "calling gl.GetObjectLabel({:#X}, {:?}, {:?}, {:p}, {:p});",
17099 identifier,
17100 name,
17101 bufSize,
17102 length,
17103 label
17104 );
17105 }
17106 let out = call_atomic_ptr_5arg(
17107 "glGetObjectLabel",
17108 &self.glGetObjectLabel_p,
17109 identifier,
17110 name,
17111 bufSize,
17112 length,
17113 label,
17114 );
17115 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17116 {
17117 self.automatic_glGetError("glGetObjectLabel");
17118 }
17119 out
17120 }
17121 #[doc(hidden)]
17122 pub unsafe fn GetObjectLabel_load_with_dyn(
17123 &self,
17124 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17125 ) -> bool {
17126 load_dyn_name_atomic_ptr(
17127 get_proc_address,
17128 b"glGetObjectLabel\0",
17129 &self.glGetObjectLabel_p,
17130 )
17131 }
17132 #[inline]
17133 #[doc(hidden)]
17134 pub fn GetObjectLabel_is_loaded(&self) -> bool {
17135 !self.glGetObjectLabel_p.load(RELAX).is_null()
17136 }
17137 #[cfg_attr(feature = "inline", inline)]
17141 #[cfg_attr(feature = "inline_always", inline(always))]
17142 pub unsafe fn GetObjectLabelKHR(
17143 &self,
17144 identifier: GLenum,
17145 name: GLuint,
17146 bufSize: GLsizei,
17147 length: *mut GLsizei,
17148 label: *mut GLchar,
17149 ) {
17150 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17151 {
17152 trace!(
17153 "calling gl.GetObjectLabelKHR({:#X}, {:?}, {:?}, {:p}, {:p});",
17154 identifier,
17155 name,
17156 bufSize,
17157 length,
17158 label
17159 );
17160 }
17161 let out = call_atomic_ptr_5arg(
17162 "glGetObjectLabelKHR",
17163 &self.glGetObjectLabelKHR_p,
17164 identifier,
17165 name,
17166 bufSize,
17167 length,
17168 label,
17169 );
17170 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17171 {
17172 self.automatic_glGetError("glGetObjectLabelKHR");
17173 }
17174 out
17175 }
17176 #[doc(hidden)]
17177 pub unsafe fn GetObjectLabelKHR_load_with_dyn(
17178 &self,
17179 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17180 ) -> bool {
17181 load_dyn_name_atomic_ptr(
17182 get_proc_address,
17183 b"glGetObjectLabelKHR\0",
17184 &self.glGetObjectLabelKHR_p,
17185 )
17186 }
17187 #[inline]
17188 #[doc(hidden)]
17189 pub fn GetObjectLabelKHR_is_loaded(&self) -> bool {
17190 !self.glGetObjectLabelKHR_p.load(RELAX).is_null()
17191 }
17192 #[cfg_attr(feature = "inline", inline)]
17196 #[cfg_attr(feature = "inline_always", inline(always))]
17197 pub unsafe fn GetObjectPtrLabel(
17198 &self,
17199 ptr: *const c_void,
17200 bufSize: GLsizei,
17201 length: *mut GLsizei,
17202 label: *mut GLchar,
17203 ) {
17204 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17205 {
17206 trace!(
17207 "calling gl.GetObjectPtrLabel({:p}, {:?}, {:p}, {:p});",
17208 ptr,
17209 bufSize,
17210 length,
17211 label
17212 );
17213 }
17214 let out = call_atomic_ptr_4arg(
17215 "glGetObjectPtrLabel",
17216 &self.glGetObjectPtrLabel_p,
17217 ptr,
17218 bufSize,
17219 length,
17220 label,
17221 );
17222 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17223 {
17224 self.automatic_glGetError("glGetObjectPtrLabel");
17225 }
17226 out
17227 }
17228 #[doc(hidden)]
17229 pub unsafe fn GetObjectPtrLabel_load_with_dyn(
17230 &self,
17231 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17232 ) -> bool {
17233 load_dyn_name_atomic_ptr(
17234 get_proc_address,
17235 b"glGetObjectPtrLabel\0",
17236 &self.glGetObjectPtrLabel_p,
17237 )
17238 }
17239 #[inline]
17240 #[doc(hidden)]
17241 pub fn GetObjectPtrLabel_is_loaded(&self) -> bool {
17242 !self.glGetObjectPtrLabel_p.load(RELAX).is_null()
17243 }
17244 #[cfg_attr(feature = "inline", inline)]
17249 #[cfg_attr(feature = "inline_always", inline(always))]
17250 pub unsafe fn GetObjectPtrLabelKHR(
17251 &self,
17252 ptr: *const c_void,
17253 bufSize: GLsizei,
17254 length: *mut GLsizei,
17255 label: *mut GLchar,
17256 ) {
17257 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17258 {
17259 trace!(
17260 "calling gl.GetObjectPtrLabelKHR({:p}, {:?}, {:p}, {:p});",
17261 ptr,
17262 bufSize,
17263 length,
17264 label
17265 );
17266 }
17267 let out = call_atomic_ptr_4arg(
17268 "glGetObjectPtrLabelKHR",
17269 &self.glGetObjectPtrLabelKHR_p,
17270 ptr,
17271 bufSize,
17272 length,
17273 label,
17274 );
17275 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17276 {
17277 self.automatic_glGetError("glGetObjectPtrLabelKHR");
17278 }
17279 out
17280 }
17281 #[doc(hidden)]
17282 pub unsafe fn GetObjectPtrLabelKHR_load_with_dyn(
17283 &self,
17284 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17285 ) -> bool {
17286 load_dyn_name_atomic_ptr(
17287 get_proc_address,
17288 b"glGetObjectPtrLabelKHR\0",
17289 &self.glGetObjectPtrLabelKHR_p,
17290 )
17291 }
17292 #[inline]
17293 #[doc(hidden)]
17294 pub fn GetObjectPtrLabelKHR_is_loaded(&self) -> bool {
17295 !self.glGetObjectPtrLabelKHR_p.load(RELAX).is_null()
17296 }
17297 #[cfg_attr(feature = "inline", inline)]
17301 #[cfg_attr(feature = "inline_always", inline(always))]
17302 pub unsafe fn GetPointerv(&self, pname: GLenum, params: *mut *mut c_void) {
17303 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17304 {
17305 trace!("calling gl.GetPointerv({:#X}, {:p});", pname, params);
17306 }
17307 let out = call_atomic_ptr_2arg("glGetPointerv", &self.glGetPointerv_p, pname, params);
17308 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17309 {
17310 self.automatic_glGetError("glGetPointerv");
17311 }
17312 out
17313 }
17314 #[doc(hidden)]
17315 pub unsafe fn GetPointerv_load_with_dyn(
17316 &self,
17317 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17318 ) -> bool {
17319 load_dyn_name_atomic_ptr(get_proc_address, b"glGetPointerv\0", &self.glGetPointerv_p)
17320 }
17321 #[inline]
17322 #[doc(hidden)]
17323 pub fn GetPointerv_is_loaded(&self) -> bool {
17324 !self.glGetPointerv_p.load(RELAX).is_null()
17325 }
17326 #[cfg_attr(feature = "inline", inline)]
17329 #[cfg_attr(feature = "inline_always", inline(always))]
17330 pub unsafe fn GetPointervKHR(&self, pname: GLenum, params: *mut *mut c_void) {
17331 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17332 {
17333 trace!("calling gl.GetPointervKHR({:#X}, {:p});", pname, params);
17334 }
17335 let out =
17336 call_atomic_ptr_2arg("glGetPointervKHR", &self.glGetPointervKHR_p, pname, params);
17337 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17338 {
17339 self.automatic_glGetError("glGetPointervKHR");
17340 }
17341 out
17342 }
17343 #[doc(hidden)]
17344 pub unsafe fn GetPointervKHR_load_with_dyn(
17345 &self,
17346 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17347 ) -> bool {
17348 load_dyn_name_atomic_ptr(
17349 get_proc_address,
17350 b"glGetPointervKHR\0",
17351 &self.glGetPointervKHR_p,
17352 )
17353 }
17354 #[inline]
17355 #[doc(hidden)]
17356 pub fn GetPointervKHR_is_loaded(&self) -> bool {
17357 !self.glGetPointervKHR_p.load(RELAX).is_null()
17358 }
17359 #[cfg_attr(feature = "inline", inline)]
17364 #[cfg_attr(feature = "inline_always", inline(always))]
17365 pub unsafe fn GetProgramBinary(
17366 &self,
17367 program: GLuint,
17368 bufSize: GLsizei,
17369 length: *mut GLsizei,
17370 binaryFormat: *mut GLenum,
17371 binary: *mut c_void,
17372 ) {
17373 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17374 {
17375 trace!(
17376 "calling gl.GetProgramBinary({:?}, {:?}, {:p}, {:p}, {:p});",
17377 program,
17378 bufSize,
17379 length,
17380 binaryFormat,
17381 binary
17382 );
17383 }
17384 let out = call_atomic_ptr_5arg(
17385 "glGetProgramBinary",
17386 &self.glGetProgramBinary_p,
17387 program,
17388 bufSize,
17389 length,
17390 binaryFormat,
17391 binary,
17392 );
17393 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17394 {
17395 self.automatic_glGetError("glGetProgramBinary");
17396 }
17397 out
17398 }
17399 #[doc(hidden)]
17400 pub unsafe fn GetProgramBinary_load_with_dyn(
17401 &self,
17402 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17403 ) -> bool {
17404 load_dyn_name_atomic_ptr(
17405 get_proc_address,
17406 b"glGetProgramBinary\0",
17407 &self.glGetProgramBinary_p,
17408 )
17409 }
17410 #[inline]
17411 #[doc(hidden)]
17412 pub fn GetProgramBinary_is_loaded(&self) -> bool {
17413 !self.glGetProgramBinary_p.load(RELAX).is_null()
17414 }
17415 #[cfg_attr(feature = "inline", inline)]
17419 #[cfg_attr(feature = "inline_always", inline(always))]
17420 pub unsafe fn GetProgramInfoLog(
17421 &self,
17422 program: GLuint,
17423 bufSize: GLsizei,
17424 length: *mut GLsizei,
17425 infoLog: *mut GLchar,
17426 ) {
17427 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17428 {
17429 trace!(
17430 "calling gl.GetProgramInfoLog({:?}, {:?}, {:p}, {:p});",
17431 program,
17432 bufSize,
17433 length,
17434 infoLog
17435 );
17436 }
17437 let out = call_atomic_ptr_4arg(
17438 "glGetProgramInfoLog",
17439 &self.glGetProgramInfoLog_p,
17440 program,
17441 bufSize,
17442 length,
17443 infoLog,
17444 );
17445 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17446 {
17447 self.automatic_glGetError("glGetProgramInfoLog");
17448 }
17449 out
17450 }
17451 #[doc(hidden)]
17452 pub unsafe fn GetProgramInfoLog_load_with_dyn(
17453 &self,
17454 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17455 ) -> bool {
17456 load_dyn_name_atomic_ptr(
17457 get_proc_address,
17458 b"glGetProgramInfoLog\0",
17459 &self.glGetProgramInfoLog_p,
17460 )
17461 }
17462 #[inline]
17463 #[doc(hidden)]
17464 pub fn GetProgramInfoLog_is_loaded(&self) -> bool {
17465 !self.glGetProgramInfoLog_p.load(RELAX).is_null()
17466 }
17467 #[cfg_attr(feature = "inline", inline)]
17472 #[cfg_attr(feature = "inline_always", inline(always))]
17473 pub unsafe fn GetProgramInterfaceiv(
17474 &self,
17475 program: GLuint,
17476 programInterface: GLenum,
17477 pname: GLenum,
17478 params: *mut GLint,
17479 ) {
17480 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17481 {
17482 trace!(
17483 "calling gl.GetProgramInterfaceiv({:?}, {:#X}, {:#X}, {:p});",
17484 program,
17485 programInterface,
17486 pname,
17487 params
17488 );
17489 }
17490 let out = call_atomic_ptr_4arg(
17491 "glGetProgramInterfaceiv",
17492 &self.glGetProgramInterfaceiv_p,
17493 program,
17494 programInterface,
17495 pname,
17496 params,
17497 );
17498 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17499 {
17500 self.automatic_glGetError("glGetProgramInterfaceiv");
17501 }
17502 out
17503 }
17504 #[doc(hidden)]
17505 pub unsafe fn GetProgramInterfaceiv_load_with_dyn(
17506 &self,
17507 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17508 ) -> bool {
17509 load_dyn_name_atomic_ptr(
17510 get_proc_address,
17511 b"glGetProgramInterfaceiv\0",
17512 &self.glGetProgramInterfaceiv_p,
17513 )
17514 }
17515 #[inline]
17516 #[doc(hidden)]
17517 pub fn GetProgramInterfaceiv_is_loaded(&self) -> bool {
17518 !self.glGetProgramInterfaceiv_p.load(RELAX).is_null()
17519 }
17520 #[cfg_attr(feature = "inline", inline)]
17524 #[cfg_attr(feature = "inline_always", inline(always))]
17525 pub unsafe fn GetProgramPipelineInfoLog(
17526 &self,
17527 pipeline: GLuint,
17528 bufSize: GLsizei,
17529 length: *mut GLsizei,
17530 infoLog: *mut GLchar,
17531 ) {
17532 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17533 {
17534 trace!(
17535 "calling gl.GetProgramPipelineInfoLog({:?}, {:?}, {:p}, {:p});",
17536 pipeline,
17537 bufSize,
17538 length,
17539 infoLog
17540 );
17541 }
17542 let out = call_atomic_ptr_4arg(
17543 "glGetProgramPipelineInfoLog",
17544 &self.glGetProgramPipelineInfoLog_p,
17545 pipeline,
17546 bufSize,
17547 length,
17548 infoLog,
17549 );
17550 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17551 {
17552 self.automatic_glGetError("glGetProgramPipelineInfoLog");
17553 }
17554 out
17555 }
17556 #[doc(hidden)]
17557 pub unsafe fn GetProgramPipelineInfoLog_load_with_dyn(
17558 &self,
17559 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17560 ) -> bool {
17561 load_dyn_name_atomic_ptr(
17562 get_proc_address,
17563 b"glGetProgramPipelineInfoLog\0",
17564 &self.glGetProgramPipelineInfoLog_p,
17565 )
17566 }
17567 #[inline]
17568 #[doc(hidden)]
17569 pub fn GetProgramPipelineInfoLog_is_loaded(&self) -> bool {
17570 !self.glGetProgramPipelineInfoLog_p.load(RELAX).is_null()
17571 }
17572 #[cfg_attr(feature = "inline", inline)]
17576 #[cfg_attr(feature = "inline_always", inline(always))]
17577 pub unsafe fn GetProgramPipelineiv(
17578 &self,
17579 pipeline: GLuint,
17580 pname: GLenum,
17581 params: *mut GLint,
17582 ) {
17583 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17584 {
17585 trace!(
17586 "calling gl.GetProgramPipelineiv({:?}, {:#X}, {:p});",
17587 pipeline,
17588 pname,
17589 params
17590 );
17591 }
17592 let out = call_atomic_ptr_3arg(
17593 "glGetProgramPipelineiv",
17594 &self.glGetProgramPipelineiv_p,
17595 pipeline,
17596 pname,
17597 params,
17598 );
17599 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17600 {
17601 self.automatic_glGetError("glGetProgramPipelineiv");
17602 }
17603 out
17604 }
17605 #[doc(hidden)]
17606 pub unsafe fn GetProgramPipelineiv_load_with_dyn(
17607 &self,
17608 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17609 ) -> bool {
17610 load_dyn_name_atomic_ptr(
17611 get_proc_address,
17612 b"glGetProgramPipelineiv\0",
17613 &self.glGetProgramPipelineiv_p,
17614 )
17615 }
17616 #[inline]
17617 #[doc(hidden)]
17618 pub fn GetProgramPipelineiv_is_loaded(&self) -> bool {
17619 !self.glGetProgramPipelineiv_p.load(RELAX).is_null()
17620 }
17621 #[cfg_attr(feature = "inline", inline)]
17625 #[cfg_attr(feature = "inline_always", inline(always))]
17626 pub unsafe fn GetProgramResourceIndex(
17627 &self,
17628 program: GLuint,
17629 programInterface: GLenum,
17630 name: *const GLchar,
17631 ) -> GLuint {
17632 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17633 {
17634 trace!(
17635 "calling gl.GetProgramResourceIndex({:?}, {:#X}, {:p});",
17636 program,
17637 programInterface,
17638 name
17639 );
17640 }
17641 let out = call_atomic_ptr_3arg(
17642 "glGetProgramResourceIndex",
17643 &self.glGetProgramResourceIndex_p,
17644 program,
17645 programInterface,
17646 name,
17647 );
17648 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17649 {
17650 self.automatic_glGetError("glGetProgramResourceIndex");
17651 }
17652 out
17653 }
17654 #[doc(hidden)]
17655 pub unsafe fn GetProgramResourceIndex_load_with_dyn(
17656 &self,
17657 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17658 ) -> bool {
17659 load_dyn_name_atomic_ptr(
17660 get_proc_address,
17661 b"glGetProgramResourceIndex\0",
17662 &self.glGetProgramResourceIndex_p,
17663 )
17664 }
17665 #[inline]
17666 #[doc(hidden)]
17667 pub fn GetProgramResourceIndex_is_loaded(&self) -> bool {
17668 !self.glGetProgramResourceIndex_p.load(RELAX).is_null()
17669 }
17670 #[cfg_attr(feature = "inline", inline)]
17674 #[cfg_attr(feature = "inline_always", inline(always))]
17675 pub unsafe fn GetProgramResourceLocation(
17676 &self,
17677 program: GLuint,
17678 programInterface: GLenum,
17679 name: *const GLchar,
17680 ) -> GLint {
17681 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17682 {
17683 trace!(
17684 "calling gl.GetProgramResourceLocation({:?}, {:#X}, {:p});",
17685 program,
17686 programInterface,
17687 name
17688 );
17689 }
17690 let out = call_atomic_ptr_3arg(
17691 "glGetProgramResourceLocation",
17692 &self.glGetProgramResourceLocation_p,
17693 program,
17694 programInterface,
17695 name,
17696 );
17697 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17698 {
17699 self.automatic_glGetError("glGetProgramResourceLocation");
17700 }
17701 out
17702 }
17703 #[doc(hidden)]
17704 pub unsafe fn GetProgramResourceLocation_load_with_dyn(
17705 &self,
17706 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17707 ) -> bool {
17708 load_dyn_name_atomic_ptr(
17709 get_proc_address,
17710 b"glGetProgramResourceLocation\0",
17711 &self.glGetProgramResourceLocation_p,
17712 )
17713 }
17714 #[inline]
17715 #[doc(hidden)]
17716 pub fn GetProgramResourceLocation_is_loaded(&self) -> bool {
17717 !self.glGetProgramResourceLocation_p.load(RELAX).is_null()
17718 }
17719 #[cfg_attr(feature = "inline", inline)]
17723 #[cfg_attr(feature = "inline_always", inline(always))]
17724 pub unsafe fn GetProgramResourceLocationIndex(
17725 &self,
17726 program: GLuint,
17727 programInterface: GLenum,
17728 name: *const GLchar,
17729 ) -> GLint {
17730 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17731 {
17732 trace!(
17733 "calling gl.GetProgramResourceLocationIndex({:?}, {:#X}, {:p});",
17734 program,
17735 programInterface,
17736 name
17737 );
17738 }
17739 let out = call_atomic_ptr_3arg(
17740 "glGetProgramResourceLocationIndex",
17741 &self.glGetProgramResourceLocationIndex_p,
17742 program,
17743 programInterface,
17744 name,
17745 );
17746 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17747 {
17748 self.automatic_glGetError("glGetProgramResourceLocationIndex");
17749 }
17750 out
17751 }
17752 #[doc(hidden)]
17753 pub unsafe fn GetProgramResourceLocationIndex_load_with_dyn(
17754 &self,
17755 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17756 ) -> bool {
17757 load_dyn_name_atomic_ptr(
17758 get_proc_address,
17759 b"glGetProgramResourceLocationIndex\0",
17760 &self.glGetProgramResourceLocationIndex_p,
17761 )
17762 }
17763 #[inline]
17764 #[doc(hidden)]
17765 pub fn GetProgramResourceLocationIndex_is_loaded(&self) -> bool {
17766 !self
17767 .glGetProgramResourceLocationIndex_p
17768 .load(RELAX)
17769 .is_null()
17770 }
17771 #[cfg_attr(feature = "inline", inline)]
17776 #[cfg_attr(feature = "inline_always", inline(always))]
17777 pub unsafe fn GetProgramResourceName(
17778 &self,
17779 program: GLuint,
17780 programInterface: GLenum,
17781 index: GLuint,
17782 bufSize: GLsizei,
17783 length: *mut GLsizei,
17784 name: *mut GLchar,
17785 ) {
17786 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17787 {
17788 trace!(
17789 "calling gl.GetProgramResourceName({:?}, {:#X}, {:?}, {:?}, {:p}, {:p});",
17790 program,
17791 programInterface,
17792 index,
17793 bufSize,
17794 length,
17795 name
17796 );
17797 }
17798 let out = call_atomic_ptr_6arg(
17799 "glGetProgramResourceName",
17800 &self.glGetProgramResourceName_p,
17801 program,
17802 programInterface,
17803 index,
17804 bufSize,
17805 length,
17806 name,
17807 );
17808 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17809 {
17810 self.automatic_glGetError("glGetProgramResourceName");
17811 }
17812 out
17813 }
17814 #[doc(hidden)]
17815 pub unsafe fn GetProgramResourceName_load_with_dyn(
17816 &self,
17817 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17818 ) -> bool {
17819 load_dyn_name_atomic_ptr(
17820 get_proc_address,
17821 b"glGetProgramResourceName\0",
17822 &self.glGetProgramResourceName_p,
17823 )
17824 }
17825 #[inline]
17826 #[doc(hidden)]
17827 pub fn GetProgramResourceName_is_loaded(&self) -> bool {
17828 !self.glGetProgramResourceName_p.load(RELAX).is_null()
17829 }
17830 #[cfg_attr(feature = "inline", inline)]
17837 #[cfg_attr(feature = "inline_always", inline(always))]
17838 pub unsafe fn GetProgramResourceiv(
17839 &self,
17840 program: GLuint,
17841 programInterface: GLenum,
17842 index: GLuint,
17843 propCount: GLsizei,
17844 props: *const GLenum,
17845 count: GLsizei,
17846 length: *mut GLsizei,
17847 params: *mut GLint,
17848 ) {
17849 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17850 {
17851 trace!("calling gl.GetProgramResourceiv({:?}, {:#X}, {:?}, {:?}, {:p}, {:?}, {:p}, {:p});", program, programInterface, index, propCount, props, count, length, params);
17852 }
17853 let out = call_atomic_ptr_8arg(
17854 "glGetProgramResourceiv",
17855 &self.glGetProgramResourceiv_p,
17856 program,
17857 programInterface,
17858 index,
17859 propCount,
17860 props,
17861 count,
17862 length,
17863 params,
17864 );
17865 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17866 {
17867 self.automatic_glGetError("glGetProgramResourceiv");
17868 }
17869 out
17870 }
17871 #[doc(hidden)]
17872 pub unsafe fn GetProgramResourceiv_load_with_dyn(
17873 &self,
17874 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17875 ) -> bool {
17876 load_dyn_name_atomic_ptr(
17877 get_proc_address,
17878 b"glGetProgramResourceiv\0",
17879 &self.glGetProgramResourceiv_p,
17880 )
17881 }
17882 #[inline]
17883 #[doc(hidden)]
17884 pub fn GetProgramResourceiv_is_loaded(&self) -> bool {
17885 !self.glGetProgramResourceiv_p.load(RELAX).is_null()
17886 }
17887 #[cfg_attr(feature = "inline", inline)]
17892 #[cfg_attr(feature = "inline_always", inline(always))]
17893 pub unsafe fn GetProgramStageiv(
17894 &self,
17895 program: GLuint,
17896 shadertype: GLenum,
17897 pname: GLenum,
17898 values: *mut GLint,
17899 ) {
17900 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17901 {
17902 trace!(
17903 "calling gl.GetProgramStageiv({:?}, {:#X}, {:#X}, {:p});",
17904 program,
17905 shadertype,
17906 pname,
17907 values
17908 );
17909 }
17910 let out = call_atomic_ptr_4arg(
17911 "glGetProgramStageiv",
17912 &self.glGetProgramStageiv_p,
17913 program,
17914 shadertype,
17915 pname,
17916 values,
17917 );
17918 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17919 {
17920 self.automatic_glGetError("glGetProgramStageiv");
17921 }
17922 out
17923 }
17924 #[doc(hidden)]
17925 pub unsafe fn GetProgramStageiv_load_with_dyn(
17926 &self,
17927 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17928 ) -> bool {
17929 load_dyn_name_atomic_ptr(
17930 get_proc_address,
17931 b"glGetProgramStageiv\0",
17932 &self.glGetProgramStageiv_p,
17933 )
17934 }
17935 #[inline]
17936 #[doc(hidden)]
17937 pub fn GetProgramStageiv_is_loaded(&self) -> bool {
17938 !self.glGetProgramStageiv_p.load(RELAX).is_null()
17939 }
17940 #[cfg_attr(feature = "inline", inline)]
17944 #[cfg_attr(feature = "inline_always", inline(always))]
17945 pub unsafe fn GetProgramiv(&self, program: GLuint, pname: GLenum, params: *mut GLint) {
17946 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17947 {
17948 trace!(
17949 "calling gl.GetProgramiv({:?}, {:#X}, {:p});",
17950 program,
17951 pname,
17952 params
17953 );
17954 }
17955 let out = call_atomic_ptr_3arg(
17956 "glGetProgramiv",
17957 &self.glGetProgramiv_p,
17958 program,
17959 pname,
17960 params,
17961 );
17962 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17963 {
17964 self.automatic_glGetError("glGetProgramiv");
17965 }
17966 out
17967 }
17968 #[doc(hidden)]
17969 pub unsafe fn GetProgramiv_load_with_dyn(
17970 &self,
17971 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17972 ) -> bool {
17973 load_dyn_name_atomic_ptr(
17974 get_proc_address,
17975 b"glGetProgramiv\0",
17976 &self.glGetProgramiv_p,
17977 )
17978 }
17979 #[inline]
17980 #[doc(hidden)]
17981 pub fn GetProgramiv_is_loaded(&self) -> bool {
17982 !self.glGetProgramiv_p.load(RELAX).is_null()
17983 }
17984 #[cfg_attr(feature = "inline", inline)]
17987 #[cfg_attr(feature = "inline_always", inline(always))]
17988 pub unsafe fn GetQueryBufferObjecti64v(
17989 &self,
17990 id: GLuint,
17991 buffer: GLuint,
17992 pname: GLenum,
17993 offset: GLintptr,
17994 ) {
17995 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17996 {
17997 trace!(
17998 "calling gl.GetQueryBufferObjecti64v({:?}, {:?}, {:#X}, {:?});",
17999 id,
18000 buffer,
18001 pname,
18002 offset
18003 );
18004 }
18005 let out = call_atomic_ptr_4arg(
18006 "glGetQueryBufferObjecti64v",
18007 &self.glGetQueryBufferObjecti64v_p,
18008 id,
18009 buffer,
18010 pname,
18011 offset,
18012 );
18013 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18014 {
18015 self.automatic_glGetError("glGetQueryBufferObjecti64v");
18016 }
18017 out
18018 }
18019 #[doc(hidden)]
18020 pub unsafe fn GetQueryBufferObjecti64v_load_with_dyn(
18021 &self,
18022 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18023 ) -> bool {
18024 load_dyn_name_atomic_ptr(
18025 get_proc_address,
18026 b"glGetQueryBufferObjecti64v\0",
18027 &self.glGetQueryBufferObjecti64v_p,
18028 )
18029 }
18030 #[inline]
18031 #[doc(hidden)]
18032 pub fn GetQueryBufferObjecti64v_is_loaded(&self) -> bool {
18033 !self.glGetQueryBufferObjecti64v_p.load(RELAX).is_null()
18034 }
18035 #[cfg_attr(feature = "inline", inline)]
18038 #[cfg_attr(feature = "inline_always", inline(always))]
18039 pub unsafe fn GetQueryBufferObjectiv(
18040 &self,
18041 id: GLuint,
18042 buffer: GLuint,
18043 pname: GLenum,
18044 offset: GLintptr,
18045 ) {
18046 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18047 {
18048 trace!(
18049 "calling gl.GetQueryBufferObjectiv({:?}, {:?}, {:#X}, {:?});",
18050 id,
18051 buffer,
18052 pname,
18053 offset
18054 );
18055 }
18056 let out = call_atomic_ptr_4arg(
18057 "glGetQueryBufferObjectiv",
18058 &self.glGetQueryBufferObjectiv_p,
18059 id,
18060 buffer,
18061 pname,
18062 offset,
18063 );
18064 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18065 {
18066 self.automatic_glGetError("glGetQueryBufferObjectiv");
18067 }
18068 out
18069 }
18070 #[doc(hidden)]
18071 pub unsafe fn GetQueryBufferObjectiv_load_with_dyn(
18072 &self,
18073 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18074 ) -> bool {
18075 load_dyn_name_atomic_ptr(
18076 get_proc_address,
18077 b"glGetQueryBufferObjectiv\0",
18078 &self.glGetQueryBufferObjectiv_p,
18079 )
18080 }
18081 #[inline]
18082 #[doc(hidden)]
18083 pub fn GetQueryBufferObjectiv_is_loaded(&self) -> bool {
18084 !self.glGetQueryBufferObjectiv_p.load(RELAX).is_null()
18085 }
18086 #[cfg_attr(feature = "inline", inline)]
18089 #[cfg_attr(feature = "inline_always", inline(always))]
18090 pub unsafe fn GetQueryBufferObjectui64v(
18091 &self,
18092 id: GLuint,
18093 buffer: GLuint,
18094 pname: GLenum,
18095 offset: GLintptr,
18096 ) {
18097 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18098 {
18099 trace!(
18100 "calling gl.GetQueryBufferObjectui64v({:?}, {:?}, {:#X}, {:?});",
18101 id,
18102 buffer,
18103 pname,
18104 offset
18105 );
18106 }
18107 let out = call_atomic_ptr_4arg(
18108 "glGetQueryBufferObjectui64v",
18109 &self.glGetQueryBufferObjectui64v_p,
18110 id,
18111 buffer,
18112 pname,
18113 offset,
18114 );
18115 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18116 {
18117 self.automatic_glGetError("glGetQueryBufferObjectui64v");
18118 }
18119 out
18120 }
18121 #[doc(hidden)]
18122 pub unsafe fn GetQueryBufferObjectui64v_load_with_dyn(
18123 &self,
18124 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18125 ) -> bool {
18126 load_dyn_name_atomic_ptr(
18127 get_proc_address,
18128 b"glGetQueryBufferObjectui64v\0",
18129 &self.glGetQueryBufferObjectui64v_p,
18130 )
18131 }
18132 #[inline]
18133 #[doc(hidden)]
18134 pub fn GetQueryBufferObjectui64v_is_loaded(&self) -> bool {
18135 !self.glGetQueryBufferObjectui64v_p.load(RELAX).is_null()
18136 }
18137 #[cfg_attr(feature = "inline", inline)]
18140 #[cfg_attr(feature = "inline_always", inline(always))]
18141 pub unsafe fn GetQueryBufferObjectuiv(
18142 &self,
18143 id: GLuint,
18144 buffer: GLuint,
18145 pname: GLenum,
18146 offset: GLintptr,
18147 ) {
18148 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18149 {
18150 trace!(
18151 "calling gl.GetQueryBufferObjectuiv({:?}, {:?}, {:#X}, {:?});",
18152 id,
18153 buffer,
18154 pname,
18155 offset
18156 );
18157 }
18158 let out = call_atomic_ptr_4arg(
18159 "glGetQueryBufferObjectuiv",
18160 &self.glGetQueryBufferObjectuiv_p,
18161 id,
18162 buffer,
18163 pname,
18164 offset,
18165 );
18166 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18167 {
18168 self.automatic_glGetError("glGetQueryBufferObjectuiv");
18169 }
18170 out
18171 }
18172 #[doc(hidden)]
18173 pub unsafe fn GetQueryBufferObjectuiv_load_with_dyn(
18174 &self,
18175 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18176 ) -> bool {
18177 load_dyn_name_atomic_ptr(
18178 get_proc_address,
18179 b"glGetQueryBufferObjectuiv\0",
18180 &self.glGetQueryBufferObjectuiv_p,
18181 )
18182 }
18183 #[inline]
18184 #[doc(hidden)]
18185 pub fn GetQueryBufferObjectuiv_is_loaded(&self) -> bool {
18186 !self.glGetQueryBufferObjectuiv_p.load(RELAX).is_null()
18187 }
18188 #[cfg_attr(feature = "inline", inline)]
18193 #[cfg_attr(feature = "inline_always", inline(always))]
18194 pub unsafe fn GetQueryIndexediv(
18195 &self,
18196 target: GLenum,
18197 index: GLuint,
18198 pname: GLenum,
18199 params: *mut GLint,
18200 ) {
18201 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18202 {
18203 trace!(
18204 "calling gl.GetQueryIndexediv({:#X}, {:?}, {:#X}, {:p});",
18205 target,
18206 index,
18207 pname,
18208 params
18209 );
18210 }
18211 let out = call_atomic_ptr_4arg(
18212 "glGetQueryIndexediv",
18213 &self.glGetQueryIndexediv_p,
18214 target,
18215 index,
18216 pname,
18217 params,
18218 );
18219 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18220 {
18221 self.automatic_glGetError("glGetQueryIndexediv");
18222 }
18223 out
18224 }
18225 #[doc(hidden)]
18226 pub unsafe fn GetQueryIndexediv_load_with_dyn(
18227 &self,
18228 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18229 ) -> bool {
18230 load_dyn_name_atomic_ptr(
18231 get_proc_address,
18232 b"glGetQueryIndexediv\0",
18233 &self.glGetQueryIndexediv_p,
18234 )
18235 }
18236 #[inline]
18237 #[doc(hidden)]
18238 pub fn GetQueryIndexediv_is_loaded(&self) -> bool {
18239 !self.glGetQueryIndexediv_p.load(RELAX).is_null()
18240 }
18241 #[cfg_attr(feature = "inline", inline)]
18245 #[cfg_attr(feature = "inline_always", inline(always))]
18246 pub unsafe fn GetQueryObjecti64v(&self, id: GLuint, pname: GLenum, params: *mut GLint64) {
18247 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18248 {
18249 trace!(
18250 "calling gl.GetQueryObjecti64v({:?}, {:#X}, {:p});",
18251 id,
18252 pname,
18253 params
18254 );
18255 }
18256 let out = call_atomic_ptr_3arg(
18257 "glGetQueryObjecti64v",
18258 &self.glGetQueryObjecti64v_p,
18259 id,
18260 pname,
18261 params,
18262 );
18263 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18264 {
18265 self.automatic_glGetError("glGetQueryObjecti64v");
18266 }
18267 out
18268 }
18269 #[doc(hidden)]
18270 pub unsafe fn GetQueryObjecti64v_load_with_dyn(
18271 &self,
18272 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18273 ) -> bool {
18274 load_dyn_name_atomic_ptr(
18275 get_proc_address,
18276 b"glGetQueryObjecti64v\0",
18277 &self.glGetQueryObjecti64v_p,
18278 )
18279 }
18280 #[inline]
18281 #[doc(hidden)]
18282 pub fn GetQueryObjecti64v_is_loaded(&self) -> bool {
18283 !self.glGetQueryObjecti64v_p.load(RELAX).is_null()
18284 }
18285 #[cfg_attr(feature = "inline", inline)]
18290 #[cfg_attr(feature = "inline_always", inline(always))]
18291 pub unsafe fn GetQueryObjecti64vEXT(
18292 &self,
18293 id: GLuint,
18294 pname: GLenum,
18295 params: *mut GLint64,
18296 ) {
18297 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18298 {
18299 trace!(
18300 "calling gl.GetQueryObjecti64vEXT({:?}, {:#X}, {:p});",
18301 id,
18302 pname,
18303 params
18304 );
18305 }
18306 let out = call_atomic_ptr_3arg(
18307 "glGetQueryObjecti64vEXT",
18308 &self.glGetQueryObjecti64vEXT_p,
18309 id,
18310 pname,
18311 params,
18312 );
18313 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18314 {
18315 self.automatic_glGetError("glGetQueryObjecti64vEXT");
18316 }
18317 out
18318 }
18319 #[doc(hidden)]
18320 pub unsafe fn GetQueryObjecti64vEXT_load_with_dyn(
18321 &self,
18322 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18323 ) -> bool {
18324 load_dyn_name_atomic_ptr(
18325 get_proc_address,
18326 b"glGetQueryObjecti64vEXT\0",
18327 &self.glGetQueryObjecti64vEXT_p,
18328 )
18329 }
18330 #[inline]
18331 #[doc(hidden)]
18332 pub fn GetQueryObjecti64vEXT_is_loaded(&self) -> bool {
18333 !self.glGetQueryObjecti64vEXT_p.load(RELAX).is_null()
18334 }
18335 #[cfg_attr(feature = "inline", inline)]
18339 #[cfg_attr(feature = "inline_always", inline(always))]
18340 pub unsafe fn GetQueryObjectiv(&self, id: GLuint, pname: GLenum, params: *mut GLint) {
18341 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18342 {
18343 trace!(
18344 "calling gl.GetQueryObjectiv({:?}, {:#X}, {:p});",
18345 id,
18346 pname,
18347 params
18348 );
18349 }
18350 let out = call_atomic_ptr_3arg(
18351 "glGetQueryObjectiv",
18352 &self.glGetQueryObjectiv_p,
18353 id,
18354 pname,
18355 params,
18356 );
18357 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18358 {
18359 self.automatic_glGetError("glGetQueryObjectiv");
18360 }
18361 out
18362 }
18363 #[doc(hidden)]
18364 pub unsafe fn GetQueryObjectiv_load_with_dyn(
18365 &self,
18366 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18367 ) -> bool {
18368 load_dyn_name_atomic_ptr(
18369 get_proc_address,
18370 b"glGetQueryObjectiv\0",
18371 &self.glGetQueryObjectiv_p,
18372 )
18373 }
18374 #[inline]
18375 #[doc(hidden)]
18376 pub fn GetQueryObjectiv_is_loaded(&self) -> bool {
18377 !self.glGetQueryObjectiv_p.load(RELAX).is_null()
18378 }
18379 #[cfg_attr(feature = "inline", inline)]
18384 #[cfg_attr(feature = "inline_always", inline(always))]
18385 pub unsafe fn GetQueryObjectivEXT(&self, id: GLuint, pname: GLenum, params: *mut GLint) {
18386 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18387 {
18388 trace!(
18389 "calling gl.GetQueryObjectivEXT({:?}, {:#X}, {:p});",
18390 id,
18391 pname,
18392 params
18393 );
18394 }
18395 let out = call_atomic_ptr_3arg(
18396 "glGetQueryObjectivEXT",
18397 &self.glGetQueryObjectivEXT_p,
18398 id,
18399 pname,
18400 params,
18401 );
18402 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18403 {
18404 self.automatic_glGetError("glGetQueryObjectivEXT");
18405 }
18406 out
18407 }
18408 #[doc(hidden)]
18409 pub unsafe fn GetQueryObjectivEXT_load_with_dyn(
18410 &self,
18411 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18412 ) -> bool {
18413 load_dyn_name_atomic_ptr(
18414 get_proc_address,
18415 b"glGetQueryObjectivEXT\0",
18416 &self.glGetQueryObjectivEXT_p,
18417 )
18418 }
18419 #[inline]
18420 #[doc(hidden)]
18421 pub fn GetQueryObjectivEXT_is_loaded(&self) -> bool {
18422 !self.glGetQueryObjectivEXT_p.load(RELAX).is_null()
18423 }
18424 #[cfg_attr(feature = "inline", inline)]
18428 #[cfg_attr(feature = "inline_always", inline(always))]
18429 pub unsafe fn GetQueryObjectui64v(&self, id: GLuint, pname: GLenum, params: *mut GLuint64) {
18430 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18431 {
18432 trace!(
18433 "calling gl.GetQueryObjectui64v({:?}, {:#X}, {:p});",
18434 id,
18435 pname,
18436 params
18437 );
18438 }
18439 let out = call_atomic_ptr_3arg(
18440 "glGetQueryObjectui64v",
18441 &self.glGetQueryObjectui64v_p,
18442 id,
18443 pname,
18444 params,
18445 );
18446 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18447 {
18448 self.automatic_glGetError("glGetQueryObjectui64v");
18449 }
18450 out
18451 }
18452 #[doc(hidden)]
18453 pub unsafe fn GetQueryObjectui64v_load_with_dyn(
18454 &self,
18455 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18456 ) -> bool {
18457 load_dyn_name_atomic_ptr(
18458 get_proc_address,
18459 b"glGetQueryObjectui64v\0",
18460 &self.glGetQueryObjectui64v_p,
18461 )
18462 }
18463 #[inline]
18464 #[doc(hidden)]
18465 pub fn GetQueryObjectui64v_is_loaded(&self) -> bool {
18466 !self.glGetQueryObjectui64v_p.load(RELAX).is_null()
18467 }
18468 #[cfg_attr(feature = "inline", inline)]
18473 #[cfg_attr(feature = "inline_always", inline(always))]
18474 pub unsafe fn GetQueryObjectui64vEXT(
18475 &self,
18476 id: GLuint,
18477 pname: GLenum,
18478 params: *mut GLuint64,
18479 ) {
18480 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18481 {
18482 trace!(
18483 "calling gl.GetQueryObjectui64vEXT({:?}, {:#X}, {:p});",
18484 id,
18485 pname,
18486 params
18487 );
18488 }
18489 let out = call_atomic_ptr_3arg(
18490 "glGetQueryObjectui64vEXT",
18491 &self.glGetQueryObjectui64vEXT_p,
18492 id,
18493 pname,
18494 params,
18495 );
18496 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18497 {
18498 self.automatic_glGetError("glGetQueryObjectui64vEXT");
18499 }
18500 out
18501 }
18502 #[doc(hidden)]
18503 pub unsafe fn GetQueryObjectui64vEXT_load_with_dyn(
18504 &self,
18505 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18506 ) -> bool {
18507 load_dyn_name_atomic_ptr(
18508 get_proc_address,
18509 b"glGetQueryObjectui64vEXT\0",
18510 &self.glGetQueryObjectui64vEXT_p,
18511 )
18512 }
18513 #[inline]
18514 #[doc(hidden)]
18515 pub fn GetQueryObjectui64vEXT_is_loaded(&self) -> bool {
18516 !self.glGetQueryObjectui64vEXT_p.load(RELAX).is_null()
18517 }
18518 #[cfg_attr(feature = "inline", inline)]
18522 #[cfg_attr(feature = "inline_always", inline(always))]
18523 pub unsafe fn GetQueryObjectuiv(&self, id: GLuint, pname: GLenum, params: *mut GLuint) {
18524 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18525 {
18526 trace!(
18527 "calling gl.GetQueryObjectuiv({:?}, {:#X}, {:p});",
18528 id,
18529 pname,
18530 params
18531 );
18532 }
18533 let out = call_atomic_ptr_3arg(
18534 "glGetQueryObjectuiv",
18535 &self.glGetQueryObjectuiv_p,
18536 id,
18537 pname,
18538 params,
18539 );
18540 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18541 {
18542 self.automatic_glGetError("glGetQueryObjectuiv");
18543 }
18544 out
18545 }
18546 #[doc(hidden)]
18547 pub unsafe fn GetQueryObjectuiv_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(
18552 get_proc_address,
18553 b"glGetQueryObjectuiv\0",
18554 &self.glGetQueryObjectuiv_p,
18555 )
18556 }
18557 #[inline]
18558 #[doc(hidden)]
18559 pub fn GetQueryObjectuiv_is_loaded(&self) -> bool {
18560 !self.glGetQueryObjectuiv_p.load(RELAX).is_null()
18561 }
18562 #[cfg_attr(feature = "inline", inline)]
18566 #[cfg_attr(feature = "inline_always", inline(always))]
18567 pub unsafe fn GetQueryObjectuivEXT(&self, id: GLuint, pname: GLenum, params: *mut GLuint) {
18568 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18569 {
18570 trace!(
18571 "calling gl.GetQueryObjectuivEXT({:?}, {:#X}, {:p});",
18572 id,
18573 pname,
18574 params
18575 );
18576 }
18577 let out = call_atomic_ptr_3arg(
18578 "glGetQueryObjectuivEXT",
18579 &self.glGetQueryObjectuivEXT_p,
18580 id,
18581 pname,
18582 params,
18583 );
18584 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18585 {
18586 self.automatic_glGetError("glGetQueryObjectuivEXT");
18587 }
18588 out
18589 }
18590 #[doc(hidden)]
18591 pub unsafe fn GetQueryObjectuivEXT_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"glGetQueryObjectuivEXT\0",
18598 &self.glGetQueryObjectuivEXT_p,
18599 )
18600 }
18601 #[inline]
18602 #[doc(hidden)]
18603 pub fn GetQueryObjectuivEXT_is_loaded(&self) -> bool {
18604 !self.glGetQueryObjectuivEXT_p.load(RELAX).is_null()
18605 }
18606 #[cfg_attr(feature = "inline", inline)]
18611 #[cfg_attr(feature = "inline_always", inline(always))]
18612 pub unsafe fn GetQueryiv(&self, target: GLenum, pname: GLenum, params: *mut GLint) {
18613 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18614 {
18615 trace!(
18616 "calling gl.GetQueryiv({:#X}, {:#X}, {:p});",
18617 target,
18618 pname,
18619 params
18620 );
18621 }
18622 let out =
18623 call_atomic_ptr_3arg("glGetQueryiv", &self.glGetQueryiv_p, target, pname, params);
18624 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18625 {
18626 self.automatic_glGetError("glGetQueryiv");
18627 }
18628 out
18629 }
18630 #[doc(hidden)]
18631 pub unsafe fn GetQueryiv_load_with_dyn(
18632 &self,
18633 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18634 ) -> bool {
18635 load_dyn_name_atomic_ptr(get_proc_address, b"glGetQueryiv\0", &self.glGetQueryiv_p)
18636 }
18637 #[inline]
18638 #[doc(hidden)]
18639 pub fn GetQueryiv_is_loaded(&self) -> bool {
18640 !self.glGetQueryiv_p.load(RELAX).is_null()
18641 }
18642 #[cfg_attr(feature = "inline", inline)]
18647 #[cfg_attr(feature = "inline_always", inline(always))]
18648 pub unsafe fn GetQueryivEXT(&self, target: GLenum, pname: GLenum, params: *mut GLint) {
18649 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18650 {
18651 trace!(
18652 "calling gl.GetQueryivEXT({:#X}, {:#X}, {:p});",
18653 target,
18654 pname,
18655 params
18656 );
18657 }
18658 let out = call_atomic_ptr_3arg(
18659 "glGetQueryivEXT",
18660 &self.glGetQueryivEXT_p,
18661 target,
18662 pname,
18663 params,
18664 );
18665 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18666 {
18667 self.automatic_glGetError("glGetQueryivEXT");
18668 }
18669 out
18670 }
18671 #[doc(hidden)]
18672 pub unsafe fn GetQueryivEXT_load_with_dyn(
18673 &self,
18674 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18675 ) -> bool {
18676 load_dyn_name_atomic_ptr(
18677 get_proc_address,
18678 b"glGetQueryivEXT\0",
18679 &self.glGetQueryivEXT_p,
18680 )
18681 }
18682 #[inline]
18683 #[doc(hidden)]
18684 pub fn GetQueryivEXT_is_loaded(&self) -> bool {
18685 !self.glGetQueryivEXT_p.load(RELAX).is_null()
18686 }
18687 #[cfg_attr(feature = "inline", inline)]
18692 #[cfg_attr(feature = "inline_always", inline(always))]
18693 pub unsafe fn GetRenderbufferParameteriv(
18694 &self,
18695 target: GLenum,
18696 pname: GLenum,
18697 params: *mut GLint,
18698 ) {
18699 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18700 {
18701 trace!(
18702 "calling gl.GetRenderbufferParameteriv({:#X}, {:#X}, {:p});",
18703 target,
18704 pname,
18705 params
18706 );
18707 }
18708 let out = call_atomic_ptr_3arg(
18709 "glGetRenderbufferParameteriv",
18710 &self.glGetRenderbufferParameteriv_p,
18711 target,
18712 pname,
18713 params,
18714 );
18715 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18716 {
18717 self.automatic_glGetError("glGetRenderbufferParameteriv");
18718 }
18719 out
18720 }
18721 #[doc(hidden)]
18722 pub unsafe fn GetRenderbufferParameteriv_load_with_dyn(
18723 &self,
18724 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18725 ) -> bool {
18726 load_dyn_name_atomic_ptr(
18727 get_proc_address,
18728 b"glGetRenderbufferParameteriv\0",
18729 &self.glGetRenderbufferParameteriv_p,
18730 )
18731 }
18732 #[inline]
18733 #[doc(hidden)]
18734 pub fn GetRenderbufferParameteriv_is_loaded(&self) -> bool {
18735 !self.glGetRenderbufferParameteriv_p.load(RELAX).is_null()
18736 }
18737 #[cfg_attr(feature = "inline", inline)]
18741 #[cfg_attr(feature = "inline_always", inline(always))]
18742 pub unsafe fn GetSamplerParameterIiv(
18743 &self,
18744 sampler: GLuint,
18745 pname: GLenum,
18746 params: *mut GLint,
18747 ) {
18748 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18749 {
18750 trace!(
18751 "calling gl.GetSamplerParameterIiv({:?}, {:#X}, {:p});",
18752 sampler,
18753 pname,
18754 params
18755 );
18756 }
18757 let out = call_atomic_ptr_3arg(
18758 "glGetSamplerParameterIiv",
18759 &self.glGetSamplerParameterIiv_p,
18760 sampler,
18761 pname,
18762 params,
18763 );
18764 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18765 {
18766 self.automatic_glGetError("glGetSamplerParameterIiv");
18767 }
18768 out
18769 }
18770 #[doc(hidden)]
18771 pub unsafe fn GetSamplerParameterIiv_load_with_dyn(
18772 &self,
18773 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18774 ) -> bool {
18775 load_dyn_name_atomic_ptr(
18776 get_proc_address,
18777 b"glGetSamplerParameterIiv\0",
18778 &self.glGetSamplerParameterIiv_p,
18779 )
18780 }
18781 #[inline]
18782 #[doc(hidden)]
18783 pub fn GetSamplerParameterIiv_is_loaded(&self) -> bool {
18784 !self.glGetSamplerParameterIiv_p.load(RELAX).is_null()
18785 }
18786 #[cfg_attr(feature = "inline", inline)]
18790 #[cfg_attr(feature = "inline_always", inline(always))]
18791 pub unsafe fn GetSamplerParameterIuiv(
18792 &self,
18793 sampler: GLuint,
18794 pname: GLenum,
18795 params: *mut GLuint,
18796 ) {
18797 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18798 {
18799 trace!(
18800 "calling gl.GetSamplerParameterIuiv({:?}, {:#X}, {:p});",
18801 sampler,
18802 pname,
18803 params
18804 );
18805 }
18806 let out = call_atomic_ptr_3arg(
18807 "glGetSamplerParameterIuiv",
18808 &self.glGetSamplerParameterIuiv_p,
18809 sampler,
18810 pname,
18811 params,
18812 );
18813 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18814 {
18815 self.automatic_glGetError("glGetSamplerParameterIuiv");
18816 }
18817 out
18818 }
18819 #[doc(hidden)]
18820 pub unsafe fn GetSamplerParameterIuiv_load_with_dyn(
18821 &self,
18822 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18823 ) -> bool {
18824 load_dyn_name_atomic_ptr(
18825 get_proc_address,
18826 b"glGetSamplerParameterIuiv\0",
18827 &self.glGetSamplerParameterIuiv_p,
18828 )
18829 }
18830 #[inline]
18831 #[doc(hidden)]
18832 pub fn GetSamplerParameterIuiv_is_loaded(&self) -> bool {
18833 !self.glGetSamplerParameterIuiv_p.load(RELAX).is_null()
18834 }
18835 #[cfg_attr(feature = "inline", inline)]
18839 #[cfg_attr(feature = "inline_always", inline(always))]
18840 pub unsafe fn GetSamplerParameterfv(
18841 &self,
18842 sampler: GLuint,
18843 pname: GLenum,
18844 params: *mut GLfloat,
18845 ) {
18846 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18847 {
18848 trace!(
18849 "calling gl.GetSamplerParameterfv({:?}, {:#X}, {:p});",
18850 sampler,
18851 pname,
18852 params
18853 );
18854 }
18855 let out = call_atomic_ptr_3arg(
18856 "glGetSamplerParameterfv",
18857 &self.glGetSamplerParameterfv_p,
18858 sampler,
18859 pname,
18860 params,
18861 );
18862 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18863 {
18864 self.automatic_glGetError("glGetSamplerParameterfv");
18865 }
18866 out
18867 }
18868 #[doc(hidden)]
18869 pub unsafe fn GetSamplerParameterfv_load_with_dyn(
18870 &self,
18871 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18872 ) -> bool {
18873 load_dyn_name_atomic_ptr(
18874 get_proc_address,
18875 b"glGetSamplerParameterfv\0",
18876 &self.glGetSamplerParameterfv_p,
18877 )
18878 }
18879 #[inline]
18880 #[doc(hidden)]
18881 pub fn GetSamplerParameterfv_is_loaded(&self) -> bool {
18882 !self.glGetSamplerParameterfv_p.load(RELAX).is_null()
18883 }
18884 #[cfg_attr(feature = "inline", inline)]
18888 #[cfg_attr(feature = "inline_always", inline(always))]
18889 pub unsafe fn GetSamplerParameteriv(
18890 &self,
18891 sampler: GLuint,
18892 pname: GLenum,
18893 params: *mut GLint,
18894 ) {
18895 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18896 {
18897 trace!(
18898 "calling gl.GetSamplerParameteriv({:?}, {:#X}, {:p});",
18899 sampler,
18900 pname,
18901 params
18902 );
18903 }
18904 let out = call_atomic_ptr_3arg(
18905 "glGetSamplerParameteriv",
18906 &self.glGetSamplerParameteriv_p,
18907 sampler,
18908 pname,
18909 params,
18910 );
18911 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18912 {
18913 self.automatic_glGetError("glGetSamplerParameteriv");
18914 }
18915 out
18916 }
18917 #[doc(hidden)]
18918 pub unsafe fn GetSamplerParameteriv_load_with_dyn(
18919 &self,
18920 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18921 ) -> bool {
18922 load_dyn_name_atomic_ptr(
18923 get_proc_address,
18924 b"glGetSamplerParameteriv\0",
18925 &self.glGetSamplerParameteriv_p,
18926 )
18927 }
18928 #[inline]
18929 #[doc(hidden)]
18930 pub fn GetSamplerParameteriv_is_loaded(&self) -> bool {
18931 !self.glGetSamplerParameteriv_p.load(RELAX).is_null()
18932 }
18933 #[cfg_attr(feature = "inline", inline)]
18937 #[cfg_attr(feature = "inline_always", inline(always))]
18938 pub unsafe fn GetShaderInfoLog(
18939 &self,
18940 shader: GLuint,
18941 bufSize: GLsizei,
18942 length: *mut GLsizei,
18943 infoLog: *mut GLchar,
18944 ) {
18945 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18946 {
18947 trace!(
18948 "calling gl.GetShaderInfoLog({:?}, {:?}, {:p}, {:p});",
18949 shader,
18950 bufSize,
18951 length,
18952 infoLog
18953 );
18954 }
18955 let out = call_atomic_ptr_4arg(
18956 "glGetShaderInfoLog",
18957 &self.glGetShaderInfoLog_p,
18958 shader,
18959 bufSize,
18960 length,
18961 infoLog,
18962 );
18963 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18964 {
18965 self.automatic_glGetError("glGetShaderInfoLog");
18966 }
18967 out
18968 }
18969 #[doc(hidden)]
18970 pub unsafe fn GetShaderInfoLog_load_with_dyn(
18971 &self,
18972 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18973 ) -> bool {
18974 load_dyn_name_atomic_ptr(
18975 get_proc_address,
18976 b"glGetShaderInfoLog\0",
18977 &self.glGetShaderInfoLog_p,
18978 )
18979 }
18980 #[inline]
18981 #[doc(hidden)]
18982 pub fn GetShaderInfoLog_is_loaded(&self) -> bool {
18983 !self.glGetShaderInfoLog_p.load(RELAX).is_null()
18984 }
18985 #[cfg_attr(feature = "inline", inline)]
18991 #[cfg_attr(feature = "inline_always", inline(always))]
18992 pub unsafe fn GetShaderPrecisionFormat(
18993 &self,
18994 shadertype: GLenum,
18995 precisiontype: GLenum,
18996 range: *mut GLint,
18997 precision: *mut GLint,
18998 ) {
18999 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19000 {
19001 trace!(
19002 "calling gl.GetShaderPrecisionFormat({:#X}, {:#X}, {:p}, {:p});",
19003 shadertype,
19004 precisiontype,
19005 range,
19006 precision
19007 );
19008 }
19009 let out = call_atomic_ptr_4arg(
19010 "glGetShaderPrecisionFormat",
19011 &self.glGetShaderPrecisionFormat_p,
19012 shadertype,
19013 precisiontype,
19014 range,
19015 precision,
19016 );
19017 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19018 {
19019 self.automatic_glGetError("glGetShaderPrecisionFormat");
19020 }
19021 out
19022 }
19023 #[doc(hidden)]
19024 pub unsafe fn GetShaderPrecisionFormat_load_with_dyn(
19025 &self,
19026 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19027 ) -> bool {
19028 load_dyn_name_atomic_ptr(
19029 get_proc_address,
19030 b"glGetShaderPrecisionFormat\0",
19031 &self.glGetShaderPrecisionFormat_p,
19032 )
19033 }
19034 #[inline]
19035 #[doc(hidden)]
19036 pub fn GetShaderPrecisionFormat_is_loaded(&self) -> bool {
19037 !self.glGetShaderPrecisionFormat_p.load(RELAX).is_null()
19038 }
19039 #[cfg_attr(feature = "inline", inline)]
19043 #[cfg_attr(feature = "inline_always", inline(always))]
19044 pub unsafe fn GetShaderSource(
19045 &self,
19046 shader: GLuint,
19047 bufSize: GLsizei,
19048 length: *mut GLsizei,
19049 source: *mut GLchar,
19050 ) {
19051 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19052 {
19053 trace!(
19054 "calling gl.GetShaderSource({:?}, {:?}, {:p}, {:p});",
19055 shader,
19056 bufSize,
19057 length,
19058 source
19059 );
19060 }
19061 let out = call_atomic_ptr_4arg(
19062 "glGetShaderSource",
19063 &self.glGetShaderSource_p,
19064 shader,
19065 bufSize,
19066 length,
19067 source,
19068 );
19069 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19070 {
19071 self.automatic_glGetError("glGetShaderSource");
19072 }
19073 out
19074 }
19075 #[doc(hidden)]
19076 pub unsafe fn GetShaderSource_load_with_dyn(
19077 &self,
19078 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19079 ) -> bool {
19080 load_dyn_name_atomic_ptr(
19081 get_proc_address,
19082 b"glGetShaderSource\0",
19083 &self.glGetShaderSource_p,
19084 )
19085 }
19086 #[inline]
19087 #[doc(hidden)]
19088 pub fn GetShaderSource_is_loaded(&self) -> bool {
19089 !self.glGetShaderSource_p.load(RELAX).is_null()
19090 }
19091 #[cfg_attr(feature = "inline", inline)]
19095 #[cfg_attr(feature = "inline_always", inline(always))]
19096 pub unsafe fn GetShaderiv(&self, shader: GLuint, pname: GLenum, params: *mut GLint) {
19097 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19098 {
19099 trace!(
19100 "calling gl.GetShaderiv({:?}, {:#X}, {:p});",
19101 shader,
19102 pname,
19103 params
19104 );
19105 }
19106 let out = call_atomic_ptr_3arg(
19107 "glGetShaderiv",
19108 &self.glGetShaderiv_p,
19109 shader,
19110 pname,
19111 params,
19112 );
19113 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19114 {
19115 self.automatic_glGetError("glGetShaderiv");
19116 }
19117 out
19118 }
19119 #[doc(hidden)]
19120 pub unsafe fn GetShaderiv_load_with_dyn(
19121 &self,
19122 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19123 ) -> bool {
19124 load_dyn_name_atomic_ptr(get_proc_address, b"glGetShaderiv\0", &self.glGetShaderiv_p)
19125 }
19126 #[inline]
19127 #[doc(hidden)]
19128 pub fn GetShaderiv_is_loaded(&self) -> bool {
19129 !self.glGetShaderiv_p.load(RELAX).is_null()
19130 }
19131 #[cfg_attr(feature = "inline", inline)]
19135 #[cfg_attr(feature = "inline_always", inline(always))]
19136 pub unsafe fn GetString(&self, name: GLenum) -> *const GLubyte {
19137 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19138 {
19139 trace!("calling gl.GetString({:#X});", name);
19140 }
19141 let out = call_atomic_ptr_1arg("glGetString", &self.glGetString_p, name);
19142 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19143 {
19144 self.automatic_glGetError("glGetString");
19145 }
19146 out
19147 }
19148 #[doc(hidden)]
19149 pub unsafe fn GetString_load_with_dyn(
19150 &self,
19151 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19152 ) -> bool {
19153 load_dyn_name_atomic_ptr(get_proc_address, b"glGetString\0", &self.glGetString_p)
19154 }
19155 #[inline]
19156 #[doc(hidden)]
19157 pub fn GetString_is_loaded(&self) -> bool {
19158 !self.glGetString_p.load(RELAX).is_null()
19159 }
19160 #[cfg_attr(feature = "inline", inline)]
19164 #[cfg_attr(feature = "inline_always", inline(always))]
19165 pub unsafe fn GetStringi(&self, name: GLenum, index: GLuint) -> *const GLubyte {
19166 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19167 {
19168 trace!("calling gl.GetStringi({:#X}, {:?});", name, index);
19169 }
19170 let out = call_atomic_ptr_2arg("glGetStringi", &self.glGetStringi_p, name, index);
19171 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19172 {
19173 self.automatic_glGetError("glGetStringi");
19174 }
19175 out
19176 }
19177 #[doc(hidden)]
19178 pub unsafe fn GetStringi_load_with_dyn(
19179 &self,
19180 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19181 ) -> bool {
19182 load_dyn_name_atomic_ptr(get_proc_address, b"glGetStringi\0", &self.glGetStringi_p)
19183 }
19184 #[inline]
19185 #[doc(hidden)]
19186 pub fn GetStringi_is_loaded(&self) -> bool {
19187 !self.glGetStringi_p.load(RELAX).is_null()
19188 }
19189 #[cfg_attr(feature = "inline", inline)]
19192 #[cfg_attr(feature = "inline_always", inline(always))]
19193 pub unsafe fn GetSubroutineIndex(
19194 &self,
19195 program: GLuint,
19196 shadertype: GLenum,
19197 name: *const GLchar,
19198 ) -> GLuint {
19199 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19200 {
19201 trace!(
19202 "calling gl.GetSubroutineIndex({:?}, {:#X}, {:p});",
19203 program,
19204 shadertype,
19205 name
19206 );
19207 }
19208 let out = call_atomic_ptr_3arg(
19209 "glGetSubroutineIndex",
19210 &self.glGetSubroutineIndex_p,
19211 program,
19212 shadertype,
19213 name,
19214 );
19215 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19216 {
19217 self.automatic_glGetError("glGetSubroutineIndex");
19218 }
19219 out
19220 }
19221 #[doc(hidden)]
19222 pub unsafe fn GetSubroutineIndex_load_with_dyn(
19223 &self,
19224 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19225 ) -> bool {
19226 load_dyn_name_atomic_ptr(
19227 get_proc_address,
19228 b"glGetSubroutineIndex\0",
19229 &self.glGetSubroutineIndex_p,
19230 )
19231 }
19232 #[inline]
19233 #[doc(hidden)]
19234 pub fn GetSubroutineIndex_is_loaded(&self) -> bool {
19235 !self.glGetSubroutineIndex_p.load(RELAX).is_null()
19236 }
19237 #[cfg_attr(feature = "inline", inline)]
19240 #[cfg_attr(feature = "inline_always", inline(always))]
19241 pub unsafe fn GetSubroutineUniformLocation(
19242 &self,
19243 program: GLuint,
19244 shadertype: GLenum,
19245 name: *const GLchar,
19246 ) -> GLint {
19247 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19248 {
19249 trace!(
19250 "calling gl.GetSubroutineUniformLocation({:?}, {:#X}, {:p});",
19251 program,
19252 shadertype,
19253 name
19254 );
19255 }
19256 let out = call_atomic_ptr_3arg(
19257 "glGetSubroutineUniformLocation",
19258 &self.glGetSubroutineUniformLocation_p,
19259 program,
19260 shadertype,
19261 name,
19262 );
19263 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19264 {
19265 self.automatic_glGetError("glGetSubroutineUniformLocation");
19266 }
19267 out
19268 }
19269 #[doc(hidden)]
19270 pub unsafe fn GetSubroutineUniformLocation_load_with_dyn(
19271 &self,
19272 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19273 ) -> bool {
19274 load_dyn_name_atomic_ptr(
19275 get_proc_address,
19276 b"glGetSubroutineUniformLocation\0",
19277 &self.glGetSubroutineUniformLocation_p,
19278 )
19279 }
19280 #[inline]
19281 #[doc(hidden)]
19282 pub fn GetSubroutineUniformLocation_is_loaded(&self) -> bool {
19283 !self.glGetSubroutineUniformLocation_p.load(RELAX).is_null()
19284 }
19285 #[cfg_attr(feature = "inline", inline)]
19291 #[cfg_attr(feature = "inline_always", inline(always))]
19292 pub unsafe fn GetSynciv(
19293 &self,
19294 sync: GLsync,
19295 pname: GLenum,
19296 count: GLsizei,
19297 length: *mut GLsizei,
19298 values: *mut GLint,
19299 ) {
19300 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19301 {
19302 trace!(
19303 "calling gl.GetSynciv({:p}, {:#X}, {:?}, {:p}, {:p});",
19304 sync,
19305 pname,
19306 count,
19307 length,
19308 values
19309 );
19310 }
19311 let out = call_atomic_ptr_5arg(
19312 "glGetSynciv",
19313 &self.glGetSynciv_p,
19314 sync,
19315 pname,
19316 count,
19317 length,
19318 values,
19319 );
19320 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19321 {
19322 self.automatic_glGetError("glGetSynciv");
19323 }
19324 out
19325 }
19326 #[doc(hidden)]
19327 pub unsafe fn GetSynciv_load_with_dyn(
19328 &self,
19329 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19330 ) -> bool {
19331 load_dyn_name_atomic_ptr(get_proc_address, b"glGetSynciv\0", &self.glGetSynciv_p)
19332 }
19333 #[inline]
19334 #[doc(hidden)]
19335 pub fn GetSynciv_is_loaded(&self) -> bool {
19336 !self.glGetSynciv_p.load(RELAX).is_null()
19337 }
19338 #[cfg_attr(feature = "inline", inline)]
19345 #[cfg_attr(feature = "inline_always", inline(always))]
19346 pub unsafe fn GetTexImage(
19347 &self,
19348 target: GLenum,
19349 level: GLint,
19350 format: GLenum,
19351 type_: GLenum,
19352 pixels: *mut c_void,
19353 ) {
19354 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19355 {
19356 trace!(
19357 "calling gl.GetTexImage({:#X}, {:?}, {:#X}, {:#X}, {:p});",
19358 target,
19359 level,
19360 format,
19361 type_,
19362 pixels
19363 );
19364 }
19365 let out = call_atomic_ptr_5arg(
19366 "glGetTexImage",
19367 &self.glGetTexImage_p,
19368 target,
19369 level,
19370 format,
19371 type_,
19372 pixels,
19373 );
19374 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19375 {
19376 self.automatic_glGetError("glGetTexImage");
19377 }
19378 out
19379 }
19380 #[doc(hidden)]
19381 pub unsafe fn GetTexImage_load_with_dyn(
19382 &self,
19383 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19384 ) -> bool {
19385 load_dyn_name_atomic_ptr(get_proc_address, b"glGetTexImage\0", &self.glGetTexImage_p)
19386 }
19387 #[inline]
19388 #[doc(hidden)]
19389 pub fn GetTexImage_is_loaded(&self) -> bool {
19390 !self.glGetTexImage_p.load(RELAX).is_null()
19391 }
19392 #[cfg_attr(feature = "inline", inline)]
19398 #[cfg_attr(feature = "inline_always", inline(always))]
19399 pub unsafe fn GetTexLevelParameterfv(
19400 &self,
19401 target: GLenum,
19402 level: GLint,
19403 pname: GLenum,
19404 params: *mut GLfloat,
19405 ) {
19406 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19407 {
19408 trace!(
19409 "calling gl.GetTexLevelParameterfv({:#X}, {:?}, {:#X}, {:p});",
19410 target,
19411 level,
19412 pname,
19413 params
19414 );
19415 }
19416 let out = call_atomic_ptr_4arg(
19417 "glGetTexLevelParameterfv",
19418 &self.glGetTexLevelParameterfv_p,
19419 target,
19420 level,
19421 pname,
19422 params,
19423 );
19424 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19425 {
19426 self.automatic_glGetError("glGetTexLevelParameterfv");
19427 }
19428 out
19429 }
19430 #[doc(hidden)]
19431 pub unsafe fn GetTexLevelParameterfv_load_with_dyn(
19432 &self,
19433 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19434 ) -> bool {
19435 load_dyn_name_atomic_ptr(
19436 get_proc_address,
19437 b"glGetTexLevelParameterfv\0",
19438 &self.glGetTexLevelParameterfv_p,
19439 )
19440 }
19441 #[inline]
19442 #[doc(hidden)]
19443 pub fn GetTexLevelParameterfv_is_loaded(&self) -> bool {
19444 !self.glGetTexLevelParameterfv_p.load(RELAX).is_null()
19445 }
19446 #[cfg_attr(feature = "inline", inline)]
19452 #[cfg_attr(feature = "inline_always", inline(always))]
19453 pub unsafe fn GetTexLevelParameteriv(
19454 &self,
19455 target: GLenum,
19456 level: GLint,
19457 pname: GLenum,
19458 params: *mut GLint,
19459 ) {
19460 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19461 {
19462 trace!(
19463 "calling gl.GetTexLevelParameteriv({:#X}, {:?}, {:#X}, {:p});",
19464 target,
19465 level,
19466 pname,
19467 params
19468 );
19469 }
19470 let out = call_atomic_ptr_4arg(
19471 "glGetTexLevelParameteriv",
19472 &self.glGetTexLevelParameteriv_p,
19473 target,
19474 level,
19475 pname,
19476 params,
19477 );
19478 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19479 {
19480 self.automatic_glGetError("glGetTexLevelParameteriv");
19481 }
19482 out
19483 }
19484 #[doc(hidden)]
19485 pub unsafe fn GetTexLevelParameteriv_load_with_dyn(
19486 &self,
19487 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19488 ) -> bool {
19489 load_dyn_name_atomic_ptr(
19490 get_proc_address,
19491 b"glGetTexLevelParameteriv\0",
19492 &self.glGetTexLevelParameteriv_p,
19493 )
19494 }
19495 #[inline]
19496 #[doc(hidden)]
19497 pub fn GetTexLevelParameteriv_is_loaded(&self) -> bool {
19498 !self.glGetTexLevelParameteriv_p.load(RELAX).is_null()
19499 }
19500 #[cfg_attr(feature = "inline", inline)]
19505 #[cfg_attr(feature = "inline_always", inline(always))]
19506 pub unsafe fn GetTexParameterIiv(&self, target: GLenum, pname: GLenum, params: *mut GLint) {
19507 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19508 {
19509 trace!(
19510 "calling gl.GetTexParameterIiv({:#X}, {:#X}, {:p});",
19511 target,
19512 pname,
19513 params
19514 );
19515 }
19516 let out = call_atomic_ptr_3arg(
19517 "glGetTexParameterIiv",
19518 &self.glGetTexParameterIiv_p,
19519 target,
19520 pname,
19521 params,
19522 );
19523 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19524 {
19525 self.automatic_glGetError("glGetTexParameterIiv");
19526 }
19527 out
19528 }
19529 #[doc(hidden)]
19530 pub unsafe fn GetTexParameterIiv_load_with_dyn(
19531 &self,
19532 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19533 ) -> bool {
19534 load_dyn_name_atomic_ptr(
19535 get_proc_address,
19536 b"glGetTexParameterIiv\0",
19537 &self.glGetTexParameterIiv_p,
19538 )
19539 }
19540 #[inline]
19541 #[doc(hidden)]
19542 pub fn GetTexParameterIiv_is_loaded(&self) -> bool {
19543 !self.glGetTexParameterIiv_p.load(RELAX).is_null()
19544 }
19545 #[cfg_attr(feature = "inline", inline)]
19550 #[cfg_attr(feature = "inline_always", inline(always))]
19551 pub unsafe fn GetTexParameterIuiv(
19552 &self,
19553 target: GLenum,
19554 pname: GLenum,
19555 params: *mut GLuint,
19556 ) {
19557 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19558 {
19559 trace!(
19560 "calling gl.GetTexParameterIuiv({:#X}, {:#X}, {:p});",
19561 target,
19562 pname,
19563 params
19564 );
19565 }
19566 let out = call_atomic_ptr_3arg(
19567 "glGetTexParameterIuiv",
19568 &self.glGetTexParameterIuiv_p,
19569 target,
19570 pname,
19571 params,
19572 );
19573 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19574 {
19575 self.automatic_glGetError("glGetTexParameterIuiv");
19576 }
19577 out
19578 }
19579 #[doc(hidden)]
19580 pub unsafe fn GetTexParameterIuiv_load_with_dyn(
19581 &self,
19582 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19583 ) -> bool {
19584 load_dyn_name_atomic_ptr(
19585 get_proc_address,
19586 b"glGetTexParameterIuiv\0",
19587 &self.glGetTexParameterIuiv_p,
19588 )
19589 }
19590 #[inline]
19591 #[doc(hidden)]
19592 pub fn GetTexParameterIuiv_is_loaded(&self) -> bool {
19593 !self.glGetTexParameterIuiv_p.load(RELAX).is_null()
19594 }
19595 #[cfg_attr(feature = "inline", inline)]
19600 #[cfg_attr(feature = "inline_always", inline(always))]
19601 pub unsafe fn GetTexParameterfv(
19602 &self,
19603 target: GLenum,
19604 pname: GLenum,
19605 params: *mut GLfloat,
19606 ) {
19607 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19608 {
19609 trace!(
19610 "calling gl.GetTexParameterfv({:#X}, {:#X}, {:p});",
19611 target,
19612 pname,
19613 params
19614 );
19615 }
19616 let out = call_atomic_ptr_3arg(
19617 "glGetTexParameterfv",
19618 &self.glGetTexParameterfv_p,
19619 target,
19620 pname,
19621 params,
19622 );
19623 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19624 {
19625 self.automatic_glGetError("glGetTexParameterfv");
19626 }
19627 out
19628 }
19629 #[doc(hidden)]
19630 pub unsafe fn GetTexParameterfv_load_with_dyn(
19631 &self,
19632 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19633 ) -> bool {
19634 load_dyn_name_atomic_ptr(
19635 get_proc_address,
19636 b"glGetTexParameterfv\0",
19637 &self.glGetTexParameterfv_p,
19638 )
19639 }
19640 #[inline]
19641 #[doc(hidden)]
19642 pub fn GetTexParameterfv_is_loaded(&self) -> bool {
19643 !self.glGetTexParameterfv_p.load(RELAX).is_null()
19644 }
19645 #[cfg_attr(feature = "inline", inline)]
19650 #[cfg_attr(feature = "inline_always", inline(always))]
19651 pub unsafe fn GetTexParameteriv(&self, target: GLenum, pname: GLenum, params: *mut GLint) {
19652 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19653 {
19654 trace!(
19655 "calling gl.GetTexParameteriv({:#X}, {:#X}, {:p});",
19656 target,
19657 pname,
19658 params
19659 );
19660 }
19661 let out = call_atomic_ptr_3arg(
19662 "glGetTexParameteriv",
19663 &self.glGetTexParameteriv_p,
19664 target,
19665 pname,
19666 params,
19667 );
19668 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19669 {
19670 self.automatic_glGetError("glGetTexParameteriv");
19671 }
19672 out
19673 }
19674 #[doc(hidden)]
19675 pub unsafe fn GetTexParameteriv_load_with_dyn(
19676 &self,
19677 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19678 ) -> bool {
19679 load_dyn_name_atomic_ptr(
19680 get_proc_address,
19681 b"glGetTexParameteriv\0",
19682 &self.glGetTexParameteriv_p,
19683 )
19684 }
19685 #[inline]
19686 #[doc(hidden)]
19687 pub fn GetTexParameteriv_is_loaded(&self) -> bool {
19688 !self.glGetTexParameteriv_p.load(RELAX).is_null()
19689 }
19690 #[cfg_attr(feature = "inline", inline)]
19694 #[cfg_attr(feature = "inline_always", inline(always))]
19695 pub unsafe fn GetTextureImage(
19696 &self,
19697 texture: GLuint,
19698 level: GLint,
19699 format: GLenum,
19700 type_: GLenum,
19701 bufSize: GLsizei,
19702 pixels: *mut c_void,
19703 ) {
19704 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19705 {
19706 trace!(
19707 "calling gl.GetTextureImage({:?}, {:?}, {:#X}, {:#X}, {:?}, {:p});",
19708 texture,
19709 level,
19710 format,
19711 type_,
19712 bufSize,
19713 pixels
19714 );
19715 }
19716 let out = call_atomic_ptr_6arg(
19717 "glGetTextureImage",
19718 &self.glGetTextureImage_p,
19719 texture,
19720 level,
19721 format,
19722 type_,
19723 bufSize,
19724 pixels,
19725 );
19726 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19727 {
19728 self.automatic_glGetError("glGetTextureImage");
19729 }
19730 out
19731 }
19732 #[doc(hidden)]
19733 pub unsafe fn GetTextureImage_load_with_dyn(
19734 &self,
19735 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19736 ) -> bool {
19737 load_dyn_name_atomic_ptr(
19738 get_proc_address,
19739 b"glGetTextureImage\0",
19740 &self.glGetTextureImage_p,
19741 )
19742 }
19743 #[inline]
19744 #[doc(hidden)]
19745 pub fn GetTextureImage_is_loaded(&self) -> bool {
19746 !self.glGetTextureImage_p.load(RELAX).is_null()
19747 }
19748 #[cfg_attr(feature = "inline", inline)]
19751 #[cfg_attr(feature = "inline_always", inline(always))]
19752 pub unsafe fn GetTextureLevelParameterfv(
19753 &self,
19754 texture: GLuint,
19755 level: GLint,
19756 pname: GLenum,
19757 params: *mut GLfloat,
19758 ) {
19759 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19760 {
19761 trace!(
19762 "calling gl.GetTextureLevelParameterfv({:?}, {:?}, {:#X}, {:p});",
19763 texture,
19764 level,
19765 pname,
19766 params
19767 );
19768 }
19769 let out = call_atomic_ptr_4arg(
19770 "glGetTextureLevelParameterfv",
19771 &self.glGetTextureLevelParameterfv_p,
19772 texture,
19773 level,
19774 pname,
19775 params,
19776 );
19777 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19778 {
19779 self.automatic_glGetError("glGetTextureLevelParameterfv");
19780 }
19781 out
19782 }
19783 #[doc(hidden)]
19784 pub unsafe fn GetTextureLevelParameterfv_load_with_dyn(
19785 &self,
19786 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19787 ) -> bool {
19788 load_dyn_name_atomic_ptr(
19789 get_proc_address,
19790 b"glGetTextureLevelParameterfv\0",
19791 &self.glGetTextureLevelParameterfv_p,
19792 )
19793 }
19794 #[inline]
19795 #[doc(hidden)]
19796 pub fn GetTextureLevelParameterfv_is_loaded(&self) -> bool {
19797 !self.glGetTextureLevelParameterfv_p.load(RELAX).is_null()
19798 }
19799 #[cfg_attr(feature = "inline", inline)]
19802 #[cfg_attr(feature = "inline_always", inline(always))]
19803 pub unsafe fn GetTextureLevelParameteriv(
19804 &self,
19805 texture: GLuint,
19806 level: GLint,
19807 pname: GLenum,
19808 params: *mut GLint,
19809 ) {
19810 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19811 {
19812 trace!(
19813 "calling gl.GetTextureLevelParameteriv({:?}, {:?}, {:#X}, {:p});",
19814 texture,
19815 level,
19816 pname,
19817 params
19818 );
19819 }
19820 let out = call_atomic_ptr_4arg(
19821 "glGetTextureLevelParameteriv",
19822 &self.glGetTextureLevelParameteriv_p,
19823 texture,
19824 level,
19825 pname,
19826 params,
19827 );
19828 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19829 {
19830 self.automatic_glGetError("glGetTextureLevelParameteriv");
19831 }
19832 out
19833 }
19834 #[doc(hidden)]
19835 pub unsafe fn GetTextureLevelParameteriv_load_with_dyn(
19836 &self,
19837 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19838 ) -> bool {
19839 load_dyn_name_atomic_ptr(
19840 get_proc_address,
19841 b"glGetTextureLevelParameteriv\0",
19842 &self.glGetTextureLevelParameteriv_p,
19843 )
19844 }
19845 #[inline]
19846 #[doc(hidden)]
19847 pub fn GetTextureLevelParameteriv_is_loaded(&self) -> bool {
19848 !self.glGetTextureLevelParameteriv_p.load(RELAX).is_null()
19849 }
19850 #[cfg_attr(feature = "inline", inline)]
19853 #[cfg_attr(feature = "inline_always", inline(always))]
19854 pub unsafe fn GetTextureParameterIiv(
19855 &self,
19856 texture: GLuint,
19857 pname: GLenum,
19858 params: *mut GLint,
19859 ) {
19860 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19861 {
19862 trace!(
19863 "calling gl.GetTextureParameterIiv({:?}, {:#X}, {:p});",
19864 texture,
19865 pname,
19866 params
19867 );
19868 }
19869 let out = call_atomic_ptr_3arg(
19870 "glGetTextureParameterIiv",
19871 &self.glGetTextureParameterIiv_p,
19872 texture,
19873 pname,
19874 params,
19875 );
19876 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19877 {
19878 self.automatic_glGetError("glGetTextureParameterIiv");
19879 }
19880 out
19881 }
19882 #[doc(hidden)]
19883 pub unsafe fn GetTextureParameterIiv_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"glGetTextureParameterIiv\0",
19890 &self.glGetTextureParameterIiv_p,
19891 )
19892 }
19893 #[inline]
19894 #[doc(hidden)]
19895 pub fn GetTextureParameterIiv_is_loaded(&self) -> bool {
19896 !self.glGetTextureParameterIiv_p.load(RELAX).is_null()
19897 }
19898 #[cfg_attr(feature = "inline", inline)]
19901 #[cfg_attr(feature = "inline_always", inline(always))]
19902 pub unsafe fn GetTextureParameterIuiv(
19903 &self,
19904 texture: GLuint,
19905 pname: GLenum,
19906 params: *mut GLuint,
19907 ) {
19908 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19909 {
19910 trace!(
19911 "calling gl.GetTextureParameterIuiv({:?}, {:#X}, {:p});",
19912 texture,
19913 pname,
19914 params
19915 );
19916 }
19917 let out = call_atomic_ptr_3arg(
19918 "glGetTextureParameterIuiv",
19919 &self.glGetTextureParameterIuiv_p,
19920 texture,
19921 pname,
19922 params,
19923 );
19924 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19925 {
19926 self.automatic_glGetError("glGetTextureParameterIuiv");
19927 }
19928 out
19929 }
19930 #[doc(hidden)]
19931 pub unsafe fn GetTextureParameterIuiv_load_with_dyn(
19932 &self,
19933 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19934 ) -> bool {
19935 load_dyn_name_atomic_ptr(
19936 get_proc_address,
19937 b"glGetTextureParameterIuiv\0",
19938 &self.glGetTextureParameterIuiv_p,
19939 )
19940 }
19941 #[inline]
19942 #[doc(hidden)]
19943 pub fn GetTextureParameterIuiv_is_loaded(&self) -> bool {
19944 !self.glGetTextureParameterIuiv_p.load(RELAX).is_null()
19945 }
19946 #[cfg_attr(feature = "inline", inline)]
19949 #[cfg_attr(feature = "inline_always", inline(always))]
19950 pub unsafe fn GetTextureParameterfv(
19951 &self,
19952 texture: GLuint,
19953 pname: GLenum,
19954 params: *mut GLfloat,
19955 ) {
19956 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19957 {
19958 trace!(
19959 "calling gl.GetTextureParameterfv({:?}, {:#X}, {:p});",
19960 texture,
19961 pname,
19962 params
19963 );
19964 }
19965 let out = call_atomic_ptr_3arg(
19966 "glGetTextureParameterfv",
19967 &self.glGetTextureParameterfv_p,
19968 texture,
19969 pname,
19970 params,
19971 );
19972 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19973 {
19974 self.automatic_glGetError("glGetTextureParameterfv");
19975 }
19976 out
19977 }
19978 #[doc(hidden)]
19979 pub unsafe fn GetTextureParameterfv_load_with_dyn(
19980 &self,
19981 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19982 ) -> bool {
19983 load_dyn_name_atomic_ptr(
19984 get_proc_address,
19985 b"glGetTextureParameterfv\0",
19986 &self.glGetTextureParameterfv_p,
19987 )
19988 }
19989 #[inline]
19990 #[doc(hidden)]
19991 pub fn GetTextureParameterfv_is_loaded(&self) -> bool {
19992 !self.glGetTextureParameterfv_p.load(RELAX).is_null()
19993 }
19994 #[cfg_attr(feature = "inline", inline)]
19997 #[cfg_attr(feature = "inline_always", inline(always))]
19998 pub unsafe fn GetTextureParameteriv(
19999 &self,
20000 texture: GLuint,
20001 pname: GLenum,
20002 params: *mut GLint,
20003 ) {
20004 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20005 {
20006 trace!(
20007 "calling gl.GetTextureParameteriv({:?}, {:#X}, {:p});",
20008 texture,
20009 pname,
20010 params
20011 );
20012 }
20013 let out = call_atomic_ptr_3arg(
20014 "glGetTextureParameteriv",
20015 &self.glGetTextureParameteriv_p,
20016 texture,
20017 pname,
20018 params,
20019 );
20020 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20021 {
20022 self.automatic_glGetError("glGetTextureParameteriv");
20023 }
20024 out
20025 }
20026 #[doc(hidden)]
20027 pub unsafe fn GetTextureParameteriv_load_with_dyn(
20028 &self,
20029 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20030 ) -> bool {
20031 load_dyn_name_atomic_ptr(
20032 get_proc_address,
20033 b"glGetTextureParameteriv\0",
20034 &self.glGetTextureParameteriv_p,
20035 )
20036 }
20037 #[inline]
20038 #[doc(hidden)]
20039 pub fn GetTextureParameteriv_is_loaded(&self) -> bool {
20040 !self.glGetTextureParameteriv_p.load(RELAX).is_null()
20041 }
20042 #[cfg_attr(feature = "inline", inline)]
20046 #[cfg_attr(feature = "inline_always", inline(always))]
20047 pub unsafe fn GetTextureSubImage(
20048 &self,
20049 texture: GLuint,
20050 level: GLint,
20051 xoffset: GLint,
20052 yoffset: GLint,
20053 zoffset: GLint,
20054 width: GLsizei,
20055 height: GLsizei,
20056 depth: GLsizei,
20057 format: GLenum,
20058 type_: GLenum,
20059 bufSize: GLsizei,
20060 pixels: *mut c_void,
20061 ) {
20062 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20063 {
20064 trace!("calling gl.GetTextureSubImage({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:?}, {:p});", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type_, bufSize, pixels);
20065 }
20066 let out = call_atomic_ptr_12arg(
20067 "glGetTextureSubImage",
20068 &self.glGetTextureSubImage_p,
20069 texture,
20070 level,
20071 xoffset,
20072 yoffset,
20073 zoffset,
20074 width,
20075 height,
20076 depth,
20077 format,
20078 type_,
20079 bufSize,
20080 pixels,
20081 );
20082 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20083 {
20084 self.automatic_glGetError("glGetTextureSubImage");
20085 }
20086 out
20087 }
20088 #[doc(hidden)]
20089 pub unsafe fn GetTextureSubImage_load_with_dyn(
20090 &self,
20091 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20092 ) -> bool {
20093 load_dyn_name_atomic_ptr(
20094 get_proc_address,
20095 b"glGetTextureSubImage\0",
20096 &self.glGetTextureSubImage_p,
20097 )
20098 }
20099 #[inline]
20100 #[doc(hidden)]
20101 pub fn GetTextureSubImage_is_loaded(&self) -> bool {
20102 !self.glGetTextureSubImage_p.load(RELAX).is_null()
20103 }
20104 #[cfg_attr(feature = "inline", inline)]
20111 #[cfg_attr(feature = "inline_always", inline(always))]
20112 pub unsafe fn GetTransformFeedbackVarying(
20113 &self,
20114 program: GLuint,
20115 index: GLuint,
20116 bufSize: GLsizei,
20117 length: *mut GLsizei,
20118 size: *mut GLsizei,
20119 type_: *mut GLenum,
20120 name: *mut GLchar,
20121 ) {
20122 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20123 {
20124 trace!("calling gl.GetTransformFeedbackVarying({:?}, {:?}, {:?}, {:p}, {:p}, {:p}, {:p});", program, index, bufSize, length, size, type_, name);
20125 }
20126 let out = call_atomic_ptr_7arg(
20127 "glGetTransformFeedbackVarying",
20128 &self.glGetTransformFeedbackVarying_p,
20129 program,
20130 index,
20131 bufSize,
20132 length,
20133 size,
20134 type_,
20135 name,
20136 );
20137 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20138 {
20139 self.automatic_glGetError("glGetTransformFeedbackVarying");
20140 }
20141 out
20142 }
20143 #[doc(hidden)]
20144 pub unsafe fn GetTransformFeedbackVarying_load_with_dyn(
20145 &self,
20146 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20147 ) -> bool {
20148 load_dyn_name_atomic_ptr(
20149 get_proc_address,
20150 b"glGetTransformFeedbackVarying\0",
20151 &self.glGetTransformFeedbackVarying_p,
20152 )
20153 }
20154 #[inline]
20155 #[doc(hidden)]
20156 pub fn GetTransformFeedbackVarying_is_loaded(&self) -> bool {
20157 !self.glGetTransformFeedbackVarying_p.load(RELAX).is_null()
20158 }
20159 #[cfg_attr(feature = "inline", inline)]
20162 #[cfg_attr(feature = "inline_always", inline(always))]
20163 pub unsafe fn GetTransformFeedbacki64_v(
20164 &self,
20165 xfb: GLuint,
20166 pname: GLenum,
20167 index: GLuint,
20168 param: *mut GLint64,
20169 ) {
20170 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20171 {
20172 trace!(
20173 "calling gl.GetTransformFeedbacki64_v({:?}, {:#X}, {:?}, {:p});",
20174 xfb,
20175 pname,
20176 index,
20177 param
20178 );
20179 }
20180 let out = call_atomic_ptr_4arg(
20181 "glGetTransformFeedbacki64_v",
20182 &self.glGetTransformFeedbacki64_v_p,
20183 xfb,
20184 pname,
20185 index,
20186 param,
20187 );
20188 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20189 {
20190 self.automatic_glGetError("glGetTransformFeedbacki64_v");
20191 }
20192 out
20193 }
20194 #[doc(hidden)]
20195 pub unsafe fn GetTransformFeedbacki64_v_load_with_dyn(
20196 &self,
20197 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20198 ) -> bool {
20199 load_dyn_name_atomic_ptr(
20200 get_proc_address,
20201 b"glGetTransformFeedbacki64_v\0",
20202 &self.glGetTransformFeedbacki64_v_p,
20203 )
20204 }
20205 #[inline]
20206 #[doc(hidden)]
20207 pub fn GetTransformFeedbacki64_v_is_loaded(&self) -> bool {
20208 !self.glGetTransformFeedbacki64_v_p.load(RELAX).is_null()
20209 }
20210 #[cfg_attr(feature = "inline", inline)]
20213 #[cfg_attr(feature = "inline_always", inline(always))]
20214 pub unsafe fn GetTransformFeedbacki_v(
20215 &self,
20216 xfb: GLuint,
20217 pname: GLenum,
20218 index: GLuint,
20219 param: *mut GLint,
20220 ) {
20221 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20222 {
20223 trace!(
20224 "calling gl.GetTransformFeedbacki_v({:?}, {:#X}, {:?}, {:p});",
20225 xfb,
20226 pname,
20227 index,
20228 param
20229 );
20230 }
20231 let out = call_atomic_ptr_4arg(
20232 "glGetTransformFeedbacki_v",
20233 &self.glGetTransformFeedbacki_v_p,
20234 xfb,
20235 pname,
20236 index,
20237 param,
20238 );
20239 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20240 {
20241 self.automatic_glGetError("glGetTransformFeedbacki_v");
20242 }
20243 out
20244 }
20245 #[doc(hidden)]
20246 pub unsafe fn GetTransformFeedbacki_v_load_with_dyn(
20247 &self,
20248 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20249 ) -> bool {
20250 load_dyn_name_atomic_ptr(
20251 get_proc_address,
20252 b"glGetTransformFeedbacki_v\0",
20253 &self.glGetTransformFeedbacki_v_p,
20254 )
20255 }
20256 #[inline]
20257 #[doc(hidden)]
20258 pub fn GetTransformFeedbacki_v_is_loaded(&self) -> bool {
20259 !self.glGetTransformFeedbacki_v_p.load(RELAX).is_null()
20260 }
20261 #[cfg_attr(feature = "inline", inline)]
20264 #[cfg_attr(feature = "inline_always", inline(always))]
20265 pub unsafe fn GetTransformFeedbackiv(&self, xfb: GLuint, pname: GLenum, param: *mut GLint) {
20266 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20267 {
20268 trace!(
20269 "calling gl.GetTransformFeedbackiv({:?}, {:#X}, {:p});",
20270 xfb,
20271 pname,
20272 param
20273 );
20274 }
20275 let out = call_atomic_ptr_3arg(
20276 "glGetTransformFeedbackiv",
20277 &self.glGetTransformFeedbackiv_p,
20278 xfb,
20279 pname,
20280 param,
20281 );
20282 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20283 {
20284 self.automatic_glGetError("glGetTransformFeedbackiv");
20285 }
20286 out
20287 }
20288 #[doc(hidden)]
20289 pub unsafe fn GetTransformFeedbackiv_load_with_dyn(
20290 &self,
20291 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20292 ) -> bool {
20293 load_dyn_name_atomic_ptr(
20294 get_proc_address,
20295 b"glGetTransformFeedbackiv\0",
20296 &self.glGetTransformFeedbackiv_p,
20297 )
20298 }
20299 #[inline]
20300 #[doc(hidden)]
20301 pub fn GetTransformFeedbackiv_is_loaded(&self) -> bool {
20302 !self.glGetTransformFeedbackiv_p.load(RELAX).is_null()
20303 }
20304 #[cfg_attr(feature = "inline", inline)]
20307 #[cfg_attr(feature = "inline_always", inline(always))]
20308 pub unsafe fn GetUniformBlockIndex(
20309 &self,
20310 program: GLuint,
20311 uniformBlockName: *const GLchar,
20312 ) -> GLuint {
20313 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20314 {
20315 trace!(
20316 "calling gl.GetUniformBlockIndex({:?}, {:p});",
20317 program,
20318 uniformBlockName
20319 );
20320 }
20321 let out = call_atomic_ptr_2arg(
20322 "glGetUniformBlockIndex",
20323 &self.glGetUniformBlockIndex_p,
20324 program,
20325 uniformBlockName,
20326 );
20327 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20328 {
20329 self.automatic_glGetError("glGetUniformBlockIndex");
20330 }
20331 out
20332 }
20333 #[doc(hidden)]
20334 pub unsafe fn GetUniformBlockIndex_load_with_dyn(
20335 &self,
20336 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20337 ) -> bool {
20338 load_dyn_name_atomic_ptr(
20339 get_proc_address,
20340 b"glGetUniformBlockIndex\0",
20341 &self.glGetUniformBlockIndex_p,
20342 )
20343 }
20344 #[inline]
20345 #[doc(hidden)]
20346 pub fn GetUniformBlockIndex_is_loaded(&self) -> bool {
20347 !self.glGetUniformBlockIndex_p.load(RELAX).is_null()
20348 }
20349 #[cfg_attr(feature = "inline", inline)]
20353 #[cfg_attr(feature = "inline_always", inline(always))]
20354 pub unsafe fn GetUniformIndices(
20355 &self,
20356 program: GLuint,
20357 uniformCount: GLsizei,
20358 uniformNames: *const *const GLchar,
20359 uniformIndices: *mut GLuint,
20360 ) {
20361 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20362 {
20363 trace!(
20364 "calling gl.GetUniformIndices({:?}, {:?}, {:p}, {:p});",
20365 program,
20366 uniformCount,
20367 uniformNames,
20368 uniformIndices
20369 );
20370 }
20371 let out = call_atomic_ptr_4arg(
20372 "glGetUniformIndices",
20373 &self.glGetUniformIndices_p,
20374 program,
20375 uniformCount,
20376 uniformNames,
20377 uniformIndices,
20378 );
20379 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20380 {
20381 self.automatic_glGetError("glGetUniformIndices");
20382 }
20383 out
20384 }
20385 #[doc(hidden)]
20386 pub unsafe fn GetUniformIndices_load_with_dyn(
20387 &self,
20388 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20389 ) -> bool {
20390 load_dyn_name_atomic_ptr(
20391 get_proc_address,
20392 b"glGetUniformIndices\0",
20393 &self.glGetUniformIndices_p,
20394 )
20395 }
20396 #[inline]
20397 #[doc(hidden)]
20398 pub fn GetUniformIndices_is_loaded(&self) -> bool {
20399 !self.glGetUniformIndices_p.load(RELAX).is_null()
20400 }
20401 #[cfg_attr(feature = "inline", inline)]
20403 #[cfg_attr(feature = "inline_always", inline(always))]
20404 pub unsafe fn GetUniformLocation(&self, program: GLuint, name: *const GLchar) -> GLint {
20405 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20406 {
20407 trace!("calling gl.GetUniformLocation({:?}, {:p});", program, name);
20408 }
20409 let out = call_atomic_ptr_2arg(
20410 "glGetUniformLocation",
20411 &self.glGetUniformLocation_p,
20412 program,
20413 name,
20414 );
20415 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20416 {
20417 self.automatic_glGetError("glGetUniformLocation");
20418 }
20419 out
20420 }
20421 #[doc(hidden)]
20422 pub unsafe fn GetUniformLocation_load_with_dyn(
20423 &self,
20424 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20425 ) -> bool {
20426 load_dyn_name_atomic_ptr(
20427 get_proc_address,
20428 b"glGetUniformLocation\0",
20429 &self.glGetUniformLocation_p,
20430 )
20431 }
20432 #[inline]
20433 #[doc(hidden)]
20434 pub fn GetUniformLocation_is_loaded(&self) -> bool {
20435 !self.glGetUniformLocation_p.load(RELAX).is_null()
20436 }
20437 #[cfg_attr(feature = "inline", inline)]
20441 #[cfg_attr(feature = "inline_always", inline(always))]
20442 pub unsafe fn GetUniformSubroutineuiv(
20443 &self,
20444 shadertype: GLenum,
20445 location: GLint,
20446 params: *mut GLuint,
20447 ) {
20448 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20449 {
20450 trace!(
20451 "calling gl.GetUniformSubroutineuiv({:#X}, {:?}, {:p});",
20452 shadertype,
20453 location,
20454 params
20455 );
20456 }
20457 let out = call_atomic_ptr_3arg(
20458 "glGetUniformSubroutineuiv",
20459 &self.glGetUniformSubroutineuiv_p,
20460 shadertype,
20461 location,
20462 params,
20463 );
20464 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20465 {
20466 self.automatic_glGetError("glGetUniformSubroutineuiv");
20467 }
20468 out
20469 }
20470 #[doc(hidden)]
20471 pub unsafe fn GetUniformSubroutineuiv_load_with_dyn(
20472 &self,
20473 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20474 ) -> bool {
20475 load_dyn_name_atomic_ptr(
20476 get_proc_address,
20477 b"glGetUniformSubroutineuiv\0",
20478 &self.glGetUniformSubroutineuiv_p,
20479 )
20480 }
20481 #[inline]
20482 #[doc(hidden)]
20483 pub fn GetUniformSubroutineuiv_is_loaded(&self) -> bool {
20484 !self.glGetUniformSubroutineuiv_p.load(RELAX).is_null()
20485 }
20486 #[cfg_attr(feature = "inline", inline)]
20489 #[cfg_attr(feature = "inline_always", inline(always))]
20490 pub unsafe fn GetUniformdv(&self, program: GLuint, location: GLint, params: *mut GLdouble) {
20491 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20492 {
20493 trace!(
20494 "calling gl.GetUniformdv({:?}, {:?}, {:p});",
20495 program,
20496 location,
20497 params
20498 );
20499 }
20500 let out = call_atomic_ptr_3arg(
20501 "glGetUniformdv",
20502 &self.glGetUniformdv_p,
20503 program,
20504 location,
20505 params,
20506 );
20507 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20508 {
20509 self.automatic_glGetError("glGetUniformdv");
20510 }
20511 out
20512 }
20513 #[doc(hidden)]
20514 pub unsafe fn GetUniformdv_load_with_dyn(
20515 &self,
20516 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20517 ) -> bool {
20518 load_dyn_name_atomic_ptr(
20519 get_proc_address,
20520 b"glGetUniformdv\0",
20521 &self.glGetUniformdv_p,
20522 )
20523 }
20524 #[inline]
20525 #[doc(hidden)]
20526 pub fn GetUniformdv_is_loaded(&self) -> bool {
20527 !self.glGetUniformdv_p.load(RELAX).is_null()
20528 }
20529 #[cfg_attr(feature = "inline", inline)]
20532 #[cfg_attr(feature = "inline_always", inline(always))]
20533 pub unsafe fn GetUniformfv(&self, program: GLuint, location: GLint, params: *mut GLfloat) {
20534 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20535 {
20536 trace!(
20537 "calling gl.GetUniformfv({:?}, {:?}, {:p});",
20538 program,
20539 location,
20540 params
20541 );
20542 }
20543 let out = call_atomic_ptr_3arg(
20544 "glGetUniformfv",
20545 &self.glGetUniformfv_p,
20546 program,
20547 location,
20548 params,
20549 );
20550 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20551 {
20552 self.automatic_glGetError("glGetUniformfv");
20553 }
20554 out
20555 }
20556 #[doc(hidden)]
20557 pub unsafe fn GetUniformfv_load_with_dyn(
20558 &self,
20559 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20560 ) -> bool {
20561 load_dyn_name_atomic_ptr(
20562 get_proc_address,
20563 b"glGetUniformfv\0",
20564 &self.glGetUniformfv_p,
20565 )
20566 }
20567 #[inline]
20568 #[doc(hidden)]
20569 pub fn GetUniformfv_is_loaded(&self) -> bool {
20570 !self.glGetUniformfv_p.load(RELAX).is_null()
20571 }
20572 #[cfg_attr(feature = "inline", inline)]
20575 #[cfg_attr(feature = "inline_always", inline(always))]
20576 pub unsafe fn GetUniformiv(&self, program: GLuint, location: GLint, params: *mut GLint) {
20577 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20578 {
20579 trace!(
20580 "calling gl.GetUniformiv({:?}, {:?}, {:p});",
20581 program,
20582 location,
20583 params
20584 );
20585 }
20586 let out = call_atomic_ptr_3arg(
20587 "glGetUniformiv",
20588 &self.glGetUniformiv_p,
20589 program,
20590 location,
20591 params,
20592 );
20593 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20594 {
20595 self.automatic_glGetError("glGetUniformiv");
20596 }
20597 out
20598 }
20599 #[doc(hidden)]
20600 pub unsafe fn GetUniformiv_load_with_dyn(
20601 &self,
20602 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20603 ) -> bool {
20604 load_dyn_name_atomic_ptr(
20605 get_proc_address,
20606 b"glGetUniformiv\0",
20607 &self.glGetUniformiv_p,
20608 )
20609 }
20610 #[inline]
20611 #[doc(hidden)]
20612 pub fn GetUniformiv_is_loaded(&self) -> bool {
20613 !self.glGetUniformiv_p.load(RELAX).is_null()
20614 }
20615 #[cfg_attr(feature = "inline", inline)]
20618 #[cfg_attr(feature = "inline_always", inline(always))]
20619 pub unsafe fn GetUniformuiv(&self, program: GLuint, location: GLint, params: *mut GLuint) {
20620 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20621 {
20622 trace!(
20623 "calling gl.GetUniformuiv({:?}, {:?}, {:p});",
20624 program,
20625 location,
20626 params
20627 );
20628 }
20629 let out = call_atomic_ptr_3arg(
20630 "glGetUniformuiv",
20631 &self.glGetUniformuiv_p,
20632 program,
20633 location,
20634 params,
20635 );
20636 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20637 {
20638 self.automatic_glGetError("glGetUniformuiv");
20639 }
20640 out
20641 }
20642 #[doc(hidden)]
20643 pub unsafe fn GetUniformuiv_load_with_dyn(
20644 &self,
20645 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20646 ) -> bool {
20647 load_dyn_name_atomic_ptr(
20648 get_proc_address,
20649 b"glGetUniformuiv\0",
20650 &self.glGetUniformuiv_p,
20651 )
20652 }
20653 #[inline]
20654 #[doc(hidden)]
20655 pub fn GetUniformuiv_is_loaded(&self) -> bool {
20656 !self.glGetUniformuiv_p.load(RELAX).is_null()
20657 }
20658 #[cfg_attr(feature = "inline", inline)]
20661 #[cfg_attr(feature = "inline_always", inline(always))]
20662 pub unsafe fn GetVertexArrayIndexed64iv(
20663 &self,
20664 vaobj: GLuint,
20665 index: GLuint,
20666 pname: GLenum,
20667 param: *mut GLint64,
20668 ) {
20669 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20670 {
20671 trace!(
20672 "calling gl.GetVertexArrayIndexed64iv({:?}, {:?}, {:#X}, {:p});",
20673 vaobj,
20674 index,
20675 pname,
20676 param
20677 );
20678 }
20679 let out = call_atomic_ptr_4arg(
20680 "glGetVertexArrayIndexed64iv",
20681 &self.glGetVertexArrayIndexed64iv_p,
20682 vaobj,
20683 index,
20684 pname,
20685 param,
20686 );
20687 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20688 {
20689 self.automatic_glGetError("glGetVertexArrayIndexed64iv");
20690 }
20691 out
20692 }
20693 #[doc(hidden)]
20694 pub unsafe fn GetVertexArrayIndexed64iv_load_with_dyn(
20695 &self,
20696 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20697 ) -> bool {
20698 load_dyn_name_atomic_ptr(
20699 get_proc_address,
20700 b"glGetVertexArrayIndexed64iv\0",
20701 &self.glGetVertexArrayIndexed64iv_p,
20702 )
20703 }
20704 #[inline]
20705 #[doc(hidden)]
20706 pub fn GetVertexArrayIndexed64iv_is_loaded(&self) -> bool {
20707 !self.glGetVertexArrayIndexed64iv_p.load(RELAX).is_null()
20708 }
20709 #[cfg_attr(feature = "inline", inline)]
20712 #[cfg_attr(feature = "inline_always", inline(always))]
20713 pub unsafe fn GetVertexArrayIndexediv(
20714 &self,
20715 vaobj: GLuint,
20716 index: GLuint,
20717 pname: GLenum,
20718 param: *mut GLint,
20719 ) {
20720 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20721 {
20722 trace!(
20723 "calling gl.GetVertexArrayIndexediv({:?}, {:?}, {:#X}, {:p});",
20724 vaobj,
20725 index,
20726 pname,
20727 param
20728 );
20729 }
20730 let out = call_atomic_ptr_4arg(
20731 "glGetVertexArrayIndexediv",
20732 &self.glGetVertexArrayIndexediv_p,
20733 vaobj,
20734 index,
20735 pname,
20736 param,
20737 );
20738 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20739 {
20740 self.automatic_glGetError("glGetVertexArrayIndexediv");
20741 }
20742 out
20743 }
20744 #[doc(hidden)]
20745 pub unsafe fn GetVertexArrayIndexediv_load_with_dyn(
20746 &self,
20747 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20748 ) -> bool {
20749 load_dyn_name_atomic_ptr(
20750 get_proc_address,
20751 b"glGetVertexArrayIndexediv\0",
20752 &self.glGetVertexArrayIndexediv_p,
20753 )
20754 }
20755 #[inline]
20756 #[doc(hidden)]
20757 pub fn GetVertexArrayIndexediv_is_loaded(&self) -> bool {
20758 !self.glGetVertexArrayIndexediv_p.load(RELAX).is_null()
20759 }
20760 #[cfg_attr(feature = "inline", inline)]
20763 #[cfg_attr(feature = "inline_always", inline(always))]
20764 pub unsafe fn GetVertexArrayiv(&self, vaobj: GLuint, pname: GLenum, param: *mut GLint) {
20765 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20766 {
20767 trace!(
20768 "calling gl.GetVertexArrayiv({:?}, {:#X}, {:p});",
20769 vaobj,
20770 pname,
20771 param
20772 );
20773 }
20774 let out = call_atomic_ptr_3arg(
20775 "glGetVertexArrayiv",
20776 &self.glGetVertexArrayiv_p,
20777 vaobj,
20778 pname,
20779 param,
20780 );
20781 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20782 {
20783 self.automatic_glGetError("glGetVertexArrayiv");
20784 }
20785 out
20786 }
20787 #[doc(hidden)]
20788 pub unsafe fn GetVertexArrayiv_load_with_dyn(
20789 &self,
20790 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20791 ) -> bool {
20792 load_dyn_name_atomic_ptr(
20793 get_proc_address,
20794 b"glGetVertexArrayiv\0",
20795 &self.glGetVertexArrayiv_p,
20796 )
20797 }
20798 #[inline]
20799 #[doc(hidden)]
20800 pub fn GetVertexArrayiv_is_loaded(&self) -> bool {
20801 !self.glGetVertexArrayiv_p.load(RELAX).is_null()
20802 }
20803 #[cfg_attr(feature = "inline", inline)]
20807 #[cfg_attr(feature = "inline_always", inline(always))]
20808 pub unsafe fn GetVertexAttribIiv(&self, index: GLuint, pname: GLenum, params: *mut GLint) {
20809 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20810 {
20811 trace!(
20812 "calling gl.GetVertexAttribIiv({:?}, {:#X}, {:p});",
20813 index,
20814 pname,
20815 params
20816 );
20817 }
20818 let out = call_atomic_ptr_3arg(
20819 "glGetVertexAttribIiv",
20820 &self.glGetVertexAttribIiv_p,
20821 index,
20822 pname,
20823 params,
20824 );
20825 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20826 {
20827 self.automatic_glGetError("glGetVertexAttribIiv");
20828 }
20829 out
20830 }
20831 #[doc(hidden)]
20832 pub unsafe fn GetVertexAttribIiv_load_with_dyn(
20833 &self,
20834 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20835 ) -> bool {
20836 load_dyn_name_atomic_ptr(
20837 get_proc_address,
20838 b"glGetVertexAttribIiv\0",
20839 &self.glGetVertexAttribIiv_p,
20840 )
20841 }
20842 #[inline]
20843 #[doc(hidden)]
20844 pub fn GetVertexAttribIiv_is_loaded(&self) -> bool {
20845 !self.glGetVertexAttribIiv_p.load(RELAX).is_null()
20846 }
20847 #[cfg_attr(feature = "inline", inline)]
20851 #[cfg_attr(feature = "inline_always", inline(always))]
20852 pub unsafe fn GetVertexAttribIuiv(
20853 &self,
20854 index: GLuint,
20855 pname: GLenum,
20856 params: *mut GLuint,
20857 ) {
20858 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20859 {
20860 trace!(
20861 "calling gl.GetVertexAttribIuiv({:?}, {:#X}, {:p});",
20862 index,
20863 pname,
20864 params
20865 );
20866 }
20867 let out = call_atomic_ptr_3arg(
20868 "glGetVertexAttribIuiv",
20869 &self.glGetVertexAttribIuiv_p,
20870 index,
20871 pname,
20872 params,
20873 );
20874 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20875 {
20876 self.automatic_glGetError("glGetVertexAttribIuiv");
20877 }
20878 out
20879 }
20880 #[doc(hidden)]
20881 pub unsafe fn GetVertexAttribIuiv_load_with_dyn(
20882 &self,
20883 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20884 ) -> bool {
20885 load_dyn_name_atomic_ptr(
20886 get_proc_address,
20887 b"glGetVertexAttribIuiv\0",
20888 &self.glGetVertexAttribIuiv_p,
20889 )
20890 }
20891 #[inline]
20892 #[doc(hidden)]
20893 pub fn GetVertexAttribIuiv_is_loaded(&self) -> bool {
20894 !self.glGetVertexAttribIuiv_p.load(RELAX).is_null()
20895 }
20896 #[cfg_attr(feature = "inline", inline)]
20900 #[cfg_attr(feature = "inline_always", inline(always))]
20901 pub unsafe fn GetVertexAttribLdv(
20902 &self,
20903 index: GLuint,
20904 pname: GLenum,
20905 params: *mut GLdouble,
20906 ) {
20907 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20908 {
20909 trace!(
20910 "calling gl.GetVertexAttribLdv({:?}, {:#X}, {:p});",
20911 index,
20912 pname,
20913 params
20914 );
20915 }
20916 let out = call_atomic_ptr_3arg(
20917 "glGetVertexAttribLdv",
20918 &self.glGetVertexAttribLdv_p,
20919 index,
20920 pname,
20921 params,
20922 );
20923 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20924 {
20925 self.automatic_glGetError("glGetVertexAttribLdv");
20926 }
20927 out
20928 }
20929 #[doc(hidden)]
20930 pub unsafe fn GetVertexAttribLdv_load_with_dyn(
20931 &self,
20932 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20933 ) -> bool {
20934 load_dyn_name_atomic_ptr(
20935 get_proc_address,
20936 b"glGetVertexAttribLdv\0",
20937 &self.glGetVertexAttribLdv_p,
20938 )
20939 }
20940 #[inline]
20941 #[doc(hidden)]
20942 pub fn GetVertexAttribLdv_is_loaded(&self) -> bool {
20943 !self.glGetVertexAttribLdv_p.load(RELAX).is_null()
20944 }
20945 #[cfg_attr(feature = "inline", inline)]
20949 #[cfg_attr(feature = "inline_always", inline(always))]
20950 pub unsafe fn GetVertexAttribPointerv(
20951 &self,
20952 index: GLuint,
20953 pname: GLenum,
20954 pointer: *mut *mut c_void,
20955 ) {
20956 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20957 {
20958 trace!(
20959 "calling gl.GetVertexAttribPointerv({:?}, {:#X}, {:p});",
20960 index,
20961 pname,
20962 pointer
20963 );
20964 }
20965 let out = call_atomic_ptr_3arg(
20966 "glGetVertexAttribPointerv",
20967 &self.glGetVertexAttribPointerv_p,
20968 index,
20969 pname,
20970 pointer,
20971 );
20972 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20973 {
20974 self.automatic_glGetError("glGetVertexAttribPointerv");
20975 }
20976 out
20977 }
20978 #[doc(hidden)]
20979 pub unsafe fn GetVertexAttribPointerv_load_with_dyn(
20980 &self,
20981 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20982 ) -> bool {
20983 load_dyn_name_atomic_ptr(
20984 get_proc_address,
20985 b"glGetVertexAttribPointerv\0",
20986 &self.glGetVertexAttribPointerv_p,
20987 )
20988 }
20989 #[inline]
20990 #[doc(hidden)]
20991 pub fn GetVertexAttribPointerv_is_loaded(&self) -> bool {
20992 !self.glGetVertexAttribPointerv_p.load(RELAX).is_null()
20993 }
20994 #[cfg_attr(feature = "inline", inline)]
20998 #[cfg_attr(feature = "inline_always", inline(always))]
20999 pub unsafe fn GetVertexAttribdv(
21000 &self,
21001 index: GLuint,
21002 pname: GLenum,
21003 params: *mut GLdouble,
21004 ) {
21005 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21006 {
21007 trace!(
21008 "calling gl.GetVertexAttribdv({:?}, {:#X}, {:p});",
21009 index,
21010 pname,
21011 params
21012 );
21013 }
21014 let out = call_atomic_ptr_3arg(
21015 "glGetVertexAttribdv",
21016 &self.glGetVertexAttribdv_p,
21017 index,
21018 pname,
21019 params,
21020 );
21021 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21022 {
21023 self.automatic_glGetError("glGetVertexAttribdv");
21024 }
21025 out
21026 }
21027 #[doc(hidden)]
21028 pub unsafe fn GetVertexAttribdv_load_with_dyn(
21029 &self,
21030 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21031 ) -> bool {
21032 load_dyn_name_atomic_ptr(
21033 get_proc_address,
21034 b"glGetVertexAttribdv\0",
21035 &self.glGetVertexAttribdv_p,
21036 )
21037 }
21038 #[inline]
21039 #[doc(hidden)]
21040 pub fn GetVertexAttribdv_is_loaded(&self) -> bool {
21041 !self.glGetVertexAttribdv_p.load(RELAX).is_null()
21042 }
21043 #[cfg_attr(feature = "inline", inline)]
21047 #[cfg_attr(feature = "inline_always", inline(always))]
21048 pub unsafe fn GetVertexAttribfv(&self, index: GLuint, pname: GLenum, params: *mut GLfloat) {
21049 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21050 {
21051 trace!(
21052 "calling gl.GetVertexAttribfv({:?}, {:#X}, {:p});",
21053 index,
21054 pname,
21055 params
21056 );
21057 }
21058 let out = call_atomic_ptr_3arg(
21059 "glGetVertexAttribfv",
21060 &self.glGetVertexAttribfv_p,
21061 index,
21062 pname,
21063 params,
21064 );
21065 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21066 {
21067 self.automatic_glGetError("glGetVertexAttribfv");
21068 }
21069 out
21070 }
21071 #[doc(hidden)]
21072 pub unsafe fn GetVertexAttribfv_load_with_dyn(
21073 &self,
21074 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21075 ) -> bool {
21076 load_dyn_name_atomic_ptr(
21077 get_proc_address,
21078 b"glGetVertexAttribfv\0",
21079 &self.glGetVertexAttribfv_p,
21080 )
21081 }
21082 #[inline]
21083 #[doc(hidden)]
21084 pub fn GetVertexAttribfv_is_loaded(&self) -> bool {
21085 !self.glGetVertexAttribfv_p.load(RELAX).is_null()
21086 }
21087 #[cfg_attr(feature = "inline", inline)]
21091 #[cfg_attr(feature = "inline_always", inline(always))]
21092 pub unsafe fn GetVertexAttribiv(&self, index: GLuint, pname: GLenum, params: *mut GLint) {
21093 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21094 {
21095 trace!(
21096 "calling gl.GetVertexAttribiv({:?}, {:#X}, {:p});",
21097 index,
21098 pname,
21099 params
21100 );
21101 }
21102 let out = call_atomic_ptr_3arg(
21103 "glGetVertexAttribiv",
21104 &self.glGetVertexAttribiv_p,
21105 index,
21106 pname,
21107 params,
21108 );
21109 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21110 {
21111 self.automatic_glGetError("glGetVertexAttribiv");
21112 }
21113 out
21114 }
21115 #[doc(hidden)]
21116 pub unsafe fn GetVertexAttribiv_load_with_dyn(
21117 &self,
21118 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21119 ) -> bool {
21120 load_dyn_name_atomic_ptr(
21121 get_proc_address,
21122 b"glGetVertexAttribiv\0",
21123 &self.glGetVertexAttribiv_p,
21124 )
21125 }
21126 #[inline]
21127 #[doc(hidden)]
21128 pub fn GetVertexAttribiv_is_loaded(&self) -> bool {
21129 !self.glGetVertexAttribiv_p.load(RELAX).is_null()
21130 }
21131 #[cfg_attr(feature = "inline", inline)]
21134 #[cfg_attr(feature = "inline_always", inline(always))]
21135 pub unsafe fn GetnCompressedTexImage(
21136 &self,
21137 target: GLenum,
21138 lod: GLint,
21139 bufSize: GLsizei,
21140 pixels: *mut c_void,
21141 ) {
21142 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21143 {
21144 trace!(
21145 "calling gl.GetnCompressedTexImage({:#X}, {:?}, {:?}, {:p});",
21146 target,
21147 lod,
21148 bufSize,
21149 pixels
21150 );
21151 }
21152 let out = call_atomic_ptr_4arg(
21153 "glGetnCompressedTexImage",
21154 &self.glGetnCompressedTexImage_p,
21155 target,
21156 lod,
21157 bufSize,
21158 pixels,
21159 );
21160 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21161 {
21162 self.automatic_glGetError("glGetnCompressedTexImage");
21163 }
21164 out
21165 }
21166 #[doc(hidden)]
21167 pub unsafe fn GetnCompressedTexImage_load_with_dyn(
21168 &self,
21169 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21170 ) -> bool {
21171 load_dyn_name_atomic_ptr(
21172 get_proc_address,
21173 b"glGetnCompressedTexImage\0",
21174 &self.glGetnCompressedTexImage_p,
21175 )
21176 }
21177 #[inline]
21178 #[doc(hidden)]
21179 pub fn GetnCompressedTexImage_is_loaded(&self) -> bool {
21180 !self.glGetnCompressedTexImage_p.load(RELAX).is_null()
21181 }
21182 #[cfg_attr(feature = "inline", inline)]
21188 #[cfg_attr(feature = "inline_always", inline(always))]
21189 pub unsafe fn GetnTexImage(
21190 &self,
21191 target: GLenum,
21192 level: GLint,
21193 format: GLenum,
21194 type_: GLenum,
21195 bufSize: GLsizei,
21196 pixels: *mut c_void,
21197 ) {
21198 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21199 {
21200 trace!(
21201 "calling gl.GetnTexImage({:#X}, {:?}, {:#X}, {:#X}, {:?}, {:p});",
21202 target,
21203 level,
21204 format,
21205 type_,
21206 bufSize,
21207 pixels
21208 );
21209 }
21210 let out = call_atomic_ptr_6arg(
21211 "glGetnTexImage",
21212 &self.glGetnTexImage_p,
21213 target,
21214 level,
21215 format,
21216 type_,
21217 bufSize,
21218 pixels,
21219 );
21220 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21221 {
21222 self.automatic_glGetError("glGetnTexImage");
21223 }
21224 out
21225 }
21226 #[doc(hidden)]
21227 pub unsafe fn GetnTexImage_load_with_dyn(
21228 &self,
21229 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21230 ) -> bool {
21231 load_dyn_name_atomic_ptr(
21232 get_proc_address,
21233 b"glGetnTexImage\0",
21234 &self.glGetnTexImage_p,
21235 )
21236 }
21237 #[inline]
21238 #[doc(hidden)]
21239 pub fn GetnTexImage_is_loaded(&self) -> bool {
21240 !self.glGetnTexImage_p.load(RELAX).is_null()
21241 }
21242 #[cfg_attr(feature = "inline", inline)]
21245 #[cfg_attr(feature = "inline_always", inline(always))]
21246 pub unsafe fn GetnUniformdv(
21247 &self,
21248 program: GLuint,
21249 location: GLint,
21250 bufSize: GLsizei,
21251 params: *mut GLdouble,
21252 ) {
21253 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21254 {
21255 trace!(
21256 "calling gl.GetnUniformdv({:?}, {:?}, {:?}, {:p});",
21257 program,
21258 location,
21259 bufSize,
21260 params
21261 );
21262 }
21263 let out = call_atomic_ptr_4arg(
21264 "glGetnUniformdv",
21265 &self.glGetnUniformdv_p,
21266 program,
21267 location,
21268 bufSize,
21269 params,
21270 );
21271 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21272 {
21273 self.automatic_glGetError("glGetnUniformdv");
21274 }
21275 out
21276 }
21277 #[doc(hidden)]
21278 pub unsafe fn GetnUniformdv_load_with_dyn(
21279 &self,
21280 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21281 ) -> bool {
21282 load_dyn_name_atomic_ptr(
21283 get_proc_address,
21284 b"glGetnUniformdv\0",
21285 &self.glGetnUniformdv_p,
21286 )
21287 }
21288 #[inline]
21289 #[doc(hidden)]
21290 pub fn GetnUniformdv_is_loaded(&self) -> bool {
21291 !self.glGetnUniformdv_p.load(RELAX).is_null()
21292 }
21293 #[cfg_attr(feature = "inline", inline)]
21296 #[cfg_attr(feature = "inline_always", inline(always))]
21297 pub unsafe fn GetnUniformfv(
21298 &self,
21299 program: GLuint,
21300 location: GLint,
21301 bufSize: GLsizei,
21302 params: *mut GLfloat,
21303 ) {
21304 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21305 {
21306 trace!(
21307 "calling gl.GetnUniformfv({:?}, {:?}, {:?}, {:p});",
21308 program,
21309 location,
21310 bufSize,
21311 params
21312 );
21313 }
21314 let out = call_atomic_ptr_4arg(
21315 "glGetnUniformfv",
21316 &self.glGetnUniformfv_p,
21317 program,
21318 location,
21319 bufSize,
21320 params,
21321 );
21322 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21323 {
21324 self.automatic_glGetError("glGetnUniformfv");
21325 }
21326 out
21327 }
21328 #[doc(hidden)]
21329 pub unsafe fn GetnUniformfv_load_with_dyn(
21330 &self,
21331 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21332 ) -> bool {
21333 load_dyn_name_atomic_ptr(
21334 get_proc_address,
21335 b"glGetnUniformfv\0",
21336 &self.glGetnUniformfv_p,
21337 )
21338 }
21339 #[inline]
21340 #[doc(hidden)]
21341 pub fn GetnUniformfv_is_loaded(&self) -> bool {
21342 !self.glGetnUniformfv_p.load(RELAX).is_null()
21343 }
21344 #[cfg_attr(feature = "inline", inline)]
21347 #[cfg_attr(feature = "inline_always", inline(always))]
21348 pub unsafe fn GetnUniformiv(
21349 &self,
21350 program: GLuint,
21351 location: GLint,
21352 bufSize: GLsizei,
21353 params: *mut GLint,
21354 ) {
21355 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21356 {
21357 trace!(
21358 "calling gl.GetnUniformiv({:?}, {:?}, {:?}, {:p});",
21359 program,
21360 location,
21361 bufSize,
21362 params
21363 );
21364 }
21365 let out = call_atomic_ptr_4arg(
21366 "glGetnUniformiv",
21367 &self.glGetnUniformiv_p,
21368 program,
21369 location,
21370 bufSize,
21371 params,
21372 );
21373 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21374 {
21375 self.automatic_glGetError("glGetnUniformiv");
21376 }
21377 out
21378 }
21379 #[doc(hidden)]
21380 pub unsafe fn GetnUniformiv_load_with_dyn(
21381 &self,
21382 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21383 ) -> bool {
21384 load_dyn_name_atomic_ptr(
21385 get_proc_address,
21386 b"glGetnUniformiv\0",
21387 &self.glGetnUniformiv_p,
21388 )
21389 }
21390 #[inline]
21391 #[doc(hidden)]
21392 pub fn GetnUniformiv_is_loaded(&self) -> bool {
21393 !self.glGetnUniformiv_p.load(RELAX).is_null()
21394 }
21395 #[cfg_attr(feature = "inline", inline)]
21398 #[cfg_attr(feature = "inline_always", inline(always))]
21399 pub unsafe fn GetnUniformuiv(
21400 &self,
21401 program: GLuint,
21402 location: GLint,
21403 bufSize: GLsizei,
21404 params: *mut GLuint,
21405 ) {
21406 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21407 {
21408 trace!(
21409 "calling gl.GetnUniformuiv({:?}, {:?}, {:?}, {:p});",
21410 program,
21411 location,
21412 bufSize,
21413 params
21414 );
21415 }
21416 let out = call_atomic_ptr_4arg(
21417 "glGetnUniformuiv",
21418 &self.glGetnUniformuiv_p,
21419 program,
21420 location,
21421 bufSize,
21422 params,
21423 );
21424 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21425 {
21426 self.automatic_glGetError("glGetnUniformuiv");
21427 }
21428 out
21429 }
21430 #[doc(hidden)]
21431 pub unsafe fn GetnUniformuiv_load_with_dyn(
21432 &self,
21433 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21434 ) -> bool {
21435 load_dyn_name_atomic_ptr(
21436 get_proc_address,
21437 b"glGetnUniformuiv\0",
21438 &self.glGetnUniformuiv_p,
21439 )
21440 }
21441 #[inline]
21442 #[doc(hidden)]
21443 pub fn GetnUniformuiv_is_loaded(&self) -> bool {
21444 !self.glGetnUniformuiv_p.load(RELAX).is_null()
21445 }
21446 #[cfg_attr(feature = "inline", inline)]
21450 #[cfg_attr(feature = "inline_always", inline(always))]
21451 pub unsafe fn Hint(&self, target: GLenum, mode: GLenum) {
21452 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21453 {
21454 trace!("calling gl.Hint({:#X}, {:#X});", target, mode);
21455 }
21456 let out = call_atomic_ptr_2arg("glHint", &self.glHint_p, target, mode);
21457 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21458 {
21459 self.automatic_glGetError("glHint");
21460 }
21461 out
21462 }
21463 #[doc(hidden)]
21464 pub unsafe fn Hint_load_with_dyn(
21465 &self,
21466 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21467 ) -> bool {
21468 load_dyn_name_atomic_ptr(get_proc_address, b"glHint\0", &self.glHint_p)
21469 }
21470 #[inline]
21471 #[doc(hidden)]
21472 pub fn Hint_is_loaded(&self) -> bool {
21473 !self.glHint_p.load(RELAX).is_null()
21474 }
21475 #[cfg_attr(feature = "inline", inline)]
21477 #[cfg_attr(feature = "inline_always", inline(always))]
21478 pub unsafe fn InvalidateBufferData(&self, buffer: GLuint) {
21479 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21480 {
21481 trace!("calling gl.InvalidateBufferData({:?});", buffer);
21482 }
21483 let out = call_atomic_ptr_1arg(
21484 "glInvalidateBufferData",
21485 &self.glInvalidateBufferData_p,
21486 buffer,
21487 );
21488 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21489 {
21490 self.automatic_glGetError("glInvalidateBufferData");
21491 }
21492 out
21493 }
21494 #[doc(hidden)]
21495 pub unsafe fn InvalidateBufferData_load_with_dyn(
21496 &self,
21497 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21498 ) -> bool {
21499 load_dyn_name_atomic_ptr(
21500 get_proc_address,
21501 b"glInvalidateBufferData\0",
21502 &self.glInvalidateBufferData_p,
21503 )
21504 }
21505 #[inline]
21506 #[doc(hidden)]
21507 pub fn InvalidateBufferData_is_loaded(&self) -> bool {
21508 !self.glInvalidateBufferData_p.load(RELAX).is_null()
21509 }
21510 #[cfg_attr(feature = "inline", inline)]
21514 #[cfg_attr(feature = "inline_always", inline(always))]
21515 pub unsafe fn InvalidateBufferSubData(
21516 &self,
21517 buffer: GLuint,
21518 offset: GLintptr,
21519 length: GLsizeiptr,
21520 ) {
21521 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21522 {
21523 trace!(
21524 "calling gl.InvalidateBufferSubData({:?}, {:?}, {:?});",
21525 buffer,
21526 offset,
21527 length
21528 );
21529 }
21530 let out = call_atomic_ptr_3arg(
21531 "glInvalidateBufferSubData",
21532 &self.glInvalidateBufferSubData_p,
21533 buffer,
21534 offset,
21535 length,
21536 );
21537 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21538 {
21539 self.automatic_glGetError("glInvalidateBufferSubData");
21540 }
21541 out
21542 }
21543 #[doc(hidden)]
21544 pub unsafe fn InvalidateBufferSubData_load_with_dyn(
21545 &self,
21546 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21547 ) -> bool {
21548 load_dyn_name_atomic_ptr(
21549 get_proc_address,
21550 b"glInvalidateBufferSubData\0",
21551 &self.glInvalidateBufferSubData_p,
21552 )
21553 }
21554 #[inline]
21555 #[doc(hidden)]
21556 pub fn InvalidateBufferSubData_is_loaded(&self) -> bool {
21557 !self.glInvalidateBufferSubData_p.load(RELAX).is_null()
21558 }
21559 #[cfg_attr(feature = "inline", inline)]
21564 #[cfg_attr(feature = "inline_always", inline(always))]
21565 pub unsafe fn InvalidateFramebuffer(
21566 &self,
21567 target: GLenum,
21568 numAttachments: GLsizei,
21569 attachments: *const GLenum,
21570 ) {
21571 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21572 {
21573 trace!(
21574 "calling gl.InvalidateFramebuffer({:#X}, {:?}, {:p});",
21575 target,
21576 numAttachments,
21577 attachments
21578 );
21579 }
21580 let out = call_atomic_ptr_3arg(
21581 "glInvalidateFramebuffer",
21582 &self.glInvalidateFramebuffer_p,
21583 target,
21584 numAttachments,
21585 attachments,
21586 );
21587 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21588 {
21589 self.automatic_glGetError("glInvalidateFramebuffer");
21590 }
21591 out
21592 }
21593 #[doc(hidden)]
21594 pub unsafe fn InvalidateFramebuffer_load_with_dyn(
21595 &self,
21596 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21597 ) -> bool {
21598 load_dyn_name_atomic_ptr(
21599 get_proc_address,
21600 b"glInvalidateFramebuffer\0",
21601 &self.glInvalidateFramebuffer_p,
21602 )
21603 }
21604 #[inline]
21605 #[doc(hidden)]
21606 pub fn InvalidateFramebuffer_is_loaded(&self) -> bool {
21607 !self.glInvalidateFramebuffer_p.load(RELAX).is_null()
21608 }
21609 #[cfg_attr(feature = "inline", inline)]
21612 #[cfg_attr(feature = "inline_always", inline(always))]
21613 pub unsafe fn InvalidateNamedFramebufferData(
21614 &self,
21615 framebuffer: GLuint,
21616 numAttachments: GLsizei,
21617 attachments: *const GLenum,
21618 ) {
21619 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21620 {
21621 trace!(
21622 "calling gl.InvalidateNamedFramebufferData({:?}, {:?}, {:p});",
21623 framebuffer,
21624 numAttachments,
21625 attachments
21626 );
21627 }
21628 let out = call_atomic_ptr_3arg(
21629 "glInvalidateNamedFramebufferData",
21630 &self.glInvalidateNamedFramebufferData_p,
21631 framebuffer,
21632 numAttachments,
21633 attachments,
21634 );
21635 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21636 {
21637 self.automatic_glGetError("glInvalidateNamedFramebufferData");
21638 }
21639 out
21640 }
21641 #[doc(hidden)]
21642 pub unsafe fn InvalidateNamedFramebufferData_load_with_dyn(
21643 &self,
21644 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21645 ) -> bool {
21646 load_dyn_name_atomic_ptr(
21647 get_proc_address,
21648 b"glInvalidateNamedFramebufferData\0",
21649 &self.glInvalidateNamedFramebufferData_p,
21650 )
21651 }
21652 #[inline]
21653 #[doc(hidden)]
21654 pub fn InvalidateNamedFramebufferData_is_loaded(&self) -> bool {
21655 !self
21656 .glInvalidateNamedFramebufferData_p
21657 .load(RELAX)
21658 .is_null()
21659 }
21660 #[cfg_attr(feature = "inline", inline)]
21663 #[cfg_attr(feature = "inline_always", inline(always))]
21664 pub unsafe fn InvalidateNamedFramebufferSubData(
21665 &self,
21666 framebuffer: GLuint,
21667 numAttachments: GLsizei,
21668 attachments: *const GLenum,
21669 x: GLint,
21670 y: GLint,
21671 width: GLsizei,
21672 height: GLsizei,
21673 ) {
21674 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21675 {
21676 trace!("calling gl.InvalidateNamedFramebufferSubData({:?}, {:?}, {:p}, {:?}, {:?}, {:?}, {:?});", framebuffer, numAttachments, attachments, x, y, width, height);
21677 }
21678 let out = call_atomic_ptr_7arg(
21679 "glInvalidateNamedFramebufferSubData",
21680 &self.glInvalidateNamedFramebufferSubData_p,
21681 framebuffer,
21682 numAttachments,
21683 attachments,
21684 x,
21685 y,
21686 width,
21687 height,
21688 );
21689 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21690 {
21691 self.automatic_glGetError("glInvalidateNamedFramebufferSubData");
21692 }
21693 out
21694 }
21695 #[doc(hidden)]
21696 pub unsafe fn InvalidateNamedFramebufferSubData_load_with_dyn(
21697 &self,
21698 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21699 ) -> bool {
21700 load_dyn_name_atomic_ptr(
21701 get_proc_address,
21702 b"glInvalidateNamedFramebufferSubData\0",
21703 &self.glInvalidateNamedFramebufferSubData_p,
21704 )
21705 }
21706 #[inline]
21707 #[doc(hidden)]
21708 pub fn InvalidateNamedFramebufferSubData_is_loaded(&self) -> bool {
21709 !self
21710 .glInvalidateNamedFramebufferSubData_p
21711 .load(RELAX)
21712 .is_null()
21713 }
21714 #[cfg_attr(feature = "inline", inline)]
21719 #[cfg_attr(feature = "inline_always", inline(always))]
21720 pub unsafe fn InvalidateSubFramebuffer(
21721 &self,
21722 target: GLenum,
21723 numAttachments: GLsizei,
21724 attachments: *const GLenum,
21725 x: GLint,
21726 y: GLint,
21727 width: GLsizei,
21728 height: GLsizei,
21729 ) {
21730 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21731 {
21732 trace!("calling gl.InvalidateSubFramebuffer({:#X}, {:?}, {:p}, {:?}, {:?}, {:?}, {:?});", target, numAttachments, attachments, x, y, width, height);
21733 }
21734 let out = call_atomic_ptr_7arg(
21735 "glInvalidateSubFramebuffer",
21736 &self.glInvalidateSubFramebuffer_p,
21737 target,
21738 numAttachments,
21739 attachments,
21740 x,
21741 y,
21742 width,
21743 height,
21744 );
21745 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21746 {
21747 self.automatic_glGetError("glInvalidateSubFramebuffer");
21748 }
21749 out
21750 }
21751 #[doc(hidden)]
21752 pub unsafe fn InvalidateSubFramebuffer_load_with_dyn(
21753 &self,
21754 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21755 ) -> bool {
21756 load_dyn_name_atomic_ptr(
21757 get_proc_address,
21758 b"glInvalidateSubFramebuffer\0",
21759 &self.glInvalidateSubFramebuffer_p,
21760 )
21761 }
21762 #[inline]
21763 #[doc(hidden)]
21764 pub fn InvalidateSubFramebuffer_is_loaded(&self) -> bool {
21765 !self.glInvalidateSubFramebuffer_p.load(RELAX).is_null()
21766 }
21767 #[cfg_attr(feature = "inline", inline)]
21769 #[cfg_attr(feature = "inline_always", inline(always))]
21770 pub unsafe fn InvalidateTexImage(&self, texture: GLuint, level: GLint) {
21771 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21772 {
21773 trace!("calling gl.InvalidateTexImage({:?}, {:?});", texture, level);
21774 }
21775 let out = call_atomic_ptr_2arg(
21776 "glInvalidateTexImage",
21777 &self.glInvalidateTexImage_p,
21778 texture,
21779 level,
21780 );
21781 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21782 {
21783 self.automatic_glGetError("glInvalidateTexImage");
21784 }
21785 out
21786 }
21787 #[doc(hidden)]
21788 pub unsafe fn InvalidateTexImage_load_with_dyn(
21789 &self,
21790 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21791 ) -> bool {
21792 load_dyn_name_atomic_ptr(
21793 get_proc_address,
21794 b"glInvalidateTexImage\0",
21795 &self.glInvalidateTexImage_p,
21796 )
21797 }
21798 #[inline]
21799 #[doc(hidden)]
21800 pub fn InvalidateTexImage_is_loaded(&self) -> bool {
21801 !self.glInvalidateTexImage_p.load(RELAX).is_null()
21802 }
21803 #[cfg_attr(feature = "inline", inline)]
21805 #[cfg_attr(feature = "inline_always", inline(always))]
21806 pub unsafe fn InvalidateTexSubImage(
21807 &self,
21808 texture: GLuint,
21809 level: GLint,
21810 xoffset: GLint,
21811 yoffset: GLint,
21812 zoffset: GLint,
21813 width: GLsizei,
21814 height: GLsizei,
21815 depth: GLsizei,
21816 ) {
21817 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21818 {
21819 trace!("calling gl.InvalidateTexSubImage({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", texture, level, xoffset, yoffset, zoffset, width, height, depth);
21820 }
21821 let out = call_atomic_ptr_8arg(
21822 "glInvalidateTexSubImage",
21823 &self.glInvalidateTexSubImage_p,
21824 texture,
21825 level,
21826 xoffset,
21827 yoffset,
21828 zoffset,
21829 width,
21830 height,
21831 depth,
21832 );
21833 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21834 {
21835 self.automatic_glGetError("glInvalidateTexSubImage");
21836 }
21837 out
21838 }
21839 #[doc(hidden)]
21840 pub unsafe fn InvalidateTexSubImage_load_with_dyn(
21841 &self,
21842 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21843 ) -> bool {
21844 load_dyn_name_atomic_ptr(
21845 get_proc_address,
21846 b"glInvalidateTexSubImage\0",
21847 &self.glInvalidateTexSubImage_p,
21848 )
21849 }
21850 #[inline]
21851 #[doc(hidden)]
21852 pub fn InvalidateTexSubImage_is_loaded(&self) -> bool {
21853 !self.glInvalidateTexSubImage_p.load(RELAX).is_null()
21854 }
21855 #[cfg_attr(feature = "inline", inline)]
21857 #[cfg_attr(feature = "inline_always", inline(always))]
21858 pub unsafe fn IsBuffer(&self, buffer: GLuint) -> GLboolean {
21859 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21860 {
21861 trace!("calling gl.IsBuffer({:?});", buffer);
21862 }
21863 let out = call_atomic_ptr_1arg("glIsBuffer", &self.glIsBuffer_p, buffer);
21864 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21865 {
21866 self.automatic_glGetError("glIsBuffer");
21867 }
21868 out
21869 }
21870 #[doc(hidden)]
21871 pub unsafe fn IsBuffer_load_with_dyn(
21872 &self,
21873 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21874 ) -> bool {
21875 load_dyn_name_atomic_ptr(get_proc_address, b"glIsBuffer\0", &self.glIsBuffer_p)
21876 }
21877 #[inline]
21878 #[doc(hidden)]
21879 pub fn IsBuffer_is_loaded(&self) -> bool {
21880 !self.glIsBuffer_p.load(RELAX).is_null()
21881 }
21882 #[cfg_attr(feature = "inline", inline)]
21885 #[cfg_attr(feature = "inline_always", inline(always))]
21886 pub unsafe fn IsEnabled(&self, cap: GLenum) -> GLboolean {
21887 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21888 {
21889 trace!("calling gl.IsEnabled({:#X});", cap);
21890 }
21891 let out = call_atomic_ptr_1arg("glIsEnabled", &self.glIsEnabled_p, cap);
21892 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21893 {
21894 self.automatic_glGetError("glIsEnabled");
21895 }
21896 out
21897 }
21898 #[doc(hidden)]
21899 pub unsafe fn IsEnabled_load_with_dyn(
21900 &self,
21901 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21902 ) -> bool {
21903 load_dyn_name_atomic_ptr(get_proc_address, b"glIsEnabled\0", &self.glIsEnabled_p)
21904 }
21905 #[inline]
21906 #[doc(hidden)]
21907 pub fn IsEnabled_is_loaded(&self) -> bool {
21908 !self.glIsEnabled_p.load(RELAX).is_null()
21909 }
21910 #[cfg_attr(feature = "inline", inline)]
21914 #[cfg_attr(feature = "inline_always", inline(always))]
21915 pub unsafe fn IsEnabledIndexedEXT(&self, target: GLenum, index: GLuint) -> GLboolean {
21916 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21917 {
21918 trace!(
21919 "calling gl.IsEnabledIndexedEXT({:#X}, {:?});",
21920 target,
21921 index
21922 );
21923 }
21924 let out = call_atomic_ptr_2arg(
21925 "glIsEnabledIndexedEXT",
21926 &self.glIsEnabledIndexedEXT_p,
21927 target,
21928 index,
21929 );
21930 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21931 {
21932 self.automatic_glGetError("glIsEnabledIndexedEXT");
21933 }
21934 out
21935 }
21936 #[doc(hidden)]
21937 pub unsafe fn IsEnabledIndexedEXT_load_with_dyn(
21938 &self,
21939 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21940 ) -> bool {
21941 load_dyn_name_atomic_ptr(
21942 get_proc_address,
21943 b"glIsEnabledIndexedEXT\0",
21944 &self.glIsEnabledIndexedEXT_p,
21945 )
21946 }
21947 #[inline]
21948 #[doc(hidden)]
21949 pub fn IsEnabledIndexedEXT_is_loaded(&self) -> bool {
21950 !self.glIsEnabledIndexedEXT_p.load(RELAX).is_null()
21951 }
21952 #[cfg_attr(feature = "inline", inline)]
21955 #[cfg_attr(feature = "inline_always", inline(always))]
21956 pub unsafe fn IsEnabledi(&self, target: GLenum, index: GLuint) -> GLboolean {
21957 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21958 {
21959 trace!("calling gl.IsEnabledi({:#X}, {:?});", target, index);
21960 }
21961 let out = call_atomic_ptr_2arg("glIsEnabledi", &self.glIsEnabledi_p, target, index);
21962 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21963 {
21964 self.automatic_glGetError("glIsEnabledi");
21965 }
21966 out
21967 }
21968 #[doc(hidden)]
21969 pub unsafe fn IsEnabledi_load_with_dyn(
21970 &self,
21971 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21972 ) -> bool {
21973 load_dyn_name_atomic_ptr(get_proc_address, b"glIsEnabledi\0", &self.glIsEnabledi_p)
21974 }
21975 #[inline]
21976 #[doc(hidden)]
21977 pub fn IsEnabledi_is_loaded(&self) -> bool {
21978 !self.glIsEnabledi_p.load(RELAX).is_null()
21979 }
21980 #[cfg_attr(feature = "inline", inline)]
21982 #[cfg_attr(feature = "inline_always", inline(always))]
21983 pub unsafe fn IsFramebuffer(&self, framebuffer: GLuint) -> GLboolean {
21984 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21985 {
21986 trace!("calling gl.IsFramebuffer({:?});", framebuffer);
21987 }
21988 let out = call_atomic_ptr_1arg("glIsFramebuffer", &self.glIsFramebuffer_p, framebuffer);
21989 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21990 {
21991 self.automatic_glGetError("glIsFramebuffer");
21992 }
21993 out
21994 }
21995 #[doc(hidden)]
21996 pub unsafe fn IsFramebuffer_load_with_dyn(
21997 &self,
21998 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21999 ) -> bool {
22000 load_dyn_name_atomic_ptr(
22001 get_proc_address,
22002 b"glIsFramebuffer\0",
22003 &self.glIsFramebuffer_p,
22004 )
22005 }
22006 #[inline]
22007 #[doc(hidden)]
22008 pub fn IsFramebuffer_is_loaded(&self) -> bool {
22009 !self.glIsFramebuffer_p.load(RELAX).is_null()
22010 }
22011 #[cfg_attr(feature = "inline", inline)]
22013 #[cfg_attr(feature = "inline_always", inline(always))]
22014 pub unsafe fn IsProgram(&self, program: GLuint) -> GLboolean {
22015 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22016 {
22017 trace!("calling gl.IsProgram({:?});", program);
22018 }
22019 let out = call_atomic_ptr_1arg("glIsProgram", &self.glIsProgram_p, program);
22020 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22021 {
22022 self.automatic_glGetError("glIsProgram");
22023 }
22024 out
22025 }
22026 #[doc(hidden)]
22027 pub unsafe fn IsProgram_load_with_dyn(
22028 &self,
22029 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22030 ) -> bool {
22031 load_dyn_name_atomic_ptr(get_proc_address, b"glIsProgram\0", &self.glIsProgram_p)
22032 }
22033 #[inline]
22034 #[doc(hidden)]
22035 pub fn IsProgram_is_loaded(&self) -> bool {
22036 !self.glIsProgram_p.load(RELAX).is_null()
22037 }
22038 #[cfg_attr(feature = "inline", inline)]
22040 #[cfg_attr(feature = "inline_always", inline(always))]
22041 pub unsafe fn IsProgramPipeline(&self, pipeline: GLuint) -> GLboolean {
22042 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22043 {
22044 trace!("calling gl.IsProgramPipeline({:?});", pipeline);
22045 }
22046 let out =
22047 call_atomic_ptr_1arg("glIsProgramPipeline", &self.glIsProgramPipeline_p, pipeline);
22048 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22049 {
22050 self.automatic_glGetError("glIsProgramPipeline");
22051 }
22052 out
22053 }
22054 #[doc(hidden)]
22055 pub unsafe fn IsProgramPipeline_load_with_dyn(
22056 &self,
22057 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22058 ) -> bool {
22059 load_dyn_name_atomic_ptr(
22060 get_proc_address,
22061 b"glIsProgramPipeline\0",
22062 &self.glIsProgramPipeline_p,
22063 )
22064 }
22065 #[inline]
22066 #[doc(hidden)]
22067 pub fn IsProgramPipeline_is_loaded(&self) -> bool {
22068 !self.glIsProgramPipeline_p.load(RELAX).is_null()
22069 }
22070 #[cfg_attr(feature = "inline", inline)]
22072 #[cfg_attr(feature = "inline_always", inline(always))]
22073 pub unsafe fn IsQuery(&self, id: GLuint) -> GLboolean {
22074 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22075 {
22076 trace!("calling gl.IsQuery({:?});", id);
22077 }
22078 let out = call_atomic_ptr_1arg("glIsQuery", &self.glIsQuery_p, id);
22079 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22080 {
22081 self.automatic_glGetError("glIsQuery");
22082 }
22083 out
22084 }
22085 #[doc(hidden)]
22086 pub unsafe fn IsQuery_load_with_dyn(
22087 &self,
22088 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22089 ) -> bool {
22090 load_dyn_name_atomic_ptr(get_proc_address, b"glIsQuery\0", &self.glIsQuery_p)
22091 }
22092 #[inline]
22093 #[doc(hidden)]
22094 pub fn IsQuery_is_loaded(&self) -> bool {
22095 !self.glIsQuery_p.load(RELAX).is_null()
22096 }
22097 #[cfg_attr(feature = "inline", inline)]
22099 #[cfg_attr(feature = "inline_always", inline(always))]
22100 pub unsafe fn IsQueryEXT(&self, id: GLuint) -> GLboolean {
22101 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22102 {
22103 trace!("calling gl.IsQueryEXT({:?});", id);
22104 }
22105 let out = call_atomic_ptr_1arg("glIsQueryEXT", &self.glIsQueryEXT_p, id);
22106 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22107 {
22108 self.automatic_glGetError("glIsQueryEXT");
22109 }
22110 out
22111 }
22112 #[doc(hidden)]
22113 pub unsafe fn IsQueryEXT_load_with_dyn(
22114 &self,
22115 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22116 ) -> bool {
22117 load_dyn_name_atomic_ptr(get_proc_address, b"glIsQueryEXT\0", &self.glIsQueryEXT_p)
22118 }
22119 #[inline]
22120 #[doc(hidden)]
22121 pub fn IsQueryEXT_is_loaded(&self) -> bool {
22122 !self.glIsQueryEXT_p.load(RELAX).is_null()
22123 }
22124 #[cfg_attr(feature = "inline", inline)]
22126 #[cfg_attr(feature = "inline_always", inline(always))]
22127 pub unsafe fn IsRenderbuffer(&self, renderbuffer: GLuint) -> GLboolean {
22128 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22129 {
22130 trace!("calling gl.IsRenderbuffer({:?});", renderbuffer);
22131 }
22132 let out =
22133 call_atomic_ptr_1arg("glIsRenderbuffer", &self.glIsRenderbuffer_p, renderbuffer);
22134 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22135 {
22136 self.automatic_glGetError("glIsRenderbuffer");
22137 }
22138 out
22139 }
22140 #[doc(hidden)]
22141 pub unsafe fn IsRenderbuffer_load_with_dyn(
22142 &self,
22143 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22144 ) -> bool {
22145 load_dyn_name_atomic_ptr(
22146 get_proc_address,
22147 b"glIsRenderbuffer\0",
22148 &self.glIsRenderbuffer_p,
22149 )
22150 }
22151 #[inline]
22152 #[doc(hidden)]
22153 pub fn IsRenderbuffer_is_loaded(&self) -> bool {
22154 !self.glIsRenderbuffer_p.load(RELAX).is_null()
22155 }
22156 #[cfg_attr(feature = "inline", inline)]
22158 #[cfg_attr(feature = "inline_always", inline(always))]
22159 pub unsafe fn IsSampler(&self, sampler: GLuint) -> GLboolean {
22160 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22161 {
22162 trace!("calling gl.IsSampler({:?});", sampler);
22163 }
22164 let out = call_atomic_ptr_1arg("glIsSampler", &self.glIsSampler_p, sampler);
22165 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22166 {
22167 self.automatic_glGetError("glIsSampler");
22168 }
22169 out
22170 }
22171 #[doc(hidden)]
22172 pub unsafe fn IsSampler_load_with_dyn(
22173 &self,
22174 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22175 ) -> bool {
22176 load_dyn_name_atomic_ptr(get_proc_address, b"glIsSampler\0", &self.glIsSampler_p)
22177 }
22178 #[inline]
22179 #[doc(hidden)]
22180 pub fn IsSampler_is_loaded(&self) -> bool {
22181 !self.glIsSampler_p.load(RELAX).is_null()
22182 }
22183 #[cfg_attr(feature = "inline", inline)]
22185 #[cfg_attr(feature = "inline_always", inline(always))]
22186 pub unsafe fn IsShader(&self, shader: GLuint) -> GLboolean {
22187 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22188 {
22189 trace!("calling gl.IsShader({:?});", shader);
22190 }
22191 let out = call_atomic_ptr_1arg("glIsShader", &self.glIsShader_p, shader);
22192 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22193 {
22194 self.automatic_glGetError("glIsShader");
22195 }
22196 out
22197 }
22198 #[doc(hidden)]
22199 pub unsafe fn IsShader_load_with_dyn(
22200 &self,
22201 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22202 ) -> bool {
22203 load_dyn_name_atomic_ptr(get_proc_address, b"glIsShader\0", &self.glIsShader_p)
22204 }
22205 #[inline]
22206 #[doc(hidden)]
22207 pub fn IsShader_is_loaded(&self) -> bool {
22208 !self.glIsShader_p.load(RELAX).is_null()
22209 }
22210 #[cfg_attr(feature = "inline", inline)]
22213 #[cfg_attr(feature = "inline_always", inline(always))]
22214 pub unsafe fn IsSync(&self, sync: GLsync) -> GLboolean {
22215 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22216 {
22217 trace!("calling gl.IsSync({:p});", sync);
22218 }
22219 let out = call_atomic_ptr_1arg("glIsSync", &self.glIsSync_p, sync);
22220 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22221 {
22222 self.automatic_glGetError("glIsSync");
22223 }
22224 out
22225 }
22226 #[doc(hidden)]
22227 pub unsafe fn IsSync_load_with_dyn(
22228 &self,
22229 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22230 ) -> bool {
22231 load_dyn_name_atomic_ptr(get_proc_address, b"glIsSync\0", &self.glIsSync_p)
22232 }
22233 #[inline]
22234 #[doc(hidden)]
22235 pub fn IsSync_is_loaded(&self) -> bool {
22236 !self.glIsSync_p.load(RELAX).is_null()
22237 }
22238 #[cfg_attr(feature = "inline", inline)]
22241 #[cfg_attr(feature = "inline_always", inline(always))]
22242 pub unsafe fn IsTexture(&self, texture: GLuint) -> GLboolean {
22243 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22244 {
22245 trace!("calling gl.IsTexture({:?});", texture);
22246 }
22247 let out = call_atomic_ptr_1arg("glIsTexture", &self.glIsTexture_p, texture);
22248 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22249 {
22250 self.automatic_glGetError("glIsTexture");
22251 }
22252 out
22253 }
22254 #[doc(hidden)]
22255 pub unsafe fn IsTexture_load_with_dyn(
22256 &self,
22257 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22258 ) -> bool {
22259 load_dyn_name_atomic_ptr(get_proc_address, b"glIsTexture\0", &self.glIsTexture_p)
22260 }
22261 #[inline]
22262 #[doc(hidden)]
22263 pub fn IsTexture_is_loaded(&self) -> bool {
22264 !self.glIsTexture_p.load(RELAX).is_null()
22265 }
22266 #[cfg_attr(feature = "inline", inline)]
22268 #[cfg_attr(feature = "inline_always", inline(always))]
22269 pub unsafe fn IsTransformFeedback(&self, id: GLuint) -> GLboolean {
22270 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22271 {
22272 trace!("calling gl.IsTransformFeedback({:?});", id);
22273 }
22274 let out =
22275 call_atomic_ptr_1arg("glIsTransformFeedback", &self.glIsTransformFeedback_p, id);
22276 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22277 {
22278 self.automatic_glGetError("glIsTransformFeedback");
22279 }
22280 out
22281 }
22282 #[doc(hidden)]
22283 pub unsafe fn IsTransformFeedback_load_with_dyn(
22284 &self,
22285 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22286 ) -> bool {
22287 load_dyn_name_atomic_ptr(
22288 get_proc_address,
22289 b"glIsTransformFeedback\0",
22290 &self.glIsTransformFeedback_p,
22291 )
22292 }
22293 #[inline]
22294 #[doc(hidden)]
22295 pub fn IsTransformFeedback_is_loaded(&self) -> bool {
22296 !self.glIsTransformFeedback_p.load(RELAX).is_null()
22297 }
22298 #[cfg_attr(feature = "inline", inline)]
22300 #[cfg_attr(feature = "inline_always", inline(always))]
22301 pub unsafe fn IsVertexArray(&self, array: GLuint) -> GLboolean {
22302 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22303 {
22304 trace!("calling gl.IsVertexArray({:?});", array);
22305 }
22306 let out = call_atomic_ptr_1arg("glIsVertexArray", &self.glIsVertexArray_p, array);
22307 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22308 {
22309 self.automatic_glGetError("glIsVertexArray");
22310 }
22311 out
22312 }
22313 #[doc(hidden)]
22314 pub unsafe fn IsVertexArray_load_with_dyn(
22315 &self,
22316 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22317 ) -> bool {
22318 load_dyn_name_atomic_ptr(
22319 get_proc_address,
22320 b"glIsVertexArray\0",
22321 &self.glIsVertexArray_p,
22322 )
22323 }
22324 #[inline]
22325 #[doc(hidden)]
22326 pub fn IsVertexArray_is_loaded(&self) -> bool {
22327 !self.glIsVertexArray_p.load(RELAX).is_null()
22328 }
22329 #[cfg_attr(feature = "inline", inline)]
22332 #[cfg_attr(feature = "inline_always", inline(always))]
22333 pub unsafe fn IsVertexArrayAPPLE(&self, array: GLuint) -> GLboolean {
22334 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22335 {
22336 trace!("calling gl.IsVertexArrayAPPLE({:?});", array);
22337 }
22338 let out =
22339 call_atomic_ptr_1arg("glIsVertexArrayAPPLE", &self.glIsVertexArrayAPPLE_p, array);
22340 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22341 {
22342 self.automatic_glGetError("glIsVertexArrayAPPLE");
22343 }
22344 out
22345 }
22346 #[doc(hidden)]
22347 pub unsafe fn IsVertexArrayAPPLE_load_with_dyn(
22348 &self,
22349 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22350 ) -> bool {
22351 load_dyn_name_atomic_ptr(
22352 get_proc_address,
22353 b"glIsVertexArrayAPPLE\0",
22354 &self.glIsVertexArrayAPPLE_p,
22355 )
22356 }
22357 #[inline]
22358 #[doc(hidden)]
22359 pub fn IsVertexArrayAPPLE_is_loaded(&self) -> bool {
22360 !self.glIsVertexArrayAPPLE_p.load(RELAX).is_null()
22361 }
22362 #[cfg_attr(feature = "inline", inline)]
22365 #[cfg_attr(feature = "inline_always", inline(always))]
22366 pub unsafe fn IsVertexArrayOES(&self, array: GLuint) -> GLboolean {
22367 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22368 {
22369 trace!("calling gl.IsVertexArrayOES({:?});", array);
22370 }
22371 let out = call_atomic_ptr_1arg("glIsVertexArrayOES", &self.glIsVertexArrayOES_p, array);
22372 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22373 {
22374 self.automatic_glGetError("glIsVertexArrayOES");
22375 }
22376 out
22377 }
22378 #[doc(hidden)]
22379 pub unsafe fn IsVertexArrayOES_load_with_dyn(
22380 &self,
22381 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22382 ) -> bool {
22383 load_dyn_name_atomic_ptr(
22384 get_proc_address,
22385 b"glIsVertexArrayOES\0",
22386 &self.glIsVertexArrayOES_p,
22387 )
22388 }
22389 #[inline]
22390 #[doc(hidden)]
22391 pub fn IsVertexArrayOES_is_loaded(&self) -> bool {
22392 !self.glIsVertexArrayOES_p.load(RELAX).is_null()
22393 }
22394 #[cfg_attr(feature = "inline", inline)]
22397 #[cfg_attr(feature = "inline_always", inline(always))]
22398 pub unsafe fn LineWidth(&self, width: GLfloat) {
22399 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22400 {
22401 trace!("calling gl.LineWidth({:?});", width);
22402 }
22403 let out = call_atomic_ptr_1arg("glLineWidth", &self.glLineWidth_p, width);
22404 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22405 {
22406 self.automatic_glGetError("glLineWidth");
22407 }
22408 out
22409 }
22410 #[doc(hidden)]
22411 pub unsafe fn LineWidth_load_with_dyn(
22412 &self,
22413 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22414 ) -> bool {
22415 load_dyn_name_atomic_ptr(get_proc_address, b"glLineWidth\0", &self.glLineWidth_p)
22416 }
22417 #[inline]
22418 #[doc(hidden)]
22419 pub fn LineWidth_is_loaded(&self) -> bool {
22420 !self.glLineWidth_p.load(RELAX).is_null()
22421 }
22422 #[cfg_attr(feature = "inline", inline)]
22424 #[cfg_attr(feature = "inline_always", inline(always))]
22425 pub unsafe fn LinkProgram(&self, program: GLuint) {
22426 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22427 {
22428 trace!("calling gl.LinkProgram({:?});", program);
22429 }
22430 let out = call_atomic_ptr_1arg("glLinkProgram", &self.glLinkProgram_p, program);
22431 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22432 {
22433 self.automatic_glGetError("glLinkProgram");
22434 }
22435 out
22436 }
22437 #[doc(hidden)]
22438 pub unsafe fn LinkProgram_load_with_dyn(
22439 &self,
22440 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22441 ) -> bool {
22442 load_dyn_name_atomic_ptr(get_proc_address, b"glLinkProgram\0", &self.glLinkProgram_p)
22443 }
22444 #[inline]
22445 #[doc(hidden)]
22446 pub fn LinkProgram_is_loaded(&self) -> bool {
22447 !self.glLinkProgram_p.load(RELAX).is_null()
22448 }
22449 #[cfg_attr(feature = "inline", inline)]
22452 #[cfg_attr(feature = "inline_always", inline(always))]
22453 pub unsafe fn LogicOp(&self, opcode: GLenum) {
22454 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22455 {
22456 trace!("calling gl.LogicOp({:#X});", opcode);
22457 }
22458 let out = call_atomic_ptr_1arg("glLogicOp", &self.glLogicOp_p, opcode);
22459 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22460 {
22461 self.automatic_glGetError("glLogicOp");
22462 }
22463 out
22464 }
22465 #[doc(hidden)]
22466 pub unsafe fn LogicOp_load_with_dyn(
22467 &self,
22468 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22469 ) -> bool {
22470 load_dyn_name_atomic_ptr(get_proc_address, b"glLogicOp\0", &self.glLogicOp_p)
22471 }
22472 #[inline]
22473 #[doc(hidden)]
22474 pub fn LogicOp_is_loaded(&self) -> bool {
22475 !self.glLogicOp_p.load(RELAX).is_null()
22476 }
22477 #[cfg_attr(feature = "inline", inline)]
22481 #[cfg_attr(feature = "inline_always", inline(always))]
22482 pub unsafe fn MapBuffer(&self, target: GLenum, access: GLenum) -> *mut c_void {
22483 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22484 {
22485 trace!("calling gl.MapBuffer({:#X}, {:#X});", target, access);
22486 }
22487 let out = call_atomic_ptr_2arg("glMapBuffer", &self.glMapBuffer_p, target, access);
22488 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22489 {
22490 self.automatic_glGetError("glMapBuffer");
22491 }
22492 out
22493 }
22494 #[doc(hidden)]
22495 pub unsafe fn MapBuffer_load_with_dyn(
22496 &self,
22497 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22498 ) -> bool {
22499 load_dyn_name_atomic_ptr(get_proc_address, b"glMapBuffer\0", &self.glMapBuffer_p)
22500 }
22501 #[inline]
22502 #[doc(hidden)]
22503 pub fn MapBuffer_is_loaded(&self) -> bool {
22504 !self.glMapBuffer_p.load(RELAX).is_null()
22505 }
22506 #[cfg_attr(feature = "inline", inline)]
22512 #[cfg_attr(feature = "inline_always", inline(always))]
22513 pub unsafe fn MapBufferRange(
22514 &self,
22515 target: GLenum,
22516 offset: GLintptr,
22517 length: GLsizeiptr,
22518 access: GLbitfield,
22519 ) -> *mut c_void {
22520 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22521 {
22522 trace!(
22523 "calling gl.MapBufferRange({:#X}, {:?}, {:?}, {:?});",
22524 target,
22525 offset,
22526 length,
22527 access
22528 );
22529 }
22530 let out = call_atomic_ptr_4arg(
22531 "glMapBufferRange",
22532 &self.glMapBufferRange_p,
22533 target,
22534 offset,
22535 length,
22536 access,
22537 );
22538 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22539 {
22540 self.automatic_glGetError("glMapBufferRange");
22541 }
22542 out
22543 }
22544 #[doc(hidden)]
22545 pub unsafe fn MapBufferRange_load_with_dyn(
22546 &self,
22547 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22548 ) -> bool {
22549 load_dyn_name_atomic_ptr(
22550 get_proc_address,
22551 b"glMapBufferRange\0",
22552 &self.glMapBufferRange_p,
22553 )
22554 }
22555 #[inline]
22556 #[doc(hidden)]
22557 pub fn MapBufferRange_is_loaded(&self) -> bool {
22558 !self.glMapBufferRange_p.load(RELAX).is_null()
22559 }
22560 #[cfg_attr(feature = "inline", inline)]
22563 #[cfg_attr(feature = "inline_always", inline(always))]
22564 pub unsafe fn MapNamedBuffer(&self, buffer: GLuint, access: GLenum) -> *mut c_void {
22565 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22566 {
22567 trace!("calling gl.MapNamedBuffer({:?}, {:#X});", buffer, access);
22568 }
22569 let out =
22570 call_atomic_ptr_2arg("glMapNamedBuffer", &self.glMapNamedBuffer_p, buffer, access);
22571 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22572 {
22573 self.automatic_glGetError("glMapNamedBuffer");
22574 }
22575 out
22576 }
22577 #[doc(hidden)]
22578 pub unsafe fn MapNamedBuffer_load_with_dyn(
22579 &self,
22580 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22581 ) -> bool {
22582 load_dyn_name_atomic_ptr(
22583 get_proc_address,
22584 b"glMapNamedBuffer\0",
22585 &self.glMapNamedBuffer_p,
22586 )
22587 }
22588 #[inline]
22589 #[doc(hidden)]
22590 pub fn MapNamedBuffer_is_loaded(&self) -> bool {
22591 !self.glMapNamedBuffer_p.load(RELAX).is_null()
22592 }
22593 #[cfg_attr(feature = "inline", inline)]
22597 #[cfg_attr(feature = "inline_always", inline(always))]
22598 pub unsafe fn MapNamedBufferRange(
22599 &self,
22600 buffer: GLuint,
22601 offset: GLintptr,
22602 length: GLsizeiptr,
22603 access: GLbitfield,
22604 ) -> *mut c_void {
22605 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22606 {
22607 trace!(
22608 "calling gl.MapNamedBufferRange({:?}, {:?}, {:?}, {:?});",
22609 buffer,
22610 offset,
22611 length,
22612 access
22613 );
22614 }
22615 let out = call_atomic_ptr_4arg(
22616 "glMapNamedBufferRange",
22617 &self.glMapNamedBufferRange_p,
22618 buffer,
22619 offset,
22620 length,
22621 access,
22622 );
22623 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22624 {
22625 self.automatic_glGetError("glMapNamedBufferRange");
22626 }
22627 out
22628 }
22629 #[doc(hidden)]
22630 pub unsafe fn MapNamedBufferRange_load_with_dyn(
22631 &self,
22632 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22633 ) -> bool {
22634 load_dyn_name_atomic_ptr(
22635 get_proc_address,
22636 b"glMapNamedBufferRange\0",
22637 &self.glMapNamedBufferRange_p,
22638 )
22639 }
22640 #[inline]
22641 #[doc(hidden)]
22642 pub fn MapNamedBufferRange_is_loaded(&self) -> bool {
22643 !self.glMapNamedBufferRange_p.load(RELAX).is_null()
22644 }
22645 #[cfg_attr(feature = "inline", inline)]
22648 #[cfg_attr(feature = "inline_always", inline(always))]
22649 pub unsafe fn MaxShaderCompilerThreadsARB(&self, count: GLuint) {
22650 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22651 {
22652 trace!("calling gl.MaxShaderCompilerThreadsARB({:?});", count);
22653 }
22654 let out = call_atomic_ptr_1arg(
22655 "glMaxShaderCompilerThreadsARB",
22656 &self.glMaxShaderCompilerThreadsARB_p,
22657 count,
22658 );
22659 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22660 {
22661 self.automatic_glGetError("glMaxShaderCompilerThreadsARB");
22662 }
22663 out
22664 }
22665 #[doc(hidden)]
22666 pub unsafe fn MaxShaderCompilerThreadsARB_load_with_dyn(
22667 &self,
22668 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22669 ) -> bool {
22670 load_dyn_name_atomic_ptr(
22671 get_proc_address,
22672 b"glMaxShaderCompilerThreadsARB\0",
22673 &self.glMaxShaderCompilerThreadsARB_p,
22674 )
22675 }
22676 #[inline]
22677 #[doc(hidden)]
22678 pub fn MaxShaderCompilerThreadsARB_is_loaded(&self) -> bool {
22679 !self.glMaxShaderCompilerThreadsARB_p.load(RELAX).is_null()
22680 }
22681 #[cfg_attr(feature = "inline", inline)]
22683 #[cfg_attr(feature = "inline_always", inline(always))]
22684 pub unsafe fn MaxShaderCompilerThreadsKHR(&self, count: GLuint) {
22685 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22686 {
22687 trace!("calling gl.MaxShaderCompilerThreadsKHR({:?});", count);
22688 }
22689 let out = call_atomic_ptr_1arg(
22690 "glMaxShaderCompilerThreadsKHR",
22691 &self.glMaxShaderCompilerThreadsKHR_p,
22692 count,
22693 );
22694 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22695 {
22696 self.automatic_glGetError("glMaxShaderCompilerThreadsKHR");
22697 }
22698 out
22699 }
22700 #[doc(hidden)]
22701 pub unsafe fn MaxShaderCompilerThreadsKHR_load_with_dyn(
22702 &self,
22703 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22704 ) -> bool {
22705 load_dyn_name_atomic_ptr(
22706 get_proc_address,
22707 b"glMaxShaderCompilerThreadsKHR\0",
22708 &self.glMaxShaderCompilerThreadsKHR_p,
22709 )
22710 }
22711 #[inline]
22712 #[doc(hidden)]
22713 pub fn MaxShaderCompilerThreadsKHR_is_loaded(&self) -> bool {
22714 !self.glMaxShaderCompilerThreadsKHR_p.load(RELAX).is_null()
22715 }
22716 #[cfg_attr(feature = "inline", inline)]
22719 #[cfg_attr(feature = "inline_always", inline(always))]
22720 pub unsafe fn MemoryBarrier(&self, barriers: GLbitfield) {
22721 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22722 {
22723 trace!("calling gl.MemoryBarrier({:?});", barriers);
22724 }
22725 let out = call_atomic_ptr_1arg("glMemoryBarrier", &self.glMemoryBarrier_p, barriers);
22726 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22727 {
22728 self.automatic_glGetError("glMemoryBarrier");
22729 }
22730 out
22731 }
22732 #[doc(hidden)]
22733 pub unsafe fn MemoryBarrier_load_with_dyn(
22734 &self,
22735 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22736 ) -> bool {
22737 load_dyn_name_atomic_ptr(
22738 get_proc_address,
22739 b"glMemoryBarrier\0",
22740 &self.glMemoryBarrier_p,
22741 )
22742 }
22743 #[inline]
22744 #[doc(hidden)]
22745 pub fn MemoryBarrier_is_loaded(&self) -> bool {
22746 !self.glMemoryBarrier_p.load(RELAX).is_null()
22747 }
22748 #[cfg_attr(feature = "inline", inline)]
22751 #[cfg_attr(feature = "inline_always", inline(always))]
22752 pub unsafe fn MemoryBarrierByRegion(&self, barriers: GLbitfield) {
22753 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22754 {
22755 trace!("calling gl.MemoryBarrierByRegion({:?});", barriers);
22756 }
22757 let out = call_atomic_ptr_1arg(
22758 "glMemoryBarrierByRegion",
22759 &self.glMemoryBarrierByRegion_p,
22760 barriers,
22761 );
22762 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22763 {
22764 self.automatic_glGetError("glMemoryBarrierByRegion");
22765 }
22766 out
22767 }
22768 #[doc(hidden)]
22769 pub unsafe fn MemoryBarrierByRegion_load_with_dyn(
22770 &self,
22771 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22772 ) -> bool {
22773 load_dyn_name_atomic_ptr(
22774 get_proc_address,
22775 b"glMemoryBarrierByRegion\0",
22776 &self.glMemoryBarrierByRegion_p,
22777 )
22778 }
22779 #[inline]
22780 #[doc(hidden)]
22781 pub fn MemoryBarrierByRegion_is_loaded(&self) -> bool {
22782 !self.glMemoryBarrierByRegion_p.load(RELAX).is_null()
22783 }
22784 #[cfg_attr(feature = "inline", inline)]
22787 #[cfg_attr(feature = "inline_always", inline(always))]
22788 pub unsafe fn MinSampleShading(&self, value: GLfloat) {
22789 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22790 {
22791 trace!("calling gl.MinSampleShading({:?});", value);
22792 }
22793 let out = call_atomic_ptr_1arg("glMinSampleShading", &self.glMinSampleShading_p, value);
22794 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22795 {
22796 self.automatic_glGetError("glMinSampleShading");
22797 }
22798 out
22799 }
22800 #[doc(hidden)]
22801 pub unsafe fn MinSampleShading_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"glMinSampleShading\0",
22808 &self.glMinSampleShading_p,
22809 )
22810 }
22811 #[inline]
22812 #[doc(hidden)]
22813 pub fn MinSampleShading_is_loaded(&self) -> bool {
22814 !self.glMinSampleShading_p.load(RELAX).is_null()
22815 }
22816 #[cfg_attr(feature = "inline", inline)]
22821 #[cfg_attr(feature = "inline_always", inline(always))]
22822 pub unsafe fn MultiDrawArrays(
22823 &self,
22824 mode: GLenum,
22825 first: *const GLint,
22826 count: *const GLsizei,
22827 drawcount: GLsizei,
22828 ) {
22829 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22830 {
22831 trace!(
22832 "calling gl.MultiDrawArrays({:#X}, {:p}, {:p}, {:?});",
22833 mode,
22834 first,
22835 count,
22836 drawcount
22837 );
22838 }
22839 let out = call_atomic_ptr_4arg(
22840 "glMultiDrawArrays",
22841 &self.glMultiDrawArrays_p,
22842 mode,
22843 first,
22844 count,
22845 drawcount,
22846 );
22847 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22848 {
22849 self.automatic_glGetError("glMultiDrawArrays");
22850 }
22851 out
22852 }
22853 #[doc(hidden)]
22854 pub unsafe fn MultiDrawArrays_load_with_dyn(
22855 &self,
22856 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22857 ) -> bool {
22858 load_dyn_name_atomic_ptr(
22859 get_proc_address,
22860 b"glMultiDrawArrays\0",
22861 &self.glMultiDrawArrays_p,
22862 )
22863 }
22864 #[inline]
22865 #[doc(hidden)]
22866 pub fn MultiDrawArrays_is_loaded(&self) -> bool {
22867 !self.glMultiDrawArrays_p.load(RELAX).is_null()
22868 }
22869 #[cfg_attr(feature = "inline", inline)]
22873 #[cfg_attr(feature = "inline_always", inline(always))]
22874 pub unsafe fn MultiDrawArraysIndirect(
22875 &self,
22876 mode: GLenum,
22877 indirect: *const c_void,
22878 drawcount: GLsizei,
22879 stride: GLsizei,
22880 ) {
22881 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22882 {
22883 trace!(
22884 "calling gl.MultiDrawArraysIndirect({:#X}, {:p}, {:?}, {:?});",
22885 mode,
22886 indirect,
22887 drawcount,
22888 stride
22889 );
22890 }
22891 let out = call_atomic_ptr_4arg(
22892 "glMultiDrawArraysIndirect",
22893 &self.glMultiDrawArraysIndirect_p,
22894 mode,
22895 indirect,
22896 drawcount,
22897 stride,
22898 );
22899 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22900 {
22901 self.automatic_glGetError("glMultiDrawArraysIndirect");
22902 }
22903 out
22904 }
22905 #[doc(hidden)]
22906 pub unsafe fn MultiDrawArraysIndirect_load_with_dyn(
22907 &self,
22908 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22909 ) -> bool {
22910 load_dyn_name_atomic_ptr(
22911 get_proc_address,
22912 b"glMultiDrawArraysIndirect\0",
22913 &self.glMultiDrawArraysIndirect_p,
22914 )
22915 }
22916 #[inline]
22917 #[doc(hidden)]
22918 pub fn MultiDrawArraysIndirect_is_loaded(&self) -> bool {
22919 !self.glMultiDrawArraysIndirect_p.load(RELAX).is_null()
22920 }
22921 #[cfg_attr(feature = "inline", inline)]
22924 #[cfg_attr(feature = "inline_always", inline(always))]
22925 pub unsafe fn MultiDrawArraysIndirectCount(
22926 &self,
22927 mode: GLenum,
22928 indirect: *const c_void,
22929 drawcount: GLintptr,
22930 maxdrawcount: GLsizei,
22931 stride: GLsizei,
22932 ) {
22933 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22934 {
22935 trace!(
22936 "calling gl.MultiDrawArraysIndirectCount({:#X}, {:p}, {:?}, {:?}, {:?});",
22937 mode,
22938 indirect,
22939 drawcount,
22940 maxdrawcount,
22941 stride
22942 );
22943 }
22944 let out = call_atomic_ptr_5arg(
22945 "glMultiDrawArraysIndirectCount",
22946 &self.glMultiDrawArraysIndirectCount_p,
22947 mode,
22948 indirect,
22949 drawcount,
22950 maxdrawcount,
22951 stride,
22952 );
22953 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22954 {
22955 self.automatic_glGetError("glMultiDrawArraysIndirectCount");
22956 }
22957 out
22958 }
22959 #[doc(hidden)]
22960 pub unsafe fn MultiDrawArraysIndirectCount_load_with_dyn(
22961 &self,
22962 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22963 ) -> bool {
22964 load_dyn_name_atomic_ptr(
22965 get_proc_address,
22966 b"glMultiDrawArraysIndirectCount\0",
22967 &self.glMultiDrawArraysIndirectCount_p,
22968 )
22969 }
22970 #[inline]
22971 #[doc(hidden)]
22972 pub fn MultiDrawArraysIndirectCount_is_loaded(&self) -> bool {
22973 !self.glMultiDrawArraysIndirectCount_p.load(RELAX).is_null()
22974 }
22975 #[cfg_attr(feature = "inline", inline)]
22981 #[cfg_attr(feature = "inline_always", inline(always))]
22982 pub unsafe fn MultiDrawElements(
22983 &self,
22984 mode: GLenum,
22985 count: *const GLsizei,
22986 type_: GLenum,
22987 indices: *const *const c_void,
22988 drawcount: GLsizei,
22989 ) {
22990 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22991 {
22992 trace!(
22993 "calling gl.MultiDrawElements({:#X}, {:p}, {:#X}, {:p}, {:?});",
22994 mode,
22995 count,
22996 type_,
22997 indices,
22998 drawcount
22999 );
23000 }
23001 let out = call_atomic_ptr_5arg(
23002 "glMultiDrawElements",
23003 &self.glMultiDrawElements_p,
23004 mode,
23005 count,
23006 type_,
23007 indices,
23008 drawcount,
23009 );
23010 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23011 {
23012 self.automatic_glGetError("glMultiDrawElements");
23013 }
23014 out
23015 }
23016 #[doc(hidden)]
23017 pub unsafe fn MultiDrawElements_load_with_dyn(
23018 &self,
23019 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23020 ) -> bool {
23021 load_dyn_name_atomic_ptr(
23022 get_proc_address,
23023 b"glMultiDrawElements\0",
23024 &self.glMultiDrawElements_p,
23025 )
23026 }
23027 #[inline]
23028 #[doc(hidden)]
23029 pub fn MultiDrawElements_is_loaded(&self) -> bool {
23030 !self.glMultiDrawElements_p.load(RELAX).is_null()
23031 }
23032 #[cfg_attr(feature = "inline", inline)]
23039 #[cfg_attr(feature = "inline_always", inline(always))]
23040 pub unsafe fn MultiDrawElementsBaseVertex(
23041 &self,
23042 mode: GLenum,
23043 count: *const GLsizei,
23044 type_: GLenum,
23045 indices: *const *const c_void,
23046 drawcount: GLsizei,
23047 basevertex: *const GLint,
23048 ) {
23049 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23050 {
23051 trace!(
23052 "calling gl.MultiDrawElementsBaseVertex({:#X}, {:p}, {:#X}, {:p}, {:?}, {:p});",
23053 mode,
23054 count,
23055 type_,
23056 indices,
23057 drawcount,
23058 basevertex
23059 );
23060 }
23061 let out = call_atomic_ptr_6arg(
23062 "glMultiDrawElementsBaseVertex",
23063 &self.glMultiDrawElementsBaseVertex_p,
23064 mode,
23065 count,
23066 type_,
23067 indices,
23068 drawcount,
23069 basevertex,
23070 );
23071 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23072 {
23073 self.automatic_glGetError("glMultiDrawElementsBaseVertex");
23074 }
23075 out
23076 }
23077 #[doc(hidden)]
23078 pub unsafe fn MultiDrawElementsBaseVertex_load_with_dyn(
23079 &self,
23080 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23081 ) -> bool {
23082 load_dyn_name_atomic_ptr(
23083 get_proc_address,
23084 b"glMultiDrawElementsBaseVertex\0",
23085 &self.glMultiDrawElementsBaseVertex_p,
23086 )
23087 }
23088 #[inline]
23089 #[doc(hidden)]
23090 pub fn MultiDrawElementsBaseVertex_is_loaded(&self) -> bool {
23091 !self.glMultiDrawElementsBaseVertex_p.load(RELAX).is_null()
23092 }
23093 #[cfg_attr(feature = "inline", inline)]
23098 #[cfg_attr(feature = "inline_always", inline(always))]
23099 pub unsafe fn MultiDrawElementsIndirect(
23100 &self,
23101 mode: GLenum,
23102 type_: GLenum,
23103 indirect: *const c_void,
23104 drawcount: GLsizei,
23105 stride: GLsizei,
23106 ) {
23107 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23108 {
23109 trace!(
23110 "calling gl.MultiDrawElementsIndirect({:#X}, {:#X}, {:p}, {:?}, {:?});",
23111 mode,
23112 type_,
23113 indirect,
23114 drawcount,
23115 stride
23116 );
23117 }
23118 let out = call_atomic_ptr_5arg(
23119 "glMultiDrawElementsIndirect",
23120 &self.glMultiDrawElementsIndirect_p,
23121 mode,
23122 type_,
23123 indirect,
23124 drawcount,
23125 stride,
23126 );
23127 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23128 {
23129 self.automatic_glGetError("glMultiDrawElementsIndirect");
23130 }
23131 out
23132 }
23133 #[doc(hidden)]
23134 pub unsafe fn MultiDrawElementsIndirect_load_with_dyn(
23135 &self,
23136 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23137 ) -> bool {
23138 load_dyn_name_atomic_ptr(
23139 get_proc_address,
23140 b"glMultiDrawElementsIndirect\0",
23141 &self.glMultiDrawElementsIndirect_p,
23142 )
23143 }
23144 #[inline]
23145 #[doc(hidden)]
23146 pub fn MultiDrawElementsIndirect_is_loaded(&self) -> bool {
23147 !self.glMultiDrawElementsIndirect_p.load(RELAX).is_null()
23148 }
23149 #[cfg_attr(feature = "inline", inline)]
23153 #[cfg_attr(feature = "inline_always", inline(always))]
23154 pub unsafe fn MultiDrawElementsIndirectCount(
23155 &self,
23156 mode: GLenum,
23157 type_: GLenum,
23158 indirect: *const c_void,
23159 drawcount: GLintptr,
23160 maxdrawcount: GLsizei,
23161 stride: GLsizei,
23162 ) {
23163 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23164 {
23165 trace!("calling gl.MultiDrawElementsIndirectCount({:#X}, {:#X}, {:p}, {:?}, {:?}, {:?});", mode, type_, indirect, drawcount, maxdrawcount, stride);
23166 }
23167 let out = call_atomic_ptr_6arg(
23168 "glMultiDrawElementsIndirectCount",
23169 &self.glMultiDrawElementsIndirectCount_p,
23170 mode,
23171 type_,
23172 indirect,
23173 drawcount,
23174 maxdrawcount,
23175 stride,
23176 );
23177 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23178 {
23179 self.automatic_glGetError("glMultiDrawElementsIndirectCount");
23180 }
23181 out
23182 }
23183 #[doc(hidden)]
23184 pub unsafe fn MultiDrawElementsIndirectCount_load_with_dyn(
23185 &self,
23186 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23187 ) -> bool {
23188 load_dyn_name_atomic_ptr(
23189 get_proc_address,
23190 b"glMultiDrawElementsIndirectCount\0",
23191 &self.glMultiDrawElementsIndirectCount_p,
23192 )
23193 }
23194 #[inline]
23195 #[doc(hidden)]
23196 pub fn MultiDrawElementsIndirectCount_is_loaded(&self) -> bool {
23197 !self
23198 .glMultiDrawElementsIndirectCount_p
23199 .load(RELAX)
23200 .is_null()
23201 }
23202 #[cfg_attr(feature = "inline", inline)]
23206 #[cfg_attr(feature = "inline_always", inline(always))]
23207 pub unsafe fn NamedBufferData(
23208 &self,
23209 buffer: GLuint,
23210 size: GLsizeiptr,
23211 data: *const c_void,
23212 usage: GLenum,
23213 ) {
23214 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23215 {
23216 trace!(
23217 "calling gl.NamedBufferData({:?}, {:?}, {:p}, {:#X});",
23218 buffer,
23219 size,
23220 data,
23221 usage
23222 );
23223 }
23224 let out = call_atomic_ptr_4arg(
23225 "glNamedBufferData",
23226 &self.glNamedBufferData_p,
23227 buffer,
23228 size,
23229 data,
23230 usage,
23231 );
23232 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23233 {
23234 self.automatic_glGetError("glNamedBufferData");
23235 }
23236 out
23237 }
23238 #[doc(hidden)]
23239 pub unsafe fn NamedBufferData_load_with_dyn(
23240 &self,
23241 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23242 ) -> bool {
23243 load_dyn_name_atomic_ptr(
23244 get_proc_address,
23245 b"glNamedBufferData\0",
23246 &self.glNamedBufferData_p,
23247 )
23248 }
23249 #[inline]
23250 #[doc(hidden)]
23251 pub fn NamedBufferData_is_loaded(&self) -> bool {
23252 !self.glNamedBufferData_p.load(RELAX).is_null()
23253 }
23254 #[cfg_attr(feature = "inline", inline)]
23259 #[cfg_attr(feature = "inline_always", inline(always))]
23260 pub unsafe fn NamedBufferStorage(
23261 &self,
23262 buffer: GLuint,
23263 size: GLsizeiptr,
23264 data: *const c_void,
23265 flags: GLbitfield,
23266 ) {
23267 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23268 {
23269 trace!(
23270 "calling gl.NamedBufferStorage({:?}, {:?}, {:p}, {:?});",
23271 buffer,
23272 size,
23273 data,
23274 flags
23275 );
23276 }
23277 let out = call_atomic_ptr_4arg(
23278 "glNamedBufferStorage",
23279 &self.glNamedBufferStorage_p,
23280 buffer,
23281 size,
23282 data,
23283 flags,
23284 );
23285 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23286 {
23287 self.automatic_glGetError("glNamedBufferStorage");
23288 }
23289 out
23290 }
23291 #[doc(hidden)]
23292 pub unsafe fn NamedBufferStorage_load_with_dyn(
23293 &self,
23294 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23295 ) -> bool {
23296 load_dyn_name_atomic_ptr(
23297 get_proc_address,
23298 b"glNamedBufferStorage\0",
23299 &self.glNamedBufferStorage_p,
23300 )
23301 }
23302 #[inline]
23303 #[doc(hidden)]
23304 pub fn NamedBufferStorage_is_loaded(&self) -> bool {
23305 !self.glNamedBufferStorage_p.load(RELAX).is_null()
23306 }
23307 #[cfg_attr(feature = "inline", inline)]
23311 #[cfg_attr(feature = "inline_always", inline(always))]
23312 pub unsafe fn NamedBufferSubData(
23313 &self,
23314 buffer: GLuint,
23315 offset: GLintptr,
23316 size: GLsizeiptr,
23317 data: *const c_void,
23318 ) {
23319 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23320 {
23321 trace!(
23322 "calling gl.NamedBufferSubData({:?}, {:?}, {:?}, {:p});",
23323 buffer,
23324 offset,
23325 size,
23326 data
23327 );
23328 }
23329 let out = call_atomic_ptr_4arg(
23330 "glNamedBufferSubData",
23331 &self.glNamedBufferSubData_p,
23332 buffer,
23333 offset,
23334 size,
23335 data,
23336 );
23337 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23338 {
23339 self.automatic_glGetError("glNamedBufferSubData");
23340 }
23341 out
23342 }
23343 #[doc(hidden)]
23344 pub unsafe fn NamedBufferSubData_load_with_dyn(
23345 &self,
23346 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23347 ) -> bool {
23348 load_dyn_name_atomic_ptr(
23349 get_proc_address,
23350 b"glNamedBufferSubData\0",
23351 &self.glNamedBufferSubData_p,
23352 )
23353 }
23354 #[inline]
23355 #[doc(hidden)]
23356 pub fn NamedBufferSubData_is_loaded(&self) -> bool {
23357 !self.glNamedBufferSubData_p.load(RELAX).is_null()
23358 }
23359 #[cfg_attr(feature = "inline", inline)]
23362 #[cfg_attr(feature = "inline_always", inline(always))]
23363 pub unsafe fn NamedFramebufferDrawBuffer(&self, framebuffer: GLuint, buf: GLenum) {
23364 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23365 {
23366 trace!(
23367 "calling gl.NamedFramebufferDrawBuffer({:?}, {:#X});",
23368 framebuffer,
23369 buf
23370 );
23371 }
23372 let out = call_atomic_ptr_2arg(
23373 "glNamedFramebufferDrawBuffer",
23374 &self.glNamedFramebufferDrawBuffer_p,
23375 framebuffer,
23376 buf,
23377 );
23378 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23379 {
23380 self.automatic_glGetError("glNamedFramebufferDrawBuffer");
23381 }
23382 out
23383 }
23384 #[doc(hidden)]
23385 pub unsafe fn NamedFramebufferDrawBuffer_load_with_dyn(
23386 &self,
23387 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23388 ) -> bool {
23389 load_dyn_name_atomic_ptr(
23390 get_proc_address,
23391 b"glNamedFramebufferDrawBuffer\0",
23392 &self.glNamedFramebufferDrawBuffer_p,
23393 )
23394 }
23395 #[inline]
23396 #[doc(hidden)]
23397 pub fn NamedFramebufferDrawBuffer_is_loaded(&self) -> bool {
23398 !self.glNamedFramebufferDrawBuffer_p.load(RELAX).is_null()
23399 }
23400 #[cfg_attr(feature = "inline", inline)]
23403 #[cfg_attr(feature = "inline_always", inline(always))]
23404 pub unsafe fn NamedFramebufferDrawBuffers(
23405 &self,
23406 framebuffer: GLuint,
23407 n: GLsizei,
23408 bufs: *const GLenum,
23409 ) {
23410 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23411 {
23412 trace!(
23413 "calling gl.NamedFramebufferDrawBuffers({:?}, {:?}, {:p});",
23414 framebuffer,
23415 n,
23416 bufs
23417 );
23418 }
23419 let out = call_atomic_ptr_3arg(
23420 "glNamedFramebufferDrawBuffers",
23421 &self.glNamedFramebufferDrawBuffers_p,
23422 framebuffer,
23423 n,
23424 bufs,
23425 );
23426 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23427 {
23428 self.automatic_glGetError("glNamedFramebufferDrawBuffers");
23429 }
23430 out
23431 }
23432 #[doc(hidden)]
23433 pub unsafe fn NamedFramebufferDrawBuffers_load_with_dyn(
23434 &self,
23435 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23436 ) -> bool {
23437 load_dyn_name_atomic_ptr(
23438 get_proc_address,
23439 b"glNamedFramebufferDrawBuffers\0",
23440 &self.glNamedFramebufferDrawBuffers_p,
23441 )
23442 }
23443 #[inline]
23444 #[doc(hidden)]
23445 pub fn NamedFramebufferDrawBuffers_is_loaded(&self) -> bool {
23446 !self.glNamedFramebufferDrawBuffers_p.load(RELAX).is_null()
23447 }
23448 #[cfg_attr(feature = "inline", inline)]
23451 #[cfg_attr(feature = "inline_always", inline(always))]
23452 pub unsafe fn NamedFramebufferParameteri(
23453 &self,
23454 framebuffer: GLuint,
23455 pname: GLenum,
23456 param: GLint,
23457 ) {
23458 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23459 {
23460 trace!(
23461 "calling gl.NamedFramebufferParameteri({:?}, {:#X}, {:?});",
23462 framebuffer,
23463 pname,
23464 param
23465 );
23466 }
23467 let out = call_atomic_ptr_3arg(
23468 "glNamedFramebufferParameteri",
23469 &self.glNamedFramebufferParameteri_p,
23470 framebuffer,
23471 pname,
23472 param,
23473 );
23474 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23475 {
23476 self.automatic_glGetError("glNamedFramebufferParameteri");
23477 }
23478 out
23479 }
23480 #[doc(hidden)]
23481 pub unsafe fn NamedFramebufferParameteri_load_with_dyn(
23482 &self,
23483 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23484 ) -> bool {
23485 load_dyn_name_atomic_ptr(
23486 get_proc_address,
23487 b"glNamedFramebufferParameteri\0",
23488 &self.glNamedFramebufferParameteri_p,
23489 )
23490 }
23491 #[inline]
23492 #[doc(hidden)]
23493 pub fn NamedFramebufferParameteri_is_loaded(&self) -> bool {
23494 !self.glNamedFramebufferParameteri_p.load(RELAX).is_null()
23495 }
23496 #[cfg_attr(feature = "inline", inline)]
23499 #[cfg_attr(feature = "inline_always", inline(always))]
23500 pub unsafe fn NamedFramebufferReadBuffer(&self, framebuffer: GLuint, src: GLenum) {
23501 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23502 {
23503 trace!(
23504 "calling gl.NamedFramebufferReadBuffer({:?}, {:#X});",
23505 framebuffer,
23506 src
23507 );
23508 }
23509 let out = call_atomic_ptr_2arg(
23510 "glNamedFramebufferReadBuffer",
23511 &self.glNamedFramebufferReadBuffer_p,
23512 framebuffer,
23513 src,
23514 );
23515 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23516 {
23517 self.automatic_glGetError("glNamedFramebufferReadBuffer");
23518 }
23519 out
23520 }
23521 #[doc(hidden)]
23522 pub unsafe fn NamedFramebufferReadBuffer_load_with_dyn(
23523 &self,
23524 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23525 ) -> bool {
23526 load_dyn_name_atomic_ptr(
23527 get_proc_address,
23528 b"glNamedFramebufferReadBuffer\0",
23529 &self.glNamedFramebufferReadBuffer_p,
23530 )
23531 }
23532 #[inline]
23533 #[doc(hidden)]
23534 pub fn NamedFramebufferReadBuffer_is_loaded(&self) -> bool {
23535 !self.glNamedFramebufferReadBuffer_p.load(RELAX).is_null()
23536 }
23537 #[cfg_attr(feature = "inline", inline)]
23541 #[cfg_attr(feature = "inline_always", inline(always))]
23542 pub unsafe fn NamedFramebufferRenderbuffer(
23543 &self,
23544 framebuffer: GLuint,
23545 attachment: GLenum,
23546 renderbuffertarget: GLenum,
23547 renderbuffer: GLuint,
23548 ) {
23549 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23550 {
23551 trace!(
23552 "calling gl.NamedFramebufferRenderbuffer({:?}, {:#X}, {:#X}, {:?});",
23553 framebuffer,
23554 attachment,
23555 renderbuffertarget,
23556 renderbuffer
23557 );
23558 }
23559 let out = call_atomic_ptr_4arg(
23560 "glNamedFramebufferRenderbuffer",
23561 &self.glNamedFramebufferRenderbuffer_p,
23562 framebuffer,
23563 attachment,
23564 renderbuffertarget,
23565 renderbuffer,
23566 );
23567 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23568 {
23569 self.automatic_glGetError("glNamedFramebufferRenderbuffer");
23570 }
23571 out
23572 }
23573 #[doc(hidden)]
23574 pub unsafe fn NamedFramebufferRenderbuffer_load_with_dyn(
23575 &self,
23576 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23577 ) -> bool {
23578 load_dyn_name_atomic_ptr(
23579 get_proc_address,
23580 b"glNamedFramebufferRenderbuffer\0",
23581 &self.glNamedFramebufferRenderbuffer_p,
23582 )
23583 }
23584 #[inline]
23585 #[doc(hidden)]
23586 pub fn NamedFramebufferRenderbuffer_is_loaded(&self) -> bool {
23587 !self.glNamedFramebufferRenderbuffer_p.load(RELAX).is_null()
23588 }
23589 #[cfg_attr(feature = "inline", inline)]
23592 #[cfg_attr(feature = "inline_always", inline(always))]
23593 pub unsafe fn NamedFramebufferTexture(
23594 &self,
23595 framebuffer: GLuint,
23596 attachment: GLenum,
23597 texture: GLuint,
23598 level: GLint,
23599 ) {
23600 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23601 {
23602 trace!(
23603 "calling gl.NamedFramebufferTexture({:?}, {:#X}, {:?}, {:?});",
23604 framebuffer,
23605 attachment,
23606 texture,
23607 level
23608 );
23609 }
23610 let out = call_atomic_ptr_4arg(
23611 "glNamedFramebufferTexture",
23612 &self.glNamedFramebufferTexture_p,
23613 framebuffer,
23614 attachment,
23615 texture,
23616 level,
23617 );
23618 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23619 {
23620 self.automatic_glGetError("glNamedFramebufferTexture");
23621 }
23622 out
23623 }
23624 #[doc(hidden)]
23625 pub unsafe fn NamedFramebufferTexture_load_with_dyn(
23626 &self,
23627 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23628 ) -> bool {
23629 load_dyn_name_atomic_ptr(
23630 get_proc_address,
23631 b"glNamedFramebufferTexture\0",
23632 &self.glNamedFramebufferTexture_p,
23633 )
23634 }
23635 #[inline]
23636 #[doc(hidden)]
23637 pub fn NamedFramebufferTexture_is_loaded(&self) -> bool {
23638 !self.glNamedFramebufferTexture_p.load(RELAX).is_null()
23639 }
23640 #[cfg_attr(feature = "inline", inline)]
23643 #[cfg_attr(feature = "inline_always", inline(always))]
23644 pub unsafe fn NamedFramebufferTextureLayer(
23645 &self,
23646 framebuffer: GLuint,
23647 attachment: GLenum,
23648 texture: GLuint,
23649 level: GLint,
23650 layer: GLint,
23651 ) {
23652 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23653 {
23654 trace!(
23655 "calling gl.NamedFramebufferTextureLayer({:?}, {:#X}, {:?}, {:?}, {:?});",
23656 framebuffer,
23657 attachment,
23658 texture,
23659 level,
23660 layer
23661 );
23662 }
23663 let out = call_atomic_ptr_5arg(
23664 "glNamedFramebufferTextureLayer",
23665 &self.glNamedFramebufferTextureLayer_p,
23666 framebuffer,
23667 attachment,
23668 texture,
23669 level,
23670 layer,
23671 );
23672 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23673 {
23674 self.automatic_glGetError("glNamedFramebufferTextureLayer");
23675 }
23676 out
23677 }
23678 #[doc(hidden)]
23679 pub unsafe fn NamedFramebufferTextureLayer_load_with_dyn(
23680 &self,
23681 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23682 ) -> bool {
23683 load_dyn_name_atomic_ptr(
23684 get_proc_address,
23685 b"glNamedFramebufferTextureLayer\0",
23686 &self.glNamedFramebufferTextureLayer_p,
23687 )
23688 }
23689 #[inline]
23690 #[doc(hidden)]
23691 pub fn NamedFramebufferTextureLayer_is_loaded(&self) -> bool {
23692 !self.glNamedFramebufferTextureLayer_p.load(RELAX).is_null()
23693 }
23694 #[cfg_attr(feature = "inline", inline)]
23697 #[cfg_attr(feature = "inline_always", inline(always))]
23698 pub unsafe fn NamedRenderbufferStorage(
23699 &self,
23700 renderbuffer: GLuint,
23701 internalformat: GLenum,
23702 width: GLsizei,
23703 height: GLsizei,
23704 ) {
23705 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23706 {
23707 trace!(
23708 "calling gl.NamedRenderbufferStorage({:?}, {:#X}, {:?}, {:?});",
23709 renderbuffer,
23710 internalformat,
23711 width,
23712 height
23713 );
23714 }
23715 let out = call_atomic_ptr_4arg(
23716 "glNamedRenderbufferStorage",
23717 &self.glNamedRenderbufferStorage_p,
23718 renderbuffer,
23719 internalformat,
23720 width,
23721 height,
23722 );
23723 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23724 {
23725 self.automatic_glGetError("glNamedRenderbufferStorage");
23726 }
23727 out
23728 }
23729 #[doc(hidden)]
23730 pub unsafe fn NamedRenderbufferStorage_load_with_dyn(
23731 &self,
23732 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23733 ) -> bool {
23734 load_dyn_name_atomic_ptr(
23735 get_proc_address,
23736 b"glNamedRenderbufferStorage\0",
23737 &self.glNamedRenderbufferStorage_p,
23738 )
23739 }
23740 #[inline]
23741 #[doc(hidden)]
23742 pub fn NamedRenderbufferStorage_is_loaded(&self) -> bool {
23743 !self.glNamedRenderbufferStorage_p.load(RELAX).is_null()
23744 }
23745 #[cfg_attr(feature = "inline", inline)]
23748 #[cfg_attr(feature = "inline_always", inline(always))]
23749 pub unsafe fn NamedRenderbufferStorageMultisample(
23750 &self,
23751 renderbuffer: GLuint,
23752 samples: GLsizei,
23753 internalformat: GLenum,
23754 width: GLsizei,
23755 height: GLsizei,
23756 ) {
23757 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23758 {
23759 trace!("calling gl.NamedRenderbufferStorageMultisample({:?}, {:?}, {:#X}, {:?}, {:?});", renderbuffer, samples, internalformat, width, height);
23760 }
23761 let out = call_atomic_ptr_5arg(
23762 "glNamedRenderbufferStorageMultisample",
23763 &self.glNamedRenderbufferStorageMultisample_p,
23764 renderbuffer,
23765 samples,
23766 internalformat,
23767 width,
23768 height,
23769 );
23770 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23771 {
23772 self.automatic_glGetError("glNamedRenderbufferStorageMultisample");
23773 }
23774 out
23775 }
23776 #[doc(hidden)]
23777 pub unsafe fn NamedRenderbufferStorageMultisample_load_with_dyn(
23778 &self,
23779 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23780 ) -> bool {
23781 load_dyn_name_atomic_ptr(
23782 get_proc_address,
23783 b"glNamedRenderbufferStorageMultisample\0",
23784 &self.glNamedRenderbufferStorageMultisample_p,
23785 )
23786 }
23787 #[inline]
23788 #[doc(hidden)]
23789 pub fn NamedRenderbufferStorageMultisample_is_loaded(&self) -> bool {
23790 !self
23791 .glNamedRenderbufferStorageMultisample_p
23792 .load(RELAX)
23793 .is_null()
23794 }
23795 #[cfg_attr(feature = "inline", inline)]
23799 #[cfg_attr(feature = "inline_always", inline(always))]
23800 pub unsafe fn ObjectLabel(
23801 &self,
23802 identifier: GLenum,
23803 name: GLuint,
23804 length: GLsizei,
23805 label: *const GLchar,
23806 ) {
23807 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23808 {
23809 trace!(
23810 "calling gl.ObjectLabel({:#X}, {:?}, {:?}, {:p});",
23811 identifier,
23812 name,
23813 length,
23814 label
23815 );
23816 }
23817 let out = call_atomic_ptr_4arg(
23818 "glObjectLabel",
23819 &self.glObjectLabel_p,
23820 identifier,
23821 name,
23822 length,
23823 label,
23824 );
23825 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23826 {
23827 self.automatic_glGetError("glObjectLabel");
23828 }
23829 out
23830 }
23831 #[doc(hidden)]
23832 pub unsafe fn ObjectLabel_load_with_dyn(
23833 &self,
23834 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23835 ) -> bool {
23836 load_dyn_name_atomic_ptr(get_proc_address, b"glObjectLabel\0", &self.glObjectLabel_p)
23837 }
23838 #[inline]
23839 #[doc(hidden)]
23840 pub fn ObjectLabel_is_loaded(&self) -> bool {
23841 !self.glObjectLabel_p.load(RELAX).is_null()
23842 }
23843 #[cfg_attr(feature = "inline", inline)]
23847 #[cfg_attr(feature = "inline_always", inline(always))]
23848 pub unsafe fn ObjectLabelKHR(
23849 &self,
23850 identifier: GLenum,
23851 name: GLuint,
23852 length: GLsizei,
23853 label: *const GLchar,
23854 ) {
23855 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23856 {
23857 trace!(
23858 "calling gl.ObjectLabelKHR({:#X}, {:?}, {:?}, {:p});",
23859 identifier,
23860 name,
23861 length,
23862 label
23863 );
23864 }
23865 let out = call_atomic_ptr_4arg(
23866 "glObjectLabelKHR",
23867 &self.glObjectLabelKHR_p,
23868 identifier,
23869 name,
23870 length,
23871 label,
23872 );
23873 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23874 {
23875 self.automatic_glGetError("glObjectLabelKHR");
23876 }
23877 out
23878 }
23879 #[doc(hidden)]
23880 pub unsafe fn ObjectLabelKHR_load_with_dyn(
23881 &self,
23882 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23883 ) -> bool {
23884 load_dyn_name_atomic_ptr(
23885 get_proc_address,
23886 b"glObjectLabelKHR\0",
23887 &self.glObjectLabelKHR_p,
23888 )
23889 }
23890 #[inline]
23891 #[doc(hidden)]
23892 pub fn ObjectLabelKHR_is_loaded(&self) -> bool {
23893 !self.glObjectLabelKHR_p.load(RELAX).is_null()
23894 }
23895 #[cfg_attr(feature = "inline", inline)]
23898 #[cfg_attr(feature = "inline_always", inline(always))]
23899 pub unsafe fn ObjectPtrLabel(
23900 &self,
23901 ptr: *const c_void,
23902 length: GLsizei,
23903 label: *const GLchar,
23904 ) {
23905 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23906 {
23907 trace!(
23908 "calling gl.ObjectPtrLabel({:p}, {:?}, {:p});",
23909 ptr,
23910 length,
23911 label
23912 );
23913 }
23914 let out = call_atomic_ptr_3arg(
23915 "glObjectPtrLabel",
23916 &self.glObjectPtrLabel_p,
23917 ptr,
23918 length,
23919 label,
23920 );
23921 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23922 {
23923 self.automatic_glGetError("glObjectPtrLabel");
23924 }
23925 out
23926 }
23927 #[doc(hidden)]
23928 pub unsafe fn ObjectPtrLabel_load_with_dyn(
23929 &self,
23930 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23931 ) -> bool {
23932 load_dyn_name_atomic_ptr(
23933 get_proc_address,
23934 b"glObjectPtrLabel\0",
23935 &self.glObjectPtrLabel_p,
23936 )
23937 }
23938 #[inline]
23939 #[doc(hidden)]
23940 pub fn ObjectPtrLabel_is_loaded(&self) -> bool {
23941 !self.glObjectPtrLabel_p.load(RELAX).is_null()
23942 }
23943 #[cfg_attr(feature = "inline", inline)]
23946 #[cfg_attr(feature = "inline_always", inline(always))]
23947 pub unsafe fn ObjectPtrLabelKHR(
23948 &self,
23949 ptr: *const c_void,
23950 length: GLsizei,
23951 label: *const GLchar,
23952 ) {
23953 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23954 {
23955 trace!(
23956 "calling gl.ObjectPtrLabelKHR({:p}, {:?}, {:p});",
23957 ptr,
23958 length,
23959 label
23960 );
23961 }
23962 let out = call_atomic_ptr_3arg(
23963 "glObjectPtrLabelKHR",
23964 &self.glObjectPtrLabelKHR_p,
23965 ptr,
23966 length,
23967 label,
23968 );
23969 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23970 {
23971 self.automatic_glGetError("glObjectPtrLabelKHR");
23972 }
23973 out
23974 }
23975 #[doc(hidden)]
23976 pub unsafe fn ObjectPtrLabelKHR_load_with_dyn(
23977 &self,
23978 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23979 ) -> bool {
23980 load_dyn_name_atomic_ptr(
23981 get_proc_address,
23982 b"glObjectPtrLabelKHR\0",
23983 &self.glObjectPtrLabelKHR_p,
23984 )
23985 }
23986 #[inline]
23987 #[doc(hidden)]
23988 pub fn ObjectPtrLabelKHR_is_loaded(&self) -> bool {
23989 !self.glObjectPtrLabelKHR_p.load(RELAX).is_null()
23990 }
23991 #[cfg_attr(feature = "inline", inline)]
23995 #[cfg_attr(feature = "inline_always", inline(always))]
23996 pub unsafe fn PatchParameterfv(&self, pname: GLenum, values: *const GLfloat) {
23997 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23998 {
23999 trace!("calling gl.PatchParameterfv({:#X}, {:p});", pname, values);
24000 }
24001 let out = call_atomic_ptr_2arg(
24002 "glPatchParameterfv",
24003 &self.glPatchParameterfv_p,
24004 pname,
24005 values,
24006 );
24007 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24008 {
24009 self.automatic_glGetError("glPatchParameterfv");
24010 }
24011 out
24012 }
24013 #[doc(hidden)]
24014 pub unsafe fn PatchParameterfv_load_with_dyn(
24015 &self,
24016 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24017 ) -> bool {
24018 load_dyn_name_atomic_ptr(
24019 get_proc_address,
24020 b"glPatchParameterfv\0",
24021 &self.glPatchParameterfv_p,
24022 )
24023 }
24024 #[inline]
24025 #[doc(hidden)]
24026 pub fn PatchParameterfv_is_loaded(&self) -> bool {
24027 !self.glPatchParameterfv_p.load(RELAX).is_null()
24028 }
24029 #[cfg_attr(feature = "inline", inline)]
24032 #[cfg_attr(feature = "inline_always", inline(always))]
24033 pub unsafe fn PatchParameteri(&self, pname: GLenum, value: GLint) {
24034 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24035 {
24036 trace!("calling gl.PatchParameteri({:#X}, {:?});", pname, value);
24037 }
24038 let out =
24039 call_atomic_ptr_2arg("glPatchParameteri", &self.glPatchParameteri_p, pname, value);
24040 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24041 {
24042 self.automatic_glGetError("glPatchParameteri");
24043 }
24044 out
24045 }
24046 #[doc(hidden)]
24047 pub unsafe fn PatchParameteri_load_with_dyn(
24048 &self,
24049 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24050 ) -> bool {
24051 load_dyn_name_atomic_ptr(
24052 get_proc_address,
24053 b"glPatchParameteri\0",
24054 &self.glPatchParameteri_p,
24055 )
24056 }
24057 #[inline]
24058 #[doc(hidden)]
24059 pub fn PatchParameteri_is_loaded(&self) -> bool {
24060 !self.glPatchParameteri_p.load(RELAX).is_null()
24061 }
24062 #[cfg_attr(feature = "inline", inline)]
24064 #[cfg_attr(feature = "inline_always", inline(always))]
24065 pub unsafe fn PauseTransformFeedback(&self) {
24066 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24067 {
24068 trace!("calling gl.PauseTransformFeedback();",);
24069 }
24070 let out =
24071 call_atomic_ptr_0arg("glPauseTransformFeedback", &self.glPauseTransformFeedback_p);
24072 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24073 {
24074 self.automatic_glGetError("glPauseTransformFeedback");
24075 }
24076 out
24077 }
24078 #[doc(hidden)]
24079 pub unsafe fn PauseTransformFeedback_load_with_dyn(
24080 &self,
24081 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24082 ) -> bool {
24083 load_dyn_name_atomic_ptr(
24084 get_proc_address,
24085 b"glPauseTransformFeedback\0",
24086 &self.glPauseTransformFeedback_p,
24087 )
24088 }
24089 #[inline]
24090 #[doc(hidden)]
24091 pub fn PauseTransformFeedback_is_loaded(&self) -> bool {
24092 !self.glPauseTransformFeedback_p.load(RELAX).is_null()
24093 }
24094 #[cfg_attr(feature = "inline", inline)]
24098 #[cfg_attr(feature = "inline_always", inline(always))]
24099 pub unsafe fn PixelStoref(&self, pname: GLenum, param: GLfloat) {
24100 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24101 {
24102 trace!("calling gl.PixelStoref({:#X}, {:?});", pname, param);
24103 }
24104 let out = call_atomic_ptr_2arg("glPixelStoref", &self.glPixelStoref_p, pname, param);
24105 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24106 {
24107 self.automatic_glGetError("glPixelStoref");
24108 }
24109 out
24110 }
24111 #[doc(hidden)]
24112 pub unsafe fn PixelStoref_load_with_dyn(
24113 &self,
24114 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24115 ) -> bool {
24116 load_dyn_name_atomic_ptr(get_proc_address, b"glPixelStoref\0", &self.glPixelStoref_p)
24117 }
24118 #[inline]
24119 #[doc(hidden)]
24120 pub fn PixelStoref_is_loaded(&self) -> bool {
24121 !self.glPixelStoref_p.load(RELAX).is_null()
24122 }
24123 #[cfg_attr(feature = "inline", inline)]
24127 #[cfg_attr(feature = "inline_always", inline(always))]
24128 pub unsafe fn PixelStorei(&self, pname: GLenum, param: GLint) {
24129 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24130 {
24131 trace!("calling gl.PixelStorei({:#X}, {:?});", pname, param);
24132 }
24133 let out = call_atomic_ptr_2arg("glPixelStorei", &self.glPixelStorei_p, pname, param);
24134 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24135 {
24136 self.automatic_glGetError("glPixelStorei");
24137 }
24138 out
24139 }
24140 #[doc(hidden)]
24141 pub unsafe fn PixelStorei_load_with_dyn(
24142 &self,
24143 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24144 ) -> bool {
24145 load_dyn_name_atomic_ptr(get_proc_address, b"glPixelStorei\0", &self.glPixelStorei_p)
24146 }
24147 #[inline]
24148 #[doc(hidden)]
24149 pub fn PixelStorei_is_loaded(&self) -> bool {
24150 !self.glPixelStorei_p.load(RELAX).is_null()
24151 }
24152 #[cfg_attr(feature = "inline", inline)]
24156 #[cfg_attr(feature = "inline_always", inline(always))]
24157 pub unsafe fn PointParameterf(&self, pname: GLenum, param: GLfloat) {
24158 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24159 {
24160 trace!("calling gl.PointParameterf({:#X}, {:?});", pname, param);
24161 }
24162 let out =
24163 call_atomic_ptr_2arg("glPointParameterf", &self.glPointParameterf_p, pname, param);
24164 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24165 {
24166 self.automatic_glGetError("glPointParameterf");
24167 }
24168 out
24169 }
24170 #[doc(hidden)]
24171 pub unsafe fn PointParameterf_load_with_dyn(
24172 &self,
24173 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24174 ) -> bool {
24175 load_dyn_name_atomic_ptr(
24176 get_proc_address,
24177 b"glPointParameterf\0",
24178 &self.glPointParameterf_p,
24179 )
24180 }
24181 #[inline]
24182 #[doc(hidden)]
24183 pub fn PointParameterf_is_loaded(&self) -> bool {
24184 !self.glPointParameterf_p.load(RELAX).is_null()
24185 }
24186 #[cfg_attr(feature = "inline", inline)]
24191 #[cfg_attr(feature = "inline_always", inline(always))]
24192 pub unsafe fn PointParameterfv(&self, pname: GLenum, params: *const GLfloat) {
24193 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24194 {
24195 trace!("calling gl.PointParameterfv({:#X}, {:p});", pname, params);
24196 }
24197 let out = call_atomic_ptr_2arg(
24198 "glPointParameterfv",
24199 &self.glPointParameterfv_p,
24200 pname,
24201 params,
24202 );
24203 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24204 {
24205 self.automatic_glGetError("glPointParameterfv");
24206 }
24207 out
24208 }
24209 #[doc(hidden)]
24210 pub unsafe fn PointParameterfv_load_with_dyn(
24211 &self,
24212 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24213 ) -> bool {
24214 load_dyn_name_atomic_ptr(
24215 get_proc_address,
24216 b"glPointParameterfv\0",
24217 &self.glPointParameterfv_p,
24218 )
24219 }
24220 #[inline]
24221 #[doc(hidden)]
24222 pub fn PointParameterfv_is_loaded(&self) -> bool {
24223 !self.glPointParameterfv_p.load(RELAX).is_null()
24224 }
24225 #[cfg_attr(feature = "inline", inline)]
24228 #[cfg_attr(feature = "inline_always", inline(always))]
24229 pub unsafe fn PointParameteri(&self, pname: GLenum, param: GLint) {
24230 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24231 {
24232 trace!("calling gl.PointParameteri({:#X}, {:?});", pname, param);
24233 }
24234 let out =
24235 call_atomic_ptr_2arg("glPointParameteri", &self.glPointParameteri_p, pname, param);
24236 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24237 {
24238 self.automatic_glGetError("glPointParameteri");
24239 }
24240 out
24241 }
24242 #[doc(hidden)]
24243 pub unsafe fn PointParameteri_load_with_dyn(
24244 &self,
24245 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24246 ) -> bool {
24247 load_dyn_name_atomic_ptr(
24248 get_proc_address,
24249 b"glPointParameteri\0",
24250 &self.glPointParameteri_p,
24251 )
24252 }
24253 #[inline]
24254 #[doc(hidden)]
24255 pub fn PointParameteri_is_loaded(&self) -> bool {
24256 !self.glPointParameteri_p.load(RELAX).is_null()
24257 }
24258 #[cfg_attr(feature = "inline", inline)]
24262 #[cfg_attr(feature = "inline_always", inline(always))]
24263 pub unsafe fn PointParameteriv(&self, pname: GLenum, params: *const GLint) {
24264 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24265 {
24266 trace!("calling gl.PointParameteriv({:#X}, {:p});", pname, params);
24267 }
24268 let out = call_atomic_ptr_2arg(
24269 "glPointParameteriv",
24270 &self.glPointParameteriv_p,
24271 pname,
24272 params,
24273 );
24274 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24275 {
24276 self.automatic_glGetError("glPointParameteriv");
24277 }
24278 out
24279 }
24280 #[doc(hidden)]
24281 pub unsafe fn PointParameteriv_load_with_dyn(
24282 &self,
24283 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24284 ) -> bool {
24285 load_dyn_name_atomic_ptr(
24286 get_proc_address,
24287 b"glPointParameteriv\0",
24288 &self.glPointParameteriv_p,
24289 )
24290 }
24291 #[inline]
24292 #[doc(hidden)]
24293 pub fn PointParameteriv_is_loaded(&self) -> bool {
24294 !self.glPointParameteriv_p.load(RELAX).is_null()
24295 }
24296 #[cfg_attr(feature = "inline", inline)]
24299 #[cfg_attr(feature = "inline_always", inline(always))]
24300 pub unsafe fn PointSize(&self, size: GLfloat) {
24301 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24302 {
24303 trace!("calling gl.PointSize({:?});", size);
24304 }
24305 let out = call_atomic_ptr_1arg("glPointSize", &self.glPointSize_p, size);
24306 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24307 {
24308 self.automatic_glGetError("glPointSize");
24309 }
24310 out
24311 }
24312 #[doc(hidden)]
24313 pub unsafe fn PointSize_load_with_dyn(
24314 &self,
24315 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24316 ) -> bool {
24317 load_dyn_name_atomic_ptr(get_proc_address, b"glPointSize\0", &self.glPointSize_p)
24318 }
24319 #[inline]
24320 #[doc(hidden)]
24321 pub fn PointSize_is_loaded(&self) -> bool {
24322 !self.glPointSize_p.load(RELAX).is_null()
24323 }
24324 #[cfg_attr(feature = "inline", inline)]
24328 #[cfg_attr(feature = "inline_always", inline(always))]
24329 pub unsafe fn PolygonMode(&self, face: GLenum, mode: GLenum) {
24330 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24331 {
24332 trace!("calling gl.PolygonMode({:#X}, {:#X});", face, mode);
24333 }
24334 let out = call_atomic_ptr_2arg("glPolygonMode", &self.glPolygonMode_p, face, mode);
24335 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24336 {
24337 self.automatic_glGetError("glPolygonMode");
24338 }
24339 out
24340 }
24341 #[doc(hidden)]
24342 pub unsafe fn PolygonMode_load_with_dyn(
24343 &self,
24344 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24345 ) -> bool {
24346 load_dyn_name_atomic_ptr(get_proc_address, b"glPolygonMode\0", &self.glPolygonMode_p)
24347 }
24348 #[inline]
24349 #[doc(hidden)]
24350 pub fn PolygonMode_is_loaded(&self) -> bool {
24351 !self.glPolygonMode_p.load(RELAX).is_null()
24352 }
24353 #[cfg_attr(feature = "inline", inline)]
24355 #[cfg_attr(feature = "inline_always", inline(always))]
24356 pub unsafe fn PolygonOffset(&self, factor: GLfloat, units: GLfloat) {
24357 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24358 {
24359 trace!("calling gl.PolygonOffset({:?}, {:?});", factor, units);
24360 }
24361 let out =
24362 call_atomic_ptr_2arg("glPolygonOffset", &self.glPolygonOffset_p, factor, units);
24363 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24364 {
24365 self.automatic_glGetError("glPolygonOffset");
24366 }
24367 out
24368 }
24369 #[doc(hidden)]
24370 pub unsafe fn PolygonOffset_load_with_dyn(
24371 &self,
24372 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24373 ) -> bool {
24374 load_dyn_name_atomic_ptr(
24375 get_proc_address,
24376 b"glPolygonOffset\0",
24377 &self.glPolygonOffset_p,
24378 )
24379 }
24380 #[inline]
24381 #[doc(hidden)]
24382 pub fn PolygonOffset_is_loaded(&self) -> bool {
24383 !self.glPolygonOffset_p.load(RELAX).is_null()
24384 }
24385 #[cfg_attr(feature = "inline", inline)]
24387 #[cfg_attr(feature = "inline_always", inline(always))]
24388 pub unsafe fn PolygonOffsetClamp(&self, factor: GLfloat, units: GLfloat, clamp: GLfloat) {
24389 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24390 {
24391 trace!(
24392 "calling gl.PolygonOffsetClamp({:?}, {:?}, {:?});",
24393 factor,
24394 units,
24395 clamp
24396 );
24397 }
24398 let out = call_atomic_ptr_3arg(
24399 "glPolygonOffsetClamp",
24400 &self.glPolygonOffsetClamp_p,
24401 factor,
24402 units,
24403 clamp,
24404 );
24405 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24406 {
24407 self.automatic_glGetError("glPolygonOffsetClamp");
24408 }
24409 out
24410 }
24411 #[doc(hidden)]
24412 pub unsafe fn PolygonOffsetClamp_load_with_dyn(
24413 &self,
24414 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24415 ) -> bool {
24416 load_dyn_name_atomic_ptr(
24417 get_proc_address,
24418 b"glPolygonOffsetClamp\0",
24419 &self.glPolygonOffsetClamp_p,
24420 )
24421 }
24422 #[inline]
24423 #[doc(hidden)]
24424 pub fn PolygonOffsetClamp_is_loaded(&self) -> bool {
24425 !self.glPolygonOffsetClamp_p.load(RELAX).is_null()
24426 }
24427 #[cfg_attr(feature = "inline", inline)]
24429 #[cfg_attr(feature = "inline_always", inline(always))]
24430 pub unsafe fn PopDebugGroup(&self) {
24431 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24432 {
24433 trace!("calling gl.PopDebugGroup();",);
24434 }
24435 let out = call_atomic_ptr_0arg("glPopDebugGroup", &self.glPopDebugGroup_p);
24436 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24437 {
24438 self.automatic_glGetError("glPopDebugGroup");
24439 }
24440 out
24441 }
24442 #[doc(hidden)]
24443 pub unsafe fn PopDebugGroup_load_with_dyn(
24444 &self,
24445 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24446 ) -> bool {
24447 load_dyn_name_atomic_ptr(
24448 get_proc_address,
24449 b"glPopDebugGroup\0",
24450 &self.glPopDebugGroup_p,
24451 )
24452 }
24453 #[inline]
24454 #[doc(hidden)]
24455 pub fn PopDebugGroup_is_loaded(&self) -> bool {
24456 !self.glPopDebugGroup_p.load(RELAX).is_null()
24457 }
24458 #[cfg_attr(feature = "inline", inline)]
24461 #[cfg_attr(feature = "inline_always", inline(always))]
24462 pub unsafe fn PopDebugGroupKHR(&self) {
24463 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24464 {
24465 trace!("calling gl.PopDebugGroupKHR();",);
24466 }
24467 let out = call_atomic_ptr_0arg("glPopDebugGroupKHR", &self.glPopDebugGroupKHR_p);
24468 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24469 {
24470 self.automatic_glGetError("glPopDebugGroupKHR");
24471 }
24472 out
24473 }
24474 #[doc(hidden)]
24475 pub unsafe fn PopDebugGroupKHR_load_with_dyn(
24476 &self,
24477 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24478 ) -> bool {
24479 load_dyn_name_atomic_ptr(
24480 get_proc_address,
24481 b"glPopDebugGroupKHR\0",
24482 &self.glPopDebugGroupKHR_p,
24483 )
24484 }
24485 #[inline]
24486 #[doc(hidden)]
24487 pub fn PopDebugGroupKHR_is_loaded(&self) -> bool {
24488 !self.glPopDebugGroupKHR_p.load(RELAX).is_null()
24489 }
24490 #[cfg_attr(feature = "inline", inline)]
24492 #[cfg_attr(feature = "inline_always", inline(always))]
24493 pub unsafe fn PrimitiveBoundingBox(
24494 &self,
24495 minX: GLfloat,
24496 minY: GLfloat,
24497 minZ: GLfloat,
24498 minW: GLfloat,
24499 maxX: GLfloat,
24500 maxY: GLfloat,
24501 maxZ: GLfloat,
24502 maxW: GLfloat,
24503 ) {
24504 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24505 {
24506 trace!("calling gl.PrimitiveBoundingBox({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", minX, minY, minZ, minW, maxX, maxY, maxZ, maxW);
24507 }
24508 let out = call_atomic_ptr_8arg(
24509 "glPrimitiveBoundingBox",
24510 &self.glPrimitiveBoundingBox_p,
24511 minX,
24512 minY,
24513 minZ,
24514 minW,
24515 maxX,
24516 maxY,
24517 maxZ,
24518 maxW,
24519 );
24520 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24521 {
24522 self.automatic_glGetError("glPrimitiveBoundingBox");
24523 }
24524 out
24525 }
24526 #[doc(hidden)]
24527 pub unsafe fn PrimitiveBoundingBox_load_with_dyn(
24528 &self,
24529 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24530 ) -> bool {
24531 load_dyn_name_atomic_ptr(
24532 get_proc_address,
24533 b"glPrimitiveBoundingBox\0",
24534 &self.glPrimitiveBoundingBox_p,
24535 )
24536 }
24537 #[inline]
24538 #[doc(hidden)]
24539 pub fn PrimitiveBoundingBox_is_loaded(&self) -> bool {
24540 !self.glPrimitiveBoundingBox_p.load(RELAX).is_null()
24541 }
24542 #[cfg_attr(feature = "inline", inline)]
24544 #[cfg_attr(feature = "inline_always", inline(always))]
24545 pub unsafe fn PrimitiveRestartIndex(&self, index: GLuint) {
24546 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24547 {
24548 trace!("calling gl.PrimitiveRestartIndex({:?});", index);
24549 }
24550 let out = call_atomic_ptr_1arg(
24551 "glPrimitiveRestartIndex",
24552 &self.glPrimitiveRestartIndex_p,
24553 index,
24554 );
24555 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24556 {
24557 self.automatic_glGetError("glPrimitiveRestartIndex");
24558 }
24559 out
24560 }
24561 #[doc(hidden)]
24562 pub unsafe fn PrimitiveRestartIndex_load_with_dyn(
24563 &self,
24564 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24565 ) -> bool {
24566 load_dyn_name_atomic_ptr(
24567 get_proc_address,
24568 b"glPrimitiveRestartIndex\0",
24569 &self.glPrimitiveRestartIndex_p,
24570 )
24571 }
24572 #[inline]
24573 #[doc(hidden)]
24574 pub fn PrimitiveRestartIndex_is_loaded(&self) -> bool {
24575 !self.glPrimitiveRestartIndex_p.load(RELAX).is_null()
24576 }
24577 #[cfg_attr(feature = "inline", inline)]
24580 #[cfg_attr(feature = "inline_always", inline(always))]
24581 pub unsafe fn ProgramBinary(
24582 &self,
24583 program: GLuint,
24584 binaryFormat: GLenum,
24585 binary: *const c_void,
24586 length: GLsizei,
24587 ) {
24588 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24589 {
24590 trace!(
24591 "calling gl.ProgramBinary({:?}, {:#X}, {:p}, {:?});",
24592 program,
24593 binaryFormat,
24594 binary,
24595 length
24596 );
24597 }
24598 let out = call_atomic_ptr_4arg(
24599 "glProgramBinary",
24600 &self.glProgramBinary_p,
24601 program,
24602 binaryFormat,
24603 binary,
24604 length,
24605 );
24606 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24607 {
24608 self.automatic_glGetError("glProgramBinary");
24609 }
24610 out
24611 }
24612 #[doc(hidden)]
24613 pub unsafe fn ProgramBinary_load_with_dyn(
24614 &self,
24615 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24616 ) -> bool {
24617 load_dyn_name_atomic_ptr(
24618 get_proc_address,
24619 b"glProgramBinary\0",
24620 &self.glProgramBinary_p,
24621 )
24622 }
24623 #[inline]
24624 #[doc(hidden)]
24625 pub fn ProgramBinary_is_loaded(&self) -> bool {
24626 !self.glProgramBinary_p.load(RELAX).is_null()
24627 }
24628 #[cfg_attr(feature = "inline", inline)]
24631 #[cfg_attr(feature = "inline_always", inline(always))]
24632 pub unsafe fn ProgramParameteri(&self, program: GLuint, pname: GLenum, value: GLint) {
24633 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24634 {
24635 trace!(
24636 "calling gl.ProgramParameteri({:?}, {:#X}, {:?});",
24637 program,
24638 pname,
24639 value
24640 );
24641 }
24642 let out = call_atomic_ptr_3arg(
24643 "glProgramParameteri",
24644 &self.glProgramParameteri_p,
24645 program,
24646 pname,
24647 value,
24648 );
24649 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24650 {
24651 self.automatic_glGetError("glProgramParameteri");
24652 }
24653 out
24654 }
24655 #[doc(hidden)]
24656 pub unsafe fn ProgramParameteri_load_with_dyn(
24657 &self,
24658 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24659 ) -> bool {
24660 load_dyn_name_atomic_ptr(
24661 get_proc_address,
24662 b"glProgramParameteri\0",
24663 &self.glProgramParameteri_p,
24664 )
24665 }
24666 #[inline]
24667 #[doc(hidden)]
24668 pub fn ProgramParameteri_is_loaded(&self) -> bool {
24669 !self.glProgramParameteri_p.load(RELAX).is_null()
24670 }
24671 #[cfg_attr(feature = "inline", inline)]
24673 #[cfg_attr(feature = "inline_always", inline(always))]
24674 pub unsafe fn ProgramUniform1d(&self, program: GLuint, location: GLint, v0: GLdouble) {
24675 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24676 {
24677 trace!(
24678 "calling gl.ProgramUniform1d({:?}, {:?}, {:?});",
24679 program,
24680 location,
24681 v0
24682 );
24683 }
24684 let out = call_atomic_ptr_3arg(
24685 "glProgramUniform1d",
24686 &self.glProgramUniform1d_p,
24687 program,
24688 location,
24689 v0,
24690 );
24691 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24692 {
24693 self.automatic_glGetError("glProgramUniform1d");
24694 }
24695 out
24696 }
24697 #[doc(hidden)]
24698 pub unsafe fn ProgramUniform1d_load_with_dyn(
24699 &self,
24700 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24701 ) -> bool {
24702 load_dyn_name_atomic_ptr(
24703 get_proc_address,
24704 b"glProgramUniform1d\0",
24705 &self.glProgramUniform1d_p,
24706 )
24707 }
24708 #[inline]
24709 #[doc(hidden)]
24710 pub fn ProgramUniform1d_is_loaded(&self) -> bool {
24711 !self.glProgramUniform1d_p.load(RELAX).is_null()
24712 }
24713 #[cfg_attr(feature = "inline", inline)]
24716 #[cfg_attr(feature = "inline_always", inline(always))]
24717 pub unsafe fn ProgramUniform1dv(
24718 &self,
24719 program: GLuint,
24720 location: GLint,
24721 count: GLsizei,
24722 value: *const GLdouble,
24723 ) {
24724 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24725 {
24726 trace!(
24727 "calling gl.ProgramUniform1dv({:?}, {:?}, {:?}, {:p});",
24728 program,
24729 location,
24730 count,
24731 value
24732 );
24733 }
24734 let out = call_atomic_ptr_4arg(
24735 "glProgramUniform1dv",
24736 &self.glProgramUniform1dv_p,
24737 program,
24738 location,
24739 count,
24740 value,
24741 );
24742 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24743 {
24744 self.automatic_glGetError("glProgramUniform1dv");
24745 }
24746 out
24747 }
24748 #[doc(hidden)]
24749 pub unsafe fn ProgramUniform1dv_load_with_dyn(
24750 &self,
24751 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24752 ) -> bool {
24753 load_dyn_name_atomic_ptr(
24754 get_proc_address,
24755 b"glProgramUniform1dv\0",
24756 &self.glProgramUniform1dv_p,
24757 )
24758 }
24759 #[inline]
24760 #[doc(hidden)]
24761 pub fn ProgramUniform1dv_is_loaded(&self) -> bool {
24762 !self.glProgramUniform1dv_p.load(RELAX).is_null()
24763 }
24764 #[cfg_attr(feature = "inline", inline)]
24766 #[cfg_attr(feature = "inline_always", inline(always))]
24767 pub unsafe fn ProgramUniform1f(&self, program: GLuint, location: GLint, v0: GLfloat) {
24768 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24769 {
24770 trace!(
24771 "calling gl.ProgramUniform1f({:?}, {:?}, {:?});",
24772 program,
24773 location,
24774 v0
24775 );
24776 }
24777 let out = call_atomic_ptr_3arg(
24778 "glProgramUniform1f",
24779 &self.glProgramUniform1f_p,
24780 program,
24781 location,
24782 v0,
24783 );
24784 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24785 {
24786 self.automatic_glGetError("glProgramUniform1f");
24787 }
24788 out
24789 }
24790 #[doc(hidden)]
24791 pub unsafe fn ProgramUniform1f_load_with_dyn(
24792 &self,
24793 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24794 ) -> bool {
24795 load_dyn_name_atomic_ptr(
24796 get_proc_address,
24797 b"glProgramUniform1f\0",
24798 &self.glProgramUniform1f_p,
24799 )
24800 }
24801 #[inline]
24802 #[doc(hidden)]
24803 pub fn ProgramUniform1f_is_loaded(&self) -> bool {
24804 !self.glProgramUniform1f_p.load(RELAX).is_null()
24805 }
24806 #[cfg_attr(feature = "inline", inline)]
24809 #[cfg_attr(feature = "inline_always", inline(always))]
24810 pub unsafe fn ProgramUniform1fv(
24811 &self,
24812 program: GLuint,
24813 location: GLint,
24814 count: GLsizei,
24815 value: *const GLfloat,
24816 ) {
24817 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24818 {
24819 trace!(
24820 "calling gl.ProgramUniform1fv({:?}, {:?}, {:?}, {:p});",
24821 program,
24822 location,
24823 count,
24824 value
24825 );
24826 }
24827 let out = call_atomic_ptr_4arg(
24828 "glProgramUniform1fv",
24829 &self.glProgramUniform1fv_p,
24830 program,
24831 location,
24832 count,
24833 value,
24834 );
24835 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24836 {
24837 self.automatic_glGetError("glProgramUniform1fv");
24838 }
24839 out
24840 }
24841 #[doc(hidden)]
24842 pub unsafe fn ProgramUniform1fv_load_with_dyn(
24843 &self,
24844 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24845 ) -> bool {
24846 load_dyn_name_atomic_ptr(
24847 get_proc_address,
24848 b"glProgramUniform1fv\0",
24849 &self.glProgramUniform1fv_p,
24850 )
24851 }
24852 #[inline]
24853 #[doc(hidden)]
24854 pub fn ProgramUniform1fv_is_loaded(&self) -> bool {
24855 !self.glProgramUniform1fv_p.load(RELAX).is_null()
24856 }
24857 #[cfg_attr(feature = "inline", inline)]
24859 #[cfg_attr(feature = "inline_always", inline(always))]
24860 pub unsafe fn ProgramUniform1i(&self, program: GLuint, location: GLint, v0: GLint) {
24861 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24862 {
24863 trace!(
24864 "calling gl.ProgramUniform1i({:?}, {:?}, {:?});",
24865 program,
24866 location,
24867 v0
24868 );
24869 }
24870 let out = call_atomic_ptr_3arg(
24871 "glProgramUniform1i",
24872 &self.glProgramUniform1i_p,
24873 program,
24874 location,
24875 v0,
24876 );
24877 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24878 {
24879 self.automatic_glGetError("glProgramUniform1i");
24880 }
24881 out
24882 }
24883 #[doc(hidden)]
24884 pub unsafe fn ProgramUniform1i_load_with_dyn(
24885 &self,
24886 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24887 ) -> bool {
24888 load_dyn_name_atomic_ptr(
24889 get_proc_address,
24890 b"glProgramUniform1i\0",
24891 &self.glProgramUniform1i_p,
24892 )
24893 }
24894 #[inline]
24895 #[doc(hidden)]
24896 pub fn ProgramUniform1i_is_loaded(&self) -> bool {
24897 !self.glProgramUniform1i_p.load(RELAX).is_null()
24898 }
24899 #[cfg_attr(feature = "inline", inline)]
24902 #[cfg_attr(feature = "inline_always", inline(always))]
24903 pub unsafe fn ProgramUniform1iv(
24904 &self,
24905 program: GLuint,
24906 location: GLint,
24907 count: GLsizei,
24908 value: *const GLint,
24909 ) {
24910 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24911 {
24912 trace!(
24913 "calling gl.ProgramUniform1iv({:?}, {:?}, {:?}, {:p});",
24914 program,
24915 location,
24916 count,
24917 value
24918 );
24919 }
24920 let out = call_atomic_ptr_4arg(
24921 "glProgramUniform1iv",
24922 &self.glProgramUniform1iv_p,
24923 program,
24924 location,
24925 count,
24926 value,
24927 );
24928 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24929 {
24930 self.automatic_glGetError("glProgramUniform1iv");
24931 }
24932 out
24933 }
24934 #[doc(hidden)]
24935 pub unsafe fn ProgramUniform1iv_load_with_dyn(
24936 &self,
24937 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24938 ) -> bool {
24939 load_dyn_name_atomic_ptr(
24940 get_proc_address,
24941 b"glProgramUniform1iv\0",
24942 &self.glProgramUniform1iv_p,
24943 )
24944 }
24945 #[inline]
24946 #[doc(hidden)]
24947 pub fn ProgramUniform1iv_is_loaded(&self) -> bool {
24948 !self.glProgramUniform1iv_p.load(RELAX).is_null()
24949 }
24950 #[cfg_attr(feature = "inline", inline)]
24952 #[cfg_attr(feature = "inline_always", inline(always))]
24953 pub unsafe fn ProgramUniform1ui(&self, program: GLuint, location: GLint, v0: GLuint) {
24954 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24955 {
24956 trace!(
24957 "calling gl.ProgramUniform1ui({:?}, {:?}, {:?});",
24958 program,
24959 location,
24960 v0
24961 );
24962 }
24963 let out = call_atomic_ptr_3arg(
24964 "glProgramUniform1ui",
24965 &self.glProgramUniform1ui_p,
24966 program,
24967 location,
24968 v0,
24969 );
24970 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24971 {
24972 self.automatic_glGetError("glProgramUniform1ui");
24973 }
24974 out
24975 }
24976 #[doc(hidden)]
24977 pub unsafe fn ProgramUniform1ui_load_with_dyn(
24978 &self,
24979 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24980 ) -> bool {
24981 load_dyn_name_atomic_ptr(
24982 get_proc_address,
24983 b"glProgramUniform1ui\0",
24984 &self.glProgramUniform1ui_p,
24985 )
24986 }
24987 #[inline]
24988 #[doc(hidden)]
24989 pub fn ProgramUniform1ui_is_loaded(&self) -> bool {
24990 !self.glProgramUniform1ui_p.load(RELAX).is_null()
24991 }
24992 #[cfg_attr(feature = "inline", inline)]
24995 #[cfg_attr(feature = "inline_always", inline(always))]
24996 pub unsafe fn ProgramUniform1uiv(
24997 &self,
24998 program: GLuint,
24999 location: GLint,
25000 count: GLsizei,
25001 value: *const GLuint,
25002 ) {
25003 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25004 {
25005 trace!(
25006 "calling gl.ProgramUniform1uiv({:?}, {:?}, {:?}, {:p});",
25007 program,
25008 location,
25009 count,
25010 value
25011 );
25012 }
25013 let out = call_atomic_ptr_4arg(
25014 "glProgramUniform1uiv",
25015 &self.glProgramUniform1uiv_p,
25016 program,
25017 location,
25018 count,
25019 value,
25020 );
25021 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25022 {
25023 self.automatic_glGetError("glProgramUniform1uiv");
25024 }
25025 out
25026 }
25027 #[doc(hidden)]
25028 pub unsafe fn ProgramUniform1uiv_load_with_dyn(
25029 &self,
25030 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25031 ) -> bool {
25032 load_dyn_name_atomic_ptr(
25033 get_proc_address,
25034 b"glProgramUniform1uiv\0",
25035 &self.glProgramUniform1uiv_p,
25036 )
25037 }
25038 #[inline]
25039 #[doc(hidden)]
25040 pub fn ProgramUniform1uiv_is_loaded(&self) -> bool {
25041 !self.glProgramUniform1uiv_p.load(RELAX).is_null()
25042 }
25043 #[cfg_attr(feature = "inline", inline)]
25045 #[cfg_attr(feature = "inline_always", inline(always))]
25046 pub unsafe fn ProgramUniform2d(
25047 &self,
25048 program: GLuint,
25049 location: GLint,
25050 v0: GLdouble,
25051 v1: GLdouble,
25052 ) {
25053 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25054 {
25055 trace!(
25056 "calling gl.ProgramUniform2d({:?}, {:?}, {:?}, {:?});",
25057 program,
25058 location,
25059 v0,
25060 v1
25061 );
25062 }
25063 let out = call_atomic_ptr_4arg(
25064 "glProgramUniform2d",
25065 &self.glProgramUniform2d_p,
25066 program,
25067 location,
25068 v0,
25069 v1,
25070 );
25071 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25072 {
25073 self.automatic_glGetError("glProgramUniform2d");
25074 }
25075 out
25076 }
25077 #[doc(hidden)]
25078 pub unsafe fn ProgramUniform2d_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"glProgramUniform2d\0",
25085 &self.glProgramUniform2d_p,
25086 )
25087 }
25088 #[inline]
25089 #[doc(hidden)]
25090 pub fn ProgramUniform2d_is_loaded(&self) -> bool {
25091 !self.glProgramUniform2d_p.load(RELAX).is_null()
25092 }
25093 #[cfg_attr(feature = "inline", inline)]
25096 #[cfg_attr(feature = "inline_always", inline(always))]
25097 pub unsafe fn ProgramUniform2dv(
25098 &self,
25099 program: GLuint,
25100 location: GLint,
25101 count: GLsizei,
25102 value: *const GLdouble,
25103 ) {
25104 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25105 {
25106 trace!(
25107 "calling gl.ProgramUniform2dv({:?}, {:?}, {:?}, {:p});",
25108 program,
25109 location,
25110 count,
25111 value
25112 );
25113 }
25114 let out = call_atomic_ptr_4arg(
25115 "glProgramUniform2dv",
25116 &self.glProgramUniform2dv_p,
25117 program,
25118 location,
25119 count,
25120 value,
25121 );
25122 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25123 {
25124 self.automatic_glGetError("glProgramUniform2dv");
25125 }
25126 out
25127 }
25128 #[doc(hidden)]
25129 pub unsafe fn ProgramUniform2dv_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"glProgramUniform2dv\0",
25136 &self.glProgramUniform2dv_p,
25137 )
25138 }
25139 #[inline]
25140 #[doc(hidden)]
25141 pub fn ProgramUniform2dv_is_loaded(&self) -> bool {
25142 !self.glProgramUniform2dv_p.load(RELAX).is_null()
25143 }
25144 #[cfg_attr(feature = "inline", inline)]
25146 #[cfg_attr(feature = "inline_always", inline(always))]
25147 pub unsafe fn ProgramUniform2f(
25148 &self,
25149 program: GLuint,
25150 location: GLint,
25151 v0: GLfloat,
25152 v1: GLfloat,
25153 ) {
25154 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25155 {
25156 trace!(
25157 "calling gl.ProgramUniform2f({:?}, {:?}, {:?}, {:?});",
25158 program,
25159 location,
25160 v0,
25161 v1
25162 );
25163 }
25164 let out = call_atomic_ptr_4arg(
25165 "glProgramUniform2f",
25166 &self.glProgramUniform2f_p,
25167 program,
25168 location,
25169 v0,
25170 v1,
25171 );
25172 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25173 {
25174 self.automatic_glGetError("glProgramUniform2f");
25175 }
25176 out
25177 }
25178 #[doc(hidden)]
25179 pub unsafe fn ProgramUniform2f_load_with_dyn(
25180 &self,
25181 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25182 ) -> bool {
25183 load_dyn_name_atomic_ptr(
25184 get_proc_address,
25185 b"glProgramUniform2f\0",
25186 &self.glProgramUniform2f_p,
25187 )
25188 }
25189 #[inline]
25190 #[doc(hidden)]
25191 pub fn ProgramUniform2f_is_loaded(&self) -> bool {
25192 !self.glProgramUniform2f_p.load(RELAX).is_null()
25193 }
25194 #[cfg_attr(feature = "inline", inline)]
25197 #[cfg_attr(feature = "inline_always", inline(always))]
25198 pub unsafe fn ProgramUniform2fv(
25199 &self,
25200 program: GLuint,
25201 location: GLint,
25202 count: GLsizei,
25203 value: *const GLfloat,
25204 ) {
25205 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25206 {
25207 trace!(
25208 "calling gl.ProgramUniform2fv({:?}, {:?}, {:?}, {:p});",
25209 program,
25210 location,
25211 count,
25212 value
25213 );
25214 }
25215 let out = call_atomic_ptr_4arg(
25216 "glProgramUniform2fv",
25217 &self.glProgramUniform2fv_p,
25218 program,
25219 location,
25220 count,
25221 value,
25222 );
25223 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25224 {
25225 self.automatic_glGetError("glProgramUniform2fv");
25226 }
25227 out
25228 }
25229 #[doc(hidden)]
25230 pub unsafe fn ProgramUniform2fv_load_with_dyn(
25231 &self,
25232 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25233 ) -> bool {
25234 load_dyn_name_atomic_ptr(
25235 get_proc_address,
25236 b"glProgramUniform2fv\0",
25237 &self.glProgramUniform2fv_p,
25238 )
25239 }
25240 #[inline]
25241 #[doc(hidden)]
25242 pub fn ProgramUniform2fv_is_loaded(&self) -> bool {
25243 !self.glProgramUniform2fv_p.load(RELAX).is_null()
25244 }
25245 #[cfg_attr(feature = "inline", inline)]
25247 #[cfg_attr(feature = "inline_always", inline(always))]
25248 pub unsafe fn ProgramUniform2i(
25249 &self,
25250 program: GLuint,
25251 location: GLint,
25252 v0: GLint,
25253 v1: GLint,
25254 ) {
25255 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25256 {
25257 trace!(
25258 "calling gl.ProgramUniform2i({:?}, {:?}, {:?}, {:?});",
25259 program,
25260 location,
25261 v0,
25262 v1
25263 );
25264 }
25265 let out = call_atomic_ptr_4arg(
25266 "glProgramUniform2i",
25267 &self.glProgramUniform2i_p,
25268 program,
25269 location,
25270 v0,
25271 v1,
25272 );
25273 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25274 {
25275 self.automatic_glGetError("glProgramUniform2i");
25276 }
25277 out
25278 }
25279 #[doc(hidden)]
25280 pub unsafe fn ProgramUniform2i_load_with_dyn(
25281 &self,
25282 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25283 ) -> bool {
25284 load_dyn_name_atomic_ptr(
25285 get_proc_address,
25286 b"glProgramUniform2i\0",
25287 &self.glProgramUniform2i_p,
25288 )
25289 }
25290 #[inline]
25291 #[doc(hidden)]
25292 pub fn ProgramUniform2i_is_loaded(&self) -> bool {
25293 !self.glProgramUniform2i_p.load(RELAX).is_null()
25294 }
25295 #[cfg_attr(feature = "inline", inline)]
25298 #[cfg_attr(feature = "inline_always", inline(always))]
25299 pub unsafe fn ProgramUniform2iv(
25300 &self,
25301 program: GLuint,
25302 location: GLint,
25303 count: GLsizei,
25304 value: *const GLint,
25305 ) {
25306 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25307 {
25308 trace!(
25309 "calling gl.ProgramUniform2iv({:?}, {:?}, {:?}, {:p});",
25310 program,
25311 location,
25312 count,
25313 value
25314 );
25315 }
25316 let out = call_atomic_ptr_4arg(
25317 "glProgramUniform2iv",
25318 &self.glProgramUniform2iv_p,
25319 program,
25320 location,
25321 count,
25322 value,
25323 );
25324 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25325 {
25326 self.automatic_glGetError("glProgramUniform2iv");
25327 }
25328 out
25329 }
25330 #[doc(hidden)]
25331 pub unsafe fn ProgramUniform2iv_load_with_dyn(
25332 &self,
25333 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25334 ) -> bool {
25335 load_dyn_name_atomic_ptr(
25336 get_proc_address,
25337 b"glProgramUniform2iv\0",
25338 &self.glProgramUniform2iv_p,
25339 )
25340 }
25341 #[inline]
25342 #[doc(hidden)]
25343 pub fn ProgramUniform2iv_is_loaded(&self) -> bool {
25344 !self.glProgramUniform2iv_p.load(RELAX).is_null()
25345 }
25346 #[cfg_attr(feature = "inline", inline)]
25348 #[cfg_attr(feature = "inline_always", inline(always))]
25349 pub unsafe fn ProgramUniform2ui(
25350 &self,
25351 program: GLuint,
25352 location: GLint,
25353 v0: GLuint,
25354 v1: GLuint,
25355 ) {
25356 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25357 {
25358 trace!(
25359 "calling gl.ProgramUniform2ui({:?}, {:?}, {:?}, {:?});",
25360 program,
25361 location,
25362 v0,
25363 v1
25364 );
25365 }
25366 let out = call_atomic_ptr_4arg(
25367 "glProgramUniform2ui",
25368 &self.glProgramUniform2ui_p,
25369 program,
25370 location,
25371 v0,
25372 v1,
25373 );
25374 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25375 {
25376 self.automatic_glGetError("glProgramUniform2ui");
25377 }
25378 out
25379 }
25380 #[doc(hidden)]
25381 pub unsafe fn ProgramUniform2ui_load_with_dyn(
25382 &self,
25383 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25384 ) -> bool {
25385 load_dyn_name_atomic_ptr(
25386 get_proc_address,
25387 b"glProgramUniform2ui\0",
25388 &self.glProgramUniform2ui_p,
25389 )
25390 }
25391 #[inline]
25392 #[doc(hidden)]
25393 pub fn ProgramUniform2ui_is_loaded(&self) -> bool {
25394 !self.glProgramUniform2ui_p.load(RELAX).is_null()
25395 }
25396 #[cfg_attr(feature = "inline", inline)]
25399 #[cfg_attr(feature = "inline_always", inline(always))]
25400 pub unsafe fn ProgramUniform2uiv(
25401 &self,
25402 program: GLuint,
25403 location: GLint,
25404 count: GLsizei,
25405 value: *const GLuint,
25406 ) {
25407 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25408 {
25409 trace!(
25410 "calling gl.ProgramUniform2uiv({:?}, {:?}, {:?}, {:p});",
25411 program,
25412 location,
25413 count,
25414 value
25415 );
25416 }
25417 let out = call_atomic_ptr_4arg(
25418 "glProgramUniform2uiv",
25419 &self.glProgramUniform2uiv_p,
25420 program,
25421 location,
25422 count,
25423 value,
25424 );
25425 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25426 {
25427 self.automatic_glGetError("glProgramUniform2uiv");
25428 }
25429 out
25430 }
25431 #[doc(hidden)]
25432 pub unsafe fn ProgramUniform2uiv_load_with_dyn(
25433 &self,
25434 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25435 ) -> bool {
25436 load_dyn_name_atomic_ptr(
25437 get_proc_address,
25438 b"glProgramUniform2uiv\0",
25439 &self.glProgramUniform2uiv_p,
25440 )
25441 }
25442 #[inline]
25443 #[doc(hidden)]
25444 pub fn ProgramUniform2uiv_is_loaded(&self) -> bool {
25445 !self.glProgramUniform2uiv_p.load(RELAX).is_null()
25446 }
25447 #[cfg_attr(feature = "inline", inline)]
25449 #[cfg_attr(feature = "inline_always", inline(always))]
25450 pub unsafe fn ProgramUniform3d(
25451 &self,
25452 program: GLuint,
25453 location: GLint,
25454 v0: GLdouble,
25455 v1: GLdouble,
25456 v2: GLdouble,
25457 ) {
25458 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25459 {
25460 trace!(
25461 "calling gl.ProgramUniform3d({:?}, {:?}, {:?}, {:?}, {:?});",
25462 program,
25463 location,
25464 v0,
25465 v1,
25466 v2
25467 );
25468 }
25469 let out = call_atomic_ptr_5arg(
25470 "glProgramUniform3d",
25471 &self.glProgramUniform3d_p,
25472 program,
25473 location,
25474 v0,
25475 v1,
25476 v2,
25477 );
25478 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25479 {
25480 self.automatic_glGetError("glProgramUniform3d");
25481 }
25482 out
25483 }
25484 #[doc(hidden)]
25485 pub unsafe fn ProgramUniform3d_load_with_dyn(
25486 &self,
25487 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25488 ) -> bool {
25489 load_dyn_name_atomic_ptr(
25490 get_proc_address,
25491 b"glProgramUniform3d\0",
25492 &self.glProgramUniform3d_p,
25493 )
25494 }
25495 #[inline]
25496 #[doc(hidden)]
25497 pub fn ProgramUniform3d_is_loaded(&self) -> bool {
25498 !self.glProgramUniform3d_p.load(RELAX).is_null()
25499 }
25500 #[cfg_attr(feature = "inline", inline)]
25503 #[cfg_attr(feature = "inline_always", inline(always))]
25504 pub unsafe fn ProgramUniform3dv(
25505 &self,
25506 program: GLuint,
25507 location: GLint,
25508 count: GLsizei,
25509 value: *const GLdouble,
25510 ) {
25511 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25512 {
25513 trace!(
25514 "calling gl.ProgramUniform3dv({:?}, {:?}, {:?}, {:p});",
25515 program,
25516 location,
25517 count,
25518 value
25519 );
25520 }
25521 let out = call_atomic_ptr_4arg(
25522 "glProgramUniform3dv",
25523 &self.glProgramUniform3dv_p,
25524 program,
25525 location,
25526 count,
25527 value,
25528 );
25529 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25530 {
25531 self.automatic_glGetError("glProgramUniform3dv");
25532 }
25533 out
25534 }
25535 #[doc(hidden)]
25536 pub unsafe fn ProgramUniform3dv_load_with_dyn(
25537 &self,
25538 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25539 ) -> bool {
25540 load_dyn_name_atomic_ptr(
25541 get_proc_address,
25542 b"glProgramUniform3dv\0",
25543 &self.glProgramUniform3dv_p,
25544 )
25545 }
25546 #[inline]
25547 #[doc(hidden)]
25548 pub fn ProgramUniform3dv_is_loaded(&self) -> bool {
25549 !self.glProgramUniform3dv_p.load(RELAX).is_null()
25550 }
25551 #[cfg_attr(feature = "inline", inline)]
25553 #[cfg_attr(feature = "inline_always", inline(always))]
25554 pub unsafe fn ProgramUniform3f(
25555 &self,
25556 program: GLuint,
25557 location: GLint,
25558 v0: GLfloat,
25559 v1: GLfloat,
25560 v2: GLfloat,
25561 ) {
25562 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25563 {
25564 trace!(
25565 "calling gl.ProgramUniform3f({:?}, {:?}, {:?}, {:?}, {:?});",
25566 program,
25567 location,
25568 v0,
25569 v1,
25570 v2
25571 );
25572 }
25573 let out = call_atomic_ptr_5arg(
25574 "glProgramUniform3f",
25575 &self.glProgramUniform3f_p,
25576 program,
25577 location,
25578 v0,
25579 v1,
25580 v2,
25581 );
25582 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25583 {
25584 self.automatic_glGetError("glProgramUniform3f");
25585 }
25586 out
25587 }
25588 #[doc(hidden)]
25589 pub unsafe fn ProgramUniform3f_load_with_dyn(
25590 &self,
25591 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25592 ) -> bool {
25593 load_dyn_name_atomic_ptr(
25594 get_proc_address,
25595 b"glProgramUniform3f\0",
25596 &self.glProgramUniform3f_p,
25597 )
25598 }
25599 #[inline]
25600 #[doc(hidden)]
25601 pub fn ProgramUniform3f_is_loaded(&self) -> bool {
25602 !self.glProgramUniform3f_p.load(RELAX).is_null()
25603 }
25604 #[cfg_attr(feature = "inline", inline)]
25607 #[cfg_attr(feature = "inline_always", inline(always))]
25608 pub unsafe fn ProgramUniform3fv(
25609 &self,
25610 program: GLuint,
25611 location: GLint,
25612 count: GLsizei,
25613 value: *const GLfloat,
25614 ) {
25615 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25616 {
25617 trace!(
25618 "calling gl.ProgramUniform3fv({:?}, {:?}, {:?}, {:p});",
25619 program,
25620 location,
25621 count,
25622 value
25623 );
25624 }
25625 let out = call_atomic_ptr_4arg(
25626 "glProgramUniform3fv",
25627 &self.glProgramUniform3fv_p,
25628 program,
25629 location,
25630 count,
25631 value,
25632 );
25633 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25634 {
25635 self.automatic_glGetError("glProgramUniform3fv");
25636 }
25637 out
25638 }
25639 #[doc(hidden)]
25640 pub unsafe fn ProgramUniform3fv_load_with_dyn(
25641 &self,
25642 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25643 ) -> bool {
25644 load_dyn_name_atomic_ptr(
25645 get_proc_address,
25646 b"glProgramUniform3fv\0",
25647 &self.glProgramUniform3fv_p,
25648 )
25649 }
25650 #[inline]
25651 #[doc(hidden)]
25652 pub fn ProgramUniform3fv_is_loaded(&self) -> bool {
25653 !self.glProgramUniform3fv_p.load(RELAX).is_null()
25654 }
25655 #[cfg_attr(feature = "inline", inline)]
25657 #[cfg_attr(feature = "inline_always", inline(always))]
25658 pub unsafe fn ProgramUniform3i(
25659 &self,
25660 program: GLuint,
25661 location: GLint,
25662 v0: GLint,
25663 v1: GLint,
25664 v2: GLint,
25665 ) {
25666 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25667 {
25668 trace!(
25669 "calling gl.ProgramUniform3i({:?}, {:?}, {:?}, {:?}, {:?});",
25670 program,
25671 location,
25672 v0,
25673 v1,
25674 v2
25675 );
25676 }
25677 let out = call_atomic_ptr_5arg(
25678 "glProgramUniform3i",
25679 &self.glProgramUniform3i_p,
25680 program,
25681 location,
25682 v0,
25683 v1,
25684 v2,
25685 );
25686 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25687 {
25688 self.automatic_glGetError("glProgramUniform3i");
25689 }
25690 out
25691 }
25692 #[doc(hidden)]
25693 pub unsafe fn ProgramUniform3i_load_with_dyn(
25694 &self,
25695 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25696 ) -> bool {
25697 load_dyn_name_atomic_ptr(
25698 get_proc_address,
25699 b"glProgramUniform3i\0",
25700 &self.glProgramUniform3i_p,
25701 )
25702 }
25703 #[inline]
25704 #[doc(hidden)]
25705 pub fn ProgramUniform3i_is_loaded(&self) -> bool {
25706 !self.glProgramUniform3i_p.load(RELAX).is_null()
25707 }
25708 #[cfg_attr(feature = "inline", inline)]
25711 #[cfg_attr(feature = "inline_always", inline(always))]
25712 pub unsafe fn ProgramUniform3iv(
25713 &self,
25714 program: GLuint,
25715 location: GLint,
25716 count: GLsizei,
25717 value: *const GLint,
25718 ) {
25719 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25720 {
25721 trace!(
25722 "calling gl.ProgramUniform3iv({:?}, {:?}, {:?}, {:p});",
25723 program,
25724 location,
25725 count,
25726 value
25727 );
25728 }
25729 let out = call_atomic_ptr_4arg(
25730 "glProgramUniform3iv",
25731 &self.glProgramUniform3iv_p,
25732 program,
25733 location,
25734 count,
25735 value,
25736 );
25737 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25738 {
25739 self.automatic_glGetError("glProgramUniform3iv");
25740 }
25741 out
25742 }
25743 #[doc(hidden)]
25744 pub unsafe fn ProgramUniform3iv_load_with_dyn(
25745 &self,
25746 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25747 ) -> bool {
25748 load_dyn_name_atomic_ptr(
25749 get_proc_address,
25750 b"glProgramUniform3iv\0",
25751 &self.glProgramUniform3iv_p,
25752 )
25753 }
25754 #[inline]
25755 #[doc(hidden)]
25756 pub fn ProgramUniform3iv_is_loaded(&self) -> bool {
25757 !self.glProgramUniform3iv_p.load(RELAX).is_null()
25758 }
25759 #[cfg_attr(feature = "inline", inline)]
25761 #[cfg_attr(feature = "inline_always", inline(always))]
25762 pub unsafe fn ProgramUniform3ui(
25763 &self,
25764 program: GLuint,
25765 location: GLint,
25766 v0: GLuint,
25767 v1: GLuint,
25768 v2: GLuint,
25769 ) {
25770 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25771 {
25772 trace!(
25773 "calling gl.ProgramUniform3ui({:?}, {:?}, {:?}, {:?}, {:?});",
25774 program,
25775 location,
25776 v0,
25777 v1,
25778 v2
25779 );
25780 }
25781 let out = call_atomic_ptr_5arg(
25782 "glProgramUniform3ui",
25783 &self.glProgramUniform3ui_p,
25784 program,
25785 location,
25786 v0,
25787 v1,
25788 v2,
25789 );
25790 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25791 {
25792 self.automatic_glGetError("glProgramUniform3ui");
25793 }
25794 out
25795 }
25796 #[doc(hidden)]
25797 pub unsafe fn ProgramUniform3ui_load_with_dyn(
25798 &self,
25799 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25800 ) -> bool {
25801 load_dyn_name_atomic_ptr(
25802 get_proc_address,
25803 b"glProgramUniform3ui\0",
25804 &self.glProgramUniform3ui_p,
25805 )
25806 }
25807 #[inline]
25808 #[doc(hidden)]
25809 pub fn ProgramUniform3ui_is_loaded(&self) -> bool {
25810 !self.glProgramUniform3ui_p.load(RELAX).is_null()
25811 }
25812 #[cfg_attr(feature = "inline", inline)]
25815 #[cfg_attr(feature = "inline_always", inline(always))]
25816 pub unsafe fn ProgramUniform3uiv(
25817 &self,
25818 program: GLuint,
25819 location: GLint,
25820 count: GLsizei,
25821 value: *const GLuint,
25822 ) {
25823 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25824 {
25825 trace!(
25826 "calling gl.ProgramUniform3uiv({:?}, {:?}, {:?}, {:p});",
25827 program,
25828 location,
25829 count,
25830 value
25831 );
25832 }
25833 let out = call_atomic_ptr_4arg(
25834 "glProgramUniform3uiv",
25835 &self.glProgramUniform3uiv_p,
25836 program,
25837 location,
25838 count,
25839 value,
25840 );
25841 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25842 {
25843 self.automatic_glGetError("glProgramUniform3uiv");
25844 }
25845 out
25846 }
25847 #[doc(hidden)]
25848 pub unsafe fn ProgramUniform3uiv_load_with_dyn(
25849 &self,
25850 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25851 ) -> bool {
25852 load_dyn_name_atomic_ptr(
25853 get_proc_address,
25854 b"glProgramUniform3uiv\0",
25855 &self.glProgramUniform3uiv_p,
25856 )
25857 }
25858 #[inline]
25859 #[doc(hidden)]
25860 pub fn ProgramUniform3uiv_is_loaded(&self) -> bool {
25861 !self.glProgramUniform3uiv_p.load(RELAX).is_null()
25862 }
25863 #[cfg_attr(feature = "inline", inline)]
25865 #[cfg_attr(feature = "inline_always", inline(always))]
25866 pub unsafe fn ProgramUniform4d(
25867 &self,
25868 program: GLuint,
25869 location: GLint,
25870 v0: GLdouble,
25871 v1: GLdouble,
25872 v2: GLdouble,
25873 v3: GLdouble,
25874 ) {
25875 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25876 {
25877 trace!(
25878 "calling gl.ProgramUniform4d({:?}, {:?}, {:?}, {:?}, {:?}, {:?});",
25879 program,
25880 location,
25881 v0,
25882 v1,
25883 v2,
25884 v3
25885 );
25886 }
25887 let out = call_atomic_ptr_6arg(
25888 "glProgramUniform4d",
25889 &self.glProgramUniform4d_p,
25890 program,
25891 location,
25892 v0,
25893 v1,
25894 v2,
25895 v3,
25896 );
25897 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25898 {
25899 self.automatic_glGetError("glProgramUniform4d");
25900 }
25901 out
25902 }
25903 #[doc(hidden)]
25904 pub unsafe fn ProgramUniform4d_load_with_dyn(
25905 &self,
25906 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25907 ) -> bool {
25908 load_dyn_name_atomic_ptr(
25909 get_proc_address,
25910 b"glProgramUniform4d\0",
25911 &self.glProgramUniform4d_p,
25912 )
25913 }
25914 #[inline]
25915 #[doc(hidden)]
25916 pub fn ProgramUniform4d_is_loaded(&self) -> bool {
25917 !self.glProgramUniform4d_p.load(RELAX).is_null()
25918 }
25919 #[cfg_attr(feature = "inline", inline)]
25922 #[cfg_attr(feature = "inline_always", inline(always))]
25923 pub unsafe fn ProgramUniform4dv(
25924 &self,
25925 program: GLuint,
25926 location: GLint,
25927 count: GLsizei,
25928 value: *const GLdouble,
25929 ) {
25930 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25931 {
25932 trace!(
25933 "calling gl.ProgramUniform4dv({:?}, {:?}, {:?}, {:p});",
25934 program,
25935 location,
25936 count,
25937 value
25938 );
25939 }
25940 let out = call_atomic_ptr_4arg(
25941 "glProgramUniform4dv",
25942 &self.glProgramUniform4dv_p,
25943 program,
25944 location,
25945 count,
25946 value,
25947 );
25948 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25949 {
25950 self.automatic_glGetError("glProgramUniform4dv");
25951 }
25952 out
25953 }
25954 #[doc(hidden)]
25955 pub unsafe fn ProgramUniform4dv_load_with_dyn(
25956 &self,
25957 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25958 ) -> bool {
25959 load_dyn_name_atomic_ptr(
25960 get_proc_address,
25961 b"glProgramUniform4dv\0",
25962 &self.glProgramUniform4dv_p,
25963 )
25964 }
25965 #[inline]
25966 #[doc(hidden)]
25967 pub fn ProgramUniform4dv_is_loaded(&self) -> bool {
25968 !self.glProgramUniform4dv_p.load(RELAX).is_null()
25969 }
25970 #[cfg_attr(feature = "inline", inline)]
25972 #[cfg_attr(feature = "inline_always", inline(always))]
25973 pub unsafe fn ProgramUniform4f(
25974 &self,
25975 program: GLuint,
25976 location: GLint,
25977 v0: GLfloat,
25978 v1: GLfloat,
25979 v2: GLfloat,
25980 v3: GLfloat,
25981 ) {
25982 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25983 {
25984 trace!(
25985 "calling gl.ProgramUniform4f({:?}, {:?}, {:?}, {:?}, {:?}, {:?});",
25986 program,
25987 location,
25988 v0,
25989 v1,
25990 v2,
25991 v3
25992 );
25993 }
25994 let out = call_atomic_ptr_6arg(
25995 "glProgramUniform4f",
25996 &self.glProgramUniform4f_p,
25997 program,
25998 location,
25999 v0,
26000 v1,
26001 v2,
26002 v3,
26003 );
26004 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26005 {
26006 self.automatic_glGetError("glProgramUniform4f");
26007 }
26008 out
26009 }
26010 #[doc(hidden)]
26011 pub unsafe fn ProgramUniform4f_load_with_dyn(
26012 &self,
26013 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26014 ) -> bool {
26015 load_dyn_name_atomic_ptr(
26016 get_proc_address,
26017 b"glProgramUniform4f\0",
26018 &self.glProgramUniform4f_p,
26019 )
26020 }
26021 #[inline]
26022 #[doc(hidden)]
26023 pub fn ProgramUniform4f_is_loaded(&self) -> bool {
26024 !self.glProgramUniform4f_p.load(RELAX).is_null()
26025 }
26026 #[cfg_attr(feature = "inline", inline)]
26029 #[cfg_attr(feature = "inline_always", inline(always))]
26030 pub unsafe fn ProgramUniform4fv(
26031 &self,
26032 program: GLuint,
26033 location: GLint,
26034 count: GLsizei,
26035 value: *const GLfloat,
26036 ) {
26037 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26038 {
26039 trace!(
26040 "calling gl.ProgramUniform4fv({:?}, {:?}, {:?}, {:p});",
26041 program,
26042 location,
26043 count,
26044 value
26045 );
26046 }
26047 let out = call_atomic_ptr_4arg(
26048 "glProgramUniform4fv",
26049 &self.glProgramUniform4fv_p,
26050 program,
26051 location,
26052 count,
26053 value,
26054 );
26055 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26056 {
26057 self.automatic_glGetError("glProgramUniform4fv");
26058 }
26059 out
26060 }
26061 #[doc(hidden)]
26062 pub unsafe fn ProgramUniform4fv_load_with_dyn(
26063 &self,
26064 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26065 ) -> bool {
26066 load_dyn_name_atomic_ptr(
26067 get_proc_address,
26068 b"glProgramUniform4fv\0",
26069 &self.glProgramUniform4fv_p,
26070 )
26071 }
26072 #[inline]
26073 #[doc(hidden)]
26074 pub fn ProgramUniform4fv_is_loaded(&self) -> bool {
26075 !self.glProgramUniform4fv_p.load(RELAX).is_null()
26076 }
26077 #[cfg_attr(feature = "inline", inline)]
26079 #[cfg_attr(feature = "inline_always", inline(always))]
26080 pub unsafe fn ProgramUniform4i(
26081 &self,
26082 program: GLuint,
26083 location: GLint,
26084 v0: GLint,
26085 v1: GLint,
26086 v2: GLint,
26087 v3: GLint,
26088 ) {
26089 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26090 {
26091 trace!(
26092 "calling gl.ProgramUniform4i({:?}, {:?}, {:?}, {:?}, {:?}, {:?});",
26093 program,
26094 location,
26095 v0,
26096 v1,
26097 v2,
26098 v3
26099 );
26100 }
26101 let out = call_atomic_ptr_6arg(
26102 "glProgramUniform4i",
26103 &self.glProgramUniform4i_p,
26104 program,
26105 location,
26106 v0,
26107 v1,
26108 v2,
26109 v3,
26110 );
26111 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26112 {
26113 self.automatic_glGetError("glProgramUniform4i");
26114 }
26115 out
26116 }
26117 #[doc(hidden)]
26118 pub unsafe fn ProgramUniform4i_load_with_dyn(
26119 &self,
26120 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26121 ) -> bool {
26122 load_dyn_name_atomic_ptr(
26123 get_proc_address,
26124 b"glProgramUniform4i\0",
26125 &self.glProgramUniform4i_p,
26126 )
26127 }
26128 #[inline]
26129 #[doc(hidden)]
26130 pub fn ProgramUniform4i_is_loaded(&self) -> bool {
26131 !self.glProgramUniform4i_p.load(RELAX).is_null()
26132 }
26133 #[cfg_attr(feature = "inline", inline)]
26136 #[cfg_attr(feature = "inline_always", inline(always))]
26137 pub unsafe fn ProgramUniform4iv(
26138 &self,
26139 program: GLuint,
26140 location: GLint,
26141 count: GLsizei,
26142 value: *const GLint,
26143 ) {
26144 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26145 {
26146 trace!(
26147 "calling gl.ProgramUniform4iv({:?}, {:?}, {:?}, {:p});",
26148 program,
26149 location,
26150 count,
26151 value
26152 );
26153 }
26154 let out = call_atomic_ptr_4arg(
26155 "glProgramUniform4iv",
26156 &self.glProgramUniform4iv_p,
26157 program,
26158 location,
26159 count,
26160 value,
26161 );
26162 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26163 {
26164 self.automatic_glGetError("glProgramUniform4iv");
26165 }
26166 out
26167 }
26168 #[doc(hidden)]
26169 pub unsafe fn ProgramUniform4iv_load_with_dyn(
26170 &self,
26171 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26172 ) -> bool {
26173 load_dyn_name_atomic_ptr(
26174 get_proc_address,
26175 b"glProgramUniform4iv\0",
26176 &self.glProgramUniform4iv_p,
26177 )
26178 }
26179 #[inline]
26180 #[doc(hidden)]
26181 pub fn ProgramUniform4iv_is_loaded(&self) -> bool {
26182 !self.glProgramUniform4iv_p.load(RELAX).is_null()
26183 }
26184 #[cfg_attr(feature = "inline", inline)]
26186 #[cfg_attr(feature = "inline_always", inline(always))]
26187 pub unsafe fn ProgramUniform4ui(
26188 &self,
26189 program: GLuint,
26190 location: GLint,
26191 v0: GLuint,
26192 v1: GLuint,
26193 v2: GLuint,
26194 v3: GLuint,
26195 ) {
26196 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26197 {
26198 trace!(
26199 "calling gl.ProgramUniform4ui({:?}, {:?}, {:?}, {:?}, {:?}, {:?});",
26200 program,
26201 location,
26202 v0,
26203 v1,
26204 v2,
26205 v3
26206 );
26207 }
26208 let out = call_atomic_ptr_6arg(
26209 "glProgramUniform4ui",
26210 &self.glProgramUniform4ui_p,
26211 program,
26212 location,
26213 v0,
26214 v1,
26215 v2,
26216 v3,
26217 );
26218 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26219 {
26220 self.automatic_glGetError("glProgramUniform4ui");
26221 }
26222 out
26223 }
26224 #[doc(hidden)]
26225 pub unsafe fn ProgramUniform4ui_load_with_dyn(
26226 &self,
26227 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26228 ) -> bool {
26229 load_dyn_name_atomic_ptr(
26230 get_proc_address,
26231 b"glProgramUniform4ui\0",
26232 &self.glProgramUniform4ui_p,
26233 )
26234 }
26235 #[inline]
26236 #[doc(hidden)]
26237 pub fn ProgramUniform4ui_is_loaded(&self) -> bool {
26238 !self.glProgramUniform4ui_p.load(RELAX).is_null()
26239 }
26240 #[cfg_attr(feature = "inline", inline)]
26243 #[cfg_attr(feature = "inline_always", inline(always))]
26244 pub unsafe fn ProgramUniform4uiv(
26245 &self,
26246 program: GLuint,
26247 location: GLint,
26248 count: GLsizei,
26249 value: *const GLuint,
26250 ) {
26251 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26252 {
26253 trace!(
26254 "calling gl.ProgramUniform4uiv({:?}, {:?}, {:?}, {:p});",
26255 program,
26256 location,
26257 count,
26258 value
26259 );
26260 }
26261 let out = call_atomic_ptr_4arg(
26262 "glProgramUniform4uiv",
26263 &self.glProgramUniform4uiv_p,
26264 program,
26265 location,
26266 count,
26267 value,
26268 );
26269 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26270 {
26271 self.automatic_glGetError("glProgramUniform4uiv");
26272 }
26273 out
26274 }
26275 #[doc(hidden)]
26276 pub unsafe fn ProgramUniform4uiv_load_with_dyn(
26277 &self,
26278 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26279 ) -> bool {
26280 load_dyn_name_atomic_ptr(
26281 get_proc_address,
26282 b"glProgramUniform4uiv\0",
26283 &self.glProgramUniform4uiv_p,
26284 )
26285 }
26286 #[inline]
26287 #[doc(hidden)]
26288 pub fn ProgramUniform4uiv_is_loaded(&self) -> bool {
26289 !self.glProgramUniform4uiv_p.load(RELAX).is_null()
26290 }
26291 #[cfg_attr(feature = "inline", inline)]
26294 #[cfg_attr(feature = "inline_always", inline(always))]
26295 pub unsafe fn ProgramUniformMatrix2dv(
26296 &self,
26297 program: GLuint,
26298 location: GLint,
26299 count: GLsizei,
26300 transpose: GLboolean,
26301 value: *const GLdouble,
26302 ) {
26303 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26304 {
26305 trace!(
26306 "calling gl.ProgramUniformMatrix2dv({:?}, {:?}, {:?}, {:?}, {:p});",
26307 program,
26308 location,
26309 count,
26310 transpose,
26311 value
26312 );
26313 }
26314 let out = call_atomic_ptr_5arg(
26315 "glProgramUniformMatrix2dv",
26316 &self.glProgramUniformMatrix2dv_p,
26317 program,
26318 location,
26319 count,
26320 transpose,
26321 value,
26322 );
26323 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26324 {
26325 self.automatic_glGetError("glProgramUniformMatrix2dv");
26326 }
26327 out
26328 }
26329 #[doc(hidden)]
26330 pub unsafe fn ProgramUniformMatrix2dv_load_with_dyn(
26331 &self,
26332 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26333 ) -> bool {
26334 load_dyn_name_atomic_ptr(
26335 get_proc_address,
26336 b"glProgramUniformMatrix2dv\0",
26337 &self.glProgramUniformMatrix2dv_p,
26338 )
26339 }
26340 #[inline]
26341 #[doc(hidden)]
26342 pub fn ProgramUniformMatrix2dv_is_loaded(&self) -> bool {
26343 !self.glProgramUniformMatrix2dv_p.load(RELAX).is_null()
26344 }
26345 #[cfg_attr(feature = "inline", inline)]
26348 #[cfg_attr(feature = "inline_always", inline(always))]
26349 pub unsafe fn ProgramUniformMatrix2fv(
26350 &self,
26351 program: GLuint,
26352 location: GLint,
26353 count: GLsizei,
26354 transpose: GLboolean,
26355 value: *const GLfloat,
26356 ) {
26357 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26358 {
26359 trace!(
26360 "calling gl.ProgramUniformMatrix2fv({:?}, {:?}, {:?}, {:?}, {:p});",
26361 program,
26362 location,
26363 count,
26364 transpose,
26365 value
26366 );
26367 }
26368 let out = call_atomic_ptr_5arg(
26369 "glProgramUniformMatrix2fv",
26370 &self.glProgramUniformMatrix2fv_p,
26371 program,
26372 location,
26373 count,
26374 transpose,
26375 value,
26376 );
26377 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26378 {
26379 self.automatic_glGetError("glProgramUniformMatrix2fv");
26380 }
26381 out
26382 }
26383 #[doc(hidden)]
26384 pub unsafe fn ProgramUniformMatrix2fv_load_with_dyn(
26385 &self,
26386 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26387 ) -> bool {
26388 load_dyn_name_atomic_ptr(
26389 get_proc_address,
26390 b"glProgramUniformMatrix2fv\0",
26391 &self.glProgramUniformMatrix2fv_p,
26392 )
26393 }
26394 #[inline]
26395 #[doc(hidden)]
26396 pub fn ProgramUniformMatrix2fv_is_loaded(&self) -> bool {
26397 !self.glProgramUniformMatrix2fv_p.load(RELAX).is_null()
26398 }
26399 #[cfg_attr(feature = "inline", inline)]
26402 #[cfg_attr(feature = "inline_always", inline(always))]
26403 pub unsafe fn ProgramUniformMatrix2x3dv(
26404 &self,
26405 program: GLuint,
26406 location: GLint,
26407 count: GLsizei,
26408 transpose: GLboolean,
26409 value: *const GLdouble,
26410 ) {
26411 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26412 {
26413 trace!(
26414 "calling gl.ProgramUniformMatrix2x3dv({:?}, {:?}, {:?}, {:?}, {:p});",
26415 program,
26416 location,
26417 count,
26418 transpose,
26419 value
26420 );
26421 }
26422 let out = call_atomic_ptr_5arg(
26423 "glProgramUniformMatrix2x3dv",
26424 &self.glProgramUniformMatrix2x3dv_p,
26425 program,
26426 location,
26427 count,
26428 transpose,
26429 value,
26430 );
26431 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26432 {
26433 self.automatic_glGetError("glProgramUniformMatrix2x3dv");
26434 }
26435 out
26436 }
26437 #[doc(hidden)]
26438 pub unsafe fn ProgramUniformMatrix2x3dv_load_with_dyn(
26439 &self,
26440 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26441 ) -> bool {
26442 load_dyn_name_atomic_ptr(
26443 get_proc_address,
26444 b"glProgramUniformMatrix2x3dv\0",
26445 &self.glProgramUniformMatrix2x3dv_p,
26446 )
26447 }
26448 #[inline]
26449 #[doc(hidden)]
26450 pub fn ProgramUniformMatrix2x3dv_is_loaded(&self) -> bool {
26451 !self.glProgramUniformMatrix2x3dv_p.load(RELAX).is_null()
26452 }
26453 #[cfg_attr(feature = "inline", inline)]
26456 #[cfg_attr(feature = "inline_always", inline(always))]
26457 pub unsafe fn ProgramUniformMatrix2x3fv(
26458 &self,
26459 program: GLuint,
26460 location: GLint,
26461 count: GLsizei,
26462 transpose: GLboolean,
26463 value: *const GLfloat,
26464 ) {
26465 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26466 {
26467 trace!(
26468 "calling gl.ProgramUniformMatrix2x3fv({:?}, {:?}, {:?}, {:?}, {:p});",
26469 program,
26470 location,
26471 count,
26472 transpose,
26473 value
26474 );
26475 }
26476 let out = call_atomic_ptr_5arg(
26477 "glProgramUniformMatrix2x3fv",
26478 &self.glProgramUniformMatrix2x3fv_p,
26479 program,
26480 location,
26481 count,
26482 transpose,
26483 value,
26484 );
26485 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26486 {
26487 self.automatic_glGetError("glProgramUniformMatrix2x3fv");
26488 }
26489 out
26490 }
26491 #[doc(hidden)]
26492 pub unsafe fn ProgramUniformMatrix2x3fv_load_with_dyn(
26493 &self,
26494 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26495 ) -> bool {
26496 load_dyn_name_atomic_ptr(
26497 get_proc_address,
26498 b"glProgramUniformMatrix2x3fv\0",
26499 &self.glProgramUniformMatrix2x3fv_p,
26500 )
26501 }
26502 #[inline]
26503 #[doc(hidden)]
26504 pub fn ProgramUniformMatrix2x3fv_is_loaded(&self) -> bool {
26505 !self.glProgramUniformMatrix2x3fv_p.load(RELAX).is_null()
26506 }
26507 #[cfg_attr(feature = "inline", inline)]
26510 #[cfg_attr(feature = "inline_always", inline(always))]
26511 pub unsafe fn ProgramUniformMatrix2x4dv(
26512 &self,
26513 program: GLuint,
26514 location: GLint,
26515 count: GLsizei,
26516 transpose: GLboolean,
26517 value: *const GLdouble,
26518 ) {
26519 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26520 {
26521 trace!(
26522 "calling gl.ProgramUniformMatrix2x4dv({:?}, {:?}, {:?}, {:?}, {:p});",
26523 program,
26524 location,
26525 count,
26526 transpose,
26527 value
26528 );
26529 }
26530 let out = call_atomic_ptr_5arg(
26531 "glProgramUniformMatrix2x4dv",
26532 &self.glProgramUniformMatrix2x4dv_p,
26533 program,
26534 location,
26535 count,
26536 transpose,
26537 value,
26538 );
26539 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26540 {
26541 self.automatic_glGetError("glProgramUniformMatrix2x4dv");
26542 }
26543 out
26544 }
26545 #[doc(hidden)]
26546 pub unsafe fn ProgramUniformMatrix2x4dv_load_with_dyn(
26547 &self,
26548 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26549 ) -> bool {
26550 load_dyn_name_atomic_ptr(
26551 get_proc_address,
26552 b"glProgramUniformMatrix2x4dv\0",
26553 &self.glProgramUniformMatrix2x4dv_p,
26554 )
26555 }
26556 #[inline]
26557 #[doc(hidden)]
26558 pub fn ProgramUniformMatrix2x4dv_is_loaded(&self) -> bool {
26559 !self.glProgramUniformMatrix2x4dv_p.load(RELAX).is_null()
26560 }
26561 #[cfg_attr(feature = "inline", inline)]
26564 #[cfg_attr(feature = "inline_always", inline(always))]
26565 pub unsafe fn ProgramUniformMatrix2x4fv(
26566 &self,
26567 program: GLuint,
26568 location: GLint,
26569 count: GLsizei,
26570 transpose: GLboolean,
26571 value: *const GLfloat,
26572 ) {
26573 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26574 {
26575 trace!(
26576 "calling gl.ProgramUniformMatrix2x4fv({:?}, {:?}, {:?}, {:?}, {:p});",
26577 program,
26578 location,
26579 count,
26580 transpose,
26581 value
26582 );
26583 }
26584 let out = call_atomic_ptr_5arg(
26585 "glProgramUniformMatrix2x4fv",
26586 &self.glProgramUniformMatrix2x4fv_p,
26587 program,
26588 location,
26589 count,
26590 transpose,
26591 value,
26592 );
26593 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26594 {
26595 self.automatic_glGetError("glProgramUniformMatrix2x4fv");
26596 }
26597 out
26598 }
26599 #[doc(hidden)]
26600 pub unsafe fn ProgramUniformMatrix2x4fv_load_with_dyn(
26601 &self,
26602 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26603 ) -> bool {
26604 load_dyn_name_atomic_ptr(
26605 get_proc_address,
26606 b"glProgramUniformMatrix2x4fv\0",
26607 &self.glProgramUniformMatrix2x4fv_p,
26608 )
26609 }
26610 #[inline]
26611 #[doc(hidden)]
26612 pub fn ProgramUniformMatrix2x4fv_is_loaded(&self) -> bool {
26613 !self.glProgramUniformMatrix2x4fv_p.load(RELAX).is_null()
26614 }
26615 #[cfg_attr(feature = "inline", inline)]
26618 #[cfg_attr(feature = "inline_always", inline(always))]
26619 pub unsafe fn ProgramUniformMatrix3dv(
26620 &self,
26621 program: GLuint,
26622 location: GLint,
26623 count: GLsizei,
26624 transpose: GLboolean,
26625 value: *const GLdouble,
26626 ) {
26627 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26628 {
26629 trace!(
26630 "calling gl.ProgramUniformMatrix3dv({:?}, {:?}, {:?}, {:?}, {:p});",
26631 program,
26632 location,
26633 count,
26634 transpose,
26635 value
26636 );
26637 }
26638 let out = call_atomic_ptr_5arg(
26639 "glProgramUniformMatrix3dv",
26640 &self.glProgramUniformMatrix3dv_p,
26641 program,
26642 location,
26643 count,
26644 transpose,
26645 value,
26646 );
26647 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26648 {
26649 self.automatic_glGetError("glProgramUniformMatrix3dv");
26650 }
26651 out
26652 }
26653 #[doc(hidden)]
26654 pub unsafe fn ProgramUniformMatrix3dv_load_with_dyn(
26655 &self,
26656 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26657 ) -> bool {
26658 load_dyn_name_atomic_ptr(
26659 get_proc_address,
26660 b"glProgramUniformMatrix3dv\0",
26661 &self.glProgramUniformMatrix3dv_p,
26662 )
26663 }
26664 #[inline]
26665 #[doc(hidden)]
26666 pub fn ProgramUniformMatrix3dv_is_loaded(&self) -> bool {
26667 !self.glProgramUniformMatrix3dv_p.load(RELAX).is_null()
26668 }
26669 #[cfg_attr(feature = "inline", inline)]
26672 #[cfg_attr(feature = "inline_always", inline(always))]
26673 pub unsafe fn ProgramUniformMatrix3fv(
26674 &self,
26675 program: GLuint,
26676 location: GLint,
26677 count: GLsizei,
26678 transpose: GLboolean,
26679 value: *const GLfloat,
26680 ) {
26681 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26682 {
26683 trace!(
26684 "calling gl.ProgramUniformMatrix3fv({:?}, {:?}, {:?}, {:?}, {:p});",
26685 program,
26686 location,
26687 count,
26688 transpose,
26689 value
26690 );
26691 }
26692 let out = call_atomic_ptr_5arg(
26693 "glProgramUniformMatrix3fv",
26694 &self.glProgramUniformMatrix3fv_p,
26695 program,
26696 location,
26697 count,
26698 transpose,
26699 value,
26700 );
26701 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26702 {
26703 self.automatic_glGetError("glProgramUniformMatrix3fv");
26704 }
26705 out
26706 }
26707 #[doc(hidden)]
26708 pub unsafe fn ProgramUniformMatrix3fv_load_with_dyn(
26709 &self,
26710 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26711 ) -> bool {
26712 load_dyn_name_atomic_ptr(
26713 get_proc_address,
26714 b"glProgramUniformMatrix3fv\0",
26715 &self.glProgramUniformMatrix3fv_p,
26716 )
26717 }
26718 #[inline]
26719 #[doc(hidden)]
26720 pub fn ProgramUniformMatrix3fv_is_loaded(&self) -> bool {
26721 !self.glProgramUniformMatrix3fv_p.load(RELAX).is_null()
26722 }
26723 #[cfg_attr(feature = "inline", inline)]
26726 #[cfg_attr(feature = "inline_always", inline(always))]
26727 pub unsafe fn ProgramUniformMatrix3x2dv(
26728 &self,
26729 program: GLuint,
26730 location: GLint,
26731 count: GLsizei,
26732 transpose: GLboolean,
26733 value: *const GLdouble,
26734 ) {
26735 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26736 {
26737 trace!(
26738 "calling gl.ProgramUniformMatrix3x2dv({:?}, {:?}, {:?}, {:?}, {:p});",
26739 program,
26740 location,
26741 count,
26742 transpose,
26743 value
26744 );
26745 }
26746 let out = call_atomic_ptr_5arg(
26747 "glProgramUniformMatrix3x2dv",
26748 &self.glProgramUniformMatrix3x2dv_p,
26749 program,
26750 location,
26751 count,
26752 transpose,
26753 value,
26754 );
26755 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26756 {
26757 self.automatic_glGetError("glProgramUniformMatrix3x2dv");
26758 }
26759 out
26760 }
26761 #[doc(hidden)]
26762 pub unsafe fn ProgramUniformMatrix3x2dv_load_with_dyn(
26763 &self,
26764 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26765 ) -> bool {
26766 load_dyn_name_atomic_ptr(
26767 get_proc_address,
26768 b"glProgramUniformMatrix3x2dv\0",
26769 &self.glProgramUniformMatrix3x2dv_p,
26770 )
26771 }
26772 #[inline]
26773 #[doc(hidden)]
26774 pub fn ProgramUniformMatrix3x2dv_is_loaded(&self) -> bool {
26775 !self.glProgramUniformMatrix3x2dv_p.load(RELAX).is_null()
26776 }
26777 #[cfg_attr(feature = "inline", inline)]
26780 #[cfg_attr(feature = "inline_always", inline(always))]
26781 pub unsafe fn ProgramUniformMatrix3x2fv(
26782 &self,
26783 program: GLuint,
26784 location: GLint,
26785 count: GLsizei,
26786 transpose: GLboolean,
26787 value: *const GLfloat,
26788 ) {
26789 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26790 {
26791 trace!(
26792 "calling gl.ProgramUniformMatrix3x2fv({:?}, {:?}, {:?}, {:?}, {:p});",
26793 program,
26794 location,
26795 count,
26796 transpose,
26797 value
26798 );
26799 }
26800 let out = call_atomic_ptr_5arg(
26801 "glProgramUniformMatrix3x2fv",
26802 &self.glProgramUniformMatrix3x2fv_p,
26803 program,
26804 location,
26805 count,
26806 transpose,
26807 value,
26808 );
26809 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26810 {
26811 self.automatic_glGetError("glProgramUniformMatrix3x2fv");
26812 }
26813 out
26814 }
26815 #[doc(hidden)]
26816 pub unsafe fn ProgramUniformMatrix3x2fv_load_with_dyn(
26817 &self,
26818 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26819 ) -> bool {
26820 load_dyn_name_atomic_ptr(
26821 get_proc_address,
26822 b"glProgramUniformMatrix3x2fv\0",
26823 &self.glProgramUniformMatrix3x2fv_p,
26824 )
26825 }
26826 #[inline]
26827 #[doc(hidden)]
26828 pub fn ProgramUniformMatrix3x2fv_is_loaded(&self) -> bool {
26829 !self.glProgramUniformMatrix3x2fv_p.load(RELAX).is_null()
26830 }
26831 #[cfg_attr(feature = "inline", inline)]
26834 #[cfg_attr(feature = "inline_always", inline(always))]
26835 pub unsafe fn ProgramUniformMatrix3x4dv(
26836 &self,
26837 program: GLuint,
26838 location: GLint,
26839 count: GLsizei,
26840 transpose: GLboolean,
26841 value: *const GLdouble,
26842 ) {
26843 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26844 {
26845 trace!(
26846 "calling gl.ProgramUniformMatrix3x4dv({:?}, {:?}, {:?}, {:?}, {:p});",
26847 program,
26848 location,
26849 count,
26850 transpose,
26851 value
26852 );
26853 }
26854 let out = call_atomic_ptr_5arg(
26855 "glProgramUniformMatrix3x4dv",
26856 &self.glProgramUniformMatrix3x4dv_p,
26857 program,
26858 location,
26859 count,
26860 transpose,
26861 value,
26862 );
26863 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26864 {
26865 self.automatic_glGetError("glProgramUniformMatrix3x4dv");
26866 }
26867 out
26868 }
26869 #[doc(hidden)]
26870 pub unsafe fn ProgramUniformMatrix3x4dv_load_with_dyn(
26871 &self,
26872 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26873 ) -> bool {
26874 load_dyn_name_atomic_ptr(
26875 get_proc_address,
26876 b"glProgramUniformMatrix3x4dv\0",
26877 &self.glProgramUniformMatrix3x4dv_p,
26878 )
26879 }
26880 #[inline]
26881 #[doc(hidden)]
26882 pub fn ProgramUniformMatrix3x4dv_is_loaded(&self) -> bool {
26883 !self.glProgramUniformMatrix3x4dv_p.load(RELAX).is_null()
26884 }
26885 #[cfg_attr(feature = "inline", inline)]
26888 #[cfg_attr(feature = "inline_always", inline(always))]
26889 pub unsafe fn ProgramUniformMatrix3x4fv(
26890 &self,
26891 program: GLuint,
26892 location: GLint,
26893 count: GLsizei,
26894 transpose: GLboolean,
26895 value: *const GLfloat,
26896 ) {
26897 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26898 {
26899 trace!(
26900 "calling gl.ProgramUniformMatrix3x4fv({:?}, {:?}, {:?}, {:?}, {:p});",
26901 program,
26902 location,
26903 count,
26904 transpose,
26905 value
26906 );
26907 }
26908 let out = call_atomic_ptr_5arg(
26909 "glProgramUniformMatrix3x4fv",
26910 &self.glProgramUniformMatrix3x4fv_p,
26911 program,
26912 location,
26913 count,
26914 transpose,
26915 value,
26916 );
26917 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26918 {
26919 self.automatic_glGetError("glProgramUniformMatrix3x4fv");
26920 }
26921 out
26922 }
26923 #[doc(hidden)]
26924 pub unsafe fn ProgramUniformMatrix3x4fv_load_with_dyn(
26925 &self,
26926 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26927 ) -> bool {
26928 load_dyn_name_atomic_ptr(
26929 get_proc_address,
26930 b"glProgramUniformMatrix3x4fv\0",
26931 &self.glProgramUniformMatrix3x4fv_p,
26932 )
26933 }
26934 #[inline]
26935 #[doc(hidden)]
26936 pub fn ProgramUniformMatrix3x4fv_is_loaded(&self) -> bool {
26937 !self.glProgramUniformMatrix3x4fv_p.load(RELAX).is_null()
26938 }
26939 #[cfg_attr(feature = "inline", inline)]
26942 #[cfg_attr(feature = "inline_always", inline(always))]
26943 pub unsafe fn ProgramUniformMatrix4dv(
26944 &self,
26945 program: GLuint,
26946 location: GLint,
26947 count: GLsizei,
26948 transpose: GLboolean,
26949 value: *const GLdouble,
26950 ) {
26951 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26952 {
26953 trace!(
26954 "calling gl.ProgramUniformMatrix4dv({:?}, {:?}, {:?}, {:?}, {:p});",
26955 program,
26956 location,
26957 count,
26958 transpose,
26959 value
26960 );
26961 }
26962 let out = call_atomic_ptr_5arg(
26963 "glProgramUniformMatrix4dv",
26964 &self.glProgramUniformMatrix4dv_p,
26965 program,
26966 location,
26967 count,
26968 transpose,
26969 value,
26970 );
26971 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26972 {
26973 self.automatic_glGetError("glProgramUniformMatrix4dv");
26974 }
26975 out
26976 }
26977 #[doc(hidden)]
26978 pub unsafe fn ProgramUniformMatrix4dv_load_with_dyn(
26979 &self,
26980 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26981 ) -> bool {
26982 load_dyn_name_atomic_ptr(
26983 get_proc_address,
26984 b"glProgramUniformMatrix4dv\0",
26985 &self.glProgramUniformMatrix4dv_p,
26986 )
26987 }
26988 #[inline]
26989 #[doc(hidden)]
26990 pub fn ProgramUniformMatrix4dv_is_loaded(&self) -> bool {
26991 !self.glProgramUniformMatrix4dv_p.load(RELAX).is_null()
26992 }
26993 #[cfg_attr(feature = "inline", inline)]
26996 #[cfg_attr(feature = "inline_always", inline(always))]
26997 pub unsafe fn ProgramUniformMatrix4fv(
26998 &self,
26999 program: GLuint,
27000 location: GLint,
27001 count: GLsizei,
27002 transpose: GLboolean,
27003 value: *const GLfloat,
27004 ) {
27005 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27006 {
27007 trace!(
27008 "calling gl.ProgramUniformMatrix4fv({:?}, {:?}, {:?}, {:?}, {:p});",
27009 program,
27010 location,
27011 count,
27012 transpose,
27013 value
27014 );
27015 }
27016 let out = call_atomic_ptr_5arg(
27017 "glProgramUniformMatrix4fv",
27018 &self.glProgramUniformMatrix4fv_p,
27019 program,
27020 location,
27021 count,
27022 transpose,
27023 value,
27024 );
27025 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27026 {
27027 self.automatic_glGetError("glProgramUniformMatrix4fv");
27028 }
27029 out
27030 }
27031 #[doc(hidden)]
27032 pub unsafe fn ProgramUniformMatrix4fv_load_with_dyn(
27033 &self,
27034 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27035 ) -> bool {
27036 load_dyn_name_atomic_ptr(
27037 get_proc_address,
27038 b"glProgramUniformMatrix4fv\0",
27039 &self.glProgramUniformMatrix4fv_p,
27040 )
27041 }
27042 #[inline]
27043 #[doc(hidden)]
27044 pub fn ProgramUniformMatrix4fv_is_loaded(&self) -> bool {
27045 !self.glProgramUniformMatrix4fv_p.load(RELAX).is_null()
27046 }
27047 #[cfg_attr(feature = "inline", inline)]
27050 #[cfg_attr(feature = "inline_always", inline(always))]
27051 pub unsafe fn ProgramUniformMatrix4x2dv(
27052 &self,
27053 program: GLuint,
27054 location: GLint,
27055 count: GLsizei,
27056 transpose: GLboolean,
27057 value: *const GLdouble,
27058 ) {
27059 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27060 {
27061 trace!(
27062 "calling gl.ProgramUniformMatrix4x2dv({:?}, {:?}, {:?}, {:?}, {:p});",
27063 program,
27064 location,
27065 count,
27066 transpose,
27067 value
27068 );
27069 }
27070 let out = call_atomic_ptr_5arg(
27071 "glProgramUniformMatrix4x2dv",
27072 &self.glProgramUniformMatrix4x2dv_p,
27073 program,
27074 location,
27075 count,
27076 transpose,
27077 value,
27078 );
27079 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27080 {
27081 self.automatic_glGetError("glProgramUniformMatrix4x2dv");
27082 }
27083 out
27084 }
27085 #[doc(hidden)]
27086 pub unsafe fn ProgramUniformMatrix4x2dv_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(
27091 get_proc_address,
27092 b"glProgramUniformMatrix4x2dv\0",
27093 &self.glProgramUniformMatrix4x2dv_p,
27094 )
27095 }
27096 #[inline]
27097 #[doc(hidden)]
27098 pub fn ProgramUniformMatrix4x2dv_is_loaded(&self) -> bool {
27099 !self.glProgramUniformMatrix4x2dv_p.load(RELAX).is_null()
27100 }
27101 #[cfg_attr(feature = "inline", inline)]
27104 #[cfg_attr(feature = "inline_always", inline(always))]
27105 pub unsafe fn ProgramUniformMatrix4x2fv(
27106 &self,
27107 program: GLuint,
27108 location: GLint,
27109 count: GLsizei,
27110 transpose: GLboolean,
27111 value: *const GLfloat,
27112 ) {
27113 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27114 {
27115 trace!(
27116 "calling gl.ProgramUniformMatrix4x2fv({:?}, {:?}, {:?}, {:?}, {:p});",
27117 program,
27118 location,
27119 count,
27120 transpose,
27121 value
27122 );
27123 }
27124 let out = call_atomic_ptr_5arg(
27125 "glProgramUniformMatrix4x2fv",
27126 &self.glProgramUniformMatrix4x2fv_p,
27127 program,
27128 location,
27129 count,
27130 transpose,
27131 value,
27132 );
27133 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27134 {
27135 self.automatic_glGetError("glProgramUniformMatrix4x2fv");
27136 }
27137 out
27138 }
27139 #[doc(hidden)]
27140 pub unsafe fn ProgramUniformMatrix4x2fv_load_with_dyn(
27141 &self,
27142 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27143 ) -> bool {
27144 load_dyn_name_atomic_ptr(
27145 get_proc_address,
27146 b"glProgramUniformMatrix4x2fv\0",
27147 &self.glProgramUniformMatrix4x2fv_p,
27148 )
27149 }
27150 #[inline]
27151 #[doc(hidden)]
27152 pub fn ProgramUniformMatrix4x2fv_is_loaded(&self) -> bool {
27153 !self.glProgramUniformMatrix4x2fv_p.load(RELAX).is_null()
27154 }
27155 #[cfg_attr(feature = "inline", inline)]
27158 #[cfg_attr(feature = "inline_always", inline(always))]
27159 pub unsafe fn ProgramUniformMatrix4x3dv(
27160 &self,
27161 program: GLuint,
27162 location: GLint,
27163 count: GLsizei,
27164 transpose: GLboolean,
27165 value: *const GLdouble,
27166 ) {
27167 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27168 {
27169 trace!(
27170 "calling gl.ProgramUniformMatrix4x3dv({:?}, {:?}, {:?}, {:?}, {:p});",
27171 program,
27172 location,
27173 count,
27174 transpose,
27175 value
27176 );
27177 }
27178 let out = call_atomic_ptr_5arg(
27179 "glProgramUniformMatrix4x3dv",
27180 &self.glProgramUniformMatrix4x3dv_p,
27181 program,
27182 location,
27183 count,
27184 transpose,
27185 value,
27186 );
27187 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27188 {
27189 self.automatic_glGetError("glProgramUniformMatrix4x3dv");
27190 }
27191 out
27192 }
27193 #[doc(hidden)]
27194 pub unsafe fn ProgramUniformMatrix4x3dv_load_with_dyn(
27195 &self,
27196 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27197 ) -> bool {
27198 load_dyn_name_atomic_ptr(
27199 get_proc_address,
27200 b"glProgramUniformMatrix4x3dv\0",
27201 &self.glProgramUniformMatrix4x3dv_p,
27202 )
27203 }
27204 #[inline]
27205 #[doc(hidden)]
27206 pub fn ProgramUniformMatrix4x3dv_is_loaded(&self) -> bool {
27207 !self.glProgramUniformMatrix4x3dv_p.load(RELAX).is_null()
27208 }
27209 #[cfg_attr(feature = "inline", inline)]
27212 #[cfg_attr(feature = "inline_always", inline(always))]
27213 pub unsafe fn ProgramUniformMatrix4x3fv(
27214 &self,
27215 program: GLuint,
27216 location: GLint,
27217 count: GLsizei,
27218 transpose: GLboolean,
27219 value: *const GLfloat,
27220 ) {
27221 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27222 {
27223 trace!(
27224 "calling gl.ProgramUniformMatrix4x3fv({:?}, {:?}, {:?}, {:?}, {:p});",
27225 program,
27226 location,
27227 count,
27228 transpose,
27229 value
27230 );
27231 }
27232 let out = call_atomic_ptr_5arg(
27233 "glProgramUniformMatrix4x3fv",
27234 &self.glProgramUniformMatrix4x3fv_p,
27235 program,
27236 location,
27237 count,
27238 transpose,
27239 value,
27240 );
27241 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27242 {
27243 self.automatic_glGetError("glProgramUniformMatrix4x3fv");
27244 }
27245 out
27246 }
27247 #[doc(hidden)]
27248 pub unsafe fn ProgramUniformMatrix4x3fv_load_with_dyn(
27249 &self,
27250 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27251 ) -> bool {
27252 load_dyn_name_atomic_ptr(
27253 get_proc_address,
27254 b"glProgramUniformMatrix4x3fv\0",
27255 &self.glProgramUniformMatrix4x3fv_p,
27256 )
27257 }
27258 #[inline]
27259 #[doc(hidden)]
27260 pub fn ProgramUniformMatrix4x3fv_is_loaded(&self) -> bool {
27261 !self.glProgramUniformMatrix4x3fv_p.load(RELAX).is_null()
27262 }
27263 #[cfg_attr(feature = "inline", inline)]
27266 #[cfg_attr(feature = "inline_always", inline(always))]
27267 pub unsafe fn ProvokingVertex(&self, mode: GLenum) {
27268 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27269 {
27270 trace!("calling gl.ProvokingVertex({:#X});", mode);
27271 }
27272 let out = call_atomic_ptr_1arg("glProvokingVertex", &self.glProvokingVertex_p, mode);
27273 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27274 {
27275 self.automatic_glGetError("glProvokingVertex");
27276 }
27277 out
27278 }
27279 #[doc(hidden)]
27280 pub unsafe fn ProvokingVertex_load_with_dyn(
27281 &self,
27282 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27283 ) -> bool {
27284 load_dyn_name_atomic_ptr(
27285 get_proc_address,
27286 b"glProvokingVertex\0",
27287 &self.glProvokingVertex_p,
27288 )
27289 }
27290 #[inline]
27291 #[doc(hidden)]
27292 pub fn ProvokingVertex_is_loaded(&self) -> bool {
27293 !self.glProvokingVertex_p.load(RELAX).is_null()
27294 }
27295 #[cfg_attr(feature = "inline", inline)]
27299 #[cfg_attr(feature = "inline_always", inline(always))]
27300 pub unsafe fn PushDebugGroup(
27301 &self,
27302 source: GLenum,
27303 id: GLuint,
27304 length: GLsizei,
27305 message: *const GLchar,
27306 ) {
27307 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27308 {
27309 trace!(
27310 "calling gl.PushDebugGroup({:#X}, {:?}, {:?}, {:p});",
27311 source,
27312 id,
27313 length,
27314 message
27315 );
27316 }
27317 let out = call_atomic_ptr_4arg(
27318 "glPushDebugGroup",
27319 &self.glPushDebugGroup_p,
27320 source,
27321 id,
27322 length,
27323 message,
27324 );
27325 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27326 {
27327 self.automatic_glGetError("glPushDebugGroup");
27328 }
27329 out
27330 }
27331 #[doc(hidden)]
27332 pub unsafe fn PushDebugGroup_load_with_dyn(
27333 &self,
27334 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27335 ) -> bool {
27336 load_dyn_name_atomic_ptr(
27337 get_proc_address,
27338 b"glPushDebugGroup\0",
27339 &self.glPushDebugGroup_p,
27340 )
27341 }
27342 #[inline]
27343 #[doc(hidden)]
27344 pub fn PushDebugGroup_is_loaded(&self) -> bool {
27345 !self.glPushDebugGroup_p.load(RELAX).is_null()
27346 }
27347 #[cfg_attr(feature = "inline", inline)]
27351 #[cfg_attr(feature = "inline_always", inline(always))]
27352 pub unsafe fn PushDebugGroupKHR(
27353 &self,
27354 source: GLenum,
27355 id: GLuint,
27356 length: GLsizei,
27357 message: *const GLchar,
27358 ) {
27359 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27360 {
27361 trace!(
27362 "calling gl.PushDebugGroupKHR({:#X}, {:?}, {:?}, {:p});",
27363 source,
27364 id,
27365 length,
27366 message
27367 );
27368 }
27369 let out = call_atomic_ptr_4arg(
27370 "glPushDebugGroupKHR",
27371 &self.glPushDebugGroupKHR_p,
27372 source,
27373 id,
27374 length,
27375 message,
27376 );
27377 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27378 {
27379 self.automatic_glGetError("glPushDebugGroupKHR");
27380 }
27381 out
27382 }
27383 #[doc(hidden)]
27384 pub unsafe fn PushDebugGroupKHR_load_with_dyn(
27385 &self,
27386 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27387 ) -> bool {
27388 load_dyn_name_atomic_ptr(
27389 get_proc_address,
27390 b"glPushDebugGroupKHR\0",
27391 &self.glPushDebugGroupKHR_p,
27392 )
27393 }
27394 #[inline]
27395 #[doc(hidden)]
27396 pub fn PushDebugGroupKHR_is_loaded(&self) -> bool {
27397 !self.glPushDebugGroupKHR_p.load(RELAX).is_null()
27398 }
27399 #[cfg_attr(feature = "inline", inline)]
27402 #[cfg_attr(feature = "inline_always", inline(always))]
27403 pub unsafe fn QueryCounter(&self, id: GLuint, target: GLenum) {
27404 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27405 {
27406 trace!("calling gl.QueryCounter({:?}, {:#X});", id, target);
27407 }
27408 let out = call_atomic_ptr_2arg("glQueryCounter", &self.glQueryCounter_p, id, target);
27409 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27410 {
27411 self.automatic_glGetError("glQueryCounter");
27412 }
27413 out
27414 }
27415 #[doc(hidden)]
27416 pub unsafe fn QueryCounter_load_with_dyn(
27417 &self,
27418 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27419 ) -> bool {
27420 load_dyn_name_atomic_ptr(
27421 get_proc_address,
27422 b"glQueryCounter\0",
27423 &self.glQueryCounter_p,
27424 )
27425 }
27426 #[inline]
27427 #[doc(hidden)]
27428 pub fn QueryCounter_is_loaded(&self) -> bool {
27429 !self.glQueryCounter_p.load(RELAX).is_null()
27430 }
27431 #[cfg_attr(feature = "inline", inline)]
27435 #[cfg_attr(feature = "inline_always", inline(always))]
27436 pub unsafe fn QueryCounterEXT(&self, id: GLuint, target: GLenum) {
27437 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27438 {
27439 trace!("calling gl.QueryCounterEXT({:?}, {:#X});", id, target);
27440 }
27441 let out =
27442 call_atomic_ptr_2arg("glQueryCounterEXT", &self.glQueryCounterEXT_p, id, target);
27443 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27444 {
27445 self.automatic_glGetError("glQueryCounterEXT");
27446 }
27447 out
27448 }
27449 #[doc(hidden)]
27450 pub unsafe fn QueryCounterEXT_load_with_dyn(
27451 &self,
27452 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27453 ) -> bool {
27454 load_dyn_name_atomic_ptr(
27455 get_proc_address,
27456 b"glQueryCounterEXT\0",
27457 &self.glQueryCounterEXT_p,
27458 )
27459 }
27460 #[inline]
27461 #[doc(hidden)]
27462 pub fn QueryCounterEXT_is_loaded(&self) -> bool {
27463 !self.glQueryCounterEXT_p.load(RELAX).is_null()
27464 }
27465 #[cfg_attr(feature = "inline", inline)]
27468 #[cfg_attr(feature = "inline_always", inline(always))]
27469 pub unsafe fn ReadBuffer(&self, src: GLenum) {
27470 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27471 {
27472 trace!("calling gl.ReadBuffer({:#X});", src);
27473 }
27474 let out = call_atomic_ptr_1arg("glReadBuffer", &self.glReadBuffer_p, src);
27475 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27476 {
27477 self.automatic_glGetError("glReadBuffer");
27478 }
27479 out
27480 }
27481 #[doc(hidden)]
27482 pub unsafe fn ReadBuffer_load_with_dyn(
27483 &self,
27484 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27485 ) -> bool {
27486 load_dyn_name_atomic_ptr(get_proc_address, b"glReadBuffer\0", &self.glReadBuffer_p)
27487 }
27488 #[inline]
27489 #[doc(hidden)]
27490 pub fn ReadBuffer_is_loaded(&self) -> bool {
27491 !self.glReadBuffer_p.load(RELAX).is_null()
27492 }
27493 #[cfg_attr(feature = "inline", inline)]
27500 #[cfg_attr(feature = "inline_always", inline(always))]
27501 pub unsafe fn ReadPixels(
27502 &self,
27503 x: GLint,
27504 y: GLint,
27505 width: GLsizei,
27506 height: GLsizei,
27507 format: GLenum,
27508 type_: GLenum,
27509 pixels: *mut c_void,
27510 ) {
27511 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27512 {
27513 trace!(
27514 "calling gl.ReadPixels({:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});",
27515 x,
27516 y,
27517 width,
27518 height,
27519 format,
27520 type_,
27521 pixels
27522 );
27523 }
27524 let out = call_atomic_ptr_7arg(
27525 "glReadPixels",
27526 &self.glReadPixels_p,
27527 x,
27528 y,
27529 width,
27530 height,
27531 format,
27532 type_,
27533 pixels,
27534 );
27535 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27536 {
27537 self.automatic_glGetError("glReadPixels");
27538 }
27539 out
27540 }
27541 #[doc(hidden)]
27542 pub unsafe fn ReadPixels_load_with_dyn(
27543 &self,
27544 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27545 ) -> bool {
27546 load_dyn_name_atomic_ptr(get_proc_address, b"glReadPixels\0", &self.glReadPixels_p)
27547 }
27548 #[inline]
27549 #[doc(hidden)]
27550 pub fn ReadPixels_is_loaded(&self) -> bool {
27551 !self.glReadPixels_p.load(RELAX).is_null()
27552 }
27553 #[cfg_attr(feature = "inline", inline)]
27558 #[cfg_attr(feature = "inline_always", inline(always))]
27559 pub unsafe fn ReadnPixels(
27560 &self,
27561 x: GLint,
27562 y: GLint,
27563 width: GLsizei,
27564 height: GLsizei,
27565 format: GLenum,
27566 type_: GLenum,
27567 bufSize: GLsizei,
27568 data: *mut c_void,
27569 ) {
27570 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27571 {
27572 trace!(
27573 "calling gl.ReadnPixels({:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:?}, {:p});",
27574 x,
27575 y,
27576 width,
27577 height,
27578 format,
27579 type_,
27580 bufSize,
27581 data
27582 );
27583 }
27584 let out = call_atomic_ptr_8arg(
27585 "glReadnPixels",
27586 &self.glReadnPixels_p,
27587 x,
27588 y,
27589 width,
27590 height,
27591 format,
27592 type_,
27593 bufSize,
27594 data,
27595 );
27596 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27597 {
27598 self.automatic_glGetError("glReadnPixels");
27599 }
27600 out
27601 }
27602 #[doc(hidden)]
27603 pub unsafe fn ReadnPixels_load_with_dyn(
27604 &self,
27605 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27606 ) -> bool {
27607 load_dyn_name_atomic_ptr(get_proc_address, b"glReadnPixels\0", &self.glReadnPixels_p)
27608 }
27609 #[inline]
27610 #[doc(hidden)]
27611 pub fn ReadnPixels_is_loaded(&self) -> bool {
27612 !self.glReadnPixels_p.load(RELAX).is_null()
27613 }
27614 #[cfg_attr(feature = "inline", inline)]
27616 #[cfg_attr(feature = "inline_always", inline(always))]
27617 pub unsafe fn ReleaseShaderCompiler(&self) {
27618 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27619 {
27620 trace!("calling gl.ReleaseShaderCompiler();",);
27621 }
27622 let out =
27623 call_atomic_ptr_0arg("glReleaseShaderCompiler", &self.glReleaseShaderCompiler_p);
27624 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27625 {
27626 self.automatic_glGetError("glReleaseShaderCompiler");
27627 }
27628 out
27629 }
27630 #[doc(hidden)]
27631 pub unsafe fn ReleaseShaderCompiler_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"glReleaseShaderCompiler\0",
27638 &self.glReleaseShaderCompiler_p,
27639 )
27640 }
27641 #[inline]
27642 #[doc(hidden)]
27643 pub fn ReleaseShaderCompiler_is_loaded(&self) -> bool {
27644 !self.glReleaseShaderCompiler_p.load(RELAX).is_null()
27645 }
27646 #[cfg_attr(feature = "inline", inline)]
27650 #[cfg_attr(feature = "inline_always", inline(always))]
27651 pub unsafe fn RenderbufferStorage(
27652 &self,
27653 target: GLenum,
27654 internalformat: GLenum,
27655 width: GLsizei,
27656 height: GLsizei,
27657 ) {
27658 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27659 {
27660 trace!(
27661 "calling gl.RenderbufferStorage({:#X}, {:#X}, {:?}, {:?});",
27662 target,
27663 internalformat,
27664 width,
27665 height
27666 );
27667 }
27668 let out = call_atomic_ptr_4arg(
27669 "glRenderbufferStorage",
27670 &self.glRenderbufferStorage_p,
27671 target,
27672 internalformat,
27673 width,
27674 height,
27675 );
27676 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27677 {
27678 self.automatic_glGetError("glRenderbufferStorage");
27679 }
27680 out
27681 }
27682 #[doc(hidden)]
27683 pub unsafe fn RenderbufferStorage_load_with_dyn(
27684 &self,
27685 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27686 ) -> bool {
27687 load_dyn_name_atomic_ptr(
27688 get_proc_address,
27689 b"glRenderbufferStorage\0",
27690 &self.glRenderbufferStorage_p,
27691 )
27692 }
27693 #[inline]
27694 #[doc(hidden)]
27695 pub fn RenderbufferStorage_is_loaded(&self) -> bool {
27696 !self.glRenderbufferStorage_p.load(RELAX).is_null()
27697 }
27698 #[cfg_attr(feature = "inline", inline)]
27702 #[cfg_attr(feature = "inline_always", inline(always))]
27703 pub unsafe fn RenderbufferStorageMultisample(
27704 &self,
27705 target: GLenum,
27706 samples: GLsizei,
27707 internalformat: GLenum,
27708 width: GLsizei,
27709 height: GLsizei,
27710 ) {
27711 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27712 {
27713 trace!(
27714 "calling gl.RenderbufferStorageMultisample({:#X}, {:?}, {:#X}, {:?}, {:?});",
27715 target,
27716 samples,
27717 internalformat,
27718 width,
27719 height
27720 );
27721 }
27722 let out = call_atomic_ptr_5arg(
27723 "glRenderbufferStorageMultisample",
27724 &self.glRenderbufferStorageMultisample_p,
27725 target,
27726 samples,
27727 internalformat,
27728 width,
27729 height,
27730 );
27731 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27732 {
27733 self.automatic_glGetError("glRenderbufferStorageMultisample");
27734 }
27735 out
27736 }
27737 #[doc(hidden)]
27738 pub unsafe fn RenderbufferStorageMultisample_load_with_dyn(
27739 &self,
27740 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27741 ) -> bool {
27742 load_dyn_name_atomic_ptr(
27743 get_proc_address,
27744 b"glRenderbufferStorageMultisample\0",
27745 &self.glRenderbufferStorageMultisample_p,
27746 )
27747 }
27748 #[inline]
27749 #[doc(hidden)]
27750 pub fn RenderbufferStorageMultisample_is_loaded(&self) -> bool {
27751 !self
27752 .glRenderbufferStorageMultisample_p
27753 .load(RELAX)
27754 .is_null()
27755 }
27756 #[cfg_attr(feature = "inline", inline)]
27758 #[cfg_attr(feature = "inline_always", inline(always))]
27759 pub unsafe fn ResumeTransformFeedback(&self) {
27760 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27761 {
27762 trace!("calling gl.ResumeTransformFeedback();",);
27763 }
27764 let out = call_atomic_ptr_0arg(
27765 "glResumeTransformFeedback",
27766 &self.glResumeTransformFeedback_p,
27767 );
27768 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27769 {
27770 self.automatic_glGetError("glResumeTransformFeedback");
27771 }
27772 out
27773 }
27774 #[doc(hidden)]
27775 pub unsafe fn ResumeTransformFeedback_load_with_dyn(
27776 &self,
27777 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27778 ) -> bool {
27779 load_dyn_name_atomic_ptr(
27780 get_proc_address,
27781 b"glResumeTransformFeedback\0",
27782 &self.glResumeTransformFeedback_p,
27783 )
27784 }
27785 #[inline]
27786 #[doc(hidden)]
27787 pub fn ResumeTransformFeedback_is_loaded(&self) -> bool {
27788 !self.glResumeTransformFeedback_p.load(RELAX).is_null()
27789 }
27790 #[cfg_attr(feature = "inline", inline)]
27792 #[cfg_attr(feature = "inline_always", inline(always))]
27793 pub unsafe fn SampleCoverage(&self, value: GLfloat, invert: GLboolean) {
27794 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27795 {
27796 trace!("calling gl.SampleCoverage({:?}, {:?});", value, invert);
27797 }
27798 let out =
27799 call_atomic_ptr_2arg("glSampleCoverage", &self.glSampleCoverage_p, value, invert);
27800 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27801 {
27802 self.automatic_glGetError("glSampleCoverage");
27803 }
27804 out
27805 }
27806 #[doc(hidden)]
27807 pub unsafe fn SampleCoverage_load_with_dyn(
27808 &self,
27809 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27810 ) -> bool {
27811 load_dyn_name_atomic_ptr(
27812 get_proc_address,
27813 b"glSampleCoverage\0",
27814 &self.glSampleCoverage_p,
27815 )
27816 }
27817 #[inline]
27818 #[doc(hidden)]
27819 pub fn SampleCoverage_is_loaded(&self) -> bool {
27820 !self.glSampleCoverage_p.load(RELAX).is_null()
27821 }
27822 #[cfg_attr(feature = "inline", inline)]
27824 #[cfg_attr(feature = "inline_always", inline(always))]
27825 pub unsafe fn SampleMaski(&self, maskNumber: GLuint, mask: GLbitfield) {
27826 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27827 {
27828 trace!("calling gl.SampleMaski({:?}, {:?});", maskNumber, mask);
27829 }
27830 let out =
27831 call_atomic_ptr_2arg("glSampleMaski", &self.glSampleMaski_p, maskNumber, mask);
27832 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27833 {
27834 self.automatic_glGetError("glSampleMaski");
27835 }
27836 out
27837 }
27838 #[doc(hidden)]
27839 pub unsafe fn SampleMaski_load_with_dyn(
27840 &self,
27841 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27842 ) -> bool {
27843 load_dyn_name_atomic_ptr(get_proc_address, b"glSampleMaski\0", &self.glSampleMaski_p)
27844 }
27845 #[inline]
27846 #[doc(hidden)]
27847 pub fn SampleMaski_is_loaded(&self) -> bool {
27848 !self.glSampleMaski_p.load(RELAX).is_null()
27849 }
27850 #[cfg_attr(feature = "inline", inline)]
27854 #[cfg_attr(feature = "inline_always", inline(always))]
27855 pub unsafe fn SamplerParameterIiv(
27856 &self,
27857 sampler: GLuint,
27858 pname: GLenum,
27859 param: *const GLint,
27860 ) {
27861 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27862 {
27863 trace!(
27864 "calling gl.SamplerParameterIiv({:?}, {:#X}, {:p});",
27865 sampler,
27866 pname,
27867 param
27868 );
27869 }
27870 let out = call_atomic_ptr_3arg(
27871 "glSamplerParameterIiv",
27872 &self.glSamplerParameterIiv_p,
27873 sampler,
27874 pname,
27875 param,
27876 );
27877 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27878 {
27879 self.automatic_glGetError("glSamplerParameterIiv");
27880 }
27881 out
27882 }
27883 #[doc(hidden)]
27884 pub unsafe fn SamplerParameterIiv_load_with_dyn(
27885 &self,
27886 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27887 ) -> bool {
27888 load_dyn_name_atomic_ptr(
27889 get_proc_address,
27890 b"glSamplerParameterIiv\0",
27891 &self.glSamplerParameterIiv_p,
27892 )
27893 }
27894 #[inline]
27895 #[doc(hidden)]
27896 pub fn SamplerParameterIiv_is_loaded(&self) -> bool {
27897 !self.glSamplerParameterIiv_p.load(RELAX).is_null()
27898 }
27899 #[cfg_attr(feature = "inline", inline)]
27903 #[cfg_attr(feature = "inline_always", inline(always))]
27904 pub unsafe fn SamplerParameterIuiv(
27905 &self,
27906 sampler: GLuint,
27907 pname: GLenum,
27908 param: *const GLuint,
27909 ) {
27910 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27911 {
27912 trace!(
27913 "calling gl.SamplerParameterIuiv({:?}, {:#X}, {:p});",
27914 sampler,
27915 pname,
27916 param
27917 );
27918 }
27919 let out = call_atomic_ptr_3arg(
27920 "glSamplerParameterIuiv",
27921 &self.glSamplerParameterIuiv_p,
27922 sampler,
27923 pname,
27924 param,
27925 );
27926 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27927 {
27928 self.automatic_glGetError("glSamplerParameterIuiv");
27929 }
27930 out
27931 }
27932 #[doc(hidden)]
27933 pub unsafe fn SamplerParameterIuiv_load_with_dyn(
27934 &self,
27935 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27936 ) -> bool {
27937 load_dyn_name_atomic_ptr(
27938 get_proc_address,
27939 b"glSamplerParameterIuiv\0",
27940 &self.glSamplerParameterIuiv_p,
27941 )
27942 }
27943 #[inline]
27944 #[doc(hidden)]
27945 pub fn SamplerParameterIuiv_is_loaded(&self) -> bool {
27946 !self.glSamplerParameterIuiv_p.load(RELAX).is_null()
27947 }
27948 #[cfg_attr(feature = "inline", inline)]
27951 #[cfg_attr(feature = "inline_always", inline(always))]
27952 pub unsafe fn SamplerParameterf(&self, sampler: GLuint, pname: GLenum, param: GLfloat) {
27953 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27954 {
27955 trace!(
27956 "calling gl.SamplerParameterf({:?}, {:#X}, {:?});",
27957 sampler,
27958 pname,
27959 param
27960 );
27961 }
27962 let out = call_atomic_ptr_3arg(
27963 "glSamplerParameterf",
27964 &self.glSamplerParameterf_p,
27965 sampler,
27966 pname,
27967 param,
27968 );
27969 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27970 {
27971 self.automatic_glGetError("glSamplerParameterf");
27972 }
27973 out
27974 }
27975 #[doc(hidden)]
27976 pub unsafe fn SamplerParameterf_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"glSamplerParameterf\0",
27983 &self.glSamplerParameterf_p,
27984 )
27985 }
27986 #[inline]
27987 #[doc(hidden)]
27988 pub fn SamplerParameterf_is_loaded(&self) -> bool {
27989 !self.glSamplerParameterf_p.load(RELAX).is_null()
27990 }
27991 #[cfg_attr(feature = "inline", inline)]
27995 #[cfg_attr(feature = "inline_always", inline(always))]
27996 pub unsafe fn SamplerParameterfv(
27997 &self,
27998 sampler: GLuint,
27999 pname: GLenum,
28000 param: *const GLfloat,
28001 ) {
28002 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28003 {
28004 trace!(
28005 "calling gl.SamplerParameterfv({:?}, {:#X}, {:p});",
28006 sampler,
28007 pname,
28008 param
28009 );
28010 }
28011 let out = call_atomic_ptr_3arg(
28012 "glSamplerParameterfv",
28013 &self.glSamplerParameterfv_p,
28014 sampler,
28015 pname,
28016 param,
28017 );
28018 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28019 {
28020 self.automatic_glGetError("glSamplerParameterfv");
28021 }
28022 out
28023 }
28024 #[doc(hidden)]
28025 pub unsafe fn SamplerParameterfv_load_with_dyn(
28026 &self,
28027 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28028 ) -> bool {
28029 load_dyn_name_atomic_ptr(
28030 get_proc_address,
28031 b"glSamplerParameterfv\0",
28032 &self.glSamplerParameterfv_p,
28033 )
28034 }
28035 #[inline]
28036 #[doc(hidden)]
28037 pub fn SamplerParameterfv_is_loaded(&self) -> bool {
28038 !self.glSamplerParameterfv_p.load(RELAX).is_null()
28039 }
28040 #[cfg_attr(feature = "inline", inline)]
28043 #[cfg_attr(feature = "inline_always", inline(always))]
28044 pub unsafe fn SamplerParameteri(&self, sampler: GLuint, pname: GLenum, param: GLint) {
28045 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28046 {
28047 trace!(
28048 "calling gl.SamplerParameteri({:?}, {:#X}, {:?});",
28049 sampler,
28050 pname,
28051 param
28052 );
28053 }
28054 let out = call_atomic_ptr_3arg(
28055 "glSamplerParameteri",
28056 &self.glSamplerParameteri_p,
28057 sampler,
28058 pname,
28059 param,
28060 );
28061 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28062 {
28063 self.automatic_glGetError("glSamplerParameteri");
28064 }
28065 out
28066 }
28067 #[doc(hidden)]
28068 pub unsafe fn SamplerParameteri_load_with_dyn(
28069 &self,
28070 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28071 ) -> bool {
28072 load_dyn_name_atomic_ptr(
28073 get_proc_address,
28074 b"glSamplerParameteri\0",
28075 &self.glSamplerParameteri_p,
28076 )
28077 }
28078 #[inline]
28079 #[doc(hidden)]
28080 pub fn SamplerParameteri_is_loaded(&self) -> bool {
28081 !self.glSamplerParameteri_p.load(RELAX).is_null()
28082 }
28083 #[cfg_attr(feature = "inline", inline)]
28087 #[cfg_attr(feature = "inline_always", inline(always))]
28088 pub unsafe fn SamplerParameteriv(
28089 &self,
28090 sampler: GLuint,
28091 pname: GLenum,
28092 param: *const GLint,
28093 ) {
28094 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28095 {
28096 trace!(
28097 "calling gl.SamplerParameteriv({:?}, {:#X}, {:p});",
28098 sampler,
28099 pname,
28100 param
28101 );
28102 }
28103 let out = call_atomic_ptr_3arg(
28104 "glSamplerParameteriv",
28105 &self.glSamplerParameteriv_p,
28106 sampler,
28107 pname,
28108 param,
28109 );
28110 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28111 {
28112 self.automatic_glGetError("glSamplerParameteriv");
28113 }
28114 out
28115 }
28116 #[doc(hidden)]
28117 pub unsafe fn SamplerParameteriv_load_with_dyn(
28118 &self,
28119 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28120 ) -> bool {
28121 load_dyn_name_atomic_ptr(
28122 get_proc_address,
28123 b"glSamplerParameteriv\0",
28124 &self.glSamplerParameteriv_p,
28125 )
28126 }
28127 #[inline]
28128 #[doc(hidden)]
28129 pub fn SamplerParameteriv_is_loaded(&self) -> bool {
28130 !self.glSamplerParameteriv_p.load(RELAX).is_null()
28131 }
28132 #[cfg_attr(feature = "inline", inline)]
28136 #[cfg_attr(feature = "inline_always", inline(always))]
28137 pub unsafe fn Scissor(&self, x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
28138 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28139 {
28140 trace!(
28141 "calling gl.Scissor({:?}, {:?}, {:?}, {:?});",
28142 x,
28143 y,
28144 width,
28145 height
28146 );
28147 }
28148 let out = call_atomic_ptr_4arg("glScissor", &self.glScissor_p, x, y, width, height);
28149 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28150 {
28151 self.automatic_glGetError("glScissor");
28152 }
28153 out
28154 }
28155 #[doc(hidden)]
28156 pub unsafe fn Scissor_load_with_dyn(
28157 &self,
28158 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28159 ) -> bool {
28160 load_dyn_name_atomic_ptr(get_proc_address, b"glScissor\0", &self.glScissor_p)
28161 }
28162 #[inline]
28163 #[doc(hidden)]
28164 pub fn Scissor_is_loaded(&self) -> bool {
28165 !self.glScissor_p.load(RELAX).is_null()
28166 }
28167 #[cfg_attr(feature = "inline", inline)]
28170 #[cfg_attr(feature = "inline_always", inline(always))]
28171 pub unsafe fn ScissorArrayv(&self, first: GLuint, count: GLsizei, v: *const GLint) {
28172 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28173 {
28174 trace!(
28175 "calling gl.ScissorArrayv({:?}, {:?}, {:p});",
28176 first,
28177 count,
28178 v
28179 );
28180 }
28181 let out =
28182 call_atomic_ptr_3arg("glScissorArrayv", &self.glScissorArrayv_p, first, count, v);
28183 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28184 {
28185 self.automatic_glGetError("glScissorArrayv");
28186 }
28187 out
28188 }
28189 #[doc(hidden)]
28190 pub unsafe fn ScissorArrayv_load_with_dyn(
28191 &self,
28192 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28193 ) -> bool {
28194 load_dyn_name_atomic_ptr(
28195 get_proc_address,
28196 b"glScissorArrayv\0",
28197 &self.glScissorArrayv_p,
28198 )
28199 }
28200 #[inline]
28201 #[doc(hidden)]
28202 pub fn ScissorArrayv_is_loaded(&self) -> bool {
28203 !self.glScissorArrayv_p.load(RELAX).is_null()
28204 }
28205 #[cfg_attr(feature = "inline", inline)]
28207 #[cfg_attr(feature = "inline_always", inline(always))]
28208 pub unsafe fn ScissorIndexed(
28209 &self,
28210 index: GLuint,
28211 left: GLint,
28212 bottom: GLint,
28213 width: GLsizei,
28214 height: GLsizei,
28215 ) {
28216 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28217 {
28218 trace!(
28219 "calling gl.ScissorIndexed({:?}, {:?}, {:?}, {:?}, {:?});",
28220 index,
28221 left,
28222 bottom,
28223 width,
28224 height
28225 );
28226 }
28227 let out = call_atomic_ptr_5arg(
28228 "glScissorIndexed",
28229 &self.glScissorIndexed_p,
28230 index,
28231 left,
28232 bottom,
28233 width,
28234 height,
28235 );
28236 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28237 {
28238 self.automatic_glGetError("glScissorIndexed");
28239 }
28240 out
28241 }
28242 #[doc(hidden)]
28243 pub unsafe fn ScissorIndexed_load_with_dyn(
28244 &self,
28245 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28246 ) -> bool {
28247 load_dyn_name_atomic_ptr(
28248 get_proc_address,
28249 b"glScissorIndexed\0",
28250 &self.glScissorIndexed_p,
28251 )
28252 }
28253 #[inline]
28254 #[doc(hidden)]
28255 pub fn ScissorIndexed_is_loaded(&self) -> bool {
28256 !self.glScissorIndexed_p.load(RELAX).is_null()
28257 }
28258 #[cfg_attr(feature = "inline", inline)]
28261 #[cfg_attr(feature = "inline_always", inline(always))]
28262 pub unsafe fn ScissorIndexedv(&self, index: GLuint, v: *const GLint) {
28263 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28264 {
28265 trace!("calling gl.ScissorIndexedv({:?}, {:p});", index, v);
28266 }
28267 let out =
28268 call_atomic_ptr_2arg("glScissorIndexedv", &self.glScissorIndexedv_p, index, v);
28269 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28270 {
28271 self.automatic_glGetError("glScissorIndexedv");
28272 }
28273 out
28274 }
28275 #[doc(hidden)]
28276 pub unsafe fn ScissorIndexedv_load_with_dyn(
28277 &self,
28278 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28279 ) -> bool {
28280 load_dyn_name_atomic_ptr(
28281 get_proc_address,
28282 b"glScissorIndexedv\0",
28283 &self.glScissorIndexedv_p,
28284 )
28285 }
28286 #[inline]
28287 #[doc(hidden)]
28288 pub fn ScissorIndexedv_is_loaded(&self) -> bool {
28289 !self.glScissorIndexedv_p.load(RELAX).is_null()
28290 }
28291 #[cfg_attr(feature = "inline", inline)]
28296 #[cfg_attr(feature = "inline_always", inline(always))]
28297 pub unsafe fn ShaderBinary(
28298 &self,
28299 count: GLsizei,
28300 shaders: *const GLuint,
28301 binaryFormat: GLenum,
28302 binary: *const c_void,
28303 length: GLsizei,
28304 ) {
28305 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28306 {
28307 trace!(
28308 "calling gl.ShaderBinary({:?}, {:p}, {:#X}, {:p}, {:?});",
28309 count,
28310 shaders,
28311 binaryFormat,
28312 binary,
28313 length
28314 );
28315 }
28316 let out = call_atomic_ptr_5arg(
28317 "glShaderBinary",
28318 &self.glShaderBinary_p,
28319 count,
28320 shaders,
28321 binaryFormat,
28322 binary,
28323 length,
28324 );
28325 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28326 {
28327 self.automatic_glGetError("glShaderBinary");
28328 }
28329 out
28330 }
28331 #[doc(hidden)]
28332 pub unsafe fn ShaderBinary_load_with_dyn(
28333 &self,
28334 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28335 ) -> bool {
28336 load_dyn_name_atomic_ptr(
28337 get_proc_address,
28338 b"glShaderBinary\0",
28339 &self.glShaderBinary_p,
28340 )
28341 }
28342 #[inline]
28343 #[doc(hidden)]
28344 pub fn ShaderBinary_is_loaded(&self) -> bool {
28345 !self.glShaderBinary_p.load(RELAX).is_null()
28346 }
28347 #[cfg_attr(feature = "inline", inline)]
28351 #[cfg_attr(feature = "inline_always", inline(always))]
28352 pub unsafe fn ShaderSource(
28353 &self,
28354 shader: GLuint,
28355 count: GLsizei,
28356 string: *const *const GLchar,
28357 length: *const GLint,
28358 ) {
28359 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28360 {
28361 trace!(
28362 "calling gl.ShaderSource({:?}, {:?}, {:p}, {:p});",
28363 shader,
28364 count,
28365 string,
28366 length
28367 );
28368 }
28369 let out = call_atomic_ptr_4arg(
28370 "glShaderSource",
28371 &self.glShaderSource_p,
28372 shader,
28373 count,
28374 string,
28375 length,
28376 );
28377 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28378 {
28379 self.automatic_glGetError("glShaderSource");
28380 }
28381 out
28382 }
28383 #[doc(hidden)]
28384 pub unsafe fn ShaderSource_load_with_dyn(
28385 &self,
28386 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28387 ) -> bool {
28388 load_dyn_name_atomic_ptr(
28389 get_proc_address,
28390 b"glShaderSource\0",
28391 &self.glShaderSource_p,
28392 )
28393 }
28394 #[inline]
28395 #[doc(hidden)]
28396 pub fn ShaderSource_is_loaded(&self) -> bool {
28397 !self.glShaderSource_p.load(RELAX).is_null()
28398 }
28399 #[cfg_attr(feature = "inline", inline)]
28401 #[cfg_attr(feature = "inline_always", inline(always))]
28402 pub unsafe fn ShaderStorageBlockBinding(
28403 &self,
28404 program: GLuint,
28405 storageBlockIndex: GLuint,
28406 storageBlockBinding: GLuint,
28407 ) {
28408 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28409 {
28410 trace!(
28411 "calling gl.ShaderStorageBlockBinding({:?}, {:?}, {:?});",
28412 program,
28413 storageBlockIndex,
28414 storageBlockBinding
28415 );
28416 }
28417 let out = call_atomic_ptr_3arg(
28418 "glShaderStorageBlockBinding",
28419 &self.glShaderStorageBlockBinding_p,
28420 program,
28421 storageBlockIndex,
28422 storageBlockBinding,
28423 );
28424 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28425 {
28426 self.automatic_glGetError("glShaderStorageBlockBinding");
28427 }
28428 out
28429 }
28430 #[doc(hidden)]
28431 pub unsafe fn ShaderStorageBlockBinding_load_with_dyn(
28432 &self,
28433 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28434 ) -> bool {
28435 load_dyn_name_atomic_ptr(
28436 get_proc_address,
28437 b"glShaderStorageBlockBinding\0",
28438 &self.glShaderStorageBlockBinding_p,
28439 )
28440 }
28441 #[inline]
28442 #[doc(hidden)]
28443 pub fn ShaderStorageBlockBinding_is_loaded(&self) -> bool {
28444 !self.glShaderStorageBlockBinding_p.load(RELAX).is_null()
28445 }
28446 #[cfg_attr(feature = "inline", inline)]
28448 #[cfg_attr(feature = "inline_always", inline(always))]
28449 pub unsafe fn SpecializeShader(
28450 &self,
28451 shader: GLuint,
28452 pEntryPoint: *const GLchar,
28453 numSpecializationConstants: GLuint,
28454 pConstantIndex: *const GLuint,
28455 pConstantValue: *const GLuint,
28456 ) {
28457 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28458 {
28459 trace!(
28460 "calling gl.SpecializeShader({:?}, {:p}, {:?}, {:p}, {:p});",
28461 shader,
28462 pEntryPoint,
28463 numSpecializationConstants,
28464 pConstantIndex,
28465 pConstantValue
28466 );
28467 }
28468 let out = call_atomic_ptr_5arg(
28469 "glSpecializeShader",
28470 &self.glSpecializeShader_p,
28471 shader,
28472 pEntryPoint,
28473 numSpecializationConstants,
28474 pConstantIndex,
28475 pConstantValue,
28476 );
28477 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28478 {
28479 self.automatic_glGetError("glSpecializeShader");
28480 }
28481 out
28482 }
28483 #[doc(hidden)]
28484 pub unsafe fn SpecializeShader_load_with_dyn(
28485 &self,
28486 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28487 ) -> bool {
28488 load_dyn_name_atomic_ptr(
28489 get_proc_address,
28490 b"glSpecializeShader\0",
28491 &self.glSpecializeShader_p,
28492 )
28493 }
28494 #[inline]
28495 #[doc(hidden)]
28496 pub fn SpecializeShader_is_loaded(&self) -> bool {
28497 !self.glSpecializeShader_p.load(RELAX).is_null()
28498 }
28499 #[cfg_attr(feature = "inline", inline)]
28504 #[cfg_attr(feature = "inline_always", inline(always))]
28505 pub unsafe fn StencilFunc(&self, func: GLenum, ref_: GLint, mask: GLuint) {
28506 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28507 {
28508 trace!(
28509 "calling gl.StencilFunc({:#X}, {:?}, {:?});",
28510 func,
28511 ref_,
28512 mask
28513 );
28514 }
28515 let out =
28516 call_atomic_ptr_3arg("glStencilFunc", &self.glStencilFunc_p, func, ref_, mask);
28517 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28518 {
28519 self.automatic_glGetError("glStencilFunc");
28520 }
28521 out
28522 }
28523 #[doc(hidden)]
28524 pub unsafe fn StencilFunc_load_with_dyn(
28525 &self,
28526 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28527 ) -> bool {
28528 load_dyn_name_atomic_ptr(get_proc_address, b"glStencilFunc\0", &self.glStencilFunc_p)
28529 }
28530 #[inline]
28531 #[doc(hidden)]
28532 pub fn StencilFunc_is_loaded(&self) -> bool {
28533 !self.glStencilFunc_p.load(RELAX).is_null()
28534 }
28535 #[cfg_attr(feature = "inline", inline)]
28541 #[cfg_attr(feature = "inline_always", inline(always))]
28542 pub unsafe fn StencilFuncSeparate(
28543 &self,
28544 face: GLenum,
28545 func: GLenum,
28546 ref_: GLint,
28547 mask: GLuint,
28548 ) {
28549 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28550 {
28551 trace!(
28552 "calling gl.StencilFuncSeparate({:#X}, {:#X}, {:?}, {:?});",
28553 face,
28554 func,
28555 ref_,
28556 mask
28557 );
28558 }
28559 let out = call_atomic_ptr_4arg(
28560 "glStencilFuncSeparate",
28561 &self.glStencilFuncSeparate_p,
28562 face,
28563 func,
28564 ref_,
28565 mask,
28566 );
28567 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28568 {
28569 self.automatic_glGetError("glStencilFuncSeparate");
28570 }
28571 out
28572 }
28573 #[doc(hidden)]
28574 pub unsafe fn StencilFuncSeparate_load_with_dyn(
28575 &self,
28576 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28577 ) -> bool {
28578 load_dyn_name_atomic_ptr(
28579 get_proc_address,
28580 b"glStencilFuncSeparate\0",
28581 &self.glStencilFuncSeparate_p,
28582 )
28583 }
28584 #[inline]
28585 #[doc(hidden)]
28586 pub fn StencilFuncSeparate_is_loaded(&self) -> bool {
28587 !self.glStencilFuncSeparate_p.load(RELAX).is_null()
28588 }
28589 #[cfg_attr(feature = "inline", inline)]
28592 #[cfg_attr(feature = "inline_always", inline(always))]
28593 pub unsafe fn StencilMask(&self, mask: GLuint) {
28594 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28595 {
28596 trace!("calling gl.StencilMask({:?});", mask);
28597 }
28598 let out = call_atomic_ptr_1arg("glStencilMask", &self.glStencilMask_p, mask);
28599 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28600 {
28601 self.automatic_glGetError("glStencilMask");
28602 }
28603 out
28604 }
28605 #[doc(hidden)]
28606 pub unsafe fn StencilMask_load_with_dyn(
28607 &self,
28608 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28609 ) -> bool {
28610 load_dyn_name_atomic_ptr(get_proc_address, b"glStencilMask\0", &self.glStencilMask_p)
28611 }
28612 #[inline]
28613 #[doc(hidden)]
28614 pub fn StencilMask_is_loaded(&self) -> bool {
28615 !self.glStencilMask_p.load(RELAX).is_null()
28616 }
28617 #[cfg_attr(feature = "inline", inline)]
28621 #[cfg_attr(feature = "inline_always", inline(always))]
28622 pub unsafe fn StencilMaskSeparate(&self, face: GLenum, mask: GLuint) {
28623 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28624 {
28625 trace!("calling gl.StencilMaskSeparate({:#X}, {:?});", face, mask);
28626 }
28627 let out = call_atomic_ptr_2arg(
28628 "glStencilMaskSeparate",
28629 &self.glStencilMaskSeparate_p,
28630 face,
28631 mask,
28632 );
28633 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28634 {
28635 self.automatic_glGetError("glStencilMaskSeparate");
28636 }
28637 out
28638 }
28639 #[doc(hidden)]
28640 pub unsafe fn StencilMaskSeparate_load_with_dyn(
28641 &self,
28642 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28643 ) -> bool {
28644 load_dyn_name_atomic_ptr(
28645 get_proc_address,
28646 b"glStencilMaskSeparate\0",
28647 &self.glStencilMaskSeparate_p,
28648 )
28649 }
28650 #[inline]
28651 #[doc(hidden)]
28652 pub fn StencilMaskSeparate_is_loaded(&self) -> bool {
28653 !self.glStencilMaskSeparate_p.load(RELAX).is_null()
28654 }
28655 #[cfg_attr(feature = "inline", inline)]
28660 #[cfg_attr(feature = "inline_always", inline(always))]
28661 pub unsafe fn StencilOp(&self, fail: GLenum, zfail: GLenum, zpass: GLenum) {
28662 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28663 {
28664 trace!(
28665 "calling gl.StencilOp({:#X}, {:#X}, {:#X});",
28666 fail,
28667 zfail,
28668 zpass
28669 );
28670 }
28671 let out = call_atomic_ptr_3arg("glStencilOp", &self.glStencilOp_p, fail, zfail, zpass);
28672 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28673 {
28674 self.automatic_glGetError("glStencilOp");
28675 }
28676 out
28677 }
28678 #[doc(hidden)]
28679 pub unsafe fn StencilOp_load_with_dyn(
28680 &self,
28681 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28682 ) -> bool {
28683 load_dyn_name_atomic_ptr(get_proc_address, b"glStencilOp\0", &self.glStencilOp_p)
28684 }
28685 #[inline]
28686 #[doc(hidden)]
28687 pub fn StencilOp_is_loaded(&self) -> bool {
28688 !self.glStencilOp_p.load(RELAX).is_null()
28689 }
28690 #[cfg_attr(feature = "inline", inline)]
28696 #[cfg_attr(feature = "inline_always", inline(always))]
28697 pub unsafe fn StencilOpSeparate(
28698 &self,
28699 face: GLenum,
28700 sfail: GLenum,
28701 dpfail: GLenum,
28702 dppass: GLenum,
28703 ) {
28704 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28705 {
28706 trace!(
28707 "calling gl.StencilOpSeparate({:#X}, {:#X}, {:#X}, {:#X});",
28708 face,
28709 sfail,
28710 dpfail,
28711 dppass
28712 );
28713 }
28714 let out = call_atomic_ptr_4arg(
28715 "glStencilOpSeparate",
28716 &self.glStencilOpSeparate_p,
28717 face,
28718 sfail,
28719 dpfail,
28720 dppass,
28721 );
28722 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28723 {
28724 self.automatic_glGetError("glStencilOpSeparate");
28725 }
28726 out
28727 }
28728 #[doc(hidden)]
28729 pub unsafe fn StencilOpSeparate_load_with_dyn(
28730 &self,
28731 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28732 ) -> bool {
28733 load_dyn_name_atomic_ptr(
28734 get_proc_address,
28735 b"glStencilOpSeparate\0",
28736 &self.glStencilOpSeparate_p,
28737 )
28738 }
28739 #[inline]
28740 #[doc(hidden)]
28741 pub fn StencilOpSeparate_is_loaded(&self) -> bool {
28742 !self.glStencilOpSeparate_p.load(RELAX).is_null()
28743 }
28744 #[cfg_attr(feature = "inline", inline)]
28748 #[cfg_attr(feature = "inline_always", inline(always))]
28749 pub unsafe fn TexBuffer(&self, target: GLenum, internalformat: GLenum, buffer: GLuint) {
28750 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28751 {
28752 trace!(
28753 "calling gl.TexBuffer({:#X}, {:#X}, {:?});",
28754 target,
28755 internalformat,
28756 buffer
28757 );
28758 }
28759 let out = call_atomic_ptr_3arg(
28760 "glTexBuffer",
28761 &self.glTexBuffer_p,
28762 target,
28763 internalformat,
28764 buffer,
28765 );
28766 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28767 {
28768 self.automatic_glGetError("glTexBuffer");
28769 }
28770 out
28771 }
28772 #[doc(hidden)]
28773 pub unsafe fn TexBuffer_load_with_dyn(
28774 &self,
28775 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28776 ) -> bool {
28777 load_dyn_name_atomic_ptr(get_proc_address, b"glTexBuffer\0", &self.glTexBuffer_p)
28778 }
28779 #[inline]
28780 #[doc(hidden)]
28781 pub fn TexBuffer_is_loaded(&self) -> bool {
28782 !self.glTexBuffer_p.load(RELAX).is_null()
28783 }
28784 #[cfg_attr(feature = "inline", inline)]
28790 #[cfg_attr(feature = "inline_always", inline(always))]
28791 pub unsafe fn TexBufferRange(
28792 &self,
28793 target: GLenum,
28794 internalformat: GLenum,
28795 buffer: GLuint,
28796 offset: GLintptr,
28797 size: GLsizeiptr,
28798 ) {
28799 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28800 {
28801 trace!(
28802 "calling gl.TexBufferRange({:#X}, {:#X}, {:?}, {:?}, {:?});",
28803 target,
28804 internalformat,
28805 buffer,
28806 offset,
28807 size
28808 );
28809 }
28810 let out = call_atomic_ptr_5arg(
28811 "glTexBufferRange",
28812 &self.glTexBufferRange_p,
28813 target,
28814 internalformat,
28815 buffer,
28816 offset,
28817 size,
28818 );
28819 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28820 {
28821 self.automatic_glGetError("glTexBufferRange");
28822 }
28823 out
28824 }
28825 #[doc(hidden)]
28826 pub unsafe fn TexBufferRange_load_with_dyn(
28827 &self,
28828 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28829 ) -> bool {
28830 load_dyn_name_atomic_ptr(
28831 get_proc_address,
28832 b"glTexBufferRange\0",
28833 &self.glTexBufferRange_p,
28834 )
28835 }
28836 #[inline]
28837 #[doc(hidden)]
28838 pub fn TexBufferRange_is_loaded(&self) -> bool {
28839 !self.glTexBufferRange_p.load(RELAX).is_null()
28840 }
28841 #[cfg_attr(feature = "inline", inline)]
28850 #[cfg_attr(feature = "inline_always", inline(always))]
28851 pub unsafe fn TexImage1D(
28852 &self,
28853 target: GLenum,
28854 level: GLint,
28855 internalformat: GLint,
28856 width: GLsizei,
28857 border: GLint,
28858 format: GLenum,
28859 type_: GLenum,
28860 pixels: *const c_void,
28861 ) {
28862 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28863 {
28864 trace!(
28865 "calling gl.TexImage1D({:#X}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});",
28866 target,
28867 level,
28868 internalformat,
28869 width,
28870 border,
28871 format,
28872 type_,
28873 pixels
28874 );
28875 }
28876 let out = call_atomic_ptr_8arg(
28877 "glTexImage1D",
28878 &self.glTexImage1D_p,
28879 target,
28880 level,
28881 internalformat,
28882 width,
28883 border,
28884 format,
28885 type_,
28886 pixels,
28887 );
28888 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28889 {
28890 self.automatic_glGetError("glTexImage1D");
28891 }
28892 out
28893 }
28894 #[doc(hidden)]
28895 pub unsafe fn TexImage1D_load_with_dyn(
28896 &self,
28897 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28898 ) -> bool {
28899 load_dyn_name_atomic_ptr(get_proc_address, b"glTexImage1D\0", &self.glTexImage1D_p)
28900 }
28901 #[inline]
28902 #[doc(hidden)]
28903 pub fn TexImage1D_is_loaded(&self) -> bool {
28904 !self.glTexImage1D_p.load(RELAX).is_null()
28905 }
28906 #[cfg_attr(feature = "inline", inline)]
28915 #[cfg_attr(feature = "inline_always", inline(always))]
28916 pub unsafe fn TexImage2D(
28917 &self,
28918 target: GLenum,
28919 level: GLint,
28920 internalformat: GLint,
28921 width: GLsizei,
28922 height: GLsizei,
28923 border: GLint,
28924 format: GLenum,
28925 type_: GLenum,
28926 pixels: *const c_void,
28927 ) {
28928 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28929 {
28930 trace!("calling gl.TexImage2D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", target, level, internalformat, width, height, border, format, type_, pixels);
28931 }
28932 let out = call_atomic_ptr_9arg(
28933 "glTexImage2D",
28934 &self.glTexImage2D_p,
28935 target,
28936 level,
28937 internalformat,
28938 width,
28939 height,
28940 border,
28941 format,
28942 type_,
28943 pixels,
28944 );
28945 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28946 {
28947 self.automatic_glGetError("glTexImage2D");
28948 }
28949 out
28950 }
28951 #[doc(hidden)]
28952 pub unsafe fn TexImage2D_load_with_dyn(
28953 &self,
28954 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28955 ) -> bool {
28956 load_dyn_name_atomic_ptr(get_proc_address, b"glTexImage2D\0", &self.glTexImage2D_p)
28957 }
28958 #[inline]
28959 #[doc(hidden)]
28960 pub fn TexImage2D_is_loaded(&self) -> bool {
28961 !self.glTexImage2D_p.load(RELAX).is_null()
28962 }
28963 #[cfg_attr(feature = "inline", inline)]
28967 #[cfg_attr(feature = "inline_always", inline(always))]
28968 pub unsafe fn TexImage2DMultisample(
28969 &self,
28970 target: GLenum,
28971 samples: GLsizei,
28972 internalformat: GLenum,
28973 width: GLsizei,
28974 height: GLsizei,
28975 fixedsamplelocations: GLboolean,
28976 ) {
28977 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28978 {
28979 trace!(
28980 "calling gl.TexImage2DMultisample({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?});",
28981 target,
28982 samples,
28983 internalformat,
28984 width,
28985 height,
28986 fixedsamplelocations
28987 );
28988 }
28989 let out = call_atomic_ptr_6arg(
28990 "glTexImage2DMultisample",
28991 &self.glTexImage2DMultisample_p,
28992 target,
28993 samples,
28994 internalformat,
28995 width,
28996 height,
28997 fixedsamplelocations,
28998 );
28999 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29000 {
29001 self.automatic_glGetError("glTexImage2DMultisample");
29002 }
29003 out
29004 }
29005 #[doc(hidden)]
29006 pub unsafe fn TexImage2DMultisample_load_with_dyn(
29007 &self,
29008 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29009 ) -> bool {
29010 load_dyn_name_atomic_ptr(
29011 get_proc_address,
29012 b"glTexImage2DMultisample\0",
29013 &self.glTexImage2DMultisample_p,
29014 )
29015 }
29016 #[inline]
29017 #[doc(hidden)]
29018 pub fn TexImage2DMultisample_is_loaded(&self) -> bool {
29019 !self.glTexImage2DMultisample_p.load(RELAX).is_null()
29020 }
29021 #[cfg_attr(feature = "inline", inline)]
29030 #[cfg_attr(feature = "inline_always", inline(always))]
29031 pub unsafe fn TexImage3D(
29032 &self,
29033 target: GLenum,
29034 level: GLint,
29035 internalformat: GLint,
29036 width: GLsizei,
29037 height: GLsizei,
29038 depth: GLsizei,
29039 border: GLint,
29040 format: GLenum,
29041 type_: GLenum,
29042 pixels: *const c_void,
29043 ) {
29044 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29045 {
29046 trace!("calling gl.TexImage3D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", target, level, internalformat, width, height, depth, border, format, type_, pixels);
29047 }
29048 let out = call_atomic_ptr_10arg(
29049 "glTexImage3D",
29050 &self.glTexImage3D_p,
29051 target,
29052 level,
29053 internalformat,
29054 width,
29055 height,
29056 depth,
29057 border,
29058 format,
29059 type_,
29060 pixels,
29061 );
29062 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29063 {
29064 self.automatic_glGetError("glTexImage3D");
29065 }
29066 out
29067 }
29068 #[doc(hidden)]
29069 pub unsafe fn TexImage3D_load_with_dyn(
29070 &self,
29071 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29072 ) -> bool {
29073 load_dyn_name_atomic_ptr(get_proc_address, b"glTexImage3D\0", &self.glTexImage3D_p)
29074 }
29075 #[inline]
29076 #[doc(hidden)]
29077 pub fn TexImage3D_is_loaded(&self) -> bool {
29078 !self.glTexImage3D_p.load(RELAX).is_null()
29079 }
29080 #[cfg_attr(feature = "inline", inline)]
29084 #[cfg_attr(feature = "inline_always", inline(always))]
29085 pub unsafe fn TexImage3DMultisample(
29086 &self,
29087 target: GLenum,
29088 samples: GLsizei,
29089 internalformat: GLenum,
29090 width: GLsizei,
29091 height: GLsizei,
29092 depth: GLsizei,
29093 fixedsamplelocations: GLboolean,
29094 ) {
29095 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29096 {
29097 trace!(
29098 "calling gl.TexImage3DMultisample({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?});",
29099 target,
29100 samples,
29101 internalformat,
29102 width,
29103 height,
29104 depth,
29105 fixedsamplelocations
29106 );
29107 }
29108 let out = call_atomic_ptr_7arg(
29109 "glTexImage3DMultisample",
29110 &self.glTexImage3DMultisample_p,
29111 target,
29112 samples,
29113 internalformat,
29114 width,
29115 height,
29116 depth,
29117 fixedsamplelocations,
29118 );
29119 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29120 {
29121 self.automatic_glGetError("glTexImage3DMultisample");
29122 }
29123 out
29124 }
29125 #[doc(hidden)]
29126 pub unsafe fn TexImage3DMultisample_load_with_dyn(
29127 &self,
29128 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29129 ) -> bool {
29130 load_dyn_name_atomic_ptr(
29131 get_proc_address,
29132 b"glTexImage3DMultisample\0",
29133 &self.glTexImage3DMultisample_p,
29134 )
29135 }
29136 #[inline]
29137 #[doc(hidden)]
29138 pub fn TexImage3DMultisample_is_loaded(&self) -> bool {
29139 !self.glTexImage3DMultisample_p.load(RELAX).is_null()
29140 }
29141 #[cfg_attr(feature = "inline", inline)]
29146 #[cfg_attr(feature = "inline_always", inline(always))]
29147 pub unsafe fn TexParameterIiv(&self, target: GLenum, pname: GLenum, params: *const GLint) {
29148 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29149 {
29150 trace!(
29151 "calling gl.TexParameterIiv({:#X}, {:#X}, {:p});",
29152 target,
29153 pname,
29154 params
29155 );
29156 }
29157 let out = call_atomic_ptr_3arg(
29158 "glTexParameterIiv",
29159 &self.glTexParameterIiv_p,
29160 target,
29161 pname,
29162 params,
29163 );
29164 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29165 {
29166 self.automatic_glGetError("glTexParameterIiv");
29167 }
29168 out
29169 }
29170 #[doc(hidden)]
29171 pub unsafe fn TexParameterIiv_load_with_dyn(
29172 &self,
29173 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29174 ) -> bool {
29175 load_dyn_name_atomic_ptr(
29176 get_proc_address,
29177 b"glTexParameterIiv\0",
29178 &self.glTexParameterIiv_p,
29179 )
29180 }
29181 #[inline]
29182 #[doc(hidden)]
29183 pub fn TexParameterIiv_is_loaded(&self) -> bool {
29184 !self.glTexParameterIiv_p.load(RELAX).is_null()
29185 }
29186 #[cfg_attr(feature = "inline", inline)]
29191 #[cfg_attr(feature = "inline_always", inline(always))]
29192 pub unsafe fn TexParameterIuiv(
29193 &self,
29194 target: GLenum,
29195 pname: GLenum,
29196 params: *const GLuint,
29197 ) {
29198 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29199 {
29200 trace!(
29201 "calling gl.TexParameterIuiv({:#X}, {:#X}, {:p});",
29202 target,
29203 pname,
29204 params
29205 );
29206 }
29207 let out = call_atomic_ptr_3arg(
29208 "glTexParameterIuiv",
29209 &self.glTexParameterIuiv_p,
29210 target,
29211 pname,
29212 params,
29213 );
29214 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29215 {
29216 self.automatic_glGetError("glTexParameterIuiv");
29217 }
29218 out
29219 }
29220 #[doc(hidden)]
29221 pub unsafe fn TexParameterIuiv_load_with_dyn(
29222 &self,
29223 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29224 ) -> bool {
29225 load_dyn_name_atomic_ptr(
29226 get_proc_address,
29227 b"glTexParameterIuiv\0",
29228 &self.glTexParameterIuiv_p,
29229 )
29230 }
29231 #[inline]
29232 #[doc(hidden)]
29233 pub fn TexParameterIuiv_is_loaded(&self) -> bool {
29234 !self.glTexParameterIuiv_p.load(RELAX).is_null()
29235 }
29236 #[cfg_attr(feature = "inline", inline)]
29241 #[cfg_attr(feature = "inline_always", inline(always))]
29242 pub unsafe fn TexParameterf(&self, target: GLenum, pname: GLenum, param: GLfloat) {
29243 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29244 {
29245 trace!(
29246 "calling gl.TexParameterf({:#X}, {:#X}, {:?});",
29247 target,
29248 pname,
29249 param
29250 );
29251 }
29252 let out = call_atomic_ptr_3arg(
29253 "glTexParameterf",
29254 &self.glTexParameterf_p,
29255 target,
29256 pname,
29257 param,
29258 );
29259 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29260 {
29261 self.automatic_glGetError("glTexParameterf");
29262 }
29263 out
29264 }
29265 #[doc(hidden)]
29266 pub unsafe fn TexParameterf_load_with_dyn(
29267 &self,
29268 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29269 ) -> bool {
29270 load_dyn_name_atomic_ptr(
29271 get_proc_address,
29272 b"glTexParameterf\0",
29273 &self.glTexParameterf_p,
29274 )
29275 }
29276 #[inline]
29277 #[doc(hidden)]
29278 pub fn TexParameterf_is_loaded(&self) -> bool {
29279 !self.glTexParameterf_p.load(RELAX).is_null()
29280 }
29281 #[cfg_attr(feature = "inline", inline)]
29287 #[cfg_attr(feature = "inline_always", inline(always))]
29288 pub unsafe fn TexParameterfv(&self, target: GLenum, pname: GLenum, params: *const GLfloat) {
29289 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29290 {
29291 trace!(
29292 "calling gl.TexParameterfv({:#X}, {:#X}, {:p});",
29293 target,
29294 pname,
29295 params
29296 );
29297 }
29298 let out = call_atomic_ptr_3arg(
29299 "glTexParameterfv",
29300 &self.glTexParameterfv_p,
29301 target,
29302 pname,
29303 params,
29304 );
29305 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29306 {
29307 self.automatic_glGetError("glTexParameterfv");
29308 }
29309 out
29310 }
29311 #[doc(hidden)]
29312 pub unsafe fn TexParameterfv_load_with_dyn(
29313 &self,
29314 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29315 ) -> bool {
29316 load_dyn_name_atomic_ptr(
29317 get_proc_address,
29318 b"glTexParameterfv\0",
29319 &self.glTexParameterfv_p,
29320 )
29321 }
29322 #[inline]
29323 #[doc(hidden)]
29324 pub fn TexParameterfv_is_loaded(&self) -> bool {
29325 !self.glTexParameterfv_p.load(RELAX).is_null()
29326 }
29327 #[cfg_attr(feature = "inline", inline)]
29332 #[cfg_attr(feature = "inline_always", inline(always))]
29333 pub unsafe fn TexParameteri(&self, target: GLenum, pname: GLenum, param: GLint) {
29334 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29335 {
29336 trace!(
29337 "calling gl.TexParameteri({:#X}, {:#X}, {:?});",
29338 target,
29339 pname,
29340 param
29341 );
29342 }
29343 let out = call_atomic_ptr_3arg(
29344 "glTexParameteri",
29345 &self.glTexParameteri_p,
29346 target,
29347 pname,
29348 param,
29349 );
29350 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29351 {
29352 self.automatic_glGetError("glTexParameteri");
29353 }
29354 out
29355 }
29356 #[doc(hidden)]
29357 pub unsafe fn TexParameteri_load_with_dyn(
29358 &self,
29359 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29360 ) -> bool {
29361 load_dyn_name_atomic_ptr(
29362 get_proc_address,
29363 b"glTexParameteri\0",
29364 &self.glTexParameteri_p,
29365 )
29366 }
29367 #[inline]
29368 #[doc(hidden)]
29369 pub fn TexParameteri_is_loaded(&self) -> bool {
29370 !self.glTexParameteri_p.load(RELAX).is_null()
29371 }
29372 #[cfg_attr(feature = "inline", inline)]
29378 #[cfg_attr(feature = "inline_always", inline(always))]
29379 pub unsafe fn TexParameteriv(&self, target: GLenum, pname: GLenum, params: *const GLint) {
29380 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29381 {
29382 trace!(
29383 "calling gl.TexParameteriv({:#X}, {:#X}, {:p});",
29384 target,
29385 pname,
29386 params
29387 );
29388 }
29389 let out = call_atomic_ptr_3arg(
29390 "glTexParameteriv",
29391 &self.glTexParameteriv_p,
29392 target,
29393 pname,
29394 params,
29395 );
29396 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29397 {
29398 self.automatic_glGetError("glTexParameteriv");
29399 }
29400 out
29401 }
29402 #[doc(hidden)]
29403 pub unsafe fn TexParameteriv_load_with_dyn(
29404 &self,
29405 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29406 ) -> bool {
29407 load_dyn_name_atomic_ptr(
29408 get_proc_address,
29409 b"glTexParameteriv\0",
29410 &self.glTexParameteriv_p,
29411 )
29412 }
29413 #[inline]
29414 #[doc(hidden)]
29415 pub fn TexParameteriv_is_loaded(&self) -> bool {
29416 !self.glTexParameteriv_p.load(RELAX).is_null()
29417 }
29418 #[cfg_attr(feature = "inline", inline)]
29422 #[cfg_attr(feature = "inline_always", inline(always))]
29423 pub unsafe fn TexStorage1D(
29424 &self,
29425 target: GLenum,
29426 levels: GLsizei,
29427 internalformat: GLenum,
29428 width: GLsizei,
29429 ) {
29430 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29431 {
29432 trace!(
29433 "calling gl.TexStorage1D({:#X}, {:?}, {:#X}, {:?});",
29434 target,
29435 levels,
29436 internalformat,
29437 width
29438 );
29439 }
29440 let out = call_atomic_ptr_4arg(
29441 "glTexStorage1D",
29442 &self.glTexStorage1D_p,
29443 target,
29444 levels,
29445 internalformat,
29446 width,
29447 );
29448 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29449 {
29450 self.automatic_glGetError("glTexStorage1D");
29451 }
29452 out
29453 }
29454 #[doc(hidden)]
29455 pub unsafe fn TexStorage1D_load_with_dyn(
29456 &self,
29457 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29458 ) -> bool {
29459 load_dyn_name_atomic_ptr(
29460 get_proc_address,
29461 b"glTexStorage1D\0",
29462 &self.glTexStorage1D_p,
29463 )
29464 }
29465 #[inline]
29466 #[doc(hidden)]
29467 pub fn TexStorage1D_is_loaded(&self) -> bool {
29468 !self.glTexStorage1D_p.load(RELAX).is_null()
29469 }
29470 #[cfg_attr(feature = "inline", inline)]
29474 #[cfg_attr(feature = "inline_always", inline(always))]
29475 pub unsafe fn TexStorage2D(
29476 &self,
29477 target: GLenum,
29478 levels: GLsizei,
29479 internalformat: GLenum,
29480 width: GLsizei,
29481 height: GLsizei,
29482 ) {
29483 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29484 {
29485 trace!(
29486 "calling gl.TexStorage2D({:#X}, {:?}, {:#X}, {:?}, {:?});",
29487 target,
29488 levels,
29489 internalformat,
29490 width,
29491 height
29492 );
29493 }
29494 let out = call_atomic_ptr_5arg(
29495 "glTexStorage2D",
29496 &self.glTexStorage2D_p,
29497 target,
29498 levels,
29499 internalformat,
29500 width,
29501 height,
29502 );
29503 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29504 {
29505 self.automatic_glGetError("glTexStorage2D");
29506 }
29507 out
29508 }
29509 #[doc(hidden)]
29510 pub unsafe fn TexStorage2D_load_with_dyn(
29511 &self,
29512 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29513 ) -> bool {
29514 load_dyn_name_atomic_ptr(
29515 get_proc_address,
29516 b"glTexStorage2D\0",
29517 &self.glTexStorage2D_p,
29518 )
29519 }
29520 #[inline]
29521 #[doc(hidden)]
29522 pub fn TexStorage2D_is_loaded(&self) -> bool {
29523 !self.glTexStorage2D_p.load(RELAX).is_null()
29524 }
29525 #[cfg_attr(feature = "inline", inline)]
29529 #[cfg_attr(feature = "inline_always", inline(always))]
29530 pub unsafe fn TexStorage2DMultisample(
29531 &self,
29532 target: GLenum,
29533 samples: GLsizei,
29534 internalformat: GLenum,
29535 width: GLsizei,
29536 height: GLsizei,
29537 fixedsamplelocations: GLboolean,
29538 ) {
29539 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29540 {
29541 trace!(
29542 "calling gl.TexStorage2DMultisample({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?});",
29543 target,
29544 samples,
29545 internalformat,
29546 width,
29547 height,
29548 fixedsamplelocations
29549 );
29550 }
29551 let out = call_atomic_ptr_6arg(
29552 "glTexStorage2DMultisample",
29553 &self.glTexStorage2DMultisample_p,
29554 target,
29555 samples,
29556 internalformat,
29557 width,
29558 height,
29559 fixedsamplelocations,
29560 );
29561 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29562 {
29563 self.automatic_glGetError("glTexStorage2DMultisample");
29564 }
29565 out
29566 }
29567 #[doc(hidden)]
29568 pub unsafe fn TexStorage2DMultisample_load_with_dyn(
29569 &self,
29570 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29571 ) -> bool {
29572 load_dyn_name_atomic_ptr(
29573 get_proc_address,
29574 b"glTexStorage2DMultisample\0",
29575 &self.glTexStorage2DMultisample_p,
29576 )
29577 }
29578 #[inline]
29579 #[doc(hidden)]
29580 pub fn TexStorage2DMultisample_is_loaded(&self) -> bool {
29581 !self.glTexStorage2DMultisample_p.load(RELAX).is_null()
29582 }
29583 #[cfg_attr(feature = "inline", inline)]
29587 #[cfg_attr(feature = "inline_always", inline(always))]
29588 pub unsafe fn TexStorage3D(
29589 &self,
29590 target: GLenum,
29591 levels: GLsizei,
29592 internalformat: GLenum,
29593 width: GLsizei,
29594 height: GLsizei,
29595 depth: GLsizei,
29596 ) {
29597 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29598 {
29599 trace!(
29600 "calling gl.TexStorage3D({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?});",
29601 target,
29602 levels,
29603 internalformat,
29604 width,
29605 height,
29606 depth
29607 );
29608 }
29609 let out = call_atomic_ptr_6arg(
29610 "glTexStorage3D",
29611 &self.glTexStorage3D_p,
29612 target,
29613 levels,
29614 internalformat,
29615 width,
29616 height,
29617 depth,
29618 );
29619 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29620 {
29621 self.automatic_glGetError("glTexStorage3D");
29622 }
29623 out
29624 }
29625 #[doc(hidden)]
29626 pub unsafe fn TexStorage3D_load_with_dyn(
29627 &self,
29628 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29629 ) -> bool {
29630 load_dyn_name_atomic_ptr(
29631 get_proc_address,
29632 b"glTexStorage3D\0",
29633 &self.glTexStorage3D_p,
29634 )
29635 }
29636 #[inline]
29637 #[doc(hidden)]
29638 pub fn TexStorage3D_is_loaded(&self) -> bool {
29639 !self.glTexStorage3D_p.load(RELAX).is_null()
29640 }
29641 #[cfg_attr(feature = "inline", inline)]
29645 #[cfg_attr(feature = "inline_always", inline(always))]
29646 pub unsafe fn TexStorage3DMultisample(
29647 &self,
29648 target: GLenum,
29649 samples: GLsizei,
29650 internalformat: GLenum,
29651 width: GLsizei,
29652 height: GLsizei,
29653 depth: GLsizei,
29654 fixedsamplelocations: GLboolean,
29655 ) {
29656 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29657 {
29658 trace!("calling gl.TexStorage3DMultisample({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?});", target, samples, internalformat, width, height, depth, fixedsamplelocations);
29659 }
29660 let out = call_atomic_ptr_7arg(
29661 "glTexStorage3DMultisample",
29662 &self.glTexStorage3DMultisample_p,
29663 target,
29664 samples,
29665 internalformat,
29666 width,
29667 height,
29668 depth,
29669 fixedsamplelocations,
29670 );
29671 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29672 {
29673 self.automatic_glGetError("glTexStorage3DMultisample");
29674 }
29675 out
29676 }
29677 #[doc(hidden)]
29678 pub unsafe fn TexStorage3DMultisample_load_with_dyn(
29679 &self,
29680 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29681 ) -> bool {
29682 load_dyn_name_atomic_ptr(
29683 get_proc_address,
29684 b"glTexStorage3DMultisample\0",
29685 &self.glTexStorage3DMultisample_p,
29686 )
29687 }
29688 #[inline]
29689 #[doc(hidden)]
29690 pub fn TexStorage3DMultisample_is_loaded(&self) -> bool {
29691 !self.glTexStorage3DMultisample_p.load(RELAX).is_null()
29692 }
29693 #[cfg_attr(feature = "inline", inline)]
29701 #[cfg_attr(feature = "inline_always", inline(always))]
29702 pub unsafe fn TexSubImage1D(
29703 &self,
29704 target: GLenum,
29705 level: GLint,
29706 xoffset: GLint,
29707 width: GLsizei,
29708 format: GLenum,
29709 type_: GLenum,
29710 pixels: *const c_void,
29711 ) {
29712 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29713 {
29714 trace!(
29715 "calling gl.TexSubImage1D({:#X}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});",
29716 target,
29717 level,
29718 xoffset,
29719 width,
29720 format,
29721 type_,
29722 pixels
29723 );
29724 }
29725 let out = call_atomic_ptr_7arg(
29726 "glTexSubImage1D",
29727 &self.glTexSubImage1D_p,
29728 target,
29729 level,
29730 xoffset,
29731 width,
29732 format,
29733 type_,
29734 pixels,
29735 );
29736 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29737 {
29738 self.automatic_glGetError("glTexSubImage1D");
29739 }
29740 out
29741 }
29742 #[doc(hidden)]
29743 pub unsafe fn TexSubImage1D_load_with_dyn(
29744 &self,
29745 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29746 ) -> bool {
29747 load_dyn_name_atomic_ptr(
29748 get_proc_address,
29749 b"glTexSubImage1D\0",
29750 &self.glTexSubImage1D_p,
29751 )
29752 }
29753 #[inline]
29754 #[doc(hidden)]
29755 pub fn TexSubImage1D_is_loaded(&self) -> bool {
29756 !self.glTexSubImage1D_p.load(RELAX).is_null()
29757 }
29758 #[cfg_attr(feature = "inline", inline)]
29767 #[cfg_attr(feature = "inline_always", inline(always))]
29768 pub unsafe fn TexSubImage2D(
29769 &self,
29770 target: GLenum,
29771 level: GLint,
29772 xoffset: GLint,
29773 yoffset: GLint,
29774 width: GLsizei,
29775 height: GLsizei,
29776 format: GLenum,
29777 type_: GLenum,
29778 pixels: *const c_void,
29779 ) {
29780 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29781 {
29782 trace!("calling gl.TexSubImage2D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", target, level, xoffset, yoffset, width, height, format, type_, pixels);
29783 }
29784 let out = call_atomic_ptr_9arg(
29785 "glTexSubImage2D",
29786 &self.glTexSubImage2D_p,
29787 target,
29788 level,
29789 xoffset,
29790 yoffset,
29791 width,
29792 height,
29793 format,
29794 type_,
29795 pixels,
29796 );
29797 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29798 {
29799 self.automatic_glGetError("glTexSubImage2D");
29800 }
29801 out
29802 }
29803 #[doc(hidden)]
29804 pub unsafe fn TexSubImage2D_load_with_dyn(
29805 &self,
29806 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29807 ) -> bool {
29808 load_dyn_name_atomic_ptr(
29809 get_proc_address,
29810 b"glTexSubImage2D\0",
29811 &self.glTexSubImage2D_p,
29812 )
29813 }
29814 #[inline]
29815 #[doc(hidden)]
29816 pub fn TexSubImage2D_is_loaded(&self) -> bool {
29817 !self.glTexSubImage2D_p.load(RELAX).is_null()
29818 }
29819 #[cfg_attr(feature = "inline", inline)]
29829 #[cfg_attr(feature = "inline_always", inline(always))]
29830 pub unsafe fn TexSubImage3D(
29831 &self,
29832 target: GLenum,
29833 level: GLint,
29834 xoffset: GLint,
29835 yoffset: GLint,
29836 zoffset: GLint,
29837 width: GLsizei,
29838 height: GLsizei,
29839 depth: GLsizei,
29840 format: GLenum,
29841 type_: GLenum,
29842 pixels: *const c_void,
29843 ) {
29844 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29845 {
29846 trace!("calling gl.TexSubImage3D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", target, level, xoffset, yoffset, zoffset, width, height, depth, format, type_, pixels);
29847 }
29848 let out = call_atomic_ptr_11arg(
29849 "glTexSubImage3D",
29850 &self.glTexSubImage3D_p,
29851 target,
29852 level,
29853 xoffset,
29854 yoffset,
29855 zoffset,
29856 width,
29857 height,
29858 depth,
29859 format,
29860 type_,
29861 pixels,
29862 );
29863 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29864 {
29865 self.automatic_glGetError("glTexSubImage3D");
29866 }
29867 out
29868 }
29869 #[doc(hidden)]
29870 pub unsafe fn TexSubImage3D_load_with_dyn(
29871 &self,
29872 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29873 ) -> bool {
29874 load_dyn_name_atomic_ptr(
29875 get_proc_address,
29876 b"glTexSubImage3D\0",
29877 &self.glTexSubImage3D_p,
29878 )
29879 }
29880 #[inline]
29881 #[doc(hidden)]
29882 pub fn TexSubImage3D_is_loaded(&self) -> bool {
29883 !self.glTexSubImage3D_p.load(RELAX).is_null()
29884 }
29885 #[cfg_attr(feature = "inline", inline)]
29887 #[cfg_attr(feature = "inline_always", inline(always))]
29888 pub unsafe fn TextureBarrier(&self) {
29889 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29890 {
29891 trace!("calling gl.TextureBarrier();",);
29892 }
29893 let out = call_atomic_ptr_0arg("glTextureBarrier", &self.glTextureBarrier_p);
29894 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29895 {
29896 self.automatic_glGetError("glTextureBarrier");
29897 }
29898 out
29899 }
29900 #[doc(hidden)]
29901 pub unsafe fn TextureBarrier_load_with_dyn(
29902 &self,
29903 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29904 ) -> bool {
29905 load_dyn_name_atomic_ptr(
29906 get_proc_address,
29907 b"glTextureBarrier\0",
29908 &self.glTextureBarrier_p,
29909 )
29910 }
29911 #[inline]
29912 #[doc(hidden)]
29913 pub fn TextureBarrier_is_loaded(&self) -> bool {
29914 !self.glTextureBarrier_p.load(RELAX).is_null()
29915 }
29916 #[cfg_attr(feature = "inline", inline)]
29919 #[cfg_attr(feature = "inline_always", inline(always))]
29920 pub unsafe fn TextureBuffer(
29921 &self,
29922 texture: GLuint,
29923 internalformat: GLenum,
29924 buffer: GLuint,
29925 ) {
29926 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29927 {
29928 trace!(
29929 "calling gl.TextureBuffer({:?}, {:#X}, {:?});",
29930 texture,
29931 internalformat,
29932 buffer
29933 );
29934 }
29935 let out = call_atomic_ptr_3arg(
29936 "glTextureBuffer",
29937 &self.glTextureBuffer_p,
29938 texture,
29939 internalformat,
29940 buffer,
29941 );
29942 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29943 {
29944 self.automatic_glGetError("glTextureBuffer");
29945 }
29946 out
29947 }
29948 #[doc(hidden)]
29949 pub unsafe fn TextureBuffer_load_with_dyn(
29950 &self,
29951 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29952 ) -> bool {
29953 load_dyn_name_atomic_ptr(
29954 get_proc_address,
29955 b"glTextureBuffer\0",
29956 &self.glTextureBuffer_p,
29957 )
29958 }
29959 #[inline]
29960 #[doc(hidden)]
29961 pub fn TextureBuffer_is_loaded(&self) -> bool {
29962 !self.glTextureBuffer_p.load(RELAX).is_null()
29963 }
29964 #[cfg_attr(feature = "inline", inline)]
29968 #[cfg_attr(feature = "inline_always", inline(always))]
29969 pub unsafe fn TextureBufferRange(
29970 &self,
29971 texture: GLuint,
29972 internalformat: GLenum,
29973 buffer: GLuint,
29974 offset: GLintptr,
29975 size: GLsizeiptr,
29976 ) {
29977 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29978 {
29979 trace!(
29980 "calling gl.TextureBufferRange({:?}, {:#X}, {:?}, {:?}, {:?});",
29981 texture,
29982 internalformat,
29983 buffer,
29984 offset,
29985 size
29986 );
29987 }
29988 let out = call_atomic_ptr_5arg(
29989 "glTextureBufferRange",
29990 &self.glTextureBufferRange_p,
29991 texture,
29992 internalformat,
29993 buffer,
29994 offset,
29995 size,
29996 );
29997 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29998 {
29999 self.automatic_glGetError("glTextureBufferRange");
30000 }
30001 out
30002 }
30003 #[doc(hidden)]
30004 pub unsafe fn TextureBufferRange_load_with_dyn(
30005 &self,
30006 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30007 ) -> bool {
30008 load_dyn_name_atomic_ptr(
30009 get_proc_address,
30010 b"glTextureBufferRange\0",
30011 &self.glTextureBufferRange_p,
30012 )
30013 }
30014 #[inline]
30015 #[doc(hidden)]
30016 pub fn TextureBufferRange_is_loaded(&self) -> bool {
30017 !self.glTextureBufferRange_p.load(RELAX).is_null()
30018 }
30019 #[cfg_attr(feature = "inline", inline)]
30022 #[cfg_attr(feature = "inline_always", inline(always))]
30023 pub unsafe fn TextureParameterIiv(
30024 &self,
30025 texture: GLuint,
30026 pname: GLenum,
30027 params: *const GLint,
30028 ) {
30029 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30030 {
30031 trace!(
30032 "calling gl.TextureParameterIiv({:?}, {:#X}, {:p});",
30033 texture,
30034 pname,
30035 params
30036 );
30037 }
30038 let out = call_atomic_ptr_3arg(
30039 "glTextureParameterIiv",
30040 &self.glTextureParameterIiv_p,
30041 texture,
30042 pname,
30043 params,
30044 );
30045 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30046 {
30047 self.automatic_glGetError("glTextureParameterIiv");
30048 }
30049 out
30050 }
30051 #[doc(hidden)]
30052 pub unsafe fn TextureParameterIiv_load_with_dyn(
30053 &self,
30054 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30055 ) -> bool {
30056 load_dyn_name_atomic_ptr(
30057 get_proc_address,
30058 b"glTextureParameterIiv\0",
30059 &self.glTextureParameterIiv_p,
30060 )
30061 }
30062 #[inline]
30063 #[doc(hidden)]
30064 pub fn TextureParameterIiv_is_loaded(&self) -> bool {
30065 !self.glTextureParameterIiv_p.load(RELAX).is_null()
30066 }
30067 #[cfg_attr(feature = "inline", inline)]
30070 #[cfg_attr(feature = "inline_always", inline(always))]
30071 pub unsafe fn TextureParameterIuiv(
30072 &self,
30073 texture: GLuint,
30074 pname: GLenum,
30075 params: *const GLuint,
30076 ) {
30077 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30078 {
30079 trace!(
30080 "calling gl.TextureParameterIuiv({:?}, {:#X}, {:p});",
30081 texture,
30082 pname,
30083 params
30084 );
30085 }
30086 let out = call_atomic_ptr_3arg(
30087 "glTextureParameterIuiv",
30088 &self.glTextureParameterIuiv_p,
30089 texture,
30090 pname,
30091 params,
30092 );
30093 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30094 {
30095 self.automatic_glGetError("glTextureParameterIuiv");
30096 }
30097 out
30098 }
30099 #[doc(hidden)]
30100 pub unsafe fn TextureParameterIuiv_load_with_dyn(
30101 &self,
30102 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30103 ) -> bool {
30104 load_dyn_name_atomic_ptr(
30105 get_proc_address,
30106 b"glTextureParameterIuiv\0",
30107 &self.glTextureParameterIuiv_p,
30108 )
30109 }
30110 #[inline]
30111 #[doc(hidden)]
30112 pub fn TextureParameterIuiv_is_loaded(&self) -> bool {
30113 !self.glTextureParameterIuiv_p.load(RELAX).is_null()
30114 }
30115 #[cfg_attr(feature = "inline", inline)]
30118 #[cfg_attr(feature = "inline_always", inline(always))]
30119 pub unsafe fn TextureParameterf(&self, texture: GLuint, pname: GLenum, param: GLfloat) {
30120 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30121 {
30122 trace!(
30123 "calling gl.TextureParameterf({:?}, {:#X}, {:?});",
30124 texture,
30125 pname,
30126 param
30127 );
30128 }
30129 let out = call_atomic_ptr_3arg(
30130 "glTextureParameterf",
30131 &self.glTextureParameterf_p,
30132 texture,
30133 pname,
30134 param,
30135 );
30136 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30137 {
30138 self.automatic_glGetError("glTextureParameterf");
30139 }
30140 out
30141 }
30142 #[doc(hidden)]
30143 pub unsafe fn TextureParameterf_load_with_dyn(
30144 &self,
30145 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30146 ) -> bool {
30147 load_dyn_name_atomic_ptr(
30148 get_proc_address,
30149 b"glTextureParameterf\0",
30150 &self.glTextureParameterf_p,
30151 )
30152 }
30153 #[inline]
30154 #[doc(hidden)]
30155 pub fn TextureParameterf_is_loaded(&self) -> bool {
30156 !self.glTextureParameterf_p.load(RELAX).is_null()
30157 }
30158 #[cfg_attr(feature = "inline", inline)]
30161 #[cfg_attr(feature = "inline_always", inline(always))]
30162 pub unsafe fn TextureParameterfv(
30163 &self,
30164 texture: GLuint,
30165 pname: GLenum,
30166 param: *const GLfloat,
30167 ) {
30168 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30169 {
30170 trace!(
30171 "calling gl.TextureParameterfv({:?}, {:#X}, {:p});",
30172 texture,
30173 pname,
30174 param
30175 );
30176 }
30177 let out = call_atomic_ptr_3arg(
30178 "glTextureParameterfv",
30179 &self.glTextureParameterfv_p,
30180 texture,
30181 pname,
30182 param,
30183 );
30184 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30185 {
30186 self.automatic_glGetError("glTextureParameterfv");
30187 }
30188 out
30189 }
30190 #[doc(hidden)]
30191 pub unsafe fn TextureParameterfv_load_with_dyn(
30192 &self,
30193 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30194 ) -> bool {
30195 load_dyn_name_atomic_ptr(
30196 get_proc_address,
30197 b"glTextureParameterfv\0",
30198 &self.glTextureParameterfv_p,
30199 )
30200 }
30201 #[inline]
30202 #[doc(hidden)]
30203 pub fn TextureParameterfv_is_loaded(&self) -> bool {
30204 !self.glTextureParameterfv_p.load(RELAX).is_null()
30205 }
30206 #[cfg_attr(feature = "inline", inline)]
30209 #[cfg_attr(feature = "inline_always", inline(always))]
30210 pub unsafe fn TextureParameteri(&self, texture: GLuint, pname: GLenum, param: GLint) {
30211 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30212 {
30213 trace!(
30214 "calling gl.TextureParameteri({:?}, {:#X}, {:?});",
30215 texture,
30216 pname,
30217 param
30218 );
30219 }
30220 let out = call_atomic_ptr_3arg(
30221 "glTextureParameteri",
30222 &self.glTextureParameteri_p,
30223 texture,
30224 pname,
30225 param,
30226 );
30227 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30228 {
30229 self.automatic_glGetError("glTextureParameteri");
30230 }
30231 out
30232 }
30233 #[doc(hidden)]
30234 pub unsafe fn TextureParameteri_load_with_dyn(
30235 &self,
30236 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30237 ) -> bool {
30238 load_dyn_name_atomic_ptr(
30239 get_proc_address,
30240 b"glTextureParameteri\0",
30241 &self.glTextureParameteri_p,
30242 )
30243 }
30244 #[inline]
30245 #[doc(hidden)]
30246 pub fn TextureParameteri_is_loaded(&self) -> bool {
30247 !self.glTextureParameteri_p.load(RELAX).is_null()
30248 }
30249 #[cfg_attr(feature = "inline", inline)]
30252 #[cfg_attr(feature = "inline_always", inline(always))]
30253 pub unsafe fn TextureParameteriv(
30254 &self,
30255 texture: GLuint,
30256 pname: GLenum,
30257 param: *const GLint,
30258 ) {
30259 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30260 {
30261 trace!(
30262 "calling gl.TextureParameteriv({:?}, {:#X}, {:p});",
30263 texture,
30264 pname,
30265 param
30266 );
30267 }
30268 let out = call_atomic_ptr_3arg(
30269 "glTextureParameteriv",
30270 &self.glTextureParameteriv_p,
30271 texture,
30272 pname,
30273 param,
30274 );
30275 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30276 {
30277 self.automatic_glGetError("glTextureParameteriv");
30278 }
30279 out
30280 }
30281 #[doc(hidden)]
30282 pub unsafe fn TextureParameteriv_load_with_dyn(
30283 &self,
30284 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30285 ) -> bool {
30286 load_dyn_name_atomic_ptr(
30287 get_proc_address,
30288 b"glTextureParameteriv\0",
30289 &self.glTextureParameteriv_p,
30290 )
30291 }
30292 #[inline]
30293 #[doc(hidden)]
30294 pub fn TextureParameteriv_is_loaded(&self) -> bool {
30295 !self.glTextureParameteriv_p.load(RELAX).is_null()
30296 }
30297 #[cfg_attr(feature = "inline", inline)]
30300 #[cfg_attr(feature = "inline_always", inline(always))]
30301 pub unsafe fn TextureStorage1D(
30302 &self,
30303 texture: GLuint,
30304 levels: GLsizei,
30305 internalformat: GLenum,
30306 width: GLsizei,
30307 ) {
30308 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30309 {
30310 trace!(
30311 "calling gl.TextureStorage1D({:?}, {:?}, {:#X}, {:?});",
30312 texture,
30313 levels,
30314 internalformat,
30315 width
30316 );
30317 }
30318 let out = call_atomic_ptr_4arg(
30319 "glTextureStorage1D",
30320 &self.glTextureStorage1D_p,
30321 texture,
30322 levels,
30323 internalformat,
30324 width,
30325 );
30326 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30327 {
30328 self.automatic_glGetError("glTextureStorage1D");
30329 }
30330 out
30331 }
30332 #[doc(hidden)]
30333 pub unsafe fn TextureStorage1D_load_with_dyn(
30334 &self,
30335 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30336 ) -> bool {
30337 load_dyn_name_atomic_ptr(
30338 get_proc_address,
30339 b"glTextureStorage1D\0",
30340 &self.glTextureStorage1D_p,
30341 )
30342 }
30343 #[inline]
30344 #[doc(hidden)]
30345 pub fn TextureStorage1D_is_loaded(&self) -> bool {
30346 !self.glTextureStorage1D_p.load(RELAX).is_null()
30347 }
30348 #[cfg_attr(feature = "inline", inline)]
30351 #[cfg_attr(feature = "inline_always", inline(always))]
30352 pub unsafe fn TextureStorage2D(
30353 &self,
30354 texture: GLuint,
30355 levels: GLsizei,
30356 internalformat: GLenum,
30357 width: GLsizei,
30358 height: GLsizei,
30359 ) {
30360 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30361 {
30362 trace!(
30363 "calling gl.TextureStorage2D({:?}, {:?}, {:#X}, {:?}, {:?});",
30364 texture,
30365 levels,
30366 internalformat,
30367 width,
30368 height
30369 );
30370 }
30371 let out = call_atomic_ptr_5arg(
30372 "glTextureStorage2D",
30373 &self.glTextureStorage2D_p,
30374 texture,
30375 levels,
30376 internalformat,
30377 width,
30378 height,
30379 );
30380 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30381 {
30382 self.automatic_glGetError("glTextureStorage2D");
30383 }
30384 out
30385 }
30386 #[doc(hidden)]
30387 pub unsafe fn TextureStorage2D_load_with_dyn(
30388 &self,
30389 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30390 ) -> bool {
30391 load_dyn_name_atomic_ptr(
30392 get_proc_address,
30393 b"glTextureStorage2D\0",
30394 &self.glTextureStorage2D_p,
30395 )
30396 }
30397 #[inline]
30398 #[doc(hidden)]
30399 pub fn TextureStorage2D_is_loaded(&self) -> bool {
30400 !self.glTextureStorage2D_p.load(RELAX).is_null()
30401 }
30402 #[cfg_attr(feature = "inline", inline)]
30405 #[cfg_attr(feature = "inline_always", inline(always))]
30406 pub unsafe fn TextureStorage2DMultisample(
30407 &self,
30408 texture: GLuint,
30409 samples: GLsizei,
30410 internalformat: GLenum,
30411 width: GLsizei,
30412 height: GLsizei,
30413 fixedsamplelocations: GLboolean,
30414 ) {
30415 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30416 {
30417 trace!(
30418 "calling gl.TextureStorage2DMultisample({:?}, {:?}, {:#X}, {:?}, {:?}, {:?});",
30419 texture,
30420 samples,
30421 internalformat,
30422 width,
30423 height,
30424 fixedsamplelocations
30425 );
30426 }
30427 let out = call_atomic_ptr_6arg(
30428 "glTextureStorage2DMultisample",
30429 &self.glTextureStorage2DMultisample_p,
30430 texture,
30431 samples,
30432 internalformat,
30433 width,
30434 height,
30435 fixedsamplelocations,
30436 );
30437 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30438 {
30439 self.automatic_glGetError("glTextureStorage2DMultisample");
30440 }
30441 out
30442 }
30443 #[doc(hidden)]
30444 pub unsafe fn TextureStorage2DMultisample_load_with_dyn(
30445 &self,
30446 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30447 ) -> bool {
30448 load_dyn_name_atomic_ptr(
30449 get_proc_address,
30450 b"glTextureStorage2DMultisample\0",
30451 &self.glTextureStorage2DMultisample_p,
30452 )
30453 }
30454 #[inline]
30455 #[doc(hidden)]
30456 pub fn TextureStorage2DMultisample_is_loaded(&self) -> bool {
30457 !self.glTextureStorage2DMultisample_p.load(RELAX).is_null()
30458 }
30459 #[cfg_attr(feature = "inline", inline)]
30462 #[cfg_attr(feature = "inline_always", inline(always))]
30463 pub unsafe fn TextureStorage3D(
30464 &self,
30465 texture: GLuint,
30466 levels: GLsizei,
30467 internalformat: GLenum,
30468 width: GLsizei,
30469 height: GLsizei,
30470 depth: GLsizei,
30471 ) {
30472 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30473 {
30474 trace!(
30475 "calling gl.TextureStorage3D({:?}, {:?}, {:#X}, {:?}, {:?}, {:?});",
30476 texture,
30477 levels,
30478 internalformat,
30479 width,
30480 height,
30481 depth
30482 );
30483 }
30484 let out = call_atomic_ptr_6arg(
30485 "glTextureStorage3D",
30486 &self.glTextureStorage3D_p,
30487 texture,
30488 levels,
30489 internalformat,
30490 width,
30491 height,
30492 depth,
30493 );
30494 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30495 {
30496 self.automatic_glGetError("glTextureStorage3D");
30497 }
30498 out
30499 }
30500 #[doc(hidden)]
30501 pub unsafe fn TextureStorage3D_load_with_dyn(
30502 &self,
30503 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30504 ) -> bool {
30505 load_dyn_name_atomic_ptr(
30506 get_proc_address,
30507 b"glTextureStorage3D\0",
30508 &self.glTextureStorage3D_p,
30509 )
30510 }
30511 #[inline]
30512 #[doc(hidden)]
30513 pub fn TextureStorage3D_is_loaded(&self) -> bool {
30514 !self.glTextureStorage3D_p.load(RELAX).is_null()
30515 }
30516 #[cfg_attr(feature = "inline", inline)]
30519 #[cfg_attr(feature = "inline_always", inline(always))]
30520 pub unsafe fn TextureStorage3DMultisample(
30521 &self,
30522 texture: GLuint,
30523 samples: GLsizei,
30524 internalformat: GLenum,
30525 width: GLsizei,
30526 height: GLsizei,
30527 depth: GLsizei,
30528 fixedsamplelocations: GLboolean,
30529 ) {
30530 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30531 {
30532 trace!("calling gl.TextureStorage3DMultisample({:?}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?});", texture, samples, internalformat, width, height, depth, fixedsamplelocations);
30533 }
30534 let out = call_atomic_ptr_7arg(
30535 "glTextureStorage3DMultisample",
30536 &self.glTextureStorage3DMultisample_p,
30537 texture,
30538 samples,
30539 internalformat,
30540 width,
30541 height,
30542 depth,
30543 fixedsamplelocations,
30544 );
30545 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30546 {
30547 self.automatic_glGetError("glTextureStorage3DMultisample");
30548 }
30549 out
30550 }
30551 #[doc(hidden)]
30552 pub unsafe fn TextureStorage3DMultisample_load_with_dyn(
30553 &self,
30554 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30555 ) -> bool {
30556 load_dyn_name_atomic_ptr(
30557 get_proc_address,
30558 b"glTextureStorage3DMultisample\0",
30559 &self.glTextureStorage3DMultisample_p,
30560 )
30561 }
30562 #[inline]
30563 #[doc(hidden)]
30564 pub fn TextureStorage3DMultisample_is_loaded(&self) -> bool {
30565 !self.glTextureStorage3DMultisample_p.load(RELAX).is_null()
30566 }
30567 #[cfg_attr(feature = "inline", inline)]
30571 #[cfg_attr(feature = "inline_always", inline(always))]
30572 pub unsafe fn TextureSubImage1D(
30573 &self,
30574 texture: GLuint,
30575 level: GLint,
30576 xoffset: GLint,
30577 width: GLsizei,
30578 format: GLenum,
30579 type_: GLenum,
30580 pixels: *const c_void,
30581 ) {
30582 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30583 {
30584 trace!(
30585 "calling gl.TextureSubImage1D({:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});",
30586 texture,
30587 level,
30588 xoffset,
30589 width,
30590 format,
30591 type_,
30592 pixels
30593 );
30594 }
30595 let out = call_atomic_ptr_7arg(
30596 "glTextureSubImage1D",
30597 &self.glTextureSubImage1D_p,
30598 texture,
30599 level,
30600 xoffset,
30601 width,
30602 format,
30603 type_,
30604 pixels,
30605 );
30606 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30607 {
30608 self.automatic_glGetError("glTextureSubImage1D");
30609 }
30610 out
30611 }
30612 #[doc(hidden)]
30613 pub unsafe fn TextureSubImage1D_load_with_dyn(
30614 &self,
30615 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30616 ) -> bool {
30617 load_dyn_name_atomic_ptr(
30618 get_proc_address,
30619 b"glTextureSubImage1D\0",
30620 &self.glTextureSubImage1D_p,
30621 )
30622 }
30623 #[inline]
30624 #[doc(hidden)]
30625 pub fn TextureSubImage1D_is_loaded(&self) -> bool {
30626 !self.glTextureSubImage1D_p.load(RELAX).is_null()
30627 }
30628 #[cfg_attr(feature = "inline", inline)]
30632 #[cfg_attr(feature = "inline_always", inline(always))]
30633 pub unsafe fn TextureSubImage2D(
30634 &self,
30635 texture: GLuint,
30636 level: GLint,
30637 xoffset: GLint,
30638 yoffset: GLint,
30639 width: GLsizei,
30640 height: GLsizei,
30641 format: GLenum,
30642 type_: GLenum,
30643 pixels: *const c_void,
30644 ) {
30645 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30646 {
30647 trace!("calling gl.TextureSubImage2D({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", texture, level, xoffset, yoffset, width, height, format, type_, pixels);
30648 }
30649 let out = call_atomic_ptr_9arg(
30650 "glTextureSubImage2D",
30651 &self.glTextureSubImage2D_p,
30652 texture,
30653 level,
30654 xoffset,
30655 yoffset,
30656 width,
30657 height,
30658 format,
30659 type_,
30660 pixels,
30661 );
30662 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30663 {
30664 self.automatic_glGetError("glTextureSubImage2D");
30665 }
30666 out
30667 }
30668 #[doc(hidden)]
30669 pub unsafe fn TextureSubImage2D_load_with_dyn(
30670 &self,
30671 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30672 ) -> bool {
30673 load_dyn_name_atomic_ptr(
30674 get_proc_address,
30675 b"glTextureSubImage2D\0",
30676 &self.glTextureSubImage2D_p,
30677 )
30678 }
30679 #[inline]
30680 #[doc(hidden)]
30681 pub fn TextureSubImage2D_is_loaded(&self) -> bool {
30682 !self.glTextureSubImage2D_p.load(RELAX).is_null()
30683 }
30684 #[cfg_attr(feature = "inline", inline)]
30688 #[cfg_attr(feature = "inline_always", inline(always))]
30689 pub unsafe fn TextureSubImage3D(
30690 &self,
30691 texture: GLuint,
30692 level: GLint,
30693 xoffset: GLint,
30694 yoffset: GLint,
30695 zoffset: GLint,
30696 width: GLsizei,
30697 height: GLsizei,
30698 depth: GLsizei,
30699 format: GLenum,
30700 type_: GLenum,
30701 pixels: *const c_void,
30702 ) {
30703 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30704 {
30705 trace!("calling gl.TextureSubImage3D({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type_, pixels);
30706 }
30707 let out = call_atomic_ptr_11arg(
30708 "glTextureSubImage3D",
30709 &self.glTextureSubImage3D_p,
30710 texture,
30711 level,
30712 xoffset,
30713 yoffset,
30714 zoffset,
30715 width,
30716 height,
30717 depth,
30718 format,
30719 type_,
30720 pixels,
30721 );
30722 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30723 {
30724 self.automatic_glGetError("glTextureSubImage3D");
30725 }
30726 out
30727 }
30728 #[doc(hidden)]
30729 pub unsafe fn TextureSubImage3D_load_with_dyn(
30730 &self,
30731 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30732 ) -> bool {
30733 load_dyn_name_atomic_ptr(
30734 get_proc_address,
30735 b"glTextureSubImage3D\0",
30736 &self.glTextureSubImage3D_p,
30737 )
30738 }
30739 #[inline]
30740 #[doc(hidden)]
30741 pub fn TextureSubImage3D_is_loaded(&self) -> bool {
30742 !self.glTextureSubImage3D_p.load(RELAX).is_null()
30743 }
30744 #[cfg_attr(feature = "inline", inline)]
30748 #[cfg_attr(feature = "inline_always", inline(always))]
30749 pub unsafe fn TextureView(
30750 &self,
30751 texture: GLuint,
30752 target: GLenum,
30753 origtexture: GLuint,
30754 internalformat: GLenum,
30755 minlevel: GLuint,
30756 numlevels: GLuint,
30757 minlayer: GLuint,
30758 numlayers: GLuint,
30759 ) {
30760 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30761 {
30762 trace!(
30763 "calling gl.TextureView({:?}, {:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?});",
30764 texture,
30765 target,
30766 origtexture,
30767 internalformat,
30768 minlevel,
30769 numlevels,
30770 minlayer,
30771 numlayers
30772 );
30773 }
30774 let out = call_atomic_ptr_8arg(
30775 "glTextureView",
30776 &self.glTextureView_p,
30777 texture,
30778 target,
30779 origtexture,
30780 internalformat,
30781 minlevel,
30782 numlevels,
30783 minlayer,
30784 numlayers,
30785 );
30786 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30787 {
30788 self.automatic_glGetError("glTextureView");
30789 }
30790 out
30791 }
30792 #[doc(hidden)]
30793 pub unsafe fn TextureView_load_with_dyn(
30794 &self,
30795 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30796 ) -> bool {
30797 load_dyn_name_atomic_ptr(get_proc_address, b"glTextureView\0", &self.glTextureView_p)
30798 }
30799 #[inline]
30800 #[doc(hidden)]
30801 pub fn TextureView_is_loaded(&self) -> bool {
30802 !self.glTextureView_p.load(RELAX).is_null()
30803 }
30804 #[cfg_attr(feature = "inline", inline)]
30806 #[cfg_attr(feature = "inline_always", inline(always))]
30807 pub unsafe fn TransformFeedbackBufferBase(
30808 &self,
30809 xfb: GLuint,
30810 index: GLuint,
30811 buffer: GLuint,
30812 ) {
30813 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30814 {
30815 trace!(
30816 "calling gl.TransformFeedbackBufferBase({:?}, {:?}, {:?});",
30817 xfb,
30818 index,
30819 buffer
30820 );
30821 }
30822 let out = call_atomic_ptr_3arg(
30823 "glTransformFeedbackBufferBase",
30824 &self.glTransformFeedbackBufferBase_p,
30825 xfb,
30826 index,
30827 buffer,
30828 );
30829 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30830 {
30831 self.automatic_glGetError("glTransformFeedbackBufferBase");
30832 }
30833 out
30834 }
30835 #[doc(hidden)]
30836 pub unsafe fn TransformFeedbackBufferBase_load_with_dyn(
30837 &self,
30838 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30839 ) -> bool {
30840 load_dyn_name_atomic_ptr(
30841 get_proc_address,
30842 b"glTransformFeedbackBufferBase\0",
30843 &self.glTransformFeedbackBufferBase_p,
30844 )
30845 }
30846 #[inline]
30847 #[doc(hidden)]
30848 pub fn TransformFeedbackBufferBase_is_loaded(&self) -> bool {
30849 !self.glTransformFeedbackBufferBase_p.load(RELAX).is_null()
30850 }
30851 #[cfg_attr(feature = "inline", inline)]
30854 #[cfg_attr(feature = "inline_always", inline(always))]
30855 pub unsafe fn TransformFeedbackBufferRange(
30856 &self,
30857 xfb: GLuint,
30858 index: GLuint,
30859 buffer: GLuint,
30860 offset: GLintptr,
30861 size: GLsizeiptr,
30862 ) {
30863 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30864 {
30865 trace!(
30866 "calling gl.TransformFeedbackBufferRange({:?}, {:?}, {:?}, {:?}, {:?});",
30867 xfb,
30868 index,
30869 buffer,
30870 offset,
30871 size
30872 );
30873 }
30874 let out = call_atomic_ptr_5arg(
30875 "glTransformFeedbackBufferRange",
30876 &self.glTransformFeedbackBufferRange_p,
30877 xfb,
30878 index,
30879 buffer,
30880 offset,
30881 size,
30882 );
30883 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30884 {
30885 self.automatic_glGetError("glTransformFeedbackBufferRange");
30886 }
30887 out
30888 }
30889 #[doc(hidden)]
30890 pub unsafe fn TransformFeedbackBufferRange_load_with_dyn(
30891 &self,
30892 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30893 ) -> bool {
30894 load_dyn_name_atomic_ptr(
30895 get_proc_address,
30896 b"glTransformFeedbackBufferRange\0",
30897 &self.glTransformFeedbackBufferRange_p,
30898 )
30899 }
30900 #[inline]
30901 #[doc(hidden)]
30902 pub fn TransformFeedbackBufferRange_is_loaded(&self) -> bool {
30903 !self.glTransformFeedbackBufferRange_p.load(RELAX).is_null()
30904 }
30905 #[cfg_attr(feature = "inline", inline)]
30909 #[cfg_attr(feature = "inline_always", inline(always))]
30910 pub unsafe fn TransformFeedbackVaryings(
30911 &self,
30912 program: GLuint,
30913 count: GLsizei,
30914 varyings: *const *const GLchar,
30915 bufferMode: GLenum,
30916 ) {
30917 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30918 {
30919 trace!(
30920 "calling gl.TransformFeedbackVaryings({:?}, {:?}, {:p}, {:#X});",
30921 program,
30922 count,
30923 varyings,
30924 bufferMode
30925 );
30926 }
30927 let out = call_atomic_ptr_4arg(
30928 "glTransformFeedbackVaryings",
30929 &self.glTransformFeedbackVaryings_p,
30930 program,
30931 count,
30932 varyings,
30933 bufferMode,
30934 );
30935 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30936 {
30937 self.automatic_glGetError("glTransformFeedbackVaryings");
30938 }
30939 out
30940 }
30941 #[doc(hidden)]
30942 pub unsafe fn TransformFeedbackVaryings_load_with_dyn(
30943 &self,
30944 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30945 ) -> bool {
30946 load_dyn_name_atomic_ptr(
30947 get_proc_address,
30948 b"glTransformFeedbackVaryings\0",
30949 &self.glTransformFeedbackVaryings_p,
30950 )
30951 }
30952 #[inline]
30953 #[doc(hidden)]
30954 pub fn TransformFeedbackVaryings_is_loaded(&self) -> bool {
30955 !self.glTransformFeedbackVaryings_p.load(RELAX).is_null()
30956 }
30957 #[cfg_attr(feature = "inline", inline)]
30959 #[cfg_attr(feature = "inline_always", inline(always))]
30960 pub unsafe fn Uniform1d(&self, location: GLint, x: GLdouble) {
30961 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30962 {
30963 trace!("calling gl.Uniform1d({:?}, {:?});", location, x);
30964 }
30965 let out = call_atomic_ptr_2arg("glUniform1d", &self.glUniform1d_p, location, x);
30966 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30967 {
30968 self.automatic_glGetError("glUniform1d");
30969 }
30970 out
30971 }
30972 #[doc(hidden)]
30973 pub unsafe fn Uniform1d_load_with_dyn(
30974 &self,
30975 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30976 ) -> bool {
30977 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1d\0", &self.glUniform1d_p)
30978 }
30979 #[inline]
30980 #[doc(hidden)]
30981 pub fn Uniform1d_is_loaded(&self) -> bool {
30982 !self.glUniform1d_p.load(RELAX).is_null()
30983 }
30984 #[cfg_attr(feature = "inline", inline)]
30987 #[cfg_attr(feature = "inline_always", inline(always))]
30988 pub unsafe fn Uniform1dv(&self, location: GLint, count: GLsizei, value: *const GLdouble) {
30989 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30990 {
30991 trace!(
30992 "calling gl.Uniform1dv({:?}, {:?}, {:p});",
30993 location,
30994 count,
30995 value
30996 );
30997 }
30998 let out =
30999 call_atomic_ptr_3arg("glUniform1dv", &self.glUniform1dv_p, location, count, value);
31000 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31001 {
31002 self.automatic_glGetError("glUniform1dv");
31003 }
31004 out
31005 }
31006 #[doc(hidden)]
31007 pub unsafe fn Uniform1dv_load_with_dyn(
31008 &self,
31009 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31010 ) -> bool {
31011 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1dv\0", &self.glUniform1dv_p)
31012 }
31013 #[inline]
31014 #[doc(hidden)]
31015 pub fn Uniform1dv_is_loaded(&self) -> bool {
31016 !self.glUniform1dv_p.load(RELAX).is_null()
31017 }
31018 #[cfg_attr(feature = "inline", inline)]
31020 #[cfg_attr(feature = "inline_always", inline(always))]
31021 pub unsafe fn Uniform1f(&self, location: GLint, v0: GLfloat) {
31022 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31023 {
31024 trace!("calling gl.Uniform1f({:?}, {:?});", location, v0);
31025 }
31026 let out = call_atomic_ptr_2arg("glUniform1f", &self.glUniform1f_p, location, v0);
31027 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31028 {
31029 self.automatic_glGetError("glUniform1f");
31030 }
31031 out
31032 }
31033 #[doc(hidden)]
31034 pub unsafe fn Uniform1f_load_with_dyn(
31035 &self,
31036 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31037 ) -> bool {
31038 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1f\0", &self.glUniform1f_p)
31039 }
31040 #[inline]
31041 #[doc(hidden)]
31042 pub fn Uniform1f_is_loaded(&self) -> bool {
31043 !self.glUniform1f_p.load(RELAX).is_null()
31044 }
31045 #[cfg_attr(feature = "inline", inline)]
31048 #[cfg_attr(feature = "inline_always", inline(always))]
31049 pub unsafe fn Uniform1fv(&self, location: GLint, count: GLsizei, value: *const GLfloat) {
31050 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31051 {
31052 trace!(
31053 "calling gl.Uniform1fv({:?}, {:?}, {:p});",
31054 location,
31055 count,
31056 value
31057 );
31058 }
31059 let out =
31060 call_atomic_ptr_3arg("glUniform1fv", &self.glUniform1fv_p, location, count, value);
31061 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31062 {
31063 self.automatic_glGetError("glUniform1fv");
31064 }
31065 out
31066 }
31067 #[doc(hidden)]
31068 pub unsafe fn Uniform1fv_load_with_dyn(
31069 &self,
31070 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31071 ) -> bool {
31072 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1fv\0", &self.glUniform1fv_p)
31073 }
31074 #[inline]
31075 #[doc(hidden)]
31076 pub fn Uniform1fv_is_loaded(&self) -> bool {
31077 !self.glUniform1fv_p.load(RELAX).is_null()
31078 }
31079 #[cfg_attr(feature = "inline", inline)]
31081 #[cfg_attr(feature = "inline_always", inline(always))]
31082 pub unsafe fn Uniform1i(&self, location: GLint, v0: GLint) {
31083 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31084 {
31085 trace!("calling gl.Uniform1i({:?}, {:?});", location, v0);
31086 }
31087 let out = call_atomic_ptr_2arg("glUniform1i", &self.glUniform1i_p, location, v0);
31088 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31089 {
31090 self.automatic_glGetError("glUniform1i");
31091 }
31092 out
31093 }
31094 #[doc(hidden)]
31095 pub unsafe fn Uniform1i_load_with_dyn(
31096 &self,
31097 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31098 ) -> bool {
31099 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1i\0", &self.glUniform1i_p)
31100 }
31101 #[inline]
31102 #[doc(hidden)]
31103 pub fn Uniform1i_is_loaded(&self) -> bool {
31104 !self.glUniform1i_p.load(RELAX).is_null()
31105 }
31106 #[cfg_attr(feature = "inline", inline)]
31109 #[cfg_attr(feature = "inline_always", inline(always))]
31110 pub unsafe fn Uniform1iv(&self, location: GLint, count: GLsizei, value: *const GLint) {
31111 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31112 {
31113 trace!(
31114 "calling gl.Uniform1iv({:?}, {:?}, {:p});",
31115 location,
31116 count,
31117 value
31118 );
31119 }
31120 let out =
31121 call_atomic_ptr_3arg("glUniform1iv", &self.glUniform1iv_p, location, count, value);
31122 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31123 {
31124 self.automatic_glGetError("glUniform1iv");
31125 }
31126 out
31127 }
31128 #[doc(hidden)]
31129 pub unsafe fn Uniform1iv_load_with_dyn(
31130 &self,
31131 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31132 ) -> bool {
31133 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1iv\0", &self.glUniform1iv_p)
31134 }
31135 #[inline]
31136 #[doc(hidden)]
31137 pub fn Uniform1iv_is_loaded(&self) -> bool {
31138 !self.glUniform1iv_p.load(RELAX).is_null()
31139 }
31140 #[cfg_attr(feature = "inline", inline)]
31142 #[cfg_attr(feature = "inline_always", inline(always))]
31143 pub unsafe fn Uniform1ui(&self, location: GLint, v0: GLuint) {
31144 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31145 {
31146 trace!("calling gl.Uniform1ui({:?}, {:?});", location, v0);
31147 }
31148 let out = call_atomic_ptr_2arg("glUniform1ui", &self.glUniform1ui_p, location, v0);
31149 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31150 {
31151 self.automatic_glGetError("glUniform1ui");
31152 }
31153 out
31154 }
31155 #[doc(hidden)]
31156 pub unsafe fn Uniform1ui_load_with_dyn(
31157 &self,
31158 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31159 ) -> bool {
31160 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1ui\0", &self.glUniform1ui_p)
31161 }
31162 #[inline]
31163 #[doc(hidden)]
31164 pub fn Uniform1ui_is_loaded(&self) -> bool {
31165 !self.glUniform1ui_p.load(RELAX).is_null()
31166 }
31167 #[cfg_attr(feature = "inline", inline)]
31170 #[cfg_attr(feature = "inline_always", inline(always))]
31171 pub unsafe fn Uniform1uiv(&self, location: GLint, count: GLsizei, value: *const GLuint) {
31172 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31173 {
31174 trace!(
31175 "calling gl.Uniform1uiv({:?}, {:?}, {:p});",
31176 location,
31177 count,
31178 value
31179 );
31180 }
31181 let out = call_atomic_ptr_3arg(
31182 "glUniform1uiv",
31183 &self.glUniform1uiv_p,
31184 location,
31185 count,
31186 value,
31187 );
31188 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31189 {
31190 self.automatic_glGetError("glUniform1uiv");
31191 }
31192 out
31193 }
31194 #[doc(hidden)]
31195 pub unsafe fn Uniform1uiv_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"glUniform1uiv\0", &self.glUniform1uiv_p)
31200 }
31201 #[inline]
31202 #[doc(hidden)]
31203 pub fn Uniform1uiv_is_loaded(&self) -> bool {
31204 !self.glUniform1uiv_p.load(RELAX).is_null()
31205 }
31206 #[cfg_attr(feature = "inline", inline)]
31208 #[cfg_attr(feature = "inline_always", inline(always))]
31209 pub unsafe fn Uniform2d(&self, location: GLint, x: GLdouble, y: GLdouble) {
31210 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31211 {
31212 trace!("calling gl.Uniform2d({:?}, {:?}, {:?});", location, x, y);
31213 }
31214 let out = call_atomic_ptr_3arg("glUniform2d", &self.glUniform2d_p, location, x, y);
31215 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31216 {
31217 self.automatic_glGetError("glUniform2d");
31218 }
31219 out
31220 }
31221 #[doc(hidden)]
31222 pub unsafe fn Uniform2d_load_with_dyn(
31223 &self,
31224 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31225 ) -> bool {
31226 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2d\0", &self.glUniform2d_p)
31227 }
31228 #[inline]
31229 #[doc(hidden)]
31230 pub fn Uniform2d_is_loaded(&self) -> bool {
31231 !self.glUniform2d_p.load(RELAX).is_null()
31232 }
31233 #[cfg_attr(feature = "inline", inline)]
31236 #[cfg_attr(feature = "inline_always", inline(always))]
31237 pub unsafe fn Uniform2dv(&self, location: GLint, count: GLsizei, value: *const GLdouble) {
31238 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31239 {
31240 trace!(
31241 "calling gl.Uniform2dv({:?}, {:?}, {:p});",
31242 location,
31243 count,
31244 value
31245 );
31246 }
31247 let out =
31248 call_atomic_ptr_3arg("glUniform2dv", &self.glUniform2dv_p, location, count, value);
31249 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31250 {
31251 self.automatic_glGetError("glUniform2dv");
31252 }
31253 out
31254 }
31255 #[doc(hidden)]
31256 pub unsafe fn Uniform2dv_load_with_dyn(
31257 &self,
31258 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31259 ) -> bool {
31260 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2dv\0", &self.glUniform2dv_p)
31261 }
31262 #[inline]
31263 #[doc(hidden)]
31264 pub fn Uniform2dv_is_loaded(&self) -> bool {
31265 !self.glUniform2dv_p.load(RELAX).is_null()
31266 }
31267 #[cfg_attr(feature = "inline", inline)]
31269 #[cfg_attr(feature = "inline_always", inline(always))]
31270 pub unsafe fn Uniform2f(&self, location: GLint, v0: GLfloat, v1: GLfloat) {
31271 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31272 {
31273 trace!("calling gl.Uniform2f({:?}, {:?}, {:?});", location, v0, v1);
31274 }
31275 let out = call_atomic_ptr_3arg("glUniform2f", &self.glUniform2f_p, location, v0, v1);
31276 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31277 {
31278 self.automatic_glGetError("glUniform2f");
31279 }
31280 out
31281 }
31282 #[doc(hidden)]
31283 pub unsafe fn Uniform2f_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"glUniform2f\0", &self.glUniform2f_p)
31288 }
31289 #[inline]
31290 #[doc(hidden)]
31291 pub fn Uniform2f_is_loaded(&self) -> bool {
31292 !self.glUniform2f_p.load(RELAX).is_null()
31293 }
31294 #[cfg_attr(feature = "inline", inline)]
31297 #[cfg_attr(feature = "inline_always", inline(always))]
31298 pub unsafe fn Uniform2fv(&self, location: GLint, count: GLsizei, value: *const GLfloat) {
31299 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31300 {
31301 trace!(
31302 "calling gl.Uniform2fv({:?}, {:?}, {:p});",
31303 location,
31304 count,
31305 value
31306 );
31307 }
31308 let out =
31309 call_atomic_ptr_3arg("glUniform2fv", &self.glUniform2fv_p, location, count, value);
31310 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31311 {
31312 self.automatic_glGetError("glUniform2fv");
31313 }
31314 out
31315 }
31316 #[doc(hidden)]
31317 pub unsafe fn Uniform2fv_load_with_dyn(
31318 &self,
31319 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31320 ) -> bool {
31321 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2fv\0", &self.glUniform2fv_p)
31322 }
31323 #[inline]
31324 #[doc(hidden)]
31325 pub fn Uniform2fv_is_loaded(&self) -> bool {
31326 !self.glUniform2fv_p.load(RELAX).is_null()
31327 }
31328 #[cfg_attr(feature = "inline", inline)]
31330 #[cfg_attr(feature = "inline_always", inline(always))]
31331 pub unsafe fn Uniform2i(&self, location: GLint, v0: GLint, v1: GLint) {
31332 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31333 {
31334 trace!("calling gl.Uniform2i({:?}, {:?}, {:?});", location, v0, v1);
31335 }
31336 let out = call_atomic_ptr_3arg("glUniform2i", &self.glUniform2i_p, location, v0, v1);
31337 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31338 {
31339 self.automatic_glGetError("glUniform2i");
31340 }
31341 out
31342 }
31343 #[doc(hidden)]
31344 pub unsafe fn Uniform2i_load_with_dyn(
31345 &self,
31346 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31347 ) -> bool {
31348 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2i\0", &self.glUniform2i_p)
31349 }
31350 #[inline]
31351 #[doc(hidden)]
31352 pub fn Uniform2i_is_loaded(&self) -> bool {
31353 !self.glUniform2i_p.load(RELAX).is_null()
31354 }
31355 #[cfg_attr(feature = "inline", inline)]
31358 #[cfg_attr(feature = "inline_always", inline(always))]
31359 pub unsafe fn Uniform2iv(&self, location: GLint, count: GLsizei, value: *const GLint) {
31360 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31361 {
31362 trace!(
31363 "calling gl.Uniform2iv({:?}, {:?}, {:p});",
31364 location,
31365 count,
31366 value
31367 );
31368 }
31369 let out =
31370 call_atomic_ptr_3arg("glUniform2iv", &self.glUniform2iv_p, location, count, value);
31371 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31372 {
31373 self.automatic_glGetError("glUniform2iv");
31374 }
31375 out
31376 }
31377 #[doc(hidden)]
31378 pub unsafe fn Uniform2iv_load_with_dyn(
31379 &self,
31380 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31381 ) -> bool {
31382 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2iv\0", &self.glUniform2iv_p)
31383 }
31384 #[inline]
31385 #[doc(hidden)]
31386 pub fn Uniform2iv_is_loaded(&self) -> bool {
31387 !self.glUniform2iv_p.load(RELAX).is_null()
31388 }
31389 #[cfg_attr(feature = "inline", inline)]
31391 #[cfg_attr(feature = "inline_always", inline(always))]
31392 pub unsafe fn Uniform2ui(&self, location: GLint, v0: GLuint, v1: GLuint) {
31393 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31394 {
31395 trace!("calling gl.Uniform2ui({:?}, {:?}, {:?});", location, v0, v1);
31396 }
31397 let out = call_atomic_ptr_3arg("glUniform2ui", &self.glUniform2ui_p, location, v0, v1);
31398 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31399 {
31400 self.automatic_glGetError("glUniform2ui");
31401 }
31402 out
31403 }
31404 #[doc(hidden)]
31405 pub unsafe fn Uniform2ui_load_with_dyn(
31406 &self,
31407 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31408 ) -> bool {
31409 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2ui\0", &self.glUniform2ui_p)
31410 }
31411 #[inline]
31412 #[doc(hidden)]
31413 pub fn Uniform2ui_is_loaded(&self) -> bool {
31414 !self.glUniform2ui_p.load(RELAX).is_null()
31415 }
31416 #[cfg_attr(feature = "inline", inline)]
31419 #[cfg_attr(feature = "inline_always", inline(always))]
31420 pub unsafe fn Uniform2uiv(&self, location: GLint, count: GLsizei, value: *const GLuint) {
31421 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31422 {
31423 trace!(
31424 "calling gl.Uniform2uiv({:?}, {:?}, {:p});",
31425 location,
31426 count,
31427 value
31428 );
31429 }
31430 let out = call_atomic_ptr_3arg(
31431 "glUniform2uiv",
31432 &self.glUniform2uiv_p,
31433 location,
31434 count,
31435 value,
31436 );
31437 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31438 {
31439 self.automatic_glGetError("glUniform2uiv");
31440 }
31441 out
31442 }
31443 #[doc(hidden)]
31444 pub unsafe fn Uniform2uiv_load_with_dyn(
31445 &self,
31446 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31447 ) -> bool {
31448 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2uiv\0", &self.glUniform2uiv_p)
31449 }
31450 #[inline]
31451 #[doc(hidden)]
31452 pub fn Uniform2uiv_is_loaded(&self) -> bool {
31453 !self.glUniform2uiv_p.load(RELAX).is_null()
31454 }
31455 #[cfg_attr(feature = "inline", inline)]
31457 #[cfg_attr(feature = "inline_always", inline(always))]
31458 pub unsafe fn Uniform3d(&self, location: GLint, x: GLdouble, y: GLdouble, z: GLdouble) {
31459 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31460 {
31461 trace!(
31462 "calling gl.Uniform3d({:?}, {:?}, {:?}, {:?});",
31463 location,
31464 x,
31465 y,
31466 z
31467 );
31468 }
31469 let out = call_atomic_ptr_4arg("glUniform3d", &self.glUniform3d_p, location, x, y, z);
31470 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31471 {
31472 self.automatic_glGetError("glUniform3d");
31473 }
31474 out
31475 }
31476 #[doc(hidden)]
31477 pub unsafe fn Uniform3d_load_with_dyn(
31478 &self,
31479 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31480 ) -> bool {
31481 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3d\0", &self.glUniform3d_p)
31482 }
31483 #[inline]
31484 #[doc(hidden)]
31485 pub fn Uniform3d_is_loaded(&self) -> bool {
31486 !self.glUniform3d_p.load(RELAX).is_null()
31487 }
31488 #[cfg_attr(feature = "inline", inline)]
31491 #[cfg_attr(feature = "inline_always", inline(always))]
31492 pub unsafe fn Uniform3dv(&self, location: GLint, count: GLsizei, value: *const GLdouble) {
31493 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31494 {
31495 trace!(
31496 "calling gl.Uniform3dv({:?}, {:?}, {:p});",
31497 location,
31498 count,
31499 value
31500 );
31501 }
31502 let out =
31503 call_atomic_ptr_3arg("glUniform3dv", &self.glUniform3dv_p, location, count, value);
31504 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31505 {
31506 self.automatic_glGetError("glUniform3dv");
31507 }
31508 out
31509 }
31510 #[doc(hidden)]
31511 pub unsafe fn Uniform3dv_load_with_dyn(
31512 &self,
31513 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31514 ) -> bool {
31515 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3dv\0", &self.glUniform3dv_p)
31516 }
31517 #[inline]
31518 #[doc(hidden)]
31519 pub fn Uniform3dv_is_loaded(&self) -> bool {
31520 !self.glUniform3dv_p.load(RELAX).is_null()
31521 }
31522 #[cfg_attr(feature = "inline", inline)]
31524 #[cfg_attr(feature = "inline_always", inline(always))]
31525 pub unsafe fn Uniform3f(&self, location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat) {
31526 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31527 {
31528 trace!(
31529 "calling gl.Uniform3f({:?}, {:?}, {:?}, {:?});",
31530 location,
31531 v0,
31532 v1,
31533 v2
31534 );
31535 }
31536 let out =
31537 call_atomic_ptr_4arg("glUniform3f", &self.glUniform3f_p, location, v0, v1, v2);
31538 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31539 {
31540 self.automatic_glGetError("glUniform3f");
31541 }
31542 out
31543 }
31544 #[doc(hidden)]
31545 pub unsafe fn Uniform3f_load_with_dyn(
31546 &self,
31547 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31548 ) -> bool {
31549 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3f\0", &self.glUniform3f_p)
31550 }
31551 #[inline]
31552 #[doc(hidden)]
31553 pub fn Uniform3f_is_loaded(&self) -> bool {
31554 !self.glUniform3f_p.load(RELAX).is_null()
31555 }
31556 #[cfg_attr(feature = "inline", inline)]
31559 #[cfg_attr(feature = "inline_always", inline(always))]
31560 pub unsafe fn Uniform3fv(&self, location: GLint, count: GLsizei, value: *const GLfloat) {
31561 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31562 {
31563 trace!(
31564 "calling gl.Uniform3fv({:?}, {:?}, {:p});",
31565 location,
31566 count,
31567 value
31568 );
31569 }
31570 let out =
31571 call_atomic_ptr_3arg("glUniform3fv", &self.glUniform3fv_p, location, count, value);
31572 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31573 {
31574 self.automatic_glGetError("glUniform3fv");
31575 }
31576 out
31577 }
31578 #[doc(hidden)]
31579 pub unsafe fn Uniform3fv_load_with_dyn(
31580 &self,
31581 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31582 ) -> bool {
31583 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3fv\0", &self.glUniform3fv_p)
31584 }
31585 #[inline]
31586 #[doc(hidden)]
31587 pub fn Uniform3fv_is_loaded(&self) -> bool {
31588 !self.glUniform3fv_p.load(RELAX).is_null()
31589 }
31590 #[cfg_attr(feature = "inline", inline)]
31592 #[cfg_attr(feature = "inline_always", inline(always))]
31593 pub unsafe fn Uniform3i(&self, location: GLint, v0: GLint, v1: GLint, v2: GLint) {
31594 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31595 {
31596 trace!(
31597 "calling gl.Uniform3i({:?}, {:?}, {:?}, {:?});",
31598 location,
31599 v0,
31600 v1,
31601 v2
31602 );
31603 }
31604 let out =
31605 call_atomic_ptr_4arg("glUniform3i", &self.glUniform3i_p, location, v0, v1, v2);
31606 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31607 {
31608 self.automatic_glGetError("glUniform3i");
31609 }
31610 out
31611 }
31612 #[doc(hidden)]
31613 pub unsafe fn Uniform3i_load_with_dyn(
31614 &self,
31615 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31616 ) -> bool {
31617 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3i\0", &self.glUniform3i_p)
31618 }
31619 #[inline]
31620 #[doc(hidden)]
31621 pub fn Uniform3i_is_loaded(&self) -> bool {
31622 !self.glUniform3i_p.load(RELAX).is_null()
31623 }
31624 #[cfg_attr(feature = "inline", inline)]
31627 #[cfg_attr(feature = "inline_always", inline(always))]
31628 pub unsafe fn Uniform3iv(&self, location: GLint, count: GLsizei, value: *const GLint) {
31629 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31630 {
31631 trace!(
31632 "calling gl.Uniform3iv({:?}, {:?}, {:p});",
31633 location,
31634 count,
31635 value
31636 );
31637 }
31638 let out =
31639 call_atomic_ptr_3arg("glUniform3iv", &self.glUniform3iv_p, location, count, value);
31640 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31641 {
31642 self.automatic_glGetError("glUniform3iv");
31643 }
31644 out
31645 }
31646 #[doc(hidden)]
31647 pub unsafe fn Uniform3iv_load_with_dyn(
31648 &self,
31649 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31650 ) -> bool {
31651 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3iv\0", &self.glUniform3iv_p)
31652 }
31653 #[inline]
31654 #[doc(hidden)]
31655 pub fn Uniform3iv_is_loaded(&self) -> bool {
31656 !self.glUniform3iv_p.load(RELAX).is_null()
31657 }
31658 #[cfg_attr(feature = "inline", inline)]
31660 #[cfg_attr(feature = "inline_always", inline(always))]
31661 pub unsafe fn Uniform3ui(&self, location: GLint, v0: GLuint, v1: GLuint, v2: GLuint) {
31662 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31663 {
31664 trace!(
31665 "calling gl.Uniform3ui({:?}, {:?}, {:?}, {:?});",
31666 location,
31667 v0,
31668 v1,
31669 v2
31670 );
31671 }
31672 let out =
31673 call_atomic_ptr_4arg("glUniform3ui", &self.glUniform3ui_p, location, v0, v1, v2);
31674 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31675 {
31676 self.automatic_glGetError("glUniform3ui");
31677 }
31678 out
31679 }
31680 #[doc(hidden)]
31681 pub unsafe fn Uniform3ui_load_with_dyn(
31682 &self,
31683 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31684 ) -> bool {
31685 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3ui\0", &self.glUniform3ui_p)
31686 }
31687 #[inline]
31688 #[doc(hidden)]
31689 pub fn Uniform3ui_is_loaded(&self) -> bool {
31690 !self.glUniform3ui_p.load(RELAX).is_null()
31691 }
31692 #[cfg_attr(feature = "inline", inline)]
31695 #[cfg_attr(feature = "inline_always", inline(always))]
31696 pub unsafe fn Uniform3uiv(&self, location: GLint, count: GLsizei, value: *const GLuint) {
31697 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31698 {
31699 trace!(
31700 "calling gl.Uniform3uiv({:?}, {:?}, {:p});",
31701 location,
31702 count,
31703 value
31704 );
31705 }
31706 let out = call_atomic_ptr_3arg(
31707 "glUniform3uiv",
31708 &self.glUniform3uiv_p,
31709 location,
31710 count,
31711 value,
31712 );
31713 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31714 {
31715 self.automatic_glGetError("glUniform3uiv");
31716 }
31717 out
31718 }
31719 #[doc(hidden)]
31720 pub unsafe fn Uniform3uiv_load_with_dyn(
31721 &self,
31722 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31723 ) -> bool {
31724 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3uiv\0", &self.glUniform3uiv_p)
31725 }
31726 #[inline]
31727 #[doc(hidden)]
31728 pub fn Uniform3uiv_is_loaded(&self) -> bool {
31729 !self.glUniform3uiv_p.load(RELAX).is_null()
31730 }
31731 #[cfg_attr(feature = "inline", inline)]
31733 #[cfg_attr(feature = "inline_always", inline(always))]
31734 pub unsafe fn Uniform4d(
31735 &self,
31736 location: GLint,
31737 x: GLdouble,
31738 y: GLdouble,
31739 z: GLdouble,
31740 w: GLdouble,
31741 ) {
31742 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31743 {
31744 trace!(
31745 "calling gl.Uniform4d({:?}, {:?}, {:?}, {:?}, {:?});",
31746 location,
31747 x,
31748 y,
31749 z,
31750 w
31751 );
31752 }
31753 let out =
31754 call_atomic_ptr_5arg("glUniform4d", &self.glUniform4d_p, location, x, y, z, w);
31755 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31756 {
31757 self.automatic_glGetError("glUniform4d");
31758 }
31759 out
31760 }
31761 #[doc(hidden)]
31762 pub unsafe fn Uniform4d_load_with_dyn(
31763 &self,
31764 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31765 ) -> bool {
31766 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4d\0", &self.glUniform4d_p)
31767 }
31768 #[inline]
31769 #[doc(hidden)]
31770 pub fn Uniform4d_is_loaded(&self) -> bool {
31771 !self.glUniform4d_p.load(RELAX).is_null()
31772 }
31773 #[cfg_attr(feature = "inline", inline)]
31776 #[cfg_attr(feature = "inline_always", inline(always))]
31777 pub unsafe fn Uniform4dv(&self, location: GLint, count: GLsizei, value: *const GLdouble) {
31778 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31779 {
31780 trace!(
31781 "calling gl.Uniform4dv({:?}, {:?}, {:p});",
31782 location,
31783 count,
31784 value
31785 );
31786 }
31787 let out =
31788 call_atomic_ptr_3arg("glUniform4dv", &self.glUniform4dv_p, location, count, value);
31789 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31790 {
31791 self.automatic_glGetError("glUniform4dv");
31792 }
31793 out
31794 }
31795 #[doc(hidden)]
31796 pub unsafe fn Uniform4dv_load_with_dyn(
31797 &self,
31798 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31799 ) -> bool {
31800 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4dv\0", &self.glUniform4dv_p)
31801 }
31802 #[inline]
31803 #[doc(hidden)]
31804 pub fn Uniform4dv_is_loaded(&self) -> bool {
31805 !self.glUniform4dv_p.load(RELAX).is_null()
31806 }
31807 #[cfg_attr(feature = "inline", inline)]
31809 #[cfg_attr(feature = "inline_always", inline(always))]
31810 pub unsafe fn Uniform4f(
31811 &self,
31812 location: GLint,
31813 v0: GLfloat,
31814 v1: GLfloat,
31815 v2: GLfloat,
31816 v3: GLfloat,
31817 ) {
31818 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31819 {
31820 trace!(
31821 "calling gl.Uniform4f({:?}, {:?}, {:?}, {:?}, {:?});",
31822 location,
31823 v0,
31824 v1,
31825 v2,
31826 v3
31827 );
31828 }
31829 let out =
31830 call_atomic_ptr_5arg("glUniform4f", &self.glUniform4f_p, location, v0, v1, v2, v3);
31831 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31832 {
31833 self.automatic_glGetError("glUniform4f");
31834 }
31835 out
31836 }
31837 #[doc(hidden)]
31838 pub unsafe fn Uniform4f_load_with_dyn(
31839 &self,
31840 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31841 ) -> bool {
31842 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4f\0", &self.glUniform4f_p)
31843 }
31844 #[inline]
31845 #[doc(hidden)]
31846 pub fn Uniform4f_is_loaded(&self) -> bool {
31847 !self.glUniform4f_p.load(RELAX).is_null()
31848 }
31849 #[cfg_attr(feature = "inline", inline)]
31852 #[cfg_attr(feature = "inline_always", inline(always))]
31853 pub unsafe fn Uniform4fv(&self, location: GLint, count: GLsizei, value: *const GLfloat) {
31854 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31855 {
31856 trace!(
31857 "calling gl.Uniform4fv({:?}, {:?}, {:p});",
31858 location,
31859 count,
31860 value
31861 );
31862 }
31863 let out =
31864 call_atomic_ptr_3arg("glUniform4fv", &self.glUniform4fv_p, location, count, value);
31865 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31866 {
31867 self.automatic_glGetError("glUniform4fv");
31868 }
31869 out
31870 }
31871 #[doc(hidden)]
31872 pub unsafe fn Uniform4fv_load_with_dyn(
31873 &self,
31874 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31875 ) -> bool {
31876 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4fv\0", &self.glUniform4fv_p)
31877 }
31878 #[inline]
31879 #[doc(hidden)]
31880 pub fn Uniform4fv_is_loaded(&self) -> bool {
31881 !self.glUniform4fv_p.load(RELAX).is_null()
31882 }
31883 #[cfg_attr(feature = "inline", inline)]
31885 #[cfg_attr(feature = "inline_always", inline(always))]
31886 pub unsafe fn Uniform4i(
31887 &self,
31888 location: GLint,
31889 v0: GLint,
31890 v1: GLint,
31891 v2: GLint,
31892 v3: GLint,
31893 ) {
31894 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31895 {
31896 trace!(
31897 "calling gl.Uniform4i({:?}, {:?}, {:?}, {:?}, {:?});",
31898 location,
31899 v0,
31900 v1,
31901 v2,
31902 v3
31903 );
31904 }
31905 let out =
31906 call_atomic_ptr_5arg("glUniform4i", &self.glUniform4i_p, location, v0, v1, v2, v3);
31907 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31908 {
31909 self.automatic_glGetError("glUniform4i");
31910 }
31911 out
31912 }
31913 #[doc(hidden)]
31914 pub unsafe fn Uniform4i_load_with_dyn(
31915 &self,
31916 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31917 ) -> bool {
31918 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4i\0", &self.glUniform4i_p)
31919 }
31920 #[inline]
31921 #[doc(hidden)]
31922 pub fn Uniform4i_is_loaded(&self) -> bool {
31923 !self.glUniform4i_p.load(RELAX).is_null()
31924 }
31925 #[cfg_attr(feature = "inline", inline)]
31928 #[cfg_attr(feature = "inline_always", inline(always))]
31929 pub unsafe fn Uniform4iv(&self, location: GLint, count: GLsizei, value: *const GLint) {
31930 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31931 {
31932 trace!(
31933 "calling gl.Uniform4iv({:?}, {:?}, {:p});",
31934 location,
31935 count,
31936 value
31937 );
31938 }
31939 let out =
31940 call_atomic_ptr_3arg("glUniform4iv", &self.glUniform4iv_p, location, count, value);
31941 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31942 {
31943 self.automatic_glGetError("glUniform4iv");
31944 }
31945 out
31946 }
31947 #[doc(hidden)]
31948 pub unsafe fn Uniform4iv_load_with_dyn(
31949 &self,
31950 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31951 ) -> bool {
31952 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4iv\0", &self.glUniform4iv_p)
31953 }
31954 #[inline]
31955 #[doc(hidden)]
31956 pub fn Uniform4iv_is_loaded(&self) -> bool {
31957 !self.glUniform4iv_p.load(RELAX).is_null()
31958 }
31959 #[cfg_attr(feature = "inline", inline)]
31961 #[cfg_attr(feature = "inline_always", inline(always))]
31962 pub unsafe fn Uniform4ui(
31963 &self,
31964 location: GLint,
31965 v0: GLuint,
31966 v1: GLuint,
31967 v2: GLuint,
31968 v3: GLuint,
31969 ) {
31970 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31971 {
31972 trace!(
31973 "calling gl.Uniform4ui({:?}, {:?}, {:?}, {:?}, {:?});",
31974 location,
31975 v0,
31976 v1,
31977 v2,
31978 v3
31979 );
31980 }
31981 let out = call_atomic_ptr_5arg(
31982 "glUniform4ui",
31983 &self.glUniform4ui_p,
31984 location,
31985 v0,
31986 v1,
31987 v2,
31988 v3,
31989 );
31990 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31991 {
31992 self.automatic_glGetError("glUniform4ui");
31993 }
31994 out
31995 }
31996 #[doc(hidden)]
31997 pub unsafe fn Uniform4ui_load_with_dyn(
31998 &self,
31999 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32000 ) -> bool {
32001 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4ui\0", &self.glUniform4ui_p)
32002 }
32003 #[inline]
32004 #[doc(hidden)]
32005 pub fn Uniform4ui_is_loaded(&self) -> bool {
32006 !self.glUniform4ui_p.load(RELAX).is_null()
32007 }
32008 #[cfg_attr(feature = "inline", inline)]
32011 #[cfg_attr(feature = "inline_always", inline(always))]
32012 pub unsafe fn Uniform4uiv(&self, location: GLint, count: GLsizei, value: *const GLuint) {
32013 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32014 {
32015 trace!(
32016 "calling gl.Uniform4uiv({:?}, {:?}, {:p});",
32017 location,
32018 count,
32019 value
32020 );
32021 }
32022 let out = call_atomic_ptr_3arg(
32023 "glUniform4uiv",
32024 &self.glUniform4uiv_p,
32025 location,
32026 count,
32027 value,
32028 );
32029 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32030 {
32031 self.automatic_glGetError("glUniform4uiv");
32032 }
32033 out
32034 }
32035 #[doc(hidden)]
32036 pub unsafe fn Uniform4uiv_load_with_dyn(
32037 &self,
32038 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32039 ) -> bool {
32040 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4uiv\0", &self.glUniform4uiv_p)
32041 }
32042 #[inline]
32043 #[doc(hidden)]
32044 pub fn Uniform4uiv_is_loaded(&self) -> bool {
32045 !self.glUniform4uiv_p.load(RELAX).is_null()
32046 }
32047 #[cfg_attr(feature = "inline", inline)]
32049 #[cfg_attr(feature = "inline_always", inline(always))]
32050 pub unsafe fn UniformBlockBinding(
32051 &self,
32052 program: GLuint,
32053 uniformBlockIndex: GLuint,
32054 uniformBlockBinding: GLuint,
32055 ) {
32056 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32057 {
32058 trace!(
32059 "calling gl.UniformBlockBinding({:?}, {:?}, {:?});",
32060 program,
32061 uniformBlockIndex,
32062 uniformBlockBinding
32063 );
32064 }
32065 let out = call_atomic_ptr_3arg(
32066 "glUniformBlockBinding",
32067 &self.glUniformBlockBinding_p,
32068 program,
32069 uniformBlockIndex,
32070 uniformBlockBinding,
32071 );
32072 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32073 {
32074 self.automatic_glGetError("glUniformBlockBinding");
32075 }
32076 out
32077 }
32078 #[doc(hidden)]
32079 pub unsafe fn UniformBlockBinding_load_with_dyn(
32080 &self,
32081 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32082 ) -> bool {
32083 load_dyn_name_atomic_ptr(
32084 get_proc_address,
32085 b"glUniformBlockBinding\0",
32086 &self.glUniformBlockBinding_p,
32087 )
32088 }
32089 #[inline]
32090 #[doc(hidden)]
32091 pub fn UniformBlockBinding_is_loaded(&self) -> bool {
32092 !self.glUniformBlockBinding_p.load(RELAX).is_null()
32093 }
32094 #[cfg_attr(feature = "inline", inline)]
32097 #[cfg_attr(feature = "inline_always", inline(always))]
32098 pub unsafe fn UniformMatrix2dv(
32099 &self,
32100 location: GLint,
32101 count: GLsizei,
32102 transpose: GLboolean,
32103 value: *const GLdouble,
32104 ) {
32105 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32106 {
32107 trace!(
32108 "calling gl.UniformMatrix2dv({:?}, {:?}, {:?}, {:p});",
32109 location,
32110 count,
32111 transpose,
32112 value
32113 );
32114 }
32115 let out = call_atomic_ptr_4arg(
32116 "glUniformMatrix2dv",
32117 &self.glUniformMatrix2dv_p,
32118 location,
32119 count,
32120 transpose,
32121 value,
32122 );
32123 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32124 {
32125 self.automatic_glGetError("glUniformMatrix2dv");
32126 }
32127 out
32128 }
32129 #[doc(hidden)]
32130 pub unsafe fn UniformMatrix2dv_load_with_dyn(
32131 &self,
32132 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32133 ) -> bool {
32134 load_dyn_name_atomic_ptr(
32135 get_proc_address,
32136 b"glUniformMatrix2dv\0",
32137 &self.glUniformMatrix2dv_p,
32138 )
32139 }
32140 #[inline]
32141 #[doc(hidden)]
32142 pub fn UniformMatrix2dv_is_loaded(&self) -> bool {
32143 !self.glUniformMatrix2dv_p.load(RELAX).is_null()
32144 }
32145 #[cfg_attr(feature = "inline", inline)]
32148 #[cfg_attr(feature = "inline_always", inline(always))]
32149 pub unsafe fn UniformMatrix2fv(
32150 &self,
32151 location: GLint,
32152 count: GLsizei,
32153 transpose: GLboolean,
32154 value: *const GLfloat,
32155 ) {
32156 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32157 {
32158 trace!(
32159 "calling gl.UniformMatrix2fv({:?}, {:?}, {:?}, {:p});",
32160 location,
32161 count,
32162 transpose,
32163 value
32164 );
32165 }
32166 let out = call_atomic_ptr_4arg(
32167 "glUniformMatrix2fv",
32168 &self.glUniformMatrix2fv_p,
32169 location,
32170 count,
32171 transpose,
32172 value,
32173 );
32174 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32175 {
32176 self.automatic_glGetError("glUniformMatrix2fv");
32177 }
32178 out
32179 }
32180 #[doc(hidden)]
32181 pub unsafe fn UniformMatrix2fv_load_with_dyn(
32182 &self,
32183 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32184 ) -> bool {
32185 load_dyn_name_atomic_ptr(
32186 get_proc_address,
32187 b"glUniformMatrix2fv\0",
32188 &self.glUniformMatrix2fv_p,
32189 )
32190 }
32191 #[inline]
32192 #[doc(hidden)]
32193 pub fn UniformMatrix2fv_is_loaded(&self) -> bool {
32194 !self.glUniformMatrix2fv_p.load(RELAX).is_null()
32195 }
32196 #[cfg_attr(feature = "inline", inline)]
32199 #[cfg_attr(feature = "inline_always", inline(always))]
32200 pub unsafe fn UniformMatrix2x3dv(
32201 &self,
32202 location: GLint,
32203 count: GLsizei,
32204 transpose: GLboolean,
32205 value: *const GLdouble,
32206 ) {
32207 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32208 {
32209 trace!(
32210 "calling gl.UniformMatrix2x3dv({:?}, {:?}, {:?}, {:p});",
32211 location,
32212 count,
32213 transpose,
32214 value
32215 );
32216 }
32217 let out = call_atomic_ptr_4arg(
32218 "glUniformMatrix2x3dv",
32219 &self.glUniformMatrix2x3dv_p,
32220 location,
32221 count,
32222 transpose,
32223 value,
32224 );
32225 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32226 {
32227 self.automatic_glGetError("glUniformMatrix2x3dv");
32228 }
32229 out
32230 }
32231 #[doc(hidden)]
32232 pub unsafe fn UniformMatrix2x3dv_load_with_dyn(
32233 &self,
32234 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32235 ) -> bool {
32236 load_dyn_name_atomic_ptr(
32237 get_proc_address,
32238 b"glUniformMatrix2x3dv\0",
32239 &self.glUniformMatrix2x3dv_p,
32240 )
32241 }
32242 #[inline]
32243 #[doc(hidden)]
32244 pub fn UniformMatrix2x3dv_is_loaded(&self) -> bool {
32245 !self.glUniformMatrix2x3dv_p.load(RELAX).is_null()
32246 }
32247 #[cfg_attr(feature = "inline", inline)]
32250 #[cfg_attr(feature = "inline_always", inline(always))]
32251 pub unsafe fn UniformMatrix2x3fv(
32252 &self,
32253 location: GLint,
32254 count: GLsizei,
32255 transpose: GLboolean,
32256 value: *const GLfloat,
32257 ) {
32258 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32259 {
32260 trace!(
32261 "calling gl.UniformMatrix2x3fv({:?}, {:?}, {:?}, {:p});",
32262 location,
32263 count,
32264 transpose,
32265 value
32266 );
32267 }
32268 let out = call_atomic_ptr_4arg(
32269 "glUniformMatrix2x3fv",
32270 &self.glUniformMatrix2x3fv_p,
32271 location,
32272 count,
32273 transpose,
32274 value,
32275 );
32276 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32277 {
32278 self.automatic_glGetError("glUniformMatrix2x3fv");
32279 }
32280 out
32281 }
32282 #[doc(hidden)]
32283 pub unsafe fn UniformMatrix2x3fv_load_with_dyn(
32284 &self,
32285 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32286 ) -> bool {
32287 load_dyn_name_atomic_ptr(
32288 get_proc_address,
32289 b"glUniformMatrix2x3fv\0",
32290 &self.glUniformMatrix2x3fv_p,
32291 )
32292 }
32293 #[inline]
32294 #[doc(hidden)]
32295 pub fn UniformMatrix2x3fv_is_loaded(&self) -> bool {
32296 !self.glUniformMatrix2x3fv_p.load(RELAX).is_null()
32297 }
32298 #[cfg_attr(feature = "inline", inline)]
32301 #[cfg_attr(feature = "inline_always", inline(always))]
32302 pub unsafe fn UniformMatrix2x4dv(
32303 &self,
32304 location: GLint,
32305 count: GLsizei,
32306 transpose: GLboolean,
32307 value: *const GLdouble,
32308 ) {
32309 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32310 {
32311 trace!(
32312 "calling gl.UniformMatrix2x4dv({:?}, {:?}, {:?}, {:p});",
32313 location,
32314 count,
32315 transpose,
32316 value
32317 );
32318 }
32319 let out = call_atomic_ptr_4arg(
32320 "glUniformMatrix2x4dv",
32321 &self.glUniformMatrix2x4dv_p,
32322 location,
32323 count,
32324 transpose,
32325 value,
32326 );
32327 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32328 {
32329 self.automatic_glGetError("glUniformMatrix2x4dv");
32330 }
32331 out
32332 }
32333 #[doc(hidden)]
32334 pub unsafe fn UniformMatrix2x4dv_load_with_dyn(
32335 &self,
32336 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32337 ) -> bool {
32338 load_dyn_name_atomic_ptr(
32339 get_proc_address,
32340 b"glUniformMatrix2x4dv\0",
32341 &self.glUniformMatrix2x4dv_p,
32342 )
32343 }
32344 #[inline]
32345 #[doc(hidden)]
32346 pub fn UniformMatrix2x4dv_is_loaded(&self) -> bool {
32347 !self.glUniformMatrix2x4dv_p.load(RELAX).is_null()
32348 }
32349 #[cfg_attr(feature = "inline", inline)]
32352 #[cfg_attr(feature = "inline_always", inline(always))]
32353 pub unsafe fn UniformMatrix2x4fv(
32354 &self,
32355 location: GLint,
32356 count: GLsizei,
32357 transpose: GLboolean,
32358 value: *const GLfloat,
32359 ) {
32360 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32361 {
32362 trace!(
32363 "calling gl.UniformMatrix2x4fv({:?}, {:?}, {:?}, {:p});",
32364 location,
32365 count,
32366 transpose,
32367 value
32368 );
32369 }
32370 let out = call_atomic_ptr_4arg(
32371 "glUniformMatrix2x4fv",
32372 &self.glUniformMatrix2x4fv_p,
32373 location,
32374 count,
32375 transpose,
32376 value,
32377 );
32378 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32379 {
32380 self.automatic_glGetError("glUniformMatrix2x4fv");
32381 }
32382 out
32383 }
32384 #[doc(hidden)]
32385 pub unsafe fn UniformMatrix2x4fv_load_with_dyn(
32386 &self,
32387 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32388 ) -> bool {
32389 load_dyn_name_atomic_ptr(
32390 get_proc_address,
32391 b"glUniformMatrix2x4fv\0",
32392 &self.glUniformMatrix2x4fv_p,
32393 )
32394 }
32395 #[inline]
32396 #[doc(hidden)]
32397 pub fn UniformMatrix2x4fv_is_loaded(&self) -> bool {
32398 !self.glUniformMatrix2x4fv_p.load(RELAX).is_null()
32399 }
32400 #[cfg_attr(feature = "inline", inline)]
32403 #[cfg_attr(feature = "inline_always", inline(always))]
32404 pub unsafe fn UniformMatrix3dv(
32405 &self,
32406 location: GLint,
32407 count: GLsizei,
32408 transpose: GLboolean,
32409 value: *const GLdouble,
32410 ) {
32411 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32412 {
32413 trace!(
32414 "calling gl.UniformMatrix3dv({:?}, {:?}, {:?}, {:p});",
32415 location,
32416 count,
32417 transpose,
32418 value
32419 );
32420 }
32421 let out = call_atomic_ptr_4arg(
32422 "glUniformMatrix3dv",
32423 &self.glUniformMatrix3dv_p,
32424 location,
32425 count,
32426 transpose,
32427 value,
32428 );
32429 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32430 {
32431 self.automatic_glGetError("glUniformMatrix3dv");
32432 }
32433 out
32434 }
32435 #[doc(hidden)]
32436 pub unsafe fn UniformMatrix3dv_load_with_dyn(
32437 &self,
32438 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32439 ) -> bool {
32440 load_dyn_name_atomic_ptr(
32441 get_proc_address,
32442 b"glUniformMatrix3dv\0",
32443 &self.glUniformMatrix3dv_p,
32444 )
32445 }
32446 #[inline]
32447 #[doc(hidden)]
32448 pub fn UniformMatrix3dv_is_loaded(&self) -> bool {
32449 !self.glUniformMatrix3dv_p.load(RELAX).is_null()
32450 }
32451 #[cfg_attr(feature = "inline", inline)]
32454 #[cfg_attr(feature = "inline_always", inline(always))]
32455 pub unsafe fn UniformMatrix3fv(
32456 &self,
32457 location: GLint,
32458 count: GLsizei,
32459 transpose: GLboolean,
32460 value: *const GLfloat,
32461 ) {
32462 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32463 {
32464 trace!(
32465 "calling gl.UniformMatrix3fv({:?}, {:?}, {:?}, {:p});",
32466 location,
32467 count,
32468 transpose,
32469 value
32470 );
32471 }
32472 let out = call_atomic_ptr_4arg(
32473 "glUniformMatrix3fv",
32474 &self.glUniformMatrix3fv_p,
32475 location,
32476 count,
32477 transpose,
32478 value,
32479 );
32480 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32481 {
32482 self.automatic_glGetError("glUniformMatrix3fv");
32483 }
32484 out
32485 }
32486 #[doc(hidden)]
32487 pub unsafe fn UniformMatrix3fv_load_with_dyn(
32488 &self,
32489 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32490 ) -> bool {
32491 load_dyn_name_atomic_ptr(
32492 get_proc_address,
32493 b"glUniformMatrix3fv\0",
32494 &self.glUniformMatrix3fv_p,
32495 )
32496 }
32497 #[inline]
32498 #[doc(hidden)]
32499 pub fn UniformMatrix3fv_is_loaded(&self) -> bool {
32500 !self.glUniformMatrix3fv_p.load(RELAX).is_null()
32501 }
32502 #[cfg_attr(feature = "inline", inline)]
32505 #[cfg_attr(feature = "inline_always", inline(always))]
32506 pub unsafe fn UniformMatrix3x2dv(
32507 &self,
32508 location: GLint,
32509 count: GLsizei,
32510 transpose: GLboolean,
32511 value: *const GLdouble,
32512 ) {
32513 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32514 {
32515 trace!(
32516 "calling gl.UniformMatrix3x2dv({:?}, {:?}, {:?}, {:p});",
32517 location,
32518 count,
32519 transpose,
32520 value
32521 );
32522 }
32523 let out = call_atomic_ptr_4arg(
32524 "glUniformMatrix3x2dv",
32525 &self.glUniformMatrix3x2dv_p,
32526 location,
32527 count,
32528 transpose,
32529 value,
32530 );
32531 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32532 {
32533 self.automatic_glGetError("glUniformMatrix3x2dv");
32534 }
32535 out
32536 }
32537 #[doc(hidden)]
32538 pub unsafe fn UniformMatrix3x2dv_load_with_dyn(
32539 &self,
32540 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32541 ) -> bool {
32542 load_dyn_name_atomic_ptr(
32543 get_proc_address,
32544 b"glUniformMatrix3x2dv\0",
32545 &self.glUniformMatrix3x2dv_p,
32546 )
32547 }
32548 #[inline]
32549 #[doc(hidden)]
32550 pub fn UniformMatrix3x2dv_is_loaded(&self) -> bool {
32551 !self.glUniformMatrix3x2dv_p.load(RELAX).is_null()
32552 }
32553 #[cfg_attr(feature = "inline", inline)]
32556 #[cfg_attr(feature = "inline_always", inline(always))]
32557 pub unsafe fn UniformMatrix3x2fv(
32558 &self,
32559 location: GLint,
32560 count: GLsizei,
32561 transpose: GLboolean,
32562 value: *const GLfloat,
32563 ) {
32564 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32565 {
32566 trace!(
32567 "calling gl.UniformMatrix3x2fv({:?}, {:?}, {:?}, {:p});",
32568 location,
32569 count,
32570 transpose,
32571 value
32572 );
32573 }
32574 let out = call_atomic_ptr_4arg(
32575 "glUniformMatrix3x2fv",
32576 &self.glUniformMatrix3x2fv_p,
32577 location,
32578 count,
32579 transpose,
32580 value,
32581 );
32582 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32583 {
32584 self.automatic_glGetError("glUniformMatrix3x2fv");
32585 }
32586 out
32587 }
32588 #[doc(hidden)]
32589 pub unsafe fn UniformMatrix3x2fv_load_with_dyn(
32590 &self,
32591 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32592 ) -> bool {
32593 load_dyn_name_atomic_ptr(
32594 get_proc_address,
32595 b"glUniformMatrix3x2fv\0",
32596 &self.glUniformMatrix3x2fv_p,
32597 )
32598 }
32599 #[inline]
32600 #[doc(hidden)]
32601 pub fn UniformMatrix3x2fv_is_loaded(&self) -> bool {
32602 !self.glUniformMatrix3x2fv_p.load(RELAX).is_null()
32603 }
32604 #[cfg_attr(feature = "inline", inline)]
32607 #[cfg_attr(feature = "inline_always", inline(always))]
32608 pub unsafe fn UniformMatrix3x4dv(
32609 &self,
32610 location: GLint,
32611 count: GLsizei,
32612 transpose: GLboolean,
32613 value: *const GLdouble,
32614 ) {
32615 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32616 {
32617 trace!(
32618 "calling gl.UniformMatrix3x4dv({:?}, {:?}, {:?}, {:p});",
32619 location,
32620 count,
32621 transpose,
32622 value
32623 );
32624 }
32625 let out = call_atomic_ptr_4arg(
32626 "glUniformMatrix3x4dv",
32627 &self.glUniformMatrix3x4dv_p,
32628 location,
32629 count,
32630 transpose,
32631 value,
32632 );
32633 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32634 {
32635 self.automatic_glGetError("glUniformMatrix3x4dv");
32636 }
32637 out
32638 }
32639 #[doc(hidden)]
32640 pub unsafe fn UniformMatrix3x4dv_load_with_dyn(
32641 &self,
32642 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32643 ) -> bool {
32644 load_dyn_name_atomic_ptr(
32645 get_proc_address,
32646 b"glUniformMatrix3x4dv\0",
32647 &self.glUniformMatrix3x4dv_p,
32648 )
32649 }
32650 #[inline]
32651 #[doc(hidden)]
32652 pub fn UniformMatrix3x4dv_is_loaded(&self) -> bool {
32653 !self.glUniformMatrix3x4dv_p.load(RELAX).is_null()
32654 }
32655 #[cfg_attr(feature = "inline", inline)]
32658 #[cfg_attr(feature = "inline_always", inline(always))]
32659 pub unsafe fn UniformMatrix3x4fv(
32660 &self,
32661 location: GLint,
32662 count: GLsizei,
32663 transpose: GLboolean,
32664 value: *const GLfloat,
32665 ) {
32666 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32667 {
32668 trace!(
32669 "calling gl.UniformMatrix3x4fv({:?}, {:?}, {:?}, {:p});",
32670 location,
32671 count,
32672 transpose,
32673 value
32674 );
32675 }
32676 let out = call_atomic_ptr_4arg(
32677 "glUniformMatrix3x4fv",
32678 &self.glUniformMatrix3x4fv_p,
32679 location,
32680 count,
32681 transpose,
32682 value,
32683 );
32684 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32685 {
32686 self.automatic_glGetError("glUniformMatrix3x4fv");
32687 }
32688 out
32689 }
32690 #[doc(hidden)]
32691 pub unsafe fn UniformMatrix3x4fv_load_with_dyn(
32692 &self,
32693 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32694 ) -> bool {
32695 load_dyn_name_atomic_ptr(
32696 get_proc_address,
32697 b"glUniformMatrix3x4fv\0",
32698 &self.glUniformMatrix3x4fv_p,
32699 )
32700 }
32701 #[inline]
32702 #[doc(hidden)]
32703 pub fn UniformMatrix3x4fv_is_loaded(&self) -> bool {
32704 !self.glUniformMatrix3x4fv_p.load(RELAX).is_null()
32705 }
32706 #[cfg_attr(feature = "inline", inline)]
32709 #[cfg_attr(feature = "inline_always", inline(always))]
32710 pub unsafe fn UniformMatrix4dv(
32711 &self,
32712 location: GLint,
32713 count: GLsizei,
32714 transpose: GLboolean,
32715 value: *const GLdouble,
32716 ) {
32717 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32718 {
32719 trace!(
32720 "calling gl.UniformMatrix4dv({:?}, {:?}, {:?}, {:p});",
32721 location,
32722 count,
32723 transpose,
32724 value
32725 );
32726 }
32727 let out = call_atomic_ptr_4arg(
32728 "glUniformMatrix4dv",
32729 &self.glUniformMatrix4dv_p,
32730 location,
32731 count,
32732 transpose,
32733 value,
32734 );
32735 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32736 {
32737 self.automatic_glGetError("glUniformMatrix4dv");
32738 }
32739 out
32740 }
32741 #[doc(hidden)]
32742 pub unsafe fn UniformMatrix4dv_load_with_dyn(
32743 &self,
32744 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32745 ) -> bool {
32746 load_dyn_name_atomic_ptr(
32747 get_proc_address,
32748 b"glUniformMatrix4dv\0",
32749 &self.glUniformMatrix4dv_p,
32750 )
32751 }
32752 #[inline]
32753 #[doc(hidden)]
32754 pub fn UniformMatrix4dv_is_loaded(&self) -> bool {
32755 !self.glUniformMatrix4dv_p.load(RELAX).is_null()
32756 }
32757 #[cfg_attr(feature = "inline", inline)]
32760 #[cfg_attr(feature = "inline_always", inline(always))]
32761 pub unsafe fn UniformMatrix4fv(
32762 &self,
32763 location: GLint,
32764 count: GLsizei,
32765 transpose: GLboolean,
32766 value: *const GLfloat,
32767 ) {
32768 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32769 {
32770 trace!(
32771 "calling gl.UniformMatrix4fv({:?}, {:?}, {:?}, {:p});",
32772 location,
32773 count,
32774 transpose,
32775 value
32776 );
32777 }
32778 let out = call_atomic_ptr_4arg(
32779 "glUniformMatrix4fv",
32780 &self.glUniformMatrix4fv_p,
32781 location,
32782 count,
32783 transpose,
32784 value,
32785 );
32786 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32787 {
32788 self.automatic_glGetError("glUniformMatrix4fv");
32789 }
32790 out
32791 }
32792 #[doc(hidden)]
32793 pub unsafe fn UniformMatrix4fv_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"glUniformMatrix4fv\0",
32800 &self.glUniformMatrix4fv_p,
32801 )
32802 }
32803 #[inline]
32804 #[doc(hidden)]
32805 pub fn UniformMatrix4fv_is_loaded(&self) -> bool {
32806 !self.glUniformMatrix4fv_p.load(RELAX).is_null()
32807 }
32808 #[cfg_attr(feature = "inline", inline)]
32811 #[cfg_attr(feature = "inline_always", inline(always))]
32812 pub unsafe fn UniformMatrix4x2dv(
32813 &self,
32814 location: GLint,
32815 count: GLsizei,
32816 transpose: GLboolean,
32817 value: *const GLdouble,
32818 ) {
32819 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32820 {
32821 trace!(
32822 "calling gl.UniformMatrix4x2dv({:?}, {:?}, {:?}, {:p});",
32823 location,
32824 count,
32825 transpose,
32826 value
32827 );
32828 }
32829 let out = call_atomic_ptr_4arg(
32830 "glUniformMatrix4x2dv",
32831 &self.glUniformMatrix4x2dv_p,
32832 location,
32833 count,
32834 transpose,
32835 value,
32836 );
32837 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32838 {
32839 self.automatic_glGetError("glUniformMatrix4x2dv");
32840 }
32841 out
32842 }
32843 #[doc(hidden)]
32844 pub unsafe fn UniformMatrix4x2dv_load_with_dyn(
32845 &self,
32846 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32847 ) -> bool {
32848 load_dyn_name_atomic_ptr(
32849 get_proc_address,
32850 b"glUniformMatrix4x2dv\0",
32851 &self.glUniformMatrix4x2dv_p,
32852 )
32853 }
32854 #[inline]
32855 #[doc(hidden)]
32856 pub fn UniformMatrix4x2dv_is_loaded(&self) -> bool {
32857 !self.glUniformMatrix4x2dv_p.load(RELAX).is_null()
32858 }
32859 #[cfg_attr(feature = "inline", inline)]
32862 #[cfg_attr(feature = "inline_always", inline(always))]
32863 pub unsafe fn UniformMatrix4x2fv(
32864 &self,
32865 location: GLint,
32866 count: GLsizei,
32867 transpose: GLboolean,
32868 value: *const GLfloat,
32869 ) {
32870 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32871 {
32872 trace!(
32873 "calling gl.UniformMatrix4x2fv({:?}, {:?}, {:?}, {:p});",
32874 location,
32875 count,
32876 transpose,
32877 value
32878 );
32879 }
32880 let out = call_atomic_ptr_4arg(
32881 "glUniformMatrix4x2fv",
32882 &self.glUniformMatrix4x2fv_p,
32883 location,
32884 count,
32885 transpose,
32886 value,
32887 );
32888 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32889 {
32890 self.automatic_glGetError("glUniformMatrix4x2fv");
32891 }
32892 out
32893 }
32894 #[doc(hidden)]
32895 pub unsafe fn UniformMatrix4x2fv_load_with_dyn(
32896 &self,
32897 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32898 ) -> bool {
32899 load_dyn_name_atomic_ptr(
32900 get_proc_address,
32901 b"glUniformMatrix4x2fv\0",
32902 &self.glUniformMatrix4x2fv_p,
32903 )
32904 }
32905 #[inline]
32906 #[doc(hidden)]
32907 pub fn UniformMatrix4x2fv_is_loaded(&self) -> bool {
32908 !self.glUniformMatrix4x2fv_p.load(RELAX).is_null()
32909 }
32910 #[cfg_attr(feature = "inline", inline)]
32913 #[cfg_attr(feature = "inline_always", inline(always))]
32914 pub unsafe fn UniformMatrix4x3dv(
32915 &self,
32916 location: GLint,
32917 count: GLsizei,
32918 transpose: GLboolean,
32919 value: *const GLdouble,
32920 ) {
32921 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32922 {
32923 trace!(
32924 "calling gl.UniformMatrix4x3dv({:?}, {:?}, {:?}, {:p});",
32925 location,
32926 count,
32927 transpose,
32928 value
32929 );
32930 }
32931 let out = call_atomic_ptr_4arg(
32932 "glUniformMatrix4x3dv",
32933 &self.glUniformMatrix4x3dv_p,
32934 location,
32935 count,
32936 transpose,
32937 value,
32938 );
32939 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32940 {
32941 self.automatic_glGetError("glUniformMatrix4x3dv");
32942 }
32943 out
32944 }
32945 #[doc(hidden)]
32946 pub unsafe fn UniformMatrix4x3dv_load_with_dyn(
32947 &self,
32948 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32949 ) -> bool {
32950 load_dyn_name_atomic_ptr(
32951 get_proc_address,
32952 b"glUniformMatrix4x3dv\0",
32953 &self.glUniformMatrix4x3dv_p,
32954 )
32955 }
32956 #[inline]
32957 #[doc(hidden)]
32958 pub fn UniformMatrix4x3dv_is_loaded(&self) -> bool {
32959 !self.glUniformMatrix4x3dv_p.load(RELAX).is_null()
32960 }
32961 #[cfg_attr(feature = "inline", inline)]
32964 #[cfg_attr(feature = "inline_always", inline(always))]
32965 pub unsafe fn UniformMatrix4x3fv(
32966 &self,
32967 location: GLint,
32968 count: GLsizei,
32969 transpose: GLboolean,
32970 value: *const GLfloat,
32971 ) {
32972 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32973 {
32974 trace!(
32975 "calling gl.UniformMatrix4x3fv({:?}, {:?}, {:?}, {:p});",
32976 location,
32977 count,
32978 transpose,
32979 value
32980 );
32981 }
32982 let out = call_atomic_ptr_4arg(
32983 "glUniformMatrix4x3fv",
32984 &self.glUniformMatrix4x3fv_p,
32985 location,
32986 count,
32987 transpose,
32988 value,
32989 );
32990 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32991 {
32992 self.automatic_glGetError("glUniformMatrix4x3fv");
32993 }
32994 out
32995 }
32996 #[doc(hidden)]
32997 pub unsafe fn UniformMatrix4x3fv_load_with_dyn(
32998 &self,
32999 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33000 ) -> bool {
33001 load_dyn_name_atomic_ptr(
33002 get_proc_address,
33003 b"glUniformMatrix4x3fv\0",
33004 &self.glUniformMatrix4x3fv_p,
33005 )
33006 }
33007 #[inline]
33008 #[doc(hidden)]
33009 pub fn UniformMatrix4x3fv_is_loaded(&self) -> bool {
33010 !self.glUniformMatrix4x3fv_p.load(RELAX).is_null()
33011 }
33012 #[cfg_attr(feature = "inline", inline)]
33016 #[cfg_attr(feature = "inline_always", inline(always))]
33017 pub unsafe fn UniformSubroutinesuiv(
33018 &self,
33019 shadertype: GLenum,
33020 count: GLsizei,
33021 indices: *const GLuint,
33022 ) {
33023 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33024 {
33025 trace!(
33026 "calling gl.UniformSubroutinesuiv({:#X}, {:?}, {:p});",
33027 shadertype,
33028 count,
33029 indices
33030 );
33031 }
33032 let out = call_atomic_ptr_3arg(
33033 "glUniformSubroutinesuiv",
33034 &self.glUniformSubroutinesuiv_p,
33035 shadertype,
33036 count,
33037 indices,
33038 );
33039 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33040 {
33041 self.automatic_glGetError("glUniformSubroutinesuiv");
33042 }
33043 out
33044 }
33045 #[doc(hidden)]
33046 pub unsafe fn UniformSubroutinesuiv_load_with_dyn(
33047 &self,
33048 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33049 ) -> bool {
33050 load_dyn_name_atomic_ptr(
33051 get_proc_address,
33052 b"glUniformSubroutinesuiv\0",
33053 &self.glUniformSubroutinesuiv_p,
33054 )
33055 }
33056 #[inline]
33057 #[doc(hidden)]
33058 pub fn UniformSubroutinesuiv_is_loaded(&self) -> bool {
33059 !self.glUniformSubroutinesuiv_p.load(RELAX).is_null()
33060 }
33061 #[cfg_attr(feature = "inline", inline)]
33064 #[cfg_attr(feature = "inline_always", inline(always))]
33065 pub unsafe fn UnmapBuffer(&self, target: GLenum) -> GLboolean {
33066 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33067 {
33068 trace!("calling gl.UnmapBuffer({:#X});", target);
33069 }
33070 let out = call_atomic_ptr_1arg("glUnmapBuffer", &self.glUnmapBuffer_p, target);
33071 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33072 {
33073 self.automatic_glGetError("glUnmapBuffer");
33074 }
33075 out
33076 }
33077 #[doc(hidden)]
33078 pub unsafe fn UnmapBuffer_load_with_dyn(
33079 &self,
33080 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33081 ) -> bool {
33082 load_dyn_name_atomic_ptr(get_proc_address, b"glUnmapBuffer\0", &self.glUnmapBuffer_p)
33083 }
33084 #[inline]
33085 #[doc(hidden)]
33086 pub fn UnmapBuffer_is_loaded(&self) -> bool {
33087 !self.glUnmapBuffer_p.load(RELAX).is_null()
33088 }
33089 #[cfg_attr(feature = "inline", inline)]
33091 #[cfg_attr(feature = "inline_always", inline(always))]
33092 pub unsafe fn UnmapNamedBuffer(&self, buffer: GLuint) -> GLboolean {
33093 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33094 {
33095 trace!("calling gl.UnmapNamedBuffer({:?});", buffer);
33096 }
33097 let out =
33098 call_atomic_ptr_1arg("glUnmapNamedBuffer", &self.glUnmapNamedBuffer_p, buffer);
33099 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33100 {
33101 self.automatic_glGetError("glUnmapNamedBuffer");
33102 }
33103 out
33104 }
33105 #[doc(hidden)]
33106 pub unsafe fn UnmapNamedBuffer_load_with_dyn(
33107 &self,
33108 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33109 ) -> bool {
33110 load_dyn_name_atomic_ptr(
33111 get_proc_address,
33112 b"glUnmapNamedBuffer\0",
33113 &self.glUnmapNamedBuffer_p,
33114 )
33115 }
33116 #[inline]
33117 #[doc(hidden)]
33118 pub fn UnmapNamedBuffer_is_loaded(&self) -> bool {
33119 !self.glUnmapNamedBuffer_p.load(RELAX).is_null()
33120 }
33121 #[cfg_attr(feature = "inline", inline)]
33123 #[cfg_attr(feature = "inline_always", inline(always))]
33124 pub unsafe fn UseProgram(&self, program: GLuint) {
33125 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33126 {
33127 trace!("calling gl.UseProgram({:?});", program);
33128 }
33129 let out = call_atomic_ptr_1arg("glUseProgram", &self.glUseProgram_p, program);
33130 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33131 {
33132 self.automatic_glGetError("glUseProgram");
33133 }
33134 out
33135 }
33136 #[doc(hidden)]
33137 pub unsafe fn UseProgram_load_with_dyn(
33138 &self,
33139 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33140 ) -> bool {
33141 load_dyn_name_atomic_ptr(get_proc_address, b"glUseProgram\0", &self.glUseProgram_p)
33142 }
33143 #[inline]
33144 #[doc(hidden)]
33145 pub fn UseProgram_is_loaded(&self) -> bool {
33146 !self.glUseProgram_p.load(RELAX).is_null()
33147 }
33148 #[cfg_attr(feature = "inline", inline)]
33151 #[cfg_attr(feature = "inline_always", inline(always))]
33152 pub unsafe fn UseProgramStages(
33153 &self,
33154 pipeline: GLuint,
33155 stages: GLbitfield,
33156 program: GLuint,
33157 ) {
33158 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33159 {
33160 trace!(
33161 "calling gl.UseProgramStages({:?}, {:?}, {:?});",
33162 pipeline,
33163 stages,
33164 program
33165 );
33166 }
33167 let out = call_atomic_ptr_3arg(
33168 "glUseProgramStages",
33169 &self.glUseProgramStages_p,
33170 pipeline,
33171 stages,
33172 program,
33173 );
33174 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33175 {
33176 self.automatic_glGetError("glUseProgramStages");
33177 }
33178 out
33179 }
33180 #[doc(hidden)]
33181 pub unsafe fn UseProgramStages_load_with_dyn(
33182 &self,
33183 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33184 ) -> bool {
33185 load_dyn_name_atomic_ptr(
33186 get_proc_address,
33187 b"glUseProgramStages\0",
33188 &self.glUseProgramStages_p,
33189 )
33190 }
33191 #[inline]
33192 #[doc(hidden)]
33193 pub fn UseProgramStages_is_loaded(&self) -> bool {
33194 !self.glUseProgramStages_p.load(RELAX).is_null()
33195 }
33196 #[cfg_attr(feature = "inline", inline)]
33198 #[cfg_attr(feature = "inline_always", inline(always))]
33199 pub unsafe fn ValidateProgram(&self, program: GLuint) {
33200 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33201 {
33202 trace!("calling gl.ValidateProgram({:?});", program);
33203 }
33204 let out = call_atomic_ptr_1arg("glValidateProgram", &self.glValidateProgram_p, program);
33205 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33206 {
33207 self.automatic_glGetError("glValidateProgram");
33208 }
33209 out
33210 }
33211 #[doc(hidden)]
33212 pub unsafe fn ValidateProgram_load_with_dyn(
33213 &self,
33214 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33215 ) -> bool {
33216 load_dyn_name_atomic_ptr(
33217 get_proc_address,
33218 b"glValidateProgram\0",
33219 &self.glValidateProgram_p,
33220 )
33221 }
33222 #[inline]
33223 #[doc(hidden)]
33224 pub fn ValidateProgram_is_loaded(&self) -> bool {
33225 !self.glValidateProgram_p.load(RELAX).is_null()
33226 }
33227 #[cfg_attr(feature = "inline", inline)]
33229 #[cfg_attr(feature = "inline_always", inline(always))]
33230 pub unsafe fn ValidateProgramPipeline(&self, pipeline: GLuint) {
33231 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33232 {
33233 trace!("calling gl.ValidateProgramPipeline({:?});", pipeline);
33234 }
33235 let out = call_atomic_ptr_1arg(
33236 "glValidateProgramPipeline",
33237 &self.glValidateProgramPipeline_p,
33238 pipeline,
33239 );
33240 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33241 {
33242 self.automatic_glGetError("glValidateProgramPipeline");
33243 }
33244 out
33245 }
33246 #[doc(hidden)]
33247 pub unsafe fn ValidateProgramPipeline_load_with_dyn(
33248 &self,
33249 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33250 ) -> bool {
33251 load_dyn_name_atomic_ptr(
33252 get_proc_address,
33253 b"glValidateProgramPipeline\0",
33254 &self.glValidateProgramPipeline_p,
33255 )
33256 }
33257 #[inline]
33258 #[doc(hidden)]
33259 pub fn ValidateProgramPipeline_is_loaded(&self) -> bool {
33260 !self.glValidateProgramPipeline_p.load(RELAX).is_null()
33261 }
33262 #[cfg_attr(feature = "inline", inline)]
33264 #[cfg_attr(feature = "inline_always", inline(always))]
33265 pub unsafe fn VertexArrayAttribBinding(
33266 &self,
33267 vaobj: GLuint,
33268 attribindex: GLuint,
33269 bindingindex: GLuint,
33270 ) {
33271 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33272 {
33273 trace!(
33274 "calling gl.VertexArrayAttribBinding({:?}, {:?}, {:?});",
33275 vaobj,
33276 attribindex,
33277 bindingindex
33278 );
33279 }
33280 let out = call_atomic_ptr_3arg(
33281 "glVertexArrayAttribBinding",
33282 &self.glVertexArrayAttribBinding_p,
33283 vaobj,
33284 attribindex,
33285 bindingindex,
33286 );
33287 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33288 {
33289 self.automatic_glGetError("glVertexArrayAttribBinding");
33290 }
33291 out
33292 }
33293 #[doc(hidden)]
33294 pub unsafe fn VertexArrayAttribBinding_load_with_dyn(
33295 &self,
33296 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33297 ) -> bool {
33298 load_dyn_name_atomic_ptr(
33299 get_proc_address,
33300 b"glVertexArrayAttribBinding\0",
33301 &self.glVertexArrayAttribBinding_p,
33302 )
33303 }
33304 #[inline]
33305 #[doc(hidden)]
33306 pub fn VertexArrayAttribBinding_is_loaded(&self) -> bool {
33307 !self.glVertexArrayAttribBinding_p.load(RELAX).is_null()
33308 }
33309 #[cfg_attr(feature = "inline", inline)]
33312 #[cfg_attr(feature = "inline_always", inline(always))]
33313 pub unsafe fn VertexArrayAttribFormat(
33314 &self,
33315 vaobj: GLuint,
33316 attribindex: GLuint,
33317 size: GLint,
33318 type_: GLenum,
33319 normalized: GLboolean,
33320 relativeoffset: GLuint,
33321 ) {
33322 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33323 {
33324 trace!(
33325 "calling gl.VertexArrayAttribFormat({:?}, {:?}, {:?}, {:#X}, {:?}, {:?});",
33326 vaobj,
33327 attribindex,
33328 size,
33329 type_,
33330 normalized,
33331 relativeoffset
33332 );
33333 }
33334 let out = call_atomic_ptr_6arg(
33335 "glVertexArrayAttribFormat",
33336 &self.glVertexArrayAttribFormat_p,
33337 vaobj,
33338 attribindex,
33339 size,
33340 type_,
33341 normalized,
33342 relativeoffset,
33343 );
33344 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33345 {
33346 self.automatic_glGetError("glVertexArrayAttribFormat");
33347 }
33348 out
33349 }
33350 #[doc(hidden)]
33351 pub unsafe fn VertexArrayAttribFormat_load_with_dyn(
33352 &self,
33353 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33354 ) -> bool {
33355 load_dyn_name_atomic_ptr(
33356 get_proc_address,
33357 b"glVertexArrayAttribFormat\0",
33358 &self.glVertexArrayAttribFormat_p,
33359 )
33360 }
33361 #[inline]
33362 #[doc(hidden)]
33363 pub fn VertexArrayAttribFormat_is_loaded(&self) -> bool {
33364 !self.glVertexArrayAttribFormat_p.load(RELAX).is_null()
33365 }
33366 #[cfg_attr(feature = "inline", inline)]
33369 #[cfg_attr(feature = "inline_always", inline(always))]
33370 pub unsafe fn VertexArrayAttribIFormat(
33371 &self,
33372 vaobj: GLuint,
33373 attribindex: GLuint,
33374 size: GLint,
33375 type_: GLenum,
33376 relativeoffset: GLuint,
33377 ) {
33378 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33379 {
33380 trace!(
33381 "calling gl.VertexArrayAttribIFormat({:?}, {:?}, {:?}, {:#X}, {:?});",
33382 vaobj,
33383 attribindex,
33384 size,
33385 type_,
33386 relativeoffset
33387 );
33388 }
33389 let out = call_atomic_ptr_5arg(
33390 "glVertexArrayAttribIFormat",
33391 &self.glVertexArrayAttribIFormat_p,
33392 vaobj,
33393 attribindex,
33394 size,
33395 type_,
33396 relativeoffset,
33397 );
33398 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33399 {
33400 self.automatic_glGetError("glVertexArrayAttribIFormat");
33401 }
33402 out
33403 }
33404 #[doc(hidden)]
33405 pub unsafe fn VertexArrayAttribIFormat_load_with_dyn(
33406 &self,
33407 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33408 ) -> bool {
33409 load_dyn_name_atomic_ptr(
33410 get_proc_address,
33411 b"glVertexArrayAttribIFormat\0",
33412 &self.glVertexArrayAttribIFormat_p,
33413 )
33414 }
33415 #[inline]
33416 #[doc(hidden)]
33417 pub fn VertexArrayAttribIFormat_is_loaded(&self) -> bool {
33418 !self.glVertexArrayAttribIFormat_p.load(RELAX).is_null()
33419 }
33420 #[cfg_attr(feature = "inline", inline)]
33423 #[cfg_attr(feature = "inline_always", inline(always))]
33424 pub unsafe fn VertexArrayAttribLFormat(
33425 &self,
33426 vaobj: GLuint,
33427 attribindex: GLuint,
33428 size: GLint,
33429 type_: GLenum,
33430 relativeoffset: GLuint,
33431 ) {
33432 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33433 {
33434 trace!(
33435 "calling gl.VertexArrayAttribLFormat({:?}, {:?}, {:?}, {:#X}, {:?});",
33436 vaobj,
33437 attribindex,
33438 size,
33439 type_,
33440 relativeoffset
33441 );
33442 }
33443 let out = call_atomic_ptr_5arg(
33444 "glVertexArrayAttribLFormat",
33445 &self.glVertexArrayAttribLFormat_p,
33446 vaobj,
33447 attribindex,
33448 size,
33449 type_,
33450 relativeoffset,
33451 );
33452 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33453 {
33454 self.automatic_glGetError("glVertexArrayAttribLFormat");
33455 }
33456 out
33457 }
33458 #[doc(hidden)]
33459 pub unsafe fn VertexArrayAttribLFormat_load_with_dyn(
33460 &self,
33461 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33462 ) -> bool {
33463 load_dyn_name_atomic_ptr(
33464 get_proc_address,
33465 b"glVertexArrayAttribLFormat\0",
33466 &self.glVertexArrayAttribLFormat_p,
33467 )
33468 }
33469 #[inline]
33470 #[doc(hidden)]
33471 pub fn VertexArrayAttribLFormat_is_loaded(&self) -> bool {
33472 !self.glVertexArrayAttribLFormat_p.load(RELAX).is_null()
33473 }
33474 #[cfg_attr(feature = "inline", inline)]
33476 #[cfg_attr(feature = "inline_always", inline(always))]
33477 pub unsafe fn VertexArrayBindingDivisor(
33478 &self,
33479 vaobj: GLuint,
33480 bindingindex: GLuint,
33481 divisor: GLuint,
33482 ) {
33483 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33484 {
33485 trace!(
33486 "calling gl.VertexArrayBindingDivisor({:?}, {:?}, {:?});",
33487 vaobj,
33488 bindingindex,
33489 divisor
33490 );
33491 }
33492 let out = call_atomic_ptr_3arg(
33493 "glVertexArrayBindingDivisor",
33494 &self.glVertexArrayBindingDivisor_p,
33495 vaobj,
33496 bindingindex,
33497 divisor,
33498 );
33499 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33500 {
33501 self.automatic_glGetError("glVertexArrayBindingDivisor");
33502 }
33503 out
33504 }
33505 #[doc(hidden)]
33506 pub unsafe fn VertexArrayBindingDivisor_load_with_dyn(
33507 &self,
33508 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33509 ) -> bool {
33510 load_dyn_name_atomic_ptr(
33511 get_proc_address,
33512 b"glVertexArrayBindingDivisor\0",
33513 &self.glVertexArrayBindingDivisor_p,
33514 )
33515 }
33516 #[inline]
33517 #[doc(hidden)]
33518 pub fn VertexArrayBindingDivisor_is_loaded(&self) -> bool {
33519 !self.glVertexArrayBindingDivisor_p.load(RELAX).is_null()
33520 }
33521 #[cfg_attr(feature = "inline", inline)]
33523 #[cfg_attr(feature = "inline_always", inline(always))]
33524 pub unsafe fn VertexArrayElementBuffer(&self, vaobj: GLuint, buffer: GLuint) {
33525 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33526 {
33527 trace!(
33528 "calling gl.VertexArrayElementBuffer({:?}, {:?});",
33529 vaobj,
33530 buffer
33531 );
33532 }
33533 let out = call_atomic_ptr_2arg(
33534 "glVertexArrayElementBuffer",
33535 &self.glVertexArrayElementBuffer_p,
33536 vaobj,
33537 buffer,
33538 );
33539 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33540 {
33541 self.automatic_glGetError("glVertexArrayElementBuffer");
33542 }
33543 out
33544 }
33545 #[doc(hidden)]
33546 pub unsafe fn VertexArrayElementBuffer_load_with_dyn(
33547 &self,
33548 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33549 ) -> bool {
33550 load_dyn_name_atomic_ptr(
33551 get_proc_address,
33552 b"glVertexArrayElementBuffer\0",
33553 &self.glVertexArrayElementBuffer_p,
33554 )
33555 }
33556 #[inline]
33557 #[doc(hidden)]
33558 pub fn VertexArrayElementBuffer_is_loaded(&self) -> bool {
33559 !self.glVertexArrayElementBuffer_p.load(RELAX).is_null()
33560 }
33561 #[cfg_attr(feature = "inline", inline)]
33563 #[cfg_attr(feature = "inline_always", inline(always))]
33564 pub unsafe fn VertexArrayVertexBuffer(
33565 &self,
33566 vaobj: GLuint,
33567 bindingindex: GLuint,
33568 buffer: GLuint,
33569 offset: GLintptr,
33570 stride: GLsizei,
33571 ) {
33572 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33573 {
33574 trace!(
33575 "calling gl.VertexArrayVertexBuffer({:?}, {:?}, {:?}, {:?}, {:?});",
33576 vaobj,
33577 bindingindex,
33578 buffer,
33579 offset,
33580 stride
33581 );
33582 }
33583 let out = call_atomic_ptr_5arg(
33584 "glVertexArrayVertexBuffer",
33585 &self.glVertexArrayVertexBuffer_p,
33586 vaobj,
33587 bindingindex,
33588 buffer,
33589 offset,
33590 stride,
33591 );
33592 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33593 {
33594 self.automatic_glGetError("glVertexArrayVertexBuffer");
33595 }
33596 out
33597 }
33598 #[doc(hidden)]
33599 pub unsafe fn VertexArrayVertexBuffer_load_with_dyn(
33600 &self,
33601 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33602 ) -> bool {
33603 load_dyn_name_atomic_ptr(
33604 get_proc_address,
33605 b"glVertexArrayVertexBuffer\0",
33606 &self.glVertexArrayVertexBuffer_p,
33607 )
33608 }
33609 #[inline]
33610 #[doc(hidden)]
33611 pub fn VertexArrayVertexBuffer_is_loaded(&self) -> bool {
33612 !self.glVertexArrayVertexBuffer_p.load(RELAX).is_null()
33613 }
33614 #[cfg_attr(feature = "inline", inline)]
33616 #[cfg_attr(feature = "inline_always", inline(always))]
33617 pub unsafe fn VertexArrayVertexBuffers(
33618 &self,
33619 vaobj: GLuint,
33620 first: GLuint,
33621 count: GLsizei,
33622 buffers: *const GLuint,
33623 offsets: *const GLintptr,
33624 strides: *const GLsizei,
33625 ) {
33626 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33627 {
33628 trace!(
33629 "calling gl.VertexArrayVertexBuffers({:?}, {:?}, {:?}, {:p}, {:p}, {:p});",
33630 vaobj,
33631 first,
33632 count,
33633 buffers,
33634 offsets,
33635 strides
33636 );
33637 }
33638 let out = call_atomic_ptr_6arg(
33639 "glVertexArrayVertexBuffers",
33640 &self.glVertexArrayVertexBuffers_p,
33641 vaobj,
33642 first,
33643 count,
33644 buffers,
33645 offsets,
33646 strides,
33647 );
33648 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33649 {
33650 self.automatic_glGetError("glVertexArrayVertexBuffers");
33651 }
33652 out
33653 }
33654 #[doc(hidden)]
33655 pub unsafe fn VertexArrayVertexBuffers_load_with_dyn(
33656 &self,
33657 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33658 ) -> bool {
33659 load_dyn_name_atomic_ptr(
33660 get_proc_address,
33661 b"glVertexArrayVertexBuffers\0",
33662 &self.glVertexArrayVertexBuffers_p,
33663 )
33664 }
33665 #[inline]
33666 #[doc(hidden)]
33667 pub fn VertexArrayVertexBuffers_is_loaded(&self) -> bool {
33668 !self.glVertexArrayVertexBuffers_p.load(RELAX).is_null()
33669 }
33670 #[cfg_attr(feature = "inline", inline)]
33673 #[cfg_attr(feature = "inline_always", inline(always))]
33674 pub unsafe fn VertexAttrib1d(&self, index: GLuint, x: GLdouble) {
33675 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33676 {
33677 trace!("calling gl.VertexAttrib1d({:?}, {:?});", index, x);
33678 }
33679 let out = call_atomic_ptr_2arg("glVertexAttrib1d", &self.glVertexAttrib1d_p, index, x);
33680 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33681 {
33682 self.automatic_glGetError("glVertexAttrib1d");
33683 }
33684 out
33685 }
33686 #[doc(hidden)]
33687 pub unsafe fn VertexAttrib1d_load_with_dyn(
33688 &self,
33689 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33690 ) -> bool {
33691 load_dyn_name_atomic_ptr(
33692 get_proc_address,
33693 b"glVertexAttrib1d\0",
33694 &self.glVertexAttrib1d_p,
33695 )
33696 }
33697 #[inline]
33698 #[doc(hidden)]
33699 pub fn VertexAttrib1d_is_loaded(&self) -> bool {
33700 !self.glVertexAttrib1d_p.load(RELAX).is_null()
33701 }
33702 #[cfg_attr(feature = "inline", inline)]
33705 #[cfg_attr(feature = "inline_always", inline(always))]
33706 pub unsafe fn VertexAttrib1dv(&self, index: GLuint, v: *const GLdouble) {
33707 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33708 {
33709 trace!("calling gl.VertexAttrib1dv({:?}, {:p});", index, v);
33710 }
33711 let out =
33712 call_atomic_ptr_2arg("glVertexAttrib1dv", &self.glVertexAttrib1dv_p, index, v);
33713 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33714 {
33715 self.automatic_glGetError("glVertexAttrib1dv");
33716 }
33717 out
33718 }
33719 #[doc(hidden)]
33720 pub unsafe fn VertexAttrib1dv_load_with_dyn(
33721 &self,
33722 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33723 ) -> bool {
33724 load_dyn_name_atomic_ptr(
33725 get_proc_address,
33726 b"glVertexAttrib1dv\0",
33727 &self.glVertexAttrib1dv_p,
33728 )
33729 }
33730 #[inline]
33731 #[doc(hidden)]
33732 pub fn VertexAttrib1dv_is_loaded(&self) -> bool {
33733 !self.glVertexAttrib1dv_p.load(RELAX).is_null()
33734 }
33735 #[cfg_attr(feature = "inline", inline)]
33738 #[cfg_attr(feature = "inline_always", inline(always))]
33739 pub unsafe fn VertexAttrib1f(&self, index: GLuint, x: GLfloat) {
33740 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33741 {
33742 trace!("calling gl.VertexAttrib1f({:?}, {:?});", index, x);
33743 }
33744 let out = call_atomic_ptr_2arg("glVertexAttrib1f", &self.glVertexAttrib1f_p, index, x);
33745 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33746 {
33747 self.automatic_glGetError("glVertexAttrib1f");
33748 }
33749 out
33750 }
33751 #[doc(hidden)]
33752 pub unsafe fn VertexAttrib1f_load_with_dyn(
33753 &self,
33754 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33755 ) -> bool {
33756 load_dyn_name_atomic_ptr(
33757 get_proc_address,
33758 b"glVertexAttrib1f\0",
33759 &self.glVertexAttrib1f_p,
33760 )
33761 }
33762 #[inline]
33763 #[doc(hidden)]
33764 pub fn VertexAttrib1f_is_loaded(&self) -> bool {
33765 !self.glVertexAttrib1f_p.load(RELAX).is_null()
33766 }
33767 #[cfg_attr(feature = "inline", inline)]
33770 #[cfg_attr(feature = "inline_always", inline(always))]
33771 pub unsafe fn VertexAttrib1fv(&self, index: GLuint, v: *const GLfloat) {
33772 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33773 {
33774 trace!("calling gl.VertexAttrib1fv({:?}, {:p});", index, v);
33775 }
33776 let out =
33777 call_atomic_ptr_2arg("glVertexAttrib1fv", &self.glVertexAttrib1fv_p, index, v);
33778 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33779 {
33780 self.automatic_glGetError("glVertexAttrib1fv");
33781 }
33782 out
33783 }
33784 #[doc(hidden)]
33785 pub unsafe fn VertexAttrib1fv_load_with_dyn(
33786 &self,
33787 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33788 ) -> bool {
33789 load_dyn_name_atomic_ptr(
33790 get_proc_address,
33791 b"glVertexAttrib1fv\0",
33792 &self.glVertexAttrib1fv_p,
33793 )
33794 }
33795 #[inline]
33796 #[doc(hidden)]
33797 pub fn VertexAttrib1fv_is_loaded(&self) -> bool {
33798 !self.glVertexAttrib1fv_p.load(RELAX).is_null()
33799 }
33800 #[cfg_attr(feature = "inline", inline)]
33803 #[cfg_attr(feature = "inline_always", inline(always))]
33804 pub unsafe fn VertexAttrib1s(&self, index: GLuint, x: GLshort) {
33805 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33806 {
33807 trace!("calling gl.VertexAttrib1s({:?}, {:?});", index, x);
33808 }
33809 let out = call_atomic_ptr_2arg("glVertexAttrib1s", &self.glVertexAttrib1s_p, index, x);
33810 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33811 {
33812 self.automatic_glGetError("glVertexAttrib1s");
33813 }
33814 out
33815 }
33816 #[doc(hidden)]
33817 pub unsafe fn VertexAttrib1s_load_with_dyn(
33818 &self,
33819 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33820 ) -> bool {
33821 load_dyn_name_atomic_ptr(
33822 get_proc_address,
33823 b"glVertexAttrib1s\0",
33824 &self.glVertexAttrib1s_p,
33825 )
33826 }
33827 #[inline]
33828 #[doc(hidden)]
33829 pub fn VertexAttrib1s_is_loaded(&self) -> bool {
33830 !self.glVertexAttrib1s_p.load(RELAX).is_null()
33831 }
33832 #[cfg_attr(feature = "inline", inline)]
33835 #[cfg_attr(feature = "inline_always", inline(always))]
33836 pub unsafe fn VertexAttrib1sv(&self, index: GLuint, v: *const GLshort) {
33837 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33838 {
33839 trace!("calling gl.VertexAttrib1sv({:?}, {:p});", index, v);
33840 }
33841 let out =
33842 call_atomic_ptr_2arg("glVertexAttrib1sv", &self.glVertexAttrib1sv_p, index, v);
33843 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33844 {
33845 self.automatic_glGetError("glVertexAttrib1sv");
33846 }
33847 out
33848 }
33849 #[doc(hidden)]
33850 pub unsafe fn VertexAttrib1sv_load_with_dyn(
33851 &self,
33852 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33853 ) -> bool {
33854 load_dyn_name_atomic_ptr(
33855 get_proc_address,
33856 b"glVertexAttrib1sv\0",
33857 &self.glVertexAttrib1sv_p,
33858 )
33859 }
33860 #[inline]
33861 #[doc(hidden)]
33862 pub fn VertexAttrib1sv_is_loaded(&self) -> bool {
33863 !self.glVertexAttrib1sv_p.load(RELAX).is_null()
33864 }
33865 #[cfg_attr(feature = "inline", inline)]
33868 #[cfg_attr(feature = "inline_always", inline(always))]
33869 pub unsafe fn VertexAttrib2d(&self, index: GLuint, x: GLdouble, y: GLdouble) {
33870 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33871 {
33872 trace!("calling gl.VertexAttrib2d({:?}, {:?}, {:?});", index, x, y);
33873 }
33874 let out =
33875 call_atomic_ptr_3arg("glVertexAttrib2d", &self.glVertexAttrib2d_p, index, x, y);
33876 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33877 {
33878 self.automatic_glGetError("glVertexAttrib2d");
33879 }
33880 out
33881 }
33882 #[doc(hidden)]
33883 pub unsafe fn VertexAttrib2d_load_with_dyn(
33884 &self,
33885 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33886 ) -> bool {
33887 load_dyn_name_atomic_ptr(
33888 get_proc_address,
33889 b"glVertexAttrib2d\0",
33890 &self.glVertexAttrib2d_p,
33891 )
33892 }
33893 #[inline]
33894 #[doc(hidden)]
33895 pub fn VertexAttrib2d_is_loaded(&self) -> bool {
33896 !self.glVertexAttrib2d_p.load(RELAX).is_null()
33897 }
33898 #[cfg_attr(feature = "inline", inline)]
33901 #[cfg_attr(feature = "inline_always", inline(always))]
33902 pub unsafe fn VertexAttrib2dv(&self, index: GLuint, v: *const GLdouble) {
33903 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33904 {
33905 trace!("calling gl.VertexAttrib2dv({:?}, {:p});", index, v);
33906 }
33907 let out =
33908 call_atomic_ptr_2arg("glVertexAttrib2dv", &self.glVertexAttrib2dv_p, index, v);
33909 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33910 {
33911 self.automatic_glGetError("glVertexAttrib2dv");
33912 }
33913 out
33914 }
33915 #[doc(hidden)]
33916 pub unsafe fn VertexAttrib2dv_load_with_dyn(
33917 &self,
33918 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33919 ) -> bool {
33920 load_dyn_name_atomic_ptr(
33921 get_proc_address,
33922 b"glVertexAttrib2dv\0",
33923 &self.glVertexAttrib2dv_p,
33924 )
33925 }
33926 #[inline]
33927 #[doc(hidden)]
33928 pub fn VertexAttrib2dv_is_loaded(&self) -> bool {
33929 !self.glVertexAttrib2dv_p.load(RELAX).is_null()
33930 }
33931 #[cfg_attr(feature = "inline", inline)]
33934 #[cfg_attr(feature = "inline_always", inline(always))]
33935 pub unsafe fn VertexAttrib2f(&self, index: GLuint, x: GLfloat, y: GLfloat) {
33936 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33937 {
33938 trace!("calling gl.VertexAttrib2f({:?}, {:?}, {:?});", index, x, y);
33939 }
33940 let out =
33941 call_atomic_ptr_3arg("glVertexAttrib2f", &self.glVertexAttrib2f_p, index, x, y);
33942 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33943 {
33944 self.automatic_glGetError("glVertexAttrib2f");
33945 }
33946 out
33947 }
33948 #[doc(hidden)]
33949 pub unsafe fn VertexAttrib2f_load_with_dyn(
33950 &self,
33951 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33952 ) -> bool {
33953 load_dyn_name_atomic_ptr(
33954 get_proc_address,
33955 b"glVertexAttrib2f\0",
33956 &self.glVertexAttrib2f_p,
33957 )
33958 }
33959 #[inline]
33960 #[doc(hidden)]
33961 pub fn VertexAttrib2f_is_loaded(&self) -> bool {
33962 !self.glVertexAttrib2f_p.load(RELAX).is_null()
33963 }
33964 #[cfg_attr(feature = "inline", inline)]
33967 #[cfg_attr(feature = "inline_always", inline(always))]
33968 pub unsafe fn VertexAttrib2fv(&self, index: GLuint, v: *const GLfloat) {
33969 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33970 {
33971 trace!("calling gl.VertexAttrib2fv({:?}, {:p});", index, v);
33972 }
33973 let out =
33974 call_atomic_ptr_2arg("glVertexAttrib2fv", &self.glVertexAttrib2fv_p, index, v);
33975 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33976 {
33977 self.automatic_glGetError("glVertexAttrib2fv");
33978 }
33979 out
33980 }
33981 #[doc(hidden)]
33982 pub unsafe fn VertexAttrib2fv_load_with_dyn(
33983 &self,
33984 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33985 ) -> bool {
33986 load_dyn_name_atomic_ptr(
33987 get_proc_address,
33988 b"glVertexAttrib2fv\0",
33989 &self.glVertexAttrib2fv_p,
33990 )
33991 }
33992 #[inline]
33993 #[doc(hidden)]
33994 pub fn VertexAttrib2fv_is_loaded(&self) -> bool {
33995 !self.glVertexAttrib2fv_p.load(RELAX).is_null()
33996 }
33997 #[cfg_attr(feature = "inline", inline)]
34000 #[cfg_attr(feature = "inline_always", inline(always))]
34001 pub unsafe fn VertexAttrib2s(&self, index: GLuint, x: GLshort, y: GLshort) {
34002 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34003 {
34004 trace!("calling gl.VertexAttrib2s({:?}, {:?}, {:?});", index, x, y);
34005 }
34006 let out =
34007 call_atomic_ptr_3arg("glVertexAttrib2s", &self.glVertexAttrib2s_p, index, x, y);
34008 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34009 {
34010 self.automatic_glGetError("glVertexAttrib2s");
34011 }
34012 out
34013 }
34014 #[doc(hidden)]
34015 pub unsafe fn VertexAttrib2s_load_with_dyn(
34016 &self,
34017 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34018 ) -> bool {
34019 load_dyn_name_atomic_ptr(
34020 get_proc_address,
34021 b"glVertexAttrib2s\0",
34022 &self.glVertexAttrib2s_p,
34023 )
34024 }
34025 #[inline]
34026 #[doc(hidden)]
34027 pub fn VertexAttrib2s_is_loaded(&self) -> bool {
34028 !self.glVertexAttrib2s_p.load(RELAX).is_null()
34029 }
34030 #[cfg_attr(feature = "inline", inline)]
34033 #[cfg_attr(feature = "inline_always", inline(always))]
34034 pub unsafe fn VertexAttrib2sv(&self, index: GLuint, v: *const GLshort) {
34035 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34036 {
34037 trace!("calling gl.VertexAttrib2sv({:?}, {:p});", index, v);
34038 }
34039 let out =
34040 call_atomic_ptr_2arg("glVertexAttrib2sv", &self.glVertexAttrib2sv_p, index, v);
34041 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34042 {
34043 self.automatic_glGetError("glVertexAttrib2sv");
34044 }
34045 out
34046 }
34047 #[doc(hidden)]
34048 pub unsafe fn VertexAttrib2sv_load_with_dyn(
34049 &self,
34050 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34051 ) -> bool {
34052 load_dyn_name_atomic_ptr(
34053 get_proc_address,
34054 b"glVertexAttrib2sv\0",
34055 &self.glVertexAttrib2sv_p,
34056 )
34057 }
34058 #[inline]
34059 #[doc(hidden)]
34060 pub fn VertexAttrib2sv_is_loaded(&self) -> bool {
34061 !self.glVertexAttrib2sv_p.load(RELAX).is_null()
34062 }
34063 #[cfg_attr(feature = "inline", inline)]
34066 #[cfg_attr(feature = "inline_always", inline(always))]
34067 pub unsafe fn VertexAttrib3d(&self, index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble) {
34068 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34069 {
34070 trace!(
34071 "calling gl.VertexAttrib3d({:?}, {:?}, {:?}, {:?});",
34072 index,
34073 x,
34074 y,
34075 z
34076 );
34077 }
34078 let out =
34079 call_atomic_ptr_4arg("glVertexAttrib3d", &self.glVertexAttrib3d_p, index, x, y, z);
34080 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34081 {
34082 self.automatic_glGetError("glVertexAttrib3d");
34083 }
34084 out
34085 }
34086 #[doc(hidden)]
34087 pub unsafe fn VertexAttrib3d_load_with_dyn(
34088 &self,
34089 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34090 ) -> bool {
34091 load_dyn_name_atomic_ptr(
34092 get_proc_address,
34093 b"glVertexAttrib3d\0",
34094 &self.glVertexAttrib3d_p,
34095 )
34096 }
34097 #[inline]
34098 #[doc(hidden)]
34099 pub fn VertexAttrib3d_is_loaded(&self) -> bool {
34100 !self.glVertexAttrib3d_p.load(RELAX).is_null()
34101 }
34102 #[cfg_attr(feature = "inline", inline)]
34105 #[cfg_attr(feature = "inline_always", inline(always))]
34106 pub unsafe fn VertexAttrib3dv(&self, index: GLuint, v: *const GLdouble) {
34107 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34108 {
34109 trace!("calling gl.VertexAttrib3dv({:?}, {:p});", index, v);
34110 }
34111 let out =
34112 call_atomic_ptr_2arg("glVertexAttrib3dv", &self.glVertexAttrib3dv_p, index, v);
34113 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34114 {
34115 self.automatic_glGetError("glVertexAttrib3dv");
34116 }
34117 out
34118 }
34119 #[doc(hidden)]
34120 pub unsafe fn VertexAttrib3dv_load_with_dyn(
34121 &self,
34122 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34123 ) -> bool {
34124 load_dyn_name_atomic_ptr(
34125 get_proc_address,
34126 b"glVertexAttrib3dv\0",
34127 &self.glVertexAttrib3dv_p,
34128 )
34129 }
34130 #[inline]
34131 #[doc(hidden)]
34132 pub fn VertexAttrib3dv_is_loaded(&self) -> bool {
34133 !self.glVertexAttrib3dv_p.load(RELAX).is_null()
34134 }
34135 #[cfg_attr(feature = "inline", inline)]
34138 #[cfg_attr(feature = "inline_always", inline(always))]
34139 pub unsafe fn VertexAttrib3f(&self, index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat) {
34140 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34141 {
34142 trace!(
34143 "calling gl.VertexAttrib3f({:?}, {:?}, {:?}, {:?});",
34144 index,
34145 x,
34146 y,
34147 z
34148 );
34149 }
34150 let out =
34151 call_atomic_ptr_4arg("glVertexAttrib3f", &self.glVertexAttrib3f_p, index, x, y, z);
34152 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34153 {
34154 self.automatic_glGetError("glVertexAttrib3f");
34155 }
34156 out
34157 }
34158 #[doc(hidden)]
34159 pub unsafe fn VertexAttrib3f_load_with_dyn(
34160 &self,
34161 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34162 ) -> bool {
34163 load_dyn_name_atomic_ptr(
34164 get_proc_address,
34165 b"glVertexAttrib3f\0",
34166 &self.glVertexAttrib3f_p,
34167 )
34168 }
34169 #[inline]
34170 #[doc(hidden)]
34171 pub fn VertexAttrib3f_is_loaded(&self) -> bool {
34172 !self.glVertexAttrib3f_p.load(RELAX).is_null()
34173 }
34174 #[cfg_attr(feature = "inline", inline)]
34177 #[cfg_attr(feature = "inline_always", inline(always))]
34178 pub unsafe fn VertexAttrib3fv(&self, index: GLuint, v: *const GLfloat) {
34179 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34180 {
34181 trace!("calling gl.VertexAttrib3fv({:?}, {:p});", index, v);
34182 }
34183 let out =
34184 call_atomic_ptr_2arg("glVertexAttrib3fv", &self.glVertexAttrib3fv_p, index, v);
34185 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34186 {
34187 self.automatic_glGetError("glVertexAttrib3fv");
34188 }
34189 out
34190 }
34191 #[doc(hidden)]
34192 pub unsafe fn VertexAttrib3fv_load_with_dyn(
34193 &self,
34194 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34195 ) -> bool {
34196 load_dyn_name_atomic_ptr(
34197 get_proc_address,
34198 b"glVertexAttrib3fv\0",
34199 &self.glVertexAttrib3fv_p,
34200 )
34201 }
34202 #[inline]
34203 #[doc(hidden)]
34204 pub fn VertexAttrib3fv_is_loaded(&self) -> bool {
34205 !self.glVertexAttrib3fv_p.load(RELAX).is_null()
34206 }
34207 #[cfg_attr(feature = "inline", inline)]
34210 #[cfg_attr(feature = "inline_always", inline(always))]
34211 pub unsafe fn VertexAttrib3s(&self, index: GLuint, x: GLshort, y: GLshort, z: GLshort) {
34212 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34213 {
34214 trace!(
34215 "calling gl.VertexAttrib3s({:?}, {:?}, {:?}, {:?});",
34216 index,
34217 x,
34218 y,
34219 z
34220 );
34221 }
34222 let out =
34223 call_atomic_ptr_4arg("glVertexAttrib3s", &self.glVertexAttrib3s_p, index, x, y, z);
34224 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34225 {
34226 self.automatic_glGetError("glVertexAttrib3s");
34227 }
34228 out
34229 }
34230 #[doc(hidden)]
34231 pub unsafe fn VertexAttrib3s_load_with_dyn(
34232 &self,
34233 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34234 ) -> bool {
34235 load_dyn_name_atomic_ptr(
34236 get_proc_address,
34237 b"glVertexAttrib3s\0",
34238 &self.glVertexAttrib3s_p,
34239 )
34240 }
34241 #[inline]
34242 #[doc(hidden)]
34243 pub fn VertexAttrib3s_is_loaded(&self) -> bool {
34244 !self.glVertexAttrib3s_p.load(RELAX).is_null()
34245 }
34246 #[cfg_attr(feature = "inline", inline)]
34249 #[cfg_attr(feature = "inline_always", inline(always))]
34250 pub unsafe fn VertexAttrib3sv(&self, index: GLuint, v: *const GLshort) {
34251 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34252 {
34253 trace!("calling gl.VertexAttrib3sv({:?}, {:p});", index, v);
34254 }
34255 let out =
34256 call_atomic_ptr_2arg("glVertexAttrib3sv", &self.glVertexAttrib3sv_p, index, v);
34257 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34258 {
34259 self.automatic_glGetError("glVertexAttrib3sv");
34260 }
34261 out
34262 }
34263 #[doc(hidden)]
34264 pub unsafe fn VertexAttrib3sv_load_with_dyn(
34265 &self,
34266 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34267 ) -> bool {
34268 load_dyn_name_atomic_ptr(
34269 get_proc_address,
34270 b"glVertexAttrib3sv\0",
34271 &self.glVertexAttrib3sv_p,
34272 )
34273 }
34274 #[inline]
34275 #[doc(hidden)]
34276 pub fn VertexAttrib3sv_is_loaded(&self) -> bool {
34277 !self.glVertexAttrib3sv_p.load(RELAX).is_null()
34278 }
34279 #[cfg_attr(feature = "inline", inline)]
34282 #[cfg_attr(feature = "inline_always", inline(always))]
34283 pub unsafe fn VertexAttrib4Nbv(&self, index: GLuint, v: *const GLbyte) {
34284 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34285 {
34286 trace!("calling gl.VertexAttrib4Nbv({:?}, {:p});", index, v);
34287 }
34288 let out =
34289 call_atomic_ptr_2arg("glVertexAttrib4Nbv", &self.glVertexAttrib4Nbv_p, index, v);
34290 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34291 {
34292 self.automatic_glGetError("glVertexAttrib4Nbv");
34293 }
34294 out
34295 }
34296 #[doc(hidden)]
34297 pub unsafe fn VertexAttrib4Nbv_load_with_dyn(
34298 &self,
34299 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34300 ) -> bool {
34301 load_dyn_name_atomic_ptr(
34302 get_proc_address,
34303 b"glVertexAttrib4Nbv\0",
34304 &self.glVertexAttrib4Nbv_p,
34305 )
34306 }
34307 #[inline]
34308 #[doc(hidden)]
34309 pub fn VertexAttrib4Nbv_is_loaded(&self) -> bool {
34310 !self.glVertexAttrib4Nbv_p.load(RELAX).is_null()
34311 }
34312 #[cfg_attr(feature = "inline", inline)]
34315 #[cfg_attr(feature = "inline_always", inline(always))]
34316 pub unsafe fn VertexAttrib4Niv(&self, index: GLuint, v: *const GLint) {
34317 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34318 {
34319 trace!("calling gl.VertexAttrib4Niv({:?}, {:p});", index, v);
34320 }
34321 let out =
34322 call_atomic_ptr_2arg("glVertexAttrib4Niv", &self.glVertexAttrib4Niv_p, index, v);
34323 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34324 {
34325 self.automatic_glGetError("glVertexAttrib4Niv");
34326 }
34327 out
34328 }
34329 #[doc(hidden)]
34330 pub unsafe fn VertexAttrib4Niv_load_with_dyn(
34331 &self,
34332 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34333 ) -> bool {
34334 load_dyn_name_atomic_ptr(
34335 get_proc_address,
34336 b"glVertexAttrib4Niv\0",
34337 &self.glVertexAttrib4Niv_p,
34338 )
34339 }
34340 #[inline]
34341 #[doc(hidden)]
34342 pub fn VertexAttrib4Niv_is_loaded(&self) -> bool {
34343 !self.glVertexAttrib4Niv_p.load(RELAX).is_null()
34344 }
34345 #[cfg_attr(feature = "inline", inline)]
34348 #[cfg_attr(feature = "inline_always", inline(always))]
34349 pub unsafe fn VertexAttrib4Nsv(&self, index: GLuint, v: *const GLshort) {
34350 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34351 {
34352 trace!("calling gl.VertexAttrib4Nsv({:?}, {:p});", index, v);
34353 }
34354 let out =
34355 call_atomic_ptr_2arg("glVertexAttrib4Nsv", &self.glVertexAttrib4Nsv_p, index, v);
34356 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34357 {
34358 self.automatic_glGetError("glVertexAttrib4Nsv");
34359 }
34360 out
34361 }
34362 #[doc(hidden)]
34363 pub unsafe fn VertexAttrib4Nsv_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"glVertexAttrib4Nsv\0",
34370 &self.glVertexAttrib4Nsv_p,
34371 )
34372 }
34373 #[inline]
34374 #[doc(hidden)]
34375 pub fn VertexAttrib4Nsv_is_loaded(&self) -> bool {
34376 !self.glVertexAttrib4Nsv_p.load(RELAX).is_null()
34377 }
34378 #[cfg_attr(feature = "inline", inline)]
34380 #[cfg_attr(feature = "inline_always", inline(always))]
34381 pub unsafe fn VertexAttrib4Nub(
34382 &self,
34383 index: GLuint,
34384 x: GLubyte,
34385 y: GLubyte,
34386 z: GLubyte,
34387 w: GLubyte,
34388 ) {
34389 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34390 {
34391 trace!(
34392 "calling gl.VertexAttrib4Nub({:?}, {:?}, {:?}, {:?}, {:?});",
34393 index,
34394 x,
34395 y,
34396 z,
34397 w
34398 );
34399 }
34400 let out = call_atomic_ptr_5arg(
34401 "glVertexAttrib4Nub",
34402 &self.glVertexAttrib4Nub_p,
34403 index,
34404 x,
34405 y,
34406 z,
34407 w,
34408 );
34409 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34410 {
34411 self.automatic_glGetError("glVertexAttrib4Nub");
34412 }
34413 out
34414 }
34415 #[doc(hidden)]
34416 pub unsafe fn VertexAttrib4Nub_load_with_dyn(
34417 &self,
34418 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34419 ) -> bool {
34420 load_dyn_name_atomic_ptr(
34421 get_proc_address,
34422 b"glVertexAttrib4Nub\0",
34423 &self.glVertexAttrib4Nub_p,
34424 )
34425 }
34426 #[inline]
34427 #[doc(hidden)]
34428 pub fn VertexAttrib4Nub_is_loaded(&self) -> bool {
34429 !self.glVertexAttrib4Nub_p.load(RELAX).is_null()
34430 }
34431 #[cfg_attr(feature = "inline", inline)]
34434 #[cfg_attr(feature = "inline_always", inline(always))]
34435 pub unsafe fn VertexAttrib4Nubv(&self, index: GLuint, v: *const GLubyte) {
34436 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34437 {
34438 trace!("calling gl.VertexAttrib4Nubv({:?}, {:p});", index, v);
34439 }
34440 let out =
34441 call_atomic_ptr_2arg("glVertexAttrib4Nubv", &self.glVertexAttrib4Nubv_p, index, v);
34442 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34443 {
34444 self.automatic_glGetError("glVertexAttrib4Nubv");
34445 }
34446 out
34447 }
34448 #[doc(hidden)]
34449 pub unsafe fn VertexAttrib4Nubv_load_with_dyn(
34450 &self,
34451 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34452 ) -> bool {
34453 load_dyn_name_atomic_ptr(
34454 get_proc_address,
34455 b"glVertexAttrib4Nubv\0",
34456 &self.glVertexAttrib4Nubv_p,
34457 )
34458 }
34459 #[inline]
34460 #[doc(hidden)]
34461 pub fn VertexAttrib4Nubv_is_loaded(&self) -> bool {
34462 !self.glVertexAttrib4Nubv_p.load(RELAX).is_null()
34463 }
34464 #[cfg_attr(feature = "inline", inline)]
34467 #[cfg_attr(feature = "inline_always", inline(always))]
34468 pub unsafe fn VertexAttrib4Nuiv(&self, index: GLuint, v: *const GLuint) {
34469 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34470 {
34471 trace!("calling gl.VertexAttrib4Nuiv({:?}, {:p});", index, v);
34472 }
34473 let out =
34474 call_atomic_ptr_2arg("glVertexAttrib4Nuiv", &self.glVertexAttrib4Nuiv_p, index, v);
34475 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34476 {
34477 self.automatic_glGetError("glVertexAttrib4Nuiv");
34478 }
34479 out
34480 }
34481 #[doc(hidden)]
34482 pub unsafe fn VertexAttrib4Nuiv_load_with_dyn(
34483 &self,
34484 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34485 ) -> bool {
34486 load_dyn_name_atomic_ptr(
34487 get_proc_address,
34488 b"glVertexAttrib4Nuiv\0",
34489 &self.glVertexAttrib4Nuiv_p,
34490 )
34491 }
34492 #[inline]
34493 #[doc(hidden)]
34494 pub fn VertexAttrib4Nuiv_is_loaded(&self) -> bool {
34495 !self.glVertexAttrib4Nuiv_p.load(RELAX).is_null()
34496 }
34497 #[cfg_attr(feature = "inline", inline)]
34500 #[cfg_attr(feature = "inline_always", inline(always))]
34501 pub unsafe fn VertexAttrib4Nusv(&self, index: GLuint, v: *const GLushort) {
34502 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34503 {
34504 trace!("calling gl.VertexAttrib4Nusv({:?}, {:p});", index, v);
34505 }
34506 let out =
34507 call_atomic_ptr_2arg("glVertexAttrib4Nusv", &self.glVertexAttrib4Nusv_p, index, v);
34508 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34509 {
34510 self.automatic_glGetError("glVertexAttrib4Nusv");
34511 }
34512 out
34513 }
34514 #[doc(hidden)]
34515 pub unsafe fn VertexAttrib4Nusv_load_with_dyn(
34516 &self,
34517 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34518 ) -> bool {
34519 load_dyn_name_atomic_ptr(
34520 get_proc_address,
34521 b"glVertexAttrib4Nusv\0",
34522 &self.glVertexAttrib4Nusv_p,
34523 )
34524 }
34525 #[inline]
34526 #[doc(hidden)]
34527 pub fn VertexAttrib4Nusv_is_loaded(&self) -> bool {
34528 !self.glVertexAttrib4Nusv_p.load(RELAX).is_null()
34529 }
34530 #[cfg_attr(feature = "inline", inline)]
34533 #[cfg_attr(feature = "inline_always", inline(always))]
34534 pub unsafe fn VertexAttrib4bv(&self, index: GLuint, v: *const GLbyte) {
34535 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34536 {
34537 trace!("calling gl.VertexAttrib4bv({:?}, {:p});", index, v);
34538 }
34539 let out =
34540 call_atomic_ptr_2arg("glVertexAttrib4bv", &self.glVertexAttrib4bv_p, index, v);
34541 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34542 {
34543 self.automatic_glGetError("glVertexAttrib4bv");
34544 }
34545 out
34546 }
34547 #[doc(hidden)]
34548 pub unsafe fn VertexAttrib4bv_load_with_dyn(
34549 &self,
34550 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34551 ) -> bool {
34552 load_dyn_name_atomic_ptr(
34553 get_proc_address,
34554 b"glVertexAttrib4bv\0",
34555 &self.glVertexAttrib4bv_p,
34556 )
34557 }
34558 #[inline]
34559 #[doc(hidden)]
34560 pub fn VertexAttrib4bv_is_loaded(&self) -> bool {
34561 !self.glVertexAttrib4bv_p.load(RELAX).is_null()
34562 }
34563 #[cfg_attr(feature = "inline", inline)]
34566 #[cfg_attr(feature = "inline_always", inline(always))]
34567 pub unsafe fn VertexAttrib4d(
34568 &self,
34569 index: GLuint,
34570 x: GLdouble,
34571 y: GLdouble,
34572 z: GLdouble,
34573 w: GLdouble,
34574 ) {
34575 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34576 {
34577 trace!(
34578 "calling gl.VertexAttrib4d({:?}, {:?}, {:?}, {:?}, {:?});",
34579 index,
34580 x,
34581 y,
34582 z,
34583 w
34584 );
34585 }
34586 let out = call_atomic_ptr_5arg(
34587 "glVertexAttrib4d",
34588 &self.glVertexAttrib4d_p,
34589 index,
34590 x,
34591 y,
34592 z,
34593 w,
34594 );
34595 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34596 {
34597 self.automatic_glGetError("glVertexAttrib4d");
34598 }
34599 out
34600 }
34601 #[doc(hidden)]
34602 pub unsafe fn VertexAttrib4d_load_with_dyn(
34603 &self,
34604 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34605 ) -> bool {
34606 load_dyn_name_atomic_ptr(
34607 get_proc_address,
34608 b"glVertexAttrib4d\0",
34609 &self.glVertexAttrib4d_p,
34610 )
34611 }
34612 #[inline]
34613 #[doc(hidden)]
34614 pub fn VertexAttrib4d_is_loaded(&self) -> bool {
34615 !self.glVertexAttrib4d_p.load(RELAX).is_null()
34616 }
34617 #[cfg_attr(feature = "inline", inline)]
34620 #[cfg_attr(feature = "inline_always", inline(always))]
34621 pub unsafe fn VertexAttrib4dv(&self, index: GLuint, v: *const GLdouble) {
34622 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34623 {
34624 trace!("calling gl.VertexAttrib4dv({:?}, {:p});", index, v);
34625 }
34626 let out =
34627 call_atomic_ptr_2arg("glVertexAttrib4dv", &self.glVertexAttrib4dv_p, index, v);
34628 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34629 {
34630 self.automatic_glGetError("glVertexAttrib4dv");
34631 }
34632 out
34633 }
34634 #[doc(hidden)]
34635 pub unsafe fn VertexAttrib4dv_load_with_dyn(
34636 &self,
34637 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34638 ) -> bool {
34639 load_dyn_name_atomic_ptr(
34640 get_proc_address,
34641 b"glVertexAttrib4dv\0",
34642 &self.glVertexAttrib4dv_p,
34643 )
34644 }
34645 #[inline]
34646 #[doc(hidden)]
34647 pub fn VertexAttrib4dv_is_loaded(&self) -> bool {
34648 !self.glVertexAttrib4dv_p.load(RELAX).is_null()
34649 }
34650 #[cfg_attr(feature = "inline", inline)]
34653 #[cfg_attr(feature = "inline_always", inline(always))]
34654 pub unsafe fn VertexAttrib4f(
34655 &self,
34656 index: GLuint,
34657 x: GLfloat,
34658 y: GLfloat,
34659 z: GLfloat,
34660 w: GLfloat,
34661 ) {
34662 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34663 {
34664 trace!(
34665 "calling gl.VertexAttrib4f({:?}, {:?}, {:?}, {:?}, {:?});",
34666 index,
34667 x,
34668 y,
34669 z,
34670 w
34671 );
34672 }
34673 let out = call_atomic_ptr_5arg(
34674 "glVertexAttrib4f",
34675 &self.glVertexAttrib4f_p,
34676 index,
34677 x,
34678 y,
34679 z,
34680 w,
34681 );
34682 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34683 {
34684 self.automatic_glGetError("glVertexAttrib4f");
34685 }
34686 out
34687 }
34688 #[doc(hidden)]
34689 pub unsafe fn VertexAttrib4f_load_with_dyn(
34690 &self,
34691 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34692 ) -> bool {
34693 load_dyn_name_atomic_ptr(
34694 get_proc_address,
34695 b"glVertexAttrib4f\0",
34696 &self.glVertexAttrib4f_p,
34697 )
34698 }
34699 #[inline]
34700 #[doc(hidden)]
34701 pub fn VertexAttrib4f_is_loaded(&self) -> bool {
34702 !self.glVertexAttrib4f_p.load(RELAX).is_null()
34703 }
34704 #[cfg_attr(feature = "inline", inline)]
34707 #[cfg_attr(feature = "inline_always", inline(always))]
34708 pub unsafe fn VertexAttrib4fv(&self, index: GLuint, v: *const GLfloat) {
34709 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34710 {
34711 trace!("calling gl.VertexAttrib4fv({:?}, {:p});", index, v);
34712 }
34713 let out =
34714 call_atomic_ptr_2arg("glVertexAttrib4fv", &self.glVertexAttrib4fv_p, index, v);
34715 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34716 {
34717 self.automatic_glGetError("glVertexAttrib4fv");
34718 }
34719 out
34720 }
34721 #[doc(hidden)]
34722 pub unsafe fn VertexAttrib4fv_load_with_dyn(
34723 &self,
34724 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34725 ) -> bool {
34726 load_dyn_name_atomic_ptr(
34727 get_proc_address,
34728 b"glVertexAttrib4fv\0",
34729 &self.glVertexAttrib4fv_p,
34730 )
34731 }
34732 #[inline]
34733 #[doc(hidden)]
34734 pub fn VertexAttrib4fv_is_loaded(&self) -> bool {
34735 !self.glVertexAttrib4fv_p.load(RELAX).is_null()
34736 }
34737 #[cfg_attr(feature = "inline", inline)]
34740 #[cfg_attr(feature = "inline_always", inline(always))]
34741 pub unsafe fn VertexAttrib4iv(&self, index: GLuint, v: *const GLint) {
34742 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34743 {
34744 trace!("calling gl.VertexAttrib4iv({:?}, {:p});", index, v);
34745 }
34746 let out =
34747 call_atomic_ptr_2arg("glVertexAttrib4iv", &self.glVertexAttrib4iv_p, index, v);
34748 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34749 {
34750 self.automatic_glGetError("glVertexAttrib4iv");
34751 }
34752 out
34753 }
34754 #[doc(hidden)]
34755 pub unsafe fn VertexAttrib4iv_load_with_dyn(
34756 &self,
34757 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34758 ) -> bool {
34759 load_dyn_name_atomic_ptr(
34760 get_proc_address,
34761 b"glVertexAttrib4iv\0",
34762 &self.glVertexAttrib4iv_p,
34763 )
34764 }
34765 #[inline]
34766 #[doc(hidden)]
34767 pub fn VertexAttrib4iv_is_loaded(&self) -> bool {
34768 !self.glVertexAttrib4iv_p.load(RELAX).is_null()
34769 }
34770 #[cfg_attr(feature = "inline", inline)]
34773 #[cfg_attr(feature = "inline_always", inline(always))]
34774 pub unsafe fn VertexAttrib4s(
34775 &self,
34776 index: GLuint,
34777 x: GLshort,
34778 y: GLshort,
34779 z: GLshort,
34780 w: GLshort,
34781 ) {
34782 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34783 {
34784 trace!(
34785 "calling gl.VertexAttrib4s({:?}, {:?}, {:?}, {:?}, {:?});",
34786 index,
34787 x,
34788 y,
34789 z,
34790 w
34791 );
34792 }
34793 let out = call_atomic_ptr_5arg(
34794 "glVertexAttrib4s",
34795 &self.glVertexAttrib4s_p,
34796 index,
34797 x,
34798 y,
34799 z,
34800 w,
34801 );
34802 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34803 {
34804 self.automatic_glGetError("glVertexAttrib4s");
34805 }
34806 out
34807 }
34808 #[doc(hidden)]
34809 pub unsafe fn VertexAttrib4s_load_with_dyn(
34810 &self,
34811 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34812 ) -> bool {
34813 load_dyn_name_atomic_ptr(
34814 get_proc_address,
34815 b"glVertexAttrib4s\0",
34816 &self.glVertexAttrib4s_p,
34817 )
34818 }
34819 #[inline]
34820 #[doc(hidden)]
34821 pub fn VertexAttrib4s_is_loaded(&self) -> bool {
34822 !self.glVertexAttrib4s_p.load(RELAX).is_null()
34823 }
34824 #[cfg_attr(feature = "inline", inline)]
34827 #[cfg_attr(feature = "inline_always", inline(always))]
34828 pub unsafe fn VertexAttrib4sv(&self, index: GLuint, v: *const GLshort) {
34829 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34830 {
34831 trace!("calling gl.VertexAttrib4sv({:?}, {:p});", index, v);
34832 }
34833 let out =
34834 call_atomic_ptr_2arg("glVertexAttrib4sv", &self.glVertexAttrib4sv_p, index, v);
34835 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34836 {
34837 self.automatic_glGetError("glVertexAttrib4sv");
34838 }
34839 out
34840 }
34841 #[doc(hidden)]
34842 pub unsafe fn VertexAttrib4sv_load_with_dyn(
34843 &self,
34844 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34845 ) -> bool {
34846 load_dyn_name_atomic_ptr(
34847 get_proc_address,
34848 b"glVertexAttrib4sv\0",
34849 &self.glVertexAttrib4sv_p,
34850 )
34851 }
34852 #[inline]
34853 #[doc(hidden)]
34854 pub fn VertexAttrib4sv_is_loaded(&self) -> bool {
34855 !self.glVertexAttrib4sv_p.load(RELAX).is_null()
34856 }
34857 #[cfg_attr(feature = "inline", inline)]
34860 #[cfg_attr(feature = "inline_always", inline(always))]
34861 pub unsafe fn VertexAttrib4ubv(&self, index: GLuint, v: *const GLubyte) {
34862 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34863 {
34864 trace!("calling gl.VertexAttrib4ubv({:?}, {:p});", index, v);
34865 }
34866 let out =
34867 call_atomic_ptr_2arg("glVertexAttrib4ubv", &self.glVertexAttrib4ubv_p, index, v);
34868 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34869 {
34870 self.automatic_glGetError("glVertexAttrib4ubv");
34871 }
34872 out
34873 }
34874 #[doc(hidden)]
34875 pub unsafe fn VertexAttrib4ubv_load_with_dyn(
34876 &self,
34877 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34878 ) -> bool {
34879 load_dyn_name_atomic_ptr(
34880 get_proc_address,
34881 b"glVertexAttrib4ubv\0",
34882 &self.glVertexAttrib4ubv_p,
34883 )
34884 }
34885 #[inline]
34886 #[doc(hidden)]
34887 pub fn VertexAttrib4ubv_is_loaded(&self) -> bool {
34888 !self.glVertexAttrib4ubv_p.load(RELAX).is_null()
34889 }
34890 #[cfg_attr(feature = "inline", inline)]
34893 #[cfg_attr(feature = "inline_always", inline(always))]
34894 pub unsafe fn VertexAttrib4uiv(&self, index: GLuint, v: *const GLuint) {
34895 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34896 {
34897 trace!("calling gl.VertexAttrib4uiv({:?}, {:p});", index, v);
34898 }
34899 let out =
34900 call_atomic_ptr_2arg("glVertexAttrib4uiv", &self.glVertexAttrib4uiv_p, index, v);
34901 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34902 {
34903 self.automatic_glGetError("glVertexAttrib4uiv");
34904 }
34905 out
34906 }
34907 #[doc(hidden)]
34908 pub unsafe fn VertexAttrib4uiv_load_with_dyn(
34909 &self,
34910 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34911 ) -> bool {
34912 load_dyn_name_atomic_ptr(
34913 get_proc_address,
34914 b"glVertexAttrib4uiv\0",
34915 &self.glVertexAttrib4uiv_p,
34916 )
34917 }
34918 #[inline]
34919 #[doc(hidden)]
34920 pub fn VertexAttrib4uiv_is_loaded(&self) -> bool {
34921 !self.glVertexAttrib4uiv_p.load(RELAX).is_null()
34922 }
34923 #[cfg_attr(feature = "inline", inline)]
34926 #[cfg_attr(feature = "inline_always", inline(always))]
34927 pub unsafe fn VertexAttrib4usv(&self, index: GLuint, v: *const GLushort) {
34928 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34929 {
34930 trace!("calling gl.VertexAttrib4usv({:?}, {:p});", index, v);
34931 }
34932 let out =
34933 call_atomic_ptr_2arg("glVertexAttrib4usv", &self.glVertexAttrib4usv_p, index, v);
34934 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34935 {
34936 self.automatic_glGetError("glVertexAttrib4usv");
34937 }
34938 out
34939 }
34940 #[doc(hidden)]
34941 pub unsafe fn VertexAttrib4usv_load_with_dyn(
34942 &self,
34943 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34944 ) -> bool {
34945 load_dyn_name_atomic_ptr(
34946 get_proc_address,
34947 b"glVertexAttrib4usv\0",
34948 &self.glVertexAttrib4usv_p,
34949 )
34950 }
34951 #[inline]
34952 #[doc(hidden)]
34953 pub fn VertexAttrib4usv_is_loaded(&self) -> bool {
34954 !self.glVertexAttrib4usv_p.load(RELAX).is_null()
34955 }
34956 #[cfg_attr(feature = "inline", inline)]
34958 #[cfg_attr(feature = "inline_always", inline(always))]
34959 pub unsafe fn VertexAttribBinding(&self, attribindex: GLuint, bindingindex: GLuint) {
34960 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34961 {
34962 trace!(
34963 "calling gl.VertexAttribBinding({:?}, {:?});",
34964 attribindex,
34965 bindingindex
34966 );
34967 }
34968 let out = call_atomic_ptr_2arg(
34969 "glVertexAttribBinding",
34970 &self.glVertexAttribBinding_p,
34971 attribindex,
34972 bindingindex,
34973 );
34974 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34975 {
34976 self.automatic_glGetError("glVertexAttribBinding");
34977 }
34978 out
34979 }
34980 #[doc(hidden)]
34981 pub unsafe fn VertexAttribBinding_load_with_dyn(
34982 &self,
34983 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34984 ) -> bool {
34985 load_dyn_name_atomic_ptr(
34986 get_proc_address,
34987 b"glVertexAttribBinding\0",
34988 &self.glVertexAttribBinding_p,
34989 )
34990 }
34991 #[inline]
34992 #[doc(hidden)]
34993 pub fn VertexAttribBinding_is_loaded(&self) -> bool {
34994 !self.glVertexAttribBinding_p.load(RELAX).is_null()
34995 }
34996 #[cfg_attr(feature = "inline", inline)]
34998 #[cfg_attr(feature = "inline_always", inline(always))]
34999 pub unsafe fn VertexAttribDivisor(&self, index: GLuint, divisor: GLuint) {
35000 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35001 {
35002 trace!(
35003 "calling gl.VertexAttribDivisor({:?}, {:?});",
35004 index,
35005 divisor
35006 );
35007 }
35008 let out = call_atomic_ptr_2arg(
35009 "glVertexAttribDivisor",
35010 &self.glVertexAttribDivisor_p,
35011 index,
35012 divisor,
35013 );
35014 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35015 {
35016 self.automatic_glGetError("glVertexAttribDivisor");
35017 }
35018 out
35019 }
35020 #[doc(hidden)]
35021 pub unsafe fn VertexAttribDivisor_load_with_dyn(
35022 &self,
35023 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35024 ) -> bool {
35025 load_dyn_name_atomic_ptr(
35026 get_proc_address,
35027 b"glVertexAttribDivisor\0",
35028 &self.glVertexAttribDivisor_p,
35029 )
35030 }
35031 #[inline]
35032 #[doc(hidden)]
35033 pub fn VertexAttribDivisor_is_loaded(&self) -> bool {
35034 !self.glVertexAttribDivisor_p.load(RELAX).is_null()
35035 }
35036 #[cfg_attr(feature = "inline", inline)]
35039 #[cfg_attr(feature = "inline_always", inline(always))]
35040 pub unsafe fn VertexAttribDivisorARB(&self, index: GLuint, divisor: GLuint) {
35041 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35042 {
35043 trace!(
35044 "calling gl.VertexAttribDivisorARB({:?}, {:?});",
35045 index,
35046 divisor
35047 );
35048 }
35049 let out = call_atomic_ptr_2arg(
35050 "glVertexAttribDivisorARB",
35051 &self.glVertexAttribDivisorARB_p,
35052 index,
35053 divisor,
35054 );
35055 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35056 {
35057 self.automatic_glGetError("glVertexAttribDivisorARB");
35058 }
35059 out
35060 }
35061 #[doc(hidden)]
35062 pub unsafe fn VertexAttribDivisorARB_load_with_dyn(
35063 &self,
35064 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35065 ) -> bool {
35066 load_dyn_name_atomic_ptr(
35067 get_proc_address,
35068 b"glVertexAttribDivisorARB\0",
35069 &self.glVertexAttribDivisorARB_p,
35070 )
35071 }
35072 #[inline]
35073 #[doc(hidden)]
35074 pub fn VertexAttribDivisorARB_is_loaded(&self) -> bool {
35075 !self.glVertexAttribDivisorARB_p.load(RELAX).is_null()
35076 }
35077 #[cfg_attr(feature = "inline", inline)]
35080 #[cfg_attr(feature = "inline_always", inline(always))]
35081 pub unsafe fn VertexAttribFormat(
35082 &self,
35083 attribindex: GLuint,
35084 size: GLint,
35085 type_: GLenum,
35086 normalized: GLboolean,
35087 relativeoffset: GLuint,
35088 ) {
35089 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35090 {
35091 trace!(
35092 "calling gl.VertexAttribFormat({:?}, {:?}, {:#X}, {:?}, {:?});",
35093 attribindex,
35094 size,
35095 type_,
35096 normalized,
35097 relativeoffset
35098 );
35099 }
35100 let out = call_atomic_ptr_5arg(
35101 "glVertexAttribFormat",
35102 &self.glVertexAttribFormat_p,
35103 attribindex,
35104 size,
35105 type_,
35106 normalized,
35107 relativeoffset,
35108 );
35109 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35110 {
35111 self.automatic_glGetError("glVertexAttribFormat");
35112 }
35113 out
35114 }
35115 #[doc(hidden)]
35116 pub unsafe fn VertexAttribFormat_load_with_dyn(
35117 &self,
35118 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35119 ) -> bool {
35120 load_dyn_name_atomic_ptr(
35121 get_proc_address,
35122 b"glVertexAttribFormat\0",
35123 &self.glVertexAttribFormat_p,
35124 )
35125 }
35126 #[inline]
35127 #[doc(hidden)]
35128 pub fn VertexAttribFormat_is_loaded(&self) -> bool {
35129 !self.glVertexAttribFormat_p.load(RELAX).is_null()
35130 }
35131 #[cfg_attr(feature = "inline", inline)]
35134 #[cfg_attr(feature = "inline_always", inline(always))]
35135 pub unsafe fn VertexAttribI1i(&self, index: GLuint, x: GLint) {
35136 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35137 {
35138 trace!("calling gl.VertexAttribI1i({:?}, {:?});", index, x);
35139 }
35140 let out =
35141 call_atomic_ptr_2arg("glVertexAttribI1i", &self.glVertexAttribI1i_p, index, x);
35142 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35143 {
35144 self.automatic_glGetError("glVertexAttribI1i");
35145 }
35146 out
35147 }
35148 #[doc(hidden)]
35149 pub unsafe fn VertexAttribI1i_load_with_dyn(
35150 &self,
35151 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35152 ) -> bool {
35153 load_dyn_name_atomic_ptr(
35154 get_proc_address,
35155 b"glVertexAttribI1i\0",
35156 &self.glVertexAttribI1i_p,
35157 )
35158 }
35159 #[inline]
35160 #[doc(hidden)]
35161 pub fn VertexAttribI1i_is_loaded(&self) -> bool {
35162 !self.glVertexAttribI1i_p.load(RELAX).is_null()
35163 }
35164 #[cfg_attr(feature = "inline", inline)]
35167 #[cfg_attr(feature = "inline_always", inline(always))]
35168 pub unsafe fn VertexAttribI1iv(&self, index: GLuint, v: *const GLint) {
35169 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35170 {
35171 trace!("calling gl.VertexAttribI1iv({:?}, {:p});", index, v);
35172 }
35173 let out =
35174 call_atomic_ptr_2arg("glVertexAttribI1iv", &self.glVertexAttribI1iv_p, index, v);
35175 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35176 {
35177 self.automatic_glGetError("glVertexAttribI1iv");
35178 }
35179 out
35180 }
35181 #[doc(hidden)]
35182 pub unsafe fn VertexAttribI1iv_load_with_dyn(
35183 &self,
35184 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35185 ) -> bool {
35186 load_dyn_name_atomic_ptr(
35187 get_proc_address,
35188 b"glVertexAttribI1iv\0",
35189 &self.glVertexAttribI1iv_p,
35190 )
35191 }
35192 #[inline]
35193 #[doc(hidden)]
35194 pub fn VertexAttribI1iv_is_loaded(&self) -> bool {
35195 !self.glVertexAttribI1iv_p.load(RELAX).is_null()
35196 }
35197 #[cfg_attr(feature = "inline", inline)]
35200 #[cfg_attr(feature = "inline_always", inline(always))]
35201 pub unsafe fn VertexAttribI1ui(&self, index: GLuint, x: GLuint) {
35202 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35203 {
35204 trace!("calling gl.VertexAttribI1ui({:?}, {:?});", index, x);
35205 }
35206 let out =
35207 call_atomic_ptr_2arg("glVertexAttribI1ui", &self.glVertexAttribI1ui_p, index, x);
35208 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35209 {
35210 self.automatic_glGetError("glVertexAttribI1ui");
35211 }
35212 out
35213 }
35214 #[doc(hidden)]
35215 pub unsafe fn VertexAttribI1ui_load_with_dyn(
35216 &self,
35217 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35218 ) -> bool {
35219 load_dyn_name_atomic_ptr(
35220 get_proc_address,
35221 b"glVertexAttribI1ui\0",
35222 &self.glVertexAttribI1ui_p,
35223 )
35224 }
35225 #[inline]
35226 #[doc(hidden)]
35227 pub fn VertexAttribI1ui_is_loaded(&self) -> bool {
35228 !self.glVertexAttribI1ui_p.load(RELAX).is_null()
35229 }
35230 #[cfg_attr(feature = "inline", inline)]
35233 #[cfg_attr(feature = "inline_always", inline(always))]
35234 pub unsafe fn VertexAttribI1uiv(&self, index: GLuint, v: *const GLuint) {
35235 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35236 {
35237 trace!("calling gl.VertexAttribI1uiv({:?}, {:p});", index, v);
35238 }
35239 let out =
35240 call_atomic_ptr_2arg("glVertexAttribI1uiv", &self.glVertexAttribI1uiv_p, index, v);
35241 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35242 {
35243 self.automatic_glGetError("glVertexAttribI1uiv");
35244 }
35245 out
35246 }
35247 #[doc(hidden)]
35248 pub unsafe fn VertexAttribI1uiv_load_with_dyn(
35249 &self,
35250 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35251 ) -> bool {
35252 load_dyn_name_atomic_ptr(
35253 get_proc_address,
35254 b"glVertexAttribI1uiv\0",
35255 &self.glVertexAttribI1uiv_p,
35256 )
35257 }
35258 #[inline]
35259 #[doc(hidden)]
35260 pub fn VertexAttribI1uiv_is_loaded(&self) -> bool {
35261 !self.glVertexAttribI1uiv_p.load(RELAX).is_null()
35262 }
35263 #[cfg_attr(feature = "inline", inline)]
35266 #[cfg_attr(feature = "inline_always", inline(always))]
35267 pub unsafe fn VertexAttribI2i(&self, index: GLuint, x: GLint, y: GLint) {
35268 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35269 {
35270 trace!("calling gl.VertexAttribI2i({:?}, {:?}, {:?});", index, x, y);
35271 }
35272 let out =
35273 call_atomic_ptr_3arg("glVertexAttribI2i", &self.glVertexAttribI2i_p, index, x, y);
35274 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35275 {
35276 self.automatic_glGetError("glVertexAttribI2i");
35277 }
35278 out
35279 }
35280 #[doc(hidden)]
35281 pub unsafe fn VertexAttribI2i_load_with_dyn(
35282 &self,
35283 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35284 ) -> bool {
35285 load_dyn_name_atomic_ptr(
35286 get_proc_address,
35287 b"glVertexAttribI2i\0",
35288 &self.glVertexAttribI2i_p,
35289 )
35290 }
35291 #[inline]
35292 #[doc(hidden)]
35293 pub fn VertexAttribI2i_is_loaded(&self) -> bool {
35294 !self.glVertexAttribI2i_p.load(RELAX).is_null()
35295 }
35296 #[cfg_attr(feature = "inline", inline)]
35299 #[cfg_attr(feature = "inline_always", inline(always))]
35300 pub unsafe fn VertexAttribI2iv(&self, index: GLuint, v: *const GLint) {
35301 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35302 {
35303 trace!("calling gl.VertexAttribI2iv({:?}, {:p});", index, v);
35304 }
35305 let out =
35306 call_atomic_ptr_2arg("glVertexAttribI2iv", &self.glVertexAttribI2iv_p, index, v);
35307 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35308 {
35309 self.automatic_glGetError("glVertexAttribI2iv");
35310 }
35311 out
35312 }
35313 #[doc(hidden)]
35314 pub unsafe fn VertexAttribI2iv_load_with_dyn(
35315 &self,
35316 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35317 ) -> bool {
35318 load_dyn_name_atomic_ptr(
35319 get_proc_address,
35320 b"glVertexAttribI2iv\0",
35321 &self.glVertexAttribI2iv_p,
35322 )
35323 }
35324 #[inline]
35325 #[doc(hidden)]
35326 pub fn VertexAttribI2iv_is_loaded(&self) -> bool {
35327 !self.glVertexAttribI2iv_p.load(RELAX).is_null()
35328 }
35329 #[cfg_attr(feature = "inline", inline)]
35332 #[cfg_attr(feature = "inline_always", inline(always))]
35333 pub unsafe fn VertexAttribI2ui(&self, index: GLuint, x: GLuint, y: GLuint) {
35334 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35335 {
35336 trace!(
35337 "calling gl.VertexAttribI2ui({:?}, {:?}, {:?});",
35338 index,
35339 x,
35340 y
35341 );
35342 }
35343 let out = call_atomic_ptr_3arg(
35344 "glVertexAttribI2ui",
35345 &self.glVertexAttribI2ui_p,
35346 index,
35347 x,
35348 y,
35349 );
35350 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35351 {
35352 self.automatic_glGetError("glVertexAttribI2ui");
35353 }
35354 out
35355 }
35356 #[doc(hidden)]
35357 pub unsafe fn VertexAttribI2ui_load_with_dyn(
35358 &self,
35359 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35360 ) -> bool {
35361 load_dyn_name_atomic_ptr(
35362 get_proc_address,
35363 b"glVertexAttribI2ui\0",
35364 &self.glVertexAttribI2ui_p,
35365 )
35366 }
35367 #[inline]
35368 #[doc(hidden)]
35369 pub fn VertexAttribI2ui_is_loaded(&self) -> bool {
35370 !self.glVertexAttribI2ui_p.load(RELAX).is_null()
35371 }
35372 #[cfg_attr(feature = "inline", inline)]
35375 #[cfg_attr(feature = "inline_always", inline(always))]
35376 pub unsafe fn VertexAttribI2uiv(&self, index: GLuint, v: *const GLuint) {
35377 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35378 {
35379 trace!("calling gl.VertexAttribI2uiv({:?}, {:p});", index, v);
35380 }
35381 let out =
35382 call_atomic_ptr_2arg("glVertexAttribI2uiv", &self.glVertexAttribI2uiv_p, index, v);
35383 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35384 {
35385 self.automatic_glGetError("glVertexAttribI2uiv");
35386 }
35387 out
35388 }
35389 #[doc(hidden)]
35390 pub unsafe fn VertexAttribI2uiv_load_with_dyn(
35391 &self,
35392 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35393 ) -> bool {
35394 load_dyn_name_atomic_ptr(
35395 get_proc_address,
35396 b"glVertexAttribI2uiv\0",
35397 &self.glVertexAttribI2uiv_p,
35398 )
35399 }
35400 #[inline]
35401 #[doc(hidden)]
35402 pub fn VertexAttribI2uiv_is_loaded(&self) -> bool {
35403 !self.glVertexAttribI2uiv_p.load(RELAX).is_null()
35404 }
35405 #[cfg_attr(feature = "inline", inline)]
35408 #[cfg_attr(feature = "inline_always", inline(always))]
35409 pub unsafe fn VertexAttribI3i(&self, index: GLuint, x: GLint, y: GLint, z: GLint) {
35410 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35411 {
35412 trace!(
35413 "calling gl.VertexAttribI3i({:?}, {:?}, {:?}, {:?});",
35414 index,
35415 x,
35416 y,
35417 z
35418 );
35419 }
35420 let out = call_atomic_ptr_4arg(
35421 "glVertexAttribI3i",
35422 &self.glVertexAttribI3i_p,
35423 index,
35424 x,
35425 y,
35426 z,
35427 );
35428 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35429 {
35430 self.automatic_glGetError("glVertexAttribI3i");
35431 }
35432 out
35433 }
35434 #[doc(hidden)]
35435 pub unsafe fn VertexAttribI3i_load_with_dyn(
35436 &self,
35437 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35438 ) -> bool {
35439 load_dyn_name_atomic_ptr(
35440 get_proc_address,
35441 b"glVertexAttribI3i\0",
35442 &self.glVertexAttribI3i_p,
35443 )
35444 }
35445 #[inline]
35446 #[doc(hidden)]
35447 pub fn VertexAttribI3i_is_loaded(&self) -> bool {
35448 !self.glVertexAttribI3i_p.load(RELAX).is_null()
35449 }
35450 #[cfg_attr(feature = "inline", inline)]
35453 #[cfg_attr(feature = "inline_always", inline(always))]
35454 pub unsafe fn VertexAttribI3iv(&self, index: GLuint, v: *const GLint) {
35455 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35456 {
35457 trace!("calling gl.VertexAttribI3iv({:?}, {:p});", index, v);
35458 }
35459 let out =
35460 call_atomic_ptr_2arg("glVertexAttribI3iv", &self.glVertexAttribI3iv_p, index, v);
35461 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35462 {
35463 self.automatic_glGetError("glVertexAttribI3iv");
35464 }
35465 out
35466 }
35467 #[doc(hidden)]
35468 pub unsafe fn VertexAttribI3iv_load_with_dyn(
35469 &self,
35470 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35471 ) -> bool {
35472 load_dyn_name_atomic_ptr(
35473 get_proc_address,
35474 b"glVertexAttribI3iv\0",
35475 &self.glVertexAttribI3iv_p,
35476 )
35477 }
35478 #[inline]
35479 #[doc(hidden)]
35480 pub fn VertexAttribI3iv_is_loaded(&self) -> bool {
35481 !self.glVertexAttribI3iv_p.load(RELAX).is_null()
35482 }
35483 #[cfg_attr(feature = "inline", inline)]
35486 #[cfg_attr(feature = "inline_always", inline(always))]
35487 pub unsafe fn VertexAttribI3ui(&self, index: GLuint, x: GLuint, y: GLuint, z: GLuint) {
35488 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35489 {
35490 trace!(
35491 "calling gl.VertexAttribI3ui({:?}, {:?}, {:?}, {:?});",
35492 index,
35493 x,
35494 y,
35495 z
35496 );
35497 }
35498 let out = call_atomic_ptr_4arg(
35499 "glVertexAttribI3ui",
35500 &self.glVertexAttribI3ui_p,
35501 index,
35502 x,
35503 y,
35504 z,
35505 );
35506 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35507 {
35508 self.automatic_glGetError("glVertexAttribI3ui");
35509 }
35510 out
35511 }
35512 #[doc(hidden)]
35513 pub unsafe fn VertexAttribI3ui_load_with_dyn(
35514 &self,
35515 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35516 ) -> bool {
35517 load_dyn_name_atomic_ptr(
35518 get_proc_address,
35519 b"glVertexAttribI3ui\0",
35520 &self.glVertexAttribI3ui_p,
35521 )
35522 }
35523 #[inline]
35524 #[doc(hidden)]
35525 pub fn VertexAttribI3ui_is_loaded(&self) -> bool {
35526 !self.glVertexAttribI3ui_p.load(RELAX).is_null()
35527 }
35528 #[cfg_attr(feature = "inline", inline)]
35531 #[cfg_attr(feature = "inline_always", inline(always))]
35532 pub unsafe fn VertexAttribI3uiv(&self, index: GLuint, v: *const GLuint) {
35533 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35534 {
35535 trace!("calling gl.VertexAttribI3uiv({:?}, {:p});", index, v);
35536 }
35537 let out =
35538 call_atomic_ptr_2arg("glVertexAttribI3uiv", &self.glVertexAttribI3uiv_p, index, v);
35539 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35540 {
35541 self.automatic_glGetError("glVertexAttribI3uiv");
35542 }
35543 out
35544 }
35545 #[doc(hidden)]
35546 pub unsafe fn VertexAttribI3uiv_load_with_dyn(
35547 &self,
35548 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35549 ) -> bool {
35550 load_dyn_name_atomic_ptr(
35551 get_proc_address,
35552 b"glVertexAttribI3uiv\0",
35553 &self.glVertexAttribI3uiv_p,
35554 )
35555 }
35556 #[inline]
35557 #[doc(hidden)]
35558 pub fn VertexAttribI3uiv_is_loaded(&self) -> bool {
35559 !self.glVertexAttribI3uiv_p.load(RELAX).is_null()
35560 }
35561 #[cfg_attr(feature = "inline", inline)]
35564 #[cfg_attr(feature = "inline_always", inline(always))]
35565 pub unsafe fn VertexAttribI4bv(&self, index: GLuint, v: *const GLbyte) {
35566 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35567 {
35568 trace!("calling gl.VertexAttribI4bv({:?}, {:p});", index, v);
35569 }
35570 let out =
35571 call_atomic_ptr_2arg("glVertexAttribI4bv", &self.glVertexAttribI4bv_p, index, v);
35572 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35573 {
35574 self.automatic_glGetError("glVertexAttribI4bv");
35575 }
35576 out
35577 }
35578 #[doc(hidden)]
35579 pub unsafe fn VertexAttribI4bv_load_with_dyn(
35580 &self,
35581 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35582 ) -> bool {
35583 load_dyn_name_atomic_ptr(
35584 get_proc_address,
35585 b"glVertexAttribI4bv\0",
35586 &self.glVertexAttribI4bv_p,
35587 )
35588 }
35589 #[inline]
35590 #[doc(hidden)]
35591 pub fn VertexAttribI4bv_is_loaded(&self) -> bool {
35592 !self.glVertexAttribI4bv_p.load(RELAX).is_null()
35593 }
35594 #[cfg_attr(feature = "inline", inline)]
35597 #[cfg_attr(feature = "inline_always", inline(always))]
35598 pub unsafe fn VertexAttribI4i(
35599 &self,
35600 index: GLuint,
35601 x: GLint,
35602 y: GLint,
35603 z: GLint,
35604 w: GLint,
35605 ) {
35606 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35607 {
35608 trace!(
35609 "calling gl.VertexAttribI4i({:?}, {:?}, {:?}, {:?}, {:?});",
35610 index,
35611 x,
35612 y,
35613 z,
35614 w
35615 );
35616 }
35617 let out = call_atomic_ptr_5arg(
35618 "glVertexAttribI4i",
35619 &self.glVertexAttribI4i_p,
35620 index,
35621 x,
35622 y,
35623 z,
35624 w,
35625 );
35626 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35627 {
35628 self.automatic_glGetError("glVertexAttribI4i");
35629 }
35630 out
35631 }
35632 #[doc(hidden)]
35633 pub unsafe fn VertexAttribI4i_load_with_dyn(
35634 &self,
35635 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35636 ) -> bool {
35637 load_dyn_name_atomic_ptr(
35638 get_proc_address,
35639 b"glVertexAttribI4i\0",
35640 &self.glVertexAttribI4i_p,
35641 )
35642 }
35643 #[inline]
35644 #[doc(hidden)]
35645 pub fn VertexAttribI4i_is_loaded(&self) -> bool {
35646 !self.glVertexAttribI4i_p.load(RELAX).is_null()
35647 }
35648 #[cfg_attr(feature = "inline", inline)]
35651 #[cfg_attr(feature = "inline_always", inline(always))]
35652 pub unsafe fn VertexAttribI4iv(&self, index: GLuint, v: *const GLint) {
35653 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35654 {
35655 trace!("calling gl.VertexAttribI4iv({:?}, {:p});", index, v);
35656 }
35657 let out =
35658 call_atomic_ptr_2arg("glVertexAttribI4iv", &self.glVertexAttribI4iv_p, index, v);
35659 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35660 {
35661 self.automatic_glGetError("glVertexAttribI4iv");
35662 }
35663 out
35664 }
35665 #[doc(hidden)]
35666 pub unsafe fn VertexAttribI4iv_load_with_dyn(
35667 &self,
35668 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35669 ) -> bool {
35670 load_dyn_name_atomic_ptr(
35671 get_proc_address,
35672 b"glVertexAttribI4iv\0",
35673 &self.glVertexAttribI4iv_p,
35674 )
35675 }
35676 #[inline]
35677 #[doc(hidden)]
35678 pub fn VertexAttribI4iv_is_loaded(&self) -> bool {
35679 !self.glVertexAttribI4iv_p.load(RELAX).is_null()
35680 }
35681 #[cfg_attr(feature = "inline", inline)]
35684 #[cfg_attr(feature = "inline_always", inline(always))]
35685 pub unsafe fn VertexAttribI4sv(&self, index: GLuint, v: *const GLshort) {
35686 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35687 {
35688 trace!("calling gl.VertexAttribI4sv({:?}, {:p});", index, v);
35689 }
35690 let out =
35691 call_atomic_ptr_2arg("glVertexAttribI4sv", &self.glVertexAttribI4sv_p, index, v);
35692 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35693 {
35694 self.automatic_glGetError("glVertexAttribI4sv");
35695 }
35696 out
35697 }
35698 #[doc(hidden)]
35699 pub unsafe fn VertexAttribI4sv_load_with_dyn(
35700 &self,
35701 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35702 ) -> bool {
35703 load_dyn_name_atomic_ptr(
35704 get_proc_address,
35705 b"glVertexAttribI4sv\0",
35706 &self.glVertexAttribI4sv_p,
35707 )
35708 }
35709 #[inline]
35710 #[doc(hidden)]
35711 pub fn VertexAttribI4sv_is_loaded(&self) -> bool {
35712 !self.glVertexAttribI4sv_p.load(RELAX).is_null()
35713 }
35714 #[cfg_attr(feature = "inline", inline)]
35717 #[cfg_attr(feature = "inline_always", inline(always))]
35718 pub unsafe fn VertexAttribI4ubv(&self, index: GLuint, v: *const GLubyte) {
35719 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35720 {
35721 trace!("calling gl.VertexAttribI4ubv({:?}, {:p});", index, v);
35722 }
35723 let out =
35724 call_atomic_ptr_2arg("glVertexAttribI4ubv", &self.glVertexAttribI4ubv_p, index, v);
35725 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35726 {
35727 self.automatic_glGetError("glVertexAttribI4ubv");
35728 }
35729 out
35730 }
35731 #[doc(hidden)]
35732 pub unsafe fn VertexAttribI4ubv_load_with_dyn(
35733 &self,
35734 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35735 ) -> bool {
35736 load_dyn_name_atomic_ptr(
35737 get_proc_address,
35738 b"glVertexAttribI4ubv\0",
35739 &self.glVertexAttribI4ubv_p,
35740 )
35741 }
35742 #[inline]
35743 #[doc(hidden)]
35744 pub fn VertexAttribI4ubv_is_loaded(&self) -> bool {
35745 !self.glVertexAttribI4ubv_p.load(RELAX).is_null()
35746 }
35747 #[cfg_attr(feature = "inline", inline)]
35750 #[cfg_attr(feature = "inline_always", inline(always))]
35751 pub unsafe fn VertexAttribI4ui(
35752 &self,
35753 index: GLuint,
35754 x: GLuint,
35755 y: GLuint,
35756 z: GLuint,
35757 w: GLuint,
35758 ) {
35759 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35760 {
35761 trace!(
35762 "calling gl.VertexAttribI4ui({:?}, {:?}, {:?}, {:?}, {:?});",
35763 index,
35764 x,
35765 y,
35766 z,
35767 w
35768 );
35769 }
35770 let out = call_atomic_ptr_5arg(
35771 "glVertexAttribI4ui",
35772 &self.glVertexAttribI4ui_p,
35773 index,
35774 x,
35775 y,
35776 z,
35777 w,
35778 );
35779 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35780 {
35781 self.automatic_glGetError("glVertexAttribI4ui");
35782 }
35783 out
35784 }
35785 #[doc(hidden)]
35786 pub unsafe fn VertexAttribI4ui_load_with_dyn(
35787 &self,
35788 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35789 ) -> bool {
35790 load_dyn_name_atomic_ptr(
35791 get_proc_address,
35792 b"glVertexAttribI4ui\0",
35793 &self.glVertexAttribI4ui_p,
35794 )
35795 }
35796 #[inline]
35797 #[doc(hidden)]
35798 pub fn VertexAttribI4ui_is_loaded(&self) -> bool {
35799 !self.glVertexAttribI4ui_p.load(RELAX).is_null()
35800 }
35801 #[cfg_attr(feature = "inline", inline)]
35804 #[cfg_attr(feature = "inline_always", inline(always))]
35805 pub unsafe fn VertexAttribI4uiv(&self, index: GLuint, v: *const GLuint) {
35806 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35807 {
35808 trace!("calling gl.VertexAttribI4uiv({:?}, {:p});", index, v);
35809 }
35810 let out =
35811 call_atomic_ptr_2arg("glVertexAttribI4uiv", &self.glVertexAttribI4uiv_p, index, v);
35812 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35813 {
35814 self.automatic_glGetError("glVertexAttribI4uiv");
35815 }
35816 out
35817 }
35818 #[doc(hidden)]
35819 pub unsafe fn VertexAttribI4uiv_load_with_dyn(
35820 &self,
35821 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35822 ) -> bool {
35823 load_dyn_name_atomic_ptr(
35824 get_proc_address,
35825 b"glVertexAttribI4uiv\0",
35826 &self.glVertexAttribI4uiv_p,
35827 )
35828 }
35829 #[inline]
35830 #[doc(hidden)]
35831 pub fn VertexAttribI4uiv_is_loaded(&self) -> bool {
35832 !self.glVertexAttribI4uiv_p.load(RELAX).is_null()
35833 }
35834 #[cfg_attr(feature = "inline", inline)]
35837 #[cfg_attr(feature = "inline_always", inline(always))]
35838 pub unsafe fn VertexAttribI4usv(&self, index: GLuint, v: *const GLushort) {
35839 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35840 {
35841 trace!("calling gl.VertexAttribI4usv({:?}, {:p});", index, v);
35842 }
35843 let out =
35844 call_atomic_ptr_2arg("glVertexAttribI4usv", &self.glVertexAttribI4usv_p, index, v);
35845 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35846 {
35847 self.automatic_glGetError("glVertexAttribI4usv");
35848 }
35849 out
35850 }
35851 #[doc(hidden)]
35852 pub unsafe fn VertexAttribI4usv_load_with_dyn(
35853 &self,
35854 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35855 ) -> bool {
35856 load_dyn_name_atomic_ptr(
35857 get_proc_address,
35858 b"glVertexAttribI4usv\0",
35859 &self.glVertexAttribI4usv_p,
35860 )
35861 }
35862 #[inline]
35863 #[doc(hidden)]
35864 pub fn VertexAttribI4usv_is_loaded(&self) -> bool {
35865 !self.glVertexAttribI4usv_p.load(RELAX).is_null()
35866 }
35867 #[cfg_attr(feature = "inline", inline)]
35870 #[cfg_attr(feature = "inline_always", inline(always))]
35871 pub unsafe fn VertexAttribIFormat(
35872 &self,
35873 attribindex: GLuint,
35874 size: GLint,
35875 type_: GLenum,
35876 relativeoffset: GLuint,
35877 ) {
35878 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35879 {
35880 trace!(
35881 "calling gl.VertexAttribIFormat({:?}, {:?}, {:#X}, {:?});",
35882 attribindex,
35883 size,
35884 type_,
35885 relativeoffset
35886 );
35887 }
35888 let out = call_atomic_ptr_4arg(
35889 "glVertexAttribIFormat",
35890 &self.glVertexAttribIFormat_p,
35891 attribindex,
35892 size,
35893 type_,
35894 relativeoffset,
35895 );
35896 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35897 {
35898 self.automatic_glGetError("glVertexAttribIFormat");
35899 }
35900 out
35901 }
35902 #[doc(hidden)]
35903 pub unsafe fn VertexAttribIFormat_load_with_dyn(
35904 &self,
35905 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35906 ) -> bool {
35907 load_dyn_name_atomic_ptr(
35908 get_proc_address,
35909 b"glVertexAttribIFormat\0",
35910 &self.glVertexAttribIFormat_p,
35911 )
35912 }
35913 #[inline]
35914 #[doc(hidden)]
35915 pub fn VertexAttribIFormat_is_loaded(&self) -> bool {
35916 !self.glVertexAttribIFormat_p.load(RELAX).is_null()
35917 }
35918 #[cfg_attr(feature = "inline", inline)]
35922 #[cfg_attr(feature = "inline_always", inline(always))]
35923 pub unsafe fn VertexAttribIPointer(
35924 &self,
35925 index: GLuint,
35926 size: GLint,
35927 type_: GLenum,
35928 stride: GLsizei,
35929 pointer: *const c_void,
35930 ) {
35931 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35932 {
35933 trace!(
35934 "calling gl.VertexAttribIPointer({:?}, {:?}, {:#X}, {:?}, {:p});",
35935 index,
35936 size,
35937 type_,
35938 stride,
35939 pointer
35940 );
35941 }
35942 let out = call_atomic_ptr_5arg(
35943 "glVertexAttribIPointer",
35944 &self.glVertexAttribIPointer_p,
35945 index,
35946 size,
35947 type_,
35948 stride,
35949 pointer,
35950 );
35951 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35952 {
35953 self.automatic_glGetError("glVertexAttribIPointer");
35954 }
35955 out
35956 }
35957 #[doc(hidden)]
35958 pub unsafe fn VertexAttribIPointer_load_with_dyn(
35959 &self,
35960 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35961 ) -> bool {
35962 load_dyn_name_atomic_ptr(
35963 get_proc_address,
35964 b"glVertexAttribIPointer\0",
35965 &self.glVertexAttribIPointer_p,
35966 )
35967 }
35968 #[inline]
35969 #[doc(hidden)]
35970 pub fn VertexAttribIPointer_is_loaded(&self) -> bool {
35971 !self.glVertexAttribIPointer_p.load(RELAX).is_null()
35972 }
35973 #[cfg_attr(feature = "inline", inline)]
35975 #[cfg_attr(feature = "inline_always", inline(always))]
35976 pub unsafe fn VertexAttribL1d(&self, index: GLuint, x: GLdouble) {
35977 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35978 {
35979 trace!("calling gl.VertexAttribL1d({:?}, {:?});", index, x);
35980 }
35981 let out =
35982 call_atomic_ptr_2arg("glVertexAttribL1d", &self.glVertexAttribL1d_p, index, x);
35983 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35984 {
35985 self.automatic_glGetError("glVertexAttribL1d");
35986 }
35987 out
35988 }
35989 #[doc(hidden)]
35990 pub unsafe fn VertexAttribL1d_load_with_dyn(
35991 &self,
35992 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35993 ) -> bool {
35994 load_dyn_name_atomic_ptr(
35995 get_proc_address,
35996 b"glVertexAttribL1d\0",
35997 &self.glVertexAttribL1d_p,
35998 )
35999 }
36000 #[inline]
36001 #[doc(hidden)]
36002 pub fn VertexAttribL1d_is_loaded(&self) -> bool {
36003 !self.glVertexAttribL1d_p.load(RELAX).is_null()
36004 }
36005 #[cfg_attr(feature = "inline", inline)]
36008 #[cfg_attr(feature = "inline_always", inline(always))]
36009 pub unsafe fn VertexAttribL1dv(&self, index: GLuint, v: *const GLdouble) {
36010 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36011 {
36012 trace!("calling gl.VertexAttribL1dv({:?}, {:p});", index, v);
36013 }
36014 let out =
36015 call_atomic_ptr_2arg("glVertexAttribL1dv", &self.glVertexAttribL1dv_p, index, v);
36016 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36017 {
36018 self.automatic_glGetError("glVertexAttribL1dv");
36019 }
36020 out
36021 }
36022 #[doc(hidden)]
36023 pub unsafe fn VertexAttribL1dv_load_with_dyn(
36024 &self,
36025 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36026 ) -> bool {
36027 load_dyn_name_atomic_ptr(
36028 get_proc_address,
36029 b"glVertexAttribL1dv\0",
36030 &self.glVertexAttribL1dv_p,
36031 )
36032 }
36033 #[inline]
36034 #[doc(hidden)]
36035 pub fn VertexAttribL1dv_is_loaded(&self) -> bool {
36036 !self.glVertexAttribL1dv_p.load(RELAX).is_null()
36037 }
36038 #[cfg_attr(feature = "inline", inline)]
36040 #[cfg_attr(feature = "inline_always", inline(always))]
36041 pub unsafe fn VertexAttribL2d(&self, index: GLuint, x: GLdouble, y: GLdouble) {
36042 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36043 {
36044 trace!("calling gl.VertexAttribL2d({:?}, {:?}, {:?});", index, x, y);
36045 }
36046 let out =
36047 call_atomic_ptr_3arg("glVertexAttribL2d", &self.glVertexAttribL2d_p, index, x, y);
36048 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36049 {
36050 self.automatic_glGetError("glVertexAttribL2d");
36051 }
36052 out
36053 }
36054 #[doc(hidden)]
36055 pub unsafe fn VertexAttribL2d_load_with_dyn(
36056 &self,
36057 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36058 ) -> bool {
36059 load_dyn_name_atomic_ptr(
36060 get_proc_address,
36061 b"glVertexAttribL2d\0",
36062 &self.glVertexAttribL2d_p,
36063 )
36064 }
36065 #[inline]
36066 #[doc(hidden)]
36067 pub fn VertexAttribL2d_is_loaded(&self) -> bool {
36068 !self.glVertexAttribL2d_p.load(RELAX).is_null()
36069 }
36070 #[cfg_attr(feature = "inline", inline)]
36073 #[cfg_attr(feature = "inline_always", inline(always))]
36074 pub unsafe fn VertexAttribL2dv(&self, index: GLuint, v: *const GLdouble) {
36075 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36076 {
36077 trace!("calling gl.VertexAttribL2dv({:?}, {:p});", index, v);
36078 }
36079 let out =
36080 call_atomic_ptr_2arg("glVertexAttribL2dv", &self.glVertexAttribL2dv_p, index, v);
36081 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36082 {
36083 self.automatic_glGetError("glVertexAttribL2dv");
36084 }
36085 out
36086 }
36087 #[doc(hidden)]
36088 pub unsafe fn VertexAttribL2dv_load_with_dyn(
36089 &self,
36090 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36091 ) -> bool {
36092 load_dyn_name_atomic_ptr(
36093 get_proc_address,
36094 b"glVertexAttribL2dv\0",
36095 &self.glVertexAttribL2dv_p,
36096 )
36097 }
36098 #[inline]
36099 #[doc(hidden)]
36100 pub fn VertexAttribL2dv_is_loaded(&self) -> bool {
36101 !self.glVertexAttribL2dv_p.load(RELAX).is_null()
36102 }
36103 #[cfg_attr(feature = "inline", inline)]
36105 #[cfg_attr(feature = "inline_always", inline(always))]
36106 pub unsafe fn VertexAttribL3d(&self, index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble) {
36107 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36108 {
36109 trace!(
36110 "calling gl.VertexAttribL3d({:?}, {:?}, {:?}, {:?});",
36111 index,
36112 x,
36113 y,
36114 z
36115 );
36116 }
36117 let out = call_atomic_ptr_4arg(
36118 "glVertexAttribL3d",
36119 &self.glVertexAttribL3d_p,
36120 index,
36121 x,
36122 y,
36123 z,
36124 );
36125 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36126 {
36127 self.automatic_glGetError("glVertexAttribL3d");
36128 }
36129 out
36130 }
36131 #[doc(hidden)]
36132 pub unsafe fn VertexAttribL3d_load_with_dyn(
36133 &self,
36134 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36135 ) -> bool {
36136 load_dyn_name_atomic_ptr(
36137 get_proc_address,
36138 b"glVertexAttribL3d\0",
36139 &self.glVertexAttribL3d_p,
36140 )
36141 }
36142 #[inline]
36143 #[doc(hidden)]
36144 pub fn VertexAttribL3d_is_loaded(&self) -> bool {
36145 !self.glVertexAttribL3d_p.load(RELAX).is_null()
36146 }
36147 #[cfg_attr(feature = "inline", inline)]
36150 #[cfg_attr(feature = "inline_always", inline(always))]
36151 pub unsafe fn VertexAttribL3dv(&self, index: GLuint, v: *const GLdouble) {
36152 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36153 {
36154 trace!("calling gl.VertexAttribL3dv({:?}, {:p});", index, v);
36155 }
36156 let out =
36157 call_atomic_ptr_2arg("glVertexAttribL3dv", &self.glVertexAttribL3dv_p, index, v);
36158 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36159 {
36160 self.automatic_glGetError("glVertexAttribL3dv");
36161 }
36162 out
36163 }
36164 #[doc(hidden)]
36165 pub unsafe fn VertexAttribL3dv_load_with_dyn(
36166 &self,
36167 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36168 ) -> bool {
36169 load_dyn_name_atomic_ptr(
36170 get_proc_address,
36171 b"glVertexAttribL3dv\0",
36172 &self.glVertexAttribL3dv_p,
36173 )
36174 }
36175 #[inline]
36176 #[doc(hidden)]
36177 pub fn VertexAttribL3dv_is_loaded(&self) -> bool {
36178 !self.glVertexAttribL3dv_p.load(RELAX).is_null()
36179 }
36180 #[cfg_attr(feature = "inline", inline)]
36182 #[cfg_attr(feature = "inline_always", inline(always))]
36183 pub unsafe fn VertexAttribL4d(
36184 &self,
36185 index: GLuint,
36186 x: GLdouble,
36187 y: GLdouble,
36188 z: GLdouble,
36189 w: GLdouble,
36190 ) {
36191 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36192 {
36193 trace!(
36194 "calling gl.VertexAttribL4d({:?}, {:?}, {:?}, {:?}, {:?});",
36195 index,
36196 x,
36197 y,
36198 z,
36199 w
36200 );
36201 }
36202 let out = call_atomic_ptr_5arg(
36203 "glVertexAttribL4d",
36204 &self.glVertexAttribL4d_p,
36205 index,
36206 x,
36207 y,
36208 z,
36209 w,
36210 );
36211 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36212 {
36213 self.automatic_glGetError("glVertexAttribL4d");
36214 }
36215 out
36216 }
36217 #[doc(hidden)]
36218 pub unsafe fn VertexAttribL4d_load_with_dyn(
36219 &self,
36220 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36221 ) -> bool {
36222 load_dyn_name_atomic_ptr(
36223 get_proc_address,
36224 b"glVertexAttribL4d\0",
36225 &self.glVertexAttribL4d_p,
36226 )
36227 }
36228 #[inline]
36229 #[doc(hidden)]
36230 pub fn VertexAttribL4d_is_loaded(&self) -> bool {
36231 !self.glVertexAttribL4d_p.load(RELAX).is_null()
36232 }
36233 #[cfg_attr(feature = "inline", inline)]
36236 #[cfg_attr(feature = "inline_always", inline(always))]
36237 pub unsafe fn VertexAttribL4dv(&self, index: GLuint, v: *const GLdouble) {
36238 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36239 {
36240 trace!("calling gl.VertexAttribL4dv({:?}, {:p});", index, v);
36241 }
36242 let out =
36243 call_atomic_ptr_2arg("glVertexAttribL4dv", &self.glVertexAttribL4dv_p, index, v);
36244 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36245 {
36246 self.automatic_glGetError("glVertexAttribL4dv");
36247 }
36248 out
36249 }
36250 #[doc(hidden)]
36251 pub unsafe fn VertexAttribL4dv_load_with_dyn(
36252 &self,
36253 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36254 ) -> bool {
36255 load_dyn_name_atomic_ptr(
36256 get_proc_address,
36257 b"glVertexAttribL4dv\0",
36258 &self.glVertexAttribL4dv_p,
36259 )
36260 }
36261 #[inline]
36262 #[doc(hidden)]
36263 pub fn VertexAttribL4dv_is_loaded(&self) -> bool {
36264 !self.glVertexAttribL4dv_p.load(RELAX).is_null()
36265 }
36266 #[cfg_attr(feature = "inline", inline)]
36269 #[cfg_attr(feature = "inline_always", inline(always))]
36270 pub unsafe fn VertexAttribLFormat(
36271 &self,
36272 attribindex: GLuint,
36273 size: GLint,
36274 type_: GLenum,
36275 relativeoffset: GLuint,
36276 ) {
36277 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36278 {
36279 trace!(
36280 "calling gl.VertexAttribLFormat({:?}, {:?}, {:#X}, {:?});",
36281 attribindex,
36282 size,
36283 type_,
36284 relativeoffset
36285 );
36286 }
36287 let out = call_atomic_ptr_4arg(
36288 "glVertexAttribLFormat",
36289 &self.glVertexAttribLFormat_p,
36290 attribindex,
36291 size,
36292 type_,
36293 relativeoffset,
36294 );
36295 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36296 {
36297 self.automatic_glGetError("glVertexAttribLFormat");
36298 }
36299 out
36300 }
36301 #[doc(hidden)]
36302 pub unsafe fn VertexAttribLFormat_load_with_dyn(
36303 &self,
36304 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36305 ) -> bool {
36306 load_dyn_name_atomic_ptr(
36307 get_proc_address,
36308 b"glVertexAttribLFormat\0",
36309 &self.glVertexAttribLFormat_p,
36310 )
36311 }
36312 #[inline]
36313 #[doc(hidden)]
36314 pub fn VertexAttribLFormat_is_loaded(&self) -> bool {
36315 !self.glVertexAttribLFormat_p.load(RELAX).is_null()
36316 }
36317 #[cfg_attr(feature = "inline", inline)]
36321 #[cfg_attr(feature = "inline_always", inline(always))]
36322 pub unsafe fn VertexAttribLPointer(
36323 &self,
36324 index: GLuint,
36325 size: GLint,
36326 type_: GLenum,
36327 stride: GLsizei,
36328 pointer: *const c_void,
36329 ) {
36330 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36331 {
36332 trace!(
36333 "calling gl.VertexAttribLPointer({:?}, {:?}, {:#X}, {:?}, {:p});",
36334 index,
36335 size,
36336 type_,
36337 stride,
36338 pointer
36339 );
36340 }
36341 let out = call_atomic_ptr_5arg(
36342 "glVertexAttribLPointer",
36343 &self.glVertexAttribLPointer_p,
36344 index,
36345 size,
36346 type_,
36347 stride,
36348 pointer,
36349 );
36350 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36351 {
36352 self.automatic_glGetError("glVertexAttribLPointer");
36353 }
36354 out
36355 }
36356 #[doc(hidden)]
36357 pub unsafe fn VertexAttribLPointer_load_with_dyn(
36358 &self,
36359 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36360 ) -> bool {
36361 load_dyn_name_atomic_ptr(
36362 get_proc_address,
36363 b"glVertexAttribLPointer\0",
36364 &self.glVertexAttribLPointer_p,
36365 )
36366 }
36367 #[inline]
36368 #[doc(hidden)]
36369 pub fn VertexAttribLPointer_is_loaded(&self) -> bool {
36370 !self.glVertexAttribLPointer_p.load(RELAX).is_null()
36371 }
36372 #[cfg_attr(feature = "inline", inline)]
36375 #[cfg_attr(feature = "inline_always", inline(always))]
36376 pub unsafe fn VertexAttribP1ui(
36377 &self,
36378 index: GLuint,
36379 type_: GLenum,
36380 normalized: GLboolean,
36381 value: GLuint,
36382 ) {
36383 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36384 {
36385 trace!(
36386 "calling gl.VertexAttribP1ui({:?}, {:#X}, {:?}, {:?});",
36387 index,
36388 type_,
36389 normalized,
36390 value
36391 );
36392 }
36393 let out = call_atomic_ptr_4arg(
36394 "glVertexAttribP1ui",
36395 &self.glVertexAttribP1ui_p,
36396 index,
36397 type_,
36398 normalized,
36399 value,
36400 );
36401 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36402 {
36403 self.automatic_glGetError("glVertexAttribP1ui");
36404 }
36405 out
36406 }
36407 #[doc(hidden)]
36408 pub unsafe fn VertexAttribP1ui_load_with_dyn(
36409 &self,
36410 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36411 ) -> bool {
36412 load_dyn_name_atomic_ptr(
36413 get_proc_address,
36414 b"glVertexAttribP1ui\0",
36415 &self.glVertexAttribP1ui_p,
36416 )
36417 }
36418 #[inline]
36419 #[doc(hidden)]
36420 pub fn VertexAttribP1ui_is_loaded(&self) -> bool {
36421 !self.glVertexAttribP1ui_p.load(RELAX).is_null()
36422 }
36423 #[cfg_attr(feature = "inline", inline)]
36427 #[cfg_attr(feature = "inline_always", inline(always))]
36428 pub unsafe fn VertexAttribP1uiv(
36429 &self,
36430 index: GLuint,
36431 type_: GLenum,
36432 normalized: GLboolean,
36433 value: *const GLuint,
36434 ) {
36435 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36436 {
36437 trace!(
36438 "calling gl.VertexAttribP1uiv({:?}, {:#X}, {:?}, {:p});",
36439 index,
36440 type_,
36441 normalized,
36442 value
36443 );
36444 }
36445 let out = call_atomic_ptr_4arg(
36446 "glVertexAttribP1uiv",
36447 &self.glVertexAttribP1uiv_p,
36448 index,
36449 type_,
36450 normalized,
36451 value,
36452 );
36453 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36454 {
36455 self.automatic_glGetError("glVertexAttribP1uiv");
36456 }
36457 out
36458 }
36459 #[doc(hidden)]
36460 pub unsafe fn VertexAttribP1uiv_load_with_dyn(
36461 &self,
36462 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36463 ) -> bool {
36464 load_dyn_name_atomic_ptr(
36465 get_proc_address,
36466 b"glVertexAttribP1uiv\0",
36467 &self.glVertexAttribP1uiv_p,
36468 )
36469 }
36470 #[inline]
36471 #[doc(hidden)]
36472 pub fn VertexAttribP1uiv_is_loaded(&self) -> bool {
36473 !self.glVertexAttribP1uiv_p.load(RELAX).is_null()
36474 }
36475 #[cfg_attr(feature = "inline", inline)]
36478 #[cfg_attr(feature = "inline_always", inline(always))]
36479 pub unsafe fn VertexAttribP2ui(
36480 &self,
36481 index: GLuint,
36482 type_: GLenum,
36483 normalized: GLboolean,
36484 value: GLuint,
36485 ) {
36486 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36487 {
36488 trace!(
36489 "calling gl.VertexAttribP2ui({:?}, {:#X}, {:?}, {:?});",
36490 index,
36491 type_,
36492 normalized,
36493 value
36494 );
36495 }
36496 let out = call_atomic_ptr_4arg(
36497 "glVertexAttribP2ui",
36498 &self.glVertexAttribP2ui_p,
36499 index,
36500 type_,
36501 normalized,
36502 value,
36503 );
36504 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36505 {
36506 self.automatic_glGetError("glVertexAttribP2ui");
36507 }
36508 out
36509 }
36510 #[doc(hidden)]
36511 pub unsafe fn VertexAttribP2ui_load_with_dyn(
36512 &self,
36513 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36514 ) -> bool {
36515 load_dyn_name_atomic_ptr(
36516 get_proc_address,
36517 b"glVertexAttribP2ui\0",
36518 &self.glVertexAttribP2ui_p,
36519 )
36520 }
36521 #[inline]
36522 #[doc(hidden)]
36523 pub fn VertexAttribP2ui_is_loaded(&self) -> bool {
36524 !self.glVertexAttribP2ui_p.load(RELAX).is_null()
36525 }
36526 #[cfg_attr(feature = "inline", inline)]
36530 #[cfg_attr(feature = "inline_always", inline(always))]
36531 pub unsafe fn VertexAttribP2uiv(
36532 &self,
36533 index: GLuint,
36534 type_: GLenum,
36535 normalized: GLboolean,
36536 value: *const GLuint,
36537 ) {
36538 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36539 {
36540 trace!(
36541 "calling gl.VertexAttribP2uiv({:?}, {:#X}, {:?}, {:p});",
36542 index,
36543 type_,
36544 normalized,
36545 value
36546 );
36547 }
36548 let out = call_atomic_ptr_4arg(
36549 "glVertexAttribP2uiv",
36550 &self.glVertexAttribP2uiv_p,
36551 index,
36552 type_,
36553 normalized,
36554 value,
36555 );
36556 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36557 {
36558 self.automatic_glGetError("glVertexAttribP2uiv");
36559 }
36560 out
36561 }
36562 #[doc(hidden)]
36563 pub unsafe fn VertexAttribP2uiv_load_with_dyn(
36564 &self,
36565 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36566 ) -> bool {
36567 load_dyn_name_atomic_ptr(
36568 get_proc_address,
36569 b"glVertexAttribP2uiv\0",
36570 &self.glVertexAttribP2uiv_p,
36571 )
36572 }
36573 #[inline]
36574 #[doc(hidden)]
36575 pub fn VertexAttribP2uiv_is_loaded(&self) -> bool {
36576 !self.glVertexAttribP2uiv_p.load(RELAX).is_null()
36577 }
36578 #[cfg_attr(feature = "inline", inline)]
36581 #[cfg_attr(feature = "inline_always", inline(always))]
36582 pub unsafe fn VertexAttribP3ui(
36583 &self,
36584 index: GLuint,
36585 type_: GLenum,
36586 normalized: GLboolean,
36587 value: GLuint,
36588 ) {
36589 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36590 {
36591 trace!(
36592 "calling gl.VertexAttribP3ui({:?}, {:#X}, {:?}, {:?});",
36593 index,
36594 type_,
36595 normalized,
36596 value
36597 );
36598 }
36599 let out = call_atomic_ptr_4arg(
36600 "glVertexAttribP3ui",
36601 &self.glVertexAttribP3ui_p,
36602 index,
36603 type_,
36604 normalized,
36605 value,
36606 );
36607 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36608 {
36609 self.automatic_glGetError("glVertexAttribP3ui");
36610 }
36611 out
36612 }
36613 #[doc(hidden)]
36614 pub unsafe fn VertexAttribP3ui_load_with_dyn(
36615 &self,
36616 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36617 ) -> bool {
36618 load_dyn_name_atomic_ptr(
36619 get_proc_address,
36620 b"glVertexAttribP3ui\0",
36621 &self.glVertexAttribP3ui_p,
36622 )
36623 }
36624 #[inline]
36625 #[doc(hidden)]
36626 pub fn VertexAttribP3ui_is_loaded(&self) -> bool {
36627 !self.glVertexAttribP3ui_p.load(RELAX).is_null()
36628 }
36629 #[cfg_attr(feature = "inline", inline)]
36633 #[cfg_attr(feature = "inline_always", inline(always))]
36634 pub unsafe fn VertexAttribP3uiv(
36635 &self,
36636 index: GLuint,
36637 type_: GLenum,
36638 normalized: GLboolean,
36639 value: *const GLuint,
36640 ) {
36641 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36642 {
36643 trace!(
36644 "calling gl.VertexAttribP3uiv({:?}, {:#X}, {:?}, {:p});",
36645 index,
36646 type_,
36647 normalized,
36648 value
36649 );
36650 }
36651 let out = call_atomic_ptr_4arg(
36652 "glVertexAttribP3uiv",
36653 &self.glVertexAttribP3uiv_p,
36654 index,
36655 type_,
36656 normalized,
36657 value,
36658 );
36659 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36660 {
36661 self.automatic_glGetError("glVertexAttribP3uiv");
36662 }
36663 out
36664 }
36665 #[doc(hidden)]
36666 pub unsafe fn VertexAttribP3uiv_load_with_dyn(
36667 &self,
36668 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36669 ) -> bool {
36670 load_dyn_name_atomic_ptr(
36671 get_proc_address,
36672 b"glVertexAttribP3uiv\0",
36673 &self.glVertexAttribP3uiv_p,
36674 )
36675 }
36676 #[inline]
36677 #[doc(hidden)]
36678 pub fn VertexAttribP3uiv_is_loaded(&self) -> bool {
36679 !self.glVertexAttribP3uiv_p.load(RELAX).is_null()
36680 }
36681 #[cfg_attr(feature = "inline", inline)]
36684 #[cfg_attr(feature = "inline_always", inline(always))]
36685 pub unsafe fn VertexAttribP4ui(
36686 &self,
36687 index: GLuint,
36688 type_: GLenum,
36689 normalized: GLboolean,
36690 value: GLuint,
36691 ) {
36692 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36693 {
36694 trace!(
36695 "calling gl.VertexAttribP4ui({:?}, {:#X}, {:?}, {:?});",
36696 index,
36697 type_,
36698 normalized,
36699 value
36700 );
36701 }
36702 let out = call_atomic_ptr_4arg(
36703 "glVertexAttribP4ui",
36704 &self.glVertexAttribP4ui_p,
36705 index,
36706 type_,
36707 normalized,
36708 value,
36709 );
36710 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36711 {
36712 self.automatic_glGetError("glVertexAttribP4ui");
36713 }
36714 out
36715 }
36716 #[doc(hidden)]
36717 pub unsafe fn VertexAttribP4ui_load_with_dyn(
36718 &self,
36719 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36720 ) -> bool {
36721 load_dyn_name_atomic_ptr(
36722 get_proc_address,
36723 b"glVertexAttribP4ui\0",
36724 &self.glVertexAttribP4ui_p,
36725 )
36726 }
36727 #[inline]
36728 #[doc(hidden)]
36729 pub fn VertexAttribP4ui_is_loaded(&self) -> bool {
36730 !self.glVertexAttribP4ui_p.load(RELAX).is_null()
36731 }
36732 #[cfg_attr(feature = "inline", inline)]
36736 #[cfg_attr(feature = "inline_always", inline(always))]
36737 pub unsafe fn VertexAttribP4uiv(
36738 &self,
36739 index: GLuint,
36740 type_: GLenum,
36741 normalized: GLboolean,
36742 value: *const GLuint,
36743 ) {
36744 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36745 {
36746 trace!(
36747 "calling gl.VertexAttribP4uiv({:?}, {:#X}, {:?}, {:p});",
36748 index,
36749 type_,
36750 normalized,
36751 value
36752 );
36753 }
36754 let out = call_atomic_ptr_4arg(
36755 "glVertexAttribP4uiv",
36756 &self.glVertexAttribP4uiv_p,
36757 index,
36758 type_,
36759 normalized,
36760 value,
36761 );
36762 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36763 {
36764 self.automatic_glGetError("glVertexAttribP4uiv");
36765 }
36766 out
36767 }
36768 #[doc(hidden)]
36769 pub unsafe fn VertexAttribP4uiv_load_with_dyn(
36770 &self,
36771 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36772 ) -> bool {
36773 load_dyn_name_atomic_ptr(
36774 get_proc_address,
36775 b"glVertexAttribP4uiv\0",
36776 &self.glVertexAttribP4uiv_p,
36777 )
36778 }
36779 #[inline]
36780 #[doc(hidden)]
36781 pub fn VertexAttribP4uiv_is_loaded(&self) -> bool {
36782 !self.glVertexAttribP4uiv_p.load(RELAX).is_null()
36783 }
36784 #[cfg_attr(feature = "inline", inline)]
36788 #[cfg_attr(feature = "inline_always", inline(always))]
36789 pub unsafe fn VertexAttribPointer(
36790 &self,
36791 index: GLuint,
36792 size: GLint,
36793 type_: GLenum,
36794 normalized: GLboolean,
36795 stride: GLsizei,
36796 pointer: *const c_void,
36797 ) {
36798 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36799 {
36800 trace!(
36801 "calling gl.VertexAttribPointer({:?}, {:?}, {:#X}, {:?}, {:?}, {:p});",
36802 index,
36803 size,
36804 type_,
36805 normalized,
36806 stride,
36807 pointer
36808 );
36809 }
36810 let out = call_atomic_ptr_6arg(
36811 "glVertexAttribPointer",
36812 &self.glVertexAttribPointer_p,
36813 index,
36814 size,
36815 type_,
36816 normalized,
36817 stride,
36818 pointer,
36819 );
36820 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36821 {
36822 self.automatic_glGetError("glVertexAttribPointer");
36823 }
36824 out
36825 }
36826 #[doc(hidden)]
36827 pub unsafe fn VertexAttribPointer_load_with_dyn(
36828 &self,
36829 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36830 ) -> bool {
36831 load_dyn_name_atomic_ptr(
36832 get_proc_address,
36833 b"glVertexAttribPointer\0",
36834 &self.glVertexAttribPointer_p,
36835 )
36836 }
36837 #[inline]
36838 #[doc(hidden)]
36839 pub fn VertexAttribPointer_is_loaded(&self) -> bool {
36840 !self.glVertexAttribPointer_p.load(RELAX).is_null()
36841 }
36842 #[cfg_attr(feature = "inline", inline)]
36844 #[cfg_attr(feature = "inline_always", inline(always))]
36845 pub unsafe fn VertexBindingDivisor(&self, bindingindex: GLuint, divisor: GLuint) {
36846 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36847 {
36848 trace!(
36849 "calling gl.VertexBindingDivisor({:?}, {:?});",
36850 bindingindex,
36851 divisor
36852 );
36853 }
36854 let out = call_atomic_ptr_2arg(
36855 "glVertexBindingDivisor",
36856 &self.glVertexBindingDivisor_p,
36857 bindingindex,
36858 divisor,
36859 );
36860 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36861 {
36862 self.automatic_glGetError("glVertexBindingDivisor");
36863 }
36864 out
36865 }
36866 #[doc(hidden)]
36867 pub unsafe fn VertexBindingDivisor_load_with_dyn(
36868 &self,
36869 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36870 ) -> bool {
36871 load_dyn_name_atomic_ptr(
36872 get_proc_address,
36873 b"glVertexBindingDivisor\0",
36874 &self.glVertexBindingDivisor_p,
36875 )
36876 }
36877 #[inline]
36878 #[doc(hidden)]
36879 pub fn VertexBindingDivisor_is_loaded(&self) -> bool {
36880 !self.glVertexBindingDivisor_p.load(RELAX).is_null()
36881 }
36882 #[cfg_attr(feature = "inline", inline)]
36886 #[cfg_attr(feature = "inline_always", inline(always))]
36887 pub unsafe fn Viewport(&self, x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
36888 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36889 {
36890 trace!(
36891 "calling gl.Viewport({:?}, {:?}, {:?}, {:?});",
36892 x,
36893 y,
36894 width,
36895 height
36896 );
36897 }
36898 let out = call_atomic_ptr_4arg("glViewport", &self.glViewport_p, x, y, width, height);
36899 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36900 {
36901 self.automatic_glGetError("glViewport");
36902 }
36903 out
36904 }
36905 #[doc(hidden)]
36906 pub unsafe fn Viewport_load_with_dyn(
36907 &self,
36908 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36909 ) -> bool {
36910 load_dyn_name_atomic_ptr(get_proc_address, b"glViewport\0", &self.glViewport_p)
36911 }
36912 #[inline]
36913 #[doc(hidden)]
36914 pub fn Viewport_is_loaded(&self) -> bool {
36915 !self.glViewport_p.load(RELAX).is_null()
36916 }
36917 #[cfg_attr(feature = "inline", inline)]
36920 #[cfg_attr(feature = "inline_always", inline(always))]
36921 pub unsafe fn ViewportArrayv(&self, first: GLuint, count: GLsizei, v: *const GLfloat) {
36922 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36923 {
36924 trace!(
36925 "calling gl.ViewportArrayv({:?}, {:?}, {:p});",
36926 first,
36927 count,
36928 v
36929 );
36930 }
36931 let out = call_atomic_ptr_3arg(
36932 "glViewportArrayv",
36933 &self.glViewportArrayv_p,
36934 first,
36935 count,
36936 v,
36937 );
36938 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36939 {
36940 self.automatic_glGetError("glViewportArrayv");
36941 }
36942 out
36943 }
36944 #[doc(hidden)]
36945 pub unsafe fn ViewportArrayv_load_with_dyn(
36946 &self,
36947 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36948 ) -> bool {
36949 load_dyn_name_atomic_ptr(
36950 get_proc_address,
36951 b"glViewportArrayv\0",
36952 &self.glViewportArrayv_p,
36953 )
36954 }
36955 #[inline]
36956 #[doc(hidden)]
36957 pub fn ViewportArrayv_is_loaded(&self) -> bool {
36958 !self.glViewportArrayv_p.load(RELAX).is_null()
36959 }
36960 #[cfg_attr(feature = "inline", inline)]
36962 #[cfg_attr(feature = "inline_always", inline(always))]
36963 pub unsafe fn ViewportIndexedf(
36964 &self,
36965 index: GLuint,
36966 x: GLfloat,
36967 y: GLfloat,
36968 w: GLfloat,
36969 h: GLfloat,
36970 ) {
36971 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36972 {
36973 trace!(
36974 "calling gl.ViewportIndexedf({:?}, {:?}, {:?}, {:?}, {:?});",
36975 index,
36976 x,
36977 y,
36978 w,
36979 h
36980 );
36981 }
36982 let out = call_atomic_ptr_5arg(
36983 "glViewportIndexedf",
36984 &self.glViewportIndexedf_p,
36985 index,
36986 x,
36987 y,
36988 w,
36989 h,
36990 );
36991 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36992 {
36993 self.automatic_glGetError("glViewportIndexedf");
36994 }
36995 out
36996 }
36997 #[doc(hidden)]
36998 pub unsafe fn ViewportIndexedf_load_with_dyn(
36999 &self,
37000 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
37001 ) -> bool {
37002 load_dyn_name_atomic_ptr(
37003 get_proc_address,
37004 b"glViewportIndexedf\0",
37005 &self.glViewportIndexedf_p,
37006 )
37007 }
37008 #[inline]
37009 #[doc(hidden)]
37010 pub fn ViewportIndexedf_is_loaded(&self) -> bool {
37011 !self.glViewportIndexedf_p.load(RELAX).is_null()
37012 }
37013 #[cfg_attr(feature = "inline", inline)]
37016 #[cfg_attr(feature = "inline_always", inline(always))]
37017 pub unsafe fn ViewportIndexedfv(&self, index: GLuint, v: *const GLfloat) {
37018 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
37019 {
37020 trace!("calling gl.ViewportIndexedfv({:?}, {:p});", index, v);
37021 }
37022 let out =
37023 call_atomic_ptr_2arg("glViewportIndexedfv", &self.glViewportIndexedfv_p, index, v);
37024 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
37025 {
37026 self.automatic_glGetError("glViewportIndexedfv");
37027 }
37028 out
37029 }
37030 #[doc(hidden)]
37031 pub unsafe fn ViewportIndexedfv_load_with_dyn(
37032 &self,
37033 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
37034 ) -> bool {
37035 load_dyn_name_atomic_ptr(
37036 get_proc_address,
37037 b"glViewportIndexedfv\0",
37038 &self.glViewportIndexedfv_p,
37039 )
37040 }
37041 #[inline]
37042 #[doc(hidden)]
37043 pub fn ViewportIndexedfv_is_loaded(&self) -> bool {
37044 !self.glViewportIndexedfv_p.load(RELAX).is_null()
37045 }
37046 #[cfg_attr(feature = "inline", inline)]
37050 #[cfg_attr(feature = "inline_always", inline(always))]
37051 pub unsafe fn WaitSync(&self, sync: GLsync, flags: GLbitfield, timeout: GLuint64) {
37052 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
37053 {
37054 trace!(
37055 "calling gl.WaitSync({:p}, {:?}, {:?});",
37056 sync,
37057 flags,
37058 timeout
37059 );
37060 }
37061 let out = call_atomic_ptr_3arg("glWaitSync", &self.glWaitSync_p, sync, flags, timeout);
37062 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
37063 {
37064 self.automatic_glGetError("glWaitSync");
37065 }
37066 out
37067 }
37068 #[doc(hidden)]
37069 pub unsafe fn WaitSync_load_with_dyn(
37070 &self,
37071 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
37072 ) -> bool {
37073 load_dyn_name_atomic_ptr(get_proc_address, b"glWaitSync\0", &self.glWaitSync_p)
37074 }
37075 #[inline]
37076 #[doc(hidden)]
37077 pub fn WaitSync_is_loaded(&self) -> bool {
37078 !self.glWaitSync_p.load(RELAX).is_null()
37079 }
37080 }
37081 #[repr(C)]
37085 pub struct GlFns {
37086 glActiveShaderProgram_p: APcv,
37087 glActiveTexture_p: APcv,
37088 glAttachShader_p: APcv,
37089 glBeginConditionalRender_p: APcv,
37090 glBeginQuery_p: APcv,
37091 glBeginQueryEXT_p: APcv,
37092 glBeginQueryIndexed_p: APcv,
37093 glBeginTransformFeedback_p: APcv,
37094 glBindAttribLocation_p: APcv,
37095 glBindBuffer_p: APcv,
37096 glBindBufferBase_p: APcv,
37097 glBindBufferRange_p: APcv,
37098 glBindBuffersBase_p: APcv,
37099 glBindBuffersRange_p: APcv,
37100 glBindFragDataLocation_p: APcv,
37101 glBindFragDataLocationIndexed_p: APcv,
37102 glBindFramebuffer_p: APcv,
37103 glBindImageTexture_p: APcv,
37104 glBindImageTextures_p: APcv,
37105 glBindProgramPipeline_p: APcv,
37106 glBindRenderbuffer_p: APcv,
37107 glBindSampler_p: APcv,
37108 glBindSamplers_p: APcv,
37109 glBindTexture_p: APcv,
37110 glBindTextureUnit_p: APcv,
37111 glBindTextures_p: APcv,
37112 glBindTransformFeedback_p: APcv,
37113 glBindVertexArray_p: APcv,
37114 glBindVertexArrayAPPLE_p: APcv,
37115 glBindVertexArrayOES_p: APcv,
37116 glBindVertexBuffer_p: APcv,
37117 glBindVertexBuffers_p: APcv,
37118 glBlendBarrier_p: APcv,
37119 glBlendColor_p: APcv,
37120 glBlendEquation_p: APcv,
37121 glBlendEquationSeparate_p: APcv,
37122 glBlendEquationSeparatei_p: APcv,
37123 glBlendEquationi_p: APcv,
37124 glBlendFunc_p: APcv,
37125 glBlendFuncSeparate_p: APcv,
37126 glBlendFuncSeparatei_p: APcv,
37127 glBlendFunci_p: APcv,
37128 glBlitFramebuffer_p: APcv,
37129 glBlitNamedFramebuffer_p: APcv,
37130 glBufferData_p: APcv,
37131 glBufferStorage_p: APcv,
37132 glBufferStorageEXT_p: APcv,
37133 glBufferSubData_p: APcv,
37134 glCheckFramebufferStatus_p: APcv,
37135 glCheckNamedFramebufferStatus_p: APcv,
37136 glClampColor_p: APcv,
37137 glClear_p: APcv,
37138 glClearBufferData_p: APcv,
37139 glClearBufferSubData_p: APcv,
37140 glClearBufferfi_p: APcv,
37141 glClearBufferfv_p: APcv,
37142 glClearBufferiv_p: APcv,
37143 glClearBufferuiv_p: APcv,
37144 glClearColor_p: APcv,
37145 glClearDepth_p: APcv,
37146 glClearDepthf_p: APcv,
37147 glClearNamedBufferData_p: APcv,
37148 glClearNamedBufferSubData_p: APcv,
37149 glClearNamedFramebufferfi_p: APcv,
37150 glClearNamedFramebufferfv_p: APcv,
37151 glClearNamedFramebufferiv_p: APcv,
37152 glClearNamedFramebufferuiv_p: APcv,
37153 glClearStencil_p: APcv,
37154 glClearTexImage_p: APcv,
37155 glClearTexSubImage_p: APcv,
37156 glClientWaitSync_p: APcv,
37157 glClipControl_p: APcv,
37158 glColorMask_p: APcv,
37159 glColorMaskIndexedEXT_p: APcv,
37160 glColorMaski_p: APcv,
37161 glCompileShader_p: APcv,
37162 glCompressedTexImage1D_p: APcv,
37163 glCompressedTexImage2D_p: APcv,
37164 glCompressedTexImage3D_p: APcv,
37165 glCompressedTexSubImage1D_p: APcv,
37166 glCompressedTexSubImage2D_p: APcv,
37167 glCompressedTexSubImage3D_p: APcv,
37168 glCompressedTextureSubImage1D_p: APcv,
37169 glCompressedTextureSubImage2D_p: APcv,
37170 glCompressedTextureSubImage3D_p: APcv,
37171 glCopyBufferSubData_p: APcv,
37172 glCopyBufferSubDataNV_p: APcv,
37173 glCopyImageSubData_p: APcv,
37174 glCopyNamedBufferSubData_p: APcv,
37175 glCopyTexImage1D_p: APcv,
37176 glCopyTexImage2D_p: APcv,
37177 glCopyTexSubImage1D_p: APcv,
37178 glCopyTexSubImage2D_p: APcv,
37179 glCopyTexSubImage3D_p: APcv,
37180 glCopyTextureSubImage1D_p: APcv,
37181 glCopyTextureSubImage2D_p: APcv,
37182 glCopyTextureSubImage3D_p: APcv,
37183 glCreateBuffers_p: APcv,
37184 glCreateFramebuffers_p: APcv,
37185 glCreateProgram_p: APcv,
37186 glCreateProgramPipelines_p: APcv,
37187 glCreateQueries_p: APcv,
37188 glCreateRenderbuffers_p: APcv,
37189 glCreateSamplers_p: APcv,
37190 glCreateShader_p: APcv,
37191 glCreateShaderProgramv_p: APcv,
37192 glCreateTextures_p: APcv,
37193 glCreateTransformFeedbacks_p: APcv,
37194 glCreateVertexArrays_p: APcv,
37195 glCullFace_p: APcv,
37196 glDebugMessageCallback_p: APcv,
37197 glDebugMessageCallbackARB_p: APcv,
37198 glDebugMessageCallbackKHR_p: APcv,
37199 glDebugMessageControl_p: APcv,
37200 glDebugMessageControlARB_p: APcv,
37201 glDebugMessageControlKHR_p: APcv,
37202 glDebugMessageInsert_p: APcv,
37203 glDebugMessageInsertARB_p: APcv,
37204 glDebugMessageInsertKHR_p: APcv,
37205 glDeleteBuffers_p: APcv,
37206 glDeleteFramebuffers_p: APcv,
37207 glDeleteProgram_p: APcv,
37208 glDeleteProgramPipelines_p: APcv,
37209 glDeleteQueries_p: APcv,
37210 glDeleteQueriesEXT_p: APcv,
37211 glDeleteRenderbuffers_p: APcv,
37212 glDeleteSamplers_p: APcv,
37213 glDeleteShader_p: APcv,
37214 glDeleteSync_p: APcv,
37215 glDeleteTextures_p: APcv,
37216 glDeleteTransformFeedbacks_p: APcv,
37217 glDeleteVertexArrays_p: APcv,
37218 glDeleteVertexArraysAPPLE_p: APcv,
37219 glDeleteVertexArraysOES_p: APcv,
37220 glDepthFunc_p: APcv,
37221 glDepthMask_p: APcv,
37222 glDepthRange_p: APcv,
37223 glDepthRangeArrayv_p: APcv,
37224 glDepthRangeIndexed_p: APcv,
37225 glDepthRangef_p: APcv,
37226 glDetachShader_p: APcv,
37227 glDisable_p: APcv,
37228 glDisableIndexedEXT_p: APcv,
37229 glDisableVertexArrayAttrib_p: APcv,
37230 glDisableVertexAttribArray_p: APcv,
37231 glDisablei_p: APcv,
37232 glDispatchCompute_p: APcv,
37233 glDispatchComputeIndirect_p: APcv,
37234 glDrawArrays_p: APcv,
37235 glDrawArraysIndirect_p: APcv,
37236 glDrawArraysInstanced_p: APcv,
37237 glDrawArraysInstancedARB_p: APcv,
37238 glDrawArraysInstancedBaseInstance_p: APcv,
37239 glDrawBuffer_p: APcv,
37240 glDrawBuffers_p: APcv,
37241 glDrawElements_p: APcv,
37242 glDrawElementsBaseVertex_p: APcv,
37243 glDrawElementsIndirect_p: APcv,
37244 glDrawElementsInstanced_p: APcv,
37245 glDrawElementsInstancedARB_p: APcv,
37246 glDrawElementsInstancedBaseInstance_p: APcv,
37247 glDrawElementsInstancedBaseVertex_p: APcv,
37248 glDrawElementsInstancedBaseVertexBaseInstance_p: APcv,
37249 glDrawRangeElements_p: APcv,
37250 glDrawRangeElementsBaseVertex_p: APcv,
37251 glDrawTransformFeedback_p: APcv,
37252 glDrawTransformFeedbackInstanced_p: APcv,
37253 glDrawTransformFeedbackStream_p: APcv,
37254 glDrawTransformFeedbackStreamInstanced_p: APcv,
37255 glEnable_p: APcv,
37256 glEnableIndexedEXT_p: APcv,
37257 glEnableVertexArrayAttrib_p: APcv,
37258 glEnableVertexAttribArray_p: APcv,
37259 glEnablei_p: APcv,
37260 glEndConditionalRender_p: APcv,
37261 glEndQuery_p: APcv,
37262 glEndQueryEXT_p: APcv,
37263 glEndQueryIndexed_p: APcv,
37264 glEndTransformFeedback_p: APcv,
37265 glFenceSync_p: APcv,
37266 glFinish_p: APcv,
37267 glFlush_p: APcv,
37268 glFlushMappedBufferRange_p: APcv,
37269 glFlushMappedNamedBufferRange_p: APcv,
37270 glFramebufferParameteri_p: APcv,
37271 glFramebufferRenderbuffer_p: APcv,
37272 glFramebufferTexture_p: APcv,
37273 glFramebufferTexture1D_p: APcv,
37274 glFramebufferTexture2D_p: APcv,
37275 glFramebufferTexture3D_p: APcv,
37276 glFramebufferTextureLayer_p: APcv,
37277 glFrontFace_p: APcv,
37278 glGenBuffers_p: APcv,
37279 glGenFramebuffers_p: APcv,
37280 glGenProgramPipelines_p: APcv,
37281 glGenQueries_p: APcv,
37282 glGenQueriesEXT_p: APcv,
37283 glGenRenderbuffers_p: APcv,
37284 glGenSamplers_p: APcv,
37285 glGenTextures_p: APcv,
37286 glGenTransformFeedbacks_p: APcv,
37287 glGenVertexArrays_p: APcv,
37288 glGenVertexArraysAPPLE_p: APcv,
37289 glGenVertexArraysOES_p: APcv,
37290 glGenerateMipmap_p: APcv,
37291 glGenerateTextureMipmap_p: APcv,
37292 glGetActiveAtomicCounterBufferiv_p: APcv,
37293 glGetActiveAttrib_p: APcv,
37294 glGetActiveSubroutineName_p: APcv,
37295 glGetActiveSubroutineUniformName_p: APcv,
37296 glGetActiveSubroutineUniformiv_p: APcv,
37297 glGetActiveUniform_p: APcv,
37298 glGetActiveUniformBlockName_p: APcv,
37299 glGetActiveUniformBlockiv_p: APcv,
37300 glGetActiveUniformName_p: APcv,
37301 glGetActiveUniformsiv_p: APcv,
37302 glGetAttachedShaders_p: APcv,
37303 glGetAttribLocation_p: APcv,
37304 glGetBooleanIndexedvEXT_p: APcv,
37305 glGetBooleani_v_p: APcv,
37306 glGetBooleanv_p: APcv,
37307 glGetBufferParameteri64v_p: APcv,
37308 glGetBufferParameteriv_p: APcv,
37309 glGetBufferPointerv_p: APcv,
37310 glGetBufferSubData_p: APcv,
37311 glGetCompressedTexImage_p: APcv,
37312 glGetCompressedTextureImage_p: APcv,
37313 glGetCompressedTextureSubImage_p: APcv,
37314 glGetDebugMessageLog_p: APcv,
37315 glGetDebugMessageLogARB_p: APcv,
37316 glGetDebugMessageLogKHR_p: APcv,
37317 glGetDoublei_v_p: APcv,
37318 glGetDoublev_p: APcv,
37319 glGetError_p: APcv,
37320 glGetFloati_v_p: APcv,
37321 glGetFloatv_p: APcv,
37322 glGetFragDataIndex_p: APcv,
37323 glGetFragDataLocation_p: APcv,
37324 glGetFramebufferAttachmentParameteriv_p: APcv,
37325 glGetFramebufferParameteriv_p: APcv,
37326 glGetGraphicsResetStatus_p: APcv,
37327 glGetInteger64i_v_p: APcv,
37328 glGetInteger64v_p: APcv,
37329 glGetInteger64vEXT_p: APcv,
37330 glGetIntegerIndexedvEXT_p: APcv,
37331 glGetIntegeri_v_p: APcv,
37332 glGetIntegerv_p: APcv,
37333 glGetInternalformati64v_p: APcv,
37334 glGetInternalformativ_p: APcv,
37335 glGetMultisamplefv_p: APcv,
37336 glGetNamedBufferParameteri64v_p: APcv,
37337 glGetNamedBufferParameteriv_p: APcv,
37338 glGetNamedBufferPointerv_p: APcv,
37339 glGetNamedBufferSubData_p: APcv,
37340 glGetNamedFramebufferAttachmentParameteriv_p: APcv,
37341 glGetNamedFramebufferParameteriv_p: APcv,
37342 glGetNamedRenderbufferParameteriv_p: APcv,
37343 glGetObjectLabel_p: APcv,
37344 glGetObjectLabelKHR_p: APcv,
37345 glGetObjectPtrLabel_p: APcv,
37346 glGetObjectPtrLabelKHR_p: APcv,
37347 glGetPointerv_p: APcv,
37348 glGetPointervKHR_p: APcv,
37349 glGetProgramBinary_p: APcv,
37350 glGetProgramInfoLog_p: APcv,
37351 glGetProgramInterfaceiv_p: APcv,
37352 glGetProgramPipelineInfoLog_p: APcv,
37353 glGetProgramPipelineiv_p: APcv,
37354 glGetProgramResourceIndex_p: APcv,
37355 glGetProgramResourceLocation_p: APcv,
37356 glGetProgramResourceLocationIndex_p: APcv,
37357 glGetProgramResourceName_p: APcv,
37358 glGetProgramResourceiv_p: APcv,
37359 glGetProgramStageiv_p: APcv,
37360 glGetProgramiv_p: APcv,
37361 glGetQueryBufferObjecti64v_p: APcv,
37362 glGetQueryBufferObjectiv_p: APcv,
37363 glGetQueryBufferObjectui64v_p: APcv,
37364 glGetQueryBufferObjectuiv_p: APcv,
37365 glGetQueryIndexediv_p: APcv,
37366 glGetQueryObjecti64v_p: APcv,
37367 glGetQueryObjecti64vEXT_p: APcv,
37368 glGetQueryObjectiv_p: APcv,
37369 glGetQueryObjectivEXT_p: APcv,
37370 glGetQueryObjectui64v_p: APcv,
37371 glGetQueryObjectui64vEXT_p: APcv,
37372 glGetQueryObjectuiv_p: APcv,
37373 glGetQueryObjectuivEXT_p: APcv,
37374 glGetQueryiv_p: APcv,
37375 glGetQueryivEXT_p: APcv,
37376 glGetRenderbufferParameteriv_p: APcv,
37377 glGetSamplerParameterIiv_p: APcv,
37378 glGetSamplerParameterIuiv_p: APcv,
37379 glGetSamplerParameterfv_p: APcv,
37380 glGetSamplerParameteriv_p: APcv,
37381 glGetShaderInfoLog_p: APcv,
37382 glGetShaderPrecisionFormat_p: APcv,
37383 glGetShaderSource_p: APcv,
37384 glGetShaderiv_p: APcv,
37385 glGetString_p: APcv,
37386 glGetStringi_p: APcv,
37387 glGetSubroutineIndex_p: APcv,
37388 glGetSubroutineUniformLocation_p: APcv,
37389 glGetSynciv_p: APcv,
37390 glGetTexImage_p: APcv,
37391 glGetTexLevelParameterfv_p: APcv,
37392 glGetTexLevelParameteriv_p: APcv,
37393 glGetTexParameterIiv_p: APcv,
37394 glGetTexParameterIuiv_p: APcv,
37395 glGetTexParameterfv_p: APcv,
37396 glGetTexParameteriv_p: APcv,
37397 glGetTextureImage_p: APcv,
37398 glGetTextureLevelParameterfv_p: APcv,
37399 glGetTextureLevelParameteriv_p: APcv,
37400 glGetTextureParameterIiv_p: APcv,
37401 glGetTextureParameterIuiv_p: APcv,
37402 glGetTextureParameterfv_p: APcv,
37403 glGetTextureParameteriv_p: APcv,
37404 glGetTextureSubImage_p: APcv,
37405 glGetTransformFeedbackVarying_p: APcv,
37406 glGetTransformFeedbacki64_v_p: APcv,
37407 glGetTransformFeedbacki_v_p: APcv,
37408 glGetTransformFeedbackiv_p: APcv,
37409 glGetUniformBlockIndex_p: APcv,
37410 glGetUniformIndices_p: APcv,
37411 glGetUniformLocation_p: APcv,
37412 glGetUniformSubroutineuiv_p: APcv,
37413 glGetUniformdv_p: APcv,
37414 glGetUniformfv_p: APcv,
37415 glGetUniformiv_p: APcv,
37416 glGetUniformuiv_p: APcv,
37417 glGetVertexArrayIndexed64iv_p: APcv,
37418 glGetVertexArrayIndexediv_p: APcv,
37419 glGetVertexArrayiv_p: APcv,
37420 glGetVertexAttribIiv_p: APcv,
37421 glGetVertexAttribIuiv_p: APcv,
37422 glGetVertexAttribLdv_p: APcv,
37423 glGetVertexAttribPointerv_p: APcv,
37424 glGetVertexAttribdv_p: APcv,
37425 glGetVertexAttribfv_p: APcv,
37426 glGetVertexAttribiv_p: APcv,
37427 glGetnCompressedTexImage_p: APcv,
37428 glGetnTexImage_p: APcv,
37429 glGetnUniformdv_p: APcv,
37430 glGetnUniformfv_p: APcv,
37431 glGetnUniformiv_p: APcv,
37432 glGetnUniformuiv_p: APcv,
37433 glHint_p: APcv,
37434 glInvalidateBufferData_p: APcv,
37435 glInvalidateBufferSubData_p: APcv,
37436 glInvalidateFramebuffer_p: APcv,
37437 glInvalidateNamedFramebufferData_p: APcv,
37438 glInvalidateNamedFramebufferSubData_p: APcv,
37439 glInvalidateSubFramebuffer_p: APcv,
37440 glInvalidateTexImage_p: APcv,
37441 glInvalidateTexSubImage_p: APcv,
37442 glIsBuffer_p: APcv,
37443 glIsEnabled_p: APcv,
37444 glIsEnabledIndexedEXT_p: APcv,
37445 glIsEnabledi_p: APcv,
37446 glIsFramebuffer_p: APcv,
37447 glIsProgram_p: APcv,
37448 glIsProgramPipeline_p: APcv,
37449 glIsQuery_p: APcv,
37450 glIsQueryEXT_p: APcv,
37451 glIsRenderbuffer_p: APcv,
37452 glIsSampler_p: APcv,
37453 glIsShader_p: APcv,
37454 glIsSync_p: APcv,
37455 glIsTexture_p: APcv,
37456 glIsTransformFeedback_p: APcv,
37457 glIsVertexArray_p: APcv,
37458 glIsVertexArrayAPPLE_p: APcv,
37459 glIsVertexArrayOES_p: APcv,
37460 glLineWidth_p: APcv,
37461 glLinkProgram_p: APcv,
37462 glLogicOp_p: APcv,
37463 glMapBuffer_p: APcv,
37464 glMapBufferRange_p: APcv,
37465 glMapNamedBuffer_p: APcv,
37466 glMapNamedBufferRange_p: APcv,
37467 glMaxShaderCompilerThreadsARB_p: APcv,
37468 glMaxShaderCompilerThreadsKHR_p: APcv,
37469 glMemoryBarrier_p: APcv,
37470 glMemoryBarrierByRegion_p: APcv,
37471 glMinSampleShading_p: APcv,
37472 glMultiDrawArrays_p: APcv,
37473 glMultiDrawArraysIndirect_p: APcv,
37474 glMultiDrawArraysIndirectCount_p: APcv,
37475 glMultiDrawElements_p: APcv,
37476 glMultiDrawElementsBaseVertex_p: APcv,
37477 glMultiDrawElementsIndirect_p: APcv,
37478 glMultiDrawElementsIndirectCount_p: APcv,
37479 glNamedBufferData_p: APcv,
37480 glNamedBufferStorage_p: APcv,
37481 glNamedBufferSubData_p: APcv,
37482 glNamedFramebufferDrawBuffer_p: APcv,
37483 glNamedFramebufferDrawBuffers_p: APcv,
37484 glNamedFramebufferParameteri_p: APcv,
37485 glNamedFramebufferReadBuffer_p: APcv,
37486 glNamedFramebufferRenderbuffer_p: APcv,
37487 glNamedFramebufferTexture_p: APcv,
37488 glNamedFramebufferTextureLayer_p: APcv,
37489 glNamedRenderbufferStorage_p: APcv,
37490 glNamedRenderbufferStorageMultisample_p: APcv,
37491 glObjectLabel_p: APcv,
37492 glObjectLabelKHR_p: APcv,
37493 glObjectPtrLabel_p: APcv,
37494 glObjectPtrLabelKHR_p: APcv,
37495 glPatchParameterfv_p: APcv,
37496 glPatchParameteri_p: APcv,
37497 glPauseTransformFeedback_p: APcv,
37498 glPixelStoref_p: APcv,
37499 glPixelStorei_p: APcv,
37500 glPointParameterf_p: APcv,
37501 glPointParameterfv_p: APcv,
37502 glPointParameteri_p: APcv,
37503 glPointParameteriv_p: APcv,
37504 glPointSize_p: APcv,
37505 glPolygonMode_p: APcv,
37506 glPolygonOffset_p: APcv,
37507 glPolygonOffsetClamp_p: APcv,
37508 glPopDebugGroup_p: APcv,
37509 glPopDebugGroupKHR_p: APcv,
37510 glPrimitiveBoundingBox_p: APcv,
37511 glPrimitiveRestartIndex_p: APcv,
37512 glProgramBinary_p: APcv,
37513 glProgramParameteri_p: APcv,
37514 glProgramUniform1d_p: APcv,
37515 glProgramUniform1dv_p: APcv,
37516 glProgramUniform1f_p: APcv,
37517 glProgramUniform1fv_p: APcv,
37518 glProgramUniform1i_p: APcv,
37519 glProgramUniform1iv_p: APcv,
37520 glProgramUniform1ui_p: APcv,
37521 glProgramUniform1uiv_p: APcv,
37522 glProgramUniform2d_p: APcv,
37523 glProgramUniform2dv_p: APcv,
37524 glProgramUniform2f_p: APcv,
37525 glProgramUniform2fv_p: APcv,
37526 glProgramUniform2i_p: APcv,
37527 glProgramUniform2iv_p: APcv,
37528 glProgramUniform2ui_p: APcv,
37529 glProgramUniform2uiv_p: APcv,
37530 glProgramUniform3d_p: APcv,
37531 glProgramUniform3dv_p: APcv,
37532 glProgramUniform3f_p: APcv,
37533 glProgramUniform3fv_p: APcv,
37534 glProgramUniform3i_p: APcv,
37535 glProgramUniform3iv_p: APcv,
37536 glProgramUniform3ui_p: APcv,
37537 glProgramUniform3uiv_p: APcv,
37538 glProgramUniform4d_p: APcv,
37539 glProgramUniform4dv_p: APcv,
37540 glProgramUniform4f_p: APcv,
37541 glProgramUniform4fv_p: APcv,
37542 glProgramUniform4i_p: APcv,
37543 glProgramUniform4iv_p: APcv,
37544 glProgramUniform4ui_p: APcv,
37545 glProgramUniform4uiv_p: APcv,
37546 glProgramUniformMatrix2dv_p: APcv,
37547 glProgramUniformMatrix2fv_p: APcv,
37548 glProgramUniformMatrix2x3dv_p: APcv,
37549 glProgramUniformMatrix2x3fv_p: APcv,
37550 glProgramUniformMatrix2x4dv_p: APcv,
37551 glProgramUniformMatrix2x4fv_p: APcv,
37552 glProgramUniformMatrix3dv_p: APcv,
37553 glProgramUniformMatrix3fv_p: APcv,
37554 glProgramUniformMatrix3x2dv_p: APcv,
37555 glProgramUniformMatrix3x2fv_p: APcv,
37556 glProgramUniformMatrix3x4dv_p: APcv,
37557 glProgramUniformMatrix3x4fv_p: APcv,
37558 glProgramUniformMatrix4dv_p: APcv,
37559 glProgramUniformMatrix4fv_p: APcv,
37560 glProgramUniformMatrix4x2dv_p: APcv,
37561 glProgramUniformMatrix4x2fv_p: APcv,
37562 glProgramUniformMatrix4x3dv_p: APcv,
37563 glProgramUniformMatrix4x3fv_p: APcv,
37564 glProvokingVertex_p: APcv,
37565 glPushDebugGroup_p: APcv,
37566 glPushDebugGroupKHR_p: APcv,
37567 glQueryCounter_p: APcv,
37568 glQueryCounterEXT_p: APcv,
37569 glReadBuffer_p: APcv,
37570 glReadPixels_p: APcv,
37571 glReadnPixels_p: APcv,
37572 glReleaseShaderCompiler_p: APcv,
37573 glRenderbufferStorage_p: APcv,
37574 glRenderbufferStorageMultisample_p: APcv,
37575 glResumeTransformFeedback_p: APcv,
37576 glSampleCoverage_p: APcv,
37577 glSampleMaski_p: APcv,
37578 glSamplerParameterIiv_p: APcv,
37579 glSamplerParameterIuiv_p: APcv,
37580 glSamplerParameterf_p: APcv,
37581 glSamplerParameterfv_p: APcv,
37582 glSamplerParameteri_p: APcv,
37583 glSamplerParameteriv_p: APcv,
37584 glScissor_p: APcv,
37585 glScissorArrayv_p: APcv,
37586 glScissorIndexed_p: APcv,
37587 glScissorIndexedv_p: APcv,
37588 glShaderBinary_p: APcv,
37589 glShaderSource_p: APcv,
37590 glShaderStorageBlockBinding_p: APcv,
37591 glSpecializeShader_p: APcv,
37592 glStencilFunc_p: APcv,
37593 glStencilFuncSeparate_p: APcv,
37594 glStencilMask_p: APcv,
37595 glStencilMaskSeparate_p: APcv,
37596 glStencilOp_p: APcv,
37597 glStencilOpSeparate_p: APcv,
37598 glTexBuffer_p: APcv,
37599 glTexBufferRange_p: APcv,
37600 glTexImage1D_p: APcv,
37601 glTexImage2D_p: APcv,
37602 glTexImage2DMultisample_p: APcv,
37603 glTexImage3D_p: APcv,
37604 glTexImage3DMultisample_p: APcv,
37605 glTexParameterIiv_p: APcv,
37606 glTexParameterIuiv_p: APcv,
37607 glTexParameterf_p: APcv,
37608 glTexParameterfv_p: APcv,
37609 glTexParameteri_p: APcv,
37610 glTexParameteriv_p: APcv,
37611 glTexStorage1D_p: APcv,
37612 glTexStorage2D_p: APcv,
37613 glTexStorage2DMultisample_p: APcv,
37614 glTexStorage3D_p: APcv,
37615 glTexStorage3DMultisample_p: APcv,
37616 glTexSubImage1D_p: APcv,
37617 glTexSubImage2D_p: APcv,
37618 glTexSubImage3D_p: APcv,
37619 glTextureBarrier_p: APcv,
37620 glTextureBuffer_p: APcv,
37621 glTextureBufferRange_p: APcv,
37622 glTextureParameterIiv_p: APcv,
37623 glTextureParameterIuiv_p: APcv,
37624 glTextureParameterf_p: APcv,
37625 glTextureParameterfv_p: APcv,
37626 glTextureParameteri_p: APcv,
37627 glTextureParameteriv_p: APcv,
37628 glTextureStorage1D_p: APcv,
37629 glTextureStorage2D_p: APcv,
37630 glTextureStorage2DMultisample_p: APcv,
37631 glTextureStorage3D_p: APcv,
37632 glTextureStorage3DMultisample_p: APcv,
37633 glTextureSubImage1D_p: APcv,
37634 glTextureSubImage2D_p: APcv,
37635 glTextureSubImage3D_p: APcv,
37636 glTextureView_p: APcv,
37637 glTransformFeedbackBufferBase_p: APcv,
37638 glTransformFeedbackBufferRange_p: APcv,
37639 glTransformFeedbackVaryings_p: APcv,
37640 glUniform1d_p: APcv,
37641 glUniform1dv_p: APcv,
37642 glUniform1f_p: APcv,
37643 glUniform1fv_p: APcv,
37644 glUniform1i_p: APcv,
37645 glUniform1iv_p: APcv,
37646 glUniform1ui_p: APcv,
37647 glUniform1uiv_p: APcv,
37648 glUniform2d_p: APcv,
37649 glUniform2dv_p: APcv,
37650 glUniform2f_p: APcv,
37651 glUniform2fv_p: APcv,
37652 glUniform2i_p: APcv,
37653 glUniform2iv_p: APcv,
37654 glUniform2ui_p: APcv,
37655 glUniform2uiv_p: APcv,
37656 glUniform3d_p: APcv,
37657 glUniform3dv_p: APcv,
37658 glUniform3f_p: APcv,
37659 glUniform3fv_p: APcv,
37660 glUniform3i_p: APcv,
37661 glUniform3iv_p: APcv,
37662 glUniform3ui_p: APcv,
37663 glUniform3uiv_p: APcv,
37664 glUniform4d_p: APcv,
37665 glUniform4dv_p: APcv,
37666 glUniform4f_p: APcv,
37667 glUniform4fv_p: APcv,
37668 glUniform4i_p: APcv,
37669 glUniform4iv_p: APcv,
37670 glUniform4ui_p: APcv,
37671 glUniform4uiv_p: APcv,
37672 glUniformBlockBinding_p: APcv,
37673 glUniformMatrix2dv_p: APcv,
37674 glUniformMatrix2fv_p: APcv,
37675 glUniformMatrix2x3dv_p: APcv,
37676 glUniformMatrix2x3fv_p: APcv,
37677 glUniformMatrix2x4dv_p: APcv,
37678 glUniformMatrix2x4fv_p: APcv,
37679 glUniformMatrix3dv_p: APcv,
37680 glUniformMatrix3fv_p: APcv,
37681 glUniformMatrix3x2dv_p: APcv,
37682 glUniformMatrix3x2fv_p: APcv,
37683 glUniformMatrix3x4dv_p: APcv,
37684 glUniformMatrix3x4fv_p: APcv,
37685 glUniformMatrix4dv_p: APcv,
37686 glUniformMatrix4fv_p: APcv,
37687 glUniformMatrix4x2dv_p: APcv,
37688 glUniformMatrix4x2fv_p: APcv,
37689 glUniformMatrix4x3dv_p: APcv,
37690 glUniformMatrix4x3fv_p: APcv,
37691 glUniformSubroutinesuiv_p: APcv,
37692 glUnmapBuffer_p: APcv,
37693 glUnmapNamedBuffer_p: APcv,
37694 glUseProgram_p: APcv,
37695 glUseProgramStages_p: APcv,
37696 glValidateProgram_p: APcv,
37697 glValidateProgramPipeline_p: APcv,
37698 glVertexArrayAttribBinding_p: APcv,
37699 glVertexArrayAttribFormat_p: APcv,
37700 glVertexArrayAttribIFormat_p: APcv,
37701 glVertexArrayAttribLFormat_p: APcv,
37702 glVertexArrayBindingDivisor_p: APcv,
37703 glVertexArrayElementBuffer_p: APcv,
37704 glVertexArrayVertexBuffer_p: APcv,
37705 glVertexArrayVertexBuffers_p: APcv,
37706 glVertexAttrib1d_p: APcv,
37707 glVertexAttrib1dv_p: APcv,
37708 glVertexAttrib1f_p: APcv,
37709 glVertexAttrib1fv_p: APcv,
37710 glVertexAttrib1s_p: APcv,
37711 glVertexAttrib1sv_p: APcv,
37712 glVertexAttrib2d_p: APcv,
37713 glVertexAttrib2dv_p: APcv,
37714 glVertexAttrib2f_p: APcv,
37715 glVertexAttrib2fv_p: APcv,
37716 glVertexAttrib2s_p: APcv,
37717 glVertexAttrib2sv_p: APcv,
37718 glVertexAttrib3d_p: APcv,
37719 glVertexAttrib3dv_p: APcv,
37720 glVertexAttrib3f_p: APcv,
37721 glVertexAttrib3fv_p: APcv,
37722 glVertexAttrib3s_p: APcv,
37723 glVertexAttrib3sv_p: APcv,
37724 glVertexAttrib4Nbv_p: APcv,
37725 glVertexAttrib4Niv_p: APcv,
37726 glVertexAttrib4Nsv_p: APcv,
37727 glVertexAttrib4Nub_p: APcv,
37728 glVertexAttrib4Nubv_p: APcv,
37729 glVertexAttrib4Nuiv_p: APcv,
37730 glVertexAttrib4Nusv_p: APcv,
37731 glVertexAttrib4bv_p: APcv,
37732 glVertexAttrib4d_p: APcv,
37733 glVertexAttrib4dv_p: APcv,
37734 glVertexAttrib4f_p: APcv,
37735 glVertexAttrib4fv_p: APcv,
37736 glVertexAttrib4iv_p: APcv,
37737 glVertexAttrib4s_p: APcv,
37738 glVertexAttrib4sv_p: APcv,
37739 glVertexAttrib4ubv_p: APcv,
37740 glVertexAttrib4uiv_p: APcv,
37741 glVertexAttrib4usv_p: APcv,
37742 glVertexAttribBinding_p: APcv,
37743 glVertexAttribDivisor_p: APcv,
37744 glVertexAttribDivisorARB_p: APcv,
37745 glVertexAttribFormat_p: APcv,
37746 glVertexAttribI1i_p: APcv,
37747 glVertexAttribI1iv_p: APcv,
37748 glVertexAttribI1ui_p: APcv,
37749 glVertexAttribI1uiv_p: APcv,
37750 glVertexAttribI2i_p: APcv,
37751 glVertexAttribI2iv_p: APcv,
37752 glVertexAttribI2ui_p: APcv,
37753 glVertexAttribI2uiv_p: APcv,
37754 glVertexAttribI3i_p: APcv,
37755 glVertexAttribI3iv_p: APcv,
37756 glVertexAttribI3ui_p: APcv,
37757 glVertexAttribI3uiv_p: APcv,
37758 glVertexAttribI4bv_p: APcv,
37759 glVertexAttribI4i_p: APcv,
37760 glVertexAttribI4iv_p: APcv,
37761 glVertexAttribI4sv_p: APcv,
37762 glVertexAttribI4ubv_p: APcv,
37763 glVertexAttribI4ui_p: APcv,
37764 glVertexAttribI4uiv_p: APcv,
37765 glVertexAttribI4usv_p: APcv,
37766 glVertexAttribIFormat_p: APcv,
37767 glVertexAttribIPointer_p: APcv,
37768 glVertexAttribL1d_p: APcv,
37769 glVertexAttribL1dv_p: APcv,
37770 glVertexAttribL2d_p: APcv,
37771 glVertexAttribL2dv_p: APcv,
37772 glVertexAttribL3d_p: APcv,
37773 glVertexAttribL3dv_p: APcv,
37774 glVertexAttribL4d_p: APcv,
37775 glVertexAttribL4dv_p: APcv,
37776 glVertexAttribLFormat_p: APcv,
37777 glVertexAttribLPointer_p: APcv,
37778 glVertexAttribP1ui_p: APcv,
37779 glVertexAttribP1uiv_p: APcv,
37780 glVertexAttribP2ui_p: APcv,
37781 glVertexAttribP2uiv_p: APcv,
37782 glVertexAttribP3ui_p: APcv,
37783 glVertexAttribP3uiv_p: APcv,
37784 glVertexAttribP4ui_p: APcv,
37785 glVertexAttribP4uiv_p: APcv,
37786 glVertexAttribPointer_p: APcv,
37787 glVertexBindingDivisor_p: APcv,
37788 glViewport_p: APcv,
37789 glViewportArrayv_p: APcv,
37790 glViewportIndexedf_p: APcv,
37791 glViewportIndexedfv_p: APcv,
37792 glWaitSync_p: APcv,
37793 }
37794 #[cfg(feature = "bytemuck")]
37795 unsafe impl bytemuck::Zeroable for GlFns {}
37796 impl core::fmt::Debug for GlFns {
37797 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
37798 write!(f, "GlFns")
37799 }
37800 }
37801}
37802