1#![allow(unused)]
2#![no_std]
3#![allow(bad_style)]
4#![deny(missing_docs)]
5#![deny(missing_debug_implementations)]
6
7#[cfg(any(
121 all(
122 not(feature = "log"),
123 any(feature = "debug_trace_calls", feature = "debug_automatic_glGetError")
124 ),
125 not(feature = "chlorine"),
126))]
127extern crate std;
128
129use std::os::raw::*;
130
131#[cfg(feature = "log")]
132#[allow(unused)]
133use log::{error, trace};
134#[cfg(all(not(feature = "log"), feature = "debug_trace_calls"))]
135macro_rules! trace { ($($arg:tt)*) => { std::println!($($arg)*) } }
136#[cfg(all(not(feature = "log"), feature = "debug_automatic_glGetError"))]
137macro_rules! error { ($($arg:tt)*) => { std::eprintln!($($arg)*) } }
138
139use core::{
140 mem::transmute,
141 ptr::null_mut,
142 sync::atomic::{AtomicPtr, Ordering},
143};
144#[allow(dead_code)]
145const RELAX: Ordering = Ordering::Relaxed;
146#[allow(dead_code)]
147type APcv = AtomicPtr<c_void>;
148const fn ap_null() -> APcv {
149 AtomicPtr::new(null_mut())
150}
151
152pub use types::*;
153#[allow(missing_docs)]
154pub mod types {
155 use super::*;
157 pub type GLenum = c_uint;
158 pub type GLboolean = c_uchar;
159 pub type GLbitfield = c_uint;
160 pub type GLvoid = c_void;
161 pub type GLbyte = i8;
162 pub type GLubyte = u8;
163 pub type GLshort = i16;
164 pub type GLushort = u16;
165 pub type GLint = c_int;
166 pub type GLuint = c_uint;
167 pub type GLclampx = i32;
168 pub type GLsizei = c_int;
169 pub type GLfloat = c_float;
170 pub type GLclampf = c_float;
171 pub type GLdouble = c_double;
172 pub type GLclampd = c_double;
173 pub type GLeglClientBufferEXT = *mut c_void;
174 pub type GLeglImageOES = *mut c_void;
175 pub type GLchar = c_char;
176 pub type GLcharARB = c_char;
177 #[cfg(any(target_os = "macos", target_os = "ios"))]
178 pub type GLhandleARB = *mut c_void;
179 #[cfg(not(any(target_os = "macos", target_os = "ios")))]
180 pub type GLhandleARB = c_uint;
181 pub type GLhalf = u16;
182 pub type GLhalfARB = u16;
183 pub type GLfixed = i32;
184 pub type GLintptr = isize;
185 pub type GLintptrARB = isize;
186 pub type GLsizeiptr = isize;
187 pub type GLsizeiptrARB = isize;
188 pub type GLint64 = i64;
189 pub type GLint64EXT = i64;
190 pub type GLuint64 = u64;
191 pub type GLuint64EXT = u64;
192 #[doc(hidden)]
193 pub struct __GLsync {
194 _priv: u8,
195 }
196 impl core::fmt::Debug for __GLsync {
197 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
198 write!(f, "__GLsync")
199 }
200 }
201 pub type GLsync = *mut __GLsync;
202 pub struct _cl_context {
203 _priv: u8,
204 }
205 impl core::fmt::Debug for _cl_context {
206 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
207 write!(f, "_cl_context")
208 }
209 }
210 pub struct _cl_event {
211 _priv: u8,
212 }
213 impl core::fmt::Debug for _cl_event {
214 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
215 write!(f, "_cl_event")
216 }
217 }
218 pub type GLDEBUGPROC = Option<
219 unsafe extern "system" fn(
220 source: GLenum,
221 gltype: GLenum,
222 id: GLuint,
223 severity: GLenum,
224 length: GLsizei,
225 message: *const GLchar,
226 userParam: *mut c_void,
227 ),
228 >;
229 pub type GLDEBUGPROCARB = Option<
230 extern "system" fn(
231 source: GLenum,
232 gltype: GLenum,
233 id: GLuint,
234 severity: GLenum,
235 length: GLsizei,
236 message: *const GLchar,
237 userParam: *mut c_void,
238 ),
239 >;
240 pub type GLDEBUGPROCKHR = Option<
241 extern "system" fn(
242 source: GLenum,
243 gltype: GLenum,
244 id: GLuint,
245 severity: GLenum,
246 length: GLsizei,
247 message: *const GLchar,
248 userParam: *mut c_void,
249 ),
250 >;
251 pub type GLDEBUGPROCAMD = Option<
252 extern "system" fn(
253 id: GLuint,
254 category: GLenum,
255 severity: GLenum,
256 length: GLsizei,
257 message: *const GLchar,
258 userParam: *mut c_void,
259 ),
260 >;
261 pub type GLhalfNV = c_ushort;
262 pub type GLvdpauSurfaceNV = GLintptr;
263 pub type GLVULKANPROCNV = Option<extern "system" fn()>;
264}
265
266pub use enums::*;
267pub mod enums {
268 use super::*;
272 #[doc = "`GL_ACTIVE_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92D9`"]
273 #[doc = "* **Group:** ProgramPropertyARB"]
274 pub const GL_ACTIVE_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92D9;
275 #[doc = "`GL_ACTIVE_ATTRIBUTES: GLenum = 0x8B89`"]
276 #[doc = "* **Group:** ProgramPropertyARB"]
277 pub const GL_ACTIVE_ATTRIBUTES: GLenum = 0x8B89;
278 #[doc = "`GL_ACTIVE_ATTRIBUTE_MAX_LENGTH: GLenum = 0x8B8A`"]
279 #[doc = "* **Group:** ProgramPropertyARB"]
280 pub const GL_ACTIVE_ATTRIBUTE_MAX_LENGTH: GLenum = 0x8B8A;
281 #[doc = "`GL_ACTIVE_PROGRAM: GLenum = 0x8259`"]
282 #[doc = "* **Group:** PipelineParameterName"]
283 pub const GL_ACTIVE_PROGRAM: GLenum = 0x8259;
284 #[doc = "`GL_ACTIVE_RESOURCES: GLenum = 0x92F5`"]
285 #[doc = "* **Group:** ProgramInterfacePName"]
286 pub const GL_ACTIVE_RESOURCES: GLenum = 0x92F5;
287 #[doc = "`GL_ACTIVE_SUBROUTINES: GLenum = 0x8DE5`"]
288 #[doc = "* **Group:** ProgramStagePName"]
289 pub const GL_ACTIVE_SUBROUTINES: GLenum = 0x8DE5;
290 #[doc = "`GL_ACTIVE_SUBROUTINE_MAX_LENGTH: GLenum = 0x8E48`"]
291 #[doc = "* **Group:** ProgramStagePName"]
292 pub const GL_ACTIVE_SUBROUTINE_MAX_LENGTH: GLenum = 0x8E48;
293 #[doc = "`GL_ACTIVE_SUBROUTINE_UNIFORMS: GLenum = 0x8DE6`"]
294 #[doc = "* **Group:** ProgramStagePName"]
295 pub const GL_ACTIVE_SUBROUTINE_UNIFORMS: GLenum = 0x8DE6;
296 #[doc = "`GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS: GLenum = 0x8E47`"]
297 #[doc = "* **Group:** ProgramStagePName"]
298 pub const GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS: GLenum = 0x8E47;
299 #[doc = "`GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH: GLenum = 0x8E49`"]
300 #[doc = "* **Group:** ProgramStagePName"]
301 pub const GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH: GLenum = 0x8E49;
302 #[doc = "`GL_ACTIVE_TEXTURE: GLenum = 0x84E0`"]
303 #[doc = "* **Group:** GetPName"]
304 pub const GL_ACTIVE_TEXTURE: GLenum = 0x84E0;
305 #[doc = "`GL_ACTIVE_UNIFORMS: GLenum = 0x8B86`"]
306 #[doc = "* **Group:** ProgramPropertyARB"]
307 pub const GL_ACTIVE_UNIFORMS: GLenum = 0x8B86;
308 #[doc = "`GL_ACTIVE_UNIFORM_BLOCKS: GLenum = 0x8A36`"]
309 #[doc = "* **Group:** ProgramPropertyARB"]
310 pub const GL_ACTIVE_UNIFORM_BLOCKS: GLenum = 0x8A36;
311 #[doc = "`GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH: GLenum = 0x8A35`"]
312 #[doc = "* **Group:** ProgramPropertyARB"]
313 pub const GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH: GLenum = 0x8A35;
314 #[doc = "`GL_ACTIVE_UNIFORM_MAX_LENGTH: GLenum = 0x8B87`"]
315 #[doc = "* **Group:** ProgramPropertyARB"]
316 pub const GL_ACTIVE_UNIFORM_MAX_LENGTH: GLenum = 0x8B87;
317 #[doc = "`GL_ACTIVE_VARIABLES: GLenum = 0x9305`"]
318 #[doc = "* **Group:** ProgramResourceProperty"]
319 pub const GL_ACTIVE_VARIABLES: GLenum = 0x9305;
320 #[doc = "`GL_ALIASED_LINE_WIDTH_RANGE: GLenum = 0x846E`"]
321 #[doc = "* **Group:** GetPName"]
322 pub const GL_ALIASED_LINE_WIDTH_RANGE: GLenum = 0x846E;
323 #[doc = "`GL_ALIASED_POINT_SIZE_RANGE: GLenum = 0x846D`"]
324 #[doc = "* **Group:** GetPName"]
325 pub const GL_ALIASED_POINT_SIZE_RANGE: GLenum = 0x846D;
326 #[doc = "`GL_ALL_BARRIER_BITS: GLbitfield = 0xFFFFFFFF`"]
327 #[doc = "* **Group:** MemoryBarrierMask"]
328 pub const GL_ALL_BARRIER_BITS: GLbitfield = 0xFFFFFFFF;
329 #[doc = "`GL_ALL_SHADER_BITS: GLbitfield = 0xFFFFFFFF`"]
330 #[doc = "* **Group:** UseProgramStageMask"]
331 pub const GL_ALL_SHADER_BITS: GLbitfield = 0xFFFFFFFF;
332 #[doc = "`GL_ALPHA: GLenum = 0x1906`"]
333 #[doc = "* **Groups:** TextureSwizzle, CombinerPortionNV, PathColorFormat, CombinerComponentUsageNV, PixelFormat"]
334 pub const GL_ALPHA: GLenum = 0x1906;
335 #[doc = "`GL_ALPHA_BITS: GLenum = 0x0D55`"]
336 #[doc = "* **Group:** GetPName"]
337 pub const GL_ALPHA_BITS: GLenum = 0x0D55;
338 #[doc = "`GL_ALREADY_SIGNALED: GLenum = 0x911A`"]
339 #[doc = "* **Group:** SyncStatus"]
340 pub const GL_ALREADY_SIGNALED: GLenum = 0x911A;
341 #[doc = "`GL_ALWAYS: GLenum = 0x0207`"]
342 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
343 pub const GL_ALWAYS: GLenum = 0x0207;
344 #[doc = "`GL_AND: GLenum = 0x1501`"]
345 #[doc = "* **Group:** LogicOp"]
346 pub const GL_AND: GLenum = 0x1501;
347 #[doc = "`GL_AND_INVERTED: GLenum = 0x1504`"]
348 #[doc = "* **Group:** LogicOp"]
349 pub const GL_AND_INVERTED: GLenum = 0x1504;
350 #[doc = "`GL_AND_REVERSE: GLenum = 0x1502`"]
351 #[doc = "* **Group:** LogicOp"]
352 pub const GL_AND_REVERSE: GLenum = 0x1502;
353 #[doc = "`GL_ANY_SAMPLES_PASSED: GLenum = 0x8C2F`"]
354 #[doc = "* **Group:** QueryTarget"]
355 pub const GL_ANY_SAMPLES_PASSED: GLenum = 0x8C2F;
356 #[doc = "`GL_ANY_SAMPLES_PASSED_CONSERVATIVE: GLenum = 0x8D6A`"]
357 #[doc = "* **Group:** QueryTarget"]
358 pub const GL_ANY_SAMPLES_PASSED_CONSERVATIVE: GLenum = 0x8D6A;
359 #[doc = "`GL_ARRAY_BUFFER: GLenum = 0x8892`"]
360 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
361 pub const GL_ARRAY_BUFFER: GLenum = 0x8892;
362 #[doc = "`GL_ARRAY_BUFFER_BINDING: GLenum = 0x8894`"]
363 #[doc = "* **Group:** GetPName"]
364 pub const GL_ARRAY_BUFFER_BINDING: GLenum = 0x8894;
365 #[doc = "`GL_ARRAY_SIZE: GLenum = 0x92FB`"]
366 #[doc = "* **Group:** ProgramResourceProperty"]
367 pub const GL_ARRAY_SIZE: GLenum = 0x92FB;
368 #[doc = "`GL_ARRAY_STRIDE: GLenum = 0x92FE`"]
369 #[doc = "* **Group:** ProgramResourceProperty"]
370 pub const GL_ARRAY_STRIDE: GLenum = 0x92FE;
371 #[doc = "`GL_ATOMIC_COUNTER_BARRIER_BIT: GLbitfield = 0x00001000`"]
372 #[doc = "* **Group:** MemoryBarrierMask"]
373 pub const GL_ATOMIC_COUNTER_BARRIER_BIT: GLbitfield = 0x00001000;
374 #[doc = "`GL_ATOMIC_COUNTER_BUFFER: GLenum = 0x92C0`"]
375 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
376 pub const GL_ATOMIC_COUNTER_BUFFER: GLenum = 0x92C0;
377 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS: GLenum = 0x92C5`"]
378 #[doc = "* **Group:** AtomicCounterBufferPName"]
379 pub const GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS: GLenum = 0x92C5;
380 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES: GLenum = 0x92C6`"]
381 #[doc = "* **Group:** AtomicCounterBufferPName"]
382 pub const GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES: GLenum = 0x92C6;
383 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_BINDING: GLenum = 0x92C1`"]
384 #[doc = "* **Group:** AtomicCounterBufferPName"]
385 pub const GL_ATOMIC_COUNTER_BUFFER_BINDING: GLenum = 0x92C1;
386 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE: GLenum = 0x92C4`"]
387 #[doc = "* **Group:** AtomicCounterBufferPName"]
388 pub const GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE: GLenum = 0x92C4;
389 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_INDEX: GLenum = 0x9301`"]
390 #[doc = "* **Group:** ProgramResourceProperty"]
391 pub const GL_ATOMIC_COUNTER_BUFFER_INDEX: GLenum = 0x9301;
392 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER: GLenum = 0x90ED`"]
393 #[doc = "* **Group:** AtomicCounterBufferPName"]
394 pub const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER: GLenum = 0x90ED;
395 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER: GLenum = 0x92CB`"]
396 #[doc = "* **Group:** AtomicCounterBufferPName"]
397 pub const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER: GLenum = 0x92CB;
398 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER: GLenum = 0x92CA`"]
399 #[doc = "* **Group:** AtomicCounterBufferPName"]
400 pub const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER: GLenum = 0x92CA;
401 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER: GLenum = 0x92C8`"]
402 #[doc = "* **Group:** AtomicCounterBufferPName"]
403 pub const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER: GLenum = 0x92C8;
404 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER: GLenum = 0x92C9`"]
405 #[doc = "* **Group:** AtomicCounterBufferPName"]
406 pub const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER: GLenum = 0x92C9;
407 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER: GLenum = 0x92C7`"]
408 #[doc = "* **Group:** AtomicCounterBufferPName"]
409 pub const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER: GLenum = 0x92C7;
410 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_SIZE: GLenum = 0x92C3`"]
411 pub const GL_ATOMIC_COUNTER_BUFFER_SIZE: GLenum = 0x92C3;
412 #[doc = "`GL_ATOMIC_COUNTER_BUFFER_START: GLenum = 0x92C2`"]
413 pub const GL_ATOMIC_COUNTER_BUFFER_START: GLenum = 0x92C2;
414 #[doc = "`GL_ATTACHED_SHADERS: GLenum = 0x8B85`"]
415 #[doc = "* **Group:** ProgramPropertyARB"]
416 pub const GL_ATTACHED_SHADERS: GLenum = 0x8B85;
417 #[doc = "`GL_AUTO_GENERATE_MIPMAP: GLenum = 0x8295`"]
418 #[doc = "* **Group:** InternalFormatPName"]
419 pub const GL_AUTO_GENERATE_MIPMAP: GLenum = 0x8295;
420 #[doc = "`GL_BACK: GLenum = 0x0405`"]
421 #[doc = "* **Groups:** ColorBuffer, ColorMaterialFace, CullFaceMode, DrawBufferMode, ReadBufferMode, StencilFaceDirection, MaterialFace"]
422 pub const GL_BACK: GLenum = 0x0405;
423 #[doc = "`GL_BACK_LEFT: GLenum = 0x0402`"]
424 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode"]
425 pub const GL_BACK_LEFT: GLenum = 0x0402;
426 #[doc = "`GL_BACK_RIGHT: GLenum = 0x0403`"]
427 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode"]
428 pub const GL_BACK_RIGHT: GLenum = 0x0403;
429 #[doc = "`GL_BGR: GLenum = 0x80E0`"]
430 #[doc = "* **Group:** PixelFormat"]
431 pub const GL_BGR: GLenum = 0x80E0;
432 #[doc = "`GL_BGRA: GLenum = 0x80E1`"]
433 #[doc = "* **Group:** PixelFormat"]
434 pub const GL_BGRA: GLenum = 0x80E1;
435 #[doc = "`GL_BGRA_INTEGER: GLenum = 0x8D9B`"]
436 #[doc = "* **Group:** PixelFormat"]
437 pub const GL_BGRA_INTEGER: GLenum = 0x8D9B;
438 #[doc = "`GL_BGR_INTEGER: GLenum = 0x8D9A`"]
439 #[doc = "* **Group:** PixelFormat"]
440 pub const GL_BGR_INTEGER: GLenum = 0x8D9A;
441 #[doc = "`GL_BLEND: GLenum = 0x0BE2`"]
442 #[doc = "* **Groups:** TextureEnvMode, EnableCap, GetPName"]
443 pub const GL_BLEND: GLenum = 0x0BE2;
444 #[doc = "`GL_BLEND_COLOR: GLenum = 0x8005`"]
445 #[doc = "* **Group:** GetPName"]
446 pub const GL_BLEND_COLOR: GLenum = 0x8005;
447 #[doc = "`GL_BLEND_DST: GLenum = 0x0BE0`"]
448 #[doc = "* **Group:** GetPName"]
449 pub const GL_BLEND_DST: GLenum = 0x0BE0;
450 #[doc = "`GL_BLEND_DST_ALPHA: GLenum = 0x80CA`"]
451 #[doc = "* **Group:** GetPName"]
452 pub const GL_BLEND_DST_ALPHA: GLenum = 0x80CA;
453 #[doc = "`GL_BLEND_DST_RGB: GLenum = 0x80C8`"]
454 #[doc = "* **Group:** GetPName"]
455 pub const GL_BLEND_DST_RGB: GLenum = 0x80C8;
456 #[doc = "`GL_BLEND_EQUATION: GLenum = 0x8009`"]
457 pub const GL_BLEND_EQUATION: GLenum = 0x8009;
458 #[doc = "`GL_BLEND_EQUATION_ALPHA: GLenum = 0x883D`"]
459 #[doc = "* **Group:** GetPName"]
460 pub const GL_BLEND_EQUATION_ALPHA: GLenum = 0x883D;
461 #[doc = "`GL_BLEND_EQUATION_RGB: GLenum = 0x8009`"]
462 #[doc = "* **Group:** GetPName"]
463 pub const GL_BLEND_EQUATION_RGB: GLenum = 0x8009;
464 #[doc = "`GL_BLEND_SRC: GLenum = 0x0BE1`"]
465 #[doc = "* **Group:** GetPName"]
466 pub const GL_BLEND_SRC: GLenum = 0x0BE1;
467 #[doc = "`GL_BLEND_SRC_ALPHA: GLenum = 0x80CB`"]
468 #[doc = "* **Group:** GetPName"]
469 pub const GL_BLEND_SRC_ALPHA: GLenum = 0x80CB;
470 #[doc = "`GL_BLEND_SRC_RGB: GLenum = 0x80C9`"]
471 #[doc = "* **Group:** GetPName"]
472 pub const GL_BLEND_SRC_RGB: GLenum = 0x80C9;
473 #[doc = "`GL_BLOCK_INDEX: GLenum = 0x92FD`"]
474 #[doc = "* **Group:** ProgramResourceProperty"]
475 pub const GL_BLOCK_INDEX: GLenum = 0x92FD;
476 #[doc = "`GL_BLUE: GLenum = 0x1905`"]
477 #[doc = "* **Groups:** TextureSwizzle, CombinerComponentUsageNV, PixelFormat"]
478 pub const GL_BLUE: GLenum = 0x1905;
479 #[doc = "`GL_BLUE_BITS: GLenum = 0x0D54`"]
480 #[doc = "* **Group:** GetPName"]
481 pub const GL_BLUE_BITS: GLenum = 0x0D54;
482 #[doc = "`GL_BLUE_INTEGER: GLenum = 0x8D96`"]
483 #[doc = "* **Group:** PixelFormat"]
484 pub const GL_BLUE_INTEGER: GLenum = 0x8D96;
485 #[doc = "`GL_BOOL: GLenum = 0x8B56`"]
486 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
487 pub const GL_BOOL: GLenum = 0x8B56;
488 #[doc = "`GL_BOOL_VEC2: GLenum = 0x8B57`"]
489 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
490 pub const GL_BOOL_VEC2: GLenum = 0x8B57;
491 #[doc = "`GL_BOOL_VEC3: GLenum = 0x8B58`"]
492 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
493 pub const GL_BOOL_VEC3: GLenum = 0x8B58;
494 #[doc = "`GL_BOOL_VEC4: GLenum = 0x8B59`"]
495 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
496 pub const GL_BOOL_VEC4: GLenum = 0x8B59;
497 #[doc = "`GL_BUFFER: GLenum = 0x82E0`"]
498 #[doc = "* **Group:** ObjectIdentifier"]
499 pub const GL_BUFFER: GLenum = 0x82E0;
500 #[doc = "`GL_BUFFER_ACCESS: GLenum = 0x88BB`"]
501 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
502 pub const GL_BUFFER_ACCESS: GLenum = 0x88BB;
503 #[doc = "`GL_BUFFER_ACCESS_FLAGS: GLenum = 0x911F`"]
504 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
505 pub const GL_BUFFER_ACCESS_FLAGS: GLenum = 0x911F;
506 #[doc = "`GL_BUFFER_BINDING: GLenum = 0x9302`"]
507 #[doc = "* **Group:** ProgramResourceProperty"]
508 pub const GL_BUFFER_BINDING: GLenum = 0x9302;
509 #[doc = "`GL_BUFFER_DATA_SIZE: GLenum = 0x9303`"]
510 #[doc = "* **Group:** ProgramResourceProperty"]
511 pub const GL_BUFFER_DATA_SIZE: GLenum = 0x9303;
512 #[doc = "`GL_BUFFER_IMMUTABLE_STORAGE: GLenum = 0x821F`"]
513 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
514 pub const GL_BUFFER_IMMUTABLE_STORAGE: GLenum = 0x821F;
515 #[doc = "`GL_BUFFER_IMMUTABLE_STORAGE_EXT: GLenum = 0x821F`"]
516 pub const GL_BUFFER_IMMUTABLE_STORAGE_EXT: GLenum = 0x821F;
517 #[doc = "`GL_BUFFER_KHR: GLenum = 0x82E0`"]
518 pub const GL_BUFFER_KHR: GLenum = 0x82E0;
519 #[doc = "`GL_BUFFER_MAPPED: GLenum = 0x88BC`"]
520 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
521 pub const GL_BUFFER_MAPPED: GLenum = 0x88BC;
522 #[doc = "`GL_BUFFER_MAP_LENGTH: GLenum = 0x9120`"]
523 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
524 pub const GL_BUFFER_MAP_LENGTH: GLenum = 0x9120;
525 #[doc = "`GL_BUFFER_MAP_OFFSET: GLenum = 0x9121`"]
526 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
527 pub const GL_BUFFER_MAP_OFFSET: GLenum = 0x9121;
528 #[doc = "`GL_BUFFER_MAP_POINTER: GLenum = 0x88BD`"]
529 #[doc = "* **Group:** BufferPointerNameARB"]
530 pub const GL_BUFFER_MAP_POINTER: GLenum = 0x88BD;
531 #[doc = "`GL_BUFFER_SIZE: GLenum = 0x8764`"]
532 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
533 pub const GL_BUFFER_SIZE: GLenum = 0x8764;
534 #[doc = "`GL_BUFFER_STORAGE_FLAGS: GLenum = 0x8220`"]
535 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
536 pub const GL_BUFFER_STORAGE_FLAGS: GLenum = 0x8220;
537 #[doc = "`GL_BUFFER_STORAGE_FLAGS_EXT: GLenum = 0x8220`"]
538 pub const GL_BUFFER_STORAGE_FLAGS_EXT: GLenum = 0x8220;
539 #[doc = "`GL_BUFFER_UPDATE_BARRIER_BIT: GLbitfield = 0x00000200`"]
540 #[doc = "* **Group:** MemoryBarrierMask"]
541 pub const GL_BUFFER_UPDATE_BARRIER_BIT: GLbitfield = 0x00000200;
542 #[doc = "`GL_BUFFER_USAGE: GLenum = 0x8765`"]
543 #[doc = "* **Groups:** VertexBufferObjectParameter, BufferPNameARB"]
544 pub const GL_BUFFER_USAGE: GLenum = 0x8765;
545 #[doc = "`GL_BUFFER_VARIABLE: GLenum = 0x92E5`"]
546 #[doc = "* **Group:** ProgramInterface"]
547 pub const GL_BUFFER_VARIABLE: GLenum = 0x92E5;
548 #[doc = "`GL_BYTE: GLenum = 0x1400`"]
549 #[doc = "* **Groups:** VertexAttribIType, WeightPointerTypeARB, TangentPointerTypeEXT, BinormalPointerTypeEXT, ColorPointerType, ListNameType, NormalPointerType, PixelType, VertexAttribType, VertexAttribPointerType"]
550 pub const GL_BYTE: GLenum = 0x1400;
551 #[doc = "`GL_CAVEAT_SUPPORT: GLenum = 0x82B8`"]
552 pub const GL_CAVEAT_SUPPORT: GLenum = 0x82B8;
553 #[doc = "`GL_CCW: GLenum = 0x0901`"]
554 #[doc = "* **Group:** FrontFaceDirection"]
555 pub const GL_CCW: GLenum = 0x0901;
556 #[doc = "`GL_CLAMP_READ_COLOR: GLenum = 0x891C`"]
557 #[doc = "* **Group:** ClampColorTargetARB"]
558 pub const GL_CLAMP_READ_COLOR: GLenum = 0x891C;
559 #[doc = "`GL_CLAMP_TO_BORDER: GLenum = 0x812D`"]
560 #[doc = "* **Group:** TextureWrapMode"]
561 pub const GL_CLAMP_TO_BORDER: GLenum = 0x812D;
562 #[doc = "`GL_CLAMP_TO_EDGE: GLenum = 0x812F`"]
563 #[doc = "* **Group:** TextureWrapMode"]
564 pub const GL_CLAMP_TO_EDGE: GLenum = 0x812F;
565 #[doc = "`GL_CLEAR: GLenum = 0x1500`"]
566 #[doc = "* **Group:** LogicOp"]
567 pub const GL_CLEAR: GLenum = 0x1500;
568 #[doc = "`GL_CLEAR_BUFFER: GLenum = 0x82B4`"]
569 #[doc = "* **Group:** InternalFormatPName"]
570 pub const GL_CLEAR_BUFFER: GLenum = 0x82B4;
571 #[doc = "`GL_CLEAR_TEXTURE: GLenum = 0x9365`"]
572 #[doc = "* **Group:** InternalFormatPName"]
573 pub const GL_CLEAR_TEXTURE: GLenum = 0x9365;
574 #[doc = "`GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT: GLbitfield = 0x00004000`"]
575 #[doc = "* **Group:** MemoryBarrierMask"]
576 pub const GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT: GLbitfield = 0x00004000;
577 #[doc = "`GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT: GLbitfield = 0x00004000`"]
578 #[doc = "* **Group:** MemoryBarrierMask"]
579 pub const GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT: GLbitfield = 0x00004000;
580 #[doc = "`GL_CLIENT_STORAGE_BIT: GLbitfield = 0x0200`"]
581 #[doc = "* **Group:** BufferStorageMask"]
582 pub const GL_CLIENT_STORAGE_BIT: GLbitfield = 0x0200;
583 #[doc = "`GL_CLIENT_STORAGE_BIT_EXT: GLbitfield = 0x0200`"]
584 #[doc = "* **Group:** BufferStorageMask"]
585 pub const GL_CLIENT_STORAGE_BIT_EXT: GLbitfield = 0x0200;
586 #[doc = "`GL_CLIPPING_INPUT_PRIMITIVES: GLenum = 0x82F6`"]
587 pub const GL_CLIPPING_INPUT_PRIMITIVES: GLenum = 0x82F6;
588 #[doc = "`GL_CLIPPING_OUTPUT_PRIMITIVES: GLenum = 0x82F7`"]
589 pub const GL_CLIPPING_OUTPUT_PRIMITIVES: GLenum = 0x82F7;
590 #[doc = "`GL_CLIP_DEPTH_MODE: GLenum = 0x935D`"]
591 pub const GL_CLIP_DEPTH_MODE: GLenum = 0x935D;
592 #[doc = "`GL_CLIP_DISTANCE0: GLenum = 0x3000`"]
593 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
594 #[doc = "* **Alias Of:** `GL_CLIP_PLANE0`"]
595 pub const GL_CLIP_DISTANCE0: GLenum = 0x3000;
596 #[doc = "`GL_CLIP_DISTANCE1: GLenum = 0x3001`"]
597 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
598 #[doc = "* **Alias Of:** `GL_CLIP_PLANE1`"]
599 pub const GL_CLIP_DISTANCE1: GLenum = 0x3001;
600 #[doc = "`GL_CLIP_DISTANCE2: GLenum = 0x3002`"]
601 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
602 #[doc = "* **Alias Of:** `GL_CLIP_PLANE2`"]
603 pub const GL_CLIP_DISTANCE2: GLenum = 0x3002;
604 #[doc = "`GL_CLIP_DISTANCE3: GLenum = 0x3003`"]
605 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
606 #[doc = "* **Alias Of:** `GL_CLIP_PLANE3`"]
607 pub const GL_CLIP_DISTANCE3: GLenum = 0x3003;
608 #[doc = "`GL_CLIP_DISTANCE4: GLenum = 0x3004`"]
609 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
610 #[doc = "* **Alias Of:** `GL_CLIP_PLANE4`"]
611 pub const GL_CLIP_DISTANCE4: GLenum = 0x3004;
612 #[doc = "`GL_CLIP_DISTANCE5: GLenum = 0x3005`"]
613 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
614 #[doc = "* **Alias Of:** `GL_CLIP_PLANE5`"]
615 pub const GL_CLIP_DISTANCE5: GLenum = 0x3005;
616 #[doc = "`GL_CLIP_DISTANCE6: GLenum = 0x3006`"]
617 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
618 pub const GL_CLIP_DISTANCE6: GLenum = 0x3006;
619 #[doc = "`GL_CLIP_DISTANCE7: GLenum = 0x3007`"]
620 #[doc = "* **Groups:** EnableCap, ClipPlaneName"]
621 pub const GL_CLIP_DISTANCE7: GLenum = 0x3007;
622 #[doc = "`GL_CLIP_ORIGIN: GLenum = 0x935C`"]
623 pub const GL_CLIP_ORIGIN: GLenum = 0x935C;
624 #[doc = "`GL_COLOR: GLenum = 0x1800`"]
625 #[doc = "* **Groups:** Buffer, PixelCopyType, InvalidateFramebufferAttachment"]
626 pub const GL_COLOR: GLenum = 0x1800;
627 #[doc = "`GL_COLORBURN: GLenum = 0x929A`"]
628 pub const GL_COLORBURN: GLenum = 0x929A;
629 #[doc = "`GL_COLORDODGE: GLenum = 0x9299`"]
630 pub const GL_COLORDODGE: GLenum = 0x9299;
631 #[doc = "`GL_COLOR_ATTACHMENT0: GLenum = 0x8CE0`"]
632 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
633 pub const GL_COLOR_ATTACHMENT0: GLenum = 0x8CE0;
634 #[doc = "`GL_COLOR_ATTACHMENT1: GLenum = 0x8CE1`"]
635 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
636 pub const GL_COLOR_ATTACHMENT1: GLenum = 0x8CE1;
637 #[doc = "`GL_COLOR_ATTACHMENT10: GLenum = 0x8CEA`"]
638 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
639 pub const GL_COLOR_ATTACHMENT10: GLenum = 0x8CEA;
640 #[doc = "`GL_COLOR_ATTACHMENT11: GLenum = 0x8CEB`"]
641 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
642 pub const GL_COLOR_ATTACHMENT11: GLenum = 0x8CEB;
643 #[doc = "`GL_COLOR_ATTACHMENT12: GLenum = 0x8CEC`"]
644 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
645 pub const GL_COLOR_ATTACHMENT12: GLenum = 0x8CEC;
646 #[doc = "`GL_COLOR_ATTACHMENT13: GLenum = 0x8CED`"]
647 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
648 pub const GL_COLOR_ATTACHMENT13: GLenum = 0x8CED;
649 #[doc = "`GL_COLOR_ATTACHMENT14: GLenum = 0x8CEE`"]
650 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
651 pub const GL_COLOR_ATTACHMENT14: GLenum = 0x8CEE;
652 #[doc = "`GL_COLOR_ATTACHMENT15: GLenum = 0x8CEF`"]
653 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
654 pub const GL_COLOR_ATTACHMENT15: GLenum = 0x8CEF;
655 #[doc = "`GL_COLOR_ATTACHMENT16: GLenum = 0x8CF0`"]
656 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
657 pub const GL_COLOR_ATTACHMENT16: GLenum = 0x8CF0;
658 #[doc = "`GL_COLOR_ATTACHMENT17: GLenum = 0x8CF1`"]
659 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
660 pub const GL_COLOR_ATTACHMENT17: GLenum = 0x8CF1;
661 #[doc = "`GL_COLOR_ATTACHMENT18: GLenum = 0x8CF2`"]
662 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
663 pub const GL_COLOR_ATTACHMENT18: GLenum = 0x8CF2;
664 #[doc = "`GL_COLOR_ATTACHMENT19: GLenum = 0x8CF3`"]
665 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
666 pub const GL_COLOR_ATTACHMENT19: GLenum = 0x8CF3;
667 #[doc = "`GL_COLOR_ATTACHMENT2: GLenum = 0x8CE2`"]
668 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
669 pub const GL_COLOR_ATTACHMENT2: GLenum = 0x8CE2;
670 #[doc = "`GL_COLOR_ATTACHMENT20: GLenum = 0x8CF4`"]
671 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
672 pub const GL_COLOR_ATTACHMENT20: GLenum = 0x8CF4;
673 #[doc = "`GL_COLOR_ATTACHMENT21: GLenum = 0x8CF5`"]
674 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
675 pub const GL_COLOR_ATTACHMENT21: GLenum = 0x8CF5;
676 #[doc = "`GL_COLOR_ATTACHMENT22: GLenum = 0x8CF6`"]
677 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
678 pub const GL_COLOR_ATTACHMENT22: GLenum = 0x8CF6;
679 #[doc = "`GL_COLOR_ATTACHMENT23: GLenum = 0x8CF7`"]
680 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
681 pub const GL_COLOR_ATTACHMENT23: GLenum = 0x8CF7;
682 #[doc = "`GL_COLOR_ATTACHMENT24: GLenum = 0x8CF8`"]
683 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
684 pub const GL_COLOR_ATTACHMENT24: GLenum = 0x8CF8;
685 #[doc = "`GL_COLOR_ATTACHMENT25: GLenum = 0x8CF9`"]
686 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
687 pub const GL_COLOR_ATTACHMENT25: GLenum = 0x8CF9;
688 #[doc = "`GL_COLOR_ATTACHMENT26: GLenum = 0x8CFA`"]
689 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
690 pub const GL_COLOR_ATTACHMENT26: GLenum = 0x8CFA;
691 #[doc = "`GL_COLOR_ATTACHMENT27: GLenum = 0x8CFB`"]
692 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
693 pub const GL_COLOR_ATTACHMENT27: GLenum = 0x8CFB;
694 #[doc = "`GL_COLOR_ATTACHMENT28: GLenum = 0x8CFC`"]
695 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
696 pub const GL_COLOR_ATTACHMENT28: GLenum = 0x8CFC;
697 #[doc = "`GL_COLOR_ATTACHMENT29: GLenum = 0x8CFD`"]
698 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
699 pub const GL_COLOR_ATTACHMENT29: GLenum = 0x8CFD;
700 #[doc = "`GL_COLOR_ATTACHMENT3: GLenum = 0x8CE3`"]
701 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
702 pub const GL_COLOR_ATTACHMENT3: GLenum = 0x8CE3;
703 #[doc = "`GL_COLOR_ATTACHMENT30: GLenum = 0x8CFE`"]
704 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
705 pub const GL_COLOR_ATTACHMENT30: GLenum = 0x8CFE;
706 #[doc = "`GL_COLOR_ATTACHMENT31: GLenum = 0x8CFF`"]
707 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
708 pub const GL_COLOR_ATTACHMENT31: GLenum = 0x8CFF;
709 #[doc = "`GL_COLOR_ATTACHMENT4: GLenum = 0x8CE4`"]
710 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
711 pub const GL_COLOR_ATTACHMENT4: GLenum = 0x8CE4;
712 #[doc = "`GL_COLOR_ATTACHMENT5: GLenum = 0x8CE5`"]
713 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
714 pub const GL_COLOR_ATTACHMENT5: GLenum = 0x8CE5;
715 #[doc = "`GL_COLOR_ATTACHMENT6: GLenum = 0x8CE6`"]
716 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
717 pub const GL_COLOR_ATTACHMENT6: GLenum = 0x8CE6;
718 #[doc = "`GL_COLOR_ATTACHMENT7: GLenum = 0x8CE7`"]
719 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
720 pub const GL_COLOR_ATTACHMENT7: GLenum = 0x8CE7;
721 #[doc = "`GL_COLOR_ATTACHMENT8: GLenum = 0x8CE8`"]
722 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
723 pub const GL_COLOR_ATTACHMENT8: GLenum = 0x8CE8;
724 #[doc = "`GL_COLOR_ATTACHMENT9: GLenum = 0x8CE9`"]
725 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode, FramebufferAttachment, InvalidateFramebufferAttachment"]
726 pub const GL_COLOR_ATTACHMENT9: GLenum = 0x8CE9;
727 #[doc = "`GL_COLOR_BUFFER_BIT: GLbitfield = 0x00004000`"]
728 #[doc = "* **Groups:** ClearBufferMask, AttribMask"]
729 pub const GL_COLOR_BUFFER_BIT: GLbitfield = 0x00004000;
730 #[doc = "`GL_COLOR_CLEAR_VALUE: GLenum = 0x0C22`"]
731 #[doc = "* **Group:** GetPName"]
732 pub const GL_COLOR_CLEAR_VALUE: GLenum = 0x0C22;
733 #[doc = "`GL_COLOR_COMPONENTS: GLenum = 0x8283`"]
734 #[doc = "* **Group:** InternalFormatPName"]
735 pub const GL_COLOR_COMPONENTS: GLenum = 0x8283;
736 #[doc = "`GL_COLOR_ENCODING: GLenum = 0x8296`"]
737 #[doc = "* **Group:** InternalFormatPName"]
738 pub const GL_COLOR_ENCODING: GLenum = 0x8296;
739 #[doc = "`GL_COLOR_LOGIC_OP: GLenum = 0x0BF2`"]
740 #[doc = "* **Groups:** GetPName, EnableCap"]
741 pub const GL_COLOR_LOGIC_OP: GLenum = 0x0BF2;
742 #[doc = "`GL_COLOR_RENDERABLE: GLenum = 0x8286`"]
743 #[doc = "* **Group:** InternalFormatPName"]
744 pub const GL_COLOR_RENDERABLE: GLenum = 0x8286;
745 #[doc = "`GL_COLOR_WRITEMASK: GLenum = 0x0C23`"]
746 #[doc = "* **Group:** GetPName"]
747 pub const GL_COLOR_WRITEMASK: GLenum = 0x0C23;
748 #[doc = "`GL_COMMAND_BARRIER_BIT: GLbitfield = 0x00000040`"]
749 #[doc = "* **Group:** MemoryBarrierMask"]
750 pub const GL_COMMAND_BARRIER_BIT: GLbitfield = 0x00000040;
751 #[doc = "`GL_COMPARE_REF_TO_TEXTURE: GLenum = 0x884E`"]
752 #[doc = "* **Group:** TextureCompareMode"]
753 #[doc = "* **Alias Of:** `GL_COMPARE_R_TO_TEXTURE`"]
754 pub const GL_COMPARE_REF_TO_TEXTURE: GLenum = 0x884E;
755 #[doc = "`GL_COMPATIBLE_SUBROUTINES: GLenum = 0x8E4B`"]
756 #[doc = "* **Groups:** ProgramResourceProperty, SubroutineParameterName"]
757 pub const GL_COMPATIBLE_SUBROUTINES: GLenum = 0x8E4B;
758 #[doc = "`GL_COMPILE_STATUS: GLenum = 0x8B81`"]
759 #[doc = "* **Group:** ShaderParameterName"]
760 pub const GL_COMPILE_STATUS: GLenum = 0x8B81;
761 #[doc = "`GL_COMPLETION_STATUS_ARB: GLenum = 0x91B1`"]
762 #[doc = "* **Alias Of:** `GL_COMPLETION_STATUS_KHR`"]
763 pub const GL_COMPLETION_STATUS_ARB: GLenum = 0x91B1;
764 #[doc = "`GL_COMPLETION_STATUS_KHR: GLenum = 0x91B1`"]
765 pub const GL_COMPLETION_STATUS_KHR: GLenum = 0x91B1;
766 #[doc = "`GL_COMPRESSED_R11_EAC: GLenum = 0x9270`"]
767 #[doc = "* **Group:** InternalFormat"]
768 pub const GL_COMPRESSED_R11_EAC: GLenum = 0x9270;
769 #[doc = "`GL_COMPRESSED_RED: GLenum = 0x8225`"]
770 #[doc = "* **Group:** InternalFormat"]
771 pub const GL_COMPRESSED_RED: GLenum = 0x8225;
772 #[doc = "`GL_COMPRESSED_RED_RGTC1: GLenum = 0x8DBB`"]
773 #[doc = "* **Group:** InternalFormat"]
774 pub const GL_COMPRESSED_RED_RGTC1: GLenum = 0x8DBB;
775 #[doc = "`GL_COMPRESSED_RG: GLenum = 0x8226`"]
776 #[doc = "* **Group:** InternalFormat"]
777 pub const GL_COMPRESSED_RG: GLenum = 0x8226;
778 #[doc = "`GL_COMPRESSED_RG11_EAC: GLenum = 0x9272`"]
779 #[doc = "* **Group:** InternalFormat"]
780 pub const GL_COMPRESSED_RG11_EAC: GLenum = 0x9272;
781 #[doc = "`GL_COMPRESSED_RGB: GLenum = 0x84ED`"]
782 #[doc = "* **Group:** InternalFormat"]
783 pub const GL_COMPRESSED_RGB: GLenum = 0x84ED;
784 #[doc = "`GL_COMPRESSED_RGB8_ETC2: GLenum = 0x9274`"]
785 #[doc = "* **Group:** InternalFormat"]
786 pub const GL_COMPRESSED_RGB8_ETC2: GLenum = 0x9274;
787 #[doc = "`GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: GLenum = 0x9276`"]
788 #[doc = "* **Group:** InternalFormat"]
789 pub const GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: GLenum = 0x9276;
790 #[doc = "`GL_COMPRESSED_RGBA: GLenum = 0x84EE`"]
791 #[doc = "* **Group:** InternalFormat"]
792 pub const GL_COMPRESSED_RGBA: GLenum = 0x84EE;
793 #[doc = "`GL_COMPRESSED_RGBA8_ETC2_EAC: GLenum = 0x9278`"]
794 #[doc = "* **Group:** InternalFormat"]
795 pub const GL_COMPRESSED_RGBA8_ETC2_EAC: GLenum = 0x9278;
796 #[doc = "`GL_COMPRESSED_RGBA_ASTC_10x10: GLenum = 0x93BB`"]
797 #[doc = "* **Group:** InternalFormat"]
798 pub const GL_COMPRESSED_RGBA_ASTC_10x10: GLenum = 0x93BB;
799 #[doc = "`GL_COMPRESSED_RGBA_ASTC_10x5: GLenum = 0x93B8`"]
800 #[doc = "* **Group:** InternalFormat"]
801 pub const GL_COMPRESSED_RGBA_ASTC_10x5: GLenum = 0x93B8;
802 #[doc = "`GL_COMPRESSED_RGBA_ASTC_10x6: GLenum = 0x93B9`"]
803 #[doc = "* **Group:** InternalFormat"]
804 pub const GL_COMPRESSED_RGBA_ASTC_10x6: GLenum = 0x93B9;
805 #[doc = "`GL_COMPRESSED_RGBA_ASTC_10x8: GLenum = 0x93BA`"]
806 #[doc = "* **Group:** InternalFormat"]
807 pub const GL_COMPRESSED_RGBA_ASTC_10x8: GLenum = 0x93BA;
808 #[doc = "`GL_COMPRESSED_RGBA_ASTC_12x10: GLenum = 0x93BC`"]
809 #[doc = "* **Group:** InternalFormat"]
810 pub const GL_COMPRESSED_RGBA_ASTC_12x10: GLenum = 0x93BC;
811 #[doc = "`GL_COMPRESSED_RGBA_ASTC_12x12: GLenum = 0x93BD`"]
812 #[doc = "* **Group:** InternalFormat"]
813 pub const GL_COMPRESSED_RGBA_ASTC_12x12: GLenum = 0x93BD;
814 #[doc = "`GL_COMPRESSED_RGBA_ASTC_4x4: GLenum = 0x93B0`"]
815 #[doc = "* **Group:** InternalFormat"]
816 pub const GL_COMPRESSED_RGBA_ASTC_4x4: GLenum = 0x93B0;
817 #[doc = "`GL_COMPRESSED_RGBA_ASTC_5x4: GLenum = 0x93B1`"]
818 #[doc = "* **Group:** InternalFormat"]
819 pub const GL_COMPRESSED_RGBA_ASTC_5x4: GLenum = 0x93B1;
820 #[doc = "`GL_COMPRESSED_RGBA_ASTC_5x5: GLenum = 0x93B2`"]
821 #[doc = "* **Group:** InternalFormat"]
822 pub const GL_COMPRESSED_RGBA_ASTC_5x5: GLenum = 0x93B2;
823 #[doc = "`GL_COMPRESSED_RGBA_ASTC_6x5: GLenum = 0x93B3`"]
824 #[doc = "* **Group:** InternalFormat"]
825 pub const GL_COMPRESSED_RGBA_ASTC_6x5: GLenum = 0x93B3;
826 #[doc = "`GL_COMPRESSED_RGBA_ASTC_6x6: GLenum = 0x93B4`"]
827 #[doc = "* **Group:** InternalFormat"]
828 pub const GL_COMPRESSED_RGBA_ASTC_6x6: GLenum = 0x93B4;
829 #[doc = "`GL_COMPRESSED_RGBA_ASTC_8x5: GLenum = 0x93B5`"]
830 #[doc = "* **Group:** InternalFormat"]
831 pub const GL_COMPRESSED_RGBA_ASTC_8x5: GLenum = 0x93B5;
832 #[doc = "`GL_COMPRESSED_RGBA_ASTC_8x6: GLenum = 0x93B6`"]
833 #[doc = "* **Group:** InternalFormat"]
834 pub const GL_COMPRESSED_RGBA_ASTC_8x6: GLenum = 0x93B6;
835 #[doc = "`GL_COMPRESSED_RGBA_ASTC_8x8: GLenum = 0x93B7`"]
836 #[doc = "* **Group:** InternalFormat"]
837 pub const GL_COMPRESSED_RGBA_ASTC_8x8: GLenum = 0x93B7;
838 #[doc = "`GL_COMPRESSED_RGBA_BPTC_UNORM: GLenum = 0x8E8C`"]
839 #[doc = "* **Group:** InternalFormat"]
840 pub const GL_COMPRESSED_RGBA_BPTC_UNORM: GLenum = 0x8E8C;
841 #[doc = "`GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT: GLenum = 0x8E8E`"]
842 #[doc = "* **Group:** InternalFormat"]
843 pub const GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT: GLenum = 0x8E8E;
844 #[doc = "`GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT: GLenum = 0x8E8F`"]
845 #[doc = "* **Group:** InternalFormat"]
846 pub const GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT: GLenum = 0x8E8F;
847 #[doc = "`GL_COMPRESSED_RG_RGTC2: GLenum = 0x8DBD`"]
848 #[doc = "* **Group:** InternalFormat"]
849 pub const GL_COMPRESSED_RG_RGTC2: GLenum = 0x8DBD;
850 #[doc = "`GL_COMPRESSED_SIGNED_R11_EAC: GLenum = 0x9271`"]
851 #[doc = "* **Group:** InternalFormat"]
852 pub const GL_COMPRESSED_SIGNED_R11_EAC: GLenum = 0x9271;
853 #[doc = "`GL_COMPRESSED_SIGNED_RED_RGTC1: GLenum = 0x8DBC`"]
854 #[doc = "* **Group:** InternalFormat"]
855 pub const GL_COMPRESSED_SIGNED_RED_RGTC1: GLenum = 0x8DBC;
856 #[doc = "`GL_COMPRESSED_SIGNED_RG11_EAC: GLenum = 0x9273`"]
857 #[doc = "* **Group:** InternalFormat"]
858 pub const GL_COMPRESSED_SIGNED_RG11_EAC: GLenum = 0x9273;
859 #[doc = "`GL_COMPRESSED_SIGNED_RG_RGTC2: GLenum = 0x8DBE`"]
860 #[doc = "* **Group:** InternalFormat"]
861 pub const GL_COMPRESSED_SIGNED_RG_RGTC2: GLenum = 0x8DBE;
862 #[doc = "`GL_COMPRESSED_SRGB: GLenum = 0x8C48`"]
863 #[doc = "* **Group:** InternalFormat"]
864 pub const GL_COMPRESSED_SRGB: GLenum = 0x8C48;
865 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10: GLenum = 0x93DB`"]
866 #[doc = "* **Group:** InternalFormat"]
867 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10: GLenum = 0x93DB;
868 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5: GLenum = 0x93D8`"]
869 #[doc = "* **Group:** InternalFormat"]
870 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5: GLenum = 0x93D8;
871 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6: GLenum = 0x93D9`"]
872 #[doc = "* **Group:** InternalFormat"]
873 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6: GLenum = 0x93D9;
874 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8: GLenum = 0x93DA`"]
875 #[doc = "* **Group:** InternalFormat"]
876 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8: GLenum = 0x93DA;
877 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10: GLenum = 0x93DC`"]
878 #[doc = "* **Group:** InternalFormat"]
879 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10: GLenum = 0x93DC;
880 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12: GLenum = 0x93DD`"]
881 #[doc = "* **Group:** InternalFormat"]
882 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12: GLenum = 0x93DD;
883 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4: GLenum = 0x93D0`"]
884 #[doc = "* **Group:** InternalFormat"]
885 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4: GLenum = 0x93D0;
886 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4: GLenum = 0x93D1`"]
887 #[doc = "* **Group:** InternalFormat"]
888 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4: GLenum = 0x93D1;
889 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5: GLenum = 0x93D2`"]
890 #[doc = "* **Group:** InternalFormat"]
891 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5: GLenum = 0x93D2;
892 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5: GLenum = 0x93D3`"]
893 #[doc = "* **Group:** InternalFormat"]
894 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5: GLenum = 0x93D3;
895 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6: GLenum = 0x93D4`"]
896 #[doc = "* **Group:** InternalFormat"]
897 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6: GLenum = 0x93D4;
898 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5: GLenum = 0x93D5`"]
899 #[doc = "* **Group:** InternalFormat"]
900 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5: GLenum = 0x93D5;
901 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6: GLenum = 0x93D6`"]
902 #[doc = "* **Group:** InternalFormat"]
903 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6: GLenum = 0x93D6;
904 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8: GLenum = 0x93D7`"]
905 #[doc = "* **Group:** InternalFormat"]
906 pub const GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8: GLenum = 0x93D7;
907 #[doc = "`GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: GLenum = 0x9279`"]
908 #[doc = "* **Group:** InternalFormat"]
909 pub const GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: GLenum = 0x9279;
910 #[doc = "`GL_COMPRESSED_SRGB8_ETC2: GLenum = 0x9275`"]
911 #[doc = "* **Group:** InternalFormat"]
912 pub const GL_COMPRESSED_SRGB8_ETC2: GLenum = 0x9275;
913 #[doc = "`GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: GLenum = 0x9277`"]
914 #[doc = "* **Group:** InternalFormat"]
915 pub const GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: GLenum = 0x9277;
916 #[doc = "`GL_COMPRESSED_SRGB_ALPHA: GLenum = 0x8C49`"]
917 #[doc = "* **Group:** InternalFormat"]
918 pub const GL_COMPRESSED_SRGB_ALPHA: GLenum = 0x8C49;
919 #[doc = "`GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM: GLenum = 0x8E8D`"]
920 #[doc = "* **Group:** InternalFormat"]
921 pub const GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM: GLenum = 0x8E8D;
922 #[doc = "`GL_COMPRESSED_TEXTURE_FORMATS: GLenum = 0x86A3`"]
923 #[doc = "* **Group:** GetPName"]
924 pub const GL_COMPRESSED_TEXTURE_FORMATS: GLenum = 0x86A3;
925 #[doc = "`GL_COMPUTE_SHADER: GLenum = 0x91B9`"]
926 #[doc = "* **Group:** ShaderType"]
927 pub const GL_COMPUTE_SHADER: GLenum = 0x91B9;
928 #[doc = "`GL_COMPUTE_SHADER_BIT: GLbitfield = 0x00000020`"]
929 #[doc = "* **Group:** UseProgramStageMask"]
930 pub const GL_COMPUTE_SHADER_BIT: GLbitfield = 0x00000020;
931 #[doc = "`GL_COMPUTE_SHADER_INVOCATIONS: GLenum = 0x82F5`"]
932 pub const GL_COMPUTE_SHADER_INVOCATIONS: GLenum = 0x82F5;
933 #[doc = "`GL_COMPUTE_SUBROUTINE: GLenum = 0x92ED`"]
934 #[doc = "* **Group:** ProgramInterface"]
935 pub const GL_COMPUTE_SUBROUTINE: GLenum = 0x92ED;
936 #[doc = "`GL_COMPUTE_SUBROUTINE_UNIFORM: GLenum = 0x92F3`"]
937 #[doc = "* **Group:** ProgramInterface"]
938 pub const GL_COMPUTE_SUBROUTINE_UNIFORM: GLenum = 0x92F3;
939 #[doc = "`GL_COMPUTE_TEXTURE: GLenum = 0x82A0`"]
940 #[doc = "* **Group:** InternalFormatPName"]
941 pub const GL_COMPUTE_TEXTURE: GLenum = 0x82A0;
942 #[doc = "`GL_COMPUTE_WORK_GROUP_SIZE: GLenum = 0x8267`"]
943 #[doc = "* **Group:** ProgramPropertyARB"]
944 pub const GL_COMPUTE_WORK_GROUP_SIZE: GLenum = 0x8267;
945 #[doc = "`GL_CONDITION_SATISFIED: GLenum = 0x911C`"]
946 #[doc = "* **Group:** SyncStatus"]
947 pub const GL_CONDITION_SATISFIED: GLenum = 0x911C;
948 #[doc = "`GL_CONSTANT_ALPHA: GLenum = 0x8003`"]
949 #[doc = "* **Group:** BlendingFactor"]
950 pub const GL_CONSTANT_ALPHA: GLenum = 0x8003;
951 #[doc = "`GL_CONSTANT_COLOR: GLenum = 0x8001`"]
952 #[doc = "* **Group:** BlendingFactor"]
953 pub const GL_CONSTANT_COLOR: GLenum = 0x8001;
954 #[doc = "`GL_CONTEXT_COMPATIBILITY_PROFILE_BIT: GLbitfield = 0x00000002`"]
955 #[doc = "* **Group:** ContextProfileMask"]
956 pub const GL_CONTEXT_COMPATIBILITY_PROFILE_BIT: GLbitfield = 0x00000002;
957 #[doc = "`GL_CONTEXT_CORE_PROFILE_BIT: GLbitfield = 0x00000001`"]
958 #[doc = "* **Group:** ContextProfileMask"]
959 pub const GL_CONTEXT_CORE_PROFILE_BIT: GLbitfield = 0x00000001;
960 #[doc = "`GL_CONTEXT_FLAGS: GLenum = 0x821E`"]
961 #[doc = "* **Group:** GetPName"]
962 pub const GL_CONTEXT_FLAGS: GLenum = 0x821E;
963 #[doc = "`GL_CONTEXT_FLAG_DEBUG_BIT: GLbitfield = 0x00000002`"]
964 #[doc = "* **Group:** ContextFlagMask"]
965 pub const GL_CONTEXT_FLAG_DEBUG_BIT: GLbitfield = 0x00000002;
966 #[doc = "`GL_CONTEXT_FLAG_DEBUG_BIT_KHR: GLbitfield = 0x00000002`"]
967 #[doc = "* **Group:** ContextFlagMask"]
968 pub const GL_CONTEXT_FLAG_DEBUG_BIT_KHR: GLbitfield = 0x00000002;
969 #[doc = "`GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT: GLbitfield = 0x00000001`"]
970 #[doc = "* **Group:** ContextFlagMask"]
971 pub const GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT: GLbitfield = 0x00000001;
972 #[doc = "`GL_CONTEXT_FLAG_NO_ERROR_BIT: GLbitfield = 0x00000008`"]
973 #[doc = "* **Group:** ContextFlagMask"]
974 pub const GL_CONTEXT_FLAG_NO_ERROR_BIT: GLbitfield = 0x00000008;
975 #[doc = "`GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT: GLbitfield = 0x00000004`"]
976 #[doc = "* **Group:** ContextFlagMask"]
977 pub const GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT: GLbitfield = 0x00000004;
978 #[doc = "`GL_CONTEXT_LOST: GLenum = 0x0507`"]
979 pub const GL_CONTEXT_LOST: GLenum = 0x0507;
980 #[doc = "`GL_CONTEXT_PROFILE_MASK: GLenum = 0x9126`"]
981 #[doc = "* **Group:** GetPName"]
982 pub const GL_CONTEXT_PROFILE_MASK: GLenum = 0x9126;
983 #[doc = "`GL_CONTEXT_RELEASE_BEHAVIOR: GLenum = 0x82FB`"]
984 pub const GL_CONTEXT_RELEASE_BEHAVIOR: GLenum = 0x82FB;
985 #[doc = "`GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH: GLenum = 0x82FC`"]
986 pub const GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH: GLenum = 0x82FC;
987 #[doc = "`GL_COPY: GLenum = 0x1503`"]
988 #[doc = "* **Group:** LogicOp"]
989 pub const GL_COPY: GLenum = 0x1503;
990 #[doc = "`GL_COPY_INVERTED: GLenum = 0x150C`"]
991 #[doc = "* **Group:** LogicOp"]
992 pub const GL_COPY_INVERTED: GLenum = 0x150C;
993 #[doc = "`GL_COPY_READ_BUFFER: GLenum = 0x8F36`"]
994 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
995 pub const GL_COPY_READ_BUFFER: GLenum = 0x8F36;
996 #[doc = "`GL_COPY_READ_BUFFER_BINDING: GLenum = 0x8F36`"]
997 #[doc = "* **Alias Of:** `GL_COPY_READ_BUFFER`"]
998 pub const GL_COPY_READ_BUFFER_BINDING: GLenum = 0x8F36;
999 #[doc = "`GL_COPY_READ_BUFFER_NV: GLenum = 0x8F36`"]
1000 pub const GL_COPY_READ_BUFFER_NV: GLenum = 0x8F36;
1001 #[doc = "`GL_COPY_WRITE_BUFFER: GLenum = 0x8F37`"]
1002 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
1003 pub const GL_COPY_WRITE_BUFFER: GLenum = 0x8F37;
1004 #[doc = "`GL_COPY_WRITE_BUFFER_BINDING: GLenum = 0x8F37`"]
1005 #[doc = "* **Alias Of:** `GL_COPY_WRITE_BUFFER`"]
1006 pub const GL_COPY_WRITE_BUFFER_BINDING: GLenum = 0x8F37;
1007 #[doc = "`GL_COPY_WRITE_BUFFER_NV: GLenum = 0x8F37`"]
1008 pub const GL_COPY_WRITE_BUFFER_NV: GLenum = 0x8F37;
1009 #[doc = "`GL_CULL_FACE: GLenum = 0x0B44`"]
1010 #[doc = "* **Groups:** GetPName, EnableCap"]
1011 pub const GL_CULL_FACE: GLenum = 0x0B44;
1012 #[doc = "`GL_CULL_FACE_MODE: GLenum = 0x0B45`"]
1013 #[doc = "* **Group:** GetPName"]
1014 pub const GL_CULL_FACE_MODE: GLenum = 0x0B45;
1015 #[doc = "`GL_CURRENT_PROGRAM: GLenum = 0x8B8D`"]
1016 #[doc = "* **Group:** GetPName"]
1017 pub const GL_CURRENT_PROGRAM: GLenum = 0x8B8D;
1018 #[doc = "`GL_CURRENT_QUERY: GLenum = 0x8865`"]
1019 #[doc = "* **Group:** QueryParameterName"]
1020 pub const GL_CURRENT_QUERY: GLenum = 0x8865;
1021 #[doc = "`GL_CURRENT_QUERY_EXT: GLenum = 0x8865`"]
1022 pub const GL_CURRENT_QUERY_EXT: GLenum = 0x8865;
1023 #[doc = "`GL_CURRENT_VERTEX_ATTRIB: GLenum = 0x8626`"]
1024 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB"]
1025 pub const GL_CURRENT_VERTEX_ATTRIB: GLenum = 0x8626;
1026 #[doc = "`GL_CW: GLenum = 0x0900`"]
1027 #[doc = "* **Group:** FrontFaceDirection"]
1028 pub const GL_CW: GLenum = 0x0900;
1029 #[doc = "`GL_DARKEN: GLenum = 0x9297`"]
1030 pub const GL_DARKEN: GLenum = 0x9297;
1031 #[doc = "`GL_DEBUG_CALLBACK_FUNCTION: GLenum = 0x8244`"]
1032 #[doc = "* **Group:** GetPointervPName"]
1033 pub const GL_DEBUG_CALLBACK_FUNCTION: GLenum = 0x8244;
1034 #[doc = "`GL_DEBUG_CALLBACK_FUNCTION_ARB: GLenum = 0x8244`"]
1035 pub const GL_DEBUG_CALLBACK_FUNCTION_ARB: GLenum = 0x8244;
1036 #[doc = "`GL_DEBUG_CALLBACK_FUNCTION_KHR: GLenum = 0x8244`"]
1037 pub const GL_DEBUG_CALLBACK_FUNCTION_KHR: GLenum = 0x8244;
1038 #[doc = "`GL_DEBUG_CALLBACK_USER_PARAM: GLenum = 0x8245`"]
1039 #[doc = "* **Group:** GetPointervPName"]
1040 pub const GL_DEBUG_CALLBACK_USER_PARAM: GLenum = 0x8245;
1041 #[doc = "`GL_DEBUG_CALLBACK_USER_PARAM_ARB: GLenum = 0x8245`"]
1042 pub const GL_DEBUG_CALLBACK_USER_PARAM_ARB: GLenum = 0x8245;
1043 #[doc = "`GL_DEBUG_CALLBACK_USER_PARAM_KHR: GLenum = 0x8245`"]
1044 pub const GL_DEBUG_CALLBACK_USER_PARAM_KHR: GLenum = 0x8245;
1045 #[doc = "`GL_DEBUG_GROUP_STACK_DEPTH: GLenum = 0x826D`"]
1046 #[doc = "* **Group:** GetPName"]
1047 pub const GL_DEBUG_GROUP_STACK_DEPTH: GLenum = 0x826D;
1048 #[doc = "`GL_DEBUG_GROUP_STACK_DEPTH_KHR: GLenum = 0x826D`"]
1049 pub const GL_DEBUG_GROUP_STACK_DEPTH_KHR: GLenum = 0x826D;
1050 #[doc = "`GL_DEBUG_LOGGED_MESSAGES: GLenum = 0x9145`"]
1051 pub const GL_DEBUG_LOGGED_MESSAGES: GLenum = 0x9145;
1052 #[doc = "`GL_DEBUG_LOGGED_MESSAGES_ARB: GLenum = 0x9145`"]
1053 pub const GL_DEBUG_LOGGED_MESSAGES_ARB: GLenum = 0x9145;
1054 #[doc = "`GL_DEBUG_LOGGED_MESSAGES_KHR: GLenum = 0x9145`"]
1055 pub const GL_DEBUG_LOGGED_MESSAGES_KHR: GLenum = 0x9145;
1056 #[doc = "`GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH: GLenum = 0x8243`"]
1057 pub const GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH: GLenum = 0x8243;
1058 #[doc = "`GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB: GLenum = 0x8243`"]
1059 pub const GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB: GLenum = 0x8243;
1060 #[doc = "`GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR: GLenum = 0x8243`"]
1061 pub const GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR: GLenum = 0x8243;
1062 #[doc = "`GL_DEBUG_OUTPUT: GLenum = 0x92E0`"]
1063 #[doc = "* **Group:** EnableCap"]
1064 pub const GL_DEBUG_OUTPUT: GLenum = 0x92E0;
1065 #[doc = "`GL_DEBUG_OUTPUT_KHR: GLenum = 0x92E0`"]
1066 pub const GL_DEBUG_OUTPUT_KHR: GLenum = 0x92E0;
1067 #[doc = "`GL_DEBUG_OUTPUT_SYNCHRONOUS: GLenum = 0x8242`"]
1068 #[doc = "* **Group:** EnableCap"]
1069 pub const GL_DEBUG_OUTPUT_SYNCHRONOUS: GLenum = 0x8242;
1070 #[doc = "`GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB: GLenum = 0x8242`"]
1071 pub const GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB: GLenum = 0x8242;
1072 #[doc = "`GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR: GLenum = 0x8242`"]
1073 pub const GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR: GLenum = 0x8242;
1074 #[doc = "`GL_DEBUG_SEVERITY_HIGH: GLenum = 0x9146`"]
1075 #[doc = "* **Group:** DebugSeverity"]
1076 pub const GL_DEBUG_SEVERITY_HIGH: GLenum = 0x9146;
1077 #[doc = "`GL_DEBUG_SEVERITY_HIGH_ARB: GLenum = 0x9146`"]
1078 pub const GL_DEBUG_SEVERITY_HIGH_ARB: GLenum = 0x9146;
1079 #[doc = "`GL_DEBUG_SEVERITY_HIGH_KHR: GLenum = 0x9146`"]
1080 pub const GL_DEBUG_SEVERITY_HIGH_KHR: GLenum = 0x9146;
1081 #[doc = "`GL_DEBUG_SEVERITY_LOW: GLenum = 0x9148`"]
1082 #[doc = "* **Group:** DebugSeverity"]
1083 pub const GL_DEBUG_SEVERITY_LOW: GLenum = 0x9148;
1084 #[doc = "`GL_DEBUG_SEVERITY_LOW_ARB: GLenum = 0x9148`"]
1085 pub const GL_DEBUG_SEVERITY_LOW_ARB: GLenum = 0x9148;
1086 #[doc = "`GL_DEBUG_SEVERITY_LOW_KHR: GLenum = 0x9148`"]
1087 pub const GL_DEBUG_SEVERITY_LOW_KHR: GLenum = 0x9148;
1088 #[doc = "`GL_DEBUG_SEVERITY_MEDIUM: GLenum = 0x9147`"]
1089 #[doc = "* **Group:** DebugSeverity"]
1090 pub const GL_DEBUG_SEVERITY_MEDIUM: GLenum = 0x9147;
1091 #[doc = "`GL_DEBUG_SEVERITY_MEDIUM_ARB: GLenum = 0x9147`"]
1092 pub const GL_DEBUG_SEVERITY_MEDIUM_ARB: GLenum = 0x9147;
1093 #[doc = "`GL_DEBUG_SEVERITY_MEDIUM_KHR: GLenum = 0x9147`"]
1094 pub const GL_DEBUG_SEVERITY_MEDIUM_KHR: GLenum = 0x9147;
1095 #[doc = "`GL_DEBUG_SEVERITY_NOTIFICATION: GLenum = 0x826B`"]
1096 #[doc = "* **Group:** DebugSeverity"]
1097 pub const GL_DEBUG_SEVERITY_NOTIFICATION: GLenum = 0x826B;
1098 #[doc = "`GL_DEBUG_SEVERITY_NOTIFICATION_KHR: GLenum = 0x826B`"]
1099 pub const GL_DEBUG_SEVERITY_NOTIFICATION_KHR: GLenum = 0x826B;
1100 #[doc = "`GL_DEBUG_SOURCE_API: GLenum = 0x8246`"]
1101 #[doc = "* **Group:** DebugSource"]
1102 pub const GL_DEBUG_SOURCE_API: GLenum = 0x8246;
1103 #[doc = "`GL_DEBUG_SOURCE_API_ARB: GLenum = 0x8246`"]
1104 pub const GL_DEBUG_SOURCE_API_ARB: GLenum = 0x8246;
1105 #[doc = "`GL_DEBUG_SOURCE_API_KHR: GLenum = 0x8246`"]
1106 pub const GL_DEBUG_SOURCE_API_KHR: GLenum = 0x8246;
1107 #[doc = "`GL_DEBUG_SOURCE_APPLICATION: GLenum = 0x824A`"]
1108 #[doc = "* **Group:** DebugSource"]
1109 pub const GL_DEBUG_SOURCE_APPLICATION: GLenum = 0x824A;
1110 #[doc = "`GL_DEBUG_SOURCE_APPLICATION_ARB: GLenum = 0x824A`"]
1111 pub const GL_DEBUG_SOURCE_APPLICATION_ARB: GLenum = 0x824A;
1112 #[doc = "`GL_DEBUG_SOURCE_APPLICATION_KHR: GLenum = 0x824A`"]
1113 pub const GL_DEBUG_SOURCE_APPLICATION_KHR: GLenum = 0x824A;
1114 #[doc = "`GL_DEBUG_SOURCE_OTHER: GLenum = 0x824B`"]
1115 #[doc = "* **Group:** DebugSource"]
1116 pub const GL_DEBUG_SOURCE_OTHER: GLenum = 0x824B;
1117 #[doc = "`GL_DEBUG_SOURCE_OTHER_ARB: GLenum = 0x824B`"]
1118 pub const GL_DEBUG_SOURCE_OTHER_ARB: GLenum = 0x824B;
1119 #[doc = "`GL_DEBUG_SOURCE_OTHER_KHR: GLenum = 0x824B`"]
1120 pub const GL_DEBUG_SOURCE_OTHER_KHR: GLenum = 0x824B;
1121 #[doc = "`GL_DEBUG_SOURCE_SHADER_COMPILER: GLenum = 0x8248`"]
1122 #[doc = "* **Group:** DebugSource"]
1123 pub const GL_DEBUG_SOURCE_SHADER_COMPILER: GLenum = 0x8248;
1124 #[doc = "`GL_DEBUG_SOURCE_SHADER_COMPILER_ARB: GLenum = 0x8248`"]
1125 pub const GL_DEBUG_SOURCE_SHADER_COMPILER_ARB: GLenum = 0x8248;
1126 #[doc = "`GL_DEBUG_SOURCE_SHADER_COMPILER_KHR: GLenum = 0x8248`"]
1127 pub const GL_DEBUG_SOURCE_SHADER_COMPILER_KHR: GLenum = 0x8248;
1128 #[doc = "`GL_DEBUG_SOURCE_THIRD_PARTY: GLenum = 0x8249`"]
1129 #[doc = "* **Group:** DebugSource"]
1130 pub const GL_DEBUG_SOURCE_THIRD_PARTY: GLenum = 0x8249;
1131 #[doc = "`GL_DEBUG_SOURCE_THIRD_PARTY_ARB: GLenum = 0x8249`"]
1132 pub const GL_DEBUG_SOURCE_THIRD_PARTY_ARB: GLenum = 0x8249;
1133 #[doc = "`GL_DEBUG_SOURCE_THIRD_PARTY_KHR: GLenum = 0x8249`"]
1134 pub const GL_DEBUG_SOURCE_THIRD_PARTY_KHR: GLenum = 0x8249;
1135 #[doc = "`GL_DEBUG_SOURCE_WINDOW_SYSTEM: GLenum = 0x8247`"]
1136 #[doc = "* **Group:** DebugSource"]
1137 pub const GL_DEBUG_SOURCE_WINDOW_SYSTEM: GLenum = 0x8247;
1138 #[doc = "`GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB: GLenum = 0x8247`"]
1139 pub const GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB: GLenum = 0x8247;
1140 #[doc = "`GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR: GLenum = 0x8247`"]
1141 pub const GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR: GLenum = 0x8247;
1142 #[doc = "`GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: GLenum = 0x824D`"]
1143 #[doc = "* **Group:** DebugType"]
1144 pub const GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: GLenum = 0x824D;
1145 #[doc = "`GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB: GLenum = 0x824D`"]
1146 pub const GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB: GLenum = 0x824D;
1147 #[doc = "`GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR: GLenum = 0x824D`"]
1148 pub const GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR: GLenum = 0x824D;
1149 #[doc = "`GL_DEBUG_TYPE_ERROR: GLenum = 0x824C`"]
1150 #[doc = "* **Group:** DebugType"]
1151 pub const GL_DEBUG_TYPE_ERROR: GLenum = 0x824C;
1152 #[doc = "`GL_DEBUG_TYPE_ERROR_ARB: GLenum = 0x824C`"]
1153 pub const GL_DEBUG_TYPE_ERROR_ARB: GLenum = 0x824C;
1154 #[doc = "`GL_DEBUG_TYPE_ERROR_KHR: GLenum = 0x824C`"]
1155 pub const GL_DEBUG_TYPE_ERROR_KHR: GLenum = 0x824C;
1156 #[doc = "`GL_DEBUG_TYPE_MARKER: GLenum = 0x8268`"]
1157 #[doc = "* **Group:** DebugType"]
1158 pub const GL_DEBUG_TYPE_MARKER: GLenum = 0x8268;
1159 #[doc = "`GL_DEBUG_TYPE_MARKER_KHR: GLenum = 0x8268`"]
1160 pub const GL_DEBUG_TYPE_MARKER_KHR: GLenum = 0x8268;
1161 #[doc = "`GL_DEBUG_TYPE_OTHER: GLenum = 0x8251`"]
1162 #[doc = "* **Group:** DebugType"]
1163 pub const GL_DEBUG_TYPE_OTHER: GLenum = 0x8251;
1164 #[doc = "`GL_DEBUG_TYPE_OTHER_ARB: GLenum = 0x8251`"]
1165 pub const GL_DEBUG_TYPE_OTHER_ARB: GLenum = 0x8251;
1166 #[doc = "`GL_DEBUG_TYPE_OTHER_KHR: GLenum = 0x8251`"]
1167 pub const GL_DEBUG_TYPE_OTHER_KHR: GLenum = 0x8251;
1168 #[doc = "`GL_DEBUG_TYPE_PERFORMANCE: GLenum = 0x8250`"]
1169 #[doc = "* **Group:** DebugType"]
1170 pub const GL_DEBUG_TYPE_PERFORMANCE: GLenum = 0x8250;
1171 #[doc = "`GL_DEBUG_TYPE_PERFORMANCE_ARB: GLenum = 0x8250`"]
1172 pub const GL_DEBUG_TYPE_PERFORMANCE_ARB: GLenum = 0x8250;
1173 #[doc = "`GL_DEBUG_TYPE_PERFORMANCE_KHR: GLenum = 0x8250`"]
1174 pub const GL_DEBUG_TYPE_PERFORMANCE_KHR: GLenum = 0x8250;
1175 #[doc = "`GL_DEBUG_TYPE_POP_GROUP: GLenum = 0x826A`"]
1176 #[doc = "* **Group:** DebugType"]
1177 pub const GL_DEBUG_TYPE_POP_GROUP: GLenum = 0x826A;
1178 #[doc = "`GL_DEBUG_TYPE_POP_GROUP_KHR: GLenum = 0x826A`"]
1179 pub const GL_DEBUG_TYPE_POP_GROUP_KHR: GLenum = 0x826A;
1180 #[doc = "`GL_DEBUG_TYPE_PORTABILITY: GLenum = 0x824F`"]
1181 #[doc = "* **Group:** DebugType"]
1182 pub const GL_DEBUG_TYPE_PORTABILITY: GLenum = 0x824F;
1183 #[doc = "`GL_DEBUG_TYPE_PORTABILITY_ARB: GLenum = 0x824F`"]
1184 pub const GL_DEBUG_TYPE_PORTABILITY_ARB: GLenum = 0x824F;
1185 #[doc = "`GL_DEBUG_TYPE_PORTABILITY_KHR: GLenum = 0x824F`"]
1186 pub const GL_DEBUG_TYPE_PORTABILITY_KHR: GLenum = 0x824F;
1187 #[doc = "`GL_DEBUG_TYPE_PUSH_GROUP: GLenum = 0x8269`"]
1188 #[doc = "* **Group:** DebugType"]
1189 pub const GL_DEBUG_TYPE_PUSH_GROUP: GLenum = 0x8269;
1190 #[doc = "`GL_DEBUG_TYPE_PUSH_GROUP_KHR: GLenum = 0x8269`"]
1191 pub const GL_DEBUG_TYPE_PUSH_GROUP_KHR: GLenum = 0x8269;
1192 #[doc = "`GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: GLenum = 0x824E`"]
1193 #[doc = "* **Group:** DebugType"]
1194 pub const GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: GLenum = 0x824E;
1195 #[doc = "`GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB: GLenum = 0x824E`"]
1196 pub const GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB: GLenum = 0x824E;
1197 #[doc = "`GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR: GLenum = 0x824E`"]
1198 pub const GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR: GLenum = 0x824E;
1199 #[doc = "`GL_DECR: GLenum = 0x1E03`"]
1200 #[doc = "* **Group:** StencilOp"]
1201 pub const GL_DECR: GLenum = 0x1E03;
1202 #[doc = "`GL_DECR_WRAP: GLenum = 0x8508`"]
1203 #[doc = "* **Group:** StencilOp"]
1204 pub const GL_DECR_WRAP: GLenum = 0x8508;
1205 #[doc = "`GL_DELETE_STATUS: GLenum = 0x8B80`"]
1206 #[doc = "* **Groups:** ProgramPropertyARB, ShaderParameterName"]
1207 pub const GL_DELETE_STATUS: GLenum = 0x8B80;
1208 #[doc = "`GL_DEPTH: GLenum = 0x1801`"]
1209 #[doc = "* **Groups:** Buffer, PixelCopyType, InvalidateFramebufferAttachment"]
1210 pub const GL_DEPTH: GLenum = 0x1801;
1211 #[doc = "`GL_DEPTH24_STENCIL8: GLenum = 0x88F0`"]
1212 #[doc = "* **Group:** InternalFormat"]
1213 pub const GL_DEPTH24_STENCIL8: GLenum = 0x88F0;
1214 #[doc = "`GL_DEPTH32F_STENCIL8: GLenum = 0x8CAD`"]
1215 #[doc = "* **Group:** InternalFormat"]
1216 pub const GL_DEPTH32F_STENCIL8: GLenum = 0x8CAD;
1217 #[doc = "`GL_DEPTH_ATTACHMENT: GLenum = 0x8D00`"]
1218 #[doc = "* **Groups:** InvalidateFramebufferAttachment, FramebufferAttachment"]
1219 pub const GL_DEPTH_ATTACHMENT: GLenum = 0x8D00;
1220 #[doc = "`GL_DEPTH_BITS: GLenum = 0x0D56`"]
1221 #[doc = "* **Group:** GetPName"]
1222 pub const GL_DEPTH_BITS: GLenum = 0x0D56;
1223 #[doc = "`GL_DEPTH_BUFFER_BIT: GLbitfield = 0x00000100`"]
1224 #[doc = "* **Groups:** ClearBufferMask, AttribMask"]
1225 pub const GL_DEPTH_BUFFER_BIT: GLbitfield = 0x00000100;
1226 #[doc = "`GL_DEPTH_CLAMP: GLenum = 0x864F`"]
1227 #[doc = "* **Group:** EnableCap"]
1228 pub const GL_DEPTH_CLAMP: GLenum = 0x864F;
1229 #[doc = "`GL_DEPTH_CLEAR_VALUE: GLenum = 0x0B73`"]
1230 #[doc = "* **Group:** GetPName"]
1231 pub const GL_DEPTH_CLEAR_VALUE: GLenum = 0x0B73;
1232 #[doc = "`GL_DEPTH_COMPONENT: GLenum = 0x1902`"]
1233 #[doc = "* **Groups:** InternalFormat, PixelFormat"]
1234 pub const GL_DEPTH_COMPONENT: GLenum = 0x1902;
1235 #[doc = "`GL_DEPTH_COMPONENT16: GLenum = 0x81A5`"]
1236 #[doc = "* **Group:** InternalFormat"]
1237 pub const GL_DEPTH_COMPONENT16: GLenum = 0x81A5;
1238 #[doc = "`GL_DEPTH_COMPONENT24: GLenum = 0x81A6`"]
1239 pub const GL_DEPTH_COMPONENT24: GLenum = 0x81A6;
1240 #[doc = "`GL_DEPTH_COMPONENT32: GLenum = 0x81A7`"]
1241 pub const GL_DEPTH_COMPONENT32: GLenum = 0x81A7;
1242 #[doc = "`GL_DEPTH_COMPONENT32F: GLenum = 0x8CAC`"]
1243 #[doc = "* **Group:** InternalFormat"]
1244 pub const GL_DEPTH_COMPONENT32F: GLenum = 0x8CAC;
1245 #[doc = "`GL_DEPTH_COMPONENTS: GLenum = 0x8284`"]
1246 pub const GL_DEPTH_COMPONENTS: GLenum = 0x8284;
1247 #[doc = "`GL_DEPTH_FUNC: GLenum = 0x0B74`"]
1248 #[doc = "* **Group:** GetPName"]
1249 pub const GL_DEPTH_FUNC: GLenum = 0x0B74;
1250 #[doc = "`GL_DEPTH_RANGE: GLenum = 0x0B70`"]
1251 #[doc = "* **Group:** GetPName"]
1252 pub const GL_DEPTH_RANGE: GLenum = 0x0B70;
1253 #[doc = "`GL_DEPTH_RENDERABLE: GLenum = 0x8287`"]
1254 #[doc = "* **Group:** InternalFormatPName"]
1255 pub const GL_DEPTH_RENDERABLE: GLenum = 0x8287;
1256 #[doc = "`GL_DEPTH_STENCIL: GLenum = 0x84F9`"]
1257 #[doc = "* **Groups:** InternalFormat, PixelFormat"]
1258 pub const GL_DEPTH_STENCIL: GLenum = 0x84F9;
1259 #[doc = "`GL_DEPTH_STENCIL_ATTACHMENT: GLenum = 0x821A`"]
1260 #[doc = "* **Group:** InvalidateFramebufferAttachment"]
1261 pub const GL_DEPTH_STENCIL_ATTACHMENT: GLenum = 0x821A;
1262 #[doc = "`GL_DEPTH_STENCIL_TEXTURE_MODE: GLenum = 0x90EA`"]
1263 #[doc = "* **Group:** TextureParameterName"]
1264 pub const GL_DEPTH_STENCIL_TEXTURE_MODE: GLenum = 0x90EA;
1265 #[doc = "`GL_DEPTH_TEST: GLenum = 0x0B71`"]
1266 #[doc = "* **Groups:** GetPName, EnableCap"]
1267 pub const GL_DEPTH_TEST: GLenum = 0x0B71;
1268 #[doc = "`GL_DEPTH_WRITEMASK: GLenum = 0x0B72`"]
1269 #[doc = "* **Group:** GetPName"]
1270 pub const GL_DEPTH_WRITEMASK: GLenum = 0x0B72;
1271 #[doc = "`GL_DIFFERENCE: GLenum = 0x929E`"]
1272 pub const GL_DIFFERENCE: GLenum = 0x929E;
1273 #[doc = "`GL_DISPATCH_INDIRECT_BUFFER: GLenum = 0x90EE`"]
1274 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
1275 pub const GL_DISPATCH_INDIRECT_BUFFER: GLenum = 0x90EE;
1276 #[doc = "`GL_DISPATCH_INDIRECT_BUFFER_BINDING: GLenum = 0x90EF`"]
1277 #[doc = "* **Group:** GetPName"]
1278 pub const GL_DISPATCH_INDIRECT_BUFFER_BINDING: GLenum = 0x90EF;
1279 #[doc = "`GL_DITHER: GLenum = 0x0BD0`"]
1280 #[doc = "* **Groups:** GetPName, EnableCap"]
1281 pub const GL_DITHER: GLenum = 0x0BD0;
1282 #[doc = "`GL_DONT_CARE: GLenum = 0x1100`"]
1283 #[doc = "* **Groups:** DebugSeverity, HintMode, DebugSource, DebugType"]
1284 pub const GL_DONT_CARE: GLenum = 0x1100;
1285 #[doc = "`GL_DOUBLE: GLenum = 0x140A`"]
1286 #[doc = "* **Groups:** VertexAttribLType, MapTypeNV, SecondaryColorPointerTypeIBM, WeightPointerTypeARB, TangentPointerTypeEXT, BinormalPointerTypeEXT, FogCoordinatePointerType, FogPointerTypeEXT, FogPointerTypeIBM, IndexPointerType, NormalPointerType, TexCoordPointerType, VertexPointerType, VertexAttribType, AttributeType, UniformType, VertexAttribPointerType, GlslTypeToken"]
1287 pub const GL_DOUBLE: GLenum = 0x140A;
1288 #[doc = "`GL_DOUBLEBUFFER: GLenum = 0x0C32`"]
1289 #[doc = "* **Groups:** GetFramebufferParameter, GetPName"]
1290 pub const GL_DOUBLEBUFFER: GLenum = 0x0C32;
1291 #[doc = "`GL_DOUBLE_MAT2: GLenum = 0x8F46`"]
1292 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1293 pub const GL_DOUBLE_MAT2: GLenum = 0x8F46;
1294 #[doc = "`GL_DOUBLE_MAT2x3: GLenum = 0x8F49`"]
1295 #[doc = "* **Groups:** UniformType, AttributeType"]
1296 pub const GL_DOUBLE_MAT2x3: GLenum = 0x8F49;
1297 #[doc = "`GL_DOUBLE_MAT2x4: GLenum = 0x8F4A`"]
1298 #[doc = "* **Groups:** UniformType, AttributeType"]
1299 pub const GL_DOUBLE_MAT2x4: GLenum = 0x8F4A;
1300 #[doc = "`GL_DOUBLE_MAT3: GLenum = 0x8F47`"]
1301 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1302 pub const GL_DOUBLE_MAT3: GLenum = 0x8F47;
1303 #[doc = "`GL_DOUBLE_MAT3x2: GLenum = 0x8F4B`"]
1304 #[doc = "* **Groups:** UniformType, AttributeType"]
1305 pub const GL_DOUBLE_MAT3x2: GLenum = 0x8F4B;
1306 #[doc = "`GL_DOUBLE_MAT3x4: GLenum = 0x8F4C`"]
1307 #[doc = "* **Groups:** UniformType, AttributeType"]
1308 pub const GL_DOUBLE_MAT3x4: GLenum = 0x8F4C;
1309 #[doc = "`GL_DOUBLE_MAT4: GLenum = 0x8F48`"]
1310 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1311 pub const GL_DOUBLE_MAT4: GLenum = 0x8F48;
1312 #[doc = "`GL_DOUBLE_MAT4x2: GLenum = 0x8F4D`"]
1313 #[doc = "* **Groups:** UniformType, AttributeType"]
1314 pub const GL_DOUBLE_MAT4x2: GLenum = 0x8F4D;
1315 #[doc = "`GL_DOUBLE_MAT4x3: GLenum = 0x8F4E`"]
1316 #[doc = "* **Groups:** UniformType, AttributeType"]
1317 pub const GL_DOUBLE_MAT4x3: GLenum = 0x8F4E;
1318 #[doc = "`GL_DOUBLE_VEC2: GLenum = 0x8FFC`"]
1319 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1320 pub const GL_DOUBLE_VEC2: GLenum = 0x8FFC;
1321 #[doc = "`GL_DOUBLE_VEC3: GLenum = 0x8FFD`"]
1322 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1323 pub const GL_DOUBLE_VEC3: GLenum = 0x8FFD;
1324 #[doc = "`GL_DOUBLE_VEC4: GLenum = 0x8FFE`"]
1325 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1326 pub const GL_DOUBLE_VEC4: GLenum = 0x8FFE;
1327 #[doc = "`GL_DRAW_BUFFER: GLenum = 0x0C01`"]
1328 #[doc = "* **Group:** GetPName"]
1329 pub const GL_DRAW_BUFFER: GLenum = 0x0C01;
1330 #[doc = "`GL_DRAW_BUFFER0: GLenum = 0x8825`"]
1331 pub const GL_DRAW_BUFFER0: GLenum = 0x8825;
1332 #[doc = "`GL_DRAW_BUFFER1: GLenum = 0x8826`"]
1333 pub const GL_DRAW_BUFFER1: GLenum = 0x8826;
1334 #[doc = "`GL_DRAW_BUFFER10: GLenum = 0x882F`"]
1335 pub const GL_DRAW_BUFFER10: GLenum = 0x882F;
1336 #[doc = "`GL_DRAW_BUFFER11: GLenum = 0x8830`"]
1337 pub const GL_DRAW_BUFFER11: GLenum = 0x8830;
1338 #[doc = "`GL_DRAW_BUFFER12: GLenum = 0x8831`"]
1339 pub const GL_DRAW_BUFFER12: GLenum = 0x8831;
1340 #[doc = "`GL_DRAW_BUFFER13: GLenum = 0x8832`"]
1341 pub const GL_DRAW_BUFFER13: GLenum = 0x8832;
1342 #[doc = "`GL_DRAW_BUFFER14: GLenum = 0x8833`"]
1343 pub const GL_DRAW_BUFFER14: GLenum = 0x8833;
1344 #[doc = "`GL_DRAW_BUFFER15: GLenum = 0x8834`"]
1345 pub const GL_DRAW_BUFFER15: GLenum = 0x8834;
1346 #[doc = "`GL_DRAW_BUFFER2: GLenum = 0x8827`"]
1347 pub const GL_DRAW_BUFFER2: GLenum = 0x8827;
1348 #[doc = "`GL_DRAW_BUFFER3: GLenum = 0x8828`"]
1349 pub const GL_DRAW_BUFFER3: GLenum = 0x8828;
1350 #[doc = "`GL_DRAW_BUFFER4: GLenum = 0x8829`"]
1351 pub const GL_DRAW_BUFFER4: GLenum = 0x8829;
1352 #[doc = "`GL_DRAW_BUFFER5: GLenum = 0x882A`"]
1353 pub const GL_DRAW_BUFFER5: GLenum = 0x882A;
1354 #[doc = "`GL_DRAW_BUFFER6: GLenum = 0x882B`"]
1355 pub const GL_DRAW_BUFFER6: GLenum = 0x882B;
1356 #[doc = "`GL_DRAW_BUFFER7: GLenum = 0x882C`"]
1357 pub const GL_DRAW_BUFFER7: GLenum = 0x882C;
1358 #[doc = "`GL_DRAW_BUFFER8: GLenum = 0x882D`"]
1359 pub const GL_DRAW_BUFFER8: GLenum = 0x882D;
1360 #[doc = "`GL_DRAW_BUFFER9: GLenum = 0x882E`"]
1361 pub const GL_DRAW_BUFFER9: GLenum = 0x882E;
1362 #[doc = "`GL_DRAW_FRAMEBUFFER: GLenum = 0x8CA9`"]
1363 #[doc = "* **Groups:** CheckFramebufferStatusTarget, FramebufferTarget"]
1364 pub const GL_DRAW_FRAMEBUFFER: GLenum = 0x8CA9;
1365 #[doc = "`GL_DRAW_FRAMEBUFFER_BINDING: GLenum = 0x8CA6`"]
1366 #[doc = "* **Group:** GetPName"]
1367 pub const GL_DRAW_FRAMEBUFFER_BINDING: GLenum = 0x8CA6;
1368 #[doc = "`GL_DRAW_INDIRECT_BUFFER: GLenum = 0x8F3F`"]
1369 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
1370 pub const GL_DRAW_INDIRECT_BUFFER: GLenum = 0x8F3F;
1371 #[doc = "`GL_DRAW_INDIRECT_BUFFER_BINDING: GLenum = 0x8F43`"]
1372 pub const GL_DRAW_INDIRECT_BUFFER_BINDING: GLenum = 0x8F43;
1373 #[doc = "`GL_DST_ALPHA: GLenum = 0x0304`"]
1374 #[doc = "* **Group:** BlendingFactor"]
1375 pub const GL_DST_ALPHA: GLenum = 0x0304;
1376 #[doc = "`GL_DST_COLOR: GLenum = 0x0306`"]
1377 #[doc = "* **Group:** BlendingFactor"]
1378 pub const GL_DST_COLOR: GLenum = 0x0306;
1379 #[doc = "`GL_DYNAMIC_COPY: GLenum = 0x88EA`"]
1380 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
1381 pub const GL_DYNAMIC_COPY: GLenum = 0x88EA;
1382 #[doc = "`GL_DYNAMIC_DRAW: GLenum = 0x88E8`"]
1383 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
1384 pub const GL_DYNAMIC_DRAW: GLenum = 0x88E8;
1385 #[doc = "`GL_DYNAMIC_READ: GLenum = 0x88E9`"]
1386 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
1387 pub const GL_DYNAMIC_READ: GLenum = 0x88E9;
1388 #[doc = "`GL_DYNAMIC_STORAGE_BIT: GLbitfield = 0x0100`"]
1389 #[doc = "* **Group:** BufferStorageMask"]
1390 pub const GL_DYNAMIC_STORAGE_BIT: GLbitfield = 0x0100;
1391 #[doc = "`GL_DYNAMIC_STORAGE_BIT_EXT: GLbitfield = 0x0100`"]
1392 #[doc = "* **Group:** BufferStorageMask"]
1393 pub const GL_DYNAMIC_STORAGE_BIT_EXT: GLbitfield = 0x0100;
1394 #[doc = "`GL_ELEMENT_ARRAY_BARRIER_BIT: GLbitfield = 0x00000002`"]
1395 #[doc = "* **Group:** MemoryBarrierMask"]
1396 pub const GL_ELEMENT_ARRAY_BARRIER_BIT: GLbitfield = 0x00000002;
1397 #[doc = "`GL_ELEMENT_ARRAY_BUFFER: GLenum = 0x8893`"]
1398 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
1399 pub const GL_ELEMENT_ARRAY_BUFFER: GLenum = 0x8893;
1400 #[doc = "`GL_ELEMENT_ARRAY_BUFFER_BINDING: GLenum = 0x8895`"]
1401 #[doc = "* **Group:** GetPName"]
1402 pub const GL_ELEMENT_ARRAY_BUFFER_BINDING: GLenum = 0x8895;
1403 #[doc = "`GL_EQUAL: GLenum = 0x0202`"]
1404 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
1405 pub const GL_EQUAL: GLenum = 0x0202;
1406 #[doc = "`GL_EQUIV: GLenum = 0x1509`"]
1407 #[doc = "* **Group:** LogicOp"]
1408 pub const GL_EQUIV: GLenum = 0x1509;
1409 #[doc = "`GL_EXCLUSION: GLenum = 0x92A0`"]
1410 pub const GL_EXCLUSION: GLenum = 0x92A0;
1411 #[doc = "`GL_EXTENSIONS: GLenum = 0x1F03`"]
1412 #[doc = "* **Group:** StringName"]
1413 pub const GL_EXTENSIONS: GLenum = 0x1F03;
1414 #[doc = "`GL_FALSE: GLenum = 0`"]
1415 #[doc = "* **Groups:** Boolean, VertexShaderWriteMaskEXT, ClampColorModeARB"]
1416 pub const GL_FALSE: GLenum = 0;
1417 #[doc = "`GL_FASTEST: GLenum = 0x1101`"]
1418 #[doc = "* **Group:** HintMode"]
1419 pub const GL_FASTEST: GLenum = 0x1101;
1420 #[doc = "`GL_FILL: GLenum = 0x1B02`"]
1421 #[doc = "* **Groups:** PolygonMode, MeshMode2"]
1422 pub const GL_FILL: GLenum = 0x1B02;
1423 #[doc = "`GL_FILTER: GLenum = 0x829A`"]
1424 #[doc = "* **Group:** InternalFormatPName"]
1425 pub const GL_FILTER: GLenum = 0x829A;
1426 #[doc = "`GL_FIRST_VERTEX_CONVENTION: GLenum = 0x8E4D`"]
1427 #[doc = "* **Group:** VertexProvokingMode"]
1428 pub const GL_FIRST_VERTEX_CONVENTION: GLenum = 0x8E4D;
1429 #[doc = "`GL_FIXED: GLenum = 0x140C`"]
1430 #[doc = "* **Groups:** VertexAttribPointerType, VertexAttribType"]
1431 pub const GL_FIXED: GLenum = 0x140C;
1432 #[doc = "`GL_FIXED_ONLY: GLenum = 0x891D`"]
1433 #[doc = "* **Group:** ClampColorModeARB"]
1434 pub const GL_FIXED_ONLY: GLenum = 0x891D;
1435 #[doc = "`GL_FLOAT: GLenum = 0x1406`"]
1436 #[doc = "* **Groups:** GlslTypeToken, MapTypeNV, SecondaryColorPointerTypeIBM, WeightPointerTypeARB, VertexWeightPointerTypeEXT, TangentPointerTypeEXT, BinormalPointerTypeEXT, FogCoordinatePointerType, FogPointerTypeEXT, FogPointerTypeIBM, IndexPointerType, ListNameType, NormalPointerType, PixelType, TexCoordPointerType, VertexPointerType, VertexAttribType, AttributeType, UniformType, VertexAttribPointerType"]
1437 pub const GL_FLOAT: GLenum = 0x1406;
1438 #[doc = "`GL_FLOAT_32_UNSIGNED_INT_24_8_REV: GLenum = 0x8DAD`"]
1439 pub const GL_FLOAT_32_UNSIGNED_INT_24_8_REV: GLenum = 0x8DAD;
1440 #[doc = "`GL_FLOAT_MAT2: GLenum = 0x8B5A`"]
1441 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1442 pub const GL_FLOAT_MAT2: GLenum = 0x8B5A;
1443 #[doc = "`GL_FLOAT_MAT2x3: GLenum = 0x8B65`"]
1444 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1445 pub const GL_FLOAT_MAT2x3: GLenum = 0x8B65;
1446 #[doc = "`GL_FLOAT_MAT2x4: GLenum = 0x8B66`"]
1447 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1448 pub const GL_FLOAT_MAT2x4: GLenum = 0x8B66;
1449 #[doc = "`GL_FLOAT_MAT3: GLenum = 0x8B5B`"]
1450 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1451 pub const GL_FLOAT_MAT3: GLenum = 0x8B5B;
1452 #[doc = "`GL_FLOAT_MAT3x2: GLenum = 0x8B67`"]
1453 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1454 pub const GL_FLOAT_MAT3x2: GLenum = 0x8B67;
1455 #[doc = "`GL_FLOAT_MAT3x4: GLenum = 0x8B68`"]
1456 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1457 pub const GL_FLOAT_MAT3x4: GLenum = 0x8B68;
1458 #[doc = "`GL_FLOAT_MAT4: GLenum = 0x8B5C`"]
1459 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1460 pub const GL_FLOAT_MAT4: GLenum = 0x8B5C;
1461 #[doc = "`GL_FLOAT_MAT4x2: GLenum = 0x8B69`"]
1462 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1463 pub const GL_FLOAT_MAT4x2: GLenum = 0x8B69;
1464 #[doc = "`GL_FLOAT_MAT4x3: GLenum = 0x8B6A`"]
1465 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1466 pub const GL_FLOAT_MAT4x3: GLenum = 0x8B6A;
1467 #[doc = "`GL_FLOAT_VEC2: GLenum = 0x8B50`"]
1468 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1469 pub const GL_FLOAT_VEC2: GLenum = 0x8B50;
1470 #[doc = "`GL_FLOAT_VEC3: GLenum = 0x8B51`"]
1471 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1472 pub const GL_FLOAT_VEC3: GLenum = 0x8B51;
1473 #[doc = "`GL_FLOAT_VEC4: GLenum = 0x8B52`"]
1474 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1475 pub const GL_FLOAT_VEC4: GLenum = 0x8B52;
1476 #[doc = "`GL_FRACTIONAL_EVEN: GLenum = 0x8E7C`"]
1477 pub const GL_FRACTIONAL_EVEN: GLenum = 0x8E7C;
1478 #[doc = "`GL_FRACTIONAL_ODD: GLenum = 0x8E7B`"]
1479 pub const GL_FRACTIONAL_ODD: GLenum = 0x8E7B;
1480 #[doc = "`GL_FRAGMENT_INTERPOLATION_OFFSET_BITS: GLenum = 0x8E5D`"]
1481 pub const GL_FRAGMENT_INTERPOLATION_OFFSET_BITS: GLenum = 0x8E5D;
1482 #[doc = "`GL_FRAGMENT_SHADER: GLenum = 0x8B30`"]
1483 #[doc = "* **Groups:** PipelineParameterName, ShaderType"]
1484 pub const GL_FRAGMENT_SHADER: GLenum = 0x8B30;
1485 #[doc = "`GL_FRAGMENT_SHADER_BIT: GLbitfield = 0x00000002`"]
1486 #[doc = "* **Group:** UseProgramStageMask"]
1487 pub const GL_FRAGMENT_SHADER_BIT: GLbitfield = 0x00000002;
1488 #[doc = "`GL_FRAGMENT_SHADER_DERIVATIVE_HINT: GLenum = 0x8B8B`"]
1489 #[doc = "* **Groups:** HintTarget, GetPName"]
1490 pub const GL_FRAGMENT_SHADER_DERIVATIVE_HINT: GLenum = 0x8B8B;
1491 #[doc = "`GL_FRAGMENT_SHADER_INVOCATIONS: GLenum = 0x82F4`"]
1492 pub const GL_FRAGMENT_SHADER_INVOCATIONS: GLenum = 0x82F4;
1493 #[doc = "`GL_FRAGMENT_SUBROUTINE: GLenum = 0x92EC`"]
1494 #[doc = "* **Group:** ProgramInterface"]
1495 pub const GL_FRAGMENT_SUBROUTINE: GLenum = 0x92EC;
1496 #[doc = "`GL_FRAGMENT_SUBROUTINE_UNIFORM: GLenum = 0x92F2`"]
1497 #[doc = "* **Group:** ProgramInterface"]
1498 pub const GL_FRAGMENT_SUBROUTINE_UNIFORM: GLenum = 0x92F2;
1499 #[doc = "`GL_FRAGMENT_TEXTURE: GLenum = 0x829F`"]
1500 #[doc = "* **Group:** InternalFormatPName"]
1501 pub const GL_FRAGMENT_TEXTURE: GLenum = 0x829F;
1502 #[doc = "`GL_FRAMEBUFFER: GLenum = 0x8D40`"]
1503 #[doc = "* **Groups:** ObjectIdentifier, FramebufferTarget, CheckFramebufferStatusTarget"]
1504 pub const GL_FRAMEBUFFER: GLenum = 0x8D40;
1505 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: GLenum = 0x8215`"]
1506 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1507 pub const GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: GLenum = 0x8215;
1508 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: GLenum = 0x8214`"]
1509 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1510 pub const GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: GLenum = 0x8214;
1511 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: GLenum = 0x8210`"]
1512 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1513 pub const GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: GLenum = 0x8210;
1514 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: GLenum = 0x8211`"]
1515 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1516 pub const GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: GLenum = 0x8211;
1517 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: GLenum = 0x8216`"]
1518 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1519 pub const GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: GLenum = 0x8216;
1520 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: GLenum = 0x8213`"]
1521 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1522 pub const GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: GLenum = 0x8213;
1523 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_LAYERED: GLenum = 0x8DA7`"]
1524 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1525 pub const GL_FRAMEBUFFER_ATTACHMENT_LAYERED: GLenum = 0x8DA7;
1526 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum = 0x8CD1`"]
1527 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1528 pub const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum = 0x8CD1;
1529 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum = 0x8CD0`"]
1530 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1531 pub const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum = 0x8CD0;
1532 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE: GLenum = 0x8212`"]
1533 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1534 pub const GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE: GLenum = 0x8212;
1535 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: GLenum = 0x8217`"]
1536 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1537 pub const GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: GLenum = 0x8217;
1538 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum = 0x8CD3`"]
1539 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1540 pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum = 0x8CD3;
1541 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: GLenum = 0x8CD4`"]
1542 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1543 pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: GLenum = 0x8CD4;
1544 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum = 0x8CD2`"]
1545 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1546 pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum = 0x8CD2;
1547 #[doc = "`GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT: GLenum = 0x8D6C`"]
1548 #[doc = "* **Group:** FramebufferAttachmentParameterName"]
1549 #[cfg_attr(
1550 docs_rs,
1551 doc(cfg(any(feature = "GL_EXT_multisampled_render_to_texture")))
1552 )]
1553 pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT: GLenum = 0x8D6C;
1554 #[doc = "`GL_FRAMEBUFFER_BARRIER_BIT: GLbitfield = 0x00000400`"]
1555 #[doc = "* **Group:** MemoryBarrierMask"]
1556 pub const GL_FRAMEBUFFER_BARRIER_BIT: GLbitfield = 0x00000400;
1557 #[doc = "`GL_FRAMEBUFFER_BINDING: GLenum = 0x8CA6`"]
1558 pub const GL_FRAMEBUFFER_BINDING: GLenum = 0x8CA6;
1559 #[doc = "`GL_FRAMEBUFFER_BLEND: GLenum = 0x828B`"]
1560 #[doc = "* **Group:** InternalFormatPName"]
1561 pub const GL_FRAMEBUFFER_BLEND: GLenum = 0x828B;
1562 #[doc = "`GL_FRAMEBUFFER_COMPLETE: GLenum = 0x8CD5`"]
1563 #[doc = "* **Group:** FramebufferStatus"]
1564 pub const GL_FRAMEBUFFER_COMPLETE: GLenum = 0x8CD5;
1565 #[doc = "`GL_FRAMEBUFFER_DEFAULT: GLenum = 0x8218`"]
1566 pub const GL_FRAMEBUFFER_DEFAULT: GLenum = 0x8218;
1567 #[doc = "`GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS: GLenum = 0x9314`"]
1568 #[doc = "* **Groups:** GetFramebufferParameter, FramebufferParameterName"]
1569 pub const GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS: GLenum = 0x9314;
1570 #[doc = "`GL_FRAMEBUFFER_DEFAULT_HEIGHT: GLenum = 0x9311`"]
1571 #[doc = "* **Groups:** GetFramebufferParameter, FramebufferParameterName"]
1572 pub const GL_FRAMEBUFFER_DEFAULT_HEIGHT: GLenum = 0x9311;
1573 #[doc = "`GL_FRAMEBUFFER_DEFAULT_LAYERS: GLenum = 0x9312`"]
1574 #[doc = "* **Groups:** GetFramebufferParameter, FramebufferParameterName"]
1575 pub const GL_FRAMEBUFFER_DEFAULT_LAYERS: GLenum = 0x9312;
1576 #[doc = "`GL_FRAMEBUFFER_DEFAULT_SAMPLES: GLenum = 0x9313`"]
1577 #[doc = "* **Groups:** GetFramebufferParameter, FramebufferParameterName"]
1578 pub const GL_FRAMEBUFFER_DEFAULT_SAMPLES: GLenum = 0x9313;
1579 #[doc = "`GL_FRAMEBUFFER_DEFAULT_WIDTH: GLenum = 0x9310`"]
1580 #[doc = "* **Groups:** GetFramebufferParameter, FramebufferParameterName"]
1581 pub const GL_FRAMEBUFFER_DEFAULT_WIDTH: GLenum = 0x9310;
1582 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum = 0x8CD6`"]
1583 #[doc = "* **Group:** FramebufferStatus"]
1584 pub const GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum = 0x8CD6;
1585 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum = 0x8CD9`"]
1586 pub const GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum = 0x8CD9;
1587 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER: GLenum = 0x8CDB`"]
1588 #[doc = "* **Group:** FramebufferStatus"]
1589 pub const GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER: GLenum = 0x8CDB;
1590 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS: GLenum = 0x8DA8`"]
1591 #[doc = "* **Group:** FramebufferStatus"]
1592 pub const GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS: GLenum = 0x8DA8;
1593 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum = 0x8CD7`"]
1594 #[doc = "* **Group:** FramebufferStatus"]
1595 pub const GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum = 0x8CD7;
1596 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: GLenum = 0x8D56`"]
1597 #[doc = "* **Group:** FramebufferStatus"]
1598 pub const GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: GLenum = 0x8D56;
1599 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT: GLenum = 0x8D56`"]
1600 #[cfg_attr(
1601 docs_rs,
1602 doc(cfg(any(feature = "GL_EXT_multisampled_render_to_texture")))
1603 )]
1604 pub const GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT: GLenum = 0x8D56;
1605 #[doc = "`GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER: GLenum = 0x8CDC`"]
1606 #[doc = "* **Group:** FramebufferStatus"]
1607 pub const GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER: GLenum = 0x8CDC;
1608 #[doc = "`GL_FRAMEBUFFER_RENDERABLE: GLenum = 0x8289`"]
1609 #[doc = "* **Group:** InternalFormatPName"]
1610 pub const GL_FRAMEBUFFER_RENDERABLE: GLenum = 0x8289;
1611 #[doc = "`GL_FRAMEBUFFER_RENDERABLE_LAYERED: GLenum = 0x828A`"]
1612 #[doc = "* **Group:** InternalFormatPName"]
1613 pub const GL_FRAMEBUFFER_RENDERABLE_LAYERED: GLenum = 0x828A;
1614 #[doc = "`GL_FRAMEBUFFER_SRGB: GLenum = 0x8DB9`"]
1615 #[doc = "* **Group:** EnableCap"]
1616 pub const GL_FRAMEBUFFER_SRGB: GLenum = 0x8DB9;
1617 #[doc = "`GL_FRAMEBUFFER_UNDEFINED: GLenum = 0x8219`"]
1618 #[doc = "* **Group:** FramebufferStatus"]
1619 pub const GL_FRAMEBUFFER_UNDEFINED: GLenum = 0x8219;
1620 #[doc = "`GL_FRAMEBUFFER_UNSUPPORTED: GLenum = 0x8CDD`"]
1621 #[doc = "* **Group:** FramebufferStatus"]
1622 pub const GL_FRAMEBUFFER_UNSUPPORTED: GLenum = 0x8CDD;
1623 #[doc = "`GL_FRONT: GLenum = 0x0404`"]
1624 #[doc = "* **Groups:** ColorBuffer, ColorMaterialFace, CullFaceMode, DrawBufferMode, ReadBufferMode, StencilFaceDirection, MaterialFace"]
1625 pub const GL_FRONT: GLenum = 0x0404;
1626 #[doc = "`GL_FRONT_AND_BACK: GLenum = 0x0408`"]
1627 #[doc = "* **Groups:** ColorBuffer, ColorMaterialFace, CullFaceMode, DrawBufferMode, StencilFaceDirection, MaterialFace"]
1628 pub const GL_FRONT_AND_BACK: GLenum = 0x0408;
1629 #[doc = "`GL_FRONT_FACE: GLenum = 0x0B46`"]
1630 #[doc = "* **Group:** GetPName"]
1631 pub const GL_FRONT_FACE: GLenum = 0x0B46;
1632 #[doc = "`GL_FRONT_LEFT: GLenum = 0x0400`"]
1633 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode"]
1634 pub const GL_FRONT_LEFT: GLenum = 0x0400;
1635 #[doc = "`GL_FRONT_RIGHT: GLenum = 0x0401`"]
1636 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode"]
1637 pub const GL_FRONT_RIGHT: GLenum = 0x0401;
1638 #[doc = "`GL_FULL_SUPPORT: GLenum = 0x82B7`"]
1639 pub const GL_FULL_SUPPORT: GLenum = 0x82B7;
1640 #[doc = "`GL_FUNC_ADD: GLenum = 0x8006`"]
1641 #[doc = "* **Group:** BlendEquationModeEXT"]
1642 pub const GL_FUNC_ADD: GLenum = 0x8006;
1643 #[doc = "`GL_FUNC_REVERSE_SUBTRACT: GLenum = 0x800B`"]
1644 #[doc = "* **Group:** BlendEquationModeEXT"]
1645 pub const GL_FUNC_REVERSE_SUBTRACT: GLenum = 0x800B;
1646 #[doc = "`GL_FUNC_SUBTRACT: GLenum = 0x800A`"]
1647 #[doc = "* **Group:** BlendEquationModeEXT"]
1648 pub const GL_FUNC_SUBTRACT: GLenum = 0x800A;
1649 #[doc = "`GL_GENERATE_MIPMAP_HINT: GLenum = 0x8192`"]
1650 #[doc = "* **Group:** HintTarget"]
1651 pub const GL_GENERATE_MIPMAP_HINT: GLenum = 0x8192;
1652 #[doc = "`GL_GEOMETRY_INPUT_TYPE: GLenum = 0x8917`"]
1653 #[doc = "* **Group:** ProgramPropertyARB"]
1654 pub const GL_GEOMETRY_INPUT_TYPE: GLenum = 0x8917;
1655 #[doc = "`GL_GEOMETRY_OUTPUT_TYPE: GLenum = 0x8918`"]
1656 #[doc = "* **Group:** ProgramPropertyARB"]
1657 pub const GL_GEOMETRY_OUTPUT_TYPE: GLenum = 0x8918;
1658 #[doc = "`GL_GEOMETRY_SHADER: GLenum = 0x8DD9`"]
1659 #[doc = "* **Groups:** PipelineParameterName, ShaderType"]
1660 pub const GL_GEOMETRY_SHADER: GLenum = 0x8DD9;
1661 #[doc = "`GL_GEOMETRY_SHADER_BIT: GLbitfield = 0x00000004`"]
1662 #[doc = "* **Group:** UseProgramStageMask"]
1663 pub const GL_GEOMETRY_SHADER_BIT: GLbitfield = 0x00000004;
1664 #[doc = "`GL_GEOMETRY_SHADER_INVOCATIONS: GLenum = 0x887F`"]
1665 pub const GL_GEOMETRY_SHADER_INVOCATIONS: GLenum = 0x887F;
1666 #[doc = "`GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED: GLenum = 0x82F3`"]
1667 pub const GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED: GLenum = 0x82F3;
1668 #[doc = "`GL_GEOMETRY_SUBROUTINE: GLenum = 0x92EB`"]
1669 #[doc = "* **Group:** ProgramInterface"]
1670 pub const GL_GEOMETRY_SUBROUTINE: GLenum = 0x92EB;
1671 #[doc = "`GL_GEOMETRY_SUBROUTINE_UNIFORM: GLenum = 0x92F1`"]
1672 #[doc = "* **Group:** ProgramInterface"]
1673 pub const GL_GEOMETRY_SUBROUTINE_UNIFORM: GLenum = 0x92F1;
1674 #[doc = "`GL_GEOMETRY_TEXTURE: GLenum = 0x829E`"]
1675 #[doc = "* **Group:** InternalFormatPName"]
1676 pub const GL_GEOMETRY_TEXTURE: GLenum = 0x829E;
1677 #[doc = "`GL_GEOMETRY_VERTICES_OUT: GLenum = 0x8916`"]
1678 #[doc = "* **Group:** ProgramPropertyARB"]
1679 pub const GL_GEOMETRY_VERTICES_OUT: GLenum = 0x8916;
1680 #[doc = "`GL_GEQUAL: GLenum = 0x0206`"]
1681 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
1682 pub const GL_GEQUAL: GLenum = 0x0206;
1683 #[doc = "`GL_GET_TEXTURE_IMAGE_FORMAT: GLenum = 0x8291`"]
1684 #[doc = "* **Group:** InternalFormatPName"]
1685 pub const GL_GET_TEXTURE_IMAGE_FORMAT: GLenum = 0x8291;
1686 #[doc = "`GL_GET_TEXTURE_IMAGE_TYPE: GLenum = 0x8292`"]
1687 #[doc = "* **Group:** InternalFormatPName"]
1688 pub const GL_GET_TEXTURE_IMAGE_TYPE: GLenum = 0x8292;
1689 #[doc = "`GL_GPU_DISJOINT_EXT: GLenum = 0x8FBB`"]
1690 pub const GL_GPU_DISJOINT_EXT: GLenum = 0x8FBB;
1691 #[doc = "`GL_GREATER: GLenum = 0x0204`"]
1692 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
1693 pub const GL_GREATER: GLenum = 0x0204;
1694 #[doc = "`GL_GREEN: GLenum = 0x1904`"]
1695 #[doc = "* **Groups:** TextureSwizzle, PixelFormat"]
1696 pub const GL_GREEN: GLenum = 0x1904;
1697 #[doc = "`GL_GREEN_BITS: GLenum = 0x0D53`"]
1698 #[doc = "* **Group:** GetPName"]
1699 pub const GL_GREEN_BITS: GLenum = 0x0D53;
1700 #[doc = "`GL_GREEN_INTEGER: GLenum = 0x8D95`"]
1701 #[doc = "* **Group:** PixelFormat"]
1702 pub const GL_GREEN_INTEGER: GLenum = 0x8D95;
1703 #[doc = "`GL_GUILTY_CONTEXT_RESET: GLenum = 0x8253`"]
1704 #[doc = "* **Group:** GraphicsResetStatus"]
1705 pub const GL_GUILTY_CONTEXT_RESET: GLenum = 0x8253;
1706 #[doc = "`GL_HALF_FLOAT: GLenum = 0x140B`"]
1707 #[doc = "* **Groups:** VertexAttribPointerType, VertexAttribType"]
1708 pub const GL_HALF_FLOAT: GLenum = 0x140B;
1709 #[doc = "`GL_HARDLIGHT: GLenum = 0x929B`"]
1710 pub const GL_HARDLIGHT: GLenum = 0x929B;
1711 #[doc = "`GL_HIGH_FLOAT: GLenum = 0x8DF2`"]
1712 #[doc = "* **Group:** PrecisionType"]
1713 pub const GL_HIGH_FLOAT: GLenum = 0x8DF2;
1714 #[doc = "`GL_HIGH_INT: GLenum = 0x8DF5`"]
1715 #[doc = "* **Group:** PrecisionType"]
1716 pub const GL_HIGH_INT: GLenum = 0x8DF5;
1717 #[doc = "`GL_HSL_COLOR: GLenum = 0x92AF`"]
1718 pub const GL_HSL_COLOR: GLenum = 0x92AF;
1719 #[doc = "`GL_HSL_HUE: GLenum = 0x92AD`"]
1720 pub const GL_HSL_HUE: GLenum = 0x92AD;
1721 #[doc = "`GL_HSL_LUMINOSITY: GLenum = 0x92B0`"]
1722 pub const GL_HSL_LUMINOSITY: GLenum = 0x92B0;
1723 #[doc = "`GL_HSL_SATURATION: GLenum = 0x92AE`"]
1724 pub const GL_HSL_SATURATION: GLenum = 0x92AE;
1725 #[doc = "`GL_IMAGE_1D: GLenum = 0x904C`"]
1726 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1727 pub const GL_IMAGE_1D: GLenum = 0x904C;
1728 #[doc = "`GL_IMAGE_1D_ARRAY: GLenum = 0x9052`"]
1729 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1730 pub const GL_IMAGE_1D_ARRAY: GLenum = 0x9052;
1731 #[doc = "`GL_IMAGE_2D: GLenum = 0x904D`"]
1732 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1733 pub const GL_IMAGE_2D: GLenum = 0x904D;
1734 #[doc = "`GL_IMAGE_2D_ARRAY: GLenum = 0x9053`"]
1735 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1736 pub const GL_IMAGE_2D_ARRAY: GLenum = 0x9053;
1737 #[doc = "`GL_IMAGE_2D_MULTISAMPLE: GLenum = 0x9055`"]
1738 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1739 pub const GL_IMAGE_2D_MULTISAMPLE: GLenum = 0x9055;
1740 #[doc = "`GL_IMAGE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9056`"]
1741 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1742 pub const GL_IMAGE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9056;
1743 #[doc = "`GL_IMAGE_2D_RECT: GLenum = 0x904F`"]
1744 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1745 pub const GL_IMAGE_2D_RECT: GLenum = 0x904F;
1746 #[doc = "`GL_IMAGE_3D: GLenum = 0x904E`"]
1747 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1748 pub const GL_IMAGE_3D: GLenum = 0x904E;
1749 #[doc = "`GL_IMAGE_BINDING_ACCESS: GLenum = 0x8F3E`"]
1750 pub const GL_IMAGE_BINDING_ACCESS: GLenum = 0x8F3E;
1751 #[doc = "`GL_IMAGE_BINDING_FORMAT: GLenum = 0x906E`"]
1752 pub const GL_IMAGE_BINDING_FORMAT: GLenum = 0x906E;
1753 #[doc = "`GL_IMAGE_BINDING_LAYER: GLenum = 0x8F3D`"]
1754 pub const GL_IMAGE_BINDING_LAYER: GLenum = 0x8F3D;
1755 #[doc = "`GL_IMAGE_BINDING_LAYERED: GLenum = 0x8F3C`"]
1756 pub const GL_IMAGE_BINDING_LAYERED: GLenum = 0x8F3C;
1757 #[doc = "`GL_IMAGE_BINDING_LEVEL: GLenum = 0x8F3B`"]
1758 pub const GL_IMAGE_BINDING_LEVEL: GLenum = 0x8F3B;
1759 #[doc = "`GL_IMAGE_BINDING_NAME: GLenum = 0x8F3A`"]
1760 pub const GL_IMAGE_BINDING_NAME: GLenum = 0x8F3A;
1761 #[doc = "`GL_IMAGE_BUFFER: GLenum = 0x9051`"]
1762 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1763 pub const GL_IMAGE_BUFFER: GLenum = 0x9051;
1764 #[doc = "`GL_IMAGE_CLASS_10_10_10_2: GLenum = 0x82C3`"]
1765 pub const GL_IMAGE_CLASS_10_10_10_2: GLenum = 0x82C3;
1766 #[doc = "`GL_IMAGE_CLASS_11_11_10: GLenum = 0x82C2`"]
1767 pub const GL_IMAGE_CLASS_11_11_10: GLenum = 0x82C2;
1768 #[doc = "`GL_IMAGE_CLASS_1_X_16: GLenum = 0x82BE`"]
1769 pub const GL_IMAGE_CLASS_1_X_16: GLenum = 0x82BE;
1770 #[doc = "`GL_IMAGE_CLASS_1_X_32: GLenum = 0x82BB`"]
1771 pub const GL_IMAGE_CLASS_1_X_32: GLenum = 0x82BB;
1772 #[doc = "`GL_IMAGE_CLASS_1_X_8: GLenum = 0x82C1`"]
1773 pub const GL_IMAGE_CLASS_1_X_8: GLenum = 0x82C1;
1774 #[doc = "`GL_IMAGE_CLASS_2_X_16: GLenum = 0x82BD`"]
1775 pub const GL_IMAGE_CLASS_2_X_16: GLenum = 0x82BD;
1776 #[doc = "`GL_IMAGE_CLASS_2_X_32: GLenum = 0x82BA`"]
1777 pub const GL_IMAGE_CLASS_2_X_32: GLenum = 0x82BA;
1778 #[doc = "`GL_IMAGE_CLASS_2_X_8: GLenum = 0x82C0`"]
1779 pub const GL_IMAGE_CLASS_2_X_8: GLenum = 0x82C0;
1780 #[doc = "`GL_IMAGE_CLASS_4_X_16: GLenum = 0x82BC`"]
1781 pub const GL_IMAGE_CLASS_4_X_16: GLenum = 0x82BC;
1782 #[doc = "`GL_IMAGE_CLASS_4_X_32: GLenum = 0x82B9`"]
1783 pub const GL_IMAGE_CLASS_4_X_32: GLenum = 0x82B9;
1784 #[doc = "`GL_IMAGE_CLASS_4_X_8: GLenum = 0x82BF`"]
1785 pub const GL_IMAGE_CLASS_4_X_8: GLenum = 0x82BF;
1786 #[doc = "`GL_IMAGE_COMPATIBILITY_CLASS: GLenum = 0x82A8`"]
1787 #[doc = "* **Group:** InternalFormatPName"]
1788 pub const GL_IMAGE_COMPATIBILITY_CLASS: GLenum = 0x82A8;
1789 #[doc = "`GL_IMAGE_CUBE: GLenum = 0x9050`"]
1790 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1791 pub const GL_IMAGE_CUBE: GLenum = 0x9050;
1792 #[doc = "`GL_IMAGE_CUBE_MAP_ARRAY: GLenum = 0x9054`"]
1793 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1794 pub const GL_IMAGE_CUBE_MAP_ARRAY: GLenum = 0x9054;
1795 #[doc = "`GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS: GLenum = 0x90C9`"]
1796 pub const GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS: GLenum = 0x90C9;
1797 #[doc = "`GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE: GLenum = 0x90C8`"]
1798 pub const GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE: GLenum = 0x90C8;
1799 #[doc = "`GL_IMAGE_FORMAT_COMPATIBILITY_TYPE: GLenum = 0x90C7`"]
1800 #[doc = "* **Group:** InternalFormatPName"]
1801 pub const GL_IMAGE_FORMAT_COMPATIBILITY_TYPE: GLenum = 0x90C7;
1802 #[doc = "`GL_IMAGE_PIXEL_FORMAT: GLenum = 0x82A9`"]
1803 #[doc = "* **Group:** InternalFormatPName"]
1804 pub const GL_IMAGE_PIXEL_FORMAT: GLenum = 0x82A9;
1805 #[doc = "`GL_IMAGE_PIXEL_TYPE: GLenum = 0x82AA`"]
1806 #[doc = "* **Group:** InternalFormatPName"]
1807 pub const GL_IMAGE_PIXEL_TYPE: GLenum = 0x82AA;
1808 #[doc = "`GL_IMAGE_TEXEL_SIZE: GLenum = 0x82A7`"]
1809 #[doc = "* **Group:** InternalFormatPName"]
1810 pub const GL_IMAGE_TEXEL_SIZE: GLenum = 0x82A7;
1811 #[doc = "`GL_IMPLEMENTATION_COLOR_READ_FORMAT: GLenum = 0x8B9B`"]
1812 #[doc = "* **Groups:** GetFramebufferParameter, GetPName"]
1813 pub const GL_IMPLEMENTATION_COLOR_READ_FORMAT: GLenum = 0x8B9B;
1814 #[doc = "`GL_IMPLEMENTATION_COLOR_READ_TYPE: GLenum = 0x8B9A`"]
1815 #[doc = "* **Groups:** GetFramebufferParameter, GetPName"]
1816 pub const GL_IMPLEMENTATION_COLOR_READ_TYPE: GLenum = 0x8B9A;
1817 #[doc = "`GL_INCR: GLenum = 0x1E02`"]
1818 #[doc = "* **Group:** StencilOp"]
1819 pub const GL_INCR: GLenum = 0x1E02;
1820 #[doc = "`GL_INCR_WRAP: GLenum = 0x8507`"]
1821 #[doc = "* **Group:** StencilOp"]
1822 pub const GL_INCR_WRAP: GLenum = 0x8507;
1823 #[doc = "`GL_INFO_LOG_LENGTH: GLenum = 0x8B84`"]
1824 #[doc = "* **Groups:** ProgramPropertyARB, ShaderParameterName, PipelineParameterName"]
1825 pub const GL_INFO_LOG_LENGTH: GLenum = 0x8B84;
1826 #[doc = "`GL_INNOCENT_CONTEXT_RESET: GLenum = 0x8254`"]
1827 #[doc = "* **Group:** GraphicsResetStatus"]
1828 pub const GL_INNOCENT_CONTEXT_RESET: GLenum = 0x8254;
1829 #[doc = "`GL_INT: GLenum = 0x1404`"]
1830 #[doc = "* **Groups:** VertexAttribIType, SecondaryColorPointerTypeIBM, WeightPointerTypeARB, TangentPointerTypeEXT, BinormalPointerTypeEXT, IndexPointerType, ListNameType, NormalPointerType, PixelType, TexCoordPointerType, VertexPointerType, VertexAttribType, AttributeType, UniformType, VertexAttribPointerType, GlslTypeToken"]
1831 pub const GL_INT: GLenum = 0x1404;
1832 #[doc = "`GL_INTERLEAVED_ATTRIBS: GLenum = 0x8C8C`"]
1833 #[doc = "* **Group:** TransformFeedbackBufferMode"]
1834 pub const GL_INTERLEAVED_ATTRIBS: GLenum = 0x8C8C;
1835 #[doc = "`GL_INTERNALFORMAT_ALPHA_SIZE: GLenum = 0x8274`"]
1836 #[doc = "* **Group:** InternalFormatPName"]
1837 pub const GL_INTERNALFORMAT_ALPHA_SIZE: GLenum = 0x8274;
1838 #[doc = "`GL_INTERNALFORMAT_ALPHA_TYPE: GLenum = 0x827B`"]
1839 #[doc = "* **Group:** InternalFormatPName"]
1840 pub const GL_INTERNALFORMAT_ALPHA_TYPE: GLenum = 0x827B;
1841 #[doc = "`GL_INTERNALFORMAT_BLUE_SIZE: GLenum = 0x8273`"]
1842 #[doc = "* **Group:** InternalFormatPName"]
1843 pub const GL_INTERNALFORMAT_BLUE_SIZE: GLenum = 0x8273;
1844 #[doc = "`GL_INTERNALFORMAT_BLUE_TYPE: GLenum = 0x827A`"]
1845 #[doc = "* **Group:** InternalFormatPName"]
1846 pub const GL_INTERNALFORMAT_BLUE_TYPE: GLenum = 0x827A;
1847 #[doc = "`GL_INTERNALFORMAT_DEPTH_SIZE: GLenum = 0x8275`"]
1848 #[doc = "* **Group:** InternalFormatPName"]
1849 pub const GL_INTERNALFORMAT_DEPTH_SIZE: GLenum = 0x8275;
1850 #[doc = "`GL_INTERNALFORMAT_DEPTH_TYPE: GLenum = 0x827C`"]
1851 #[doc = "* **Group:** InternalFormatPName"]
1852 pub const GL_INTERNALFORMAT_DEPTH_TYPE: GLenum = 0x827C;
1853 #[doc = "`GL_INTERNALFORMAT_GREEN_SIZE: GLenum = 0x8272`"]
1854 #[doc = "* **Group:** InternalFormatPName"]
1855 pub const GL_INTERNALFORMAT_GREEN_SIZE: GLenum = 0x8272;
1856 #[doc = "`GL_INTERNALFORMAT_GREEN_TYPE: GLenum = 0x8279`"]
1857 #[doc = "* **Group:** InternalFormatPName"]
1858 pub const GL_INTERNALFORMAT_GREEN_TYPE: GLenum = 0x8279;
1859 #[doc = "`GL_INTERNALFORMAT_PREFERRED: GLenum = 0x8270`"]
1860 #[doc = "* **Group:** InternalFormatPName"]
1861 pub const GL_INTERNALFORMAT_PREFERRED: GLenum = 0x8270;
1862 #[doc = "`GL_INTERNALFORMAT_RED_SIZE: GLenum = 0x8271`"]
1863 #[doc = "* **Group:** InternalFormatPName"]
1864 pub const GL_INTERNALFORMAT_RED_SIZE: GLenum = 0x8271;
1865 #[doc = "`GL_INTERNALFORMAT_RED_TYPE: GLenum = 0x8278`"]
1866 #[doc = "* **Group:** InternalFormatPName"]
1867 pub const GL_INTERNALFORMAT_RED_TYPE: GLenum = 0x8278;
1868 #[doc = "`GL_INTERNALFORMAT_SHARED_SIZE: GLenum = 0x8277`"]
1869 #[doc = "* **Group:** InternalFormatPName"]
1870 pub const GL_INTERNALFORMAT_SHARED_SIZE: GLenum = 0x8277;
1871 #[doc = "`GL_INTERNALFORMAT_STENCIL_SIZE: GLenum = 0x8276`"]
1872 #[doc = "* **Group:** InternalFormatPName"]
1873 pub const GL_INTERNALFORMAT_STENCIL_SIZE: GLenum = 0x8276;
1874 #[doc = "`GL_INTERNALFORMAT_STENCIL_TYPE: GLenum = 0x827D`"]
1875 #[doc = "* **Group:** InternalFormatPName"]
1876 pub const GL_INTERNALFORMAT_STENCIL_TYPE: GLenum = 0x827D;
1877 #[doc = "`GL_INTERNALFORMAT_SUPPORTED: GLenum = 0x826F`"]
1878 #[doc = "* **Group:** InternalFormatPName"]
1879 pub const GL_INTERNALFORMAT_SUPPORTED: GLenum = 0x826F;
1880 #[doc = "`GL_INT_2_10_10_10_REV: GLenum = 0x8D9F`"]
1881 #[doc = "* **Groups:** VertexAttribPointerType, VertexAttribType"]
1882 pub const GL_INT_2_10_10_10_REV: GLenum = 0x8D9F;
1883 #[doc = "`GL_INT_IMAGE_1D: GLenum = 0x9057`"]
1884 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1885 pub const GL_INT_IMAGE_1D: GLenum = 0x9057;
1886 #[doc = "`GL_INT_IMAGE_1D_ARRAY: GLenum = 0x905D`"]
1887 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1888 pub const GL_INT_IMAGE_1D_ARRAY: GLenum = 0x905D;
1889 #[doc = "`GL_INT_IMAGE_2D: GLenum = 0x9058`"]
1890 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1891 pub const GL_INT_IMAGE_2D: GLenum = 0x9058;
1892 #[doc = "`GL_INT_IMAGE_2D_ARRAY: GLenum = 0x905E`"]
1893 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1894 pub const GL_INT_IMAGE_2D_ARRAY: GLenum = 0x905E;
1895 #[doc = "`GL_INT_IMAGE_2D_MULTISAMPLE: GLenum = 0x9060`"]
1896 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1897 pub const GL_INT_IMAGE_2D_MULTISAMPLE: GLenum = 0x9060;
1898 #[doc = "`GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9061`"]
1899 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1900 pub const GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9061;
1901 #[doc = "`GL_INT_IMAGE_2D_RECT: GLenum = 0x905A`"]
1902 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1903 pub const GL_INT_IMAGE_2D_RECT: GLenum = 0x905A;
1904 #[doc = "`GL_INT_IMAGE_3D: GLenum = 0x9059`"]
1905 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1906 pub const GL_INT_IMAGE_3D: GLenum = 0x9059;
1907 #[doc = "`GL_INT_IMAGE_BUFFER: GLenum = 0x905C`"]
1908 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1909 pub const GL_INT_IMAGE_BUFFER: GLenum = 0x905C;
1910 #[doc = "`GL_INT_IMAGE_CUBE: GLenum = 0x905B`"]
1911 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1912 pub const GL_INT_IMAGE_CUBE: GLenum = 0x905B;
1913 #[doc = "`GL_INT_IMAGE_CUBE_MAP_ARRAY: GLenum = 0x905F`"]
1914 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
1915 pub const GL_INT_IMAGE_CUBE_MAP_ARRAY: GLenum = 0x905F;
1916 #[doc = "`GL_INT_SAMPLER_1D: GLenum = 0x8DC9`"]
1917 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1918 pub const GL_INT_SAMPLER_1D: GLenum = 0x8DC9;
1919 #[doc = "`GL_INT_SAMPLER_1D_ARRAY: GLenum = 0x8DCE`"]
1920 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1921 pub const GL_INT_SAMPLER_1D_ARRAY: GLenum = 0x8DCE;
1922 #[doc = "`GL_INT_SAMPLER_2D: GLenum = 0x8DCA`"]
1923 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1924 pub const GL_INT_SAMPLER_2D: GLenum = 0x8DCA;
1925 #[doc = "`GL_INT_SAMPLER_2D_ARRAY: GLenum = 0x8DCF`"]
1926 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1927 pub const GL_INT_SAMPLER_2D_ARRAY: GLenum = 0x8DCF;
1928 #[doc = "`GL_INT_SAMPLER_2D_MULTISAMPLE: GLenum = 0x9109`"]
1929 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1930 pub const GL_INT_SAMPLER_2D_MULTISAMPLE: GLenum = 0x9109;
1931 #[doc = "`GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: GLenum = 0x910C`"]
1932 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1933 pub const GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: GLenum = 0x910C;
1934 #[doc = "`GL_INT_SAMPLER_2D_RECT: GLenum = 0x8DCD`"]
1935 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1936 pub const GL_INT_SAMPLER_2D_RECT: GLenum = 0x8DCD;
1937 #[doc = "`GL_INT_SAMPLER_3D: GLenum = 0x8DCB`"]
1938 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1939 pub const GL_INT_SAMPLER_3D: GLenum = 0x8DCB;
1940 #[doc = "`GL_INT_SAMPLER_BUFFER: GLenum = 0x8DD0`"]
1941 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1942 pub const GL_INT_SAMPLER_BUFFER: GLenum = 0x8DD0;
1943 #[doc = "`GL_INT_SAMPLER_CUBE: GLenum = 0x8DCC`"]
1944 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1945 pub const GL_INT_SAMPLER_CUBE: GLenum = 0x8DCC;
1946 #[doc = "`GL_INT_SAMPLER_CUBE_MAP_ARRAY: GLenum = 0x900E`"]
1947 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1948 pub const GL_INT_SAMPLER_CUBE_MAP_ARRAY: GLenum = 0x900E;
1949 #[doc = "`GL_INT_VEC2: GLenum = 0x8B53`"]
1950 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1951 pub const GL_INT_VEC2: GLenum = 0x8B53;
1952 #[doc = "`GL_INT_VEC3: GLenum = 0x8B54`"]
1953 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1954 pub const GL_INT_VEC3: GLenum = 0x8B54;
1955 #[doc = "`GL_INT_VEC4: GLenum = 0x8B55`"]
1956 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
1957 pub const GL_INT_VEC4: GLenum = 0x8B55;
1958 #[doc = "`GL_INVALID_ENUM: GLenum = 0x0500`"]
1959 #[doc = "* **Group:** ErrorCode"]
1960 pub const GL_INVALID_ENUM: GLenum = 0x0500;
1961 #[doc = "`GL_INVALID_FRAMEBUFFER_OPERATION: GLenum = 0x0506`"]
1962 #[doc = "* **Group:** ErrorCode"]
1963 pub const GL_INVALID_FRAMEBUFFER_OPERATION: GLenum = 0x0506;
1964 #[doc = "`GL_INVALID_INDEX: GLenum = 0xFFFFFFFF`"]
1965 pub const GL_INVALID_INDEX: GLenum = 0xFFFFFFFF;
1966 #[doc = "`GL_INVALID_OPERATION: GLenum = 0x0502`"]
1967 #[doc = "* **Group:** ErrorCode"]
1968 pub const GL_INVALID_OPERATION: GLenum = 0x0502;
1969 #[doc = "`GL_INVALID_VALUE: GLenum = 0x0501`"]
1970 #[doc = "* **Group:** ErrorCode"]
1971 pub const GL_INVALID_VALUE: GLenum = 0x0501;
1972 #[doc = "`GL_INVERT: GLenum = 0x150A`"]
1973 #[doc = "* **Groups:** PathFillMode, LogicOp, StencilOp"]
1974 pub const GL_INVERT: GLenum = 0x150A;
1975 #[doc = "`GL_ISOLINES: GLenum = 0x8E7A`"]
1976 pub const GL_ISOLINES: GLenum = 0x8E7A;
1977 #[doc = "`GL_IS_PER_PATCH: GLenum = 0x92E7`"]
1978 #[doc = "* **Group:** ProgramResourceProperty"]
1979 pub const GL_IS_PER_PATCH: GLenum = 0x92E7;
1980 #[doc = "`GL_IS_ROW_MAJOR: GLenum = 0x9300`"]
1981 #[doc = "* **Group:** ProgramResourceProperty"]
1982 pub const GL_IS_ROW_MAJOR: GLenum = 0x9300;
1983 #[doc = "`GL_KEEP: GLenum = 0x1E00`"]
1984 #[doc = "* **Group:** StencilOp"]
1985 pub const GL_KEEP: GLenum = 0x1E00;
1986 #[doc = "`GL_LAST_VERTEX_CONVENTION: GLenum = 0x8E4E`"]
1987 #[doc = "* **Group:** VertexProvokingMode"]
1988 pub const GL_LAST_VERTEX_CONVENTION: GLenum = 0x8E4E;
1989 #[doc = "`GL_LAYER_PROVOKING_VERTEX: GLenum = 0x825E`"]
1990 #[doc = "* **Group:** GetPName"]
1991 pub const GL_LAYER_PROVOKING_VERTEX: GLenum = 0x825E;
1992 #[doc = "`GL_LEFT: GLenum = 0x0406`"]
1993 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode"]
1994 pub const GL_LEFT: GLenum = 0x0406;
1995 #[doc = "`GL_LEQUAL: GLenum = 0x0203`"]
1996 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
1997 pub const GL_LEQUAL: GLenum = 0x0203;
1998 #[doc = "`GL_LESS: GLenum = 0x0201`"]
1999 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
2000 pub const GL_LESS: GLenum = 0x0201;
2001 #[doc = "`GL_LIGHTEN: GLenum = 0x9298`"]
2002 pub const GL_LIGHTEN: GLenum = 0x9298;
2003 #[doc = "`GL_LINE: GLenum = 0x1B01`"]
2004 #[doc = "* **Groups:** PolygonMode, MeshMode1, MeshMode2"]
2005 pub const GL_LINE: GLenum = 0x1B01;
2006 #[doc = "`GL_LINEAR: GLenum = 0x2601`"]
2007 #[doc = "* **Groups:** BlitFramebufferFilter, FogMode, TextureMagFilter, TextureMinFilter"]
2008 pub const GL_LINEAR: GLenum = 0x2601;
2009 #[doc = "`GL_LINEAR_MIPMAP_LINEAR: GLenum = 0x2703`"]
2010 #[doc = "* **Groups:** TextureWrapMode, TextureMinFilter"]
2011 pub const GL_LINEAR_MIPMAP_LINEAR: GLenum = 0x2703;
2012 #[doc = "`GL_LINEAR_MIPMAP_NEAREST: GLenum = 0x2701`"]
2013 #[doc = "* **Group:** TextureMinFilter"]
2014 pub const GL_LINEAR_MIPMAP_NEAREST: GLenum = 0x2701;
2015 #[doc = "`GL_LINES: GLenum = 0x0001`"]
2016 #[doc = "* **Group:** PrimitiveType"]
2017 pub const GL_LINES: GLenum = 0x0001;
2018 #[doc = "`GL_LINES_ADJACENCY: GLenum = 0x000A`"]
2019 #[doc = "* **Group:** PrimitiveType"]
2020 pub const GL_LINES_ADJACENCY: GLenum = 0x000A;
2021 #[doc = "`GL_LINE_LOOP: GLenum = 0x0002`"]
2022 #[doc = "* **Group:** PrimitiveType"]
2023 pub const GL_LINE_LOOP: GLenum = 0x0002;
2024 #[doc = "`GL_LINE_SMOOTH: GLenum = 0x0B20`"]
2025 #[doc = "* **Groups:** GetPName, EnableCap"]
2026 pub const GL_LINE_SMOOTH: GLenum = 0x0B20;
2027 #[doc = "`GL_LINE_SMOOTH_HINT: GLenum = 0x0C52`"]
2028 #[doc = "* **Groups:** HintTarget, GetPName"]
2029 pub const GL_LINE_SMOOTH_HINT: GLenum = 0x0C52;
2030 #[doc = "`GL_LINE_STRIP: GLenum = 0x0003`"]
2031 #[doc = "* **Group:** PrimitiveType"]
2032 pub const GL_LINE_STRIP: GLenum = 0x0003;
2033 #[doc = "`GL_LINE_STRIP_ADJACENCY: GLenum = 0x000B`"]
2034 #[doc = "* **Group:** PrimitiveType"]
2035 pub const GL_LINE_STRIP_ADJACENCY: GLenum = 0x000B;
2036 #[doc = "`GL_LINE_WIDTH: GLenum = 0x0B21`"]
2037 #[doc = "* **Group:** GetPName"]
2038 pub const GL_LINE_WIDTH: GLenum = 0x0B21;
2039 #[doc = "`GL_LINE_WIDTH_GRANULARITY: GLenum = 0x0B23`"]
2040 #[doc = "* **Group:** GetPName"]
2041 pub const GL_LINE_WIDTH_GRANULARITY: GLenum = 0x0B23;
2042 #[doc = "`GL_LINE_WIDTH_RANGE: GLenum = 0x0B22`"]
2043 #[doc = "* **Group:** GetPName"]
2044 pub const GL_LINE_WIDTH_RANGE: GLenum = 0x0B22;
2045 #[doc = "`GL_LINK_STATUS: GLenum = 0x8B82`"]
2046 #[doc = "* **Group:** ProgramPropertyARB"]
2047 pub const GL_LINK_STATUS: GLenum = 0x8B82;
2048 #[doc = "`GL_LOCATION: GLenum = 0x930E`"]
2049 #[doc = "* **Group:** ProgramResourceProperty"]
2050 pub const GL_LOCATION: GLenum = 0x930E;
2051 #[doc = "`GL_LOCATION_COMPONENT: GLenum = 0x934A`"]
2052 #[doc = "* **Group:** ProgramResourceProperty"]
2053 pub const GL_LOCATION_COMPONENT: GLenum = 0x934A;
2054 #[doc = "`GL_LOCATION_INDEX: GLenum = 0x930F`"]
2055 #[doc = "* **Group:** ProgramResourceProperty"]
2056 pub const GL_LOCATION_INDEX: GLenum = 0x930F;
2057 #[doc = "`GL_LOGIC_OP_MODE: GLenum = 0x0BF0`"]
2058 #[doc = "* **Group:** GetPName"]
2059 pub const GL_LOGIC_OP_MODE: GLenum = 0x0BF0;
2060 #[doc = "`GL_LOSE_CONTEXT_ON_RESET: GLenum = 0x8252`"]
2061 pub const GL_LOSE_CONTEXT_ON_RESET: GLenum = 0x8252;
2062 #[doc = "`GL_LOWER_LEFT: GLenum = 0x8CA1`"]
2063 #[doc = "* **Group:** ClipControlOrigin"]
2064 pub const GL_LOWER_LEFT: GLenum = 0x8CA1;
2065 #[doc = "`GL_LOW_FLOAT: GLenum = 0x8DF0`"]
2066 #[doc = "* **Group:** PrecisionType"]
2067 pub const GL_LOW_FLOAT: GLenum = 0x8DF0;
2068 #[doc = "`GL_LOW_INT: GLenum = 0x8DF3`"]
2069 #[doc = "* **Group:** PrecisionType"]
2070 pub const GL_LOW_INT: GLenum = 0x8DF3;
2071 #[doc = "`GL_LUMINANCE: GLenum = 0x1909`"]
2072 #[doc = "* **Groups:** PixelTexGenMode, PathColorFormat, PixelFormat"]
2073 pub const GL_LUMINANCE: GLenum = 0x1909;
2074 #[doc = "`GL_LUMINANCE_ALPHA: GLenum = 0x190A`"]
2075 #[doc = "* **Groups:** PixelTexGenMode, PathColorFormat, PixelFormat"]
2076 pub const GL_LUMINANCE_ALPHA: GLenum = 0x190A;
2077 #[doc = "`GL_MAJOR_VERSION: GLenum = 0x821B`"]
2078 #[doc = "* **Group:** GetPName"]
2079 pub const GL_MAJOR_VERSION: GLenum = 0x821B;
2080 #[doc = "`GL_MANUAL_GENERATE_MIPMAP: GLenum = 0x8294`"]
2081 pub const GL_MANUAL_GENERATE_MIPMAP: GLenum = 0x8294;
2082 #[doc = "`GL_MAP_COHERENT_BIT: GLbitfield = 0x0080`"]
2083 #[doc = "* **Groups:** MapBufferAccessMask, BufferStorageMask"]
2084 pub const GL_MAP_COHERENT_BIT: GLbitfield = 0x0080;
2085 #[doc = "`GL_MAP_COHERENT_BIT_EXT: GLbitfield = 0x0080`"]
2086 #[doc = "* **Groups:** MapBufferAccessMask, BufferStorageMask"]
2087 pub const GL_MAP_COHERENT_BIT_EXT: GLbitfield = 0x0080;
2088 #[doc = "`GL_MAP_FLUSH_EXPLICIT_BIT: GLbitfield = 0x0010`"]
2089 #[doc = "* **Group:** MapBufferAccessMask"]
2090 pub const GL_MAP_FLUSH_EXPLICIT_BIT: GLbitfield = 0x0010;
2091 #[doc = "`GL_MAP_INVALIDATE_BUFFER_BIT: GLbitfield = 0x0008`"]
2092 #[doc = "* **Group:** MapBufferAccessMask"]
2093 pub const GL_MAP_INVALIDATE_BUFFER_BIT: GLbitfield = 0x0008;
2094 #[doc = "`GL_MAP_INVALIDATE_RANGE_BIT: GLbitfield = 0x0004`"]
2095 #[doc = "* **Group:** MapBufferAccessMask"]
2096 pub const GL_MAP_INVALIDATE_RANGE_BIT: GLbitfield = 0x0004;
2097 #[doc = "`GL_MAP_PERSISTENT_BIT: GLbitfield = 0x0040`"]
2098 #[doc = "* **Groups:** MapBufferAccessMask, BufferStorageMask"]
2099 pub const GL_MAP_PERSISTENT_BIT: GLbitfield = 0x0040;
2100 #[doc = "`GL_MAP_PERSISTENT_BIT_EXT: GLbitfield = 0x0040`"]
2101 #[doc = "* **Groups:** MapBufferAccessMask, BufferStorageMask"]
2102 pub const GL_MAP_PERSISTENT_BIT_EXT: GLbitfield = 0x0040;
2103 #[doc = "`GL_MAP_READ_BIT: GLbitfield = 0x0001`"]
2104 #[doc = "* **Groups:** MapBufferAccessMask, BufferStorageMask"]
2105 pub const GL_MAP_READ_BIT: GLbitfield = 0x0001;
2106 #[doc = "`GL_MAP_UNSYNCHRONIZED_BIT: GLbitfield = 0x0020`"]
2107 #[doc = "* **Group:** MapBufferAccessMask"]
2108 pub const GL_MAP_UNSYNCHRONIZED_BIT: GLbitfield = 0x0020;
2109 #[doc = "`GL_MAP_WRITE_BIT: GLbitfield = 0x0002`"]
2110 #[doc = "* **Groups:** MapBufferAccessMask, BufferStorageMask"]
2111 pub const GL_MAP_WRITE_BIT: GLbitfield = 0x0002;
2112 #[doc = "`GL_MATRIX_STRIDE: GLenum = 0x92FF`"]
2113 #[doc = "* **Group:** ProgramResourceProperty"]
2114 pub const GL_MATRIX_STRIDE: GLenum = 0x92FF;
2115 #[doc = "`GL_MAX: GLenum = 0x8008`"]
2116 #[doc = "* **Group:** BlendEquationModeEXT"]
2117 pub const GL_MAX: GLenum = 0x8008;
2118 #[doc = "`GL_MAX_3D_TEXTURE_SIZE: GLenum = 0x8073`"]
2119 #[doc = "* **Group:** GetPName"]
2120 pub const GL_MAX_3D_TEXTURE_SIZE: GLenum = 0x8073;
2121 #[doc = "`GL_MAX_ARRAY_TEXTURE_LAYERS: GLenum = 0x88FF`"]
2122 #[doc = "* **Group:** GetPName"]
2123 pub const GL_MAX_ARRAY_TEXTURE_LAYERS: GLenum = 0x88FF;
2124 #[doc = "`GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS: GLenum = 0x92DC`"]
2125 pub const GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS: GLenum = 0x92DC;
2126 #[doc = "`GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE: GLenum = 0x92D8`"]
2127 pub const GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE: GLenum = 0x92D8;
2128 #[doc = "`GL_MAX_CLIP_DISTANCES: GLenum = 0x0D32`"]
2129 #[doc = "* **Group:** GetPName"]
2130 #[doc = "* **Alias Of:** `GL_MAX_CLIP_PLANES`"]
2131 pub const GL_MAX_CLIP_DISTANCES: GLenum = 0x0D32;
2132 #[doc = "`GL_MAX_COLOR_ATTACHMENTS: GLenum = 0x8CDF`"]
2133 pub const GL_MAX_COLOR_ATTACHMENTS: GLenum = 0x8CDF;
2134 #[doc = "`GL_MAX_COLOR_TEXTURE_SAMPLES: GLenum = 0x910E`"]
2135 #[doc = "* **Group:** GetPName"]
2136 pub const GL_MAX_COLOR_TEXTURE_SAMPLES: GLenum = 0x910E;
2137 #[doc = "`GL_MAX_COMBINED_ATOMIC_COUNTERS: GLenum = 0x92D7`"]
2138 #[doc = "* **Group:** GetPName"]
2139 pub const GL_MAX_COMBINED_ATOMIC_COUNTERS: GLenum = 0x92D7;
2140 #[doc = "`GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92D1`"]
2141 pub const GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92D1;
2142 #[doc = "`GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES: GLenum = 0x82FA`"]
2143 pub const GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES: GLenum = 0x82FA;
2144 #[doc = "`GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS: GLenum = 0x8266`"]
2145 #[doc = "* **Group:** GetPName"]
2146 pub const GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS: GLenum = 0x8266;
2147 #[doc = "`GL_MAX_COMBINED_DIMENSIONS: GLenum = 0x8282`"]
2148 pub const GL_MAX_COMBINED_DIMENSIONS: GLenum = 0x8282;
2149 #[doc = "`GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: GLenum = 0x8A33`"]
2150 #[doc = "* **Group:** GetPName"]
2151 pub const GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: GLenum = 0x8A33;
2152 #[doc = "`GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS: GLenum = 0x8A32`"]
2153 #[doc = "* **Group:** GetPName"]
2154 pub const GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS: GLenum = 0x8A32;
2155 #[doc = "`GL_MAX_COMBINED_IMAGE_UNIFORMS: GLenum = 0x90CF`"]
2156 pub const GL_MAX_COMBINED_IMAGE_UNIFORMS: GLenum = 0x90CF;
2157 #[doc = "`GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS: GLenum = 0x8F39`"]
2158 pub const GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS: GLenum = 0x8F39;
2159 #[doc = "`GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES: GLenum = 0x8F39`"]
2160 #[doc = "* **Alias Of:** `GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS`"]
2161 pub const GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES: GLenum = 0x8F39;
2162 #[doc = "`GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS: GLenum = 0x90DC`"]
2163 #[doc = "* **Group:** GetPName"]
2164 pub const GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS: GLenum = 0x90DC;
2165 #[doc = "`GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS: GLenum = 0x8E1E`"]
2166 pub const GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS: GLenum = 0x8E1E;
2167 #[doc = "`GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS: GLenum = 0x8E1F`"]
2168 pub const GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS: GLenum = 0x8E1F;
2169 #[doc = "`GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum = 0x8B4D`"]
2170 #[doc = "* **Group:** GetPName"]
2171 pub const GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum = 0x8B4D;
2172 #[doc = "`GL_MAX_COMBINED_UNIFORM_BLOCKS: GLenum = 0x8A2E`"]
2173 #[doc = "* **Group:** GetPName"]
2174 pub const GL_MAX_COMBINED_UNIFORM_BLOCKS: GLenum = 0x8A2E;
2175 #[doc = "`GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: GLenum = 0x8A31`"]
2176 #[doc = "* **Group:** GetPName"]
2177 pub const GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: GLenum = 0x8A31;
2178 #[doc = "`GL_MAX_COMPUTE_ATOMIC_COUNTERS: GLenum = 0x8265`"]
2179 #[doc = "* **Group:** GetPName"]
2180 pub const GL_MAX_COMPUTE_ATOMIC_COUNTERS: GLenum = 0x8265;
2181 #[doc = "`GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS: GLenum = 0x8264`"]
2182 #[doc = "* **Group:** GetPName"]
2183 pub const GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS: GLenum = 0x8264;
2184 #[doc = "`GL_MAX_COMPUTE_IMAGE_UNIFORMS: GLenum = 0x91BD`"]
2185 pub const GL_MAX_COMPUTE_IMAGE_UNIFORMS: GLenum = 0x91BD;
2186 #[doc = "`GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS: GLenum = 0x90DB`"]
2187 #[doc = "* **Group:** GetPName"]
2188 pub const GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS: GLenum = 0x90DB;
2189 #[doc = "`GL_MAX_COMPUTE_SHARED_MEMORY_SIZE: GLenum = 0x8262`"]
2190 pub const GL_MAX_COMPUTE_SHARED_MEMORY_SIZE: GLenum = 0x8262;
2191 #[doc = "`GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS: GLenum = 0x91BC`"]
2192 #[doc = "* **Group:** GetPName"]
2193 pub const GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS: GLenum = 0x91BC;
2194 #[doc = "`GL_MAX_COMPUTE_UNIFORM_BLOCKS: GLenum = 0x91BB`"]
2195 #[doc = "* **Group:** GetPName"]
2196 pub const GL_MAX_COMPUTE_UNIFORM_BLOCKS: GLenum = 0x91BB;
2197 #[doc = "`GL_MAX_COMPUTE_UNIFORM_COMPONENTS: GLenum = 0x8263`"]
2198 #[doc = "* **Group:** GetPName"]
2199 pub const GL_MAX_COMPUTE_UNIFORM_COMPONENTS: GLenum = 0x8263;
2200 #[doc = "`GL_MAX_COMPUTE_WORK_GROUP_COUNT: GLenum = 0x91BE`"]
2201 #[doc = "* **Group:** GetPName"]
2202 pub const GL_MAX_COMPUTE_WORK_GROUP_COUNT: GLenum = 0x91BE;
2203 #[doc = "`GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS: GLenum = 0x90EB`"]
2204 #[doc = "* **Group:** GetPName"]
2205 pub const GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS: GLenum = 0x90EB;
2206 #[doc = "`GL_MAX_COMPUTE_WORK_GROUP_SIZE: GLenum = 0x91BF`"]
2207 #[doc = "* **Group:** GetPName"]
2208 pub const GL_MAX_COMPUTE_WORK_GROUP_SIZE: GLenum = 0x91BF;
2209 #[doc = "`GL_MAX_CUBE_MAP_TEXTURE_SIZE: GLenum = 0x851C`"]
2210 #[doc = "* **Group:** GetPName"]
2211 pub const GL_MAX_CUBE_MAP_TEXTURE_SIZE: GLenum = 0x851C;
2212 #[doc = "`GL_MAX_CULL_DISTANCES: GLenum = 0x82F9`"]
2213 pub const GL_MAX_CULL_DISTANCES: GLenum = 0x82F9;
2214 #[doc = "`GL_MAX_DEBUG_GROUP_STACK_DEPTH: GLenum = 0x826C`"]
2215 #[doc = "* **Group:** GetPName"]
2216 pub const GL_MAX_DEBUG_GROUP_STACK_DEPTH: GLenum = 0x826C;
2217 #[doc = "`GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR: GLenum = 0x826C`"]
2218 pub const GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR: GLenum = 0x826C;
2219 #[doc = "`GL_MAX_DEBUG_LOGGED_MESSAGES: GLenum = 0x9144`"]
2220 pub const GL_MAX_DEBUG_LOGGED_MESSAGES: GLenum = 0x9144;
2221 #[doc = "`GL_MAX_DEBUG_LOGGED_MESSAGES_ARB: GLenum = 0x9144`"]
2222 pub const GL_MAX_DEBUG_LOGGED_MESSAGES_ARB: GLenum = 0x9144;
2223 #[doc = "`GL_MAX_DEBUG_LOGGED_MESSAGES_KHR: GLenum = 0x9144`"]
2224 pub const GL_MAX_DEBUG_LOGGED_MESSAGES_KHR: GLenum = 0x9144;
2225 #[doc = "`GL_MAX_DEBUG_MESSAGE_LENGTH: GLenum = 0x9143`"]
2226 pub const GL_MAX_DEBUG_MESSAGE_LENGTH: GLenum = 0x9143;
2227 #[doc = "`GL_MAX_DEBUG_MESSAGE_LENGTH_ARB: GLenum = 0x9143`"]
2228 pub const GL_MAX_DEBUG_MESSAGE_LENGTH_ARB: GLenum = 0x9143;
2229 #[doc = "`GL_MAX_DEBUG_MESSAGE_LENGTH_KHR: GLenum = 0x9143`"]
2230 pub const GL_MAX_DEBUG_MESSAGE_LENGTH_KHR: GLenum = 0x9143;
2231 #[doc = "`GL_MAX_DEPTH: GLenum = 0x8280`"]
2232 #[doc = "* **Group:** InternalFormatPName"]
2233 pub const GL_MAX_DEPTH: GLenum = 0x8280;
2234 #[doc = "`GL_MAX_DEPTH_TEXTURE_SAMPLES: GLenum = 0x910F`"]
2235 #[doc = "* **Group:** GetPName"]
2236 pub const GL_MAX_DEPTH_TEXTURE_SAMPLES: GLenum = 0x910F;
2237 #[doc = "`GL_MAX_DRAW_BUFFERS: GLenum = 0x8824`"]
2238 #[doc = "* **Group:** GetPName"]
2239 pub const GL_MAX_DRAW_BUFFERS: GLenum = 0x8824;
2240 #[doc = "`GL_MAX_DUAL_SOURCE_DRAW_BUFFERS: GLenum = 0x88FC`"]
2241 #[doc = "* **Group:** GetPName"]
2242 pub const GL_MAX_DUAL_SOURCE_DRAW_BUFFERS: GLenum = 0x88FC;
2243 #[doc = "`GL_MAX_ELEMENTS_INDICES: GLenum = 0x80E9`"]
2244 #[doc = "* **Group:** GetPName"]
2245 pub const GL_MAX_ELEMENTS_INDICES: GLenum = 0x80E9;
2246 #[doc = "`GL_MAX_ELEMENTS_VERTICES: GLenum = 0x80E8`"]
2247 #[doc = "* **Group:** GetPName"]
2248 pub const GL_MAX_ELEMENTS_VERTICES: GLenum = 0x80E8;
2249 #[doc = "`GL_MAX_ELEMENT_INDEX: GLenum = 0x8D6B`"]
2250 #[doc = "* **Group:** GetPName"]
2251 pub const GL_MAX_ELEMENT_INDEX: GLenum = 0x8D6B;
2252 #[doc = "`GL_MAX_FRAGMENT_ATOMIC_COUNTERS: GLenum = 0x92D6`"]
2253 #[doc = "* **Group:** GetPName"]
2254 pub const GL_MAX_FRAGMENT_ATOMIC_COUNTERS: GLenum = 0x92D6;
2255 #[doc = "`GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92D0`"]
2256 pub const GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92D0;
2257 #[doc = "`GL_MAX_FRAGMENT_IMAGE_UNIFORMS: GLenum = 0x90CE`"]
2258 pub const GL_MAX_FRAGMENT_IMAGE_UNIFORMS: GLenum = 0x90CE;
2259 #[doc = "`GL_MAX_FRAGMENT_INPUT_COMPONENTS: GLenum = 0x9125`"]
2260 #[doc = "* **Group:** GetPName"]
2261 pub const GL_MAX_FRAGMENT_INPUT_COMPONENTS: GLenum = 0x9125;
2262 #[doc = "`GL_MAX_FRAGMENT_INTERPOLATION_OFFSET: GLenum = 0x8E5C`"]
2263 pub const GL_MAX_FRAGMENT_INTERPOLATION_OFFSET: GLenum = 0x8E5C;
2264 #[doc = "`GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS: GLenum = 0x90DA`"]
2265 #[doc = "* **Group:** GetPName"]
2266 pub const GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS: GLenum = 0x90DA;
2267 #[doc = "`GL_MAX_FRAGMENT_UNIFORM_BLOCKS: GLenum = 0x8A2D`"]
2268 #[doc = "* **Group:** GetPName"]
2269 pub const GL_MAX_FRAGMENT_UNIFORM_BLOCKS: GLenum = 0x8A2D;
2270 #[doc = "`GL_MAX_FRAGMENT_UNIFORM_COMPONENTS: GLenum = 0x8B49`"]
2271 #[doc = "* **Group:** GetPName"]
2272 pub const GL_MAX_FRAGMENT_UNIFORM_COMPONENTS: GLenum = 0x8B49;
2273 #[doc = "`GL_MAX_FRAGMENT_UNIFORM_VECTORS: GLenum = 0x8DFD`"]
2274 #[doc = "* **Group:** GetPName"]
2275 pub const GL_MAX_FRAGMENT_UNIFORM_VECTORS: GLenum = 0x8DFD;
2276 #[doc = "`GL_MAX_FRAMEBUFFER_HEIGHT: GLenum = 0x9316`"]
2277 #[doc = "* **Group:** GetPName"]
2278 pub const GL_MAX_FRAMEBUFFER_HEIGHT: GLenum = 0x9316;
2279 #[doc = "`GL_MAX_FRAMEBUFFER_LAYERS: GLenum = 0x9317`"]
2280 #[doc = "* **Group:** GetPName"]
2281 pub const GL_MAX_FRAMEBUFFER_LAYERS: GLenum = 0x9317;
2282 #[doc = "`GL_MAX_FRAMEBUFFER_SAMPLES: GLenum = 0x9318`"]
2283 #[doc = "* **Group:** GetPName"]
2284 pub const GL_MAX_FRAMEBUFFER_SAMPLES: GLenum = 0x9318;
2285 #[doc = "`GL_MAX_FRAMEBUFFER_WIDTH: GLenum = 0x9315`"]
2286 #[doc = "* **Group:** GetPName"]
2287 pub const GL_MAX_FRAMEBUFFER_WIDTH: GLenum = 0x9315;
2288 #[doc = "`GL_MAX_GEOMETRY_ATOMIC_COUNTERS: GLenum = 0x92D5`"]
2289 #[doc = "* **Group:** GetPName"]
2290 pub const GL_MAX_GEOMETRY_ATOMIC_COUNTERS: GLenum = 0x92D5;
2291 #[doc = "`GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CF`"]
2292 pub const GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CF;
2293 #[doc = "`GL_MAX_GEOMETRY_IMAGE_UNIFORMS: GLenum = 0x90CD`"]
2294 pub const GL_MAX_GEOMETRY_IMAGE_UNIFORMS: GLenum = 0x90CD;
2295 #[doc = "`GL_MAX_GEOMETRY_INPUT_COMPONENTS: GLenum = 0x9123`"]
2296 #[doc = "* **Group:** GetPName"]
2297 pub const GL_MAX_GEOMETRY_INPUT_COMPONENTS: GLenum = 0x9123;
2298 #[doc = "`GL_MAX_GEOMETRY_OUTPUT_COMPONENTS: GLenum = 0x9124`"]
2299 #[doc = "* **Group:** GetPName"]
2300 pub const GL_MAX_GEOMETRY_OUTPUT_COMPONENTS: GLenum = 0x9124;
2301 #[doc = "`GL_MAX_GEOMETRY_OUTPUT_VERTICES: GLenum = 0x8DE0`"]
2302 pub const GL_MAX_GEOMETRY_OUTPUT_VERTICES: GLenum = 0x8DE0;
2303 #[doc = "`GL_MAX_GEOMETRY_SHADER_INVOCATIONS: GLenum = 0x8E5A`"]
2304 pub const GL_MAX_GEOMETRY_SHADER_INVOCATIONS: GLenum = 0x8E5A;
2305 #[doc = "`GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS: GLenum = 0x90D7`"]
2306 #[doc = "* **Group:** GetPName"]
2307 pub const GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS: GLenum = 0x90D7;
2308 #[doc = "`GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS: GLenum = 0x8C29`"]
2309 #[doc = "* **Group:** GetPName"]
2310 pub const GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS: GLenum = 0x8C29;
2311 #[doc = "`GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS: GLenum = 0x8DE1`"]
2312 pub const GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS: GLenum = 0x8DE1;
2313 #[doc = "`GL_MAX_GEOMETRY_UNIFORM_BLOCKS: GLenum = 0x8A2C`"]
2314 #[doc = "* **Group:** GetPName"]
2315 pub const GL_MAX_GEOMETRY_UNIFORM_BLOCKS: GLenum = 0x8A2C;
2316 #[doc = "`GL_MAX_GEOMETRY_UNIFORM_COMPONENTS: GLenum = 0x8DDF`"]
2317 #[doc = "* **Group:** GetPName"]
2318 pub const GL_MAX_GEOMETRY_UNIFORM_COMPONENTS: GLenum = 0x8DDF;
2319 #[doc = "`GL_MAX_HEIGHT: GLenum = 0x827F`"]
2320 #[doc = "* **Group:** InternalFormatPName"]
2321 pub const GL_MAX_HEIGHT: GLenum = 0x827F;
2322 #[doc = "`GL_MAX_IMAGE_SAMPLES: GLenum = 0x906D`"]
2323 pub const GL_MAX_IMAGE_SAMPLES: GLenum = 0x906D;
2324 #[doc = "`GL_MAX_IMAGE_UNITS: GLenum = 0x8F38`"]
2325 pub const GL_MAX_IMAGE_UNITS: GLenum = 0x8F38;
2326 #[doc = "`GL_MAX_INTEGER_SAMPLES: GLenum = 0x9110`"]
2327 #[doc = "* **Group:** GetPName"]
2328 pub const GL_MAX_INTEGER_SAMPLES: GLenum = 0x9110;
2329 #[doc = "`GL_MAX_LABEL_LENGTH: GLenum = 0x82E8`"]
2330 #[doc = "* **Group:** GetPName"]
2331 pub const GL_MAX_LABEL_LENGTH: GLenum = 0x82E8;
2332 #[doc = "`GL_MAX_LABEL_LENGTH_KHR: GLenum = 0x82E8`"]
2333 pub const GL_MAX_LABEL_LENGTH_KHR: GLenum = 0x82E8;
2334 #[doc = "`GL_MAX_LAYERS: GLenum = 0x8281`"]
2335 #[doc = "* **Group:** InternalFormatPName"]
2336 pub const GL_MAX_LAYERS: GLenum = 0x8281;
2337 #[doc = "`GL_MAX_NAME_LENGTH: GLenum = 0x92F6`"]
2338 #[doc = "* **Group:** ProgramInterfacePName"]
2339 pub const GL_MAX_NAME_LENGTH: GLenum = 0x92F6;
2340 #[doc = "`GL_MAX_NUM_ACTIVE_VARIABLES: GLenum = 0x92F7`"]
2341 #[doc = "* **Group:** ProgramInterfacePName"]
2342 pub const GL_MAX_NUM_ACTIVE_VARIABLES: GLenum = 0x92F7;
2343 #[doc = "`GL_MAX_NUM_COMPATIBLE_SUBROUTINES: GLenum = 0x92F8`"]
2344 #[doc = "* **Group:** ProgramInterfacePName"]
2345 pub const GL_MAX_NUM_COMPATIBLE_SUBROUTINES: GLenum = 0x92F8;
2346 #[doc = "`GL_MAX_PATCH_VERTICES: GLenum = 0x8E7D`"]
2347 pub const GL_MAX_PATCH_VERTICES: GLenum = 0x8E7D;
2348 #[doc = "`GL_MAX_PROGRAM_TEXEL_OFFSET: GLenum = 0x8905`"]
2349 #[doc = "* **Group:** GetPName"]
2350 pub const GL_MAX_PROGRAM_TEXEL_OFFSET: GLenum = 0x8905;
2351 #[doc = "`GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET: GLenum = 0x8E5F`"]
2352 pub const GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET: GLenum = 0x8E5F;
2353 #[doc = "`GL_MAX_RECTANGLE_TEXTURE_SIZE: GLenum = 0x84F8`"]
2354 #[doc = "* **Group:** GetPName"]
2355 pub const GL_MAX_RECTANGLE_TEXTURE_SIZE: GLenum = 0x84F8;
2356 #[doc = "`GL_MAX_RENDERBUFFER_SIZE: GLenum = 0x84E8`"]
2357 #[doc = "* **Group:** GetPName"]
2358 pub const GL_MAX_RENDERBUFFER_SIZE: GLenum = 0x84E8;
2359 #[doc = "`GL_MAX_SAMPLES: GLenum = 0x8D57`"]
2360 pub const GL_MAX_SAMPLES: GLenum = 0x8D57;
2361 #[doc = "`GL_MAX_SAMPLES_EXT: GLenum = 0x8D57`"]
2362 #[cfg_attr(
2363 docs_rs,
2364 doc(cfg(any(feature = "GL_EXT_multisampled_render_to_texture")))
2365 )]
2366 pub const GL_MAX_SAMPLES_EXT: GLenum = 0x8D57;
2367 #[doc = "`GL_MAX_SAMPLE_MASK_WORDS: GLenum = 0x8E59`"]
2368 #[doc = "* **Group:** GetPName"]
2369 pub const GL_MAX_SAMPLE_MASK_WORDS: GLenum = 0x8E59;
2370 #[doc = "`GL_MAX_SERVER_WAIT_TIMEOUT: GLenum = 0x9111`"]
2371 #[doc = "* **Group:** GetPName"]
2372 pub const GL_MAX_SERVER_WAIT_TIMEOUT: GLenum = 0x9111;
2373 #[doc = "`GL_MAX_SHADER_COMPILER_THREADS_ARB: GLenum = 0x91B0`"]
2374 #[doc = "* **Alias Of:** `GL_MAX_SHADER_COMPILER_THREADS_KHR`"]
2375 pub const GL_MAX_SHADER_COMPILER_THREADS_ARB: GLenum = 0x91B0;
2376 #[doc = "`GL_MAX_SHADER_COMPILER_THREADS_KHR: GLenum = 0x91B0`"]
2377 pub const GL_MAX_SHADER_COMPILER_THREADS_KHR: GLenum = 0x91B0;
2378 #[doc = "`GL_MAX_SHADER_STORAGE_BLOCK_SIZE: GLenum = 0x90DE`"]
2379 pub const GL_MAX_SHADER_STORAGE_BLOCK_SIZE: GLenum = 0x90DE;
2380 #[doc = "`GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS: GLenum = 0x90DD`"]
2381 #[doc = "* **Group:** GetPName"]
2382 pub const GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS: GLenum = 0x90DD;
2383 #[doc = "`GL_MAX_SUBROUTINES: GLenum = 0x8DE7`"]
2384 pub const GL_MAX_SUBROUTINES: GLenum = 0x8DE7;
2385 #[doc = "`GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS: GLenum = 0x8DE8`"]
2386 pub const GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS: GLenum = 0x8DE8;
2387 #[doc = "`GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS: GLenum = 0x92D3`"]
2388 #[doc = "* **Group:** GetPName"]
2389 pub const GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS: GLenum = 0x92D3;
2390 #[doc = "`GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CD`"]
2391 pub const GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CD;
2392 #[doc = "`GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS: GLenum = 0x90CB`"]
2393 pub const GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS: GLenum = 0x90CB;
2394 #[doc = "`GL_MAX_TESS_CONTROL_INPUT_COMPONENTS: GLenum = 0x886C`"]
2395 pub const GL_MAX_TESS_CONTROL_INPUT_COMPONENTS: GLenum = 0x886C;
2396 #[doc = "`GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS: GLenum = 0x8E83`"]
2397 pub const GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS: GLenum = 0x8E83;
2398 #[doc = "`GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS: GLenum = 0x90D8`"]
2399 #[doc = "* **Group:** GetPName"]
2400 pub const GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS: GLenum = 0x90D8;
2401 #[doc = "`GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS: GLenum = 0x8E81`"]
2402 pub const GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS: GLenum = 0x8E81;
2403 #[doc = "`GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS: GLenum = 0x8E85`"]
2404 pub const GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS: GLenum = 0x8E85;
2405 #[doc = "`GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS: GLenum = 0x8E89`"]
2406 #[doc = "* **Group:** GetPName"]
2407 pub const GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS: GLenum = 0x8E89;
2408 #[doc = "`GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS: GLenum = 0x8E7F`"]
2409 pub const GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS: GLenum = 0x8E7F;
2410 #[doc = "`GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS: GLenum = 0x92D4`"]
2411 #[doc = "* **Group:** GetPName"]
2412 pub const GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS: GLenum = 0x92D4;
2413 #[doc = "`GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CE`"]
2414 pub const GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CE;
2415 #[doc = "`GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS: GLenum = 0x90CC`"]
2416 pub const GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS: GLenum = 0x90CC;
2417 #[doc = "`GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS: GLenum = 0x886D`"]
2418 pub const GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS: GLenum = 0x886D;
2419 #[doc = "`GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS: GLenum = 0x8E86`"]
2420 pub const GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS: GLenum = 0x8E86;
2421 #[doc = "`GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS: GLenum = 0x90D9`"]
2422 #[doc = "* **Group:** GetPName"]
2423 pub const GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS: GLenum = 0x90D9;
2424 #[doc = "`GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS: GLenum = 0x8E82`"]
2425 pub const GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS: GLenum = 0x8E82;
2426 #[doc = "`GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS: GLenum = 0x8E8A`"]
2427 #[doc = "* **Group:** GetPName"]
2428 pub const GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS: GLenum = 0x8E8A;
2429 #[doc = "`GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS: GLenum = 0x8E80`"]
2430 pub const GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS: GLenum = 0x8E80;
2431 #[doc = "`GL_MAX_TESS_GEN_LEVEL: GLenum = 0x8E7E`"]
2432 pub const GL_MAX_TESS_GEN_LEVEL: GLenum = 0x8E7E;
2433 #[doc = "`GL_MAX_TESS_PATCH_COMPONENTS: GLenum = 0x8E84`"]
2434 pub const GL_MAX_TESS_PATCH_COMPONENTS: GLenum = 0x8E84;
2435 #[doc = "`GL_MAX_TEXTURE_BUFFER_SIZE: GLenum = 0x8C2B`"]
2436 #[doc = "* **Group:** GetPName"]
2437 pub const GL_MAX_TEXTURE_BUFFER_SIZE: GLenum = 0x8C2B;
2438 #[doc = "`GL_MAX_TEXTURE_IMAGE_UNITS: GLenum = 0x8872`"]
2439 #[doc = "* **Group:** GetPName"]
2440 pub const GL_MAX_TEXTURE_IMAGE_UNITS: GLenum = 0x8872;
2441 #[doc = "`GL_MAX_TEXTURE_LOD_BIAS: GLenum = 0x84FD`"]
2442 #[doc = "* **Group:** GetPName"]
2443 pub const GL_MAX_TEXTURE_LOD_BIAS: GLenum = 0x84FD;
2444 #[doc = "`GL_MAX_TEXTURE_MAX_ANISOTROPY: GLenum = 0x84FF`"]
2445 pub const GL_MAX_TEXTURE_MAX_ANISOTROPY: GLenum = 0x84FF;
2446 #[doc = "`GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: GLenum = 0x84FF`"]
2447 #[doc = "* **Alias Of:** `GL_MAX_TEXTURE_MAX_ANISOTROPY`"]
2448 pub const GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: GLenum = 0x84FF;
2449 #[doc = "`GL_MAX_TEXTURE_SIZE: GLenum = 0x0D33`"]
2450 #[doc = "* **Group:** GetPName"]
2451 pub const GL_MAX_TEXTURE_SIZE: GLenum = 0x0D33;
2452 #[doc = "`GL_MAX_TRANSFORM_FEEDBACK_BUFFERS: GLenum = 0x8E70`"]
2453 pub const GL_MAX_TRANSFORM_FEEDBACK_BUFFERS: GLenum = 0x8E70;
2454 #[doc = "`GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: GLenum = 0x8C8A`"]
2455 pub const GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: GLenum = 0x8C8A;
2456 #[doc = "`GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: GLenum = 0x8C8B`"]
2457 pub const GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: GLenum = 0x8C8B;
2458 #[doc = "`GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: GLenum = 0x8C80`"]
2459 pub const GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: GLenum = 0x8C80;
2460 #[doc = "`GL_MAX_UNIFORM_BLOCK_SIZE: GLenum = 0x8A30`"]
2461 #[doc = "* **Group:** GetPName"]
2462 pub const GL_MAX_UNIFORM_BLOCK_SIZE: GLenum = 0x8A30;
2463 #[doc = "`GL_MAX_UNIFORM_BUFFER_BINDINGS: GLenum = 0x8A2F`"]
2464 #[doc = "* **Group:** GetPName"]
2465 pub const GL_MAX_UNIFORM_BUFFER_BINDINGS: GLenum = 0x8A2F;
2466 #[doc = "`GL_MAX_UNIFORM_LOCATIONS: GLenum = 0x826E`"]
2467 #[doc = "* **Group:** GetPName"]
2468 pub const GL_MAX_UNIFORM_LOCATIONS: GLenum = 0x826E;
2469 #[doc = "`GL_MAX_VARYING_COMPONENTS: GLenum = 0x8B4B`"]
2470 #[doc = "* **Group:** GetPName"]
2471 #[doc = "* **Alias Of:** `MAX_VARYING_FLOATS`"]
2472 pub const GL_MAX_VARYING_COMPONENTS: GLenum = 0x8B4B;
2473 #[doc = "`GL_MAX_VARYING_FLOATS: GLenum = 0x8B4B`"]
2474 #[doc = "* **Group:** GetPName"]
2475 pub const GL_MAX_VARYING_FLOATS: GLenum = 0x8B4B;
2476 #[doc = "`GL_MAX_VARYING_VECTORS: GLenum = 0x8DFC`"]
2477 #[doc = "* **Group:** GetPName"]
2478 pub const GL_MAX_VARYING_VECTORS: GLenum = 0x8DFC;
2479 #[doc = "`GL_MAX_VERTEX_ATOMIC_COUNTERS: GLenum = 0x92D2`"]
2480 #[doc = "* **Group:** GetPName"]
2481 pub const GL_MAX_VERTEX_ATOMIC_COUNTERS: GLenum = 0x92D2;
2482 #[doc = "`GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CC`"]
2483 pub const GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS: GLenum = 0x92CC;
2484 #[doc = "`GL_MAX_VERTEX_ATTRIBS: GLenum = 0x8869`"]
2485 #[doc = "* **Group:** GetPName"]
2486 pub const GL_MAX_VERTEX_ATTRIBS: GLenum = 0x8869;
2487 #[doc = "`GL_MAX_VERTEX_ATTRIB_BINDINGS: GLenum = 0x82DA`"]
2488 #[doc = "* **Group:** GetPName"]
2489 pub const GL_MAX_VERTEX_ATTRIB_BINDINGS: GLenum = 0x82DA;
2490 #[doc = "`GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET: GLenum = 0x82D9`"]
2491 #[doc = "* **Group:** GetPName"]
2492 pub const GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET: GLenum = 0x82D9;
2493 #[doc = "`GL_MAX_VERTEX_ATTRIB_STRIDE: GLenum = 0x82E5`"]
2494 pub const GL_MAX_VERTEX_ATTRIB_STRIDE: GLenum = 0x82E5;
2495 #[doc = "`GL_MAX_VERTEX_IMAGE_UNIFORMS: GLenum = 0x90CA`"]
2496 pub const GL_MAX_VERTEX_IMAGE_UNIFORMS: GLenum = 0x90CA;
2497 #[doc = "`GL_MAX_VERTEX_OUTPUT_COMPONENTS: GLenum = 0x9122`"]
2498 #[doc = "* **Group:** GetPName"]
2499 pub const GL_MAX_VERTEX_OUTPUT_COMPONENTS: GLenum = 0x9122;
2500 #[doc = "`GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS: GLenum = 0x90D6`"]
2501 #[doc = "* **Group:** GetPName"]
2502 pub const GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS: GLenum = 0x90D6;
2503 #[doc = "`GL_MAX_VERTEX_STREAMS: GLenum = 0x8E71`"]
2504 pub const GL_MAX_VERTEX_STREAMS: GLenum = 0x8E71;
2505 #[doc = "`GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum = 0x8B4C`"]
2506 #[doc = "* **Group:** GetPName"]
2507 pub const GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum = 0x8B4C;
2508 #[doc = "`GL_MAX_VERTEX_UNIFORM_BLOCKS: GLenum = 0x8A2B`"]
2509 #[doc = "* **Group:** GetPName"]
2510 pub const GL_MAX_VERTEX_UNIFORM_BLOCKS: GLenum = 0x8A2B;
2511 #[doc = "`GL_MAX_VERTEX_UNIFORM_COMPONENTS: GLenum = 0x8B4A`"]
2512 #[doc = "* **Group:** GetPName"]
2513 pub const GL_MAX_VERTEX_UNIFORM_COMPONENTS: GLenum = 0x8B4A;
2514 #[doc = "`GL_MAX_VERTEX_UNIFORM_VECTORS: GLenum = 0x8DFB`"]
2515 #[doc = "* **Group:** GetPName"]
2516 pub const GL_MAX_VERTEX_UNIFORM_VECTORS: GLenum = 0x8DFB;
2517 #[doc = "`GL_MAX_VIEWPORTS: GLenum = 0x825B`"]
2518 #[doc = "* **Group:** GetPName"]
2519 pub const GL_MAX_VIEWPORTS: GLenum = 0x825B;
2520 #[doc = "`GL_MAX_VIEWPORT_DIMS: GLenum = 0x0D3A`"]
2521 #[doc = "* **Group:** GetPName"]
2522 pub const GL_MAX_VIEWPORT_DIMS: GLenum = 0x0D3A;
2523 #[doc = "`GL_MAX_WIDTH: GLenum = 0x827E`"]
2524 #[doc = "* **Group:** InternalFormatPName"]
2525 pub const GL_MAX_WIDTH: GLenum = 0x827E;
2526 #[doc = "`GL_MEDIUM_FLOAT: GLenum = 0x8DF1`"]
2527 #[doc = "* **Group:** PrecisionType"]
2528 pub const GL_MEDIUM_FLOAT: GLenum = 0x8DF1;
2529 #[doc = "`GL_MEDIUM_INT: GLenum = 0x8DF4`"]
2530 #[doc = "* **Group:** PrecisionType"]
2531 pub const GL_MEDIUM_INT: GLenum = 0x8DF4;
2532 #[doc = "`GL_MIN: GLenum = 0x8007`"]
2533 #[doc = "* **Group:** BlendEquationModeEXT"]
2534 pub const GL_MIN: GLenum = 0x8007;
2535 #[doc = "`GL_MINOR_VERSION: GLenum = 0x821C`"]
2536 #[doc = "* **Group:** GetPName"]
2537 pub const GL_MINOR_VERSION: GLenum = 0x821C;
2538 #[doc = "`GL_MIN_FRAGMENT_INTERPOLATION_OFFSET: GLenum = 0x8E5B`"]
2539 pub const GL_MIN_FRAGMENT_INTERPOLATION_OFFSET: GLenum = 0x8E5B;
2540 #[doc = "`GL_MIN_MAP_BUFFER_ALIGNMENT: GLenum = 0x90BC`"]
2541 #[doc = "* **Group:** GetPName"]
2542 pub const GL_MIN_MAP_BUFFER_ALIGNMENT: GLenum = 0x90BC;
2543 #[doc = "`GL_MIN_PROGRAM_TEXEL_OFFSET: GLenum = 0x8904`"]
2544 #[doc = "* **Group:** GetPName"]
2545 pub const GL_MIN_PROGRAM_TEXEL_OFFSET: GLenum = 0x8904;
2546 #[doc = "`GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET: GLenum = 0x8E5E`"]
2547 pub const GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET: GLenum = 0x8E5E;
2548 #[doc = "`GL_MIN_SAMPLE_SHADING_VALUE: GLenum = 0x8C37`"]
2549 pub const GL_MIN_SAMPLE_SHADING_VALUE: GLenum = 0x8C37;
2550 #[doc = "`GL_MIPMAP: GLenum = 0x8293`"]
2551 #[doc = "* **Group:** InternalFormatPName"]
2552 pub const GL_MIPMAP: GLenum = 0x8293;
2553 #[doc = "`GL_MIRRORED_REPEAT: GLenum = 0x8370`"]
2554 #[doc = "* **Group:** TextureWrapMode"]
2555 pub const GL_MIRRORED_REPEAT: GLenum = 0x8370;
2556 #[doc = "`GL_MIRROR_CLAMP_TO_EDGE: GLenum = 0x8743`"]
2557 pub const GL_MIRROR_CLAMP_TO_EDGE: GLenum = 0x8743;
2558 #[doc = "`GL_MULTIPLY: GLenum = 0x9294`"]
2559 pub const GL_MULTIPLY: GLenum = 0x9294;
2560 #[doc = "`GL_MULTISAMPLE: GLenum = 0x809D`"]
2561 #[doc = "* **Group:** EnableCap"]
2562 pub const GL_MULTISAMPLE: GLenum = 0x809D;
2563 #[doc = "`GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY: GLenum = 0x9382`"]
2564 pub const GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY: GLenum = 0x9382;
2565 #[doc = "`GL_MULTISAMPLE_LINE_WIDTH_RANGE: GLenum = 0x9381`"]
2566 pub const GL_MULTISAMPLE_LINE_WIDTH_RANGE: GLenum = 0x9381;
2567 #[doc = "`GL_NAME_LENGTH: GLenum = 0x92F9`"]
2568 #[doc = "* **Group:** ProgramResourceProperty"]
2569 pub const GL_NAME_LENGTH: GLenum = 0x92F9;
2570 #[doc = "`GL_NAND: GLenum = 0x150E`"]
2571 #[doc = "* **Group:** LogicOp"]
2572 pub const GL_NAND: GLenum = 0x150E;
2573 #[doc = "`GL_NEAREST: GLenum = 0x2600`"]
2574 #[doc = "* **Groups:** BlitFramebufferFilter, TextureMagFilter, TextureMinFilter"]
2575 pub const GL_NEAREST: GLenum = 0x2600;
2576 #[doc = "`GL_NEAREST_MIPMAP_LINEAR: GLenum = 0x2702`"]
2577 #[doc = "* **Group:** TextureMinFilter"]
2578 pub const GL_NEAREST_MIPMAP_LINEAR: GLenum = 0x2702;
2579 #[doc = "`GL_NEAREST_MIPMAP_NEAREST: GLenum = 0x2700`"]
2580 #[doc = "* **Group:** TextureMinFilter"]
2581 pub const GL_NEAREST_MIPMAP_NEAREST: GLenum = 0x2700;
2582 #[doc = "`GL_NEGATIVE_ONE_TO_ONE: GLenum = 0x935E`"]
2583 #[doc = "* **Group:** ClipControlDepth"]
2584 pub const GL_NEGATIVE_ONE_TO_ONE: GLenum = 0x935E;
2585 #[doc = "`GL_NEVER: GLenum = 0x0200`"]
2586 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
2587 pub const GL_NEVER: GLenum = 0x0200;
2588 #[doc = "`GL_NICEST: GLenum = 0x1102`"]
2589 #[doc = "* **Group:** HintMode"]
2590 pub const GL_NICEST: GLenum = 0x1102;
2591 #[doc = "`GL_NONE: GLenum = 0`"]
2592 #[doc = "* **Groups:** SyncBehaviorFlags, TextureCompareMode, PathColorFormat, CombinerBiasNV, CombinerScaleNV, DrawBufferMode, PixelTexGenMode, ReadBufferMode, ColorBuffer, PathGenMode, PathTransformType, PathFontStyle"]
2593 pub const GL_NONE: GLenum = 0;
2594 #[doc = "`GL_NOOP: GLenum = 0x1505`"]
2595 #[doc = "* **Group:** LogicOp"]
2596 pub const GL_NOOP: GLenum = 0x1505;
2597 #[doc = "`GL_NOR: GLenum = 0x1508`"]
2598 #[doc = "* **Group:** LogicOp"]
2599 pub const GL_NOR: GLenum = 0x1508;
2600 #[doc = "`GL_NOTEQUAL: GLenum = 0x0205`"]
2601 #[doc = "* **Groups:** StencilFunction, IndexFunctionEXT, AlphaFunction, DepthFunction"]
2602 pub const GL_NOTEQUAL: GLenum = 0x0205;
2603 #[doc = "`GL_NO_ERROR: GLenum = 0`"]
2604 #[doc = "* **Groups:** GraphicsResetStatus, ErrorCode"]
2605 pub const GL_NO_ERROR: GLenum = 0;
2606 #[doc = "`GL_NO_RESET_NOTIFICATION: GLenum = 0x8261`"]
2607 pub const GL_NO_RESET_NOTIFICATION: GLenum = 0x8261;
2608 #[doc = "`GL_NUM_ACTIVE_VARIABLES: GLenum = 0x9304`"]
2609 #[doc = "* **Group:** ProgramResourceProperty"]
2610 pub const GL_NUM_ACTIVE_VARIABLES: GLenum = 0x9304;
2611 #[doc = "`GL_NUM_COMPATIBLE_SUBROUTINES: GLenum = 0x8E4A`"]
2612 #[doc = "* **Groups:** ProgramResourceProperty, SubroutineParameterName"]
2613 pub const GL_NUM_COMPATIBLE_SUBROUTINES: GLenum = 0x8E4A;
2614 #[doc = "`GL_NUM_COMPRESSED_TEXTURE_FORMATS: GLenum = 0x86A2`"]
2615 #[doc = "* **Group:** GetPName"]
2616 pub const GL_NUM_COMPRESSED_TEXTURE_FORMATS: GLenum = 0x86A2;
2617 #[doc = "`GL_NUM_EXTENSIONS: GLenum = 0x821D`"]
2618 #[doc = "* **Group:** GetPName"]
2619 pub const GL_NUM_EXTENSIONS: GLenum = 0x821D;
2620 #[doc = "`GL_NUM_PROGRAM_BINARY_FORMATS: GLenum = 0x87FE`"]
2621 #[doc = "* **Group:** GetPName"]
2622 pub const GL_NUM_PROGRAM_BINARY_FORMATS: GLenum = 0x87FE;
2623 #[doc = "`GL_NUM_SAMPLE_COUNTS: GLenum = 0x9380`"]
2624 #[doc = "* **Group:** InternalFormatPName"]
2625 pub const GL_NUM_SAMPLE_COUNTS: GLenum = 0x9380;
2626 #[doc = "`GL_NUM_SHADER_BINARY_FORMATS: GLenum = 0x8DF9`"]
2627 #[doc = "* **Group:** GetPName"]
2628 pub const GL_NUM_SHADER_BINARY_FORMATS: GLenum = 0x8DF9;
2629 #[doc = "`GL_NUM_SHADING_LANGUAGE_VERSIONS: GLenum = 0x82E9`"]
2630 pub const GL_NUM_SHADING_LANGUAGE_VERSIONS: GLenum = 0x82E9;
2631 #[doc = "`GL_NUM_SPIR_V_EXTENSIONS: GLenum = 0x9554`"]
2632 pub const GL_NUM_SPIR_V_EXTENSIONS: GLenum = 0x9554;
2633 #[doc = "`GL_OBJECT_TYPE: GLenum = 0x9112`"]
2634 #[doc = "* **Group:** SyncParameterName"]
2635 pub const GL_OBJECT_TYPE: GLenum = 0x9112;
2636 #[doc = "`GL_OFFSET: GLenum = 0x92FC`"]
2637 #[doc = "* **Group:** ProgramResourceProperty"]
2638 pub const GL_OFFSET: GLenum = 0x92FC;
2639 #[doc = "`GL_ONE: GLenum = 1`"]
2640 #[doc = "* **Groups:** TextureSwizzle, BlendingFactor"]
2641 pub const GL_ONE: GLenum = 1;
2642 #[doc = "`GL_ONE_MINUS_CONSTANT_ALPHA: GLenum = 0x8004`"]
2643 #[doc = "* **Group:** BlendingFactor"]
2644 pub const GL_ONE_MINUS_CONSTANT_ALPHA: GLenum = 0x8004;
2645 #[doc = "`GL_ONE_MINUS_CONSTANT_COLOR: GLenum = 0x8002`"]
2646 #[doc = "* **Group:** BlendingFactor"]
2647 pub const GL_ONE_MINUS_CONSTANT_COLOR: GLenum = 0x8002;
2648 #[doc = "`GL_ONE_MINUS_DST_ALPHA: GLenum = 0x0305`"]
2649 #[doc = "* **Group:** BlendingFactor"]
2650 pub const GL_ONE_MINUS_DST_ALPHA: GLenum = 0x0305;
2651 #[doc = "`GL_ONE_MINUS_DST_COLOR: GLenum = 0x0307`"]
2652 #[doc = "* **Group:** BlendingFactor"]
2653 pub const GL_ONE_MINUS_DST_COLOR: GLenum = 0x0307;
2654 #[doc = "`GL_ONE_MINUS_SRC1_ALPHA: GLenum = 0x88FB`"]
2655 #[doc = "* **Group:** BlendingFactor"]
2656 pub const GL_ONE_MINUS_SRC1_ALPHA: GLenum = 0x88FB;
2657 #[doc = "`GL_ONE_MINUS_SRC1_COLOR: GLenum = 0x88FA`"]
2658 #[doc = "* **Group:** BlendingFactor"]
2659 pub const GL_ONE_MINUS_SRC1_COLOR: GLenum = 0x88FA;
2660 #[doc = "`GL_ONE_MINUS_SRC_ALPHA: GLenum = 0x0303`"]
2661 #[doc = "* **Group:** BlendingFactor"]
2662 pub const GL_ONE_MINUS_SRC_ALPHA: GLenum = 0x0303;
2663 #[doc = "`GL_ONE_MINUS_SRC_COLOR: GLenum = 0x0301`"]
2664 #[doc = "* **Group:** BlendingFactor"]
2665 pub const GL_ONE_MINUS_SRC_COLOR: GLenum = 0x0301;
2666 #[doc = "`GL_OR: GLenum = 0x1507`"]
2667 #[doc = "* **Group:** LogicOp"]
2668 pub const GL_OR: GLenum = 0x1507;
2669 #[doc = "`GL_OR_INVERTED: GLenum = 0x150D`"]
2670 #[doc = "* **Group:** LogicOp"]
2671 pub const GL_OR_INVERTED: GLenum = 0x150D;
2672 #[doc = "`GL_OR_REVERSE: GLenum = 0x150B`"]
2673 #[doc = "* **Group:** LogicOp"]
2674 pub const GL_OR_REVERSE: GLenum = 0x150B;
2675 #[doc = "`GL_OUT_OF_MEMORY: GLenum = 0x0505`"]
2676 #[doc = "* **Group:** ErrorCode"]
2677 pub const GL_OUT_OF_MEMORY: GLenum = 0x0505;
2678 #[doc = "`GL_OVERLAY: GLenum = 0x9296`"]
2679 pub const GL_OVERLAY: GLenum = 0x9296;
2680 #[doc = "`GL_PACK_ALIGNMENT: GLenum = 0x0D05`"]
2681 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2682 pub const GL_PACK_ALIGNMENT: GLenum = 0x0D05;
2683 #[doc = "`GL_PACK_COMPRESSED_BLOCK_DEPTH: GLenum = 0x912D`"]
2684 pub const GL_PACK_COMPRESSED_BLOCK_DEPTH: GLenum = 0x912D;
2685 #[doc = "`GL_PACK_COMPRESSED_BLOCK_HEIGHT: GLenum = 0x912C`"]
2686 pub const GL_PACK_COMPRESSED_BLOCK_HEIGHT: GLenum = 0x912C;
2687 #[doc = "`GL_PACK_COMPRESSED_BLOCK_SIZE: GLenum = 0x912E`"]
2688 pub const GL_PACK_COMPRESSED_BLOCK_SIZE: GLenum = 0x912E;
2689 #[doc = "`GL_PACK_COMPRESSED_BLOCK_WIDTH: GLenum = 0x912B`"]
2690 pub const GL_PACK_COMPRESSED_BLOCK_WIDTH: GLenum = 0x912B;
2691 #[doc = "`GL_PACK_IMAGE_HEIGHT: GLenum = 0x806C`"]
2692 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2693 pub const GL_PACK_IMAGE_HEIGHT: GLenum = 0x806C;
2694 #[doc = "`GL_PACK_LSB_FIRST: GLenum = 0x0D01`"]
2695 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2696 pub const GL_PACK_LSB_FIRST: GLenum = 0x0D01;
2697 #[doc = "`GL_PACK_ROW_LENGTH: GLenum = 0x0D02`"]
2698 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2699 pub const GL_PACK_ROW_LENGTH: GLenum = 0x0D02;
2700 #[doc = "`GL_PACK_SKIP_IMAGES: GLenum = 0x806B`"]
2701 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2702 pub const GL_PACK_SKIP_IMAGES: GLenum = 0x806B;
2703 #[doc = "`GL_PACK_SKIP_PIXELS: GLenum = 0x0D04`"]
2704 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2705 pub const GL_PACK_SKIP_PIXELS: GLenum = 0x0D04;
2706 #[doc = "`GL_PACK_SKIP_ROWS: GLenum = 0x0D03`"]
2707 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2708 pub const GL_PACK_SKIP_ROWS: GLenum = 0x0D03;
2709 #[doc = "`GL_PACK_SWAP_BYTES: GLenum = 0x0D00`"]
2710 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
2711 pub const GL_PACK_SWAP_BYTES: GLenum = 0x0D00;
2712 #[doc = "`GL_PARAMETER_BUFFER: GLenum = 0x80EE`"]
2713 #[doc = "* **Group:** BufferTargetARB"]
2714 pub const GL_PARAMETER_BUFFER: GLenum = 0x80EE;
2715 #[doc = "`GL_PARAMETER_BUFFER_BINDING: GLenum = 0x80EF`"]
2716 pub const GL_PARAMETER_BUFFER_BINDING: GLenum = 0x80EF;
2717 #[doc = "`GL_PATCHES: GLenum = 0x000E`"]
2718 #[doc = "* **Group:** PrimitiveType"]
2719 pub const GL_PATCHES: GLenum = 0x000E;
2720 #[doc = "`GL_PATCH_DEFAULT_INNER_LEVEL: GLenum = 0x8E73`"]
2721 #[doc = "* **Group:** PatchParameterName"]
2722 pub const GL_PATCH_DEFAULT_INNER_LEVEL: GLenum = 0x8E73;
2723 #[doc = "`GL_PATCH_DEFAULT_OUTER_LEVEL: GLenum = 0x8E74`"]
2724 #[doc = "* **Group:** PatchParameterName"]
2725 pub const GL_PATCH_DEFAULT_OUTER_LEVEL: GLenum = 0x8E74;
2726 #[doc = "`GL_PATCH_VERTICES: GLenum = 0x8E72`"]
2727 #[doc = "* **Group:** PatchParameterName"]
2728 pub const GL_PATCH_VERTICES: GLenum = 0x8E72;
2729 #[doc = "`GL_PIXEL_BUFFER_BARRIER_BIT: GLbitfield = 0x00000080`"]
2730 #[doc = "* **Group:** MemoryBarrierMask"]
2731 pub const GL_PIXEL_BUFFER_BARRIER_BIT: GLbitfield = 0x00000080;
2732 #[doc = "`GL_PIXEL_PACK_BUFFER: GLenum = 0x88EB`"]
2733 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
2734 pub const GL_PIXEL_PACK_BUFFER: GLenum = 0x88EB;
2735 #[doc = "`GL_PIXEL_PACK_BUFFER_BINDING: GLenum = 0x88ED`"]
2736 #[doc = "* **Group:** GetPName"]
2737 pub const GL_PIXEL_PACK_BUFFER_BINDING: GLenum = 0x88ED;
2738 #[doc = "`GL_PIXEL_UNPACK_BUFFER: GLenum = 0x88EC`"]
2739 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
2740 pub const GL_PIXEL_UNPACK_BUFFER: GLenum = 0x88EC;
2741 #[doc = "`GL_PIXEL_UNPACK_BUFFER_BINDING: GLenum = 0x88EF`"]
2742 #[doc = "* **Group:** GetPName"]
2743 pub const GL_PIXEL_UNPACK_BUFFER_BINDING: GLenum = 0x88EF;
2744 #[doc = "`GL_POINT: GLenum = 0x1B00`"]
2745 #[doc = "* **Groups:** PolygonMode, MeshMode1, MeshMode2"]
2746 pub const GL_POINT: GLenum = 0x1B00;
2747 #[doc = "`GL_POINTS: GLenum = 0x0000`"]
2748 #[doc = "* **Group:** PrimitiveType"]
2749 pub const GL_POINTS: GLenum = 0x0000;
2750 #[doc = "`GL_POINT_FADE_THRESHOLD_SIZE: GLenum = 0x8128`"]
2751 #[doc = "* **Groups:** PointParameterNameSGIS, PointParameterNameARB, GetPName"]
2752 pub const GL_POINT_FADE_THRESHOLD_SIZE: GLenum = 0x8128;
2753 #[doc = "`GL_POINT_SIZE: GLenum = 0x0B11`"]
2754 #[doc = "* **Group:** GetPName"]
2755 pub const GL_POINT_SIZE: GLenum = 0x0B11;
2756 #[doc = "`GL_POINT_SIZE_GRANULARITY: GLenum = 0x0B13`"]
2757 #[doc = "* **Group:** GetPName"]
2758 pub const GL_POINT_SIZE_GRANULARITY: GLenum = 0x0B13;
2759 #[doc = "`GL_POINT_SIZE_RANGE: GLenum = 0x0B12`"]
2760 #[doc = "* **Group:** GetPName"]
2761 pub const GL_POINT_SIZE_RANGE: GLenum = 0x0B12;
2762 #[doc = "`GL_POINT_SPRITE_COORD_ORIGIN: GLenum = 0x8CA0`"]
2763 pub const GL_POINT_SPRITE_COORD_ORIGIN: GLenum = 0x8CA0;
2764 #[doc = "`GL_POLYGON_MODE: GLenum = 0x0B40`"]
2765 #[doc = "* **Group:** GetPName"]
2766 pub const GL_POLYGON_MODE: GLenum = 0x0B40;
2767 #[doc = "`GL_POLYGON_OFFSET_CLAMP: GLenum = 0x8E1B`"]
2768 pub const GL_POLYGON_OFFSET_CLAMP: GLenum = 0x8E1B;
2769 #[doc = "`GL_POLYGON_OFFSET_FACTOR: GLenum = 0x8038`"]
2770 #[doc = "* **Group:** GetPName"]
2771 pub const GL_POLYGON_OFFSET_FACTOR: GLenum = 0x8038;
2772 #[doc = "`GL_POLYGON_OFFSET_FILL: GLenum = 0x8037`"]
2773 #[doc = "* **Groups:** GetPName, EnableCap"]
2774 pub const GL_POLYGON_OFFSET_FILL: GLenum = 0x8037;
2775 #[doc = "`GL_POLYGON_OFFSET_LINE: GLenum = 0x2A02`"]
2776 #[doc = "* **Groups:** GetPName, EnableCap"]
2777 pub const GL_POLYGON_OFFSET_LINE: GLenum = 0x2A02;
2778 #[doc = "`GL_POLYGON_OFFSET_POINT: GLenum = 0x2A01`"]
2779 #[doc = "* **Groups:** GetPName, EnableCap"]
2780 pub const GL_POLYGON_OFFSET_POINT: GLenum = 0x2A01;
2781 #[doc = "`GL_POLYGON_OFFSET_UNITS: GLenum = 0x2A00`"]
2782 #[doc = "* **Group:** GetPName"]
2783 pub const GL_POLYGON_OFFSET_UNITS: GLenum = 0x2A00;
2784 #[doc = "`GL_POLYGON_SMOOTH: GLenum = 0x0B41`"]
2785 #[doc = "* **Groups:** GetPName, EnableCap"]
2786 pub const GL_POLYGON_SMOOTH: GLenum = 0x0B41;
2787 #[doc = "`GL_POLYGON_SMOOTH_HINT: GLenum = 0x0C53`"]
2788 #[doc = "* **Groups:** HintTarget, GetPName"]
2789 pub const GL_POLYGON_SMOOTH_HINT: GLenum = 0x0C53;
2790 #[doc = "`GL_PRIMITIVES_GENERATED: GLenum = 0x8C87`"]
2791 #[doc = "* **Group:** QueryTarget"]
2792 pub const GL_PRIMITIVES_GENERATED: GLenum = 0x8C87;
2793 #[doc = "`GL_PRIMITIVES_SUBMITTED: GLenum = 0x82EF`"]
2794 #[doc = "* **Group:** QueryTarget"]
2795 pub const GL_PRIMITIVES_SUBMITTED: GLenum = 0x82EF;
2796 #[doc = "`GL_PRIMITIVE_BOUNDING_BOX: GLenum = 0x92BE`"]
2797 pub const GL_PRIMITIVE_BOUNDING_BOX: GLenum = 0x92BE;
2798 #[doc = "`GL_PRIMITIVE_RESTART: GLenum = 0x8F9D`"]
2799 #[doc = "* **Group:** EnableCap"]
2800 pub const GL_PRIMITIVE_RESTART: GLenum = 0x8F9D;
2801 #[doc = "`GL_PRIMITIVE_RESTART_FIXED_INDEX: GLenum = 0x8D69`"]
2802 #[doc = "* **Group:** EnableCap"]
2803 pub const GL_PRIMITIVE_RESTART_FIXED_INDEX: GLenum = 0x8D69;
2804 #[doc = "`GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED: GLenum = 0x8221`"]
2805 pub const GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED: GLenum = 0x8221;
2806 #[doc = "`GL_PRIMITIVE_RESTART_INDEX: GLenum = 0x8F9E`"]
2807 #[doc = "* **Group:** GetPName"]
2808 pub const GL_PRIMITIVE_RESTART_INDEX: GLenum = 0x8F9E;
2809 #[doc = "`GL_PROGRAM: GLenum = 0x82E2`"]
2810 #[doc = "* **Group:** ObjectIdentifier"]
2811 pub const GL_PROGRAM: GLenum = 0x82E2;
2812 #[doc = "`GL_PROGRAM_BINARY_FORMATS: GLenum = 0x87FF`"]
2813 #[doc = "* **Group:** GetPName"]
2814 pub const GL_PROGRAM_BINARY_FORMATS: GLenum = 0x87FF;
2815 #[doc = "`GL_PROGRAM_BINARY_LENGTH: GLenum = 0x8741`"]
2816 #[doc = "* **Group:** ProgramPropertyARB"]
2817 pub const GL_PROGRAM_BINARY_LENGTH: GLenum = 0x8741;
2818 #[doc = "`GL_PROGRAM_BINARY_RETRIEVABLE_HINT: GLenum = 0x8257`"]
2819 #[doc = "* **Groups:** ProgramParameterPName, HintTarget"]
2820 pub const GL_PROGRAM_BINARY_RETRIEVABLE_HINT: GLenum = 0x8257;
2821 #[doc = "`GL_PROGRAM_INPUT: GLenum = 0x92E3`"]
2822 #[doc = "* **Group:** ProgramInterface"]
2823 pub const GL_PROGRAM_INPUT: GLenum = 0x92E3;
2824 #[doc = "`GL_PROGRAM_KHR: GLenum = 0x82E2`"]
2825 pub const GL_PROGRAM_KHR: GLenum = 0x82E2;
2826 #[doc = "`GL_PROGRAM_OUTPUT: GLenum = 0x92E4`"]
2827 #[doc = "* **Group:** ProgramInterface"]
2828 pub const GL_PROGRAM_OUTPUT: GLenum = 0x92E4;
2829 #[doc = "`GL_PROGRAM_PIPELINE: GLenum = 0x82E4`"]
2830 #[doc = "* **Group:** ObjectIdentifier"]
2831 pub const GL_PROGRAM_PIPELINE: GLenum = 0x82E4;
2832 #[doc = "`GL_PROGRAM_PIPELINE_BINDING: GLenum = 0x825A`"]
2833 #[doc = "* **Group:** GetPName"]
2834 pub const GL_PROGRAM_PIPELINE_BINDING: GLenum = 0x825A;
2835 #[doc = "`GL_PROGRAM_PIPELINE_KHR: GLenum = 0x82E4`"]
2836 pub const GL_PROGRAM_PIPELINE_KHR: GLenum = 0x82E4;
2837 #[doc = "`GL_PROGRAM_POINT_SIZE: GLenum = 0x8642`"]
2838 #[doc = "* **Groups:** GetPName, EnableCap"]
2839 #[doc = "* **Alias Of:** `GL_VERTEX_PROGRAM_POINT_SIZE`"]
2840 pub const GL_PROGRAM_POINT_SIZE: GLenum = 0x8642;
2841 #[doc = "`GL_PROGRAM_SEPARABLE: GLenum = 0x8258`"]
2842 #[doc = "* **Group:** ProgramParameterPName"]
2843 pub const GL_PROGRAM_SEPARABLE: GLenum = 0x8258;
2844 #[doc = "`GL_PROVOKING_VERTEX: GLenum = 0x8E4F`"]
2845 #[doc = "* **Group:** GetPName"]
2846 pub const GL_PROVOKING_VERTEX: GLenum = 0x8E4F;
2847 #[doc = "`GL_PROXY_TEXTURE_1D: GLenum = 0x8063`"]
2848 #[doc = "* **Group:** TextureTarget"]
2849 pub const GL_PROXY_TEXTURE_1D: GLenum = 0x8063;
2850 #[doc = "`GL_PROXY_TEXTURE_1D_ARRAY: GLenum = 0x8C19`"]
2851 #[doc = "* **Group:** TextureTarget"]
2852 pub const GL_PROXY_TEXTURE_1D_ARRAY: GLenum = 0x8C19;
2853 #[doc = "`GL_PROXY_TEXTURE_2D: GLenum = 0x8064`"]
2854 #[doc = "* **Group:** TextureTarget"]
2855 pub const GL_PROXY_TEXTURE_2D: GLenum = 0x8064;
2856 #[doc = "`GL_PROXY_TEXTURE_2D_ARRAY: GLenum = 0x8C1B`"]
2857 #[doc = "* **Group:** TextureTarget"]
2858 pub const GL_PROXY_TEXTURE_2D_ARRAY: GLenum = 0x8C1B;
2859 #[doc = "`GL_PROXY_TEXTURE_2D_MULTISAMPLE: GLenum = 0x9101`"]
2860 #[doc = "* **Group:** TextureTarget"]
2861 pub const GL_PROXY_TEXTURE_2D_MULTISAMPLE: GLenum = 0x9101;
2862 #[doc = "`GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9103`"]
2863 #[doc = "* **Group:** TextureTarget"]
2864 pub const GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9103;
2865 #[doc = "`GL_PROXY_TEXTURE_3D: GLenum = 0x8070`"]
2866 #[doc = "* **Group:** TextureTarget"]
2867 pub const GL_PROXY_TEXTURE_3D: GLenum = 0x8070;
2868 #[doc = "`GL_PROXY_TEXTURE_CUBE_MAP: GLenum = 0x851B`"]
2869 #[doc = "* **Group:** TextureTarget"]
2870 pub const GL_PROXY_TEXTURE_CUBE_MAP: GLenum = 0x851B;
2871 #[doc = "`GL_PROXY_TEXTURE_CUBE_MAP_ARRAY: GLenum = 0x900B`"]
2872 #[doc = "* **Group:** TextureTarget"]
2873 pub const GL_PROXY_TEXTURE_CUBE_MAP_ARRAY: GLenum = 0x900B;
2874 #[doc = "`GL_PROXY_TEXTURE_RECTANGLE: GLenum = 0x84F7`"]
2875 #[doc = "* **Group:** TextureTarget"]
2876 pub const GL_PROXY_TEXTURE_RECTANGLE: GLenum = 0x84F7;
2877 #[doc = "`GL_QUADS: GLenum = 0x0007`"]
2878 #[doc = "* **Group:** PrimitiveType"]
2879 pub const GL_QUADS: GLenum = 0x0007;
2880 #[doc = "`GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION: GLenum = 0x8E4C`"]
2881 pub const GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION: GLenum = 0x8E4C;
2882 #[doc = "`GL_QUERY: GLenum = 0x82E3`"]
2883 #[doc = "* **Group:** ObjectIdentifier"]
2884 pub const GL_QUERY: GLenum = 0x82E3;
2885 #[doc = "`GL_QUERY_BUFFER: GLenum = 0x9192`"]
2886 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
2887 pub const GL_QUERY_BUFFER: GLenum = 0x9192;
2888 #[doc = "`GL_QUERY_BUFFER_BARRIER_BIT: GLbitfield = 0x00008000`"]
2889 #[doc = "* **Group:** MemoryBarrierMask"]
2890 pub const GL_QUERY_BUFFER_BARRIER_BIT: GLbitfield = 0x00008000;
2891 #[doc = "`GL_QUERY_BUFFER_BINDING: GLenum = 0x9193`"]
2892 pub const GL_QUERY_BUFFER_BINDING: GLenum = 0x9193;
2893 #[doc = "`GL_QUERY_BY_REGION_NO_WAIT: GLenum = 0x8E16`"]
2894 #[doc = "* **Group:** ConditionalRenderMode"]
2895 pub const GL_QUERY_BY_REGION_NO_WAIT: GLenum = 0x8E16;
2896 #[doc = "`GL_QUERY_BY_REGION_NO_WAIT_INVERTED: GLenum = 0x8E1A`"]
2897 #[doc = "* **Group:** ConditionalRenderMode"]
2898 pub const GL_QUERY_BY_REGION_NO_WAIT_INVERTED: GLenum = 0x8E1A;
2899 #[doc = "`GL_QUERY_BY_REGION_WAIT: GLenum = 0x8E15`"]
2900 #[doc = "* **Group:** ConditionalRenderMode"]
2901 pub const GL_QUERY_BY_REGION_WAIT: GLenum = 0x8E15;
2902 #[doc = "`GL_QUERY_BY_REGION_WAIT_INVERTED: GLenum = 0x8E19`"]
2903 #[doc = "* **Group:** ConditionalRenderMode"]
2904 pub const GL_QUERY_BY_REGION_WAIT_INVERTED: GLenum = 0x8E19;
2905 #[doc = "`GL_QUERY_COUNTER_BITS: GLenum = 0x8864`"]
2906 #[doc = "* **Group:** QueryParameterName"]
2907 pub const GL_QUERY_COUNTER_BITS: GLenum = 0x8864;
2908 #[doc = "`GL_QUERY_COUNTER_BITS_EXT: GLenum = 0x8864`"]
2909 pub const GL_QUERY_COUNTER_BITS_EXT: GLenum = 0x8864;
2910 #[doc = "`GL_QUERY_KHR: GLenum = 0x82E3`"]
2911 pub const GL_QUERY_KHR: GLenum = 0x82E3;
2912 #[doc = "`GL_QUERY_NO_WAIT: GLenum = 0x8E14`"]
2913 #[doc = "* **Group:** ConditionalRenderMode"]
2914 pub const GL_QUERY_NO_WAIT: GLenum = 0x8E14;
2915 #[doc = "`GL_QUERY_NO_WAIT_INVERTED: GLenum = 0x8E18`"]
2916 #[doc = "* **Group:** ConditionalRenderMode"]
2917 pub const GL_QUERY_NO_WAIT_INVERTED: GLenum = 0x8E18;
2918 #[doc = "`GL_QUERY_RESULT: GLenum = 0x8866`"]
2919 #[doc = "* **Group:** QueryObjectParameterName"]
2920 pub const GL_QUERY_RESULT: GLenum = 0x8866;
2921 #[doc = "`GL_QUERY_RESULT_AVAILABLE: GLenum = 0x8867`"]
2922 #[doc = "* **Group:** QueryObjectParameterName"]
2923 pub const GL_QUERY_RESULT_AVAILABLE: GLenum = 0x8867;
2924 #[doc = "`GL_QUERY_RESULT_AVAILABLE_EXT: GLenum = 0x8867`"]
2925 pub const GL_QUERY_RESULT_AVAILABLE_EXT: GLenum = 0x8867;
2926 #[doc = "`GL_QUERY_RESULT_EXT: GLenum = 0x8866`"]
2927 pub const GL_QUERY_RESULT_EXT: GLenum = 0x8866;
2928 #[doc = "`GL_QUERY_RESULT_NO_WAIT: GLenum = 0x9194`"]
2929 #[doc = "* **Group:** QueryObjectParameterName"]
2930 pub const GL_QUERY_RESULT_NO_WAIT: GLenum = 0x9194;
2931 #[doc = "`GL_QUERY_TARGET: GLenum = 0x82EA`"]
2932 #[doc = "* **Group:** QueryObjectParameterName"]
2933 pub const GL_QUERY_TARGET: GLenum = 0x82EA;
2934 #[doc = "`GL_QUERY_WAIT: GLenum = 0x8E13`"]
2935 #[doc = "* **Group:** ConditionalRenderMode"]
2936 pub const GL_QUERY_WAIT: GLenum = 0x8E13;
2937 #[doc = "`GL_QUERY_WAIT_INVERTED: GLenum = 0x8E17`"]
2938 #[doc = "* **Group:** ConditionalRenderMode"]
2939 pub const GL_QUERY_WAIT_INVERTED: GLenum = 0x8E17;
2940 #[doc = "`GL_R11F_G11F_B10F: GLenum = 0x8C3A`"]
2941 #[doc = "* **Group:** InternalFormat"]
2942 pub const GL_R11F_G11F_B10F: GLenum = 0x8C3A;
2943 #[doc = "`GL_R16: GLenum = 0x822A`"]
2944 #[doc = "* **Group:** InternalFormat"]
2945 pub const GL_R16: GLenum = 0x822A;
2946 #[doc = "`GL_R16F: GLenum = 0x822D`"]
2947 #[doc = "* **Group:** InternalFormat"]
2948 pub const GL_R16F: GLenum = 0x822D;
2949 #[doc = "`GL_R16I: GLenum = 0x8233`"]
2950 #[doc = "* **Group:** InternalFormat"]
2951 pub const GL_R16I: GLenum = 0x8233;
2952 #[doc = "`GL_R16UI: GLenum = 0x8234`"]
2953 #[doc = "* **Group:** InternalFormat"]
2954 pub const GL_R16UI: GLenum = 0x8234;
2955 #[doc = "`GL_R16_SNORM: GLenum = 0x8F98`"]
2956 #[doc = "* **Group:** InternalFormat"]
2957 pub const GL_R16_SNORM: GLenum = 0x8F98;
2958 #[doc = "`GL_R32F: GLenum = 0x822E`"]
2959 #[doc = "* **Group:** InternalFormat"]
2960 pub const GL_R32F: GLenum = 0x822E;
2961 #[doc = "`GL_R32I: GLenum = 0x8235`"]
2962 #[doc = "* **Group:** InternalFormat"]
2963 pub const GL_R32I: GLenum = 0x8235;
2964 #[doc = "`GL_R32UI: GLenum = 0x8236`"]
2965 #[doc = "* **Group:** InternalFormat"]
2966 pub const GL_R32UI: GLenum = 0x8236;
2967 #[doc = "`GL_R3_G3_B2: GLenum = 0x2A10`"]
2968 #[doc = "* **Group:** InternalFormat"]
2969 pub const GL_R3_G3_B2: GLenum = 0x2A10;
2970 #[doc = "`GL_R8: GLenum = 0x8229`"]
2971 #[doc = "* **Group:** InternalFormat"]
2972 pub const GL_R8: GLenum = 0x8229;
2973 #[doc = "`GL_R8I: GLenum = 0x8231`"]
2974 #[doc = "* **Group:** InternalFormat"]
2975 pub const GL_R8I: GLenum = 0x8231;
2976 #[doc = "`GL_R8UI: GLenum = 0x8232`"]
2977 #[doc = "* **Group:** InternalFormat"]
2978 pub const GL_R8UI: GLenum = 0x8232;
2979 #[doc = "`GL_R8_SNORM: GLenum = 0x8F94`"]
2980 #[doc = "* **Group:** InternalFormat"]
2981 pub const GL_R8_SNORM: GLenum = 0x8F94;
2982 #[doc = "`GL_RASTERIZER_DISCARD: GLenum = 0x8C89`"]
2983 #[doc = "* **Group:** EnableCap"]
2984 pub const GL_RASTERIZER_DISCARD: GLenum = 0x8C89;
2985 #[doc = "`GL_READ_BUFFER: GLenum = 0x0C02`"]
2986 #[doc = "* **Group:** GetPName"]
2987 pub const GL_READ_BUFFER: GLenum = 0x0C02;
2988 #[doc = "`GL_READ_FRAMEBUFFER: GLenum = 0x8CA8`"]
2989 #[doc = "* **Groups:** CheckFramebufferStatusTarget, FramebufferTarget"]
2990 pub const GL_READ_FRAMEBUFFER: GLenum = 0x8CA8;
2991 #[doc = "`GL_READ_FRAMEBUFFER_BINDING: GLenum = 0x8CAA`"]
2992 #[doc = "* **Group:** GetPName"]
2993 pub const GL_READ_FRAMEBUFFER_BINDING: GLenum = 0x8CAA;
2994 #[doc = "`GL_READ_ONLY: GLenum = 0x88B8`"]
2995 #[doc = "* **Group:** BufferAccessARB"]
2996 pub const GL_READ_ONLY: GLenum = 0x88B8;
2997 #[doc = "`GL_READ_PIXELS: GLenum = 0x828C`"]
2998 #[doc = "* **Group:** InternalFormatPName"]
2999 pub const GL_READ_PIXELS: GLenum = 0x828C;
3000 #[doc = "`GL_READ_PIXELS_FORMAT: GLenum = 0x828D`"]
3001 #[doc = "* **Group:** InternalFormatPName"]
3002 pub const GL_READ_PIXELS_FORMAT: GLenum = 0x828D;
3003 #[doc = "`GL_READ_PIXELS_TYPE: GLenum = 0x828E`"]
3004 #[doc = "* **Group:** InternalFormatPName"]
3005 pub const GL_READ_PIXELS_TYPE: GLenum = 0x828E;
3006 #[doc = "`GL_READ_WRITE: GLenum = 0x88BA`"]
3007 #[doc = "* **Group:** BufferAccessARB"]
3008 pub const GL_READ_WRITE: GLenum = 0x88BA;
3009 #[doc = "`GL_RED: GLenum = 0x1903`"]
3010 #[doc = "* **Groups:** TextureSwizzle, PixelFormat, InternalFormat"]
3011 pub const GL_RED: GLenum = 0x1903;
3012 #[doc = "`GL_RED_BITS: GLenum = 0x0D52`"]
3013 #[doc = "* **Group:** GetPName"]
3014 pub const GL_RED_BITS: GLenum = 0x0D52;
3015 #[doc = "`GL_RED_INTEGER: GLenum = 0x8D94`"]
3016 #[doc = "* **Group:** PixelFormat"]
3017 pub const GL_RED_INTEGER: GLenum = 0x8D94;
3018 #[doc = "`GL_REFERENCED_BY_COMPUTE_SHADER: GLenum = 0x930B`"]
3019 #[doc = "* **Group:** ProgramResourceProperty"]
3020 pub const GL_REFERENCED_BY_COMPUTE_SHADER: GLenum = 0x930B;
3021 #[doc = "`GL_REFERENCED_BY_FRAGMENT_SHADER: GLenum = 0x930A`"]
3022 #[doc = "* **Group:** ProgramResourceProperty"]
3023 pub const GL_REFERENCED_BY_FRAGMENT_SHADER: GLenum = 0x930A;
3024 #[doc = "`GL_REFERENCED_BY_GEOMETRY_SHADER: GLenum = 0x9309`"]
3025 #[doc = "* **Group:** ProgramResourceProperty"]
3026 pub const GL_REFERENCED_BY_GEOMETRY_SHADER: GLenum = 0x9309;
3027 #[doc = "`GL_REFERENCED_BY_TESS_CONTROL_SHADER: GLenum = 0x9307`"]
3028 #[doc = "* **Group:** ProgramResourceProperty"]
3029 pub const GL_REFERENCED_BY_TESS_CONTROL_SHADER: GLenum = 0x9307;
3030 #[doc = "`GL_REFERENCED_BY_TESS_EVALUATION_SHADER: GLenum = 0x9308`"]
3031 #[doc = "* **Group:** ProgramResourceProperty"]
3032 pub const GL_REFERENCED_BY_TESS_EVALUATION_SHADER: GLenum = 0x9308;
3033 #[doc = "`GL_REFERENCED_BY_VERTEX_SHADER: GLenum = 0x9306`"]
3034 #[doc = "* **Group:** ProgramResourceProperty"]
3035 pub const GL_REFERENCED_BY_VERTEX_SHADER: GLenum = 0x9306;
3036 #[doc = "`GL_RENDERBUFFER: GLenum = 0x8D41`"]
3037 #[doc = "* **Groups:** ObjectIdentifier, RenderbufferTarget, CopyImageSubDataTarget"]
3038 pub const GL_RENDERBUFFER: GLenum = 0x8D41;
3039 #[doc = "`GL_RENDERBUFFER_ALPHA_SIZE: GLenum = 0x8D53`"]
3040 #[doc = "* **Group:** RenderbufferParameterName"]
3041 pub const GL_RENDERBUFFER_ALPHA_SIZE: GLenum = 0x8D53;
3042 #[doc = "`GL_RENDERBUFFER_BINDING: GLenum = 0x8CA7`"]
3043 #[doc = "* **Group:** GetPName"]
3044 pub const GL_RENDERBUFFER_BINDING: GLenum = 0x8CA7;
3045 #[doc = "`GL_RENDERBUFFER_BLUE_SIZE: GLenum = 0x8D52`"]
3046 #[doc = "* **Group:** RenderbufferParameterName"]
3047 pub const GL_RENDERBUFFER_BLUE_SIZE: GLenum = 0x8D52;
3048 #[doc = "`GL_RENDERBUFFER_DEPTH_SIZE: GLenum = 0x8D54`"]
3049 #[doc = "* **Group:** RenderbufferParameterName"]
3050 pub const GL_RENDERBUFFER_DEPTH_SIZE: GLenum = 0x8D54;
3051 #[doc = "`GL_RENDERBUFFER_GREEN_SIZE: GLenum = 0x8D51`"]
3052 #[doc = "* **Group:** RenderbufferParameterName"]
3053 pub const GL_RENDERBUFFER_GREEN_SIZE: GLenum = 0x8D51;
3054 #[doc = "`GL_RENDERBUFFER_HEIGHT: GLenum = 0x8D43`"]
3055 #[doc = "* **Group:** RenderbufferParameterName"]
3056 pub const GL_RENDERBUFFER_HEIGHT: GLenum = 0x8D43;
3057 #[doc = "`GL_RENDERBUFFER_INTERNAL_FORMAT: GLenum = 0x8D44`"]
3058 #[doc = "* **Group:** RenderbufferParameterName"]
3059 pub const GL_RENDERBUFFER_INTERNAL_FORMAT: GLenum = 0x8D44;
3060 #[doc = "`GL_RENDERBUFFER_RED_SIZE: GLenum = 0x8D50`"]
3061 #[doc = "* **Group:** RenderbufferParameterName"]
3062 pub const GL_RENDERBUFFER_RED_SIZE: GLenum = 0x8D50;
3063 #[doc = "`GL_RENDERBUFFER_SAMPLES: GLenum = 0x8CAB`"]
3064 #[doc = "* **Group:** RenderbufferParameterName"]
3065 pub const GL_RENDERBUFFER_SAMPLES: GLenum = 0x8CAB;
3066 #[doc = "`GL_RENDERBUFFER_SAMPLES_EXT: GLenum = 0x8CAB`"]
3067 #[doc = "* **Group:** RenderbufferParameterName"]
3068 #[cfg_attr(
3069 docs_rs,
3070 doc(cfg(any(feature = "GL_EXT_multisampled_render_to_texture")))
3071 )]
3072 pub const GL_RENDERBUFFER_SAMPLES_EXT: GLenum = 0x8CAB;
3073 #[doc = "`GL_RENDERBUFFER_STENCIL_SIZE: GLenum = 0x8D55`"]
3074 #[doc = "* **Group:** RenderbufferParameterName"]
3075 pub const GL_RENDERBUFFER_STENCIL_SIZE: GLenum = 0x8D55;
3076 #[doc = "`GL_RENDERBUFFER_WIDTH: GLenum = 0x8D42`"]
3077 #[doc = "* **Group:** RenderbufferParameterName"]
3078 pub const GL_RENDERBUFFER_WIDTH: GLenum = 0x8D42;
3079 #[doc = "`GL_RENDERER: GLenum = 0x1F01`"]
3080 #[doc = "* **Group:** StringName"]
3081 pub const GL_RENDERER: GLenum = 0x1F01;
3082 #[doc = "`GL_REPEAT: GLenum = 0x2901`"]
3083 #[doc = "* **Group:** TextureWrapMode"]
3084 pub const GL_REPEAT: GLenum = 0x2901;
3085 #[doc = "`GL_REPLACE: GLenum = 0x1E01`"]
3086 #[doc = "* **Groups:** StencilOp, LightEnvModeSGIX"]
3087 pub const GL_REPLACE: GLenum = 0x1E01;
3088 #[doc = "`GL_RESET_NOTIFICATION_STRATEGY: GLenum = 0x8256`"]
3089 pub const GL_RESET_NOTIFICATION_STRATEGY: GLenum = 0x8256;
3090 #[doc = "`GL_RG: GLenum = 0x8227`"]
3091 #[doc = "* **Groups:** InternalFormat, PixelFormat"]
3092 pub const GL_RG: GLenum = 0x8227;
3093 #[doc = "`GL_RG16: GLenum = 0x822C`"]
3094 #[doc = "* **Group:** InternalFormat"]
3095 pub const GL_RG16: GLenum = 0x822C;
3096 #[doc = "`GL_RG16F: GLenum = 0x822F`"]
3097 #[doc = "* **Group:** InternalFormat"]
3098 pub const GL_RG16F: GLenum = 0x822F;
3099 #[doc = "`GL_RG16I: GLenum = 0x8239`"]
3100 #[doc = "* **Group:** InternalFormat"]
3101 pub const GL_RG16I: GLenum = 0x8239;
3102 #[doc = "`GL_RG16UI: GLenum = 0x823A`"]
3103 #[doc = "* **Group:** InternalFormat"]
3104 pub const GL_RG16UI: GLenum = 0x823A;
3105 #[doc = "`GL_RG16_SNORM: GLenum = 0x8F99`"]
3106 #[doc = "* **Group:** InternalFormat"]
3107 pub const GL_RG16_SNORM: GLenum = 0x8F99;
3108 #[doc = "`GL_RG32F: GLenum = 0x8230`"]
3109 #[doc = "* **Group:** InternalFormat"]
3110 pub const GL_RG32F: GLenum = 0x8230;
3111 #[doc = "`GL_RG32I: GLenum = 0x823B`"]
3112 #[doc = "* **Group:** InternalFormat"]
3113 pub const GL_RG32I: GLenum = 0x823B;
3114 #[doc = "`GL_RG32UI: GLenum = 0x823C`"]
3115 #[doc = "* **Group:** InternalFormat"]
3116 pub const GL_RG32UI: GLenum = 0x823C;
3117 #[doc = "`GL_RG8: GLenum = 0x822B`"]
3118 #[doc = "* **Group:** InternalFormat"]
3119 pub const GL_RG8: GLenum = 0x822B;
3120 #[doc = "`GL_RG8I: GLenum = 0x8237`"]
3121 #[doc = "* **Group:** InternalFormat"]
3122 pub const GL_RG8I: GLenum = 0x8237;
3123 #[doc = "`GL_RG8UI: GLenum = 0x8238`"]
3124 #[doc = "* **Group:** InternalFormat"]
3125 pub const GL_RG8UI: GLenum = 0x8238;
3126 #[doc = "`GL_RG8_SNORM: GLenum = 0x8F95`"]
3127 #[doc = "* **Group:** InternalFormat"]
3128 pub const GL_RG8_SNORM: GLenum = 0x8F95;
3129 #[doc = "`GL_RGB: GLenum = 0x1907`"]
3130 #[doc = "* **Groups:** PixelTexGenMode, CombinerPortionNV, PathColorFormat, CombinerComponentUsageNV, PixelFormat, InternalFormat"]
3131 pub const GL_RGB: GLenum = 0x1907;
3132 #[doc = "`GL_RGB10: GLenum = 0x8052`"]
3133 #[doc = "* **Group:** InternalFormat"]
3134 pub const GL_RGB10: GLenum = 0x8052;
3135 #[doc = "`GL_RGB10_A2: GLenum = 0x8059`"]
3136 #[doc = "* **Group:** InternalFormat"]
3137 pub const GL_RGB10_A2: GLenum = 0x8059;
3138 #[doc = "`GL_RGB10_A2UI: GLenum = 0x906F`"]
3139 #[doc = "* **Group:** InternalFormat"]
3140 pub const GL_RGB10_A2UI: GLenum = 0x906F;
3141 #[doc = "`GL_RGB12: GLenum = 0x8053`"]
3142 #[doc = "* **Group:** InternalFormat"]
3143 pub const GL_RGB12: GLenum = 0x8053;
3144 #[doc = "`GL_RGB16: GLenum = 0x8054`"]
3145 #[doc = "* **Group:** InternalFormat"]
3146 pub const GL_RGB16: GLenum = 0x8054;
3147 #[doc = "`GL_RGB16F: GLenum = 0x881B`"]
3148 #[doc = "* **Group:** InternalFormat"]
3149 pub const GL_RGB16F: GLenum = 0x881B;
3150 #[doc = "`GL_RGB16I: GLenum = 0x8D89`"]
3151 #[doc = "* **Group:** InternalFormat"]
3152 pub const GL_RGB16I: GLenum = 0x8D89;
3153 #[doc = "`GL_RGB16UI: GLenum = 0x8D77`"]
3154 #[doc = "* **Group:** InternalFormat"]
3155 pub const GL_RGB16UI: GLenum = 0x8D77;
3156 #[doc = "`GL_RGB16_SNORM: GLenum = 0x8F9A`"]
3157 #[doc = "* **Group:** InternalFormat"]
3158 pub const GL_RGB16_SNORM: GLenum = 0x8F9A;
3159 #[doc = "`GL_RGB32F: GLenum = 0x8815`"]
3160 #[doc = "* **Group:** InternalFormat"]
3161 pub const GL_RGB32F: GLenum = 0x8815;
3162 #[doc = "`GL_RGB32I: GLenum = 0x8D83`"]
3163 #[doc = "* **Group:** InternalFormat"]
3164 pub const GL_RGB32I: GLenum = 0x8D83;
3165 #[doc = "`GL_RGB32UI: GLenum = 0x8D71`"]
3166 #[doc = "* **Group:** InternalFormat"]
3167 pub const GL_RGB32UI: GLenum = 0x8D71;
3168 #[doc = "`GL_RGB4: GLenum = 0x804F`"]
3169 #[doc = "* **Group:** InternalFormat"]
3170 pub const GL_RGB4: GLenum = 0x804F;
3171 #[doc = "`GL_RGB5: GLenum = 0x8050`"]
3172 #[doc = "* **Group:** InternalFormat"]
3173 pub const GL_RGB5: GLenum = 0x8050;
3174 #[doc = "`GL_RGB565: GLenum = 0x8D62`"]
3175 pub const GL_RGB565: GLenum = 0x8D62;
3176 #[doc = "`GL_RGB5_A1: GLenum = 0x8057`"]
3177 #[doc = "* **Group:** InternalFormat"]
3178 pub const GL_RGB5_A1: GLenum = 0x8057;
3179 #[doc = "`GL_RGB8: GLenum = 0x8051`"]
3180 #[doc = "* **Group:** InternalFormat"]
3181 pub const GL_RGB8: GLenum = 0x8051;
3182 #[doc = "`GL_RGB8I: GLenum = 0x8D8F`"]
3183 #[doc = "* **Group:** InternalFormat"]
3184 pub const GL_RGB8I: GLenum = 0x8D8F;
3185 #[doc = "`GL_RGB8UI: GLenum = 0x8D7D`"]
3186 #[doc = "* **Group:** InternalFormat"]
3187 pub const GL_RGB8UI: GLenum = 0x8D7D;
3188 #[doc = "`GL_RGB8_SNORM: GLenum = 0x8F96`"]
3189 #[doc = "* **Group:** InternalFormat"]
3190 pub const GL_RGB8_SNORM: GLenum = 0x8F96;
3191 #[doc = "`GL_RGB9_E5: GLenum = 0x8C3D`"]
3192 #[doc = "* **Group:** InternalFormat"]
3193 pub const GL_RGB9_E5: GLenum = 0x8C3D;
3194 #[doc = "`GL_RGBA: GLenum = 0x1908`"]
3195 #[doc = "* **Groups:** PixelTexGenMode, PathColorFormat, PixelFormat, InternalFormat"]
3196 pub const GL_RGBA: GLenum = 0x1908;
3197 #[doc = "`GL_RGBA12: GLenum = 0x805A`"]
3198 #[doc = "* **Group:** InternalFormat"]
3199 pub const GL_RGBA12: GLenum = 0x805A;
3200 #[doc = "`GL_RGBA16: GLenum = 0x805B`"]
3201 #[doc = "* **Group:** InternalFormat"]
3202 pub const GL_RGBA16: GLenum = 0x805B;
3203 #[doc = "`GL_RGBA16F: GLenum = 0x881A`"]
3204 #[doc = "* **Group:** InternalFormat"]
3205 pub const GL_RGBA16F: GLenum = 0x881A;
3206 #[doc = "`GL_RGBA16I: GLenum = 0x8D88`"]
3207 #[doc = "* **Group:** InternalFormat"]
3208 pub const GL_RGBA16I: GLenum = 0x8D88;
3209 #[doc = "`GL_RGBA16UI: GLenum = 0x8D76`"]
3210 #[doc = "* **Group:** InternalFormat"]
3211 pub const GL_RGBA16UI: GLenum = 0x8D76;
3212 #[doc = "`GL_RGBA16_SNORM: GLenum = 0x8F9B`"]
3213 pub const GL_RGBA16_SNORM: GLenum = 0x8F9B;
3214 #[doc = "`GL_RGBA2: GLenum = 0x8055`"]
3215 pub const GL_RGBA2: GLenum = 0x8055;
3216 #[doc = "`GL_RGBA32F: GLenum = 0x8814`"]
3217 #[doc = "* **Group:** InternalFormat"]
3218 pub const GL_RGBA32F: GLenum = 0x8814;
3219 #[doc = "`GL_RGBA32I: GLenum = 0x8D82`"]
3220 #[doc = "* **Group:** InternalFormat"]
3221 pub const GL_RGBA32I: GLenum = 0x8D82;
3222 #[doc = "`GL_RGBA32UI: GLenum = 0x8D70`"]
3223 #[doc = "* **Group:** InternalFormat"]
3224 pub const GL_RGBA32UI: GLenum = 0x8D70;
3225 #[doc = "`GL_RGBA4: GLenum = 0x8056`"]
3226 #[doc = "* **Group:** InternalFormat"]
3227 pub const GL_RGBA4: GLenum = 0x8056;
3228 #[doc = "`GL_RGBA8: GLenum = 0x8058`"]
3229 #[doc = "* **Group:** InternalFormat"]
3230 pub const GL_RGBA8: GLenum = 0x8058;
3231 #[doc = "`GL_RGBA8I: GLenum = 0x8D8E`"]
3232 #[doc = "* **Group:** InternalFormat"]
3233 pub const GL_RGBA8I: GLenum = 0x8D8E;
3234 #[doc = "`GL_RGBA8UI: GLenum = 0x8D7C`"]
3235 #[doc = "* **Group:** InternalFormat"]
3236 pub const GL_RGBA8UI: GLenum = 0x8D7C;
3237 #[doc = "`GL_RGBA8_SNORM: GLenum = 0x8F97`"]
3238 #[doc = "* **Group:** InternalFormat"]
3239 pub const GL_RGBA8_SNORM: GLenum = 0x8F97;
3240 #[doc = "`GL_RGBA_INTEGER: GLenum = 0x8D99`"]
3241 #[doc = "* **Group:** PixelFormat"]
3242 pub const GL_RGBA_INTEGER: GLenum = 0x8D99;
3243 #[doc = "`GL_RGB_INTEGER: GLenum = 0x8D98`"]
3244 #[doc = "* **Group:** PixelFormat"]
3245 pub const GL_RGB_INTEGER: GLenum = 0x8D98;
3246 #[doc = "`GL_RG_INTEGER: GLenum = 0x8228`"]
3247 #[doc = "* **Group:** PixelFormat"]
3248 pub const GL_RG_INTEGER: GLenum = 0x8228;
3249 #[doc = "`GL_RIGHT: GLenum = 0x0407`"]
3250 #[doc = "* **Groups:** ColorBuffer, DrawBufferMode, ReadBufferMode"]
3251 pub const GL_RIGHT: GLenum = 0x0407;
3252 #[doc = "`GL_SAMPLER: GLenum = 0x82E6`"]
3253 #[doc = "* **Group:** ObjectIdentifier"]
3254 pub const GL_SAMPLER: GLenum = 0x82E6;
3255 #[doc = "`GL_SAMPLER_1D: GLenum = 0x8B5D`"]
3256 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3257 pub const GL_SAMPLER_1D: GLenum = 0x8B5D;
3258 #[doc = "`GL_SAMPLER_1D_ARRAY: GLenum = 0x8DC0`"]
3259 #[doc = "* **Groups:** GlslTypeToken, UniformType"]
3260 pub const GL_SAMPLER_1D_ARRAY: GLenum = 0x8DC0;
3261 #[doc = "`GL_SAMPLER_1D_ARRAY_SHADOW: GLenum = 0x8DC3`"]
3262 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3263 pub const GL_SAMPLER_1D_ARRAY_SHADOW: GLenum = 0x8DC3;
3264 #[doc = "`GL_SAMPLER_1D_SHADOW: GLenum = 0x8B61`"]
3265 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3266 pub const GL_SAMPLER_1D_SHADOW: GLenum = 0x8B61;
3267 #[doc = "`GL_SAMPLER_2D: GLenum = 0x8B5E`"]
3268 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3269 pub const GL_SAMPLER_2D: GLenum = 0x8B5E;
3270 #[doc = "`GL_SAMPLER_2D_ARRAY: GLenum = 0x8DC1`"]
3271 #[doc = "* **Groups:** GlslTypeToken, UniformType"]
3272 pub const GL_SAMPLER_2D_ARRAY: GLenum = 0x8DC1;
3273 #[doc = "`GL_SAMPLER_2D_ARRAY_SHADOW: GLenum = 0x8DC4`"]
3274 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3275 pub const GL_SAMPLER_2D_ARRAY_SHADOW: GLenum = 0x8DC4;
3276 #[doc = "`GL_SAMPLER_2D_MULTISAMPLE: GLenum = 0x9108`"]
3277 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3278 pub const GL_SAMPLER_2D_MULTISAMPLE: GLenum = 0x9108;
3279 #[doc = "`GL_SAMPLER_2D_MULTISAMPLE_ARRAY: GLenum = 0x910B`"]
3280 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3281 pub const GL_SAMPLER_2D_MULTISAMPLE_ARRAY: GLenum = 0x910B;
3282 #[doc = "`GL_SAMPLER_2D_RECT: GLenum = 0x8B63`"]
3283 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3284 pub const GL_SAMPLER_2D_RECT: GLenum = 0x8B63;
3285 #[doc = "`GL_SAMPLER_2D_RECT_SHADOW: GLenum = 0x8B64`"]
3286 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3287 pub const GL_SAMPLER_2D_RECT_SHADOW: GLenum = 0x8B64;
3288 #[doc = "`GL_SAMPLER_2D_SHADOW: GLenum = 0x8B62`"]
3289 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3290 pub const GL_SAMPLER_2D_SHADOW: GLenum = 0x8B62;
3291 #[doc = "`GL_SAMPLER_3D: GLenum = 0x8B5F`"]
3292 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3293 pub const GL_SAMPLER_3D: GLenum = 0x8B5F;
3294 #[doc = "`GL_SAMPLER_BINDING: GLenum = 0x8919`"]
3295 #[doc = "* **Group:** GetPName"]
3296 pub const GL_SAMPLER_BINDING: GLenum = 0x8919;
3297 #[doc = "`GL_SAMPLER_BUFFER: GLenum = 0x8DC2`"]
3298 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3299 pub const GL_SAMPLER_BUFFER: GLenum = 0x8DC2;
3300 #[doc = "`GL_SAMPLER_CUBE: GLenum = 0x8B60`"]
3301 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3302 pub const GL_SAMPLER_CUBE: GLenum = 0x8B60;
3303 #[doc = "`GL_SAMPLER_CUBE_MAP_ARRAY: GLenum = 0x900C`"]
3304 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3305 pub const GL_SAMPLER_CUBE_MAP_ARRAY: GLenum = 0x900C;
3306 #[doc = "`GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW: GLenum = 0x900D`"]
3307 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3308 pub const GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW: GLenum = 0x900D;
3309 #[doc = "`GL_SAMPLER_CUBE_SHADOW: GLenum = 0x8DC5`"]
3310 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
3311 pub const GL_SAMPLER_CUBE_SHADOW: GLenum = 0x8DC5;
3312 #[doc = "`GL_SAMPLER_KHR: GLenum = 0x82E6`"]
3313 pub const GL_SAMPLER_KHR: GLenum = 0x82E6;
3314 #[doc = "`GL_SAMPLES: GLenum = 0x80A9`"]
3315 #[doc = "* **Groups:** GetFramebufferParameter, GetPName, InternalFormatPName"]
3316 pub const GL_SAMPLES: GLenum = 0x80A9;
3317 #[doc = "`GL_SAMPLES_PASSED: GLenum = 0x8914`"]
3318 #[doc = "* **Group:** QueryTarget"]
3319 pub const GL_SAMPLES_PASSED: GLenum = 0x8914;
3320 #[doc = "`GL_SAMPLE_ALPHA_TO_COVERAGE: GLenum = 0x809E`"]
3321 #[doc = "* **Group:** EnableCap"]
3322 pub const GL_SAMPLE_ALPHA_TO_COVERAGE: GLenum = 0x809E;
3323 #[doc = "`GL_SAMPLE_ALPHA_TO_ONE: GLenum = 0x809F`"]
3324 #[doc = "* **Group:** EnableCap"]
3325 pub const GL_SAMPLE_ALPHA_TO_ONE: GLenum = 0x809F;
3326 #[doc = "`GL_SAMPLE_BUFFERS: GLenum = 0x80A8`"]
3327 #[doc = "* **Groups:** GetFramebufferParameter, GetPName"]
3328 pub const GL_SAMPLE_BUFFERS: GLenum = 0x80A8;
3329 #[doc = "`GL_SAMPLE_COVERAGE: GLenum = 0x80A0`"]
3330 #[doc = "* **Group:** EnableCap"]
3331 pub const GL_SAMPLE_COVERAGE: GLenum = 0x80A0;
3332 #[doc = "`GL_SAMPLE_COVERAGE_INVERT: GLenum = 0x80AB`"]
3333 #[doc = "* **Group:** GetPName"]
3334 pub const GL_SAMPLE_COVERAGE_INVERT: GLenum = 0x80AB;
3335 #[doc = "`GL_SAMPLE_COVERAGE_VALUE: GLenum = 0x80AA`"]
3336 #[doc = "* **Group:** GetPName"]
3337 pub const GL_SAMPLE_COVERAGE_VALUE: GLenum = 0x80AA;
3338 #[doc = "`GL_SAMPLE_MASK: GLenum = 0x8E51`"]
3339 #[doc = "* **Group:** EnableCap"]
3340 pub const GL_SAMPLE_MASK: GLenum = 0x8E51;
3341 #[doc = "`GL_SAMPLE_MASK_VALUE: GLenum = 0x8E52`"]
3342 pub const GL_SAMPLE_MASK_VALUE: GLenum = 0x8E52;
3343 #[doc = "`GL_SAMPLE_POSITION: GLenum = 0x8E50`"]
3344 #[doc = "* **Group:** GetMultisamplePNameNV"]
3345 pub const GL_SAMPLE_POSITION: GLenum = 0x8E50;
3346 #[doc = "`GL_SAMPLE_SHADING: GLenum = 0x8C36`"]
3347 #[doc = "* **Group:** EnableCap"]
3348 pub const GL_SAMPLE_SHADING: GLenum = 0x8C36;
3349 #[doc = "`GL_SCISSOR_BOX: GLenum = 0x0C10`"]
3350 #[doc = "* **Group:** GetPName"]
3351 pub const GL_SCISSOR_BOX: GLenum = 0x0C10;
3352 #[doc = "`GL_SCISSOR_TEST: GLenum = 0x0C11`"]
3353 #[doc = "* **Groups:** GetPName, EnableCap"]
3354 pub const GL_SCISSOR_TEST: GLenum = 0x0C11;
3355 #[doc = "`GL_SCREEN: GLenum = 0x9295`"]
3356 pub const GL_SCREEN: GLenum = 0x9295;
3357 #[doc = "`GL_SEPARATE_ATTRIBS: GLenum = 0x8C8D`"]
3358 #[doc = "* **Group:** TransformFeedbackBufferMode"]
3359 pub const GL_SEPARATE_ATTRIBS: GLenum = 0x8C8D;
3360 #[doc = "`GL_SET: GLenum = 0x150F`"]
3361 #[doc = "* **Group:** LogicOp"]
3362 pub const GL_SET: GLenum = 0x150F;
3363 #[doc = "`GL_SHADER: GLenum = 0x82E1`"]
3364 #[doc = "* **Group:** ObjectIdentifier"]
3365 pub const GL_SHADER: GLenum = 0x82E1;
3366 #[doc = "`GL_SHADER_BINARY_FORMATS: GLenum = 0x8DF8`"]
3367 pub const GL_SHADER_BINARY_FORMATS: GLenum = 0x8DF8;
3368 #[doc = "`GL_SHADER_BINARY_FORMAT_SPIR_V: GLenum = 0x9551`"]
3369 #[doc = "* **Group:** ShaderBinaryFormat"]
3370 pub const GL_SHADER_BINARY_FORMAT_SPIR_V: GLenum = 0x9551;
3371 #[doc = "`GL_SHADER_COMPILER: GLenum = 0x8DFA`"]
3372 #[doc = "* **Group:** GetPName"]
3373 pub const GL_SHADER_COMPILER: GLenum = 0x8DFA;
3374 #[doc = "`GL_SHADER_IMAGE_ACCESS_BARRIER_BIT: GLbitfield = 0x00000020`"]
3375 #[doc = "* **Group:** MemoryBarrierMask"]
3376 pub const GL_SHADER_IMAGE_ACCESS_BARRIER_BIT: GLbitfield = 0x00000020;
3377 #[doc = "`GL_SHADER_IMAGE_ATOMIC: GLenum = 0x82A6`"]
3378 #[doc = "* **Group:** InternalFormatPName"]
3379 pub const GL_SHADER_IMAGE_ATOMIC: GLenum = 0x82A6;
3380 #[doc = "`GL_SHADER_IMAGE_LOAD: GLenum = 0x82A4`"]
3381 #[doc = "* **Group:** InternalFormatPName"]
3382 pub const GL_SHADER_IMAGE_LOAD: GLenum = 0x82A4;
3383 #[doc = "`GL_SHADER_IMAGE_STORE: GLenum = 0x82A5`"]
3384 #[doc = "* **Group:** InternalFormatPName"]
3385 pub const GL_SHADER_IMAGE_STORE: GLenum = 0x82A5;
3386 #[doc = "`GL_SHADER_KHR: GLenum = 0x82E1`"]
3387 pub const GL_SHADER_KHR: GLenum = 0x82E1;
3388 #[doc = "`GL_SHADER_SOURCE_LENGTH: GLenum = 0x8B88`"]
3389 #[doc = "* **Group:** ShaderParameterName"]
3390 pub const GL_SHADER_SOURCE_LENGTH: GLenum = 0x8B88;
3391 #[doc = "`GL_SHADER_STORAGE_BARRIER_BIT: GLbitfield = 0x00002000`"]
3392 #[doc = "* **Group:** MemoryBarrierMask"]
3393 pub const GL_SHADER_STORAGE_BARRIER_BIT: GLbitfield = 0x00002000;
3394 #[doc = "`GL_SHADER_STORAGE_BLOCK: GLenum = 0x92E6`"]
3395 #[doc = "* **Group:** ProgramInterface"]
3396 pub const GL_SHADER_STORAGE_BLOCK: GLenum = 0x92E6;
3397 #[doc = "`GL_SHADER_STORAGE_BUFFER: GLenum = 0x90D2`"]
3398 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
3399 pub const GL_SHADER_STORAGE_BUFFER: GLenum = 0x90D2;
3400 #[doc = "`GL_SHADER_STORAGE_BUFFER_BINDING: GLenum = 0x90D3`"]
3401 #[doc = "* **Group:** GetPName"]
3402 pub const GL_SHADER_STORAGE_BUFFER_BINDING: GLenum = 0x90D3;
3403 #[doc = "`GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT: GLenum = 0x90DF`"]
3404 #[doc = "* **Group:** GetPName"]
3405 pub const GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT: GLenum = 0x90DF;
3406 #[doc = "`GL_SHADER_STORAGE_BUFFER_SIZE: GLenum = 0x90D5`"]
3407 #[doc = "* **Group:** GetPName"]
3408 pub const GL_SHADER_STORAGE_BUFFER_SIZE: GLenum = 0x90D5;
3409 #[doc = "`GL_SHADER_STORAGE_BUFFER_START: GLenum = 0x90D4`"]
3410 #[doc = "* **Group:** GetPName"]
3411 pub const GL_SHADER_STORAGE_BUFFER_START: GLenum = 0x90D4;
3412 #[doc = "`GL_SHADER_TYPE: GLenum = 0x8B4F`"]
3413 #[doc = "* **Group:** ShaderParameterName"]
3414 pub const GL_SHADER_TYPE: GLenum = 0x8B4F;
3415 #[doc = "`GL_SHADING_LANGUAGE_VERSION: GLenum = 0x8B8C`"]
3416 #[doc = "* **Group:** StringName"]
3417 pub const GL_SHADING_LANGUAGE_VERSION: GLenum = 0x8B8C;
3418 #[doc = "`GL_SHORT: GLenum = 0x1402`"]
3419 #[doc = "* **Groups:** VertexAttribIType, SecondaryColorPointerTypeIBM, WeightPointerTypeARB, TangentPointerTypeEXT, BinormalPointerTypeEXT, IndexPointerType, ListNameType, NormalPointerType, PixelType, TexCoordPointerType, VertexPointerType, VertexAttribType, VertexAttribPointerType"]
3420 pub const GL_SHORT: GLenum = 0x1402;
3421 #[doc = "`GL_SIGNALED: GLenum = 0x9119`"]
3422 pub const GL_SIGNALED: GLenum = 0x9119;
3423 #[doc = "`GL_SIGNED_NORMALIZED: GLenum = 0x8F9C`"]
3424 pub const GL_SIGNED_NORMALIZED: GLenum = 0x8F9C;
3425 #[doc = "`GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST: GLenum = 0x82AC`"]
3426 #[doc = "* **Group:** InternalFormatPName"]
3427 pub const GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST: GLenum = 0x82AC;
3428 #[doc = "`GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE: GLenum = 0x82AE`"]
3429 #[doc = "* **Group:** InternalFormatPName"]
3430 pub const GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE: GLenum = 0x82AE;
3431 #[doc = "`GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST: GLenum = 0x82AD`"]
3432 #[doc = "* **Group:** InternalFormatPName"]
3433 pub const GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST: GLenum = 0x82AD;
3434 #[doc = "`GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE: GLenum = 0x82AF`"]
3435 #[doc = "* **Group:** InternalFormatPName"]
3436 pub const GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE: GLenum = 0x82AF;
3437 #[doc = "`GL_SMOOTH_LINE_WIDTH_GRANULARITY: GLenum = 0x0B23`"]
3438 #[doc = "* **Group:** GetPName"]
3439 #[doc = "* **Alias Of:** `GL_LINE_WIDTH_GRANULARITY`"]
3440 pub const GL_SMOOTH_LINE_WIDTH_GRANULARITY: GLenum = 0x0B23;
3441 #[doc = "`GL_SMOOTH_LINE_WIDTH_RANGE: GLenum = 0x0B22`"]
3442 #[doc = "* **Group:** GetPName"]
3443 #[doc = "* **Alias Of:** `GL_LINE_WIDTH_RANGE`"]
3444 pub const GL_SMOOTH_LINE_WIDTH_RANGE: GLenum = 0x0B22;
3445 #[doc = "`GL_SMOOTH_POINT_SIZE_GRANULARITY: GLenum = 0x0B13`"]
3446 #[doc = "* **Group:** GetPName"]
3447 #[doc = "* **Alias Of:** `GL_POINT_SIZE_GRANULARITY`"]
3448 pub const GL_SMOOTH_POINT_SIZE_GRANULARITY: GLenum = 0x0B13;
3449 #[doc = "`GL_SMOOTH_POINT_SIZE_RANGE: GLenum = 0x0B12`"]
3450 #[doc = "* **Group:** GetPName"]
3451 #[doc = "* **Alias Of:** `GL_POINT_SIZE_RANGE`"]
3452 pub const GL_SMOOTH_POINT_SIZE_RANGE: GLenum = 0x0B12;
3453 #[doc = "`GL_SOFTLIGHT: GLenum = 0x929C`"]
3454 pub const GL_SOFTLIGHT: GLenum = 0x929C;
3455 #[doc = "`GL_SPIR_V_BINARY: GLenum = 0x9552`"]
3456 pub const GL_SPIR_V_BINARY: GLenum = 0x9552;
3457 #[doc = "`GL_SPIR_V_EXTENSIONS: GLenum = 0x9553`"]
3458 pub const GL_SPIR_V_EXTENSIONS: GLenum = 0x9553;
3459 #[doc = "`GL_SRC1_ALPHA: GLenum = 0x8589`"]
3460 #[doc = "* **Group:** BlendingFactor"]
3461 #[doc = "* **Alias Of:** `GL_SOURCE1_ALPHA`"]
3462 pub const GL_SRC1_ALPHA: GLenum = 0x8589;
3463 #[doc = "`GL_SRC1_COLOR: GLenum = 0x88F9`"]
3464 #[doc = "* **Group:** BlendingFactor"]
3465 pub const GL_SRC1_COLOR: GLenum = 0x88F9;
3466 #[doc = "`GL_SRC_ALPHA: GLenum = 0x0302`"]
3467 #[doc = "* **Group:** BlendingFactor"]
3468 pub const GL_SRC_ALPHA: GLenum = 0x0302;
3469 #[doc = "`GL_SRC_ALPHA_SATURATE: GLenum = 0x0308`"]
3470 #[doc = "* **Group:** BlendingFactor"]
3471 pub const GL_SRC_ALPHA_SATURATE: GLenum = 0x0308;
3472 #[doc = "`GL_SRC_COLOR: GLenum = 0x0300`"]
3473 #[doc = "* **Group:** BlendingFactor"]
3474 pub const GL_SRC_COLOR: GLenum = 0x0300;
3475 #[doc = "`GL_SRGB: GLenum = 0x8C40`"]
3476 #[doc = "* **Group:** InternalFormat"]
3477 pub const GL_SRGB: GLenum = 0x8C40;
3478 #[doc = "`GL_SRGB8: GLenum = 0x8C41`"]
3479 #[doc = "* **Group:** InternalFormat"]
3480 pub const GL_SRGB8: GLenum = 0x8C41;
3481 #[doc = "`GL_SRGB8_ALPHA8: GLenum = 0x8C43`"]
3482 #[doc = "* **Group:** InternalFormat"]
3483 pub const GL_SRGB8_ALPHA8: GLenum = 0x8C43;
3484 #[doc = "`GL_SRGB_ALPHA: GLenum = 0x8C42`"]
3485 #[doc = "* **Group:** InternalFormat"]
3486 pub const GL_SRGB_ALPHA: GLenum = 0x8C42;
3487 #[doc = "`GL_SRGB_READ: GLenum = 0x8297`"]
3488 #[doc = "* **Group:** InternalFormatPName"]
3489 pub const GL_SRGB_READ: GLenum = 0x8297;
3490 #[doc = "`GL_SRGB_WRITE: GLenum = 0x8298`"]
3491 #[doc = "* **Group:** InternalFormatPName"]
3492 pub const GL_SRGB_WRITE: GLenum = 0x8298;
3493 #[doc = "`GL_STACK_OVERFLOW: GLenum = 0x0503`"]
3494 #[doc = "* **Group:** ErrorCode"]
3495 pub const GL_STACK_OVERFLOW: GLenum = 0x0503;
3496 #[doc = "`GL_STACK_OVERFLOW_KHR: GLenum = 0x0503`"]
3497 pub const GL_STACK_OVERFLOW_KHR: GLenum = 0x0503;
3498 #[doc = "`GL_STACK_UNDERFLOW: GLenum = 0x0504`"]
3499 #[doc = "* **Group:** ErrorCode"]
3500 pub const GL_STACK_UNDERFLOW: GLenum = 0x0504;
3501 #[doc = "`GL_STACK_UNDERFLOW_KHR: GLenum = 0x0504`"]
3502 pub const GL_STACK_UNDERFLOW_KHR: GLenum = 0x0504;
3503 #[doc = "`GL_STATIC_COPY: GLenum = 0x88E6`"]
3504 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
3505 pub const GL_STATIC_COPY: GLenum = 0x88E6;
3506 #[doc = "`GL_STATIC_DRAW: GLenum = 0x88E4`"]
3507 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
3508 pub const GL_STATIC_DRAW: GLenum = 0x88E4;
3509 #[doc = "`GL_STATIC_READ: GLenum = 0x88E5`"]
3510 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
3511 pub const GL_STATIC_READ: GLenum = 0x88E5;
3512 #[doc = "`GL_STENCIL: GLenum = 0x1802`"]
3513 #[doc = "* **Groups:** Buffer, PixelCopyType, InvalidateFramebufferAttachment"]
3514 pub const GL_STENCIL: GLenum = 0x1802;
3515 #[doc = "`GL_STENCIL_ATTACHMENT: GLenum = 0x8D20`"]
3516 #[doc = "* **Group:** FramebufferAttachment"]
3517 pub const GL_STENCIL_ATTACHMENT: GLenum = 0x8D20;
3518 #[doc = "`GL_STENCIL_BACK_FAIL: GLenum = 0x8801`"]
3519 #[doc = "* **Group:** GetPName"]
3520 pub const GL_STENCIL_BACK_FAIL: GLenum = 0x8801;
3521 #[doc = "`GL_STENCIL_BACK_FUNC: GLenum = 0x8800`"]
3522 #[doc = "* **Group:** GetPName"]
3523 pub const GL_STENCIL_BACK_FUNC: GLenum = 0x8800;
3524 #[doc = "`GL_STENCIL_BACK_PASS_DEPTH_FAIL: GLenum = 0x8802`"]
3525 #[doc = "* **Group:** GetPName"]
3526 pub const GL_STENCIL_BACK_PASS_DEPTH_FAIL: GLenum = 0x8802;
3527 #[doc = "`GL_STENCIL_BACK_PASS_DEPTH_PASS: GLenum = 0x8803`"]
3528 #[doc = "* **Group:** GetPName"]
3529 pub const GL_STENCIL_BACK_PASS_DEPTH_PASS: GLenum = 0x8803;
3530 #[doc = "`GL_STENCIL_BACK_REF: GLenum = 0x8CA3`"]
3531 #[doc = "* **Group:** GetPName"]
3532 pub const GL_STENCIL_BACK_REF: GLenum = 0x8CA3;
3533 #[doc = "`GL_STENCIL_BACK_VALUE_MASK: GLenum = 0x8CA4`"]
3534 #[doc = "* **Group:** GetPName"]
3535 pub const GL_STENCIL_BACK_VALUE_MASK: GLenum = 0x8CA4;
3536 #[doc = "`GL_STENCIL_BACK_WRITEMASK: GLenum = 0x8CA5`"]
3537 #[doc = "* **Group:** GetPName"]
3538 pub const GL_STENCIL_BACK_WRITEMASK: GLenum = 0x8CA5;
3539 #[doc = "`GL_STENCIL_BITS: GLenum = 0x0D57`"]
3540 #[doc = "* **Group:** GetPName"]
3541 pub const GL_STENCIL_BITS: GLenum = 0x0D57;
3542 #[doc = "`GL_STENCIL_BUFFER_BIT: GLbitfield = 0x00000400`"]
3543 #[doc = "* **Groups:** ClearBufferMask, AttribMask"]
3544 pub const GL_STENCIL_BUFFER_BIT: GLbitfield = 0x00000400;
3545 #[doc = "`GL_STENCIL_CLEAR_VALUE: GLenum = 0x0B91`"]
3546 #[doc = "* **Group:** GetPName"]
3547 pub const GL_STENCIL_CLEAR_VALUE: GLenum = 0x0B91;
3548 #[doc = "`GL_STENCIL_COMPONENTS: GLenum = 0x8285`"]
3549 pub const GL_STENCIL_COMPONENTS: GLenum = 0x8285;
3550 #[doc = "`GL_STENCIL_FAIL: GLenum = 0x0B94`"]
3551 #[doc = "* **Group:** GetPName"]
3552 pub const GL_STENCIL_FAIL: GLenum = 0x0B94;
3553 #[doc = "`GL_STENCIL_FUNC: GLenum = 0x0B92`"]
3554 #[doc = "* **Group:** GetPName"]
3555 pub const GL_STENCIL_FUNC: GLenum = 0x0B92;
3556 #[doc = "`GL_STENCIL_INDEX: GLenum = 0x1901`"]
3557 #[doc = "* **Groups:** InternalFormat, PixelFormat"]
3558 pub const GL_STENCIL_INDEX: GLenum = 0x1901;
3559 #[doc = "`GL_STENCIL_INDEX1: GLenum = 0x8D46`"]
3560 #[doc = "* **Group:** InternalFormat"]
3561 pub const GL_STENCIL_INDEX1: GLenum = 0x8D46;
3562 #[doc = "`GL_STENCIL_INDEX16: GLenum = 0x8D49`"]
3563 #[doc = "* **Group:** InternalFormat"]
3564 pub const GL_STENCIL_INDEX16: GLenum = 0x8D49;
3565 #[doc = "`GL_STENCIL_INDEX4: GLenum = 0x8D47`"]
3566 #[doc = "* **Group:** InternalFormat"]
3567 pub const GL_STENCIL_INDEX4: GLenum = 0x8D47;
3568 #[doc = "`GL_STENCIL_INDEX8: GLenum = 0x8D48`"]
3569 #[doc = "* **Group:** InternalFormat"]
3570 pub const GL_STENCIL_INDEX8: GLenum = 0x8D48;
3571 #[doc = "`GL_STENCIL_PASS_DEPTH_FAIL: GLenum = 0x0B95`"]
3572 #[doc = "* **Group:** GetPName"]
3573 pub const GL_STENCIL_PASS_DEPTH_FAIL: GLenum = 0x0B95;
3574 #[doc = "`GL_STENCIL_PASS_DEPTH_PASS: GLenum = 0x0B96`"]
3575 #[doc = "* **Group:** GetPName"]
3576 pub const GL_STENCIL_PASS_DEPTH_PASS: GLenum = 0x0B96;
3577 #[doc = "`GL_STENCIL_REF: GLenum = 0x0B97`"]
3578 #[doc = "* **Group:** GetPName"]
3579 pub const GL_STENCIL_REF: GLenum = 0x0B97;
3580 #[doc = "`GL_STENCIL_RENDERABLE: GLenum = 0x8288`"]
3581 #[doc = "* **Group:** InternalFormatPName"]
3582 pub const GL_STENCIL_RENDERABLE: GLenum = 0x8288;
3583 #[doc = "`GL_STENCIL_TEST: GLenum = 0x0B90`"]
3584 #[doc = "* **Groups:** GetPName, EnableCap"]
3585 pub const GL_STENCIL_TEST: GLenum = 0x0B90;
3586 #[doc = "`GL_STENCIL_VALUE_MASK: GLenum = 0x0B93`"]
3587 #[doc = "* **Group:** GetPName"]
3588 pub const GL_STENCIL_VALUE_MASK: GLenum = 0x0B93;
3589 #[doc = "`GL_STENCIL_WRITEMASK: GLenum = 0x0B98`"]
3590 #[doc = "* **Group:** GetPName"]
3591 pub const GL_STENCIL_WRITEMASK: GLenum = 0x0B98;
3592 #[doc = "`GL_STEREO: GLenum = 0x0C33`"]
3593 #[doc = "* **Groups:** GetFramebufferParameter, GetPName"]
3594 pub const GL_STEREO: GLenum = 0x0C33;
3595 #[doc = "`GL_STREAM_COPY: GLenum = 0x88E2`"]
3596 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
3597 pub const GL_STREAM_COPY: GLenum = 0x88E2;
3598 #[doc = "`GL_STREAM_DRAW: GLenum = 0x88E0`"]
3599 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
3600 pub const GL_STREAM_DRAW: GLenum = 0x88E0;
3601 #[doc = "`GL_STREAM_READ: GLenum = 0x88E1`"]
3602 #[doc = "* **Groups:** VertexBufferObjectUsage, BufferUsageARB"]
3603 pub const GL_STREAM_READ: GLenum = 0x88E1;
3604 #[doc = "`GL_SUBPIXEL_BITS: GLenum = 0x0D50`"]
3605 #[doc = "* **Group:** GetPName"]
3606 pub const GL_SUBPIXEL_BITS: GLenum = 0x0D50;
3607 #[doc = "`GL_SYNC_CONDITION: GLenum = 0x9113`"]
3608 #[doc = "* **Group:** SyncParameterName"]
3609 pub const GL_SYNC_CONDITION: GLenum = 0x9113;
3610 #[doc = "`GL_SYNC_FENCE: GLenum = 0x9116`"]
3611 pub const GL_SYNC_FENCE: GLenum = 0x9116;
3612 #[doc = "`GL_SYNC_FLAGS: GLenum = 0x9115`"]
3613 #[doc = "* **Group:** SyncParameterName"]
3614 pub const GL_SYNC_FLAGS: GLenum = 0x9115;
3615 #[doc = "`GL_SYNC_FLUSH_COMMANDS_BIT: GLbitfield = 0x00000001`"]
3616 #[doc = "* **Group:** SyncObjectMask"]
3617 pub const GL_SYNC_FLUSH_COMMANDS_BIT: GLbitfield = 0x00000001;
3618 #[doc = "`GL_SYNC_GPU_COMMANDS_COMPLETE: GLenum = 0x9117`"]
3619 #[doc = "* **Group:** SyncCondition"]
3620 pub const GL_SYNC_GPU_COMMANDS_COMPLETE: GLenum = 0x9117;
3621 #[doc = "`GL_SYNC_STATUS: GLenum = 0x9114`"]
3622 #[doc = "* **Group:** SyncParameterName"]
3623 pub const GL_SYNC_STATUS: GLenum = 0x9114;
3624 #[doc = "`GL_TESS_CONTROL_OUTPUT_VERTICES: GLenum = 0x8E75`"]
3625 pub const GL_TESS_CONTROL_OUTPUT_VERTICES: GLenum = 0x8E75;
3626 #[doc = "`GL_TESS_CONTROL_SHADER: GLenum = 0x8E88`"]
3627 #[doc = "* **Groups:** PipelineParameterName, ShaderType"]
3628 pub const GL_TESS_CONTROL_SHADER: GLenum = 0x8E88;
3629 #[doc = "`GL_TESS_CONTROL_SHADER_BIT: GLbitfield = 0x00000008`"]
3630 #[doc = "* **Group:** UseProgramStageMask"]
3631 pub const GL_TESS_CONTROL_SHADER_BIT: GLbitfield = 0x00000008;
3632 #[doc = "`GL_TESS_CONTROL_SHADER_PATCHES: GLenum = 0x82F1`"]
3633 pub const GL_TESS_CONTROL_SHADER_PATCHES: GLenum = 0x82F1;
3634 #[doc = "`GL_TESS_CONTROL_SUBROUTINE: GLenum = 0x92E9`"]
3635 #[doc = "* **Group:** ProgramInterface"]
3636 pub const GL_TESS_CONTROL_SUBROUTINE: GLenum = 0x92E9;
3637 #[doc = "`GL_TESS_CONTROL_SUBROUTINE_UNIFORM: GLenum = 0x92EF`"]
3638 #[doc = "* **Group:** ProgramInterface"]
3639 pub const GL_TESS_CONTROL_SUBROUTINE_UNIFORM: GLenum = 0x92EF;
3640 #[doc = "`GL_TESS_CONTROL_TEXTURE: GLenum = 0x829C`"]
3641 #[doc = "* **Group:** InternalFormatPName"]
3642 pub const GL_TESS_CONTROL_TEXTURE: GLenum = 0x829C;
3643 #[doc = "`GL_TESS_EVALUATION_SHADER: GLenum = 0x8E87`"]
3644 #[doc = "* **Groups:** PipelineParameterName, ShaderType"]
3645 pub const GL_TESS_EVALUATION_SHADER: GLenum = 0x8E87;
3646 #[doc = "`GL_TESS_EVALUATION_SHADER_BIT: GLbitfield = 0x00000010`"]
3647 #[doc = "* **Group:** UseProgramStageMask"]
3648 pub const GL_TESS_EVALUATION_SHADER_BIT: GLbitfield = 0x00000010;
3649 #[doc = "`GL_TESS_EVALUATION_SHADER_INVOCATIONS: GLenum = 0x82F2`"]
3650 pub const GL_TESS_EVALUATION_SHADER_INVOCATIONS: GLenum = 0x82F2;
3651 #[doc = "`GL_TESS_EVALUATION_SUBROUTINE: GLenum = 0x92EA`"]
3652 #[doc = "* **Group:** ProgramInterface"]
3653 pub const GL_TESS_EVALUATION_SUBROUTINE: GLenum = 0x92EA;
3654 #[doc = "`GL_TESS_EVALUATION_SUBROUTINE_UNIFORM: GLenum = 0x92F0`"]
3655 #[doc = "* **Group:** ProgramInterface"]
3656 pub const GL_TESS_EVALUATION_SUBROUTINE_UNIFORM: GLenum = 0x92F0;
3657 #[doc = "`GL_TESS_EVALUATION_TEXTURE: GLenum = 0x829D`"]
3658 #[doc = "* **Group:** InternalFormatPName"]
3659 pub const GL_TESS_EVALUATION_TEXTURE: GLenum = 0x829D;
3660 #[doc = "`GL_TESS_GEN_MODE: GLenum = 0x8E76`"]
3661 pub const GL_TESS_GEN_MODE: GLenum = 0x8E76;
3662 #[doc = "`GL_TESS_GEN_POINT_MODE: GLenum = 0x8E79`"]
3663 pub const GL_TESS_GEN_POINT_MODE: GLenum = 0x8E79;
3664 #[doc = "`GL_TESS_GEN_SPACING: GLenum = 0x8E77`"]
3665 pub const GL_TESS_GEN_SPACING: GLenum = 0x8E77;
3666 #[doc = "`GL_TESS_GEN_VERTEX_ORDER: GLenum = 0x8E78`"]
3667 pub const GL_TESS_GEN_VERTEX_ORDER: GLenum = 0x8E78;
3668 #[doc = "`GL_TEXTURE: GLenum = 0x1702`"]
3669 #[doc = "* **Groups:** ObjectIdentifier, MatrixMode"]
3670 pub const GL_TEXTURE: GLenum = 0x1702;
3671 #[doc = "`GL_TEXTURE0: GLenum = 0x84C0`"]
3672 #[doc = "* **Group:** TextureUnit"]
3673 pub const GL_TEXTURE0: GLenum = 0x84C0;
3674 #[doc = "`GL_TEXTURE1: GLenum = 0x84C1`"]
3675 #[doc = "* **Group:** TextureUnit"]
3676 pub const GL_TEXTURE1: GLenum = 0x84C1;
3677 #[doc = "`GL_TEXTURE10: GLenum = 0x84CA`"]
3678 #[doc = "* **Group:** TextureUnit"]
3679 pub const GL_TEXTURE10: GLenum = 0x84CA;
3680 #[doc = "`GL_TEXTURE11: GLenum = 0x84CB`"]
3681 #[doc = "* **Group:** TextureUnit"]
3682 pub const GL_TEXTURE11: GLenum = 0x84CB;
3683 #[doc = "`GL_TEXTURE12: GLenum = 0x84CC`"]
3684 #[doc = "* **Group:** TextureUnit"]
3685 pub const GL_TEXTURE12: GLenum = 0x84CC;
3686 #[doc = "`GL_TEXTURE13: GLenum = 0x84CD`"]
3687 #[doc = "* **Group:** TextureUnit"]
3688 pub const GL_TEXTURE13: GLenum = 0x84CD;
3689 #[doc = "`GL_TEXTURE14: GLenum = 0x84CE`"]
3690 #[doc = "* **Group:** TextureUnit"]
3691 pub const GL_TEXTURE14: GLenum = 0x84CE;
3692 #[doc = "`GL_TEXTURE15: GLenum = 0x84CF`"]
3693 #[doc = "* **Group:** TextureUnit"]
3694 pub const GL_TEXTURE15: GLenum = 0x84CF;
3695 #[doc = "`GL_TEXTURE16: GLenum = 0x84D0`"]
3696 #[doc = "* **Group:** TextureUnit"]
3697 pub const GL_TEXTURE16: GLenum = 0x84D0;
3698 #[doc = "`GL_TEXTURE17: GLenum = 0x84D1`"]
3699 #[doc = "* **Group:** TextureUnit"]
3700 pub const GL_TEXTURE17: GLenum = 0x84D1;
3701 #[doc = "`GL_TEXTURE18: GLenum = 0x84D2`"]
3702 #[doc = "* **Group:** TextureUnit"]
3703 pub const GL_TEXTURE18: GLenum = 0x84D2;
3704 #[doc = "`GL_TEXTURE19: GLenum = 0x84D3`"]
3705 #[doc = "* **Group:** TextureUnit"]
3706 pub const GL_TEXTURE19: GLenum = 0x84D3;
3707 #[doc = "`GL_TEXTURE2: GLenum = 0x84C2`"]
3708 #[doc = "* **Group:** TextureUnit"]
3709 pub const GL_TEXTURE2: GLenum = 0x84C2;
3710 #[doc = "`GL_TEXTURE20: GLenum = 0x84D4`"]
3711 #[doc = "* **Group:** TextureUnit"]
3712 pub const GL_TEXTURE20: GLenum = 0x84D4;
3713 #[doc = "`GL_TEXTURE21: GLenum = 0x84D5`"]
3714 #[doc = "* **Group:** TextureUnit"]
3715 pub const GL_TEXTURE21: GLenum = 0x84D5;
3716 #[doc = "`GL_TEXTURE22: GLenum = 0x84D6`"]
3717 #[doc = "* **Group:** TextureUnit"]
3718 pub const GL_TEXTURE22: GLenum = 0x84D6;
3719 #[doc = "`GL_TEXTURE23: GLenum = 0x84D7`"]
3720 #[doc = "* **Group:** TextureUnit"]
3721 pub const GL_TEXTURE23: GLenum = 0x84D7;
3722 #[doc = "`GL_TEXTURE24: GLenum = 0x84D8`"]
3723 #[doc = "* **Group:** TextureUnit"]
3724 pub const GL_TEXTURE24: GLenum = 0x84D8;
3725 #[doc = "`GL_TEXTURE25: GLenum = 0x84D9`"]
3726 #[doc = "* **Group:** TextureUnit"]
3727 pub const GL_TEXTURE25: GLenum = 0x84D9;
3728 #[doc = "`GL_TEXTURE26: GLenum = 0x84DA`"]
3729 #[doc = "* **Group:** TextureUnit"]
3730 pub const GL_TEXTURE26: GLenum = 0x84DA;
3731 #[doc = "`GL_TEXTURE27: GLenum = 0x84DB`"]
3732 #[doc = "* **Group:** TextureUnit"]
3733 pub const GL_TEXTURE27: GLenum = 0x84DB;
3734 #[doc = "`GL_TEXTURE28: GLenum = 0x84DC`"]
3735 #[doc = "* **Group:** TextureUnit"]
3736 pub const GL_TEXTURE28: GLenum = 0x84DC;
3737 #[doc = "`GL_TEXTURE29: GLenum = 0x84DD`"]
3738 #[doc = "* **Group:** TextureUnit"]
3739 pub const GL_TEXTURE29: GLenum = 0x84DD;
3740 #[doc = "`GL_TEXTURE3: GLenum = 0x84C3`"]
3741 #[doc = "* **Group:** TextureUnit"]
3742 pub const GL_TEXTURE3: GLenum = 0x84C3;
3743 #[doc = "`GL_TEXTURE30: GLenum = 0x84DE`"]
3744 #[doc = "* **Group:** TextureUnit"]
3745 pub const GL_TEXTURE30: GLenum = 0x84DE;
3746 #[doc = "`GL_TEXTURE31: GLenum = 0x84DF`"]
3747 #[doc = "* **Group:** TextureUnit"]
3748 pub const GL_TEXTURE31: GLenum = 0x84DF;
3749 #[doc = "`GL_TEXTURE4: GLenum = 0x84C4`"]
3750 #[doc = "* **Group:** TextureUnit"]
3751 pub const GL_TEXTURE4: GLenum = 0x84C4;
3752 #[doc = "`GL_TEXTURE5: GLenum = 0x84C5`"]
3753 #[doc = "* **Group:** TextureUnit"]
3754 pub const GL_TEXTURE5: GLenum = 0x84C5;
3755 #[doc = "`GL_TEXTURE6: GLenum = 0x84C6`"]
3756 #[doc = "* **Group:** TextureUnit"]
3757 pub const GL_TEXTURE6: GLenum = 0x84C6;
3758 #[doc = "`GL_TEXTURE7: GLenum = 0x84C7`"]
3759 #[doc = "* **Group:** TextureUnit"]
3760 pub const GL_TEXTURE7: GLenum = 0x84C7;
3761 #[doc = "`GL_TEXTURE8: GLenum = 0x84C8`"]
3762 #[doc = "* **Group:** TextureUnit"]
3763 pub const GL_TEXTURE8: GLenum = 0x84C8;
3764 #[doc = "`GL_TEXTURE9: GLenum = 0x84C9`"]
3765 #[doc = "* **Group:** TextureUnit"]
3766 pub const GL_TEXTURE9: GLenum = 0x84C9;
3767 #[doc = "`GL_TEXTURE_1D: GLenum = 0x0DE0`"]
3768 #[doc = "* **Groups:** CopyImageSubDataTarget, EnableCap, GetPName, TextureTarget"]
3769 pub const GL_TEXTURE_1D: GLenum = 0x0DE0;
3770 #[doc = "`GL_TEXTURE_1D_ARRAY: GLenum = 0x8C18`"]
3771 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3772 pub const GL_TEXTURE_1D_ARRAY: GLenum = 0x8C18;
3773 #[doc = "`GL_TEXTURE_2D: GLenum = 0x0DE1`"]
3774 #[doc = "* **Groups:** CopyImageSubDataTarget, EnableCap, GetPName, TextureTarget"]
3775 pub const GL_TEXTURE_2D: GLenum = 0x0DE1;
3776 #[doc = "`GL_TEXTURE_2D_ARRAY: GLenum = 0x8C1A`"]
3777 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3778 pub const GL_TEXTURE_2D_ARRAY: GLenum = 0x8C1A;
3779 #[doc = "`GL_TEXTURE_2D_MULTISAMPLE: GLenum = 0x9100`"]
3780 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3781 pub const GL_TEXTURE_2D_MULTISAMPLE: GLenum = 0x9100;
3782 #[doc = "`GL_TEXTURE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9102`"]
3783 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3784 pub const GL_TEXTURE_2D_MULTISAMPLE_ARRAY: GLenum = 0x9102;
3785 #[doc = "`GL_TEXTURE_3D: GLenum = 0x806F`"]
3786 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3787 pub const GL_TEXTURE_3D: GLenum = 0x806F;
3788 #[doc = "`GL_TEXTURE_ALPHA_SIZE: GLenum = 0x805F`"]
3789 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
3790 pub const GL_TEXTURE_ALPHA_SIZE: GLenum = 0x805F;
3791 #[doc = "`GL_TEXTURE_ALPHA_TYPE: GLenum = 0x8C13`"]
3792 pub const GL_TEXTURE_ALPHA_TYPE: GLenum = 0x8C13;
3793 #[doc = "`GL_TEXTURE_BASE_LEVEL: GLenum = 0x813C`"]
3794 #[doc = "* **Group:** TextureParameterName"]
3795 pub const GL_TEXTURE_BASE_LEVEL: GLenum = 0x813C;
3796 #[doc = "`GL_TEXTURE_BINDING_1D: GLenum = 0x8068`"]
3797 #[doc = "* **Group:** GetPName"]
3798 pub const GL_TEXTURE_BINDING_1D: GLenum = 0x8068;
3799 #[doc = "`GL_TEXTURE_BINDING_1D_ARRAY: GLenum = 0x8C1C`"]
3800 #[doc = "* **Group:** GetPName"]
3801 pub const GL_TEXTURE_BINDING_1D_ARRAY: GLenum = 0x8C1C;
3802 #[doc = "`GL_TEXTURE_BINDING_2D: GLenum = 0x8069`"]
3803 #[doc = "* **Group:** GetPName"]
3804 pub const GL_TEXTURE_BINDING_2D: GLenum = 0x8069;
3805 #[doc = "`GL_TEXTURE_BINDING_2D_ARRAY: GLenum = 0x8C1D`"]
3806 #[doc = "* **Group:** GetPName"]
3807 pub const GL_TEXTURE_BINDING_2D_ARRAY: GLenum = 0x8C1D;
3808 #[doc = "`GL_TEXTURE_BINDING_2D_MULTISAMPLE: GLenum = 0x9104`"]
3809 #[doc = "* **Group:** GetPName"]
3810 pub const GL_TEXTURE_BINDING_2D_MULTISAMPLE: GLenum = 0x9104;
3811 #[doc = "`GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY: GLenum = 0x9105`"]
3812 #[doc = "* **Group:** GetPName"]
3813 pub const GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY: GLenum = 0x9105;
3814 #[doc = "`GL_TEXTURE_BINDING_3D: GLenum = 0x806A`"]
3815 #[doc = "* **Group:** GetPName"]
3816 pub const GL_TEXTURE_BINDING_3D: GLenum = 0x806A;
3817 #[doc = "`GL_TEXTURE_BINDING_BUFFER: GLenum = 0x8C2C`"]
3818 #[doc = "* **Group:** GetPName"]
3819 pub const GL_TEXTURE_BINDING_BUFFER: GLenum = 0x8C2C;
3820 #[doc = "`GL_TEXTURE_BINDING_CUBE_MAP: GLenum = 0x8514`"]
3821 #[doc = "* **Group:** GetPName"]
3822 pub const GL_TEXTURE_BINDING_CUBE_MAP: GLenum = 0x8514;
3823 #[doc = "`GL_TEXTURE_BINDING_CUBE_MAP_ARRAY: GLenum = 0x900A`"]
3824 pub const GL_TEXTURE_BINDING_CUBE_MAP_ARRAY: GLenum = 0x900A;
3825 #[doc = "`GL_TEXTURE_BINDING_RECTANGLE: GLenum = 0x84F6`"]
3826 #[doc = "* **Group:** GetPName"]
3827 pub const GL_TEXTURE_BINDING_RECTANGLE: GLenum = 0x84F6;
3828 #[doc = "`GL_TEXTURE_BLUE_SIZE: GLenum = 0x805E`"]
3829 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
3830 pub const GL_TEXTURE_BLUE_SIZE: GLenum = 0x805E;
3831 #[doc = "`GL_TEXTURE_BLUE_TYPE: GLenum = 0x8C12`"]
3832 pub const GL_TEXTURE_BLUE_TYPE: GLenum = 0x8C12;
3833 #[doc = "`GL_TEXTURE_BORDER_COLOR: GLenum = 0x1004`"]
3834 #[doc = "* **Groups:** SamplerParameterF, GetTextureParameter, TextureParameterName"]
3835 pub const GL_TEXTURE_BORDER_COLOR: GLenum = 0x1004;
3836 #[doc = "`GL_TEXTURE_BUFFER: GLenum = 0x8C2A`"]
3837 #[doc = "* **Groups:** TextureTarget, CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
3838 pub const GL_TEXTURE_BUFFER: GLenum = 0x8C2A;
3839 #[doc = "`GL_TEXTURE_BUFFER_BINDING: GLenum = 0x8C2A`"]
3840 pub const GL_TEXTURE_BUFFER_BINDING: GLenum = 0x8C2A;
3841 #[doc = "`GL_TEXTURE_BUFFER_DATA_STORE_BINDING: GLenum = 0x8C2D`"]
3842 pub const GL_TEXTURE_BUFFER_DATA_STORE_BINDING: GLenum = 0x8C2D;
3843 #[doc = "`GL_TEXTURE_BUFFER_OFFSET: GLenum = 0x919D`"]
3844 pub const GL_TEXTURE_BUFFER_OFFSET: GLenum = 0x919D;
3845 #[doc = "`GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT: GLenum = 0x919F`"]
3846 #[doc = "* **Group:** GetPName"]
3847 pub const GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT: GLenum = 0x919F;
3848 #[doc = "`GL_TEXTURE_BUFFER_SIZE: GLenum = 0x919E`"]
3849 pub const GL_TEXTURE_BUFFER_SIZE: GLenum = 0x919E;
3850 #[doc = "`GL_TEXTURE_COMPARE_FUNC: GLenum = 0x884D`"]
3851 #[doc = "* **Groups:** SamplerParameterI, TextureParameterName"]
3852 pub const GL_TEXTURE_COMPARE_FUNC: GLenum = 0x884D;
3853 #[doc = "`GL_TEXTURE_COMPARE_MODE: GLenum = 0x884C`"]
3854 #[doc = "* **Groups:** SamplerParameterI, TextureParameterName"]
3855 pub const GL_TEXTURE_COMPARE_MODE: GLenum = 0x884C;
3856 #[doc = "`GL_TEXTURE_COMPRESSED: GLenum = 0x86A1`"]
3857 #[doc = "* **Group:** InternalFormatPName"]
3858 pub const GL_TEXTURE_COMPRESSED: GLenum = 0x86A1;
3859 #[doc = "`GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT: GLenum = 0x82B2`"]
3860 #[doc = "* **Group:** InternalFormatPName"]
3861 pub const GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT: GLenum = 0x82B2;
3862 #[doc = "`GL_TEXTURE_COMPRESSED_BLOCK_SIZE: GLenum = 0x82B3`"]
3863 #[doc = "* **Group:** InternalFormatPName"]
3864 pub const GL_TEXTURE_COMPRESSED_BLOCK_SIZE: GLenum = 0x82B3;
3865 #[doc = "`GL_TEXTURE_COMPRESSED_BLOCK_WIDTH: GLenum = 0x82B1`"]
3866 #[doc = "* **Group:** InternalFormatPName"]
3867 pub const GL_TEXTURE_COMPRESSED_BLOCK_WIDTH: GLenum = 0x82B1;
3868 #[doc = "`GL_TEXTURE_COMPRESSED_IMAGE_SIZE: GLenum = 0x86A0`"]
3869 pub const GL_TEXTURE_COMPRESSED_IMAGE_SIZE: GLenum = 0x86A0;
3870 #[doc = "`GL_TEXTURE_COMPRESSION_HINT: GLenum = 0x84EF`"]
3871 #[doc = "* **Groups:** HintTarget, GetPName"]
3872 pub const GL_TEXTURE_COMPRESSION_HINT: GLenum = 0x84EF;
3873 #[doc = "`GL_TEXTURE_CUBE_MAP: GLenum = 0x8513`"]
3874 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3875 pub const GL_TEXTURE_CUBE_MAP: GLenum = 0x8513;
3876 #[doc = "`GL_TEXTURE_CUBE_MAP_ARRAY: GLenum = 0x9009`"]
3877 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3878 pub const GL_TEXTURE_CUBE_MAP_ARRAY: GLenum = 0x9009;
3879 #[doc = "`GL_TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum = 0x8516`"]
3880 #[doc = "* **Group:** TextureTarget"]
3881 pub const GL_TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum = 0x8516;
3882 #[doc = "`GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum = 0x8518`"]
3883 #[doc = "* **Group:** TextureTarget"]
3884 pub const GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum = 0x8518;
3885 #[doc = "`GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum = 0x851A`"]
3886 #[doc = "* **Group:** TextureTarget"]
3887 pub const GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum = 0x851A;
3888 #[doc = "`GL_TEXTURE_CUBE_MAP_POSITIVE_X: GLenum = 0x8515`"]
3889 #[doc = "* **Group:** TextureTarget"]
3890 pub const GL_TEXTURE_CUBE_MAP_POSITIVE_X: GLenum = 0x8515;
3891 #[doc = "`GL_TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum = 0x8517`"]
3892 #[doc = "* **Group:** TextureTarget"]
3893 pub const GL_TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum = 0x8517;
3894 #[doc = "`GL_TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum = 0x8519`"]
3895 #[doc = "* **Group:** TextureTarget"]
3896 pub const GL_TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum = 0x8519;
3897 #[doc = "`GL_TEXTURE_CUBE_MAP_SEAMLESS: GLenum = 0x884F`"]
3898 #[doc = "* **Group:** EnableCap"]
3899 pub const GL_TEXTURE_CUBE_MAP_SEAMLESS: GLenum = 0x884F;
3900 #[doc = "`GL_TEXTURE_DEPTH: GLenum = 0x8071`"]
3901 pub const GL_TEXTURE_DEPTH: GLenum = 0x8071;
3902 #[doc = "`GL_TEXTURE_DEPTH_SIZE: GLenum = 0x884A`"]
3903 pub const GL_TEXTURE_DEPTH_SIZE: GLenum = 0x884A;
3904 #[doc = "`GL_TEXTURE_DEPTH_TYPE: GLenum = 0x8C16`"]
3905 pub const GL_TEXTURE_DEPTH_TYPE: GLenum = 0x8C16;
3906 #[doc = "`GL_TEXTURE_FETCH_BARRIER_BIT: GLbitfield = 0x00000008`"]
3907 #[doc = "* **Group:** MemoryBarrierMask"]
3908 pub const GL_TEXTURE_FETCH_BARRIER_BIT: GLbitfield = 0x00000008;
3909 #[doc = "`GL_TEXTURE_FIXED_SAMPLE_LOCATIONS: GLenum = 0x9107`"]
3910 pub const GL_TEXTURE_FIXED_SAMPLE_LOCATIONS: GLenum = 0x9107;
3911 #[doc = "`GL_TEXTURE_GATHER: GLenum = 0x82A2`"]
3912 #[doc = "* **Group:** InternalFormatPName"]
3913 pub const GL_TEXTURE_GATHER: GLenum = 0x82A2;
3914 #[doc = "`GL_TEXTURE_GATHER_SHADOW: GLenum = 0x82A3`"]
3915 #[doc = "* **Group:** InternalFormatPName"]
3916 pub const GL_TEXTURE_GATHER_SHADOW: GLenum = 0x82A3;
3917 #[doc = "`GL_TEXTURE_GREEN_SIZE: GLenum = 0x805D`"]
3918 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
3919 pub const GL_TEXTURE_GREEN_SIZE: GLenum = 0x805D;
3920 #[doc = "`GL_TEXTURE_GREEN_TYPE: GLenum = 0x8C11`"]
3921 pub const GL_TEXTURE_GREEN_TYPE: GLenum = 0x8C11;
3922 #[doc = "`GL_TEXTURE_HEIGHT: GLenum = 0x1001`"]
3923 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
3924 pub const GL_TEXTURE_HEIGHT: GLenum = 0x1001;
3925 #[doc = "`GL_TEXTURE_IMAGE_FORMAT: GLenum = 0x828F`"]
3926 #[doc = "* **Group:** InternalFormatPName"]
3927 pub const GL_TEXTURE_IMAGE_FORMAT: GLenum = 0x828F;
3928 #[doc = "`GL_TEXTURE_IMAGE_TYPE: GLenum = 0x8290`"]
3929 #[doc = "* **Group:** InternalFormatPName"]
3930 pub const GL_TEXTURE_IMAGE_TYPE: GLenum = 0x8290;
3931 #[doc = "`GL_TEXTURE_IMMUTABLE_FORMAT: GLenum = 0x912F`"]
3932 pub const GL_TEXTURE_IMMUTABLE_FORMAT: GLenum = 0x912F;
3933 #[doc = "`GL_TEXTURE_IMMUTABLE_LEVELS: GLenum = 0x82DF`"]
3934 pub const GL_TEXTURE_IMMUTABLE_LEVELS: GLenum = 0x82DF;
3935 #[doc = "`GL_TEXTURE_INTERNAL_FORMAT: GLenum = 0x1003`"]
3936 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
3937 pub const GL_TEXTURE_INTERNAL_FORMAT: GLenum = 0x1003;
3938 #[doc = "`GL_TEXTURE_LOD_BIAS: GLenum = 0x8501`"]
3939 #[doc = "* **Groups:** TextureParameterName, SamplerParameterF"]
3940 pub const GL_TEXTURE_LOD_BIAS: GLenum = 0x8501;
3941 #[doc = "`GL_TEXTURE_MAG_FILTER: GLenum = 0x2800`"]
3942 #[doc = "* **Groups:** SamplerParameterI, GetTextureParameter, TextureParameterName"]
3943 pub const GL_TEXTURE_MAG_FILTER: GLenum = 0x2800;
3944 #[doc = "`GL_TEXTURE_MAX_ANISOTROPY: GLenum = 0x84FE`"]
3945 #[doc = "* **Group:** SamplerParameterF"]
3946 pub const GL_TEXTURE_MAX_ANISOTROPY: GLenum = 0x84FE;
3947 #[doc = "`GL_TEXTURE_MAX_ANISOTROPY_EXT: GLenum = 0x84FE`"]
3948 #[doc = "* **Alias Of:** `GL_TEXTURE_MAX_ANISOTROPY`"]
3949 pub const GL_TEXTURE_MAX_ANISOTROPY_EXT: GLenum = 0x84FE;
3950 #[doc = "`GL_TEXTURE_MAX_LEVEL: GLenum = 0x813D`"]
3951 #[doc = "* **Group:** TextureParameterName"]
3952 pub const GL_TEXTURE_MAX_LEVEL: GLenum = 0x813D;
3953 #[doc = "`GL_TEXTURE_MAX_LOD: GLenum = 0x813B`"]
3954 #[doc = "* **Groups:** SamplerParameterF, TextureParameterName"]
3955 pub const GL_TEXTURE_MAX_LOD: GLenum = 0x813B;
3956 #[doc = "`GL_TEXTURE_MIN_FILTER: GLenum = 0x2801`"]
3957 #[doc = "* **Groups:** SamplerParameterI, GetTextureParameter, TextureParameterName"]
3958 pub const GL_TEXTURE_MIN_FILTER: GLenum = 0x2801;
3959 #[doc = "`GL_TEXTURE_MIN_LOD: GLenum = 0x813A`"]
3960 #[doc = "* **Groups:** SamplerParameterF, TextureParameterName"]
3961 pub const GL_TEXTURE_MIN_LOD: GLenum = 0x813A;
3962 #[doc = "`GL_TEXTURE_RECTANGLE: GLenum = 0x84F5`"]
3963 #[doc = "* **Groups:** CopyImageSubDataTarget, TextureTarget"]
3964 pub const GL_TEXTURE_RECTANGLE: GLenum = 0x84F5;
3965 #[doc = "`GL_TEXTURE_RED_SIZE: GLenum = 0x805C`"]
3966 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
3967 pub const GL_TEXTURE_RED_SIZE: GLenum = 0x805C;
3968 #[doc = "`GL_TEXTURE_RED_TYPE: GLenum = 0x8C10`"]
3969 pub const GL_TEXTURE_RED_TYPE: GLenum = 0x8C10;
3970 #[doc = "`GL_TEXTURE_SAMPLES: GLenum = 0x9106`"]
3971 pub const GL_TEXTURE_SAMPLES: GLenum = 0x9106;
3972 #[doc = "`GL_TEXTURE_SHADOW: GLenum = 0x82A1`"]
3973 #[doc = "* **Group:** InternalFormatPName"]
3974 pub const GL_TEXTURE_SHADOW: GLenum = 0x82A1;
3975 #[doc = "`GL_TEXTURE_SHARED_SIZE: GLenum = 0x8C3F`"]
3976 pub const GL_TEXTURE_SHARED_SIZE: GLenum = 0x8C3F;
3977 #[doc = "`GL_TEXTURE_STENCIL_SIZE: GLenum = 0x88F1`"]
3978 pub const GL_TEXTURE_STENCIL_SIZE: GLenum = 0x88F1;
3979 #[doc = "`GL_TEXTURE_SWIZZLE_A: GLenum = 0x8E45`"]
3980 #[doc = "* **Group:** TextureParameterName"]
3981 pub const GL_TEXTURE_SWIZZLE_A: GLenum = 0x8E45;
3982 #[doc = "`GL_TEXTURE_SWIZZLE_B: GLenum = 0x8E44`"]
3983 #[doc = "* **Group:** TextureParameterName"]
3984 pub const GL_TEXTURE_SWIZZLE_B: GLenum = 0x8E44;
3985 #[doc = "`GL_TEXTURE_SWIZZLE_G: GLenum = 0x8E43`"]
3986 #[doc = "* **Group:** TextureParameterName"]
3987 pub const GL_TEXTURE_SWIZZLE_G: GLenum = 0x8E43;
3988 #[doc = "`GL_TEXTURE_SWIZZLE_R: GLenum = 0x8E42`"]
3989 #[doc = "* **Group:** TextureParameterName"]
3990 pub const GL_TEXTURE_SWIZZLE_R: GLenum = 0x8E42;
3991 #[doc = "`GL_TEXTURE_SWIZZLE_RGBA: GLenum = 0x8E46`"]
3992 #[doc = "* **Group:** TextureParameterName"]
3993 pub const GL_TEXTURE_SWIZZLE_RGBA: GLenum = 0x8E46;
3994 #[doc = "`GL_TEXTURE_TARGET: GLenum = 0x1006`"]
3995 pub const GL_TEXTURE_TARGET: GLenum = 0x1006;
3996 #[doc = "`GL_TEXTURE_UPDATE_BARRIER_BIT: GLbitfield = 0x00000100`"]
3997 #[doc = "* **Group:** MemoryBarrierMask"]
3998 pub const GL_TEXTURE_UPDATE_BARRIER_BIT: GLbitfield = 0x00000100;
3999 #[doc = "`GL_TEXTURE_VIEW: GLenum = 0x82B5`"]
4000 #[doc = "* **Group:** InternalFormatPName"]
4001 pub const GL_TEXTURE_VIEW: GLenum = 0x82B5;
4002 #[doc = "`GL_TEXTURE_VIEW_MIN_LAYER: GLenum = 0x82DD`"]
4003 pub const GL_TEXTURE_VIEW_MIN_LAYER: GLenum = 0x82DD;
4004 #[doc = "`GL_TEXTURE_VIEW_MIN_LEVEL: GLenum = 0x82DB`"]
4005 pub const GL_TEXTURE_VIEW_MIN_LEVEL: GLenum = 0x82DB;
4006 #[doc = "`GL_TEXTURE_VIEW_NUM_LAYERS: GLenum = 0x82DE`"]
4007 pub const GL_TEXTURE_VIEW_NUM_LAYERS: GLenum = 0x82DE;
4008 #[doc = "`GL_TEXTURE_VIEW_NUM_LEVELS: GLenum = 0x82DC`"]
4009 pub const GL_TEXTURE_VIEW_NUM_LEVELS: GLenum = 0x82DC;
4010 #[doc = "`GL_TEXTURE_WIDTH: GLenum = 0x1000`"]
4011 #[doc = "* **Groups:** TextureParameterName, GetTextureParameter"]
4012 pub const GL_TEXTURE_WIDTH: GLenum = 0x1000;
4013 #[doc = "`GL_TEXTURE_WRAP_R: GLenum = 0x8072`"]
4014 #[doc = "* **Groups:** SamplerParameterI, TextureParameterName"]
4015 pub const GL_TEXTURE_WRAP_R: GLenum = 0x8072;
4016 #[doc = "`GL_TEXTURE_WRAP_S: GLenum = 0x2802`"]
4017 #[doc = "* **Groups:** SamplerParameterI, GetTextureParameter, TextureParameterName"]
4018 pub const GL_TEXTURE_WRAP_S: GLenum = 0x2802;
4019 #[doc = "`GL_TEXTURE_WRAP_T: GLenum = 0x2803`"]
4020 #[doc = "* **Groups:** SamplerParameterI, GetTextureParameter, TextureParameterName"]
4021 pub const GL_TEXTURE_WRAP_T: GLenum = 0x2803;
4022 #[doc = "`GL_TIMEOUT_EXPIRED: GLenum = 0x911B`"]
4023 #[doc = "* **Group:** SyncStatus"]
4024 pub const GL_TIMEOUT_EXPIRED: GLenum = 0x911B;
4025 #[doc = "`GL_TIMEOUT_IGNORED: u64 = 0xFFFFFFFFFFFFFFFF`"]
4026 pub const GL_TIMEOUT_IGNORED: u64 = 0xFFFFFFFFFFFFFFFF;
4027 #[doc = "`GL_TIMESTAMP: GLenum = 0x8E28`"]
4028 #[doc = "* **Groups:** QueryCounterTarget, GetPName"]
4029 pub const GL_TIMESTAMP: GLenum = 0x8E28;
4030 #[doc = "`GL_TIMESTAMP_EXT: GLenum = 0x8E28`"]
4031 pub const GL_TIMESTAMP_EXT: GLenum = 0x8E28;
4032 #[doc = "`GL_TIME_ELAPSED: GLenum = 0x88BF`"]
4033 #[doc = "* **Group:** QueryTarget"]
4034 pub const GL_TIME_ELAPSED: GLenum = 0x88BF;
4035 #[doc = "`GL_TIME_ELAPSED_EXT: GLenum = 0x88BF`"]
4036 pub const GL_TIME_ELAPSED_EXT: GLenum = 0x88BF;
4037 #[doc = "`GL_TOP_LEVEL_ARRAY_SIZE: GLenum = 0x930C`"]
4038 #[doc = "* **Group:** ProgramResourceProperty"]
4039 pub const GL_TOP_LEVEL_ARRAY_SIZE: GLenum = 0x930C;
4040 #[doc = "`GL_TOP_LEVEL_ARRAY_STRIDE: GLenum = 0x930D`"]
4041 #[doc = "* **Group:** ProgramResourceProperty"]
4042 pub const GL_TOP_LEVEL_ARRAY_STRIDE: GLenum = 0x930D;
4043 #[doc = "`GL_TRANSFORM_FEEDBACK: GLenum = 0x8E22`"]
4044 #[doc = "* **Groups:** ObjectIdentifier, BindTransformFeedbackTarget"]
4045 pub const GL_TRANSFORM_FEEDBACK: GLenum = 0x8E22;
4046 #[doc = "`GL_TRANSFORM_FEEDBACK_ACTIVE: GLenum = 0x8E24`"]
4047 #[doc = "* **Group:** TransformFeedbackPName"]
4048 #[doc = "* **Alias Of:** `GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE`"]
4049 pub const GL_TRANSFORM_FEEDBACK_ACTIVE: GLenum = 0x8E24;
4050 #[doc = "`GL_TRANSFORM_FEEDBACK_BARRIER_BIT: GLbitfield = 0x00000800`"]
4051 #[doc = "* **Group:** MemoryBarrierMask"]
4052 pub const GL_TRANSFORM_FEEDBACK_BARRIER_BIT: GLbitfield = 0x00000800;
4053 #[doc = "`GL_TRANSFORM_FEEDBACK_BINDING: GLenum = 0x8E25`"]
4054 pub const GL_TRANSFORM_FEEDBACK_BINDING: GLenum = 0x8E25;
4055 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER: GLenum = 0x8C8E`"]
4056 #[doc = "* **Groups:** ProgramInterface, BufferTargetARB, BufferStorageTarget, CopyBufferSubDataTarget"]
4057 pub const GL_TRANSFORM_FEEDBACK_BUFFER: GLenum = 0x8C8E;
4058 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE: GLenum = 0x8E24`"]
4059 pub const GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE: GLenum = 0x8E24;
4060 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_BINDING: GLenum = 0x8C8F`"]
4061 #[doc = "* **Groups:** TransformFeedbackPName, GetPName"]
4062 pub const GL_TRANSFORM_FEEDBACK_BUFFER_BINDING: GLenum = 0x8C8F;
4063 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_INDEX: GLenum = 0x934B`"]
4064 #[doc = "* **Group:** ProgramResourceProperty"]
4065 pub const GL_TRANSFORM_FEEDBACK_BUFFER_INDEX: GLenum = 0x934B;
4066 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_MODE: GLenum = 0x8C7F`"]
4067 #[doc = "* **Group:** ProgramPropertyARB"]
4068 pub const GL_TRANSFORM_FEEDBACK_BUFFER_MODE: GLenum = 0x8C7F;
4069 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED: GLenum = 0x8E23`"]
4070 pub const GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED: GLenum = 0x8E23;
4071 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_SIZE: GLenum = 0x8C85`"]
4072 #[doc = "* **Groups:** TransformFeedbackPName, GetPName"]
4073 pub const GL_TRANSFORM_FEEDBACK_BUFFER_SIZE: GLenum = 0x8C85;
4074 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_START: GLenum = 0x8C84`"]
4075 #[doc = "* **Groups:** TransformFeedbackPName, GetPName"]
4076 pub const GL_TRANSFORM_FEEDBACK_BUFFER_START: GLenum = 0x8C84;
4077 #[doc = "`GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE: GLenum = 0x934C`"]
4078 #[doc = "* **Group:** ProgramResourceProperty"]
4079 pub const GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE: GLenum = 0x934C;
4080 #[doc = "`GL_TRANSFORM_FEEDBACK_OVERFLOW: GLenum = 0x82EC`"]
4081 #[doc = "* **Group:** QueryTarget"]
4082 pub const GL_TRANSFORM_FEEDBACK_OVERFLOW: GLenum = 0x82EC;
4083 #[doc = "`GL_TRANSFORM_FEEDBACK_PAUSED: GLenum = 0x8E23`"]
4084 #[doc = "* **Group:** TransformFeedbackPName"]
4085 #[doc = "* **Alias Of:** `GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED`"]
4086 pub const GL_TRANSFORM_FEEDBACK_PAUSED: GLenum = 0x8E23;
4087 #[doc = "`GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: GLenum = 0x8C88`"]
4088 #[doc = "* **Group:** QueryTarget"]
4089 pub const GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: GLenum = 0x8C88;
4090 #[doc = "`GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW: GLenum = 0x82ED`"]
4091 pub const GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW: GLenum = 0x82ED;
4092 #[doc = "`GL_TRANSFORM_FEEDBACK_VARYING: GLenum = 0x92F4`"]
4093 #[doc = "* **Group:** ProgramInterface"]
4094 pub const GL_TRANSFORM_FEEDBACK_VARYING: GLenum = 0x92F4;
4095 #[doc = "`GL_TRANSFORM_FEEDBACK_VARYINGS: GLenum = 0x8C83`"]
4096 #[doc = "* **Group:** ProgramPropertyARB"]
4097 pub const GL_TRANSFORM_FEEDBACK_VARYINGS: GLenum = 0x8C83;
4098 #[doc = "`GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH: GLenum = 0x8C76`"]
4099 #[doc = "* **Group:** ProgramPropertyARB"]
4100 pub const GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH: GLenum = 0x8C76;
4101 #[doc = "`GL_TRIANGLES: GLenum = 0x0004`"]
4102 #[doc = "* **Group:** PrimitiveType"]
4103 pub const GL_TRIANGLES: GLenum = 0x0004;
4104 #[doc = "`GL_TRIANGLES_ADJACENCY: GLenum = 0x000C`"]
4105 #[doc = "* **Group:** PrimitiveType"]
4106 pub const GL_TRIANGLES_ADJACENCY: GLenum = 0x000C;
4107 #[doc = "`GL_TRIANGLE_FAN: GLenum = 0x0006`"]
4108 #[doc = "* **Group:** PrimitiveType"]
4109 pub const GL_TRIANGLE_FAN: GLenum = 0x0006;
4110 #[doc = "`GL_TRIANGLE_STRIP: GLenum = 0x0005`"]
4111 #[doc = "* **Group:** PrimitiveType"]
4112 pub const GL_TRIANGLE_STRIP: GLenum = 0x0005;
4113 #[doc = "`GL_TRIANGLE_STRIP_ADJACENCY: GLenum = 0x000D`"]
4114 #[doc = "* **Group:** PrimitiveType"]
4115 pub const GL_TRIANGLE_STRIP_ADJACENCY: GLenum = 0x000D;
4116 #[doc = "`GL_TRUE: GLenum = 1`"]
4117 #[doc = "* **Groups:** Boolean, VertexShaderWriteMaskEXT, ClampColorModeARB"]
4118 pub const GL_TRUE: GLenum = 1;
4119 #[doc = "`GL_TYPE: GLenum = 0x92FA`"]
4120 #[doc = "* **Group:** ProgramResourceProperty"]
4121 pub const GL_TYPE: GLenum = 0x92FA;
4122 #[doc = "`GL_UNDEFINED_VERTEX: GLenum = 0x8260`"]
4123 pub const GL_UNDEFINED_VERTEX: GLenum = 0x8260;
4124 #[doc = "`GL_UNIFORM: GLenum = 0x92E1`"]
4125 #[doc = "* **Groups:** ProgramResourceProperty, ProgramInterface"]
4126 pub const GL_UNIFORM: GLenum = 0x92E1;
4127 #[doc = "`GL_UNIFORM_ARRAY_STRIDE: GLenum = 0x8A3C`"]
4128 #[doc = "* **Group:** UniformPName"]
4129 pub const GL_UNIFORM_ARRAY_STRIDE: GLenum = 0x8A3C;
4130 #[doc = "`GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX: GLenum = 0x92DA`"]
4131 #[doc = "* **Group:** UniformPName"]
4132 pub const GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX: GLenum = 0x92DA;
4133 #[doc = "`GL_UNIFORM_BARRIER_BIT: GLbitfield = 0x00000004`"]
4134 #[doc = "* **Group:** MemoryBarrierMask"]
4135 pub const GL_UNIFORM_BARRIER_BIT: GLbitfield = 0x00000004;
4136 #[doc = "`GL_UNIFORM_BLOCK: GLenum = 0x92E2`"]
4137 #[doc = "* **Group:** ProgramInterface"]
4138 pub const GL_UNIFORM_BLOCK: GLenum = 0x92E2;
4139 #[doc = "`GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS: GLenum = 0x8A42`"]
4140 #[doc = "* **Group:** UniformBlockPName"]
4141 pub const GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS: GLenum = 0x8A42;
4142 #[doc = "`GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: GLenum = 0x8A43`"]
4143 #[doc = "* **Group:** UniformBlockPName"]
4144 pub const GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: GLenum = 0x8A43;
4145 #[doc = "`GL_UNIFORM_BLOCK_BINDING: GLenum = 0x8A3F`"]
4146 #[doc = "* **Group:** UniformBlockPName"]
4147 pub const GL_UNIFORM_BLOCK_BINDING: GLenum = 0x8A3F;
4148 #[doc = "`GL_UNIFORM_BLOCK_DATA_SIZE: GLenum = 0x8A40`"]
4149 #[doc = "* **Group:** UniformBlockPName"]
4150 pub const GL_UNIFORM_BLOCK_DATA_SIZE: GLenum = 0x8A40;
4151 #[doc = "`GL_UNIFORM_BLOCK_INDEX: GLenum = 0x8A3A`"]
4152 #[doc = "* **Group:** UniformPName"]
4153 pub const GL_UNIFORM_BLOCK_INDEX: GLenum = 0x8A3A;
4154 #[doc = "`GL_UNIFORM_BLOCK_NAME_LENGTH: GLenum = 0x8A41`"]
4155 #[doc = "* **Group:** UniformBlockPName"]
4156 pub const GL_UNIFORM_BLOCK_NAME_LENGTH: GLenum = 0x8A41;
4157 #[doc = "`GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER: GLenum = 0x90EC`"]
4158 #[doc = "* **Group:** UniformBlockPName"]
4159 pub const GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER: GLenum = 0x90EC;
4160 #[doc = "`GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: GLenum = 0x8A46`"]
4161 #[doc = "* **Group:** UniformBlockPName"]
4162 pub const GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: GLenum = 0x8A46;
4163 #[doc = "`GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER: GLenum = 0x8A45`"]
4164 #[doc = "* **Group:** UniformBlockPName"]
4165 pub const GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER: GLenum = 0x8A45;
4166 #[doc = "`GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER: GLenum = 0x84F0`"]
4167 #[doc = "* **Group:** UniformBlockPName"]
4168 pub const GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER: GLenum = 0x84F0;
4169 #[doc = "`GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER: GLenum = 0x84F1`"]
4170 #[doc = "* **Group:** UniformBlockPName"]
4171 pub const GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER: GLenum = 0x84F1;
4172 #[doc = "`GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: GLenum = 0x8A44`"]
4173 #[doc = "* **Group:** UniformBlockPName"]
4174 pub const GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: GLenum = 0x8A44;
4175 #[doc = "`GL_UNIFORM_BUFFER: GLenum = 0x8A11`"]
4176 #[doc = "* **Groups:** CopyBufferSubDataTarget, BufferTargetARB, BufferStorageTarget"]
4177 pub const GL_UNIFORM_BUFFER: GLenum = 0x8A11;
4178 #[doc = "`GL_UNIFORM_BUFFER_BINDING: GLenum = 0x8A28`"]
4179 #[doc = "* **Group:** GetPName"]
4180 pub const GL_UNIFORM_BUFFER_BINDING: GLenum = 0x8A28;
4181 #[doc = "`GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT: GLenum = 0x8A34`"]
4182 #[doc = "* **Group:** GetPName"]
4183 pub const GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT: GLenum = 0x8A34;
4184 #[doc = "`GL_UNIFORM_BUFFER_SIZE: GLenum = 0x8A2A`"]
4185 #[doc = "* **Group:** GetPName"]
4186 pub const GL_UNIFORM_BUFFER_SIZE: GLenum = 0x8A2A;
4187 #[doc = "`GL_UNIFORM_BUFFER_START: GLenum = 0x8A29`"]
4188 #[doc = "* **Group:** GetPName"]
4189 pub const GL_UNIFORM_BUFFER_START: GLenum = 0x8A29;
4190 #[doc = "`GL_UNIFORM_IS_ROW_MAJOR: GLenum = 0x8A3E`"]
4191 #[doc = "* **Group:** UniformPName"]
4192 pub const GL_UNIFORM_IS_ROW_MAJOR: GLenum = 0x8A3E;
4193 #[doc = "`GL_UNIFORM_MATRIX_STRIDE: GLenum = 0x8A3D`"]
4194 #[doc = "* **Group:** UniformPName"]
4195 pub const GL_UNIFORM_MATRIX_STRIDE: GLenum = 0x8A3D;
4196 #[doc = "`GL_UNIFORM_NAME_LENGTH: GLenum = 0x8A39`"]
4197 #[doc = "* **Groups:** SubroutineParameterName, UniformPName"]
4198 pub const GL_UNIFORM_NAME_LENGTH: GLenum = 0x8A39;
4199 #[doc = "`GL_UNIFORM_OFFSET: GLenum = 0x8A3B`"]
4200 #[doc = "* **Group:** UniformPName"]
4201 pub const GL_UNIFORM_OFFSET: GLenum = 0x8A3B;
4202 #[doc = "`GL_UNIFORM_SIZE: GLenum = 0x8A38`"]
4203 #[doc = "* **Groups:** SubroutineParameterName, UniformPName"]
4204 pub const GL_UNIFORM_SIZE: GLenum = 0x8A38;
4205 #[doc = "`GL_UNIFORM_TYPE: GLenum = 0x8A37`"]
4206 #[doc = "* **Group:** UniformPName"]
4207 pub const GL_UNIFORM_TYPE: GLenum = 0x8A37;
4208 #[doc = "`GL_UNKNOWN_CONTEXT_RESET: GLenum = 0x8255`"]
4209 #[doc = "* **Group:** GraphicsResetStatus"]
4210 pub const GL_UNKNOWN_CONTEXT_RESET: GLenum = 0x8255;
4211 #[doc = "`GL_UNPACK_ALIGNMENT: GLenum = 0x0CF5`"]
4212 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4213 pub const GL_UNPACK_ALIGNMENT: GLenum = 0x0CF5;
4214 #[doc = "`GL_UNPACK_COMPRESSED_BLOCK_DEPTH: GLenum = 0x9129`"]
4215 pub const GL_UNPACK_COMPRESSED_BLOCK_DEPTH: GLenum = 0x9129;
4216 #[doc = "`GL_UNPACK_COMPRESSED_BLOCK_HEIGHT: GLenum = 0x9128`"]
4217 pub const GL_UNPACK_COMPRESSED_BLOCK_HEIGHT: GLenum = 0x9128;
4218 #[doc = "`GL_UNPACK_COMPRESSED_BLOCK_SIZE: GLenum = 0x912A`"]
4219 pub const GL_UNPACK_COMPRESSED_BLOCK_SIZE: GLenum = 0x912A;
4220 #[doc = "`GL_UNPACK_COMPRESSED_BLOCK_WIDTH: GLenum = 0x9127`"]
4221 pub const GL_UNPACK_COMPRESSED_BLOCK_WIDTH: GLenum = 0x9127;
4222 #[doc = "`GL_UNPACK_IMAGE_HEIGHT: GLenum = 0x806E`"]
4223 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4224 pub const GL_UNPACK_IMAGE_HEIGHT: GLenum = 0x806E;
4225 #[doc = "`GL_UNPACK_LSB_FIRST: GLenum = 0x0CF1`"]
4226 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4227 pub const GL_UNPACK_LSB_FIRST: GLenum = 0x0CF1;
4228 #[doc = "`GL_UNPACK_ROW_LENGTH: GLenum = 0x0CF2`"]
4229 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4230 pub const GL_UNPACK_ROW_LENGTH: GLenum = 0x0CF2;
4231 #[doc = "`GL_UNPACK_SKIP_IMAGES: GLenum = 0x806D`"]
4232 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4233 pub const GL_UNPACK_SKIP_IMAGES: GLenum = 0x806D;
4234 #[doc = "`GL_UNPACK_SKIP_PIXELS: GLenum = 0x0CF4`"]
4235 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4236 pub const GL_UNPACK_SKIP_PIXELS: GLenum = 0x0CF4;
4237 #[doc = "`GL_UNPACK_SKIP_ROWS: GLenum = 0x0CF3`"]
4238 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4239 pub const GL_UNPACK_SKIP_ROWS: GLenum = 0x0CF3;
4240 #[doc = "`GL_UNPACK_SWAP_BYTES: GLenum = 0x0CF0`"]
4241 #[doc = "* **Groups:** PixelStoreParameter, GetPName"]
4242 pub const GL_UNPACK_SWAP_BYTES: GLenum = 0x0CF0;
4243 #[doc = "`GL_UNSIGNALED: GLenum = 0x9118`"]
4244 pub const GL_UNSIGNALED: GLenum = 0x9118;
4245 #[doc = "`GL_UNSIGNED_BYTE: GLenum = 0x1401`"]
4246 #[doc = "* **Groups:** VertexAttribIType, ScalarType, ReplacementCodeTypeSUN, ElementPointerTypeATI, MatrixIndexPointerTypeARB, WeightPointerTypeARB, ColorPointerType, DrawElementsType, ListNameType, PixelType, VertexAttribType, VertexAttribPointerType"]
4247 pub const GL_UNSIGNED_BYTE: GLenum = 0x1401;
4248 #[doc = "`GL_UNSIGNED_BYTE_2_3_3_REV: GLenum = 0x8362`"]
4249 pub const GL_UNSIGNED_BYTE_2_3_3_REV: GLenum = 0x8362;
4250 #[doc = "`GL_UNSIGNED_BYTE_3_3_2: GLenum = 0x8032`"]
4251 #[doc = "* **Group:** PixelType"]
4252 pub const GL_UNSIGNED_BYTE_3_3_2: GLenum = 0x8032;
4253 #[doc = "`GL_UNSIGNED_INT: GLenum = 0x1405`"]
4254 #[doc = "* **Groups:** VertexAttribIType, ScalarType, ReplacementCodeTypeSUN, ElementPointerTypeATI, MatrixIndexPointerTypeARB, WeightPointerTypeARB, ColorPointerType, DrawElementsType, ListNameType, PixelFormat, PixelType, VertexAttribType, AttributeType, UniformType, VertexAttribPointerType, GlslTypeToken"]
4255 pub const GL_UNSIGNED_INT: GLenum = 0x1405;
4256 #[doc = "`GL_UNSIGNED_INT_10F_11F_11F_REV: GLenum = 0x8C3B`"]
4257 #[doc = "* **Groups:** VertexAttribPointerType, VertexAttribType"]
4258 pub const GL_UNSIGNED_INT_10F_11F_11F_REV: GLenum = 0x8C3B;
4259 #[doc = "`GL_UNSIGNED_INT_10_10_10_2: GLenum = 0x8036`"]
4260 #[doc = "* **Group:** PixelType"]
4261 pub const GL_UNSIGNED_INT_10_10_10_2: GLenum = 0x8036;
4262 #[doc = "`GL_UNSIGNED_INT_24_8: GLenum = 0x84FA`"]
4263 pub const GL_UNSIGNED_INT_24_8: GLenum = 0x84FA;
4264 #[doc = "`GL_UNSIGNED_INT_2_10_10_10_REV: GLenum = 0x8368`"]
4265 #[doc = "* **Groups:** VertexAttribPointerType, VertexAttribType"]
4266 pub const GL_UNSIGNED_INT_2_10_10_10_REV: GLenum = 0x8368;
4267 #[doc = "`GL_UNSIGNED_INT_5_9_9_9_REV: GLenum = 0x8C3E`"]
4268 pub const GL_UNSIGNED_INT_5_9_9_9_REV: GLenum = 0x8C3E;
4269 #[doc = "`GL_UNSIGNED_INT_8_8_8_8: GLenum = 0x8035`"]
4270 #[doc = "* **Group:** PixelType"]
4271 pub const GL_UNSIGNED_INT_8_8_8_8: GLenum = 0x8035;
4272 #[doc = "`GL_UNSIGNED_INT_8_8_8_8_REV: GLenum = 0x8367`"]
4273 pub const GL_UNSIGNED_INT_8_8_8_8_REV: GLenum = 0x8367;
4274 #[doc = "`GL_UNSIGNED_INT_ATOMIC_COUNTER: GLenum = 0x92DB`"]
4275 #[doc = "* **Group:** GlslTypeToken"]
4276 pub const GL_UNSIGNED_INT_ATOMIC_COUNTER: GLenum = 0x92DB;
4277 #[doc = "`GL_UNSIGNED_INT_IMAGE_1D: GLenum = 0x9062`"]
4278 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4279 pub const GL_UNSIGNED_INT_IMAGE_1D: GLenum = 0x9062;
4280 #[doc = "`GL_UNSIGNED_INT_IMAGE_1D_ARRAY: GLenum = 0x9068`"]
4281 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4282 pub const GL_UNSIGNED_INT_IMAGE_1D_ARRAY: GLenum = 0x9068;
4283 #[doc = "`GL_UNSIGNED_INT_IMAGE_2D: GLenum = 0x9063`"]
4284 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4285 pub const GL_UNSIGNED_INT_IMAGE_2D: GLenum = 0x9063;
4286 #[doc = "`GL_UNSIGNED_INT_IMAGE_2D_ARRAY: GLenum = 0x9069`"]
4287 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4288 pub const GL_UNSIGNED_INT_IMAGE_2D_ARRAY: GLenum = 0x9069;
4289 #[doc = "`GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE: GLenum = 0x906B`"]
4290 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4291 pub const GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE: GLenum = 0x906B;
4292 #[doc = "`GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY: GLenum = 0x906C`"]
4293 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4294 pub const GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY: GLenum = 0x906C;
4295 #[doc = "`GL_UNSIGNED_INT_IMAGE_2D_RECT: GLenum = 0x9065`"]
4296 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4297 pub const GL_UNSIGNED_INT_IMAGE_2D_RECT: GLenum = 0x9065;
4298 #[doc = "`GL_UNSIGNED_INT_IMAGE_3D: GLenum = 0x9064`"]
4299 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4300 pub const GL_UNSIGNED_INT_IMAGE_3D: GLenum = 0x9064;
4301 #[doc = "`GL_UNSIGNED_INT_IMAGE_BUFFER: GLenum = 0x9067`"]
4302 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4303 pub const GL_UNSIGNED_INT_IMAGE_BUFFER: GLenum = 0x9067;
4304 #[doc = "`GL_UNSIGNED_INT_IMAGE_CUBE: GLenum = 0x9066`"]
4305 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4306 pub const GL_UNSIGNED_INT_IMAGE_CUBE: GLenum = 0x9066;
4307 #[doc = "`GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY: GLenum = 0x906A`"]
4308 #[doc = "* **Groups:** GlslTypeToken, AttributeType"]
4309 pub const GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY: GLenum = 0x906A;
4310 #[doc = "`GL_UNSIGNED_INT_SAMPLER_1D: GLenum = 0x8DD1`"]
4311 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4312 pub const GL_UNSIGNED_INT_SAMPLER_1D: GLenum = 0x8DD1;
4313 #[doc = "`GL_UNSIGNED_INT_SAMPLER_1D_ARRAY: GLenum = 0x8DD6`"]
4314 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4315 pub const GL_UNSIGNED_INT_SAMPLER_1D_ARRAY: GLenum = 0x8DD6;
4316 #[doc = "`GL_UNSIGNED_INT_SAMPLER_2D: GLenum = 0x8DD2`"]
4317 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4318 pub const GL_UNSIGNED_INT_SAMPLER_2D: GLenum = 0x8DD2;
4319 #[doc = "`GL_UNSIGNED_INT_SAMPLER_2D_ARRAY: GLenum = 0x8DD7`"]
4320 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4321 pub const GL_UNSIGNED_INT_SAMPLER_2D_ARRAY: GLenum = 0x8DD7;
4322 #[doc = "`GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE: GLenum = 0x910A`"]
4323 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4324 pub const GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE: GLenum = 0x910A;
4325 #[doc = "`GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: GLenum = 0x910D`"]
4326 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4327 pub const GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: GLenum = 0x910D;
4328 #[doc = "`GL_UNSIGNED_INT_SAMPLER_2D_RECT: GLenum = 0x8DD5`"]
4329 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4330 pub const GL_UNSIGNED_INT_SAMPLER_2D_RECT: GLenum = 0x8DD5;
4331 #[doc = "`GL_UNSIGNED_INT_SAMPLER_3D: GLenum = 0x8DD3`"]
4332 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4333 pub const GL_UNSIGNED_INT_SAMPLER_3D: GLenum = 0x8DD3;
4334 #[doc = "`GL_UNSIGNED_INT_SAMPLER_BUFFER: GLenum = 0x8DD8`"]
4335 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4336 pub const GL_UNSIGNED_INT_SAMPLER_BUFFER: GLenum = 0x8DD8;
4337 #[doc = "`GL_UNSIGNED_INT_SAMPLER_CUBE: GLenum = 0x8DD4`"]
4338 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4339 pub const GL_UNSIGNED_INT_SAMPLER_CUBE: GLenum = 0x8DD4;
4340 #[doc = "`GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY: GLenum = 0x900F`"]
4341 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4342 pub const GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY: GLenum = 0x900F;
4343 #[doc = "`GL_UNSIGNED_INT_VEC2: GLenum = 0x8DC6`"]
4344 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4345 pub const GL_UNSIGNED_INT_VEC2: GLenum = 0x8DC6;
4346 #[doc = "`GL_UNSIGNED_INT_VEC3: GLenum = 0x8DC7`"]
4347 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4348 pub const GL_UNSIGNED_INT_VEC3: GLenum = 0x8DC7;
4349 #[doc = "`GL_UNSIGNED_INT_VEC4: GLenum = 0x8DC8`"]
4350 #[doc = "* **Groups:** GlslTypeToken, AttributeType, UniformType"]
4351 pub const GL_UNSIGNED_INT_VEC4: GLenum = 0x8DC8;
4352 #[doc = "`GL_UNSIGNED_NORMALIZED: GLenum = 0x8C17`"]
4353 pub const GL_UNSIGNED_NORMALIZED: GLenum = 0x8C17;
4354 #[doc = "`GL_UNSIGNED_SHORT: GLenum = 0x1403`"]
4355 #[doc = "* **Groups:** VertexAttribIType, ScalarType, ReplacementCodeTypeSUN, ElementPointerTypeATI, MatrixIndexPointerTypeARB, WeightPointerTypeARB, ColorPointerType, DrawElementsType, ListNameType, PixelFormat, PixelType, VertexAttribType, VertexAttribPointerType"]
4356 pub const GL_UNSIGNED_SHORT: GLenum = 0x1403;
4357 #[doc = "`GL_UNSIGNED_SHORT_1_5_5_5_REV: GLenum = 0x8366`"]
4358 pub const GL_UNSIGNED_SHORT_1_5_5_5_REV: GLenum = 0x8366;
4359 #[doc = "`GL_UNSIGNED_SHORT_4_4_4_4: GLenum = 0x8033`"]
4360 #[doc = "* **Group:** PixelType"]
4361 pub const GL_UNSIGNED_SHORT_4_4_4_4: GLenum = 0x8033;
4362 #[doc = "`GL_UNSIGNED_SHORT_4_4_4_4_REV: GLenum = 0x8365`"]
4363 pub const GL_UNSIGNED_SHORT_4_4_4_4_REV: GLenum = 0x8365;
4364 #[doc = "`GL_UNSIGNED_SHORT_5_5_5_1: GLenum = 0x8034`"]
4365 #[doc = "* **Group:** PixelType"]
4366 pub const GL_UNSIGNED_SHORT_5_5_5_1: GLenum = 0x8034;
4367 #[doc = "`GL_UNSIGNED_SHORT_5_6_5: GLenum = 0x8363`"]
4368 pub const GL_UNSIGNED_SHORT_5_6_5: GLenum = 0x8363;
4369 #[doc = "`GL_UNSIGNED_SHORT_5_6_5_REV: GLenum = 0x8364`"]
4370 pub const GL_UNSIGNED_SHORT_5_6_5_REV: GLenum = 0x8364;
4371 #[doc = "`GL_UPPER_LEFT: GLenum = 0x8CA2`"]
4372 #[doc = "* **Group:** ClipControlOrigin"]
4373 pub const GL_UPPER_LEFT: GLenum = 0x8CA2;
4374 #[doc = "`GL_VALIDATE_STATUS: GLenum = 0x8B83`"]
4375 #[doc = "* **Group:** ProgramPropertyARB"]
4376 pub const GL_VALIDATE_STATUS: GLenum = 0x8B83;
4377 #[doc = "`GL_VENDOR: GLenum = 0x1F00`"]
4378 #[doc = "* **Group:** StringName"]
4379 pub const GL_VENDOR: GLenum = 0x1F00;
4380 #[doc = "`GL_VERSION: GLenum = 0x1F02`"]
4381 #[doc = "* **Group:** StringName"]
4382 pub const GL_VERSION: GLenum = 0x1F02;
4383 #[doc = "`GL_VERTEX_ARRAY: GLenum = 0x8074`"]
4384 #[doc = "* **Groups:** ObjectIdentifier, EnableCap, GetPName"]
4385 pub const GL_VERTEX_ARRAY: GLenum = 0x8074;
4386 #[doc = "`GL_VERTEX_ARRAY_BINDING: GLenum = 0x85B5`"]
4387 #[doc = "* **Group:** GetPName"]
4388 pub const GL_VERTEX_ARRAY_BINDING: GLenum = 0x85B5;
4389 #[doc = "`GL_VERTEX_ARRAY_BINDING_APPLE: GLenum = 0x85B5`"]
4390 pub const GL_VERTEX_ARRAY_BINDING_APPLE: GLenum = 0x85B5;
4391 #[doc = "`GL_VERTEX_ARRAY_BINDING_OES: GLenum = 0x85B5`"]
4392 pub const GL_VERTEX_ARRAY_BINDING_OES: GLenum = 0x85B5;
4393 #[doc = "`GL_VERTEX_ARRAY_KHR: GLenum = 0x8074`"]
4394 pub const GL_VERTEX_ARRAY_KHR: GLenum = 0x8074;
4395 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT: GLbitfield = 0x00000001`"]
4396 #[doc = "* **Group:** MemoryBarrierMask"]
4397 pub const GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT: GLbitfield = 0x00000001;
4398 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum = 0x889F`"]
4399 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB"]
4400 pub const GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum = 0x889F;
4401 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_DIVISOR: GLenum = 0x88FE`"]
4402 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4403 pub const GL_VERTEX_ATTRIB_ARRAY_DIVISOR: GLenum = 0x88FE;
4404 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB: GLenum = 0x88FE`"]
4405 pub const GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB: GLenum = 0x88FE;
4406 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_ENABLED: GLenum = 0x8622`"]
4407 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4408 pub const GL_VERTEX_ATTRIB_ARRAY_ENABLED: GLenum = 0x8622;
4409 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_INTEGER: GLenum = 0x88FD`"]
4410 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4411 pub const GL_VERTEX_ATTRIB_ARRAY_INTEGER: GLenum = 0x88FD;
4412 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_LONG: GLenum = 0x874E`"]
4413 #[doc = "* **Groups:** VertexArrayPName, VertexAttribPropertyARB"]
4414 pub const GL_VERTEX_ATTRIB_ARRAY_LONG: GLenum = 0x874E;
4415 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum = 0x886A`"]
4416 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4417 pub const GL_VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum = 0x886A;
4418 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_POINTER: GLenum = 0x8645`"]
4419 #[doc = "* **Group:** VertexAttribPointerPropertyARB"]
4420 pub const GL_VERTEX_ATTRIB_ARRAY_POINTER: GLenum = 0x8645;
4421 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_SIZE: GLenum = 0x8623`"]
4422 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4423 pub const GL_VERTEX_ATTRIB_ARRAY_SIZE: GLenum = 0x8623;
4424 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_STRIDE: GLenum = 0x8624`"]
4425 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4426 pub const GL_VERTEX_ATTRIB_ARRAY_STRIDE: GLenum = 0x8624;
4427 #[doc = "`GL_VERTEX_ATTRIB_ARRAY_TYPE: GLenum = 0x8625`"]
4428 #[doc = "* **Groups:** VertexAttribEnum, VertexAttribPropertyARB, VertexArrayPName"]
4429 pub const GL_VERTEX_ATTRIB_ARRAY_TYPE: GLenum = 0x8625;
4430 #[doc = "`GL_VERTEX_ATTRIB_BINDING: GLenum = 0x82D4`"]
4431 #[doc = "* **Group:** VertexAttribPropertyARB"]
4432 pub const GL_VERTEX_ATTRIB_BINDING: GLenum = 0x82D4;
4433 #[doc = "`GL_VERTEX_ATTRIB_RELATIVE_OFFSET: GLenum = 0x82D5`"]
4434 #[doc = "* **Groups:** VertexArrayPName, VertexAttribPropertyARB"]
4435 pub const GL_VERTEX_ATTRIB_RELATIVE_OFFSET: GLenum = 0x82D5;
4436 #[doc = "`GL_VERTEX_BINDING_BUFFER: GLenum = 0x8F4F`"]
4437 pub const GL_VERTEX_BINDING_BUFFER: GLenum = 0x8F4F;
4438 #[doc = "`GL_VERTEX_BINDING_DIVISOR: GLenum = 0x82D6`"]
4439 #[doc = "* **Group:** GetPName"]
4440 pub const GL_VERTEX_BINDING_DIVISOR: GLenum = 0x82D6;
4441 #[doc = "`GL_VERTEX_BINDING_OFFSET: GLenum = 0x82D7`"]
4442 #[doc = "* **Group:** GetPName"]
4443 pub const GL_VERTEX_BINDING_OFFSET: GLenum = 0x82D7;
4444 #[doc = "`GL_VERTEX_BINDING_STRIDE: GLenum = 0x82D8`"]
4445 #[doc = "* **Group:** GetPName"]
4446 pub const GL_VERTEX_BINDING_STRIDE: GLenum = 0x82D8;
4447 #[doc = "`GL_VERTEX_PROGRAM_POINT_SIZE: GLenum = 0x8642`"]
4448 pub const GL_VERTEX_PROGRAM_POINT_SIZE: GLenum = 0x8642;
4449 #[doc = "`GL_VERTEX_SHADER: GLenum = 0x8B31`"]
4450 #[doc = "* **Groups:** PipelineParameterName, ShaderType"]
4451 pub const GL_VERTEX_SHADER: GLenum = 0x8B31;
4452 #[doc = "`GL_VERTEX_SHADER_BIT: GLbitfield = 0x00000001`"]
4453 #[doc = "* **Group:** UseProgramStageMask"]
4454 pub const GL_VERTEX_SHADER_BIT: GLbitfield = 0x00000001;
4455 #[doc = "`GL_VERTEX_SHADER_INVOCATIONS: GLenum = 0x82F0`"]
4456 #[doc = "* **Group:** QueryTarget"]
4457 pub const GL_VERTEX_SHADER_INVOCATIONS: GLenum = 0x82F0;
4458 #[doc = "`GL_VERTEX_SUBROUTINE: GLenum = 0x92E8`"]
4459 #[doc = "* **Group:** ProgramInterface"]
4460 pub const GL_VERTEX_SUBROUTINE: GLenum = 0x92E8;
4461 #[doc = "`GL_VERTEX_SUBROUTINE_UNIFORM: GLenum = 0x92EE`"]
4462 #[doc = "* **Group:** ProgramInterface"]
4463 pub const GL_VERTEX_SUBROUTINE_UNIFORM: GLenum = 0x92EE;
4464 #[doc = "`GL_VERTEX_TEXTURE: GLenum = 0x829B`"]
4465 #[doc = "* **Group:** InternalFormatPName"]
4466 pub const GL_VERTEX_TEXTURE: GLenum = 0x829B;
4467 #[doc = "`GL_VERTICES_SUBMITTED: GLenum = 0x82EE`"]
4468 #[doc = "* **Group:** QueryTarget"]
4469 pub const GL_VERTICES_SUBMITTED: GLenum = 0x82EE;
4470 #[doc = "`GL_VIEWPORT: GLenum = 0x0BA2`"]
4471 #[doc = "* **Group:** GetPName"]
4472 pub const GL_VIEWPORT: GLenum = 0x0BA2;
4473 #[doc = "`GL_VIEWPORT_BOUNDS_RANGE: GLenum = 0x825D`"]
4474 #[doc = "* **Group:** GetPName"]
4475 pub const GL_VIEWPORT_BOUNDS_RANGE: GLenum = 0x825D;
4476 #[doc = "`GL_VIEWPORT_INDEX_PROVOKING_VERTEX: GLenum = 0x825F`"]
4477 #[doc = "* **Group:** GetPName"]
4478 pub const GL_VIEWPORT_INDEX_PROVOKING_VERTEX: GLenum = 0x825F;
4479 #[doc = "`GL_VIEWPORT_SUBPIXEL_BITS: GLenum = 0x825C`"]
4480 #[doc = "* **Group:** GetPName"]
4481 pub const GL_VIEWPORT_SUBPIXEL_BITS: GLenum = 0x825C;
4482 #[doc = "`GL_VIEW_CLASS_128_BITS: GLenum = 0x82C4`"]
4483 pub const GL_VIEW_CLASS_128_BITS: GLenum = 0x82C4;
4484 #[doc = "`GL_VIEW_CLASS_16_BITS: GLenum = 0x82CA`"]
4485 pub const GL_VIEW_CLASS_16_BITS: GLenum = 0x82CA;
4486 #[doc = "`GL_VIEW_CLASS_24_BITS: GLenum = 0x82C9`"]
4487 pub const GL_VIEW_CLASS_24_BITS: GLenum = 0x82C9;
4488 #[doc = "`GL_VIEW_CLASS_32_BITS: GLenum = 0x82C8`"]
4489 pub const GL_VIEW_CLASS_32_BITS: GLenum = 0x82C8;
4490 #[doc = "`GL_VIEW_CLASS_48_BITS: GLenum = 0x82C7`"]
4491 pub const GL_VIEW_CLASS_48_BITS: GLenum = 0x82C7;
4492 #[doc = "`GL_VIEW_CLASS_64_BITS: GLenum = 0x82C6`"]
4493 pub const GL_VIEW_CLASS_64_BITS: GLenum = 0x82C6;
4494 #[doc = "`GL_VIEW_CLASS_8_BITS: GLenum = 0x82CB`"]
4495 pub const GL_VIEW_CLASS_8_BITS: GLenum = 0x82CB;
4496 #[doc = "`GL_VIEW_CLASS_96_BITS: GLenum = 0x82C5`"]
4497 pub const GL_VIEW_CLASS_96_BITS: GLenum = 0x82C5;
4498 #[doc = "`GL_VIEW_CLASS_BPTC_FLOAT: GLenum = 0x82D3`"]
4499 pub const GL_VIEW_CLASS_BPTC_FLOAT: GLenum = 0x82D3;
4500 #[doc = "`GL_VIEW_CLASS_BPTC_UNORM: GLenum = 0x82D2`"]
4501 pub const GL_VIEW_CLASS_BPTC_UNORM: GLenum = 0x82D2;
4502 #[doc = "`GL_VIEW_CLASS_RGTC1_RED: GLenum = 0x82D0`"]
4503 pub const GL_VIEW_CLASS_RGTC1_RED: GLenum = 0x82D0;
4504 #[doc = "`GL_VIEW_CLASS_RGTC2_RG: GLenum = 0x82D1`"]
4505 pub const GL_VIEW_CLASS_RGTC2_RG: GLenum = 0x82D1;
4506 #[doc = "`GL_VIEW_CLASS_S3TC_DXT1_RGB: GLenum = 0x82CC`"]
4507 pub const GL_VIEW_CLASS_S3TC_DXT1_RGB: GLenum = 0x82CC;
4508 #[doc = "`GL_VIEW_CLASS_S3TC_DXT1_RGBA: GLenum = 0x82CD`"]
4509 pub const GL_VIEW_CLASS_S3TC_DXT1_RGBA: GLenum = 0x82CD;
4510 #[doc = "`GL_VIEW_CLASS_S3TC_DXT3_RGBA: GLenum = 0x82CE`"]
4511 pub const GL_VIEW_CLASS_S3TC_DXT3_RGBA: GLenum = 0x82CE;
4512 #[doc = "`GL_VIEW_CLASS_S3TC_DXT5_RGBA: GLenum = 0x82CF`"]
4513 pub const GL_VIEW_CLASS_S3TC_DXT5_RGBA: GLenum = 0x82CF;
4514 #[doc = "`GL_VIEW_COMPATIBILITY_CLASS: GLenum = 0x82B6`"]
4515 #[doc = "* **Group:** InternalFormatPName"]
4516 pub const GL_VIEW_COMPATIBILITY_CLASS: GLenum = 0x82B6;
4517 #[doc = "`GL_WAIT_FAILED: GLenum = 0x911D`"]
4518 #[doc = "* **Group:** SyncStatus"]
4519 pub const GL_WAIT_FAILED: GLenum = 0x911D;
4520 #[doc = "`GL_WRITE_ONLY: GLenum = 0x88B9`"]
4521 #[doc = "* **Group:** BufferAccessARB"]
4522 pub const GL_WRITE_ONLY: GLenum = 0x88B9;
4523 #[doc = "`GL_XOR: GLenum = 0x1506`"]
4524 #[doc = "* **Group:** LogicOp"]
4525 pub const GL_XOR: GLenum = 0x1506;
4526 #[doc = "`GL_ZERO: GLenum = 0`"]
4527 #[doc = "* **Groups:** TextureSwizzle, StencilOp, BlendingFactor"]
4528 pub const GL_ZERO: GLenum = 0;
4529 #[doc = "`GL_ZERO_TO_ONE: GLenum = 0x935F`"]
4530 #[doc = "* **Group:** ClipControlDepth"]
4531 pub const GL_ZERO_TO_ONE: GLenum = 0x935F;
4532}
4533
4534#[cold]
4539#[inline(never)]
4540#[allow(dead_code)]
4541fn go_panic_because_fn_not_loaded(name: &str) -> ! {
4542 panic!("called {name} but it was not loaded.", name = name)
4543}
4544
4545#[inline(never)]
4551#[allow(dead_code)]
4552fn load_dyn_name_atomic_ptr(
4553 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
4554 fn_name: &[u8],
4555 ptr: &APcv,
4556) -> bool {
4557 debug_assert_eq!(*fn_name.last().unwrap(), 0);
4560 let p: *mut c_void = get_proc_address(fn_name.as_ptr() as *const c_char);
4561 let p_usize = p as usize;
4562 if p_usize == core::usize::MAX || p_usize < 8 {
4567 ptr.store(null_mut(), RELAX);
4568 false
4569 } else {
4570 ptr.store(p, RELAX);
4571 true
4572 }
4573}
4574
4575#[cfg(feature = "debug_automatic_glGetError")]
4577#[inline(never)]
4578fn report_error_code_from(name: &str, err: GLenum) {
4579 match err {
4580 GL_NO_ERROR => return,
4581 GL_INVALID_ENUM => error!("Invalid Enum to {name}.", name = name),
4582 GL_INVALID_VALUE => error!("Invalid Value to {name}.", name = name),
4583 GL_INVALID_OPERATION => error!("Invalid Operation to {name}.", name = name),
4584 GL_INVALID_FRAMEBUFFER_OPERATION => {
4585 error!("Invalid Framebuffer Operation to {name}.", name = name)
4586 }
4587 GL_OUT_OF_MEMORY => error!("Out of Memory in {name}.", name = name),
4588 GL_STACK_UNDERFLOW => error!("Stack Underflow in {name}.", name = name),
4589 GL_STACK_OVERFLOW => error!("Stack Overflow in {name}.", name = name),
4590 unknown => error!(
4591 "Unknown error code {unknown} to {name}.",
4592 name = name,
4593 unknown = unknown
4594 ),
4595 }
4596}
4597
4598#[inline(always)]
4599#[allow(dead_code)]
4600unsafe fn call_atomic_ptr_0arg<Ret>(name: &str, ptr: &APcv) -> Ret {
4601 let p = ptr.load(RELAX);
4602 match transmute::<*mut c_void, Option<extern "system" fn() -> Ret>>(p) {
4603 Some(fn_p) => fn_p(),
4604 None => go_panic_because_fn_not_loaded(name),
4605 }
4606}
4607
4608#[inline(always)]
4609#[allow(dead_code)]
4610unsafe fn call_atomic_ptr_1arg<Ret, A>(name: &str, ptr: &APcv, a: A) -> Ret {
4611 let p = ptr.load(RELAX);
4612 match transmute::<*mut c_void, Option<extern "system" fn(A) -> Ret>>(p) {
4613 Some(fn_p) => fn_p(a),
4614 None => go_panic_because_fn_not_loaded(name),
4615 }
4616}
4617
4618#[inline(always)]
4619#[allow(dead_code)]
4620unsafe fn call_atomic_ptr_2arg<Ret, A, B>(name: &str, ptr: &APcv, a: A, b: B) -> Ret {
4621 let p = ptr.load(RELAX);
4622 match transmute::<*mut c_void, Option<extern "system" fn(A, B) -> Ret>>(p) {
4623 Some(fn_p) => fn_p(a, b),
4624 None => go_panic_because_fn_not_loaded(name),
4625 }
4626}
4627
4628#[inline(always)]
4629#[allow(dead_code)]
4630unsafe fn call_atomic_ptr_3arg<Ret, A, B, C>(name: &str, ptr: &APcv, a: A, b: B, c: C) -> Ret {
4631 let p = ptr.load(RELAX);
4632 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C) -> Ret>>(p) {
4633 Some(fn_p) => fn_p(a, b, c),
4634 None => go_panic_because_fn_not_loaded(name),
4635 }
4636}
4637
4638#[inline(always)]
4639#[allow(dead_code)]
4640unsafe fn call_atomic_ptr_4arg<Ret, A, B, C, D>(
4641 name: &str,
4642 ptr: &APcv,
4643 a: A,
4644 b: B,
4645 c: C,
4646 d: D,
4647) -> Ret {
4648 let p = ptr.load(RELAX);
4649 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D) -> Ret>>(p) {
4650 Some(fn_p) => fn_p(a, b, c, d),
4651 None => go_panic_because_fn_not_loaded(name),
4652 }
4653}
4654
4655#[inline(always)]
4656#[allow(dead_code)]
4657unsafe fn call_atomic_ptr_5arg<Ret, A, B, C, D, E>(
4658 name: &str,
4659 ptr: &APcv,
4660 a: A,
4661 b: B,
4662 c: C,
4663 d: D,
4664 e: E,
4665) -> Ret {
4666 let p = ptr.load(RELAX);
4667 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E) -> Ret>>(p) {
4668 Some(fn_p) => fn_p(a, b, c, d, e),
4669 None => go_panic_because_fn_not_loaded(name),
4670 }
4671}
4672
4673#[inline(always)]
4674#[allow(dead_code)]
4675unsafe fn call_atomic_ptr_6arg<Ret, A, B, C, D, E, F>(
4676 name: &str,
4677 ptr: &APcv,
4678 a: A,
4679 b: B,
4680 c: C,
4681 d: D,
4682 e: E,
4683 f: F,
4684) -> Ret {
4685 let p = ptr.load(RELAX);
4686 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E, F) -> Ret>>(p) {
4687 Some(fn_p) => fn_p(a, b, c, d, e, f),
4688 None => go_panic_because_fn_not_loaded(name),
4689 }
4690}
4691
4692#[inline(always)]
4693#[allow(dead_code)]
4694unsafe fn call_atomic_ptr_7arg<Ret, A, B, C, D, E, F, G>(
4695 name: &str,
4696 ptr: &APcv,
4697 a: A,
4698 b: B,
4699 c: C,
4700 d: D,
4701 e: E,
4702 f: F,
4703 g: G,
4704) -> Ret {
4705 let p = ptr.load(RELAX);
4706 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E, F, G) -> Ret>>(p) {
4707 Some(fn_p) => fn_p(a, b, c, d, e, f, g),
4708 None => go_panic_because_fn_not_loaded(name),
4709 }
4710}
4711
4712#[inline(always)]
4713#[allow(dead_code)]
4714unsafe fn call_atomic_ptr_8arg<Ret, A, B, C, D, E, F, G, H>(
4715 name: &str,
4716 ptr: &APcv,
4717 a: A,
4718 b: B,
4719 c: C,
4720 d: D,
4721 e: E,
4722 f: F,
4723 g: G,
4724 h: H,
4725) -> Ret {
4726 let p = ptr.load(RELAX);
4727 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E, F, G, H) -> Ret>>(p) {
4728 Some(fn_p) => fn_p(a, b, c, d, e, f, g, h),
4729 None => go_panic_because_fn_not_loaded(name),
4730 }
4731}
4732
4733#[inline(always)]
4734#[allow(dead_code)]
4735unsafe fn call_atomic_ptr_9arg<Ret, A, B, C, D, E, F, G, H, I>(
4736 name: &str,
4737 ptr: &APcv,
4738 a: A,
4739 b: B,
4740 c: C,
4741 d: D,
4742 e: E,
4743 f: F,
4744 g: G,
4745 h: H,
4746 i: I,
4747) -> Ret {
4748 let p = ptr.load(RELAX);
4749 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E, F, G, H, I) -> Ret>>(p)
4750 {
4751 Some(fn_p) => fn_p(a, b, c, d, e, f, g, h, i),
4752 None => go_panic_because_fn_not_loaded(name),
4753 }
4754}
4755
4756#[inline(always)]
4757#[allow(dead_code)]
4758unsafe fn call_atomic_ptr_10arg<Ret, A, B, C, D, E, F, G, H, I, J>(
4759 name: &str,
4760 ptr: &APcv,
4761 a: A,
4762 b: B,
4763 c: C,
4764 d: D,
4765 e: E,
4766 f: F,
4767 g: G,
4768 h: H,
4769 i: I,
4770 j: J,
4771) -> Ret {
4772 let p = ptr.load(RELAX);
4773 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E, F, G, H, I, J) -> Ret>>(
4774 p,
4775 ) {
4776 Some(fn_p) => fn_p(a, b, c, d, e, f, g, h, i, j),
4777 None => go_panic_because_fn_not_loaded(name),
4778 }
4779}
4780
4781#[inline(always)]
4782#[allow(dead_code)]
4783unsafe fn call_atomic_ptr_11arg<Ret, A, B, C, D, E, F, G, H, I, J, K>(
4784 name: &str,
4785 ptr: &APcv,
4786 a: A,
4787 b: B,
4788 c: C,
4789 d: D,
4790 e: E,
4791 f: F,
4792 g: G,
4793 h: H,
4794 i: I,
4795 j: J,
4796 k: K,
4797) -> Ret {
4798 let p = ptr.load(RELAX);
4799 match transmute::<*mut c_void, Option<extern "system" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret>>(
4800 p,
4801 ) {
4802 Some(fn_p) => fn_p(a, b, c, d, e, f, g, h, i, j, k),
4803 None => go_panic_because_fn_not_loaded(name),
4804 }
4805}
4806
4807#[inline(always)]
4808#[allow(dead_code)]
4809unsafe fn call_atomic_ptr_12arg<Ret, A, B, C, D, E, F, G, H, I, J, K, L>(
4810 name: &str,
4811 ptr: &APcv,
4812 a: A,
4813 b: B,
4814 c: C,
4815 d: D,
4816 e: E,
4817 f: F,
4818 g: G,
4819 h: H,
4820 i: I,
4821 j: J,
4822 k: K,
4823 l: L,
4824) -> Ret {
4825 let p = ptr.load(RELAX);
4826 match transmute::<
4827 *mut c_void,
4828 Option<extern "system" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret>,
4829 >(p)
4830 {
4831 Some(fn_p) => fn_p(a, b, c, d, e, f, g, h, i, j, k, l),
4832 None => go_panic_because_fn_not_loaded(name),
4833 }
4834}
4835
4836#[inline(always)]
4837#[allow(dead_code)]
4838unsafe fn call_atomic_ptr_15arg<Ret, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O>(
4839 name: &str,
4840 ptr: &APcv,
4841 a: A,
4842 b: B,
4843 c: C,
4844 d: D,
4845 e: E,
4846 f: F,
4847 g: G,
4848 h: H,
4849 i: I,
4850 j: J,
4851 k: K,
4852 l: L,
4853 m: M,
4854 n: N,
4855 o: O,
4856) -> Ret {
4857 let p = ptr.load(RELAX);
4858 match transmute::<
4859 *mut c_void,
4860 Option<extern "system" fn(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O) -> Ret>,
4861 >(p)
4862 {
4863 Some(fn_p) => fn_p(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o),
4864 None => go_panic_because_fn_not_loaded(name),
4865 }
4866}
4867
4868pub use struct_commands::*;
4869pub mod struct_commands {
4870 use super::*;
4872 impl GlFns {
4873 pub unsafe fn load_with<F>(mut get_proc_address: F) -> Self
4875 where
4876 F: FnMut(*const c_char) -> *mut c_void,
4877 {
4878 let out: Self = core::mem::zeroed();
4881 out.load_all_with_dyn(&mut get_proc_address);
4882 out
4883 }
4884
4885 #[cfg(feature = "debug_automatic_glGetError")]
4886 #[inline(never)]
4887 unsafe fn automatic_glGetError(&self, name: &str) {
4888 let mut err = self.GetError();
4889 while err != GL_NO_ERROR {
4890 report_error_code_from(name, err);
4891 err = self.GetError();
4892 }
4893 }
4894
4895 #[doc(hidden)]
4897 #[inline(never)]
4898 pub unsafe fn load_all_with_dyn(
4899 &self,
4900 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
4901 ) {
4902 self.ActiveShaderProgram_load_with_dyn(get_proc_address);
4903 self.ActiveTexture_load_with_dyn(get_proc_address);
4904 self.AttachShader_load_with_dyn(get_proc_address);
4905 self.BeginConditionalRender_load_with_dyn(get_proc_address);
4906 self.BeginQuery_load_with_dyn(get_proc_address);
4907 {
4908 self.BeginQueryEXT_load_with_dyn(get_proc_address);
4909 }
4910 self.BeginQueryIndexed_load_with_dyn(get_proc_address);
4911 self.BeginTransformFeedback_load_with_dyn(get_proc_address);
4912 self.BindAttribLocation_load_with_dyn(get_proc_address);
4913 self.BindBuffer_load_with_dyn(get_proc_address);
4914 self.BindBufferBase_load_with_dyn(get_proc_address);
4915 self.BindBufferRange_load_with_dyn(get_proc_address);
4916 self.BindBuffersBase_load_with_dyn(get_proc_address);
4917 self.BindBuffersRange_load_with_dyn(get_proc_address);
4918 self.BindFragDataLocation_load_with_dyn(get_proc_address);
4919 self.BindFragDataLocationIndexed_load_with_dyn(get_proc_address);
4920 self.BindFramebuffer_load_with_dyn(get_proc_address);
4921 self.BindImageTexture_load_with_dyn(get_proc_address);
4922 self.BindImageTextures_load_with_dyn(get_proc_address);
4923 self.BindProgramPipeline_load_with_dyn(get_proc_address);
4924 self.BindRenderbuffer_load_with_dyn(get_proc_address);
4925 self.BindSampler_load_with_dyn(get_proc_address);
4926 self.BindSamplers_load_with_dyn(get_proc_address);
4927 self.BindTexture_load_with_dyn(get_proc_address);
4928 self.BindTextureUnit_load_with_dyn(get_proc_address);
4929 self.BindTextures_load_with_dyn(get_proc_address);
4930 self.BindTransformFeedback_load_with_dyn(get_proc_address);
4931 self.BindVertexArray_load_with_dyn(get_proc_address);
4932 {
4933 self.BindVertexArrayAPPLE_load_with_dyn(get_proc_address);
4934 }
4935 {
4936 self.BindVertexArrayOES_load_with_dyn(get_proc_address);
4937 }
4938 self.BindVertexBuffer_load_with_dyn(get_proc_address);
4939 self.BindVertexBuffers_load_with_dyn(get_proc_address);
4940 self.BlendBarrier_load_with_dyn(get_proc_address);
4941 self.BlendColor_load_with_dyn(get_proc_address);
4942 self.BlendEquation_load_with_dyn(get_proc_address);
4943 self.BlendEquationSeparate_load_with_dyn(get_proc_address);
4944 self.BlendEquationSeparatei_load_with_dyn(get_proc_address);
4945 self.BlendEquationi_load_with_dyn(get_proc_address);
4946 self.BlendFunc_load_with_dyn(get_proc_address);
4947 self.BlendFuncSeparate_load_with_dyn(get_proc_address);
4948 self.BlendFuncSeparatei_load_with_dyn(get_proc_address);
4949 self.BlendFunci_load_with_dyn(get_proc_address);
4950 self.BlitFramebuffer_load_with_dyn(get_proc_address);
4951 self.BlitNamedFramebuffer_load_with_dyn(get_proc_address);
4952 self.BufferData_load_with_dyn(get_proc_address);
4953 self.BufferStorage_load_with_dyn(get_proc_address);
4954 {
4955 self.BufferStorageEXT_load_with_dyn(get_proc_address);
4956 }
4957 self.BufferSubData_load_with_dyn(get_proc_address);
4958 self.CheckFramebufferStatus_load_with_dyn(get_proc_address);
4959 self.CheckNamedFramebufferStatus_load_with_dyn(get_proc_address);
4960 self.ClampColor_load_with_dyn(get_proc_address);
4961 self.Clear_load_with_dyn(get_proc_address);
4962 self.ClearBufferData_load_with_dyn(get_proc_address);
4963 self.ClearBufferSubData_load_with_dyn(get_proc_address);
4964 self.ClearBufferfi_load_with_dyn(get_proc_address);
4965 self.ClearBufferfv_load_with_dyn(get_proc_address);
4966 self.ClearBufferiv_load_with_dyn(get_proc_address);
4967 self.ClearBufferuiv_load_with_dyn(get_proc_address);
4968 self.ClearColor_load_with_dyn(get_proc_address);
4969 self.ClearDepth_load_with_dyn(get_proc_address);
4970 self.ClearDepthf_load_with_dyn(get_proc_address);
4971 self.ClearNamedBufferData_load_with_dyn(get_proc_address);
4972 self.ClearNamedBufferSubData_load_with_dyn(get_proc_address);
4973 self.ClearNamedFramebufferfi_load_with_dyn(get_proc_address);
4974 self.ClearNamedFramebufferfv_load_with_dyn(get_proc_address);
4975 self.ClearNamedFramebufferiv_load_with_dyn(get_proc_address);
4976 self.ClearNamedFramebufferuiv_load_with_dyn(get_proc_address);
4977 self.ClearStencil_load_with_dyn(get_proc_address);
4978 self.ClearTexImage_load_with_dyn(get_proc_address);
4979 self.ClearTexSubImage_load_with_dyn(get_proc_address);
4980 self.ClientWaitSync_load_with_dyn(get_proc_address);
4981 self.ClipControl_load_with_dyn(get_proc_address);
4982 self.ColorMask_load_with_dyn(get_proc_address);
4983 {
4984 self.ColorMaskIndexedEXT_load_with_dyn(get_proc_address);
4985 }
4986 self.ColorMaski_load_with_dyn(get_proc_address);
4987 self.CompileShader_load_with_dyn(get_proc_address);
4988 self.CompressedTexImage1D_load_with_dyn(get_proc_address);
4989 self.CompressedTexImage2D_load_with_dyn(get_proc_address);
4990 self.CompressedTexImage3D_load_with_dyn(get_proc_address);
4991 self.CompressedTexSubImage1D_load_with_dyn(get_proc_address);
4992 self.CompressedTexSubImage2D_load_with_dyn(get_proc_address);
4993 self.CompressedTexSubImage3D_load_with_dyn(get_proc_address);
4994 self.CompressedTextureSubImage1D_load_with_dyn(get_proc_address);
4995 self.CompressedTextureSubImage2D_load_with_dyn(get_proc_address);
4996 self.CompressedTextureSubImage3D_load_with_dyn(get_proc_address);
4997 self.CopyBufferSubData_load_with_dyn(get_proc_address);
4998 {
4999 self.CopyBufferSubDataNV_load_with_dyn(get_proc_address);
5000 }
5001 self.CopyImageSubData_load_with_dyn(get_proc_address);
5002 self.CopyNamedBufferSubData_load_with_dyn(get_proc_address);
5003 self.CopyTexImage1D_load_with_dyn(get_proc_address);
5004 self.CopyTexImage2D_load_with_dyn(get_proc_address);
5005 self.CopyTexSubImage1D_load_with_dyn(get_proc_address);
5006 self.CopyTexSubImage2D_load_with_dyn(get_proc_address);
5007 self.CopyTexSubImage3D_load_with_dyn(get_proc_address);
5008 self.CopyTextureSubImage1D_load_with_dyn(get_proc_address);
5009 self.CopyTextureSubImage2D_load_with_dyn(get_proc_address);
5010 self.CopyTextureSubImage3D_load_with_dyn(get_proc_address);
5011 self.CreateBuffers_load_with_dyn(get_proc_address);
5012 self.CreateFramebuffers_load_with_dyn(get_proc_address);
5013 self.CreateProgram_load_with_dyn(get_proc_address);
5014 self.CreateProgramPipelines_load_with_dyn(get_proc_address);
5015 self.CreateQueries_load_with_dyn(get_proc_address);
5016 self.CreateRenderbuffers_load_with_dyn(get_proc_address);
5017 self.CreateSamplers_load_with_dyn(get_proc_address);
5018 self.CreateShader_load_with_dyn(get_proc_address);
5019 self.CreateShaderProgramv_load_with_dyn(get_proc_address);
5020 self.CreateTextures_load_with_dyn(get_proc_address);
5021 self.CreateTransformFeedbacks_load_with_dyn(get_proc_address);
5022 self.CreateVertexArrays_load_with_dyn(get_proc_address);
5023 self.CullFace_load_with_dyn(get_proc_address);
5024 self.DebugMessageCallback_load_with_dyn(get_proc_address);
5025 {
5026 self.DebugMessageCallbackARB_load_with_dyn(get_proc_address);
5027 }
5028 {
5029 self.DebugMessageCallbackKHR_load_with_dyn(get_proc_address);
5030 }
5031 self.DebugMessageControl_load_with_dyn(get_proc_address);
5032 {
5033 self.DebugMessageControlARB_load_with_dyn(get_proc_address);
5034 }
5035 {
5036 self.DebugMessageControlKHR_load_with_dyn(get_proc_address);
5037 }
5038 self.DebugMessageInsert_load_with_dyn(get_proc_address);
5039 {
5040 self.DebugMessageInsertARB_load_with_dyn(get_proc_address);
5041 }
5042 {
5043 self.DebugMessageInsertKHR_load_with_dyn(get_proc_address);
5044 }
5045 self.DeleteBuffers_load_with_dyn(get_proc_address);
5046 self.DeleteFramebuffers_load_with_dyn(get_proc_address);
5047 self.DeleteProgram_load_with_dyn(get_proc_address);
5048 self.DeleteProgramPipelines_load_with_dyn(get_proc_address);
5049 self.DeleteQueries_load_with_dyn(get_proc_address);
5050 {
5051 self.DeleteQueriesEXT_load_with_dyn(get_proc_address);
5052 }
5053 self.DeleteRenderbuffers_load_with_dyn(get_proc_address);
5054 self.DeleteSamplers_load_with_dyn(get_proc_address);
5055 self.DeleteShader_load_with_dyn(get_proc_address);
5056 self.DeleteSync_load_with_dyn(get_proc_address);
5057 self.DeleteTextures_load_with_dyn(get_proc_address);
5058 self.DeleteTransformFeedbacks_load_with_dyn(get_proc_address);
5059 self.DeleteVertexArrays_load_with_dyn(get_proc_address);
5060 {
5061 self.DeleteVertexArraysAPPLE_load_with_dyn(get_proc_address);
5062 }
5063 {
5064 self.DeleteVertexArraysOES_load_with_dyn(get_proc_address);
5065 }
5066 self.DepthFunc_load_with_dyn(get_proc_address);
5067 self.DepthMask_load_with_dyn(get_proc_address);
5068 self.DepthRange_load_with_dyn(get_proc_address);
5069 self.DepthRangeArrayv_load_with_dyn(get_proc_address);
5070 self.DepthRangeIndexed_load_with_dyn(get_proc_address);
5071 self.DepthRangef_load_with_dyn(get_proc_address);
5072 self.DetachShader_load_with_dyn(get_proc_address);
5073 self.Disable_load_with_dyn(get_proc_address);
5074 {
5075 self.DisableIndexedEXT_load_with_dyn(get_proc_address);
5076 }
5077 self.DisableVertexArrayAttrib_load_with_dyn(get_proc_address);
5078 self.DisableVertexAttribArray_load_with_dyn(get_proc_address);
5079 self.Disablei_load_with_dyn(get_proc_address);
5080 self.DispatchCompute_load_with_dyn(get_proc_address);
5081 self.DispatchComputeIndirect_load_with_dyn(get_proc_address);
5082 self.DrawArrays_load_with_dyn(get_proc_address);
5083 self.DrawArraysIndirect_load_with_dyn(get_proc_address);
5084 self.DrawArraysInstanced_load_with_dyn(get_proc_address);
5085 {
5086 self.DrawArraysInstancedARB_load_with_dyn(get_proc_address);
5087 }
5088 self.DrawArraysInstancedBaseInstance_load_with_dyn(get_proc_address);
5089 self.DrawBuffer_load_with_dyn(get_proc_address);
5090 self.DrawBuffers_load_with_dyn(get_proc_address);
5091 self.DrawElements_load_with_dyn(get_proc_address);
5092 self.DrawElementsBaseVertex_load_with_dyn(get_proc_address);
5093 self.DrawElementsIndirect_load_with_dyn(get_proc_address);
5094 self.DrawElementsInstanced_load_with_dyn(get_proc_address);
5095 {
5096 self.DrawElementsInstancedARB_load_with_dyn(get_proc_address);
5097 }
5098 self.DrawElementsInstancedBaseInstance_load_with_dyn(get_proc_address);
5099 self.DrawElementsInstancedBaseVertex_load_with_dyn(get_proc_address);
5100 self.DrawElementsInstancedBaseVertexBaseInstance_load_with_dyn(get_proc_address);
5101 self.DrawRangeElements_load_with_dyn(get_proc_address);
5102 self.DrawRangeElementsBaseVertex_load_with_dyn(get_proc_address);
5103 self.DrawTransformFeedback_load_with_dyn(get_proc_address);
5104 self.DrawTransformFeedbackInstanced_load_with_dyn(get_proc_address);
5105 self.DrawTransformFeedbackStream_load_with_dyn(get_proc_address);
5106 self.DrawTransformFeedbackStreamInstanced_load_with_dyn(get_proc_address);
5107 self.Enable_load_with_dyn(get_proc_address);
5108 {
5109 self.EnableIndexedEXT_load_with_dyn(get_proc_address);
5110 }
5111 self.EnableVertexArrayAttrib_load_with_dyn(get_proc_address);
5112 self.EnableVertexAttribArray_load_with_dyn(get_proc_address);
5113 self.Enablei_load_with_dyn(get_proc_address);
5114 self.EndConditionalRender_load_with_dyn(get_proc_address);
5115 self.EndQuery_load_with_dyn(get_proc_address);
5116 {
5117 self.EndQueryEXT_load_with_dyn(get_proc_address);
5118 }
5119 self.EndQueryIndexed_load_with_dyn(get_proc_address);
5120 self.EndTransformFeedback_load_with_dyn(get_proc_address);
5121 self.FenceSync_load_with_dyn(get_proc_address);
5122 self.Finish_load_with_dyn(get_proc_address);
5123 self.Flush_load_with_dyn(get_proc_address);
5124 self.FlushMappedBufferRange_load_with_dyn(get_proc_address);
5125 self.FlushMappedNamedBufferRange_load_with_dyn(get_proc_address);
5126 self.FramebufferParameteri_load_with_dyn(get_proc_address);
5127 self.FramebufferRenderbuffer_load_with_dyn(get_proc_address);
5128 self.FramebufferTexture_load_with_dyn(get_proc_address);
5129 self.FramebufferTexture1D_load_with_dyn(get_proc_address);
5130 self.FramebufferTexture2D_load_with_dyn(get_proc_address);
5131 #[cfg_attr(
5132 docs_rs,
5133 doc(cfg(any(feature = "GL_EXT_multisampled_render_to_texture")))
5134 )]
5135 {
5136 self.FramebufferTexture2DMultisampleEXT_load_with_dyn(get_proc_address);
5137 }
5138 self.FramebufferTexture3D_load_with_dyn(get_proc_address);
5139 self.FramebufferTextureLayer_load_with_dyn(get_proc_address);
5140 self.FrontFace_load_with_dyn(get_proc_address);
5141 self.GenBuffers_load_with_dyn(get_proc_address);
5142 self.GenFramebuffers_load_with_dyn(get_proc_address);
5143 self.GenProgramPipelines_load_with_dyn(get_proc_address);
5144 self.GenQueries_load_with_dyn(get_proc_address);
5145 {
5146 self.GenQueriesEXT_load_with_dyn(get_proc_address);
5147 }
5148 self.GenRenderbuffers_load_with_dyn(get_proc_address);
5149 self.GenSamplers_load_with_dyn(get_proc_address);
5150 self.GenTextures_load_with_dyn(get_proc_address);
5151 self.GenTransformFeedbacks_load_with_dyn(get_proc_address);
5152 self.GenVertexArrays_load_with_dyn(get_proc_address);
5153 {
5154 self.GenVertexArraysAPPLE_load_with_dyn(get_proc_address);
5155 }
5156 {
5157 self.GenVertexArraysOES_load_with_dyn(get_proc_address);
5158 }
5159 self.GenerateMipmap_load_with_dyn(get_proc_address);
5160 self.GenerateTextureMipmap_load_with_dyn(get_proc_address);
5161 self.GetActiveAtomicCounterBufferiv_load_with_dyn(get_proc_address);
5162 self.GetActiveAttrib_load_with_dyn(get_proc_address);
5163 self.GetActiveSubroutineName_load_with_dyn(get_proc_address);
5164 self.GetActiveSubroutineUniformName_load_with_dyn(get_proc_address);
5165 self.GetActiveSubroutineUniformiv_load_with_dyn(get_proc_address);
5166 self.GetActiveUniform_load_with_dyn(get_proc_address);
5167 self.GetActiveUniformBlockName_load_with_dyn(get_proc_address);
5168 self.GetActiveUniformBlockiv_load_with_dyn(get_proc_address);
5169 self.GetActiveUniformName_load_with_dyn(get_proc_address);
5170 self.GetActiveUniformsiv_load_with_dyn(get_proc_address);
5171 self.GetAttachedShaders_load_with_dyn(get_proc_address);
5172 self.GetAttribLocation_load_with_dyn(get_proc_address);
5173 {
5174 self.GetBooleanIndexedvEXT_load_with_dyn(get_proc_address);
5175 }
5176 self.GetBooleani_v_load_with_dyn(get_proc_address);
5177 self.GetBooleanv_load_with_dyn(get_proc_address);
5178 self.GetBufferParameteri64v_load_with_dyn(get_proc_address);
5179 self.GetBufferParameteriv_load_with_dyn(get_proc_address);
5180 self.GetBufferPointerv_load_with_dyn(get_proc_address);
5181 self.GetBufferSubData_load_with_dyn(get_proc_address);
5182 self.GetCompressedTexImage_load_with_dyn(get_proc_address);
5183 self.GetCompressedTextureImage_load_with_dyn(get_proc_address);
5184 self.GetCompressedTextureSubImage_load_with_dyn(get_proc_address);
5185 self.GetDebugMessageLog_load_with_dyn(get_proc_address);
5186 {
5187 self.GetDebugMessageLogARB_load_with_dyn(get_proc_address);
5188 }
5189 {
5190 self.GetDebugMessageLogKHR_load_with_dyn(get_proc_address);
5191 }
5192 self.GetDoublei_v_load_with_dyn(get_proc_address);
5193 self.GetDoublev_load_with_dyn(get_proc_address);
5194 self.GetError_load_with_dyn(get_proc_address);
5195 self.GetFloati_v_load_with_dyn(get_proc_address);
5196 self.GetFloatv_load_with_dyn(get_proc_address);
5197 self.GetFragDataIndex_load_with_dyn(get_proc_address);
5198 self.GetFragDataLocation_load_with_dyn(get_proc_address);
5199 self.GetFramebufferAttachmentParameteriv_load_with_dyn(get_proc_address);
5200 self.GetFramebufferParameteriv_load_with_dyn(get_proc_address);
5201 self.GetGraphicsResetStatus_load_with_dyn(get_proc_address);
5202 self.GetInteger64i_v_load_with_dyn(get_proc_address);
5203 self.GetInteger64v_load_with_dyn(get_proc_address);
5204 {
5205 self.GetInteger64vEXT_load_with_dyn(get_proc_address);
5206 }
5207 {
5208 self.GetIntegerIndexedvEXT_load_with_dyn(get_proc_address);
5209 }
5210 self.GetIntegeri_v_load_with_dyn(get_proc_address);
5211 self.GetIntegerv_load_with_dyn(get_proc_address);
5212 self.GetInternalformati64v_load_with_dyn(get_proc_address);
5213 self.GetInternalformativ_load_with_dyn(get_proc_address);
5214 self.GetMultisamplefv_load_with_dyn(get_proc_address);
5215 self.GetNamedBufferParameteri64v_load_with_dyn(get_proc_address);
5216 self.GetNamedBufferParameteriv_load_with_dyn(get_proc_address);
5217 self.GetNamedBufferPointerv_load_with_dyn(get_proc_address);
5218 self.GetNamedBufferSubData_load_with_dyn(get_proc_address);
5219 self.GetNamedFramebufferAttachmentParameteriv_load_with_dyn(get_proc_address);
5220 self.GetNamedFramebufferParameteriv_load_with_dyn(get_proc_address);
5221 self.GetNamedRenderbufferParameteriv_load_with_dyn(get_proc_address);
5222 self.GetObjectLabel_load_with_dyn(get_proc_address);
5223 {
5224 self.GetObjectLabelKHR_load_with_dyn(get_proc_address);
5225 }
5226 self.GetObjectPtrLabel_load_with_dyn(get_proc_address);
5227 {
5228 self.GetObjectPtrLabelKHR_load_with_dyn(get_proc_address);
5229 }
5230 self.GetPointerv_load_with_dyn(get_proc_address);
5231 {
5232 self.GetPointervKHR_load_with_dyn(get_proc_address);
5233 }
5234 self.GetProgramBinary_load_with_dyn(get_proc_address);
5235 self.GetProgramInfoLog_load_with_dyn(get_proc_address);
5236 self.GetProgramInterfaceiv_load_with_dyn(get_proc_address);
5237 self.GetProgramPipelineInfoLog_load_with_dyn(get_proc_address);
5238 self.GetProgramPipelineiv_load_with_dyn(get_proc_address);
5239 self.GetProgramResourceIndex_load_with_dyn(get_proc_address);
5240 self.GetProgramResourceLocation_load_with_dyn(get_proc_address);
5241 self.GetProgramResourceLocationIndex_load_with_dyn(get_proc_address);
5242 self.GetProgramResourceName_load_with_dyn(get_proc_address);
5243 self.GetProgramResourceiv_load_with_dyn(get_proc_address);
5244 self.GetProgramStageiv_load_with_dyn(get_proc_address);
5245 self.GetProgramiv_load_with_dyn(get_proc_address);
5246 self.GetQueryBufferObjecti64v_load_with_dyn(get_proc_address);
5247 self.GetQueryBufferObjectiv_load_with_dyn(get_proc_address);
5248 self.GetQueryBufferObjectui64v_load_with_dyn(get_proc_address);
5249 self.GetQueryBufferObjectuiv_load_with_dyn(get_proc_address);
5250 self.GetQueryIndexediv_load_with_dyn(get_proc_address);
5251 self.GetQueryObjecti64v_load_with_dyn(get_proc_address);
5252 {
5253 self.GetQueryObjecti64vEXT_load_with_dyn(get_proc_address);
5254 }
5255 self.GetQueryObjectiv_load_with_dyn(get_proc_address);
5256 {
5257 self.GetQueryObjectivEXT_load_with_dyn(get_proc_address);
5258 }
5259 self.GetQueryObjectui64v_load_with_dyn(get_proc_address);
5260 {
5261 self.GetQueryObjectui64vEXT_load_with_dyn(get_proc_address);
5262 }
5263 self.GetQueryObjectuiv_load_with_dyn(get_proc_address);
5264 {
5265 self.GetQueryObjectuivEXT_load_with_dyn(get_proc_address);
5266 }
5267 self.GetQueryiv_load_with_dyn(get_proc_address);
5268 {
5269 self.GetQueryivEXT_load_with_dyn(get_proc_address);
5270 }
5271 self.GetRenderbufferParameteriv_load_with_dyn(get_proc_address);
5272 self.GetSamplerParameterIiv_load_with_dyn(get_proc_address);
5273 self.GetSamplerParameterIuiv_load_with_dyn(get_proc_address);
5274 self.GetSamplerParameterfv_load_with_dyn(get_proc_address);
5275 self.GetSamplerParameteriv_load_with_dyn(get_proc_address);
5276 self.GetShaderInfoLog_load_with_dyn(get_proc_address);
5277 self.GetShaderPrecisionFormat_load_with_dyn(get_proc_address);
5278 self.GetShaderSource_load_with_dyn(get_proc_address);
5279 self.GetShaderiv_load_with_dyn(get_proc_address);
5280 self.GetString_load_with_dyn(get_proc_address);
5281 self.GetStringi_load_with_dyn(get_proc_address);
5282 self.GetSubroutineIndex_load_with_dyn(get_proc_address);
5283 self.GetSubroutineUniformLocation_load_with_dyn(get_proc_address);
5284 self.GetSynciv_load_with_dyn(get_proc_address);
5285 self.GetTexImage_load_with_dyn(get_proc_address);
5286 self.GetTexLevelParameterfv_load_with_dyn(get_proc_address);
5287 self.GetTexLevelParameteriv_load_with_dyn(get_proc_address);
5288 self.GetTexParameterIiv_load_with_dyn(get_proc_address);
5289 self.GetTexParameterIuiv_load_with_dyn(get_proc_address);
5290 self.GetTexParameterfv_load_with_dyn(get_proc_address);
5291 self.GetTexParameteriv_load_with_dyn(get_proc_address);
5292 self.GetTextureImage_load_with_dyn(get_proc_address);
5293 self.GetTextureLevelParameterfv_load_with_dyn(get_proc_address);
5294 self.GetTextureLevelParameteriv_load_with_dyn(get_proc_address);
5295 self.GetTextureParameterIiv_load_with_dyn(get_proc_address);
5296 self.GetTextureParameterIuiv_load_with_dyn(get_proc_address);
5297 self.GetTextureParameterfv_load_with_dyn(get_proc_address);
5298 self.GetTextureParameteriv_load_with_dyn(get_proc_address);
5299 self.GetTextureSubImage_load_with_dyn(get_proc_address);
5300 self.GetTransformFeedbackVarying_load_with_dyn(get_proc_address);
5301 self.GetTransformFeedbacki64_v_load_with_dyn(get_proc_address);
5302 self.GetTransformFeedbacki_v_load_with_dyn(get_proc_address);
5303 self.GetTransformFeedbackiv_load_with_dyn(get_proc_address);
5304 self.GetUniformBlockIndex_load_with_dyn(get_proc_address);
5305 self.GetUniformIndices_load_with_dyn(get_proc_address);
5306 self.GetUniformLocation_load_with_dyn(get_proc_address);
5307 self.GetUniformSubroutineuiv_load_with_dyn(get_proc_address);
5308 self.GetUniformdv_load_with_dyn(get_proc_address);
5309 self.GetUniformfv_load_with_dyn(get_proc_address);
5310 self.GetUniformiv_load_with_dyn(get_proc_address);
5311 self.GetUniformuiv_load_with_dyn(get_proc_address);
5312 self.GetVertexArrayIndexed64iv_load_with_dyn(get_proc_address);
5313 self.GetVertexArrayIndexediv_load_with_dyn(get_proc_address);
5314 self.GetVertexArrayiv_load_with_dyn(get_proc_address);
5315 self.GetVertexAttribIiv_load_with_dyn(get_proc_address);
5316 self.GetVertexAttribIuiv_load_with_dyn(get_proc_address);
5317 self.GetVertexAttribLdv_load_with_dyn(get_proc_address);
5318 self.GetVertexAttribPointerv_load_with_dyn(get_proc_address);
5319 self.GetVertexAttribdv_load_with_dyn(get_proc_address);
5320 self.GetVertexAttribfv_load_with_dyn(get_proc_address);
5321 self.GetVertexAttribiv_load_with_dyn(get_proc_address);
5322 self.GetnCompressedTexImage_load_with_dyn(get_proc_address);
5323 self.GetnTexImage_load_with_dyn(get_proc_address);
5324 self.GetnUniformdv_load_with_dyn(get_proc_address);
5325 self.GetnUniformfv_load_with_dyn(get_proc_address);
5326 self.GetnUniformiv_load_with_dyn(get_proc_address);
5327 self.GetnUniformuiv_load_with_dyn(get_proc_address);
5328 self.Hint_load_with_dyn(get_proc_address);
5329 self.InvalidateBufferData_load_with_dyn(get_proc_address);
5330 self.InvalidateBufferSubData_load_with_dyn(get_proc_address);
5331 self.InvalidateFramebuffer_load_with_dyn(get_proc_address);
5332 self.InvalidateNamedFramebufferData_load_with_dyn(get_proc_address);
5333 self.InvalidateNamedFramebufferSubData_load_with_dyn(get_proc_address);
5334 self.InvalidateSubFramebuffer_load_with_dyn(get_proc_address);
5335 self.InvalidateTexImage_load_with_dyn(get_proc_address);
5336 self.InvalidateTexSubImage_load_with_dyn(get_proc_address);
5337 self.IsBuffer_load_with_dyn(get_proc_address);
5338 self.IsEnabled_load_with_dyn(get_proc_address);
5339 {
5340 self.IsEnabledIndexedEXT_load_with_dyn(get_proc_address);
5341 }
5342 self.IsEnabledi_load_with_dyn(get_proc_address);
5343 self.IsFramebuffer_load_with_dyn(get_proc_address);
5344 self.IsProgram_load_with_dyn(get_proc_address);
5345 self.IsProgramPipeline_load_with_dyn(get_proc_address);
5346 self.IsQuery_load_with_dyn(get_proc_address);
5347 {
5348 self.IsQueryEXT_load_with_dyn(get_proc_address);
5349 }
5350 self.IsRenderbuffer_load_with_dyn(get_proc_address);
5351 self.IsSampler_load_with_dyn(get_proc_address);
5352 self.IsShader_load_with_dyn(get_proc_address);
5353 self.IsSync_load_with_dyn(get_proc_address);
5354 self.IsTexture_load_with_dyn(get_proc_address);
5355 self.IsTransformFeedback_load_with_dyn(get_proc_address);
5356 self.IsVertexArray_load_with_dyn(get_proc_address);
5357 {
5358 self.IsVertexArrayAPPLE_load_with_dyn(get_proc_address);
5359 }
5360 {
5361 self.IsVertexArrayOES_load_with_dyn(get_proc_address);
5362 }
5363 self.LineWidth_load_with_dyn(get_proc_address);
5364 self.LinkProgram_load_with_dyn(get_proc_address);
5365 self.LogicOp_load_with_dyn(get_proc_address);
5366 self.MapBuffer_load_with_dyn(get_proc_address);
5367 self.MapBufferRange_load_with_dyn(get_proc_address);
5368 self.MapNamedBuffer_load_with_dyn(get_proc_address);
5369 self.MapNamedBufferRange_load_with_dyn(get_proc_address);
5370 {
5371 self.MaxShaderCompilerThreadsARB_load_with_dyn(get_proc_address);
5372 }
5373 {
5374 self.MaxShaderCompilerThreadsKHR_load_with_dyn(get_proc_address);
5375 }
5376 self.MemoryBarrier_load_with_dyn(get_proc_address);
5377 self.MemoryBarrierByRegion_load_with_dyn(get_proc_address);
5378 self.MinSampleShading_load_with_dyn(get_proc_address);
5379 self.MultiDrawArrays_load_with_dyn(get_proc_address);
5380 self.MultiDrawArraysIndirect_load_with_dyn(get_proc_address);
5381 self.MultiDrawArraysIndirectCount_load_with_dyn(get_proc_address);
5382 self.MultiDrawElements_load_with_dyn(get_proc_address);
5383 self.MultiDrawElementsBaseVertex_load_with_dyn(get_proc_address);
5384 self.MultiDrawElementsIndirect_load_with_dyn(get_proc_address);
5385 self.MultiDrawElementsIndirectCount_load_with_dyn(get_proc_address);
5386 self.NamedBufferData_load_with_dyn(get_proc_address);
5387 self.NamedBufferStorage_load_with_dyn(get_proc_address);
5388 self.NamedBufferSubData_load_with_dyn(get_proc_address);
5389 self.NamedFramebufferDrawBuffer_load_with_dyn(get_proc_address);
5390 self.NamedFramebufferDrawBuffers_load_with_dyn(get_proc_address);
5391 self.NamedFramebufferParameteri_load_with_dyn(get_proc_address);
5392 self.NamedFramebufferReadBuffer_load_with_dyn(get_proc_address);
5393 self.NamedFramebufferRenderbuffer_load_with_dyn(get_proc_address);
5394 self.NamedFramebufferTexture_load_with_dyn(get_proc_address);
5395 self.NamedFramebufferTextureLayer_load_with_dyn(get_proc_address);
5396 self.NamedRenderbufferStorage_load_with_dyn(get_proc_address);
5397 self.NamedRenderbufferStorageMultisample_load_with_dyn(get_proc_address);
5398 self.ObjectLabel_load_with_dyn(get_proc_address);
5399 {
5400 self.ObjectLabelKHR_load_with_dyn(get_proc_address);
5401 }
5402 self.ObjectPtrLabel_load_with_dyn(get_proc_address);
5403 {
5404 self.ObjectPtrLabelKHR_load_with_dyn(get_proc_address);
5405 }
5406 self.PatchParameterfv_load_with_dyn(get_proc_address);
5407 self.PatchParameteri_load_with_dyn(get_proc_address);
5408 self.PauseTransformFeedback_load_with_dyn(get_proc_address);
5409 self.PixelStoref_load_with_dyn(get_proc_address);
5410 self.PixelStorei_load_with_dyn(get_proc_address);
5411 self.PointParameterf_load_with_dyn(get_proc_address);
5412 self.PointParameterfv_load_with_dyn(get_proc_address);
5413 self.PointParameteri_load_with_dyn(get_proc_address);
5414 self.PointParameteriv_load_with_dyn(get_proc_address);
5415 self.PointSize_load_with_dyn(get_proc_address);
5416 self.PolygonMode_load_with_dyn(get_proc_address);
5417 self.PolygonOffset_load_with_dyn(get_proc_address);
5418 self.PolygonOffsetClamp_load_with_dyn(get_proc_address);
5419 self.PopDebugGroup_load_with_dyn(get_proc_address);
5420 {
5421 self.PopDebugGroupKHR_load_with_dyn(get_proc_address);
5422 }
5423 self.PrimitiveBoundingBox_load_with_dyn(get_proc_address);
5424 self.PrimitiveRestartIndex_load_with_dyn(get_proc_address);
5425 self.ProgramBinary_load_with_dyn(get_proc_address);
5426 self.ProgramParameteri_load_with_dyn(get_proc_address);
5427 self.ProgramUniform1d_load_with_dyn(get_proc_address);
5428 self.ProgramUniform1dv_load_with_dyn(get_proc_address);
5429 self.ProgramUniform1f_load_with_dyn(get_proc_address);
5430 self.ProgramUniform1fv_load_with_dyn(get_proc_address);
5431 self.ProgramUniform1i_load_with_dyn(get_proc_address);
5432 self.ProgramUniform1iv_load_with_dyn(get_proc_address);
5433 self.ProgramUniform1ui_load_with_dyn(get_proc_address);
5434 self.ProgramUniform1uiv_load_with_dyn(get_proc_address);
5435 self.ProgramUniform2d_load_with_dyn(get_proc_address);
5436 self.ProgramUniform2dv_load_with_dyn(get_proc_address);
5437 self.ProgramUniform2f_load_with_dyn(get_proc_address);
5438 self.ProgramUniform2fv_load_with_dyn(get_proc_address);
5439 self.ProgramUniform2i_load_with_dyn(get_proc_address);
5440 self.ProgramUniform2iv_load_with_dyn(get_proc_address);
5441 self.ProgramUniform2ui_load_with_dyn(get_proc_address);
5442 self.ProgramUniform2uiv_load_with_dyn(get_proc_address);
5443 self.ProgramUniform3d_load_with_dyn(get_proc_address);
5444 self.ProgramUniform3dv_load_with_dyn(get_proc_address);
5445 self.ProgramUniform3f_load_with_dyn(get_proc_address);
5446 self.ProgramUniform3fv_load_with_dyn(get_proc_address);
5447 self.ProgramUniform3i_load_with_dyn(get_proc_address);
5448 self.ProgramUniform3iv_load_with_dyn(get_proc_address);
5449 self.ProgramUniform3ui_load_with_dyn(get_proc_address);
5450 self.ProgramUniform3uiv_load_with_dyn(get_proc_address);
5451 self.ProgramUniform4d_load_with_dyn(get_proc_address);
5452 self.ProgramUniform4dv_load_with_dyn(get_proc_address);
5453 self.ProgramUniform4f_load_with_dyn(get_proc_address);
5454 self.ProgramUniform4fv_load_with_dyn(get_proc_address);
5455 self.ProgramUniform4i_load_with_dyn(get_proc_address);
5456 self.ProgramUniform4iv_load_with_dyn(get_proc_address);
5457 self.ProgramUniform4ui_load_with_dyn(get_proc_address);
5458 self.ProgramUniform4uiv_load_with_dyn(get_proc_address);
5459 self.ProgramUniformMatrix2dv_load_with_dyn(get_proc_address);
5460 self.ProgramUniformMatrix2fv_load_with_dyn(get_proc_address);
5461 self.ProgramUniformMatrix2x3dv_load_with_dyn(get_proc_address);
5462 self.ProgramUniformMatrix2x3fv_load_with_dyn(get_proc_address);
5463 self.ProgramUniformMatrix2x4dv_load_with_dyn(get_proc_address);
5464 self.ProgramUniformMatrix2x4fv_load_with_dyn(get_proc_address);
5465 self.ProgramUniformMatrix3dv_load_with_dyn(get_proc_address);
5466 self.ProgramUniformMatrix3fv_load_with_dyn(get_proc_address);
5467 self.ProgramUniformMatrix3x2dv_load_with_dyn(get_proc_address);
5468 self.ProgramUniformMatrix3x2fv_load_with_dyn(get_proc_address);
5469 self.ProgramUniformMatrix3x4dv_load_with_dyn(get_proc_address);
5470 self.ProgramUniformMatrix3x4fv_load_with_dyn(get_proc_address);
5471 self.ProgramUniformMatrix4dv_load_with_dyn(get_proc_address);
5472 self.ProgramUniformMatrix4fv_load_with_dyn(get_proc_address);
5473 self.ProgramUniformMatrix4x2dv_load_with_dyn(get_proc_address);
5474 self.ProgramUniformMatrix4x2fv_load_with_dyn(get_proc_address);
5475 self.ProgramUniformMatrix4x3dv_load_with_dyn(get_proc_address);
5476 self.ProgramUniformMatrix4x3fv_load_with_dyn(get_proc_address);
5477 self.ProvokingVertex_load_with_dyn(get_proc_address);
5478 self.PushDebugGroup_load_with_dyn(get_proc_address);
5479 {
5480 self.PushDebugGroupKHR_load_with_dyn(get_proc_address);
5481 }
5482 self.QueryCounter_load_with_dyn(get_proc_address);
5483 {
5484 self.QueryCounterEXT_load_with_dyn(get_proc_address);
5485 }
5486 self.ReadBuffer_load_with_dyn(get_proc_address);
5487 self.ReadPixels_load_with_dyn(get_proc_address);
5488 self.ReadnPixels_load_with_dyn(get_proc_address);
5489 self.ReleaseShaderCompiler_load_with_dyn(get_proc_address);
5490 self.RenderbufferStorage_load_with_dyn(get_proc_address);
5491 self.RenderbufferStorageMultisample_load_with_dyn(get_proc_address);
5492 #[cfg_attr(
5493 docs_rs,
5494 doc(cfg(any(feature = "GL_EXT_multisampled_render_to_texture")))
5495 )]
5496 {
5497 self.RenderbufferStorageMultisampleEXT_load_with_dyn(get_proc_address);
5498 }
5499 self.ResumeTransformFeedback_load_with_dyn(get_proc_address);
5500 self.SampleCoverage_load_with_dyn(get_proc_address);
5501 self.SampleMaski_load_with_dyn(get_proc_address);
5502 self.SamplerParameterIiv_load_with_dyn(get_proc_address);
5503 self.SamplerParameterIuiv_load_with_dyn(get_proc_address);
5504 self.SamplerParameterf_load_with_dyn(get_proc_address);
5505 self.SamplerParameterfv_load_with_dyn(get_proc_address);
5506 self.SamplerParameteri_load_with_dyn(get_proc_address);
5507 self.SamplerParameteriv_load_with_dyn(get_proc_address);
5508 self.Scissor_load_with_dyn(get_proc_address);
5509 self.ScissorArrayv_load_with_dyn(get_proc_address);
5510 self.ScissorIndexed_load_with_dyn(get_proc_address);
5511 self.ScissorIndexedv_load_with_dyn(get_proc_address);
5512 self.ShaderBinary_load_with_dyn(get_proc_address);
5513 self.ShaderSource_load_with_dyn(get_proc_address);
5514 self.ShaderStorageBlockBinding_load_with_dyn(get_proc_address);
5515 self.SpecializeShader_load_with_dyn(get_proc_address);
5516 self.StencilFunc_load_with_dyn(get_proc_address);
5517 self.StencilFuncSeparate_load_with_dyn(get_proc_address);
5518 self.StencilMask_load_with_dyn(get_proc_address);
5519 self.StencilMaskSeparate_load_with_dyn(get_proc_address);
5520 self.StencilOp_load_with_dyn(get_proc_address);
5521 self.StencilOpSeparate_load_with_dyn(get_proc_address);
5522 self.TexBuffer_load_with_dyn(get_proc_address);
5523 self.TexBufferRange_load_with_dyn(get_proc_address);
5524 self.TexImage1D_load_with_dyn(get_proc_address);
5525 self.TexImage2D_load_with_dyn(get_proc_address);
5526 self.TexImage2DMultisample_load_with_dyn(get_proc_address);
5527 self.TexImage3D_load_with_dyn(get_proc_address);
5528 self.TexImage3DMultisample_load_with_dyn(get_proc_address);
5529 self.TexParameterIiv_load_with_dyn(get_proc_address);
5530 self.TexParameterIuiv_load_with_dyn(get_proc_address);
5531 self.TexParameterf_load_with_dyn(get_proc_address);
5532 self.TexParameterfv_load_with_dyn(get_proc_address);
5533 self.TexParameteri_load_with_dyn(get_proc_address);
5534 self.TexParameteriv_load_with_dyn(get_proc_address);
5535 self.TexStorage1D_load_with_dyn(get_proc_address);
5536 self.TexStorage2D_load_with_dyn(get_proc_address);
5537 self.TexStorage2DMultisample_load_with_dyn(get_proc_address);
5538 self.TexStorage3D_load_with_dyn(get_proc_address);
5539 self.TexStorage3DMultisample_load_with_dyn(get_proc_address);
5540 self.TexSubImage1D_load_with_dyn(get_proc_address);
5541 self.TexSubImage2D_load_with_dyn(get_proc_address);
5542 self.TexSubImage3D_load_with_dyn(get_proc_address);
5543 self.TextureBarrier_load_with_dyn(get_proc_address);
5544 self.TextureBuffer_load_with_dyn(get_proc_address);
5545 self.TextureBufferRange_load_with_dyn(get_proc_address);
5546 self.TextureParameterIiv_load_with_dyn(get_proc_address);
5547 self.TextureParameterIuiv_load_with_dyn(get_proc_address);
5548 self.TextureParameterf_load_with_dyn(get_proc_address);
5549 self.TextureParameterfv_load_with_dyn(get_proc_address);
5550 self.TextureParameteri_load_with_dyn(get_proc_address);
5551 self.TextureParameteriv_load_with_dyn(get_proc_address);
5552 self.TextureStorage1D_load_with_dyn(get_proc_address);
5553 self.TextureStorage2D_load_with_dyn(get_proc_address);
5554 self.TextureStorage2DMultisample_load_with_dyn(get_proc_address);
5555 self.TextureStorage3D_load_with_dyn(get_proc_address);
5556 self.TextureStorage3DMultisample_load_with_dyn(get_proc_address);
5557 self.TextureSubImage1D_load_with_dyn(get_proc_address);
5558 self.TextureSubImage2D_load_with_dyn(get_proc_address);
5559 self.TextureSubImage3D_load_with_dyn(get_proc_address);
5560 self.TextureView_load_with_dyn(get_proc_address);
5561 self.TransformFeedbackBufferBase_load_with_dyn(get_proc_address);
5562 self.TransformFeedbackBufferRange_load_with_dyn(get_proc_address);
5563 self.TransformFeedbackVaryings_load_with_dyn(get_proc_address);
5564 self.Uniform1d_load_with_dyn(get_proc_address);
5565 self.Uniform1dv_load_with_dyn(get_proc_address);
5566 self.Uniform1f_load_with_dyn(get_proc_address);
5567 self.Uniform1fv_load_with_dyn(get_proc_address);
5568 self.Uniform1i_load_with_dyn(get_proc_address);
5569 self.Uniform1iv_load_with_dyn(get_proc_address);
5570 self.Uniform1ui_load_with_dyn(get_proc_address);
5571 self.Uniform1uiv_load_with_dyn(get_proc_address);
5572 self.Uniform2d_load_with_dyn(get_proc_address);
5573 self.Uniform2dv_load_with_dyn(get_proc_address);
5574 self.Uniform2f_load_with_dyn(get_proc_address);
5575 self.Uniform2fv_load_with_dyn(get_proc_address);
5576 self.Uniform2i_load_with_dyn(get_proc_address);
5577 self.Uniform2iv_load_with_dyn(get_proc_address);
5578 self.Uniform2ui_load_with_dyn(get_proc_address);
5579 self.Uniform2uiv_load_with_dyn(get_proc_address);
5580 self.Uniform3d_load_with_dyn(get_proc_address);
5581 self.Uniform3dv_load_with_dyn(get_proc_address);
5582 self.Uniform3f_load_with_dyn(get_proc_address);
5583 self.Uniform3fv_load_with_dyn(get_proc_address);
5584 self.Uniform3i_load_with_dyn(get_proc_address);
5585 self.Uniform3iv_load_with_dyn(get_proc_address);
5586 self.Uniform3ui_load_with_dyn(get_proc_address);
5587 self.Uniform3uiv_load_with_dyn(get_proc_address);
5588 self.Uniform4d_load_with_dyn(get_proc_address);
5589 self.Uniform4dv_load_with_dyn(get_proc_address);
5590 self.Uniform4f_load_with_dyn(get_proc_address);
5591 self.Uniform4fv_load_with_dyn(get_proc_address);
5592 self.Uniform4i_load_with_dyn(get_proc_address);
5593 self.Uniform4iv_load_with_dyn(get_proc_address);
5594 self.Uniform4ui_load_with_dyn(get_proc_address);
5595 self.Uniform4uiv_load_with_dyn(get_proc_address);
5596 self.UniformBlockBinding_load_with_dyn(get_proc_address);
5597 self.UniformMatrix2dv_load_with_dyn(get_proc_address);
5598 self.UniformMatrix2fv_load_with_dyn(get_proc_address);
5599 self.UniformMatrix2x3dv_load_with_dyn(get_proc_address);
5600 self.UniformMatrix2x3fv_load_with_dyn(get_proc_address);
5601 self.UniformMatrix2x4dv_load_with_dyn(get_proc_address);
5602 self.UniformMatrix2x4fv_load_with_dyn(get_proc_address);
5603 self.UniformMatrix3dv_load_with_dyn(get_proc_address);
5604 self.UniformMatrix3fv_load_with_dyn(get_proc_address);
5605 self.UniformMatrix3x2dv_load_with_dyn(get_proc_address);
5606 self.UniformMatrix3x2fv_load_with_dyn(get_proc_address);
5607 self.UniformMatrix3x4dv_load_with_dyn(get_proc_address);
5608 self.UniformMatrix3x4fv_load_with_dyn(get_proc_address);
5609 self.UniformMatrix4dv_load_with_dyn(get_proc_address);
5610 self.UniformMatrix4fv_load_with_dyn(get_proc_address);
5611 self.UniformMatrix4x2dv_load_with_dyn(get_proc_address);
5612 self.UniformMatrix4x2fv_load_with_dyn(get_proc_address);
5613 self.UniformMatrix4x3dv_load_with_dyn(get_proc_address);
5614 self.UniformMatrix4x3fv_load_with_dyn(get_proc_address);
5615 self.UniformSubroutinesuiv_load_with_dyn(get_proc_address);
5616 self.UnmapBuffer_load_with_dyn(get_proc_address);
5617 self.UnmapNamedBuffer_load_with_dyn(get_proc_address);
5618 self.UseProgram_load_with_dyn(get_proc_address);
5619 self.UseProgramStages_load_with_dyn(get_proc_address);
5620 self.ValidateProgram_load_with_dyn(get_proc_address);
5621 self.ValidateProgramPipeline_load_with_dyn(get_proc_address);
5622 self.VertexArrayAttribBinding_load_with_dyn(get_proc_address);
5623 self.VertexArrayAttribFormat_load_with_dyn(get_proc_address);
5624 self.VertexArrayAttribIFormat_load_with_dyn(get_proc_address);
5625 self.VertexArrayAttribLFormat_load_with_dyn(get_proc_address);
5626 self.VertexArrayBindingDivisor_load_with_dyn(get_proc_address);
5627 self.VertexArrayElementBuffer_load_with_dyn(get_proc_address);
5628 self.VertexArrayVertexBuffer_load_with_dyn(get_proc_address);
5629 self.VertexArrayVertexBuffers_load_with_dyn(get_proc_address);
5630 self.VertexAttrib1d_load_with_dyn(get_proc_address);
5631 self.VertexAttrib1dv_load_with_dyn(get_proc_address);
5632 self.VertexAttrib1f_load_with_dyn(get_proc_address);
5633 self.VertexAttrib1fv_load_with_dyn(get_proc_address);
5634 self.VertexAttrib1s_load_with_dyn(get_proc_address);
5635 self.VertexAttrib1sv_load_with_dyn(get_proc_address);
5636 self.VertexAttrib2d_load_with_dyn(get_proc_address);
5637 self.VertexAttrib2dv_load_with_dyn(get_proc_address);
5638 self.VertexAttrib2f_load_with_dyn(get_proc_address);
5639 self.VertexAttrib2fv_load_with_dyn(get_proc_address);
5640 self.VertexAttrib2s_load_with_dyn(get_proc_address);
5641 self.VertexAttrib2sv_load_with_dyn(get_proc_address);
5642 self.VertexAttrib3d_load_with_dyn(get_proc_address);
5643 self.VertexAttrib3dv_load_with_dyn(get_proc_address);
5644 self.VertexAttrib3f_load_with_dyn(get_proc_address);
5645 self.VertexAttrib3fv_load_with_dyn(get_proc_address);
5646 self.VertexAttrib3s_load_with_dyn(get_proc_address);
5647 self.VertexAttrib3sv_load_with_dyn(get_proc_address);
5648 self.VertexAttrib4Nbv_load_with_dyn(get_proc_address);
5649 self.VertexAttrib4Niv_load_with_dyn(get_proc_address);
5650 self.VertexAttrib4Nsv_load_with_dyn(get_proc_address);
5651 self.VertexAttrib4Nub_load_with_dyn(get_proc_address);
5652 self.VertexAttrib4Nubv_load_with_dyn(get_proc_address);
5653 self.VertexAttrib4Nuiv_load_with_dyn(get_proc_address);
5654 self.VertexAttrib4Nusv_load_with_dyn(get_proc_address);
5655 self.VertexAttrib4bv_load_with_dyn(get_proc_address);
5656 self.VertexAttrib4d_load_with_dyn(get_proc_address);
5657 self.VertexAttrib4dv_load_with_dyn(get_proc_address);
5658 self.VertexAttrib4f_load_with_dyn(get_proc_address);
5659 self.VertexAttrib4fv_load_with_dyn(get_proc_address);
5660 self.VertexAttrib4iv_load_with_dyn(get_proc_address);
5661 self.VertexAttrib4s_load_with_dyn(get_proc_address);
5662 self.VertexAttrib4sv_load_with_dyn(get_proc_address);
5663 self.VertexAttrib4ubv_load_with_dyn(get_proc_address);
5664 self.VertexAttrib4uiv_load_with_dyn(get_proc_address);
5665 self.VertexAttrib4usv_load_with_dyn(get_proc_address);
5666 self.VertexAttribBinding_load_with_dyn(get_proc_address);
5667 self.VertexAttribDivisor_load_with_dyn(get_proc_address);
5668 {
5669 self.VertexAttribDivisorARB_load_with_dyn(get_proc_address);
5670 }
5671 self.VertexAttribFormat_load_with_dyn(get_proc_address);
5672 self.VertexAttribI1i_load_with_dyn(get_proc_address);
5673 self.VertexAttribI1iv_load_with_dyn(get_proc_address);
5674 self.VertexAttribI1ui_load_with_dyn(get_proc_address);
5675 self.VertexAttribI1uiv_load_with_dyn(get_proc_address);
5676 self.VertexAttribI2i_load_with_dyn(get_proc_address);
5677 self.VertexAttribI2iv_load_with_dyn(get_proc_address);
5678 self.VertexAttribI2ui_load_with_dyn(get_proc_address);
5679 self.VertexAttribI2uiv_load_with_dyn(get_proc_address);
5680 self.VertexAttribI3i_load_with_dyn(get_proc_address);
5681 self.VertexAttribI3iv_load_with_dyn(get_proc_address);
5682 self.VertexAttribI3ui_load_with_dyn(get_proc_address);
5683 self.VertexAttribI3uiv_load_with_dyn(get_proc_address);
5684 self.VertexAttribI4bv_load_with_dyn(get_proc_address);
5685 self.VertexAttribI4i_load_with_dyn(get_proc_address);
5686 self.VertexAttribI4iv_load_with_dyn(get_proc_address);
5687 self.VertexAttribI4sv_load_with_dyn(get_proc_address);
5688 self.VertexAttribI4ubv_load_with_dyn(get_proc_address);
5689 self.VertexAttribI4ui_load_with_dyn(get_proc_address);
5690 self.VertexAttribI4uiv_load_with_dyn(get_proc_address);
5691 self.VertexAttribI4usv_load_with_dyn(get_proc_address);
5692 self.VertexAttribIFormat_load_with_dyn(get_proc_address);
5693 self.VertexAttribIPointer_load_with_dyn(get_proc_address);
5694 self.VertexAttribL1d_load_with_dyn(get_proc_address);
5695 self.VertexAttribL1dv_load_with_dyn(get_proc_address);
5696 self.VertexAttribL2d_load_with_dyn(get_proc_address);
5697 self.VertexAttribL2dv_load_with_dyn(get_proc_address);
5698 self.VertexAttribL3d_load_with_dyn(get_proc_address);
5699 self.VertexAttribL3dv_load_with_dyn(get_proc_address);
5700 self.VertexAttribL4d_load_with_dyn(get_proc_address);
5701 self.VertexAttribL4dv_load_with_dyn(get_proc_address);
5702 self.VertexAttribLFormat_load_with_dyn(get_proc_address);
5703 self.VertexAttribLPointer_load_with_dyn(get_proc_address);
5704 self.VertexAttribP1ui_load_with_dyn(get_proc_address);
5705 self.VertexAttribP1uiv_load_with_dyn(get_proc_address);
5706 self.VertexAttribP2ui_load_with_dyn(get_proc_address);
5707 self.VertexAttribP2uiv_load_with_dyn(get_proc_address);
5708 self.VertexAttribP3ui_load_with_dyn(get_proc_address);
5709 self.VertexAttribP3uiv_load_with_dyn(get_proc_address);
5710 self.VertexAttribP4ui_load_with_dyn(get_proc_address);
5711 self.VertexAttribP4uiv_load_with_dyn(get_proc_address);
5712 self.VertexAttribPointer_load_with_dyn(get_proc_address);
5713 self.VertexBindingDivisor_load_with_dyn(get_proc_address);
5714 self.Viewport_load_with_dyn(get_proc_address);
5715 self.ViewportArrayv_load_with_dyn(get_proc_address);
5716 self.ViewportIndexedf_load_with_dyn(get_proc_address);
5717 self.ViewportIndexedfv_load_with_dyn(get_proc_address);
5718 self.WaitSync_load_with_dyn(get_proc_address);
5719 }
5720 #[cfg_attr(feature = "inline", inline)]
5722 #[cfg_attr(feature = "inline_always", inline(always))]
5723 pub unsafe fn ActiveShaderProgram(&self, pipeline: GLuint, program: GLuint) {
5724 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5725 {
5726 trace!(
5727 "calling gl.ActiveShaderProgram({:?}, {:?});",
5728 pipeline,
5729 program
5730 );
5731 }
5732 let out = call_atomic_ptr_2arg(
5733 "glActiveShaderProgram",
5734 &self.glActiveShaderProgram_p,
5735 pipeline,
5736 program,
5737 );
5738 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5739 {
5740 self.automatic_glGetError("glActiveShaderProgram");
5741 }
5742 out
5743 }
5744 #[doc(hidden)]
5745 pub unsafe fn ActiveShaderProgram_load_with_dyn(
5746 &self,
5747 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5748 ) -> bool {
5749 load_dyn_name_atomic_ptr(
5750 get_proc_address,
5751 b"glActiveShaderProgram\0",
5752 &self.glActiveShaderProgram_p,
5753 )
5754 }
5755 #[inline]
5756 #[doc(hidden)]
5757 pub fn ActiveShaderProgram_is_loaded(&self) -> bool {
5758 !self.glActiveShaderProgram_p.load(RELAX).is_null()
5759 }
5760 #[cfg_attr(feature = "inline", inline)]
5763 #[cfg_attr(feature = "inline_always", inline(always))]
5764 pub unsafe fn ActiveTexture(&self, texture: GLenum) {
5765 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5766 {
5767 trace!("calling gl.ActiveTexture({:#X});", texture);
5768 }
5769 let out = call_atomic_ptr_1arg("glActiveTexture", &self.glActiveTexture_p, texture);
5770 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5771 {
5772 self.automatic_glGetError("glActiveTexture");
5773 }
5774 out
5775 }
5776 #[doc(hidden)]
5777 pub unsafe fn ActiveTexture_load_with_dyn(
5778 &self,
5779 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5780 ) -> bool {
5781 load_dyn_name_atomic_ptr(
5782 get_proc_address,
5783 b"glActiveTexture\0",
5784 &self.glActiveTexture_p,
5785 )
5786 }
5787 #[inline]
5788 #[doc(hidden)]
5789 pub fn ActiveTexture_is_loaded(&self) -> bool {
5790 !self.glActiveTexture_p.load(RELAX).is_null()
5791 }
5792 #[cfg_attr(feature = "inline", inline)]
5794 #[cfg_attr(feature = "inline_always", inline(always))]
5795 pub unsafe fn AttachShader(&self, program: GLuint, shader: GLuint) {
5796 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5797 {
5798 trace!("calling gl.AttachShader({:?}, {:?});", program, shader);
5799 }
5800 let out =
5801 call_atomic_ptr_2arg("glAttachShader", &self.glAttachShader_p, program, shader);
5802 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5803 {
5804 self.automatic_glGetError("glAttachShader");
5805 }
5806 out
5807 }
5808 #[doc(hidden)]
5809 pub unsafe fn AttachShader_load_with_dyn(
5810 &self,
5811 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5812 ) -> bool {
5813 load_dyn_name_atomic_ptr(
5814 get_proc_address,
5815 b"glAttachShader\0",
5816 &self.glAttachShader_p,
5817 )
5818 }
5819 #[inline]
5820 #[doc(hidden)]
5821 pub fn AttachShader_is_loaded(&self) -> bool {
5822 !self.glAttachShader_p.load(RELAX).is_null()
5823 }
5824 #[cfg_attr(feature = "inline", inline)]
5827 #[cfg_attr(feature = "inline_always", inline(always))]
5828 pub unsafe fn BeginConditionalRender(&self, id: GLuint, mode: GLenum) {
5829 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5830 {
5831 trace!("calling gl.BeginConditionalRender({:?}, {:#X});", id, mode);
5832 }
5833 let out = call_atomic_ptr_2arg(
5834 "glBeginConditionalRender",
5835 &self.glBeginConditionalRender_p,
5836 id,
5837 mode,
5838 );
5839 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5840 {
5841 self.automatic_glGetError("glBeginConditionalRender");
5842 }
5843 out
5844 }
5845 #[doc(hidden)]
5846 pub unsafe fn BeginConditionalRender_load_with_dyn(
5847 &self,
5848 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5849 ) -> bool {
5850 load_dyn_name_atomic_ptr(
5851 get_proc_address,
5852 b"glBeginConditionalRender\0",
5853 &self.glBeginConditionalRender_p,
5854 )
5855 }
5856 #[inline]
5857 #[doc(hidden)]
5858 pub fn BeginConditionalRender_is_loaded(&self) -> bool {
5859 !self.glBeginConditionalRender_p.load(RELAX).is_null()
5860 }
5861 #[cfg_attr(feature = "inline", inline)]
5864 #[cfg_attr(feature = "inline_always", inline(always))]
5865 pub unsafe fn BeginQuery(&self, target: GLenum, id: GLuint) {
5866 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5867 {
5868 trace!("calling gl.BeginQuery({:#X}, {:?});", target, id);
5869 }
5870 let out = call_atomic_ptr_2arg("glBeginQuery", &self.glBeginQuery_p, target, id);
5871 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5872 {
5873 self.automatic_glGetError("glBeginQuery");
5874 }
5875 out
5876 }
5877 #[doc(hidden)]
5878 pub unsafe fn BeginQuery_load_with_dyn(
5879 &self,
5880 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5881 ) -> bool {
5882 load_dyn_name_atomic_ptr(get_proc_address, b"glBeginQuery\0", &self.glBeginQuery_p)
5883 }
5884 #[inline]
5885 #[doc(hidden)]
5886 pub fn BeginQuery_is_loaded(&self) -> bool {
5887 !self.glBeginQuery_p.load(RELAX).is_null()
5888 }
5889 #[cfg_attr(feature = "inline", inline)]
5892 #[cfg_attr(feature = "inline_always", inline(always))]
5893 pub unsafe fn BeginQueryEXT(&self, target: GLenum, id: GLuint) {
5894 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5895 {
5896 trace!("calling gl.BeginQueryEXT({:#X}, {:?});", target, id);
5897 }
5898 let out = call_atomic_ptr_2arg("glBeginQueryEXT", &self.glBeginQueryEXT_p, target, id);
5899 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5900 {
5901 self.automatic_glGetError("glBeginQueryEXT");
5902 }
5903 out
5904 }
5905 #[doc(hidden)]
5906 pub unsafe fn BeginQueryEXT_load_with_dyn(
5907 &self,
5908 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5909 ) -> bool {
5910 load_dyn_name_atomic_ptr(
5911 get_proc_address,
5912 b"glBeginQueryEXT\0",
5913 &self.glBeginQueryEXT_p,
5914 )
5915 }
5916 #[inline]
5917 #[doc(hidden)]
5918 pub fn BeginQueryEXT_is_loaded(&self) -> bool {
5919 !self.glBeginQueryEXT_p.load(RELAX).is_null()
5920 }
5921 #[cfg_attr(feature = "inline", inline)]
5924 #[cfg_attr(feature = "inline_always", inline(always))]
5925 pub unsafe fn BeginQueryIndexed(&self, target: GLenum, index: GLuint, id: GLuint) {
5926 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5927 {
5928 trace!(
5929 "calling gl.BeginQueryIndexed({:#X}, {:?}, {:?});",
5930 target,
5931 index,
5932 id
5933 );
5934 }
5935 let out = call_atomic_ptr_3arg(
5936 "glBeginQueryIndexed",
5937 &self.glBeginQueryIndexed_p,
5938 target,
5939 index,
5940 id,
5941 );
5942 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5943 {
5944 self.automatic_glGetError("glBeginQueryIndexed");
5945 }
5946 out
5947 }
5948 #[doc(hidden)]
5949 pub unsafe fn BeginQueryIndexed_load_with_dyn(
5950 &self,
5951 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5952 ) -> bool {
5953 load_dyn_name_atomic_ptr(
5954 get_proc_address,
5955 b"glBeginQueryIndexed\0",
5956 &self.glBeginQueryIndexed_p,
5957 )
5958 }
5959 #[inline]
5960 #[doc(hidden)]
5961 pub fn BeginQueryIndexed_is_loaded(&self) -> bool {
5962 !self.glBeginQueryIndexed_p.load(RELAX).is_null()
5963 }
5964 #[cfg_attr(feature = "inline", inline)]
5967 #[cfg_attr(feature = "inline_always", inline(always))]
5968 pub unsafe fn BeginTransformFeedback(&self, primitiveMode: GLenum) {
5969 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
5970 {
5971 trace!("calling gl.BeginTransformFeedback({:#X});", primitiveMode);
5972 }
5973 let out = call_atomic_ptr_1arg(
5974 "glBeginTransformFeedback",
5975 &self.glBeginTransformFeedback_p,
5976 primitiveMode,
5977 );
5978 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
5979 {
5980 self.automatic_glGetError("glBeginTransformFeedback");
5981 }
5982 out
5983 }
5984 #[doc(hidden)]
5985 pub unsafe fn BeginTransformFeedback_load_with_dyn(
5986 &self,
5987 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
5988 ) -> bool {
5989 load_dyn_name_atomic_ptr(
5990 get_proc_address,
5991 b"glBeginTransformFeedback\0",
5992 &self.glBeginTransformFeedback_p,
5993 )
5994 }
5995 #[inline]
5996 #[doc(hidden)]
5997 pub fn BeginTransformFeedback_is_loaded(&self) -> bool {
5998 !self.glBeginTransformFeedback_p.load(RELAX).is_null()
5999 }
6000 #[cfg_attr(feature = "inline", inline)]
6002 #[cfg_attr(feature = "inline_always", inline(always))]
6003 pub unsafe fn BindAttribLocation(
6004 &self,
6005 program: GLuint,
6006 index: GLuint,
6007 name: *const GLchar,
6008 ) {
6009 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6010 {
6011 trace!(
6012 "calling gl.BindAttribLocation({:?}, {:?}, {:p});",
6013 program,
6014 index,
6015 name
6016 );
6017 }
6018 let out = call_atomic_ptr_3arg(
6019 "glBindAttribLocation",
6020 &self.glBindAttribLocation_p,
6021 program,
6022 index,
6023 name,
6024 );
6025 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6026 {
6027 self.automatic_glGetError("glBindAttribLocation");
6028 }
6029 out
6030 }
6031 #[doc(hidden)]
6032 pub unsafe fn BindAttribLocation_load_with_dyn(
6033 &self,
6034 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6035 ) -> bool {
6036 load_dyn_name_atomic_ptr(
6037 get_proc_address,
6038 b"glBindAttribLocation\0",
6039 &self.glBindAttribLocation_p,
6040 )
6041 }
6042 #[inline]
6043 #[doc(hidden)]
6044 pub fn BindAttribLocation_is_loaded(&self) -> bool {
6045 !self.glBindAttribLocation_p.load(RELAX).is_null()
6046 }
6047 #[cfg_attr(feature = "inline", inline)]
6050 #[cfg_attr(feature = "inline_always", inline(always))]
6051 pub unsafe fn BindBuffer(&self, target: GLenum, buffer: GLuint) {
6052 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6053 {
6054 trace!("calling gl.BindBuffer({:#X}, {:?});", target, buffer);
6055 }
6056 let out = call_atomic_ptr_2arg("glBindBuffer", &self.glBindBuffer_p, target, buffer);
6057 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6058 {
6059 self.automatic_glGetError("glBindBuffer");
6060 }
6061 out
6062 }
6063 #[doc(hidden)]
6064 pub unsafe fn BindBuffer_load_with_dyn(
6065 &self,
6066 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6067 ) -> bool {
6068 load_dyn_name_atomic_ptr(get_proc_address, b"glBindBuffer\0", &self.glBindBuffer_p)
6069 }
6070 #[inline]
6071 #[doc(hidden)]
6072 pub fn BindBuffer_is_loaded(&self) -> bool {
6073 !self.glBindBuffer_p.load(RELAX).is_null()
6074 }
6075 #[cfg_attr(feature = "inline", inline)]
6078 #[cfg_attr(feature = "inline_always", inline(always))]
6079 pub unsafe fn BindBufferBase(&self, target: GLenum, index: GLuint, buffer: GLuint) {
6080 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6081 {
6082 trace!(
6083 "calling gl.BindBufferBase({:#X}, {:?}, {:?});",
6084 target,
6085 index,
6086 buffer
6087 );
6088 }
6089 let out = call_atomic_ptr_3arg(
6090 "glBindBufferBase",
6091 &self.glBindBufferBase_p,
6092 target,
6093 index,
6094 buffer,
6095 );
6096 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6097 {
6098 self.automatic_glGetError("glBindBufferBase");
6099 }
6100 out
6101 }
6102 #[doc(hidden)]
6103 pub unsafe fn BindBufferBase_load_with_dyn(
6104 &self,
6105 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6106 ) -> bool {
6107 load_dyn_name_atomic_ptr(
6108 get_proc_address,
6109 b"glBindBufferBase\0",
6110 &self.glBindBufferBase_p,
6111 )
6112 }
6113 #[inline]
6114 #[doc(hidden)]
6115 pub fn BindBufferBase_is_loaded(&self) -> bool {
6116 !self.glBindBufferBase_p.load(RELAX).is_null()
6117 }
6118 #[cfg_attr(feature = "inline", inline)]
6123 #[cfg_attr(feature = "inline_always", inline(always))]
6124 pub unsafe fn BindBufferRange(
6125 &self,
6126 target: GLenum,
6127 index: GLuint,
6128 buffer: GLuint,
6129 offset: GLintptr,
6130 size: GLsizeiptr,
6131 ) {
6132 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6133 {
6134 trace!(
6135 "calling gl.BindBufferRange({:#X}, {:?}, {:?}, {:?}, {:?});",
6136 target,
6137 index,
6138 buffer,
6139 offset,
6140 size
6141 );
6142 }
6143 let out = call_atomic_ptr_5arg(
6144 "glBindBufferRange",
6145 &self.glBindBufferRange_p,
6146 target,
6147 index,
6148 buffer,
6149 offset,
6150 size,
6151 );
6152 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6153 {
6154 self.automatic_glGetError("glBindBufferRange");
6155 }
6156 out
6157 }
6158 #[doc(hidden)]
6159 pub unsafe fn BindBufferRange_load_with_dyn(
6160 &self,
6161 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6162 ) -> bool {
6163 load_dyn_name_atomic_ptr(
6164 get_proc_address,
6165 b"glBindBufferRange\0",
6166 &self.glBindBufferRange_p,
6167 )
6168 }
6169 #[inline]
6170 #[doc(hidden)]
6171 pub fn BindBufferRange_is_loaded(&self) -> bool {
6172 !self.glBindBufferRange_p.load(RELAX).is_null()
6173 }
6174 #[cfg_attr(feature = "inline", inline)]
6178 #[cfg_attr(feature = "inline_always", inline(always))]
6179 pub unsafe fn BindBuffersBase(
6180 &self,
6181 target: GLenum,
6182 first: GLuint,
6183 count: GLsizei,
6184 buffers: *const GLuint,
6185 ) {
6186 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6187 {
6188 trace!(
6189 "calling gl.BindBuffersBase({:#X}, {:?}, {:?}, {:p});",
6190 target,
6191 first,
6192 count,
6193 buffers
6194 );
6195 }
6196 let out = call_atomic_ptr_4arg(
6197 "glBindBuffersBase",
6198 &self.glBindBuffersBase_p,
6199 target,
6200 first,
6201 count,
6202 buffers,
6203 );
6204 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6205 {
6206 self.automatic_glGetError("glBindBuffersBase");
6207 }
6208 out
6209 }
6210 #[doc(hidden)]
6211 pub unsafe fn BindBuffersBase_load_with_dyn(
6212 &self,
6213 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6214 ) -> bool {
6215 load_dyn_name_atomic_ptr(
6216 get_proc_address,
6217 b"glBindBuffersBase\0",
6218 &self.glBindBuffersBase_p,
6219 )
6220 }
6221 #[inline]
6222 #[doc(hidden)]
6223 pub fn BindBuffersBase_is_loaded(&self) -> bool {
6224 !self.glBindBuffersBase_p.load(RELAX).is_null()
6225 }
6226 #[cfg_attr(feature = "inline", inline)]
6232 #[cfg_attr(feature = "inline_always", inline(always))]
6233 pub unsafe fn BindBuffersRange(
6234 &self,
6235 target: GLenum,
6236 first: GLuint,
6237 count: GLsizei,
6238 buffers: *const GLuint,
6239 offsets: *const GLintptr,
6240 sizes: *const GLsizeiptr,
6241 ) {
6242 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6243 {
6244 trace!(
6245 "calling gl.BindBuffersRange({:#X}, {:?}, {:?}, {:p}, {:p}, {:p});",
6246 target,
6247 first,
6248 count,
6249 buffers,
6250 offsets,
6251 sizes
6252 );
6253 }
6254 let out = call_atomic_ptr_6arg(
6255 "glBindBuffersRange",
6256 &self.glBindBuffersRange_p,
6257 target,
6258 first,
6259 count,
6260 buffers,
6261 offsets,
6262 sizes,
6263 );
6264 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6265 {
6266 self.automatic_glGetError("glBindBuffersRange");
6267 }
6268 out
6269 }
6270 #[doc(hidden)]
6271 pub unsafe fn BindBuffersRange_load_with_dyn(
6272 &self,
6273 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6274 ) -> bool {
6275 load_dyn_name_atomic_ptr(
6276 get_proc_address,
6277 b"glBindBuffersRange\0",
6278 &self.glBindBuffersRange_p,
6279 )
6280 }
6281 #[inline]
6282 #[doc(hidden)]
6283 pub fn BindBuffersRange_is_loaded(&self) -> bool {
6284 !self.glBindBuffersRange_p.load(RELAX).is_null()
6285 }
6286 #[cfg_attr(feature = "inline", inline)]
6289 #[cfg_attr(feature = "inline_always", inline(always))]
6290 pub unsafe fn BindFragDataLocation(
6291 &self,
6292 program: GLuint,
6293 color: GLuint,
6294 name: *const GLchar,
6295 ) {
6296 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6297 {
6298 trace!(
6299 "calling gl.BindFragDataLocation({:?}, {:?}, {:p});",
6300 program,
6301 color,
6302 name
6303 );
6304 }
6305 let out = call_atomic_ptr_3arg(
6306 "glBindFragDataLocation",
6307 &self.glBindFragDataLocation_p,
6308 program,
6309 color,
6310 name,
6311 );
6312 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6313 {
6314 self.automatic_glGetError("glBindFragDataLocation");
6315 }
6316 out
6317 }
6318 #[doc(hidden)]
6319 pub unsafe fn BindFragDataLocation_load_with_dyn(
6320 &self,
6321 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6322 ) -> bool {
6323 load_dyn_name_atomic_ptr(
6324 get_proc_address,
6325 b"glBindFragDataLocation\0",
6326 &self.glBindFragDataLocation_p,
6327 )
6328 }
6329 #[inline]
6330 #[doc(hidden)]
6331 pub fn BindFragDataLocation_is_loaded(&self) -> bool {
6332 !self.glBindFragDataLocation_p.load(RELAX).is_null()
6333 }
6334 #[cfg_attr(feature = "inline", inline)]
6336 #[cfg_attr(feature = "inline_always", inline(always))]
6337 pub unsafe fn BindFragDataLocationIndexed(
6338 &self,
6339 program: GLuint,
6340 colorNumber: GLuint,
6341 index: GLuint,
6342 name: *const GLchar,
6343 ) {
6344 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6345 {
6346 trace!(
6347 "calling gl.BindFragDataLocationIndexed({:?}, {:?}, {:?}, {:p});",
6348 program,
6349 colorNumber,
6350 index,
6351 name
6352 );
6353 }
6354 let out = call_atomic_ptr_4arg(
6355 "glBindFragDataLocationIndexed",
6356 &self.glBindFragDataLocationIndexed_p,
6357 program,
6358 colorNumber,
6359 index,
6360 name,
6361 );
6362 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6363 {
6364 self.automatic_glGetError("glBindFragDataLocationIndexed");
6365 }
6366 out
6367 }
6368 #[doc(hidden)]
6369 pub unsafe fn BindFragDataLocationIndexed_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"glBindFragDataLocationIndexed\0",
6376 &self.glBindFragDataLocationIndexed_p,
6377 )
6378 }
6379 #[inline]
6380 #[doc(hidden)]
6381 pub fn BindFragDataLocationIndexed_is_loaded(&self) -> bool {
6382 !self.glBindFragDataLocationIndexed_p.load(RELAX).is_null()
6383 }
6384 #[cfg_attr(feature = "inline", inline)]
6387 #[cfg_attr(feature = "inline_always", inline(always))]
6388 pub unsafe fn BindFramebuffer(&self, target: GLenum, framebuffer: GLuint) {
6389 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6390 {
6391 trace!(
6392 "calling gl.BindFramebuffer({:#X}, {:?});",
6393 target,
6394 framebuffer
6395 );
6396 }
6397 let out = call_atomic_ptr_2arg(
6398 "glBindFramebuffer",
6399 &self.glBindFramebuffer_p,
6400 target,
6401 framebuffer,
6402 );
6403 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6404 {
6405 self.automatic_glGetError("glBindFramebuffer");
6406 }
6407 out
6408 }
6409 #[doc(hidden)]
6410 pub unsafe fn BindFramebuffer_load_with_dyn(
6411 &self,
6412 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6413 ) -> bool {
6414 load_dyn_name_atomic_ptr(
6415 get_proc_address,
6416 b"glBindFramebuffer\0",
6417 &self.glBindFramebuffer_p,
6418 )
6419 }
6420 #[inline]
6421 #[doc(hidden)]
6422 pub fn BindFramebuffer_is_loaded(&self) -> bool {
6423 !self.glBindFramebuffer_p.load(RELAX).is_null()
6424 }
6425 #[cfg_attr(feature = "inline", inline)]
6429 #[cfg_attr(feature = "inline_always", inline(always))]
6430 pub unsafe fn BindImageTexture(
6431 &self,
6432 unit: GLuint,
6433 texture: GLuint,
6434 level: GLint,
6435 layered: GLboolean,
6436 layer: GLint,
6437 access: GLenum,
6438 format: GLenum,
6439 ) {
6440 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6441 {
6442 trace!(
6443 "calling gl.BindImageTexture({:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X});",
6444 unit,
6445 texture,
6446 level,
6447 layered,
6448 layer,
6449 access,
6450 format
6451 );
6452 }
6453 let out = call_atomic_ptr_7arg(
6454 "glBindImageTexture",
6455 &self.glBindImageTexture_p,
6456 unit,
6457 texture,
6458 level,
6459 layered,
6460 layer,
6461 access,
6462 format,
6463 );
6464 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6465 {
6466 self.automatic_glGetError("glBindImageTexture");
6467 }
6468 out
6469 }
6470 #[doc(hidden)]
6471 pub unsafe fn BindImageTexture_load_with_dyn(
6472 &self,
6473 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6474 ) -> bool {
6475 load_dyn_name_atomic_ptr(
6476 get_proc_address,
6477 b"glBindImageTexture\0",
6478 &self.glBindImageTexture_p,
6479 )
6480 }
6481 #[inline]
6482 #[doc(hidden)]
6483 pub fn BindImageTexture_is_loaded(&self) -> bool {
6484 !self.glBindImageTexture_p.load(RELAX).is_null()
6485 }
6486 #[cfg_attr(feature = "inline", inline)]
6489 #[cfg_attr(feature = "inline_always", inline(always))]
6490 pub unsafe fn BindImageTextures(
6491 &self,
6492 first: GLuint,
6493 count: GLsizei,
6494 textures: *const GLuint,
6495 ) {
6496 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6497 {
6498 trace!(
6499 "calling gl.BindImageTextures({:?}, {:?}, {:p});",
6500 first,
6501 count,
6502 textures
6503 );
6504 }
6505 let out = call_atomic_ptr_3arg(
6506 "glBindImageTextures",
6507 &self.glBindImageTextures_p,
6508 first,
6509 count,
6510 textures,
6511 );
6512 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6513 {
6514 self.automatic_glGetError("glBindImageTextures");
6515 }
6516 out
6517 }
6518 #[doc(hidden)]
6519 pub unsafe fn BindImageTextures_load_with_dyn(
6520 &self,
6521 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6522 ) -> bool {
6523 load_dyn_name_atomic_ptr(
6524 get_proc_address,
6525 b"glBindImageTextures\0",
6526 &self.glBindImageTextures_p,
6527 )
6528 }
6529 #[inline]
6530 #[doc(hidden)]
6531 pub fn BindImageTextures_is_loaded(&self) -> bool {
6532 !self.glBindImageTextures_p.load(RELAX).is_null()
6533 }
6534 #[cfg_attr(feature = "inline", inline)]
6536 #[cfg_attr(feature = "inline_always", inline(always))]
6537 pub unsafe fn BindProgramPipeline(&self, pipeline: GLuint) {
6538 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6539 {
6540 trace!("calling gl.BindProgramPipeline({:?});", pipeline);
6541 }
6542 let out = call_atomic_ptr_1arg(
6543 "glBindProgramPipeline",
6544 &self.glBindProgramPipeline_p,
6545 pipeline,
6546 );
6547 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6548 {
6549 self.automatic_glGetError("glBindProgramPipeline");
6550 }
6551 out
6552 }
6553 #[doc(hidden)]
6554 pub unsafe fn BindProgramPipeline_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"glBindProgramPipeline\0",
6561 &self.glBindProgramPipeline_p,
6562 )
6563 }
6564 #[inline]
6565 #[doc(hidden)]
6566 pub fn BindProgramPipeline_is_loaded(&self) -> bool {
6567 !self.glBindProgramPipeline_p.load(RELAX).is_null()
6568 }
6569 #[cfg_attr(feature = "inline", inline)]
6572 #[cfg_attr(feature = "inline_always", inline(always))]
6573 pub unsafe fn BindRenderbuffer(&self, target: GLenum, renderbuffer: GLuint) {
6574 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6575 {
6576 trace!(
6577 "calling gl.BindRenderbuffer({:#X}, {:?});",
6578 target,
6579 renderbuffer
6580 );
6581 }
6582 let out = call_atomic_ptr_2arg(
6583 "glBindRenderbuffer",
6584 &self.glBindRenderbuffer_p,
6585 target,
6586 renderbuffer,
6587 );
6588 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6589 {
6590 self.automatic_glGetError("glBindRenderbuffer");
6591 }
6592 out
6593 }
6594 #[doc(hidden)]
6595 pub unsafe fn BindRenderbuffer_load_with_dyn(
6596 &self,
6597 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6598 ) -> bool {
6599 load_dyn_name_atomic_ptr(
6600 get_proc_address,
6601 b"glBindRenderbuffer\0",
6602 &self.glBindRenderbuffer_p,
6603 )
6604 }
6605 #[inline]
6606 #[doc(hidden)]
6607 pub fn BindRenderbuffer_is_loaded(&self) -> bool {
6608 !self.glBindRenderbuffer_p.load(RELAX).is_null()
6609 }
6610 #[cfg_attr(feature = "inline", inline)]
6612 #[cfg_attr(feature = "inline_always", inline(always))]
6613 pub unsafe fn BindSampler(&self, unit: GLuint, sampler: GLuint) {
6614 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6615 {
6616 trace!("calling gl.BindSampler({:?}, {:?});", unit, sampler);
6617 }
6618 let out = call_atomic_ptr_2arg("glBindSampler", &self.glBindSampler_p, unit, sampler);
6619 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6620 {
6621 self.automatic_glGetError("glBindSampler");
6622 }
6623 out
6624 }
6625 #[doc(hidden)]
6626 pub unsafe fn BindSampler_load_with_dyn(
6627 &self,
6628 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6629 ) -> bool {
6630 load_dyn_name_atomic_ptr(get_proc_address, b"glBindSampler\0", &self.glBindSampler_p)
6631 }
6632 #[inline]
6633 #[doc(hidden)]
6634 pub fn BindSampler_is_loaded(&self) -> bool {
6635 !self.glBindSampler_p.load(RELAX).is_null()
6636 }
6637 #[cfg_attr(feature = "inline", inline)]
6640 #[cfg_attr(feature = "inline_always", inline(always))]
6641 pub unsafe fn BindSamplers(&self, first: GLuint, count: GLsizei, samplers: *const GLuint) {
6642 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6643 {
6644 trace!(
6645 "calling gl.BindSamplers({:?}, {:?}, {:p});",
6646 first,
6647 count,
6648 samplers
6649 );
6650 }
6651 let out = call_atomic_ptr_3arg(
6652 "glBindSamplers",
6653 &self.glBindSamplers_p,
6654 first,
6655 count,
6656 samplers,
6657 );
6658 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6659 {
6660 self.automatic_glGetError("glBindSamplers");
6661 }
6662 out
6663 }
6664 #[doc(hidden)]
6665 pub unsafe fn BindSamplers_load_with_dyn(
6666 &self,
6667 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6668 ) -> bool {
6669 load_dyn_name_atomic_ptr(
6670 get_proc_address,
6671 b"glBindSamplers\0",
6672 &self.glBindSamplers_p,
6673 )
6674 }
6675 #[inline]
6676 #[doc(hidden)]
6677 pub fn BindSamplers_is_loaded(&self) -> bool {
6678 !self.glBindSamplers_p.load(RELAX).is_null()
6679 }
6680 #[cfg_attr(feature = "inline", inline)]
6684 #[cfg_attr(feature = "inline_always", inline(always))]
6685 pub unsafe fn BindTexture(&self, target: GLenum, texture: GLuint) {
6686 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6687 {
6688 trace!("calling gl.BindTexture({:#X}, {:?});", target, texture);
6689 }
6690 let out = call_atomic_ptr_2arg("glBindTexture", &self.glBindTexture_p, target, texture);
6691 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6692 {
6693 self.automatic_glGetError("glBindTexture");
6694 }
6695 out
6696 }
6697 #[doc(hidden)]
6698 pub unsafe fn BindTexture_load_with_dyn(
6699 &self,
6700 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6701 ) -> bool {
6702 load_dyn_name_atomic_ptr(get_proc_address, b"glBindTexture\0", &self.glBindTexture_p)
6703 }
6704 #[inline]
6705 #[doc(hidden)]
6706 pub fn BindTexture_is_loaded(&self) -> bool {
6707 !self.glBindTexture_p.load(RELAX).is_null()
6708 }
6709 #[cfg_attr(feature = "inline", inline)]
6711 #[cfg_attr(feature = "inline_always", inline(always))]
6712 pub unsafe fn BindTextureUnit(&self, unit: GLuint, texture: GLuint) {
6713 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6714 {
6715 trace!("calling gl.BindTextureUnit({:?}, {:?});", unit, texture);
6716 }
6717 let out = call_atomic_ptr_2arg(
6718 "glBindTextureUnit",
6719 &self.glBindTextureUnit_p,
6720 unit,
6721 texture,
6722 );
6723 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6724 {
6725 self.automatic_glGetError("glBindTextureUnit");
6726 }
6727 out
6728 }
6729 #[doc(hidden)]
6730 pub unsafe fn BindTextureUnit_load_with_dyn(
6731 &self,
6732 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6733 ) -> bool {
6734 load_dyn_name_atomic_ptr(
6735 get_proc_address,
6736 b"glBindTextureUnit\0",
6737 &self.glBindTextureUnit_p,
6738 )
6739 }
6740 #[inline]
6741 #[doc(hidden)]
6742 pub fn BindTextureUnit_is_loaded(&self) -> bool {
6743 !self.glBindTextureUnit_p.load(RELAX).is_null()
6744 }
6745 #[cfg_attr(feature = "inline", inline)]
6748 #[cfg_attr(feature = "inline_always", inline(always))]
6749 pub unsafe fn BindTextures(&self, first: GLuint, count: GLsizei, textures: *const GLuint) {
6750 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6751 {
6752 trace!(
6753 "calling gl.BindTextures({:?}, {:?}, {:p});",
6754 first,
6755 count,
6756 textures
6757 );
6758 }
6759 let out = call_atomic_ptr_3arg(
6760 "glBindTextures",
6761 &self.glBindTextures_p,
6762 first,
6763 count,
6764 textures,
6765 );
6766 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6767 {
6768 self.automatic_glGetError("glBindTextures");
6769 }
6770 out
6771 }
6772 #[doc(hidden)]
6773 pub unsafe fn BindTextures_load_with_dyn(
6774 &self,
6775 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6776 ) -> bool {
6777 load_dyn_name_atomic_ptr(
6778 get_proc_address,
6779 b"glBindTextures\0",
6780 &self.glBindTextures_p,
6781 )
6782 }
6783 #[inline]
6784 #[doc(hidden)]
6785 pub fn BindTextures_is_loaded(&self) -> bool {
6786 !self.glBindTextures_p.load(RELAX).is_null()
6787 }
6788 #[cfg_attr(feature = "inline", inline)]
6791 #[cfg_attr(feature = "inline_always", inline(always))]
6792 pub unsafe fn BindTransformFeedback(&self, target: GLenum, id: GLuint) {
6793 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6794 {
6795 trace!("calling gl.BindTransformFeedback({:#X}, {:?});", target, id);
6796 }
6797 let out = call_atomic_ptr_2arg(
6798 "glBindTransformFeedback",
6799 &self.glBindTransformFeedback_p,
6800 target,
6801 id,
6802 );
6803 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6804 {
6805 self.automatic_glGetError("glBindTransformFeedback");
6806 }
6807 out
6808 }
6809 #[doc(hidden)]
6810 pub unsafe fn BindTransformFeedback_load_with_dyn(
6811 &self,
6812 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6813 ) -> bool {
6814 load_dyn_name_atomic_ptr(
6815 get_proc_address,
6816 b"glBindTransformFeedback\0",
6817 &self.glBindTransformFeedback_p,
6818 )
6819 }
6820 #[inline]
6821 #[doc(hidden)]
6822 pub fn BindTransformFeedback_is_loaded(&self) -> bool {
6823 !self.glBindTransformFeedback_p.load(RELAX).is_null()
6824 }
6825 #[cfg_attr(feature = "inline", inline)]
6827 #[cfg_attr(feature = "inline_always", inline(always))]
6828 pub unsafe fn BindVertexArray(&self, array: GLuint) {
6829 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6830 {
6831 trace!("calling gl.BindVertexArray({:?});", array);
6832 }
6833 let out = call_atomic_ptr_1arg("glBindVertexArray", &self.glBindVertexArray_p, array);
6834 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6835 {
6836 self.automatic_glGetError("glBindVertexArray");
6837 }
6838 out
6839 }
6840 #[doc(hidden)]
6841 pub unsafe fn BindVertexArray_load_with_dyn(
6842 &self,
6843 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6844 ) -> bool {
6845 load_dyn_name_atomic_ptr(
6846 get_proc_address,
6847 b"glBindVertexArray\0",
6848 &self.glBindVertexArray_p,
6849 )
6850 }
6851 #[inline]
6852 #[doc(hidden)]
6853 pub fn BindVertexArray_is_loaded(&self) -> bool {
6854 !self.glBindVertexArray_p.load(RELAX).is_null()
6855 }
6856 #[cfg_attr(feature = "inline", inline)]
6858 #[cfg_attr(feature = "inline_always", inline(always))]
6859 pub unsafe fn BindVertexArrayAPPLE(&self, array: GLuint) {
6860 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6861 {
6862 trace!("calling gl.BindVertexArrayAPPLE({:?});", array);
6863 }
6864 let out = call_atomic_ptr_1arg(
6865 "glBindVertexArrayAPPLE",
6866 &self.glBindVertexArrayAPPLE_p,
6867 array,
6868 );
6869 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6870 {
6871 self.automatic_glGetError("glBindVertexArrayAPPLE");
6872 }
6873 out
6874 }
6875 #[doc(hidden)]
6876 pub unsafe fn BindVertexArrayAPPLE_load_with_dyn(
6877 &self,
6878 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6879 ) -> bool {
6880 load_dyn_name_atomic_ptr(
6881 get_proc_address,
6882 b"glBindVertexArrayAPPLE\0",
6883 &self.glBindVertexArrayAPPLE_p,
6884 )
6885 }
6886 #[inline]
6887 #[doc(hidden)]
6888 pub fn BindVertexArrayAPPLE_is_loaded(&self) -> bool {
6889 !self.glBindVertexArrayAPPLE_p.load(RELAX).is_null()
6890 }
6891 #[cfg_attr(feature = "inline", inline)]
6894 #[cfg_attr(feature = "inline_always", inline(always))]
6895 pub unsafe fn BindVertexArrayOES(&self, array: GLuint) {
6896 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6897 {
6898 trace!("calling gl.BindVertexArrayOES({:?});", array);
6899 }
6900 let out =
6901 call_atomic_ptr_1arg("glBindVertexArrayOES", &self.glBindVertexArrayOES_p, array);
6902 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6903 {
6904 self.automatic_glGetError("glBindVertexArrayOES");
6905 }
6906 out
6907 }
6908 #[doc(hidden)]
6909 pub unsafe fn BindVertexArrayOES_load_with_dyn(
6910 &self,
6911 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6912 ) -> bool {
6913 load_dyn_name_atomic_ptr(
6914 get_proc_address,
6915 b"glBindVertexArrayOES\0",
6916 &self.glBindVertexArrayOES_p,
6917 )
6918 }
6919 #[inline]
6920 #[doc(hidden)]
6921 pub fn BindVertexArrayOES_is_loaded(&self) -> bool {
6922 !self.glBindVertexArrayOES_p.load(RELAX).is_null()
6923 }
6924 #[cfg_attr(feature = "inline", inline)]
6927 #[cfg_attr(feature = "inline_always", inline(always))]
6928 pub unsafe fn BindVertexBuffer(
6929 &self,
6930 bindingindex: GLuint,
6931 buffer: GLuint,
6932 offset: GLintptr,
6933 stride: GLsizei,
6934 ) {
6935 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6936 {
6937 trace!(
6938 "calling gl.BindVertexBuffer({:?}, {:?}, {:?}, {:?});",
6939 bindingindex,
6940 buffer,
6941 offset,
6942 stride
6943 );
6944 }
6945 let out = call_atomic_ptr_4arg(
6946 "glBindVertexBuffer",
6947 &self.glBindVertexBuffer_p,
6948 bindingindex,
6949 buffer,
6950 offset,
6951 stride,
6952 );
6953 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
6954 {
6955 self.automatic_glGetError("glBindVertexBuffer");
6956 }
6957 out
6958 }
6959 #[doc(hidden)]
6960 pub unsafe fn BindVertexBuffer_load_with_dyn(
6961 &self,
6962 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
6963 ) -> bool {
6964 load_dyn_name_atomic_ptr(
6965 get_proc_address,
6966 b"glBindVertexBuffer\0",
6967 &self.glBindVertexBuffer_p,
6968 )
6969 }
6970 #[inline]
6971 #[doc(hidden)]
6972 pub fn BindVertexBuffer_is_loaded(&self) -> bool {
6973 !self.glBindVertexBuffer_p.load(RELAX).is_null()
6974 }
6975 #[cfg_attr(feature = "inline", inline)]
6980 #[cfg_attr(feature = "inline_always", inline(always))]
6981 pub unsafe fn BindVertexBuffers(
6982 &self,
6983 first: GLuint,
6984 count: GLsizei,
6985 buffers: *const GLuint,
6986 offsets: *const GLintptr,
6987 strides: *const GLsizei,
6988 ) {
6989 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
6990 {
6991 trace!(
6992 "calling gl.BindVertexBuffers({:?}, {:?}, {:p}, {:p}, {:p});",
6993 first,
6994 count,
6995 buffers,
6996 offsets,
6997 strides
6998 );
6999 }
7000 let out = call_atomic_ptr_5arg(
7001 "glBindVertexBuffers",
7002 &self.glBindVertexBuffers_p,
7003 first,
7004 count,
7005 buffers,
7006 offsets,
7007 strides,
7008 );
7009 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7010 {
7011 self.automatic_glGetError("glBindVertexBuffers");
7012 }
7013 out
7014 }
7015 #[doc(hidden)]
7016 pub unsafe fn BindVertexBuffers_load_with_dyn(
7017 &self,
7018 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7019 ) -> bool {
7020 load_dyn_name_atomic_ptr(
7021 get_proc_address,
7022 b"glBindVertexBuffers\0",
7023 &self.glBindVertexBuffers_p,
7024 )
7025 }
7026 #[inline]
7027 #[doc(hidden)]
7028 pub fn BindVertexBuffers_is_loaded(&self) -> bool {
7029 !self.glBindVertexBuffers_p.load(RELAX).is_null()
7030 }
7031 #[cfg_attr(feature = "inline", inline)]
7033 #[cfg_attr(feature = "inline_always", inline(always))]
7034 pub unsafe fn BlendBarrier(&self) {
7035 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7036 {
7037 trace!("calling gl.BlendBarrier();",);
7038 }
7039 let out = call_atomic_ptr_0arg("glBlendBarrier", &self.glBlendBarrier_p);
7040 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7041 {
7042 self.automatic_glGetError("glBlendBarrier");
7043 }
7044 out
7045 }
7046 #[doc(hidden)]
7047 pub unsafe fn BlendBarrier_load_with_dyn(
7048 &self,
7049 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7050 ) -> bool {
7051 load_dyn_name_atomic_ptr(
7052 get_proc_address,
7053 b"glBlendBarrier\0",
7054 &self.glBlendBarrier_p,
7055 )
7056 }
7057 #[inline]
7058 #[doc(hidden)]
7059 pub fn BlendBarrier_is_loaded(&self) -> bool {
7060 !self.glBlendBarrier_p.load(RELAX).is_null()
7061 }
7062 #[cfg_attr(feature = "inline", inline)]
7068 #[cfg_attr(feature = "inline_always", inline(always))]
7069 pub unsafe fn BlendColor(
7070 &self,
7071 red: GLfloat,
7072 green: GLfloat,
7073 blue: GLfloat,
7074 alpha: GLfloat,
7075 ) {
7076 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7077 {
7078 trace!(
7079 "calling gl.BlendColor({:?}, {:?}, {:?}, {:?});",
7080 red,
7081 green,
7082 blue,
7083 alpha
7084 );
7085 }
7086 let out = call_atomic_ptr_4arg(
7087 "glBlendColor",
7088 &self.glBlendColor_p,
7089 red,
7090 green,
7091 blue,
7092 alpha,
7093 );
7094 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7095 {
7096 self.automatic_glGetError("glBlendColor");
7097 }
7098 out
7099 }
7100 #[doc(hidden)]
7101 pub unsafe fn BlendColor_load_with_dyn(
7102 &self,
7103 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7104 ) -> bool {
7105 load_dyn_name_atomic_ptr(get_proc_address, b"glBlendColor\0", &self.glBlendColor_p)
7106 }
7107 #[inline]
7108 #[doc(hidden)]
7109 pub fn BlendColor_is_loaded(&self) -> bool {
7110 !self.glBlendColor_p.load(RELAX).is_null()
7111 }
7112 #[cfg_attr(feature = "inline", inline)]
7115 #[cfg_attr(feature = "inline_always", inline(always))]
7116 pub unsafe fn BlendEquation(&self, mode: GLenum) {
7117 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7118 {
7119 trace!("calling gl.BlendEquation({:#X});", mode);
7120 }
7121 let out = call_atomic_ptr_1arg("glBlendEquation", &self.glBlendEquation_p, mode);
7122 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7123 {
7124 self.automatic_glGetError("glBlendEquation");
7125 }
7126 out
7127 }
7128 #[doc(hidden)]
7129 pub unsafe fn BlendEquation_load_with_dyn(
7130 &self,
7131 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7132 ) -> bool {
7133 load_dyn_name_atomic_ptr(
7134 get_proc_address,
7135 b"glBlendEquation\0",
7136 &self.glBlendEquation_p,
7137 )
7138 }
7139 #[inline]
7140 #[doc(hidden)]
7141 pub fn BlendEquation_is_loaded(&self) -> bool {
7142 !self.glBlendEquation_p.load(RELAX).is_null()
7143 }
7144 #[cfg_attr(feature = "inline", inline)]
7148 #[cfg_attr(feature = "inline_always", inline(always))]
7149 pub unsafe fn BlendEquationSeparate(&self, modeRGB: GLenum, modeAlpha: GLenum) {
7150 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7151 {
7152 trace!(
7153 "calling gl.BlendEquationSeparate({:#X}, {:#X});",
7154 modeRGB,
7155 modeAlpha
7156 );
7157 }
7158 let out = call_atomic_ptr_2arg(
7159 "glBlendEquationSeparate",
7160 &self.glBlendEquationSeparate_p,
7161 modeRGB,
7162 modeAlpha,
7163 );
7164 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7165 {
7166 self.automatic_glGetError("glBlendEquationSeparate");
7167 }
7168 out
7169 }
7170 #[doc(hidden)]
7171 pub unsafe fn BlendEquationSeparate_load_with_dyn(
7172 &self,
7173 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7174 ) -> bool {
7175 load_dyn_name_atomic_ptr(
7176 get_proc_address,
7177 b"glBlendEquationSeparate\0",
7178 &self.glBlendEquationSeparate_p,
7179 )
7180 }
7181 #[inline]
7182 #[doc(hidden)]
7183 pub fn BlendEquationSeparate_is_loaded(&self) -> bool {
7184 !self.glBlendEquationSeparate_p.load(RELAX).is_null()
7185 }
7186 #[cfg_attr(feature = "inline", inline)]
7190 #[cfg_attr(feature = "inline_always", inline(always))]
7191 pub unsafe fn BlendEquationSeparatei(
7192 &self,
7193 buf: GLuint,
7194 modeRGB: GLenum,
7195 modeAlpha: GLenum,
7196 ) {
7197 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7198 {
7199 trace!(
7200 "calling gl.BlendEquationSeparatei({:?}, {:#X}, {:#X});",
7201 buf,
7202 modeRGB,
7203 modeAlpha
7204 );
7205 }
7206 let out = call_atomic_ptr_3arg(
7207 "glBlendEquationSeparatei",
7208 &self.glBlendEquationSeparatei_p,
7209 buf,
7210 modeRGB,
7211 modeAlpha,
7212 );
7213 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7214 {
7215 self.automatic_glGetError("glBlendEquationSeparatei");
7216 }
7217 out
7218 }
7219 #[doc(hidden)]
7220 pub unsafe fn BlendEquationSeparatei_load_with_dyn(
7221 &self,
7222 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7223 ) -> bool {
7224 load_dyn_name_atomic_ptr(
7225 get_proc_address,
7226 b"glBlendEquationSeparatei\0",
7227 &self.glBlendEquationSeparatei_p,
7228 )
7229 }
7230 #[inline]
7231 #[doc(hidden)]
7232 pub fn BlendEquationSeparatei_is_loaded(&self) -> bool {
7233 !self.glBlendEquationSeparatei_p.load(RELAX).is_null()
7234 }
7235 #[cfg_attr(feature = "inline", inline)]
7238 #[cfg_attr(feature = "inline_always", inline(always))]
7239 pub unsafe fn BlendEquationi(&self, buf: GLuint, mode: GLenum) {
7240 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7241 {
7242 trace!("calling gl.BlendEquationi({:?}, {:#X});", buf, mode);
7243 }
7244 let out = call_atomic_ptr_2arg("glBlendEquationi", &self.glBlendEquationi_p, buf, mode);
7245 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7246 {
7247 self.automatic_glGetError("glBlendEquationi");
7248 }
7249 out
7250 }
7251 #[doc(hidden)]
7252 pub unsafe fn BlendEquationi_load_with_dyn(
7253 &self,
7254 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7255 ) -> bool {
7256 load_dyn_name_atomic_ptr(
7257 get_proc_address,
7258 b"glBlendEquationi\0",
7259 &self.glBlendEquationi_p,
7260 )
7261 }
7262 #[inline]
7263 #[doc(hidden)]
7264 pub fn BlendEquationi_is_loaded(&self) -> bool {
7265 !self.glBlendEquationi_p.load(RELAX).is_null()
7266 }
7267 #[cfg_attr(feature = "inline", inline)]
7271 #[cfg_attr(feature = "inline_always", inline(always))]
7272 pub unsafe fn BlendFunc(&self, sfactor: GLenum, dfactor: GLenum) {
7273 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7274 {
7275 trace!("calling gl.BlendFunc({:#X}, {:#X});", sfactor, dfactor);
7276 }
7277 let out = call_atomic_ptr_2arg("glBlendFunc", &self.glBlendFunc_p, sfactor, dfactor);
7278 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7279 {
7280 self.automatic_glGetError("glBlendFunc");
7281 }
7282 out
7283 }
7284 #[doc(hidden)]
7285 pub unsafe fn BlendFunc_load_with_dyn(
7286 &self,
7287 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7288 ) -> bool {
7289 load_dyn_name_atomic_ptr(get_proc_address, b"glBlendFunc\0", &self.glBlendFunc_p)
7290 }
7291 #[inline]
7292 #[doc(hidden)]
7293 pub fn BlendFunc_is_loaded(&self) -> bool {
7294 !self.glBlendFunc_p.load(RELAX).is_null()
7295 }
7296 #[cfg_attr(feature = "inline", inline)]
7302 #[cfg_attr(feature = "inline_always", inline(always))]
7303 pub unsafe fn BlendFuncSeparate(
7304 &self,
7305 sfactorRGB: GLenum,
7306 dfactorRGB: GLenum,
7307 sfactorAlpha: GLenum,
7308 dfactorAlpha: GLenum,
7309 ) {
7310 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7311 {
7312 trace!(
7313 "calling gl.BlendFuncSeparate({:#X}, {:#X}, {:#X}, {:#X});",
7314 sfactorRGB,
7315 dfactorRGB,
7316 sfactorAlpha,
7317 dfactorAlpha
7318 );
7319 }
7320 let out = call_atomic_ptr_4arg(
7321 "glBlendFuncSeparate",
7322 &self.glBlendFuncSeparate_p,
7323 sfactorRGB,
7324 dfactorRGB,
7325 sfactorAlpha,
7326 dfactorAlpha,
7327 );
7328 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7329 {
7330 self.automatic_glGetError("glBlendFuncSeparate");
7331 }
7332 out
7333 }
7334 #[doc(hidden)]
7335 pub unsafe fn BlendFuncSeparate_load_with_dyn(
7336 &self,
7337 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7338 ) -> bool {
7339 load_dyn_name_atomic_ptr(
7340 get_proc_address,
7341 b"glBlendFuncSeparate\0",
7342 &self.glBlendFuncSeparate_p,
7343 )
7344 }
7345 #[inline]
7346 #[doc(hidden)]
7347 pub fn BlendFuncSeparate_is_loaded(&self) -> bool {
7348 !self.glBlendFuncSeparate_p.load(RELAX).is_null()
7349 }
7350 #[cfg_attr(feature = "inline", inline)]
7356 #[cfg_attr(feature = "inline_always", inline(always))]
7357 pub unsafe fn BlendFuncSeparatei(
7358 &self,
7359 buf: GLuint,
7360 srcRGB: GLenum,
7361 dstRGB: GLenum,
7362 srcAlpha: GLenum,
7363 dstAlpha: GLenum,
7364 ) {
7365 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7366 {
7367 trace!(
7368 "calling gl.BlendFuncSeparatei({:?}, {:#X}, {:#X}, {:#X}, {:#X});",
7369 buf,
7370 srcRGB,
7371 dstRGB,
7372 srcAlpha,
7373 dstAlpha
7374 );
7375 }
7376 let out = call_atomic_ptr_5arg(
7377 "glBlendFuncSeparatei",
7378 &self.glBlendFuncSeparatei_p,
7379 buf,
7380 srcRGB,
7381 dstRGB,
7382 srcAlpha,
7383 dstAlpha,
7384 );
7385 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7386 {
7387 self.automatic_glGetError("glBlendFuncSeparatei");
7388 }
7389 out
7390 }
7391 #[doc(hidden)]
7392 pub unsafe fn BlendFuncSeparatei_load_with_dyn(
7393 &self,
7394 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7395 ) -> bool {
7396 load_dyn_name_atomic_ptr(
7397 get_proc_address,
7398 b"glBlendFuncSeparatei\0",
7399 &self.glBlendFuncSeparatei_p,
7400 )
7401 }
7402 #[inline]
7403 #[doc(hidden)]
7404 pub fn BlendFuncSeparatei_is_loaded(&self) -> bool {
7405 !self.glBlendFuncSeparatei_p.load(RELAX).is_null()
7406 }
7407 #[cfg_attr(feature = "inline", inline)]
7411 #[cfg_attr(feature = "inline_always", inline(always))]
7412 pub unsafe fn BlendFunci(&self, buf: GLuint, src: GLenum, dst: GLenum) {
7413 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7414 {
7415 trace!("calling gl.BlendFunci({:?}, {:#X}, {:#X});", buf, src, dst);
7416 }
7417 let out = call_atomic_ptr_3arg("glBlendFunci", &self.glBlendFunci_p, buf, src, dst);
7418 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7419 {
7420 self.automatic_glGetError("glBlendFunci");
7421 }
7422 out
7423 }
7424 #[doc(hidden)]
7425 pub unsafe fn BlendFunci_load_with_dyn(
7426 &self,
7427 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7428 ) -> bool {
7429 load_dyn_name_atomic_ptr(get_proc_address, b"glBlendFunci\0", &self.glBlendFunci_p)
7430 }
7431 #[inline]
7432 #[doc(hidden)]
7433 pub fn BlendFunci_is_loaded(&self) -> bool {
7434 !self.glBlendFunci_p.load(RELAX).is_null()
7435 }
7436 #[cfg_attr(feature = "inline", inline)]
7440 #[cfg_attr(feature = "inline_always", inline(always))]
7441 pub unsafe fn BlitFramebuffer(
7442 &self,
7443 srcX0: GLint,
7444 srcY0: GLint,
7445 srcX1: GLint,
7446 srcY1: GLint,
7447 dstX0: GLint,
7448 dstY0: GLint,
7449 dstX1: GLint,
7450 dstY1: GLint,
7451 mask: GLbitfield,
7452 filter: GLenum,
7453 ) {
7454 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7455 {
7456 trace!("calling gl.BlitFramebuffer({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X});", srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
7457 }
7458 let out = call_atomic_ptr_10arg(
7459 "glBlitFramebuffer",
7460 &self.glBlitFramebuffer_p,
7461 srcX0,
7462 srcY0,
7463 srcX1,
7464 srcY1,
7465 dstX0,
7466 dstY0,
7467 dstX1,
7468 dstY1,
7469 mask,
7470 filter,
7471 );
7472 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7473 {
7474 self.automatic_glGetError("glBlitFramebuffer");
7475 }
7476 out
7477 }
7478 #[doc(hidden)]
7479 pub unsafe fn BlitFramebuffer_load_with_dyn(
7480 &self,
7481 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7482 ) -> bool {
7483 load_dyn_name_atomic_ptr(
7484 get_proc_address,
7485 b"glBlitFramebuffer\0",
7486 &self.glBlitFramebuffer_p,
7487 )
7488 }
7489 #[inline]
7490 #[doc(hidden)]
7491 pub fn BlitFramebuffer_is_loaded(&self) -> bool {
7492 !self.glBlitFramebuffer_p.load(RELAX).is_null()
7493 }
7494 #[cfg_attr(feature = "inline", inline)]
7498 #[cfg_attr(feature = "inline_always", inline(always))]
7499 pub unsafe fn BlitNamedFramebuffer(
7500 &self,
7501 readFramebuffer: GLuint,
7502 drawFramebuffer: GLuint,
7503 srcX0: GLint,
7504 srcY0: GLint,
7505 srcX1: GLint,
7506 srcY1: GLint,
7507 dstX0: GLint,
7508 dstY0: GLint,
7509 dstX1: GLint,
7510 dstY1: GLint,
7511 mask: GLbitfield,
7512 filter: GLenum,
7513 ) {
7514 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7515 {
7516 trace!("calling gl.BlitNamedFramebuffer({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X});", readFramebuffer, drawFramebuffer, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
7517 }
7518 let out = call_atomic_ptr_12arg(
7519 "glBlitNamedFramebuffer",
7520 &self.glBlitNamedFramebuffer_p,
7521 readFramebuffer,
7522 drawFramebuffer,
7523 srcX0,
7524 srcY0,
7525 srcX1,
7526 srcY1,
7527 dstX0,
7528 dstY0,
7529 dstX1,
7530 dstY1,
7531 mask,
7532 filter,
7533 );
7534 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7535 {
7536 self.automatic_glGetError("glBlitNamedFramebuffer");
7537 }
7538 out
7539 }
7540 #[doc(hidden)]
7541 pub unsafe fn BlitNamedFramebuffer_load_with_dyn(
7542 &self,
7543 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7544 ) -> bool {
7545 load_dyn_name_atomic_ptr(
7546 get_proc_address,
7547 b"glBlitNamedFramebuffer\0",
7548 &self.glBlitNamedFramebuffer_p,
7549 )
7550 }
7551 #[inline]
7552 #[doc(hidden)]
7553 pub fn BlitNamedFramebuffer_is_loaded(&self) -> bool {
7554 !self.glBlitNamedFramebuffer_p.load(RELAX).is_null()
7555 }
7556 #[cfg_attr(feature = "inline", inline)]
7562 #[cfg_attr(feature = "inline_always", inline(always))]
7563 pub unsafe fn BufferData(
7564 &self,
7565 target: GLenum,
7566 size: GLsizeiptr,
7567 data: *const c_void,
7568 usage: GLenum,
7569 ) {
7570 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7571 {
7572 trace!(
7573 "calling gl.BufferData({:#X}, {:?}, {:p}, {:#X});",
7574 target,
7575 size,
7576 data,
7577 usage
7578 );
7579 }
7580 let out = call_atomic_ptr_4arg(
7581 "glBufferData",
7582 &self.glBufferData_p,
7583 target,
7584 size,
7585 data,
7586 usage,
7587 );
7588 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7589 {
7590 self.automatic_glGetError("glBufferData");
7591 }
7592 out
7593 }
7594 #[doc(hidden)]
7595 pub unsafe fn BufferData_load_with_dyn(
7596 &self,
7597 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7598 ) -> bool {
7599 load_dyn_name_atomic_ptr(get_proc_address, b"glBufferData\0", &self.glBufferData_p)
7600 }
7601 #[inline]
7602 #[doc(hidden)]
7603 pub fn BufferData_is_loaded(&self) -> bool {
7604 !self.glBufferData_p.load(RELAX).is_null()
7605 }
7606 #[cfg_attr(feature = "inline", inline)]
7611 #[cfg_attr(feature = "inline_always", inline(always))]
7612 pub unsafe fn BufferStorage(
7613 &self,
7614 target: GLenum,
7615 size: GLsizeiptr,
7616 data: *const c_void,
7617 flags: GLbitfield,
7618 ) {
7619 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7620 {
7621 trace!(
7622 "calling gl.BufferStorage({:#X}, {:?}, {:p}, {:?});",
7623 target,
7624 size,
7625 data,
7626 flags
7627 );
7628 }
7629 let out = call_atomic_ptr_4arg(
7630 "glBufferStorage",
7631 &self.glBufferStorage_p,
7632 target,
7633 size,
7634 data,
7635 flags,
7636 );
7637 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7638 {
7639 self.automatic_glGetError("glBufferStorage");
7640 }
7641 out
7642 }
7643 #[doc(hidden)]
7644 pub unsafe fn BufferStorage_load_with_dyn(
7645 &self,
7646 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7647 ) -> bool {
7648 load_dyn_name_atomic_ptr(
7649 get_proc_address,
7650 b"glBufferStorage\0",
7651 &self.glBufferStorage_p,
7652 )
7653 }
7654 #[inline]
7655 #[doc(hidden)]
7656 pub fn BufferStorage_is_loaded(&self) -> bool {
7657 !self.glBufferStorage_p.load(RELAX).is_null()
7658 }
7659 #[cfg_attr(feature = "inline", inline)]
7665 #[cfg_attr(feature = "inline_always", inline(always))]
7666 pub unsafe fn BufferStorageEXT(
7667 &self,
7668 target: GLenum,
7669 size: GLsizeiptr,
7670 data: *const c_void,
7671 flags: GLbitfield,
7672 ) {
7673 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7674 {
7675 trace!(
7676 "calling gl.BufferStorageEXT({:#X}, {:?}, {:p}, {:?});",
7677 target,
7678 size,
7679 data,
7680 flags
7681 );
7682 }
7683 let out = call_atomic_ptr_4arg(
7684 "glBufferStorageEXT",
7685 &self.glBufferStorageEXT_p,
7686 target,
7687 size,
7688 data,
7689 flags,
7690 );
7691 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7692 {
7693 self.automatic_glGetError("glBufferStorageEXT");
7694 }
7695 out
7696 }
7697 #[doc(hidden)]
7698 pub unsafe fn BufferStorageEXT_load_with_dyn(
7699 &self,
7700 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7701 ) -> bool {
7702 load_dyn_name_atomic_ptr(
7703 get_proc_address,
7704 b"glBufferStorageEXT\0",
7705 &self.glBufferStorageEXT_p,
7706 )
7707 }
7708 #[inline]
7709 #[doc(hidden)]
7710 pub fn BufferStorageEXT_is_loaded(&self) -> bool {
7711 !self.glBufferStorageEXT_p.load(RELAX).is_null()
7712 }
7713 #[cfg_attr(feature = "inline", inline)]
7719 #[cfg_attr(feature = "inline_always", inline(always))]
7720 pub unsafe fn BufferSubData(
7721 &self,
7722 target: GLenum,
7723 offset: GLintptr,
7724 size: GLsizeiptr,
7725 data: *const c_void,
7726 ) {
7727 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7728 {
7729 trace!(
7730 "calling gl.BufferSubData({:#X}, {:?}, {:?}, {:p});",
7731 target,
7732 offset,
7733 size,
7734 data
7735 );
7736 }
7737 let out = call_atomic_ptr_4arg(
7738 "glBufferSubData",
7739 &self.glBufferSubData_p,
7740 target,
7741 offset,
7742 size,
7743 data,
7744 );
7745 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7746 {
7747 self.automatic_glGetError("glBufferSubData");
7748 }
7749 out
7750 }
7751 #[doc(hidden)]
7752 pub unsafe fn BufferSubData_load_with_dyn(
7753 &self,
7754 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7755 ) -> bool {
7756 load_dyn_name_atomic_ptr(
7757 get_proc_address,
7758 b"glBufferSubData\0",
7759 &self.glBufferSubData_p,
7760 )
7761 }
7762 #[inline]
7763 #[doc(hidden)]
7764 pub fn BufferSubData_is_loaded(&self) -> bool {
7765 !self.glBufferSubData_p.load(RELAX).is_null()
7766 }
7767 #[cfg_attr(feature = "inline", inline)]
7771 #[cfg_attr(feature = "inline_always", inline(always))]
7772 pub unsafe fn CheckFramebufferStatus(&self, target: GLenum) -> GLenum {
7773 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7774 {
7775 trace!("calling gl.CheckFramebufferStatus({:#X});", target);
7776 }
7777 let out = call_atomic_ptr_1arg(
7778 "glCheckFramebufferStatus",
7779 &self.glCheckFramebufferStatus_p,
7780 target,
7781 );
7782 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7783 {
7784 self.automatic_glGetError("glCheckFramebufferStatus");
7785 }
7786 out
7787 }
7788 #[doc(hidden)]
7789 pub unsafe fn CheckFramebufferStatus_load_with_dyn(
7790 &self,
7791 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7792 ) -> bool {
7793 load_dyn_name_atomic_ptr(
7794 get_proc_address,
7795 b"glCheckFramebufferStatus\0",
7796 &self.glCheckFramebufferStatus_p,
7797 )
7798 }
7799 #[inline]
7800 #[doc(hidden)]
7801 pub fn CheckFramebufferStatus_is_loaded(&self) -> bool {
7802 !self.glCheckFramebufferStatus_p.load(RELAX).is_null()
7803 }
7804 #[cfg_attr(feature = "inline", inline)]
7808 #[cfg_attr(feature = "inline_always", inline(always))]
7809 pub unsafe fn CheckNamedFramebufferStatus(
7810 &self,
7811 framebuffer: GLuint,
7812 target: GLenum,
7813 ) -> GLenum {
7814 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7815 {
7816 trace!(
7817 "calling gl.CheckNamedFramebufferStatus({:?}, {:#X});",
7818 framebuffer,
7819 target
7820 );
7821 }
7822 let out = call_atomic_ptr_2arg(
7823 "glCheckNamedFramebufferStatus",
7824 &self.glCheckNamedFramebufferStatus_p,
7825 framebuffer,
7826 target,
7827 );
7828 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7829 {
7830 self.automatic_glGetError("glCheckNamedFramebufferStatus");
7831 }
7832 out
7833 }
7834 #[doc(hidden)]
7835 pub unsafe fn CheckNamedFramebufferStatus_load_with_dyn(
7836 &self,
7837 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7838 ) -> bool {
7839 load_dyn_name_atomic_ptr(
7840 get_proc_address,
7841 b"glCheckNamedFramebufferStatus\0",
7842 &self.glCheckNamedFramebufferStatus_p,
7843 )
7844 }
7845 #[inline]
7846 #[doc(hidden)]
7847 pub fn CheckNamedFramebufferStatus_is_loaded(&self) -> bool {
7848 !self.glCheckNamedFramebufferStatus_p.load(RELAX).is_null()
7849 }
7850 #[cfg_attr(feature = "inline", inline)]
7854 #[cfg_attr(feature = "inline_always", inline(always))]
7855 pub unsafe fn ClampColor(&self, target: GLenum, clamp: GLenum) {
7856 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7857 {
7858 trace!("calling gl.ClampColor({:#X}, {:#X});", target, clamp);
7859 }
7860 let out = call_atomic_ptr_2arg("glClampColor", &self.glClampColor_p, target, clamp);
7861 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7862 {
7863 self.automatic_glGetError("glClampColor");
7864 }
7865 out
7866 }
7867 #[doc(hidden)]
7868 pub unsafe fn ClampColor_load_with_dyn(
7869 &self,
7870 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7871 ) -> bool {
7872 load_dyn_name_atomic_ptr(get_proc_address, b"glClampColor\0", &self.glClampColor_p)
7873 }
7874 #[inline]
7875 #[doc(hidden)]
7876 pub fn ClampColor_is_loaded(&self) -> bool {
7877 !self.glClampColor_p.load(RELAX).is_null()
7878 }
7879 #[cfg_attr(feature = "inline", inline)]
7882 #[cfg_attr(feature = "inline_always", inline(always))]
7883 pub unsafe fn Clear(&self, mask: GLbitfield) {
7884 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7885 {
7886 trace!("calling gl.Clear({:?});", mask);
7887 }
7888 let out = call_atomic_ptr_1arg("glClear", &self.glClear_p, mask);
7889 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7890 {
7891 self.automatic_glGetError("glClear");
7892 }
7893 out
7894 }
7895 #[doc(hidden)]
7896 pub unsafe fn Clear_load_with_dyn(
7897 &self,
7898 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7899 ) -> bool {
7900 load_dyn_name_atomic_ptr(get_proc_address, b"glClear\0", &self.glClear_p)
7901 }
7902 #[inline]
7903 #[doc(hidden)]
7904 pub fn Clear_is_loaded(&self) -> bool {
7905 !self.glClear_p.load(RELAX).is_null()
7906 }
7907 #[cfg_attr(feature = "inline", inline)]
7914 #[cfg_attr(feature = "inline_always", inline(always))]
7915 pub unsafe fn ClearBufferData(
7916 &self,
7917 target: GLenum,
7918 internalformat: GLenum,
7919 format: GLenum,
7920 type_: GLenum,
7921 data: *const c_void,
7922 ) {
7923 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7924 {
7925 trace!(
7926 "calling gl.ClearBufferData({:#X}, {:#X}, {:#X}, {:#X}, {:p});",
7927 target,
7928 internalformat,
7929 format,
7930 type_,
7931 data
7932 );
7933 }
7934 let out = call_atomic_ptr_5arg(
7935 "glClearBufferData",
7936 &self.glClearBufferData_p,
7937 target,
7938 internalformat,
7939 format,
7940 type_,
7941 data,
7942 );
7943 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
7944 {
7945 self.automatic_glGetError("glClearBufferData");
7946 }
7947 out
7948 }
7949 #[doc(hidden)]
7950 pub unsafe fn ClearBufferData_load_with_dyn(
7951 &self,
7952 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
7953 ) -> bool {
7954 load_dyn_name_atomic_ptr(
7955 get_proc_address,
7956 b"glClearBufferData\0",
7957 &self.glClearBufferData_p,
7958 )
7959 }
7960 #[inline]
7961 #[doc(hidden)]
7962 pub fn ClearBufferData_is_loaded(&self) -> bool {
7963 !self.glClearBufferData_p.load(RELAX).is_null()
7964 }
7965 #[cfg_attr(feature = "inline", inline)]
7974 #[cfg_attr(feature = "inline_always", inline(always))]
7975 pub unsafe fn ClearBufferSubData(
7976 &self,
7977 target: GLenum,
7978 internalformat: GLenum,
7979 offset: GLintptr,
7980 size: GLsizeiptr,
7981 format: GLenum,
7982 type_: GLenum,
7983 data: *const c_void,
7984 ) {
7985 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
7986 {
7987 trace!(
7988 "calling gl.ClearBufferSubData({:#X}, {:#X}, {:?}, {:?}, {:#X}, {:#X}, {:p});",
7989 target,
7990 internalformat,
7991 offset,
7992 size,
7993 format,
7994 type_,
7995 data
7996 );
7997 }
7998 let out = call_atomic_ptr_7arg(
7999 "glClearBufferSubData",
8000 &self.glClearBufferSubData_p,
8001 target,
8002 internalformat,
8003 offset,
8004 size,
8005 format,
8006 type_,
8007 data,
8008 );
8009 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8010 {
8011 self.automatic_glGetError("glClearBufferSubData");
8012 }
8013 out
8014 }
8015 #[doc(hidden)]
8016 pub unsafe fn ClearBufferSubData_load_with_dyn(
8017 &self,
8018 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8019 ) -> bool {
8020 load_dyn_name_atomic_ptr(
8021 get_proc_address,
8022 b"glClearBufferSubData\0",
8023 &self.glClearBufferSubData_p,
8024 )
8025 }
8026 #[inline]
8027 #[doc(hidden)]
8028 pub fn ClearBufferSubData_is_loaded(&self) -> bool {
8029 !self.glClearBufferSubData_p.load(RELAX).is_null()
8030 }
8031 #[cfg_attr(feature = "inline", inline)]
8035 #[cfg_attr(feature = "inline_always", inline(always))]
8036 pub unsafe fn ClearBufferfi(
8037 &self,
8038 buffer: GLenum,
8039 drawbuffer: GLint,
8040 depth: GLfloat,
8041 stencil: GLint,
8042 ) {
8043 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8044 {
8045 trace!(
8046 "calling gl.ClearBufferfi({:#X}, {:?}, {:?}, {:?});",
8047 buffer,
8048 drawbuffer,
8049 depth,
8050 stencil
8051 );
8052 }
8053 let out = call_atomic_ptr_4arg(
8054 "glClearBufferfi",
8055 &self.glClearBufferfi_p,
8056 buffer,
8057 drawbuffer,
8058 depth,
8059 stencil,
8060 );
8061 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8062 {
8063 self.automatic_glGetError("glClearBufferfi");
8064 }
8065 out
8066 }
8067 #[doc(hidden)]
8068 pub unsafe fn ClearBufferfi_load_with_dyn(
8069 &self,
8070 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8071 ) -> bool {
8072 load_dyn_name_atomic_ptr(
8073 get_proc_address,
8074 b"glClearBufferfi\0",
8075 &self.glClearBufferfi_p,
8076 )
8077 }
8078 #[inline]
8079 #[doc(hidden)]
8080 pub fn ClearBufferfi_is_loaded(&self) -> bool {
8081 !self.glClearBufferfi_p.load(RELAX).is_null()
8082 }
8083 #[cfg_attr(feature = "inline", inline)]
8088 #[cfg_attr(feature = "inline_always", inline(always))]
8089 pub unsafe fn ClearBufferfv(
8090 &self,
8091 buffer: GLenum,
8092 drawbuffer: GLint,
8093 value: *const GLfloat,
8094 ) {
8095 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8096 {
8097 trace!(
8098 "calling gl.ClearBufferfv({:#X}, {:?}, {:p});",
8099 buffer,
8100 drawbuffer,
8101 value
8102 );
8103 }
8104 let out = call_atomic_ptr_3arg(
8105 "glClearBufferfv",
8106 &self.glClearBufferfv_p,
8107 buffer,
8108 drawbuffer,
8109 value,
8110 );
8111 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8112 {
8113 self.automatic_glGetError("glClearBufferfv");
8114 }
8115 out
8116 }
8117 #[doc(hidden)]
8118 pub unsafe fn ClearBufferfv_load_with_dyn(
8119 &self,
8120 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8121 ) -> bool {
8122 load_dyn_name_atomic_ptr(
8123 get_proc_address,
8124 b"glClearBufferfv\0",
8125 &self.glClearBufferfv_p,
8126 )
8127 }
8128 #[inline]
8129 #[doc(hidden)]
8130 pub fn ClearBufferfv_is_loaded(&self) -> bool {
8131 !self.glClearBufferfv_p.load(RELAX).is_null()
8132 }
8133 #[cfg_attr(feature = "inline", inline)]
8138 #[cfg_attr(feature = "inline_always", inline(always))]
8139 pub unsafe fn ClearBufferiv(&self, buffer: GLenum, drawbuffer: GLint, value: *const GLint) {
8140 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8141 {
8142 trace!(
8143 "calling gl.ClearBufferiv({:#X}, {:?}, {:p});",
8144 buffer,
8145 drawbuffer,
8146 value
8147 );
8148 }
8149 let out = call_atomic_ptr_3arg(
8150 "glClearBufferiv",
8151 &self.glClearBufferiv_p,
8152 buffer,
8153 drawbuffer,
8154 value,
8155 );
8156 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8157 {
8158 self.automatic_glGetError("glClearBufferiv");
8159 }
8160 out
8161 }
8162 #[doc(hidden)]
8163 pub unsafe fn ClearBufferiv_load_with_dyn(
8164 &self,
8165 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8166 ) -> bool {
8167 load_dyn_name_atomic_ptr(
8168 get_proc_address,
8169 b"glClearBufferiv\0",
8170 &self.glClearBufferiv_p,
8171 )
8172 }
8173 #[inline]
8174 #[doc(hidden)]
8175 pub fn ClearBufferiv_is_loaded(&self) -> bool {
8176 !self.glClearBufferiv_p.load(RELAX).is_null()
8177 }
8178 #[cfg_attr(feature = "inline", inline)]
8183 #[cfg_attr(feature = "inline_always", inline(always))]
8184 pub unsafe fn ClearBufferuiv(
8185 &self,
8186 buffer: GLenum,
8187 drawbuffer: GLint,
8188 value: *const GLuint,
8189 ) {
8190 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8191 {
8192 trace!(
8193 "calling gl.ClearBufferuiv({:#X}, {:?}, {:p});",
8194 buffer,
8195 drawbuffer,
8196 value
8197 );
8198 }
8199 let out = call_atomic_ptr_3arg(
8200 "glClearBufferuiv",
8201 &self.glClearBufferuiv_p,
8202 buffer,
8203 drawbuffer,
8204 value,
8205 );
8206 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8207 {
8208 self.automatic_glGetError("glClearBufferuiv");
8209 }
8210 out
8211 }
8212 #[doc(hidden)]
8213 pub unsafe fn ClearBufferuiv_load_with_dyn(
8214 &self,
8215 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8216 ) -> bool {
8217 load_dyn_name_atomic_ptr(
8218 get_proc_address,
8219 b"glClearBufferuiv\0",
8220 &self.glClearBufferuiv_p,
8221 )
8222 }
8223 #[inline]
8224 #[doc(hidden)]
8225 pub fn ClearBufferuiv_is_loaded(&self) -> bool {
8226 !self.glClearBufferuiv_p.load(RELAX).is_null()
8227 }
8228 #[cfg_attr(feature = "inline", inline)]
8234 #[cfg_attr(feature = "inline_always", inline(always))]
8235 pub unsafe fn ClearColor(
8236 &self,
8237 red: GLfloat,
8238 green: GLfloat,
8239 blue: GLfloat,
8240 alpha: GLfloat,
8241 ) {
8242 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8243 {
8244 trace!(
8245 "calling gl.ClearColor({:?}, {:?}, {:?}, {:?});",
8246 red,
8247 green,
8248 blue,
8249 alpha
8250 );
8251 }
8252 let out = call_atomic_ptr_4arg(
8253 "glClearColor",
8254 &self.glClearColor_p,
8255 red,
8256 green,
8257 blue,
8258 alpha,
8259 );
8260 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8261 {
8262 self.automatic_glGetError("glClearColor");
8263 }
8264 out
8265 }
8266 #[doc(hidden)]
8267 pub unsafe fn ClearColor_load_with_dyn(
8268 &self,
8269 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8270 ) -> bool {
8271 load_dyn_name_atomic_ptr(get_proc_address, b"glClearColor\0", &self.glClearColor_p)
8272 }
8273 #[inline]
8274 #[doc(hidden)]
8275 pub fn ClearColor_is_loaded(&self) -> bool {
8276 !self.glClearColor_p.load(RELAX).is_null()
8277 }
8278 #[cfg_attr(feature = "inline", inline)]
8280 #[cfg_attr(feature = "inline_always", inline(always))]
8281 pub unsafe fn ClearDepth(&self, depth: GLdouble) {
8282 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8283 {
8284 trace!("calling gl.ClearDepth({:?});", depth);
8285 }
8286 let out = call_atomic_ptr_1arg("glClearDepth", &self.glClearDepth_p, depth);
8287 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8288 {
8289 self.automatic_glGetError("glClearDepth");
8290 }
8291 out
8292 }
8293 #[doc(hidden)]
8294 pub unsafe fn ClearDepth_load_with_dyn(
8295 &self,
8296 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8297 ) -> bool {
8298 load_dyn_name_atomic_ptr(get_proc_address, b"glClearDepth\0", &self.glClearDepth_p)
8299 }
8300 #[inline]
8301 #[doc(hidden)]
8302 pub fn ClearDepth_is_loaded(&self) -> bool {
8303 !self.glClearDepth_p.load(RELAX).is_null()
8304 }
8305 #[cfg_attr(feature = "inline", inline)]
8307 #[cfg_attr(feature = "inline_always", inline(always))]
8308 pub unsafe fn ClearDepthf(&self, d: GLfloat) {
8309 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8310 {
8311 trace!("calling gl.ClearDepthf({:?});", d);
8312 }
8313 let out = call_atomic_ptr_1arg("glClearDepthf", &self.glClearDepthf_p, d);
8314 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8315 {
8316 self.automatic_glGetError("glClearDepthf");
8317 }
8318 out
8319 }
8320 #[doc(hidden)]
8321 pub unsafe fn ClearDepthf_load_with_dyn(
8322 &self,
8323 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8324 ) -> bool {
8325 load_dyn_name_atomic_ptr(get_proc_address, b"glClearDepthf\0", &self.glClearDepthf_p)
8326 }
8327 #[inline]
8328 #[doc(hidden)]
8329 pub fn ClearDepthf_is_loaded(&self) -> bool {
8330 !self.glClearDepthf_p.load(RELAX).is_null()
8331 }
8332 #[cfg_attr(feature = "inline", inline)]
8337 #[cfg_attr(feature = "inline_always", inline(always))]
8338 pub unsafe fn ClearNamedBufferData(
8339 &self,
8340 buffer: GLuint,
8341 internalformat: GLenum,
8342 format: GLenum,
8343 type_: GLenum,
8344 data: *const c_void,
8345 ) {
8346 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8347 {
8348 trace!(
8349 "calling gl.ClearNamedBufferData({:?}, {:#X}, {:#X}, {:#X}, {:p});",
8350 buffer,
8351 internalformat,
8352 format,
8353 type_,
8354 data
8355 );
8356 }
8357 let out = call_atomic_ptr_5arg(
8358 "glClearNamedBufferData",
8359 &self.glClearNamedBufferData_p,
8360 buffer,
8361 internalformat,
8362 format,
8363 type_,
8364 data,
8365 );
8366 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8367 {
8368 self.automatic_glGetError("glClearNamedBufferData");
8369 }
8370 out
8371 }
8372 #[doc(hidden)]
8373 pub unsafe fn ClearNamedBufferData_load_with_dyn(
8374 &self,
8375 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8376 ) -> bool {
8377 load_dyn_name_atomic_ptr(
8378 get_proc_address,
8379 b"glClearNamedBufferData\0",
8380 &self.glClearNamedBufferData_p,
8381 )
8382 }
8383 #[inline]
8384 #[doc(hidden)]
8385 pub fn ClearNamedBufferData_is_loaded(&self) -> bool {
8386 !self.glClearNamedBufferData_p.load(RELAX).is_null()
8387 }
8388 #[cfg_attr(feature = "inline", inline)]
8394 #[cfg_attr(feature = "inline_always", inline(always))]
8395 pub unsafe fn ClearNamedBufferSubData(
8396 &self,
8397 buffer: GLuint,
8398 internalformat: GLenum,
8399 offset: GLintptr,
8400 size: GLsizeiptr,
8401 format: GLenum,
8402 type_: GLenum,
8403 data: *const c_void,
8404 ) {
8405 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8406 {
8407 trace!("calling gl.ClearNamedBufferSubData({:?}, {:#X}, {:?}, {:?}, {:#X}, {:#X}, {:p});", buffer, internalformat, offset, size, format, type_, data);
8408 }
8409 let out = call_atomic_ptr_7arg(
8410 "glClearNamedBufferSubData",
8411 &self.glClearNamedBufferSubData_p,
8412 buffer,
8413 internalformat,
8414 offset,
8415 size,
8416 format,
8417 type_,
8418 data,
8419 );
8420 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8421 {
8422 self.automatic_glGetError("glClearNamedBufferSubData");
8423 }
8424 out
8425 }
8426 #[doc(hidden)]
8427 pub unsafe fn ClearNamedBufferSubData_load_with_dyn(
8428 &self,
8429 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8430 ) -> bool {
8431 load_dyn_name_atomic_ptr(
8432 get_proc_address,
8433 b"glClearNamedBufferSubData\0",
8434 &self.glClearNamedBufferSubData_p,
8435 )
8436 }
8437 #[inline]
8438 #[doc(hidden)]
8439 pub fn ClearNamedBufferSubData_is_loaded(&self) -> bool {
8440 !self.glClearNamedBufferSubData_p.load(RELAX).is_null()
8441 }
8442 #[cfg_attr(feature = "inline", inline)]
8445 #[cfg_attr(feature = "inline_always", inline(always))]
8446 pub unsafe fn ClearNamedFramebufferfi(
8447 &self,
8448 framebuffer: GLuint,
8449 buffer: GLenum,
8450 drawbuffer: GLint,
8451 depth: GLfloat,
8452 stencil: GLint,
8453 ) {
8454 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8455 {
8456 trace!(
8457 "calling gl.ClearNamedFramebufferfi({:?}, {:#X}, {:?}, {:?}, {:?});",
8458 framebuffer,
8459 buffer,
8460 drawbuffer,
8461 depth,
8462 stencil
8463 );
8464 }
8465 let out = call_atomic_ptr_5arg(
8466 "glClearNamedFramebufferfi",
8467 &self.glClearNamedFramebufferfi_p,
8468 framebuffer,
8469 buffer,
8470 drawbuffer,
8471 depth,
8472 stencil,
8473 );
8474 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8475 {
8476 self.automatic_glGetError("glClearNamedFramebufferfi");
8477 }
8478 out
8479 }
8480 #[doc(hidden)]
8481 pub unsafe fn ClearNamedFramebufferfi_load_with_dyn(
8482 &self,
8483 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8484 ) -> bool {
8485 load_dyn_name_atomic_ptr(
8486 get_proc_address,
8487 b"glClearNamedFramebufferfi\0",
8488 &self.glClearNamedFramebufferfi_p,
8489 )
8490 }
8491 #[inline]
8492 #[doc(hidden)]
8493 pub fn ClearNamedFramebufferfi_is_loaded(&self) -> bool {
8494 !self.glClearNamedFramebufferfi_p.load(RELAX).is_null()
8495 }
8496 #[cfg_attr(feature = "inline", inline)]
8499 #[cfg_attr(feature = "inline_always", inline(always))]
8500 pub unsafe fn ClearNamedFramebufferfv(
8501 &self,
8502 framebuffer: GLuint,
8503 buffer: GLenum,
8504 drawbuffer: GLint,
8505 value: *const GLfloat,
8506 ) {
8507 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8508 {
8509 trace!(
8510 "calling gl.ClearNamedFramebufferfv({:?}, {:#X}, {:?}, {:p});",
8511 framebuffer,
8512 buffer,
8513 drawbuffer,
8514 value
8515 );
8516 }
8517 let out = call_atomic_ptr_4arg(
8518 "glClearNamedFramebufferfv",
8519 &self.glClearNamedFramebufferfv_p,
8520 framebuffer,
8521 buffer,
8522 drawbuffer,
8523 value,
8524 );
8525 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8526 {
8527 self.automatic_glGetError("glClearNamedFramebufferfv");
8528 }
8529 out
8530 }
8531 #[doc(hidden)]
8532 pub unsafe fn ClearNamedFramebufferfv_load_with_dyn(
8533 &self,
8534 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8535 ) -> bool {
8536 load_dyn_name_atomic_ptr(
8537 get_proc_address,
8538 b"glClearNamedFramebufferfv\0",
8539 &self.glClearNamedFramebufferfv_p,
8540 )
8541 }
8542 #[inline]
8543 #[doc(hidden)]
8544 pub fn ClearNamedFramebufferfv_is_loaded(&self) -> bool {
8545 !self.glClearNamedFramebufferfv_p.load(RELAX).is_null()
8546 }
8547 #[cfg_attr(feature = "inline", inline)]
8550 #[cfg_attr(feature = "inline_always", inline(always))]
8551 pub unsafe fn ClearNamedFramebufferiv(
8552 &self,
8553 framebuffer: GLuint,
8554 buffer: GLenum,
8555 drawbuffer: GLint,
8556 value: *const GLint,
8557 ) {
8558 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8559 {
8560 trace!(
8561 "calling gl.ClearNamedFramebufferiv({:?}, {:#X}, {:?}, {:p});",
8562 framebuffer,
8563 buffer,
8564 drawbuffer,
8565 value
8566 );
8567 }
8568 let out = call_atomic_ptr_4arg(
8569 "glClearNamedFramebufferiv",
8570 &self.glClearNamedFramebufferiv_p,
8571 framebuffer,
8572 buffer,
8573 drawbuffer,
8574 value,
8575 );
8576 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8577 {
8578 self.automatic_glGetError("glClearNamedFramebufferiv");
8579 }
8580 out
8581 }
8582 #[doc(hidden)]
8583 pub unsafe fn ClearNamedFramebufferiv_load_with_dyn(
8584 &self,
8585 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8586 ) -> bool {
8587 load_dyn_name_atomic_ptr(
8588 get_proc_address,
8589 b"glClearNamedFramebufferiv\0",
8590 &self.glClearNamedFramebufferiv_p,
8591 )
8592 }
8593 #[inline]
8594 #[doc(hidden)]
8595 pub fn ClearNamedFramebufferiv_is_loaded(&self) -> bool {
8596 !self.glClearNamedFramebufferiv_p.load(RELAX).is_null()
8597 }
8598 #[cfg_attr(feature = "inline", inline)]
8601 #[cfg_attr(feature = "inline_always", inline(always))]
8602 pub unsafe fn ClearNamedFramebufferuiv(
8603 &self,
8604 framebuffer: GLuint,
8605 buffer: GLenum,
8606 drawbuffer: GLint,
8607 value: *const GLuint,
8608 ) {
8609 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8610 {
8611 trace!(
8612 "calling gl.ClearNamedFramebufferuiv({:?}, {:#X}, {:?}, {:p});",
8613 framebuffer,
8614 buffer,
8615 drawbuffer,
8616 value
8617 );
8618 }
8619 let out = call_atomic_ptr_4arg(
8620 "glClearNamedFramebufferuiv",
8621 &self.glClearNamedFramebufferuiv_p,
8622 framebuffer,
8623 buffer,
8624 drawbuffer,
8625 value,
8626 );
8627 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8628 {
8629 self.automatic_glGetError("glClearNamedFramebufferuiv");
8630 }
8631 out
8632 }
8633 #[doc(hidden)]
8634 pub unsafe fn ClearNamedFramebufferuiv_load_with_dyn(
8635 &self,
8636 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8637 ) -> bool {
8638 load_dyn_name_atomic_ptr(
8639 get_proc_address,
8640 b"glClearNamedFramebufferuiv\0",
8641 &self.glClearNamedFramebufferuiv_p,
8642 )
8643 }
8644 #[inline]
8645 #[doc(hidden)]
8646 pub fn ClearNamedFramebufferuiv_is_loaded(&self) -> bool {
8647 !self.glClearNamedFramebufferuiv_p.load(RELAX).is_null()
8648 }
8649 #[cfg_attr(feature = "inline", inline)]
8652 #[cfg_attr(feature = "inline_always", inline(always))]
8653 pub unsafe fn ClearStencil(&self, s: GLint) {
8654 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8655 {
8656 trace!("calling gl.ClearStencil({:?});", s);
8657 }
8658 let out = call_atomic_ptr_1arg("glClearStencil", &self.glClearStencil_p, s);
8659 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8660 {
8661 self.automatic_glGetError("glClearStencil");
8662 }
8663 out
8664 }
8665 #[doc(hidden)]
8666 pub unsafe fn ClearStencil_load_with_dyn(
8667 &self,
8668 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8669 ) -> bool {
8670 load_dyn_name_atomic_ptr(
8671 get_proc_address,
8672 b"glClearStencil\0",
8673 &self.glClearStencil_p,
8674 )
8675 }
8676 #[inline]
8677 #[doc(hidden)]
8678 pub fn ClearStencil_is_loaded(&self) -> bool {
8679 !self.glClearStencil_p.load(RELAX).is_null()
8680 }
8681 #[cfg_attr(feature = "inline", inline)]
8686 #[cfg_attr(feature = "inline_always", inline(always))]
8687 pub unsafe fn ClearTexImage(
8688 &self,
8689 texture: GLuint,
8690 level: GLint,
8691 format: GLenum,
8692 type_: GLenum,
8693 data: *const c_void,
8694 ) {
8695 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8696 {
8697 trace!(
8698 "calling gl.ClearTexImage({:?}, {:?}, {:#X}, {:#X}, {:p});",
8699 texture,
8700 level,
8701 format,
8702 type_,
8703 data
8704 );
8705 }
8706 let out = call_atomic_ptr_5arg(
8707 "glClearTexImage",
8708 &self.glClearTexImage_p,
8709 texture,
8710 level,
8711 format,
8712 type_,
8713 data,
8714 );
8715 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8716 {
8717 self.automatic_glGetError("glClearTexImage");
8718 }
8719 out
8720 }
8721 #[doc(hidden)]
8722 pub unsafe fn ClearTexImage_load_with_dyn(
8723 &self,
8724 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8725 ) -> bool {
8726 load_dyn_name_atomic_ptr(
8727 get_proc_address,
8728 b"glClearTexImage\0",
8729 &self.glClearTexImage_p,
8730 )
8731 }
8732 #[inline]
8733 #[doc(hidden)]
8734 pub fn ClearTexImage_is_loaded(&self) -> bool {
8735 !self.glClearTexImage_p.load(RELAX).is_null()
8736 }
8737 #[cfg_attr(feature = "inline", inline)]
8742 #[cfg_attr(feature = "inline_always", inline(always))]
8743 pub unsafe fn ClearTexSubImage(
8744 &self,
8745 texture: GLuint,
8746 level: GLint,
8747 xoffset: GLint,
8748 yoffset: GLint,
8749 zoffset: GLint,
8750 width: GLsizei,
8751 height: GLsizei,
8752 depth: GLsizei,
8753 format: GLenum,
8754 type_: GLenum,
8755 data: *const c_void,
8756 ) {
8757 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8758 {
8759 trace!("calling gl.ClearTexSubImage({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type_, data);
8760 }
8761 let out = call_atomic_ptr_11arg(
8762 "glClearTexSubImage",
8763 &self.glClearTexSubImage_p,
8764 texture,
8765 level,
8766 xoffset,
8767 yoffset,
8768 zoffset,
8769 width,
8770 height,
8771 depth,
8772 format,
8773 type_,
8774 data,
8775 );
8776 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8777 {
8778 self.automatic_glGetError("glClearTexSubImage");
8779 }
8780 out
8781 }
8782 #[doc(hidden)]
8783 pub unsafe fn ClearTexSubImage_load_with_dyn(
8784 &self,
8785 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8786 ) -> bool {
8787 load_dyn_name_atomic_ptr(
8788 get_proc_address,
8789 b"glClearTexSubImage\0",
8790 &self.glClearTexSubImage_p,
8791 )
8792 }
8793 #[inline]
8794 #[doc(hidden)]
8795 pub fn ClearTexSubImage_is_loaded(&self) -> bool {
8796 !self.glClearTexSubImage_p.load(RELAX).is_null()
8797 }
8798 #[cfg_attr(feature = "inline", inline)]
8803 #[cfg_attr(feature = "inline_always", inline(always))]
8804 pub unsafe fn ClientWaitSync(
8805 &self,
8806 sync: GLsync,
8807 flags: GLbitfield,
8808 timeout: GLuint64,
8809 ) -> GLenum {
8810 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8811 {
8812 trace!(
8813 "calling gl.ClientWaitSync({:p}, {:?}, {:?});",
8814 sync,
8815 flags,
8816 timeout
8817 );
8818 }
8819 let out = call_atomic_ptr_3arg(
8820 "glClientWaitSync",
8821 &self.glClientWaitSync_p,
8822 sync,
8823 flags,
8824 timeout,
8825 );
8826 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8827 {
8828 self.automatic_glGetError("glClientWaitSync");
8829 }
8830 out
8831 }
8832 #[doc(hidden)]
8833 pub unsafe fn ClientWaitSync_load_with_dyn(
8834 &self,
8835 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8836 ) -> bool {
8837 load_dyn_name_atomic_ptr(
8838 get_proc_address,
8839 b"glClientWaitSync\0",
8840 &self.glClientWaitSync_p,
8841 )
8842 }
8843 #[inline]
8844 #[doc(hidden)]
8845 pub fn ClientWaitSync_is_loaded(&self) -> bool {
8846 !self.glClientWaitSync_p.load(RELAX).is_null()
8847 }
8848 #[cfg_attr(feature = "inline", inline)]
8852 #[cfg_attr(feature = "inline_always", inline(always))]
8853 pub unsafe fn ClipControl(&self, origin: GLenum, depth: GLenum) {
8854 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8855 {
8856 trace!("calling gl.ClipControl({:#X}, {:#X});", origin, depth);
8857 }
8858 let out = call_atomic_ptr_2arg("glClipControl", &self.glClipControl_p, origin, depth);
8859 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8860 {
8861 self.automatic_glGetError("glClipControl");
8862 }
8863 out
8864 }
8865 #[doc(hidden)]
8866 pub unsafe fn ClipControl_load_with_dyn(
8867 &self,
8868 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8869 ) -> bool {
8870 load_dyn_name_atomic_ptr(get_proc_address, b"glClipControl\0", &self.glClipControl_p)
8871 }
8872 #[inline]
8873 #[doc(hidden)]
8874 pub fn ClipControl_is_loaded(&self) -> bool {
8875 !self.glClipControl_p.load(RELAX).is_null()
8876 }
8877 #[cfg_attr(feature = "inline", inline)]
8879 #[cfg_attr(feature = "inline_always", inline(always))]
8880 pub unsafe fn ColorMask(
8881 &self,
8882 red: GLboolean,
8883 green: GLboolean,
8884 blue: GLboolean,
8885 alpha: GLboolean,
8886 ) {
8887 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8888 {
8889 trace!(
8890 "calling gl.ColorMask({:?}, {:?}, {:?}, {:?});",
8891 red,
8892 green,
8893 blue,
8894 alpha
8895 );
8896 }
8897 let out =
8898 call_atomic_ptr_4arg("glColorMask", &self.glColorMask_p, red, green, blue, alpha);
8899 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8900 {
8901 self.automatic_glGetError("glColorMask");
8902 }
8903 out
8904 }
8905 #[doc(hidden)]
8906 pub unsafe fn ColorMask_load_with_dyn(
8907 &self,
8908 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8909 ) -> bool {
8910 load_dyn_name_atomic_ptr(get_proc_address, b"glColorMask\0", &self.glColorMask_p)
8911 }
8912 #[inline]
8913 #[doc(hidden)]
8914 pub fn ColorMask_is_loaded(&self) -> bool {
8915 !self.glColorMask_p.load(RELAX).is_null()
8916 }
8917 #[cfg_attr(feature = "inline", inline)]
8920 #[cfg_attr(feature = "inline_always", inline(always))]
8921 pub unsafe fn ColorMaskIndexedEXT(
8922 &self,
8923 index: GLuint,
8924 r: GLboolean,
8925 g: GLboolean,
8926 b: GLboolean,
8927 a: GLboolean,
8928 ) {
8929 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8930 {
8931 trace!(
8932 "calling gl.ColorMaskIndexedEXT({:?}, {:?}, {:?}, {:?}, {:?});",
8933 index,
8934 r,
8935 g,
8936 b,
8937 a
8938 );
8939 }
8940 let out = call_atomic_ptr_5arg(
8941 "glColorMaskIndexedEXT",
8942 &self.glColorMaskIndexedEXT_p,
8943 index,
8944 r,
8945 g,
8946 b,
8947 a,
8948 );
8949 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8950 {
8951 self.automatic_glGetError("glColorMaskIndexedEXT");
8952 }
8953 out
8954 }
8955 #[doc(hidden)]
8956 pub unsafe fn ColorMaskIndexedEXT_load_with_dyn(
8957 &self,
8958 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
8959 ) -> bool {
8960 load_dyn_name_atomic_ptr(
8961 get_proc_address,
8962 b"glColorMaskIndexedEXT\0",
8963 &self.glColorMaskIndexedEXT_p,
8964 )
8965 }
8966 #[inline]
8967 #[doc(hidden)]
8968 pub fn ColorMaskIndexedEXT_is_loaded(&self) -> bool {
8969 !self.glColorMaskIndexedEXT_p.load(RELAX).is_null()
8970 }
8971 #[cfg_attr(feature = "inline", inline)]
8973 #[cfg_attr(feature = "inline_always", inline(always))]
8974 pub unsafe fn ColorMaski(
8975 &self,
8976 index: GLuint,
8977 r: GLboolean,
8978 g: GLboolean,
8979 b: GLboolean,
8980 a: GLboolean,
8981 ) {
8982 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
8983 {
8984 trace!(
8985 "calling gl.ColorMaski({:?}, {:?}, {:?}, {:?}, {:?});",
8986 index,
8987 r,
8988 g,
8989 b,
8990 a
8991 );
8992 }
8993 let out = call_atomic_ptr_5arg("glColorMaski", &self.glColorMaski_p, index, r, g, b, a);
8994 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
8995 {
8996 self.automatic_glGetError("glColorMaski");
8997 }
8998 out
8999 }
9000 #[doc(hidden)]
9001 pub unsafe fn ColorMaski_load_with_dyn(
9002 &self,
9003 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9004 ) -> bool {
9005 load_dyn_name_atomic_ptr(get_proc_address, b"glColorMaski\0", &self.glColorMaski_p)
9006 }
9007 #[inline]
9008 #[doc(hidden)]
9009 pub fn ColorMaski_is_loaded(&self) -> bool {
9010 !self.glColorMaski_p.load(RELAX).is_null()
9011 }
9012 #[cfg_attr(feature = "inline", inline)]
9014 #[cfg_attr(feature = "inline_always", inline(always))]
9015 pub unsafe fn CompileShader(&self, shader: GLuint) {
9016 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9017 {
9018 trace!("calling gl.CompileShader({:?});", shader);
9019 }
9020 let out = call_atomic_ptr_1arg("glCompileShader", &self.glCompileShader_p, shader);
9021 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9022 {
9023 self.automatic_glGetError("glCompileShader");
9024 }
9025 out
9026 }
9027 #[doc(hidden)]
9028 pub unsafe fn CompileShader_load_with_dyn(
9029 &self,
9030 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9031 ) -> bool {
9032 load_dyn_name_atomic_ptr(
9033 get_proc_address,
9034 b"glCompileShader\0",
9035 &self.glCompileShader_p,
9036 )
9037 }
9038 #[inline]
9039 #[doc(hidden)]
9040 pub fn CompileShader_is_loaded(&self) -> bool {
9041 !self.glCompileShader_p.load(RELAX).is_null()
9042 }
9043 #[cfg_attr(feature = "inline", inline)]
9051 #[cfg_attr(feature = "inline_always", inline(always))]
9052 pub unsafe fn CompressedTexImage1D(
9053 &self,
9054 target: GLenum,
9055 level: GLint,
9056 internalformat: GLenum,
9057 width: GLsizei,
9058 border: GLint,
9059 imageSize: GLsizei,
9060 data: *const c_void,
9061 ) {
9062 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9063 {
9064 trace!(
9065 "calling gl.CompressedTexImage1D({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:p});",
9066 target,
9067 level,
9068 internalformat,
9069 width,
9070 border,
9071 imageSize,
9072 data
9073 );
9074 }
9075 let out = call_atomic_ptr_7arg(
9076 "glCompressedTexImage1D",
9077 &self.glCompressedTexImage1D_p,
9078 target,
9079 level,
9080 internalformat,
9081 width,
9082 border,
9083 imageSize,
9084 data,
9085 );
9086 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9087 {
9088 self.automatic_glGetError("glCompressedTexImage1D");
9089 }
9090 out
9091 }
9092 #[doc(hidden)]
9093 pub unsafe fn CompressedTexImage1D_load_with_dyn(
9094 &self,
9095 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9096 ) -> bool {
9097 load_dyn_name_atomic_ptr(
9098 get_proc_address,
9099 b"glCompressedTexImage1D\0",
9100 &self.glCompressedTexImage1D_p,
9101 )
9102 }
9103 #[inline]
9104 #[doc(hidden)]
9105 pub fn CompressedTexImage1D_is_loaded(&self) -> bool {
9106 !self.glCompressedTexImage1D_p.load(RELAX).is_null()
9107 }
9108 #[cfg_attr(feature = "inline", inline)]
9116 #[cfg_attr(feature = "inline_always", inline(always))]
9117 pub unsafe fn CompressedTexImage2D(
9118 &self,
9119 target: GLenum,
9120 level: GLint,
9121 internalformat: GLenum,
9122 width: GLsizei,
9123 height: GLsizei,
9124 border: GLint,
9125 imageSize: GLsizei,
9126 data: *const c_void,
9127 ) {
9128 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9129 {
9130 trace!("calling gl.CompressedTexImage2D({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?}, {:p});", target, level, internalformat, width, height, border, imageSize, data);
9131 }
9132 let out = call_atomic_ptr_8arg(
9133 "glCompressedTexImage2D",
9134 &self.glCompressedTexImage2D_p,
9135 target,
9136 level,
9137 internalformat,
9138 width,
9139 height,
9140 border,
9141 imageSize,
9142 data,
9143 );
9144 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9145 {
9146 self.automatic_glGetError("glCompressedTexImage2D");
9147 }
9148 out
9149 }
9150 #[doc(hidden)]
9151 pub unsafe fn CompressedTexImage2D_load_with_dyn(
9152 &self,
9153 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9154 ) -> bool {
9155 load_dyn_name_atomic_ptr(
9156 get_proc_address,
9157 b"glCompressedTexImage2D\0",
9158 &self.glCompressedTexImage2D_p,
9159 )
9160 }
9161 #[inline]
9162 #[doc(hidden)]
9163 pub fn CompressedTexImage2D_is_loaded(&self) -> bool {
9164 !self.glCompressedTexImage2D_p.load(RELAX).is_null()
9165 }
9166 #[cfg_attr(feature = "inline", inline)]
9174 #[cfg_attr(feature = "inline_always", inline(always))]
9175 pub unsafe fn CompressedTexImage3D(
9176 &self,
9177 target: GLenum,
9178 level: GLint,
9179 internalformat: GLenum,
9180 width: GLsizei,
9181 height: GLsizei,
9182 depth: GLsizei,
9183 border: GLint,
9184 imageSize: GLsizei,
9185 data: *const c_void,
9186 ) {
9187 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9188 {
9189 trace!("calling gl.CompressedTexImage3D({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:p});", target, level, internalformat, width, height, depth, border, imageSize, data);
9190 }
9191 let out = call_atomic_ptr_9arg(
9192 "glCompressedTexImage3D",
9193 &self.glCompressedTexImage3D_p,
9194 target,
9195 level,
9196 internalformat,
9197 width,
9198 height,
9199 depth,
9200 border,
9201 imageSize,
9202 data,
9203 );
9204 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9205 {
9206 self.automatic_glGetError("glCompressedTexImage3D");
9207 }
9208 out
9209 }
9210 #[doc(hidden)]
9211 pub unsafe fn CompressedTexImage3D_load_with_dyn(
9212 &self,
9213 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9214 ) -> bool {
9215 load_dyn_name_atomic_ptr(
9216 get_proc_address,
9217 b"glCompressedTexImage3D\0",
9218 &self.glCompressedTexImage3D_p,
9219 )
9220 }
9221 #[inline]
9222 #[doc(hidden)]
9223 pub fn CompressedTexImage3D_is_loaded(&self) -> bool {
9224 !self.glCompressedTexImage3D_p.load(RELAX).is_null()
9225 }
9226 #[cfg_attr(feature = "inline", inline)]
9234 #[cfg_attr(feature = "inline_always", inline(always))]
9235 pub unsafe fn CompressedTexSubImage1D(
9236 &self,
9237 target: GLenum,
9238 level: GLint,
9239 xoffset: GLint,
9240 width: GLsizei,
9241 format: GLenum,
9242 imageSize: GLsizei,
9243 data: *const c_void,
9244 ) {
9245 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9246 {
9247 trace!("calling gl.CompressedTexSubImage1D({:#X}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:p});", target, level, xoffset, width, format, imageSize, data);
9248 }
9249 let out = call_atomic_ptr_7arg(
9250 "glCompressedTexSubImage1D",
9251 &self.glCompressedTexSubImage1D_p,
9252 target,
9253 level,
9254 xoffset,
9255 width,
9256 format,
9257 imageSize,
9258 data,
9259 );
9260 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9261 {
9262 self.automatic_glGetError("glCompressedTexSubImage1D");
9263 }
9264 out
9265 }
9266 #[doc(hidden)]
9267 pub unsafe fn CompressedTexSubImage1D_load_with_dyn(
9268 &self,
9269 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9270 ) -> bool {
9271 load_dyn_name_atomic_ptr(
9272 get_proc_address,
9273 b"glCompressedTexSubImage1D\0",
9274 &self.glCompressedTexSubImage1D_p,
9275 )
9276 }
9277 #[inline]
9278 #[doc(hidden)]
9279 pub fn CompressedTexSubImage1D_is_loaded(&self) -> bool {
9280 !self.glCompressedTexSubImage1D_p.load(RELAX).is_null()
9281 }
9282 #[cfg_attr(feature = "inline", inline)]
9291 #[cfg_attr(feature = "inline_always", inline(always))]
9292 pub unsafe fn CompressedTexSubImage2D(
9293 &self,
9294 target: GLenum,
9295 level: GLint,
9296 xoffset: GLint,
9297 yoffset: GLint,
9298 width: GLsizei,
9299 height: GLsizei,
9300 format: GLenum,
9301 imageSize: GLsizei,
9302 data: *const c_void,
9303 ) {
9304 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9305 {
9306 trace!("calling gl.CompressedTexSubImage2D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:p});", target, level, xoffset, yoffset, width, height, format, imageSize, data);
9307 }
9308 let out = call_atomic_ptr_9arg(
9309 "glCompressedTexSubImage2D",
9310 &self.glCompressedTexSubImage2D_p,
9311 target,
9312 level,
9313 xoffset,
9314 yoffset,
9315 width,
9316 height,
9317 format,
9318 imageSize,
9319 data,
9320 );
9321 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9322 {
9323 self.automatic_glGetError("glCompressedTexSubImage2D");
9324 }
9325 out
9326 }
9327 #[doc(hidden)]
9328 pub unsafe fn CompressedTexSubImage2D_load_with_dyn(
9329 &self,
9330 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9331 ) -> bool {
9332 load_dyn_name_atomic_ptr(
9333 get_proc_address,
9334 b"glCompressedTexSubImage2D\0",
9335 &self.glCompressedTexSubImage2D_p,
9336 )
9337 }
9338 #[inline]
9339 #[doc(hidden)]
9340 pub fn CompressedTexSubImage2D_is_loaded(&self) -> bool {
9341 !self.glCompressedTexSubImage2D_p.load(RELAX).is_null()
9342 }
9343 #[cfg_attr(feature = "inline", inline)]
9353 #[cfg_attr(feature = "inline_always", inline(always))]
9354 pub unsafe fn CompressedTexSubImage3D(
9355 &self,
9356 target: GLenum,
9357 level: GLint,
9358 xoffset: GLint,
9359 yoffset: GLint,
9360 zoffset: GLint,
9361 width: GLsizei,
9362 height: GLsizei,
9363 depth: GLsizei,
9364 format: GLenum,
9365 imageSize: GLsizei,
9366 data: *const c_void,
9367 ) {
9368 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9369 {
9370 trace!("calling gl.CompressedTexSubImage3D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:p});", target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
9371 }
9372 let out = call_atomic_ptr_11arg(
9373 "glCompressedTexSubImage3D",
9374 &self.glCompressedTexSubImage3D_p,
9375 target,
9376 level,
9377 xoffset,
9378 yoffset,
9379 zoffset,
9380 width,
9381 height,
9382 depth,
9383 format,
9384 imageSize,
9385 data,
9386 );
9387 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9388 {
9389 self.automatic_glGetError("glCompressedTexSubImage3D");
9390 }
9391 out
9392 }
9393 #[doc(hidden)]
9394 pub unsafe fn CompressedTexSubImage3D_load_with_dyn(
9395 &self,
9396 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9397 ) -> bool {
9398 load_dyn_name_atomic_ptr(
9399 get_proc_address,
9400 b"glCompressedTexSubImage3D\0",
9401 &self.glCompressedTexSubImage3D_p,
9402 )
9403 }
9404 #[inline]
9405 #[doc(hidden)]
9406 pub fn CompressedTexSubImage3D_is_loaded(&self) -> bool {
9407 !self.glCompressedTexSubImage3D_p.load(RELAX).is_null()
9408 }
9409 #[cfg_attr(feature = "inline", inline)]
9412 #[cfg_attr(feature = "inline_always", inline(always))]
9413 pub unsafe fn CompressedTextureSubImage1D(
9414 &self,
9415 texture: GLuint,
9416 level: GLint,
9417 xoffset: GLint,
9418 width: GLsizei,
9419 format: GLenum,
9420 imageSize: GLsizei,
9421 data: *const c_void,
9422 ) {
9423 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9424 {
9425 trace!("calling gl.CompressedTextureSubImage1D({:?}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:p});", texture, level, xoffset, width, format, imageSize, data);
9426 }
9427 let out = call_atomic_ptr_7arg(
9428 "glCompressedTextureSubImage1D",
9429 &self.glCompressedTextureSubImage1D_p,
9430 texture,
9431 level,
9432 xoffset,
9433 width,
9434 format,
9435 imageSize,
9436 data,
9437 );
9438 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9439 {
9440 self.automatic_glGetError("glCompressedTextureSubImage1D");
9441 }
9442 out
9443 }
9444 #[doc(hidden)]
9445 pub unsafe fn CompressedTextureSubImage1D_load_with_dyn(
9446 &self,
9447 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9448 ) -> bool {
9449 load_dyn_name_atomic_ptr(
9450 get_proc_address,
9451 b"glCompressedTextureSubImage1D\0",
9452 &self.glCompressedTextureSubImage1D_p,
9453 )
9454 }
9455 #[inline]
9456 #[doc(hidden)]
9457 pub fn CompressedTextureSubImage1D_is_loaded(&self) -> bool {
9458 !self.glCompressedTextureSubImage1D_p.load(RELAX).is_null()
9459 }
9460 #[cfg_attr(feature = "inline", inline)]
9463 #[cfg_attr(feature = "inline_always", inline(always))]
9464 pub unsafe fn CompressedTextureSubImage2D(
9465 &self,
9466 texture: GLuint,
9467 level: GLint,
9468 xoffset: GLint,
9469 yoffset: GLint,
9470 width: GLsizei,
9471 height: GLsizei,
9472 format: GLenum,
9473 imageSize: GLsizei,
9474 data: *const c_void,
9475 ) {
9476 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9477 {
9478 trace!("calling gl.CompressedTextureSubImage2D({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:p});", texture, level, xoffset, yoffset, width, height, format, imageSize, data);
9479 }
9480 let out = call_atomic_ptr_9arg(
9481 "glCompressedTextureSubImage2D",
9482 &self.glCompressedTextureSubImage2D_p,
9483 texture,
9484 level,
9485 xoffset,
9486 yoffset,
9487 width,
9488 height,
9489 format,
9490 imageSize,
9491 data,
9492 );
9493 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9494 {
9495 self.automatic_glGetError("glCompressedTextureSubImage2D");
9496 }
9497 out
9498 }
9499 #[doc(hidden)]
9500 pub unsafe fn CompressedTextureSubImage2D_load_with_dyn(
9501 &self,
9502 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9503 ) -> bool {
9504 load_dyn_name_atomic_ptr(
9505 get_proc_address,
9506 b"glCompressedTextureSubImage2D\0",
9507 &self.glCompressedTextureSubImage2D_p,
9508 )
9509 }
9510 #[inline]
9511 #[doc(hidden)]
9512 pub fn CompressedTextureSubImage2D_is_loaded(&self) -> bool {
9513 !self.glCompressedTextureSubImage2D_p.load(RELAX).is_null()
9514 }
9515 #[cfg_attr(feature = "inline", inline)]
9518 #[cfg_attr(feature = "inline_always", inline(always))]
9519 pub unsafe fn CompressedTextureSubImage3D(
9520 &self,
9521 texture: GLuint,
9522 level: GLint,
9523 xoffset: GLint,
9524 yoffset: GLint,
9525 zoffset: GLint,
9526 width: GLsizei,
9527 height: GLsizei,
9528 depth: GLsizei,
9529 format: GLenum,
9530 imageSize: GLsizei,
9531 data: *const c_void,
9532 ) {
9533 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9534 {
9535 trace!("calling gl.CompressedTextureSubImage3D({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:p});", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
9536 }
9537 let out = call_atomic_ptr_11arg(
9538 "glCompressedTextureSubImage3D",
9539 &self.glCompressedTextureSubImage3D_p,
9540 texture,
9541 level,
9542 xoffset,
9543 yoffset,
9544 zoffset,
9545 width,
9546 height,
9547 depth,
9548 format,
9549 imageSize,
9550 data,
9551 );
9552 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9553 {
9554 self.automatic_glGetError("glCompressedTextureSubImage3D");
9555 }
9556 out
9557 }
9558 #[doc(hidden)]
9559 pub unsafe fn CompressedTextureSubImage3D_load_with_dyn(
9560 &self,
9561 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9562 ) -> bool {
9563 load_dyn_name_atomic_ptr(
9564 get_proc_address,
9565 b"glCompressedTextureSubImage3D\0",
9566 &self.glCompressedTextureSubImage3D_p,
9567 )
9568 }
9569 #[inline]
9570 #[doc(hidden)]
9571 pub fn CompressedTextureSubImage3D_is_loaded(&self) -> bool {
9572 !self.glCompressedTextureSubImage3D_p.load(RELAX).is_null()
9573 }
9574 #[cfg_attr(feature = "inline", inline)]
9581 #[cfg_attr(feature = "inline_always", inline(always))]
9582 pub unsafe fn CopyBufferSubData(
9583 &self,
9584 readTarget: GLenum,
9585 writeTarget: GLenum,
9586 readOffset: GLintptr,
9587 writeOffset: GLintptr,
9588 size: GLsizeiptr,
9589 ) {
9590 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9591 {
9592 trace!(
9593 "calling gl.CopyBufferSubData({:#X}, {:#X}, {:?}, {:?}, {:?});",
9594 readTarget,
9595 writeTarget,
9596 readOffset,
9597 writeOffset,
9598 size
9599 );
9600 }
9601 let out = call_atomic_ptr_5arg(
9602 "glCopyBufferSubData",
9603 &self.glCopyBufferSubData_p,
9604 readTarget,
9605 writeTarget,
9606 readOffset,
9607 writeOffset,
9608 size,
9609 );
9610 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9611 {
9612 self.automatic_glGetError("glCopyBufferSubData");
9613 }
9614 out
9615 }
9616 #[doc(hidden)]
9617 pub unsafe fn CopyBufferSubData_load_with_dyn(
9618 &self,
9619 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9620 ) -> bool {
9621 load_dyn_name_atomic_ptr(
9622 get_proc_address,
9623 b"glCopyBufferSubData\0",
9624 &self.glCopyBufferSubData_p,
9625 )
9626 }
9627 #[inline]
9628 #[doc(hidden)]
9629 pub fn CopyBufferSubData_is_loaded(&self) -> bool {
9630 !self.glCopyBufferSubData_p.load(RELAX).is_null()
9631 }
9632 #[cfg_attr(feature = "inline", inline)]
9640 #[cfg_attr(feature = "inline_always", inline(always))]
9641 pub unsafe fn CopyBufferSubDataNV(
9642 &self,
9643 readTarget: GLenum,
9644 writeTarget: GLenum,
9645 readOffset: GLintptr,
9646 writeOffset: GLintptr,
9647 size: GLsizeiptr,
9648 ) {
9649 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9650 {
9651 trace!(
9652 "calling gl.CopyBufferSubDataNV({:#X}, {:#X}, {:?}, {:?}, {:?});",
9653 readTarget,
9654 writeTarget,
9655 readOffset,
9656 writeOffset,
9657 size
9658 );
9659 }
9660 let out = call_atomic_ptr_5arg(
9661 "glCopyBufferSubDataNV",
9662 &self.glCopyBufferSubDataNV_p,
9663 readTarget,
9664 writeTarget,
9665 readOffset,
9666 writeOffset,
9667 size,
9668 );
9669 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9670 {
9671 self.automatic_glGetError("glCopyBufferSubDataNV");
9672 }
9673 out
9674 }
9675 #[doc(hidden)]
9676 pub unsafe fn CopyBufferSubDataNV_load_with_dyn(
9677 &self,
9678 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9679 ) -> bool {
9680 load_dyn_name_atomic_ptr(
9681 get_proc_address,
9682 b"glCopyBufferSubDataNV\0",
9683 &self.glCopyBufferSubDataNV_p,
9684 )
9685 }
9686 #[inline]
9687 #[doc(hidden)]
9688 pub fn CopyBufferSubDataNV_is_loaded(&self) -> bool {
9689 !self.glCopyBufferSubDataNV_p.load(RELAX).is_null()
9690 }
9691 #[cfg_attr(feature = "inline", inline)]
9695 #[cfg_attr(feature = "inline_always", inline(always))]
9696 pub unsafe fn CopyImageSubData(
9697 &self,
9698 srcName: GLuint,
9699 srcTarget: GLenum,
9700 srcLevel: GLint,
9701 srcX: GLint,
9702 srcY: GLint,
9703 srcZ: GLint,
9704 dstName: GLuint,
9705 dstTarget: GLenum,
9706 dstLevel: GLint,
9707 dstX: GLint,
9708 dstY: GLint,
9709 dstZ: GLint,
9710 srcWidth: GLsizei,
9711 srcHeight: GLsizei,
9712 srcDepth: GLsizei,
9713 ) {
9714 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9715 {
9716 trace!("calling gl.CopyImageSubData({:?}, {:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
9717 }
9718 let out = call_atomic_ptr_15arg(
9719 "glCopyImageSubData",
9720 &self.glCopyImageSubData_p,
9721 srcName,
9722 srcTarget,
9723 srcLevel,
9724 srcX,
9725 srcY,
9726 srcZ,
9727 dstName,
9728 dstTarget,
9729 dstLevel,
9730 dstX,
9731 dstY,
9732 dstZ,
9733 srcWidth,
9734 srcHeight,
9735 srcDepth,
9736 );
9737 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9738 {
9739 self.automatic_glGetError("glCopyImageSubData");
9740 }
9741 out
9742 }
9743 #[doc(hidden)]
9744 pub unsafe fn CopyImageSubData_load_with_dyn(
9745 &self,
9746 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9747 ) -> bool {
9748 load_dyn_name_atomic_ptr(
9749 get_proc_address,
9750 b"glCopyImageSubData\0",
9751 &self.glCopyImageSubData_p,
9752 )
9753 }
9754 #[inline]
9755 #[doc(hidden)]
9756 pub fn CopyImageSubData_is_loaded(&self) -> bool {
9757 !self.glCopyImageSubData_p.load(RELAX).is_null()
9758 }
9759 #[cfg_attr(feature = "inline", inline)]
9762 #[cfg_attr(feature = "inline_always", inline(always))]
9763 pub unsafe fn CopyNamedBufferSubData(
9764 &self,
9765 readBuffer: GLuint,
9766 writeBuffer: GLuint,
9767 readOffset: GLintptr,
9768 writeOffset: GLintptr,
9769 size: GLsizeiptr,
9770 ) {
9771 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9772 {
9773 trace!(
9774 "calling gl.CopyNamedBufferSubData({:?}, {:?}, {:?}, {:?}, {:?});",
9775 readBuffer,
9776 writeBuffer,
9777 readOffset,
9778 writeOffset,
9779 size
9780 );
9781 }
9782 let out = call_atomic_ptr_5arg(
9783 "glCopyNamedBufferSubData",
9784 &self.glCopyNamedBufferSubData_p,
9785 readBuffer,
9786 writeBuffer,
9787 readOffset,
9788 writeOffset,
9789 size,
9790 );
9791 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9792 {
9793 self.automatic_glGetError("glCopyNamedBufferSubData");
9794 }
9795 out
9796 }
9797 #[doc(hidden)]
9798 pub unsafe fn CopyNamedBufferSubData_load_with_dyn(
9799 &self,
9800 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9801 ) -> bool {
9802 load_dyn_name_atomic_ptr(
9803 get_proc_address,
9804 b"glCopyNamedBufferSubData\0",
9805 &self.glCopyNamedBufferSubData_p,
9806 )
9807 }
9808 #[inline]
9809 #[doc(hidden)]
9810 pub fn CopyNamedBufferSubData_is_loaded(&self) -> bool {
9811 !self.glCopyNamedBufferSubData_p.load(RELAX).is_null()
9812 }
9813 #[cfg_attr(feature = "inline", inline)]
9821 #[cfg_attr(feature = "inline_always", inline(always))]
9822 pub unsafe fn CopyTexImage1D(
9823 &self,
9824 target: GLenum,
9825 level: GLint,
9826 internalformat: GLenum,
9827 x: GLint,
9828 y: GLint,
9829 width: GLsizei,
9830 border: GLint,
9831 ) {
9832 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9833 {
9834 trace!(
9835 "calling gl.CopyTexImage1D({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?});",
9836 target,
9837 level,
9838 internalformat,
9839 x,
9840 y,
9841 width,
9842 border
9843 );
9844 }
9845 let out = call_atomic_ptr_7arg(
9846 "glCopyTexImage1D",
9847 &self.glCopyTexImage1D_p,
9848 target,
9849 level,
9850 internalformat,
9851 x,
9852 y,
9853 width,
9854 border,
9855 );
9856 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9857 {
9858 self.automatic_glGetError("glCopyTexImage1D");
9859 }
9860 out
9861 }
9862 #[doc(hidden)]
9863 pub unsafe fn CopyTexImage1D_load_with_dyn(
9864 &self,
9865 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9866 ) -> bool {
9867 load_dyn_name_atomic_ptr(
9868 get_proc_address,
9869 b"glCopyTexImage1D\0",
9870 &self.glCopyTexImage1D_p,
9871 )
9872 }
9873 #[inline]
9874 #[doc(hidden)]
9875 pub fn CopyTexImage1D_is_loaded(&self) -> bool {
9876 !self.glCopyTexImage1D_p.load(RELAX).is_null()
9877 }
9878 #[cfg_attr(feature = "inline", inline)]
9886 #[cfg_attr(feature = "inline_always", inline(always))]
9887 pub unsafe fn CopyTexImage2D(
9888 &self,
9889 target: GLenum,
9890 level: GLint,
9891 internalformat: GLenum,
9892 x: GLint,
9893 y: GLint,
9894 width: GLsizei,
9895 height: GLsizei,
9896 border: GLint,
9897 ) {
9898 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9899 {
9900 trace!(
9901 "calling gl.CopyTexImage2D({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?}, {:?});",
9902 target,
9903 level,
9904 internalformat,
9905 x,
9906 y,
9907 width,
9908 height,
9909 border
9910 );
9911 }
9912 let out = call_atomic_ptr_8arg(
9913 "glCopyTexImage2D",
9914 &self.glCopyTexImage2D_p,
9915 target,
9916 level,
9917 internalformat,
9918 x,
9919 y,
9920 width,
9921 height,
9922 border,
9923 );
9924 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9925 {
9926 self.automatic_glGetError("glCopyTexImage2D");
9927 }
9928 out
9929 }
9930 #[doc(hidden)]
9931 pub unsafe fn CopyTexImage2D_load_with_dyn(
9932 &self,
9933 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9934 ) -> bool {
9935 load_dyn_name_atomic_ptr(
9936 get_proc_address,
9937 b"glCopyTexImage2D\0",
9938 &self.glCopyTexImage2D_p,
9939 )
9940 }
9941 #[inline]
9942 #[doc(hidden)]
9943 pub fn CopyTexImage2D_is_loaded(&self) -> bool {
9944 !self.glCopyTexImage2D_p.load(RELAX).is_null()
9945 }
9946 #[cfg_attr(feature = "inline", inline)]
9953 #[cfg_attr(feature = "inline_always", inline(always))]
9954 pub unsafe fn CopyTexSubImage1D(
9955 &self,
9956 target: GLenum,
9957 level: GLint,
9958 xoffset: GLint,
9959 x: GLint,
9960 y: GLint,
9961 width: GLsizei,
9962 ) {
9963 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
9964 {
9965 trace!(
9966 "calling gl.CopyTexSubImage1D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?});",
9967 target,
9968 level,
9969 xoffset,
9970 x,
9971 y,
9972 width
9973 );
9974 }
9975 let out = call_atomic_ptr_6arg(
9976 "glCopyTexSubImage1D",
9977 &self.glCopyTexSubImage1D_p,
9978 target,
9979 level,
9980 xoffset,
9981 x,
9982 y,
9983 width,
9984 );
9985 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
9986 {
9987 self.automatic_glGetError("glCopyTexSubImage1D");
9988 }
9989 out
9990 }
9991 #[doc(hidden)]
9992 pub unsafe fn CopyTexSubImage1D_load_with_dyn(
9993 &self,
9994 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
9995 ) -> bool {
9996 load_dyn_name_atomic_ptr(
9997 get_proc_address,
9998 b"glCopyTexSubImage1D\0",
9999 &self.glCopyTexSubImage1D_p,
10000 )
10001 }
10002 #[inline]
10003 #[doc(hidden)]
10004 pub fn CopyTexSubImage1D_is_loaded(&self) -> bool {
10005 !self.glCopyTexSubImage1D_p.load(RELAX).is_null()
10006 }
10007 #[cfg_attr(feature = "inline", inline)]
10015 #[cfg_attr(feature = "inline_always", inline(always))]
10016 pub unsafe fn CopyTexSubImage2D(
10017 &self,
10018 target: GLenum,
10019 level: GLint,
10020 xoffset: GLint,
10021 yoffset: GLint,
10022 x: GLint,
10023 y: GLint,
10024 width: GLsizei,
10025 height: GLsizei,
10026 ) {
10027 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10028 {
10029 trace!("calling gl.CopyTexSubImage2D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", target, level, xoffset, yoffset, x, y, width, height);
10030 }
10031 let out = call_atomic_ptr_8arg(
10032 "glCopyTexSubImage2D",
10033 &self.glCopyTexSubImage2D_p,
10034 target,
10035 level,
10036 xoffset,
10037 yoffset,
10038 x,
10039 y,
10040 width,
10041 height,
10042 );
10043 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10044 {
10045 self.automatic_glGetError("glCopyTexSubImage2D");
10046 }
10047 out
10048 }
10049 #[doc(hidden)]
10050 pub unsafe fn CopyTexSubImage2D_load_with_dyn(
10051 &self,
10052 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10053 ) -> bool {
10054 load_dyn_name_atomic_ptr(
10055 get_proc_address,
10056 b"glCopyTexSubImage2D\0",
10057 &self.glCopyTexSubImage2D_p,
10058 )
10059 }
10060 #[inline]
10061 #[doc(hidden)]
10062 pub fn CopyTexSubImage2D_is_loaded(&self) -> bool {
10063 !self.glCopyTexSubImage2D_p.load(RELAX).is_null()
10064 }
10065 #[cfg_attr(feature = "inline", inline)]
10074 #[cfg_attr(feature = "inline_always", inline(always))]
10075 pub unsafe fn CopyTexSubImage3D(
10076 &self,
10077 target: GLenum,
10078 level: GLint,
10079 xoffset: GLint,
10080 yoffset: GLint,
10081 zoffset: GLint,
10082 x: GLint,
10083 y: GLint,
10084 width: GLsizei,
10085 height: GLsizei,
10086 ) {
10087 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10088 {
10089 trace!("calling gl.CopyTexSubImage3D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", target, level, xoffset, yoffset, zoffset, x, y, width, height);
10090 }
10091 let out = call_atomic_ptr_9arg(
10092 "glCopyTexSubImage3D",
10093 &self.glCopyTexSubImage3D_p,
10094 target,
10095 level,
10096 xoffset,
10097 yoffset,
10098 zoffset,
10099 x,
10100 y,
10101 width,
10102 height,
10103 );
10104 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10105 {
10106 self.automatic_glGetError("glCopyTexSubImage3D");
10107 }
10108 out
10109 }
10110 #[doc(hidden)]
10111 pub unsafe fn CopyTexSubImage3D_load_with_dyn(
10112 &self,
10113 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10114 ) -> bool {
10115 load_dyn_name_atomic_ptr(
10116 get_proc_address,
10117 b"glCopyTexSubImage3D\0",
10118 &self.glCopyTexSubImage3D_p,
10119 )
10120 }
10121 #[inline]
10122 #[doc(hidden)]
10123 pub fn CopyTexSubImage3D_is_loaded(&self) -> bool {
10124 !self.glCopyTexSubImage3D_p.load(RELAX).is_null()
10125 }
10126 #[cfg_attr(feature = "inline", inline)]
10128 #[cfg_attr(feature = "inline_always", inline(always))]
10129 pub unsafe fn CopyTextureSubImage1D(
10130 &self,
10131 texture: GLuint,
10132 level: GLint,
10133 xoffset: GLint,
10134 x: GLint,
10135 y: GLint,
10136 width: GLsizei,
10137 ) {
10138 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10139 {
10140 trace!(
10141 "calling gl.CopyTextureSubImage1D({:?}, {:?}, {:?}, {:?}, {:?}, {:?});",
10142 texture,
10143 level,
10144 xoffset,
10145 x,
10146 y,
10147 width
10148 );
10149 }
10150 let out = call_atomic_ptr_6arg(
10151 "glCopyTextureSubImage1D",
10152 &self.glCopyTextureSubImage1D_p,
10153 texture,
10154 level,
10155 xoffset,
10156 x,
10157 y,
10158 width,
10159 );
10160 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10161 {
10162 self.automatic_glGetError("glCopyTextureSubImage1D");
10163 }
10164 out
10165 }
10166 #[doc(hidden)]
10167 pub unsafe fn CopyTextureSubImage1D_load_with_dyn(
10168 &self,
10169 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10170 ) -> bool {
10171 load_dyn_name_atomic_ptr(
10172 get_proc_address,
10173 b"glCopyTextureSubImage1D\0",
10174 &self.glCopyTextureSubImage1D_p,
10175 )
10176 }
10177 #[inline]
10178 #[doc(hidden)]
10179 pub fn CopyTextureSubImage1D_is_loaded(&self) -> bool {
10180 !self.glCopyTextureSubImage1D_p.load(RELAX).is_null()
10181 }
10182 #[cfg_attr(feature = "inline", inline)]
10184 #[cfg_attr(feature = "inline_always", inline(always))]
10185 pub unsafe fn CopyTextureSubImage2D(
10186 &self,
10187 texture: GLuint,
10188 level: GLint,
10189 xoffset: GLint,
10190 yoffset: GLint,
10191 x: GLint,
10192 y: GLint,
10193 width: GLsizei,
10194 height: GLsizei,
10195 ) {
10196 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10197 {
10198 trace!("calling gl.CopyTextureSubImage2D({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", texture, level, xoffset, yoffset, x, y, width, height);
10199 }
10200 let out = call_atomic_ptr_8arg(
10201 "glCopyTextureSubImage2D",
10202 &self.glCopyTextureSubImage2D_p,
10203 texture,
10204 level,
10205 xoffset,
10206 yoffset,
10207 x,
10208 y,
10209 width,
10210 height,
10211 );
10212 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10213 {
10214 self.automatic_glGetError("glCopyTextureSubImage2D");
10215 }
10216 out
10217 }
10218 #[doc(hidden)]
10219 pub unsafe fn CopyTextureSubImage2D_load_with_dyn(
10220 &self,
10221 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10222 ) -> bool {
10223 load_dyn_name_atomic_ptr(
10224 get_proc_address,
10225 b"glCopyTextureSubImage2D\0",
10226 &self.glCopyTextureSubImage2D_p,
10227 )
10228 }
10229 #[inline]
10230 #[doc(hidden)]
10231 pub fn CopyTextureSubImage2D_is_loaded(&self) -> bool {
10232 !self.glCopyTextureSubImage2D_p.load(RELAX).is_null()
10233 }
10234 #[cfg_attr(feature = "inline", inline)]
10236 #[cfg_attr(feature = "inline_always", inline(always))]
10237 pub unsafe fn CopyTextureSubImage3D(
10238 &self,
10239 texture: GLuint,
10240 level: GLint,
10241 xoffset: GLint,
10242 yoffset: GLint,
10243 zoffset: GLint,
10244 x: GLint,
10245 y: GLint,
10246 width: GLsizei,
10247 height: GLsizei,
10248 ) {
10249 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10250 {
10251 trace!("calling gl.CopyTextureSubImage3D({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", texture, level, xoffset, yoffset, zoffset, x, y, width, height);
10252 }
10253 let out = call_atomic_ptr_9arg(
10254 "glCopyTextureSubImage3D",
10255 &self.glCopyTextureSubImage3D_p,
10256 texture,
10257 level,
10258 xoffset,
10259 yoffset,
10260 zoffset,
10261 x,
10262 y,
10263 width,
10264 height,
10265 );
10266 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10267 {
10268 self.automatic_glGetError("glCopyTextureSubImage3D");
10269 }
10270 out
10271 }
10272 #[doc(hidden)]
10273 pub unsafe fn CopyTextureSubImage3D_load_with_dyn(
10274 &self,
10275 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10276 ) -> bool {
10277 load_dyn_name_atomic_ptr(
10278 get_proc_address,
10279 b"glCopyTextureSubImage3D\0",
10280 &self.glCopyTextureSubImage3D_p,
10281 )
10282 }
10283 #[inline]
10284 #[doc(hidden)]
10285 pub fn CopyTextureSubImage3D_is_loaded(&self) -> bool {
10286 !self.glCopyTextureSubImage3D_p.load(RELAX).is_null()
10287 }
10288 #[cfg_attr(feature = "inline", inline)]
10291 #[cfg_attr(feature = "inline_always", inline(always))]
10292 pub unsafe fn CreateBuffers(&self, n: GLsizei, buffers: *mut GLuint) {
10293 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10294 {
10295 trace!("calling gl.CreateBuffers({:?}, {:p});", n, buffers);
10296 }
10297 let out = call_atomic_ptr_2arg("glCreateBuffers", &self.glCreateBuffers_p, n, buffers);
10298 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10299 {
10300 self.automatic_glGetError("glCreateBuffers");
10301 }
10302 out
10303 }
10304 #[doc(hidden)]
10305 pub unsafe fn CreateBuffers_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"glCreateBuffers\0",
10312 &self.glCreateBuffers_p,
10313 )
10314 }
10315 #[inline]
10316 #[doc(hidden)]
10317 pub fn CreateBuffers_is_loaded(&self) -> bool {
10318 !self.glCreateBuffers_p.load(RELAX).is_null()
10319 }
10320 #[cfg_attr(feature = "inline", inline)]
10323 #[cfg_attr(feature = "inline_always", inline(always))]
10324 pub unsafe fn CreateFramebuffers(&self, n: GLsizei, framebuffers: *mut GLuint) {
10325 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10326 {
10327 trace!(
10328 "calling gl.CreateFramebuffers({:?}, {:p});",
10329 n,
10330 framebuffers
10331 );
10332 }
10333 let out = call_atomic_ptr_2arg(
10334 "glCreateFramebuffers",
10335 &self.glCreateFramebuffers_p,
10336 n,
10337 framebuffers,
10338 );
10339 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10340 {
10341 self.automatic_glGetError("glCreateFramebuffers");
10342 }
10343 out
10344 }
10345 #[doc(hidden)]
10346 pub unsafe fn CreateFramebuffers_load_with_dyn(
10347 &self,
10348 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10349 ) -> bool {
10350 load_dyn_name_atomic_ptr(
10351 get_proc_address,
10352 b"glCreateFramebuffers\0",
10353 &self.glCreateFramebuffers_p,
10354 )
10355 }
10356 #[inline]
10357 #[doc(hidden)]
10358 pub fn CreateFramebuffers_is_loaded(&self) -> bool {
10359 !self.glCreateFramebuffers_p.load(RELAX).is_null()
10360 }
10361 #[cfg_attr(feature = "inline", inline)]
10363 #[cfg_attr(feature = "inline_always", inline(always))]
10364 pub unsafe fn CreateProgram(&self) -> GLuint {
10365 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10366 {
10367 trace!("calling gl.CreateProgram();",);
10368 }
10369 let out = call_atomic_ptr_0arg("glCreateProgram", &self.glCreateProgram_p);
10370 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10371 {
10372 self.automatic_glGetError("glCreateProgram");
10373 }
10374 out
10375 }
10376 #[doc(hidden)]
10377 pub unsafe fn CreateProgram_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"glCreateProgram\0",
10384 &self.glCreateProgram_p,
10385 )
10386 }
10387 #[inline]
10388 #[doc(hidden)]
10389 pub fn CreateProgram_is_loaded(&self) -> bool {
10390 !self.glCreateProgram_p.load(RELAX).is_null()
10391 }
10392 #[cfg_attr(feature = "inline", inline)]
10395 #[cfg_attr(feature = "inline_always", inline(always))]
10396 pub unsafe fn CreateProgramPipelines(&self, n: GLsizei, pipelines: *mut GLuint) {
10397 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10398 {
10399 trace!(
10400 "calling gl.CreateProgramPipelines({:?}, {:p});",
10401 n,
10402 pipelines
10403 );
10404 }
10405 let out = call_atomic_ptr_2arg(
10406 "glCreateProgramPipelines",
10407 &self.glCreateProgramPipelines_p,
10408 n,
10409 pipelines,
10410 );
10411 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10412 {
10413 self.automatic_glGetError("glCreateProgramPipelines");
10414 }
10415 out
10416 }
10417 #[doc(hidden)]
10418 pub unsafe fn CreateProgramPipelines_load_with_dyn(
10419 &self,
10420 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10421 ) -> bool {
10422 load_dyn_name_atomic_ptr(
10423 get_proc_address,
10424 b"glCreateProgramPipelines\0",
10425 &self.glCreateProgramPipelines_p,
10426 )
10427 }
10428 #[inline]
10429 #[doc(hidden)]
10430 pub fn CreateProgramPipelines_is_loaded(&self) -> bool {
10431 !self.glCreateProgramPipelines_p.load(RELAX).is_null()
10432 }
10433 #[cfg_attr(feature = "inline", inline)]
10437 #[cfg_attr(feature = "inline_always", inline(always))]
10438 pub unsafe fn CreateQueries(&self, target: GLenum, n: GLsizei, ids: *mut GLuint) {
10439 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10440 {
10441 trace!(
10442 "calling gl.CreateQueries({:#X}, {:?}, {:p});",
10443 target,
10444 n,
10445 ids
10446 );
10447 }
10448 let out =
10449 call_atomic_ptr_3arg("glCreateQueries", &self.glCreateQueries_p, target, n, ids);
10450 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10451 {
10452 self.automatic_glGetError("glCreateQueries");
10453 }
10454 out
10455 }
10456 #[doc(hidden)]
10457 pub unsafe fn CreateQueries_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"glCreateQueries\0",
10464 &self.glCreateQueries_p,
10465 )
10466 }
10467 #[inline]
10468 #[doc(hidden)]
10469 pub fn CreateQueries_is_loaded(&self) -> bool {
10470 !self.glCreateQueries_p.load(RELAX).is_null()
10471 }
10472 #[cfg_attr(feature = "inline", inline)]
10475 #[cfg_attr(feature = "inline_always", inline(always))]
10476 pub unsafe fn CreateRenderbuffers(&self, n: GLsizei, renderbuffers: *mut GLuint) {
10477 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10478 {
10479 trace!(
10480 "calling gl.CreateRenderbuffers({:?}, {:p});",
10481 n,
10482 renderbuffers
10483 );
10484 }
10485 let out = call_atomic_ptr_2arg(
10486 "glCreateRenderbuffers",
10487 &self.glCreateRenderbuffers_p,
10488 n,
10489 renderbuffers,
10490 );
10491 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10492 {
10493 self.automatic_glGetError("glCreateRenderbuffers");
10494 }
10495 out
10496 }
10497 #[doc(hidden)]
10498 pub unsafe fn CreateRenderbuffers_load_with_dyn(
10499 &self,
10500 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10501 ) -> bool {
10502 load_dyn_name_atomic_ptr(
10503 get_proc_address,
10504 b"glCreateRenderbuffers\0",
10505 &self.glCreateRenderbuffers_p,
10506 )
10507 }
10508 #[inline]
10509 #[doc(hidden)]
10510 pub fn CreateRenderbuffers_is_loaded(&self) -> bool {
10511 !self.glCreateRenderbuffers_p.load(RELAX).is_null()
10512 }
10513 #[cfg_attr(feature = "inline", inline)]
10516 #[cfg_attr(feature = "inline_always", inline(always))]
10517 pub unsafe fn CreateSamplers(&self, n: GLsizei, samplers: *mut GLuint) {
10518 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10519 {
10520 trace!("calling gl.CreateSamplers({:?}, {:p});", n, samplers);
10521 }
10522 let out =
10523 call_atomic_ptr_2arg("glCreateSamplers", &self.glCreateSamplers_p, n, samplers);
10524 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10525 {
10526 self.automatic_glGetError("glCreateSamplers");
10527 }
10528 out
10529 }
10530 #[doc(hidden)]
10531 pub unsafe fn CreateSamplers_load_with_dyn(
10532 &self,
10533 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10534 ) -> bool {
10535 load_dyn_name_atomic_ptr(
10536 get_proc_address,
10537 b"glCreateSamplers\0",
10538 &self.glCreateSamplers_p,
10539 )
10540 }
10541 #[inline]
10542 #[doc(hidden)]
10543 pub fn CreateSamplers_is_loaded(&self) -> bool {
10544 !self.glCreateSamplers_p.load(RELAX).is_null()
10545 }
10546 #[cfg_attr(feature = "inline", inline)]
10549 #[cfg_attr(feature = "inline_always", inline(always))]
10550 pub unsafe fn CreateShader(&self, type_: GLenum) -> GLuint {
10551 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10552 {
10553 trace!("calling gl.CreateShader({:#X});", type_);
10554 }
10555 let out = call_atomic_ptr_1arg("glCreateShader", &self.glCreateShader_p, type_);
10556 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10557 {
10558 self.automatic_glGetError("glCreateShader");
10559 }
10560 out
10561 }
10562 #[doc(hidden)]
10563 pub unsafe fn CreateShader_load_with_dyn(
10564 &self,
10565 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10566 ) -> bool {
10567 load_dyn_name_atomic_ptr(
10568 get_proc_address,
10569 b"glCreateShader\0",
10570 &self.glCreateShader_p,
10571 )
10572 }
10573 #[inline]
10574 #[doc(hidden)]
10575 pub fn CreateShader_is_loaded(&self) -> bool {
10576 !self.glCreateShader_p.load(RELAX).is_null()
10577 }
10578 #[cfg_attr(feature = "inline", inline)]
10582 #[cfg_attr(feature = "inline_always", inline(always))]
10583 pub unsafe fn CreateShaderProgramv(
10584 &self,
10585 type_: GLenum,
10586 count: GLsizei,
10587 strings: *const *const GLchar,
10588 ) -> GLuint {
10589 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10590 {
10591 trace!(
10592 "calling gl.CreateShaderProgramv({:#X}, {:?}, {:p});",
10593 type_,
10594 count,
10595 strings
10596 );
10597 }
10598 let out = call_atomic_ptr_3arg(
10599 "glCreateShaderProgramv",
10600 &self.glCreateShaderProgramv_p,
10601 type_,
10602 count,
10603 strings,
10604 );
10605 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10606 {
10607 self.automatic_glGetError("glCreateShaderProgramv");
10608 }
10609 out
10610 }
10611 #[doc(hidden)]
10612 pub unsafe fn CreateShaderProgramv_load_with_dyn(
10613 &self,
10614 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10615 ) -> bool {
10616 load_dyn_name_atomic_ptr(
10617 get_proc_address,
10618 b"glCreateShaderProgramv\0",
10619 &self.glCreateShaderProgramv_p,
10620 )
10621 }
10622 #[inline]
10623 #[doc(hidden)]
10624 pub fn CreateShaderProgramv_is_loaded(&self) -> bool {
10625 !self.glCreateShaderProgramv_p.load(RELAX).is_null()
10626 }
10627 #[cfg_attr(feature = "inline", inline)]
10631 #[cfg_attr(feature = "inline_always", inline(always))]
10632 pub unsafe fn CreateTextures(&self, target: GLenum, n: GLsizei, textures: *mut GLuint) {
10633 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10634 {
10635 trace!(
10636 "calling gl.CreateTextures({:#X}, {:?}, {:p});",
10637 target,
10638 n,
10639 textures
10640 );
10641 }
10642 let out = call_atomic_ptr_3arg(
10643 "glCreateTextures",
10644 &self.glCreateTextures_p,
10645 target,
10646 n,
10647 textures,
10648 );
10649 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10650 {
10651 self.automatic_glGetError("glCreateTextures");
10652 }
10653 out
10654 }
10655 #[doc(hidden)]
10656 pub unsafe fn CreateTextures_load_with_dyn(
10657 &self,
10658 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10659 ) -> bool {
10660 load_dyn_name_atomic_ptr(
10661 get_proc_address,
10662 b"glCreateTextures\0",
10663 &self.glCreateTextures_p,
10664 )
10665 }
10666 #[inline]
10667 #[doc(hidden)]
10668 pub fn CreateTextures_is_loaded(&self) -> bool {
10669 !self.glCreateTextures_p.load(RELAX).is_null()
10670 }
10671 #[cfg_attr(feature = "inline", inline)]
10674 #[cfg_attr(feature = "inline_always", inline(always))]
10675 pub unsafe fn CreateTransformFeedbacks(&self, n: GLsizei, ids: *mut GLuint) {
10676 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10677 {
10678 trace!("calling gl.CreateTransformFeedbacks({:?}, {:p});", n, ids);
10679 }
10680 let out = call_atomic_ptr_2arg(
10681 "glCreateTransformFeedbacks",
10682 &self.glCreateTransformFeedbacks_p,
10683 n,
10684 ids,
10685 );
10686 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10687 {
10688 self.automatic_glGetError("glCreateTransformFeedbacks");
10689 }
10690 out
10691 }
10692 #[doc(hidden)]
10693 pub unsafe fn CreateTransformFeedbacks_load_with_dyn(
10694 &self,
10695 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10696 ) -> bool {
10697 load_dyn_name_atomic_ptr(
10698 get_proc_address,
10699 b"glCreateTransformFeedbacks\0",
10700 &self.glCreateTransformFeedbacks_p,
10701 )
10702 }
10703 #[inline]
10704 #[doc(hidden)]
10705 pub fn CreateTransformFeedbacks_is_loaded(&self) -> bool {
10706 !self.glCreateTransformFeedbacks_p.load(RELAX).is_null()
10707 }
10708 #[cfg_attr(feature = "inline", inline)]
10711 #[cfg_attr(feature = "inline_always", inline(always))]
10712 pub unsafe fn CreateVertexArrays(&self, n: GLsizei, arrays: *mut GLuint) {
10713 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10714 {
10715 trace!("calling gl.CreateVertexArrays({:?}, {:p});", n, arrays);
10716 }
10717 let out = call_atomic_ptr_2arg(
10718 "glCreateVertexArrays",
10719 &self.glCreateVertexArrays_p,
10720 n,
10721 arrays,
10722 );
10723 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10724 {
10725 self.automatic_glGetError("glCreateVertexArrays");
10726 }
10727 out
10728 }
10729 #[doc(hidden)]
10730 pub unsafe fn CreateVertexArrays_load_with_dyn(
10731 &self,
10732 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10733 ) -> bool {
10734 load_dyn_name_atomic_ptr(
10735 get_proc_address,
10736 b"glCreateVertexArrays\0",
10737 &self.glCreateVertexArrays_p,
10738 )
10739 }
10740 #[inline]
10741 #[doc(hidden)]
10742 pub fn CreateVertexArrays_is_loaded(&self) -> bool {
10743 !self.glCreateVertexArrays_p.load(RELAX).is_null()
10744 }
10745 #[cfg_attr(feature = "inline", inline)]
10748 #[cfg_attr(feature = "inline_always", inline(always))]
10749 pub unsafe fn CullFace(&self, mode: GLenum) {
10750 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10751 {
10752 trace!("calling gl.CullFace({:#X});", mode);
10753 }
10754 let out = call_atomic_ptr_1arg("glCullFace", &self.glCullFace_p, mode);
10755 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10756 {
10757 self.automatic_glGetError("glCullFace");
10758 }
10759 out
10760 }
10761 #[doc(hidden)]
10762 pub unsafe fn CullFace_load_with_dyn(
10763 &self,
10764 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10765 ) -> bool {
10766 load_dyn_name_atomic_ptr(get_proc_address, b"glCullFace\0", &self.glCullFace_p)
10767 }
10768 #[inline]
10769 #[doc(hidden)]
10770 pub fn CullFace_is_loaded(&self) -> bool {
10771 !self.glCullFace_p.load(RELAX).is_null()
10772 }
10773 #[cfg_attr(feature = "inline", inline)]
10775 #[cfg_attr(feature = "inline_always", inline(always))]
10776 pub unsafe fn DebugMessageCallback(&self, callback: GLDEBUGPROC, userParam: *const c_void) {
10777 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10778 {
10779 trace!(
10780 "calling gl.DebugMessageCallback({:?}, {:p});",
10781 transmute::<_, Option<fn()>>(callback),
10782 userParam
10783 );
10784 }
10785 let out = call_atomic_ptr_2arg(
10786 "glDebugMessageCallback",
10787 &self.glDebugMessageCallback_p,
10788 callback,
10789 userParam,
10790 );
10791 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10792 {
10793 self.automatic_glGetError("glDebugMessageCallback");
10794 }
10795 out
10796 }
10797 #[doc(hidden)]
10798 pub unsafe fn DebugMessageCallback_load_with_dyn(
10799 &self,
10800 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10801 ) -> bool {
10802 load_dyn_name_atomic_ptr(
10803 get_proc_address,
10804 b"glDebugMessageCallback\0",
10805 &self.glDebugMessageCallback_p,
10806 )
10807 }
10808 #[inline]
10809 #[doc(hidden)]
10810 pub fn DebugMessageCallback_is_loaded(&self) -> bool {
10811 !self.glDebugMessageCallback_p.load(RELAX).is_null()
10812 }
10813 #[cfg_attr(feature = "inline", inline)]
10817 #[cfg_attr(feature = "inline_always", inline(always))]
10818 pub unsafe fn DebugMessageCallbackARB(
10819 &self,
10820 callback: GLDEBUGPROCARB,
10821 userParam: *const c_void,
10822 ) {
10823 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10824 {
10825 trace!(
10826 "calling gl.DebugMessageCallbackARB({:?}, {:p});",
10827 transmute::<_, Option<fn()>>(callback),
10828 userParam
10829 );
10830 }
10831 let out = call_atomic_ptr_2arg(
10832 "glDebugMessageCallbackARB",
10833 &self.glDebugMessageCallbackARB_p,
10834 callback,
10835 userParam,
10836 );
10837 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10838 {
10839 self.automatic_glGetError("glDebugMessageCallbackARB");
10840 }
10841 out
10842 }
10843 #[doc(hidden)]
10844 pub unsafe fn DebugMessageCallbackARB_load_with_dyn(
10845 &self,
10846 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10847 ) -> bool {
10848 load_dyn_name_atomic_ptr(
10849 get_proc_address,
10850 b"glDebugMessageCallbackARB\0",
10851 &self.glDebugMessageCallbackARB_p,
10852 )
10853 }
10854 #[inline]
10855 #[doc(hidden)]
10856 pub fn DebugMessageCallbackARB_is_loaded(&self) -> bool {
10857 !self.glDebugMessageCallbackARB_p.load(RELAX).is_null()
10858 }
10859 #[cfg_attr(feature = "inline", inline)]
10862 #[cfg_attr(feature = "inline_always", inline(always))]
10863 pub unsafe fn DebugMessageCallbackKHR(
10864 &self,
10865 callback: GLDEBUGPROCKHR,
10866 userParam: *const c_void,
10867 ) {
10868 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10869 {
10870 trace!(
10871 "calling gl.DebugMessageCallbackKHR({:?}, {:p});",
10872 transmute::<_, Option<fn()>>(callback),
10873 userParam
10874 );
10875 }
10876 let out = call_atomic_ptr_2arg(
10877 "glDebugMessageCallbackKHR",
10878 &self.glDebugMessageCallbackKHR_p,
10879 callback,
10880 userParam,
10881 );
10882 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10883 {
10884 self.automatic_glGetError("glDebugMessageCallbackKHR");
10885 }
10886 out
10887 }
10888 #[doc(hidden)]
10889 pub unsafe fn DebugMessageCallbackKHR_load_with_dyn(
10890 &self,
10891 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10892 ) -> bool {
10893 load_dyn_name_atomic_ptr(
10894 get_proc_address,
10895 b"glDebugMessageCallbackKHR\0",
10896 &self.glDebugMessageCallbackKHR_p,
10897 )
10898 }
10899 #[inline]
10900 #[doc(hidden)]
10901 pub fn DebugMessageCallbackKHR_is_loaded(&self) -> bool {
10902 !self.glDebugMessageCallbackKHR_p.load(RELAX).is_null()
10903 }
10904 #[cfg_attr(feature = "inline", inline)]
10910 #[cfg_attr(feature = "inline_always", inline(always))]
10911 pub unsafe fn DebugMessageControl(
10912 &self,
10913 source: GLenum,
10914 type_: GLenum,
10915 severity: GLenum,
10916 count: GLsizei,
10917 ids: *const GLuint,
10918 enabled: GLboolean,
10919 ) {
10920 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10921 {
10922 trace!(
10923 "calling gl.DebugMessageControl({:#X}, {:#X}, {:#X}, {:?}, {:p}, {:?});",
10924 source,
10925 type_,
10926 severity,
10927 count,
10928 ids,
10929 enabled
10930 );
10931 }
10932 let out = call_atomic_ptr_6arg(
10933 "glDebugMessageControl",
10934 &self.glDebugMessageControl_p,
10935 source,
10936 type_,
10937 severity,
10938 count,
10939 ids,
10940 enabled,
10941 );
10942 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
10943 {
10944 self.automatic_glGetError("glDebugMessageControl");
10945 }
10946 out
10947 }
10948 #[doc(hidden)]
10949 pub unsafe fn DebugMessageControl_load_with_dyn(
10950 &self,
10951 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
10952 ) -> bool {
10953 load_dyn_name_atomic_ptr(
10954 get_proc_address,
10955 b"glDebugMessageControl\0",
10956 &self.glDebugMessageControl_p,
10957 )
10958 }
10959 #[inline]
10960 #[doc(hidden)]
10961 pub fn DebugMessageControl_is_loaded(&self) -> bool {
10962 !self.glDebugMessageControl_p.load(RELAX).is_null()
10963 }
10964 #[cfg_attr(feature = "inline", inline)]
10971 #[cfg_attr(feature = "inline_always", inline(always))]
10972 pub unsafe fn DebugMessageControlARB(
10973 &self,
10974 source: GLenum,
10975 type_: GLenum,
10976 severity: GLenum,
10977 count: GLsizei,
10978 ids: *const GLuint,
10979 enabled: GLboolean,
10980 ) {
10981 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
10982 {
10983 trace!(
10984 "calling gl.DebugMessageControlARB({:#X}, {:#X}, {:#X}, {:?}, {:p}, {:?});",
10985 source,
10986 type_,
10987 severity,
10988 count,
10989 ids,
10990 enabled
10991 );
10992 }
10993 let out = call_atomic_ptr_6arg(
10994 "glDebugMessageControlARB",
10995 &self.glDebugMessageControlARB_p,
10996 source,
10997 type_,
10998 severity,
10999 count,
11000 ids,
11001 enabled,
11002 );
11003 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11004 {
11005 self.automatic_glGetError("glDebugMessageControlARB");
11006 }
11007 out
11008 }
11009 #[doc(hidden)]
11010 pub unsafe fn DebugMessageControlARB_load_with_dyn(
11011 &self,
11012 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11013 ) -> bool {
11014 load_dyn_name_atomic_ptr(
11015 get_proc_address,
11016 b"glDebugMessageControlARB\0",
11017 &self.glDebugMessageControlARB_p,
11018 )
11019 }
11020 #[inline]
11021 #[doc(hidden)]
11022 pub fn DebugMessageControlARB_is_loaded(&self) -> bool {
11023 !self.glDebugMessageControlARB_p.load(RELAX).is_null()
11024 }
11025 #[cfg_attr(feature = "inline", inline)]
11031 #[cfg_attr(feature = "inline_always", inline(always))]
11032 pub unsafe fn DebugMessageControlKHR(
11033 &self,
11034 source: GLenum,
11035 type_: GLenum,
11036 severity: GLenum,
11037 count: GLsizei,
11038 ids: *const GLuint,
11039 enabled: GLboolean,
11040 ) {
11041 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11042 {
11043 trace!(
11044 "calling gl.DebugMessageControlKHR({:#X}, {:#X}, {:#X}, {:?}, {:p}, {:?});",
11045 source,
11046 type_,
11047 severity,
11048 count,
11049 ids,
11050 enabled
11051 );
11052 }
11053 let out = call_atomic_ptr_6arg(
11054 "glDebugMessageControlKHR",
11055 &self.glDebugMessageControlKHR_p,
11056 source,
11057 type_,
11058 severity,
11059 count,
11060 ids,
11061 enabled,
11062 );
11063 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11064 {
11065 self.automatic_glGetError("glDebugMessageControlKHR");
11066 }
11067 out
11068 }
11069 #[doc(hidden)]
11070 pub unsafe fn DebugMessageControlKHR_load_with_dyn(
11071 &self,
11072 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11073 ) -> bool {
11074 load_dyn_name_atomic_ptr(
11075 get_proc_address,
11076 b"glDebugMessageControlKHR\0",
11077 &self.glDebugMessageControlKHR_p,
11078 )
11079 }
11080 #[inline]
11081 #[doc(hidden)]
11082 pub fn DebugMessageControlKHR_is_loaded(&self) -> bool {
11083 !self.glDebugMessageControlKHR_p.load(RELAX).is_null()
11084 }
11085 #[cfg_attr(feature = "inline", inline)]
11091 #[cfg_attr(feature = "inline_always", inline(always))]
11092 pub unsafe fn DebugMessageInsert(
11093 &self,
11094 source: GLenum,
11095 type_: GLenum,
11096 id: GLuint,
11097 severity: GLenum,
11098 length: GLsizei,
11099 buf: *const GLchar,
11100 ) {
11101 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11102 {
11103 trace!(
11104 "calling gl.DebugMessageInsert({:#X}, {:#X}, {:?}, {:#X}, {:?}, {:p});",
11105 source,
11106 type_,
11107 id,
11108 severity,
11109 length,
11110 buf
11111 );
11112 }
11113 let out = call_atomic_ptr_6arg(
11114 "glDebugMessageInsert",
11115 &self.glDebugMessageInsert_p,
11116 source,
11117 type_,
11118 id,
11119 severity,
11120 length,
11121 buf,
11122 );
11123 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11124 {
11125 self.automatic_glGetError("glDebugMessageInsert");
11126 }
11127 out
11128 }
11129 #[doc(hidden)]
11130 pub unsafe fn DebugMessageInsert_load_with_dyn(
11131 &self,
11132 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11133 ) -> bool {
11134 load_dyn_name_atomic_ptr(
11135 get_proc_address,
11136 b"glDebugMessageInsert\0",
11137 &self.glDebugMessageInsert_p,
11138 )
11139 }
11140 #[inline]
11141 #[doc(hidden)]
11142 pub fn DebugMessageInsert_is_loaded(&self) -> bool {
11143 !self.glDebugMessageInsert_p.load(RELAX).is_null()
11144 }
11145 #[cfg_attr(feature = "inline", inline)]
11152 #[cfg_attr(feature = "inline_always", inline(always))]
11153 pub unsafe fn DebugMessageInsertARB(
11154 &self,
11155 source: GLenum,
11156 type_: GLenum,
11157 id: GLuint,
11158 severity: GLenum,
11159 length: GLsizei,
11160 buf: *const GLchar,
11161 ) {
11162 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11163 {
11164 trace!(
11165 "calling gl.DebugMessageInsertARB({:#X}, {:#X}, {:?}, {:#X}, {:?}, {:p});",
11166 source,
11167 type_,
11168 id,
11169 severity,
11170 length,
11171 buf
11172 );
11173 }
11174 let out = call_atomic_ptr_6arg(
11175 "glDebugMessageInsertARB",
11176 &self.glDebugMessageInsertARB_p,
11177 source,
11178 type_,
11179 id,
11180 severity,
11181 length,
11182 buf,
11183 );
11184 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11185 {
11186 self.automatic_glGetError("glDebugMessageInsertARB");
11187 }
11188 out
11189 }
11190 #[doc(hidden)]
11191 pub unsafe fn DebugMessageInsertARB_load_with_dyn(
11192 &self,
11193 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11194 ) -> bool {
11195 load_dyn_name_atomic_ptr(
11196 get_proc_address,
11197 b"glDebugMessageInsertARB\0",
11198 &self.glDebugMessageInsertARB_p,
11199 )
11200 }
11201 #[inline]
11202 #[doc(hidden)]
11203 pub fn DebugMessageInsertARB_is_loaded(&self) -> bool {
11204 !self.glDebugMessageInsertARB_p.load(RELAX).is_null()
11205 }
11206 #[cfg_attr(feature = "inline", inline)]
11212 #[cfg_attr(feature = "inline_always", inline(always))]
11213 pub unsafe fn DebugMessageInsertKHR(
11214 &self,
11215 source: GLenum,
11216 type_: GLenum,
11217 id: GLuint,
11218 severity: GLenum,
11219 length: GLsizei,
11220 buf: *const GLchar,
11221 ) {
11222 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11223 {
11224 trace!(
11225 "calling gl.DebugMessageInsertKHR({:#X}, {:#X}, {:?}, {:#X}, {:?}, {:p});",
11226 source,
11227 type_,
11228 id,
11229 severity,
11230 length,
11231 buf
11232 );
11233 }
11234 let out = call_atomic_ptr_6arg(
11235 "glDebugMessageInsertKHR",
11236 &self.glDebugMessageInsertKHR_p,
11237 source,
11238 type_,
11239 id,
11240 severity,
11241 length,
11242 buf,
11243 );
11244 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11245 {
11246 self.automatic_glGetError("glDebugMessageInsertKHR");
11247 }
11248 out
11249 }
11250 #[doc(hidden)]
11251 pub unsafe fn DebugMessageInsertKHR_load_with_dyn(
11252 &self,
11253 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11254 ) -> bool {
11255 load_dyn_name_atomic_ptr(
11256 get_proc_address,
11257 b"glDebugMessageInsertKHR\0",
11258 &self.glDebugMessageInsertKHR_p,
11259 )
11260 }
11261 #[inline]
11262 #[doc(hidden)]
11263 pub fn DebugMessageInsertKHR_is_loaded(&self) -> bool {
11264 !self.glDebugMessageInsertKHR_p.load(RELAX).is_null()
11265 }
11266 #[cfg_attr(feature = "inline", inline)]
11269 #[cfg_attr(feature = "inline_always", inline(always))]
11270 pub unsafe fn DeleteBuffers(&self, n: GLsizei, buffers: *const GLuint) {
11271 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11272 {
11273 trace!("calling gl.DeleteBuffers({:?}, {:p});", n, buffers);
11274 }
11275 let out = call_atomic_ptr_2arg("glDeleteBuffers", &self.glDeleteBuffers_p, n, buffers);
11276 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11277 {
11278 self.automatic_glGetError("glDeleteBuffers");
11279 }
11280 out
11281 }
11282 #[doc(hidden)]
11283 pub unsafe fn DeleteBuffers_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"glDeleteBuffers\0",
11290 &self.glDeleteBuffers_p,
11291 )
11292 }
11293 #[inline]
11294 #[doc(hidden)]
11295 pub fn DeleteBuffers_is_loaded(&self) -> bool {
11296 !self.glDeleteBuffers_p.load(RELAX).is_null()
11297 }
11298 #[cfg_attr(feature = "inline", inline)]
11301 #[cfg_attr(feature = "inline_always", inline(always))]
11302 pub unsafe fn DeleteFramebuffers(&self, n: GLsizei, framebuffers: *const GLuint) {
11303 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11304 {
11305 trace!(
11306 "calling gl.DeleteFramebuffers({:?}, {:p});",
11307 n,
11308 framebuffers
11309 );
11310 }
11311 let out = call_atomic_ptr_2arg(
11312 "glDeleteFramebuffers",
11313 &self.glDeleteFramebuffers_p,
11314 n,
11315 framebuffers,
11316 );
11317 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11318 {
11319 self.automatic_glGetError("glDeleteFramebuffers");
11320 }
11321 out
11322 }
11323 #[doc(hidden)]
11324 pub unsafe fn DeleteFramebuffers_load_with_dyn(
11325 &self,
11326 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11327 ) -> bool {
11328 load_dyn_name_atomic_ptr(
11329 get_proc_address,
11330 b"glDeleteFramebuffers\0",
11331 &self.glDeleteFramebuffers_p,
11332 )
11333 }
11334 #[inline]
11335 #[doc(hidden)]
11336 pub fn DeleteFramebuffers_is_loaded(&self) -> bool {
11337 !self.glDeleteFramebuffers_p.load(RELAX).is_null()
11338 }
11339 #[cfg_attr(feature = "inline", inline)]
11341 #[cfg_attr(feature = "inline_always", inline(always))]
11342 pub unsafe fn DeleteProgram(&self, program: GLuint) {
11343 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11344 {
11345 trace!("calling gl.DeleteProgram({:?});", program);
11346 }
11347 let out = call_atomic_ptr_1arg("glDeleteProgram", &self.glDeleteProgram_p, program);
11348 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11349 {
11350 self.automatic_glGetError("glDeleteProgram");
11351 }
11352 out
11353 }
11354 #[doc(hidden)]
11355 pub unsafe fn DeleteProgram_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"glDeleteProgram\0",
11362 &self.glDeleteProgram_p,
11363 )
11364 }
11365 #[inline]
11366 #[doc(hidden)]
11367 pub fn DeleteProgram_is_loaded(&self) -> bool {
11368 !self.glDeleteProgram_p.load(RELAX).is_null()
11369 }
11370 #[cfg_attr(feature = "inline", inline)]
11373 #[cfg_attr(feature = "inline_always", inline(always))]
11374 pub unsafe fn DeleteProgramPipelines(&self, n: GLsizei, pipelines: *const GLuint) {
11375 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11376 {
11377 trace!(
11378 "calling gl.DeleteProgramPipelines({:?}, {:p});",
11379 n,
11380 pipelines
11381 );
11382 }
11383 let out = call_atomic_ptr_2arg(
11384 "glDeleteProgramPipelines",
11385 &self.glDeleteProgramPipelines_p,
11386 n,
11387 pipelines,
11388 );
11389 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11390 {
11391 self.automatic_glGetError("glDeleteProgramPipelines");
11392 }
11393 out
11394 }
11395 #[doc(hidden)]
11396 pub unsafe fn DeleteProgramPipelines_load_with_dyn(
11397 &self,
11398 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11399 ) -> bool {
11400 load_dyn_name_atomic_ptr(
11401 get_proc_address,
11402 b"glDeleteProgramPipelines\0",
11403 &self.glDeleteProgramPipelines_p,
11404 )
11405 }
11406 #[inline]
11407 #[doc(hidden)]
11408 pub fn DeleteProgramPipelines_is_loaded(&self) -> bool {
11409 !self.glDeleteProgramPipelines_p.load(RELAX).is_null()
11410 }
11411 #[cfg_attr(feature = "inline", inline)]
11414 #[cfg_attr(feature = "inline_always", inline(always))]
11415 pub unsafe fn DeleteQueries(&self, n: GLsizei, ids: *const GLuint) {
11416 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11417 {
11418 trace!("calling gl.DeleteQueries({:?}, {:p});", n, ids);
11419 }
11420 let out = call_atomic_ptr_2arg("glDeleteQueries", &self.glDeleteQueries_p, n, ids);
11421 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11422 {
11423 self.automatic_glGetError("glDeleteQueries");
11424 }
11425 out
11426 }
11427 #[doc(hidden)]
11428 pub unsafe fn DeleteQueries_load_with_dyn(
11429 &self,
11430 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11431 ) -> bool {
11432 load_dyn_name_atomic_ptr(
11433 get_proc_address,
11434 b"glDeleteQueries\0",
11435 &self.glDeleteQueries_p,
11436 )
11437 }
11438 #[inline]
11439 #[doc(hidden)]
11440 pub fn DeleteQueries_is_loaded(&self) -> bool {
11441 !self.glDeleteQueries_p.load(RELAX).is_null()
11442 }
11443 #[cfg_attr(feature = "inline", inline)]
11446 #[cfg_attr(feature = "inline_always", inline(always))]
11447 pub unsafe fn DeleteQueriesEXT(&self, n: GLsizei, ids: *const GLuint) {
11448 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11449 {
11450 trace!("calling gl.DeleteQueriesEXT({:?}, {:p});", n, ids);
11451 }
11452 let out =
11453 call_atomic_ptr_2arg("glDeleteQueriesEXT", &self.glDeleteQueriesEXT_p, n, ids);
11454 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11455 {
11456 self.automatic_glGetError("glDeleteQueriesEXT");
11457 }
11458 out
11459 }
11460 #[doc(hidden)]
11461 pub unsafe fn DeleteQueriesEXT_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"glDeleteQueriesEXT\0",
11468 &self.glDeleteQueriesEXT_p,
11469 )
11470 }
11471 #[inline]
11472 #[doc(hidden)]
11473 pub fn DeleteQueriesEXT_is_loaded(&self) -> bool {
11474 !self.glDeleteQueriesEXT_p.load(RELAX).is_null()
11475 }
11476 #[cfg_attr(feature = "inline", inline)]
11479 #[cfg_attr(feature = "inline_always", inline(always))]
11480 pub unsafe fn DeleteRenderbuffers(&self, n: GLsizei, renderbuffers: *const GLuint) {
11481 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11482 {
11483 trace!(
11484 "calling gl.DeleteRenderbuffers({:?}, {:p});",
11485 n,
11486 renderbuffers
11487 );
11488 }
11489 let out = call_atomic_ptr_2arg(
11490 "glDeleteRenderbuffers",
11491 &self.glDeleteRenderbuffers_p,
11492 n,
11493 renderbuffers,
11494 );
11495 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11496 {
11497 self.automatic_glGetError("glDeleteRenderbuffers");
11498 }
11499 out
11500 }
11501 #[doc(hidden)]
11502 pub unsafe fn DeleteRenderbuffers_load_with_dyn(
11503 &self,
11504 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11505 ) -> bool {
11506 load_dyn_name_atomic_ptr(
11507 get_proc_address,
11508 b"glDeleteRenderbuffers\0",
11509 &self.glDeleteRenderbuffers_p,
11510 )
11511 }
11512 #[inline]
11513 #[doc(hidden)]
11514 pub fn DeleteRenderbuffers_is_loaded(&self) -> bool {
11515 !self.glDeleteRenderbuffers_p.load(RELAX).is_null()
11516 }
11517 #[cfg_attr(feature = "inline", inline)]
11520 #[cfg_attr(feature = "inline_always", inline(always))]
11521 pub unsafe fn DeleteSamplers(&self, count: GLsizei, samplers: *const GLuint) {
11522 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11523 {
11524 trace!("calling gl.DeleteSamplers({:?}, {:p});", count, samplers);
11525 }
11526 let out = call_atomic_ptr_2arg(
11527 "glDeleteSamplers",
11528 &self.glDeleteSamplers_p,
11529 count,
11530 samplers,
11531 );
11532 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11533 {
11534 self.automatic_glGetError("glDeleteSamplers");
11535 }
11536 out
11537 }
11538 #[doc(hidden)]
11539 pub unsafe fn DeleteSamplers_load_with_dyn(
11540 &self,
11541 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11542 ) -> bool {
11543 load_dyn_name_atomic_ptr(
11544 get_proc_address,
11545 b"glDeleteSamplers\0",
11546 &self.glDeleteSamplers_p,
11547 )
11548 }
11549 #[inline]
11550 #[doc(hidden)]
11551 pub fn DeleteSamplers_is_loaded(&self) -> bool {
11552 !self.glDeleteSamplers_p.load(RELAX).is_null()
11553 }
11554 #[cfg_attr(feature = "inline", inline)]
11556 #[cfg_attr(feature = "inline_always", inline(always))]
11557 pub unsafe fn DeleteShader(&self, shader: GLuint) {
11558 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11559 {
11560 trace!("calling gl.DeleteShader({:?});", shader);
11561 }
11562 let out = call_atomic_ptr_1arg("glDeleteShader", &self.glDeleteShader_p, shader);
11563 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11564 {
11565 self.automatic_glGetError("glDeleteShader");
11566 }
11567 out
11568 }
11569 #[doc(hidden)]
11570 pub unsafe fn DeleteShader_load_with_dyn(
11571 &self,
11572 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11573 ) -> bool {
11574 load_dyn_name_atomic_ptr(
11575 get_proc_address,
11576 b"glDeleteShader\0",
11577 &self.glDeleteShader_p,
11578 )
11579 }
11580 #[inline]
11581 #[doc(hidden)]
11582 pub fn DeleteShader_is_loaded(&self) -> bool {
11583 !self.glDeleteShader_p.load(RELAX).is_null()
11584 }
11585 #[cfg_attr(feature = "inline", inline)]
11588 #[cfg_attr(feature = "inline_always", inline(always))]
11589 pub unsafe fn DeleteSync(&self, sync: GLsync) {
11590 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11591 {
11592 trace!("calling gl.DeleteSync({:p});", sync);
11593 }
11594 let out = call_atomic_ptr_1arg("glDeleteSync", &self.glDeleteSync_p, sync);
11595 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11596 {
11597 self.automatic_glGetError("glDeleteSync");
11598 }
11599 out
11600 }
11601 #[doc(hidden)]
11602 pub unsafe fn DeleteSync_load_with_dyn(
11603 &self,
11604 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11605 ) -> bool {
11606 load_dyn_name_atomic_ptr(get_proc_address, b"glDeleteSync\0", &self.glDeleteSync_p)
11607 }
11608 #[inline]
11609 #[doc(hidden)]
11610 pub fn DeleteSync_is_loaded(&self) -> bool {
11611 !self.glDeleteSync_p.load(RELAX).is_null()
11612 }
11613 #[cfg_attr(feature = "inline", inline)]
11617 #[cfg_attr(feature = "inline_always", inline(always))]
11618 pub unsafe fn DeleteTextures(&self, n: GLsizei, textures: *const GLuint) {
11619 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11620 {
11621 trace!("calling gl.DeleteTextures({:?}, {:p});", n, textures);
11622 }
11623 let out =
11624 call_atomic_ptr_2arg("glDeleteTextures", &self.glDeleteTextures_p, n, textures);
11625 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11626 {
11627 self.automatic_glGetError("glDeleteTextures");
11628 }
11629 out
11630 }
11631 #[doc(hidden)]
11632 pub unsafe fn DeleteTextures_load_with_dyn(
11633 &self,
11634 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11635 ) -> bool {
11636 load_dyn_name_atomic_ptr(
11637 get_proc_address,
11638 b"glDeleteTextures\0",
11639 &self.glDeleteTextures_p,
11640 )
11641 }
11642 #[inline]
11643 #[doc(hidden)]
11644 pub fn DeleteTextures_is_loaded(&self) -> bool {
11645 !self.glDeleteTextures_p.load(RELAX).is_null()
11646 }
11647 #[cfg_attr(feature = "inline", inline)]
11650 #[cfg_attr(feature = "inline_always", inline(always))]
11651 pub unsafe fn DeleteTransformFeedbacks(&self, n: GLsizei, ids: *const GLuint) {
11652 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11653 {
11654 trace!("calling gl.DeleteTransformFeedbacks({:?}, {:p});", n, ids);
11655 }
11656 let out = call_atomic_ptr_2arg(
11657 "glDeleteTransformFeedbacks",
11658 &self.glDeleteTransformFeedbacks_p,
11659 n,
11660 ids,
11661 );
11662 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11663 {
11664 self.automatic_glGetError("glDeleteTransformFeedbacks");
11665 }
11666 out
11667 }
11668 #[doc(hidden)]
11669 pub unsafe fn DeleteTransformFeedbacks_load_with_dyn(
11670 &self,
11671 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11672 ) -> bool {
11673 load_dyn_name_atomic_ptr(
11674 get_proc_address,
11675 b"glDeleteTransformFeedbacks\0",
11676 &self.glDeleteTransformFeedbacks_p,
11677 )
11678 }
11679 #[inline]
11680 #[doc(hidden)]
11681 pub fn DeleteTransformFeedbacks_is_loaded(&self) -> bool {
11682 !self.glDeleteTransformFeedbacks_p.load(RELAX).is_null()
11683 }
11684 #[cfg_attr(feature = "inline", inline)]
11687 #[cfg_attr(feature = "inline_always", inline(always))]
11688 pub unsafe fn DeleteVertexArrays(&self, n: GLsizei, arrays: *const GLuint) {
11689 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11690 {
11691 trace!("calling gl.DeleteVertexArrays({:?}, {:p});", n, arrays);
11692 }
11693 let out = call_atomic_ptr_2arg(
11694 "glDeleteVertexArrays",
11695 &self.glDeleteVertexArrays_p,
11696 n,
11697 arrays,
11698 );
11699 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11700 {
11701 self.automatic_glGetError("glDeleteVertexArrays");
11702 }
11703 out
11704 }
11705 #[doc(hidden)]
11706 pub unsafe fn DeleteVertexArrays_load_with_dyn(
11707 &self,
11708 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11709 ) -> bool {
11710 load_dyn_name_atomic_ptr(
11711 get_proc_address,
11712 b"glDeleteVertexArrays\0",
11713 &self.glDeleteVertexArrays_p,
11714 )
11715 }
11716 #[inline]
11717 #[doc(hidden)]
11718 pub fn DeleteVertexArrays_is_loaded(&self) -> bool {
11719 !self.glDeleteVertexArrays_p.load(RELAX).is_null()
11720 }
11721 #[cfg_attr(feature = "inline", inline)]
11725 #[cfg_attr(feature = "inline_always", inline(always))]
11726 pub unsafe fn DeleteVertexArraysAPPLE(&self, n: GLsizei, arrays: *const GLuint) {
11727 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11728 {
11729 trace!("calling gl.DeleteVertexArraysAPPLE({:?}, {:p});", n, arrays);
11730 }
11731 let out = call_atomic_ptr_2arg(
11732 "glDeleteVertexArraysAPPLE",
11733 &self.glDeleteVertexArraysAPPLE_p,
11734 n,
11735 arrays,
11736 );
11737 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11738 {
11739 self.automatic_glGetError("glDeleteVertexArraysAPPLE");
11740 }
11741 out
11742 }
11743 #[doc(hidden)]
11744 pub unsafe fn DeleteVertexArraysAPPLE_load_with_dyn(
11745 &self,
11746 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11747 ) -> bool {
11748 load_dyn_name_atomic_ptr(
11749 get_proc_address,
11750 b"glDeleteVertexArraysAPPLE\0",
11751 &self.glDeleteVertexArraysAPPLE_p,
11752 )
11753 }
11754 #[inline]
11755 #[doc(hidden)]
11756 pub fn DeleteVertexArraysAPPLE_is_loaded(&self) -> bool {
11757 !self.glDeleteVertexArraysAPPLE_p.load(RELAX).is_null()
11758 }
11759 #[cfg_attr(feature = "inline", inline)]
11763 #[cfg_attr(feature = "inline_always", inline(always))]
11764 pub unsafe fn DeleteVertexArraysOES(&self, n: GLsizei, arrays: *const GLuint) {
11765 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11766 {
11767 trace!("calling gl.DeleteVertexArraysOES({:?}, {:p});", n, arrays);
11768 }
11769 let out = call_atomic_ptr_2arg(
11770 "glDeleteVertexArraysOES",
11771 &self.glDeleteVertexArraysOES_p,
11772 n,
11773 arrays,
11774 );
11775 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11776 {
11777 self.automatic_glGetError("glDeleteVertexArraysOES");
11778 }
11779 out
11780 }
11781 #[doc(hidden)]
11782 pub unsafe fn DeleteVertexArraysOES_load_with_dyn(
11783 &self,
11784 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11785 ) -> bool {
11786 load_dyn_name_atomic_ptr(
11787 get_proc_address,
11788 b"glDeleteVertexArraysOES\0",
11789 &self.glDeleteVertexArraysOES_p,
11790 )
11791 }
11792 #[inline]
11793 #[doc(hidden)]
11794 pub fn DeleteVertexArraysOES_is_loaded(&self) -> bool {
11795 !self.glDeleteVertexArraysOES_p.load(RELAX).is_null()
11796 }
11797 #[cfg_attr(feature = "inline", inline)]
11800 #[cfg_attr(feature = "inline_always", inline(always))]
11801 pub unsafe fn DepthFunc(&self, func: GLenum) {
11802 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11803 {
11804 trace!("calling gl.DepthFunc({:#X});", func);
11805 }
11806 let out = call_atomic_ptr_1arg("glDepthFunc", &self.glDepthFunc_p, func);
11807 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11808 {
11809 self.automatic_glGetError("glDepthFunc");
11810 }
11811 out
11812 }
11813 #[doc(hidden)]
11814 pub unsafe fn DepthFunc_load_with_dyn(
11815 &self,
11816 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11817 ) -> bool {
11818 load_dyn_name_atomic_ptr(get_proc_address, b"glDepthFunc\0", &self.glDepthFunc_p)
11819 }
11820 #[inline]
11821 #[doc(hidden)]
11822 pub fn DepthFunc_is_loaded(&self) -> bool {
11823 !self.glDepthFunc_p.load(RELAX).is_null()
11824 }
11825 #[cfg_attr(feature = "inline", inline)]
11827 #[cfg_attr(feature = "inline_always", inline(always))]
11828 pub unsafe fn DepthMask(&self, flag: GLboolean) {
11829 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11830 {
11831 trace!("calling gl.DepthMask({:?});", flag);
11832 }
11833 let out = call_atomic_ptr_1arg("glDepthMask", &self.glDepthMask_p, flag);
11834 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11835 {
11836 self.automatic_glGetError("glDepthMask");
11837 }
11838 out
11839 }
11840 #[doc(hidden)]
11841 pub unsafe fn DepthMask_load_with_dyn(
11842 &self,
11843 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11844 ) -> bool {
11845 load_dyn_name_atomic_ptr(get_proc_address, b"glDepthMask\0", &self.glDepthMask_p)
11846 }
11847 #[inline]
11848 #[doc(hidden)]
11849 pub fn DepthMask_is_loaded(&self) -> bool {
11850 !self.glDepthMask_p.load(RELAX).is_null()
11851 }
11852 #[cfg_attr(feature = "inline", inline)]
11854 #[cfg_attr(feature = "inline_always", inline(always))]
11855 pub unsafe fn DepthRange(&self, n: GLdouble, f: GLdouble) {
11856 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11857 {
11858 trace!("calling gl.DepthRange({:?}, {:?});", n, f);
11859 }
11860 let out = call_atomic_ptr_2arg("glDepthRange", &self.glDepthRange_p, n, f);
11861 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11862 {
11863 self.automatic_glGetError("glDepthRange");
11864 }
11865 out
11866 }
11867 #[doc(hidden)]
11868 pub unsafe fn DepthRange_load_with_dyn(
11869 &self,
11870 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11871 ) -> bool {
11872 load_dyn_name_atomic_ptr(get_proc_address, b"glDepthRange\0", &self.glDepthRange_p)
11873 }
11874 #[inline]
11875 #[doc(hidden)]
11876 pub fn DepthRange_is_loaded(&self) -> bool {
11877 !self.glDepthRange_p.load(RELAX).is_null()
11878 }
11879 #[cfg_attr(feature = "inline", inline)]
11882 #[cfg_attr(feature = "inline_always", inline(always))]
11883 pub unsafe fn DepthRangeArrayv(&self, first: GLuint, count: GLsizei, v: *const GLdouble) {
11884 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11885 {
11886 trace!(
11887 "calling gl.DepthRangeArrayv({:?}, {:?}, {:p});",
11888 first,
11889 count,
11890 v
11891 );
11892 }
11893 let out = call_atomic_ptr_3arg(
11894 "glDepthRangeArrayv",
11895 &self.glDepthRangeArrayv_p,
11896 first,
11897 count,
11898 v,
11899 );
11900 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11901 {
11902 self.automatic_glGetError("glDepthRangeArrayv");
11903 }
11904 out
11905 }
11906 #[doc(hidden)]
11907 pub unsafe fn DepthRangeArrayv_load_with_dyn(
11908 &self,
11909 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11910 ) -> bool {
11911 load_dyn_name_atomic_ptr(
11912 get_proc_address,
11913 b"glDepthRangeArrayv\0",
11914 &self.glDepthRangeArrayv_p,
11915 )
11916 }
11917 #[inline]
11918 #[doc(hidden)]
11919 pub fn DepthRangeArrayv_is_loaded(&self) -> bool {
11920 !self.glDepthRangeArrayv_p.load(RELAX).is_null()
11921 }
11922 #[cfg_attr(feature = "inline", inline)]
11924 #[cfg_attr(feature = "inline_always", inline(always))]
11925 pub unsafe fn DepthRangeIndexed(&self, index: GLuint, n: GLdouble, f: GLdouble) {
11926 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11927 {
11928 trace!(
11929 "calling gl.DepthRangeIndexed({:?}, {:?}, {:?});",
11930 index,
11931 n,
11932 f
11933 );
11934 }
11935 let out = call_atomic_ptr_3arg(
11936 "glDepthRangeIndexed",
11937 &self.glDepthRangeIndexed_p,
11938 index,
11939 n,
11940 f,
11941 );
11942 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11943 {
11944 self.automatic_glGetError("glDepthRangeIndexed");
11945 }
11946 out
11947 }
11948 #[doc(hidden)]
11949 pub unsafe fn DepthRangeIndexed_load_with_dyn(
11950 &self,
11951 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11952 ) -> bool {
11953 load_dyn_name_atomic_ptr(
11954 get_proc_address,
11955 b"glDepthRangeIndexed\0",
11956 &self.glDepthRangeIndexed_p,
11957 )
11958 }
11959 #[inline]
11960 #[doc(hidden)]
11961 pub fn DepthRangeIndexed_is_loaded(&self) -> bool {
11962 !self.glDepthRangeIndexed_p.load(RELAX).is_null()
11963 }
11964 #[cfg_attr(feature = "inline", inline)]
11966 #[cfg_attr(feature = "inline_always", inline(always))]
11967 pub unsafe fn DepthRangef(&self, n: GLfloat, f: GLfloat) {
11968 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11969 {
11970 trace!("calling gl.DepthRangef({:?}, {:?});", n, f);
11971 }
11972 let out = call_atomic_ptr_2arg("glDepthRangef", &self.glDepthRangef_p, n, f);
11973 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
11974 {
11975 self.automatic_glGetError("glDepthRangef");
11976 }
11977 out
11978 }
11979 #[doc(hidden)]
11980 pub unsafe fn DepthRangef_load_with_dyn(
11981 &self,
11982 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
11983 ) -> bool {
11984 load_dyn_name_atomic_ptr(get_proc_address, b"glDepthRangef\0", &self.glDepthRangef_p)
11985 }
11986 #[inline]
11987 #[doc(hidden)]
11988 pub fn DepthRangef_is_loaded(&self) -> bool {
11989 !self.glDepthRangef_p.load(RELAX).is_null()
11990 }
11991 #[cfg_attr(feature = "inline", inline)]
11993 #[cfg_attr(feature = "inline_always", inline(always))]
11994 pub unsafe fn DetachShader(&self, program: GLuint, shader: GLuint) {
11995 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
11996 {
11997 trace!("calling gl.DetachShader({:?}, {:?});", program, shader);
11998 }
11999 let out =
12000 call_atomic_ptr_2arg("glDetachShader", &self.glDetachShader_p, program, shader);
12001 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12002 {
12003 self.automatic_glGetError("glDetachShader");
12004 }
12005 out
12006 }
12007 #[doc(hidden)]
12008 pub unsafe fn DetachShader_load_with_dyn(
12009 &self,
12010 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12011 ) -> bool {
12012 load_dyn_name_atomic_ptr(
12013 get_proc_address,
12014 b"glDetachShader\0",
12015 &self.glDetachShader_p,
12016 )
12017 }
12018 #[inline]
12019 #[doc(hidden)]
12020 pub fn DetachShader_is_loaded(&self) -> bool {
12021 !self.glDetachShader_p.load(RELAX).is_null()
12022 }
12023 #[cfg_attr(feature = "inline", inline)]
12026 #[cfg_attr(feature = "inline_always", inline(always))]
12027 pub unsafe fn Disable(&self, cap: GLenum) {
12028 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12029 {
12030 trace!("calling gl.Disable({:#X});", cap);
12031 }
12032 let out = call_atomic_ptr_1arg("glDisable", &self.glDisable_p, cap);
12033 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12034 {
12035 self.automatic_glGetError("glDisable");
12036 }
12037 out
12038 }
12039 #[doc(hidden)]
12040 pub unsafe fn Disable_load_with_dyn(
12041 &self,
12042 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12043 ) -> bool {
12044 load_dyn_name_atomic_ptr(get_proc_address, b"glDisable\0", &self.glDisable_p)
12045 }
12046 #[inline]
12047 #[doc(hidden)]
12048 pub fn Disable_is_loaded(&self) -> bool {
12049 !self.glDisable_p.load(RELAX).is_null()
12050 }
12051 #[cfg_attr(feature = "inline", inline)]
12055 #[cfg_attr(feature = "inline_always", inline(always))]
12056 pub unsafe fn DisableIndexedEXT(&self, target: GLenum, index: GLuint) {
12057 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12058 {
12059 trace!("calling gl.DisableIndexedEXT({:#X}, {:?});", target, index);
12060 }
12061 let out = call_atomic_ptr_2arg(
12062 "glDisableIndexedEXT",
12063 &self.glDisableIndexedEXT_p,
12064 target,
12065 index,
12066 );
12067 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12068 {
12069 self.automatic_glGetError("glDisableIndexedEXT");
12070 }
12071 out
12072 }
12073 #[doc(hidden)]
12074 pub unsafe fn DisableIndexedEXT_load_with_dyn(
12075 &self,
12076 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12077 ) -> bool {
12078 load_dyn_name_atomic_ptr(
12079 get_proc_address,
12080 b"glDisableIndexedEXT\0",
12081 &self.glDisableIndexedEXT_p,
12082 )
12083 }
12084 #[inline]
12085 #[doc(hidden)]
12086 pub fn DisableIndexedEXT_is_loaded(&self) -> bool {
12087 !self.glDisableIndexedEXT_p.load(RELAX).is_null()
12088 }
12089 #[cfg_attr(feature = "inline", inline)]
12091 #[cfg_attr(feature = "inline_always", inline(always))]
12092 pub unsafe fn DisableVertexArrayAttrib(&self, vaobj: GLuint, index: GLuint) {
12093 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12094 {
12095 trace!(
12096 "calling gl.DisableVertexArrayAttrib({:?}, {:?});",
12097 vaobj,
12098 index
12099 );
12100 }
12101 let out = call_atomic_ptr_2arg(
12102 "glDisableVertexArrayAttrib",
12103 &self.glDisableVertexArrayAttrib_p,
12104 vaobj,
12105 index,
12106 );
12107 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12108 {
12109 self.automatic_glGetError("glDisableVertexArrayAttrib");
12110 }
12111 out
12112 }
12113 #[doc(hidden)]
12114 pub unsafe fn DisableVertexArrayAttrib_load_with_dyn(
12115 &self,
12116 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12117 ) -> bool {
12118 load_dyn_name_atomic_ptr(
12119 get_proc_address,
12120 b"glDisableVertexArrayAttrib\0",
12121 &self.glDisableVertexArrayAttrib_p,
12122 )
12123 }
12124 #[inline]
12125 #[doc(hidden)]
12126 pub fn DisableVertexArrayAttrib_is_loaded(&self) -> bool {
12127 !self.glDisableVertexArrayAttrib_p.load(RELAX).is_null()
12128 }
12129 #[cfg_attr(feature = "inline", inline)]
12131 #[cfg_attr(feature = "inline_always", inline(always))]
12132 pub unsafe fn DisableVertexAttribArray(&self, index: GLuint) {
12133 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12134 {
12135 trace!("calling gl.DisableVertexAttribArray({:?});", index);
12136 }
12137 let out = call_atomic_ptr_1arg(
12138 "glDisableVertexAttribArray",
12139 &self.glDisableVertexAttribArray_p,
12140 index,
12141 );
12142 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12143 {
12144 self.automatic_glGetError("glDisableVertexAttribArray");
12145 }
12146 out
12147 }
12148 #[doc(hidden)]
12149 pub unsafe fn DisableVertexAttribArray_load_with_dyn(
12150 &self,
12151 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12152 ) -> bool {
12153 load_dyn_name_atomic_ptr(
12154 get_proc_address,
12155 b"glDisableVertexAttribArray\0",
12156 &self.glDisableVertexAttribArray_p,
12157 )
12158 }
12159 #[inline]
12160 #[doc(hidden)]
12161 pub fn DisableVertexAttribArray_is_loaded(&self) -> bool {
12162 !self.glDisableVertexAttribArray_p.load(RELAX).is_null()
12163 }
12164 #[cfg_attr(feature = "inline", inline)]
12167 #[cfg_attr(feature = "inline_always", inline(always))]
12168 pub unsafe fn Disablei(&self, target: GLenum, index: GLuint) {
12169 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12170 {
12171 trace!("calling gl.Disablei({:#X}, {:?});", target, index);
12172 }
12173 let out = call_atomic_ptr_2arg("glDisablei", &self.glDisablei_p, target, index);
12174 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12175 {
12176 self.automatic_glGetError("glDisablei");
12177 }
12178 out
12179 }
12180 #[doc(hidden)]
12181 pub unsafe fn Disablei_load_with_dyn(
12182 &self,
12183 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12184 ) -> bool {
12185 load_dyn_name_atomic_ptr(get_proc_address, b"glDisablei\0", &self.glDisablei_p)
12186 }
12187 #[inline]
12188 #[doc(hidden)]
12189 pub fn Disablei_is_loaded(&self) -> bool {
12190 !self.glDisablei_p.load(RELAX).is_null()
12191 }
12192 #[cfg_attr(feature = "inline", inline)]
12194 #[cfg_attr(feature = "inline_always", inline(always))]
12195 pub unsafe fn DispatchCompute(
12196 &self,
12197 num_groups_x: GLuint,
12198 num_groups_y: GLuint,
12199 num_groups_z: GLuint,
12200 ) {
12201 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12202 {
12203 trace!(
12204 "calling gl.DispatchCompute({:?}, {:?}, {:?});",
12205 num_groups_x,
12206 num_groups_y,
12207 num_groups_z
12208 );
12209 }
12210 let out = call_atomic_ptr_3arg(
12211 "glDispatchCompute",
12212 &self.glDispatchCompute_p,
12213 num_groups_x,
12214 num_groups_y,
12215 num_groups_z,
12216 );
12217 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12218 {
12219 self.automatic_glGetError("glDispatchCompute");
12220 }
12221 out
12222 }
12223 #[doc(hidden)]
12224 pub unsafe fn DispatchCompute_load_with_dyn(
12225 &self,
12226 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12227 ) -> bool {
12228 load_dyn_name_atomic_ptr(
12229 get_proc_address,
12230 b"glDispatchCompute\0",
12231 &self.glDispatchCompute_p,
12232 )
12233 }
12234 #[inline]
12235 #[doc(hidden)]
12236 pub fn DispatchCompute_is_loaded(&self) -> bool {
12237 !self.glDispatchCompute_p.load(RELAX).is_null()
12238 }
12239 #[cfg_attr(feature = "inline", inline)]
12242 #[cfg_attr(feature = "inline_always", inline(always))]
12243 pub unsafe fn DispatchComputeIndirect(&self, indirect: GLintptr) {
12244 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12245 {
12246 trace!("calling gl.DispatchComputeIndirect({:?});", indirect);
12247 }
12248 let out = call_atomic_ptr_1arg(
12249 "glDispatchComputeIndirect",
12250 &self.glDispatchComputeIndirect_p,
12251 indirect,
12252 );
12253 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12254 {
12255 self.automatic_glGetError("glDispatchComputeIndirect");
12256 }
12257 out
12258 }
12259 #[doc(hidden)]
12260 pub unsafe fn DispatchComputeIndirect_load_with_dyn(
12261 &self,
12262 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12263 ) -> bool {
12264 load_dyn_name_atomic_ptr(
12265 get_proc_address,
12266 b"glDispatchComputeIndirect\0",
12267 &self.glDispatchComputeIndirect_p,
12268 )
12269 }
12270 #[inline]
12271 #[doc(hidden)]
12272 pub fn DispatchComputeIndirect_is_loaded(&self) -> bool {
12273 !self.glDispatchComputeIndirect_p.load(RELAX).is_null()
12274 }
12275 #[cfg_attr(feature = "inline", inline)]
12278 #[cfg_attr(feature = "inline_always", inline(always))]
12279 pub unsafe fn DrawArrays(&self, mode: GLenum, first: GLint, count: GLsizei) {
12280 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12281 {
12282 trace!(
12283 "calling gl.DrawArrays({:#X}, {:?}, {:?});",
12284 mode,
12285 first,
12286 count
12287 );
12288 }
12289 let out =
12290 call_atomic_ptr_3arg("glDrawArrays", &self.glDrawArrays_p, mode, first, count);
12291 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12292 {
12293 self.automatic_glGetError("glDrawArrays");
12294 }
12295 out
12296 }
12297 #[doc(hidden)]
12298 pub unsafe fn DrawArrays_load_with_dyn(
12299 &self,
12300 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12301 ) -> bool {
12302 load_dyn_name_atomic_ptr(get_proc_address, b"glDrawArrays\0", &self.glDrawArrays_p)
12303 }
12304 #[inline]
12305 #[doc(hidden)]
12306 pub fn DrawArrays_is_loaded(&self) -> bool {
12307 !self.glDrawArrays_p.load(RELAX).is_null()
12308 }
12309 #[cfg_attr(feature = "inline", inline)]
12312 #[cfg_attr(feature = "inline_always", inline(always))]
12313 pub unsafe fn DrawArraysIndirect(&self, mode: GLenum, indirect: *const c_void) {
12314 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12315 {
12316 trace!(
12317 "calling gl.DrawArraysIndirect({:#X}, {:p});",
12318 mode,
12319 indirect
12320 );
12321 }
12322 let out = call_atomic_ptr_2arg(
12323 "glDrawArraysIndirect",
12324 &self.glDrawArraysIndirect_p,
12325 mode,
12326 indirect,
12327 );
12328 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12329 {
12330 self.automatic_glGetError("glDrawArraysIndirect");
12331 }
12332 out
12333 }
12334 #[doc(hidden)]
12335 pub unsafe fn DrawArraysIndirect_load_with_dyn(
12336 &self,
12337 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12338 ) -> bool {
12339 load_dyn_name_atomic_ptr(
12340 get_proc_address,
12341 b"glDrawArraysIndirect\0",
12342 &self.glDrawArraysIndirect_p,
12343 )
12344 }
12345 #[inline]
12346 #[doc(hidden)]
12347 pub fn DrawArraysIndirect_is_loaded(&self) -> bool {
12348 !self.glDrawArraysIndirect_p.load(RELAX).is_null()
12349 }
12350 #[cfg_attr(feature = "inline", inline)]
12353 #[cfg_attr(feature = "inline_always", inline(always))]
12354 pub unsafe fn DrawArraysInstanced(
12355 &self,
12356 mode: GLenum,
12357 first: GLint,
12358 count: GLsizei,
12359 instancecount: GLsizei,
12360 ) {
12361 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12362 {
12363 trace!(
12364 "calling gl.DrawArraysInstanced({:#X}, {:?}, {:?}, {:?});",
12365 mode,
12366 first,
12367 count,
12368 instancecount
12369 );
12370 }
12371 let out = call_atomic_ptr_4arg(
12372 "glDrawArraysInstanced",
12373 &self.glDrawArraysInstanced_p,
12374 mode,
12375 first,
12376 count,
12377 instancecount,
12378 );
12379 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12380 {
12381 self.automatic_glGetError("glDrawArraysInstanced");
12382 }
12383 out
12384 }
12385 #[doc(hidden)]
12386 pub unsafe fn DrawArraysInstanced_load_with_dyn(
12387 &self,
12388 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12389 ) -> bool {
12390 load_dyn_name_atomic_ptr(
12391 get_proc_address,
12392 b"glDrawArraysInstanced\0",
12393 &self.glDrawArraysInstanced_p,
12394 )
12395 }
12396 #[inline]
12397 #[doc(hidden)]
12398 pub fn DrawArraysInstanced_is_loaded(&self) -> bool {
12399 !self.glDrawArraysInstanced_p.load(RELAX).is_null()
12400 }
12401 #[cfg_attr(feature = "inline", inline)]
12405 #[cfg_attr(feature = "inline_always", inline(always))]
12406 pub unsafe fn DrawArraysInstancedARB(
12407 &self,
12408 mode: GLenum,
12409 first: GLint,
12410 count: GLsizei,
12411 primcount: GLsizei,
12412 ) {
12413 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12414 {
12415 trace!(
12416 "calling gl.DrawArraysInstancedARB({:#X}, {:?}, {:?}, {:?});",
12417 mode,
12418 first,
12419 count,
12420 primcount
12421 );
12422 }
12423 let out = call_atomic_ptr_4arg(
12424 "glDrawArraysInstancedARB",
12425 &self.glDrawArraysInstancedARB_p,
12426 mode,
12427 first,
12428 count,
12429 primcount,
12430 );
12431 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12432 {
12433 self.automatic_glGetError("glDrawArraysInstancedARB");
12434 }
12435 out
12436 }
12437 #[doc(hidden)]
12438 pub unsafe fn DrawArraysInstancedARB_load_with_dyn(
12439 &self,
12440 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12441 ) -> bool {
12442 load_dyn_name_atomic_ptr(
12443 get_proc_address,
12444 b"glDrawArraysInstancedARB\0",
12445 &self.glDrawArraysInstancedARB_p,
12446 )
12447 }
12448 #[inline]
12449 #[doc(hidden)]
12450 pub fn DrawArraysInstancedARB_is_loaded(&self) -> bool {
12451 !self.glDrawArraysInstancedARB_p.load(RELAX).is_null()
12452 }
12453 #[cfg_attr(feature = "inline", inline)]
12456 #[cfg_attr(feature = "inline_always", inline(always))]
12457 pub unsafe fn DrawArraysInstancedBaseInstance(
12458 &self,
12459 mode: GLenum,
12460 first: GLint,
12461 count: GLsizei,
12462 instancecount: GLsizei,
12463 baseinstance: GLuint,
12464 ) {
12465 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12466 {
12467 trace!(
12468 "calling gl.DrawArraysInstancedBaseInstance({:#X}, {:?}, {:?}, {:?}, {:?});",
12469 mode,
12470 first,
12471 count,
12472 instancecount,
12473 baseinstance
12474 );
12475 }
12476 let out = call_atomic_ptr_5arg(
12477 "glDrawArraysInstancedBaseInstance",
12478 &self.glDrawArraysInstancedBaseInstance_p,
12479 mode,
12480 first,
12481 count,
12482 instancecount,
12483 baseinstance,
12484 );
12485 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12486 {
12487 self.automatic_glGetError("glDrawArraysInstancedBaseInstance");
12488 }
12489 out
12490 }
12491 #[doc(hidden)]
12492 pub unsafe fn DrawArraysInstancedBaseInstance_load_with_dyn(
12493 &self,
12494 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12495 ) -> bool {
12496 load_dyn_name_atomic_ptr(
12497 get_proc_address,
12498 b"glDrawArraysInstancedBaseInstance\0",
12499 &self.glDrawArraysInstancedBaseInstance_p,
12500 )
12501 }
12502 #[inline]
12503 #[doc(hidden)]
12504 pub fn DrawArraysInstancedBaseInstance_is_loaded(&self) -> bool {
12505 !self
12506 .glDrawArraysInstancedBaseInstance_p
12507 .load(RELAX)
12508 .is_null()
12509 }
12510 #[cfg_attr(feature = "inline", inline)]
12513 #[cfg_attr(feature = "inline_always", inline(always))]
12514 pub unsafe fn DrawBuffer(&self, buf: GLenum) {
12515 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12516 {
12517 trace!("calling gl.DrawBuffer({:#X});", buf);
12518 }
12519 let out = call_atomic_ptr_1arg("glDrawBuffer", &self.glDrawBuffer_p, buf);
12520 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12521 {
12522 self.automatic_glGetError("glDrawBuffer");
12523 }
12524 out
12525 }
12526 #[doc(hidden)]
12527 pub unsafe fn DrawBuffer_load_with_dyn(
12528 &self,
12529 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12530 ) -> bool {
12531 load_dyn_name_atomic_ptr(get_proc_address, b"glDrawBuffer\0", &self.glDrawBuffer_p)
12532 }
12533 #[inline]
12534 #[doc(hidden)]
12535 pub fn DrawBuffer_is_loaded(&self) -> bool {
12536 !self.glDrawBuffer_p.load(RELAX).is_null()
12537 }
12538 #[cfg_attr(feature = "inline", inline)]
12542 #[cfg_attr(feature = "inline_always", inline(always))]
12543 pub unsafe fn DrawBuffers(&self, n: GLsizei, bufs: *const GLenum) {
12544 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12545 {
12546 trace!("calling gl.DrawBuffers({:?}, {:p});", n, bufs);
12547 }
12548 let out = call_atomic_ptr_2arg("glDrawBuffers", &self.glDrawBuffers_p, n, bufs);
12549 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12550 {
12551 self.automatic_glGetError("glDrawBuffers");
12552 }
12553 out
12554 }
12555 #[doc(hidden)]
12556 pub unsafe fn DrawBuffers_load_with_dyn(
12557 &self,
12558 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12559 ) -> bool {
12560 load_dyn_name_atomic_ptr(get_proc_address, b"glDrawBuffers\0", &self.glDrawBuffers_p)
12561 }
12562 #[inline]
12563 #[doc(hidden)]
12564 pub fn DrawBuffers_is_loaded(&self) -> bool {
12565 !self.glDrawBuffers_p.load(RELAX).is_null()
12566 }
12567 #[cfg_attr(feature = "inline", inline)]
12572 #[cfg_attr(feature = "inline_always", inline(always))]
12573 pub unsafe fn DrawElements(
12574 &self,
12575 mode: GLenum,
12576 count: GLsizei,
12577 type_: GLenum,
12578 indices: *const c_void,
12579 ) {
12580 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12581 {
12582 trace!(
12583 "calling gl.DrawElements({:#X}, {:?}, {:#X}, {:p});",
12584 mode,
12585 count,
12586 type_,
12587 indices
12588 );
12589 }
12590 let out = call_atomic_ptr_4arg(
12591 "glDrawElements",
12592 &self.glDrawElements_p,
12593 mode,
12594 count,
12595 type_,
12596 indices,
12597 );
12598 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12599 {
12600 self.automatic_glGetError("glDrawElements");
12601 }
12602 out
12603 }
12604 #[doc(hidden)]
12605 pub unsafe fn DrawElements_load_with_dyn(
12606 &self,
12607 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12608 ) -> bool {
12609 load_dyn_name_atomic_ptr(
12610 get_proc_address,
12611 b"glDrawElements\0",
12612 &self.glDrawElements_p,
12613 )
12614 }
12615 #[inline]
12616 #[doc(hidden)]
12617 pub fn DrawElements_is_loaded(&self) -> bool {
12618 !self.glDrawElements_p.load(RELAX).is_null()
12619 }
12620 #[cfg_attr(feature = "inline", inline)]
12625 #[cfg_attr(feature = "inline_always", inline(always))]
12626 pub unsafe fn DrawElementsBaseVertex(
12627 &self,
12628 mode: GLenum,
12629 count: GLsizei,
12630 type_: GLenum,
12631 indices: *const c_void,
12632 basevertex: GLint,
12633 ) {
12634 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12635 {
12636 trace!(
12637 "calling gl.DrawElementsBaseVertex({:#X}, {:?}, {:#X}, {:p}, {:?});",
12638 mode,
12639 count,
12640 type_,
12641 indices,
12642 basevertex
12643 );
12644 }
12645 let out = call_atomic_ptr_5arg(
12646 "glDrawElementsBaseVertex",
12647 &self.glDrawElementsBaseVertex_p,
12648 mode,
12649 count,
12650 type_,
12651 indices,
12652 basevertex,
12653 );
12654 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12655 {
12656 self.automatic_glGetError("glDrawElementsBaseVertex");
12657 }
12658 out
12659 }
12660 #[doc(hidden)]
12661 pub unsafe fn DrawElementsBaseVertex_load_with_dyn(
12662 &self,
12663 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12664 ) -> bool {
12665 load_dyn_name_atomic_ptr(
12666 get_proc_address,
12667 b"glDrawElementsBaseVertex\0",
12668 &self.glDrawElementsBaseVertex_p,
12669 )
12670 }
12671 #[inline]
12672 #[doc(hidden)]
12673 pub fn DrawElementsBaseVertex_is_loaded(&self) -> bool {
12674 !self.glDrawElementsBaseVertex_p.load(RELAX).is_null()
12675 }
12676 #[cfg_attr(feature = "inline", inline)]
12680 #[cfg_attr(feature = "inline_always", inline(always))]
12681 pub unsafe fn DrawElementsIndirect(
12682 &self,
12683 mode: GLenum,
12684 type_: GLenum,
12685 indirect: *const c_void,
12686 ) {
12687 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12688 {
12689 trace!(
12690 "calling gl.DrawElementsIndirect({:#X}, {:#X}, {:p});",
12691 mode,
12692 type_,
12693 indirect
12694 );
12695 }
12696 let out = call_atomic_ptr_3arg(
12697 "glDrawElementsIndirect",
12698 &self.glDrawElementsIndirect_p,
12699 mode,
12700 type_,
12701 indirect,
12702 );
12703 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12704 {
12705 self.automatic_glGetError("glDrawElementsIndirect");
12706 }
12707 out
12708 }
12709 #[doc(hidden)]
12710 pub unsafe fn DrawElementsIndirect_load_with_dyn(
12711 &self,
12712 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12713 ) -> bool {
12714 load_dyn_name_atomic_ptr(
12715 get_proc_address,
12716 b"glDrawElementsIndirect\0",
12717 &self.glDrawElementsIndirect_p,
12718 )
12719 }
12720 #[inline]
12721 #[doc(hidden)]
12722 pub fn DrawElementsIndirect_is_loaded(&self) -> bool {
12723 !self.glDrawElementsIndirect_p.load(RELAX).is_null()
12724 }
12725 #[cfg_attr(feature = "inline", inline)]
12730 #[cfg_attr(feature = "inline_always", inline(always))]
12731 pub unsafe fn DrawElementsInstanced(
12732 &self,
12733 mode: GLenum,
12734 count: GLsizei,
12735 type_: GLenum,
12736 indices: *const c_void,
12737 instancecount: GLsizei,
12738 ) {
12739 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12740 {
12741 trace!(
12742 "calling gl.DrawElementsInstanced({:#X}, {:?}, {:#X}, {:p}, {:?});",
12743 mode,
12744 count,
12745 type_,
12746 indices,
12747 instancecount
12748 );
12749 }
12750 let out = call_atomic_ptr_5arg(
12751 "glDrawElementsInstanced",
12752 &self.glDrawElementsInstanced_p,
12753 mode,
12754 count,
12755 type_,
12756 indices,
12757 instancecount,
12758 );
12759 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12760 {
12761 self.automatic_glGetError("glDrawElementsInstanced");
12762 }
12763 out
12764 }
12765 #[doc(hidden)]
12766 pub unsafe fn DrawElementsInstanced_load_with_dyn(
12767 &self,
12768 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12769 ) -> bool {
12770 load_dyn_name_atomic_ptr(
12771 get_proc_address,
12772 b"glDrawElementsInstanced\0",
12773 &self.glDrawElementsInstanced_p,
12774 )
12775 }
12776 #[inline]
12777 #[doc(hidden)]
12778 pub fn DrawElementsInstanced_is_loaded(&self) -> bool {
12779 !self.glDrawElementsInstanced_p.load(RELAX).is_null()
12780 }
12781 #[cfg_attr(feature = "inline", inline)]
12787 #[cfg_attr(feature = "inline_always", inline(always))]
12788 pub unsafe fn DrawElementsInstancedARB(
12789 &self,
12790 mode: GLenum,
12791 count: GLsizei,
12792 type_: GLenum,
12793 indices: *const c_void,
12794 primcount: GLsizei,
12795 ) {
12796 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12797 {
12798 trace!(
12799 "calling gl.DrawElementsInstancedARB({:#X}, {:?}, {:#X}, {:p}, {:?});",
12800 mode,
12801 count,
12802 type_,
12803 indices,
12804 primcount
12805 );
12806 }
12807 let out = call_atomic_ptr_5arg(
12808 "glDrawElementsInstancedARB",
12809 &self.glDrawElementsInstancedARB_p,
12810 mode,
12811 count,
12812 type_,
12813 indices,
12814 primcount,
12815 );
12816 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12817 {
12818 self.automatic_glGetError("glDrawElementsInstancedARB");
12819 }
12820 out
12821 }
12822 #[doc(hidden)]
12823 pub unsafe fn DrawElementsInstancedARB_load_with_dyn(
12824 &self,
12825 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12826 ) -> bool {
12827 load_dyn_name_atomic_ptr(
12828 get_proc_address,
12829 b"glDrawElementsInstancedARB\0",
12830 &self.glDrawElementsInstancedARB_p,
12831 )
12832 }
12833 #[inline]
12834 #[doc(hidden)]
12835 pub fn DrawElementsInstancedARB_is_loaded(&self) -> bool {
12836 !self.glDrawElementsInstancedARB_p.load(RELAX).is_null()
12837 }
12838 #[cfg_attr(feature = "inline", inline)]
12843 #[cfg_attr(feature = "inline_always", inline(always))]
12844 pub unsafe fn DrawElementsInstancedBaseInstance(
12845 &self,
12846 mode: GLenum,
12847 count: GLsizei,
12848 type_: GLenum,
12849 indices: *const c_void,
12850 instancecount: GLsizei,
12851 baseinstance: GLuint,
12852 ) {
12853 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12854 {
12855 trace!("calling gl.DrawElementsInstancedBaseInstance({:#X}, {:?}, {:#X}, {:p}, {:?}, {:?});", mode, count, type_, indices, instancecount, baseinstance);
12856 }
12857 let out = call_atomic_ptr_6arg(
12858 "glDrawElementsInstancedBaseInstance",
12859 &self.glDrawElementsInstancedBaseInstance_p,
12860 mode,
12861 count,
12862 type_,
12863 indices,
12864 instancecount,
12865 baseinstance,
12866 );
12867 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12868 {
12869 self.automatic_glGetError("glDrawElementsInstancedBaseInstance");
12870 }
12871 out
12872 }
12873 #[doc(hidden)]
12874 pub unsafe fn DrawElementsInstancedBaseInstance_load_with_dyn(
12875 &self,
12876 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12877 ) -> bool {
12878 load_dyn_name_atomic_ptr(
12879 get_proc_address,
12880 b"glDrawElementsInstancedBaseInstance\0",
12881 &self.glDrawElementsInstancedBaseInstance_p,
12882 )
12883 }
12884 #[inline]
12885 #[doc(hidden)]
12886 pub fn DrawElementsInstancedBaseInstance_is_loaded(&self) -> bool {
12887 !self
12888 .glDrawElementsInstancedBaseInstance_p
12889 .load(RELAX)
12890 .is_null()
12891 }
12892 #[cfg_attr(feature = "inline", inline)]
12897 #[cfg_attr(feature = "inline_always", inline(always))]
12898 pub unsafe fn DrawElementsInstancedBaseVertex(
12899 &self,
12900 mode: GLenum,
12901 count: GLsizei,
12902 type_: GLenum,
12903 indices: *const c_void,
12904 instancecount: GLsizei,
12905 basevertex: GLint,
12906 ) {
12907 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12908 {
12909 trace!("calling gl.DrawElementsInstancedBaseVertex({:#X}, {:?}, {:#X}, {:p}, {:?}, {:?});", mode, count, type_, indices, instancecount, basevertex);
12910 }
12911 let out = call_atomic_ptr_6arg(
12912 "glDrawElementsInstancedBaseVertex",
12913 &self.glDrawElementsInstancedBaseVertex_p,
12914 mode,
12915 count,
12916 type_,
12917 indices,
12918 instancecount,
12919 basevertex,
12920 );
12921 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12922 {
12923 self.automatic_glGetError("glDrawElementsInstancedBaseVertex");
12924 }
12925 out
12926 }
12927 #[doc(hidden)]
12928 pub unsafe fn DrawElementsInstancedBaseVertex_load_with_dyn(
12929 &self,
12930 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12931 ) -> bool {
12932 load_dyn_name_atomic_ptr(
12933 get_proc_address,
12934 b"glDrawElementsInstancedBaseVertex\0",
12935 &self.glDrawElementsInstancedBaseVertex_p,
12936 )
12937 }
12938 #[inline]
12939 #[doc(hidden)]
12940 pub fn DrawElementsInstancedBaseVertex_is_loaded(&self) -> bool {
12941 !self
12942 .glDrawElementsInstancedBaseVertex_p
12943 .load(RELAX)
12944 .is_null()
12945 }
12946 #[cfg_attr(feature = "inline", inline)]
12951 #[cfg_attr(feature = "inline_always", inline(always))]
12952 pub unsafe fn DrawElementsInstancedBaseVertexBaseInstance(
12953 &self,
12954 mode: GLenum,
12955 count: GLsizei,
12956 type_: GLenum,
12957 indices: *const c_void,
12958 instancecount: GLsizei,
12959 basevertex: GLint,
12960 baseinstance: GLuint,
12961 ) {
12962 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
12963 {
12964 trace!("calling gl.DrawElementsInstancedBaseVertexBaseInstance({:#X}, {:?}, {:#X}, {:p}, {:?}, {:?}, {:?});", mode, count, type_, indices, instancecount, basevertex, baseinstance);
12965 }
12966 let out = call_atomic_ptr_7arg(
12967 "glDrawElementsInstancedBaseVertexBaseInstance",
12968 &self.glDrawElementsInstancedBaseVertexBaseInstance_p,
12969 mode,
12970 count,
12971 type_,
12972 indices,
12973 instancecount,
12974 basevertex,
12975 baseinstance,
12976 );
12977 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
12978 {
12979 self.automatic_glGetError("glDrawElementsInstancedBaseVertexBaseInstance");
12980 }
12981 out
12982 }
12983 #[doc(hidden)]
12984 pub unsafe fn DrawElementsInstancedBaseVertexBaseInstance_load_with_dyn(
12985 &self,
12986 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
12987 ) -> bool {
12988 load_dyn_name_atomic_ptr(
12989 get_proc_address,
12990 b"glDrawElementsInstancedBaseVertexBaseInstance\0",
12991 &self.glDrawElementsInstancedBaseVertexBaseInstance_p,
12992 )
12993 }
12994 #[inline]
12995 #[doc(hidden)]
12996 pub fn DrawElementsInstancedBaseVertexBaseInstance_is_loaded(&self) -> bool {
12997 !self
12998 .glDrawElementsInstancedBaseVertexBaseInstance_p
12999 .load(RELAX)
13000 .is_null()
13001 }
13002 #[cfg_attr(feature = "inline", inline)]
13007 #[cfg_attr(feature = "inline_always", inline(always))]
13008 pub unsafe fn DrawRangeElements(
13009 &self,
13010 mode: GLenum,
13011 start: GLuint,
13012 end: GLuint,
13013 count: GLsizei,
13014 type_: GLenum,
13015 indices: *const c_void,
13016 ) {
13017 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13018 {
13019 trace!(
13020 "calling gl.DrawRangeElements({:#X}, {:?}, {:?}, {:?}, {:#X}, {:p});",
13021 mode,
13022 start,
13023 end,
13024 count,
13025 type_,
13026 indices
13027 );
13028 }
13029 let out = call_atomic_ptr_6arg(
13030 "glDrawRangeElements",
13031 &self.glDrawRangeElements_p,
13032 mode,
13033 start,
13034 end,
13035 count,
13036 type_,
13037 indices,
13038 );
13039 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13040 {
13041 self.automatic_glGetError("glDrawRangeElements");
13042 }
13043 out
13044 }
13045 #[doc(hidden)]
13046 pub unsafe fn DrawRangeElements_load_with_dyn(
13047 &self,
13048 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13049 ) -> bool {
13050 load_dyn_name_atomic_ptr(
13051 get_proc_address,
13052 b"glDrawRangeElements\0",
13053 &self.glDrawRangeElements_p,
13054 )
13055 }
13056 #[inline]
13057 #[doc(hidden)]
13058 pub fn DrawRangeElements_is_loaded(&self) -> bool {
13059 !self.glDrawRangeElements_p.load(RELAX).is_null()
13060 }
13061 #[cfg_attr(feature = "inline", inline)]
13066 #[cfg_attr(feature = "inline_always", inline(always))]
13067 pub unsafe fn DrawRangeElementsBaseVertex(
13068 &self,
13069 mode: GLenum,
13070 start: GLuint,
13071 end: GLuint,
13072 count: GLsizei,
13073 type_: GLenum,
13074 indices: *const c_void,
13075 basevertex: GLint,
13076 ) {
13077 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13078 {
13079 trace!("calling gl.DrawRangeElementsBaseVertex({:#X}, {:?}, {:?}, {:?}, {:#X}, {:p}, {:?});", mode, start, end, count, type_, indices, basevertex);
13080 }
13081 let out = call_atomic_ptr_7arg(
13082 "glDrawRangeElementsBaseVertex",
13083 &self.glDrawRangeElementsBaseVertex_p,
13084 mode,
13085 start,
13086 end,
13087 count,
13088 type_,
13089 indices,
13090 basevertex,
13091 );
13092 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13093 {
13094 self.automatic_glGetError("glDrawRangeElementsBaseVertex");
13095 }
13096 out
13097 }
13098 #[doc(hidden)]
13099 pub unsafe fn DrawRangeElementsBaseVertex_load_with_dyn(
13100 &self,
13101 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13102 ) -> bool {
13103 load_dyn_name_atomic_ptr(
13104 get_proc_address,
13105 b"glDrawRangeElementsBaseVertex\0",
13106 &self.glDrawRangeElementsBaseVertex_p,
13107 )
13108 }
13109 #[inline]
13110 #[doc(hidden)]
13111 pub fn DrawRangeElementsBaseVertex_is_loaded(&self) -> bool {
13112 !self.glDrawRangeElementsBaseVertex_p.load(RELAX).is_null()
13113 }
13114 #[cfg_attr(feature = "inline", inline)]
13117 #[cfg_attr(feature = "inline_always", inline(always))]
13118 pub unsafe fn DrawTransformFeedback(&self, mode: GLenum, id: GLuint) {
13119 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13120 {
13121 trace!("calling gl.DrawTransformFeedback({:#X}, {:?});", mode, id);
13122 }
13123 let out = call_atomic_ptr_2arg(
13124 "glDrawTransformFeedback",
13125 &self.glDrawTransformFeedback_p,
13126 mode,
13127 id,
13128 );
13129 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13130 {
13131 self.automatic_glGetError("glDrawTransformFeedback");
13132 }
13133 out
13134 }
13135 #[doc(hidden)]
13136 pub unsafe fn DrawTransformFeedback_load_with_dyn(
13137 &self,
13138 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13139 ) -> bool {
13140 load_dyn_name_atomic_ptr(
13141 get_proc_address,
13142 b"glDrawTransformFeedback\0",
13143 &self.glDrawTransformFeedback_p,
13144 )
13145 }
13146 #[inline]
13147 #[doc(hidden)]
13148 pub fn DrawTransformFeedback_is_loaded(&self) -> bool {
13149 !self.glDrawTransformFeedback_p.load(RELAX).is_null()
13150 }
13151 #[cfg_attr(feature = "inline", inline)]
13154 #[cfg_attr(feature = "inline_always", inline(always))]
13155 pub unsafe fn DrawTransformFeedbackInstanced(
13156 &self,
13157 mode: GLenum,
13158 id: GLuint,
13159 instancecount: GLsizei,
13160 ) {
13161 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13162 {
13163 trace!(
13164 "calling gl.DrawTransformFeedbackInstanced({:#X}, {:?}, {:?});",
13165 mode,
13166 id,
13167 instancecount
13168 );
13169 }
13170 let out = call_atomic_ptr_3arg(
13171 "glDrawTransformFeedbackInstanced",
13172 &self.glDrawTransformFeedbackInstanced_p,
13173 mode,
13174 id,
13175 instancecount,
13176 );
13177 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13178 {
13179 self.automatic_glGetError("glDrawTransformFeedbackInstanced");
13180 }
13181 out
13182 }
13183 #[doc(hidden)]
13184 pub unsafe fn DrawTransformFeedbackInstanced_load_with_dyn(
13185 &self,
13186 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13187 ) -> bool {
13188 load_dyn_name_atomic_ptr(
13189 get_proc_address,
13190 b"glDrawTransformFeedbackInstanced\0",
13191 &self.glDrawTransformFeedbackInstanced_p,
13192 )
13193 }
13194 #[inline]
13195 #[doc(hidden)]
13196 pub fn DrawTransformFeedbackInstanced_is_loaded(&self) -> bool {
13197 !self
13198 .glDrawTransformFeedbackInstanced_p
13199 .load(RELAX)
13200 .is_null()
13201 }
13202 #[cfg_attr(feature = "inline", inline)]
13205 #[cfg_attr(feature = "inline_always", inline(always))]
13206 pub unsafe fn DrawTransformFeedbackStream(&self, mode: GLenum, id: GLuint, stream: GLuint) {
13207 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13208 {
13209 trace!(
13210 "calling gl.DrawTransformFeedbackStream({:#X}, {:?}, {:?});",
13211 mode,
13212 id,
13213 stream
13214 );
13215 }
13216 let out = call_atomic_ptr_3arg(
13217 "glDrawTransformFeedbackStream",
13218 &self.glDrawTransformFeedbackStream_p,
13219 mode,
13220 id,
13221 stream,
13222 );
13223 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13224 {
13225 self.automatic_glGetError("glDrawTransformFeedbackStream");
13226 }
13227 out
13228 }
13229 #[doc(hidden)]
13230 pub unsafe fn DrawTransformFeedbackStream_load_with_dyn(
13231 &self,
13232 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13233 ) -> bool {
13234 load_dyn_name_atomic_ptr(
13235 get_proc_address,
13236 b"glDrawTransformFeedbackStream\0",
13237 &self.glDrawTransformFeedbackStream_p,
13238 )
13239 }
13240 #[inline]
13241 #[doc(hidden)]
13242 pub fn DrawTransformFeedbackStream_is_loaded(&self) -> bool {
13243 !self.glDrawTransformFeedbackStream_p.load(RELAX).is_null()
13244 }
13245 #[cfg_attr(feature = "inline", inline)]
13248 #[cfg_attr(feature = "inline_always", inline(always))]
13249 pub unsafe fn DrawTransformFeedbackStreamInstanced(
13250 &self,
13251 mode: GLenum,
13252 id: GLuint,
13253 stream: GLuint,
13254 instancecount: GLsizei,
13255 ) {
13256 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13257 {
13258 trace!(
13259 "calling gl.DrawTransformFeedbackStreamInstanced({:#X}, {:?}, {:?}, {:?});",
13260 mode,
13261 id,
13262 stream,
13263 instancecount
13264 );
13265 }
13266 let out = call_atomic_ptr_4arg(
13267 "glDrawTransformFeedbackStreamInstanced",
13268 &self.glDrawTransformFeedbackStreamInstanced_p,
13269 mode,
13270 id,
13271 stream,
13272 instancecount,
13273 );
13274 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13275 {
13276 self.automatic_glGetError("glDrawTransformFeedbackStreamInstanced");
13277 }
13278 out
13279 }
13280 #[doc(hidden)]
13281 pub unsafe fn DrawTransformFeedbackStreamInstanced_load_with_dyn(
13282 &self,
13283 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13284 ) -> bool {
13285 load_dyn_name_atomic_ptr(
13286 get_proc_address,
13287 b"glDrawTransformFeedbackStreamInstanced\0",
13288 &self.glDrawTransformFeedbackStreamInstanced_p,
13289 )
13290 }
13291 #[inline]
13292 #[doc(hidden)]
13293 pub fn DrawTransformFeedbackStreamInstanced_is_loaded(&self) -> bool {
13294 !self
13295 .glDrawTransformFeedbackStreamInstanced_p
13296 .load(RELAX)
13297 .is_null()
13298 }
13299 #[cfg_attr(feature = "inline", inline)]
13302 #[cfg_attr(feature = "inline_always", inline(always))]
13303 pub unsafe fn Enable(&self, cap: GLenum) {
13304 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13305 {
13306 trace!("calling gl.Enable({:#X});", cap);
13307 }
13308 let out = call_atomic_ptr_1arg("glEnable", &self.glEnable_p, cap);
13309 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13310 {
13311 self.automatic_glGetError("glEnable");
13312 }
13313 out
13314 }
13315 #[doc(hidden)]
13316 pub unsafe fn Enable_load_with_dyn(
13317 &self,
13318 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13319 ) -> bool {
13320 load_dyn_name_atomic_ptr(get_proc_address, b"glEnable\0", &self.glEnable_p)
13321 }
13322 #[inline]
13323 #[doc(hidden)]
13324 pub fn Enable_is_loaded(&self) -> bool {
13325 !self.glEnable_p.load(RELAX).is_null()
13326 }
13327 #[cfg_attr(feature = "inline", inline)]
13331 #[cfg_attr(feature = "inline_always", inline(always))]
13332 pub unsafe fn EnableIndexedEXT(&self, target: GLenum, index: GLuint) {
13333 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13334 {
13335 trace!("calling gl.EnableIndexedEXT({:#X}, {:?});", target, index);
13336 }
13337 let out = call_atomic_ptr_2arg(
13338 "glEnableIndexedEXT",
13339 &self.glEnableIndexedEXT_p,
13340 target,
13341 index,
13342 );
13343 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13344 {
13345 self.automatic_glGetError("glEnableIndexedEXT");
13346 }
13347 out
13348 }
13349 #[doc(hidden)]
13350 pub unsafe fn EnableIndexedEXT_load_with_dyn(
13351 &self,
13352 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13353 ) -> bool {
13354 load_dyn_name_atomic_ptr(
13355 get_proc_address,
13356 b"glEnableIndexedEXT\0",
13357 &self.glEnableIndexedEXT_p,
13358 )
13359 }
13360 #[inline]
13361 #[doc(hidden)]
13362 pub fn EnableIndexedEXT_is_loaded(&self) -> bool {
13363 !self.glEnableIndexedEXT_p.load(RELAX).is_null()
13364 }
13365 #[cfg_attr(feature = "inline", inline)]
13367 #[cfg_attr(feature = "inline_always", inline(always))]
13368 pub unsafe fn EnableVertexArrayAttrib(&self, vaobj: GLuint, index: GLuint) {
13369 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13370 {
13371 trace!(
13372 "calling gl.EnableVertexArrayAttrib({:?}, {:?});",
13373 vaobj,
13374 index
13375 );
13376 }
13377 let out = call_atomic_ptr_2arg(
13378 "glEnableVertexArrayAttrib",
13379 &self.glEnableVertexArrayAttrib_p,
13380 vaobj,
13381 index,
13382 );
13383 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13384 {
13385 self.automatic_glGetError("glEnableVertexArrayAttrib");
13386 }
13387 out
13388 }
13389 #[doc(hidden)]
13390 pub unsafe fn EnableVertexArrayAttrib_load_with_dyn(
13391 &self,
13392 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13393 ) -> bool {
13394 load_dyn_name_atomic_ptr(
13395 get_proc_address,
13396 b"glEnableVertexArrayAttrib\0",
13397 &self.glEnableVertexArrayAttrib_p,
13398 )
13399 }
13400 #[inline]
13401 #[doc(hidden)]
13402 pub fn EnableVertexArrayAttrib_is_loaded(&self) -> bool {
13403 !self.glEnableVertexArrayAttrib_p.load(RELAX).is_null()
13404 }
13405 #[cfg_attr(feature = "inline", inline)]
13407 #[cfg_attr(feature = "inline_always", inline(always))]
13408 pub unsafe fn EnableVertexAttribArray(&self, index: GLuint) {
13409 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13410 {
13411 trace!("calling gl.EnableVertexAttribArray({:?});", index);
13412 }
13413 let out = call_atomic_ptr_1arg(
13414 "glEnableVertexAttribArray",
13415 &self.glEnableVertexAttribArray_p,
13416 index,
13417 );
13418 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13419 {
13420 self.automatic_glGetError("glEnableVertexAttribArray");
13421 }
13422 out
13423 }
13424 #[doc(hidden)]
13425 pub unsafe fn EnableVertexAttribArray_load_with_dyn(
13426 &self,
13427 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13428 ) -> bool {
13429 load_dyn_name_atomic_ptr(
13430 get_proc_address,
13431 b"glEnableVertexAttribArray\0",
13432 &self.glEnableVertexAttribArray_p,
13433 )
13434 }
13435 #[inline]
13436 #[doc(hidden)]
13437 pub fn EnableVertexAttribArray_is_loaded(&self) -> bool {
13438 !self.glEnableVertexAttribArray_p.load(RELAX).is_null()
13439 }
13440 #[cfg_attr(feature = "inline", inline)]
13443 #[cfg_attr(feature = "inline_always", inline(always))]
13444 pub unsafe fn Enablei(&self, target: GLenum, index: GLuint) {
13445 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13446 {
13447 trace!("calling gl.Enablei({:#X}, {:?});", target, index);
13448 }
13449 let out = call_atomic_ptr_2arg("glEnablei", &self.glEnablei_p, target, index);
13450 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13451 {
13452 self.automatic_glGetError("glEnablei");
13453 }
13454 out
13455 }
13456 #[doc(hidden)]
13457 pub unsafe fn Enablei_load_with_dyn(
13458 &self,
13459 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13460 ) -> bool {
13461 load_dyn_name_atomic_ptr(get_proc_address, b"glEnablei\0", &self.glEnablei_p)
13462 }
13463 #[inline]
13464 #[doc(hidden)]
13465 pub fn Enablei_is_loaded(&self) -> bool {
13466 !self.glEnablei_p.load(RELAX).is_null()
13467 }
13468 #[cfg_attr(feature = "inline", inline)]
13470 #[cfg_attr(feature = "inline_always", inline(always))]
13471 pub unsafe fn EndConditionalRender(&self) {
13472 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13473 {
13474 trace!("calling gl.EndConditionalRender();",);
13475 }
13476 let out =
13477 call_atomic_ptr_0arg("glEndConditionalRender", &self.glEndConditionalRender_p);
13478 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13479 {
13480 self.automatic_glGetError("glEndConditionalRender");
13481 }
13482 out
13483 }
13484 #[doc(hidden)]
13485 pub unsafe fn EndConditionalRender_load_with_dyn(
13486 &self,
13487 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13488 ) -> bool {
13489 load_dyn_name_atomic_ptr(
13490 get_proc_address,
13491 b"glEndConditionalRender\0",
13492 &self.glEndConditionalRender_p,
13493 )
13494 }
13495 #[inline]
13496 #[doc(hidden)]
13497 pub fn EndConditionalRender_is_loaded(&self) -> bool {
13498 !self.glEndConditionalRender_p.load(RELAX).is_null()
13499 }
13500 #[cfg_attr(feature = "inline", inline)]
13503 #[cfg_attr(feature = "inline_always", inline(always))]
13504 pub unsafe fn EndQuery(&self, target: GLenum) {
13505 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13506 {
13507 trace!("calling gl.EndQuery({:#X});", target);
13508 }
13509 let out = call_atomic_ptr_1arg("glEndQuery", &self.glEndQuery_p, target);
13510 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13511 {
13512 self.automatic_glGetError("glEndQuery");
13513 }
13514 out
13515 }
13516 #[doc(hidden)]
13517 pub unsafe fn EndQuery_load_with_dyn(
13518 &self,
13519 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13520 ) -> bool {
13521 load_dyn_name_atomic_ptr(get_proc_address, b"glEndQuery\0", &self.glEndQuery_p)
13522 }
13523 #[inline]
13524 #[doc(hidden)]
13525 pub fn EndQuery_is_loaded(&self) -> bool {
13526 !self.glEndQuery_p.load(RELAX).is_null()
13527 }
13528 #[cfg_attr(feature = "inline", inline)]
13531 #[cfg_attr(feature = "inline_always", inline(always))]
13532 pub unsafe fn EndQueryEXT(&self, target: GLenum) {
13533 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13534 {
13535 trace!("calling gl.EndQueryEXT({:#X});", target);
13536 }
13537 let out = call_atomic_ptr_1arg("glEndQueryEXT", &self.glEndQueryEXT_p, target);
13538 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13539 {
13540 self.automatic_glGetError("glEndQueryEXT");
13541 }
13542 out
13543 }
13544 #[doc(hidden)]
13545 pub unsafe fn EndQueryEXT_load_with_dyn(
13546 &self,
13547 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13548 ) -> bool {
13549 load_dyn_name_atomic_ptr(get_proc_address, b"glEndQueryEXT\0", &self.glEndQueryEXT_p)
13550 }
13551 #[inline]
13552 #[doc(hidden)]
13553 pub fn EndQueryEXT_is_loaded(&self) -> bool {
13554 !self.glEndQueryEXT_p.load(RELAX).is_null()
13555 }
13556 #[cfg_attr(feature = "inline", inline)]
13559 #[cfg_attr(feature = "inline_always", inline(always))]
13560 pub unsafe fn EndQueryIndexed(&self, target: GLenum, index: GLuint) {
13561 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13562 {
13563 trace!("calling gl.EndQueryIndexed({:#X}, {:?});", target, index);
13564 }
13565 let out = call_atomic_ptr_2arg(
13566 "glEndQueryIndexed",
13567 &self.glEndQueryIndexed_p,
13568 target,
13569 index,
13570 );
13571 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13572 {
13573 self.automatic_glGetError("glEndQueryIndexed");
13574 }
13575 out
13576 }
13577 #[doc(hidden)]
13578 pub unsafe fn EndQueryIndexed_load_with_dyn(
13579 &self,
13580 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13581 ) -> bool {
13582 load_dyn_name_atomic_ptr(
13583 get_proc_address,
13584 b"glEndQueryIndexed\0",
13585 &self.glEndQueryIndexed_p,
13586 )
13587 }
13588 #[inline]
13589 #[doc(hidden)]
13590 pub fn EndQueryIndexed_is_loaded(&self) -> bool {
13591 !self.glEndQueryIndexed_p.load(RELAX).is_null()
13592 }
13593 #[cfg_attr(feature = "inline", inline)]
13595 #[cfg_attr(feature = "inline_always", inline(always))]
13596 pub unsafe fn EndTransformFeedback(&self) {
13597 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13598 {
13599 trace!("calling gl.EndTransformFeedback();",);
13600 }
13601 let out =
13602 call_atomic_ptr_0arg("glEndTransformFeedback", &self.glEndTransformFeedback_p);
13603 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13604 {
13605 self.automatic_glGetError("glEndTransformFeedback");
13606 }
13607 out
13608 }
13609 #[doc(hidden)]
13610 pub unsafe fn EndTransformFeedback_load_with_dyn(
13611 &self,
13612 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13613 ) -> bool {
13614 load_dyn_name_atomic_ptr(
13615 get_proc_address,
13616 b"glEndTransformFeedback\0",
13617 &self.glEndTransformFeedback_p,
13618 )
13619 }
13620 #[inline]
13621 #[doc(hidden)]
13622 pub fn EndTransformFeedback_is_loaded(&self) -> bool {
13623 !self.glEndTransformFeedback_p.load(RELAX).is_null()
13624 }
13625 #[cfg_attr(feature = "inline", inline)]
13630 #[cfg_attr(feature = "inline_always", inline(always))]
13631 pub unsafe fn FenceSync(&self, condition: GLenum, flags: GLbitfield) -> GLsync {
13632 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13633 {
13634 trace!("calling gl.FenceSync({:#X}, {:?});", condition, flags);
13635 }
13636 let out = call_atomic_ptr_2arg("glFenceSync", &self.glFenceSync_p, condition, flags);
13637 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13638 {
13639 self.automatic_glGetError("glFenceSync");
13640 }
13641 out
13642 }
13643 #[doc(hidden)]
13644 pub unsafe fn FenceSync_load_with_dyn(
13645 &self,
13646 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13647 ) -> bool {
13648 load_dyn_name_atomic_ptr(get_proc_address, b"glFenceSync\0", &self.glFenceSync_p)
13649 }
13650 #[inline]
13651 #[doc(hidden)]
13652 pub fn FenceSync_is_loaded(&self) -> bool {
13653 !self.glFenceSync_p.load(RELAX).is_null()
13654 }
13655 #[cfg_attr(feature = "inline", inline)]
13657 #[cfg_attr(feature = "inline_always", inline(always))]
13658 pub unsafe fn Finish(&self) {
13659 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13660 {
13661 trace!("calling gl.Finish();",);
13662 }
13663 let out = call_atomic_ptr_0arg("glFinish", &self.glFinish_p);
13664 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13665 {
13666 self.automatic_glGetError("glFinish");
13667 }
13668 out
13669 }
13670 #[doc(hidden)]
13671 pub unsafe fn Finish_load_with_dyn(
13672 &self,
13673 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13674 ) -> bool {
13675 load_dyn_name_atomic_ptr(get_proc_address, b"glFinish\0", &self.glFinish_p)
13676 }
13677 #[inline]
13678 #[doc(hidden)]
13679 pub fn Finish_is_loaded(&self) -> bool {
13680 !self.glFinish_p.load(RELAX).is_null()
13681 }
13682 #[cfg_attr(feature = "inline", inline)]
13684 #[cfg_attr(feature = "inline_always", inline(always))]
13685 pub unsafe fn Flush(&self) {
13686 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13687 {
13688 trace!("calling gl.Flush();",);
13689 }
13690 let out = call_atomic_ptr_0arg("glFlush", &self.glFlush_p);
13691 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13692 {
13693 self.automatic_glGetError("glFlush");
13694 }
13695 out
13696 }
13697 #[doc(hidden)]
13698 pub unsafe fn Flush_load_with_dyn(
13699 &self,
13700 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13701 ) -> bool {
13702 load_dyn_name_atomic_ptr(get_proc_address, b"glFlush\0", &self.glFlush_p)
13703 }
13704 #[inline]
13705 #[doc(hidden)]
13706 pub fn Flush_is_loaded(&self) -> bool {
13707 !self.glFlush_p.load(RELAX).is_null()
13708 }
13709 #[cfg_attr(feature = "inline", inline)]
13714 #[cfg_attr(feature = "inline_always", inline(always))]
13715 pub unsafe fn FlushMappedBufferRange(
13716 &self,
13717 target: GLenum,
13718 offset: GLintptr,
13719 length: GLsizeiptr,
13720 ) {
13721 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13722 {
13723 trace!(
13724 "calling gl.FlushMappedBufferRange({:#X}, {:?}, {:?});",
13725 target,
13726 offset,
13727 length
13728 );
13729 }
13730 let out = call_atomic_ptr_3arg(
13731 "glFlushMappedBufferRange",
13732 &self.glFlushMappedBufferRange_p,
13733 target,
13734 offset,
13735 length,
13736 );
13737 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13738 {
13739 self.automatic_glGetError("glFlushMappedBufferRange");
13740 }
13741 out
13742 }
13743 #[doc(hidden)]
13744 pub unsafe fn FlushMappedBufferRange_load_with_dyn(
13745 &self,
13746 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13747 ) -> bool {
13748 load_dyn_name_atomic_ptr(
13749 get_proc_address,
13750 b"glFlushMappedBufferRange\0",
13751 &self.glFlushMappedBufferRange_p,
13752 )
13753 }
13754 #[inline]
13755 #[doc(hidden)]
13756 pub fn FlushMappedBufferRange_is_loaded(&self) -> bool {
13757 !self.glFlushMappedBufferRange_p.load(RELAX).is_null()
13758 }
13759 #[cfg_attr(feature = "inline", inline)]
13762 #[cfg_attr(feature = "inline_always", inline(always))]
13763 pub unsafe fn FlushMappedNamedBufferRange(
13764 &self,
13765 buffer: GLuint,
13766 offset: GLintptr,
13767 length: GLsizeiptr,
13768 ) {
13769 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13770 {
13771 trace!(
13772 "calling gl.FlushMappedNamedBufferRange({:?}, {:?}, {:?});",
13773 buffer,
13774 offset,
13775 length
13776 );
13777 }
13778 let out = call_atomic_ptr_3arg(
13779 "glFlushMappedNamedBufferRange",
13780 &self.glFlushMappedNamedBufferRange_p,
13781 buffer,
13782 offset,
13783 length,
13784 );
13785 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13786 {
13787 self.automatic_glGetError("glFlushMappedNamedBufferRange");
13788 }
13789 out
13790 }
13791 #[doc(hidden)]
13792 pub unsafe fn FlushMappedNamedBufferRange_load_with_dyn(
13793 &self,
13794 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13795 ) -> bool {
13796 load_dyn_name_atomic_ptr(
13797 get_proc_address,
13798 b"glFlushMappedNamedBufferRange\0",
13799 &self.glFlushMappedNamedBufferRange_p,
13800 )
13801 }
13802 #[inline]
13803 #[doc(hidden)]
13804 pub fn FlushMappedNamedBufferRange_is_loaded(&self) -> bool {
13805 !self.glFlushMappedNamedBufferRange_p.load(RELAX).is_null()
13806 }
13807 #[cfg_attr(feature = "inline", inline)]
13811 #[cfg_attr(feature = "inline_always", inline(always))]
13812 pub unsafe fn FramebufferParameteri(&self, target: GLenum, pname: GLenum, param: GLint) {
13813 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13814 {
13815 trace!(
13816 "calling gl.FramebufferParameteri({:#X}, {:#X}, {:?});",
13817 target,
13818 pname,
13819 param
13820 );
13821 }
13822 let out = call_atomic_ptr_3arg(
13823 "glFramebufferParameteri",
13824 &self.glFramebufferParameteri_p,
13825 target,
13826 pname,
13827 param,
13828 );
13829 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13830 {
13831 self.automatic_glGetError("glFramebufferParameteri");
13832 }
13833 out
13834 }
13835 #[doc(hidden)]
13836 pub unsafe fn FramebufferParameteri_load_with_dyn(
13837 &self,
13838 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13839 ) -> bool {
13840 load_dyn_name_atomic_ptr(
13841 get_proc_address,
13842 b"glFramebufferParameteri\0",
13843 &self.glFramebufferParameteri_p,
13844 )
13845 }
13846 #[inline]
13847 #[doc(hidden)]
13848 pub fn FramebufferParameteri_is_loaded(&self) -> bool {
13849 !self.glFramebufferParameteri_p.load(RELAX).is_null()
13850 }
13851 #[cfg_attr(feature = "inline", inline)]
13856 #[cfg_attr(feature = "inline_always", inline(always))]
13857 pub unsafe fn FramebufferRenderbuffer(
13858 &self,
13859 target: GLenum,
13860 attachment: GLenum,
13861 renderbuffertarget: GLenum,
13862 renderbuffer: GLuint,
13863 ) {
13864 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13865 {
13866 trace!(
13867 "calling gl.FramebufferRenderbuffer({:#X}, {:#X}, {:#X}, {:?});",
13868 target,
13869 attachment,
13870 renderbuffertarget,
13871 renderbuffer
13872 );
13873 }
13874 let out = call_atomic_ptr_4arg(
13875 "glFramebufferRenderbuffer",
13876 &self.glFramebufferRenderbuffer_p,
13877 target,
13878 attachment,
13879 renderbuffertarget,
13880 renderbuffer,
13881 );
13882 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13883 {
13884 self.automatic_glGetError("glFramebufferRenderbuffer");
13885 }
13886 out
13887 }
13888 #[doc(hidden)]
13889 pub unsafe fn FramebufferRenderbuffer_load_with_dyn(
13890 &self,
13891 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13892 ) -> bool {
13893 load_dyn_name_atomic_ptr(
13894 get_proc_address,
13895 b"glFramebufferRenderbuffer\0",
13896 &self.glFramebufferRenderbuffer_p,
13897 )
13898 }
13899 #[inline]
13900 #[doc(hidden)]
13901 pub fn FramebufferRenderbuffer_is_loaded(&self) -> bool {
13902 !self.glFramebufferRenderbuffer_p.load(RELAX).is_null()
13903 }
13904 #[cfg_attr(feature = "inline", inline)]
13908 #[cfg_attr(feature = "inline_always", inline(always))]
13909 pub unsafe fn FramebufferTexture(
13910 &self,
13911 target: GLenum,
13912 attachment: GLenum,
13913 texture: GLuint,
13914 level: GLint,
13915 ) {
13916 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13917 {
13918 trace!(
13919 "calling gl.FramebufferTexture({:#X}, {:#X}, {:?}, {:?});",
13920 target,
13921 attachment,
13922 texture,
13923 level
13924 );
13925 }
13926 let out = call_atomic_ptr_4arg(
13927 "glFramebufferTexture",
13928 &self.glFramebufferTexture_p,
13929 target,
13930 attachment,
13931 texture,
13932 level,
13933 );
13934 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13935 {
13936 self.automatic_glGetError("glFramebufferTexture");
13937 }
13938 out
13939 }
13940 #[doc(hidden)]
13941 pub unsafe fn FramebufferTexture_load_with_dyn(
13942 &self,
13943 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
13944 ) -> bool {
13945 load_dyn_name_atomic_ptr(
13946 get_proc_address,
13947 b"glFramebufferTexture\0",
13948 &self.glFramebufferTexture_p,
13949 )
13950 }
13951 #[inline]
13952 #[doc(hidden)]
13953 pub fn FramebufferTexture_is_loaded(&self) -> bool {
13954 !self.glFramebufferTexture_p.load(RELAX).is_null()
13955 }
13956 #[cfg_attr(feature = "inline", inline)]
13961 #[cfg_attr(feature = "inline_always", inline(always))]
13962 pub unsafe fn FramebufferTexture1D(
13963 &self,
13964 target: GLenum,
13965 attachment: GLenum,
13966 textarget: GLenum,
13967 texture: GLuint,
13968 level: GLint,
13969 ) {
13970 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
13971 {
13972 trace!(
13973 "calling gl.FramebufferTexture1D({:#X}, {:#X}, {:#X}, {:?}, {:?});",
13974 target,
13975 attachment,
13976 textarget,
13977 texture,
13978 level
13979 );
13980 }
13981 let out = call_atomic_ptr_5arg(
13982 "glFramebufferTexture1D",
13983 &self.glFramebufferTexture1D_p,
13984 target,
13985 attachment,
13986 textarget,
13987 texture,
13988 level,
13989 );
13990 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
13991 {
13992 self.automatic_glGetError("glFramebufferTexture1D");
13993 }
13994 out
13995 }
13996 #[doc(hidden)]
13997 pub unsafe fn FramebufferTexture1D_load_with_dyn(
13998 &self,
13999 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14000 ) -> bool {
14001 load_dyn_name_atomic_ptr(
14002 get_proc_address,
14003 b"glFramebufferTexture1D\0",
14004 &self.glFramebufferTexture1D_p,
14005 )
14006 }
14007 #[inline]
14008 #[doc(hidden)]
14009 pub fn FramebufferTexture1D_is_loaded(&self) -> bool {
14010 !self.glFramebufferTexture1D_p.load(RELAX).is_null()
14011 }
14012 #[cfg_attr(feature = "inline", inline)]
14017 #[cfg_attr(feature = "inline_always", inline(always))]
14018 pub unsafe fn FramebufferTexture2D(
14019 &self,
14020 target: GLenum,
14021 attachment: GLenum,
14022 textarget: GLenum,
14023 texture: GLuint,
14024 level: GLint,
14025 ) {
14026 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14027 {
14028 trace!(
14029 "calling gl.FramebufferTexture2D({:#X}, {:#X}, {:#X}, {:?}, {:?});",
14030 target,
14031 attachment,
14032 textarget,
14033 texture,
14034 level
14035 );
14036 }
14037 let out = call_atomic_ptr_5arg(
14038 "glFramebufferTexture2D",
14039 &self.glFramebufferTexture2D_p,
14040 target,
14041 attachment,
14042 textarget,
14043 texture,
14044 level,
14045 );
14046 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14047 {
14048 self.automatic_glGetError("glFramebufferTexture2D");
14049 }
14050 out
14051 }
14052 #[doc(hidden)]
14053 pub unsafe fn FramebufferTexture2D_load_with_dyn(
14054 &self,
14055 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14056 ) -> bool {
14057 load_dyn_name_atomic_ptr(
14058 get_proc_address,
14059 b"glFramebufferTexture2D\0",
14060 &self.glFramebufferTexture2D_p,
14061 )
14062 }
14063 #[inline]
14064 #[doc(hidden)]
14065 pub fn FramebufferTexture2D_is_loaded(&self) -> bool {
14066 !self.glFramebufferTexture2D_p.load(RELAX).is_null()
14067 }
14068 #[cfg_attr(feature = "inline", inline)]
14073 #[cfg_attr(feature = "inline_always", inline(always))]
14074 #[cfg_attr(
14075 docs_rs,
14076 doc(cfg(any(feature = "GL_EXT_multisampled_render_to_texture")))
14077 )]
14078 pub unsafe fn FramebufferTexture2DMultisampleEXT(
14079 &self,
14080 target: GLenum,
14081 attachment: GLenum,
14082 textarget: GLenum,
14083 texture: GLuint,
14084 level: GLint,
14085 samples: GLsizei,
14086 ) {
14087 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14088 {
14089 trace!("calling gl.FramebufferTexture2DMultisampleEXT({:#X}, {:#X}, {:#X}, {:?}, {:?}, {:?});", target, attachment, textarget, texture, level, samples);
14090 }
14091 let out = call_atomic_ptr_6arg(
14092 "glFramebufferTexture2DMultisampleEXT",
14093 &self.glFramebufferTexture2DMultisampleEXT_p,
14094 target,
14095 attachment,
14096 textarget,
14097 texture,
14098 level,
14099 samples,
14100 );
14101 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14102 {
14103 self.automatic_glGetError("glFramebufferTexture2DMultisampleEXT");
14104 }
14105 out
14106 }
14107 #[cfg_attr(
14108 docs_rs,
14109 doc(cfg(any(feature = "GL_EXT_multisampled_render_to_texture")))
14110 )]
14111 #[doc(hidden)]
14112 pub unsafe fn FramebufferTexture2DMultisampleEXT_load_with_dyn(
14113 &self,
14114 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14115 ) -> bool {
14116 load_dyn_name_atomic_ptr(
14117 get_proc_address,
14118 b"glFramebufferTexture2DMultisampleEXT\0",
14119 &self.glFramebufferTexture2DMultisampleEXT_p,
14120 )
14121 }
14122 #[inline]
14123 #[doc(hidden)]
14124 #[cfg_attr(
14125 docs_rs,
14126 doc(cfg(any(feature = "GL_EXT_multisampled_render_to_texture")))
14127 )]
14128 pub fn FramebufferTexture2DMultisampleEXT_is_loaded(&self) -> bool {
14129 !self
14130 .glFramebufferTexture2DMultisampleEXT_p
14131 .load(RELAX)
14132 .is_null()
14133 }
14134 #[cfg_attr(feature = "inline", inline)]
14139 #[cfg_attr(feature = "inline_always", inline(always))]
14140 pub unsafe fn FramebufferTexture3D(
14141 &self,
14142 target: GLenum,
14143 attachment: GLenum,
14144 textarget: GLenum,
14145 texture: GLuint,
14146 level: GLint,
14147 zoffset: GLint,
14148 ) {
14149 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14150 {
14151 trace!(
14152 "calling gl.FramebufferTexture3D({:#X}, {:#X}, {:#X}, {:?}, {:?}, {:?});",
14153 target,
14154 attachment,
14155 textarget,
14156 texture,
14157 level,
14158 zoffset
14159 );
14160 }
14161 let out = call_atomic_ptr_6arg(
14162 "glFramebufferTexture3D",
14163 &self.glFramebufferTexture3D_p,
14164 target,
14165 attachment,
14166 textarget,
14167 texture,
14168 level,
14169 zoffset,
14170 );
14171 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14172 {
14173 self.automatic_glGetError("glFramebufferTexture3D");
14174 }
14175 out
14176 }
14177 #[doc(hidden)]
14178 pub unsafe fn FramebufferTexture3D_load_with_dyn(
14179 &self,
14180 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14181 ) -> bool {
14182 load_dyn_name_atomic_ptr(
14183 get_proc_address,
14184 b"glFramebufferTexture3D\0",
14185 &self.glFramebufferTexture3D_p,
14186 )
14187 }
14188 #[inline]
14189 #[doc(hidden)]
14190 pub fn FramebufferTexture3D_is_loaded(&self) -> bool {
14191 !self.glFramebufferTexture3D_p.load(RELAX).is_null()
14192 }
14193 #[cfg_attr(feature = "inline", inline)]
14200 #[cfg_attr(feature = "inline_always", inline(always))]
14201 pub unsafe fn FramebufferTextureLayer(
14202 &self,
14203 target: GLenum,
14204 attachment: GLenum,
14205 texture: GLuint,
14206 level: GLint,
14207 layer: GLint,
14208 ) {
14209 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14210 {
14211 trace!(
14212 "calling gl.FramebufferTextureLayer({:#X}, {:#X}, {:?}, {:?}, {:?});",
14213 target,
14214 attachment,
14215 texture,
14216 level,
14217 layer
14218 );
14219 }
14220 let out = call_atomic_ptr_5arg(
14221 "glFramebufferTextureLayer",
14222 &self.glFramebufferTextureLayer_p,
14223 target,
14224 attachment,
14225 texture,
14226 level,
14227 layer,
14228 );
14229 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14230 {
14231 self.automatic_glGetError("glFramebufferTextureLayer");
14232 }
14233 out
14234 }
14235 #[doc(hidden)]
14236 pub unsafe fn FramebufferTextureLayer_load_with_dyn(
14237 &self,
14238 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14239 ) -> bool {
14240 load_dyn_name_atomic_ptr(
14241 get_proc_address,
14242 b"glFramebufferTextureLayer\0",
14243 &self.glFramebufferTextureLayer_p,
14244 )
14245 }
14246 #[inline]
14247 #[doc(hidden)]
14248 pub fn FramebufferTextureLayer_is_loaded(&self) -> bool {
14249 !self.glFramebufferTextureLayer_p.load(RELAX).is_null()
14250 }
14251 #[cfg_attr(feature = "inline", inline)]
14254 #[cfg_attr(feature = "inline_always", inline(always))]
14255 pub unsafe fn FrontFace(&self, mode: GLenum) {
14256 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14257 {
14258 trace!("calling gl.FrontFace({:#X});", mode);
14259 }
14260 let out = call_atomic_ptr_1arg("glFrontFace", &self.glFrontFace_p, mode);
14261 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14262 {
14263 self.automatic_glGetError("glFrontFace");
14264 }
14265 out
14266 }
14267 #[doc(hidden)]
14268 pub unsafe fn FrontFace_load_with_dyn(
14269 &self,
14270 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14271 ) -> bool {
14272 load_dyn_name_atomic_ptr(get_proc_address, b"glFrontFace\0", &self.glFrontFace_p)
14273 }
14274 #[inline]
14275 #[doc(hidden)]
14276 pub fn FrontFace_is_loaded(&self) -> bool {
14277 !self.glFrontFace_p.load(RELAX).is_null()
14278 }
14279 #[cfg_attr(feature = "inline", inline)]
14282 #[cfg_attr(feature = "inline_always", inline(always))]
14283 pub unsafe fn GenBuffers(&self, n: GLsizei, buffers: *mut GLuint) {
14284 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14285 {
14286 trace!("calling gl.GenBuffers({:?}, {:p});", n, buffers);
14287 }
14288 let out = call_atomic_ptr_2arg("glGenBuffers", &self.glGenBuffers_p, n, buffers);
14289 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14290 {
14291 self.automatic_glGetError("glGenBuffers");
14292 }
14293 out
14294 }
14295 #[doc(hidden)]
14296 pub unsafe fn GenBuffers_load_with_dyn(
14297 &self,
14298 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14299 ) -> bool {
14300 load_dyn_name_atomic_ptr(get_proc_address, b"glGenBuffers\0", &self.glGenBuffers_p)
14301 }
14302 #[inline]
14303 #[doc(hidden)]
14304 pub fn GenBuffers_is_loaded(&self) -> bool {
14305 !self.glGenBuffers_p.load(RELAX).is_null()
14306 }
14307 #[cfg_attr(feature = "inline", inline)]
14310 #[cfg_attr(feature = "inline_always", inline(always))]
14311 pub unsafe fn GenFramebuffers(&self, n: GLsizei, framebuffers: *mut GLuint) {
14312 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14313 {
14314 trace!("calling gl.GenFramebuffers({:?}, {:p});", n, framebuffers);
14315 }
14316 let out = call_atomic_ptr_2arg(
14317 "glGenFramebuffers",
14318 &self.glGenFramebuffers_p,
14319 n,
14320 framebuffers,
14321 );
14322 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14323 {
14324 self.automatic_glGetError("glGenFramebuffers");
14325 }
14326 out
14327 }
14328 #[doc(hidden)]
14329 pub unsafe fn GenFramebuffers_load_with_dyn(
14330 &self,
14331 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14332 ) -> bool {
14333 load_dyn_name_atomic_ptr(
14334 get_proc_address,
14335 b"glGenFramebuffers\0",
14336 &self.glGenFramebuffers_p,
14337 )
14338 }
14339 #[inline]
14340 #[doc(hidden)]
14341 pub fn GenFramebuffers_is_loaded(&self) -> bool {
14342 !self.glGenFramebuffers_p.load(RELAX).is_null()
14343 }
14344 #[cfg_attr(feature = "inline", inline)]
14347 #[cfg_attr(feature = "inline_always", inline(always))]
14348 pub unsafe fn GenProgramPipelines(&self, n: GLsizei, pipelines: *mut GLuint) {
14349 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14350 {
14351 trace!("calling gl.GenProgramPipelines({:?}, {:p});", n, pipelines);
14352 }
14353 let out = call_atomic_ptr_2arg(
14354 "glGenProgramPipelines",
14355 &self.glGenProgramPipelines_p,
14356 n,
14357 pipelines,
14358 );
14359 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14360 {
14361 self.automatic_glGetError("glGenProgramPipelines");
14362 }
14363 out
14364 }
14365 #[doc(hidden)]
14366 pub unsafe fn GenProgramPipelines_load_with_dyn(
14367 &self,
14368 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14369 ) -> bool {
14370 load_dyn_name_atomic_ptr(
14371 get_proc_address,
14372 b"glGenProgramPipelines\0",
14373 &self.glGenProgramPipelines_p,
14374 )
14375 }
14376 #[inline]
14377 #[doc(hidden)]
14378 pub fn GenProgramPipelines_is_loaded(&self) -> bool {
14379 !self.glGenProgramPipelines_p.load(RELAX).is_null()
14380 }
14381 #[cfg_attr(feature = "inline", inline)]
14384 #[cfg_attr(feature = "inline_always", inline(always))]
14385 pub unsafe fn GenQueries(&self, n: GLsizei, ids: *mut GLuint) {
14386 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14387 {
14388 trace!("calling gl.GenQueries({:?}, {:p});", n, ids);
14389 }
14390 let out = call_atomic_ptr_2arg("glGenQueries", &self.glGenQueries_p, n, ids);
14391 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14392 {
14393 self.automatic_glGetError("glGenQueries");
14394 }
14395 out
14396 }
14397 #[doc(hidden)]
14398 pub unsafe fn GenQueries_load_with_dyn(
14399 &self,
14400 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14401 ) -> bool {
14402 load_dyn_name_atomic_ptr(get_proc_address, b"glGenQueries\0", &self.glGenQueries_p)
14403 }
14404 #[inline]
14405 #[doc(hidden)]
14406 pub fn GenQueries_is_loaded(&self) -> bool {
14407 !self.glGenQueries_p.load(RELAX).is_null()
14408 }
14409 #[cfg_attr(feature = "inline", inline)]
14412 #[cfg_attr(feature = "inline_always", inline(always))]
14413 pub unsafe fn GenQueriesEXT(&self, n: GLsizei, ids: *mut GLuint) {
14414 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14415 {
14416 trace!("calling gl.GenQueriesEXT({:?}, {:p});", n, ids);
14417 }
14418 let out = call_atomic_ptr_2arg("glGenQueriesEXT", &self.glGenQueriesEXT_p, n, ids);
14419 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14420 {
14421 self.automatic_glGetError("glGenQueriesEXT");
14422 }
14423 out
14424 }
14425 #[doc(hidden)]
14426 pub unsafe fn GenQueriesEXT_load_with_dyn(
14427 &self,
14428 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14429 ) -> bool {
14430 load_dyn_name_atomic_ptr(
14431 get_proc_address,
14432 b"glGenQueriesEXT\0",
14433 &self.glGenQueriesEXT_p,
14434 )
14435 }
14436 #[inline]
14437 #[doc(hidden)]
14438 pub fn GenQueriesEXT_is_loaded(&self) -> bool {
14439 !self.glGenQueriesEXT_p.load(RELAX).is_null()
14440 }
14441 #[cfg_attr(feature = "inline", inline)]
14444 #[cfg_attr(feature = "inline_always", inline(always))]
14445 pub unsafe fn GenRenderbuffers(&self, n: GLsizei, renderbuffers: *mut GLuint) {
14446 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14447 {
14448 trace!("calling gl.GenRenderbuffers({:?}, {:p});", n, renderbuffers);
14449 }
14450 let out = call_atomic_ptr_2arg(
14451 "glGenRenderbuffers",
14452 &self.glGenRenderbuffers_p,
14453 n,
14454 renderbuffers,
14455 );
14456 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14457 {
14458 self.automatic_glGetError("glGenRenderbuffers");
14459 }
14460 out
14461 }
14462 #[doc(hidden)]
14463 pub unsafe fn GenRenderbuffers_load_with_dyn(
14464 &self,
14465 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14466 ) -> bool {
14467 load_dyn_name_atomic_ptr(
14468 get_proc_address,
14469 b"glGenRenderbuffers\0",
14470 &self.glGenRenderbuffers_p,
14471 )
14472 }
14473 #[inline]
14474 #[doc(hidden)]
14475 pub fn GenRenderbuffers_is_loaded(&self) -> bool {
14476 !self.glGenRenderbuffers_p.load(RELAX).is_null()
14477 }
14478 #[cfg_attr(feature = "inline", inline)]
14481 #[cfg_attr(feature = "inline_always", inline(always))]
14482 pub unsafe fn GenSamplers(&self, count: GLsizei, samplers: *mut GLuint) {
14483 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14484 {
14485 trace!("calling gl.GenSamplers({:?}, {:p});", count, samplers);
14486 }
14487 let out = call_atomic_ptr_2arg("glGenSamplers", &self.glGenSamplers_p, count, samplers);
14488 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14489 {
14490 self.automatic_glGetError("glGenSamplers");
14491 }
14492 out
14493 }
14494 #[doc(hidden)]
14495 pub unsafe fn GenSamplers_load_with_dyn(
14496 &self,
14497 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14498 ) -> bool {
14499 load_dyn_name_atomic_ptr(get_proc_address, b"glGenSamplers\0", &self.glGenSamplers_p)
14500 }
14501 #[inline]
14502 #[doc(hidden)]
14503 pub fn GenSamplers_is_loaded(&self) -> bool {
14504 !self.glGenSamplers_p.load(RELAX).is_null()
14505 }
14506 #[cfg_attr(feature = "inline", inline)]
14510 #[cfg_attr(feature = "inline_always", inline(always))]
14511 pub unsafe fn GenTextures(&self, n: GLsizei, textures: *mut GLuint) {
14512 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14513 {
14514 trace!("calling gl.GenTextures({:?}, {:p});", n, textures);
14515 }
14516 let out = call_atomic_ptr_2arg("glGenTextures", &self.glGenTextures_p, n, textures);
14517 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14518 {
14519 self.automatic_glGetError("glGenTextures");
14520 }
14521 out
14522 }
14523 #[doc(hidden)]
14524 pub unsafe fn GenTextures_load_with_dyn(
14525 &self,
14526 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14527 ) -> bool {
14528 load_dyn_name_atomic_ptr(get_proc_address, b"glGenTextures\0", &self.glGenTextures_p)
14529 }
14530 #[inline]
14531 #[doc(hidden)]
14532 pub fn GenTextures_is_loaded(&self) -> bool {
14533 !self.glGenTextures_p.load(RELAX).is_null()
14534 }
14535 #[cfg_attr(feature = "inline", inline)]
14538 #[cfg_attr(feature = "inline_always", inline(always))]
14539 pub unsafe fn GenTransformFeedbacks(&self, n: GLsizei, ids: *mut GLuint) {
14540 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14541 {
14542 trace!("calling gl.GenTransformFeedbacks({:?}, {:p});", n, ids);
14543 }
14544 let out = call_atomic_ptr_2arg(
14545 "glGenTransformFeedbacks",
14546 &self.glGenTransformFeedbacks_p,
14547 n,
14548 ids,
14549 );
14550 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14551 {
14552 self.automatic_glGetError("glGenTransformFeedbacks");
14553 }
14554 out
14555 }
14556 #[doc(hidden)]
14557 pub unsafe fn GenTransformFeedbacks_load_with_dyn(
14558 &self,
14559 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14560 ) -> bool {
14561 load_dyn_name_atomic_ptr(
14562 get_proc_address,
14563 b"glGenTransformFeedbacks\0",
14564 &self.glGenTransformFeedbacks_p,
14565 )
14566 }
14567 #[inline]
14568 #[doc(hidden)]
14569 pub fn GenTransformFeedbacks_is_loaded(&self) -> bool {
14570 !self.glGenTransformFeedbacks_p.load(RELAX).is_null()
14571 }
14572 #[cfg_attr(feature = "inline", inline)]
14575 #[cfg_attr(feature = "inline_always", inline(always))]
14576 pub unsafe fn GenVertexArrays(&self, n: GLsizei, arrays: *mut GLuint) {
14577 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14578 {
14579 trace!("calling gl.GenVertexArrays({:?}, {:p});", n, arrays);
14580 }
14581 let out =
14582 call_atomic_ptr_2arg("glGenVertexArrays", &self.glGenVertexArrays_p, n, arrays);
14583 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14584 {
14585 self.automatic_glGetError("glGenVertexArrays");
14586 }
14587 out
14588 }
14589 #[doc(hidden)]
14590 pub unsafe fn GenVertexArrays_load_with_dyn(
14591 &self,
14592 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14593 ) -> bool {
14594 load_dyn_name_atomic_ptr(
14595 get_proc_address,
14596 b"glGenVertexArrays\0",
14597 &self.glGenVertexArrays_p,
14598 )
14599 }
14600 #[inline]
14601 #[doc(hidden)]
14602 pub fn GenVertexArrays_is_loaded(&self) -> bool {
14603 !self.glGenVertexArrays_p.load(RELAX).is_null()
14604 }
14605 #[cfg_attr(feature = "inline", inline)]
14609 #[cfg_attr(feature = "inline_always", inline(always))]
14610 pub unsafe fn GenVertexArraysAPPLE(&self, n: GLsizei, arrays: *mut GLuint) {
14611 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14612 {
14613 trace!("calling gl.GenVertexArraysAPPLE({:?}, {:p});", n, arrays);
14614 }
14615 let out = call_atomic_ptr_2arg(
14616 "glGenVertexArraysAPPLE",
14617 &self.glGenVertexArraysAPPLE_p,
14618 n,
14619 arrays,
14620 );
14621 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14622 {
14623 self.automatic_glGetError("glGenVertexArraysAPPLE");
14624 }
14625 out
14626 }
14627 #[doc(hidden)]
14628 pub unsafe fn GenVertexArraysAPPLE_load_with_dyn(
14629 &self,
14630 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14631 ) -> bool {
14632 load_dyn_name_atomic_ptr(
14633 get_proc_address,
14634 b"glGenVertexArraysAPPLE\0",
14635 &self.glGenVertexArraysAPPLE_p,
14636 )
14637 }
14638 #[inline]
14639 #[doc(hidden)]
14640 pub fn GenVertexArraysAPPLE_is_loaded(&self) -> bool {
14641 !self.glGenVertexArraysAPPLE_p.load(RELAX).is_null()
14642 }
14643 #[cfg_attr(feature = "inline", inline)]
14647 #[cfg_attr(feature = "inline_always", inline(always))]
14648 pub unsafe fn GenVertexArraysOES(&self, n: GLsizei, arrays: *mut GLuint) {
14649 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14650 {
14651 trace!("calling gl.GenVertexArraysOES({:?}, {:p});", n, arrays);
14652 }
14653 let out = call_atomic_ptr_2arg(
14654 "glGenVertexArraysOES",
14655 &self.glGenVertexArraysOES_p,
14656 n,
14657 arrays,
14658 );
14659 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14660 {
14661 self.automatic_glGetError("glGenVertexArraysOES");
14662 }
14663 out
14664 }
14665 #[doc(hidden)]
14666 pub unsafe fn GenVertexArraysOES_load_with_dyn(
14667 &self,
14668 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14669 ) -> bool {
14670 load_dyn_name_atomic_ptr(
14671 get_proc_address,
14672 b"glGenVertexArraysOES\0",
14673 &self.glGenVertexArraysOES_p,
14674 )
14675 }
14676 #[inline]
14677 #[doc(hidden)]
14678 pub fn GenVertexArraysOES_is_loaded(&self) -> bool {
14679 !self.glGenVertexArraysOES_p.load(RELAX).is_null()
14680 }
14681 #[cfg_attr(feature = "inline", inline)]
14684 #[cfg_attr(feature = "inline_always", inline(always))]
14685 pub unsafe fn GenerateMipmap(&self, target: GLenum) {
14686 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14687 {
14688 trace!("calling gl.GenerateMipmap({:#X});", target);
14689 }
14690 let out = call_atomic_ptr_1arg("glGenerateMipmap", &self.glGenerateMipmap_p, target);
14691 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14692 {
14693 self.automatic_glGetError("glGenerateMipmap");
14694 }
14695 out
14696 }
14697 #[doc(hidden)]
14698 pub unsafe fn GenerateMipmap_load_with_dyn(
14699 &self,
14700 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14701 ) -> bool {
14702 load_dyn_name_atomic_ptr(
14703 get_proc_address,
14704 b"glGenerateMipmap\0",
14705 &self.glGenerateMipmap_p,
14706 )
14707 }
14708 #[inline]
14709 #[doc(hidden)]
14710 pub fn GenerateMipmap_is_loaded(&self) -> bool {
14711 !self.glGenerateMipmap_p.load(RELAX).is_null()
14712 }
14713 #[cfg_attr(feature = "inline", inline)]
14715 #[cfg_attr(feature = "inline_always", inline(always))]
14716 pub unsafe fn GenerateTextureMipmap(&self, texture: GLuint) {
14717 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14718 {
14719 trace!("calling gl.GenerateTextureMipmap({:?});", texture);
14720 }
14721 let out = call_atomic_ptr_1arg(
14722 "glGenerateTextureMipmap",
14723 &self.glGenerateTextureMipmap_p,
14724 texture,
14725 );
14726 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14727 {
14728 self.automatic_glGetError("glGenerateTextureMipmap");
14729 }
14730 out
14731 }
14732 #[doc(hidden)]
14733 pub unsafe fn GenerateTextureMipmap_load_with_dyn(
14734 &self,
14735 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14736 ) -> bool {
14737 load_dyn_name_atomic_ptr(
14738 get_proc_address,
14739 b"glGenerateTextureMipmap\0",
14740 &self.glGenerateTextureMipmap_p,
14741 )
14742 }
14743 #[inline]
14744 #[doc(hidden)]
14745 pub fn GenerateTextureMipmap_is_loaded(&self) -> bool {
14746 !self.glGenerateTextureMipmap_p.load(RELAX).is_null()
14747 }
14748 #[cfg_attr(feature = "inline", inline)]
14752 #[cfg_attr(feature = "inline_always", inline(always))]
14753 pub unsafe fn GetActiveAtomicCounterBufferiv(
14754 &self,
14755 program: GLuint,
14756 bufferIndex: GLuint,
14757 pname: GLenum,
14758 params: *mut GLint,
14759 ) {
14760 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14761 {
14762 trace!(
14763 "calling gl.GetActiveAtomicCounterBufferiv({:?}, {:?}, {:#X}, {:p});",
14764 program,
14765 bufferIndex,
14766 pname,
14767 params
14768 );
14769 }
14770 let out = call_atomic_ptr_4arg(
14771 "glGetActiveAtomicCounterBufferiv",
14772 &self.glGetActiveAtomicCounterBufferiv_p,
14773 program,
14774 bufferIndex,
14775 pname,
14776 params,
14777 );
14778 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14779 {
14780 self.automatic_glGetError("glGetActiveAtomicCounterBufferiv");
14781 }
14782 out
14783 }
14784 #[doc(hidden)]
14785 pub unsafe fn GetActiveAtomicCounterBufferiv_load_with_dyn(
14786 &self,
14787 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14788 ) -> bool {
14789 load_dyn_name_atomic_ptr(
14790 get_proc_address,
14791 b"glGetActiveAtomicCounterBufferiv\0",
14792 &self.glGetActiveAtomicCounterBufferiv_p,
14793 )
14794 }
14795 #[inline]
14796 #[doc(hidden)]
14797 pub fn GetActiveAtomicCounterBufferiv_is_loaded(&self) -> bool {
14798 !self
14799 .glGetActiveAtomicCounterBufferiv_p
14800 .load(RELAX)
14801 .is_null()
14802 }
14803 #[cfg_attr(feature = "inline", inline)]
14810 #[cfg_attr(feature = "inline_always", inline(always))]
14811 pub unsafe fn GetActiveAttrib(
14812 &self,
14813 program: GLuint,
14814 index: GLuint,
14815 bufSize: GLsizei,
14816 length: *mut GLsizei,
14817 size: *mut GLint,
14818 type_: *mut GLenum,
14819 name: *mut GLchar,
14820 ) {
14821 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14822 {
14823 trace!(
14824 "calling gl.GetActiveAttrib({:?}, {:?}, {:?}, {:p}, {:p}, {:p}, {:p});",
14825 program,
14826 index,
14827 bufSize,
14828 length,
14829 size,
14830 type_,
14831 name
14832 );
14833 }
14834 let out = call_atomic_ptr_7arg(
14835 "glGetActiveAttrib",
14836 &self.glGetActiveAttrib_p,
14837 program,
14838 index,
14839 bufSize,
14840 length,
14841 size,
14842 type_,
14843 name,
14844 );
14845 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14846 {
14847 self.automatic_glGetError("glGetActiveAttrib");
14848 }
14849 out
14850 }
14851 #[doc(hidden)]
14852 pub unsafe fn GetActiveAttrib_load_with_dyn(
14853 &self,
14854 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14855 ) -> bool {
14856 load_dyn_name_atomic_ptr(
14857 get_proc_address,
14858 b"glGetActiveAttrib\0",
14859 &self.glGetActiveAttrib_p,
14860 )
14861 }
14862 #[inline]
14863 #[doc(hidden)]
14864 pub fn GetActiveAttrib_is_loaded(&self) -> bool {
14865 !self.glGetActiveAttrib_p.load(RELAX).is_null()
14866 }
14867 #[cfg_attr(feature = "inline", inline)]
14872 #[cfg_attr(feature = "inline_always", inline(always))]
14873 pub unsafe fn GetActiveSubroutineName(
14874 &self,
14875 program: GLuint,
14876 shadertype: GLenum,
14877 index: GLuint,
14878 bufSize: GLsizei,
14879 length: *mut GLsizei,
14880 name: *mut GLchar,
14881 ) {
14882 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14883 {
14884 trace!(
14885 "calling gl.GetActiveSubroutineName({:?}, {:#X}, {:?}, {:?}, {:p}, {:p});",
14886 program,
14887 shadertype,
14888 index,
14889 bufSize,
14890 length,
14891 name
14892 );
14893 }
14894 let out = call_atomic_ptr_6arg(
14895 "glGetActiveSubroutineName",
14896 &self.glGetActiveSubroutineName_p,
14897 program,
14898 shadertype,
14899 index,
14900 bufSize,
14901 length,
14902 name,
14903 );
14904 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14905 {
14906 self.automatic_glGetError("glGetActiveSubroutineName");
14907 }
14908 out
14909 }
14910 #[doc(hidden)]
14911 pub unsafe fn GetActiveSubroutineName_load_with_dyn(
14912 &self,
14913 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14914 ) -> bool {
14915 load_dyn_name_atomic_ptr(
14916 get_proc_address,
14917 b"glGetActiveSubroutineName\0",
14918 &self.glGetActiveSubroutineName_p,
14919 )
14920 }
14921 #[inline]
14922 #[doc(hidden)]
14923 pub fn GetActiveSubroutineName_is_loaded(&self) -> bool {
14924 !self.glGetActiveSubroutineName_p.load(RELAX).is_null()
14925 }
14926 #[cfg_attr(feature = "inline", inline)]
14931 #[cfg_attr(feature = "inline_always", inline(always))]
14932 pub unsafe fn GetActiveSubroutineUniformName(
14933 &self,
14934 program: GLuint,
14935 shadertype: GLenum,
14936 index: GLuint,
14937 bufSize: GLsizei,
14938 length: *mut GLsizei,
14939 name: *mut GLchar,
14940 ) {
14941 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14942 {
14943 trace!("calling gl.GetActiveSubroutineUniformName({:?}, {:#X}, {:?}, {:?}, {:p}, {:p});", program, shadertype, index, bufSize, length, name);
14944 }
14945 let out = call_atomic_ptr_6arg(
14946 "glGetActiveSubroutineUniformName",
14947 &self.glGetActiveSubroutineUniformName_p,
14948 program,
14949 shadertype,
14950 index,
14951 bufSize,
14952 length,
14953 name,
14954 );
14955 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
14956 {
14957 self.automatic_glGetError("glGetActiveSubroutineUniformName");
14958 }
14959 out
14960 }
14961 #[doc(hidden)]
14962 pub unsafe fn GetActiveSubroutineUniformName_load_with_dyn(
14963 &self,
14964 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
14965 ) -> bool {
14966 load_dyn_name_atomic_ptr(
14967 get_proc_address,
14968 b"glGetActiveSubroutineUniformName\0",
14969 &self.glGetActiveSubroutineUniformName_p,
14970 )
14971 }
14972 #[inline]
14973 #[doc(hidden)]
14974 pub fn GetActiveSubroutineUniformName_is_loaded(&self) -> bool {
14975 !self
14976 .glGetActiveSubroutineUniformName_p
14977 .load(RELAX)
14978 .is_null()
14979 }
14980 #[cfg_attr(feature = "inline", inline)]
14985 #[cfg_attr(feature = "inline_always", inline(always))]
14986 pub unsafe fn GetActiveSubroutineUniformiv(
14987 &self,
14988 program: GLuint,
14989 shadertype: GLenum,
14990 index: GLuint,
14991 pname: GLenum,
14992 values: *mut GLint,
14993 ) {
14994 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
14995 {
14996 trace!(
14997 "calling gl.GetActiveSubroutineUniformiv({:?}, {:#X}, {:?}, {:#X}, {:p});",
14998 program,
14999 shadertype,
15000 index,
15001 pname,
15002 values
15003 );
15004 }
15005 let out = call_atomic_ptr_5arg(
15006 "glGetActiveSubroutineUniformiv",
15007 &self.glGetActiveSubroutineUniformiv_p,
15008 program,
15009 shadertype,
15010 index,
15011 pname,
15012 values,
15013 );
15014 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15015 {
15016 self.automatic_glGetError("glGetActiveSubroutineUniformiv");
15017 }
15018 out
15019 }
15020 #[doc(hidden)]
15021 pub unsafe fn GetActiveSubroutineUniformiv_load_with_dyn(
15022 &self,
15023 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15024 ) -> bool {
15025 load_dyn_name_atomic_ptr(
15026 get_proc_address,
15027 b"glGetActiveSubroutineUniformiv\0",
15028 &self.glGetActiveSubroutineUniformiv_p,
15029 )
15030 }
15031 #[inline]
15032 #[doc(hidden)]
15033 pub fn GetActiveSubroutineUniformiv_is_loaded(&self) -> bool {
15034 !self.glGetActiveSubroutineUniformiv_p.load(RELAX).is_null()
15035 }
15036 #[cfg_attr(feature = "inline", inline)]
15043 #[cfg_attr(feature = "inline_always", inline(always))]
15044 pub unsafe fn GetActiveUniform(
15045 &self,
15046 program: GLuint,
15047 index: GLuint,
15048 bufSize: GLsizei,
15049 length: *mut GLsizei,
15050 size: *mut GLint,
15051 type_: *mut GLenum,
15052 name: *mut GLchar,
15053 ) {
15054 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15055 {
15056 trace!(
15057 "calling gl.GetActiveUniform({:?}, {:?}, {:?}, {:p}, {:p}, {:p}, {:p});",
15058 program,
15059 index,
15060 bufSize,
15061 length,
15062 size,
15063 type_,
15064 name
15065 );
15066 }
15067 let out = call_atomic_ptr_7arg(
15068 "glGetActiveUniform",
15069 &self.glGetActiveUniform_p,
15070 program,
15071 index,
15072 bufSize,
15073 length,
15074 size,
15075 type_,
15076 name,
15077 );
15078 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15079 {
15080 self.automatic_glGetError("glGetActiveUniform");
15081 }
15082 out
15083 }
15084 #[doc(hidden)]
15085 pub unsafe fn GetActiveUniform_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"glGetActiveUniform\0",
15092 &self.glGetActiveUniform_p,
15093 )
15094 }
15095 #[inline]
15096 #[doc(hidden)]
15097 pub fn GetActiveUniform_is_loaded(&self) -> bool {
15098 !self.glGetActiveUniform_p.load(RELAX).is_null()
15099 }
15100 #[cfg_attr(feature = "inline", inline)]
15104 #[cfg_attr(feature = "inline_always", inline(always))]
15105 pub unsafe fn GetActiveUniformBlockName(
15106 &self,
15107 program: GLuint,
15108 uniformBlockIndex: GLuint,
15109 bufSize: GLsizei,
15110 length: *mut GLsizei,
15111 uniformBlockName: *mut GLchar,
15112 ) {
15113 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15114 {
15115 trace!(
15116 "calling gl.GetActiveUniformBlockName({:?}, {:?}, {:?}, {:p}, {:p});",
15117 program,
15118 uniformBlockIndex,
15119 bufSize,
15120 length,
15121 uniformBlockName
15122 );
15123 }
15124 let out = call_atomic_ptr_5arg(
15125 "glGetActiveUniformBlockName",
15126 &self.glGetActiveUniformBlockName_p,
15127 program,
15128 uniformBlockIndex,
15129 bufSize,
15130 length,
15131 uniformBlockName,
15132 );
15133 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15134 {
15135 self.automatic_glGetError("glGetActiveUniformBlockName");
15136 }
15137 out
15138 }
15139 #[doc(hidden)]
15140 pub unsafe fn GetActiveUniformBlockName_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"glGetActiveUniformBlockName\0",
15147 &self.glGetActiveUniformBlockName_p,
15148 )
15149 }
15150 #[inline]
15151 #[doc(hidden)]
15152 pub fn GetActiveUniformBlockName_is_loaded(&self) -> bool {
15153 !self.glGetActiveUniformBlockName_p.load(RELAX).is_null()
15154 }
15155 #[cfg_attr(feature = "inline", inline)]
15159 #[cfg_attr(feature = "inline_always", inline(always))]
15160 pub unsafe fn GetActiveUniformBlockiv(
15161 &self,
15162 program: GLuint,
15163 uniformBlockIndex: GLuint,
15164 pname: GLenum,
15165 params: *mut GLint,
15166 ) {
15167 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15168 {
15169 trace!(
15170 "calling gl.GetActiveUniformBlockiv({:?}, {:?}, {:#X}, {:p});",
15171 program,
15172 uniformBlockIndex,
15173 pname,
15174 params
15175 );
15176 }
15177 let out = call_atomic_ptr_4arg(
15178 "glGetActiveUniformBlockiv",
15179 &self.glGetActiveUniformBlockiv_p,
15180 program,
15181 uniformBlockIndex,
15182 pname,
15183 params,
15184 );
15185 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15186 {
15187 self.automatic_glGetError("glGetActiveUniformBlockiv");
15188 }
15189 out
15190 }
15191 #[doc(hidden)]
15192 pub unsafe fn GetActiveUniformBlockiv_load_with_dyn(
15193 &self,
15194 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15195 ) -> bool {
15196 load_dyn_name_atomic_ptr(
15197 get_proc_address,
15198 b"glGetActiveUniformBlockiv\0",
15199 &self.glGetActiveUniformBlockiv_p,
15200 )
15201 }
15202 #[inline]
15203 #[doc(hidden)]
15204 pub fn GetActiveUniformBlockiv_is_loaded(&self) -> bool {
15205 !self.glGetActiveUniformBlockiv_p.load(RELAX).is_null()
15206 }
15207 #[cfg_attr(feature = "inline", inline)]
15211 #[cfg_attr(feature = "inline_always", inline(always))]
15212 pub unsafe fn GetActiveUniformName(
15213 &self,
15214 program: GLuint,
15215 uniformIndex: GLuint,
15216 bufSize: GLsizei,
15217 length: *mut GLsizei,
15218 uniformName: *mut GLchar,
15219 ) {
15220 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15221 {
15222 trace!(
15223 "calling gl.GetActiveUniformName({:?}, {:?}, {:?}, {:p}, {:p});",
15224 program,
15225 uniformIndex,
15226 bufSize,
15227 length,
15228 uniformName
15229 );
15230 }
15231 let out = call_atomic_ptr_5arg(
15232 "glGetActiveUniformName",
15233 &self.glGetActiveUniformName_p,
15234 program,
15235 uniformIndex,
15236 bufSize,
15237 length,
15238 uniformName,
15239 );
15240 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15241 {
15242 self.automatic_glGetError("glGetActiveUniformName");
15243 }
15244 out
15245 }
15246 #[doc(hidden)]
15247 pub unsafe fn GetActiveUniformName_load_with_dyn(
15248 &self,
15249 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15250 ) -> bool {
15251 load_dyn_name_atomic_ptr(
15252 get_proc_address,
15253 b"glGetActiveUniformName\0",
15254 &self.glGetActiveUniformName_p,
15255 )
15256 }
15257 #[inline]
15258 #[doc(hidden)]
15259 pub fn GetActiveUniformName_is_loaded(&self) -> bool {
15260 !self.glGetActiveUniformName_p.load(RELAX).is_null()
15261 }
15262 #[cfg_attr(feature = "inline", inline)]
15267 #[cfg_attr(feature = "inline_always", inline(always))]
15268 pub unsafe fn GetActiveUniformsiv(
15269 &self,
15270 program: GLuint,
15271 uniformCount: GLsizei,
15272 uniformIndices: *const GLuint,
15273 pname: GLenum,
15274 params: *mut GLint,
15275 ) {
15276 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15277 {
15278 trace!(
15279 "calling gl.GetActiveUniformsiv({:?}, {:?}, {:p}, {:#X}, {:p});",
15280 program,
15281 uniformCount,
15282 uniformIndices,
15283 pname,
15284 params
15285 );
15286 }
15287 let out = call_atomic_ptr_5arg(
15288 "glGetActiveUniformsiv",
15289 &self.glGetActiveUniformsiv_p,
15290 program,
15291 uniformCount,
15292 uniformIndices,
15293 pname,
15294 params,
15295 );
15296 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15297 {
15298 self.automatic_glGetError("glGetActiveUniformsiv");
15299 }
15300 out
15301 }
15302 #[doc(hidden)]
15303 pub unsafe fn GetActiveUniformsiv_load_with_dyn(
15304 &self,
15305 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15306 ) -> bool {
15307 load_dyn_name_atomic_ptr(
15308 get_proc_address,
15309 b"glGetActiveUniformsiv\0",
15310 &self.glGetActiveUniformsiv_p,
15311 )
15312 }
15313 #[inline]
15314 #[doc(hidden)]
15315 pub fn GetActiveUniformsiv_is_loaded(&self) -> bool {
15316 !self.glGetActiveUniformsiv_p.load(RELAX).is_null()
15317 }
15318 #[cfg_attr(feature = "inline", inline)]
15322 #[cfg_attr(feature = "inline_always", inline(always))]
15323 pub unsafe fn GetAttachedShaders(
15324 &self,
15325 program: GLuint,
15326 maxCount: GLsizei,
15327 count: *mut GLsizei,
15328 shaders: *mut GLuint,
15329 ) {
15330 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15331 {
15332 trace!(
15333 "calling gl.GetAttachedShaders({:?}, {:?}, {:p}, {:p});",
15334 program,
15335 maxCount,
15336 count,
15337 shaders
15338 );
15339 }
15340 let out = call_atomic_ptr_4arg(
15341 "glGetAttachedShaders",
15342 &self.glGetAttachedShaders_p,
15343 program,
15344 maxCount,
15345 count,
15346 shaders,
15347 );
15348 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15349 {
15350 self.automatic_glGetError("glGetAttachedShaders");
15351 }
15352 out
15353 }
15354 #[doc(hidden)]
15355 pub unsafe fn GetAttachedShaders_load_with_dyn(
15356 &self,
15357 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15358 ) -> bool {
15359 load_dyn_name_atomic_ptr(
15360 get_proc_address,
15361 b"glGetAttachedShaders\0",
15362 &self.glGetAttachedShaders_p,
15363 )
15364 }
15365 #[inline]
15366 #[doc(hidden)]
15367 pub fn GetAttachedShaders_is_loaded(&self) -> bool {
15368 !self.glGetAttachedShaders_p.load(RELAX).is_null()
15369 }
15370 #[cfg_attr(feature = "inline", inline)]
15372 #[cfg_attr(feature = "inline_always", inline(always))]
15373 pub unsafe fn GetAttribLocation(&self, program: GLuint, name: *const GLchar) -> GLint {
15374 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15375 {
15376 trace!("calling gl.GetAttribLocation({:?}, {:p});", program, name);
15377 }
15378 let out = call_atomic_ptr_2arg(
15379 "glGetAttribLocation",
15380 &self.glGetAttribLocation_p,
15381 program,
15382 name,
15383 );
15384 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15385 {
15386 self.automatic_glGetError("glGetAttribLocation");
15387 }
15388 out
15389 }
15390 #[doc(hidden)]
15391 pub unsafe fn GetAttribLocation_load_with_dyn(
15392 &self,
15393 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15394 ) -> bool {
15395 load_dyn_name_atomic_ptr(
15396 get_proc_address,
15397 b"glGetAttribLocation\0",
15398 &self.glGetAttribLocation_p,
15399 )
15400 }
15401 #[inline]
15402 #[doc(hidden)]
15403 pub fn GetAttribLocation_is_loaded(&self) -> bool {
15404 !self.glGetAttribLocation_p.load(RELAX).is_null()
15405 }
15406 #[cfg_attr(feature = "inline", inline)]
15411 #[cfg_attr(feature = "inline_always", inline(always))]
15412 pub unsafe fn GetBooleanIndexedvEXT(
15413 &self,
15414 target: GLenum,
15415 index: GLuint,
15416 data: *mut GLboolean,
15417 ) {
15418 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15419 {
15420 trace!(
15421 "calling gl.GetBooleanIndexedvEXT({:#X}, {:?}, {:p});",
15422 target,
15423 index,
15424 data
15425 );
15426 }
15427 let out = call_atomic_ptr_3arg(
15428 "glGetBooleanIndexedvEXT",
15429 &self.glGetBooleanIndexedvEXT_p,
15430 target,
15431 index,
15432 data,
15433 );
15434 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15435 {
15436 self.automatic_glGetError("glGetBooleanIndexedvEXT");
15437 }
15438 out
15439 }
15440 #[doc(hidden)]
15441 pub unsafe fn GetBooleanIndexedvEXT_load_with_dyn(
15442 &self,
15443 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15444 ) -> bool {
15445 load_dyn_name_atomic_ptr(
15446 get_proc_address,
15447 b"glGetBooleanIndexedvEXT\0",
15448 &self.glGetBooleanIndexedvEXT_p,
15449 )
15450 }
15451 #[inline]
15452 #[doc(hidden)]
15453 pub fn GetBooleanIndexedvEXT_is_loaded(&self) -> bool {
15454 !self.glGetBooleanIndexedvEXT_p.load(RELAX).is_null()
15455 }
15456 #[cfg_attr(feature = "inline", inline)]
15460 #[cfg_attr(feature = "inline_always", inline(always))]
15461 pub unsafe fn GetBooleani_v(&self, target: GLenum, index: GLuint, data: *mut GLboolean) {
15462 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15463 {
15464 trace!(
15465 "calling gl.GetBooleani_v({:#X}, {:?}, {:p});",
15466 target,
15467 index,
15468 data
15469 );
15470 }
15471 let out = call_atomic_ptr_3arg(
15472 "glGetBooleani_v",
15473 &self.glGetBooleani_v_p,
15474 target,
15475 index,
15476 data,
15477 );
15478 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15479 {
15480 self.automatic_glGetError("glGetBooleani_v");
15481 }
15482 out
15483 }
15484 #[doc(hidden)]
15485 pub unsafe fn GetBooleani_v_load_with_dyn(
15486 &self,
15487 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15488 ) -> bool {
15489 load_dyn_name_atomic_ptr(
15490 get_proc_address,
15491 b"glGetBooleani_v\0",
15492 &self.glGetBooleani_v_p,
15493 )
15494 }
15495 #[inline]
15496 #[doc(hidden)]
15497 pub fn GetBooleani_v_is_loaded(&self) -> bool {
15498 !self.glGetBooleani_v_p.load(RELAX).is_null()
15499 }
15500 #[cfg_attr(feature = "inline", inline)]
15504 #[cfg_attr(feature = "inline_always", inline(always))]
15505 pub unsafe fn GetBooleanv(&self, pname: GLenum, data: *mut GLboolean) {
15506 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15507 {
15508 trace!("calling gl.GetBooleanv({:#X}, {:p});", pname, data);
15509 }
15510 let out = call_atomic_ptr_2arg("glGetBooleanv", &self.glGetBooleanv_p, pname, data);
15511 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15512 {
15513 self.automatic_glGetError("glGetBooleanv");
15514 }
15515 out
15516 }
15517 #[doc(hidden)]
15518 pub unsafe fn GetBooleanv_load_with_dyn(
15519 &self,
15520 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15521 ) -> bool {
15522 load_dyn_name_atomic_ptr(get_proc_address, b"glGetBooleanv\0", &self.glGetBooleanv_p)
15523 }
15524 #[inline]
15525 #[doc(hidden)]
15526 pub fn GetBooleanv_is_loaded(&self) -> bool {
15527 !self.glGetBooleanv_p.load(RELAX).is_null()
15528 }
15529 #[cfg_attr(feature = "inline", inline)]
15534 #[cfg_attr(feature = "inline_always", inline(always))]
15535 pub unsafe fn GetBufferParameteri64v(
15536 &self,
15537 target: GLenum,
15538 pname: GLenum,
15539 params: *mut GLint64,
15540 ) {
15541 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15542 {
15543 trace!(
15544 "calling gl.GetBufferParameteri64v({:#X}, {:#X}, {:p});",
15545 target,
15546 pname,
15547 params
15548 );
15549 }
15550 let out = call_atomic_ptr_3arg(
15551 "glGetBufferParameteri64v",
15552 &self.glGetBufferParameteri64v_p,
15553 target,
15554 pname,
15555 params,
15556 );
15557 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15558 {
15559 self.automatic_glGetError("glGetBufferParameteri64v");
15560 }
15561 out
15562 }
15563 #[doc(hidden)]
15564 pub unsafe fn GetBufferParameteri64v_load_with_dyn(
15565 &self,
15566 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15567 ) -> bool {
15568 load_dyn_name_atomic_ptr(
15569 get_proc_address,
15570 b"glGetBufferParameteri64v\0",
15571 &self.glGetBufferParameteri64v_p,
15572 )
15573 }
15574 #[inline]
15575 #[doc(hidden)]
15576 pub fn GetBufferParameteri64v_is_loaded(&self) -> bool {
15577 !self.glGetBufferParameteri64v_p.load(RELAX).is_null()
15578 }
15579 #[cfg_attr(feature = "inline", inline)]
15584 #[cfg_attr(feature = "inline_always", inline(always))]
15585 pub unsafe fn GetBufferParameteriv(
15586 &self,
15587 target: GLenum,
15588 pname: GLenum,
15589 params: *mut GLint,
15590 ) {
15591 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15592 {
15593 trace!(
15594 "calling gl.GetBufferParameteriv({:#X}, {:#X}, {:p});",
15595 target,
15596 pname,
15597 params
15598 );
15599 }
15600 let out = call_atomic_ptr_3arg(
15601 "glGetBufferParameteriv",
15602 &self.glGetBufferParameteriv_p,
15603 target,
15604 pname,
15605 params,
15606 );
15607 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15608 {
15609 self.automatic_glGetError("glGetBufferParameteriv");
15610 }
15611 out
15612 }
15613 #[doc(hidden)]
15614 pub unsafe fn GetBufferParameteriv_load_with_dyn(
15615 &self,
15616 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15617 ) -> bool {
15618 load_dyn_name_atomic_ptr(
15619 get_proc_address,
15620 b"glGetBufferParameteriv\0",
15621 &self.glGetBufferParameteriv_p,
15622 )
15623 }
15624 #[inline]
15625 #[doc(hidden)]
15626 pub fn GetBufferParameteriv_is_loaded(&self) -> bool {
15627 !self.glGetBufferParameteriv_p.load(RELAX).is_null()
15628 }
15629 #[cfg_attr(feature = "inline", inline)]
15634 #[cfg_attr(feature = "inline_always", inline(always))]
15635 pub unsafe fn GetBufferPointerv(
15636 &self,
15637 target: GLenum,
15638 pname: GLenum,
15639 params: *mut *mut c_void,
15640 ) {
15641 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15642 {
15643 trace!(
15644 "calling gl.GetBufferPointerv({:#X}, {:#X}, {:p});",
15645 target,
15646 pname,
15647 params
15648 );
15649 }
15650 let out = call_atomic_ptr_3arg(
15651 "glGetBufferPointerv",
15652 &self.glGetBufferPointerv_p,
15653 target,
15654 pname,
15655 params,
15656 );
15657 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15658 {
15659 self.automatic_glGetError("glGetBufferPointerv");
15660 }
15661 out
15662 }
15663 #[doc(hidden)]
15664 pub unsafe fn GetBufferPointerv_load_with_dyn(
15665 &self,
15666 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15667 ) -> bool {
15668 load_dyn_name_atomic_ptr(
15669 get_proc_address,
15670 b"glGetBufferPointerv\0",
15671 &self.glGetBufferPointerv_p,
15672 )
15673 }
15674 #[inline]
15675 #[doc(hidden)]
15676 pub fn GetBufferPointerv_is_loaded(&self) -> bool {
15677 !self.glGetBufferPointerv_p.load(RELAX).is_null()
15678 }
15679 #[cfg_attr(feature = "inline", inline)]
15685 #[cfg_attr(feature = "inline_always", inline(always))]
15686 pub unsafe fn GetBufferSubData(
15687 &self,
15688 target: GLenum,
15689 offset: GLintptr,
15690 size: GLsizeiptr,
15691 data: *mut c_void,
15692 ) {
15693 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15694 {
15695 trace!(
15696 "calling gl.GetBufferSubData({:#X}, {:?}, {:?}, {:p});",
15697 target,
15698 offset,
15699 size,
15700 data
15701 );
15702 }
15703 let out = call_atomic_ptr_4arg(
15704 "glGetBufferSubData",
15705 &self.glGetBufferSubData_p,
15706 target,
15707 offset,
15708 size,
15709 data,
15710 );
15711 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15712 {
15713 self.automatic_glGetError("glGetBufferSubData");
15714 }
15715 out
15716 }
15717 #[doc(hidden)]
15718 pub unsafe fn GetBufferSubData_load_with_dyn(
15719 &self,
15720 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15721 ) -> bool {
15722 load_dyn_name_atomic_ptr(
15723 get_proc_address,
15724 b"glGetBufferSubData\0",
15725 &self.glGetBufferSubData_p,
15726 )
15727 }
15728 #[inline]
15729 #[doc(hidden)]
15730 pub fn GetBufferSubData_is_loaded(&self) -> bool {
15731 !self.glGetBufferSubData_p.load(RELAX).is_null()
15732 }
15733 #[cfg_attr(feature = "inline", inline)]
15739 #[cfg_attr(feature = "inline_always", inline(always))]
15740 pub unsafe fn GetCompressedTexImage(&self, target: GLenum, level: GLint, img: *mut c_void) {
15741 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15742 {
15743 trace!(
15744 "calling gl.GetCompressedTexImage({:#X}, {:?}, {:p});",
15745 target,
15746 level,
15747 img
15748 );
15749 }
15750 let out = call_atomic_ptr_3arg(
15751 "glGetCompressedTexImage",
15752 &self.glGetCompressedTexImage_p,
15753 target,
15754 level,
15755 img,
15756 );
15757 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15758 {
15759 self.automatic_glGetError("glGetCompressedTexImage");
15760 }
15761 out
15762 }
15763 #[doc(hidden)]
15764 pub unsafe fn GetCompressedTexImage_load_with_dyn(
15765 &self,
15766 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15767 ) -> bool {
15768 load_dyn_name_atomic_ptr(
15769 get_proc_address,
15770 b"glGetCompressedTexImage\0",
15771 &self.glGetCompressedTexImage_p,
15772 )
15773 }
15774 #[inline]
15775 #[doc(hidden)]
15776 pub fn GetCompressedTexImage_is_loaded(&self) -> bool {
15777 !self.glGetCompressedTexImage_p.load(RELAX).is_null()
15778 }
15779 #[cfg_attr(feature = "inline", inline)]
15781 #[cfg_attr(feature = "inline_always", inline(always))]
15782 pub unsafe fn GetCompressedTextureImage(
15783 &self,
15784 texture: GLuint,
15785 level: GLint,
15786 bufSize: GLsizei,
15787 pixels: *mut c_void,
15788 ) {
15789 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15790 {
15791 trace!(
15792 "calling gl.GetCompressedTextureImage({:?}, {:?}, {:?}, {:p});",
15793 texture,
15794 level,
15795 bufSize,
15796 pixels
15797 );
15798 }
15799 let out = call_atomic_ptr_4arg(
15800 "glGetCompressedTextureImage",
15801 &self.glGetCompressedTextureImage_p,
15802 texture,
15803 level,
15804 bufSize,
15805 pixels,
15806 );
15807 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15808 {
15809 self.automatic_glGetError("glGetCompressedTextureImage");
15810 }
15811 out
15812 }
15813 #[doc(hidden)]
15814 pub unsafe fn GetCompressedTextureImage_load_with_dyn(
15815 &self,
15816 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15817 ) -> bool {
15818 load_dyn_name_atomic_ptr(
15819 get_proc_address,
15820 b"glGetCompressedTextureImage\0",
15821 &self.glGetCompressedTextureImage_p,
15822 )
15823 }
15824 #[inline]
15825 #[doc(hidden)]
15826 pub fn GetCompressedTextureImage_is_loaded(&self) -> bool {
15827 !self.glGetCompressedTextureImage_p.load(RELAX).is_null()
15828 }
15829 #[cfg_attr(feature = "inline", inline)]
15831 #[cfg_attr(feature = "inline_always", inline(always))]
15832 pub unsafe fn GetCompressedTextureSubImage(
15833 &self,
15834 texture: GLuint,
15835 level: GLint,
15836 xoffset: GLint,
15837 yoffset: GLint,
15838 zoffset: GLint,
15839 width: GLsizei,
15840 height: GLsizei,
15841 depth: GLsizei,
15842 bufSize: GLsizei,
15843 pixels: *mut c_void,
15844 ) {
15845 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15846 {
15847 trace!("calling gl.GetCompressedTextureSubImage({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:p});", texture, level, xoffset, yoffset, zoffset, width, height, depth, bufSize, pixels);
15848 }
15849 let out = call_atomic_ptr_10arg(
15850 "glGetCompressedTextureSubImage",
15851 &self.glGetCompressedTextureSubImage_p,
15852 texture,
15853 level,
15854 xoffset,
15855 yoffset,
15856 zoffset,
15857 width,
15858 height,
15859 depth,
15860 bufSize,
15861 pixels,
15862 );
15863 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15864 {
15865 self.automatic_glGetError("glGetCompressedTextureSubImage");
15866 }
15867 out
15868 }
15869 #[doc(hidden)]
15870 pub unsafe fn GetCompressedTextureSubImage_load_with_dyn(
15871 &self,
15872 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15873 ) -> bool {
15874 load_dyn_name_atomic_ptr(
15875 get_proc_address,
15876 b"glGetCompressedTextureSubImage\0",
15877 &self.glGetCompressedTextureSubImage_p,
15878 )
15879 }
15880 #[inline]
15881 #[doc(hidden)]
15882 pub fn GetCompressedTextureSubImage_is_loaded(&self) -> bool {
15883 !self.glGetCompressedTextureSubImage_p.load(RELAX).is_null()
15884 }
15885 #[cfg_attr(feature = "inline", inline)]
15896 #[cfg_attr(feature = "inline_always", inline(always))]
15897 pub unsafe fn GetDebugMessageLog(
15898 &self,
15899 count: GLuint,
15900 bufSize: GLsizei,
15901 sources: *mut GLenum,
15902 types: *mut GLenum,
15903 ids: *mut GLuint,
15904 severities: *mut GLenum,
15905 lengths: *mut GLsizei,
15906 messageLog: *mut GLchar,
15907 ) -> GLuint {
15908 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15909 {
15910 trace!("calling gl.GetDebugMessageLog({:?}, {:?}, {:p}, {:p}, {:p}, {:p}, {:p}, {:p});", count, bufSize, sources, types, ids, severities, lengths, messageLog);
15911 }
15912 let out = call_atomic_ptr_8arg(
15913 "glGetDebugMessageLog",
15914 &self.glGetDebugMessageLog_p,
15915 count,
15916 bufSize,
15917 sources,
15918 types,
15919 ids,
15920 severities,
15921 lengths,
15922 messageLog,
15923 );
15924 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15925 {
15926 self.automatic_glGetError("glGetDebugMessageLog");
15927 }
15928 out
15929 }
15930 #[doc(hidden)]
15931 pub unsafe fn GetDebugMessageLog_load_with_dyn(
15932 &self,
15933 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15934 ) -> bool {
15935 load_dyn_name_atomic_ptr(
15936 get_proc_address,
15937 b"glGetDebugMessageLog\0",
15938 &self.glGetDebugMessageLog_p,
15939 )
15940 }
15941 #[inline]
15942 #[doc(hidden)]
15943 pub fn GetDebugMessageLog_is_loaded(&self) -> bool {
15944 !self.glGetDebugMessageLog_p.load(RELAX).is_null()
15945 }
15946 #[cfg_attr(feature = "inline", inline)]
15958 #[cfg_attr(feature = "inline_always", inline(always))]
15959 pub unsafe fn GetDebugMessageLogARB(
15960 &self,
15961 count: GLuint,
15962 bufSize: GLsizei,
15963 sources: *mut GLenum,
15964 types: *mut GLenum,
15965 ids: *mut GLuint,
15966 severities: *mut GLenum,
15967 lengths: *mut GLsizei,
15968 messageLog: *mut GLchar,
15969 ) -> GLuint {
15970 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
15971 {
15972 trace!("calling gl.GetDebugMessageLogARB({:?}, {:?}, {:p}, {:p}, {:p}, {:p}, {:p}, {:p});", count, bufSize, sources, types, ids, severities, lengths, messageLog);
15973 }
15974 let out = call_atomic_ptr_8arg(
15975 "glGetDebugMessageLogARB",
15976 &self.glGetDebugMessageLogARB_p,
15977 count,
15978 bufSize,
15979 sources,
15980 types,
15981 ids,
15982 severities,
15983 lengths,
15984 messageLog,
15985 );
15986 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
15987 {
15988 self.automatic_glGetError("glGetDebugMessageLogARB");
15989 }
15990 out
15991 }
15992 #[doc(hidden)]
15993 pub unsafe fn GetDebugMessageLogARB_load_with_dyn(
15994 &self,
15995 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
15996 ) -> bool {
15997 load_dyn_name_atomic_ptr(
15998 get_proc_address,
15999 b"glGetDebugMessageLogARB\0",
16000 &self.glGetDebugMessageLogARB_p,
16001 )
16002 }
16003 #[inline]
16004 #[doc(hidden)]
16005 pub fn GetDebugMessageLogARB_is_loaded(&self) -> bool {
16006 !self.glGetDebugMessageLogARB_p.load(RELAX).is_null()
16007 }
16008 #[cfg_attr(feature = "inline", inline)]
16020 #[cfg_attr(feature = "inline_always", inline(always))]
16021 pub unsafe fn GetDebugMessageLogKHR(
16022 &self,
16023 count: GLuint,
16024 bufSize: GLsizei,
16025 sources: *mut GLenum,
16026 types: *mut GLenum,
16027 ids: *mut GLuint,
16028 severities: *mut GLenum,
16029 lengths: *mut GLsizei,
16030 messageLog: *mut GLchar,
16031 ) -> GLuint {
16032 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16033 {
16034 trace!("calling gl.GetDebugMessageLogKHR({:?}, {:?}, {:p}, {:p}, {:p}, {:p}, {:p}, {:p});", count, bufSize, sources, types, ids, severities, lengths, messageLog);
16035 }
16036 let out = call_atomic_ptr_8arg(
16037 "glGetDebugMessageLogKHR",
16038 &self.glGetDebugMessageLogKHR_p,
16039 count,
16040 bufSize,
16041 sources,
16042 types,
16043 ids,
16044 severities,
16045 lengths,
16046 messageLog,
16047 );
16048 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16049 {
16050 self.automatic_glGetError("glGetDebugMessageLogKHR");
16051 }
16052 out
16053 }
16054 #[doc(hidden)]
16055 pub unsafe fn GetDebugMessageLogKHR_load_with_dyn(
16056 &self,
16057 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16058 ) -> bool {
16059 load_dyn_name_atomic_ptr(
16060 get_proc_address,
16061 b"glGetDebugMessageLogKHR\0",
16062 &self.glGetDebugMessageLogKHR_p,
16063 )
16064 }
16065 #[inline]
16066 #[doc(hidden)]
16067 pub fn GetDebugMessageLogKHR_is_loaded(&self) -> bool {
16068 !self.glGetDebugMessageLogKHR_p.load(RELAX).is_null()
16069 }
16070 #[cfg_attr(feature = "inline", inline)]
16074 #[cfg_attr(feature = "inline_always", inline(always))]
16075 pub unsafe fn GetDoublei_v(&self, target: GLenum, index: GLuint, data: *mut GLdouble) {
16076 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16077 {
16078 trace!(
16079 "calling gl.GetDoublei_v({:#X}, {:?}, {:p});",
16080 target,
16081 index,
16082 data
16083 );
16084 }
16085 let out = call_atomic_ptr_3arg(
16086 "glGetDoublei_v",
16087 &self.glGetDoublei_v_p,
16088 target,
16089 index,
16090 data,
16091 );
16092 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16093 {
16094 self.automatic_glGetError("glGetDoublei_v");
16095 }
16096 out
16097 }
16098 #[doc(hidden)]
16099 pub unsafe fn GetDoublei_v_load_with_dyn(
16100 &self,
16101 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16102 ) -> bool {
16103 load_dyn_name_atomic_ptr(
16104 get_proc_address,
16105 b"glGetDoublei_v\0",
16106 &self.glGetDoublei_v_p,
16107 )
16108 }
16109 #[inline]
16110 #[doc(hidden)]
16111 pub fn GetDoublei_v_is_loaded(&self) -> bool {
16112 !self.glGetDoublei_v_p.load(RELAX).is_null()
16113 }
16114 #[cfg_attr(feature = "inline", inline)]
16118 #[cfg_attr(feature = "inline_always", inline(always))]
16119 pub unsafe fn GetDoublev(&self, pname: GLenum, data: *mut GLdouble) {
16120 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16121 {
16122 trace!("calling gl.GetDoublev({:#X}, {:p});", pname, data);
16123 }
16124 let out = call_atomic_ptr_2arg("glGetDoublev", &self.glGetDoublev_p, pname, data);
16125 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16126 {
16127 self.automatic_glGetError("glGetDoublev");
16128 }
16129 out
16130 }
16131 #[doc(hidden)]
16132 pub unsafe fn GetDoublev_load_with_dyn(
16133 &self,
16134 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16135 ) -> bool {
16136 load_dyn_name_atomic_ptr(get_proc_address, b"glGetDoublev\0", &self.glGetDoublev_p)
16137 }
16138 #[inline]
16139 #[doc(hidden)]
16140 pub fn GetDoublev_is_loaded(&self) -> bool {
16141 !self.glGetDoublev_p.load(RELAX).is_null()
16142 }
16143 #[cfg_attr(feature = "inline", inline)]
16146 #[cfg_attr(feature = "inline_always", inline(always))]
16147 pub unsafe fn GetError(&self) -> GLenum {
16148 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16149 {
16150 trace!("calling gl.GetError();",);
16151 }
16152 let out = call_atomic_ptr_0arg("glGetError", &self.glGetError_p);
16153
16154 out
16155 }
16156 #[doc(hidden)]
16157 pub unsafe fn GetError_load_with_dyn(
16158 &self,
16159 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16160 ) -> bool {
16161 load_dyn_name_atomic_ptr(get_proc_address, b"glGetError\0", &self.glGetError_p)
16162 }
16163 #[inline]
16164 #[doc(hidden)]
16165 pub fn GetError_is_loaded(&self) -> bool {
16166 !self.glGetError_p.load(RELAX).is_null()
16167 }
16168 #[cfg_attr(feature = "inline", inline)]
16172 #[cfg_attr(feature = "inline_always", inline(always))]
16173 pub unsafe fn GetFloati_v(&self, target: GLenum, index: GLuint, data: *mut GLfloat) {
16174 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16175 {
16176 trace!(
16177 "calling gl.GetFloati_v({:#X}, {:?}, {:p});",
16178 target,
16179 index,
16180 data
16181 );
16182 }
16183 let out =
16184 call_atomic_ptr_3arg("glGetFloati_v", &self.glGetFloati_v_p, target, index, data);
16185 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16186 {
16187 self.automatic_glGetError("glGetFloati_v");
16188 }
16189 out
16190 }
16191 #[doc(hidden)]
16192 pub unsafe fn GetFloati_v_load_with_dyn(
16193 &self,
16194 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16195 ) -> bool {
16196 load_dyn_name_atomic_ptr(get_proc_address, b"glGetFloati_v\0", &self.glGetFloati_v_p)
16197 }
16198 #[inline]
16199 #[doc(hidden)]
16200 pub fn GetFloati_v_is_loaded(&self) -> bool {
16201 !self.glGetFloati_v_p.load(RELAX).is_null()
16202 }
16203 #[cfg_attr(feature = "inline", inline)]
16207 #[cfg_attr(feature = "inline_always", inline(always))]
16208 pub unsafe fn GetFloatv(&self, pname: GLenum, data: *mut GLfloat) {
16209 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16210 {
16211 trace!("calling gl.GetFloatv({:#X}, {:p});", pname, data);
16212 }
16213 let out = call_atomic_ptr_2arg("glGetFloatv", &self.glGetFloatv_p, pname, data);
16214 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16215 {
16216 self.automatic_glGetError("glGetFloatv");
16217 }
16218 out
16219 }
16220 #[doc(hidden)]
16221 pub unsafe fn GetFloatv_load_with_dyn(
16222 &self,
16223 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16224 ) -> bool {
16225 load_dyn_name_atomic_ptr(get_proc_address, b"glGetFloatv\0", &self.glGetFloatv_p)
16226 }
16227 #[inline]
16228 #[doc(hidden)]
16229 pub fn GetFloatv_is_loaded(&self) -> bool {
16230 !self.glGetFloatv_p.load(RELAX).is_null()
16231 }
16232 #[cfg_attr(feature = "inline", inline)]
16234 #[cfg_attr(feature = "inline_always", inline(always))]
16235 pub unsafe fn GetFragDataIndex(&self, program: GLuint, name: *const GLchar) -> GLint {
16236 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16237 {
16238 trace!("calling gl.GetFragDataIndex({:?}, {:p});", program, name);
16239 }
16240 let out = call_atomic_ptr_2arg(
16241 "glGetFragDataIndex",
16242 &self.glGetFragDataIndex_p,
16243 program,
16244 name,
16245 );
16246 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16247 {
16248 self.automatic_glGetError("glGetFragDataIndex");
16249 }
16250 out
16251 }
16252 #[doc(hidden)]
16253 pub unsafe fn GetFragDataIndex_load_with_dyn(
16254 &self,
16255 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16256 ) -> bool {
16257 load_dyn_name_atomic_ptr(
16258 get_proc_address,
16259 b"glGetFragDataIndex\0",
16260 &self.glGetFragDataIndex_p,
16261 )
16262 }
16263 #[inline]
16264 #[doc(hidden)]
16265 pub fn GetFragDataIndex_is_loaded(&self) -> bool {
16266 !self.glGetFragDataIndex_p.load(RELAX).is_null()
16267 }
16268 #[cfg_attr(feature = "inline", inline)]
16271 #[cfg_attr(feature = "inline_always", inline(always))]
16272 pub unsafe fn GetFragDataLocation(&self, program: GLuint, name: *const GLchar) -> GLint {
16273 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16274 {
16275 trace!("calling gl.GetFragDataLocation({:?}, {:p});", program, name);
16276 }
16277 let out = call_atomic_ptr_2arg(
16278 "glGetFragDataLocation",
16279 &self.glGetFragDataLocation_p,
16280 program,
16281 name,
16282 );
16283 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16284 {
16285 self.automatic_glGetError("glGetFragDataLocation");
16286 }
16287 out
16288 }
16289 #[doc(hidden)]
16290 pub unsafe fn GetFragDataLocation_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"glGetFragDataLocation\0",
16297 &self.glGetFragDataLocation_p,
16298 )
16299 }
16300 #[inline]
16301 #[doc(hidden)]
16302 pub fn GetFragDataLocation_is_loaded(&self) -> bool {
16303 !self.glGetFragDataLocation_p.load(RELAX).is_null()
16304 }
16305 #[cfg_attr(feature = "inline", inline)]
16311 #[cfg_attr(feature = "inline_always", inline(always))]
16312 pub unsafe fn GetFramebufferAttachmentParameteriv(
16313 &self,
16314 target: GLenum,
16315 attachment: GLenum,
16316 pname: GLenum,
16317 params: *mut GLint,
16318 ) {
16319 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16320 {
16321 trace!(
16322 "calling gl.GetFramebufferAttachmentParameteriv({:#X}, {:#X}, {:#X}, {:p});",
16323 target,
16324 attachment,
16325 pname,
16326 params
16327 );
16328 }
16329 let out = call_atomic_ptr_4arg(
16330 "glGetFramebufferAttachmentParameteriv",
16331 &self.glGetFramebufferAttachmentParameteriv_p,
16332 target,
16333 attachment,
16334 pname,
16335 params,
16336 );
16337 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16338 {
16339 self.automatic_glGetError("glGetFramebufferAttachmentParameteriv");
16340 }
16341 out
16342 }
16343 #[doc(hidden)]
16344 pub unsafe fn GetFramebufferAttachmentParameteriv_load_with_dyn(
16345 &self,
16346 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16347 ) -> bool {
16348 load_dyn_name_atomic_ptr(
16349 get_proc_address,
16350 b"glGetFramebufferAttachmentParameteriv\0",
16351 &self.glGetFramebufferAttachmentParameteriv_p,
16352 )
16353 }
16354 #[inline]
16355 #[doc(hidden)]
16356 pub fn GetFramebufferAttachmentParameteriv_is_loaded(&self) -> bool {
16357 !self
16358 .glGetFramebufferAttachmentParameteriv_p
16359 .load(RELAX)
16360 .is_null()
16361 }
16362 #[cfg_attr(feature = "inline", inline)]
16367 #[cfg_attr(feature = "inline_always", inline(always))]
16368 pub unsafe fn GetFramebufferParameteriv(
16369 &self,
16370 target: GLenum,
16371 pname: GLenum,
16372 params: *mut GLint,
16373 ) {
16374 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16375 {
16376 trace!(
16377 "calling gl.GetFramebufferParameteriv({:#X}, {:#X}, {:p});",
16378 target,
16379 pname,
16380 params
16381 );
16382 }
16383 let out = call_atomic_ptr_3arg(
16384 "glGetFramebufferParameteriv",
16385 &self.glGetFramebufferParameteriv_p,
16386 target,
16387 pname,
16388 params,
16389 );
16390 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16391 {
16392 self.automatic_glGetError("glGetFramebufferParameteriv");
16393 }
16394 out
16395 }
16396 #[doc(hidden)]
16397 pub unsafe fn GetFramebufferParameteriv_load_with_dyn(
16398 &self,
16399 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16400 ) -> bool {
16401 load_dyn_name_atomic_ptr(
16402 get_proc_address,
16403 b"glGetFramebufferParameteriv\0",
16404 &self.glGetFramebufferParameteriv_p,
16405 )
16406 }
16407 #[inline]
16408 #[doc(hidden)]
16409 pub fn GetFramebufferParameteriv_is_loaded(&self) -> bool {
16410 !self.glGetFramebufferParameteriv_p.load(RELAX).is_null()
16411 }
16412 #[cfg_attr(feature = "inline", inline)]
16415 #[cfg_attr(feature = "inline_always", inline(always))]
16416 pub unsafe fn GetGraphicsResetStatus(&self) -> GLenum {
16417 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16418 {
16419 trace!("calling gl.GetGraphicsResetStatus();",);
16420 }
16421 let out =
16422 call_atomic_ptr_0arg("glGetGraphicsResetStatus", &self.glGetGraphicsResetStatus_p);
16423 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16424 {
16425 self.automatic_glGetError("glGetGraphicsResetStatus");
16426 }
16427 out
16428 }
16429 #[doc(hidden)]
16430 pub unsafe fn GetGraphicsResetStatus_load_with_dyn(
16431 &self,
16432 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16433 ) -> bool {
16434 load_dyn_name_atomic_ptr(
16435 get_proc_address,
16436 b"glGetGraphicsResetStatus\0",
16437 &self.glGetGraphicsResetStatus_p,
16438 )
16439 }
16440 #[inline]
16441 #[doc(hidden)]
16442 pub fn GetGraphicsResetStatus_is_loaded(&self) -> bool {
16443 !self.glGetGraphicsResetStatus_p.load(RELAX).is_null()
16444 }
16445 #[cfg_attr(feature = "inline", inline)]
16449 #[cfg_attr(feature = "inline_always", inline(always))]
16450 pub unsafe fn GetInteger64i_v(&self, target: GLenum, index: GLuint, data: *mut GLint64) {
16451 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16452 {
16453 trace!(
16454 "calling gl.GetInteger64i_v({:#X}, {:?}, {:p});",
16455 target,
16456 index,
16457 data
16458 );
16459 }
16460 let out = call_atomic_ptr_3arg(
16461 "glGetInteger64i_v",
16462 &self.glGetInteger64i_v_p,
16463 target,
16464 index,
16465 data,
16466 );
16467 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16468 {
16469 self.automatic_glGetError("glGetInteger64i_v");
16470 }
16471 out
16472 }
16473 #[doc(hidden)]
16474 pub unsafe fn GetInteger64i_v_load_with_dyn(
16475 &self,
16476 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16477 ) -> bool {
16478 load_dyn_name_atomic_ptr(
16479 get_proc_address,
16480 b"glGetInteger64i_v\0",
16481 &self.glGetInteger64i_v_p,
16482 )
16483 }
16484 #[inline]
16485 #[doc(hidden)]
16486 pub fn GetInteger64i_v_is_loaded(&self) -> bool {
16487 !self.glGetInteger64i_v_p.load(RELAX).is_null()
16488 }
16489 #[cfg_attr(feature = "inline", inline)]
16493 #[cfg_attr(feature = "inline_always", inline(always))]
16494 pub unsafe fn GetInteger64v(&self, pname: GLenum, data: *mut GLint64) {
16495 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16496 {
16497 trace!("calling gl.GetInteger64v({:#X}, {:p});", pname, data);
16498 }
16499 let out = call_atomic_ptr_2arg("glGetInteger64v", &self.glGetInteger64v_p, pname, data);
16500 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16501 {
16502 self.automatic_glGetError("glGetInteger64v");
16503 }
16504 out
16505 }
16506 #[doc(hidden)]
16507 pub unsafe fn GetInteger64v_load_with_dyn(
16508 &self,
16509 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16510 ) -> bool {
16511 load_dyn_name_atomic_ptr(
16512 get_proc_address,
16513 b"glGetInteger64v\0",
16514 &self.glGetInteger64v_p,
16515 )
16516 }
16517 #[inline]
16518 #[doc(hidden)]
16519 pub fn GetInteger64v_is_loaded(&self) -> bool {
16520 !self.glGetInteger64v_p.load(RELAX).is_null()
16521 }
16522 #[cfg_attr(feature = "inline", inline)]
16527 #[cfg_attr(feature = "inline_always", inline(always))]
16528 pub unsafe fn GetInteger64vEXT(&self, pname: GLenum, data: *mut GLint64) {
16529 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16530 {
16531 trace!("calling gl.GetInteger64vEXT({:#X}, {:p});", pname, data);
16532 }
16533 let out = call_atomic_ptr_2arg(
16534 "glGetInteger64vEXT",
16535 &self.glGetInteger64vEXT_p,
16536 pname,
16537 data,
16538 );
16539 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16540 {
16541 self.automatic_glGetError("glGetInteger64vEXT");
16542 }
16543 out
16544 }
16545 #[doc(hidden)]
16546 pub unsafe fn GetInteger64vEXT_load_with_dyn(
16547 &self,
16548 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16549 ) -> bool {
16550 load_dyn_name_atomic_ptr(
16551 get_proc_address,
16552 b"glGetInteger64vEXT\0",
16553 &self.glGetInteger64vEXT_p,
16554 )
16555 }
16556 #[inline]
16557 #[doc(hidden)]
16558 pub fn GetInteger64vEXT_is_loaded(&self) -> bool {
16559 !self.glGetInteger64vEXT_p.load(RELAX).is_null()
16560 }
16561 #[cfg_attr(feature = "inline", inline)]
16566 #[cfg_attr(feature = "inline_always", inline(always))]
16567 pub unsafe fn GetIntegerIndexedvEXT(
16568 &self,
16569 target: GLenum,
16570 index: GLuint,
16571 data: *mut GLint,
16572 ) {
16573 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16574 {
16575 trace!(
16576 "calling gl.GetIntegerIndexedvEXT({:#X}, {:?}, {:p});",
16577 target,
16578 index,
16579 data
16580 );
16581 }
16582 let out = call_atomic_ptr_3arg(
16583 "glGetIntegerIndexedvEXT",
16584 &self.glGetIntegerIndexedvEXT_p,
16585 target,
16586 index,
16587 data,
16588 );
16589 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16590 {
16591 self.automatic_glGetError("glGetIntegerIndexedvEXT");
16592 }
16593 out
16594 }
16595 #[doc(hidden)]
16596 pub unsafe fn GetIntegerIndexedvEXT_load_with_dyn(
16597 &self,
16598 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16599 ) -> bool {
16600 load_dyn_name_atomic_ptr(
16601 get_proc_address,
16602 b"glGetIntegerIndexedvEXT\0",
16603 &self.glGetIntegerIndexedvEXT_p,
16604 )
16605 }
16606 #[inline]
16607 #[doc(hidden)]
16608 pub fn GetIntegerIndexedvEXT_is_loaded(&self) -> bool {
16609 !self.glGetIntegerIndexedvEXT_p.load(RELAX).is_null()
16610 }
16611 #[cfg_attr(feature = "inline", inline)]
16615 #[cfg_attr(feature = "inline_always", inline(always))]
16616 pub unsafe fn GetIntegeri_v(&self, target: GLenum, index: GLuint, data: *mut GLint) {
16617 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16618 {
16619 trace!(
16620 "calling gl.GetIntegeri_v({:#X}, {:?}, {:p});",
16621 target,
16622 index,
16623 data
16624 );
16625 }
16626 let out = call_atomic_ptr_3arg(
16627 "glGetIntegeri_v",
16628 &self.glGetIntegeri_v_p,
16629 target,
16630 index,
16631 data,
16632 );
16633 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16634 {
16635 self.automatic_glGetError("glGetIntegeri_v");
16636 }
16637 out
16638 }
16639 #[doc(hidden)]
16640 pub unsafe fn GetIntegeri_v_load_with_dyn(
16641 &self,
16642 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16643 ) -> bool {
16644 load_dyn_name_atomic_ptr(
16645 get_proc_address,
16646 b"glGetIntegeri_v\0",
16647 &self.glGetIntegeri_v_p,
16648 )
16649 }
16650 #[inline]
16651 #[doc(hidden)]
16652 pub fn GetIntegeri_v_is_loaded(&self) -> bool {
16653 !self.glGetIntegeri_v_p.load(RELAX).is_null()
16654 }
16655 #[cfg_attr(feature = "inline", inline)]
16659 #[cfg_attr(feature = "inline_always", inline(always))]
16660 pub unsafe fn GetIntegerv(&self, pname: GLenum, data: *mut GLint) {
16661 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16662 {
16663 trace!("calling gl.GetIntegerv({:#X}, {:p});", pname, data);
16664 }
16665 let out = call_atomic_ptr_2arg("glGetIntegerv", &self.glGetIntegerv_p, pname, data);
16666 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16667 {
16668 self.automatic_glGetError("glGetIntegerv");
16669 }
16670 out
16671 }
16672 #[doc(hidden)]
16673 pub unsafe fn GetIntegerv_load_with_dyn(
16674 &self,
16675 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16676 ) -> bool {
16677 load_dyn_name_atomic_ptr(get_proc_address, b"glGetIntegerv\0", &self.glGetIntegerv_p)
16678 }
16679 #[inline]
16680 #[doc(hidden)]
16681 pub fn GetIntegerv_is_loaded(&self) -> bool {
16682 !self.glGetIntegerv_p.load(RELAX).is_null()
16683 }
16684 #[cfg_attr(feature = "inline", inline)]
16690 #[cfg_attr(feature = "inline_always", inline(always))]
16691 pub unsafe fn GetInternalformati64v(
16692 &self,
16693 target: GLenum,
16694 internalformat: GLenum,
16695 pname: GLenum,
16696 count: GLsizei,
16697 params: *mut GLint64,
16698 ) {
16699 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16700 {
16701 trace!(
16702 "calling gl.GetInternalformati64v({:#X}, {:#X}, {:#X}, {:?}, {:p});",
16703 target,
16704 internalformat,
16705 pname,
16706 count,
16707 params
16708 );
16709 }
16710 let out = call_atomic_ptr_5arg(
16711 "glGetInternalformati64v",
16712 &self.glGetInternalformati64v_p,
16713 target,
16714 internalformat,
16715 pname,
16716 count,
16717 params,
16718 );
16719 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16720 {
16721 self.automatic_glGetError("glGetInternalformati64v");
16722 }
16723 out
16724 }
16725 #[doc(hidden)]
16726 pub unsafe fn GetInternalformati64v_load_with_dyn(
16727 &self,
16728 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16729 ) -> bool {
16730 load_dyn_name_atomic_ptr(
16731 get_proc_address,
16732 b"glGetInternalformati64v\0",
16733 &self.glGetInternalformati64v_p,
16734 )
16735 }
16736 #[inline]
16737 #[doc(hidden)]
16738 pub fn GetInternalformati64v_is_loaded(&self) -> bool {
16739 !self.glGetInternalformati64v_p.load(RELAX).is_null()
16740 }
16741 #[cfg_attr(feature = "inline", inline)]
16747 #[cfg_attr(feature = "inline_always", inline(always))]
16748 pub unsafe fn GetInternalformativ(
16749 &self,
16750 target: GLenum,
16751 internalformat: GLenum,
16752 pname: GLenum,
16753 count: GLsizei,
16754 params: *mut GLint,
16755 ) {
16756 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16757 {
16758 trace!(
16759 "calling gl.GetInternalformativ({:#X}, {:#X}, {:#X}, {:?}, {:p});",
16760 target,
16761 internalformat,
16762 pname,
16763 count,
16764 params
16765 );
16766 }
16767 let out = call_atomic_ptr_5arg(
16768 "glGetInternalformativ",
16769 &self.glGetInternalformativ_p,
16770 target,
16771 internalformat,
16772 pname,
16773 count,
16774 params,
16775 );
16776 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16777 {
16778 self.automatic_glGetError("glGetInternalformativ");
16779 }
16780 out
16781 }
16782 #[doc(hidden)]
16783 pub unsafe fn GetInternalformativ_load_with_dyn(
16784 &self,
16785 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16786 ) -> bool {
16787 load_dyn_name_atomic_ptr(
16788 get_proc_address,
16789 b"glGetInternalformativ\0",
16790 &self.glGetInternalformativ_p,
16791 )
16792 }
16793 #[inline]
16794 #[doc(hidden)]
16795 pub fn GetInternalformativ_is_loaded(&self) -> bool {
16796 !self.glGetInternalformativ_p.load(RELAX).is_null()
16797 }
16798 #[cfg_attr(feature = "inline", inline)]
16802 #[cfg_attr(feature = "inline_always", inline(always))]
16803 pub unsafe fn GetMultisamplefv(&self, pname: GLenum, index: GLuint, val: *mut GLfloat) {
16804 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16805 {
16806 trace!(
16807 "calling gl.GetMultisamplefv({:#X}, {:?}, {:p});",
16808 pname,
16809 index,
16810 val
16811 );
16812 }
16813 let out = call_atomic_ptr_3arg(
16814 "glGetMultisamplefv",
16815 &self.glGetMultisamplefv_p,
16816 pname,
16817 index,
16818 val,
16819 );
16820 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16821 {
16822 self.automatic_glGetError("glGetMultisamplefv");
16823 }
16824 out
16825 }
16826 #[doc(hidden)]
16827 pub unsafe fn GetMultisamplefv_load_with_dyn(
16828 &self,
16829 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16830 ) -> bool {
16831 load_dyn_name_atomic_ptr(
16832 get_proc_address,
16833 b"glGetMultisamplefv\0",
16834 &self.glGetMultisamplefv_p,
16835 )
16836 }
16837 #[inline]
16838 #[doc(hidden)]
16839 pub fn GetMultisamplefv_is_loaded(&self) -> bool {
16840 !self.glGetMultisamplefv_p.load(RELAX).is_null()
16841 }
16842 #[cfg_attr(feature = "inline", inline)]
16845 #[cfg_attr(feature = "inline_always", inline(always))]
16846 pub unsafe fn GetNamedBufferParameteri64v(
16847 &self,
16848 buffer: GLuint,
16849 pname: GLenum,
16850 params: *mut GLint64,
16851 ) {
16852 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16853 {
16854 trace!(
16855 "calling gl.GetNamedBufferParameteri64v({:?}, {:#X}, {:p});",
16856 buffer,
16857 pname,
16858 params
16859 );
16860 }
16861 let out = call_atomic_ptr_3arg(
16862 "glGetNamedBufferParameteri64v",
16863 &self.glGetNamedBufferParameteri64v_p,
16864 buffer,
16865 pname,
16866 params,
16867 );
16868 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16869 {
16870 self.automatic_glGetError("glGetNamedBufferParameteri64v");
16871 }
16872 out
16873 }
16874 #[doc(hidden)]
16875 pub unsafe fn GetNamedBufferParameteri64v_load_with_dyn(
16876 &self,
16877 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16878 ) -> bool {
16879 load_dyn_name_atomic_ptr(
16880 get_proc_address,
16881 b"glGetNamedBufferParameteri64v\0",
16882 &self.glGetNamedBufferParameteri64v_p,
16883 )
16884 }
16885 #[inline]
16886 #[doc(hidden)]
16887 pub fn GetNamedBufferParameteri64v_is_loaded(&self) -> bool {
16888 !self.glGetNamedBufferParameteri64v_p.load(RELAX).is_null()
16889 }
16890 #[cfg_attr(feature = "inline", inline)]
16893 #[cfg_attr(feature = "inline_always", inline(always))]
16894 pub unsafe fn GetNamedBufferParameteriv(
16895 &self,
16896 buffer: GLuint,
16897 pname: GLenum,
16898 params: *mut GLint,
16899 ) {
16900 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16901 {
16902 trace!(
16903 "calling gl.GetNamedBufferParameteriv({:?}, {:#X}, {:p});",
16904 buffer,
16905 pname,
16906 params
16907 );
16908 }
16909 let out = call_atomic_ptr_3arg(
16910 "glGetNamedBufferParameteriv",
16911 &self.glGetNamedBufferParameteriv_p,
16912 buffer,
16913 pname,
16914 params,
16915 );
16916 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16917 {
16918 self.automatic_glGetError("glGetNamedBufferParameteriv");
16919 }
16920 out
16921 }
16922 #[doc(hidden)]
16923 pub unsafe fn GetNamedBufferParameteriv_load_with_dyn(
16924 &self,
16925 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16926 ) -> bool {
16927 load_dyn_name_atomic_ptr(
16928 get_proc_address,
16929 b"glGetNamedBufferParameteriv\0",
16930 &self.glGetNamedBufferParameteriv_p,
16931 )
16932 }
16933 #[inline]
16934 #[doc(hidden)]
16935 pub fn GetNamedBufferParameteriv_is_loaded(&self) -> bool {
16936 !self.glGetNamedBufferParameteriv_p.load(RELAX).is_null()
16937 }
16938 #[cfg_attr(feature = "inline", inline)]
16941 #[cfg_attr(feature = "inline_always", inline(always))]
16942 pub unsafe fn GetNamedBufferPointerv(
16943 &self,
16944 buffer: GLuint,
16945 pname: GLenum,
16946 params: *mut *mut c_void,
16947 ) {
16948 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16949 {
16950 trace!(
16951 "calling gl.GetNamedBufferPointerv({:?}, {:#X}, {:p});",
16952 buffer,
16953 pname,
16954 params
16955 );
16956 }
16957 let out = call_atomic_ptr_3arg(
16958 "glGetNamedBufferPointerv",
16959 &self.glGetNamedBufferPointerv_p,
16960 buffer,
16961 pname,
16962 params,
16963 );
16964 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
16965 {
16966 self.automatic_glGetError("glGetNamedBufferPointerv");
16967 }
16968 out
16969 }
16970 #[doc(hidden)]
16971 pub unsafe fn GetNamedBufferPointerv_load_with_dyn(
16972 &self,
16973 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
16974 ) -> bool {
16975 load_dyn_name_atomic_ptr(
16976 get_proc_address,
16977 b"glGetNamedBufferPointerv\0",
16978 &self.glGetNamedBufferPointerv_p,
16979 )
16980 }
16981 #[inline]
16982 #[doc(hidden)]
16983 pub fn GetNamedBufferPointerv_is_loaded(&self) -> bool {
16984 !self.glGetNamedBufferPointerv_p.load(RELAX).is_null()
16985 }
16986 #[cfg_attr(feature = "inline", inline)]
16989 #[cfg_attr(feature = "inline_always", inline(always))]
16990 pub unsafe fn GetNamedBufferSubData(
16991 &self,
16992 buffer: GLuint,
16993 offset: GLintptr,
16994 size: GLsizeiptr,
16995 data: *mut c_void,
16996 ) {
16997 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
16998 {
16999 trace!(
17000 "calling gl.GetNamedBufferSubData({:?}, {:?}, {:?}, {:p});",
17001 buffer,
17002 offset,
17003 size,
17004 data
17005 );
17006 }
17007 let out = call_atomic_ptr_4arg(
17008 "glGetNamedBufferSubData",
17009 &self.glGetNamedBufferSubData_p,
17010 buffer,
17011 offset,
17012 size,
17013 data,
17014 );
17015 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17016 {
17017 self.automatic_glGetError("glGetNamedBufferSubData");
17018 }
17019 out
17020 }
17021 #[doc(hidden)]
17022 pub unsafe fn GetNamedBufferSubData_load_with_dyn(
17023 &self,
17024 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17025 ) -> bool {
17026 load_dyn_name_atomic_ptr(
17027 get_proc_address,
17028 b"glGetNamedBufferSubData\0",
17029 &self.glGetNamedBufferSubData_p,
17030 )
17031 }
17032 #[inline]
17033 #[doc(hidden)]
17034 pub fn GetNamedBufferSubData_is_loaded(&self) -> bool {
17035 !self.glGetNamedBufferSubData_p.load(RELAX).is_null()
17036 }
17037 #[cfg_attr(feature = "inline", inline)]
17041 #[cfg_attr(feature = "inline_always", inline(always))]
17042 pub unsafe fn GetNamedFramebufferAttachmentParameteriv(
17043 &self,
17044 framebuffer: GLuint,
17045 attachment: GLenum,
17046 pname: GLenum,
17047 params: *mut GLint,
17048 ) {
17049 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17050 {
17051 trace!("calling gl.GetNamedFramebufferAttachmentParameteriv({:?}, {:#X}, {:#X}, {:p});", framebuffer, attachment, pname, params);
17052 }
17053 let out = call_atomic_ptr_4arg(
17054 "glGetNamedFramebufferAttachmentParameteriv",
17055 &self.glGetNamedFramebufferAttachmentParameteriv_p,
17056 framebuffer,
17057 attachment,
17058 pname,
17059 params,
17060 );
17061 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17062 {
17063 self.automatic_glGetError("glGetNamedFramebufferAttachmentParameteriv");
17064 }
17065 out
17066 }
17067 #[doc(hidden)]
17068 pub unsafe fn GetNamedFramebufferAttachmentParameteriv_load_with_dyn(
17069 &self,
17070 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17071 ) -> bool {
17072 load_dyn_name_atomic_ptr(
17073 get_proc_address,
17074 b"glGetNamedFramebufferAttachmentParameteriv\0",
17075 &self.glGetNamedFramebufferAttachmentParameteriv_p,
17076 )
17077 }
17078 #[inline]
17079 #[doc(hidden)]
17080 pub fn GetNamedFramebufferAttachmentParameteriv_is_loaded(&self) -> bool {
17081 !self
17082 .glGetNamedFramebufferAttachmentParameteriv_p
17083 .load(RELAX)
17084 .is_null()
17085 }
17086 #[cfg_attr(feature = "inline", inline)]
17089 #[cfg_attr(feature = "inline_always", inline(always))]
17090 pub unsafe fn GetNamedFramebufferParameteriv(
17091 &self,
17092 framebuffer: GLuint,
17093 pname: GLenum,
17094 param: *mut GLint,
17095 ) {
17096 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17097 {
17098 trace!(
17099 "calling gl.GetNamedFramebufferParameteriv({:?}, {:#X}, {:p});",
17100 framebuffer,
17101 pname,
17102 param
17103 );
17104 }
17105 let out = call_atomic_ptr_3arg(
17106 "glGetNamedFramebufferParameteriv",
17107 &self.glGetNamedFramebufferParameteriv_p,
17108 framebuffer,
17109 pname,
17110 param,
17111 );
17112 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17113 {
17114 self.automatic_glGetError("glGetNamedFramebufferParameteriv");
17115 }
17116 out
17117 }
17118 #[doc(hidden)]
17119 pub unsafe fn GetNamedFramebufferParameteriv_load_with_dyn(
17120 &self,
17121 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17122 ) -> bool {
17123 load_dyn_name_atomic_ptr(
17124 get_proc_address,
17125 b"glGetNamedFramebufferParameteriv\0",
17126 &self.glGetNamedFramebufferParameteriv_p,
17127 )
17128 }
17129 #[inline]
17130 #[doc(hidden)]
17131 pub fn GetNamedFramebufferParameteriv_is_loaded(&self) -> bool {
17132 !self
17133 .glGetNamedFramebufferParameteriv_p
17134 .load(RELAX)
17135 .is_null()
17136 }
17137 #[cfg_attr(feature = "inline", inline)]
17140 #[cfg_attr(feature = "inline_always", inline(always))]
17141 pub unsafe fn GetNamedRenderbufferParameteriv(
17142 &self,
17143 renderbuffer: GLuint,
17144 pname: GLenum,
17145 params: *mut GLint,
17146 ) {
17147 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17148 {
17149 trace!(
17150 "calling gl.GetNamedRenderbufferParameteriv({:?}, {:#X}, {:p});",
17151 renderbuffer,
17152 pname,
17153 params
17154 );
17155 }
17156 let out = call_atomic_ptr_3arg(
17157 "glGetNamedRenderbufferParameteriv",
17158 &self.glGetNamedRenderbufferParameteriv_p,
17159 renderbuffer,
17160 pname,
17161 params,
17162 );
17163 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17164 {
17165 self.automatic_glGetError("glGetNamedRenderbufferParameteriv");
17166 }
17167 out
17168 }
17169 #[doc(hidden)]
17170 pub unsafe fn GetNamedRenderbufferParameteriv_load_with_dyn(
17171 &self,
17172 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17173 ) -> bool {
17174 load_dyn_name_atomic_ptr(
17175 get_proc_address,
17176 b"glGetNamedRenderbufferParameteriv\0",
17177 &self.glGetNamedRenderbufferParameteriv_p,
17178 )
17179 }
17180 #[inline]
17181 #[doc(hidden)]
17182 pub fn GetNamedRenderbufferParameteriv_is_loaded(&self) -> bool {
17183 !self
17184 .glGetNamedRenderbufferParameteriv_p
17185 .load(RELAX)
17186 .is_null()
17187 }
17188 #[cfg_attr(feature = "inline", inline)]
17193 #[cfg_attr(feature = "inline_always", inline(always))]
17194 pub unsafe fn GetObjectLabel(
17195 &self,
17196 identifier: GLenum,
17197 name: GLuint,
17198 bufSize: GLsizei,
17199 length: *mut GLsizei,
17200 label: *mut GLchar,
17201 ) {
17202 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17203 {
17204 trace!(
17205 "calling gl.GetObjectLabel({:#X}, {:?}, {:?}, {:p}, {:p});",
17206 identifier,
17207 name,
17208 bufSize,
17209 length,
17210 label
17211 );
17212 }
17213 let out = call_atomic_ptr_5arg(
17214 "glGetObjectLabel",
17215 &self.glGetObjectLabel_p,
17216 identifier,
17217 name,
17218 bufSize,
17219 length,
17220 label,
17221 );
17222 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17223 {
17224 self.automatic_glGetError("glGetObjectLabel");
17225 }
17226 out
17227 }
17228 #[doc(hidden)]
17229 pub unsafe fn GetObjectLabel_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"glGetObjectLabel\0",
17236 &self.glGetObjectLabel_p,
17237 )
17238 }
17239 #[inline]
17240 #[doc(hidden)]
17241 pub fn GetObjectLabel_is_loaded(&self) -> bool {
17242 !self.glGetObjectLabel_p.load(RELAX).is_null()
17243 }
17244 #[cfg_attr(feature = "inline", inline)]
17248 #[cfg_attr(feature = "inline_always", inline(always))]
17249 pub unsafe fn GetObjectLabelKHR(
17250 &self,
17251 identifier: GLenum,
17252 name: GLuint,
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.GetObjectLabelKHR({:#X}, {:?}, {:?}, {:p}, {:p});",
17261 identifier,
17262 name,
17263 bufSize,
17264 length,
17265 label
17266 );
17267 }
17268 let out = call_atomic_ptr_5arg(
17269 "glGetObjectLabelKHR",
17270 &self.glGetObjectLabelKHR_p,
17271 identifier,
17272 name,
17273 bufSize,
17274 length,
17275 label,
17276 );
17277 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17278 {
17279 self.automatic_glGetError("glGetObjectLabelKHR");
17280 }
17281 out
17282 }
17283 #[doc(hidden)]
17284 pub unsafe fn GetObjectLabelKHR_load_with_dyn(
17285 &self,
17286 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17287 ) -> bool {
17288 load_dyn_name_atomic_ptr(
17289 get_proc_address,
17290 b"glGetObjectLabelKHR\0",
17291 &self.glGetObjectLabelKHR_p,
17292 )
17293 }
17294 #[inline]
17295 #[doc(hidden)]
17296 pub fn GetObjectLabelKHR_is_loaded(&self) -> bool {
17297 !self.glGetObjectLabelKHR_p.load(RELAX).is_null()
17298 }
17299 #[cfg_attr(feature = "inline", inline)]
17303 #[cfg_attr(feature = "inline_always", inline(always))]
17304 pub unsafe fn GetObjectPtrLabel(
17305 &self,
17306 ptr: *const c_void,
17307 bufSize: GLsizei,
17308 length: *mut GLsizei,
17309 label: *mut GLchar,
17310 ) {
17311 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17312 {
17313 trace!(
17314 "calling gl.GetObjectPtrLabel({:p}, {:?}, {:p}, {:p});",
17315 ptr,
17316 bufSize,
17317 length,
17318 label
17319 );
17320 }
17321 let out = call_atomic_ptr_4arg(
17322 "glGetObjectPtrLabel",
17323 &self.glGetObjectPtrLabel_p,
17324 ptr,
17325 bufSize,
17326 length,
17327 label,
17328 );
17329 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17330 {
17331 self.automatic_glGetError("glGetObjectPtrLabel");
17332 }
17333 out
17334 }
17335 #[doc(hidden)]
17336 pub unsafe fn GetObjectPtrLabel_load_with_dyn(
17337 &self,
17338 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17339 ) -> bool {
17340 load_dyn_name_atomic_ptr(
17341 get_proc_address,
17342 b"glGetObjectPtrLabel\0",
17343 &self.glGetObjectPtrLabel_p,
17344 )
17345 }
17346 #[inline]
17347 #[doc(hidden)]
17348 pub fn GetObjectPtrLabel_is_loaded(&self) -> bool {
17349 !self.glGetObjectPtrLabel_p.load(RELAX).is_null()
17350 }
17351 #[cfg_attr(feature = "inline", inline)]
17356 #[cfg_attr(feature = "inline_always", inline(always))]
17357 pub unsafe fn GetObjectPtrLabelKHR(
17358 &self,
17359 ptr: *const c_void,
17360 bufSize: GLsizei,
17361 length: *mut GLsizei,
17362 label: *mut GLchar,
17363 ) {
17364 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17365 {
17366 trace!(
17367 "calling gl.GetObjectPtrLabelKHR({:p}, {:?}, {:p}, {:p});",
17368 ptr,
17369 bufSize,
17370 length,
17371 label
17372 );
17373 }
17374 let out = call_atomic_ptr_4arg(
17375 "glGetObjectPtrLabelKHR",
17376 &self.glGetObjectPtrLabelKHR_p,
17377 ptr,
17378 bufSize,
17379 length,
17380 label,
17381 );
17382 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17383 {
17384 self.automatic_glGetError("glGetObjectPtrLabelKHR");
17385 }
17386 out
17387 }
17388 #[doc(hidden)]
17389 pub unsafe fn GetObjectPtrLabelKHR_load_with_dyn(
17390 &self,
17391 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17392 ) -> bool {
17393 load_dyn_name_atomic_ptr(
17394 get_proc_address,
17395 b"glGetObjectPtrLabelKHR\0",
17396 &self.glGetObjectPtrLabelKHR_p,
17397 )
17398 }
17399 #[inline]
17400 #[doc(hidden)]
17401 pub fn GetObjectPtrLabelKHR_is_loaded(&self) -> bool {
17402 !self.glGetObjectPtrLabelKHR_p.load(RELAX).is_null()
17403 }
17404 #[cfg_attr(feature = "inline", inline)]
17408 #[cfg_attr(feature = "inline_always", inline(always))]
17409 pub unsafe fn GetPointerv(&self, pname: GLenum, params: *mut *mut c_void) {
17410 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17411 {
17412 trace!("calling gl.GetPointerv({:#X}, {:p});", pname, params);
17413 }
17414 let out = call_atomic_ptr_2arg("glGetPointerv", &self.glGetPointerv_p, pname, params);
17415 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17416 {
17417 self.automatic_glGetError("glGetPointerv");
17418 }
17419 out
17420 }
17421 #[doc(hidden)]
17422 pub unsafe fn GetPointerv_load_with_dyn(
17423 &self,
17424 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17425 ) -> bool {
17426 load_dyn_name_atomic_ptr(get_proc_address, b"glGetPointerv\0", &self.glGetPointerv_p)
17427 }
17428 #[inline]
17429 #[doc(hidden)]
17430 pub fn GetPointerv_is_loaded(&self) -> bool {
17431 !self.glGetPointerv_p.load(RELAX).is_null()
17432 }
17433 #[cfg_attr(feature = "inline", inline)]
17436 #[cfg_attr(feature = "inline_always", inline(always))]
17437 pub unsafe fn GetPointervKHR(&self, pname: GLenum, params: *mut *mut c_void) {
17438 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17439 {
17440 trace!("calling gl.GetPointervKHR({:#X}, {:p});", pname, params);
17441 }
17442 let out =
17443 call_atomic_ptr_2arg("glGetPointervKHR", &self.glGetPointervKHR_p, pname, params);
17444 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17445 {
17446 self.automatic_glGetError("glGetPointervKHR");
17447 }
17448 out
17449 }
17450 #[doc(hidden)]
17451 pub unsafe fn GetPointervKHR_load_with_dyn(
17452 &self,
17453 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17454 ) -> bool {
17455 load_dyn_name_atomic_ptr(
17456 get_proc_address,
17457 b"glGetPointervKHR\0",
17458 &self.glGetPointervKHR_p,
17459 )
17460 }
17461 #[inline]
17462 #[doc(hidden)]
17463 pub fn GetPointervKHR_is_loaded(&self) -> bool {
17464 !self.glGetPointervKHR_p.load(RELAX).is_null()
17465 }
17466 #[cfg_attr(feature = "inline", inline)]
17471 #[cfg_attr(feature = "inline_always", inline(always))]
17472 pub unsafe fn GetProgramBinary(
17473 &self,
17474 program: GLuint,
17475 bufSize: GLsizei,
17476 length: *mut GLsizei,
17477 binaryFormat: *mut GLenum,
17478 binary: *mut c_void,
17479 ) {
17480 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17481 {
17482 trace!(
17483 "calling gl.GetProgramBinary({:?}, {:?}, {:p}, {:p}, {:p});",
17484 program,
17485 bufSize,
17486 length,
17487 binaryFormat,
17488 binary
17489 );
17490 }
17491 let out = call_atomic_ptr_5arg(
17492 "glGetProgramBinary",
17493 &self.glGetProgramBinary_p,
17494 program,
17495 bufSize,
17496 length,
17497 binaryFormat,
17498 binary,
17499 );
17500 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17501 {
17502 self.automatic_glGetError("glGetProgramBinary");
17503 }
17504 out
17505 }
17506 #[doc(hidden)]
17507 pub unsafe fn GetProgramBinary_load_with_dyn(
17508 &self,
17509 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17510 ) -> bool {
17511 load_dyn_name_atomic_ptr(
17512 get_proc_address,
17513 b"glGetProgramBinary\0",
17514 &self.glGetProgramBinary_p,
17515 )
17516 }
17517 #[inline]
17518 #[doc(hidden)]
17519 pub fn GetProgramBinary_is_loaded(&self) -> bool {
17520 !self.glGetProgramBinary_p.load(RELAX).is_null()
17521 }
17522 #[cfg_attr(feature = "inline", inline)]
17526 #[cfg_attr(feature = "inline_always", inline(always))]
17527 pub unsafe fn GetProgramInfoLog(
17528 &self,
17529 program: GLuint,
17530 bufSize: GLsizei,
17531 length: *mut GLsizei,
17532 infoLog: *mut GLchar,
17533 ) {
17534 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17535 {
17536 trace!(
17537 "calling gl.GetProgramInfoLog({:?}, {:?}, {:p}, {:p});",
17538 program,
17539 bufSize,
17540 length,
17541 infoLog
17542 );
17543 }
17544 let out = call_atomic_ptr_4arg(
17545 "glGetProgramInfoLog",
17546 &self.glGetProgramInfoLog_p,
17547 program,
17548 bufSize,
17549 length,
17550 infoLog,
17551 );
17552 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17553 {
17554 self.automatic_glGetError("glGetProgramInfoLog");
17555 }
17556 out
17557 }
17558 #[doc(hidden)]
17559 pub unsafe fn GetProgramInfoLog_load_with_dyn(
17560 &self,
17561 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17562 ) -> bool {
17563 load_dyn_name_atomic_ptr(
17564 get_proc_address,
17565 b"glGetProgramInfoLog\0",
17566 &self.glGetProgramInfoLog_p,
17567 )
17568 }
17569 #[inline]
17570 #[doc(hidden)]
17571 pub fn GetProgramInfoLog_is_loaded(&self) -> bool {
17572 !self.glGetProgramInfoLog_p.load(RELAX).is_null()
17573 }
17574 #[cfg_attr(feature = "inline", inline)]
17579 #[cfg_attr(feature = "inline_always", inline(always))]
17580 pub unsafe fn GetProgramInterfaceiv(
17581 &self,
17582 program: GLuint,
17583 programInterface: GLenum,
17584 pname: GLenum,
17585 params: *mut GLint,
17586 ) {
17587 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17588 {
17589 trace!(
17590 "calling gl.GetProgramInterfaceiv({:?}, {:#X}, {:#X}, {:p});",
17591 program,
17592 programInterface,
17593 pname,
17594 params
17595 );
17596 }
17597 let out = call_atomic_ptr_4arg(
17598 "glGetProgramInterfaceiv",
17599 &self.glGetProgramInterfaceiv_p,
17600 program,
17601 programInterface,
17602 pname,
17603 params,
17604 );
17605 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17606 {
17607 self.automatic_glGetError("glGetProgramInterfaceiv");
17608 }
17609 out
17610 }
17611 #[doc(hidden)]
17612 pub unsafe fn GetProgramInterfaceiv_load_with_dyn(
17613 &self,
17614 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17615 ) -> bool {
17616 load_dyn_name_atomic_ptr(
17617 get_proc_address,
17618 b"glGetProgramInterfaceiv\0",
17619 &self.glGetProgramInterfaceiv_p,
17620 )
17621 }
17622 #[inline]
17623 #[doc(hidden)]
17624 pub fn GetProgramInterfaceiv_is_loaded(&self) -> bool {
17625 !self.glGetProgramInterfaceiv_p.load(RELAX).is_null()
17626 }
17627 #[cfg_attr(feature = "inline", inline)]
17631 #[cfg_attr(feature = "inline_always", inline(always))]
17632 pub unsafe fn GetProgramPipelineInfoLog(
17633 &self,
17634 pipeline: GLuint,
17635 bufSize: GLsizei,
17636 length: *mut GLsizei,
17637 infoLog: *mut GLchar,
17638 ) {
17639 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17640 {
17641 trace!(
17642 "calling gl.GetProgramPipelineInfoLog({:?}, {:?}, {:p}, {:p});",
17643 pipeline,
17644 bufSize,
17645 length,
17646 infoLog
17647 );
17648 }
17649 let out = call_atomic_ptr_4arg(
17650 "glGetProgramPipelineInfoLog",
17651 &self.glGetProgramPipelineInfoLog_p,
17652 pipeline,
17653 bufSize,
17654 length,
17655 infoLog,
17656 );
17657 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17658 {
17659 self.automatic_glGetError("glGetProgramPipelineInfoLog");
17660 }
17661 out
17662 }
17663 #[doc(hidden)]
17664 pub unsafe fn GetProgramPipelineInfoLog_load_with_dyn(
17665 &self,
17666 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17667 ) -> bool {
17668 load_dyn_name_atomic_ptr(
17669 get_proc_address,
17670 b"glGetProgramPipelineInfoLog\0",
17671 &self.glGetProgramPipelineInfoLog_p,
17672 )
17673 }
17674 #[inline]
17675 #[doc(hidden)]
17676 pub fn GetProgramPipelineInfoLog_is_loaded(&self) -> bool {
17677 !self.glGetProgramPipelineInfoLog_p.load(RELAX).is_null()
17678 }
17679 #[cfg_attr(feature = "inline", inline)]
17683 #[cfg_attr(feature = "inline_always", inline(always))]
17684 pub unsafe fn GetProgramPipelineiv(
17685 &self,
17686 pipeline: GLuint,
17687 pname: GLenum,
17688 params: *mut GLint,
17689 ) {
17690 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17691 {
17692 trace!(
17693 "calling gl.GetProgramPipelineiv({:?}, {:#X}, {:p});",
17694 pipeline,
17695 pname,
17696 params
17697 );
17698 }
17699 let out = call_atomic_ptr_3arg(
17700 "glGetProgramPipelineiv",
17701 &self.glGetProgramPipelineiv_p,
17702 pipeline,
17703 pname,
17704 params,
17705 );
17706 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17707 {
17708 self.automatic_glGetError("glGetProgramPipelineiv");
17709 }
17710 out
17711 }
17712 #[doc(hidden)]
17713 pub unsafe fn GetProgramPipelineiv_load_with_dyn(
17714 &self,
17715 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17716 ) -> bool {
17717 load_dyn_name_atomic_ptr(
17718 get_proc_address,
17719 b"glGetProgramPipelineiv\0",
17720 &self.glGetProgramPipelineiv_p,
17721 )
17722 }
17723 #[inline]
17724 #[doc(hidden)]
17725 pub fn GetProgramPipelineiv_is_loaded(&self) -> bool {
17726 !self.glGetProgramPipelineiv_p.load(RELAX).is_null()
17727 }
17728 #[cfg_attr(feature = "inline", inline)]
17732 #[cfg_attr(feature = "inline_always", inline(always))]
17733 pub unsafe fn GetProgramResourceIndex(
17734 &self,
17735 program: GLuint,
17736 programInterface: GLenum,
17737 name: *const GLchar,
17738 ) -> GLuint {
17739 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17740 {
17741 trace!(
17742 "calling gl.GetProgramResourceIndex({:?}, {:#X}, {:p});",
17743 program,
17744 programInterface,
17745 name
17746 );
17747 }
17748 let out = call_atomic_ptr_3arg(
17749 "glGetProgramResourceIndex",
17750 &self.glGetProgramResourceIndex_p,
17751 program,
17752 programInterface,
17753 name,
17754 );
17755 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17756 {
17757 self.automatic_glGetError("glGetProgramResourceIndex");
17758 }
17759 out
17760 }
17761 #[doc(hidden)]
17762 pub unsafe fn GetProgramResourceIndex_load_with_dyn(
17763 &self,
17764 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17765 ) -> bool {
17766 load_dyn_name_atomic_ptr(
17767 get_proc_address,
17768 b"glGetProgramResourceIndex\0",
17769 &self.glGetProgramResourceIndex_p,
17770 )
17771 }
17772 #[inline]
17773 #[doc(hidden)]
17774 pub fn GetProgramResourceIndex_is_loaded(&self) -> bool {
17775 !self.glGetProgramResourceIndex_p.load(RELAX).is_null()
17776 }
17777 #[cfg_attr(feature = "inline", inline)]
17781 #[cfg_attr(feature = "inline_always", inline(always))]
17782 pub unsafe fn GetProgramResourceLocation(
17783 &self,
17784 program: GLuint,
17785 programInterface: GLenum,
17786 name: *const GLchar,
17787 ) -> GLint {
17788 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17789 {
17790 trace!(
17791 "calling gl.GetProgramResourceLocation({:?}, {:#X}, {:p});",
17792 program,
17793 programInterface,
17794 name
17795 );
17796 }
17797 let out = call_atomic_ptr_3arg(
17798 "glGetProgramResourceLocation",
17799 &self.glGetProgramResourceLocation_p,
17800 program,
17801 programInterface,
17802 name,
17803 );
17804 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17805 {
17806 self.automatic_glGetError("glGetProgramResourceLocation");
17807 }
17808 out
17809 }
17810 #[doc(hidden)]
17811 pub unsafe fn GetProgramResourceLocation_load_with_dyn(
17812 &self,
17813 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17814 ) -> bool {
17815 load_dyn_name_atomic_ptr(
17816 get_proc_address,
17817 b"glGetProgramResourceLocation\0",
17818 &self.glGetProgramResourceLocation_p,
17819 )
17820 }
17821 #[inline]
17822 #[doc(hidden)]
17823 pub fn GetProgramResourceLocation_is_loaded(&self) -> bool {
17824 !self.glGetProgramResourceLocation_p.load(RELAX).is_null()
17825 }
17826 #[cfg_attr(feature = "inline", inline)]
17830 #[cfg_attr(feature = "inline_always", inline(always))]
17831 pub unsafe fn GetProgramResourceLocationIndex(
17832 &self,
17833 program: GLuint,
17834 programInterface: GLenum,
17835 name: *const GLchar,
17836 ) -> GLint {
17837 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17838 {
17839 trace!(
17840 "calling gl.GetProgramResourceLocationIndex({:?}, {:#X}, {:p});",
17841 program,
17842 programInterface,
17843 name
17844 );
17845 }
17846 let out = call_atomic_ptr_3arg(
17847 "glGetProgramResourceLocationIndex",
17848 &self.glGetProgramResourceLocationIndex_p,
17849 program,
17850 programInterface,
17851 name,
17852 );
17853 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17854 {
17855 self.automatic_glGetError("glGetProgramResourceLocationIndex");
17856 }
17857 out
17858 }
17859 #[doc(hidden)]
17860 pub unsafe fn GetProgramResourceLocationIndex_load_with_dyn(
17861 &self,
17862 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17863 ) -> bool {
17864 load_dyn_name_atomic_ptr(
17865 get_proc_address,
17866 b"glGetProgramResourceLocationIndex\0",
17867 &self.glGetProgramResourceLocationIndex_p,
17868 )
17869 }
17870 #[inline]
17871 #[doc(hidden)]
17872 pub fn GetProgramResourceLocationIndex_is_loaded(&self) -> bool {
17873 !self
17874 .glGetProgramResourceLocationIndex_p
17875 .load(RELAX)
17876 .is_null()
17877 }
17878 #[cfg_attr(feature = "inline", inline)]
17883 #[cfg_attr(feature = "inline_always", inline(always))]
17884 pub unsafe fn GetProgramResourceName(
17885 &self,
17886 program: GLuint,
17887 programInterface: GLenum,
17888 index: GLuint,
17889 bufSize: GLsizei,
17890 length: *mut GLsizei,
17891 name: *mut GLchar,
17892 ) {
17893 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17894 {
17895 trace!(
17896 "calling gl.GetProgramResourceName({:?}, {:#X}, {:?}, {:?}, {:p}, {:p});",
17897 program,
17898 programInterface,
17899 index,
17900 bufSize,
17901 length,
17902 name
17903 );
17904 }
17905 let out = call_atomic_ptr_6arg(
17906 "glGetProgramResourceName",
17907 &self.glGetProgramResourceName_p,
17908 program,
17909 programInterface,
17910 index,
17911 bufSize,
17912 length,
17913 name,
17914 );
17915 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17916 {
17917 self.automatic_glGetError("glGetProgramResourceName");
17918 }
17919 out
17920 }
17921 #[doc(hidden)]
17922 pub unsafe fn GetProgramResourceName_load_with_dyn(
17923 &self,
17924 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17925 ) -> bool {
17926 load_dyn_name_atomic_ptr(
17927 get_proc_address,
17928 b"glGetProgramResourceName\0",
17929 &self.glGetProgramResourceName_p,
17930 )
17931 }
17932 #[inline]
17933 #[doc(hidden)]
17934 pub fn GetProgramResourceName_is_loaded(&self) -> bool {
17935 !self.glGetProgramResourceName_p.load(RELAX).is_null()
17936 }
17937 #[cfg_attr(feature = "inline", inline)]
17944 #[cfg_attr(feature = "inline_always", inline(always))]
17945 pub unsafe fn GetProgramResourceiv(
17946 &self,
17947 program: GLuint,
17948 programInterface: GLenum,
17949 index: GLuint,
17950 propCount: GLsizei,
17951 props: *const GLenum,
17952 count: GLsizei,
17953 length: *mut GLsizei,
17954 params: *mut GLint,
17955 ) {
17956 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
17957 {
17958 trace!("calling gl.GetProgramResourceiv({:?}, {:#X}, {:?}, {:?}, {:p}, {:?}, {:p}, {:p});", program, programInterface, index, propCount, props, count, length, params);
17959 }
17960 let out = call_atomic_ptr_8arg(
17961 "glGetProgramResourceiv",
17962 &self.glGetProgramResourceiv_p,
17963 program,
17964 programInterface,
17965 index,
17966 propCount,
17967 props,
17968 count,
17969 length,
17970 params,
17971 );
17972 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
17973 {
17974 self.automatic_glGetError("glGetProgramResourceiv");
17975 }
17976 out
17977 }
17978 #[doc(hidden)]
17979 pub unsafe fn GetProgramResourceiv_load_with_dyn(
17980 &self,
17981 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
17982 ) -> bool {
17983 load_dyn_name_atomic_ptr(
17984 get_proc_address,
17985 b"glGetProgramResourceiv\0",
17986 &self.glGetProgramResourceiv_p,
17987 )
17988 }
17989 #[inline]
17990 #[doc(hidden)]
17991 pub fn GetProgramResourceiv_is_loaded(&self) -> bool {
17992 !self.glGetProgramResourceiv_p.load(RELAX).is_null()
17993 }
17994 #[cfg_attr(feature = "inline", inline)]
17999 #[cfg_attr(feature = "inline_always", inline(always))]
18000 pub unsafe fn GetProgramStageiv(
18001 &self,
18002 program: GLuint,
18003 shadertype: GLenum,
18004 pname: GLenum,
18005 values: *mut GLint,
18006 ) {
18007 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18008 {
18009 trace!(
18010 "calling gl.GetProgramStageiv({:?}, {:#X}, {:#X}, {:p});",
18011 program,
18012 shadertype,
18013 pname,
18014 values
18015 );
18016 }
18017 let out = call_atomic_ptr_4arg(
18018 "glGetProgramStageiv",
18019 &self.glGetProgramStageiv_p,
18020 program,
18021 shadertype,
18022 pname,
18023 values,
18024 );
18025 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18026 {
18027 self.automatic_glGetError("glGetProgramStageiv");
18028 }
18029 out
18030 }
18031 #[doc(hidden)]
18032 pub unsafe fn GetProgramStageiv_load_with_dyn(
18033 &self,
18034 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18035 ) -> bool {
18036 load_dyn_name_atomic_ptr(
18037 get_proc_address,
18038 b"glGetProgramStageiv\0",
18039 &self.glGetProgramStageiv_p,
18040 )
18041 }
18042 #[inline]
18043 #[doc(hidden)]
18044 pub fn GetProgramStageiv_is_loaded(&self) -> bool {
18045 !self.glGetProgramStageiv_p.load(RELAX).is_null()
18046 }
18047 #[cfg_attr(feature = "inline", inline)]
18051 #[cfg_attr(feature = "inline_always", inline(always))]
18052 pub unsafe fn GetProgramiv(&self, program: GLuint, pname: GLenum, params: *mut GLint) {
18053 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18054 {
18055 trace!(
18056 "calling gl.GetProgramiv({:?}, {:#X}, {:p});",
18057 program,
18058 pname,
18059 params
18060 );
18061 }
18062 let out = call_atomic_ptr_3arg(
18063 "glGetProgramiv",
18064 &self.glGetProgramiv_p,
18065 program,
18066 pname,
18067 params,
18068 );
18069 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18070 {
18071 self.automatic_glGetError("glGetProgramiv");
18072 }
18073 out
18074 }
18075 #[doc(hidden)]
18076 pub unsafe fn GetProgramiv_load_with_dyn(
18077 &self,
18078 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18079 ) -> bool {
18080 load_dyn_name_atomic_ptr(
18081 get_proc_address,
18082 b"glGetProgramiv\0",
18083 &self.glGetProgramiv_p,
18084 )
18085 }
18086 #[inline]
18087 #[doc(hidden)]
18088 pub fn GetProgramiv_is_loaded(&self) -> bool {
18089 !self.glGetProgramiv_p.load(RELAX).is_null()
18090 }
18091 #[cfg_attr(feature = "inline", inline)]
18094 #[cfg_attr(feature = "inline_always", inline(always))]
18095 pub unsafe fn GetQueryBufferObjecti64v(
18096 &self,
18097 id: GLuint,
18098 buffer: GLuint,
18099 pname: GLenum,
18100 offset: GLintptr,
18101 ) {
18102 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18103 {
18104 trace!(
18105 "calling gl.GetQueryBufferObjecti64v({:?}, {:?}, {:#X}, {:?});",
18106 id,
18107 buffer,
18108 pname,
18109 offset
18110 );
18111 }
18112 let out = call_atomic_ptr_4arg(
18113 "glGetQueryBufferObjecti64v",
18114 &self.glGetQueryBufferObjecti64v_p,
18115 id,
18116 buffer,
18117 pname,
18118 offset,
18119 );
18120 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18121 {
18122 self.automatic_glGetError("glGetQueryBufferObjecti64v");
18123 }
18124 out
18125 }
18126 #[doc(hidden)]
18127 pub unsafe fn GetQueryBufferObjecti64v_load_with_dyn(
18128 &self,
18129 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18130 ) -> bool {
18131 load_dyn_name_atomic_ptr(
18132 get_proc_address,
18133 b"glGetQueryBufferObjecti64v\0",
18134 &self.glGetQueryBufferObjecti64v_p,
18135 )
18136 }
18137 #[inline]
18138 #[doc(hidden)]
18139 pub fn GetQueryBufferObjecti64v_is_loaded(&self) -> bool {
18140 !self.glGetQueryBufferObjecti64v_p.load(RELAX).is_null()
18141 }
18142 #[cfg_attr(feature = "inline", inline)]
18145 #[cfg_attr(feature = "inline_always", inline(always))]
18146 pub unsafe fn GetQueryBufferObjectiv(
18147 &self,
18148 id: GLuint,
18149 buffer: GLuint,
18150 pname: GLenum,
18151 offset: GLintptr,
18152 ) {
18153 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18154 {
18155 trace!(
18156 "calling gl.GetQueryBufferObjectiv({:?}, {:?}, {:#X}, {:?});",
18157 id,
18158 buffer,
18159 pname,
18160 offset
18161 );
18162 }
18163 let out = call_atomic_ptr_4arg(
18164 "glGetQueryBufferObjectiv",
18165 &self.glGetQueryBufferObjectiv_p,
18166 id,
18167 buffer,
18168 pname,
18169 offset,
18170 );
18171 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18172 {
18173 self.automatic_glGetError("glGetQueryBufferObjectiv");
18174 }
18175 out
18176 }
18177 #[doc(hidden)]
18178 pub unsafe fn GetQueryBufferObjectiv_load_with_dyn(
18179 &self,
18180 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18181 ) -> bool {
18182 load_dyn_name_atomic_ptr(
18183 get_proc_address,
18184 b"glGetQueryBufferObjectiv\0",
18185 &self.glGetQueryBufferObjectiv_p,
18186 )
18187 }
18188 #[inline]
18189 #[doc(hidden)]
18190 pub fn GetQueryBufferObjectiv_is_loaded(&self) -> bool {
18191 !self.glGetQueryBufferObjectiv_p.load(RELAX).is_null()
18192 }
18193 #[cfg_attr(feature = "inline", inline)]
18196 #[cfg_attr(feature = "inline_always", inline(always))]
18197 pub unsafe fn GetQueryBufferObjectui64v(
18198 &self,
18199 id: GLuint,
18200 buffer: GLuint,
18201 pname: GLenum,
18202 offset: GLintptr,
18203 ) {
18204 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18205 {
18206 trace!(
18207 "calling gl.GetQueryBufferObjectui64v({:?}, {:?}, {:#X}, {:?});",
18208 id,
18209 buffer,
18210 pname,
18211 offset
18212 );
18213 }
18214 let out = call_atomic_ptr_4arg(
18215 "glGetQueryBufferObjectui64v",
18216 &self.glGetQueryBufferObjectui64v_p,
18217 id,
18218 buffer,
18219 pname,
18220 offset,
18221 );
18222 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18223 {
18224 self.automatic_glGetError("glGetQueryBufferObjectui64v");
18225 }
18226 out
18227 }
18228 #[doc(hidden)]
18229 pub unsafe fn GetQueryBufferObjectui64v_load_with_dyn(
18230 &self,
18231 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18232 ) -> bool {
18233 load_dyn_name_atomic_ptr(
18234 get_proc_address,
18235 b"glGetQueryBufferObjectui64v\0",
18236 &self.glGetQueryBufferObjectui64v_p,
18237 )
18238 }
18239 #[inline]
18240 #[doc(hidden)]
18241 pub fn GetQueryBufferObjectui64v_is_loaded(&self) -> bool {
18242 !self.glGetQueryBufferObjectui64v_p.load(RELAX).is_null()
18243 }
18244 #[cfg_attr(feature = "inline", inline)]
18247 #[cfg_attr(feature = "inline_always", inline(always))]
18248 pub unsafe fn GetQueryBufferObjectuiv(
18249 &self,
18250 id: GLuint,
18251 buffer: GLuint,
18252 pname: GLenum,
18253 offset: GLintptr,
18254 ) {
18255 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18256 {
18257 trace!(
18258 "calling gl.GetQueryBufferObjectuiv({:?}, {:?}, {:#X}, {:?});",
18259 id,
18260 buffer,
18261 pname,
18262 offset
18263 );
18264 }
18265 let out = call_atomic_ptr_4arg(
18266 "glGetQueryBufferObjectuiv",
18267 &self.glGetQueryBufferObjectuiv_p,
18268 id,
18269 buffer,
18270 pname,
18271 offset,
18272 );
18273 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18274 {
18275 self.automatic_glGetError("glGetQueryBufferObjectuiv");
18276 }
18277 out
18278 }
18279 #[doc(hidden)]
18280 pub unsafe fn GetQueryBufferObjectuiv_load_with_dyn(
18281 &self,
18282 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18283 ) -> bool {
18284 load_dyn_name_atomic_ptr(
18285 get_proc_address,
18286 b"glGetQueryBufferObjectuiv\0",
18287 &self.glGetQueryBufferObjectuiv_p,
18288 )
18289 }
18290 #[inline]
18291 #[doc(hidden)]
18292 pub fn GetQueryBufferObjectuiv_is_loaded(&self) -> bool {
18293 !self.glGetQueryBufferObjectuiv_p.load(RELAX).is_null()
18294 }
18295 #[cfg_attr(feature = "inline", inline)]
18300 #[cfg_attr(feature = "inline_always", inline(always))]
18301 pub unsafe fn GetQueryIndexediv(
18302 &self,
18303 target: GLenum,
18304 index: GLuint,
18305 pname: GLenum,
18306 params: *mut GLint,
18307 ) {
18308 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18309 {
18310 trace!(
18311 "calling gl.GetQueryIndexediv({:#X}, {:?}, {:#X}, {:p});",
18312 target,
18313 index,
18314 pname,
18315 params
18316 );
18317 }
18318 let out = call_atomic_ptr_4arg(
18319 "glGetQueryIndexediv",
18320 &self.glGetQueryIndexediv_p,
18321 target,
18322 index,
18323 pname,
18324 params,
18325 );
18326 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18327 {
18328 self.automatic_glGetError("glGetQueryIndexediv");
18329 }
18330 out
18331 }
18332 #[doc(hidden)]
18333 pub unsafe fn GetQueryIndexediv_load_with_dyn(
18334 &self,
18335 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18336 ) -> bool {
18337 load_dyn_name_atomic_ptr(
18338 get_proc_address,
18339 b"glGetQueryIndexediv\0",
18340 &self.glGetQueryIndexediv_p,
18341 )
18342 }
18343 #[inline]
18344 #[doc(hidden)]
18345 pub fn GetQueryIndexediv_is_loaded(&self) -> bool {
18346 !self.glGetQueryIndexediv_p.load(RELAX).is_null()
18347 }
18348 #[cfg_attr(feature = "inline", inline)]
18352 #[cfg_attr(feature = "inline_always", inline(always))]
18353 pub unsafe fn GetQueryObjecti64v(&self, id: GLuint, pname: GLenum, params: *mut GLint64) {
18354 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18355 {
18356 trace!(
18357 "calling gl.GetQueryObjecti64v({:?}, {:#X}, {:p});",
18358 id,
18359 pname,
18360 params
18361 );
18362 }
18363 let out = call_atomic_ptr_3arg(
18364 "glGetQueryObjecti64v",
18365 &self.glGetQueryObjecti64v_p,
18366 id,
18367 pname,
18368 params,
18369 );
18370 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18371 {
18372 self.automatic_glGetError("glGetQueryObjecti64v");
18373 }
18374 out
18375 }
18376 #[doc(hidden)]
18377 pub unsafe fn GetQueryObjecti64v_load_with_dyn(
18378 &self,
18379 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18380 ) -> bool {
18381 load_dyn_name_atomic_ptr(
18382 get_proc_address,
18383 b"glGetQueryObjecti64v\0",
18384 &self.glGetQueryObjecti64v_p,
18385 )
18386 }
18387 #[inline]
18388 #[doc(hidden)]
18389 pub fn GetQueryObjecti64v_is_loaded(&self) -> bool {
18390 !self.glGetQueryObjecti64v_p.load(RELAX).is_null()
18391 }
18392 #[cfg_attr(feature = "inline", inline)]
18397 #[cfg_attr(feature = "inline_always", inline(always))]
18398 pub unsafe fn GetQueryObjecti64vEXT(
18399 &self,
18400 id: GLuint,
18401 pname: GLenum,
18402 params: *mut GLint64,
18403 ) {
18404 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18405 {
18406 trace!(
18407 "calling gl.GetQueryObjecti64vEXT({:?}, {:#X}, {:p});",
18408 id,
18409 pname,
18410 params
18411 );
18412 }
18413 let out = call_atomic_ptr_3arg(
18414 "glGetQueryObjecti64vEXT",
18415 &self.glGetQueryObjecti64vEXT_p,
18416 id,
18417 pname,
18418 params,
18419 );
18420 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18421 {
18422 self.automatic_glGetError("glGetQueryObjecti64vEXT");
18423 }
18424 out
18425 }
18426 #[doc(hidden)]
18427 pub unsafe fn GetQueryObjecti64vEXT_load_with_dyn(
18428 &self,
18429 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18430 ) -> bool {
18431 load_dyn_name_atomic_ptr(
18432 get_proc_address,
18433 b"glGetQueryObjecti64vEXT\0",
18434 &self.glGetQueryObjecti64vEXT_p,
18435 )
18436 }
18437 #[inline]
18438 #[doc(hidden)]
18439 pub fn GetQueryObjecti64vEXT_is_loaded(&self) -> bool {
18440 !self.glGetQueryObjecti64vEXT_p.load(RELAX).is_null()
18441 }
18442 #[cfg_attr(feature = "inline", inline)]
18446 #[cfg_attr(feature = "inline_always", inline(always))]
18447 pub unsafe fn GetQueryObjectiv(&self, id: GLuint, pname: GLenum, params: *mut GLint) {
18448 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18449 {
18450 trace!(
18451 "calling gl.GetQueryObjectiv({:?}, {:#X}, {:p});",
18452 id,
18453 pname,
18454 params
18455 );
18456 }
18457 let out = call_atomic_ptr_3arg(
18458 "glGetQueryObjectiv",
18459 &self.glGetQueryObjectiv_p,
18460 id,
18461 pname,
18462 params,
18463 );
18464 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18465 {
18466 self.automatic_glGetError("glGetQueryObjectiv");
18467 }
18468 out
18469 }
18470 #[doc(hidden)]
18471 pub unsafe fn GetQueryObjectiv_load_with_dyn(
18472 &self,
18473 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18474 ) -> bool {
18475 load_dyn_name_atomic_ptr(
18476 get_proc_address,
18477 b"glGetQueryObjectiv\0",
18478 &self.glGetQueryObjectiv_p,
18479 )
18480 }
18481 #[inline]
18482 #[doc(hidden)]
18483 pub fn GetQueryObjectiv_is_loaded(&self) -> bool {
18484 !self.glGetQueryObjectiv_p.load(RELAX).is_null()
18485 }
18486 #[cfg_attr(feature = "inline", inline)]
18491 #[cfg_attr(feature = "inline_always", inline(always))]
18492 pub unsafe fn GetQueryObjectivEXT(&self, id: GLuint, pname: GLenum, params: *mut GLint) {
18493 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18494 {
18495 trace!(
18496 "calling gl.GetQueryObjectivEXT({:?}, {:#X}, {:p});",
18497 id,
18498 pname,
18499 params
18500 );
18501 }
18502 let out = call_atomic_ptr_3arg(
18503 "glGetQueryObjectivEXT",
18504 &self.glGetQueryObjectivEXT_p,
18505 id,
18506 pname,
18507 params,
18508 );
18509 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18510 {
18511 self.automatic_glGetError("glGetQueryObjectivEXT");
18512 }
18513 out
18514 }
18515 #[doc(hidden)]
18516 pub unsafe fn GetQueryObjectivEXT_load_with_dyn(
18517 &self,
18518 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18519 ) -> bool {
18520 load_dyn_name_atomic_ptr(
18521 get_proc_address,
18522 b"glGetQueryObjectivEXT\0",
18523 &self.glGetQueryObjectivEXT_p,
18524 )
18525 }
18526 #[inline]
18527 #[doc(hidden)]
18528 pub fn GetQueryObjectivEXT_is_loaded(&self) -> bool {
18529 !self.glGetQueryObjectivEXT_p.load(RELAX).is_null()
18530 }
18531 #[cfg_attr(feature = "inline", inline)]
18535 #[cfg_attr(feature = "inline_always", inline(always))]
18536 pub unsafe fn GetQueryObjectui64v(&self, id: GLuint, pname: GLenum, params: *mut GLuint64) {
18537 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18538 {
18539 trace!(
18540 "calling gl.GetQueryObjectui64v({:?}, {:#X}, {:p});",
18541 id,
18542 pname,
18543 params
18544 );
18545 }
18546 let out = call_atomic_ptr_3arg(
18547 "glGetQueryObjectui64v",
18548 &self.glGetQueryObjectui64v_p,
18549 id,
18550 pname,
18551 params,
18552 );
18553 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18554 {
18555 self.automatic_glGetError("glGetQueryObjectui64v");
18556 }
18557 out
18558 }
18559 #[doc(hidden)]
18560 pub unsafe fn GetQueryObjectui64v_load_with_dyn(
18561 &self,
18562 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18563 ) -> bool {
18564 load_dyn_name_atomic_ptr(
18565 get_proc_address,
18566 b"glGetQueryObjectui64v\0",
18567 &self.glGetQueryObjectui64v_p,
18568 )
18569 }
18570 #[inline]
18571 #[doc(hidden)]
18572 pub fn GetQueryObjectui64v_is_loaded(&self) -> bool {
18573 !self.glGetQueryObjectui64v_p.load(RELAX).is_null()
18574 }
18575 #[cfg_attr(feature = "inline", inline)]
18580 #[cfg_attr(feature = "inline_always", inline(always))]
18581 pub unsafe fn GetQueryObjectui64vEXT(
18582 &self,
18583 id: GLuint,
18584 pname: GLenum,
18585 params: *mut GLuint64,
18586 ) {
18587 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18588 {
18589 trace!(
18590 "calling gl.GetQueryObjectui64vEXT({:?}, {:#X}, {:p});",
18591 id,
18592 pname,
18593 params
18594 );
18595 }
18596 let out = call_atomic_ptr_3arg(
18597 "glGetQueryObjectui64vEXT",
18598 &self.glGetQueryObjectui64vEXT_p,
18599 id,
18600 pname,
18601 params,
18602 );
18603 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18604 {
18605 self.automatic_glGetError("glGetQueryObjectui64vEXT");
18606 }
18607 out
18608 }
18609 #[doc(hidden)]
18610 pub unsafe fn GetQueryObjectui64vEXT_load_with_dyn(
18611 &self,
18612 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18613 ) -> bool {
18614 load_dyn_name_atomic_ptr(
18615 get_proc_address,
18616 b"glGetQueryObjectui64vEXT\0",
18617 &self.glGetQueryObjectui64vEXT_p,
18618 )
18619 }
18620 #[inline]
18621 #[doc(hidden)]
18622 pub fn GetQueryObjectui64vEXT_is_loaded(&self) -> bool {
18623 !self.glGetQueryObjectui64vEXT_p.load(RELAX).is_null()
18624 }
18625 #[cfg_attr(feature = "inline", inline)]
18629 #[cfg_attr(feature = "inline_always", inline(always))]
18630 pub unsafe fn GetQueryObjectuiv(&self, id: GLuint, pname: GLenum, params: *mut GLuint) {
18631 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18632 {
18633 trace!(
18634 "calling gl.GetQueryObjectuiv({:?}, {:#X}, {:p});",
18635 id,
18636 pname,
18637 params
18638 );
18639 }
18640 let out = call_atomic_ptr_3arg(
18641 "glGetQueryObjectuiv",
18642 &self.glGetQueryObjectuiv_p,
18643 id,
18644 pname,
18645 params,
18646 );
18647 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18648 {
18649 self.automatic_glGetError("glGetQueryObjectuiv");
18650 }
18651 out
18652 }
18653 #[doc(hidden)]
18654 pub unsafe fn GetQueryObjectuiv_load_with_dyn(
18655 &self,
18656 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18657 ) -> bool {
18658 load_dyn_name_atomic_ptr(
18659 get_proc_address,
18660 b"glGetQueryObjectuiv\0",
18661 &self.glGetQueryObjectuiv_p,
18662 )
18663 }
18664 #[inline]
18665 #[doc(hidden)]
18666 pub fn GetQueryObjectuiv_is_loaded(&self) -> bool {
18667 !self.glGetQueryObjectuiv_p.load(RELAX).is_null()
18668 }
18669 #[cfg_attr(feature = "inline", inline)]
18673 #[cfg_attr(feature = "inline_always", inline(always))]
18674 pub unsafe fn GetQueryObjectuivEXT(&self, id: GLuint, pname: GLenum, params: *mut GLuint) {
18675 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18676 {
18677 trace!(
18678 "calling gl.GetQueryObjectuivEXT({:?}, {:#X}, {:p});",
18679 id,
18680 pname,
18681 params
18682 );
18683 }
18684 let out = call_atomic_ptr_3arg(
18685 "glGetQueryObjectuivEXT",
18686 &self.glGetQueryObjectuivEXT_p,
18687 id,
18688 pname,
18689 params,
18690 );
18691 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18692 {
18693 self.automatic_glGetError("glGetQueryObjectuivEXT");
18694 }
18695 out
18696 }
18697 #[doc(hidden)]
18698 pub unsafe fn GetQueryObjectuivEXT_load_with_dyn(
18699 &self,
18700 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18701 ) -> bool {
18702 load_dyn_name_atomic_ptr(
18703 get_proc_address,
18704 b"glGetQueryObjectuivEXT\0",
18705 &self.glGetQueryObjectuivEXT_p,
18706 )
18707 }
18708 #[inline]
18709 #[doc(hidden)]
18710 pub fn GetQueryObjectuivEXT_is_loaded(&self) -> bool {
18711 !self.glGetQueryObjectuivEXT_p.load(RELAX).is_null()
18712 }
18713 #[cfg_attr(feature = "inline", inline)]
18718 #[cfg_attr(feature = "inline_always", inline(always))]
18719 pub unsafe fn GetQueryiv(&self, target: GLenum, pname: GLenum, params: *mut GLint) {
18720 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18721 {
18722 trace!(
18723 "calling gl.GetQueryiv({:#X}, {:#X}, {:p});",
18724 target,
18725 pname,
18726 params
18727 );
18728 }
18729 let out =
18730 call_atomic_ptr_3arg("glGetQueryiv", &self.glGetQueryiv_p, target, pname, params);
18731 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18732 {
18733 self.automatic_glGetError("glGetQueryiv");
18734 }
18735 out
18736 }
18737 #[doc(hidden)]
18738 pub unsafe fn GetQueryiv_load_with_dyn(
18739 &self,
18740 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18741 ) -> bool {
18742 load_dyn_name_atomic_ptr(get_proc_address, b"glGetQueryiv\0", &self.glGetQueryiv_p)
18743 }
18744 #[inline]
18745 #[doc(hidden)]
18746 pub fn GetQueryiv_is_loaded(&self) -> bool {
18747 !self.glGetQueryiv_p.load(RELAX).is_null()
18748 }
18749 #[cfg_attr(feature = "inline", inline)]
18754 #[cfg_attr(feature = "inline_always", inline(always))]
18755 pub unsafe fn GetQueryivEXT(&self, target: GLenum, pname: GLenum, params: *mut GLint) {
18756 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18757 {
18758 trace!(
18759 "calling gl.GetQueryivEXT({:#X}, {:#X}, {:p});",
18760 target,
18761 pname,
18762 params
18763 );
18764 }
18765 let out = call_atomic_ptr_3arg(
18766 "glGetQueryivEXT",
18767 &self.glGetQueryivEXT_p,
18768 target,
18769 pname,
18770 params,
18771 );
18772 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18773 {
18774 self.automatic_glGetError("glGetQueryivEXT");
18775 }
18776 out
18777 }
18778 #[doc(hidden)]
18779 pub unsafe fn GetQueryivEXT_load_with_dyn(
18780 &self,
18781 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18782 ) -> bool {
18783 load_dyn_name_atomic_ptr(
18784 get_proc_address,
18785 b"glGetQueryivEXT\0",
18786 &self.glGetQueryivEXT_p,
18787 )
18788 }
18789 #[inline]
18790 #[doc(hidden)]
18791 pub fn GetQueryivEXT_is_loaded(&self) -> bool {
18792 !self.glGetQueryivEXT_p.load(RELAX).is_null()
18793 }
18794 #[cfg_attr(feature = "inline", inline)]
18799 #[cfg_attr(feature = "inline_always", inline(always))]
18800 pub unsafe fn GetRenderbufferParameteriv(
18801 &self,
18802 target: GLenum,
18803 pname: GLenum,
18804 params: *mut GLint,
18805 ) {
18806 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18807 {
18808 trace!(
18809 "calling gl.GetRenderbufferParameteriv({:#X}, {:#X}, {:p});",
18810 target,
18811 pname,
18812 params
18813 );
18814 }
18815 let out = call_atomic_ptr_3arg(
18816 "glGetRenderbufferParameteriv",
18817 &self.glGetRenderbufferParameteriv_p,
18818 target,
18819 pname,
18820 params,
18821 );
18822 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18823 {
18824 self.automatic_glGetError("glGetRenderbufferParameteriv");
18825 }
18826 out
18827 }
18828 #[doc(hidden)]
18829 pub unsafe fn GetRenderbufferParameteriv_load_with_dyn(
18830 &self,
18831 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18832 ) -> bool {
18833 load_dyn_name_atomic_ptr(
18834 get_proc_address,
18835 b"glGetRenderbufferParameteriv\0",
18836 &self.glGetRenderbufferParameteriv_p,
18837 )
18838 }
18839 #[inline]
18840 #[doc(hidden)]
18841 pub fn GetRenderbufferParameteriv_is_loaded(&self) -> bool {
18842 !self.glGetRenderbufferParameteriv_p.load(RELAX).is_null()
18843 }
18844 #[cfg_attr(feature = "inline", inline)]
18848 #[cfg_attr(feature = "inline_always", inline(always))]
18849 pub unsafe fn GetSamplerParameterIiv(
18850 &self,
18851 sampler: GLuint,
18852 pname: GLenum,
18853 params: *mut GLint,
18854 ) {
18855 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18856 {
18857 trace!(
18858 "calling gl.GetSamplerParameterIiv({:?}, {:#X}, {:p});",
18859 sampler,
18860 pname,
18861 params
18862 );
18863 }
18864 let out = call_atomic_ptr_3arg(
18865 "glGetSamplerParameterIiv",
18866 &self.glGetSamplerParameterIiv_p,
18867 sampler,
18868 pname,
18869 params,
18870 );
18871 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18872 {
18873 self.automatic_glGetError("glGetSamplerParameterIiv");
18874 }
18875 out
18876 }
18877 #[doc(hidden)]
18878 pub unsafe fn GetSamplerParameterIiv_load_with_dyn(
18879 &self,
18880 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18881 ) -> bool {
18882 load_dyn_name_atomic_ptr(
18883 get_proc_address,
18884 b"glGetSamplerParameterIiv\0",
18885 &self.glGetSamplerParameterIiv_p,
18886 )
18887 }
18888 #[inline]
18889 #[doc(hidden)]
18890 pub fn GetSamplerParameterIiv_is_loaded(&self) -> bool {
18891 !self.glGetSamplerParameterIiv_p.load(RELAX).is_null()
18892 }
18893 #[cfg_attr(feature = "inline", inline)]
18897 #[cfg_attr(feature = "inline_always", inline(always))]
18898 pub unsafe fn GetSamplerParameterIuiv(
18899 &self,
18900 sampler: GLuint,
18901 pname: GLenum,
18902 params: *mut GLuint,
18903 ) {
18904 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18905 {
18906 trace!(
18907 "calling gl.GetSamplerParameterIuiv({:?}, {:#X}, {:p});",
18908 sampler,
18909 pname,
18910 params
18911 );
18912 }
18913 let out = call_atomic_ptr_3arg(
18914 "glGetSamplerParameterIuiv",
18915 &self.glGetSamplerParameterIuiv_p,
18916 sampler,
18917 pname,
18918 params,
18919 );
18920 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18921 {
18922 self.automatic_glGetError("glGetSamplerParameterIuiv");
18923 }
18924 out
18925 }
18926 #[doc(hidden)]
18927 pub unsafe fn GetSamplerParameterIuiv_load_with_dyn(
18928 &self,
18929 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18930 ) -> bool {
18931 load_dyn_name_atomic_ptr(
18932 get_proc_address,
18933 b"glGetSamplerParameterIuiv\0",
18934 &self.glGetSamplerParameterIuiv_p,
18935 )
18936 }
18937 #[inline]
18938 #[doc(hidden)]
18939 pub fn GetSamplerParameterIuiv_is_loaded(&self) -> bool {
18940 !self.glGetSamplerParameterIuiv_p.load(RELAX).is_null()
18941 }
18942 #[cfg_attr(feature = "inline", inline)]
18946 #[cfg_attr(feature = "inline_always", inline(always))]
18947 pub unsafe fn GetSamplerParameterfv(
18948 &self,
18949 sampler: GLuint,
18950 pname: GLenum,
18951 params: *mut GLfloat,
18952 ) {
18953 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
18954 {
18955 trace!(
18956 "calling gl.GetSamplerParameterfv({:?}, {:#X}, {:p});",
18957 sampler,
18958 pname,
18959 params
18960 );
18961 }
18962 let out = call_atomic_ptr_3arg(
18963 "glGetSamplerParameterfv",
18964 &self.glGetSamplerParameterfv_p,
18965 sampler,
18966 pname,
18967 params,
18968 );
18969 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
18970 {
18971 self.automatic_glGetError("glGetSamplerParameterfv");
18972 }
18973 out
18974 }
18975 #[doc(hidden)]
18976 pub unsafe fn GetSamplerParameterfv_load_with_dyn(
18977 &self,
18978 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
18979 ) -> bool {
18980 load_dyn_name_atomic_ptr(
18981 get_proc_address,
18982 b"glGetSamplerParameterfv\0",
18983 &self.glGetSamplerParameterfv_p,
18984 )
18985 }
18986 #[inline]
18987 #[doc(hidden)]
18988 pub fn GetSamplerParameterfv_is_loaded(&self) -> bool {
18989 !self.glGetSamplerParameterfv_p.load(RELAX).is_null()
18990 }
18991 #[cfg_attr(feature = "inline", inline)]
18995 #[cfg_attr(feature = "inline_always", inline(always))]
18996 pub unsafe fn GetSamplerParameteriv(
18997 &self,
18998 sampler: GLuint,
18999 pname: GLenum,
19000 params: *mut GLint,
19001 ) {
19002 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19003 {
19004 trace!(
19005 "calling gl.GetSamplerParameteriv({:?}, {:#X}, {:p});",
19006 sampler,
19007 pname,
19008 params
19009 );
19010 }
19011 let out = call_atomic_ptr_3arg(
19012 "glGetSamplerParameteriv",
19013 &self.glGetSamplerParameteriv_p,
19014 sampler,
19015 pname,
19016 params,
19017 );
19018 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19019 {
19020 self.automatic_glGetError("glGetSamplerParameteriv");
19021 }
19022 out
19023 }
19024 #[doc(hidden)]
19025 pub unsafe fn GetSamplerParameteriv_load_with_dyn(
19026 &self,
19027 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19028 ) -> bool {
19029 load_dyn_name_atomic_ptr(
19030 get_proc_address,
19031 b"glGetSamplerParameteriv\0",
19032 &self.glGetSamplerParameteriv_p,
19033 )
19034 }
19035 #[inline]
19036 #[doc(hidden)]
19037 pub fn GetSamplerParameteriv_is_loaded(&self) -> bool {
19038 !self.glGetSamplerParameteriv_p.load(RELAX).is_null()
19039 }
19040 #[cfg_attr(feature = "inline", inline)]
19044 #[cfg_attr(feature = "inline_always", inline(always))]
19045 pub unsafe fn GetShaderInfoLog(
19046 &self,
19047 shader: GLuint,
19048 bufSize: GLsizei,
19049 length: *mut GLsizei,
19050 infoLog: *mut GLchar,
19051 ) {
19052 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19053 {
19054 trace!(
19055 "calling gl.GetShaderInfoLog({:?}, {:?}, {:p}, {:p});",
19056 shader,
19057 bufSize,
19058 length,
19059 infoLog
19060 );
19061 }
19062 let out = call_atomic_ptr_4arg(
19063 "glGetShaderInfoLog",
19064 &self.glGetShaderInfoLog_p,
19065 shader,
19066 bufSize,
19067 length,
19068 infoLog,
19069 );
19070 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19071 {
19072 self.automatic_glGetError("glGetShaderInfoLog");
19073 }
19074 out
19075 }
19076 #[doc(hidden)]
19077 pub unsafe fn GetShaderInfoLog_load_with_dyn(
19078 &self,
19079 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19080 ) -> bool {
19081 load_dyn_name_atomic_ptr(
19082 get_proc_address,
19083 b"glGetShaderInfoLog\0",
19084 &self.glGetShaderInfoLog_p,
19085 )
19086 }
19087 #[inline]
19088 #[doc(hidden)]
19089 pub fn GetShaderInfoLog_is_loaded(&self) -> bool {
19090 !self.glGetShaderInfoLog_p.load(RELAX).is_null()
19091 }
19092 #[cfg_attr(feature = "inline", inline)]
19098 #[cfg_attr(feature = "inline_always", inline(always))]
19099 pub unsafe fn GetShaderPrecisionFormat(
19100 &self,
19101 shadertype: GLenum,
19102 precisiontype: GLenum,
19103 range: *mut GLint,
19104 precision: *mut GLint,
19105 ) {
19106 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19107 {
19108 trace!(
19109 "calling gl.GetShaderPrecisionFormat({:#X}, {:#X}, {:p}, {:p});",
19110 shadertype,
19111 precisiontype,
19112 range,
19113 precision
19114 );
19115 }
19116 let out = call_atomic_ptr_4arg(
19117 "glGetShaderPrecisionFormat",
19118 &self.glGetShaderPrecisionFormat_p,
19119 shadertype,
19120 precisiontype,
19121 range,
19122 precision,
19123 );
19124 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19125 {
19126 self.automatic_glGetError("glGetShaderPrecisionFormat");
19127 }
19128 out
19129 }
19130 #[doc(hidden)]
19131 pub unsafe fn GetShaderPrecisionFormat_load_with_dyn(
19132 &self,
19133 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19134 ) -> bool {
19135 load_dyn_name_atomic_ptr(
19136 get_proc_address,
19137 b"glGetShaderPrecisionFormat\0",
19138 &self.glGetShaderPrecisionFormat_p,
19139 )
19140 }
19141 #[inline]
19142 #[doc(hidden)]
19143 pub fn GetShaderPrecisionFormat_is_loaded(&self) -> bool {
19144 !self.glGetShaderPrecisionFormat_p.load(RELAX).is_null()
19145 }
19146 #[cfg_attr(feature = "inline", inline)]
19150 #[cfg_attr(feature = "inline_always", inline(always))]
19151 pub unsafe fn GetShaderSource(
19152 &self,
19153 shader: GLuint,
19154 bufSize: GLsizei,
19155 length: *mut GLsizei,
19156 source: *mut GLchar,
19157 ) {
19158 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19159 {
19160 trace!(
19161 "calling gl.GetShaderSource({:?}, {:?}, {:p}, {:p});",
19162 shader,
19163 bufSize,
19164 length,
19165 source
19166 );
19167 }
19168 let out = call_atomic_ptr_4arg(
19169 "glGetShaderSource",
19170 &self.glGetShaderSource_p,
19171 shader,
19172 bufSize,
19173 length,
19174 source,
19175 );
19176 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19177 {
19178 self.automatic_glGetError("glGetShaderSource");
19179 }
19180 out
19181 }
19182 #[doc(hidden)]
19183 pub unsafe fn GetShaderSource_load_with_dyn(
19184 &self,
19185 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19186 ) -> bool {
19187 load_dyn_name_atomic_ptr(
19188 get_proc_address,
19189 b"glGetShaderSource\0",
19190 &self.glGetShaderSource_p,
19191 )
19192 }
19193 #[inline]
19194 #[doc(hidden)]
19195 pub fn GetShaderSource_is_loaded(&self) -> bool {
19196 !self.glGetShaderSource_p.load(RELAX).is_null()
19197 }
19198 #[cfg_attr(feature = "inline", inline)]
19202 #[cfg_attr(feature = "inline_always", inline(always))]
19203 pub unsafe fn GetShaderiv(&self, shader: GLuint, pname: GLenum, params: *mut GLint) {
19204 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19205 {
19206 trace!(
19207 "calling gl.GetShaderiv({:?}, {:#X}, {:p});",
19208 shader,
19209 pname,
19210 params
19211 );
19212 }
19213 let out = call_atomic_ptr_3arg(
19214 "glGetShaderiv",
19215 &self.glGetShaderiv_p,
19216 shader,
19217 pname,
19218 params,
19219 );
19220 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19221 {
19222 self.automatic_glGetError("glGetShaderiv");
19223 }
19224 out
19225 }
19226 #[doc(hidden)]
19227 pub unsafe fn GetShaderiv_load_with_dyn(
19228 &self,
19229 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19230 ) -> bool {
19231 load_dyn_name_atomic_ptr(get_proc_address, b"glGetShaderiv\0", &self.glGetShaderiv_p)
19232 }
19233 #[inline]
19234 #[doc(hidden)]
19235 pub fn GetShaderiv_is_loaded(&self) -> bool {
19236 !self.glGetShaderiv_p.load(RELAX).is_null()
19237 }
19238 #[cfg_attr(feature = "inline", inline)]
19242 #[cfg_attr(feature = "inline_always", inline(always))]
19243 pub unsafe fn GetString(&self, name: GLenum) -> *const GLubyte {
19244 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19245 {
19246 trace!("calling gl.GetString({:#X});", name);
19247 }
19248 let out = call_atomic_ptr_1arg("glGetString", &self.glGetString_p, name);
19249 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19250 {
19251 self.automatic_glGetError("glGetString");
19252 }
19253 out
19254 }
19255 #[doc(hidden)]
19256 pub unsafe fn GetString_load_with_dyn(
19257 &self,
19258 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19259 ) -> bool {
19260 load_dyn_name_atomic_ptr(get_proc_address, b"glGetString\0", &self.glGetString_p)
19261 }
19262 #[inline]
19263 #[doc(hidden)]
19264 pub fn GetString_is_loaded(&self) -> bool {
19265 !self.glGetString_p.load(RELAX).is_null()
19266 }
19267 #[cfg_attr(feature = "inline", inline)]
19271 #[cfg_attr(feature = "inline_always", inline(always))]
19272 pub unsafe fn GetStringi(&self, name: GLenum, index: GLuint) -> *const GLubyte {
19273 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19274 {
19275 trace!("calling gl.GetStringi({:#X}, {:?});", name, index);
19276 }
19277 let out = call_atomic_ptr_2arg("glGetStringi", &self.glGetStringi_p, name, index);
19278 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19279 {
19280 self.automatic_glGetError("glGetStringi");
19281 }
19282 out
19283 }
19284 #[doc(hidden)]
19285 pub unsafe fn GetStringi_load_with_dyn(
19286 &self,
19287 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19288 ) -> bool {
19289 load_dyn_name_atomic_ptr(get_proc_address, b"glGetStringi\0", &self.glGetStringi_p)
19290 }
19291 #[inline]
19292 #[doc(hidden)]
19293 pub fn GetStringi_is_loaded(&self) -> bool {
19294 !self.glGetStringi_p.load(RELAX).is_null()
19295 }
19296 #[cfg_attr(feature = "inline", inline)]
19299 #[cfg_attr(feature = "inline_always", inline(always))]
19300 pub unsafe fn GetSubroutineIndex(
19301 &self,
19302 program: GLuint,
19303 shadertype: GLenum,
19304 name: *const GLchar,
19305 ) -> GLuint {
19306 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19307 {
19308 trace!(
19309 "calling gl.GetSubroutineIndex({:?}, {:#X}, {:p});",
19310 program,
19311 shadertype,
19312 name
19313 );
19314 }
19315 let out = call_atomic_ptr_3arg(
19316 "glGetSubroutineIndex",
19317 &self.glGetSubroutineIndex_p,
19318 program,
19319 shadertype,
19320 name,
19321 );
19322 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19323 {
19324 self.automatic_glGetError("glGetSubroutineIndex");
19325 }
19326 out
19327 }
19328 #[doc(hidden)]
19329 pub unsafe fn GetSubroutineIndex_load_with_dyn(
19330 &self,
19331 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19332 ) -> bool {
19333 load_dyn_name_atomic_ptr(
19334 get_proc_address,
19335 b"glGetSubroutineIndex\0",
19336 &self.glGetSubroutineIndex_p,
19337 )
19338 }
19339 #[inline]
19340 #[doc(hidden)]
19341 pub fn GetSubroutineIndex_is_loaded(&self) -> bool {
19342 !self.glGetSubroutineIndex_p.load(RELAX).is_null()
19343 }
19344 #[cfg_attr(feature = "inline", inline)]
19347 #[cfg_attr(feature = "inline_always", inline(always))]
19348 pub unsafe fn GetSubroutineUniformLocation(
19349 &self,
19350 program: GLuint,
19351 shadertype: GLenum,
19352 name: *const GLchar,
19353 ) -> GLint {
19354 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19355 {
19356 trace!(
19357 "calling gl.GetSubroutineUniformLocation({:?}, {:#X}, {:p});",
19358 program,
19359 shadertype,
19360 name
19361 );
19362 }
19363 let out = call_atomic_ptr_3arg(
19364 "glGetSubroutineUniformLocation",
19365 &self.glGetSubroutineUniformLocation_p,
19366 program,
19367 shadertype,
19368 name,
19369 );
19370 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19371 {
19372 self.automatic_glGetError("glGetSubroutineUniformLocation");
19373 }
19374 out
19375 }
19376 #[doc(hidden)]
19377 pub unsafe fn GetSubroutineUniformLocation_load_with_dyn(
19378 &self,
19379 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19380 ) -> bool {
19381 load_dyn_name_atomic_ptr(
19382 get_proc_address,
19383 b"glGetSubroutineUniformLocation\0",
19384 &self.glGetSubroutineUniformLocation_p,
19385 )
19386 }
19387 #[inline]
19388 #[doc(hidden)]
19389 pub fn GetSubroutineUniformLocation_is_loaded(&self) -> bool {
19390 !self.glGetSubroutineUniformLocation_p.load(RELAX).is_null()
19391 }
19392 #[cfg_attr(feature = "inline", inline)]
19398 #[cfg_attr(feature = "inline_always", inline(always))]
19399 pub unsafe fn GetSynciv(
19400 &self,
19401 sync: GLsync,
19402 pname: GLenum,
19403 count: GLsizei,
19404 length: *mut GLsizei,
19405 values: *mut GLint,
19406 ) {
19407 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19408 {
19409 trace!(
19410 "calling gl.GetSynciv({:p}, {:#X}, {:?}, {:p}, {:p});",
19411 sync,
19412 pname,
19413 count,
19414 length,
19415 values
19416 );
19417 }
19418 let out = call_atomic_ptr_5arg(
19419 "glGetSynciv",
19420 &self.glGetSynciv_p,
19421 sync,
19422 pname,
19423 count,
19424 length,
19425 values,
19426 );
19427 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19428 {
19429 self.automatic_glGetError("glGetSynciv");
19430 }
19431 out
19432 }
19433 #[doc(hidden)]
19434 pub unsafe fn GetSynciv_load_with_dyn(
19435 &self,
19436 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19437 ) -> bool {
19438 load_dyn_name_atomic_ptr(get_proc_address, b"glGetSynciv\0", &self.glGetSynciv_p)
19439 }
19440 #[inline]
19441 #[doc(hidden)]
19442 pub fn GetSynciv_is_loaded(&self) -> bool {
19443 !self.glGetSynciv_p.load(RELAX).is_null()
19444 }
19445 #[cfg_attr(feature = "inline", inline)]
19452 #[cfg_attr(feature = "inline_always", inline(always))]
19453 pub unsafe fn GetTexImage(
19454 &self,
19455 target: GLenum,
19456 level: GLint,
19457 format: GLenum,
19458 type_: GLenum,
19459 pixels: *mut c_void,
19460 ) {
19461 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19462 {
19463 trace!(
19464 "calling gl.GetTexImage({:#X}, {:?}, {:#X}, {:#X}, {:p});",
19465 target,
19466 level,
19467 format,
19468 type_,
19469 pixels
19470 );
19471 }
19472 let out = call_atomic_ptr_5arg(
19473 "glGetTexImage",
19474 &self.glGetTexImage_p,
19475 target,
19476 level,
19477 format,
19478 type_,
19479 pixels,
19480 );
19481 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19482 {
19483 self.automatic_glGetError("glGetTexImage");
19484 }
19485 out
19486 }
19487 #[doc(hidden)]
19488 pub unsafe fn GetTexImage_load_with_dyn(
19489 &self,
19490 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19491 ) -> bool {
19492 load_dyn_name_atomic_ptr(get_proc_address, b"glGetTexImage\0", &self.glGetTexImage_p)
19493 }
19494 #[inline]
19495 #[doc(hidden)]
19496 pub fn GetTexImage_is_loaded(&self) -> bool {
19497 !self.glGetTexImage_p.load(RELAX).is_null()
19498 }
19499 #[cfg_attr(feature = "inline", inline)]
19505 #[cfg_attr(feature = "inline_always", inline(always))]
19506 pub unsafe fn GetTexLevelParameterfv(
19507 &self,
19508 target: GLenum,
19509 level: GLint,
19510 pname: GLenum,
19511 params: *mut GLfloat,
19512 ) {
19513 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19514 {
19515 trace!(
19516 "calling gl.GetTexLevelParameterfv({:#X}, {:?}, {:#X}, {:p});",
19517 target,
19518 level,
19519 pname,
19520 params
19521 );
19522 }
19523 let out = call_atomic_ptr_4arg(
19524 "glGetTexLevelParameterfv",
19525 &self.glGetTexLevelParameterfv_p,
19526 target,
19527 level,
19528 pname,
19529 params,
19530 );
19531 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19532 {
19533 self.automatic_glGetError("glGetTexLevelParameterfv");
19534 }
19535 out
19536 }
19537 #[doc(hidden)]
19538 pub unsafe fn GetTexLevelParameterfv_load_with_dyn(
19539 &self,
19540 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19541 ) -> bool {
19542 load_dyn_name_atomic_ptr(
19543 get_proc_address,
19544 b"glGetTexLevelParameterfv\0",
19545 &self.glGetTexLevelParameterfv_p,
19546 )
19547 }
19548 #[inline]
19549 #[doc(hidden)]
19550 pub fn GetTexLevelParameterfv_is_loaded(&self) -> bool {
19551 !self.glGetTexLevelParameterfv_p.load(RELAX).is_null()
19552 }
19553 #[cfg_attr(feature = "inline", inline)]
19559 #[cfg_attr(feature = "inline_always", inline(always))]
19560 pub unsafe fn GetTexLevelParameteriv(
19561 &self,
19562 target: GLenum,
19563 level: GLint,
19564 pname: GLenum,
19565 params: *mut GLint,
19566 ) {
19567 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19568 {
19569 trace!(
19570 "calling gl.GetTexLevelParameteriv({:#X}, {:?}, {:#X}, {:p});",
19571 target,
19572 level,
19573 pname,
19574 params
19575 );
19576 }
19577 let out = call_atomic_ptr_4arg(
19578 "glGetTexLevelParameteriv",
19579 &self.glGetTexLevelParameteriv_p,
19580 target,
19581 level,
19582 pname,
19583 params,
19584 );
19585 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19586 {
19587 self.automatic_glGetError("glGetTexLevelParameteriv");
19588 }
19589 out
19590 }
19591 #[doc(hidden)]
19592 pub unsafe fn GetTexLevelParameteriv_load_with_dyn(
19593 &self,
19594 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19595 ) -> bool {
19596 load_dyn_name_atomic_ptr(
19597 get_proc_address,
19598 b"glGetTexLevelParameteriv\0",
19599 &self.glGetTexLevelParameteriv_p,
19600 )
19601 }
19602 #[inline]
19603 #[doc(hidden)]
19604 pub fn GetTexLevelParameteriv_is_loaded(&self) -> bool {
19605 !self.glGetTexLevelParameteriv_p.load(RELAX).is_null()
19606 }
19607 #[cfg_attr(feature = "inline", inline)]
19612 #[cfg_attr(feature = "inline_always", inline(always))]
19613 pub unsafe fn GetTexParameterIiv(&self, target: GLenum, pname: GLenum, params: *mut GLint) {
19614 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19615 {
19616 trace!(
19617 "calling gl.GetTexParameterIiv({:#X}, {:#X}, {:p});",
19618 target,
19619 pname,
19620 params
19621 );
19622 }
19623 let out = call_atomic_ptr_3arg(
19624 "glGetTexParameterIiv",
19625 &self.glGetTexParameterIiv_p,
19626 target,
19627 pname,
19628 params,
19629 );
19630 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19631 {
19632 self.automatic_glGetError("glGetTexParameterIiv");
19633 }
19634 out
19635 }
19636 #[doc(hidden)]
19637 pub unsafe fn GetTexParameterIiv_load_with_dyn(
19638 &self,
19639 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19640 ) -> bool {
19641 load_dyn_name_atomic_ptr(
19642 get_proc_address,
19643 b"glGetTexParameterIiv\0",
19644 &self.glGetTexParameterIiv_p,
19645 )
19646 }
19647 #[inline]
19648 #[doc(hidden)]
19649 pub fn GetTexParameterIiv_is_loaded(&self) -> bool {
19650 !self.glGetTexParameterIiv_p.load(RELAX).is_null()
19651 }
19652 #[cfg_attr(feature = "inline", inline)]
19657 #[cfg_attr(feature = "inline_always", inline(always))]
19658 pub unsafe fn GetTexParameterIuiv(
19659 &self,
19660 target: GLenum,
19661 pname: GLenum,
19662 params: *mut GLuint,
19663 ) {
19664 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19665 {
19666 trace!(
19667 "calling gl.GetTexParameterIuiv({:#X}, {:#X}, {:p});",
19668 target,
19669 pname,
19670 params
19671 );
19672 }
19673 let out = call_atomic_ptr_3arg(
19674 "glGetTexParameterIuiv",
19675 &self.glGetTexParameterIuiv_p,
19676 target,
19677 pname,
19678 params,
19679 );
19680 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19681 {
19682 self.automatic_glGetError("glGetTexParameterIuiv");
19683 }
19684 out
19685 }
19686 #[doc(hidden)]
19687 pub unsafe fn GetTexParameterIuiv_load_with_dyn(
19688 &self,
19689 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19690 ) -> bool {
19691 load_dyn_name_atomic_ptr(
19692 get_proc_address,
19693 b"glGetTexParameterIuiv\0",
19694 &self.glGetTexParameterIuiv_p,
19695 )
19696 }
19697 #[inline]
19698 #[doc(hidden)]
19699 pub fn GetTexParameterIuiv_is_loaded(&self) -> bool {
19700 !self.glGetTexParameterIuiv_p.load(RELAX).is_null()
19701 }
19702 #[cfg_attr(feature = "inline", inline)]
19707 #[cfg_attr(feature = "inline_always", inline(always))]
19708 pub unsafe fn GetTexParameterfv(
19709 &self,
19710 target: GLenum,
19711 pname: GLenum,
19712 params: *mut GLfloat,
19713 ) {
19714 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19715 {
19716 trace!(
19717 "calling gl.GetTexParameterfv({:#X}, {:#X}, {:p});",
19718 target,
19719 pname,
19720 params
19721 );
19722 }
19723 let out = call_atomic_ptr_3arg(
19724 "glGetTexParameterfv",
19725 &self.glGetTexParameterfv_p,
19726 target,
19727 pname,
19728 params,
19729 );
19730 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19731 {
19732 self.automatic_glGetError("glGetTexParameterfv");
19733 }
19734 out
19735 }
19736 #[doc(hidden)]
19737 pub unsafe fn GetTexParameterfv_load_with_dyn(
19738 &self,
19739 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19740 ) -> bool {
19741 load_dyn_name_atomic_ptr(
19742 get_proc_address,
19743 b"glGetTexParameterfv\0",
19744 &self.glGetTexParameterfv_p,
19745 )
19746 }
19747 #[inline]
19748 #[doc(hidden)]
19749 pub fn GetTexParameterfv_is_loaded(&self) -> bool {
19750 !self.glGetTexParameterfv_p.load(RELAX).is_null()
19751 }
19752 #[cfg_attr(feature = "inline", inline)]
19757 #[cfg_attr(feature = "inline_always", inline(always))]
19758 pub unsafe fn GetTexParameteriv(&self, target: GLenum, pname: GLenum, params: *mut GLint) {
19759 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19760 {
19761 trace!(
19762 "calling gl.GetTexParameteriv({:#X}, {:#X}, {:p});",
19763 target,
19764 pname,
19765 params
19766 );
19767 }
19768 let out = call_atomic_ptr_3arg(
19769 "glGetTexParameteriv",
19770 &self.glGetTexParameteriv_p,
19771 target,
19772 pname,
19773 params,
19774 );
19775 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19776 {
19777 self.automatic_glGetError("glGetTexParameteriv");
19778 }
19779 out
19780 }
19781 #[doc(hidden)]
19782 pub unsafe fn GetTexParameteriv_load_with_dyn(
19783 &self,
19784 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19785 ) -> bool {
19786 load_dyn_name_atomic_ptr(
19787 get_proc_address,
19788 b"glGetTexParameteriv\0",
19789 &self.glGetTexParameteriv_p,
19790 )
19791 }
19792 #[inline]
19793 #[doc(hidden)]
19794 pub fn GetTexParameteriv_is_loaded(&self) -> bool {
19795 !self.glGetTexParameteriv_p.load(RELAX).is_null()
19796 }
19797 #[cfg_attr(feature = "inline", inline)]
19801 #[cfg_attr(feature = "inline_always", inline(always))]
19802 pub unsafe fn GetTextureImage(
19803 &self,
19804 texture: GLuint,
19805 level: GLint,
19806 format: GLenum,
19807 type_: GLenum,
19808 bufSize: GLsizei,
19809 pixels: *mut c_void,
19810 ) {
19811 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19812 {
19813 trace!(
19814 "calling gl.GetTextureImage({:?}, {:?}, {:#X}, {:#X}, {:?}, {:p});",
19815 texture,
19816 level,
19817 format,
19818 type_,
19819 bufSize,
19820 pixels
19821 );
19822 }
19823 let out = call_atomic_ptr_6arg(
19824 "glGetTextureImage",
19825 &self.glGetTextureImage_p,
19826 texture,
19827 level,
19828 format,
19829 type_,
19830 bufSize,
19831 pixels,
19832 );
19833 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19834 {
19835 self.automatic_glGetError("glGetTextureImage");
19836 }
19837 out
19838 }
19839 #[doc(hidden)]
19840 pub unsafe fn GetTextureImage_load_with_dyn(
19841 &self,
19842 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19843 ) -> bool {
19844 load_dyn_name_atomic_ptr(
19845 get_proc_address,
19846 b"glGetTextureImage\0",
19847 &self.glGetTextureImage_p,
19848 )
19849 }
19850 #[inline]
19851 #[doc(hidden)]
19852 pub fn GetTextureImage_is_loaded(&self) -> bool {
19853 !self.glGetTextureImage_p.load(RELAX).is_null()
19854 }
19855 #[cfg_attr(feature = "inline", inline)]
19858 #[cfg_attr(feature = "inline_always", inline(always))]
19859 pub unsafe fn GetTextureLevelParameterfv(
19860 &self,
19861 texture: GLuint,
19862 level: GLint,
19863 pname: GLenum,
19864 params: *mut GLfloat,
19865 ) {
19866 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19867 {
19868 trace!(
19869 "calling gl.GetTextureLevelParameterfv({:?}, {:?}, {:#X}, {:p});",
19870 texture,
19871 level,
19872 pname,
19873 params
19874 );
19875 }
19876 let out = call_atomic_ptr_4arg(
19877 "glGetTextureLevelParameterfv",
19878 &self.glGetTextureLevelParameterfv_p,
19879 texture,
19880 level,
19881 pname,
19882 params,
19883 );
19884 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19885 {
19886 self.automatic_glGetError("glGetTextureLevelParameterfv");
19887 }
19888 out
19889 }
19890 #[doc(hidden)]
19891 pub unsafe fn GetTextureLevelParameterfv_load_with_dyn(
19892 &self,
19893 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19894 ) -> bool {
19895 load_dyn_name_atomic_ptr(
19896 get_proc_address,
19897 b"glGetTextureLevelParameterfv\0",
19898 &self.glGetTextureLevelParameterfv_p,
19899 )
19900 }
19901 #[inline]
19902 #[doc(hidden)]
19903 pub fn GetTextureLevelParameterfv_is_loaded(&self) -> bool {
19904 !self.glGetTextureLevelParameterfv_p.load(RELAX).is_null()
19905 }
19906 #[cfg_attr(feature = "inline", inline)]
19909 #[cfg_attr(feature = "inline_always", inline(always))]
19910 pub unsafe fn GetTextureLevelParameteriv(
19911 &self,
19912 texture: GLuint,
19913 level: GLint,
19914 pname: GLenum,
19915 params: *mut GLint,
19916 ) {
19917 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19918 {
19919 trace!(
19920 "calling gl.GetTextureLevelParameteriv({:?}, {:?}, {:#X}, {:p});",
19921 texture,
19922 level,
19923 pname,
19924 params
19925 );
19926 }
19927 let out = call_atomic_ptr_4arg(
19928 "glGetTextureLevelParameteriv",
19929 &self.glGetTextureLevelParameteriv_p,
19930 texture,
19931 level,
19932 pname,
19933 params,
19934 );
19935 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19936 {
19937 self.automatic_glGetError("glGetTextureLevelParameteriv");
19938 }
19939 out
19940 }
19941 #[doc(hidden)]
19942 pub unsafe fn GetTextureLevelParameteriv_load_with_dyn(
19943 &self,
19944 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19945 ) -> bool {
19946 load_dyn_name_atomic_ptr(
19947 get_proc_address,
19948 b"glGetTextureLevelParameteriv\0",
19949 &self.glGetTextureLevelParameteriv_p,
19950 )
19951 }
19952 #[inline]
19953 #[doc(hidden)]
19954 pub fn GetTextureLevelParameteriv_is_loaded(&self) -> bool {
19955 !self.glGetTextureLevelParameteriv_p.load(RELAX).is_null()
19956 }
19957 #[cfg_attr(feature = "inline", inline)]
19960 #[cfg_attr(feature = "inline_always", inline(always))]
19961 pub unsafe fn GetTextureParameterIiv(
19962 &self,
19963 texture: GLuint,
19964 pname: GLenum,
19965 params: *mut GLint,
19966 ) {
19967 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
19968 {
19969 trace!(
19970 "calling gl.GetTextureParameterIiv({:?}, {:#X}, {:p});",
19971 texture,
19972 pname,
19973 params
19974 );
19975 }
19976 let out = call_atomic_ptr_3arg(
19977 "glGetTextureParameterIiv",
19978 &self.glGetTextureParameterIiv_p,
19979 texture,
19980 pname,
19981 params,
19982 );
19983 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
19984 {
19985 self.automatic_glGetError("glGetTextureParameterIiv");
19986 }
19987 out
19988 }
19989 #[doc(hidden)]
19990 pub unsafe fn GetTextureParameterIiv_load_with_dyn(
19991 &self,
19992 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
19993 ) -> bool {
19994 load_dyn_name_atomic_ptr(
19995 get_proc_address,
19996 b"glGetTextureParameterIiv\0",
19997 &self.glGetTextureParameterIiv_p,
19998 )
19999 }
20000 #[inline]
20001 #[doc(hidden)]
20002 pub fn GetTextureParameterIiv_is_loaded(&self) -> bool {
20003 !self.glGetTextureParameterIiv_p.load(RELAX).is_null()
20004 }
20005 #[cfg_attr(feature = "inline", inline)]
20008 #[cfg_attr(feature = "inline_always", inline(always))]
20009 pub unsafe fn GetTextureParameterIuiv(
20010 &self,
20011 texture: GLuint,
20012 pname: GLenum,
20013 params: *mut GLuint,
20014 ) {
20015 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20016 {
20017 trace!(
20018 "calling gl.GetTextureParameterIuiv({:?}, {:#X}, {:p});",
20019 texture,
20020 pname,
20021 params
20022 );
20023 }
20024 let out = call_atomic_ptr_3arg(
20025 "glGetTextureParameterIuiv",
20026 &self.glGetTextureParameterIuiv_p,
20027 texture,
20028 pname,
20029 params,
20030 );
20031 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20032 {
20033 self.automatic_glGetError("glGetTextureParameterIuiv");
20034 }
20035 out
20036 }
20037 #[doc(hidden)]
20038 pub unsafe fn GetTextureParameterIuiv_load_with_dyn(
20039 &self,
20040 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20041 ) -> bool {
20042 load_dyn_name_atomic_ptr(
20043 get_proc_address,
20044 b"glGetTextureParameterIuiv\0",
20045 &self.glGetTextureParameterIuiv_p,
20046 )
20047 }
20048 #[inline]
20049 #[doc(hidden)]
20050 pub fn GetTextureParameterIuiv_is_loaded(&self) -> bool {
20051 !self.glGetTextureParameterIuiv_p.load(RELAX).is_null()
20052 }
20053 #[cfg_attr(feature = "inline", inline)]
20056 #[cfg_attr(feature = "inline_always", inline(always))]
20057 pub unsafe fn GetTextureParameterfv(
20058 &self,
20059 texture: GLuint,
20060 pname: GLenum,
20061 params: *mut GLfloat,
20062 ) {
20063 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20064 {
20065 trace!(
20066 "calling gl.GetTextureParameterfv({:?}, {:#X}, {:p});",
20067 texture,
20068 pname,
20069 params
20070 );
20071 }
20072 let out = call_atomic_ptr_3arg(
20073 "glGetTextureParameterfv",
20074 &self.glGetTextureParameterfv_p,
20075 texture,
20076 pname,
20077 params,
20078 );
20079 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20080 {
20081 self.automatic_glGetError("glGetTextureParameterfv");
20082 }
20083 out
20084 }
20085 #[doc(hidden)]
20086 pub unsafe fn GetTextureParameterfv_load_with_dyn(
20087 &self,
20088 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20089 ) -> bool {
20090 load_dyn_name_atomic_ptr(
20091 get_proc_address,
20092 b"glGetTextureParameterfv\0",
20093 &self.glGetTextureParameterfv_p,
20094 )
20095 }
20096 #[inline]
20097 #[doc(hidden)]
20098 pub fn GetTextureParameterfv_is_loaded(&self) -> bool {
20099 !self.glGetTextureParameterfv_p.load(RELAX).is_null()
20100 }
20101 #[cfg_attr(feature = "inline", inline)]
20104 #[cfg_attr(feature = "inline_always", inline(always))]
20105 pub unsafe fn GetTextureParameteriv(
20106 &self,
20107 texture: GLuint,
20108 pname: GLenum,
20109 params: *mut GLint,
20110 ) {
20111 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20112 {
20113 trace!(
20114 "calling gl.GetTextureParameteriv({:?}, {:#X}, {:p});",
20115 texture,
20116 pname,
20117 params
20118 );
20119 }
20120 let out = call_atomic_ptr_3arg(
20121 "glGetTextureParameteriv",
20122 &self.glGetTextureParameteriv_p,
20123 texture,
20124 pname,
20125 params,
20126 );
20127 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20128 {
20129 self.automatic_glGetError("glGetTextureParameteriv");
20130 }
20131 out
20132 }
20133 #[doc(hidden)]
20134 pub unsafe fn GetTextureParameteriv_load_with_dyn(
20135 &self,
20136 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20137 ) -> bool {
20138 load_dyn_name_atomic_ptr(
20139 get_proc_address,
20140 b"glGetTextureParameteriv\0",
20141 &self.glGetTextureParameteriv_p,
20142 )
20143 }
20144 #[inline]
20145 #[doc(hidden)]
20146 pub fn GetTextureParameteriv_is_loaded(&self) -> bool {
20147 !self.glGetTextureParameteriv_p.load(RELAX).is_null()
20148 }
20149 #[cfg_attr(feature = "inline", inline)]
20153 #[cfg_attr(feature = "inline_always", inline(always))]
20154 pub unsafe fn GetTextureSubImage(
20155 &self,
20156 texture: GLuint,
20157 level: GLint,
20158 xoffset: GLint,
20159 yoffset: GLint,
20160 zoffset: GLint,
20161 width: GLsizei,
20162 height: GLsizei,
20163 depth: GLsizei,
20164 format: GLenum,
20165 type_: GLenum,
20166 bufSize: GLsizei,
20167 pixels: *mut c_void,
20168 ) {
20169 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20170 {
20171 trace!("calling gl.GetTextureSubImage({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:?}, {:p});", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type_, bufSize, pixels);
20172 }
20173 let out = call_atomic_ptr_12arg(
20174 "glGetTextureSubImage",
20175 &self.glGetTextureSubImage_p,
20176 texture,
20177 level,
20178 xoffset,
20179 yoffset,
20180 zoffset,
20181 width,
20182 height,
20183 depth,
20184 format,
20185 type_,
20186 bufSize,
20187 pixels,
20188 );
20189 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20190 {
20191 self.automatic_glGetError("glGetTextureSubImage");
20192 }
20193 out
20194 }
20195 #[doc(hidden)]
20196 pub unsafe fn GetTextureSubImage_load_with_dyn(
20197 &self,
20198 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20199 ) -> bool {
20200 load_dyn_name_atomic_ptr(
20201 get_proc_address,
20202 b"glGetTextureSubImage\0",
20203 &self.glGetTextureSubImage_p,
20204 )
20205 }
20206 #[inline]
20207 #[doc(hidden)]
20208 pub fn GetTextureSubImage_is_loaded(&self) -> bool {
20209 !self.glGetTextureSubImage_p.load(RELAX).is_null()
20210 }
20211 #[cfg_attr(feature = "inline", inline)]
20218 #[cfg_attr(feature = "inline_always", inline(always))]
20219 pub unsafe fn GetTransformFeedbackVarying(
20220 &self,
20221 program: GLuint,
20222 index: GLuint,
20223 bufSize: GLsizei,
20224 length: *mut GLsizei,
20225 size: *mut GLsizei,
20226 type_: *mut GLenum,
20227 name: *mut GLchar,
20228 ) {
20229 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20230 {
20231 trace!("calling gl.GetTransformFeedbackVarying({:?}, {:?}, {:?}, {:p}, {:p}, {:p}, {:p});", program, index, bufSize, length, size, type_, name);
20232 }
20233 let out = call_atomic_ptr_7arg(
20234 "glGetTransformFeedbackVarying",
20235 &self.glGetTransformFeedbackVarying_p,
20236 program,
20237 index,
20238 bufSize,
20239 length,
20240 size,
20241 type_,
20242 name,
20243 );
20244 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20245 {
20246 self.automatic_glGetError("glGetTransformFeedbackVarying");
20247 }
20248 out
20249 }
20250 #[doc(hidden)]
20251 pub unsafe fn GetTransformFeedbackVarying_load_with_dyn(
20252 &self,
20253 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20254 ) -> bool {
20255 load_dyn_name_atomic_ptr(
20256 get_proc_address,
20257 b"glGetTransformFeedbackVarying\0",
20258 &self.glGetTransformFeedbackVarying_p,
20259 )
20260 }
20261 #[inline]
20262 #[doc(hidden)]
20263 pub fn GetTransformFeedbackVarying_is_loaded(&self) -> bool {
20264 !self.glGetTransformFeedbackVarying_p.load(RELAX).is_null()
20265 }
20266 #[cfg_attr(feature = "inline", inline)]
20269 #[cfg_attr(feature = "inline_always", inline(always))]
20270 pub unsafe fn GetTransformFeedbacki64_v(
20271 &self,
20272 xfb: GLuint,
20273 pname: GLenum,
20274 index: GLuint,
20275 param: *mut GLint64,
20276 ) {
20277 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20278 {
20279 trace!(
20280 "calling gl.GetTransformFeedbacki64_v({:?}, {:#X}, {:?}, {:p});",
20281 xfb,
20282 pname,
20283 index,
20284 param
20285 );
20286 }
20287 let out = call_atomic_ptr_4arg(
20288 "glGetTransformFeedbacki64_v",
20289 &self.glGetTransformFeedbacki64_v_p,
20290 xfb,
20291 pname,
20292 index,
20293 param,
20294 );
20295 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20296 {
20297 self.automatic_glGetError("glGetTransformFeedbacki64_v");
20298 }
20299 out
20300 }
20301 #[doc(hidden)]
20302 pub unsafe fn GetTransformFeedbacki64_v_load_with_dyn(
20303 &self,
20304 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20305 ) -> bool {
20306 load_dyn_name_atomic_ptr(
20307 get_proc_address,
20308 b"glGetTransformFeedbacki64_v\0",
20309 &self.glGetTransformFeedbacki64_v_p,
20310 )
20311 }
20312 #[inline]
20313 #[doc(hidden)]
20314 pub fn GetTransformFeedbacki64_v_is_loaded(&self) -> bool {
20315 !self.glGetTransformFeedbacki64_v_p.load(RELAX).is_null()
20316 }
20317 #[cfg_attr(feature = "inline", inline)]
20320 #[cfg_attr(feature = "inline_always", inline(always))]
20321 pub unsafe fn GetTransformFeedbacki_v(
20322 &self,
20323 xfb: GLuint,
20324 pname: GLenum,
20325 index: GLuint,
20326 param: *mut GLint,
20327 ) {
20328 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20329 {
20330 trace!(
20331 "calling gl.GetTransformFeedbacki_v({:?}, {:#X}, {:?}, {:p});",
20332 xfb,
20333 pname,
20334 index,
20335 param
20336 );
20337 }
20338 let out = call_atomic_ptr_4arg(
20339 "glGetTransformFeedbacki_v",
20340 &self.glGetTransformFeedbacki_v_p,
20341 xfb,
20342 pname,
20343 index,
20344 param,
20345 );
20346 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20347 {
20348 self.automatic_glGetError("glGetTransformFeedbacki_v");
20349 }
20350 out
20351 }
20352 #[doc(hidden)]
20353 pub unsafe fn GetTransformFeedbacki_v_load_with_dyn(
20354 &self,
20355 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20356 ) -> bool {
20357 load_dyn_name_atomic_ptr(
20358 get_proc_address,
20359 b"glGetTransformFeedbacki_v\0",
20360 &self.glGetTransformFeedbacki_v_p,
20361 )
20362 }
20363 #[inline]
20364 #[doc(hidden)]
20365 pub fn GetTransformFeedbacki_v_is_loaded(&self) -> bool {
20366 !self.glGetTransformFeedbacki_v_p.load(RELAX).is_null()
20367 }
20368 #[cfg_attr(feature = "inline", inline)]
20371 #[cfg_attr(feature = "inline_always", inline(always))]
20372 pub unsafe fn GetTransformFeedbackiv(&self, xfb: GLuint, pname: GLenum, param: *mut GLint) {
20373 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20374 {
20375 trace!(
20376 "calling gl.GetTransformFeedbackiv({:?}, {:#X}, {:p});",
20377 xfb,
20378 pname,
20379 param
20380 );
20381 }
20382 let out = call_atomic_ptr_3arg(
20383 "glGetTransformFeedbackiv",
20384 &self.glGetTransformFeedbackiv_p,
20385 xfb,
20386 pname,
20387 param,
20388 );
20389 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20390 {
20391 self.automatic_glGetError("glGetTransformFeedbackiv");
20392 }
20393 out
20394 }
20395 #[doc(hidden)]
20396 pub unsafe fn GetTransformFeedbackiv_load_with_dyn(
20397 &self,
20398 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20399 ) -> bool {
20400 load_dyn_name_atomic_ptr(
20401 get_proc_address,
20402 b"glGetTransformFeedbackiv\0",
20403 &self.glGetTransformFeedbackiv_p,
20404 )
20405 }
20406 #[inline]
20407 #[doc(hidden)]
20408 pub fn GetTransformFeedbackiv_is_loaded(&self) -> bool {
20409 !self.glGetTransformFeedbackiv_p.load(RELAX).is_null()
20410 }
20411 #[cfg_attr(feature = "inline", inline)]
20414 #[cfg_attr(feature = "inline_always", inline(always))]
20415 pub unsafe fn GetUniformBlockIndex(
20416 &self,
20417 program: GLuint,
20418 uniformBlockName: *const GLchar,
20419 ) -> GLuint {
20420 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20421 {
20422 trace!(
20423 "calling gl.GetUniformBlockIndex({:?}, {:p});",
20424 program,
20425 uniformBlockName
20426 );
20427 }
20428 let out = call_atomic_ptr_2arg(
20429 "glGetUniformBlockIndex",
20430 &self.glGetUniformBlockIndex_p,
20431 program,
20432 uniformBlockName,
20433 );
20434 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20435 {
20436 self.automatic_glGetError("glGetUniformBlockIndex");
20437 }
20438 out
20439 }
20440 #[doc(hidden)]
20441 pub unsafe fn GetUniformBlockIndex_load_with_dyn(
20442 &self,
20443 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20444 ) -> bool {
20445 load_dyn_name_atomic_ptr(
20446 get_proc_address,
20447 b"glGetUniformBlockIndex\0",
20448 &self.glGetUniformBlockIndex_p,
20449 )
20450 }
20451 #[inline]
20452 #[doc(hidden)]
20453 pub fn GetUniformBlockIndex_is_loaded(&self) -> bool {
20454 !self.glGetUniformBlockIndex_p.load(RELAX).is_null()
20455 }
20456 #[cfg_attr(feature = "inline", inline)]
20460 #[cfg_attr(feature = "inline_always", inline(always))]
20461 pub unsafe fn GetUniformIndices(
20462 &self,
20463 program: GLuint,
20464 uniformCount: GLsizei,
20465 uniformNames: *const *const GLchar,
20466 uniformIndices: *mut GLuint,
20467 ) {
20468 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20469 {
20470 trace!(
20471 "calling gl.GetUniformIndices({:?}, {:?}, {:p}, {:p});",
20472 program,
20473 uniformCount,
20474 uniformNames,
20475 uniformIndices
20476 );
20477 }
20478 let out = call_atomic_ptr_4arg(
20479 "glGetUniformIndices",
20480 &self.glGetUniformIndices_p,
20481 program,
20482 uniformCount,
20483 uniformNames,
20484 uniformIndices,
20485 );
20486 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20487 {
20488 self.automatic_glGetError("glGetUniformIndices");
20489 }
20490 out
20491 }
20492 #[doc(hidden)]
20493 pub unsafe fn GetUniformIndices_load_with_dyn(
20494 &self,
20495 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20496 ) -> bool {
20497 load_dyn_name_atomic_ptr(
20498 get_proc_address,
20499 b"glGetUniformIndices\0",
20500 &self.glGetUniformIndices_p,
20501 )
20502 }
20503 #[inline]
20504 #[doc(hidden)]
20505 pub fn GetUniformIndices_is_loaded(&self) -> bool {
20506 !self.glGetUniformIndices_p.load(RELAX).is_null()
20507 }
20508 #[cfg_attr(feature = "inline", inline)]
20510 #[cfg_attr(feature = "inline_always", inline(always))]
20511 pub unsafe fn GetUniformLocation(&self, program: GLuint, name: *const GLchar) -> GLint {
20512 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20513 {
20514 trace!("calling gl.GetUniformLocation({:?}, {:p});", program, name);
20515 }
20516 let out = call_atomic_ptr_2arg(
20517 "glGetUniformLocation",
20518 &self.glGetUniformLocation_p,
20519 program,
20520 name,
20521 );
20522 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20523 {
20524 self.automatic_glGetError("glGetUniformLocation");
20525 }
20526 out
20527 }
20528 #[doc(hidden)]
20529 pub unsafe fn GetUniformLocation_load_with_dyn(
20530 &self,
20531 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20532 ) -> bool {
20533 load_dyn_name_atomic_ptr(
20534 get_proc_address,
20535 b"glGetUniformLocation\0",
20536 &self.glGetUniformLocation_p,
20537 )
20538 }
20539 #[inline]
20540 #[doc(hidden)]
20541 pub fn GetUniformLocation_is_loaded(&self) -> bool {
20542 !self.glGetUniformLocation_p.load(RELAX).is_null()
20543 }
20544 #[cfg_attr(feature = "inline", inline)]
20548 #[cfg_attr(feature = "inline_always", inline(always))]
20549 pub unsafe fn GetUniformSubroutineuiv(
20550 &self,
20551 shadertype: GLenum,
20552 location: GLint,
20553 params: *mut GLuint,
20554 ) {
20555 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20556 {
20557 trace!(
20558 "calling gl.GetUniformSubroutineuiv({:#X}, {:?}, {:p});",
20559 shadertype,
20560 location,
20561 params
20562 );
20563 }
20564 let out = call_atomic_ptr_3arg(
20565 "glGetUniformSubroutineuiv",
20566 &self.glGetUniformSubroutineuiv_p,
20567 shadertype,
20568 location,
20569 params,
20570 );
20571 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20572 {
20573 self.automatic_glGetError("glGetUniformSubroutineuiv");
20574 }
20575 out
20576 }
20577 #[doc(hidden)]
20578 pub unsafe fn GetUniformSubroutineuiv_load_with_dyn(
20579 &self,
20580 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20581 ) -> bool {
20582 load_dyn_name_atomic_ptr(
20583 get_proc_address,
20584 b"glGetUniformSubroutineuiv\0",
20585 &self.glGetUniformSubroutineuiv_p,
20586 )
20587 }
20588 #[inline]
20589 #[doc(hidden)]
20590 pub fn GetUniformSubroutineuiv_is_loaded(&self) -> bool {
20591 !self.glGetUniformSubroutineuiv_p.load(RELAX).is_null()
20592 }
20593 #[cfg_attr(feature = "inline", inline)]
20596 #[cfg_attr(feature = "inline_always", inline(always))]
20597 pub unsafe fn GetUniformdv(&self, program: GLuint, location: GLint, params: *mut GLdouble) {
20598 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20599 {
20600 trace!(
20601 "calling gl.GetUniformdv({:?}, {:?}, {:p});",
20602 program,
20603 location,
20604 params
20605 );
20606 }
20607 let out = call_atomic_ptr_3arg(
20608 "glGetUniformdv",
20609 &self.glGetUniformdv_p,
20610 program,
20611 location,
20612 params,
20613 );
20614 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20615 {
20616 self.automatic_glGetError("glGetUniformdv");
20617 }
20618 out
20619 }
20620 #[doc(hidden)]
20621 pub unsafe fn GetUniformdv_load_with_dyn(
20622 &self,
20623 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20624 ) -> bool {
20625 load_dyn_name_atomic_ptr(
20626 get_proc_address,
20627 b"glGetUniformdv\0",
20628 &self.glGetUniformdv_p,
20629 )
20630 }
20631 #[inline]
20632 #[doc(hidden)]
20633 pub fn GetUniformdv_is_loaded(&self) -> bool {
20634 !self.glGetUniformdv_p.load(RELAX).is_null()
20635 }
20636 #[cfg_attr(feature = "inline", inline)]
20639 #[cfg_attr(feature = "inline_always", inline(always))]
20640 pub unsafe fn GetUniformfv(&self, program: GLuint, location: GLint, params: *mut GLfloat) {
20641 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20642 {
20643 trace!(
20644 "calling gl.GetUniformfv({:?}, {:?}, {:p});",
20645 program,
20646 location,
20647 params
20648 );
20649 }
20650 let out = call_atomic_ptr_3arg(
20651 "glGetUniformfv",
20652 &self.glGetUniformfv_p,
20653 program,
20654 location,
20655 params,
20656 );
20657 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20658 {
20659 self.automatic_glGetError("glGetUniformfv");
20660 }
20661 out
20662 }
20663 #[doc(hidden)]
20664 pub unsafe fn GetUniformfv_load_with_dyn(
20665 &self,
20666 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20667 ) -> bool {
20668 load_dyn_name_atomic_ptr(
20669 get_proc_address,
20670 b"glGetUniformfv\0",
20671 &self.glGetUniformfv_p,
20672 )
20673 }
20674 #[inline]
20675 #[doc(hidden)]
20676 pub fn GetUniformfv_is_loaded(&self) -> bool {
20677 !self.glGetUniformfv_p.load(RELAX).is_null()
20678 }
20679 #[cfg_attr(feature = "inline", inline)]
20682 #[cfg_attr(feature = "inline_always", inline(always))]
20683 pub unsafe fn GetUniformiv(&self, program: GLuint, location: GLint, params: *mut GLint) {
20684 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20685 {
20686 trace!(
20687 "calling gl.GetUniformiv({:?}, {:?}, {:p});",
20688 program,
20689 location,
20690 params
20691 );
20692 }
20693 let out = call_atomic_ptr_3arg(
20694 "glGetUniformiv",
20695 &self.glGetUniformiv_p,
20696 program,
20697 location,
20698 params,
20699 );
20700 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20701 {
20702 self.automatic_glGetError("glGetUniformiv");
20703 }
20704 out
20705 }
20706 #[doc(hidden)]
20707 pub unsafe fn GetUniformiv_load_with_dyn(
20708 &self,
20709 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20710 ) -> bool {
20711 load_dyn_name_atomic_ptr(
20712 get_proc_address,
20713 b"glGetUniformiv\0",
20714 &self.glGetUniformiv_p,
20715 )
20716 }
20717 #[inline]
20718 #[doc(hidden)]
20719 pub fn GetUniformiv_is_loaded(&self) -> bool {
20720 !self.glGetUniformiv_p.load(RELAX).is_null()
20721 }
20722 #[cfg_attr(feature = "inline", inline)]
20725 #[cfg_attr(feature = "inline_always", inline(always))]
20726 pub unsafe fn GetUniformuiv(&self, program: GLuint, location: GLint, params: *mut GLuint) {
20727 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20728 {
20729 trace!(
20730 "calling gl.GetUniformuiv({:?}, {:?}, {:p});",
20731 program,
20732 location,
20733 params
20734 );
20735 }
20736 let out = call_atomic_ptr_3arg(
20737 "glGetUniformuiv",
20738 &self.glGetUniformuiv_p,
20739 program,
20740 location,
20741 params,
20742 );
20743 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20744 {
20745 self.automatic_glGetError("glGetUniformuiv");
20746 }
20747 out
20748 }
20749 #[doc(hidden)]
20750 pub unsafe fn GetUniformuiv_load_with_dyn(
20751 &self,
20752 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20753 ) -> bool {
20754 load_dyn_name_atomic_ptr(
20755 get_proc_address,
20756 b"glGetUniformuiv\0",
20757 &self.glGetUniformuiv_p,
20758 )
20759 }
20760 #[inline]
20761 #[doc(hidden)]
20762 pub fn GetUniformuiv_is_loaded(&self) -> bool {
20763 !self.glGetUniformuiv_p.load(RELAX).is_null()
20764 }
20765 #[cfg_attr(feature = "inline", inline)]
20768 #[cfg_attr(feature = "inline_always", inline(always))]
20769 pub unsafe fn GetVertexArrayIndexed64iv(
20770 &self,
20771 vaobj: GLuint,
20772 index: GLuint,
20773 pname: GLenum,
20774 param: *mut GLint64,
20775 ) {
20776 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20777 {
20778 trace!(
20779 "calling gl.GetVertexArrayIndexed64iv({:?}, {:?}, {:#X}, {:p});",
20780 vaobj,
20781 index,
20782 pname,
20783 param
20784 );
20785 }
20786 let out = call_atomic_ptr_4arg(
20787 "glGetVertexArrayIndexed64iv",
20788 &self.glGetVertexArrayIndexed64iv_p,
20789 vaobj,
20790 index,
20791 pname,
20792 param,
20793 );
20794 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20795 {
20796 self.automatic_glGetError("glGetVertexArrayIndexed64iv");
20797 }
20798 out
20799 }
20800 #[doc(hidden)]
20801 pub unsafe fn GetVertexArrayIndexed64iv_load_with_dyn(
20802 &self,
20803 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20804 ) -> bool {
20805 load_dyn_name_atomic_ptr(
20806 get_proc_address,
20807 b"glGetVertexArrayIndexed64iv\0",
20808 &self.glGetVertexArrayIndexed64iv_p,
20809 )
20810 }
20811 #[inline]
20812 #[doc(hidden)]
20813 pub fn GetVertexArrayIndexed64iv_is_loaded(&self) -> bool {
20814 !self.glGetVertexArrayIndexed64iv_p.load(RELAX).is_null()
20815 }
20816 #[cfg_attr(feature = "inline", inline)]
20819 #[cfg_attr(feature = "inline_always", inline(always))]
20820 pub unsafe fn GetVertexArrayIndexediv(
20821 &self,
20822 vaobj: GLuint,
20823 index: GLuint,
20824 pname: GLenum,
20825 param: *mut GLint,
20826 ) {
20827 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20828 {
20829 trace!(
20830 "calling gl.GetVertexArrayIndexediv({:?}, {:?}, {:#X}, {:p});",
20831 vaobj,
20832 index,
20833 pname,
20834 param
20835 );
20836 }
20837 let out = call_atomic_ptr_4arg(
20838 "glGetVertexArrayIndexediv",
20839 &self.glGetVertexArrayIndexediv_p,
20840 vaobj,
20841 index,
20842 pname,
20843 param,
20844 );
20845 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20846 {
20847 self.automatic_glGetError("glGetVertexArrayIndexediv");
20848 }
20849 out
20850 }
20851 #[doc(hidden)]
20852 pub unsafe fn GetVertexArrayIndexediv_load_with_dyn(
20853 &self,
20854 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20855 ) -> bool {
20856 load_dyn_name_atomic_ptr(
20857 get_proc_address,
20858 b"glGetVertexArrayIndexediv\0",
20859 &self.glGetVertexArrayIndexediv_p,
20860 )
20861 }
20862 #[inline]
20863 #[doc(hidden)]
20864 pub fn GetVertexArrayIndexediv_is_loaded(&self) -> bool {
20865 !self.glGetVertexArrayIndexediv_p.load(RELAX).is_null()
20866 }
20867 #[cfg_attr(feature = "inline", inline)]
20870 #[cfg_attr(feature = "inline_always", inline(always))]
20871 pub unsafe fn GetVertexArrayiv(&self, vaobj: GLuint, pname: GLenum, param: *mut GLint) {
20872 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20873 {
20874 trace!(
20875 "calling gl.GetVertexArrayiv({:?}, {:#X}, {:p});",
20876 vaobj,
20877 pname,
20878 param
20879 );
20880 }
20881 let out = call_atomic_ptr_3arg(
20882 "glGetVertexArrayiv",
20883 &self.glGetVertexArrayiv_p,
20884 vaobj,
20885 pname,
20886 param,
20887 );
20888 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20889 {
20890 self.automatic_glGetError("glGetVertexArrayiv");
20891 }
20892 out
20893 }
20894 #[doc(hidden)]
20895 pub unsafe fn GetVertexArrayiv_load_with_dyn(
20896 &self,
20897 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20898 ) -> bool {
20899 load_dyn_name_atomic_ptr(
20900 get_proc_address,
20901 b"glGetVertexArrayiv\0",
20902 &self.glGetVertexArrayiv_p,
20903 )
20904 }
20905 #[inline]
20906 #[doc(hidden)]
20907 pub fn GetVertexArrayiv_is_loaded(&self) -> bool {
20908 !self.glGetVertexArrayiv_p.load(RELAX).is_null()
20909 }
20910 #[cfg_attr(feature = "inline", inline)]
20914 #[cfg_attr(feature = "inline_always", inline(always))]
20915 pub unsafe fn GetVertexAttribIiv(&self, index: GLuint, pname: GLenum, params: *mut GLint) {
20916 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20917 {
20918 trace!(
20919 "calling gl.GetVertexAttribIiv({:?}, {:#X}, {:p});",
20920 index,
20921 pname,
20922 params
20923 );
20924 }
20925 let out = call_atomic_ptr_3arg(
20926 "glGetVertexAttribIiv",
20927 &self.glGetVertexAttribIiv_p,
20928 index,
20929 pname,
20930 params,
20931 );
20932 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20933 {
20934 self.automatic_glGetError("glGetVertexAttribIiv");
20935 }
20936 out
20937 }
20938 #[doc(hidden)]
20939 pub unsafe fn GetVertexAttribIiv_load_with_dyn(
20940 &self,
20941 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20942 ) -> bool {
20943 load_dyn_name_atomic_ptr(
20944 get_proc_address,
20945 b"glGetVertexAttribIiv\0",
20946 &self.glGetVertexAttribIiv_p,
20947 )
20948 }
20949 #[inline]
20950 #[doc(hidden)]
20951 pub fn GetVertexAttribIiv_is_loaded(&self) -> bool {
20952 !self.glGetVertexAttribIiv_p.load(RELAX).is_null()
20953 }
20954 #[cfg_attr(feature = "inline", inline)]
20958 #[cfg_attr(feature = "inline_always", inline(always))]
20959 pub unsafe fn GetVertexAttribIuiv(
20960 &self,
20961 index: GLuint,
20962 pname: GLenum,
20963 params: *mut GLuint,
20964 ) {
20965 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
20966 {
20967 trace!(
20968 "calling gl.GetVertexAttribIuiv({:?}, {:#X}, {:p});",
20969 index,
20970 pname,
20971 params
20972 );
20973 }
20974 let out = call_atomic_ptr_3arg(
20975 "glGetVertexAttribIuiv",
20976 &self.glGetVertexAttribIuiv_p,
20977 index,
20978 pname,
20979 params,
20980 );
20981 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
20982 {
20983 self.automatic_glGetError("glGetVertexAttribIuiv");
20984 }
20985 out
20986 }
20987 #[doc(hidden)]
20988 pub unsafe fn GetVertexAttribIuiv_load_with_dyn(
20989 &self,
20990 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
20991 ) -> bool {
20992 load_dyn_name_atomic_ptr(
20993 get_proc_address,
20994 b"glGetVertexAttribIuiv\0",
20995 &self.glGetVertexAttribIuiv_p,
20996 )
20997 }
20998 #[inline]
20999 #[doc(hidden)]
21000 pub fn GetVertexAttribIuiv_is_loaded(&self) -> bool {
21001 !self.glGetVertexAttribIuiv_p.load(RELAX).is_null()
21002 }
21003 #[cfg_attr(feature = "inline", inline)]
21007 #[cfg_attr(feature = "inline_always", inline(always))]
21008 pub unsafe fn GetVertexAttribLdv(
21009 &self,
21010 index: GLuint,
21011 pname: GLenum,
21012 params: *mut GLdouble,
21013 ) {
21014 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21015 {
21016 trace!(
21017 "calling gl.GetVertexAttribLdv({:?}, {:#X}, {:p});",
21018 index,
21019 pname,
21020 params
21021 );
21022 }
21023 let out = call_atomic_ptr_3arg(
21024 "glGetVertexAttribLdv",
21025 &self.glGetVertexAttribLdv_p,
21026 index,
21027 pname,
21028 params,
21029 );
21030 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21031 {
21032 self.automatic_glGetError("glGetVertexAttribLdv");
21033 }
21034 out
21035 }
21036 #[doc(hidden)]
21037 pub unsafe fn GetVertexAttribLdv_load_with_dyn(
21038 &self,
21039 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21040 ) -> bool {
21041 load_dyn_name_atomic_ptr(
21042 get_proc_address,
21043 b"glGetVertexAttribLdv\0",
21044 &self.glGetVertexAttribLdv_p,
21045 )
21046 }
21047 #[inline]
21048 #[doc(hidden)]
21049 pub fn GetVertexAttribLdv_is_loaded(&self) -> bool {
21050 !self.glGetVertexAttribLdv_p.load(RELAX).is_null()
21051 }
21052 #[cfg_attr(feature = "inline", inline)]
21056 #[cfg_attr(feature = "inline_always", inline(always))]
21057 pub unsafe fn GetVertexAttribPointerv(
21058 &self,
21059 index: GLuint,
21060 pname: GLenum,
21061 pointer: *mut *mut c_void,
21062 ) {
21063 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21064 {
21065 trace!(
21066 "calling gl.GetVertexAttribPointerv({:?}, {:#X}, {:p});",
21067 index,
21068 pname,
21069 pointer
21070 );
21071 }
21072 let out = call_atomic_ptr_3arg(
21073 "glGetVertexAttribPointerv",
21074 &self.glGetVertexAttribPointerv_p,
21075 index,
21076 pname,
21077 pointer,
21078 );
21079 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21080 {
21081 self.automatic_glGetError("glGetVertexAttribPointerv");
21082 }
21083 out
21084 }
21085 #[doc(hidden)]
21086 pub unsafe fn GetVertexAttribPointerv_load_with_dyn(
21087 &self,
21088 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21089 ) -> bool {
21090 load_dyn_name_atomic_ptr(
21091 get_proc_address,
21092 b"glGetVertexAttribPointerv\0",
21093 &self.glGetVertexAttribPointerv_p,
21094 )
21095 }
21096 #[inline]
21097 #[doc(hidden)]
21098 pub fn GetVertexAttribPointerv_is_loaded(&self) -> bool {
21099 !self.glGetVertexAttribPointerv_p.load(RELAX).is_null()
21100 }
21101 #[cfg_attr(feature = "inline", inline)]
21105 #[cfg_attr(feature = "inline_always", inline(always))]
21106 pub unsafe fn GetVertexAttribdv(
21107 &self,
21108 index: GLuint,
21109 pname: GLenum,
21110 params: *mut GLdouble,
21111 ) {
21112 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21113 {
21114 trace!(
21115 "calling gl.GetVertexAttribdv({:?}, {:#X}, {:p});",
21116 index,
21117 pname,
21118 params
21119 );
21120 }
21121 let out = call_atomic_ptr_3arg(
21122 "glGetVertexAttribdv",
21123 &self.glGetVertexAttribdv_p,
21124 index,
21125 pname,
21126 params,
21127 );
21128 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21129 {
21130 self.automatic_glGetError("glGetVertexAttribdv");
21131 }
21132 out
21133 }
21134 #[doc(hidden)]
21135 pub unsafe fn GetVertexAttribdv_load_with_dyn(
21136 &self,
21137 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21138 ) -> bool {
21139 load_dyn_name_atomic_ptr(
21140 get_proc_address,
21141 b"glGetVertexAttribdv\0",
21142 &self.glGetVertexAttribdv_p,
21143 )
21144 }
21145 #[inline]
21146 #[doc(hidden)]
21147 pub fn GetVertexAttribdv_is_loaded(&self) -> bool {
21148 !self.glGetVertexAttribdv_p.load(RELAX).is_null()
21149 }
21150 #[cfg_attr(feature = "inline", inline)]
21154 #[cfg_attr(feature = "inline_always", inline(always))]
21155 pub unsafe fn GetVertexAttribfv(&self, index: GLuint, pname: GLenum, params: *mut GLfloat) {
21156 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21157 {
21158 trace!(
21159 "calling gl.GetVertexAttribfv({:?}, {:#X}, {:p});",
21160 index,
21161 pname,
21162 params
21163 );
21164 }
21165 let out = call_atomic_ptr_3arg(
21166 "glGetVertexAttribfv",
21167 &self.glGetVertexAttribfv_p,
21168 index,
21169 pname,
21170 params,
21171 );
21172 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21173 {
21174 self.automatic_glGetError("glGetVertexAttribfv");
21175 }
21176 out
21177 }
21178 #[doc(hidden)]
21179 pub unsafe fn GetVertexAttribfv_load_with_dyn(
21180 &self,
21181 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21182 ) -> bool {
21183 load_dyn_name_atomic_ptr(
21184 get_proc_address,
21185 b"glGetVertexAttribfv\0",
21186 &self.glGetVertexAttribfv_p,
21187 )
21188 }
21189 #[inline]
21190 #[doc(hidden)]
21191 pub fn GetVertexAttribfv_is_loaded(&self) -> bool {
21192 !self.glGetVertexAttribfv_p.load(RELAX).is_null()
21193 }
21194 #[cfg_attr(feature = "inline", inline)]
21198 #[cfg_attr(feature = "inline_always", inline(always))]
21199 pub unsafe fn GetVertexAttribiv(&self, index: GLuint, pname: GLenum, params: *mut GLint) {
21200 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21201 {
21202 trace!(
21203 "calling gl.GetVertexAttribiv({:?}, {:#X}, {:p});",
21204 index,
21205 pname,
21206 params
21207 );
21208 }
21209 let out = call_atomic_ptr_3arg(
21210 "glGetVertexAttribiv",
21211 &self.glGetVertexAttribiv_p,
21212 index,
21213 pname,
21214 params,
21215 );
21216 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21217 {
21218 self.automatic_glGetError("glGetVertexAttribiv");
21219 }
21220 out
21221 }
21222 #[doc(hidden)]
21223 pub unsafe fn GetVertexAttribiv_load_with_dyn(
21224 &self,
21225 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21226 ) -> bool {
21227 load_dyn_name_atomic_ptr(
21228 get_proc_address,
21229 b"glGetVertexAttribiv\0",
21230 &self.glGetVertexAttribiv_p,
21231 )
21232 }
21233 #[inline]
21234 #[doc(hidden)]
21235 pub fn GetVertexAttribiv_is_loaded(&self) -> bool {
21236 !self.glGetVertexAttribiv_p.load(RELAX).is_null()
21237 }
21238 #[cfg_attr(feature = "inline", inline)]
21241 #[cfg_attr(feature = "inline_always", inline(always))]
21242 pub unsafe fn GetnCompressedTexImage(
21243 &self,
21244 target: GLenum,
21245 lod: GLint,
21246 bufSize: GLsizei,
21247 pixels: *mut c_void,
21248 ) {
21249 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21250 {
21251 trace!(
21252 "calling gl.GetnCompressedTexImage({:#X}, {:?}, {:?}, {:p});",
21253 target,
21254 lod,
21255 bufSize,
21256 pixels
21257 );
21258 }
21259 let out = call_atomic_ptr_4arg(
21260 "glGetnCompressedTexImage",
21261 &self.glGetnCompressedTexImage_p,
21262 target,
21263 lod,
21264 bufSize,
21265 pixels,
21266 );
21267 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21268 {
21269 self.automatic_glGetError("glGetnCompressedTexImage");
21270 }
21271 out
21272 }
21273 #[doc(hidden)]
21274 pub unsafe fn GetnCompressedTexImage_load_with_dyn(
21275 &self,
21276 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21277 ) -> bool {
21278 load_dyn_name_atomic_ptr(
21279 get_proc_address,
21280 b"glGetnCompressedTexImage\0",
21281 &self.glGetnCompressedTexImage_p,
21282 )
21283 }
21284 #[inline]
21285 #[doc(hidden)]
21286 pub fn GetnCompressedTexImage_is_loaded(&self) -> bool {
21287 !self.glGetnCompressedTexImage_p.load(RELAX).is_null()
21288 }
21289 #[cfg_attr(feature = "inline", inline)]
21295 #[cfg_attr(feature = "inline_always", inline(always))]
21296 pub unsafe fn GetnTexImage(
21297 &self,
21298 target: GLenum,
21299 level: GLint,
21300 format: GLenum,
21301 type_: GLenum,
21302 bufSize: GLsizei,
21303 pixels: *mut c_void,
21304 ) {
21305 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21306 {
21307 trace!(
21308 "calling gl.GetnTexImage({:#X}, {:?}, {:#X}, {:#X}, {:?}, {:p});",
21309 target,
21310 level,
21311 format,
21312 type_,
21313 bufSize,
21314 pixels
21315 );
21316 }
21317 let out = call_atomic_ptr_6arg(
21318 "glGetnTexImage",
21319 &self.glGetnTexImage_p,
21320 target,
21321 level,
21322 format,
21323 type_,
21324 bufSize,
21325 pixels,
21326 );
21327 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21328 {
21329 self.automatic_glGetError("glGetnTexImage");
21330 }
21331 out
21332 }
21333 #[doc(hidden)]
21334 pub unsafe fn GetnTexImage_load_with_dyn(
21335 &self,
21336 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21337 ) -> bool {
21338 load_dyn_name_atomic_ptr(
21339 get_proc_address,
21340 b"glGetnTexImage\0",
21341 &self.glGetnTexImage_p,
21342 )
21343 }
21344 #[inline]
21345 #[doc(hidden)]
21346 pub fn GetnTexImage_is_loaded(&self) -> bool {
21347 !self.glGetnTexImage_p.load(RELAX).is_null()
21348 }
21349 #[cfg_attr(feature = "inline", inline)]
21352 #[cfg_attr(feature = "inline_always", inline(always))]
21353 pub unsafe fn GetnUniformdv(
21354 &self,
21355 program: GLuint,
21356 location: GLint,
21357 bufSize: GLsizei,
21358 params: *mut GLdouble,
21359 ) {
21360 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21361 {
21362 trace!(
21363 "calling gl.GetnUniformdv({:?}, {:?}, {:?}, {:p});",
21364 program,
21365 location,
21366 bufSize,
21367 params
21368 );
21369 }
21370 let out = call_atomic_ptr_4arg(
21371 "glGetnUniformdv",
21372 &self.glGetnUniformdv_p,
21373 program,
21374 location,
21375 bufSize,
21376 params,
21377 );
21378 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21379 {
21380 self.automatic_glGetError("glGetnUniformdv");
21381 }
21382 out
21383 }
21384 #[doc(hidden)]
21385 pub unsafe fn GetnUniformdv_load_with_dyn(
21386 &self,
21387 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21388 ) -> bool {
21389 load_dyn_name_atomic_ptr(
21390 get_proc_address,
21391 b"glGetnUniformdv\0",
21392 &self.glGetnUniformdv_p,
21393 )
21394 }
21395 #[inline]
21396 #[doc(hidden)]
21397 pub fn GetnUniformdv_is_loaded(&self) -> bool {
21398 !self.glGetnUniformdv_p.load(RELAX).is_null()
21399 }
21400 #[cfg_attr(feature = "inline", inline)]
21403 #[cfg_attr(feature = "inline_always", inline(always))]
21404 pub unsafe fn GetnUniformfv(
21405 &self,
21406 program: GLuint,
21407 location: GLint,
21408 bufSize: GLsizei,
21409 params: *mut GLfloat,
21410 ) {
21411 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21412 {
21413 trace!(
21414 "calling gl.GetnUniformfv({:?}, {:?}, {:?}, {:p});",
21415 program,
21416 location,
21417 bufSize,
21418 params
21419 );
21420 }
21421 let out = call_atomic_ptr_4arg(
21422 "glGetnUniformfv",
21423 &self.glGetnUniformfv_p,
21424 program,
21425 location,
21426 bufSize,
21427 params,
21428 );
21429 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21430 {
21431 self.automatic_glGetError("glGetnUniformfv");
21432 }
21433 out
21434 }
21435 #[doc(hidden)]
21436 pub unsafe fn GetnUniformfv_load_with_dyn(
21437 &self,
21438 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21439 ) -> bool {
21440 load_dyn_name_atomic_ptr(
21441 get_proc_address,
21442 b"glGetnUniformfv\0",
21443 &self.glGetnUniformfv_p,
21444 )
21445 }
21446 #[inline]
21447 #[doc(hidden)]
21448 pub fn GetnUniformfv_is_loaded(&self) -> bool {
21449 !self.glGetnUniformfv_p.load(RELAX).is_null()
21450 }
21451 #[cfg_attr(feature = "inline", inline)]
21454 #[cfg_attr(feature = "inline_always", inline(always))]
21455 pub unsafe fn GetnUniformiv(
21456 &self,
21457 program: GLuint,
21458 location: GLint,
21459 bufSize: GLsizei,
21460 params: *mut GLint,
21461 ) {
21462 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21463 {
21464 trace!(
21465 "calling gl.GetnUniformiv({:?}, {:?}, {:?}, {:p});",
21466 program,
21467 location,
21468 bufSize,
21469 params
21470 );
21471 }
21472 let out = call_atomic_ptr_4arg(
21473 "glGetnUniformiv",
21474 &self.glGetnUniformiv_p,
21475 program,
21476 location,
21477 bufSize,
21478 params,
21479 );
21480 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21481 {
21482 self.automatic_glGetError("glGetnUniformiv");
21483 }
21484 out
21485 }
21486 #[doc(hidden)]
21487 pub unsafe fn GetnUniformiv_load_with_dyn(
21488 &self,
21489 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21490 ) -> bool {
21491 load_dyn_name_atomic_ptr(
21492 get_proc_address,
21493 b"glGetnUniformiv\0",
21494 &self.glGetnUniformiv_p,
21495 )
21496 }
21497 #[inline]
21498 #[doc(hidden)]
21499 pub fn GetnUniformiv_is_loaded(&self) -> bool {
21500 !self.glGetnUniformiv_p.load(RELAX).is_null()
21501 }
21502 #[cfg_attr(feature = "inline", inline)]
21505 #[cfg_attr(feature = "inline_always", inline(always))]
21506 pub unsafe fn GetnUniformuiv(
21507 &self,
21508 program: GLuint,
21509 location: GLint,
21510 bufSize: GLsizei,
21511 params: *mut GLuint,
21512 ) {
21513 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21514 {
21515 trace!(
21516 "calling gl.GetnUniformuiv({:?}, {:?}, {:?}, {:p});",
21517 program,
21518 location,
21519 bufSize,
21520 params
21521 );
21522 }
21523 let out = call_atomic_ptr_4arg(
21524 "glGetnUniformuiv",
21525 &self.glGetnUniformuiv_p,
21526 program,
21527 location,
21528 bufSize,
21529 params,
21530 );
21531 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21532 {
21533 self.automatic_glGetError("glGetnUniformuiv");
21534 }
21535 out
21536 }
21537 #[doc(hidden)]
21538 pub unsafe fn GetnUniformuiv_load_with_dyn(
21539 &self,
21540 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21541 ) -> bool {
21542 load_dyn_name_atomic_ptr(
21543 get_proc_address,
21544 b"glGetnUniformuiv\0",
21545 &self.glGetnUniformuiv_p,
21546 )
21547 }
21548 #[inline]
21549 #[doc(hidden)]
21550 pub fn GetnUniformuiv_is_loaded(&self) -> bool {
21551 !self.glGetnUniformuiv_p.load(RELAX).is_null()
21552 }
21553 #[cfg_attr(feature = "inline", inline)]
21557 #[cfg_attr(feature = "inline_always", inline(always))]
21558 pub unsafe fn Hint(&self, target: GLenum, mode: GLenum) {
21559 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21560 {
21561 trace!("calling gl.Hint({:#X}, {:#X});", target, mode);
21562 }
21563 let out = call_atomic_ptr_2arg("glHint", &self.glHint_p, target, mode);
21564 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21565 {
21566 self.automatic_glGetError("glHint");
21567 }
21568 out
21569 }
21570 #[doc(hidden)]
21571 pub unsafe fn Hint_load_with_dyn(
21572 &self,
21573 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21574 ) -> bool {
21575 load_dyn_name_atomic_ptr(get_proc_address, b"glHint\0", &self.glHint_p)
21576 }
21577 #[inline]
21578 #[doc(hidden)]
21579 pub fn Hint_is_loaded(&self) -> bool {
21580 !self.glHint_p.load(RELAX).is_null()
21581 }
21582 #[cfg_attr(feature = "inline", inline)]
21584 #[cfg_attr(feature = "inline_always", inline(always))]
21585 pub unsafe fn InvalidateBufferData(&self, buffer: GLuint) {
21586 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21587 {
21588 trace!("calling gl.InvalidateBufferData({:?});", buffer);
21589 }
21590 let out = call_atomic_ptr_1arg(
21591 "glInvalidateBufferData",
21592 &self.glInvalidateBufferData_p,
21593 buffer,
21594 );
21595 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21596 {
21597 self.automatic_glGetError("glInvalidateBufferData");
21598 }
21599 out
21600 }
21601 #[doc(hidden)]
21602 pub unsafe fn InvalidateBufferData_load_with_dyn(
21603 &self,
21604 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21605 ) -> bool {
21606 load_dyn_name_atomic_ptr(
21607 get_proc_address,
21608 b"glInvalidateBufferData\0",
21609 &self.glInvalidateBufferData_p,
21610 )
21611 }
21612 #[inline]
21613 #[doc(hidden)]
21614 pub fn InvalidateBufferData_is_loaded(&self) -> bool {
21615 !self.glInvalidateBufferData_p.load(RELAX).is_null()
21616 }
21617 #[cfg_attr(feature = "inline", inline)]
21621 #[cfg_attr(feature = "inline_always", inline(always))]
21622 pub unsafe fn InvalidateBufferSubData(
21623 &self,
21624 buffer: GLuint,
21625 offset: GLintptr,
21626 length: GLsizeiptr,
21627 ) {
21628 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21629 {
21630 trace!(
21631 "calling gl.InvalidateBufferSubData({:?}, {:?}, {:?});",
21632 buffer,
21633 offset,
21634 length
21635 );
21636 }
21637 let out = call_atomic_ptr_3arg(
21638 "glInvalidateBufferSubData",
21639 &self.glInvalidateBufferSubData_p,
21640 buffer,
21641 offset,
21642 length,
21643 );
21644 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21645 {
21646 self.automatic_glGetError("glInvalidateBufferSubData");
21647 }
21648 out
21649 }
21650 #[doc(hidden)]
21651 pub unsafe fn InvalidateBufferSubData_load_with_dyn(
21652 &self,
21653 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21654 ) -> bool {
21655 load_dyn_name_atomic_ptr(
21656 get_proc_address,
21657 b"glInvalidateBufferSubData\0",
21658 &self.glInvalidateBufferSubData_p,
21659 )
21660 }
21661 #[inline]
21662 #[doc(hidden)]
21663 pub fn InvalidateBufferSubData_is_loaded(&self) -> bool {
21664 !self.glInvalidateBufferSubData_p.load(RELAX).is_null()
21665 }
21666 #[cfg_attr(feature = "inline", inline)]
21671 #[cfg_attr(feature = "inline_always", inline(always))]
21672 pub unsafe fn InvalidateFramebuffer(
21673 &self,
21674 target: GLenum,
21675 numAttachments: GLsizei,
21676 attachments: *const GLenum,
21677 ) {
21678 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21679 {
21680 trace!(
21681 "calling gl.InvalidateFramebuffer({:#X}, {:?}, {:p});",
21682 target,
21683 numAttachments,
21684 attachments
21685 );
21686 }
21687 let out = call_atomic_ptr_3arg(
21688 "glInvalidateFramebuffer",
21689 &self.glInvalidateFramebuffer_p,
21690 target,
21691 numAttachments,
21692 attachments,
21693 );
21694 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21695 {
21696 self.automatic_glGetError("glInvalidateFramebuffer");
21697 }
21698 out
21699 }
21700 #[doc(hidden)]
21701 pub unsafe fn InvalidateFramebuffer_load_with_dyn(
21702 &self,
21703 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21704 ) -> bool {
21705 load_dyn_name_atomic_ptr(
21706 get_proc_address,
21707 b"glInvalidateFramebuffer\0",
21708 &self.glInvalidateFramebuffer_p,
21709 )
21710 }
21711 #[inline]
21712 #[doc(hidden)]
21713 pub fn InvalidateFramebuffer_is_loaded(&self) -> bool {
21714 !self.glInvalidateFramebuffer_p.load(RELAX).is_null()
21715 }
21716 #[cfg_attr(feature = "inline", inline)]
21719 #[cfg_attr(feature = "inline_always", inline(always))]
21720 pub unsafe fn InvalidateNamedFramebufferData(
21721 &self,
21722 framebuffer: GLuint,
21723 numAttachments: GLsizei,
21724 attachments: *const GLenum,
21725 ) {
21726 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21727 {
21728 trace!(
21729 "calling gl.InvalidateNamedFramebufferData({:?}, {:?}, {:p});",
21730 framebuffer,
21731 numAttachments,
21732 attachments
21733 );
21734 }
21735 let out = call_atomic_ptr_3arg(
21736 "glInvalidateNamedFramebufferData",
21737 &self.glInvalidateNamedFramebufferData_p,
21738 framebuffer,
21739 numAttachments,
21740 attachments,
21741 );
21742 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21743 {
21744 self.automatic_glGetError("glInvalidateNamedFramebufferData");
21745 }
21746 out
21747 }
21748 #[doc(hidden)]
21749 pub unsafe fn InvalidateNamedFramebufferData_load_with_dyn(
21750 &self,
21751 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21752 ) -> bool {
21753 load_dyn_name_atomic_ptr(
21754 get_proc_address,
21755 b"glInvalidateNamedFramebufferData\0",
21756 &self.glInvalidateNamedFramebufferData_p,
21757 )
21758 }
21759 #[inline]
21760 #[doc(hidden)]
21761 pub fn InvalidateNamedFramebufferData_is_loaded(&self) -> bool {
21762 !self
21763 .glInvalidateNamedFramebufferData_p
21764 .load(RELAX)
21765 .is_null()
21766 }
21767 #[cfg_attr(feature = "inline", inline)]
21770 #[cfg_attr(feature = "inline_always", inline(always))]
21771 pub unsafe fn InvalidateNamedFramebufferSubData(
21772 &self,
21773 framebuffer: GLuint,
21774 numAttachments: GLsizei,
21775 attachments: *const GLenum,
21776 x: GLint,
21777 y: GLint,
21778 width: GLsizei,
21779 height: GLsizei,
21780 ) {
21781 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21782 {
21783 trace!("calling gl.InvalidateNamedFramebufferSubData({:?}, {:?}, {:p}, {:?}, {:?}, {:?}, {:?});", framebuffer, numAttachments, attachments, x, y, width, height);
21784 }
21785 let out = call_atomic_ptr_7arg(
21786 "glInvalidateNamedFramebufferSubData",
21787 &self.glInvalidateNamedFramebufferSubData_p,
21788 framebuffer,
21789 numAttachments,
21790 attachments,
21791 x,
21792 y,
21793 width,
21794 height,
21795 );
21796 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21797 {
21798 self.automatic_glGetError("glInvalidateNamedFramebufferSubData");
21799 }
21800 out
21801 }
21802 #[doc(hidden)]
21803 pub unsafe fn InvalidateNamedFramebufferSubData_load_with_dyn(
21804 &self,
21805 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21806 ) -> bool {
21807 load_dyn_name_atomic_ptr(
21808 get_proc_address,
21809 b"glInvalidateNamedFramebufferSubData\0",
21810 &self.glInvalidateNamedFramebufferSubData_p,
21811 )
21812 }
21813 #[inline]
21814 #[doc(hidden)]
21815 pub fn InvalidateNamedFramebufferSubData_is_loaded(&self) -> bool {
21816 !self
21817 .glInvalidateNamedFramebufferSubData_p
21818 .load(RELAX)
21819 .is_null()
21820 }
21821 #[cfg_attr(feature = "inline", inline)]
21826 #[cfg_attr(feature = "inline_always", inline(always))]
21827 pub unsafe fn InvalidateSubFramebuffer(
21828 &self,
21829 target: GLenum,
21830 numAttachments: GLsizei,
21831 attachments: *const GLenum,
21832 x: GLint,
21833 y: GLint,
21834 width: GLsizei,
21835 height: GLsizei,
21836 ) {
21837 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21838 {
21839 trace!("calling gl.InvalidateSubFramebuffer({:#X}, {:?}, {:p}, {:?}, {:?}, {:?}, {:?});", target, numAttachments, attachments, x, y, width, height);
21840 }
21841 let out = call_atomic_ptr_7arg(
21842 "glInvalidateSubFramebuffer",
21843 &self.glInvalidateSubFramebuffer_p,
21844 target,
21845 numAttachments,
21846 attachments,
21847 x,
21848 y,
21849 width,
21850 height,
21851 );
21852 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21853 {
21854 self.automatic_glGetError("glInvalidateSubFramebuffer");
21855 }
21856 out
21857 }
21858 #[doc(hidden)]
21859 pub unsafe fn InvalidateSubFramebuffer_load_with_dyn(
21860 &self,
21861 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21862 ) -> bool {
21863 load_dyn_name_atomic_ptr(
21864 get_proc_address,
21865 b"glInvalidateSubFramebuffer\0",
21866 &self.glInvalidateSubFramebuffer_p,
21867 )
21868 }
21869 #[inline]
21870 #[doc(hidden)]
21871 pub fn InvalidateSubFramebuffer_is_loaded(&self) -> bool {
21872 !self.glInvalidateSubFramebuffer_p.load(RELAX).is_null()
21873 }
21874 #[cfg_attr(feature = "inline", inline)]
21876 #[cfg_attr(feature = "inline_always", inline(always))]
21877 pub unsafe fn InvalidateTexImage(&self, texture: GLuint, level: GLint) {
21878 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21879 {
21880 trace!("calling gl.InvalidateTexImage({:?}, {:?});", texture, level);
21881 }
21882 let out = call_atomic_ptr_2arg(
21883 "glInvalidateTexImage",
21884 &self.glInvalidateTexImage_p,
21885 texture,
21886 level,
21887 );
21888 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21889 {
21890 self.automatic_glGetError("glInvalidateTexImage");
21891 }
21892 out
21893 }
21894 #[doc(hidden)]
21895 pub unsafe fn InvalidateTexImage_load_with_dyn(
21896 &self,
21897 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21898 ) -> bool {
21899 load_dyn_name_atomic_ptr(
21900 get_proc_address,
21901 b"glInvalidateTexImage\0",
21902 &self.glInvalidateTexImage_p,
21903 )
21904 }
21905 #[inline]
21906 #[doc(hidden)]
21907 pub fn InvalidateTexImage_is_loaded(&self) -> bool {
21908 !self.glInvalidateTexImage_p.load(RELAX).is_null()
21909 }
21910 #[cfg_attr(feature = "inline", inline)]
21912 #[cfg_attr(feature = "inline_always", inline(always))]
21913 pub unsafe fn InvalidateTexSubImage(
21914 &self,
21915 texture: GLuint,
21916 level: GLint,
21917 xoffset: GLint,
21918 yoffset: GLint,
21919 zoffset: GLint,
21920 width: GLsizei,
21921 height: GLsizei,
21922 depth: GLsizei,
21923 ) {
21924 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21925 {
21926 trace!("calling gl.InvalidateTexSubImage({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", texture, level, xoffset, yoffset, zoffset, width, height, depth);
21927 }
21928 let out = call_atomic_ptr_8arg(
21929 "glInvalidateTexSubImage",
21930 &self.glInvalidateTexSubImage_p,
21931 texture,
21932 level,
21933 xoffset,
21934 yoffset,
21935 zoffset,
21936 width,
21937 height,
21938 depth,
21939 );
21940 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21941 {
21942 self.automatic_glGetError("glInvalidateTexSubImage");
21943 }
21944 out
21945 }
21946 #[doc(hidden)]
21947 pub unsafe fn InvalidateTexSubImage_load_with_dyn(
21948 &self,
21949 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21950 ) -> bool {
21951 load_dyn_name_atomic_ptr(
21952 get_proc_address,
21953 b"glInvalidateTexSubImage\0",
21954 &self.glInvalidateTexSubImage_p,
21955 )
21956 }
21957 #[inline]
21958 #[doc(hidden)]
21959 pub fn InvalidateTexSubImage_is_loaded(&self) -> bool {
21960 !self.glInvalidateTexSubImage_p.load(RELAX).is_null()
21961 }
21962 #[cfg_attr(feature = "inline", inline)]
21964 #[cfg_attr(feature = "inline_always", inline(always))]
21965 pub unsafe fn IsBuffer(&self, buffer: GLuint) -> GLboolean {
21966 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21967 {
21968 trace!("calling gl.IsBuffer({:?});", buffer);
21969 }
21970 let out = call_atomic_ptr_1arg("glIsBuffer", &self.glIsBuffer_p, buffer);
21971 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
21972 {
21973 self.automatic_glGetError("glIsBuffer");
21974 }
21975 out
21976 }
21977 #[doc(hidden)]
21978 pub unsafe fn IsBuffer_load_with_dyn(
21979 &self,
21980 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
21981 ) -> bool {
21982 load_dyn_name_atomic_ptr(get_proc_address, b"glIsBuffer\0", &self.glIsBuffer_p)
21983 }
21984 #[inline]
21985 #[doc(hidden)]
21986 pub fn IsBuffer_is_loaded(&self) -> bool {
21987 !self.glIsBuffer_p.load(RELAX).is_null()
21988 }
21989 #[cfg_attr(feature = "inline", inline)]
21992 #[cfg_attr(feature = "inline_always", inline(always))]
21993 pub unsafe fn IsEnabled(&self, cap: GLenum) -> GLboolean {
21994 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
21995 {
21996 trace!("calling gl.IsEnabled({:#X});", cap);
21997 }
21998 let out = call_atomic_ptr_1arg("glIsEnabled", &self.glIsEnabled_p, cap);
21999 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22000 {
22001 self.automatic_glGetError("glIsEnabled");
22002 }
22003 out
22004 }
22005 #[doc(hidden)]
22006 pub unsafe fn IsEnabled_load_with_dyn(
22007 &self,
22008 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22009 ) -> bool {
22010 load_dyn_name_atomic_ptr(get_proc_address, b"glIsEnabled\0", &self.glIsEnabled_p)
22011 }
22012 #[inline]
22013 #[doc(hidden)]
22014 pub fn IsEnabled_is_loaded(&self) -> bool {
22015 !self.glIsEnabled_p.load(RELAX).is_null()
22016 }
22017 #[cfg_attr(feature = "inline", inline)]
22021 #[cfg_attr(feature = "inline_always", inline(always))]
22022 pub unsafe fn IsEnabledIndexedEXT(&self, target: GLenum, index: GLuint) -> GLboolean {
22023 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22024 {
22025 trace!(
22026 "calling gl.IsEnabledIndexedEXT({:#X}, {:?});",
22027 target,
22028 index
22029 );
22030 }
22031 let out = call_atomic_ptr_2arg(
22032 "glIsEnabledIndexedEXT",
22033 &self.glIsEnabledIndexedEXT_p,
22034 target,
22035 index,
22036 );
22037 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22038 {
22039 self.automatic_glGetError("glIsEnabledIndexedEXT");
22040 }
22041 out
22042 }
22043 #[doc(hidden)]
22044 pub unsafe fn IsEnabledIndexedEXT_load_with_dyn(
22045 &self,
22046 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22047 ) -> bool {
22048 load_dyn_name_atomic_ptr(
22049 get_proc_address,
22050 b"glIsEnabledIndexedEXT\0",
22051 &self.glIsEnabledIndexedEXT_p,
22052 )
22053 }
22054 #[inline]
22055 #[doc(hidden)]
22056 pub fn IsEnabledIndexedEXT_is_loaded(&self) -> bool {
22057 !self.glIsEnabledIndexedEXT_p.load(RELAX).is_null()
22058 }
22059 #[cfg_attr(feature = "inline", inline)]
22062 #[cfg_attr(feature = "inline_always", inline(always))]
22063 pub unsafe fn IsEnabledi(&self, target: GLenum, index: GLuint) -> GLboolean {
22064 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22065 {
22066 trace!("calling gl.IsEnabledi({:#X}, {:?});", target, index);
22067 }
22068 let out = call_atomic_ptr_2arg("glIsEnabledi", &self.glIsEnabledi_p, target, index);
22069 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22070 {
22071 self.automatic_glGetError("glIsEnabledi");
22072 }
22073 out
22074 }
22075 #[doc(hidden)]
22076 pub unsafe fn IsEnabledi_load_with_dyn(
22077 &self,
22078 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22079 ) -> bool {
22080 load_dyn_name_atomic_ptr(get_proc_address, b"glIsEnabledi\0", &self.glIsEnabledi_p)
22081 }
22082 #[inline]
22083 #[doc(hidden)]
22084 pub fn IsEnabledi_is_loaded(&self) -> bool {
22085 !self.glIsEnabledi_p.load(RELAX).is_null()
22086 }
22087 #[cfg_attr(feature = "inline", inline)]
22089 #[cfg_attr(feature = "inline_always", inline(always))]
22090 pub unsafe fn IsFramebuffer(&self, framebuffer: GLuint) -> GLboolean {
22091 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22092 {
22093 trace!("calling gl.IsFramebuffer({:?});", framebuffer);
22094 }
22095 let out = call_atomic_ptr_1arg("glIsFramebuffer", &self.glIsFramebuffer_p, framebuffer);
22096 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22097 {
22098 self.automatic_glGetError("glIsFramebuffer");
22099 }
22100 out
22101 }
22102 #[doc(hidden)]
22103 pub unsafe fn IsFramebuffer_load_with_dyn(
22104 &self,
22105 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22106 ) -> bool {
22107 load_dyn_name_atomic_ptr(
22108 get_proc_address,
22109 b"glIsFramebuffer\0",
22110 &self.glIsFramebuffer_p,
22111 )
22112 }
22113 #[inline]
22114 #[doc(hidden)]
22115 pub fn IsFramebuffer_is_loaded(&self) -> bool {
22116 !self.glIsFramebuffer_p.load(RELAX).is_null()
22117 }
22118 #[cfg_attr(feature = "inline", inline)]
22120 #[cfg_attr(feature = "inline_always", inline(always))]
22121 pub unsafe fn IsProgram(&self, program: GLuint) -> GLboolean {
22122 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22123 {
22124 trace!("calling gl.IsProgram({:?});", program);
22125 }
22126 let out = call_atomic_ptr_1arg("glIsProgram", &self.glIsProgram_p, program);
22127 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22128 {
22129 self.automatic_glGetError("glIsProgram");
22130 }
22131 out
22132 }
22133 #[doc(hidden)]
22134 pub unsafe fn IsProgram_load_with_dyn(
22135 &self,
22136 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22137 ) -> bool {
22138 load_dyn_name_atomic_ptr(get_proc_address, b"glIsProgram\0", &self.glIsProgram_p)
22139 }
22140 #[inline]
22141 #[doc(hidden)]
22142 pub fn IsProgram_is_loaded(&self) -> bool {
22143 !self.glIsProgram_p.load(RELAX).is_null()
22144 }
22145 #[cfg_attr(feature = "inline", inline)]
22147 #[cfg_attr(feature = "inline_always", inline(always))]
22148 pub unsafe fn IsProgramPipeline(&self, pipeline: GLuint) -> GLboolean {
22149 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22150 {
22151 trace!("calling gl.IsProgramPipeline({:?});", pipeline);
22152 }
22153 let out =
22154 call_atomic_ptr_1arg("glIsProgramPipeline", &self.glIsProgramPipeline_p, pipeline);
22155 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22156 {
22157 self.automatic_glGetError("glIsProgramPipeline");
22158 }
22159 out
22160 }
22161 #[doc(hidden)]
22162 pub unsafe fn IsProgramPipeline_load_with_dyn(
22163 &self,
22164 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22165 ) -> bool {
22166 load_dyn_name_atomic_ptr(
22167 get_proc_address,
22168 b"glIsProgramPipeline\0",
22169 &self.glIsProgramPipeline_p,
22170 )
22171 }
22172 #[inline]
22173 #[doc(hidden)]
22174 pub fn IsProgramPipeline_is_loaded(&self) -> bool {
22175 !self.glIsProgramPipeline_p.load(RELAX).is_null()
22176 }
22177 #[cfg_attr(feature = "inline", inline)]
22179 #[cfg_attr(feature = "inline_always", inline(always))]
22180 pub unsafe fn IsQuery(&self, id: GLuint) -> GLboolean {
22181 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22182 {
22183 trace!("calling gl.IsQuery({:?});", id);
22184 }
22185 let out = call_atomic_ptr_1arg("glIsQuery", &self.glIsQuery_p, id);
22186 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22187 {
22188 self.automatic_glGetError("glIsQuery");
22189 }
22190 out
22191 }
22192 #[doc(hidden)]
22193 pub unsafe fn IsQuery_load_with_dyn(
22194 &self,
22195 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22196 ) -> bool {
22197 load_dyn_name_atomic_ptr(get_proc_address, b"glIsQuery\0", &self.glIsQuery_p)
22198 }
22199 #[inline]
22200 #[doc(hidden)]
22201 pub fn IsQuery_is_loaded(&self) -> bool {
22202 !self.glIsQuery_p.load(RELAX).is_null()
22203 }
22204 #[cfg_attr(feature = "inline", inline)]
22206 #[cfg_attr(feature = "inline_always", inline(always))]
22207 pub unsafe fn IsQueryEXT(&self, id: GLuint) -> GLboolean {
22208 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22209 {
22210 trace!("calling gl.IsQueryEXT({:?});", id);
22211 }
22212 let out = call_atomic_ptr_1arg("glIsQueryEXT", &self.glIsQueryEXT_p, id);
22213 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22214 {
22215 self.automatic_glGetError("glIsQueryEXT");
22216 }
22217 out
22218 }
22219 #[doc(hidden)]
22220 pub unsafe fn IsQueryEXT_load_with_dyn(
22221 &self,
22222 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22223 ) -> bool {
22224 load_dyn_name_atomic_ptr(get_proc_address, b"glIsQueryEXT\0", &self.glIsQueryEXT_p)
22225 }
22226 #[inline]
22227 #[doc(hidden)]
22228 pub fn IsQueryEXT_is_loaded(&self) -> bool {
22229 !self.glIsQueryEXT_p.load(RELAX).is_null()
22230 }
22231 #[cfg_attr(feature = "inline", inline)]
22233 #[cfg_attr(feature = "inline_always", inline(always))]
22234 pub unsafe fn IsRenderbuffer(&self, renderbuffer: GLuint) -> GLboolean {
22235 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22236 {
22237 trace!("calling gl.IsRenderbuffer({:?});", renderbuffer);
22238 }
22239 let out =
22240 call_atomic_ptr_1arg("glIsRenderbuffer", &self.glIsRenderbuffer_p, renderbuffer);
22241 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22242 {
22243 self.automatic_glGetError("glIsRenderbuffer");
22244 }
22245 out
22246 }
22247 #[doc(hidden)]
22248 pub unsafe fn IsRenderbuffer_load_with_dyn(
22249 &self,
22250 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22251 ) -> bool {
22252 load_dyn_name_atomic_ptr(
22253 get_proc_address,
22254 b"glIsRenderbuffer\0",
22255 &self.glIsRenderbuffer_p,
22256 )
22257 }
22258 #[inline]
22259 #[doc(hidden)]
22260 pub fn IsRenderbuffer_is_loaded(&self) -> bool {
22261 !self.glIsRenderbuffer_p.load(RELAX).is_null()
22262 }
22263 #[cfg_attr(feature = "inline", inline)]
22265 #[cfg_attr(feature = "inline_always", inline(always))]
22266 pub unsafe fn IsSampler(&self, sampler: GLuint) -> GLboolean {
22267 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22268 {
22269 trace!("calling gl.IsSampler({:?});", sampler);
22270 }
22271 let out = call_atomic_ptr_1arg("glIsSampler", &self.glIsSampler_p, sampler);
22272 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22273 {
22274 self.automatic_glGetError("glIsSampler");
22275 }
22276 out
22277 }
22278 #[doc(hidden)]
22279 pub unsafe fn IsSampler_load_with_dyn(
22280 &self,
22281 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22282 ) -> bool {
22283 load_dyn_name_atomic_ptr(get_proc_address, b"glIsSampler\0", &self.glIsSampler_p)
22284 }
22285 #[inline]
22286 #[doc(hidden)]
22287 pub fn IsSampler_is_loaded(&self) -> bool {
22288 !self.glIsSampler_p.load(RELAX).is_null()
22289 }
22290 #[cfg_attr(feature = "inline", inline)]
22292 #[cfg_attr(feature = "inline_always", inline(always))]
22293 pub unsafe fn IsShader(&self, shader: GLuint) -> GLboolean {
22294 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22295 {
22296 trace!("calling gl.IsShader({:?});", shader);
22297 }
22298 let out = call_atomic_ptr_1arg("glIsShader", &self.glIsShader_p, shader);
22299 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22300 {
22301 self.automatic_glGetError("glIsShader");
22302 }
22303 out
22304 }
22305 #[doc(hidden)]
22306 pub unsafe fn IsShader_load_with_dyn(
22307 &self,
22308 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22309 ) -> bool {
22310 load_dyn_name_atomic_ptr(get_proc_address, b"glIsShader\0", &self.glIsShader_p)
22311 }
22312 #[inline]
22313 #[doc(hidden)]
22314 pub fn IsShader_is_loaded(&self) -> bool {
22315 !self.glIsShader_p.load(RELAX).is_null()
22316 }
22317 #[cfg_attr(feature = "inline", inline)]
22320 #[cfg_attr(feature = "inline_always", inline(always))]
22321 pub unsafe fn IsSync(&self, sync: GLsync) -> GLboolean {
22322 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22323 {
22324 trace!("calling gl.IsSync({:p});", sync);
22325 }
22326 let out = call_atomic_ptr_1arg("glIsSync", &self.glIsSync_p, sync);
22327 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22328 {
22329 self.automatic_glGetError("glIsSync");
22330 }
22331 out
22332 }
22333 #[doc(hidden)]
22334 pub unsafe fn IsSync_load_with_dyn(
22335 &self,
22336 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22337 ) -> bool {
22338 load_dyn_name_atomic_ptr(get_proc_address, b"glIsSync\0", &self.glIsSync_p)
22339 }
22340 #[inline]
22341 #[doc(hidden)]
22342 pub fn IsSync_is_loaded(&self) -> bool {
22343 !self.glIsSync_p.load(RELAX).is_null()
22344 }
22345 #[cfg_attr(feature = "inline", inline)]
22348 #[cfg_attr(feature = "inline_always", inline(always))]
22349 pub unsafe fn IsTexture(&self, texture: GLuint) -> GLboolean {
22350 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22351 {
22352 trace!("calling gl.IsTexture({:?});", texture);
22353 }
22354 let out = call_atomic_ptr_1arg("glIsTexture", &self.glIsTexture_p, texture);
22355 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22356 {
22357 self.automatic_glGetError("glIsTexture");
22358 }
22359 out
22360 }
22361 #[doc(hidden)]
22362 pub unsafe fn IsTexture_load_with_dyn(
22363 &self,
22364 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22365 ) -> bool {
22366 load_dyn_name_atomic_ptr(get_proc_address, b"glIsTexture\0", &self.glIsTexture_p)
22367 }
22368 #[inline]
22369 #[doc(hidden)]
22370 pub fn IsTexture_is_loaded(&self) -> bool {
22371 !self.glIsTexture_p.load(RELAX).is_null()
22372 }
22373 #[cfg_attr(feature = "inline", inline)]
22375 #[cfg_attr(feature = "inline_always", inline(always))]
22376 pub unsafe fn IsTransformFeedback(&self, id: GLuint) -> GLboolean {
22377 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22378 {
22379 trace!("calling gl.IsTransformFeedback({:?});", id);
22380 }
22381 let out =
22382 call_atomic_ptr_1arg("glIsTransformFeedback", &self.glIsTransformFeedback_p, id);
22383 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22384 {
22385 self.automatic_glGetError("glIsTransformFeedback");
22386 }
22387 out
22388 }
22389 #[doc(hidden)]
22390 pub unsafe fn IsTransformFeedback_load_with_dyn(
22391 &self,
22392 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22393 ) -> bool {
22394 load_dyn_name_atomic_ptr(
22395 get_proc_address,
22396 b"glIsTransformFeedback\0",
22397 &self.glIsTransformFeedback_p,
22398 )
22399 }
22400 #[inline]
22401 #[doc(hidden)]
22402 pub fn IsTransformFeedback_is_loaded(&self) -> bool {
22403 !self.glIsTransformFeedback_p.load(RELAX).is_null()
22404 }
22405 #[cfg_attr(feature = "inline", inline)]
22407 #[cfg_attr(feature = "inline_always", inline(always))]
22408 pub unsafe fn IsVertexArray(&self, array: GLuint) -> GLboolean {
22409 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22410 {
22411 trace!("calling gl.IsVertexArray({:?});", array);
22412 }
22413 let out = call_atomic_ptr_1arg("glIsVertexArray", &self.glIsVertexArray_p, array);
22414 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22415 {
22416 self.automatic_glGetError("glIsVertexArray");
22417 }
22418 out
22419 }
22420 #[doc(hidden)]
22421 pub unsafe fn IsVertexArray_load_with_dyn(
22422 &self,
22423 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22424 ) -> bool {
22425 load_dyn_name_atomic_ptr(
22426 get_proc_address,
22427 b"glIsVertexArray\0",
22428 &self.glIsVertexArray_p,
22429 )
22430 }
22431 #[inline]
22432 #[doc(hidden)]
22433 pub fn IsVertexArray_is_loaded(&self) -> bool {
22434 !self.glIsVertexArray_p.load(RELAX).is_null()
22435 }
22436 #[cfg_attr(feature = "inline", inline)]
22439 #[cfg_attr(feature = "inline_always", inline(always))]
22440 pub unsafe fn IsVertexArrayAPPLE(&self, array: GLuint) -> GLboolean {
22441 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22442 {
22443 trace!("calling gl.IsVertexArrayAPPLE({:?});", array);
22444 }
22445 let out =
22446 call_atomic_ptr_1arg("glIsVertexArrayAPPLE", &self.glIsVertexArrayAPPLE_p, array);
22447 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22448 {
22449 self.automatic_glGetError("glIsVertexArrayAPPLE");
22450 }
22451 out
22452 }
22453 #[doc(hidden)]
22454 pub unsafe fn IsVertexArrayAPPLE_load_with_dyn(
22455 &self,
22456 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22457 ) -> bool {
22458 load_dyn_name_atomic_ptr(
22459 get_proc_address,
22460 b"glIsVertexArrayAPPLE\0",
22461 &self.glIsVertexArrayAPPLE_p,
22462 )
22463 }
22464 #[inline]
22465 #[doc(hidden)]
22466 pub fn IsVertexArrayAPPLE_is_loaded(&self) -> bool {
22467 !self.glIsVertexArrayAPPLE_p.load(RELAX).is_null()
22468 }
22469 #[cfg_attr(feature = "inline", inline)]
22472 #[cfg_attr(feature = "inline_always", inline(always))]
22473 pub unsafe fn IsVertexArrayOES(&self, array: GLuint) -> GLboolean {
22474 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22475 {
22476 trace!("calling gl.IsVertexArrayOES({:?});", array);
22477 }
22478 let out = call_atomic_ptr_1arg("glIsVertexArrayOES", &self.glIsVertexArrayOES_p, array);
22479 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22480 {
22481 self.automatic_glGetError("glIsVertexArrayOES");
22482 }
22483 out
22484 }
22485 #[doc(hidden)]
22486 pub unsafe fn IsVertexArrayOES_load_with_dyn(
22487 &self,
22488 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22489 ) -> bool {
22490 load_dyn_name_atomic_ptr(
22491 get_proc_address,
22492 b"glIsVertexArrayOES\0",
22493 &self.glIsVertexArrayOES_p,
22494 )
22495 }
22496 #[inline]
22497 #[doc(hidden)]
22498 pub fn IsVertexArrayOES_is_loaded(&self) -> bool {
22499 !self.glIsVertexArrayOES_p.load(RELAX).is_null()
22500 }
22501 #[cfg_attr(feature = "inline", inline)]
22504 #[cfg_attr(feature = "inline_always", inline(always))]
22505 pub unsafe fn LineWidth(&self, width: GLfloat) {
22506 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22507 {
22508 trace!("calling gl.LineWidth({:?});", width);
22509 }
22510 let out = call_atomic_ptr_1arg("glLineWidth", &self.glLineWidth_p, width);
22511 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22512 {
22513 self.automatic_glGetError("glLineWidth");
22514 }
22515 out
22516 }
22517 #[doc(hidden)]
22518 pub unsafe fn LineWidth_load_with_dyn(
22519 &self,
22520 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22521 ) -> bool {
22522 load_dyn_name_atomic_ptr(get_proc_address, b"glLineWidth\0", &self.glLineWidth_p)
22523 }
22524 #[inline]
22525 #[doc(hidden)]
22526 pub fn LineWidth_is_loaded(&self) -> bool {
22527 !self.glLineWidth_p.load(RELAX).is_null()
22528 }
22529 #[cfg_attr(feature = "inline", inline)]
22531 #[cfg_attr(feature = "inline_always", inline(always))]
22532 pub unsafe fn LinkProgram(&self, program: GLuint) {
22533 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22534 {
22535 trace!("calling gl.LinkProgram({:?});", program);
22536 }
22537 let out = call_atomic_ptr_1arg("glLinkProgram", &self.glLinkProgram_p, program);
22538 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22539 {
22540 self.automatic_glGetError("glLinkProgram");
22541 }
22542 out
22543 }
22544 #[doc(hidden)]
22545 pub unsafe fn LinkProgram_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(get_proc_address, b"glLinkProgram\0", &self.glLinkProgram_p)
22550 }
22551 #[inline]
22552 #[doc(hidden)]
22553 pub fn LinkProgram_is_loaded(&self) -> bool {
22554 !self.glLinkProgram_p.load(RELAX).is_null()
22555 }
22556 #[cfg_attr(feature = "inline", inline)]
22559 #[cfg_attr(feature = "inline_always", inline(always))]
22560 pub unsafe fn LogicOp(&self, opcode: GLenum) {
22561 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22562 {
22563 trace!("calling gl.LogicOp({:#X});", opcode);
22564 }
22565 let out = call_atomic_ptr_1arg("glLogicOp", &self.glLogicOp_p, opcode);
22566 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22567 {
22568 self.automatic_glGetError("glLogicOp");
22569 }
22570 out
22571 }
22572 #[doc(hidden)]
22573 pub unsafe fn LogicOp_load_with_dyn(
22574 &self,
22575 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22576 ) -> bool {
22577 load_dyn_name_atomic_ptr(get_proc_address, b"glLogicOp\0", &self.glLogicOp_p)
22578 }
22579 #[inline]
22580 #[doc(hidden)]
22581 pub fn LogicOp_is_loaded(&self) -> bool {
22582 !self.glLogicOp_p.load(RELAX).is_null()
22583 }
22584 #[cfg_attr(feature = "inline", inline)]
22588 #[cfg_attr(feature = "inline_always", inline(always))]
22589 pub unsafe fn MapBuffer(&self, target: GLenum, access: GLenum) -> *mut c_void {
22590 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22591 {
22592 trace!("calling gl.MapBuffer({:#X}, {:#X});", target, access);
22593 }
22594 let out = call_atomic_ptr_2arg("glMapBuffer", &self.glMapBuffer_p, target, access);
22595 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22596 {
22597 self.automatic_glGetError("glMapBuffer");
22598 }
22599 out
22600 }
22601 #[doc(hidden)]
22602 pub unsafe fn MapBuffer_load_with_dyn(
22603 &self,
22604 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22605 ) -> bool {
22606 load_dyn_name_atomic_ptr(get_proc_address, b"glMapBuffer\0", &self.glMapBuffer_p)
22607 }
22608 #[inline]
22609 #[doc(hidden)]
22610 pub fn MapBuffer_is_loaded(&self) -> bool {
22611 !self.glMapBuffer_p.load(RELAX).is_null()
22612 }
22613 #[cfg_attr(feature = "inline", inline)]
22619 #[cfg_attr(feature = "inline_always", inline(always))]
22620 pub unsafe fn MapBufferRange(
22621 &self,
22622 target: GLenum,
22623 offset: GLintptr,
22624 length: GLsizeiptr,
22625 access: GLbitfield,
22626 ) -> *mut c_void {
22627 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22628 {
22629 trace!(
22630 "calling gl.MapBufferRange({:#X}, {:?}, {:?}, {:?});",
22631 target,
22632 offset,
22633 length,
22634 access
22635 );
22636 }
22637 let out = call_atomic_ptr_4arg(
22638 "glMapBufferRange",
22639 &self.glMapBufferRange_p,
22640 target,
22641 offset,
22642 length,
22643 access,
22644 );
22645 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22646 {
22647 self.automatic_glGetError("glMapBufferRange");
22648 }
22649 out
22650 }
22651 #[doc(hidden)]
22652 pub unsafe fn MapBufferRange_load_with_dyn(
22653 &self,
22654 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22655 ) -> bool {
22656 load_dyn_name_atomic_ptr(
22657 get_proc_address,
22658 b"glMapBufferRange\0",
22659 &self.glMapBufferRange_p,
22660 )
22661 }
22662 #[inline]
22663 #[doc(hidden)]
22664 pub fn MapBufferRange_is_loaded(&self) -> bool {
22665 !self.glMapBufferRange_p.load(RELAX).is_null()
22666 }
22667 #[cfg_attr(feature = "inline", inline)]
22670 #[cfg_attr(feature = "inline_always", inline(always))]
22671 pub unsafe fn MapNamedBuffer(&self, buffer: GLuint, access: GLenum) -> *mut c_void {
22672 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22673 {
22674 trace!("calling gl.MapNamedBuffer({:?}, {:#X});", buffer, access);
22675 }
22676 let out =
22677 call_atomic_ptr_2arg("glMapNamedBuffer", &self.glMapNamedBuffer_p, buffer, access);
22678 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22679 {
22680 self.automatic_glGetError("glMapNamedBuffer");
22681 }
22682 out
22683 }
22684 #[doc(hidden)]
22685 pub unsafe fn MapNamedBuffer_load_with_dyn(
22686 &self,
22687 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22688 ) -> bool {
22689 load_dyn_name_atomic_ptr(
22690 get_proc_address,
22691 b"glMapNamedBuffer\0",
22692 &self.glMapNamedBuffer_p,
22693 )
22694 }
22695 #[inline]
22696 #[doc(hidden)]
22697 pub fn MapNamedBuffer_is_loaded(&self) -> bool {
22698 !self.glMapNamedBuffer_p.load(RELAX).is_null()
22699 }
22700 #[cfg_attr(feature = "inline", inline)]
22704 #[cfg_attr(feature = "inline_always", inline(always))]
22705 pub unsafe fn MapNamedBufferRange(
22706 &self,
22707 buffer: GLuint,
22708 offset: GLintptr,
22709 length: GLsizeiptr,
22710 access: GLbitfield,
22711 ) -> *mut c_void {
22712 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22713 {
22714 trace!(
22715 "calling gl.MapNamedBufferRange({:?}, {:?}, {:?}, {:?});",
22716 buffer,
22717 offset,
22718 length,
22719 access
22720 );
22721 }
22722 let out = call_atomic_ptr_4arg(
22723 "glMapNamedBufferRange",
22724 &self.glMapNamedBufferRange_p,
22725 buffer,
22726 offset,
22727 length,
22728 access,
22729 );
22730 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22731 {
22732 self.automatic_glGetError("glMapNamedBufferRange");
22733 }
22734 out
22735 }
22736 #[doc(hidden)]
22737 pub unsafe fn MapNamedBufferRange_load_with_dyn(
22738 &self,
22739 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22740 ) -> bool {
22741 load_dyn_name_atomic_ptr(
22742 get_proc_address,
22743 b"glMapNamedBufferRange\0",
22744 &self.glMapNamedBufferRange_p,
22745 )
22746 }
22747 #[inline]
22748 #[doc(hidden)]
22749 pub fn MapNamedBufferRange_is_loaded(&self) -> bool {
22750 !self.glMapNamedBufferRange_p.load(RELAX).is_null()
22751 }
22752 #[cfg_attr(feature = "inline", inline)]
22755 #[cfg_attr(feature = "inline_always", inline(always))]
22756 pub unsafe fn MaxShaderCompilerThreadsARB(&self, count: GLuint) {
22757 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22758 {
22759 trace!("calling gl.MaxShaderCompilerThreadsARB({:?});", count);
22760 }
22761 let out = call_atomic_ptr_1arg(
22762 "glMaxShaderCompilerThreadsARB",
22763 &self.glMaxShaderCompilerThreadsARB_p,
22764 count,
22765 );
22766 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22767 {
22768 self.automatic_glGetError("glMaxShaderCompilerThreadsARB");
22769 }
22770 out
22771 }
22772 #[doc(hidden)]
22773 pub unsafe fn MaxShaderCompilerThreadsARB_load_with_dyn(
22774 &self,
22775 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22776 ) -> bool {
22777 load_dyn_name_atomic_ptr(
22778 get_proc_address,
22779 b"glMaxShaderCompilerThreadsARB\0",
22780 &self.glMaxShaderCompilerThreadsARB_p,
22781 )
22782 }
22783 #[inline]
22784 #[doc(hidden)]
22785 pub fn MaxShaderCompilerThreadsARB_is_loaded(&self) -> bool {
22786 !self.glMaxShaderCompilerThreadsARB_p.load(RELAX).is_null()
22787 }
22788 #[cfg_attr(feature = "inline", inline)]
22790 #[cfg_attr(feature = "inline_always", inline(always))]
22791 pub unsafe fn MaxShaderCompilerThreadsKHR(&self, count: GLuint) {
22792 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22793 {
22794 trace!("calling gl.MaxShaderCompilerThreadsKHR({:?});", count);
22795 }
22796 let out = call_atomic_ptr_1arg(
22797 "glMaxShaderCompilerThreadsKHR",
22798 &self.glMaxShaderCompilerThreadsKHR_p,
22799 count,
22800 );
22801 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22802 {
22803 self.automatic_glGetError("glMaxShaderCompilerThreadsKHR");
22804 }
22805 out
22806 }
22807 #[doc(hidden)]
22808 pub unsafe fn MaxShaderCompilerThreadsKHR_load_with_dyn(
22809 &self,
22810 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22811 ) -> bool {
22812 load_dyn_name_atomic_ptr(
22813 get_proc_address,
22814 b"glMaxShaderCompilerThreadsKHR\0",
22815 &self.glMaxShaderCompilerThreadsKHR_p,
22816 )
22817 }
22818 #[inline]
22819 #[doc(hidden)]
22820 pub fn MaxShaderCompilerThreadsKHR_is_loaded(&self) -> bool {
22821 !self.glMaxShaderCompilerThreadsKHR_p.load(RELAX).is_null()
22822 }
22823 #[cfg_attr(feature = "inline", inline)]
22826 #[cfg_attr(feature = "inline_always", inline(always))]
22827 pub unsafe fn MemoryBarrier(&self, barriers: GLbitfield) {
22828 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22829 {
22830 trace!("calling gl.MemoryBarrier({:?});", barriers);
22831 }
22832 let out = call_atomic_ptr_1arg("glMemoryBarrier", &self.glMemoryBarrier_p, barriers);
22833 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22834 {
22835 self.automatic_glGetError("glMemoryBarrier");
22836 }
22837 out
22838 }
22839 #[doc(hidden)]
22840 pub unsafe fn MemoryBarrier_load_with_dyn(
22841 &self,
22842 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22843 ) -> bool {
22844 load_dyn_name_atomic_ptr(
22845 get_proc_address,
22846 b"glMemoryBarrier\0",
22847 &self.glMemoryBarrier_p,
22848 )
22849 }
22850 #[inline]
22851 #[doc(hidden)]
22852 pub fn MemoryBarrier_is_loaded(&self) -> bool {
22853 !self.glMemoryBarrier_p.load(RELAX).is_null()
22854 }
22855 #[cfg_attr(feature = "inline", inline)]
22858 #[cfg_attr(feature = "inline_always", inline(always))]
22859 pub unsafe fn MemoryBarrierByRegion(&self, barriers: GLbitfield) {
22860 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22861 {
22862 trace!("calling gl.MemoryBarrierByRegion({:?});", barriers);
22863 }
22864 let out = call_atomic_ptr_1arg(
22865 "glMemoryBarrierByRegion",
22866 &self.glMemoryBarrierByRegion_p,
22867 barriers,
22868 );
22869 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22870 {
22871 self.automatic_glGetError("glMemoryBarrierByRegion");
22872 }
22873 out
22874 }
22875 #[doc(hidden)]
22876 pub unsafe fn MemoryBarrierByRegion_load_with_dyn(
22877 &self,
22878 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22879 ) -> bool {
22880 load_dyn_name_atomic_ptr(
22881 get_proc_address,
22882 b"glMemoryBarrierByRegion\0",
22883 &self.glMemoryBarrierByRegion_p,
22884 )
22885 }
22886 #[inline]
22887 #[doc(hidden)]
22888 pub fn MemoryBarrierByRegion_is_loaded(&self) -> bool {
22889 !self.glMemoryBarrierByRegion_p.load(RELAX).is_null()
22890 }
22891 #[cfg_attr(feature = "inline", inline)]
22894 #[cfg_attr(feature = "inline_always", inline(always))]
22895 pub unsafe fn MinSampleShading(&self, value: GLfloat) {
22896 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22897 {
22898 trace!("calling gl.MinSampleShading({:?});", value);
22899 }
22900 let out = call_atomic_ptr_1arg("glMinSampleShading", &self.glMinSampleShading_p, value);
22901 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22902 {
22903 self.automatic_glGetError("glMinSampleShading");
22904 }
22905 out
22906 }
22907 #[doc(hidden)]
22908 pub unsafe fn MinSampleShading_load_with_dyn(
22909 &self,
22910 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22911 ) -> bool {
22912 load_dyn_name_atomic_ptr(
22913 get_proc_address,
22914 b"glMinSampleShading\0",
22915 &self.glMinSampleShading_p,
22916 )
22917 }
22918 #[inline]
22919 #[doc(hidden)]
22920 pub fn MinSampleShading_is_loaded(&self) -> bool {
22921 !self.glMinSampleShading_p.load(RELAX).is_null()
22922 }
22923 #[cfg_attr(feature = "inline", inline)]
22928 #[cfg_attr(feature = "inline_always", inline(always))]
22929 pub unsafe fn MultiDrawArrays(
22930 &self,
22931 mode: GLenum,
22932 first: *const GLint,
22933 count: *const GLsizei,
22934 drawcount: GLsizei,
22935 ) {
22936 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22937 {
22938 trace!(
22939 "calling gl.MultiDrawArrays({:#X}, {:p}, {:p}, {:?});",
22940 mode,
22941 first,
22942 count,
22943 drawcount
22944 );
22945 }
22946 let out = call_atomic_ptr_4arg(
22947 "glMultiDrawArrays",
22948 &self.glMultiDrawArrays_p,
22949 mode,
22950 first,
22951 count,
22952 drawcount,
22953 );
22954 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
22955 {
22956 self.automatic_glGetError("glMultiDrawArrays");
22957 }
22958 out
22959 }
22960 #[doc(hidden)]
22961 pub unsafe fn MultiDrawArrays_load_with_dyn(
22962 &self,
22963 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
22964 ) -> bool {
22965 load_dyn_name_atomic_ptr(
22966 get_proc_address,
22967 b"glMultiDrawArrays\0",
22968 &self.glMultiDrawArrays_p,
22969 )
22970 }
22971 #[inline]
22972 #[doc(hidden)]
22973 pub fn MultiDrawArrays_is_loaded(&self) -> bool {
22974 !self.glMultiDrawArrays_p.load(RELAX).is_null()
22975 }
22976 #[cfg_attr(feature = "inline", inline)]
22980 #[cfg_attr(feature = "inline_always", inline(always))]
22981 pub unsafe fn MultiDrawArraysIndirect(
22982 &self,
22983 mode: GLenum,
22984 indirect: *const c_void,
22985 drawcount: GLsizei,
22986 stride: GLsizei,
22987 ) {
22988 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
22989 {
22990 trace!(
22991 "calling gl.MultiDrawArraysIndirect({:#X}, {:p}, {:?}, {:?});",
22992 mode,
22993 indirect,
22994 drawcount,
22995 stride
22996 );
22997 }
22998 let out = call_atomic_ptr_4arg(
22999 "glMultiDrawArraysIndirect",
23000 &self.glMultiDrawArraysIndirect_p,
23001 mode,
23002 indirect,
23003 drawcount,
23004 stride,
23005 );
23006 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23007 {
23008 self.automatic_glGetError("glMultiDrawArraysIndirect");
23009 }
23010 out
23011 }
23012 #[doc(hidden)]
23013 pub unsafe fn MultiDrawArraysIndirect_load_with_dyn(
23014 &self,
23015 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23016 ) -> bool {
23017 load_dyn_name_atomic_ptr(
23018 get_proc_address,
23019 b"glMultiDrawArraysIndirect\0",
23020 &self.glMultiDrawArraysIndirect_p,
23021 )
23022 }
23023 #[inline]
23024 #[doc(hidden)]
23025 pub fn MultiDrawArraysIndirect_is_loaded(&self) -> bool {
23026 !self.glMultiDrawArraysIndirect_p.load(RELAX).is_null()
23027 }
23028 #[cfg_attr(feature = "inline", inline)]
23031 #[cfg_attr(feature = "inline_always", inline(always))]
23032 pub unsafe fn MultiDrawArraysIndirectCount(
23033 &self,
23034 mode: GLenum,
23035 indirect: *const c_void,
23036 drawcount: GLintptr,
23037 maxdrawcount: GLsizei,
23038 stride: GLsizei,
23039 ) {
23040 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23041 {
23042 trace!(
23043 "calling gl.MultiDrawArraysIndirectCount({:#X}, {:p}, {:?}, {:?}, {:?});",
23044 mode,
23045 indirect,
23046 drawcount,
23047 maxdrawcount,
23048 stride
23049 );
23050 }
23051 let out = call_atomic_ptr_5arg(
23052 "glMultiDrawArraysIndirectCount",
23053 &self.glMultiDrawArraysIndirectCount_p,
23054 mode,
23055 indirect,
23056 drawcount,
23057 maxdrawcount,
23058 stride,
23059 );
23060 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23061 {
23062 self.automatic_glGetError("glMultiDrawArraysIndirectCount");
23063 }
23064 out
23065 }
23066 #[doc(hidden)]
23067 pub unsafe fn MultiDrawArraysIndirectCount_load_with_dyn(
23068 &self,
23069 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23070 ) -> bool {
23071 load_dyn_name_atomic_ptr(
23072 get_proc_address,
23073 b"glMultiDrawArraysIndirectCount\0",
23074 &self.glMultiDrawArraysIndirectCount_p,
23075 )
23076 }
23077 #[inline]
23078 #[doc(hidden)]
23079 pub fn MultiDrawArraysIndirectCount_is_loaded(&self) -> bool {
23080 !self.glMultiDrawArraysIndirectCount_p.load(RELAX).is_null()
23081 }
23082 #[cfg_attr(feature = "inline", inline)]
23088 #[cfg_attr(feature = "inline_always", inline(always))]
23089 pub unsafe fn MultiDrawElements(
23090 &self,
23091 mode: GLenum,
23092 count: *const GLsizei,
23093 type_: GLenum,
23094 indices: *const *const c_void,
23095 drawcount: GLsizei,
23096 ) {
23097 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23098 {
23099 trace!(
23100 "calling gl.MultiDrawElements({:#X}, {:p}, {:#X}, {:p}, {:?});",
23101 mode,
23102 count,
23103 type_,
23104 indices,
23105 drawcount
23106 );
23107 }
23108 let out = call_atomic_ptr_5arg(
23109 "glMultiDrawElements",
23110 &self.glMultiDrawElements_p,
23111 mode,
23112 count,
23113 type_,
23114 indices,
23115 drawcount,
23116 );
23117 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23118 {
23119 self.automatic_glGetError("glMultiDrawElements");
23120 }
23121 out
23122 }
23123 #[doc(hidden)]
23124 pub unsafe fn MultiDrawElements_load_with_dyn(
23125 &self,
23126 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23127 ) -> bool {
23128 load_dyn_name_atomic_ptr(
23129 get_proc_address,
23130 b"glMultiDrawElements\0",
23131 &self.glMultiDrawElements_p,
23132 )
23133 }
23134 #[inline]
23135 #[doc(hidden)]
23136 pub fn MultiDrawElements_is_loaded(&self) -> bool {
23137 !self.glMultiDrawElements_p.load(RELAX).is_null()
23138 }
23139 #[cfg_attr(feature = "inline", inline)]
23146 #[cfg_attr(feature = "inline_always", inline(always))]
23147 pub unsafe fn MultiDrawElementsBaseVertex(
23148 &self,
23149 mode: GLenum,
23150 count: *const GLsizei,
23151 type_: GLenum,
23152 indices: *const *const c_void,
23153 drawcount: GLsizei,
23154 basevertex: *const GLint,
23155 ) {
23156 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23157 {
23158 trace!(
23159 "calling gl.MultiDrawElementsBaseVertex({:#X}, {:p}, {:#X}, {:p}, {:?}, {:p});",
23160 mode,
23161 count,
23162 type_,
23163 indices,
23164 drawcount,
23165 basevertex
23166 );
23167 }
23168 let out = call_atomic_ptr_6arg(
23169 "glMultiDrawElementsBaseVertex",
23170 &self.glMultiDrawElementsBaseVertex_p,
23171 mode,
23172 count,
23173 type_,
23174 indices,
23175 drawcount,
23176 basevertex,
23177 );
23178 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23179 {
23180 self.automatic_glGetError("glMultiDrawElementsBaseVertex");
23181 }
23182 out
23183 }
23184 #[doc(hidden)]
23185 pub unsafe fn MultiDrawElementsBaseVertex_load_with_dyn(
23186 &self,
23187 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23188 ) -> bool {
23189 load_dyn_name_atomic_ptr(
23190 get_proc_address,
23191 b"glMultiDrawElementsBaseVertex\0",
23192 &self.glMultiDrawElementsBaseVertex_p,
23193 )
23194 }
23195 #[inline]
23196 #[doc(hidden)]
23197 pub fn MultiDrawElementsBaseVertex_is_loaded(&self) -> bool {
23198 !self.glMultiDrawElementsBaseVertex_p.load(RELAX).is_null()
23199 }
23200 #[cfg_attr(feature = "inline", inline)]
23205 #[cfg_attr(feature = "inline_always", inline(always))]
23206 pub unsafe fn MultiDrawElementsIndirect(
23207 &self,
23208 mode: GLenum,
23209 type_: GLenum,
23210 indirect: *const c_void,
23211 drawcount: GLsizei,
23212 stride: GLsizei,
23213 ) {
23214 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23215 {
23216 trace!(
23217 "calling gl.MultiDrawElementsIndirect({:#X}, {:#X}, {:p}, {:?}, {:?});",
23218 mode,
23219 type_,
23220 indirect,
23221 drawcount,
23222 stride
23223 );
23224 }
23225 let out = call_atomic_ptr_5arg(
23226 "glMultiDrawElementsIndirect",
23227 &self.glMultiDrawElementsIndirect_p,
23228 mode,
23229 type_,
23230 indirect,
23231 drawcount,
23232 stride,
23233 );
23234 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23235 {
23236 self.automatic_glGetError("glMultiDrawElementsIndirect");
23237 }
23238 out
23239 }
23240 #[doc(hidden)]
23241 pub unsafe fn MultiDrawElementsIndirect_load_with_dyn(
23242 &self,
23243 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23244 ) -> bool {
23245 load_dyn_name_atomic_ptr(
23246 get_proc_address,
23247 b"glMultiDrawElementsIndirect\0",
23248 &self.glMultiDrawElementsIndirect_p,
23249 )
23250 }
23251 #[inline]
23252 #[doc(hidden)]
23253 pub fn MultiDrawElementsIndirect_is_loaded(&self) -> bool {
23254 !self.glMultiDrawElementsIndirect_p.load(RELAX).is_null()
23255 }
23256 #[cfg_attr(feature = "inline", inline)]
23260 #[cfg_attr(feature = "inline_always", inline(always))]
23261 pub unsafe fn MultiDrawElementsIndirectCount(
23262 &self,
23263 mode: GLenum,
23264 type_: GLenum,
23265 indirect: *const c_void,
23266 drawcount: GLintptr,
23267 maxdrawcount: GLsizei,
23268 stride: GLsizei,
23269 ) {
23270 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23271 {
23272 trace!("calling gl.MultiDrawElementsIndirectCount({:#X}, {:#X}, {:p}, {:?}, {:?}, {:?});", mode, type_, indirect, drawcount, maxdrawcount, stride);
23273 }
23274 let out = call_atomic_ptr_6arg(
23275 "glMultiDrawElementsIndirectCount",
23276 &self.glMultiDrawElementsIndirectCount_p,
23277 mode,
23278 type_,
23279 indirect,
23280 drawcount,
23281 maxdrawcount,
23282 stride,
23283 );
23284 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23285 {
23286 self.automatic_glGetError("glMultiDrawElementsIndirectCount");
23287 }
23288 out
23289 }
23290 #[doc(hidden)]
23291 pub unsafe fn MultiDrawElementsIndirectCount_load_with_dyn(
23292 &self,
23293 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23294 ) -> bool {
23295 load_dyn_name_atomic_ptr(
23296 get_proc_address,
23297 b"glMultiDrawElementsIndirectCount\0",
23298 &self.glMultiDrawElementsIndirectCount_p,
23299 )
23300 }
23301 #[inline]
23302 #[doc(hidden)]
23303 pub fn MultiDrawElementsIndirectCount_is_loaded(&self) -> bool {
23304 !self
23305 .glMultiDrawElementsIndirectCount_p
23306 .load(RELAX)
23307 .is_null()
23308 }
23309 #[cfg_attr(feature = "inline", inline)]
23313 #[cfg_attr(feature = "inline_always", inline(always))]
23314 pub unsafe fn NamedBufferData(
23315 &self,
23316 buffer: GLuint,
23317 size: GLsizeiptr,
23318 data: *const c_void,
23319 usage: GLenum,
23320 ) {
23321 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23322 {
23323 trace!(
23324 "calling gl.NamedBufferData({:?}, {:?}, {:p}, {:#X});",
23325 buffer,
23326 size,
23327 data,
23328 usage
23329 );
23330 }
23331 let out = call_atomic_ptr_4arg(
23332 "glNamedBufferData",
23333 &self.glNamedBufferData_p,
23334 buffer,
23335 size,
23336 data,
23337 usage,
23338 );
23339 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23340 {
23341 self.automatic_glGetError("glNamedBufferData");
23342 }
23343 out
23344 }
23345 #[doc(hidden)]
23346 pub unsafe fn NamedBufferData_load_with_dyn(
23347 &self,
23348 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23349 ) -> bool {
23350 load_dyn_name_atomic_ptr(
23351 get_proc_address,
23352 b"glNamedBufferData\0",
23353 &self.glNamedBufferData_p,
23354 )
23355 }
23356 #[inline]
23357 #[doc(hidden)]
23358 pub fn NamedBufferData_is_loaded(&self) -> bool {
23359 !self.glNamedBufferData_p.load(RELAX).is_null()
23360 }
23361 #[cfg_attr(feature = "inline", inline)]
23366 #[cfg_attr(feature = "inline_always", inline(always))]
23367 pub unsafe fn NamedBufferStorage(
23368 &self,
23369 buffer: GLuint,
23370 size: GLsizeiptr,
23371 data: *const c_void,
23372 flags: GLbitfield,
23373 ) {
23374 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23375 {
23376 trace!(
23377 "calling gl.NamedBufferStorage({:?}, {:?}, {:p}, {:?});",
23378 buffer,
23379 size,
23380 data,
23381 flags
23382 );
23383 }
23384 let out = call_atomic_ptr_4arg(
23385 "glNamedBufferStorage",
23386 &self.glNamedBufferStorage_p,
23387 buffer,
23388 size,
23389 data,
23390 flags,
23391 );
23392 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23393 {
23394 self.automatic_glGetError("glNamedBufferStorage");
23395 }
23396 out
23397 }
23398 #[doc(hidden)]
23399 pub unsafe fn NamedBufferStorage_load_with_dyn(
23400 &self,
23401 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23402 ) -> bool {
23403 load_dyn_name_atomic_ptr(
23404 get_proc_address,
23405 b"glNamedBufferStorage\0",
23406 &self.glNamedBufferStorage_p,
23407 )
23408 }
23409 #[inline]
23410 #[doc(hidden)]
23411 pub fn NamedBufferStorage_is_loaded(&self) -> bool {
23412 !self.glNamedBufferStorage_p.load(RELAX).is_null()
23413 }
23414 #[cfg_attr(feature = "inline", inline)]
23418 #[cfg_attr(feature = "inline_always", inline(always))]
23419 pub unsafe fn NamedBufferSubData(
23420 &self,
23421 buffer: GLuint,
23422 offset: GLintptr,
23423 size: GLsizeiptr,
23424 data: *const c_void,
23425 ) {
23426 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23427 {
23428 trace!(
23429 "calling gl.NamedBufferSubData({:?}, {:?}, {:?}, {:p});",
23430 buffer,
23431 offset,
23432 size,
23433 data
23434 );
23435 }
23436 let out = call_atomic_ptr_4arg(
23437 "glNamedBufferSubData",
23438 &self.glNamedBufferSubData_p,
23439 buffer,
23440 offset,
23441 size,
23442 data,
23443 );
23444 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23445 {
23446 self.automatic_glGetError("glNamedBufferSubData");
23447 }
23448 out
23449 }
23450 #[doc(hidden)]
23451 pub unsafe fn NamedBufferSubData_load_with_dyn(
23452 &self,
23453 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23454 ) -> bool {
23455 load_dyn_name_atomic_ptr(
23456 get_proc_address,
23457 b"glNamedBufferSubData\0",
23458 &self.glNamedBufferSubData_p,
23459 )
23460 }
23461 #[inline]
23462 #[doc(hidden)]
23463 pub fn NamedBufferSubData_is_loaded(&self) -> bool {
23464 !self.glNamedBufferSubData_p.load(RELAX).is_null()
23465 }
23466 #[cfg_attr(feature = "inline", inline)]
23469 #[cfg_attr(feature = "inline_always", inline(always))]
23470 pub unsafe fn NamedFramebufferDrawBuffer(&self, framebuffer: GLuint, buf: GLenum) {
23471 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23472 {
23473 trace!(
23474 "calling gl.NamedFramebufferDrawBuffer({:?}, {:#X});",
23475 framebuffer,
23476 buf
23477 );
23478 }
23479 let out = call_atomic_ptr_2arg(
23480 "glNamedFramebufferDrawBuffer",
23481 &self.glNamedFramebufferDrawBuffer_p,
23482 framebuffer,
23483 buf,
23484 );
23485 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23486 {
23487 self.automatic_glGetError("glNamedFramebufferDrawBuffer");
23488 }
23489 out
23490 }
23491 #[doc(hidden)]
23492 pub unsafe fn NamedFramebufferDrawBuffer_load_with_dyn(
23493 &self,
23494 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23495 ) -> bool {
23496 load_dyn_name_atomic_ptr(
23497 get_proc_address,
23498 b"glNamedFramebufferDrawBuffer\0",
23499 &self.glNamedFramebufferDrawBuffer_p,
23500 )
23501 }
23502 #[inline]
23503 #[doc(hidden)]
23504 pub fn NamedFramebufferDrawBuffer_is_loaded(&self) -> bool {
23505 !self.glNamedFramebufferDrawBuffer_p.load(RELAX).is_null()
23506 }
23507 #[cfg_attr(feature = "inline", inline)]
23510 #[cfg_attr(feature = "inline_always", inline(always))]
23511 pub unsafe fn NamedFramebufferDrawBuffers(
23512 &self,
23513 framebuffer: GLuint,
23514 n: GLsizei,
23515 bufs: *const GLenum,
23516 ) {
23517 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23518 {
23519 trace!(
23520 "calling gl.NamedFramebufferDrawBuffers({:?}, {:?}, {:p});",
23521 framebuffer,
23522 n,
23523 bufs
23524 );
23525 }
23526 let out = call_atomic_ptr_3arg(
23527 "glNamedFramebufferDrawBuffers",
23528 &self.glNamedFramebufferDrawBuffers_p,
23529 framebuffer,
23530 n,
23531 bufs,
23532 );
23533 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23534 {
23535 self.automatic_glGetError("glNamedFramebufferDrawBuffers");
23536 }
23537 out
23538 }
23539 #[doc(hidden)]
23540 pub unsafe fn NamedFramebufferDrawBuffers_load_with_dyn(
23541 &self,
23542 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23543 ) -> bool {
23544 load_dyn_name_atomic_ptr(
23545 get_proc_address,
23546 b"glNamedFramebufferDrawBuffers\0",
23547 &self.glNamedFramebufferDrawBuffers_p,
23548 )
23549 }
23550 #[inline]
23551 #[doc(hidden)]
23552 pub fn NamedFramebufferDrawBuffers_is_loaded(&self) -> bool {
23553 !self.glNamedFramebufferDrawBuffers_p.load(RELAX).is_null()
23554 }
23555 #[cfg_attr(feature = "inline", inline)]
23558 #[cfg_attr(feature = "inline_always", inline(always))]
23559 pub unsafe fn NamedFramebufferParameteri(
23560 &self,
23561 framebuffer: GLuint,
23562 pname: GLenum,
23563 param: GLint,
23564 ) {
23565 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23566 {
23567 trace!(
23568 "calling gl.NamedFramebufferParameteri({:?}, {:#X}, {:?});",
23569 framebuffer,
23570 pname,
23571 param
23572 );
23573 }
23574 let out = call_atomic_ptr_3arg(
23575 "glNamedFramebufferParameteri",
23576 &self.glNamedFramebufferParameteri_p,
23577 framebuffer,
23578 pname,
23579 param,
23580 );
23581 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23582 {
23583 self.automatic_glGetError("glNamedFramebufferParameteri");
23584 }
23585 out
23586 }
23587 #[doc(hidden)]
23588 pub unsafe fn NamedFramebufferParameteri_load_with_dyn(
23589 &self,
23590 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23591 ) -> bool {
23592 load_dyn_name_atomic_ptr(
23593 get_proc_address,
23594 b"glNamedFramebufferParameteri\0",
23595 &self.glNamedFramebufferParameteri_p,
23596 )
23597 }
23598 #[inline]
23599 #[doc(hidden)]
23600 pub fn NamedFramebufferParameteri_is_loaded(&self) -> bool {
23601 !self.glNamedFramebufferParameteri_p.load(RELAX).is_null()
23602 }
23603 #[cfg_attr(feature = "inline", inline)]
23606 #[cfg_attr(feature = "inline_always", inline(always))]
23607 pub unsafe fn NamedFramebufferReadBuffer(&self, framebuffer: GLuint, src: GLenum) {
23608 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23609 {
23610 trace!(
23611 "calling gl.NamedFramebufferReadBuffer({:?}, {:#X});",
23612 framebuffer,
23613 src
23614 );
23615 }
23616 let out = call_atomic_ptr_2arg(
23617 "glNamedFramebufferReadBuffer",
23618 &self.glNamedFramebufferReadBuffer_p,
23619 framebuffer,
23620 src,
23621 );
23622 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23623 {
23624 self.automatic_glGetError("glNamedFramebufferReadBuffer");
23625 }
23626 out
23627 }
23628 #[doc(hidden)]
23629 pub unsafe fn NamedFramebufferReadBuffer_load_with_dyn(
23630 &self,
23631 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23632 ) -> bool {
23633 load_dyn_name_atomic_ptr(
23634 get_proc_address,
23635 b"glNamedFramebufferReadBuffer\0",
23636 &self.glNamedFramebufferReadBuffer_p,
23637 )
23638 }
23639 #[inline]
23640 #[doc(hidden)]
23641 pub fn NamedFramebufferReadBuffer_is_loaded(&self) -> bool {
23642 !self.glNamedFramebufferReadBuffer_p.load(RELAX).is_null()
23643 }
23644 #[cfg_attr(feature = "inline", inline)]
23648 #[cfg_attr(feature = "inline_always", inline(always))]
23649 pub unsafe fn NamedFramebufferRenderbuffer(
23650 &self,
23651 framebuffer: GLuint,
23652 attachment: GLenum,
23653 renderbuffertarget: GLenum,
23654 renderbuffer: GLuint,
23655 ) {
23656 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23657 {
23658 trace!(
23659 "calling gl.NamedFramebufferRenderbuffer({:?}, {:#X}, {:#X}, {:?});",
23660 framebuffer,
23661 attachment,
23662 renderbuffertarget,
23663 renderbuffer
23664 );
23665 }
23666 let out = call_atomic_ptr_4arg(
23667 "glNamedFramebufferRenderbuffer",
23668 &self.glNamedFramebufferRenderbuffer_p,
23669 framebuffer,
23670 attachment,
23671 renderbuffertarget,
23672 renderbuffer,
23673 );
23674 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23675 {
23676 self.automatic_glGetError("glNamedFramebufferRenderbuffer");
23677 }
23678 out
23679 }
23680 #[doc(hidden)]
23681 pub unsafe fn NamedFramebufferRenderbuffer_load_with_dyn(
23682 &self,
23683 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23684 ) -> bool {
23685 load_dyn_name_atomic_ptr(
23686 get_proc_address,
23687 b"glNamedFramebufferRenderbuffer\0",
23688 &self.glNamedFramebufferRenderbuffer_p,
23689 )
23690 }
23691 #[inline]
23692 #[doc(hidden)]
23693 pub fn NamedFramebufferRenderbuffer_is_loaded(&self) -> bool {
23694 !self.glNamedFramebufferRenderbuffer_p.load(RELAX).is_null()
23695 }
23696 #[cfg_attr(feature = "inline", inline)]
23699 #[cfg_attr(feature = "inline_always", inline(always))]
23700 pub unsafe fn NamedFramebufferTexture(
23701 &self,
23702 framebuffer: GLuint,
23703 attachment: GLenum,
23704 texture: GLuint,
23705 level: GLint,
23706 ) {
23707 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23708 {
23709 trace!(
23710 "calling gl.NamedFramebufferTexture({:?}, {:#X}, {:?}, {:?});",
23711 framebuffer,
23712 attachment,
23713 texture,
23714 level
23715 );
23716 }
23717 let out = call_atomic_ptr_4arg(
23718 "glNamedFramebufferTexture",
23719 &self.glNamedFramebufferTexture_p,
23720 framebuffer,
23721 attachment,
23722 texture,
23723 level,
23724 );
23725 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23726 {
23727 self.automatic_glGetError("glNamedFramebufferTexture");
23728 }
23729 out
23730 }
23731 #[doc(hidden)]
23732 pub unsafe fn NamedFramebufferTexture_load_with_dyn(
23733 &self,
23734 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23735 ) -> bool {
23736 load_dyn_name_atomic_ptr(
23737 get_proc_address,
23738 b"glNamedFramebufferTexture\0",
23739 &self.glNamedFramebufferTexture_p,
23740 )
23741 }
23742 #[inline]
23743 #[doc(hidden)]
23744 pub fn NamedFramebufferTexture_is_loaded(&self) -> bool {
23745 !self.glNamedFramebufferTexture_p.load(RELAX).is_null()
23746 }
23747 #[cfg_attr(feature = "inline", inline)]
23750 #[cfg_attr(feature = "inline_always", inline(always))]
23751 pub unsafe fn NamedFramebufferTextureLayer(
23752 &self,
23753 framebuffer: GLuint,
23754 attachment: GLenum,
23755 texture: GLuint,
23756 level: GLint,
23757 layer: GLint,
23758 ) {
23759 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23760 {
23761 trace!(
23762 "calling gl.NamedFramebufferTextureLayer({:?}, {:#X}, {:?}, {:?}, {:?});",
23763 framebuffer,
23764 attachment,
23765 texture,
23766 level,
23767 layer
23768 );
23769 }
23770 let out = call_atomic_ptr_5arg(
23771 "glNamedFramebufferTextureLayer",
23772 &self.glNamedFramebufferTextureLayer_p,
23773 framebuffer,
23774 attachment,
23775 texture,
23776 level,
23777 layer,
23778 );
23779 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23780 {
23781 self.automatic_glGetError("glNamedFramebufferTextureLayer");
23782 }
23783 out
23784 }
23785 #[doc(hidden)]
23786 pub unsafe fn NamedFramebufferTextureLayer_load_with_dyn(
23787 &self,
23788 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23789 ) -> bool {
23790 load_dyn_name_atomic_ptr(
23791 get_proc_address,
23792 b"glNamedFramebufferTextureLayer\0",
23793 &self.glNamedFramebufferTextureLayer_p,
23794 )
23795 }
23796 #[inline]
23797 #[doc(hidden)]
23798 pub fn NamedFramebufferTextureLayer_is_loaded(&self) -> bool {
23799 !self.glNamedFramebufferTextureLayer_p.load(RELAX).is_null()
23800 }
23801 #[cfg_attr(feature = "inline", inline)]
23804 #[cfg_attr(feature = "inline_always", inline(always))]
23805 pub unsafe fn NamedRenderbufferStorage(
23806 &self,
23807 renderbuffer: GLuint,
23808 internalformat: GLenum,
23809 width: GLsizei,
23810 height: GLsizei,
23811 ) {
23812 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23813 {
23814 trace!(
23815 "calling gl.NamedRenderbufferStorage({:?}, {:#X}, {:?}, {:?});",
23816 renderbuffer,
23817 internalformat,
23818 width,
23819 height
23820 );
23821 }
23822 let out = call_atomic_ptr_4arg(
23823 "glNamedRenderbufferStorage",
23824 &self.glNamedRenderbufferStorage_p,
23825 renderbuffer,
23826 internalformat,
23827 width,
23828 height,
23829 );
23830 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23831 {
23832 self.automatic_glGetError("glNamedRenderbufferStorage");
23833 }
23834 out
23835 }
23836 #[doc(hidden)]
23837 pub unsafe fn NamedRenderbufferStorage_load_with_dyn(
23838 &self,
23839 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23840 ) -> bool {
23841 load_dyn_name_atomic_ptr(
23842 get_proc_address,
23843 b"glNamedRenderbufferStorage\0",
23844 &self.glNamedRenderbufferStorage_p,
23845 )
23846 }
23847 #[inline]
23848 #[doc(hidden)]
23849 pub fn NamedRenderbufferStorage_is_loaded(&self) -> bool {
23850 !self.glNamedRenderbufferStorage_p.load(RELAX).is_null()
23851 }
23852 #[cfg_attr(feature = "inline", inline)]
23855 #[cfg_attr(feature = "inline_always", inline(always))]
23856 pub unsafe fn NamedRenderbufferStorageMultisample(
23857 &self,
23858 renderbuffer: GLuint,
23859 samples: GLsizei,
23860 internalformat: GLenum,
23861 width: GLsizei,
23862 height: GLsizei,
23863 ) {
23864 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23865 {
23866 trace!("calling gl.NamedRenderbufferStorageMultisample({:?}, {:?}, {:#X}, {:?}, {:?});", renderbuffer, samples, internalformat, width, height);
23867 }
23868 let out = call_atomic_ptr_5arg(
23869 "glNamedRenderbufferStorageMultisample",
23870 &self.glNamedRenderbufferStorageMultisample_p,
23871 renderbuffer,
23872 samples,
23873 internalformat,
23874 width,
23875 height,
23876 );
23877 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23878 {
23879 self.automatic_glGetError("glNamedRenderbufferStorageMultisample");
23880 }
23881 out
23882 }
23883 #[doc(hidden)]
23884 pub unsafe fn NamedRenderbufferStorageMultisample_load_with_dyn(
23885 &self,
23886 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23887 ) -> bool {
23888 load_dyn_name_atomic_ptr(
23889 get_proc_address,
23890 b"glNamedRenderbufferStorageMultisample\0",
23891 &self.glNamedRenderbufferStorageMultisample_p,
23892 )
23893 }
23894 #[inline]
23895 #[doc(hidden)]
23896 pub fn NamedRenderbufferStorageMultisample_is_loaded(&self) -> bool {
23897 !self
23898 .glNamedRenderbufferStorageMultisample_p
23899 .load(RELAX)
23900 .is_null()
23901 }
23902 #[cfg_attr(feature = "inline", inline)]
23906 #[cfg_attr(feature = "inline_always", inline(always))]
23907 pub unsafe fn ObjectLabel(
23908 &self,
23909 identifier: GLenum,
23910 name: GLuint,
23911 length: GLsizei,
23912 label: *const GLchar,
23913 ) {
23914 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23915 {
23916 trace!(
23917 "calling gl.ObjectLabel({:#X}, {:?}, {:?}, {:p});",
23918 identifier,
23919 name,
23920 length,
23921 label
23922 );
23923 }
23924 let out = call_atomic_ptr_4arg(
23925 "glObjectLabel",
23926 &self.glObjectLabel_p,
23927 identifier,
23928 name,
23929 length,
23930 label,
23931 );
23932 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23933 {
23934 self.automatic_glGetError("glObjectLabel");
23935 }
23936 out
23937 }
23938 #[doc(hidden)]
23939 pub unsafe fn ObjectLabel_load_with_dyn(
23940 &self,
23941 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23942 ) -> bool {
23943 load_dyn_name_atomic_ptr(get_proc_address, b"glObjectLabel\0", &self.glObjectLabel_p)
23944 }
23945 #[inline]
23946 #[doc(hidden)]
23947 pub fn ObjectLabel_is_loaded(&self) -> bool {
23948 !self.glObjectLabel_p.load(RELAX).is_null()
23949 }
23950 #[cfg_attr(feature = "inline", inline)]
23954 #[cfg_attr(feature = "inline_always", inline(always))]
23955 pub unsafe fn ObjectLabelKHR(
23956 &self,
23957 identifier: GLenum,
23958 name: GLuint,
23959 length: GLsizei,
23960 label: *const GLchar,
23961 ) {
23962 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
23963 {
23964 trace!(
23965 "calling gl.ObjectLabelKHR({:#X}, {:?}, {:?}, {:p});",
23966 identifier,
23967 name,
23968 length,
23969 label
23970 );
23971 }
23972 let out = call_atomic_ptr_4arg(
23973 "glObjectLabelKHR",
23974 &self.glObjectLabelKHR_p,
23975 identifier,
23976 name,
23977 length,
23978 label,
23979 );
23980 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
23981 {
23982 self.automatic_glGetError("glObjectLabelKHR");
23983 }
23984 out
23985 }
23986 #[doc(hidden)]
23987 pub unsafe fn ObjectLabelKHR_load_with_dyn(
23988 &self,
23989 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
23990 ) -> bool {
23991 load_dyn_name_atomic_ptr(
23992 get_proc_address,
23993 b"glObjectLabelKHR\0",
23994 &self.glObjectLabelKHR_p,
23995 )
23996 }
23997 #[inline]
23998 #[doc(hidden)]
23999 pub fn ObjectLabelKHR_is_loaded(&self) -> bool {
24000 !self.glObjectLabelKHR_p.load(RELAX).is_null()
24001 }
24002 #[cfg_attr(feature = "inline", inline)]
24005 #[cfg_attr(feature = "inline_always", inline(always))]
24006 pub unsafe fn ObjectPtrLabel(
24007 &self,
24008 ptr: *const c_void,
24009 length: GLsizei,
24010 label: *const GLchar,
24011 ) {
24012 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24013 {
24014 trace!(
24015 "calling gl.ObjectPtrLabel({:p}, {:?}, {:p});",
24016 ptr,
24017 length,
24018 label
24019 );
24020 }
24021 let out = call_atomic_ptr_3arg(
24022 "glObjectPtrLabel",
24023 &self.glObjectPtrLabel_p,
24024 ptr,
24025 length,
24026 label,
24027 );
24028 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24029 {
24030 self.automatic_glGetError("glObjectPtrLabel");
24031 }
24032 out
24033 }
24034 #[doc(hidden)]
24035 pub unsafe fn ObjectPtrLabel_load_with_dyn(
24036 &self,
24037 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24038 ) -> bool {
24039 load_dyn_name_atomic_ptr(
24040 get_proc_address,
24041 b"glObjectPtrLabel\0",
24042 &self.glObjectPtrLabel_p,
24043 )
24044 }
24045 #[inline]
24046 #[doc(hidden)]
24047 pub fn ObjectPtrLabel_is_loaded(&self) -> bool {
24048 !self.glObjectPtrLabel_p.load(RELAX).is_null()
24049 }
24050 #[cfg_attr(feature = "inline", inline)]
24053 #[cfg_attr(feature = "inline_always", inline(always))]
24054 pub unsafe fn ObjectPtrLabelKHR(
24055 &self,
24056 ptr: *const c_void,
24057 length: GLsizei,
24058 label: *const GLchar,
24059 ) {
24060 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24061 {
24062 trace!(
24063 "calling gl.ObjectPtrLabelKHR({:p}, {:?}, {:p});",
24064 ptr,
24065 length,
24066 label
24067 );
24068 }
24069 let out = call_atomic_ptr_3arg(
24070 "glObjectPtrLabelKHR",
24071 &self.glObjectPtrLabelKHR_p,
24072 ptr,
24073 length,
24074 label,
24075 );
24076 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24077 {
24078 self.automatic_glGetError("glObjectPtrLabelKHR");
24079 }
24080 out
24081 }
24082 #[doc(hidden)]
24083 pub unsafe fn ObjectPtrLabelKHR_load_with_dyn(
24084 &self,
24085 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24086 ) -> bool {
24087 load_dyn_name_atomic_ptr(
24088 get_proc_address,
24089 b"glObjectPtrLabelKHR\0",
24090 &self.glObjectPtrLabelKHR_p,
24091 )
24092 }
24093 #[inline]
24094 #[doc(hidden)]
24095 pub fn ObjectPtrLabelKHR_is_loaded(&self) -> bool {
24096 !self.glObjectPtrLabelKHR_p.load(RELAX).is_null()
24097 }
24098 #[cfg_attr(feature = "inline", inline)]
24102 #[cfg_attr(feature = "inline_always", inline(always))]
24103 pub unsafe fn PatchParameterfv(&self, pname: GLenum, values: *const GLfloat) {
24104 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24105 {
24106 trace!("calling gl.PatchParameterfv({:#X}, {:p});", pname, values);
24107 }
24108 let out = call_atomic_ptr_2arg(
24109 "glPatchParameterfv",
24110 &self.glPatchParameterfv_p,
24111 pname,
24112 values,
24113 );
24114 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24115 {
24116 self.automatic_glGetError("glPatchParameterfv");
24117 }
24118 out
24119 }
24120 #[doc(hidden)]
24121 pub unsafe fn PatchParameterfv_load_with_dyn(
24122 &self,
24123 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24124 ) -> bool {
24125 load_dyn_name_atomic_ptr(
24126 get_proc_address,
24127 b"glPatchParameterfv\0",
24128 &self.glPatchParameterfv_p,
24129 )
24130 }
24131 #[inline]
24132 #[doc(hidden)]
24133 pub fn PatchParameterfv_is_loaded(&self) -> bool {
24134 !self.glPatchParameterfv_p.load(RELAX).is_null()
24135 }
24136 #[cfg_attr(feature = "inline", inline)]
24139 #[cfg_attr(feature = "inline_always", inline(always))]
24140 pub unsafe fn PatchParameteri(&self, pname: GLenum, value: GLint) {
24141 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24142 {
24143 trace!("calling gl.PatchParameteri({:#X}, {:?});", pname, value);
24144 }
24145 let out =
24146 call_atomic_ptr_2arg("glPatchParameteri", &self.glPatchParameteri_p, pname, value);
24147 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24148 {
24149 self.automatic_glGetError("glPatchParameteri");
24150 }
24151 out
24152 }
24153 #[doc(hidden)]
24154 pub unsafe fn PatchParameteri_load_with_dyn(
24155 &self,
24156 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24157 ) -> bool {
24158 load_dyn_name_atomic_ptr(
24159 get_proc_address,
24160 b"glPatchParameteri\0",
24161 &self.glPatchParameteri_p,
24162 )
24163 }
24164 #[inline]
24165 #[doc(hidden)]
24166 pub fn PatchParameteri_is_loaded(&self) -> bool {
24167 !self.glPatchParameteri_p.load(RELAX).is_null()
24168 }
24169 #[cfg_attr(feature = "inline", inline)]
24171 #[cfg_attr(feature = "inline_always", inline(always))]
24172 pub unsafe fn PauseTransformFeedback(&self) {
24173 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24174 {
24175 trace!("calling gl.PauseTransformFeedback();",);
24176 }
24177 let out =
24178 call_atomic_ptr_0arg("glPauseTransformFeedback", &self.glPauseTransformFeedback_p);
24179 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24180 {
24181 self.automatic_glGetError("glPauseTransformFeedback");
24182 }
24183 out
24184 }
24185 #[doc(hidden)]
24186 pub unsafe fn PauseTransformFeedback_load_with_dyn(
24187 &self,
24188 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24189 ) -> bool {
24190 load_dyn_name_atomic_ptr(
24191 get_proc_address,
24192 b"glPauseTransformFeedback\0",
24193 &self.glPauseTransformFeedback_p,
24194 )
24195 }
24196 #[inline]
24197 #[doc(hidden)]
24198 pub fn PauseTransformFeedback_is_loaded(&self) -> bool {
24199 !self.glPauseTransformFeedback_p.load(RELAX).is_null()
24200 }
24201 #[cfg_attr(feature = "inline", inline)]
24205 #[cfg_attr(feature = "inline_always", inline(always))]
24206 pub unsafe fn PixelStoref(&self, pname: GLenum, param: GLfloat) {
24207 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24208 {
24209 trace!("calling gl.PixelStoref({:#X}, {:?});", pname, param);
24210 }
24211 let out = call_atomic_ptr_2arg("glPixelStoref", &self.glPixelStoref_p, pname, param);
24212 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24213 {
24214 self.automatic_glGetError("glPixelStoref");
24215 }
24216 out
24217 }
24218 #[doc(hidden)]
24219 pub unsafe fn PixelStoref_load_with_dyn(
24220 &self,
24221 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24222 ) -> bool {
24223 load_dyn_name_atomic_ptr(get_proc_address, b"glPixelStoref\0", &self.glPixelStoref_p)
24224 }
24225 #[inline]
24226 #[doc(hidden)]
24227 pub fn PixelStoref_is_loaded(&self) -> bool {
24228 !self.glPixelStoref_p.load(RELAX).is_null()
24229 }
24230 #[cfg_attr(feature = "inline", inline)]
24234 #[cfg_attr(feature = "inline_always", inline(always))]
24235 pub unsafe fn PixelStorei(&self, pname: GLenum, param: GLint) {
24236 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24237 {
24238 trace!("calling gl.PixelStorei({:#X}, {:?});", pname, param);
24239 }
24240 let out = call_atomic_ptr_2arg("glPixelStorei", &self.glPixelStorei_p, pname, param);
24241 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24242 {
24243 self.automatic_glGetError("glPixelStorei");
24244 }
24245 out
24246 }
24247 #[doc(hidden)]
24248 pub unsafe fn PixelStorei_load_with_dyn(
24249 &self,
24250 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24251 ) -> bool {
24252 load_dyn_name_atomic_ptr(get_proc_address, b"glPixelStorei\0", &self.glPixelStorei_p)
24253 }
24254 #[inline]
24255 #[doc(hidden)]
24256 pub fn PixelStorei_is_loaded(&self) -> bool {
24257 !self.glPixelStorei_p.load(RELAX).is_null()
24258 }
24259 #[cfg_attr(feature = "inline", inline)]
24263 #[cfg_attr(feature = "inline_always", inline(always))]
24264 pub unsafe fn PointParameterf(&self, pname: GLenum, param: GLfloat) {
24265 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24266 {
24267 trace!("calling gl.PointParameterf({:#X}, {:?});", pname, param);
24268 }
24269 let out =
24270 call_atomic_ptr_2arg("glPointParameterf", &self.glPointParameterf_p, pname, param);
24271 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24272 {
24273 self.automatic_glGetError("glPointParameterf");
24274 }
24275 out
24276 }
24277 #[doc(hidden)]
24278 pub unsafe fn PointParameterf_load_with_dyn(
24279 &self,
24280 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24281 ) -> bool {
24282 load_dyn_name_atomic_ptr(
24283 get_proc_address,
24284 b"glPointParameterf\0",
24285 &self.glPointParameterf_p,
24286 )
24287 }
24288 #[inline]
24289 #[doc(hidden)]
24290 pub fn PointParameterf_is_loaded(&self) -> bool {
24291 !self.glPointParameterf_p.load(RELAX).is_null()
24292 }
24293 #[cfg_attr(feature = "inline", inline)]
24298 #[cfg_attr(feature = "inline_always", inline(always))]
24299 pub unsafe fn PointParameterfv(&self, pname: GLenum, params: *const GLfloat) {
24300 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24301 {
24302 trace!("calling gl.PointParameterfv({:#X}, {:p});", pname, params);
24303 }
24304 let out = call_atomic_ptr_2arg(
24305 "glPointParameterfv",
24306 &self.glPointParameterfv_p,
24307 pname,
24308 params,
24309 );
24310 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24311 {
24312 self.automatic_glGetError("glPointParameterfv");
24313 }
24314 out
24315 }
24316 #[doc(hidden)]
24317 pub unsafe fn PointParameterfv_load_with_dyn(
24318 &self,
24319 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24320 ) -> bool {
24321 load_dyn_name_atomic_ptr(
24322 get_proc_address,
24323 b"glPointParameterfv\0",
24324 &self.glPointParameterfv_p,
24325 )
24326 }
24327 #[inline]
24328 #[doc(hidden)]
24329 pub fn PointParameterfv_is_loaded(&self) -> bool {
24330 !self.glPointParameterfv_p.load(RELAX).is_null()
24331 }
24332 #[cfg_attr(feature = "inline", inline)]
24335 #[cfg_attr(feature = "inline_always", inline(always))]
24336 pub unsafe fn PointParameteri(&self, pname: GLenum, param: GLint) {
24337 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24338 {
24339 trace!("calling gl.PointParameteri({:#X}, {:?});", pname, param);
24340 }
24341 let out =
24342 call_atomic_ptr_2arg("glPointParameteri", &self.glPointParameteri_p, pname, param);
24343 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24344 {
24345 self.automatic_glGetError("glPointParameteri");
24346 }
24347 out
24348 }
24349 #[doc(hidden)]
24350 pub unsafe fn PointParameteri_load_with_dyn(
24351 &self,
24352 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24353 ) -> bool {
24354 load_dyn_name_atomic_ptr(
24355 get_proc_address,
24356 b"glPointParameteri\0",
24357 &self.glPointParameteri_p,
24358 )
24359 }
24360 #[inline]
24361 #[doc(hidden)]
24362 pub fn PointParameteri_is_loaded(&self) -> bool {
24363 !self.glPointParameteri_p.load(RELAX).is_null()
24364 }
24365 #[cfg_attr(feature = "inline", inline)]
24369 #[cfg_attr(feature = "inline_always", inline(always))]
24370 pub unsafe fn PointParameteriv(&self, pname: GLenum, params: *const GLint) {
24371 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24372 {
24373 trace!("calling gl.PointParameteriv({:#X}, {:p});", pname, params);
24374 }
24375 let out = call_atomic_ptr_2arg(
24376 "glPointParameteriv",
24377 &self.glPointParameteriv_p,
24378 pname,
24379 params,
24380 );
24381 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24382 {
24383 self.automatic_glGetError("glPointParameteriv");
24384 }
24385 out
24386 }
24387 #[doc(hidden)]
24388 pub unsafe fn PointParameteriv_load_with_dyn(
24389 &self,
24390 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24391 ) -> bool {
24392 load_dyn_name_atomic_ptr(
24393 get_proc_address,
24394 b"glPointParameteriv\0",
24395 &self.glPointParameteriv_p,
24396 )
24397 }
24398 #[inline]
24399 #[doc(hidden)]
24400 pub fn PointParameteriv_is_loaded(&self) -> bool {
24401 !self.glPointParameteriv_p.load(RELAX).is_null()
24402 }
24403 #[cfg_attr(feature = "inline", inline)]
24406 #[cfg_attr(feature = "inline_always", inline(always))]
24407 pub unsafe fn PointSize(&self, size: GLfloat) {
24408 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24409 {
24410 trace!("calling gl.PointSize({:?});", size);
24411 }
24412 let out = call_atomic_ptr_1arg("glPointSize", &self.glPointSize_p, size);
24413 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24414 {
24415 self.automatic_glGetError("glPointSize");
24416 }
24417 out
24418 }
24419 #[doc(hidden)]
24420 pub unsafe fn PointSize_load_with_dyn(
24421 &self,
24422 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24423 ) -> bool {
24424 load_dyn_name_atomic_ptr(get_proc_address, b"glPointSize\0", &self.glPointSize_p)
24425 }
24426 #[inline]
24427 #[doc(hidden)]
24428 pub fn PointSize_is_loaded(&self) -> bool {
24429 !self.glPointSize_p.load(RELAX).is_null()
24430 }
24431 #[cfg_attr(feature = "inline", inline)]
24435 #[cfg_attr(feature = "inline_always", inline(always))]
24436 pub unsafe fn PolygonMode(&self, face: GLenum, mode: GLenum) {
24437 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24438 {
24439 trace!("calling gl.PolygonMode({:#X}, {:#X});", face, mode);
24440 }
24441 let out = call_atomic_ptr_2arg("glPolygonMode", &self.glPolygonMode_p, face, mode);
24442 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24443 {
24444 self.automatic_glGetError("glPolygonMode");
24445 }
24446 out
24447 }
24448 #[doc(hidden)]
24449 pub unsafe fn PolygonMode_load_with_dyn(
24450 &self,
24451 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24452 ) -> bool {
24453 load_dyn_name_atomic_ptr(get_proc_address, b"glPolygonMode\0", &self.glPolygonMode_p)
24454 }
24455 #[inline]
24456 #[doc(hidden)]
24457 pub fn PolygonMode_is_loaded(&self) -> bool {
24458 !self.glPolygonMode_p.load(RELAX).is_null()
24459 }
24460 #[cfg_attr(feature = "inline", inline)]
24462 #[cfg_attr(feature = "inline_always", inline(always))]
24463 pub unsafe fn PolygonOffset(&self, factor: GLfloat, units: GLfloat) {
24464 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24465 {
24466 trace!("calling gl.PolygonOffset({:?}, {:?});", factor, units);
24467 }
24468 let out =
24469 call_atomic_ptr_2arg("glPolygonOffset", &self.glPolygonOffset_p, factor, units);
24470 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24471 {
24472 self.automatic_glGetError("glPolygonOffset");
24473 }
24474 out
24475 }
24476 #[doc(hidden)]
24477 pub unsafe fn PolygonOffset_load_with_dyn(
24478 &self,
24479 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24480 ) -> bool {
24481 load_dyn_name_atomic_ptr(
24482 get_proc_address,
24483 b"glPolygonOffset\0",
24484 &self.glPolygonOffset_p,
24485 )
24486 }
24487 #[inline]
24488 #[doc(hidden)]
24489 pub fn PolygonOffset_is_loaded(&self) -> bool {
24490 !self.glPolygonOffset_p.load(RELAX).is_null()
24491 }
24492 #[cfg_attr(feature = "inline", inline)]
24494 #[cfg_attr(feature = "inline_always", inline(always))]
24495 pub unsafe fn PolygonOffsetClamp(&self, factor: GLfloat, units: GLfloat, clamp: GLfloat) {
24496 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24497 {
24498 trace!(
24499 "calling gl.PolygonOffsetClamp({:?}, {:?}, {:?});",
24500 factor,
24501 units,
24502 clamp
24503 );
24504 }
24505 let out = call_atomic_ptr_3arg(
24506 "glPolygonOffsetClamp",
24507 &self.glPolygonOffsetClamp_p,
24508 factor,
24509 units,
24510 clamp,
24511 );
24512 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24513 {
24514 self.automatic_glGetError("glPolygonOffsetClamp");
24515 }
24516 out
24517 }
24518 #[doc(hidden)]
24519 pub unsafe fn PolygonOffsetClamp_load_with_dyn(
24520 &self,
24521 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24522 ) -> bool {
24523 load_dyn_name_atomic_ptr(
24524 get_proc_address,
24525 b"glPolygonOffsetClamp\0",
24526 &self.glPolygonOffsetClamp_p,
24527 )
24528 }
24529 #[inline]
24530 #[doc(hidden)]
24531 pub fn PolygonOffsetClamp_is_loaded(&self) -> bool {
24532 !self.glPolygonOffsetClamp_p.load(RELAX).is_null()
24533 }
24534 #[cfg_attr(feature = "inline", inline)]
24536 #[cfg_attr(feature = "inline_always", inline(always))]
24537 pub unsafe fn PopDebugGroup(&self) {
24538 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24539 {
24540 trace!("calling gl.PopDebugGroup();",);
24541 }
24542 let out = call_atomic_ptr_0arg("glPopDebugGroup", &self.glPopDebugGroup_p);
24543 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24544 {
24545 self.automatic_glGetError("glPopDebugGroup");
24546 }
24547 out
24548 }
24549 #[doc(hidden)]
24550 pub unsafe fn PopDebugGroup_load_with_dyn(
24551 &self,
24552 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24553 ) -> bool {
24554 load_dyn_name_atomic_ptr(
24555 get_proc_address,
24556 b"glPopDebugGroup\0",
24557 &self.glPopDebugGroup_p,
24558 )
24559 }
24560 #[inline]
24561 #[doc(hidden)]
24562 pub fn PopDebugGroup_is_loaded(&self) -> bool {
24563 !self.glPopDebugGroup_p.load(RELAX).is_null()
24564 }
24565 #[cfg_attr(feature = "inline", inline)]
24568 #[cfg_attr(feature = "inline_always", inline(always))]
24569 pub unsafe fn PopDebugGroupKHR(&self) {
24570 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24571 {
24572 trace!("calling gl.PopDebugGroupKHR();",);
24573 }
24574 let out = call_atomic_ptr_0arg("glPopDebugGroupKHR", &self.glPopDebugGroupKHR_p);
24575 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24576 {
24577 self.automatic_glGetError("glPopDebugGroupKHR");
24578 }
24579 out
24580 }
24581 #[doc(hidden)]
24582 pub unsafe fn PopDebugGroupKHR_load_with_dyn(
24583 &self,
24584 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24585 ) -> bool {
24586 load_dyn_name_atomic_ptr(
24587 get_proc_address,
24588 b"glPopDebugGroupKHR\0",
24589 &self.glPopDebugGroupKHR_p,
24590 )
24591 }
24592 #[inline]
24593 #[doc(hidden)]
24594 pub fn PopDebugGroupKHR_is_loaded(&self) -> bool {
24595 !self.glPopDebugGroupKHR_p.load(RELAX).is_null()
24596 }
24597 #[cfg_attr(feature = "inline", inline)]
24599 #[cfg_attr(feature = "inline_always", inline(always))]
24600 pub unsafe fn PrimitiveBoundingBox(
24601 &self,
24602 minX: GLfloat,
24603 minY: GLfloat,
24604 minZ: GLfloat,
24605 minW: GLfloat,
24606 maxX: GLfloat,
24607 maxY: GLfloat,
24608 maxZ: GLfloat,
24609 maxW: GLfloat,
24610 ) {
24611 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24612 {
24613 trace!("calling gl.PrimitiveBoundingBox({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?});", minX, minY, minZ, minW, maxX, maxY, maxZ, maxW);
24614 }
24615 let out = call_atomic_ptr_8arg(
24616 "glPrimitiveBoundingBox",
24617 &self.glPrimitiveBoundingBox_p,
24618 minX,
24619 minY,
24620 minZ,
24621 minW,
24622 maxX,
24623 maxY,
24624 maxZ,
24625 maxW,
24626 );
24627 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24628 {
24629 self.automatic_glGetError("glPrimitiveBoundingBox");
24630 }
24631 out
24632 }
24633 #[doc(hidden)]
24634 pub unsafe fn PrimitiveBoundingBox_load_with_dyn(
24635 &self,
24636 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24637 ) -> bool {
24638 load_dyn_name_atomic_ptr(
24639 get_proc_address,
24640 b"glPrimitiveBoundingBox\0",
24641 &self.glPrimitiveBoundingBox_p,
24642 )
24643 }
24644 #[inline]
24645 #[doc(hidden)]
24646 pub fn PrimitiveBoundingBox_is_loaded(&self) -> bool {
24647 !self.glPrimitiveBoundingBox_p.load(RELAX).is_null()
24648 }
24649 #[cfg_attr(feature = "inline", inline)]
24651 #[cfg_attr(feature = "inline_always", inline(always))]
24652 pub unsafe fn PrimitiveRestartIndex(&self, index: GLuint) {
24653 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24654 {
24655 trace!("calling gl.PrimitiveRestartIndex({:?});", index);
24656 }
24657 let out = call_atomic_ptr_1arg(
24658 "glPrimitiveRestartIndex",
24659 &self.glPrimitiveRestartIndex_p,
24660 index,
24661 );
24662 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24663 {
24664 self.automatic_glGetError("glPrimitiveRestartIndex");
24665 }
24666 out
24667 }
24668 #[doc(hidden)]
24669 pub unsafe fn PrimitiveRestartIndex_load_with_dyn(
24670 &self,
24671 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24672 ) -> bool {
24673 load_dyn_name_atomic_ptr(
24674 get_proc_address,
24675 b"glPrimitiveRestartIndex\0",
24676 &self.glPrimitiveRestartIndex_p,
24677 )
24678 }
24679 #[inline]
24680 #[doc(hidden)]
24681 pub fn PrimitiveRestartIndex_is_loaded(&self) -> bool {
24682 !self.glPrimitiveRestartIndex_p.load(RELAX).is_null()
24683 }
24684 #[cfg_attr(feature = "inline", inline)]
24687 #[cfg_attr(feature = "inline_always", inline(always))]
24688 pub unsafe fn ProgramBinary(
24689 &self,
24690 program: GLuint,
24691 binaryFormat: GLenum,
24692 binary: *const c_void,
24693 length: GLsizei,
24694 ) {
24695 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24696 {
24697 trace!(
24698 "calling gl.ProgramBinary({:?}, {:#X}, {:p}, {:?});",
24699 program,
24700 binaryFormat,
24701 binary,
24702 length
24703 );
24704 }
24705 let out = call_atomic_ptr_4arg(
24706 "glProgramBinary",
24707 &self.glProgramBinary_p,
24708 program,
24709 binaryFormat,
24710 binary,
24711 length,
24712 );
24713 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24714 {
24715 self.automatic_glGetError("glProgramBinary");
24716 }
24717 out
24718 }
24719 #[doc(hidden)]
24720 pub unsafe fn ProgramBinary_load_with_dyn(
24721 &self,
24722 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24723 ) -> bool {
24724 load_dyn_name_atomic_ptr(
24725 get_proc_address,
24726 b"glProgramBinary\0",
24727 &self.glProgramBinary_p,
24728 )
24729 }
24730 #[inline]
24731 #[doc(hidden)]
24732 pub fn ProgramBinary_is_loaded(&self) -> bool {
24733 !self.glProgramBinary_p.load(RELAX).is_null()
24734 }
24735 #[cfg_attr(feature = "inline", inline)]
24738 #[cfg_attr(feature = "inline_always", inline(always))]
24739 pub unsafe fn ProgramParameteri(&self, program: GLuint, pname: GLenum, value: GLint) {
24740 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24741 {
24742 trace!(
24743 "calling gl.ProgramParameteri({:?}, {:#X}, {:?});",
24744 program,
24745 pname,
24746 value
24747 );
24748 }
24749 let out = call_atomic_ptr_3arg(
24750 "glProgramParameteri",
24751 &self.glProgramParameteri_p,
24752 program,
24753 pname,
24754 value,
24755 );
24756 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24757 {
24758 self.automatic_glGetError("glProgramParameteri");
24759 }
24760 out
24761 }
24762 #[doc(hidden)]
24763 pub unsafe fn ProgramParameteri_load_with_dyn(
24764 &self,
24765 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24766 ) -> bool {
24767 load_dyn_name_atomic_ptr(
24768 get_proc_address,
24769 b"glProgramParameteri\0",
24770 &self.glProgramParameteri_p,
24771 )
24772 }
24773 #[inline]
24774 #[doc(hidden)]
24775 pub fn ProgramParameteri_is_loaded(&self) -> bool {
24776 !self.glProgramParameteri_p.load(RELAX).is_null()
24777 }
24778 #[cfg_attr(feature = "inline", inline)]
24780 #[cfg_attr(feature = "inline_always", inline(always))]
24781 pub unsafe fn ProgramUniform1d(&self, program: GLuint, location: GLint, v0: GLdouble) {
24782 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24783 {
24784 trace!(
24785 "calling gl.ProgramUniform1d({:?}, {:?}, {:?});",
24786 program,
24787 location,
24788 v0
24789 );
24790 }
24791 let out = call_atomic_ptr_3arg(
24792 "glProgramUniform1d",
24793 &self.glProgramUniform1d_p,
24794 program,
24795 location,
24796 v0,
24797 );
24798 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24799 {
24800 self.automatic_glGetError("glProgramUniform1d");
24801 }
24802 out
24803 }
24804 #[doc(hidden)]
24805 pub unsafe fn ProgramUniform1d_load_with_dyn(
24806 &self,
24807 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24808 ) -> bool {
24809 load_dyn_name_atomic_ptr(
24810 get_proc_address,
24811 b"glProgramUniform1d\0",
24812 &self.glProgramUniform1d_p,
24813 )
24814 }
24815 #[inline]
24816 #[doc(hidden)]
24817 pub fn ProgramUniform1d_is_loaded(&self) -> bool {
24818 !self.glProgramUniform1d_p.load(RELAX).is_null()
24819 }
24820 #[cfg_attr(feature = "inline", inline)]
24823 #[cfg_attr(feature = "inline_always", inline(always))]
24824 pub unsafe fn ProgramUniform1dv(
24825 &self,
24826 program: GLuint,
24827 location: GLint,
24828 count: GLsizei,
24829 value: *const GLdouble,
24830 ) {
24831 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24832 {
24833 trace!(
24834 "calling gl.ProgramUniform1dv({:?}, {:?}, {:?}, {:p});",
24835 program,
24836 location,
24837 count,
24838 value
24839 );
24840 }
24841 let out = call_atomic_ptr_4arg(
24842 "glProgramUniform1dv",
24843 &self.glProgramUniform1dv_p,
24844 program,
24845 location,
24846 count,
24847 value,
24848 );
24849 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24850 {
24851 self.automatic_glGetError("glProgramUniform1dv");
24852 }
24853 out
24854 }
24855 #[doc(hidden)]
24856 pub unsafe fn ProgramUniform1dv_load_with_dyn(
24857 &self,
24858 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24859 ) -> bool {
24860 load_dyn_name_atomic_ptr(
24861 get_proc_address,
24862 b"glProgramUniform1dv\0",
24863 &self.glProgramUniform1dv_p,
24864 )
24865 }
24866 #[inline]
24867 #[doc(hidden)]
24868 pub fn ProgramUniform1dv_is_loaded(&self) -> bool {
24869 !self.glProgramUniform1dv_p.load(RELAX).is_null()
24870 }
24871 #[cfg_attr(feature = "inline", inline)]
24873 #[cfg_attr(feature = "inline_always", inline(always))]
24874 pub unsafe fn ProgramUniform1f(&self, program: GLuint, location: GLint, v0: GLfloat) {
24875 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24876 {
24877 trace!(
24878 "calling gl.ProgramUniform1f({:?}, {:?}, {:?});",
24879 program,
24880 location,
24881 v0
24882 );
24883 }
24884 let out = call_atomic_ptr_3arg(
24885 "glProgramUniform1f",
24886 &self.glProgramUniform1f_p,
24887 program,
24888 location,
24889 v0,
24890 );
24891 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24892 {
24893 self.automatic_glGetError("glProgramUniform1f");
24894 }
24895 out
24896 }
24897 #[doc(hidden)]
24898 pub unsafe fn ProgramUniform1f_load_with_dyn(
24899 &self,
24900 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24901 ) -> bool {
24902 load_dyn_name_atomic_ptr(
24903 get_proc_address,
24904 b"glProgramUniform1f\0",
24905 &self.glProgramUniform1f_p,
24906 )
24907 }
24908 #[inline]
24909 #[doc(hidden)]
24910 pub fn ProgramUniform1f_is_loaded(&self) -> bool {
24911 !self.glProgramUniform1f_p.load(RELAX).is_null()
24912 }
24913 #[cfg_attr(feature = "inline", inline)]
24916 #[cfg_attr(feature = "inline_always", inline(always))]
24917 pub unsafe fn ProgramUniform1fv(
24918 &self,
24919 program: GLuint,
24920 location: GLint,
24921 count: GLsizei,
24922 value: *const GLfloat,
24923 ) {
24924 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24925 {
24926 trace!(
24927 "calling gl.ProgramUniform1fv({:?}, {:?}, {:?}, {:p});",
24928 program,
24929 location,
24930 count,
24931 value
24932 );
24933 }
24934 let out = call_atomic_ptr_4arg(
24935 "glProgramUniform1fv",
24936 &self.glProgramUniform1fv_p,
24937 program,
24938 location,
24939 count,
24940 value,
24941 );
24942 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24943 {
24944 self.automatic_glGetError("glProgramUniform1fv");
24945 }
24946 out
24947 }
24948 #[doc(hidden)]
24949 pub unsafe fn ProgramUniform1fv_load_with_dyn(
24950 &self,
24951 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24952 ) -> bool {
24953 load_dyn_name_atomic_ptr(
24954 get_proc_address,
24955 b"glProgramUniform1fv\0",
24956 &self.glProgramUniform1fv_p,
24957 )
24958 }
24959 #[inline]
24960 #[doc(hidden)]
24961 pub fn ProgramUniform1fv_is_loaded(&self) -> bool {
24962 !self.glProgramUniform1fv_p.load(RELAX).is_null()
24963 }
24964 #[cfg_attr(feature = "inline", inline)]
24966 #[cfg_attr(feature = "inline_always", inline(always))]
24967 pub unsafe fn ProgramUniform1i(&self, program: GLuint, location: GLint, v0: GLint) {
24968 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
24969 {
24970 trace!(
24971 "calling gl.ProgramUniform1i({:?}, {:?}, {:?});",
24972 program,
24973 location,
24974 v0
24975 );
24976 }
24977 let out = call_atomic_ptr_3arg(
24978 "glProgramUniform1i",
24979 &self.glProgramUniform1i_p,
24980 program,
24981 location,
24982 v0,
24983 );
24984 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
24985 {
24986 self.automatic_glGetError("glProgramUniform1i");
24987 }
24988 out
24989 }
24990 #[doc(hidden)]
24991 pub unsafe fn ProgramUniform1i_load_with_dyn(
24992 &self,
24993 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
24994 ) -> bool {
24995 load_dyn_name_atomic_ptr(
24996 get_proc_address,
24997 b"glProgramUniform1i\0",
24998 &self.glProgramUniform1i_p,
24999 )
25000 }
25001 #[inline]
25002 #[doc(hidden)]
25003 pub fn ProgramUniform1i_is_loaded(&self) -> bool {
25004 !self.glProgramUniform1i_p.load(RELAX).is_null()
25005 }
25006 #[cfg_attr(feature = "inline", inline)]
25009 #[cfg_attr(feature = "inline_always", inline(always))]
25010 pub unsafe fn ProgramUniform1iv(
25011 &self,
25012 program: GLuint,
25013 location: GLint,
25014 count: GLsizei,
25015 value: *const GLint,
25016 ) {
25017 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25018 {
25019 trace!(
25020 "calling gl.ProgramUniform1iv({:?}, {:?}, {:?}, {:p});",
25021 program,
25022 location,
25023 count,
25024 value
25025 );
25026 }
25027 let out = call_atomic_ptr_4arg(
25028 "glProgramUniform1iv",
25029 &self.glProgramUniform1iv_p,
25030 program,
25031 location,
25032 count,
25033 value,
25034 );
25035 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25036 {
25037 self.automatic_glGetError("glProgramUniform1iv");
25038 }
25039 out
25040 }
25041 #[doc(hidden)]
25042 pub unsafe fn ProgramUniform1iv_load_with_dyn(
25043 &self,
25044 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25045 ) -> bool {
25046 load_dyn_name_atomic_ptr(
25047 get_proc_address,
25048 b"glProgramUniform1iv\0",
25049 &self.glProgramUniform1iv_p,
25050 )
25051 }
25052 #[inline]
25053 #[doc(hidden)]
25054 pub fn ProgramUniform1iv_is_loaded(&self) -> bool {
25055 !self.glProgramUniform1iv_p.load(RELAX).is_null()
25056 }
25057 #[cfg_attr(feature = "inline", inline)]
25059 #[cfg_attr(feature = "inline_always", inline(always))]
25060 pub unsafe fn ProgramUniform1ui(&self, program: GLuint, location: GLint, v0: GLuint) {
25061 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25062 {
25063 trace!(
25064 "calling gl.ProgramUniform1ui({:?}, {:?}, {:?});",
25065 program,
25066 location,
25067 v0
25068 );
25069 }
25070 let out = call_atomic_ptr_3arg(
25071 "glProgramUniform1ui",
25072 &self.glProgramUniform1ui_p,
25073 program,
25074 location,
25075 v0,
25076 );
25077 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25078 {
25079 self.automatic_glGetError("glProgramUniform1ui");
25080 }
25081 out
25082 }
25083 #[doc(hidden)]
25084 pub unsafe fn ProgramUniform1ui_load_with_dyn(
25085 &self,
25086 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25087 ) -> bool {
25088 load_dyn_name_atomic_ptr(
25089 get_proc_address,
25090 b"glProgramUniform1ui\0",
25091 &self.glProgramUniform1ui_p,
25092 )
25093 }
25094 #[inline]
25095 #[doc(hidden)]
25096 pub fn ProgramUniform1ui_is_loaded(&self) -> bool {
25097 !self.glProgramUniform1ui_p.load(RELAX).is_null()
25098 }
25099 #[cfg_attr(feature = "inline", inline)]
25102 #[cfg_attr(feature = "inline_always", inline(always))]
25103 pub unsafe fn ProgramUniform1uiv(
25104 &self,
25105 program: GLuint,
25106 location: GLint,
25107 count: GLsizei,
25108 value: *const GLuint,
25109 ) {
25110 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25111 {
25112 trace!(
25113 "calling gl.ProgramUniform1uiv({:?}, {:?}, {:?}, {:p});",
25114 program,
25115 location,
25116 count,
25117 value
25118 );
25119 }
25120 let out = call_atomic_ptr_4arg(
25121 "glProgramUniform1uiv",
25122 &self.glProgramUniform1uiv_p,
25123 program,
25124 location,
25125 count,
25126 value,
25127 );
25128 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25129 {
25130 self.automatic_glGetError("glProgramUniform1uiv");
25131 }
25132 out
25133 }
25134 #[doc(hidden)]
25135 pub unsafe fn ProgramUniform1uiv_load_with_dyn(
25136 &self,
25137 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25138 ) -> bool {
25139 load_dyn_name_atomic_ptr(
25140 get_proc_address,
25141 b"glProgramUniform1uiv\0",
25142 &self.glProgramUniform1uiv_p,
25143 )
25144 }
25145 #[inline]
25146 #[doc(hidden)]
25147 pub fn ProgramUniform1uiv_is_loaded(&self) -> bool {
25148 !self.glProgramUniform1uiv_p.load(RELAX).is_null()
25149 }
25150 #[cfg_attr(feature = "inline", inline)]
25152 #[cfg_attr(feature = "inline_always", inline(always))]
25153 pub unsafe fn ProgramUniform2d(
25154 &self,
25155 program: GLuint,
25156 location: GLint,
25157 v0: GLdouble,
25158 v1: GLdouble,
25159 ) {
25160 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25161 {
25162 trace!(
25163 "calling gl.ProgramUniform2d({:?}, {:?}, {:?}, {:?});",
25164 program,
25165 location,
25166 v0,
25167 v1
25168 );
25169 }
25170 let out = call_atomic_ptr_4arg(
25171 "glProgramUniform2d",
25172 &self.glProgramUniform2d_p,
25173 program,
25174 location,
25175 v0,
25176 v1,
25177 );
25178 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25179 {
25180 self.automatic_glGetError("glProgramUniform2d");
25181 }
25182 out
25183 }
25184 #[doc(hidden)]
25185 pub unsafe fn ProgramUniform2d_load_with_dyn(
25186 &self,
25187 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25188 ) -> bool {
25189 load_dyn_name_atomic_ptr(
25190 get_proc_address,
25191 b"glProgramUniform2d\0",
25192 &self.glProgramUniform2d_p,
25193 )
25194 }
25195 #[inline]
25196 #[doc(hidden)]
25197 pub fn ProgramUniform2d_is_loaded(&self) -> bool {
25198 !self.glProgramUniform2d_p.load(RELAX).is_null()
25199 }
25200 #[cfg_attr(feature = "inline", inline)]
25203 #[cfg_attr(feature = "inline_always", inline(always))]
25204 pub unsafe fn ProgramUniform2dv(
25205 &self,
25206 program: GLuint,
25207 location: GLint,
25208 count: GLsizei,
25209 value: *const GLdouble,
25210 ) {
25211 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25212 {
25213 trace!(
25214 "calling gl.ProgramUniform2dv({:?}, {:?}, {:?}, {:p});",
25215 program,
25216 location,
25217 count,
25218 value
25219 );
25220 }
25221 let out = call_atomic_ptr_4arg(
25222 "glProgramUniform2dv",
25223 &self.glProgramUniform2dv_p,
25224 program,
25225 location,
25226 count,
25227 value,
25228 );
25229 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25230 {
25231 self.automatic_glGetError("glProgramUniform2dv");
25232 }
25233 out
25234 }
25235 #[doc(hidden)]
25236 pub unsafe fn ProgramUniform2dv_load_with_dyn(
25237 &self,
25238 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25239 ) -> bool {
25240 load_dyn_name_atomic_ptr(
25241 get_proc_address,
25242 b"glProgramUniform2dv\0",
25243 &self.glProgramUniform2dv_p,
25244 )
25245 }
25246 #[inline]
25247 #[doc(hidden)]
25248 pub fn ProgramUniform2dv_is_loaded(&self) -> bool {
25249 !self.glProgramUniform2dv_p.load(RELAX).is_null()
25250 }
25251 #[cfg_attr(feature = "inline", inline)]
25253 #[cfg_attr(feature = "inline_always", inline(always))]
25254 pub unsafe fn ProgramUniform2f(
25255 &self,
25256 program: GLuint,
25257 location: GLint,
25258 v0: GLfloat,
25259 v1: GLfloat,
25260 ) {
25261 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25262 {
25263 trace!(
25264 "calling gl.ProgramUniform2f({:?}, {:?}, {:?}, {:?});",
25265 program,
25266 location,
25267 v0,
25268 v1
25269 );
25270 }
25271 let out = call_atomic_ptr_4arg(
25272 "glProgramUniform2f",
25273 &self.glProgramUniform2f_p,
25274 program,
25275 location,
25276 v0,
25277 v1,
25278 );
25279 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25280 {
25281 self.automatic_glGetError("glProgramUniform2f");
25282 }
25283 out
25284 }
25285 #[doc(hidden)]
25286 pub unsafe fn ProgramUniform2f_load_with_dyn(
25287 &self,
25288 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25289 ) -> bool {
25290 load_dyn_name_atomic_ptr(
25291 get_proc_address,
25292 b"glProgramUniform2f\0",
25293 &self.glProgramUniform2f_p,
25294 )
25295 }
25296 #[inline]
25297 #[doc(hidden)]
25298 pub fn ProgramUniform2f_is_loaded(&self) -> bool {
25299 !self.glProgramUniform2f_p.load(RELAX).is_null()
25300 }
25301 #[cfg_attr(feature = "inline", inline)]
25304 #[cfg_attr(feature = "inline_always", inline(always))]
25305 pub unsafe fn ProgramUniform2fv(
25306 &self,
25307 program: GLuint,
25308 location: GLint,
25309 count: GLsizei,
25310 value: *const GLfloat,
25311 ) {
25312 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25313 {
25314 trace!(
25315 "calling gl.ProgramUniform2fv({:?}, {:?}, {:?}, {:p});",
25316 program,
25317 location,
25318 count,
25319 value
25320 );
25321 }
25322 let out = call_atomic_ptr_4arg(
25323 "glProgramUniform2fv",
25324 &self.glProgramUniform2fv_p,
25325 program,
25326 location,
25327 count,
25328 value,
25329 );
25330 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25331 {
25332 self.automatic_glGetError("glProgramUniform2fv");
25333 }
25334 out
25335 }
25336 #[doc(hidden)]
25337 pub unsafe fn ProgramUniform2fv_load_with_dyn(
25338 &self,
25339 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25340 ) -> bool {
25341 load_dyn_name_atomic_ptr(
25342 get_proc_address,
25343 b"glProgramUniform2fv\0",
25344 &self.glProgramUniform2fv_p,
25345 )
25346 }
25347 #[inline]
25348 #[doc(hidden)]
25349 pub fn ProgramUniform2fv_is_loaded(&self) -> bool {
25350 !self.glProgramUniform2fv_p.load(RELAX).is_null()
25351 }
25352 #[cfg_attr(feature = "inline", inline)]
25354 #[cfg_attr(feature = "inline_always", inline(always))]
25355 pub unsafe fn ProgramUniform2i(
25356 &self,
25357 program: GLuint,
25358 location: GLint,
25359 v0: GLint,
25360 v1: GLint,
25361 ) {
25362 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25363 {
25364 trace!(
25365 "calling gl.ProgramUniform2i({:?}, {:?}, {:?}, {:?});",
25366 program,
25367 location,
25368 v0,
25369 v1
25370 );
25371 }
25372 let out = call_atomic_ptr_4arg(
25373 "glProgramUniform2i",
25374 &self.glProgramUniform2i_p,
25375 program,
25376 location,
25377 v0,
25378 v1,
25379 );
25380 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25381 {
25382 self.automatic_glGetError("glProgramUniform2i");
25383 }
25384 out
25385 }
25386 #[doc(hidden)]
25387 pub unsafe fn ProgramUniform2i_load_with_dyn(
25388 &self,
25389 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25390 ) -> bool {
25391 load_dyn_name_atomic_ptr(
25392 get_proc_address,
25393 b"glProgramUniform2i\0",
25394 &self.glProgramUniform2i_p,
25395 )
25396 }
25397 #[inline]
25398 #[doc(hidden)]
25399 pub fn ProgramUniform2i_is_loaded(&self) -> bool {
25400 !self.glProgramUniform2i_p.load(RELAX).is_null()
25401 }
25402 #[cfg_attr(feature = "inline", inline)]
25405 #[cfg_attr(feature = "inline_always", inline(always))]
25406 pub unsafe fn ProgramUniform2iv(
25407 &self,
25408 program: GLuint,
25409 location: GLint,
25410 count: GLsizei,
25411 value: *const GLint,
25412 ) {
25413 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25414 {
25415 trace!(
25416 "calling gl.ProgramUniform2iv({:?}, {:?}, {:?}, {:p});",
25417 program,
25418 location,
25419 count,
25420 value
25421 );
25422 }
25423 let out = call_atomic_ptr_4arg(
25424 "glProgramUniform2iv",
25425 &self.glProgramUniform2iv_p,
25426 program,
25427 location,
25428 count,
25429 value,
25430 );
25431 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25432 {
25433 self.automatic_glGetError("glProgramUniform2iv");
25434 }
25435 out
25436 }
25437 #[doc(hidden)]
25438 pub unsafe fn ProgramUniform2iv_load_with_dyn(
25439 &self,
25440 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25441 ) -> bool {
25442 load_dyn_name_atomic_ptr(
25443 get_proc_address,
25444 b"glProgramUniform2iv\0",
25445 &self.glProgramUniform2iv_p,
25446 )
25447 }
25448 #[inline]
25449 #[doc(hidden)]
25450 pub fn ProgramUniform2iv_is_loaded(&self) -> bool {
25451 !self.glProgramUniform2iv_p.load(RELAX).is_null()
25452 }
25453 #[cfg_attr(feature = "inline", inline)]
25455 #[cfg_attr(feature = "inline_always", inline(always))]
25456 pub unsafe fn ProgramUniform2ui(
25457 &self,
25458 program: GLuint,
25459 location: GLint,
25460 v0: GLuint,
25461 v1: GLuint,
25462 ) {
25463 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25464 {
25465 trace!(
25466 "calling gl.ProgramUniform2ui({:?}, {:?}, {:?}, {:?});",
25467 program,
25468 location,
25469 v0,
25470 v1
25471 );
25472 }
25473 let out = call_atomic_ptr_4arg(
25474 "glProgramUniform2ui",
25475 &self.glProgramUniform2ui_p,
25476 program,
25477 location,
25478 v0,
25479 v1,
25480 );
25481 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25482 {
25483 self.automatic_glGetError("glProgramUniform2ui");
25484 }
25485 out
25486 }
25487 #[doc(hidden)]
25488 pub unsafe fn ProgramUniform2ui_load_with_dyn(
25489 &self,
25490 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25491 ) -> bool {
25492 load_dyn_name_atomic_ptr(
25493 get_proc_address,
25494 b"glProgramUniform2ui\0",
25495 &self.glProgramUniform2ui_p,
25496 )
25497 }
25498 #[inline]
25499 #[doc(hidden)]
25500 pub fn ProgramUniform2ui_is_loaded(&self) -> bool {
25501 !self.glProgramUniform2ui_p.load(RELAX).is_null()
25502 }
25503 #[cfg_attr(feature = "inline", inline)]
25506 #[cfg_attr(feature = "inline_always", inline(always))]
25507 pub unsafe fn ProgramUniform2uiv(
25508 &self,
25509 program: GLuint,
25510 location: GLint,
25511 count: GLsizei,
25512 value: *const GLuint,
25513 ) {
25514 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25515 {
25516 trace!(
25517 "calling gl.ProgramUniform2uiv({:?}, {:?}, {:?}, {:p});",
25518 program,
25519 location,
25520 count,
25521 value
25522 );
25523 }
25524 let out = call_atomic_ptr_4arg(
25525 "glProgramUniform2uiv",
25526 &self.glProgramUniform2uiv_p,
25527 program,
25528 location,
25529 count,
25530 value,
25531 );
25532 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25533 {
25534 self.automatic_glGetError("glProgramUniform2uiv");
25535 }
25536 out
25537 }
25538 #[doc(hidden)]
25539 pub unsafe fn ProgramUniform2uiv_load_with_dyn(
25540 &self,
25541 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25542 ) -> bool {
25543 load_dyn_name_atomic_ptr(
25544 get_proc_address,
25545 b"glProgramUniform2uiv\0",
25546 &self.glProgramUniform2uiv_p,
25547 )
25548 }
25549 #[inline]
25550 #[doc(hidden)]
25551 pub fn ProgramUniform2uiv_is_loaded(&self) -> bool {
25552 !self.glProgramUniform2uiv_p.load(RELAX).is_null()
25553 }
25554 #[cfg_attr(feature = "inline", inline)]
25556 #[cfg_attr(feature = "inline_always", inline(always))]
25557 pub unsafe fn ProgramUniform3d(
25558 &self,
25559 program: GLuint,
25560 location: GLint,
25561 v0: GLdouble,
25562 v1: GLdouble,
25563 v2: GLdouble,
25564 ) {
25565 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25566 {
25567 trace!(
25568 "calling gl.ProgramUniform3d({:?}, {:?}, {:?}, {:?}, {:?});",
25569 program,
25570 location,
25571 v0,
25572 v1,
25573 v2
25574 );
25575 }
25576 let out = call_atomic_ptr_5arg(
25577 "glProgramUniform3d",
25578 &self.glProgramUniform3d_p,
25579 program,
25580 location,
25581 v0,
25582 v1,
25583 v2,
25584 );
25585 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25586 {
25587 self.automatic_glGetError("glProgramUniform3d");
25588 }
25589 out
25590 }
25591 #[doc(hidden)]
25592 pub unsafe fn ProgramUniform3d_load_with_dyn(
25593 &self,
25594 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25595 ) -> bool {
25596 load_dyn_name_atomic_ptr(
25597 get_proc_address,
25598 b"glProgramUniform3d\0",
25599 &self.glProgramUniform3d_p,
25600 )
25601 }
25602 #[inline]
25603 #[doc(hidden)]
25604 pub fn ProgramUniform3d_is_loaded(&self) -> bool {
25605 !self.glProgramUniform3d_p.load(RELAX).is_null()
25606 }
25607 #[cfg_attr(feature = "inline", inline)]
25610 #[cfg_attr(feature = "inline_always", inline(always))]
25611 pub unsafe fn ProgramUniform3dv(
25612 &self,
25613 program: GLuint,
25614 location: GLint,
25615 count: GLsizei,
25616 value: *const GLdouble,
25617 ) {
25618 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25619 {
25620 trace!(
25621 "calling gl.ProgramUniform3dv({:?}, {:?}, {:?}, {:p});",
25622 program,
25623 location,
25624 count,
25625 value
25626 );
25627 }
25628 let out = call_atomic_ptr_4arg(
25629 "glProgramUniform3dv",
25630 &self.glProgramUniform3dv_p,
25631 program,
25632 location,
25633 count,
25634 value,
25635 );
25636 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25637 {
25638 self.automatic_glGetError("glProgramUniform3dv");
25639 }
25640 out
25641 }
25642 #[doc(hidden)]
25643 pub unsafe fn ProgramUniform3dv_load_with_dyn(
25644 &self,
25645 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25646 ) -> bool {
25647 load_dyn_name_atomic_ptr(
25648 get_proc_address,
25649 b"glProgramUniform3dv\0",
25650 &self.glProgramUniform3dv_p,
25651 )
25652 }
25653 #[inline]
25654 #[doc(hidden)]
25655 pub fn ProgramUniform3dv_is_loaded(&self) -> bool {
25656 !self.glProgramUniform3dv_p.load(RELAX).is_null()
25657 }
25658 #[cfg_attr(feature = "inline", inline)]
25660 #[cfg_attr(feature = "inline_always", inline(always))]
25661 pub unsafe fn ProgramUniform3f(
25662 &self,
25663 program: GLuint,
25664 location: GLint,
25665 v0: GLfloat,
25666 v1: GLfloat,
25667 v2: GLfloat,
25668 ) {
25669 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25670 {
25671 trace!(
25672 "calling gl.ProgramUniform3f({:?}, {:?}, {:?}, {:?}, {:?});",
25673 program,
25674 location,
25675 v0,
25676 v1,
25677 v2
25678 );
25679 }
25680 let out = call_atomic_ptr_5arg(
25681 "glProgramUniform3f",
25682 &self.glProgramUniform3f_p,
25683 program,
25684 location,
25685 v0,
25686 v1,
25687 v2,
25688 );
25689 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25690 {
25691 self.automatic_glGetError("glProgramUniform3f");
25692 }
25693 out
25694 }
25695 #[doc(hidden)]
25696 pub unsafe fn ProgramUniform3f_load_with_dyn(
25697 &self,
25698 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25699 ) -> bool {
25700 load_dyn_name_atomic_ptr(
25701 get_proc_address,
25702 b"glProgramUniform3f\0",
25703 &self.glProgramUniform3f_p,
25704 )
25705 }
25706 #[inline]
25707 #[doc(hidden)]
25708 pub fn ProgramUniform3f_is_loaded(&self) -> bool {
25709 !self.glProgramUniform3f_p.load(RELAX).is_null()
25710 }
25711 #[cfg_attr(feature = "inline", inline)]
25714 #[cfg_attr(feature = "inline_always", inline(always))]
25715 pub unsafe fn ProgramUniform3fv(
25716 &self,
25717 program: GLuint,
25718 location: GLint,
25719 count: GLsizei,
25720 value: *const GLfloat,
25721 ) {
25722 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25723 {
25724 trace!(
25725 "calling gl.ProgramUniform3fv({:?}, {:?}, {:?}, {:p});",
25726 program,
25727 location,
25728 count,
25729 value
25730 );
25731 }
25732 let out = call_atomic_ptr_4arg(
25733 "glProgramUniform3fv",
25734 &self.glProgramUniform3fv_p,
25735 program,
25736 location,
25737 count,
25738 value,
25739 );
25740 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25741 {
25742 self.automatic_glGetError("glProgramUniform3fv");
25743 }
25744 out
25745 }
25746 #[doc(hidden)]
25747 pub unsafe fn ProgramUniform3fv_load_with_dyn(
25748 &self,
25749 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25750 ) -> bool {
25751 load_dyn_name_atomic_ptr(
25752 get_proc_address,
25753 b"glProgramUniform3fv\0",
25754 &self.glProgramUniform3fv_p,
25755 )
25756 }
25757 #[inline]
25758 #[doc(hidden)]
25759 pub fn ProgramUniform3fv_is_loaded(&self) -> bool {
25760 !self.glProgramUniform3fv_p.load(RELAX).is_null()
25761 }
25762 #[cfg_attr(feature = "inline", inline)]
25764 #[cfg_attr(feature = "inline_always", inline(always))]
25765 pub unsafe fn ProgramUniform3i(
25766 &self,
25767 program: GLuint,
25768 location: GLint,
25769 v0: GLint,
25770 v1: GLint,
25771 v2: GLint,
25772 ) {
25773 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25774 {
25775 trace!(
25776 "calling gl.ProgramUniform3i({:?}, {:?}, {:?}, {:?}, {:?});",
25777 program,
25778 location,
25779 v0,
25780 v1,
25781 v2
25782 );
25783 }
25784 let out = call_atomic_ptr_5arg(
25785 "glProgramUniform3i",
25786 &self.glProgramUniform3i_p,
25787 program,
25788 location,
25789 v0,
25790 v1,
25791 v2,
25792 );
25793 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25794 {
25795 self.automatic_glGetError("glProgramUniform3i");
25796 }
25797 out
25798 }
25799 #[doc(hidden)]
25800 pub unsafe fn ProgramUniform3i_load_with_dyn(
25801 &self,
25802 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25803 ) -> bool {
25804 load_dyn_name_atomic_ptr(
25805 get_proc_address,
25806 b"glProgramUniform3i\0",
25807 &self.glProgramUniform3i_p,
25808 )
25809 }
25810 #[inline]
25811 #[doc(hidden)]
25812 pub fn ProgramUniform3i_is_loaded(&self) -> bool {
25813 !self.glProgramUniform3i_p.load(RELAX).is_null()
25814 }
25815 #[cfg_attr(feature = "inline", inline)]
25818 #[cfg_attr(feature = "inline_always", inline(always))]
25819 pub unsafe fn ProgramUniform3iv(
25820 &self,
25821 program: GLuint,
25822 location: GLint,
25823 count: GLsizei,
25824 value: *const GLint,
25825 ) {
25826 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25827 {
25828 trace!(
25829 "calling gl.ProgramUniform3iv({:?}, {:?}, {:?}, {:p});",
25830 program,
25831 location,
25832 count,
25833 value
25834 );
25835 }
25836 let out = call_atomic_ptr_4arg(
25837 "glProgramUniform3iv",
25838 &self.glProgramUniform3iv_p,
25839 program,
25840 location,
25841 count,
25842 value,
25843 );
25844 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25845 {
25846 self.automatic_glGetError("glProgramUniform3iv");
25847 }
25848 out
25849 }
25850 #[doc(hidden)]
25851 pub unsafe fn ProgramUniform3iv_load_with_dyn(
25852 &self,
25853 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
25854 ) -> bool {
25855 load_dyn_name_atomic_ptr(
25856 get_proc_address,
25857 b"glProgramUniform3iv\0",
25858 &self.glProgramUniform3iv_p,
25859 )
25860 }
25861 #[inline]
25862 #[doc(hidden)]
25863 pub fn ProgramUniform3iv_is_loaded(&self) -> bool {
25864 !self.glProgramUniform3iv_p.load(RELAX).is_null()
25865 }
25866 #[cfg_attr(feature = "inline", inline)]
25868 #[cfg_attr(feature = "inline_always", inline(always))]
25869 pub unsafe fn ProgramUniform3ui(
25870 &self,
25871 program: GLuint,
25872 location: GLint,
25873 v0: GLuint,
25874 v1: GLuint,
25875 v2: GLuint,
25876 ) {
25877 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25878 {
25879 trace!(
25880 "calling gl.ProgramUniform3ui({:?}, {:?}, {:?}, {:?}, {:?});",
25881 program,
25882 location,
25883 v0,
25884 v1,
25885 v2
25886 );
25887 }
25888 let out = call_atomic_ptr_5arg(
25889 "glProgramUniform3ui",
25890 &self.glProgramUniform3ui_p,
25891 program,
25892 location,
25893 v0,
25894 v1,
25895 v2,
25896 );
25897 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25898 {
25899 self.automatic_glGetError("glProgramUniform3ui");
25900 }
25901 out
25902 }
25903 #[doc(hidden)]
25904 pub unsafe fn ProgramUniform3ui_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"glProgramUniform3ui\0",
25911 &self.glProgramUniform3ui_p,
25912 )
25913 }
25914 #[inline]
25915 #[doc(hidden)]
25916 pub fn ProgramUniform3ui_is_loaded(&self) -> bool {
25917 !self.glProgramUniform3ui_p.load(RELAX).is_null()
25918 }
25919 #[cfg_attr(feature = "inline", inline)]
25922 #[cfg_attr(feature = "inline_always", inline(always))]
25923 pub unsafe fn ProgramUniform3uiv(
25924 &self,
25925 program: GLuint,
25926 location: GLint,
25927 count: GLsizei,
25928 value: *const GLuint,
25929 ) {
25930 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25931 {
25932 trace!(
25933 "calling gl.ProgramUniform3uiv({:?}, {:?}, {:?}, {:p});",
25934 program,
25935 location,
25936 count,
25937 value
25938 );
25939 }
25940 let out = call_atomic_ptr_4arg(
25941 "glProgramUniform3uiv",
25942 &self.glProgramUniform3uiv_p,
25943 program,
25944 location,
25945 count,
25946 value,
25947 );
25948 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
25949 {
25950 self.automatic_glGetError("glProgramUniform3uiv");
25951 }
25952 out
25953 }
25954 #[doc(hidden)]
25955 pub unsafe fn ProgramUniform3uiv_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"glProgramUniform3uiv\0",
25962 &self.glProgramUniform3uiv_p,
25963 )
25964 }
25965 #[inline]
25966 #[doc(hidden)]
25967 pub fn ProgramUniform3uiv_is_loaded(&self) -> bool {
25968 !self.glProgramUniform3uiv_p.load(RELAX).is_null()
25969 }
25970 #[cfg_attr(feature = "inline", inline)]
25972 #[cfg_attr(feature = "inline_always", inline(always))]
25973 pub unsafe fn ProgramUniform4d(
25974 &self,
25975 program: GLuint,
25976 location: GLint,
25977 v0: GLdouble,
25978 v1: GLdouble,
25979 v2: GLdouble,
25980 v3: GLdouble,
25981 ) {
25982 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
25983 {
25984 trace!(
25985 "calling gl.ProgramUniform4d({:?}, {:?}, {:?}, {:?}, {:?}, {:?});",
25986 program,
25987 location,
25988 v0,
25989 v1,
25990 v2,
25991 v3
25992 );
25993 }
25994 let out = call_atomic_ptr_6arg(
25995 "glProgramUniform4d",
25996 &self.glProgramUniform4d_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("glProgramUniform4d");
26007 }
26008 out
26009 }
26010 #[doc(hidden)]
26011 pub unsafe fn ProgramUniform4d_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"glProgramUniform4d\0",
26018 &self.glProgramUniform4d_p,
26019 )
26020 }
26021 #[inline]
26022 #[doc(hidden)]
26023 pub fn ProgramUniform4d_is_loaded(&self) -> bool {
26024 !self.glProgramUniform4d_p.load(RELAX).is_null()
26025 }
26026 #[cfg_attr(feature = "inline", inline)]
26029 #[cfg_attr(feature = "inline_always", inline(always))]
26030 pub unsafe fn ProgramUniform4dv(
26031 &self,
26032 program: GLuint,
26033 location: GLint,
26034 count: GLsizei,
26035 value: *const GLdouble,
26036 ) {
26037 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26038 {
26039 trace!(
26040 "calling gl.ProgramUniform4dv({:?}, {:?}, {:?}, {:p});",
26041 program,
26042 location,
26043 count,
26044 value
26045 );
26046 }
26047 let out = call_atomic_ptr_4arg(
26048 "glProgramUniform4dv",
26049 &self.glProgramUniform4dv_p,
26050 program,
26051 location,
26052 count,
26053 value,
26054 );
26055 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26056 {
26057 self.automatic_glGetError("glProgramUniform4dv");
26058 }
26059 out
26060 }
26061 #[doc(hidden)]
26062 pub unsafe fn ProgramUniform4dv_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"glProgramUniform4dv\0",
26069 &self.glProgramUniform4dv_p,
26070 )
26071 }
26072 #[inline]
26073 #[doc(hidden)]
26074 pub fn ProgramUniform4dv_is_loaded(&self) -> bool {
26075 !self.glProgramUniform4dv_p.load(RELAX).is_null()
26076 }
26077 #[cfg_attr(feature = "inline", inline)]
26079 #[cfg_attr(feature = "inline_always", inline(always))]
26080 pub unsafe fn ProgramUniform4f(
26081 &self,
26082 program: GLuint,
26083 location: GLint,
26084 v0: GLfloat,
26085 v1: GLfloat,
26086 v2: GLfloat,
26087 v3: GLfloat,
26088 ) {
26089 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26090 {
26091 trace!(
26092 "calling gl.ProgramUniform4f({:?}, {:?}, {:?}, {:?}, {:?}, {:?});",
26093 program,
26094 location,
26095 v0,
26096 v1,
26097 v2,
26098 v3
26099 );
26100 }
26101 let out = call_atomic_ptr_6arg(
26102 "glProgramUniform4f",
26103 &self.glProgramUniform4f_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("glProgramUniform4f");
26114 }
26115 out
26116 }
26117 #[doc(hidden)]
26118 pub unsafe fn ProgramUniform4f_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"glProgramUniform4f\0",
26125 &self.glProgramUniform4f_p,
26126 )
26127 }
26128 #[inline]
26129 #[doc(hidden)]
26130 pub fn ProgramUniform4f_is_loaded(&self) -> bool {
26131 !self.glProgramUniform4f_p.load(RELAX).is_null()
26132 }
26133 #[cfg_attr(feature = "inline", inline)]
26136 #[cfg_attr(feature = "inline_always", inline(always))]
26137 pub unsafe fn ProgramUniform4fv(
26138 &self,
26139 program: GLuint,
26140 location: GLint,
26141 count: GLsizei,
26142 value: *const GLfloat,
26143 ) {
26144 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26145 {
26146 trace!(
26147 "calling gl.ProgramUniform4fv({:?}, {:?}, {:?}, {:p});",
26148 program,
26149 location,
26150 count,
26151 value
26152 );
26153 }
26154 let out = call_atomic_ptr_4arg(
26155 "glProgramUniform4fv",
26156 &self.glProgramUniform4fv_p,
26157 program,
26158 location,
26159 count,
26160 value,
26161 );
26162 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26163 {
26164 self.automatic_glGetError("glProgramUniform4fv");
26165 }
26166 out
26167 }
26168 #[doc(hidden)]
26169 pub unsafe fn ProgramUniform4fv_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"glProgramUniform4fv\0",
26176 &self.glProgramUniform4fv_p,
26177 )
26178 }
26179 #[inline]
26180 #[doc(hidden)]
26181 pub fn ProgramUniform4fv_is_loaded(&self) -> bool {
26182 !self.glProgramUniform4fv_p.load(RELAX).is_null()
26183 }
26184 #[cfg_attr(feature = "inline", inline)]
26186 #[cfg_attr(feature = "inline_always", inline(always))]
26187 pub unsafe fn ProgramUniform4i(
26188 &self,
26189 program: GLuint,
26190 location: GLint,
26191 v0: GLint,
26192 v1: GLint,
26193 v2: GLint,
26194 v3: GLint,
26195 ) {
26196 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26197 {
26198 trace!(
26199 "calling gl.ProgramUniform4i({:?}, {:?}, {:?}, {:?}, {:?}, {:?});",
26200 program,
26201 location,
26202 v0,
26203 v1,
26204 v2,
26205 v3
26206 );
26207 }
26208 let out = call_atomic_ptr_6arg(
26209 "glProgramUniform4i",
26210 &self.glProgramUniform4i_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("glProgramUniform4i");
26221 }
26222 out
26223 }
26224 #[doc(hidden)]
26225 pub unsafe fn ProgramUniform4i_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"glProgramUniform4i\0",
26232 &self.glProgramUniform4i_p,
26233 )
26234 }
26235 #[inline]
26236 #[doc(hidden)]
26237 pub fn ProgramUniform4i_is_loaded(&self) -> bool {
26238 !self.glProgramUniform4i_p.load(RELAX).is_null()
26239 }
26240 #[cfg_attr(feature = "inline", inline)]
26243 #[cfg_attr(feature = "inline_always", inline(always))]
26244 pub unsafe fn ProgramUniform4iv(
26245 &self,
26246 program: GLuint,
26247 location: GLint,
26248 count: GLsizei,
26249 value: *const GLint,
26250 ) {
26251 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26252 {
26253 trace!(
26254 "calling gl.ProgramUniform4iv({:?}, {:?}, {:?}, {:p});",
26255 program,
26256 location,
26257 count,
26258 value
26259 );
26260 }
26261 let out = call_atomic_ptr_4arg(
26262 "glProgramUniform4iv",
26263 &self.glProgramUniform4iv_p,
26264 program,
26265 location,
26266 count,
26267 value,
26268 );
26269 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26270 {
26271 self.automatic_glGetError("glProgramUniform4iv");
26272 }
26273 out
26274 }
26275 #[doc(hidden)]
26276 pub unsafe fn ProgramUniform4iv_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"glProgramUniform4iv\0",
26283 &self.glProgramUniform4iv_p,
26284 )
26285 }
26286 #[inline]
26287 #[doc(hidden)]
26288 pub fn ProgramUniform4iv_is_loaded(&self) -> bool {
26289 !self.glProgramUniform4iv_p.load(RELAX).is_null()
26290 }
26291 #[cfg_attr(feature = "inline", inline)]
26293 #[cfg_attr(feature = "inline_always", inline(always))]
26294 pub unsafe fn ProgramUniform4ui(
26295 &self,
26296 program: GLuint,
26297 location: GLint,
26298 v0: GLuint,
26299 v1: GLuint,
26300 v2: GLuint,
26301 v3: GLuint,
26302 ) {
26303 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26304 {
26305 trace!(
26306 "calling gl.ProgramUniform4ui({:?}, {:?}, {:?}, {:?}, {:?}, {:?});",
26307 program,
26308 location,
26309 v0,
26310 v1,
26311 v2,
26312 v3
26313 );
26314 }
26315 let out = call_atomic_ptr_6arg(
26316 "glProgramUniform4ui",
26317 &self.glProgramUniform4ui_p,
26318 program,
26319 location,
26320 v0,
26321 v1,
26322 v2,
26323 v3,
26324 );
26325 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26326 {
26327 self.automatic_glGetError("glProgramUniform4ui");
26328 }
26329 out
26330 }
26331 #[doc(hidden)]
26332 pub unsafe fn ProgramUniform4ui_load_with_dyn(
26333 &self,
26334 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26335 ) -> bool {
26336 load_dyn_name_atomic_ptr(
26337 get_proc_address,
26338 b"glProgramUniform4ui\0",
26339 &self.glProgramUniform4ui_p,
26340 )
26341 }
26342 #[inline]
26343 #[doc(hidden)]
26344 pub fn ProgramUniform4ui_is_loaded(&self) -> bool {
26345 !self.glProgramUniform4ui_p.load(RELAX).is_null()
26346 }
26347 #[cfg_attr(feature = "inline", inline)]
26350 #[cfg_attr(feature = "inline_always", inline(always))]
26351 pub unsafe fn ProgramUniform4uiv(
26352 &self,
26353 program: GLuint,
26354 location: GLint,
26355 count: GLsizei,
26356 value: *const GLuint,
26357 ) {
26358 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26359 {
26360 trace!(
26361 "calling gl.ProgramUniform4uiv({:?}, {:?}, {:?}, {:p});",
26362 program,
26363 location,
26364 count,
26365 value
26366 );
26367 }
26368 let out = call_atomic_ptr_4arg(
26369 "glProgramUniform4uiv",
26370 &self.glProgramUniform4uiv_p,
26371 program,
26372 location,
26373 count,
26374 value,
26375 );
26376 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26377 {
26378 self.automatic_glGetError("glProgramUniform4uiv");
26379 }
26380 out
26381 }
26382 #[doc(hidden)]
26383 pub unsafe fn ProgramUniform4uiv_load_with_dyn(
26384 &self,
26385 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26386 ) -> bool {
26387 load_dyn_name_atomic_ptr(
26388 get_proc_address,
26389 b"glProgramUniform4uiv\0",
26390 &self.glProgramUniform4uiv_p,
26391 )
26392 }
26393 #[inline]
26394 #[doc(hidden)]
26395 pub fn ProgramUniform4uiv_is_loaded(&self) -> bool {
26396 !self.glProgramUniform4uiv_p.load(RELAX).is_null()
26397 }
26398 #[cfg_attr(feature = "inline", inline)]
26401 #[cfg_attr(feature = "inline_always", inline(always))]
26402 pub unsafe fn ProgramUniformMatrix2dv(
26403 &self,
26404 program: GLuint,
26405 location: GLint,
26406 count: GLsizei,
26407 transpose: GLboolean,
26408 value: *const GLdouble,
26409 ) {
26410 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26411 {
26412 trace!(
26413 "calling gl.ProgramUniformMatrix2dv({:?}, {:?}, {:?}, {:?}, {:p});",
26414 program,
26415 location,
26416 count,
26417 transpose,
26418 value
26419 );
26420 }
26421 let out = call_atomic_ptr_5arg(
26422 "glProgramUniformMatrix2dv",
26423 &self.glProgramUniformMatrix2dv_p,
26424 program,
26425 location,
26426 count,
26427 transpose,
26428 value,
26429 );
26430 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26431 {
26432 self.automatic_glGetError("glProgramUniformMatrix2dv");
26433 }
26434 out
26435 }
26436 #[doc(hidden)]
26437 pub unsafe fn ProgramUniformMatrix2dv_load_with_dyn(
26438 &self,
26439 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26440 ) -> bool {
26441 load_dyn_name_atomic_ptr(
26442 get_proc_address,
26443 b"glProgramUniformMatrix2dv\0",
26444 &self.glProgramUniformMatrix2dv_p,
26445 )
26446 }
26447 #[inline]
26448 #[doc(hidden)]
26449 pub fn ProgramUniformMatrix2dv_is_loaded(&self) -> bool {
26450 !self.glProgramUniformMatrix2dv_p.load(RELAX).is_null()
26451 }
26452 #[cfg_attr(feature = "inline", inline)]
26455 #[cfg_attr(feature = "inline_always", inline(always))]
26456 pub unsafe fn ProgramUniformMatrix2fv(
26457 &self,
26458 program: GLuint,
26459 location: GLint,
26460 count: GLsizei,
26461 transpose: GLboolean,
26462 value: *const GLfloat,
26463 ) {
26464 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26465 {
26466 trace!(
26467 "calling gl.ProgramUniformMatrix2fv({:?}, {:?}, {:?}, {:?}, {:p});",
26468 program,
26469 location,
26470 count,
26471 transpose,
26472 value
26473 );
26474 }
26475 let out = call_atomic_ptr_5arg(
26476 "glProgramUniformMatrix2fv",
26477 &self.glProgramUniformMatrix2fv_p,
26478 program,
26479 location,
26480 count,
26481 transpose,
26482 value,
26483 );
26484 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26485 {
26486 self.automatic_glGetError("glProgramUniformMatrix2fv");
26487 }
26488 out
26489 }
26490 #[doc(hidden)]
26491 pub unsafe fn ProgramUniformMatrix2fv_load_with_dyn(
26492 &self,
26493 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26494 ) -> bool {
26495 load_dyn_name_atomic_ptr(
26496 get_proc_address,
26497 b"glProgramUniformMatrix2fv\0",
26498 &self.glProgramUniformMatrix2fv_p,
26499 )
26500 }
26501 #[inline]
26502 #[doc(hidden)]
26503 pub fn ProgramUniformMatrix2fv_is_loaded(&self) -> bool {
26504 !self.glProgramUniformMatrix2fv_p.load(RELAX).is_null()
26505 }
26506 #[cfg_attr(feature = "inline", inline)]
26509 #[cfg_attr(feature = "inline_always", inline(always))]
26510 pub unsafe fn ProgramUniformMatrix2x3dv(
26511 &self,
26512 program: GLuint,
26513 location: GLint,
26514 count: GLsizei,
26515 transpose: GLboolean,
26516 value: *const GLdouble,
26517 ) {
26518 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26519 {
26520 trace!(
26521 "calling gl.ProgramUniformMatrix2x3dv({:?}, {:?}, {:?}, {:?}, {:p});",
26522 program,
26523 location,
26524 count,
26525 transpose,
26526 value
26527 );
26528 }
26529 let out = call_atomic_ptr_5arg(
26530 "glProgramUniformMatrix2x3dv",
26531 &self.glProgramUniformMatrix2x3dv_p,
26532 program,
26533 location,
26534 count,
26535 transpose,
26536 value,
26537 );
26538 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26539 {
26540 self.automatic_glGetError("glProgramUniformMatrix2x3dv");
26541 }
26542 out
26543 }
26544 #[doc(hidden)]
26545 pub unsafe fn ProgramUniformMatrix2x3dv_load_with_dyn(
26546 &self,
26547 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26548 ) -> bool {
26549 load_dyn_name_atomic_ptr(
26550 get_proc_address,
26551 b"glProgramUniformMatrix2x3dv\0",
26552 &self.glProgramUniformMatrix2x3dv_p,
26553 )
26554 }
26555 #[inline]
26556 #[doc(hidden)]
26557 pub fn ProgramUniformMatrix2x3dv_is_loaded(&self) -> bool {
26558 !self.glProgramUniformMatrix2x3dv_p.load(RELAX).is_null()
26559 }
26560 #[cfg_attr(feature = "inline", inline)]
26563 #[cfg_attr(feature = "inline_always", inline(always))]
26564 pub unsafe fn ProgramUniformMatrix2x3fv(
26565 &self,
26566 program: GLuint,
26567 location: GLint,
26568 count: GLsizei,
26569 transpose: GLboolean,
26570 value: *const GLfloat,
26571 ) {
26572 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26573 {
26574 trace!(
26575 "calling gl.ProgramUniformMatrix2x3fv({:?}, {:?}, {:?}, {:?}, {:p});",
26576 program,
26577 location,
26578 count,
26579 transpose,
26580 value
26581 );
26582 }
26583 let out = call_atomic_ptr_5arg(
26584 "glProgramUniformMatrix2x3fv",
26585 &self.glProgramUniformMatrix2x3fv_p,
26586 program,
26587 location,
26588 count,
26589 transpose,
26590 value,
26591 );
26592 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26593 {
26594 self.automatic_glGetError("glProgramUniformMatrix2x3fv");
26595 }
26596 out
26597 }
26598 #[doc(hidden)]
26599 pub unsafe fn ProgramUniformMatrix2x3fv_load_with_dyn(
26600 &self,
26601 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26602 ) -> bool {
26603 load_dyn_name_atomic_ptr(
26604 get_proc_address,
26605 b"glProgramUniformMatrix2x3fv\0",
26606 &self.glProgramUniformMatrix2x3fv_p,
26607 )
26608 }
26609 #[inline]
26610 #[doc(hidden)]
26611 pub fn ProgramUniformMatrix2x3fv_is_loaded(&self) -> bool {
26612 !self.glProgramUniformMatrix2x3fv_p.load(RELAX).is_null()
26613 }
26614 #[cfg_attr(feature = "inline", inline)]
26617 #[cfg_attr(feature = "inline_always", inline(always))]
26618 pub unsafe fn ProgramUniformMatrix2x4dv(
26619 &self,
26620 program: GLuint,
26621 location: GLint,
26622 count: GLsizei,
26623 transpose: GLboolean,
26624 value: *const GLdouble,
26625 ) {
26626 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26627 {
26628 trace!(
26629 "calling gl.ProgramUniformMatrix2x4dv({:?}, {:?}, {:?}, {:?}, {:p});",
26630 program,
26631 location,
26632 count,
26633 transpose,
26634 value
26635 );
26636 }
26637 let out = call_atomic_ptr_5arg(
26638 "glProgramUniformMatrix2x4dv",
26639 &self.glProgramUniformMatrix2x4dv_p,
26640 program,
26641 location,
26642 count,
26643 transpose,
26644 value,
26645 );
26646 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26647 {
26648 self.automatic_glGetError("glProgramUniformMatrix2x4dv");
26649 }
26650 out
26651 }
26652 #[doc(hidden)]
26653 pub unsafe fn ProgramUniformMatrix2x4dv_load_with_dyn(
26654 &self,
26655 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26656 ) -> bool {
26657 load_dyn_name_atomic_ptr(
26658 get_proc_address,
26659 b"glProgramUniformMatrix2x4dv\0",
26660 &self.glProgramUniformMatrix2x4dv_p,
26661 )
26662 }
26663 #[inline]
26664 #[doc(hidden)]
26665 pub fn ProgramUniformMatrix2x4dv_is_loaded(&self) -> bool {
26666 !self.glProgramUniformMatrix2x4dv_p.load(RELAX).is_null()
26667 }
26668 #[cfg_attr(feature = "inline", inline)]
26671 #[cfg_attr(feature = "inline_always", inline(always))]
26672 pub unsafe fn ProgramUniformMatrix2x4fv(
26673 &self,
26674 program: GLuint,
26675 location: GLint,
26676 count: GLsizei,
26677 transpose: GLboolean,
26678 value: *const GLfloat,
26679 ) {
26680 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26681 {
26682 trace!(
26683 "calling gl.ProgramUniformMatrix2x4fv({:?}, {:?}, {:?}, {:?}, {:p});",
26684 program,
26685 location,
26686 count,
26687 transpose,
26688 value
26689 );
26690 }
26691 let out = call_atomic_ptr_5arg(
26692 "glProgramUniformMatrix2x4fv",
26693 &self.glProgramUniformMatrix2x4fv_p,
26694 program,
26695 location,
26696 count,
26697 transpose,
26698 value,
26699 );
26700 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26701 {
26702 self.automatic_glGetError("glProgramUniformMatrix2x4fv");
26703 }
26704 out
26705 }
26706 #[doc(hidden)]
26707 pub unsafe fn ProgramUniformMatrix2x4fv_load_with_dyn(
26708 &self,
26709 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26710 ) -> bool {
26711 load_dyn_name_atomic_ptr(
26712 get_proc_address,
26713 b"glProgramUniformMatrix2x4fv\0",
26714 &self.glProgramUniformMatrix2x4fv_p,
26715 )
26716 }
26717 #[inline]
26718 #[doc(hidden)]
26719 pub fn ProgramUniformMatrix2x4fv_is_loaded(&self) -> bool {
26720 !self.glProgramUniformMatrix2x4fv_p.load(RELAX).is_null()
26721 }
26722 #[cfg_attr(feature = "inline", inline)]
26725 #[cfg_attr(feature = "inline_always", inline(always))]
26726 pub unsafe fn ProgramUniformMatrix3dv(
26727 &self,
26728 program: GLuint,
26729 location: GLint,
26730 count: GLsizei,
26731 transpose: GLboolean,
26732 value: *const GLdouble,
26733 ) {
26734 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26735 {
26736 trace!(
26737 "calling gl.ProgramUniformMatrix3dv({:?}, {:?}, {:?}, {:?}, {:p});",
26738 program,
26739 location,
26740 count,
26741 transpose,
26742 value
26743 );
26744 }
26745 let out = call_atomic_ptr_5arg(
26746 "glProgramUniformMatrix3dv",
26747 &self.glProgramUniformMatrix3dv_p,
26748 program,
26749 location,
26750 count,
26751 transpose,
26752 value,
26753 );
26754 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26755 {
26756 self.automatic_glGetError("glProgramUniformMatrix3dv");
26757 }
26758 out
26759 }
26760 #[doc(hidden)]
26761 pub unsafe fn ProgramUniformMatrix3dv_load_with_dyn(
26762 &self,
26763 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26764 ) -> bool {
26765 load_dyn_name_atomic_ptr(
26766 get_proc_address,
26767 b"glProgramUniformMatrix3dv\0",
26768 &self.glProgramUniformMatrix3dv_p,
26769 )
26770 }
26771 #[inline]
26772 #[doc(hidden)]
26773 pub fn ProgramUniformMatrix3dv_is_loaded(&self) -> bool {
26774 !self.glProgramUniformMatrix3dv_p.load(RELAX).is_null()
26775 }
26776 #[cfg_attr(feature = "inline", inline)]
26779 #[cfg_attr(feature = "inline_always", inline(always))]
26780 pub unsafe fn ProgramUniformMatrix3fv(
26781 &self,
26782 program: GLuint,
26783 location: GLint,
26784 count: GLsizei,
26785 transpose: GLboolean,
26786 value: *const GLfloat,
26787 ) {
26788 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26789 {
26790 trace!(
26791 "calling gl.ProgramUniformMatrix3fv({:?}, {:?}, {:?}, {:?}, {:p});",
26792 program,
26793 location,
26794 count,
26795 transpose,
26796 value
26797 );
26798 }
26799 let out = call_atomic_ptr_5arg(
26800 "glProgramUniformMatrix3fv",
26801 &self.glProgramUniformMatrix3fv_p,
26802 program,
26803 location,
26804 count,
26805 transpose,
26806 value,
26807 );
26808 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26809 {
26810 self.automatic_glGetError("glProgramUniformMatrix3fv");
26811 }
26812 out
26813 }
26814 #[doc(hidden)]
26815 pub unsafe fn ProgramUniformMatrix3fv_load_with_dyn(
26816 &self,
26817 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26818 ) -> bool {
26819 load_dyn_name_atomic_ptr(
26820 get_proc_address,
26821 b"glProgramUniformMatrix3fv\0",
26822 &self.glProgramUniformMatrix3fv_p,
26823 )
26824 }
26825 #[inline]
26826 #[doc(hidden)]
26827 pub fn ProgramUniformMatrix3fv_is_loaded(&self) -> bool {
26828 !self.glProgramUniformMatrix3fv_p.load(RELAX).is_null()
26829 }
26830 #[cfg_attr(feature = "inline", inline)]
26833 #[cfg_attr(feature = "inline_always", inline(always))]
26834 pub unsafe fn ProgramUniformMatrix3x2dv(
26835 &self,
26836 program: GLuint,
26837 location: GLint,
26838 count: GLsizei,
26839 transpose: GLboolean,
26840 value: *const GLdouble,
26841 ) {
26842 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26843 {
26844 trace!(
26845 "calling gl.ProgramUniformMatrix3x2dv({:?}, {:?}, {:?}, {:?}, {:p});",
26846 program,
26847 location,
26848 count,
26849 transpose,
26850 value
26851 );
26852 }
26853 let out = call_atomic_ptr_5arg(
26854 "glProgramUniformMatrix3x2dv",
26855 &self.glProgramUniformMatrix3x2dv_p,
26856 program,
26857 location,
26858 count,
26859 transpose,
26860 value,
26861 );
26862 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26863 {
26864 self.automatic_glGetError("glProgramUniformMatrix3x2dv");
26865 }
26866 out
26867 }
26868 #[doc(hidden)]
26869 pub unsafe fn ProgramUniformMatrix3x2dv_load_with_dyn(
26870 &self,
26871 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26872 ) -> bool {
26873 load_dyn_name_atomic_ptr(
26874 get_proc_address,
26875 b"glProgramUniformMatrix3x2dv\0",
26876 &self.glProgramUniformMatrix3x2dv_p,
26877 )
26878 }
26879 #[inline]
26880 #[doc(hidden)]
26881 pub fn ProgramUniformMatrix3x2dv_is_loaded(&self) -> bool {
26882 !self.glProgramUniformMatrix3x2dv_p.load(RELAX).is_null()
26883 }
26884 #[cfg_attr(feature = "inline", inline)]
26887 #[cfg_attr(feature = "inline_always", inline(always))]
26888 pub unsafe fn ProgramUniformMatrix3x2fv(
26889 &self,
26890 program: GLuint,
26891 location: GLint,
26892 count: GLsizei,
26893 transpose: GLboolean,
26894 value: *const GLfloat,
26895 ) {
26896 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26897 {
26898 trace!(
26899 "calling gl.ProgramUniformMatrix3x2fv({:?}, {:?}, {:?}, {:?}, {:p});",
26900 program,
26901 location,
26902 count,
26903 transpose,
26904 value
26905 );
26906 }
26907 let out = call_atomic_ptr_5arg(
26908 "glProgramUniformMatrix3x2fv",
26909 &self.glProgramUniformMatrix3x2fv_p,
26910 program,
26911 location,
26912 count,
26913 transpose,
26914 value,
26915 );
26916 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26917 {
26918 self.automatic_glGetError("glProgramUniformMatrix3x2fv");
26919 }
26920 out
26921 }
26922 #[doc(hidden)]
26923 pub unsafe fn ProgramUniformMatrix3x2fv_load_with_dyn(
26924 &self,
26925 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26926 ) -> bool {
26927 load_dyn_name_atomic_ptr(
26928 get_proc_address,
26929 b"glProgramUniformMatrix3x2fv\0",
26930 &self.glProgramUniformMatrix3x2fv_p,
26931 )
26932 }
26933 #[inline]
26934 #[doc(hidden)]
26935 pub fn ProgramUniformMatrix3x2fv_is_loaded(&self) -> bool {
26936 !self.glProgramUniformMatrix3x2fv_p.load(RELAX).is_null()
26937 }
26938 #[cfg_attr(feature = "inline", inline)]
26941 #[cfg_attr(feature = "inline_always", inline(always))]
26942 pub unsafe fn ProgramUniformMatrix3x4dv(
26943 &self,
26944 program: GLuint,
26945 location: GLint,
26946 count: GLsizei,
26947 transpose: GLboolean,
26948 value: *const GLdouble,
26949 ) {
26950 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
26951 {
26952 trace!(
26953 "calling gl.ProgramUniformMatrix3x4dv({:?}, {:?}, {:?}, {:?}, {:p});",
26954 program,
26955 location,
26956 count,
26957 transpose,
26958 value
26959 );
26960 }
26961 let out = call_atomic_ptr_5arg(
26962 "glProgramUniformMatrix3x4dv",
26963 &self.glProgramUniformMatrix3x4dv_p,
26964 program,
26965 location,
26966 count,
26967 transpose,
26968 value,
26969 );
26970 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
26971 {
26972 self.automatic_glGetError("glProgramUniformMatrix3x4dv");
26973 }
26974 out
26975 }
26976 #[doc(hidden)]
26977 pub unsafe fn ProgramUniformMatrix3x4dv_load_with_dyn(
26978 &self,
26979 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
26980 ) -> bool {
26981 load_dyn_name_atomic_ptr(
26982 get_proc_address,
26983 b"glProgramUniformMatrix3x4dv\0",
26984 &self.glProgramUniformMatrix3x4dv_p,
26985 )
26986 }
26987 #[inline]
26988 #[doc(hidden)]
26989 pub fn ProgramUniformMatrix3x4dv_is_loaded(&self) -> bool {
26990 !self.glProgramUniformMatrix3x4dv_p.load(RELAX).is_null()
26991 }
26992 #[cfg_attr(feature = "inline", inline)]
26995 #[cfg_attr(feature = "inline_always", inline(always))]
26996 pub unsafe fn ProgramUniformMatrix3x4fv(
26997 &self,
26998 program: GLuint,
26999 location: GLint,
27000 count: GLsizei,
27001 transpose: GLboolean,
27002 value: *const GLfloat,
27003 ) {
27004 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27005 {
27006 trace!(
27007 "calling gl.ProgramUniformMatrix3x4fv({:?}, {:?}, {:?}, {:?}, {:p});",
27008 program,
27009 location,
27010 count,
27011 transpose,
27012 value
27013 );
27014 }
27015 let out = call_atomic_ptr_5arg(
27016 "glProgramUniformMatrix3x4fv",
27017 &self.glProgramUniformMatrix3x4fv_p,
27018 program,
27019 location,
27020 count,
27021 transpose,
27022 value,
27023 );
27024 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27025 {
27026 self.automatic_glGetError("glProgramUniformMatrix3x4fv");
27027 }
27028 out
27029 }
27030 #[doc(hidden)]
27031 pub unsafe fn ProgramUniformMatrix3x4fv_load_with_dyn(
27032 &self,
27033 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27034 ) -> bool {
27035 load_dyn_name_atomic_ptr(
27036 get_proc_address,
27037 b"glProgramUniformMatrix3x4fv\0",
27038 &self.glProgramUniformMatrix3x4fv_p,
27039 )
27040 }
27041 #[inline]
27042 #[doc(hidden)]
27043 pub fn ProgramUniformMatrix3x4fv_is_loaded(&self) -> bool {
27044 !self.glProgramUniformMatrix3x4fv_p.load(RELAX).is_null()
27045 }
27046 #[cfg_attr(feature = "inline", inline)]
27049 #[cfg_attr(feature = "inline_always", inline(always))]
27050 pub unsafe fn ProgramUniformMatrix4dv(
27051 &self,
27052 program: GLuint,
27053 location: GLint,
27054 count: GLsizei,
27055 transpose: GLboolean,
27056 value: *const GLdouble,
27057 ) {
27058 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27059 {
27060 trace!(
27061 "calling gl.ProgramUniformMatrix4dv({:?}, {:?}, {:?}, {:?}, {:p});",
27062 program,
27063 location,
27064 count,
27065 transpose,
27066 value
27067 );
27068 }
27069 let out = call_atomic_ptr_5arg(
27070 "glProgramUniformMatrix4dv",
27071 &self.glProgramUniformMatrix4dv_p,
27072 program,
27073 location,
27074 count,
27075 transpose,
27076 value,
27077 );
27078 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27079 {
27080 self.automatic_glGetError("glProgramUniformMatrix4dv");
27081 }
27082 out
27083 }
27084 #[doc(hidden)]
27085 pub unsafe fn ProgramUniformMatrix4dv_load_with_dyn(
27086 &self,
27087 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27088 ) -> bool {
27089 load_dyn_name_atomic_ptr(
27090 get_proc_address,
27091 b"glProgramUniformMatrix4dv\0",
27092 &self.glProgramUniformMatrix4dv_p,
27093 )
27094 }
27095 #[inline]
27096 #[doc(hidden)]
27097 pub fn ProgramUniformMatrix4dv_is_loaded(&self) -> bool {
27098 !self.glProgramUniformMatrix4dv_p.load(RELAX).is_null()
27099 }
27100 #[cfg_attr(feature = "inline", inline)]
27103 #[cfg_attr(feature = "inline_always", inline(always))]
27104 pub unsafe fn ProgramUniformMatrix4fv(
27105 &self,
27106 program: GLuint,
27107 location: GLint,
27108 count: GLsizei,
27109 transpose: GLboolean,
27110 value: *const GLfloat,
27111 ) {
27112 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27113 {
27114 trace!(
27115 "calling gl.ProgramUniformMatrix4fv({:?}, {:?}, {:?}, {:?}, {:p});",
27116 program,
27117 location,
27118 count,
27119 transpose,
27120 value
27121 );
27122 }
27123 let out = call_atomic_ptr_5arg(
27124 "glProgramUniformMatrix4fv",
27125 &self.glProgramUniformMatrix4fv_p,
27126 program,
27127 location,
27128 count,
27129 transpose,
27130 value,
27131 );
27132 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27133 {
27134 self.automatic_glGetError("glProgramUniformMatrix4fv");
27135 }
27136 out
27137 }
27138 #[doc(hidden)]
27139 pub unsafe fn ProgramUniformMatrix4fv_load_with_dyn(
27140 &self,
27141 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27142 ) -> bool {
27143 load_dyn_name_atomic_ptr(
27144 get_proc_address,
27145 b"glProgramUniformMatrix4fv\0",
27146 &self.glProgramUniformMatrix4fv_p,
27147 )
27148 }
27149 #[inline]
27150 #[doc(hidden)]
27151 pub fn ProgramUniformMatrix4fv_is_loaded(&self) -> bool {
27152 !self.glProgramUniformMatrix4fv_p.load(RELAX).is_null()
27153 }
27154 #[cfg_attr(feature = "inline", inline)]
27157 #[cfg_attr(feature = "inline_always", inline(always))]
27158 pub unsafe fn ProgramUniformMatrix4x2dv(
27159 &self,
27160 program: GLuint,
27161 location: GLint,
27162 count: GLsizei,
27163 transpose: GLboolean,
27164 value: *const GLdouble,
27165 ) {
27166 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27167 {
27168 trace!(
27169 "calling gl.ProgramUniformMatrix4x2dv({:?}, {:?}, {:?}, {:?}, {:p});",
27170 program,
27171 location,
27172 count,
27173 transpose,
27174 value
27175 );
27176 }
27177 let out = call_atomic_ptr_5arg(
27178 "glProgramUniformMatrix4x2dv",
27179 &self.glProgramUniformMatrix4x2dv_p,
27180 program,
27181 location,
27182 count,
27183 transpose,
27184 value,
27185 );
27186 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27187 {
27188 self.automatic_glGetError("glProgramUniformMatrix4x2dv");
27189 }
27190 out
27191 }
27192 #[doc(hidden)]
27193 pub unsafe fn ProgramUniformMatrix4x2dv_load_with_dyn(
27194 &self,
27195 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27196 ) -> bool {
27197 load_dyn_name_atomic_ptr(
27198 get_proc_address,
27199 b"glProgramUniformMatrix4x2dv\0",
27200 &self.glProgramUniformMatrix4x2dv_p,
27201 )
27202 }
27203 #[inline]
27204 #[doc(hidden)]
27205 pub fn ProgramUniformMatrix4x2dv_is_loaded(&self) -> bool {
27206 !self.glProgramUniformMatrix4x2dv_p.load(RELAX).is_null()
27207 }
27208 #[cfg_attr(feature = "inline", inline)]
27211 #[cfg_attr(feature = "inline_always", inline(always))]
27212 pub unsafe fn ProgramUniformMatrix4x2fv(
27213 &self,
27214 program: GLuint,
27215 location: GLint,
27216 count: GLsizei,
27217 transpose: GLboolean,
27218 value: *const GLfloat,
27219 ) {
27220 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27221 {
27222 trace!(
27223 "calling gl.ProgramUniformMatrix4x2fv({:?}, {:?}, {:?}, {:?}, {:p});",
27224 program,
27225 location,
27226 count,
27227 transpose,
27228 value
27229 );
27230 }
27231 let out = call_atomic_ptr_5arg(
27232 "glProgramUniformMatrix4x2fv",
27233 &self.glProgramUniformMatrix4x2fv_p,
27234 program,
27235 location,
27236 count,
27237 transpose,
27238 value,
27239 );
27240 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27241 {
27242 self.automatic_glGetError("glProgramUniformMatrix4x2fv");
27243 }
27244 out
27245 }
27246 #[doc(hidden)]
27247 pub unsafe fn ProgramUniformMatrix4x2fv_load_with_dyn(
27248 &self,
27249 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27250 ) -> bool {
27251 load_dyn_name_atomic_ptr(
27252 get_proc_address,
27253 b"glProgramUniformMatrix4x2fv\0",
27254 &self.glProgramUniformMatrix4x2fv_p,
27255 )
27256 }
27257 #[inline]
27258 #[doc(hidden)]
27259 pub fn ProgramUniformMatrix4x2fv_is_loaded(&self) -> bool {
27260 !self.glProgramUniformMatrix4x2fv_p.load(RELAX).is_null()
27261 }
27262 #[cfg_attr(feature = "inline", inline)]
27265 #[cfg_attr(feature = "inline_always", inline(always))]
27266 pub unsafe fn ProgramUniformMatrix4x3dv(
27267 &self,
27268 program: GLuint,
27269 location: GLint,
27270 count: GLsizei,
27271 transpose: GLboolean,
27272 value: *const GLdouble,
27273 ) {
27274 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27275 {
27276 trace!(
27277 "calling gl.ProgramUniformMatrix4x3dv({:?}, {:?}, {:?}, {:?}, {:p});",
27278 program,
27279 location,
27280 count,
27281 transpose,
27282 value
27283 );
27284 }
27285 let out = call_atomic_ptr_5arg(
27286 "glProgramUniformMatrix4x3dv",
27287 &self.glProgramUniformMatrix4x3dv_p,
27288 program,
27289 location,
27290 count,
27291 transpose,
27292 value,
27293 );
27294 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27295 {
27296 self.automatic_glGetError("glProgramUniformMatrix4x3dv");
27297 }
27298 out
27299 }
27300 #[doc(hidden)]
27301 pub unsafe fn ProgramUniformMatrix4x3dv_load_with_dyn(
27302 &self,
27303 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27304 ) -> bool {
27305 load_dyn_name_atomic_ptr(
27306 get_proc_address,
27307 b"glProgramUniformMatrix4x3dv\0",
27308 &self.glProgramUniformMatrix4x3dv_p,
27309 )
27310 }
27311 #[inline]
27312 #[doc(hidden)]
27313 pub fn ProgramUniformMatrix4x3dv_is_loaded(&self) -> bool {
27314 !self.glProgramUniformMatrix4x3dv_p.load(RELAX).is_null()
27315 }
27316 #[cfg_attr(feature = "inline", inline)]
27319 #[cfg_attr(feature = "inline_always", inline(always))]
27320 pub unsafe fn ProgramUniformMatrix4x3fv(
27321 &self,
27322 program: GLuint,
27323 location: GLint,
27324 count: GLsizei,
27325 transpose: GLboolean,
27326 value: *const GLfloat,
27327 ) {
27328 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27329 {
27330 trace!(
27331 "calling gl.ProgramUniformMatrix4x3fv({:?}, {:?}, {:?}, {:?}, {:p});",
27332 program,
27333 location,
27334 count,
27335 transpose,
27336 value
27337 );
27338 }
27339 let out = call_atomic_ptr_5arg(
27340 "glProgramUniformMatrix4x3fv",
27341 &self.glProgramUniformMatrix4x3fv_p,
27342 program,
27343 location,
27344 count,
27345 transpose,
27346 value,
27347 );
27348 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27349 {
27350 self.automatic_glGetError("glProgramUniformMatrix4x3fv");
27351 }
27352 out
27353 }
27354 #[doc(hidden)]
27355 pub unsafe fn ProgramUniformMatrix4x3fv_load_with_dyn(
27356 &self,
27357 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27358 ) -> bool {
27359 load_dyn_name_atomic_ptr(
27360 get_proc_address,
27361 b"glProgramUniformMatrix4x3fv\0",
27362 &self.glProgramUniformMatrix4x3fv_p,
27363 )
27364 }
27365 #[inline]
27366 #[doc(hidden)]
27367 pub fn ProgramUniformMatrix4x3fv_is_loaded(&self) -> bool {
27368 !self.glProgramUniformMatrix4x3fv_p.load(RELAX).is_null()
27369 }
27370 #[cfg_attr(feature = "inline", inline)]
27373 #[cfg_attr(feature = "inline_always", inline(always))]
27374 pub unsafe fn ProvokingVertex(&self, mode: GLenum) {
27375 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27376 {
27377 trace!("calling gl.ProvokingVertex({:#X});", mode);
27378 }
27379 let out = call_atomic_ptr_1arg("glProvokingVertex", &self.glProvokingVertex_p, mode);
27380 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27381 {
27382 self.automatic_glGetError("glProvokingVertex");
27383 }
27384 out
27385 }
27386 #[doc(hidden)]
27387 pub unsafe fn ProvokingVertex_load_with_dyn(
27388 &self,
27389 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27390 ) -> bool {
27391 load_dyn_name_atomic_ptr(
27392 get_proc_address,
27393 b"glProvokingVertex\0",
27394 &self.glProvokingVertex_p,
27395 )
27396 }
27397 #[inline]
27398 #[doc(hidden)]
27399 pub fn ProvokingVertex_is_loaded(&self) -> bool {
27400 !self.glProvokingVertex_p.load(RELAX).is_null()
27401 }
27402 #[cfg_attr(feature = "inline", inline)]
27406 #[cfg_attr(feature = "inline_always", inline(always))]
27407 pub unsafe fn PushDebugGroup(
27408 &self,
27409 source: GLenum,
27410 id: GLuint,
27411 length: GLsizei,
27412 message: *const GLchar,
27413 ) {
27414 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27415 {
27416 trace!(
27417 "calling gl.PushDebugGroup({:#X}, {:?}, {:?}, {:p});",
27418 source,
27419 id,
27420 length,
27421 message
27422 );
27423 }
27424 let out = call_atomic_ptr_4arg(
27425 "glPushDebugGroup",
27426 &self.glPushDebugGroup_p,
27427 source,
27428 id,
27429 length,
27430 message,
27431 );
27432 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27433 {
27434 self.automatic_glGetError("glPushDebugGroup");
27435 }
27436 out
27437 }
27438 #[doc(hidden)]
27439 pub unsafe fn PushDebugGroup_load_with_dyn(
27440 &self,
27441 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27442 ) -> bool {
27443 load_dyn_name_atomic_ptr(
27444 get_proc_address,
27445 b"glPushDebugGroup\0",
27446 &self.glPushDebugGroup_p,
27447 )
27448 }
27449 #[inline]
27450 #[doc(hidden)]
27451 pub fn PushDebugGroup_is_loaded(&self) -> bool {
27452 !self.glPushDebugGroup_p.load(RELAX).is_null()
27453 }
27454 #[cfg_attr(feature = "inline", inline)]
27458 #[cfg_attr(feature = "inline_always", inline(always))]
27459 pub unsafe fn PushDebugGroupKHR(
27460 &self,
27461 source: GLenum,
27462 id: GLuint,
27463 length: GLsizei,
27464 message: *const GLchar,
27465 ) {
27466 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27467 {
27468 trace!(
27469 "calling gl.PushDebugGroupKHR({:#X}, {:?}, {:?}, {:p});",
27470 source,
27471 id,
27472 length,
27473 message
27474 );
27475 }
27476 let out = call_atomic_ptr_4arg(
27477 "glPushDebugGroupKHR",
27478 &self.glPushDebugGroupKHR_p,
27479 source,
27480 id,
27481 length,
27482 message,
27483 );
27484 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27485 {
27486 self.automatic_glGetError("glPushDebugGroupKHR");
27487 }
27488 out
27489 }
27490 #[doc(hidden)]
27491 pub unsafe fn PushDebugGroupKHR_load_with_dyn(
27492 &self,
27493 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27494 ) -> bool {
27495 load_dyn_name_atomic_ptr(
27496 get_proc_address,
27497 b"glPushDebugGroupKHR\0",
27498 &self.glPushDebugGroupKHR_p,
27499 )
27500 }
27501 #[inline]
27502 #[doc(hidden)]
27503 pub fn PushDebugGroupKHR_is_loaded(&self) -> bool {
27504 !self.glPushDebugGroupKHR_p.load(RELAX).is_null()
27505 }
27506 #[cfg_attr(feature = "inline", inline)]
27509 #[cfg_attr(feature = "inline_always", inline(always))]
27510 pub unsafe fn QueryCounter(&self, id: GLuint, target: GLenum) {
27511 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27512 {
27513 trace!("calling gl.QueryCounter({:?}, {:#X});", id, target);
27514 }
27515 let out = call_atomic_ptr_2arg("glQueryCounter", &self.glQueryCounter_p, id, target);
27516 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27517 {
27518 self.automatic_glGetError("glQueryCounter");
27519 }
27520 out
27521 }
27522 #[doc(hidden)]
27523 pub unsafe fn QueryCounter_load_with_dyn(
27524 &self,
27525 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27526 ) -> bool {
27527 load_dyn_name_atomic_ptr(
27528 get_proc_address,
27529 b"glQueryCounter\0",
27530 &self.glQueryCounter_p,
27531 )
27532 }
27533 #[inline]
27534 #[doc(hidden)]
27535 pub fn QueryCounter_is_loaded(&self) -> bool {
27536 !self.glQueryCounter_p.load(RELAX).is_null()
27537 }
27538 #[cfg_attr(feature = "inline", inline)]
27542 #[cfg_attr(feature = "inline_always", inline(always))]
27543 pub unsafe fn QueryCounterEXT(&self, id: GLuint, target: GLenum) {
27544 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27545 {
27546 trace!("calling gl.QueryCounterEXT({:?}, {:#X});", id, target);
27547 }
27548 let out =
27549 call_atomic_ptr_2arg("glQueryCounterEXT", &self.glQueryCounterEXT_p, id, target);
27550 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27551 {
27552 self.automatic_glGetError("glQueryCounterEXT");
27553 }
27554 out
27555 }
27556 #[doc(hidden)]
27557 pub unsafe fn QueryCounterEXT_load_with_dyn(
27558 &self,
27559 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27560 ) -> bool {
27561 load_dyn_name_atomic_ptr(
27562 get_proc_address,
27563 b"glQueryCounterEXT\0",
27564 &self.glQueryCounterEXT_p,
27565 )
27566 }
27567 #[inline]
27568 #[doc(hidden)]
27569 pub fn QueryCounterEXT_is_loaded(&self) -> bool {
27570 !self.glQueryCounterEXT_p.load(RELAX).is_null()
27571 }
27572 #[cfg_attr(feature = "inline", inline)]
27575 #[cfg_attr(feature = "inline_always", inline(always))]
27576 pub unsafe fn ReadBuffer(&self, src: GLenum) {
27577 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27578 {
27579 trace!("calling gl.ReadBuffer({:#X});", src);
27580 }
27581 let out = call_atomic_ptr_1arg("glReadBuffer", &self.glReadBuffer_p, src);
27582 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27583 {
27584 self.automatic_glGetError("glReadBuffer");
27585 }
27586 out
27587 }
27588 #[doc(hidden)]
27589 pub unsafe fn ReadBuffer_load_with_dyn(
27590 &self,
27591 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27592 ) -> bool {
27593 load_dyn_name_atomic_ptr(get_proc_address, b"glReadBuffer\0", &self.glReadBuffer_p)
27594 }
27595 #[inline]
27596 #[doc(hidden)]
27597 pub fn ReadBuffer_is_loaded(&self) -> bool {
27598 !self.glReadBuffer_p.load(RELAX).is_null()
27599 }
27600 #[cfg_attr(feature = "inline", inline)]
27607 #[cfg_attr(feature = "inline_always", inline(always))]
27608 pub unsafe fn ReadPixels(
27609 &self,
27610 x: GLint,
27611 y: GLint,
27612 width: GLsizei,
27613 height: GLsizei,
27614 format: GLenum,
27615 type_: GLenum,
27616 pixels: *mut c_void,
27617 ) {
27618 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27619 {
27620 trace!(
27621 "calling gl.ReadPixels({:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});",
27622 x,
27623 y,
27624 width,
27625 height,
27626 format,
27627 type_,
27628 pixels
27629 );
27630 }
27631 let out = call_atomic_ptr_7arg(
27632 "glReadPixels",
27633 &self.glReadPixels_p,
27634 x,
27635 y,
27636 width,
27637 height,
27638 format,
27639 type_,
27640 pixels,
27641 );
27642 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27643 {
27644 self.automatic_glGetError("glReadPixels");
27645 }
27646 out
27647 }
27648 #[doc(hidden)]
27649 pub unsafe fn ReadPixels_load_with_dyn(
27650 &self,
27651 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27652 ) -> bool {
27653 load_dyn_name_atomic_ptr(get_proc_address, b"glReadPixels\0", &self.glReadPixels_p)
27654 }
27655 #[inline]
27656 #[doc(hidden)]
27657 pub fn ReadPixels_is_loaded(&self) -> bool {
27658 !self.glReadPixels_p.load(RELAX).is_null()
27659 }
27660 #[cfg_attr(feature = "inline", inline)]
27665 #[cfg_attr(feature = "inline_always", inline(always))]
27666 pub unsafe fn ReadnPixels(
27667 &self,
27668 x: GLint,
27669 y: GLint,
27670 width: GLsizei,
27671 height: GLsizei,
27672 format: GLenum,
27673 type_: GLenum,
27674 bufSize: GLsizei,
27675 data: *mut c_void,
27676 ) {
27677 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27678 {
27679 trace!(
27680 "calling gl.ReadnPixels({:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:?}, {:p});",
27681 x,
27682 y,
27683 width,
27684 height,
27685 format,
27686 type_,
27687 bufSize,
27688 data
27689 );
27690 }
27691 let out = call_atomic_ptr_8arg(
27692 "glReadnPixels",
27693 &self.glReadnPixels_p,
27694 x,
27695 y,
27696 width,
27697 height,
27698 format,
27699 type_,
27700 bufSize,
27701 data,
27702 );
27703 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27704 {
27705 self.automatic_glGetError("glReadnPixels");
27706 }
27707 out
27708 }
27709 #[doc(hidden)]
27710 pub unsafe fn ReadnPixels_load_with_dyn(
27711 &self,
27712 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27713 ) -> bool {
27714 load_dyn_name_atomic_ptr(get_proc_address, b"glReadnPixels\0", &self.glReadnPixels_p)
27715 }
27716 #[inline]
27717 #[doc(hidden)]
27718 pub fn ReadnPixels_is_loaded(&self) -> bool {
27719 !self.glReadnPixels_p.load(RELAX).is_null()
27720 }
27721 #[cfg_attr(feature = "inline", inline)]
27723 #[cfg_attr(feature = "inline_always", inline(always))]
27724 pub unsafe fn ReleaseShaderCompiler(&self) {
27725 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27726 {
27727 trace!("calling gl.ReleaseShaderCompiler();",);
27728 }
27729 let out =
27730 call_atomic_ptr_0arg("glReleaseShaderCompiler", &self.glReleaseShaderCompiler_p);
27731 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27732 {
27733 self.automatic_glGetError("glReleaseShaderCompiler");
27734 }
27735 out
27736 }
27737 #[doc(hidden)]
27738 pub unsafe fn ReleaseShaderCompiler_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"glReleaseShaderCompiler\0",
27745 &self.glReleaseShaderCompiler_p,
27746 )
27747 }
27748 #[inline]
27749 #[doc(hidden)]
27750 pub fn ReleaseShaderCompiler_is_loaded(&self) -> bool {
27751 !self.glReleaseShaderCompiler_p.load(RELAX).is_null()
27752 }
27753 #[cfg_attr(feature = "inline", inline)]
27757 #[cfg_attr(feature = "inline_always", inline(always))]
27758 pub unsafe fn RenderbufferStorage(
27759 &self,
27760 target: GLenum,
27761 internalformat: GLenum,
27762 width: GLsizei,
27763 height: GLsizei,
27764 ) {
27765 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27766 {
27767 trace!(
27768 "calling gl.RenderbufferStorage({:#X}, {:#X}, {:?}, {:?});",
27769 target,
27770 internalformat,
27771 width,
27772 height
27773 );
27774 }
27775 let out = call_atomic_ptr_4arg(
27776 "glRenderbufferStorage",
27777 &self.glRenderbufferStorage_p,
27778 target,
27779 internalformat,
27780 width,
27781 height,
27782 );
27783 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27784 {
27785 self.automatic_glGetError("glRenderbufferStorage");
27786 }
27787 out
27788 }
27789 #[doc(hidden)]
27790 pub unsafe fn RenderbufferStorage_load_with_dyn(
27791 &self,
27792 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27793 ) -> bool {
27794 load_dyn_name_atomic_ptr(
27795 get_proc_address,
27796 b"glRenderbufferStorage\0",
27797 &self.glRenderbufferStorage_p,
27798 )
27799 }
27800 #[inline]
27801 #[doc(hidden)]
27802 pub fn RenderbufferStorage_is_loaded(&self) -> bool {
27803 !self.glRenderbufferStorage_p.load(RELAX).is_null()
27804 }
27805 #[cfg_attr(feature = "inline", inline)]
27809 #[cfg_attr(feature = "inline_always", inline(always))]
27810 pub unsafe fn RenderbufferStorageMultisample(
27811 &self,
27812 target: GLenum,
27813 samples: GLsizei,
27814 internalformat: GLenum,
27815 width: GLsizei,
27816 height: GLsizei,
27817 ) {
27818 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27819 {
27820 trace!(
27821 "calling gl.RenderbufferStorageMultisample({:#X}, {:?}, {:#X}, {:?}, {:?});",
27822 target,
27823 samples,
27824 internalformat,
27825 width,
27826 height
27827 );
27828 }
27829 let out = call_atomic_ptr_5arg(
27830 "glRenderbufferStorageMultisample",
27831 &self.glRenderbufferStorageMultisample_p,
27832 target,
27833 samples,
27834 internalformat,
27835 width,
27836 height,
27837 );
27838 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27839 {
27840 self.automatic_glGetError("glRenderbufferStorageMultisample");
27841 }
27842 out
27843 }
27844 #[doc(hidden)]
27845 pub unsafe fn RenderbufferStorageMultisample_load_with_dyn(
27846 &self,
27847 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27848 ) -> bool {
27849 load_dyn_name_atomic_ptr(
27850 get_proc_address,
27851 b"glRenderbufferStorageMultisample\0",
27852 &self.glRenderbufferStorageMultisample_p,
27853 )
27854 }
27855 #[inline]
27856 #[doc(hidden)]
27857 pub fn RenderbufferStorageMultisample_is_loaded(&self) -> bool {
27858 !self
27859 .glRenderbufferStorageMultisample_p
27860 .load(RELAX)
27861 .is_null()
27862 }
27863 #[cfg_attr(feature = "inline", inline)]
27868 #[cfg_attr(feature = "inline_always", inline(always))]
27869 #[cfg_attr(
27870 docs_rs,
27871 doc(cfg(any(feature = "GL_EXT_multisampled_render_to_texture")))
27872 )]
27873 pub unsafe fn RenderbufferStorageMultisampleEXT(
27874 &self,
27875 target: GLenum,
27876 samples: GLsizei,
27877 internalformat: GLenum,
27878 width: GLsizei,
27879 height: GLsizei,
27880 ) {
27881 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27882 {
27883 trace!(
27884 "calling gl.RenderbufferStorageMultisampleEXT({:#X}, {:?}, {:#X}, {:?}, {:?});",
27885 target,
27886 samples,
27887 internalformat,
27888 width,
27889 height
27890 );
27891 }
27892 let out = call_atomic_ptr_5arg(
27893 "glRenderbufferStorageMultisampleEXT",
27894 &self.glRenderbufferStorageMultisampleEXT_p,
27895 target,
27896 samples,
27897 internalformat,
27898 width,
27899 height,
27900 );
27901 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27902 {
27903 self.automatic_glGetError("glRenderbufferStorageMultisampleEXT");
27904 }
27905 out
27906 }
27907 #[cfg_attr(
27908 docs_rs,
27909 doc(cfg(any(feature = "GL_EXT_multisampled_render_to_texture")))
27910 )]
27911 #[doc(hidden)]
27912 pub unsafe fn RenderbufferStorageMultisampleEXT_load_with_dyn(
27913 &self,
27914 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27915 ) -> bool {
27916 load_dyn_name_atomic_ptr(
27917 get_proc_address,
27918 b"glRenderbufferStorageMultisampleEXT\0",
27919 &self.glRenderbufferStorageMultisampleEXT_p,
27920 )
27921 }
27922 #[inline]
27923 #[doc(hidden)]
27924 #[cfg_attr(
27925 docs_rs,
27926 doc(cfg(any(feature = "GL_EXT_multisampled_render_to_texture")))
27927 )]
27928 pub fn RenderbufferStorageMultisampleEXT_is_loaded(&self) -> bool {
27929 !self
27930 .glRenderbufferStorageMultisampleEXT_p
27931 .load(RELAX)
27932 .is_null()
27933 }
27934 #[cfg_attr(feature = "inline", inline)]
27936 #[cfg_attr(feature = "inline_always", inline(always))]
27937 pub unsafe fn ResumeTransformFeedback(&self) {
27938 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27939 {
27940 trace!("calling gl.ResumeTransformFeedback();",);
27941 }
27942 let out = call_atomic_ptr_0arg(
27943 "glResumeTransformFeedback",
27944 &self.glResumeTransformFeedback_p,
27945 );
27946 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27947 {
27948 self.automatic_glGetError("glResumeTransformFeedback");
27949 }
27950 out
27951 }
27952 #[doc(hidden)]
27953 pub unsafe fn ResumeTransformFeedback_load_with_dyn(
27954 &self,
27955 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27956 ) -> bool {
27957 load_dyn_name_atomic_ptr(
27958 get_proc_address,
27959 b"glResumeTransformFeedback\0",
27960 &self.glResumeTransformFeedback_p,
27961 )
27962 }
27963 #[inline]
27964 #[doc(hidden)]
27965 pub fn ResumeTransformFeedback_is_loaded(&self) -> bool {
27966 !self.glResumeTransformFeedback_p.load(RELAX).is_null()
27967 }
27968 #[cfg_attr(feature = "inline", inline)]
27970 #[cfg_attr(feature = "inline_always", inline(always))]
27971 pub unsafe fn SampleCoverage(&self, value: GLfloat, invert: GLboolean) {
27972 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
27973 {
27974 trace!("calling gl.SampleCoverage({:?}, {:?});", value, invert);
27975 }
27976 let out =
27977 call_atomic_ptr_2arg("glSampleCoverage", &self.glSampleCoverage_p, value, invert);
27978 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
27979 {
27980 self.automatic_glGetError("glSampleCoverage");
27981 }
27982 out
27983 }
27984 #[doc(hidden)]
27985 pub unsafe fn SampleCoverage_load_with_dyn(
27986 &self,
27987 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
27988 ) -> bool {
27989 load_dyn_name_atomic_ptr(
27990 get_proc_address,
27991 b"glSampleCoverage\0",
27992 &self.glSampleCoverage_p,
27993 )
27994 }
27995 #[inline]
27996 #[doc(hidden)]
27997 pub fn SampleCoverage_is_loaded(&self) -> bool {
27998 !self.glSampleCoverage_p.load(RELAX).is_null()
27999 }
28000 #[cfg_attr(feature = "inline", inline)]
28002 #[cfg_attr(feature = "inline_always", inline(always))]
28003 pub unsafe fn SampleMaski(&self, maskNumber: GLuint, mask: GLbitfield) {
28004 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28005 {
28006 trace!("calling gl.SampleMaski({:?}, {:?});", maskNumber, mask);
28007 }
28008 let out =
28009 call_atomic_ptr_2arg("glSampleMaski", &self.glSampleMaski_p, maskNumber, mask);
28010 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28011 {
28012 self.automatic_glGetError("glSampleMaski");
28013 }
28014 out
28015 }
28016 #[doc(hidden)]
28017 pub unsafe fn SampleMaski_load_with_dyn(
28018 &self,
28019 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28020 ) -> bool {
28021 load_dyn_name_atomic_ptr(get_proc_address, b"glSampleMaski\0", &self.glSampleMaski_p)
28022 }
28023 #[inline]
28024 #[doc(hidden)]
28025 pub fn SampleMaski_is_loaded(&self) -> bool {
28026 !self.glSampleMaski_p.load(RELAX).is_null()
28027 }
28028 #[cfg_attr(feature = "inline", inline)]
28032 #[cfg_attr(feature = "inline_always", inline(always))]
28033 pub unsafe fn SamplerParameterIiv(
28034 &self,
28035 sampler: GLuint,
28036 pname: GLenum,
28037 param: *const GLint,
28038 ) {
28039 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28040 {
28041 trace!(
28042 "calling gl.SamplerParameterIiv({:?}, {:#X}, {:p});",
28043 sampler,
28044 pname,
28045 param
28046 );
28047 }
28048 let out = call_atomic_ptr_3arg(
28049 "glSamplerParameterIiv",
28050 &self.glSamplerParameterIiv_p,
28051 sampler,
28052 pname,
28053 param,
28054 );
28055 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28056 {
28057 self.automatic_glGetError("glSamplerParameterIiv");
28058 }
28059 out
28060 }
28061 #[doc(hidden)]
28062 pub unsafe fn SamplerParameterIiv_load_with_dyn(
28063 &self,
28064 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28065 ) -> bool {
28066 load_dyn_name_atomic_ptr(
28067 get_proc_address,
28068 b"glSamplerParameterIiv\0",
28069 &self.glSamplerParameterIiv_p,
28070 )
28071 }
28072 #[inline]
28073 #[doc(hidden)]
28074 pub fn SamplerParameterIiv_is_loaded(&self) -> bool {
28075 !self.glSamplerParameterIiv_p.load(RELAX).is_null()
28076 }
28077 #[cfg_attr(feature = "inline", inline)]
28081 #[cfg_attr(feature = "inline_always", inline(always))]
28082 pub unsafe fn SamplerParameterIuiv(
28083 &self,
28084 sampler: GLuint,
28085 pname: GLenum,
28086 param: *const GLuint,
28087 ) {
28088 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28089 {
28090 trace!(
28091 "calling gl.SamplerParameterIuiv({:?}, {:#X}, {:p});",
28092 sampler,
28093 pname,
28094 param
28095 );
28096 }
28097 let out = call_atomic_ptr_3arg(
28098 "glSamplerParameterIuiv",
28099 &self.glSamplerParameterIuiv_p,
28100 sampler,
28101 pname,
28102 param,
28103 );
28104 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28105 {
28106 self.automatic_glGetError("glSamplerParameterIuiv");
28107 }
28108 out
28109 }
28110 #[doc(hidden)]
28111 pub unsafe fn SamplerParameterIuiv_load_with_dyn(
28112 &self,
28113 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28114 ) -> bool {
28115 load_dyn_name_atomic_ptr(
28116 get_proc_address,
28117 b"glSamplerParameterIuiv\0",
28118 &self.glSamplerParameterIuiv_p,
28119 )
28120 }
28121 #[inline]
28122 #[doc(hidden)]
28123 pub fn SamplerParameterIuiv_is_loaded(&self) -> bool {
28124 !self.glSamplerParameterIuiv_p.load(RELAX).is_null()
28125 }
28126 #[cfg_attr(feature = "inline", inline)]
28129 #[cfg_attr(feature = "inline_always", inline(always))]
28130 pub unsafe fn SamplerParameterf(&self, sampler: GLuint, pname: GLenum, param: GLfloat) {
28131 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28132 {
28133 trace!(
28134 "calling gl.SamplerParameterf({:?}, {:#X}, {:?});",
28135 sampler,
28136 pname,
28137 param
28138 );
28139 }
28140 let out = call_atomic_ptr_3arg(
28141 "glSamplerParameterf",
28142 &self.glSamplerParameterf_p,
28143 sampler,
28144 pname,
28145 param,
28146 );
28147 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28148 {
28149 self.automatic_glGetError("glSamplerParameterf");
28150 }
28151 out
28152 }
28153 #[doc(hidden)]
28154 pub unsafe fn SamplerParameterf_load_with_dyn(
28155 &self,
28156 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28157 ) -> bool {
28158 load_dyn_name_atomic_ptr(
28159 get_proc_address,
28160 b"glSamplerParameterf\0",
28161 &self.glSamplerParameterf_p,
28162 )
28163 }
28164 #[inline]
28165 #[doc(hidden)]
28166 pub fn SamplerParameterf_is_loaded(&self) -> bool {
28167 !self.glSamplerParameterf_p.load(RELAX).is_null()
28168 }
28169 #[cfg_attr(feature = "inline", inline)]
28173 #[cfg_attr(feature = "inline_always", inline(always))]
28174 pub unsafe fn SamplerParameterfv(
28175 &self,
28176 sampler: GLuint,
28177 pname: GLenum,
28178 param: *const GLfloat,
28179 ) {
28180 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28181 {
28182 trace!(
28183 "calling gl.SamplerParameterfv({:?}, {:#X}, {:p});",
28184 sampler,
28185 pname,
28186 param
28187 );
28188 }
28189 let out = call_atomic_ptr_3arg(
28190 "glSamplerParameterfv",
28191 &self.glSamplerParameterfv_p,
28192 sampler,
28193 pname,
28194 param,
28195 );
28196 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28197 {
28198 self.automatic_glGetError("glSamplerParameterfv");
28199 }
28200 out
28201 }
28202 #[doc(hidden)]
28203 pub unsafe fn SamplerParameterfv_load_with_dyn(
28204 &self,
28205 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28206 ) -> bool {
28207 load_dyn_name_atomic_ptr(
28208 get_proc_address,
28209 b"glSamplerParameterfv\0",
28210 &self.glSamplerParameterfv_p,
28211 )
28212 }
28213 #[inline]
28214 #[doc(hidden)]
28215 pub fn SamplerParameterfv_is_loaded(&self) -> bool {
28216 !self.glSamplerParameterfv_p.load(RELAX).is_null()
28217 }
28218 #[cfg_attr(feature = "inline", inline)]
28221 #[cfg_attr(feature = "inline_always", inline(always))]
28222 pub unsafe fn SamplerParameteri(&self, sampler: GLuint, pname: GLenum, param: GLint) {
28223 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28224 {
28225 trace!(
28226 "calling gl.SamplerParameteri({:?}, {:#X}, {:?});",
28227 sampler,
28228 pname,
28229 param
28230 );
28231 }
28232 let out = call_atomic_ptr_3arg(
28233 "glSamplerParameteri",
28234 &self.glSamplerParameteri_p,
28235 sampler,
28236 pname,
28237 param,
28238 );
28239 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28240 {
28241 self.automatic_glGetError("glSamplerParameteri");
28242 }
28243 out
28244 }
28245 #[doc(hidden)]
28246 pub unsafe fn SamplerParameteri_load_with_dyn(
28247 &self,
28248 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28249 ) -> bool {
28250 load_dyn_name_atomic_ptr(
28251 get_proc_address,
28252 b"glSamplerParameteri\0",
28253 &self.glSamplerParameteri_p,
28254 )
28255 }
28256 #[inline]
28257 #[doc(hidden)]
28258 pub fn SamplerParameteri_is_loaded(&self) -> bool {
28259 !self.glSamplerParameteri_p.load(RELAX).is_null()
28260 }
28261 #[cfg_attr(feature = "inline", inline)]
28265 #[cfg_attr(feature = "inline_always", inline(always))]
28266 pub unsafe fn SamplerParameteriv(
28267 &self,
28268 sampler: GLuint,
28269 pname: GLenum,
28270 param: *const GLint,
28271 ) {
28272 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28273 {
28274 trace!(
28275 "calling gl.SamplerParameteriv({:?}, {:#X}, {:p});",
28276 sampler,
28277 pname,
28278 param
28279 );
28280 }
28281 let out = call_atomic_ptr_3arg(
28282 "glSamplerParameteriv",
28283 &self.glSamplerParameteriv_p,
28284 sampler,
28285 pname,
28286 param,
28287 );
28288 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28289 {
28290 self.automatic_glGetError("glSamplerParameteriv");
28291 }
28292 out
28293 }
28294 #[doc(hidden)]
28295 pub unsafe fn SamplerParameteriv_load_with_dyn(
28296 &self,
28297 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28298 ) -> bool {
28299 load_dyn_name_atomic_ptr(
28300 get_proc_address,
28301 b"glSamplerParameteriv\0",
28302 &self.glSamplerParameteriv_p,
28303 )
28304 }
28305 #[inline]
28306 #[doc(hidden)]
28307 pub fn SamplerParameteriv_is_loaded(&self) -> bool {
28308 !self.glSamplerParameteriv_p.load(RELAX).is_null()
28309 }
28310 #[cfg_attr(feature = "inline", inline)]
28314 #[cfg_attr(feature = "inline_always", inline(always))]
28315 pub unsafe fn Scissor(&self, x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
28316 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28317 {
28318 trace!(
28319 "calling gl.Scissor({:?}, {:?}, {:?}, {:?});",
28320 x,
28321 y,
28322 width,
28323 height
28324 );
28325 }
28326 let out = call_atomic_ptr_4arg("glScissor", &self.glScissor_p, x, y, width, height);
28327 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28328 {
28329 self.automatic_glGetError("glScissor");
28330 }
28331 out
28332 }
28333 #[doc(hidden)]
28334 pub unsafe fn Scissor_load_with_dyn(
28335 &self,
28336 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28337 ) -> bool {
28338 load_dyn_name_atomic_ptr(get_proc_address, b"glScissor\0", &self.glScissor_p)
28339 }
28340 #[inline]
28341 #[doc(hidden)]
28342 pub fn Scissor_is_loaded(&self) -> bool {
28343 !self.glScissor_p.load(RELAX).is_null()
28344 }
28345 #[cfg_attr(feature = "inline", inline)]
28348 #[cfg_attr(feature = "inline_always", inline(always))]
28349 pub unsafe fn ScissorArrayv(&self, first: GLuint, count: GLsizei, v: *const GLint) {
28350 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28351 {
28352 trace!(
28353 "calling gl.ScissorArrayv({:?}, {:?}, {:p});",
28354 first,
28355 count,
28356 v
28357 );
28358 }
28359 let out =
28360 call_atomic_ptr_3arg("glScissorArrayv", &self.glScissorArrayv_p, first, count, v);
28361 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28362 {
28363 self.automatic_glGetError("glScissorArrayv");
28364 }
28365 out
28366 }
28367 #[doc(hidden)]
28368 pub unsafe fn ScissorArrayv_load_with_dyn(
28369 &self,
28370 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28371 ) -> bool {
28372 load_dyn_name_atomic_ptr(
28373 get_proc_address,
28374 b"glScissorArrayv\0",
28375 &self.glScissorArrayv_p,
28376 )
28377 }
28378 #[inline]
28379 #[doc(hidden)]
28380 pub fn ScissorArrayv_is_loaded(&self) -> bool {
28381 !self.glScissorArrayv_p.load(RELAX).is_null()
28382 }
28383 #[cfg_attr(feature = "inline", inline)]
28385 #[cfg_attr(feature = "inline_always", inline(always))]
28386 pub unsafe fn ScissorIndexed(
28387 &self,
28388 index: GLuint,
28389 left: GLint,
28390 bottom: GLint,
28391 width: GLsizei,
28392 height: GLsizei,
28393 ) {
28394 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28395 {
28396 trace!(
28397 "calling gl.ScissorIndexed({:?}, {:?}, {:?}, {:?}, {:?});",
28398 index,
28399 left,
28400 bottom,
28401 width,
28402 height
28403 );
28404 }
28405 let out = call_atomic_ptr_5arg(
28406 "glScissorIndexed",
28407 &self.glScissorIndexed_p,
28408 index,
28409 left,
28410 bottom,
28411 width,
28412 height,
28413 );
28414 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28415 {
28416 self.automatic_glGetError("glScissorIndexed");
28417 }
28418 out
28419 }
28420 #[doc(hidden)]
28421 pub unsafe fn ScissorIndexed_load_with_dyn(
28422 &self,
28423 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28424 ) -> bool {
28425 load_dyn_name_atomic_ptr(
28426 get_proc_address,
28427 b"glScissorIndexed\0",
28428 &self.glScissorIndexed_p,
28429 )
28430 }
28431 #[inline]
28432 #[doc(hidden)]
28433 pub fn ScissorIndexed_is_loaded(&self) -> bool {
28434 !self.glScissorIndexed_p.load(RELAX).is_null()
28435 }
28436 #[cfg_attr(feature = "inline", inline)]
28439 #[cfg_attr(feature = "inline_always", inline(always))]
28440 pub unsafe fn ScissorIndexedv(&self, index: GLuint, v: *const GLint) {
28441 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28442 {
28443 trace!("calling gl.ScissorIndexedv({:?}, {:p});", index, v);
28444 }
28445 let out =
28446 call_atomic_ptr_2arg("glScissorIndexedv", &self.glScissorIndexedv_p, index, v);
28447 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28448 {
28449 self.automatic_glGetError("glScissorIndexedv");
28450 }
28451 out
28452 }
28453 #[doc(hidden)]
28454 pub unsafe fn ScissorIndexedv_load_with_dyn(
28455 &self,
28456 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28457 ) -> bool {
28458 load_dyn_name_atomic_ptr(
28459 get_proc_address,
28460 b"glScissorIndexedv\0",
28461 &self.glScissorIndexedv_p,
28462 )
28463 }
28464 #[inline]
28465 #[doc(hidden)]
28466 pub fn ScissorIndexedv_is_loaded(&self) -> bool {
28467 !self.glScissorIndexedv_p.load(RELAX).is_null()
28468 }
28469 #[cfg_attr(feature = "inline", inline)]
28474 #[cfg_attr(feature = "inline_always", inline(always))]
28475 pub unsafe fn ShaderBinary(
28476 &self,
28477 count: GLsizei,
28478 shaders: *const GLuint,
28479 binaryFormat: GLenum,
28480 binary: *const c_void,
28481 length: GLsizei,
28482 ) {
28483 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28484 {
28485 trace!(
28486 "calling gl.ShaderBinary({:?}, {:p}, {:#X}, {:p}, {:?});",
28487 count,
28488 shaders,
28489 binaryFormat,
28490 binary,
28491 length
28492 );
28493 }
28494 let out = call_atomic_ptr_5arg(
28495 "glShaderBinary",
28496 &self.glShaderBinary_p,
28497 count,
28498 shaders,
28499 binaryFormat,
28500 binary,
28501 length,
28502 );
28503 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28504 {
28505 self.automatic_glGetError("glShaderBinary");
28506 }
28507 out
28508 }
28509 #[doc(hidden)]
28510 pub unsafe fn ShaderBinary_load_with_dyn(
28511 &self,
28512 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28513 ) -> bool {
28514 load_dyn_name_atomic_ptr(
28515 get_proc_address,
28516 b"glShaderBinary\0",
28517 &self.glShaderBinary_p,
28518 )
28519 }
28520 #[inline]
28521 #[doc(hidden)]
28522 pub fn ShaderBinary_is_loaded(&self) -> bool {
28523 !self.glShaderBinary_p.load(RELAX).is_null()
28524 }
28525 #[cfg_attr(feature = "inline", inline)]
28529 #[cfg_attr(feature = "inline_always", inline(always))]
28530 pub unsafe fn ShaderSource(
28531 &self,
28532 shader: GLuint,
28533 count: GLsizei,
28534 string: *const *const GLchar,
28535 length: *const GLint,
28536 ) {
28537 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28538 {
28539 trace!(
28540 "calling gl.ShaderSource({:?}, {:?}, {:p}, {:p});",
28541 shader,
28542 count,
28543 string,
28544 length
28545 );
28546 }
28547 let out = call_atomic_ptr_4arg(
28548 "glShaderSource",
28549 &self.glShaderSource_p,
28550 shader,
28551 count,
28552 string,
28553 length,
28554 );
28555 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28556 {
28557 self.automatic_glGetError("glShaderSource");
28558 }
28559 out
28560 }
28561 #[doc(hidden)]
28562 pub unsafe fn ShaderSource_load_with_dyn(
28563 &self,
28564 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28565 ) -> bool {
28566 load_dyn_name_atomic_ptr(
28567 get_proc_address,
28568 b"glShaderSource\0",
28569 &self.glShaderSource_p,
28570 )
28571 }
28572 #[inline]
28573 #[doc(hidden)]
28574 pub fn ShaderSource_is_loaded(&self) -> bool {
28575 !self.glShaderSource_p.load(RELAX).is_null()
28576 }
28577 #[cfg_attr(feature = "inline", inline)]
28579 #[cfg_attr(feature = "inline_always", inline(always))]
28580 pub unsafe fn ShaderStorageBlockBinding(
28581 &self,
28582 program: GLuint,
28583 storageBlockIndex: GLuint,
28584 storageBlockBinding: GLuint,
28585 ) {
28586 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28587 {
28588 trace!(
28589 "calling gl.ShaderStorageBlockBinding({:?}, {:?}, {:?});",
28590 program,
28591 storageBlockIndex,
28592 storageBlockBinding
28593 );
28594 }
28595 let out = call_atomic_ptr_3arg(
28596 "glShaderStorageBlockBinding",
28597 &self.glShaderStorageBlockBinding_p,
28598 program,
28599 storageBlockIndex,
28600 storageBlockBinding,
28601 );
28602 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28603 {
28604 self.automatic_glGetError("glShaderStorageBlockBinding");
28605 }
28606 out
28607 }
28608 #[doc(hidden)]
28609 pub unsafe fn ShaderStorageBlockBinding_load_with_dyn(
28610 &self,
28611 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28612 ) -> bool {
28613 load_dyn_name_atomic_ptr(
28614 get_proc_address,
28615 b"glShaderStorageBlockBinding\0",
28616 &self.glShaderStorageBlockBinding_p,
28617 )
28618 }
28619 #[inline]
28620 #[doc(hidden)]
28621 pub fn ShaderStorageBlockBinding_is_loaded(&self) -> bool {
28622 !self.glShaderStorageBlockBinding_p.load(RELAX).is_null()
28623 }
28624 #[cfg_attr(feature = "inline", inline)]
28626 #[cfg_attr(feature = "inline_always", inline(always))]
28627 pub unsafe fn SpecializeShader(
28628 &self,
28629 shader: GLuint,
28630 pEntryPoint: *const GLchar,
28631 numSpecializationConstants: GLuint,
28632 pConstantIndex: *const GLuint,
28633 pConstantValue: *const GLuint,
28634 ) {
28635 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28636 {
28637 trace!(
28638 "calling gl.SpecializeShader({:?}, {:p}, {:?}, {:p}, {:p});",
28639 shader,
28640 pEntryPoint,
28641 numSpecializationConstants,
28642 pConstantIndex,
28643 pConstantValue
28644 );
28645 }
28646 let out = call_atomic_ptr_5arg(
28647 "glSpecializeShader",
28648 &self.glSpecializeShader_p,
28649 shader,
28650 pEntryPoint,
28651 numSpecializationConstants,
28652 pConstantIndex,
28653 pConstantValue,
28654 );
28655 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28656 {
28657 self.automatic_glGetError("glSpecializeShader");
28658 }
28659 out
28660 }
28661 #[doc(hidden)]
28662 pub unsafe fn SpecializeShader_load_with_dyn(
28663 &self,
28664 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28665 ) -> bool {
28666 load_dyn_name_atomic_ptr(
28667 get_proc_address,
28668 b"glSpecializeShader\0",
28669 &self.glSpecializeShader_p,
28670 )
28671 }
28672 #[inline]
28673 #[doc(hidden)]
28674 pub fn SpecializeShader_is_loaded(&self) -> bool {
28675 !self.glSpecializeShader_p.load(RELAX).is_null()
28676 }
28677 #[cfg_attr(feature = "inline", inline)]
28682 #[cfg_attr(feature = "inline_always", inline(always))]
28683 pub unsafe fn StencilFunc(&self, func: GLenum, ref_: GLint, mask: GLuint) {
28684 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28685 {
28686 trace!(
28687 "calling gl.StencilFunc({:#X}, {:?}, {:?});",
28688 func,
28689 ref_,
28690 mask
28691 );
28692 }
28693 let out =
28694 call_atomic_ptr_3arg("glStencilFunc", &self.glStencilFunc_p, func, ref_, mask);
28695 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28696 {
28697 self.automatic_glGetError("glStencilFunc");
28698 }
28699 out
28700 }
28701 #[doc(hidden)]
28702 pub unsafe fn StencilFunc_load_with_dyn(
28703 &self,
28704 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28705 ) -> bool {
28706 load_dyn_name_atomic_ptr(get_proc_address, b"glStencilFunc\0", &self.glStencilFunc_p)
28707 }
28708 #[inline]
28709 #[doc(hidden)]
28710 pub fn StencilFunc_is_loaded(&self) -> bool {
28711 !self.glStencilFunc_p.load(RELAX).is_null()
28712 }
28713 #[cfg_attr(feature = "inline", inline)]
28719 #[cfg_attr(feature = "inline_always", inline(always))]
28720 pub unsafe fn StencilFuncSeparate(
28721 &self,
28722 face: GLenum,
28723 func: GLenum,
28724 ref_: GLint,
28725 mask: GLuint,
28726 ) {
28727 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28728 {
28729 trace!(
28730 "calling gl.StencilFuncSeparate({:#X}, {:#X}, {:?}, {:?});",
28731 face,
28732 func,
28733 ref_,
28734 mask
28735 );
28736 }
28737 let out = call_atomic_ptr_4arg(
28738 "glStencilFuncSeparate",
28739 &self.glStencilFuncSeparate_p,
28740 face,
28741 func,
28742 ref_,
28743 mask,
28744 );
28745 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28746 {
28747 self.automatic_glGetError("glStencilFuncSeparate");
28748 }
28749 out
28750 }
28751 #[doc(hidden)]
28752 pub unsafe fn StencilFuncSeparate_load_with_dyn(
28753 &self,
28754 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28755 ) -> bool {
28756 load_dyn_name_atomic_ptr(
28757 get_proc_address,
28758 b"glStencilFuncSeparate\0",
28759 &self.glStencilFuncSeparate_p,
28760 )
28761 }
28762 #[inline]
28763 #[doc(hidden)]
28764 pub fn StencilFuncSeparate_is_loaded(&self) -> bool {
28765 !self.glStencilFuncSeparate_p.load(RELAX).is_null()
28766 }
28767 #[cfg_attr(feature = "inline", inline)]
28770 #[cfg_attr(feature = "inline_always", inline(always))]
28771 pub unsafe fn StencilMask(&self, mask: GLuint) {
28772 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28773 {
28774 trace!("calling gl.StencilMask({:?});", mask);
28775 }
28776 let out = call_atomic_ptr_1arg("glStencilMask", &self.glStencilMask_p, mask);
28777 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28778 {
28779 self.automatic_glGetError("glStencilMask");
28780 }
28781 out
28782 }
28783 #[doc(hidden)]
28784 pub unsafe fn StencilMask_load_with_dyn(
28785 &self,
28786 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28787 ) -> bool {
28788 load_dyn_name_atomic_ptr(get_proc_address, b"glStencilMask\0", &self.glStencilMask_p)
28789 }
28790 #[inline]
28791 #[doc(hidden)]
28792 pub fn StencilMask_is_loaded(&self) -> bool {
28793 !self.glStencilMask_p.load(RELAX).is_null()
28794 }
28795 #[cfg_attr(feature = "inline", inline)]
28799 #[cfg_attr(feature = "inline_always", inline(always))]
28800 pub unsafe fn StencilMaskSeparate(&self, face: GLenum, mask: GLuint) {
28801 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28802 {
28803 trace!("calling gl.StencilMaskSeparate({:#X}, {:?});", face, mask);
28804 }
28805 let out = call_atomic_ptr_2arg(
28806 "glStencilMaskSeparate",
28807 &self.glStencilMaskSeparate_p,
28808 face,
28809 mask,
28810 );
28811 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28812 {
28813 self.automatic_glGetError("glStencilMaskSeparate");
28814 }
28815 out
28816 }
28817 #[doc(hidden)]
28818 pub unsafe fn StencilMaskSeparate_load_with_dyn(
28819 &self,
28820 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28821 ) -> bool {
28822 load_dyn_name_atomic_ptr(
28823 get_proc_address,
28824 b"glStencilMaskSeparate\0",
28825 &self.glStencilMaskSeparate_p,
28826 )
28827 }
28828 #[inline]
28829 #[doc(hidden)]
28830 pub fn StencilMaskSeparate_is_loaded(&self) -> bool {
28831 !self.glStencilMaskSeparate_p.load(RELAX).is_null()
28832 }
28833 #[cfg_attr(feature = "inline", inline)]
28838 #[cfg_attr(feature = "inline_always", inline(always))]
28839 pub unsafe fn StencilOp(&self, fail: GLenum, zfail: GLenum, zpass: GLenum) {
28840 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28841 {
28842 trace!(
28843 "calling gl.StencilOp({:#X}, {:#X}, {:#X});",
28844 fail,
28845 zfail,
28846 zpass
28847 );
28848 }
28849 let out = call_atomic_ptr_3arg("glStencilOp", &self.glStencilOp_p, fail, zfail, zpass);
28850 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28851 {
28852 self.automatic_glGetError("glStencilOp");
28853 }
28854 out
28855 }
28856 #[doc(hidden)]
28857 pub unsafe fn StencilOp_load_with_dyn(
28858 &self,
28859 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28860 ) -> bool {
28861 load_dyn_name_atomic_ptr(get_proc_address, b"glStencilOp\0", &self.glStencilOp_p)
28862 }
28863 #[inline]
28864 #[doc(hidden)]
28865 pub fn StencilOp_is_loaded(&self) -> bool {
28866 !self.glStencilOp_p.load(RELAX).is_null()
28867 }
28868 #[cfg_attr(feature = "inline", inline)]
28874 #[cfg_attr(feature = "inline_always", inline(always))]
28875 pub unsafe fn StencilOpSeparate(
28876 &self,
28877 face: GLenum,
28878 sfail: GLenum,
28879 dpfail: GLenum,
28880 dppass: GLenum,
28881 ) {
28882 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28883 {
28884 trace!(
28885 "calling gl.StencilOpSeparate({:#X}, {:#X}, {:#X}, {:#X});",
28886 face,
28887 sfail,
28888 dpfail,
28889 dppass
28890 );
28891 }
28892 let out = call_atomic_ptr_4arg(
28893 "glStencilOpSeparate",
28894 &self.glStencilOpSeparate_p,
28895 face,
28896 sfail,
28897 dpfail,
28898 dppass,
28899 );
28900 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28901 {
28902 self.automatic_glGetError("glStencilOpSeparate");
28903 }
28904 out
28905 }
28906 #[doc(hidden)]
28907 pub unsafe fn StencilOpSeparate_load_with_dyn(
28908 &self,
28909 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28910 ) -> bool {
28911 load_dyn_name_atomic_ptr(
28912 get_proc_address,
28913 b"glStencilOpSeparate\0",
28914 &self.glStencilOpSeparate_p,
28915 )
28916 }
28917 #[inline]
28918 #[doc(hidden)]
28919 pub fn StencilOpSeparate_is_loaded(&self) -> bool {
28920 !self.glStencilOpSeparate_p.load(RELAX).is_null()
28921 }
28922 #[cfg_attr(feature = "inline", inline)]
28926 #[cfg_attr(feature = "inline_always", inline(always))]
28927 pub unsafe fn TexBuffer(&self, target: GLenum, internalformat: GLenum, buffer: GLuint) {
28928 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28929 {
28930 trace!(
28931 "calling gl.TexBuffer({:#X}, {:#X}, {:?});",
28932 target,
28933 internalformat,
28934 buffer
28935 );
28936 }
28937 let out = call_atomic_ptr_3arg(
28938 "glTexBuffer",
28939 &self.glTexBuffer_p,
28940 target,
28941 internalformat,
28942 buffer,
28943 );
28944 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28945 {
28946 self.automatic_glGetError("glTexBuffer");
28947 }
28948 out
28949 }
28950 #[doc(hidden)]
28951 pub unsafe fn TexBuffer_load_with_dyn(
28952 &self,
28953 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
28954 ) -> bool {
28955 load_dyn_name_atomic_ptr(get_proc_address, b"glTexBuffer\0", &self.glTexBuffer_p)
28956 }
28957 #[inline]
28958 #[doc(hidden)]
28959 pub fn TexBuffer_is_loaded(&self) -> bool {
28960 !self.glTexBuffer_p.load(RELAX).is_null()
28961 }
28962 #[cfg_attr(feature = "inline", inline)]
28968 #[cfg_attr(feature = "inline_always", inline(always))]
28969 pub unsafe fn TexBufferRange(
28970 &self,
28971 target: GLenum,
28972 internalformat: GLenum,
28973 buffer: GLuint,
28974 offset: GLintptr,
28975 size: GLsizeiptr,
28976 ) {
28977 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
28978 {
28979 trace!(
28980 "calling gl.TexBufferRange({:#X}, {:#X}, {:?}, {:?}, {:?});",
28981 target,
28982 internalformat,
28983 buffer,
28984 offset,
28985 size
28986 );
28987 }
28988 let out = call_atomic_ptr_5arg(
28989 "glTexBufferRange",
28990 &self.glTexBufferRange_p,
28991 target,
28992 internalformat,
28993 buffer,
28994 offset,
28995 size,
28996 );
28997 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
28998 {
28999 self.automatic_glGetError("glTexBufferRange");
29000 }
29001 out
29002 }
29003 #[doc(hidden)]
29004 pub unsafe fn TexBufferRange_load_with_dyn(
29005 &self,
29006 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29007 ) -> bool {
29008 load_dyn_name_atomic_ptr(
29009 get_proc_address,
29010 b"glTexBufferRange\0",
29011 &self.glTexBufferRange_p,
29012 )
29013 }
29014 #[inline]
29015 #[doc(hidden)]
29016 pub fn TexBufferRange_is_loaded(&self) -> bool {
29017 !self.glTexBufferRange_p.load(RELAX).is_null()
29018 }
29019 #[cfg_attr(feature = "inline", inline)]
29028 #[cfg_attr(feature = "inline_always", inline(always))]
29029 pub unsafe fn TexImage1D(
29030 &self,
29031 target: GLenum,
29032 level: GLint,
29033 internalformat: GLint,
29034 width: GLsizei,
29035 border: GLint,
29036 format: GLenum,
29037 type_: GLenum,
29038 pixels: *const c_void,
29039 ) {
29040 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29041 {
29042 trace!(
29043 "calling gl.TexImage1D({:#X}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});",
29044 target,
29045 level,
29046 internalformat,
29047 width,
29048 border,
29049 format,
29050 type_,
29051 pixels
29052 );
29053 }
29054 let out = call_atomic_ptr_8arg(
29055 "glTexImage1D",
29056 &self.glTexImage1D_p,
29057 target,
29058 level,
29059 internalformat,
29060 width,
29061 border,
29062 format,
29063 type_,
29064 pixels,
29065 );
29066 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29067 {
29068 self.automatic_glGetError("glTexImage1D");
29069 }
29070 out
29071 }
29072 #[doc(hidden)]
29073 pub unsafe fn TexImage1D_load_with_dyn(
29074 &self,
29075 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29076 ) -> bool {
29077 load_dyn_name_atomic_ptr(get_proc_address, b"glTexImage1D\0", &self.glTexImage1D_p)
29078 }
29079 #[inline]
29080 #[doc(hidden)]
29081 pub fn TexImage1D_is_loaded(&self) -> bool {
29082 !self.glTexImage1D_p.load(RELAX).is_null()
29083 }
29084 #[cfg_attr(feature = "inline", inline)]
29093 #[cfg_attr(feature = "inline_always", inline(always))]
29094 pub unsafe fn TexImage2D(
29095 &self,
29096 target: GLenum,
29097 level: GLint,
29098 internalformat: GLint,
29099 width: GLsizei,
29100 height: GLsizei,
29101 border: GLint,
29102 format: GLenum,
29103 type_: GLenum,
29104 pixels: *const c_void,
29105 ) {
29106 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29107 {
29108 trace!("calling gl.TexImage2D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", target, level, internalformat, width, height, border, format, type_, pixels);
29109 }
29110 let out = call_atomic_ptr_9arg(
29111 "glTexImage2D",
29112 &self.glTexImage2D_p,
29113 target,
29114 level,
29115 internalformat,
29116 width,
29117 height,
29118 border,
29119 format,
29120 type_,
29121 pixels,
29122 );
29123 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29124 {
29125 self.automatic_glGetError("glTexImage2D");
29126 }
29127 out
29128 }
29129 #[doc(hidden)]
29130 pub unsafe fn TexImage2D_load_with_dyn(
29131 &self,
29132 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29133 ) -> bool {
29134 load_dyn_name_atomic_ptr(get_proc_address, b"glTexImage2D\0", &self.glTexImage2D_p)
29135 }
29136 #[inline]
29137 #[doc(hidden)]
29138 pub fn TexImage2D_is_loaded(&self) -> bool {
29139 !self.glTexImage2D_p.load(RELAX).is_null()
29140 }
29141 #[cfg_attr(feature = "inline", inline)]
29145 #[cfg_attr(feature = "inline_always", inline(always))]
29146 pub unsafe fn TexImage2DMultisample(
29147 &self,
29148 target: GLenum,
29149 samples: GLsizei,
29150 internalformat: GLenum,
29151 width: GLsizei,
29152 height: GLsizei,
29153 fixedsamplelocations: GLboolean,
29154 ) {
29155 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29156 {
29157 trace!(
29158 "calling gl.TexImage2DMultisample({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?});",
29159 target,
29160 samples,
29161 internalformat,
29162 width,
29163 height,
29164 fixedsamplelocations
29165 );
29166 }
29167 let out = call_atomic_ptr_6arg(
29168 "glTexImage2DMultisample",
29169 &self.glTexImage2DMultisample_p,
29170 target,
29171 samples,
29172 internalformat,
29173 width,
29174 height,
29175 fixedsamplelocations,
29176 );
29177 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29178 {
29179 self.automatic_glGetError("glTexImage2DMultisample");
29180 }
29181 out
29182 }
29183 #[doc(hidden)]
29184 pub unsafe fn TexImage2DMultisample_load_with_dyn(
29185 &self,
29186 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29187 ) -> bool {
29188 load_dyn_name_atomic_ptr(
29189 get_proc_address,
29190 b"glTexImage2DMultisample\0",
29191 &self.glTexImage2DMultisample_p,
29192 )
29193 }
29194 #[inline]
29195 #[doc(hidden)]
29196 pub fn TexImage2DMultisample_is_loaded(&self) -> bool {
29197 !self.glTexImage2DMultisample_p.load(RELAX).is_null()
29198 }
29199 #[cfg_attr(feature = "inline", inline)]
29208 #[cfg_attr(feature = "inline_always", inline(always))]
29209 pub unsafe fn TexImage3D(
29210 &self,
29211 target: GLenum,
29212 level: GLint,
29213 internalformat: GLint,
29214 width: GLsizei,
29215 height: GLsizei,
29216 depth: GLsizei,
29217 border: GLint,
29218 format: GLenum,
29219 type_: GLenum,
29220 pixels: *const c_void,
29221 ) {
29222 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29223 {
29224 trace!("calling gl.TexImage3D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", target, level, internalformat, width, height, depth, border, format, type_, pixels);
29225 }
29226 let out = call_atomic_ptr_10arg(
29227 "glTexImage3D",
29228 &self.glTexImage3D_p,
29229 target,
29230 level,
29231 internalformat,
29232 width,
29233 height,
29234 depth,
29235 border,
29236 format,
29237 type_,
29238 pixels,
29239 );
29240 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29241 {
29242 self.automatic_glGetError("glTexImage3D");
29243 }
29244 out
29245 }
29246 #[doc(hidden)]
29247 pub unsafe fn TexImage3D_load_with_dyn(
29248 &self,
29249 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29250 ) -> bool {
29251 load_dyn_name_atomic_ptr(get_proc_address, b"glTexImage3D\0", &self.glTexImage3D_p)
29252 }
29253 #[inline]
29254 #[doc(hidden)]
29255 pub fn TexImage3D_is_loaded(&self) -> bool {
29256 !self.glTexImage3D_p.load(RELAX).is_null()
29257 }
29258 #[cfg_attr(feature = "inline", inline)]
29262 #[cfg_attr(feature = "inline_always", inline(always))]
29263 pub unsafe fn TexImage3DMultisample(
29264 &self,
29265 target: GLenum,
29266 samples: GLsizei,
29267 internalformat: GLenum,
29268 width: GLsizei,
29269 height: GLsizei,
29270 depth: GLsizei,
29271 fixedsamplelocations: GLboolean,
29272 ) {
29273 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29274 {
29275 trace!(
29276 "calling gl.TexImage3DMultisample({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?});",
29277 target,
29278 samples,
29279 internalformat,
29280 width,
29281 height,
29282 depth,
29283 fixedsamplelocations
29284 );
29285 }
29286 let out = call_atomic_ptr_7arg(
29287 "glTexImage3DMultisample",
29288 &self.glTexImage3DMultisample_p,
29289 target,
29290 samples,
29291 internalformat,
29292 width,
29293 height,
29294 depth,
29295 fixedsamplelocations,
29296 );
29297 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29298 {
29299 self.automatic_glGetError("glTexImage3DMultisample");
29300 }
29301 out
29302 }
29303 #[doc(hidden)]
29304 pub unsafe fn TexImage3DMultisample_load_with_dyn(
29305 &self,
29306 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29307 ) -> bool {
29308 load_dyn_name_atomic_ptr(
29309 get_proc_address,
29310 b"glTexImage3DMultisample\0",
29311 &self.glTexImage3DMultisample_p,
29312 )
29313 }
29314 #[inline]
29315 #[doc(hidden)]
29316 pub fn TexImage3DMultisample_is_loaded(&self) -> bool {
29317 !self.glTexImage3DMultisample_p.load(RELAX).is_null()
29318 }
29319 #[cfg_attr(feature = "inline", inline)]
29324 #[cfg_attr(feature = "inline_always", inline(always))]
29325 pub unsafe fn TexParameterIiv(&self, target: GLenum, pname: GLenum, params: *const GLint) {
29326 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29327 {
29328 trace!(
29329 "calling gl.TexParameterIiv({:#X}, {:#X}, {:p});",
29330 target,
29331 pname,
29332 params
29333 );
29334 }
29335 let out = call_atomic_ptr_3arg(
29336 "glTexParameterIiv",
29337 &self.glTexParameterIiv_p,
29338 target,
29339 pname,
29340 params,
29341 );
29342 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29343 {
29344 self.automatic_glGetError("glTexParameterIiv");
29345 }
29346 out
29347 }
29348 #[doc(hidden)]
29349 pub unsafe fn TexParameterIiv_load_with_dyn(
29350 &self,
29351 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29352 ) -> bool {
29353 load_dyn_name_atomic_ptr(
29354 get_proc_address,
29355 b"glTexParameterIiv\0",
29356 &self.glTexParameterIiv_p,
29357 )
29358 }
29359 #[inline]
29360 #[doc(hidden)]
29361 pub fn TexParameterIiv_is_loaded(&self) -> bool {
29362 !self.glTexParameterIiv_p.load(RELAX).is_null()
29363 }
29364 #[cfg_attr(feature = "inline", inline)]
29369 #[cfg_attr(feature = "inline_always", inline(always))]
29370 pub unsafe fn TexParameterIuiv(
29371 &self,
29372 target: GLenum,
29373 pname: GLenum,
29374 params: *const GLuint,
29375 ) {
29376 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29377 {
29378 trace!(
29379 "calling gl.TexParameterIuiv({:#X}, {:#X}, {:p});",
29380 target,
29381 pname,
29382 params
29383 );
29384 }
29385 let out = call_atomic_ptr_3arg(
29386 "glTexParameterIuiv",
29387 &self.glTexParameterIuiv_p,
29388 target,
29389 pname,
29390 params,
29391 );
29392 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29393 {
29394 self.automatic_glGetError("glTexParameterIuiv");
29395 }
29396 out
29397 }
29398 #[doc(hidden)]
29399 pub unsafe fn TexParameterIuiv_load_with_dyn(
29400 &self,
29401 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29402 ) -> bool {
29403 load_dyn_name_atomic_ptr(
29404 get_proc_address,
29405 b"glTexParameterIuiv\0",
29406 &self.glTexParameterIuiv_p,
29407 )
29408 }
29409 #[inline]
29410 #[doc(hidden)]
29411 pub fn TexParameterIuiv_is_loaded(&self) -> bool {
29412 !self.glTexParameterIuiv_p.load(RELAX).is_null()
29413 }
29414 #[cfg_attr(feature = "inline", inline)]
29419 #[cfg_attr(feature = "inline_always", inline(always))]
29420 pub unsafe fn TexParameterf(&self, target: GLenum, pname: GLenum, param: GLfloat) {
29421 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29422 {
29423 trace!(
29424 "calling gl.TexParameterf({:#X}, {:#X}, {:?});",
29425 target,
29426 pname,
29427 param
29428 );
29429 }
29430 let out = call_atomic_ptr_3arg(
29431 "glTexParameterf",
29432 &self.glTexParameterf_p,
29433 target,
29434 pname,
29435 param,
29436 );
29437 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29438 {
29439 self.automatic_glGetError("glTexParameterf");
29440 }
29441 out
29442 }
29443 #[doc(hidden)]
29444 pub unsafe fn TexParameterf_load_with_dyn(
29445 &self,
29446 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29447 ) -> bool {
29448 load_dyn_name_atomic_ptr(
29449 get_proc_address,
29450 b"glTexParameterf\0",
29451 &self.glTexParameterf_p,
29452 )
29453 }
29454 #[inline]
29455 #[doc(hidden)]
29456 pub fn TexParameterf_is_loaded(&self) -> bool {
29457 !self.glTexParameterf_p.load(RELAX).is_null()
29458 }
29459 #[cfg_attr(feature = "inline", inline)]
29465 #[cfg_attr(feature = "inline_always", inline(always))]
29466 pub unsafe fn TexParameterfv(&self, target: GLenum, pname: GLenum, params: *const GLfloat) {
29467 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29468 {
29469 trace!(
29470 "calling gl.TexParameterfv({:#X}, {:#X}, {:p});",
29471 target,
29472 pname,
29473 params
29474 );
29475 }
29476 let out = call_atomic_ptr_3arg(
29477 "glTexParameterfv",
29478 &self.glTexParameterfv_p,
29479 target,
29480 pname,
29481 params,
29482 );
29483 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29484 {
29485 self.automatic_glGetError("glTexParameterfv");
29486 }
29487 out
29488 }
29489 #[doc(hidden)]
29490 pub unsafe fn TexParameterfv_load_with_dyn(
29491 &self,
29492 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29493 ) -> bool {
29494 load_dyn_name_atomic_ptr(
29495 get_proc_address,
29496 b"glTexParameterfv\0",
29497 &self.glTexParameterfv_p,
29498 )
29499 }
29500 #[inline]
29501 #[doc(hidden)]
29502 pub fn TexParameterfv_is_loaded(&self) -> bool {
29503 !self.glTexParameterfv_p.load(RELAX).is_null()
29504 }
29505 #[cfg_attr(feature = "inline", inline)]
29510 #[cfg_attr(feature = "inline_always", inline(always))]
29511 pub unsafe fn TexParameteri(&self, target: GLenum, pname: GLenum, param: GLint) {
29512 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29513 {
29514 trace!(
29515 "calling gl.TexParameteri({:#X}, {:#X}, {:?});",
29516 target,
29517 pname,
29518 param
29519 );
29520 }
29521 let out = call_atomic_ptr_3arg(
29522 "glTexParameteri",
29523 &self.glTexParameteri_p,
29524 target,
29525 pname,
29526 param,
29527 );
29528 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29529 {
29530 self.automatic_glGetError("glTexParameteri");
29531 }
29532 out
29533 }
29534 #[doc(hidden)]
29535 pub unsafe fn TexParameteri_load_with_dyn(
29536 &self,
29537 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29538 ) -> bool {
29539 load_dyn_name_atomic_ptr(
29540 get_proc_address,
29541 b"glTexParameteri\0",
29542 &self.glTexParameteri_p,
29543 )
29544 }
29545 #[inline]
29546 #[doc(hidden)]
29547 pub fn TexParameteri_is_loaded(&self) -> bool {
29548 !self.glTexParameteri_p.load(RELAX).is_null()
29549 }
29550 #[cfg_attr(feature = "inline", inline)]
29556 #[cfg_attr(feature = "inline_always", inline(always))]
29557 pub unsafe fn TexParameteriv(&self, target: GLenum, pname: GLenum, params: *const GLint) {
29558 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29559 {
29560 trace!(
29561 "calling gl.TexParameteriv({:#X}, {:#X}, {:p});",
29562 target,
29563 pname,
29564 params
29565 );
29566 }
29567 let out = call_atomic_ptr_3arg(
29568 "glTexParameteriv",
29569 &self.glTexParameteriv_p,
29570 target,
29571 pname,
29572 params,
29573 );
29574 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29575 {
29576 self.automatic_glGetError("glTexParameteriv");
29577 }
29578 out
29579 }
29580 #[doc(hidden)]
29581 pub unsafe fn TexParameteriv_load_with_dyn(
29582 &self,
29583 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29584 ) -> bool {
29585 load_dyn_name_atomic_ptr(
29586 get_proc_address,
29587 b"glTexParameteriv\0",
29588 &self.glTexParameteriv_p,
29589 )
29590 }
29591 #[inline]
29592 #[doc(hidden)]
29593 pub fn TexParameteriv_is_loaded(&self) -> bool {
29594 !self.glTexParameteriv_p.load(RELAX).is_null()
29595 }
29596 #[cfg_attr(feature = "inline", inline)]
29600 #[cfg_attr(feature = "inline_always", inline(always))]
29601 pub unsafe fn TexStorage1D(
29602 &self,
29603 target: GLenum,
29604 levels: GLsizei,
29605 internalformat: GLenum,
29606 width: GLsizei,
29607 ) {
29608 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29609 {
29610 trace!(
29611 "calling gl.TexStorage1D({:#X}, {:?}, {:#X}, {:?});",
29612 target,
29613 levels,
29614 internalformat,
29615 width
29616 );
29617 }
29618 let out = call_atomic_ptr_4arg(
29619 "glTexStorage1D",
29620 &self.glTexStorage1D_p,
29621 target,
29622 levels,
29623 internalformat,
29624 width,
29625 );
29626 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29627 {
29628 self.automatic_glGetError("glTexStorage1D");
29629 }
29630 out
29631 }
29632 #[doc(hidden)]
29633 pub unsafe fn TexStorage1D_load_with_dyn(
29634 &self,
29635 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29636 ) -> bool {
29637 load_dyn_name_atomic_ptr(
29638 get_proc_address,
29639 b"glTexStorage1D\0",
29640 &self.glTexStorage1D_p,
29641 )
29642 }
29643 #[inline]
29644 #[doc(hidden)]
29645 pub fn TexStorage1D_is_loaded(&self) -> bool {
29646 !self.glTexStorage1D_p.load(RELAX).is_null()
29647 }
29648 #[cfg_attr(feature = "inline", inline)]
29652 #[cfg_attr(feature = "inline_always", inline(always))]
29653 pub unsafe fn TexStorage2D(
29654 &self,
29655 target: GLenum,
29656 levels: GLsizei,
29657 internalformat: GLenum,
29658 width: GLsizei,
29659 height: GLsizei,
29660 ) {
29661 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29662 {
29663 trace!(
29664 "calling gl.TexStorage2D({:#X}, {:?}, {:#X}, {:?}, {:?});",
29665 target,
29666 levels,
29667 internalformat,
29668 width,
29669 height
29670 );
29671 }
29672 let out = call_atomic_ptr_5arg(
29673 "glTexStorage2D",
29674 &self.glTexStorage2D_p,
29675 target,
29676 levels,
29677 internalformat,
29678 width,
29679 height,
29680 );
29681 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29682 {
29683 self.automatic_glGetError("glTexStorage2D");
29684 }
29685 out
29686 }
29687 #[doc(hidden)]
29688 pub unsafe fn TexStorage2D_load_with_dyn(
29689 &self,
29690 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29691 ) -> bool {
29692 load_dyn_name_atomic_ptr(
29693 get_proc_address,
29694 b"glTexStorage2D\0",
29695 &self.glTexStorage2D_p,
29696 )
29697 }
29698 #[inline]
29699 #[doc(hidden)]
29700 pub fn TexStorage2D_is_loaded(&self) -> bool {
29701 !self.glTexStorage2D_p.load(RELAX).is_null()
29702 }
29703 #[cfg_attr(feature = "inline", inline)]
29707 #[cfg_attr(feature = "inline_always", inline(always))]
29708 pub unsafe fn TexStorage2DMultisample(
29709 &self,
29710 target: GLenum,
29711 samples: GLsizei,
29712 internalformat: GLenum,
29713 width: GLsizei,
29714 height: GLsizei,
29715 fixedsamplelocations: GLboolean,
29716 ) {
29717 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29718 {
29719 trace!(
29720 "calling gl.TexStorage2DMultisample({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?});",
29721 target,
29722 samples,
29723 internalformat,
29724 width,
29725 height,
29726 fixedsamplelocations
29727 );
29728 }
29729 let out = call_atomic_ptr_6arg(
29730 "glTexStorage2DMultisample",
29731 &self.glTexStorage2DMultisample_p,
29732 target,
29733 samples,
29734 internalformat,
29735 width,
29736 height,
29737 fixedsamplelocations,
29738 );
29739 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29740 {
29741 self.automatic_glGetError("glTexStorage2DMultisample");
29742 }
29743 out
29744 }
29745 #[doc(hidden)]
29746 pub unsafe fn TexStorage2DMultisample_load_with_dyn(
29747 &self,
29748 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29749 ) -> bool {
29750 load_dyn_name_atomic_ptr(
29751 get_proc_address,
29752 b"glTexStorage2DMultisample\0",
29753 &self.glTexStorage2DMultisample_p,
29754 )
29755 }
29756 #[inline]
29757 #[doc(hidden)]
29758 pub fn TexStorage2DMultisample_is_loaded(&self) -> bool {
29759 !self.glTexStorage2DMultisample_p.load(RELAX).is_null()
29760 }
29761 #[cfg_attr(feature = "inline", inline)]
29765 #[cfg_attr(feature = "inline_always", inline(always))]
29766 pub unsafe fn TexStorage3D(
29767 &self,
29768 target: GLenum,
29769 levels: GLsizei,
29770 internalformat: GLenum,
29771 width: GLsizei,
29772 height: GLsizei,
29773 depth: GLsizei,
29774 ) {
29775 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29776 {
29777 trace!(
29778 "calling gl.TexStorage3D({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?});",
29779 target,
29780 levels,
29781 internalformat,
29782 width,
29783 height,
29784 depth
29785 );
29786 }
29787 let out = call_atomic_ptr_6arg(
29788 "glTexStorage3D",
29789 &self.glTexStorage3D_p,
29790 target,
29791 levels,
29792 internalformat,
29793 width,
29794 height,
29795 depth,
29796 );
29797 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29798 {
29799 self.automatic_glGetError("glTexStorage3D");
29800 }
29801 out
29802 }
29803 #[doc(hidden)]
29804 pub unsafe fn TexStorage3D_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"glTexStorage3D\0",
29811 &self.glTexStorage3D_p,
29812 )
29813 }
29814 #[inline]
29815 #[doc(hidden)]
29816 pub fn TexStorage3D_is_loaded(&self) -> bool {
29817 !self.glTexStorage3D_p.load(RELAX).is_null()
29818 }
29819 #[cfg_attr(feature = "inline", inline)]
29823 #[cfg_attr(feature = "inline_always", inline(always))]
29824 pub unsafe fn TexStorage3DMultisample(
29825 &self,
29826 target: GLenum,
29827 samples: GLsizei,
29828 internalformat: GLenum,
29829 width: GLsizei,
29830 height: GLsizei,
29831 depth: GLsizei,
29832 fixedsamplelocations: GLboolean,
29833 ) {
29834 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29835 {
29836 trace!("calling gl.TexStorage3DMultisample({:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?});", target, samples, internalformat, width, height, depth, fixedsamplelocations);
29837 }
29838 let out = call_atomic_ptr_7arg(
29839 "glTexStorage3DMultisample",
29840 &self.glTexStorage3DMultisample_p,
29841 target,
29842 samples,
29843 internalformat,
29844 width,
29845 height,
29846 depth,
29847 fixedsamplelocations,
29848 );
29849 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29850 {
29851 self.automatic_glGetError("glTexStorage3DMultisample");
29852 }
29853 out
29854 }
29855 #[doc(hidden)]
29856 pub unsafe fn TexStorage3DMultisample_load_with_dyn(
29857 &self,
29858 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29859 ) -> bool {
29860 load_dyn_name_atomic_ptr(
29861 get_proc_address,
29862 b"glTexStorage3DMultisample\0",
29863 &self.glTexStorage3DMultisample_p,
29864 )
29865 }
29866 #[inline]
29867 #[doc(hidden)]
29868 pub fn TexStorage3DMultisample_is_loaded(&self) -> bool {
29869 !self.glTexStorage3DMultisample_p.load(RELAX).is_null()
29870 }
29871 #[cfg_attr(feature = "inline", inline)]
29879 #[cfg_attr(feature = "inline_always", inline(always))]
29880 pub unsafe fn TexSubImage1D(
29881 &self,
29882 target: GLenum,
29883 level: GLint,
29884 xoffset: GLint,
29885 width: GLsizei,
29886 format: GLenum,
29887 type_: GLenum,
29888 pixels: *const c_void,
29889 ) {
29890 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29891 {
29892 trace!(
29893 "calling gl.TexSubImage1D({:#X}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});",
29894 target,
29895 level,
29896 xoffset,
29897 width,
29898 format,
29899 type_,
29900 pixels
29901 );
29902 }
29903 let out = call_atomic_ptr_7arg(
29904 "glTexSubImage1D",
29905 &self.glTexSubImage1D_p,
29906 target,
29907 level,
29908 xoffset,
29909 width,
29910 format,
29911 type_,
29912 pixels,
29913 );
29914 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29915 {
29916 self.automatic_glGetError("glTexSubImage1D");
29917 }
29918 out
29919 }
29920 #[doc(hidden)]
29921 pub unsafe fn TexSubImage1D_load_with_dyn(
29922 &self,
29923 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29924 ) -> bool {
29925 load_dyn_name_atomic_ptr(
29926 get_proc_address,
29927 b"glTexSubImage1D\0",
29928 &self.glTexSubImage1D_p,
29929 )
29930 }
29931 #[inline]
29932 #[doc(hidden)]
29933 pub fn TexSubImage1D_is_loaded(&self) -> bool {
29934 !self.glTexSubImage1D_p.load(RELAX).is_null()
29935 }
29936 #[cfg_attr(feature = "inline", inline)]
29945 #[cfg_attr(feature = "inline_always", inline(always))]
29946 pub unsafe fn TexSubImage2D(
29947 &self,
29948 target: GLenum,
29949 level: GLint,
29950 xoffset: GLint,
29951 yoffset: GLint,
29952 width: GLsizei,
29953 height: GLsizei,
29954 format: GLenum,
29955 type_: GLenum,
29956 pixels: *const c_void,
29957 ) {
29958 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
29959 {
29960 trace!("calling gl.TexSubImage2D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", target, level, xoffset, yoffset, width, height, format, type_, pixels);
29961 }
29962 let out = call_atomic_ptr_9arg(
29963 "glTexSubImage2D",
29964 &self.glTexSubImage2D_p,
29965 target,
29966 level,
29967 xoffset,
29968 yoffset,
29969 width,
29970 height,
29971 format,
29972 type_,
29973 pixels,
29974 );
29975 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
29976 {
29977 self.automatic_glGetError("glTexSubImage2D");
29978 }
29979 out
29980 }
29981 #[doc(hidden)]
29982 pub unsafe fn TexSubImage2D_load_with_dyn(
29983 &self,
29984 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
29985 ) -> bool {
29986 load_dyn_name_atomic_ptr(
29987 get_proc_address,
29988 b"glTexSubImage2D\0",
29989 &self.glTexSubImage2D_p,
29990 )
29991 }
29992 #[inline]
29993 #[doc(hidden)]
29994 pub fn TexSubImage2D_is_loaded(&self) -> bool {
29995 !self.glTexSubImage2D_p.load(RELAX).is_null()
29996 }
29997 #[cfg_attr(feature = "inline", inline)]
30007 #[cfg_attr(feature = "inline_always", inline(always))]
30008 pub unsafe fn TexSubImage3D(
30009 &self,
30010 target: GLenum,
30011 level: GLint,
30012 xoffset: GLint,
30013 yoffset: GLint,
30014 zoffset: GLint,
30015 width: GLsizei,
30016 height: GLsizei,
30017 depth: GLsizei,
30018 format: GLenum,
30019 type_: GLenum,
30020 pixels: *const c_void,
30021 ) {
30022 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30023 {
30024 trace!("calling gl.TexSubImage3D({:#X}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", target, level, xoffset, yoffset, zoffset, width, height, depth, format, type_, pixels);
30025 }
30026 let out = call_atomic_ptr_11arg(
30027 "glTexSubImage3D",
30028 &self.glTexSubImage3D_p,
30029 target,
30030 level,
30031 xoffset,
30032 yoffset,
30033 zoffset,
30034 width,
30035 height,
30036 depth,
30037 format,
30038 type_,
30039 pixels,
30040 );
30041 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30042 {
30043 self.automatic_glGetError("glTexSubImage3D");
30044 }
30045 out
30046 }
30047 #[doc(hidden)]
30048 pub unsafe fn TexSubImage3D_load_with_dyn(
30049 &self,
30050 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30051 ) -> bool {
30052 load_dyn_name_atomic_ptr(
30053 get_proc_address,
30054 b"glTexSubImage3D\0",
30055 &self.glTexSubImage3D_p,
30056 )
30057 }
30058 #[inline]
30059 #[doc(hidden)]
30060 pub fn TexSubImage3D_is_loaded(&self) -> bool {
30061 !self.glTexSubImage3D_p.load(RELAX).is_null()
30062 }
30063 #[cfg_attr(feature = "inline", inline)]
30065 #[cfg_attr(feature = "inline_always", inline(always))]
30066 pub unsafe fn TextureBarrier(&self) {
30067 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30068 {
30069 trace!("calling gl.TextureBarrier();",);
30070 }
30071 let out = call_atomic_ptr_0arg("glTextureBarrier", &self.glTextureBarrier_p);
30072 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30073 {
30074 self.automatic_glGetError("glTextureBarrier");
30075 }
30076 out
30077 }
30078 #[doc(hidden)]
30079 pub unsafe fn TextureBarrier_load_with_dyn(
30080 &self,
30081 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30082 ) -> bool {
30083 load_dyn_name_atomic_ptr(
30084 get_proc_address,
30085 b"glTextureBarrier\0",
30086 &self.glTextureBarrier_p,
30087 )
30088 }
30089 #[inline]
30090 #[doc(hidden)]
30091 pub fn TextureBarrier_is_loaded(&self) -> bool {
30092 !self.glTextureBarrier_p.load(RELAX).is_null()
30093 }
30094 #[cfg_attr(feature = "inline", inline)]
30097 #[cfg_attr(feature = "inline_always", inline(always))]
30098 pub unsafe fn TextureBuffer(
30099 &self,
30100 texture: GLuint,
30101 internalformat: GLenum,
30102 buffer: GLuint,
30103 ) {
30104 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30105 {
30106 trace!(
30107 "calling gl.TextureBuffer({:?}, {:#X}, {:?});",
30108 texture,
30109 internalformat,
30110 buffer
30111 );
30112 }
30113 let out = call_atomic_ptr_3arg(
30114 "glTextureBuffer",
30115 &self.glTextureBuffer_p,
30116 texture,
30117 internalformat,
30118 buffer,
30119 );
30120 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30121 {
30122 self.automatic_glGetError("glTextureBuffer");
30123 }
30124 out
30125 }
30126 #[doc(hidden)]
30127 pub unsafe fn TextureBuffer_load_with_dyn(
30128 &self,
30129 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30130 ) -> bool {
30131 load_dyn_name_atomic_ptr(
30132 get_proc_address,
30133 b"glTextureBuffer\0",
30134 &self.glTextureBuffer_p,
30135 )
30136 }
30137 #[inline]
30138 #[doc(hidden)]
30139 pub fn TextureBuffer_is_loaded(&self) -> bool {
30140 !self.glTextureBuffer_p.load(RELAX).is_null()
30141 }
30142 #[cfg_attr(feature = "inline", inline)]
30146 #[cfg_attr(feature = "inline_always", inline(always))]
30147 pub unsafe fn TextureBufferRange(
30148 &self,
30149 texture: GLuint,
30150 internalformat: GLenum,
30151 buffer: GLuint,
30152 offset: GLintptr,
30153 size: GLsizeiptr,
30154 ) {
30155 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30156 {
30157 trace!(
30158 "calling gl.TextureBufferRange({:?}, {:#X}, {:?}, {:?}, {:?});",
30159 texture,
30160 internalformat,
30161 buffer,
30162 offset,
30163 size
30164 );
30165 }
30166 let out = call_atomic_ptr_5arg(
30167 "glTextureBufferRange",
30168 &self.glTextureBufferRange_p,
30169 texture,
30170 internalformat,
30171 buffer,
30172 offset,
30173 size,
30174 );
30175 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30176 {
30177 self.automatic_glGetError("glTextureBufferRange");
30178 }
30179 out
30180 }
30181 #[doc(hidden)]
30182 pub unsafe fn TextureBufferRange_load_with_dyn(
30183 &self,
30184 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30185 ) -> bool {
30186 load_dyn_name_atomic_ptr(
30187 get_proc_address,
30188 b"glTextureBufferRange\0",
30189 &self.glTextureBufferRange_p,
30190 )
30191 }
30192 #[inline]
30193 #[doc(hidden)]
30194 pub fn TextureBufferRange_is_loaded(&self) -> bool {
30195 !self.glTextureBufferRange_p.load(RELAX).is_null()
30196 }
30197 #[cfg_attr(feature = "inline", inline)]
30200 #[cfg_attr(feature = "inline_always", inline(always))]
30201 pub unsafe fn TextureParameterIiv(
30202 &self,
30203 texture: GLuint,
30204 pname: GLenum,
30205 params: *const GLint,
30206 ) {
30207 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30208 {
30209 trace!(
30210 "calling gl.TextureParameterIiv({:?}, {:#X}, {:p});",
30211 texture,
30212 pname,
30213 params
30214 );
30215 }
30216 let out = call_atomic_ptr_3arg(
30217 "glTextureParameterIiv",
30218 &self.glTextureParameterIiv_p,
30219 texture,
30220 pname,
30221 params,
30222 );
30223 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30224 {
30225 self.automatic_glGetError("glTextureParameterIiv");
30226 }
30227 out
30228 }
30229 #[doc(hidden)]
30230 pub unsafe fn TextureParameterIiv_load_with_dyn(
30231 &self,
30232 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30233 ) -> bool {
30234 load_dyn_name_atomic_ptr(
30235 get_proc_address,
30236 b"glTextureParameterIiv\0",
30237 &self.glTextureParameterIiv_p,
30238 )
30239 }
30240 #[inline]
30241 #[doc(hidden)]
30242 pub fn TextureParameterIiv_is_loaded(&self) -> bool {
30243 !self.glTextureParameterIiv_p.load(RELAX).is_null()
30244 }
30245 #[cfg_attr(feature = "inline", inline)]
30248 #[cfg_attr(feature = "inline_always", inline(always))]
30249 pub unsafe fn TextureParameterIuiv(
30250 &self,
30251 texture: GLuint,
30252 pname: GLenum,
30253 params: *const GLuint,
30254 ) {
30255 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30256 {
30257 trace!(
30258 "calling gl.TextureParameterIuiv({:?}, {:#X}, {:p});",
30259 texture,
30260 pname,
30261 params
30262 );
30263 }
30264 let out = call_atomic_ptr_3arg(
30265 "glTextureParameterIuiv",
30266 &self.glTextureParameterIuiv_p,
30267 texture,
30268 pname,
30269 params,
30270 );
30271 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30272 {
30273 self.automatic_glGetError("glTextureParameterIuiv");
30274 }
30275 out
30276 }
30277 #[doc(hidden)]
30278 pub unsafe fn TextureParameterIuiv_load_with_dyn(
30279 &self,
30280 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30281 ) -> bool {
30282 load_dyn_name_atomic_ptr(
30283 get_proc_address,
30284 b"glTextureParameterIuiv\0",
30285 &self.glTextureParameterIuiv_p,
30286 )
30287 }
30288 #[inline]
30289 #[doc(hidden)]
30290 pub fn TextureParameterIuiv_is_loaded(&self) -> bool {
30291 !self.glTextureParameterIuiv_p.load(RELAX).is_null()
30292 }
30293 #[cfg_attr(feature = "inline", inline)]
30296 #[cfg_attr(feature = "inline_always", inline(always))]
30297 pub unsafe fn TextureParameterf(&self, texture: GLuint, pname: GLenum, param: GLfloat) {
30298 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30299 {
30300 trace!(
30301 "calling gl.TextureParameterf({:?}, {:#X}, {:?});",
30302 texture,
30303 pname,
30304 param
30305 );
30306 }
30307 let out = call_atomic_ptr_3arg(
30308 "glTextureParameterf",
30309 &self.glTextureParameterf_p,
30310 texture,
30311 pname,
30312 param,
30313 );
30314 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30315 {
30316 self.automatic_glGetError("glTextureParameterf");
30317 }
30318 out
30319 }
30320 #[doc(hidden)]
30321 pub unsafe fn TextureParameterf_load_with_dyn(
30322 &self,
30323 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30324 ) -> bool {
30325 load_dyn_name_atomic_ptr(
30326 get_proc_address,
30327 b"glTextureParameterf\0",
30328 &self.glTextureParameterf_p,
30329 )
30330 }
30331 #[inline]
30332 #[doc(hidden)]
30333 pub fn TextureParameterf_is_loaded(&self) -> bool {
30334 !self.glTextureParameterf_p.load(RELAX).is_null()
30335 }
30336 #[cfg_attr(feature = "inline", inline)]
30339 #[cfg_attr(feature = "inline_always", inline(always))]
30340 pub unsafe fn TextureParameterfv(
30341 &self,
30342 texture: GLuint,
30343 pname: GLenum,
30344 param: *const GLfloat,
30345 ) {
30346 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30347 {
30348 trace!(
30349 "calling gl.TextureParameterfv({:?}, {:#X}, {:p});",
30350 texture,
30351 pname,
30352 param
30353 );
30354 }
30355 let out = call_atomic_ptr_3arg(
30356 "glTextureParameterfv",
30357 &self.glTextureParameterfv_p,
30358 texture,
30359 pname,
30360 param,
30361 );
30362 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30363 {
30364 self.automatic_glGetError("glTextureParameterfv");
30365 }
30366 out
30367 }
30368 #[doc(hidden)]
30369 pub unsafe fn TextureParameterfv_load_with_dyn(
30370 &self,
30371 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30372 ) -> bool {
30373 load_dyn_name_atomic_ptr(
30374 get_proc_address,
30375 b"glTextureParameterfv\0",
30376 &self.glTextureParameterfv_p,
30377 )
30378 }
30379 #[inline]
30380 #[doc(hidden)]
30381 pub fn TextureParameterfv_is_loaded(&self) -> bool {
30382 !self.glTextureParameterfv_p.load(RELAX).is_null()
30383 }
30384 #[cfg_attr(feature = "inline", inline)]
30387 #[cfg_attr(feature = "inline_always", inline(always))]
30388 pub unsafe fn TextureParameteri(&self, texture: GLuint, pname: GLenum, param: GLint) {
30389 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30390 {
30391 trace!(
30392 "calling gl.TextureParameteri({:?}, {:#X}, {:?});",
30393 texture,
30394 pname,
30395 param
30396 );
30397 }
30398 let out = call_atomic_ptr_3arg(
30399 "glTextureParameteri",
30400 &self.glTextureParameteri_p,
30401 texture,
30402 pname,
30403 param,
30404 );
30405 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30406 {
30407 self.automatic_glGetError("glTextureParameteri");
30408 }
30409 out
30410 }
30411 #[doc(hidden)]
30412 pub unsafe fn TextureParameteri_load_with_dyn(
30413 &self,
30414 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30415 ) -> bool {
30416 load_dyn_name_atomic_ptr(
30417 get_proc_address,
30418 b"glTextureParameteri\0",
30419 &self.glTextureParameteri_p,
30420 )
30421 }
30422 #[inline]
30423 #[doc(hidden)]
30424 pub fn TextureParameteri_is_loaded(&self) -> bool {
30425 !self.glTextureParameteri_p.load(RELAX).is_null()
30426 }
30427 #[cfg_attr(feature = "inline", inline)]
30430 #[cfg_attr(feature = "inline_always", inline(always))]
30431 pub unsafe fn TextureParameteriv(
30432 &self,
30433 texture: GLuint,
30434 pname: GLenum,
30435 param: *const GLint,
30436 ) {
30437 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30438 {
30439 trace!(
30440 "calling gl.TextureParameteriv({:?}, {:#X}, {:p});",
30441 texture,
30442 pname,
30443 param
30444 );
30445 }
30446 let out = call_atomic_ptr_3arg(
30447 "glTextureParameteriv",
30448 &self.glTextureParameteriv_p,
30449 texture,
30450 pname,
30451 param,
30452 );
30453 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30454 {
30455 self.automatic_glGetError("glTextureParameteriv");
30456 }
30457 out
30458 }
30459 #[doc(hidden)]
30460 pub unsafe fn TextureParameteriv_load_with_dyn(
30461 &self,
30462 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30463 ) -> bool {
30464 load_dyn_name_atomic_ptr(
30465 get_proc_address,
30466 b"glTextureParameteriv\0",
30467 &self.glTextureParameteriv_p,
30468 )
30469 }
30470 #[inline]
30471 #[doc(hidden)]
30472 pub fn TextureParameteriv_is_loaded(&self) -> bool {
30473 !self.glTextureParameteriv_p.load(RELAX).is_null()
30474 }
30475 #[cfg_attr(feature = "inline", inline)]
30478 #[cfg_attr(feature = "inline_always", inline(always))]
30479 pub unsafe fn TextureStorage1D(
30480 &self,
30481 texture: GLuint,
30482 levels: GLsizei,
30483 internalformat: GLenum,
30484 width: GLsizei,
30485 ) {
30486 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30487 {
30488 trace!(
30489 "calling gl.TextureStorage1D({:?}, {:?}, {:#X}, {:?});",
30490 texture,
30491 levels,
30492 internalformat,
30493 width
30494 );
30495 }
30496 let out = call_atomic_ptr_4arg(
30497 "glTextureStorage1D",
30498 &self.glTextureStorage1D_p,
30499 texture,
30500 levels,
30501 internalformat,
30502 width,
30503 );
30504 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30505 {
30506 self.automatic_glGetError("glTextureStorage1D");
30507 }
30508 out
30509 }
30510 #[doc(hidden)]
30511 pub unsafe fn TextureStorage1D_load_with_dyn(
30512 &self,
30513 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30514 ) -> bool {
30515 load_dyn_name_atomic_ptr(
30516 get_proc_address,
30517 b"glTextureStorage1D\0",
30518 &self.glTextureStorage1D_p,
30519 )
30520 }
30521 #[inline]
30522 #[doc(hidden)]
30523 pub fn TextureStorage1D_is_loaded(&self) -> bool {
30524 !self.glTextureStorage1D_p.load(RELAX).is_null()
30525 }
30526 #[cfg_attr(feature = "inline", inline)]
30529 #[cfg_attr(feature = "inline_always", inline(always))]
30530 pub unsafe fn TextureStorage2D(
30531 &self,
30532 texture: GLuint,
30533 levels: GLsizei,
30534 internalformat: GLenum,
30535 width: GLsizei,
30536 height: GLsizei,
30537 ) {
30538 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30539 {
30540 trace!(
30541 "calling gl.TextureStorage2D({:?}, {:?}, {:#X}, {:?}, {:?});",
30542 texture,
30543 levels,
30544 internalformat,
30545 width,
30546 height
30547 );
30548 }
30549 let out = call_atomic_ptr_5arg(
30550 "glTextureStorage2D",
30551 &self.glTextureStorage2D_p,
30552 texture,
30553 levels,
30554 internalformat,
30555 width,
30556 height,
30557 );
30558 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30559 {
30560 self.automatic_glGetError("glTextureStorage2D");
30561 }
30562 out
30563 }
30564 #[doc(hidden)]
30565 pub unsafe fn TextureStorage2D_load_with_dyn(
30566 &self,
30567 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30568 ) -> bool {
30569 load_dyn_name_atomic_ptr(
30570 get_proc_address,
30571 b"glTextureStorage2D\0",
30572 &self.glTextureStorage2D_p,
30573 )
30574 }
30575 #[inline]
30576 #[doc(hidden)]
30577 pub fn TextureStorage2D_is_loaded(&self) -> bool {
30578 !self.glTextureStorage2D_p.load(RELAX).is_null()
30579 }
30580 #[cfg_attr(feature = "inline", inline)]
30583 #[cfg_attr(feature = "inline_always", inline(always))]
30584 pub unsafe fn TextureStorage2DMultisample(
30585 &self,
30586 texture: GLuint,
30587 samples: GLsizei,
30588 internalformat: GLenum,
30589 width: GLsizei,
30590 height: GLsizei,
30591 fixedsamplelocations: GLboolean,
30592 ) {
30593 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30594 {
30595 trace!(
30596 "calling gl.TextureStorage2DMultisample({:?}, {:?}, {:#X}, {:?}, {:?}, {:?});",
30597 texture,
30598 samples,
30599 internalformat,
30600 width,
30601 height,
30602 fixedsamplelocations
30603 );
30604 }
30605 let out = call_atomic_ptr_6arg(
30606 "glTextureStorage2DMultisample",
30607 &self.glTextureStorage2DMultisample_p,
30608 texture,
30609 samples,
30610 internalformat,
30611 width,
30612 height,
30613 fixedsamplelocations,
30614 );
30615 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30616 {
30617 self.automatic_glGetError("glTextureStorage2DMultisample");
30618 }
30619 out
30620 }
30621 #[doc(hidden)]
30622 pub unsafe fn TextureStorage2DMultisample_load_with_dyn(
30623 &self,
30624 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30625 ) -> bool {
30626 load_dyn_name_atomic_ptr(
30627 get_proc_address,
30628 b"glTextureStorage2DMultisample\0",
30629 &self.glTextureStorage2DMultisample_p,
30630 )
30631 }
30632 #[inline]
30633 #[doc(hidden)]
30634 pub fn TextureStorage2DMultisample_is_loaded(&self) -> bool {
30635 !self.glTextureStorage2DMultisample_p.load(RELAX).is_null()
30636 }
30637 #[cfg_attr(feature = "inline", inline)]
30640 #[cfg_attr(feature = "inline_always", inline(always))]
30641 pub unsafe fn TextureStorage3D(
30642 &self,
30643 texture: GLuint,
30644 levels: GLsizei,
30645 internalformat: GLenum,
30646 width: GLsizei,
30647 height: GLsizei,
30648 depth: GLsizei,
30649 ) {
30650 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30651 {
30652 trace!(
30653 "calling gl.TextureStorage3D({:?}, {:?}, {:#X}, {:?}, {:?}, {:?});",
30654 texture,
30655 levels,
30656 internalformat,
30657 width,
30658 height,
30659 depth
30660 );
30661 }
30662 let out = call_atomic_ptr_6arg(
30663 "glTextureStorage3D",
30664 &self.glTextureStorage3D_p,
30665 texture,
30666 levels,
30667 internalformat,
30668 width,
30669 height,
30670 depth,
30671 );
30672 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30673 {
30674 self.automatic_glGetError("glTextureStorage3D");
30675 }
30676 out
30677 }
30678 #[doc(hidden)]
30679 pub unsafe fn TextureStorage3D_load_with_dyn(
30680 &self,
30681 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30682 ) -> bool {
30683 load_dyn_name_atomic_ptr(
30684 get_proc_address,
30685 b"glTextureStorage3D\0",
30686 &self.glTextureStorage3D_p,
30687 )
30688 }
30689 #[inline]
30690 #[doc(hidden)]
30691 pub fn TextureStorage3D_is_loaded(&self) -> bool {
30692 !self.glTextureStorage3D_p.load(RELAX).is_null()
30693 }
30694 #[cfg_attr(feature = "inline", inline)]
30697 #[cfg_attr(feature = "inline_always", inline(always))]
30698 pub unsafe fn TextureStorage3DMultisample(
30699 &self,
30700 texture: GLuint,
30701 samples: GLsizei,
30702 internalformat: GLenum,
30703 width: GLsizei,
30704 height: GLsizei,
30705 depth: GLsizei,
30706 fixedsamplelocations: GLboolean,
30707 ) {
30708 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30709 {
30710 trace!("calling gl.TextureStorage3DMultisample({:?}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?});", texture, samples, internalformat, width, height, depth, fixedsamplelocations);
30711 }
30712 let out = call_atomic_ptr_7arg(
30713 "glTextureStorage3DMultisample",
30714 &self.glTextureStorage3DMultisample_p,
30715 texture,
30716 samples,
30717 internalformat,
30718 width,
30719 height,
30720 depth,
30721 fixedsamplelocations,
30722 );
30723 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30724 {
30725 self.automatic_glGetError("glTextureStorage3DMultisample");
30726 }
30727 out
30728 }
30729 #[doc(hidden)]
30730 pub unsafe fn TextureStorage3DMultisample_load_with_dyn(
30731 &self,
30732 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30733 ) -> bool {
30734 load_dyn_name_atomic_ptr(
30735 get_proc_address,
30736 b"glTextureStorage3DMultisample\0",
30737 &self.glTextureStorage3DMultisample_p,
30738 )
30739 }
30740 #[inline]
30741 #[doc(hidden)]
30742 pub fn TextureStorage3DMultisample_is_loaded(&self) -> bool {
30743 !self.glTextureStorage3DMultisample_p.load(RELAX).is_null()
30744 }
30745 #[cfg_attr(feature = "inline", inline)]
30749 #[cfg_attr(feature = "inline_always", inline(always))]
30750 pub unsafe fn TextureSubImage1D(
30751 &self,
30752 texture: GLuint,
30753 level: GLint,
30754 xoffset: GLint,
30755 width: GLsizei,
30756 format: GLenum,
30757 type_: GLenum,
30758 pixels: *const c_void,
30759 ) {
30760 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30761 {
30762 trace!(
30763 "calling gl.TextureSubImage1D({:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});",
30764 texture,
30765 level,
30766 xoffset,
30767 width,
30768 format,
30769 type_,
30770 pixels
30771 );
30772 }
30773 let out = call_atomic_ptr_7arg(
30774 "glTextureSubImage1D",
30775 &self.glTextureSubImage1D_p,
30776 texture,
30777 level,
30778 xoffset,
30779 width,
30780 format,
30781 type_,
30782 pixels,
30783 );
30784 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30785 {
30786 self.automatic_glGetError("glTextureSubImage1D");
30787 }
30788 out
30789 }
30790 #[doc(hidden)]
30791 pub unsafe fn TextureSubImage1D_load_with_dyn(
30792 &self,
30793 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30794 ) -> bool {
30795 load_dyn_name_atomic_ptr(
30796 get_proc_address,
30797 b"glTextureSubImage1D\0",
30798 &self.glTextureSubImage1D_p,
30799 )
30800 }
30801 #[inline]
30802 #[doc(hidden)]
30803 pub fn TextureSubImage1D_is_loaded(&self) -> bool {
30804 !self.glTextureSubImage1D_p.load(RELAX).is_null()
30805 }
30806 #[cfg_attr(feature = "inline", inline)]
30810 #[cfg_attr(feature = "inline_always", inline(always))]
30811 pub unsafe fn TextureSubImage2D(
30812 &self,
30813 texture: GLuint,
30814 level: GLint,
30815 xoffset: GLint,
30816 yoffset: GLint,
30817 width: GLsizei,
30818 height: GLsizei,
30819 format: GLenum,
30820 type_: GLenum,
30821 pixels: *const c_void,
30822 ) {
30823 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30824 {
30825 trace!("calling gl.TextureSubImage2D({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", texture, level, xoffset, yoffset, width, height, format, type_, pixels);
30826 }
30827 let out = call_atomic_ptr_9arg(
30828 "glTextureSubImage2D",
30829 &self.glTextureSubImage2D_p,
30830 texture,
30831 level,
30832 xoffset,
30833 yoffset,
30834 width,
30835 height,
30836 format,
30837 type_,
30838 pixels,
30839 );
30840 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30841 {
30842 self.automatic_glGetError("glTextureSubImage2D");
30843 }
30844 out
30845 }
30846 #[doc(hidden)]
30847 pub unsafe fn TextureSubImage2D_load_with_dyn(
30848 &self,
30849 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30850 ) -> bool {
30851 load_dyn_name_atomic_ptr(
30852 get_proc_address,
30853 b"glTextureSubImage2D\0",
30854 &self.glTextureSubImage2D_p,
30855 )
30856 }
30857 #[inline]
30858 #[doc(hidden)]
30859 pub fn TextureSubImage2D_is_loaded(&self) -> bool {
30860 !self.glTextureSubImage2D_p.load(RELAX).is_null()
30861 }
30862 #[cfg_attr(feature = "inline", inline)]
30866 #[cfg_attr(feature = "inline_always", inline(always))]
30867 pub unsafe fn TextureSubImage3D(
30868 &self,
30869 texture: GLuint,
30870 level: GLint,
30871 xoffset: GLint,
30872 yoffset: GLint,
30873 zoffset: GLint,
30874 width: GLsizei,
30875 height: GLsizei,
30876 depth: GLsizei,
30877 format: GLenum,
30878 type_: GLenum,
30879 pixels: *const c_void,
30880 ) {
30881 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30882 {
30883 trace!("calling gl.TextureSubImage3D({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:#X}, {:#X}, {:p});", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type_, pixels);
30884 }
30885 let out = call_atomic_ptr_11arg(
30886 "glTextureSubImage3D",
30887 &self.glTextureSubImage3D_p,
30888 texture,
30889 level,
30890 xoffset,
30891 yoffset,
30892 zoffset,
30893 width,
30894 height,
30895 depth,
30896 format,
30897 type_,
30898 pixels,
30899 );
30900 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30901 {
30902 self.automatic_glGetError("glTextureSubImage3D");
30903 }
30904 out
30905 }
30906 #[doc(hidden)]
30907 pub unsafe fn TextureSubImage3D_load_with_dyn(
30908 &self,
30909 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30910 ) -> bool {
30911 load_dyn_name_atomic_ptr(
30912 get_proc_address,
30913 b"glTextureSubImage3D\0",
30914 &self.glTextureSubImage3D_p,
30915 )
30916 }
30917 #[inline]
30918 #[doc(hidden)]
30919 pub fn TextureSubImage3D_is_loaded(&self) -> bool {
30920 !self.glTextureSubImage3D_p.load(RELAX).is_null()
30921 }
30922 #[cfg_attr(feature = "inline", inline)]
30926 #[cfg_attr(feature = "inline_always", inline(always))]
30927 pub unsafe fn TextureView(
30928 &self,
30929 texture: GLuint,
30930 target: GLenum,
30931 origtexture: GLuint,
30932 internalformat: GLenum,
30933 minlevel: GLuint,
30934 numlevels: GLuint,
30935 minlayer: GLuint,
30936 numlayers: GLuint,
30937 ) {
30938 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30939 {
30940 trace!(
30941 "calling gl.TextureView({:?}, {:#X}, {:?}, {:#X}, {:?}, {:?}, {:?}, {:?});",
30942 texture,
30943 target,
30944 origtexture,
30945 internalformat,
30946 minlevel,
30947 numlevels,
30948 minlayer,
30949 numlayers
30950 );
30951 }
30952 let out = call_atomic_ptr_8arg(
30953 "glTextureView",
30954 &self.glTextureView_p,
30955 texture,
30956 target,
30957 origtexture,
30958 internalformat,
30959 minlevel,
30960 numlevels,
30961 minlayer,
30962 numlayers,
30963 );
30964 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
30965 {
30966 self.automatic_glGetError("glTextureView");
30967 }
30968 out
30969 }
30970 #[doc(hidden)]
30971 pub unsafe fn TextureView_load_with_dyn(
30972 &self,
30973 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
30974 ) -> bool {
30975 load_dyn_name_atomic_ptr(get_proc_address, b"glTextureView\0", &self.glTextureView_p)
30976 }
30977 #[inline]
30978 #[doc(hidden)]
30979 pub fn TextureView_is_loaded(&self) -> bool {
30980 !self.glTextureView_p.load(RELAX).is_null()
30981 }
30982 #[cfg_attr(feature = "inline", inline)]
30984 #[cfg_attr(feature = "inline_always", inline(always))]
30985 pub unsafe fn TransformFeedbackBufferBase(
30986 &self,
30987 xfb: GLuint,
30988 index: GLuint,
30989 buffer: GLuint,
30990 ) {
30991 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
30992 {
30993 trace!(
30994 "calling gl.TransformFeedbackBufferBase({:?}, {:?}, {:?});",
30995 xfb,
30996 index,
30997 buffer
30998 );
30999 }
31000 let out = call_atomic_ptr_3arg(
31001 "glTransformFeedbackBufferBase",
31002 &self.glTransformFeedbackBufferBase_p,
31003 xfb,
31004 index,
31005 buffer,
31006 );
31007 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31008 {
31009 self.automatic_glGetError("glTransformFeedbackBufferBase");
31010 }
31011 out
31012 }
31013 #[doc(hidden)]
31014 pub unsafe fn TransformFeedbackBufferBase_load_with_dyn(
31015 &self,
31016 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31017 ) -> bool {
31018 load_dyn_name_atomic_ptr(
31019 get_proc_address,
31020 b"glTransformFeedbackBufferBase\0",
31021 &self.glTransformFeedbackBufferBase_p,
31022 )
31023 }
31024 #[inline]
31025 #[doc(hidden)]
31026 pub fn TransformFeedbackBufferBase_is_loaded(&self) -> bool {
31027 !self.glTransformFeedbackBufferBase_p.load(RELAX).is_null()
31028 }
31029 #[cfg_attr(feature = "inline", inline)]
31032 #[cfg_attr(feature = "inline_always", inline(always))]
31033 pub unsafe fn TransformFeedbackBufferRange(
31034 &self,
31035 xfb: GLuint,
31036 index: GLuint,
31037 buffer: GLuint,
31038 offset: GLintptr,
31039 size: GLsizeiptr,
31040 ) {
31041 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31042 {
31043 trace!(
31044 "calling gl.TransformFeedbackBufferRange({:?}, {:?}, {:?}, {:?}, {:?});",
31045 xfb,
31046 index,
31047 buffer,
31048 offset,
31049 size
31050 );
31051 }
31052 let out = call_atomic_ptr_5arg(
31053 "glTransformFeedbackBufferRange",
31054 &self.glTransformFeedbackBufferRange_p,
31055 xfb,
31056 index,
31057 buffer,
31058 offset,
31059 size,
31060 );
31061 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31062 {
31063 self.automatic_glGetError("glTransformFeedbackBufferRange");
31064 }
31065 out
31066 }
31067 #[doc(hidden)]
31068 pub unsafe fn TransformFeedbackBufferRange_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(
31073 get_proc_address,
31074 b"glTransformFeedbackBufferRange\0",
31075 &self.glTransformFeedbackBufferRange_p,
31076 )
31077 }
31078 #[inline]
31079 #[doc(hidden)]
31080 pub fn TransformFeedbackBufferRange_is_loaded(&self) -> bool {
31081 !self.glTransformFeedbackBufferRange_p.load(RELAX).is_null()
31082 }
31083 #[cfg_attr(feature = "inline", inline)]
31087 #[cfg_attr(feature = "inline_always", inline(always))]
31088 pub unsafe fn TransformFeedbackVaryings(
31089 &self,
31090 program: GLuint,
31091 count: GLsizei,
31092 varyings: *const *const GLchar,
31093 bufferMode: GLenum,
31094 ) {
31095 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31096 {
31097 trace!(
31098 "calling gl.TransformFeedbackVaryings({:?}, {:?}, {:p}, {:#X});",
31099 program,
31100 count,
31101 varyings,
31102 bufferMode
31103 );
31104 }
31105 let out = call_atomic_ptr_4arg(
31106 "glTransformFeedbackVaryings",
31107 &self.glTransformFeedbackVaryings_p,
31108 program,
31109 count,
31110 varyings,
31111 bufferMode,
31112 );
31113 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31114 {
31115 self.automatic_glGetError("glTransformFeedbackVaryings");
31116 }
31117 out
31118 }
31119 #[doc(hidden)]
31120 pub unsafe fn TransformFeedbackVaryings_load_with_dyn(
31121 &self,
31122 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31123 ) -> bool {
31124 load_dyn_name_atomic_ptr(
31125 get_proc_address,
31126 b"glTransformFeedbackVaryings\0",
31127 &self.glTransformFeedbackVaryings_p,
31128 )
31129 }
31130 #[inline]
31131 #[doc(hidden)]
31132 pub fn TransformFeedbackVaryings_is_loaded(&self) -> bool {
31133 !self.glTransformFeedbackVaryings_p.load(RELAX).is_null()
31134 }
31135 #[cfg_attr(feature = "inline", inline)]
31137 #[cfg_attr(feature = "inline_always", inline(always))]
31138 pub unsafe fn Uniform1d(&self, location: GLint, x: GLdouble) {
31139 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31140 {
31141 trace!("calling gl.Uniform1d({:?}, {:?});", location, x);
31142 }
31143 let out = call_atomic_ptr_2arg("glUniform1d", &self.glUniform1d_p, location, x);
31144 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31145 {
31146 self.automatic_glGetError("glUniform1d");
31147 }
31148 out
31149 }
31150 #[doc(hidden)]
31151 pub unsafe fn Uniform1d_load_with_dyn(
31152 &self,
31153 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31154 ) -> bool {
31155 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1d\0", &self.glUniform1d_p)
31156 }
31157 #[inline]
31158 #[doc(hidden)]
31159 pub fn Uniform1d_is_loaded(&self) -> bool {
31160 !self.glUniform1d_p.load(RELAX).is_null()
31161 }
31162 #[cfg_attr(feature = "inline", inline)]
31165 #[cfg_attr(feature = "inline_always", inline(always))]
31166 pub unsafe fn Uniform1dv(&self, location: GLint, count: GLsizei, value: *const GLdouble) {
31167 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31168 {
31169 trace!(
31170 "calling gl.Uniform1dv({:?}, {:?}, {:p});",
31171 location,
31172 count,
31173 value
31174 );
31175 }
31176 let out =
31177 call_atomic_ptr_3arg("glUniform1dv", &self.glUniform1dv_p, location, count, value);
31178 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31179 {
31180 self.automatic_glGetError("glUniform1dv");
31181 }
31182 out
31183 }
31184 #[doc(hidden)]
31185 pub unsafe fn Uniform1dv_load_with_dyn(
31186 &self,
31187 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31188 ) -> bool {
31189 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1dv\0", &self.glUniform1dv_p)
31190 }
31191 #[inline]
31192 #[doc(hidden)]
31193 pub fn Uniform1dv_is_loaded(&self) -> bool {
31194 !self.glUniform1dv_p.load(RELAX).is_null()
31195 }
31196 #[cfg_attr(feature = "inline", inline)]
31198 #[cfg_attr(feature = "inline_always", inline(always))]
31199 pub unsafe fn Uniform1f(&self, location: GLint, v0: GLfloat) {
31200 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31201 {
31202 trace!("calling gl.Uniform1f({:?}, {:?});", location, v0);
31203 }
31204 let out = call_atomic_ptr_2arg("glUniform1f", &self.glUniform1f_p, location, v0);
31205 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31206 {
31207 self.automatic_glGetError("glUniform1f");
31208 }
31209 out
31210 }
31211 #[doc(hidden)]
31212 pub unsafe fn Uniform1f_load_with_dyn(
31213 &self,
31214 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31215 ) -> bool {
31216 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1f\0", &self.glUniform1f_p)
31217 }
31218 #[inline]
31219 #[doc(hidden)]
31220 pub fn Uniform1f_is_loaded(&self) -> bool {
31221 !self.glUniform1f_p.load(RELAX).is_null()
31222 }
31223 #[cfg_attr(feature = "inline", inline)]
31226 #[cfg_attr(feature = "inline_always", inline(always))]
31227 pub unsafe fn Uniform1fv(&self, location: GLint, count: GLsizei, value: *const GLfloat) {
31228 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31229 {
31230 trace!(
31231 "calling gl.Uniform1fv({:?}, {:?}, {:p});",
31232 location,
31233 count,
31234 value
31235 );
31236 }
31237 let out =
31238 call_atomic_ptr_3arg("glUniform1fv", &self.glUniform1fv_p, location, count, value);
31239 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31240 {
31241 self.automatic_glGetError("glUniform1fv");
31242 }
31243 out
31244 }
31245 #[doc(hidden)]
31246 pub unsafe fn Uniform1fv_load_with_dyn(
31247 &self,
31248 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31249 ) -> bool {
31250 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1fv\0", &self.glUniform1fv_p)
31251 }
31252 #[inline]
31253 #[doc(hidden)]
31254 pub fn Uniform1fv_is_loaded(&self) -> bool {
31255 !self.glUniform1fv_p.load(RELAX).is_null()
31256 }
31257 #[cfg_attr(feature = "inline", inline)]
31259 #[cfg_attr(feature = "inline_always", inline(always))]
31260 pub unsafe fn Uniform1i(&self, location: GLint, v0: GLint) {
31261 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31262 {
31263 trace!("calling gl.Uniform1i({:?}, {:?});", location, v0);
31264 }
31265 let out = call_atomic_ptr_2arg("glUniform1i", &self.glUniform1i_p, location, v0);
31266 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31267 {
31268 self.automatic_glGetError("glUniform1i");
31269 }
31270 out
31271 }
31272 #[doc(hidden)]
31273 pub unsafe fn Uniform1i_load_with_dyn(
31274 &self,
31275 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31276 ) -> bool {
31277 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1i\0", &self.glUniform1i_p)
31278 }
31279 #[inline]
31280 #[doc(hidden)]
31281 pub fn Uniform1i_is_loaded(&self) -> bool {
31282 !self.glUniform1i_p.load(RELAX).is_null()
31283 }
31284 #[cfg_attr(feature = "inline", inline)]
31287 #[cfg_attr(feature = "inline_always", inline(always))]
31288 pub unsafe fn Uniform1iv(&self, location: GLint, count: GLsizei, value: *const GLint) {
31289 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31290 {
31291 trace!(
31292 "calling gl.Uniform1iv({:?}, {:?}, {:p});",
31293 location,
31294 count,
31295 value
31296 );
31297 }
31298 let out =
31299 call_atomic_ptr_3arg("glUniform1iv", &self.glUniform1iv_p, location, count, value);
31300 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31301 {
31302 self.automatic_glGetError("glUniform1iv");
31303 }
31304 out
31305 }
31306 #[doc(hidden)]
31307 pub unsafe fn Uniform1iv_load_with_dyn(
31308 &self,
31309 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31310 ) -> bool {
31311 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1iv\0", &self.glUniform1iv_p)
31312 }
31313 #[inline]
31314 #[doc(hidden)]
31315 pub fn Uniform1iv_is_loaded(&self) -> bool {
31316 !self.glUniform1iv_p.load(RELAX).is_null()
31317 }
31318 #[cfg_attr(feature = "inline", inline)]
31320 #[cfg_attr(feature = "inline_always", inline(always))]
31321 pub unsafe fn Uniform1ui(&self, location: GLint, v0: GLuint) {
31322 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31323 {
31324 trace!("calling gl.Uniform1ui({:?}, {:?});", location, v0);
31325 }
31326 let out = call_atomic_ptr_2arg("glUniform1ui", &self.glUniform1ui_p, location, v0);
31327 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31328 {
31329 self.automatic_glGetError("glUniform1ui");
31330 }
31331 out
31332 }
31333 #[doc(hidden)]
31334 pub unsafe fn Uniform1ui_load_with_dyn(
31335 &self,
31336 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31337 ) -> bool {
31338 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1ui\0", &self.glUniform1ui_p)
31339 }
31340 #[inline]
31341 #[doc(hidden)]
31342 pub fn Uniform1ui_is_loaded(&self) -> bool {
31343 !self.glUniform1ui_p.load(RELAX).is_null()
31344 }
31345 #[cfg_attr(feature = "inline", inline)]
31348 #[cfg_attr(feature = "inline_always", inline(always))]
31349 pub unsafe fn Uniform1uiv(&self, location: GLint, count: GLsizei, value: *const GLuint) {
31350 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31351 {
31352 trace!(
31353 "calling gl.Uniform1uiv({:?}, {:?}, {:p});",
31354 location,
31355 count,
31356 value
31357 );
31358 }
31359 let out = call_atomic_ptr_3arg(
31360 "glUniform1uiv",
31361 &self.glUniform1uiv_p,
31362 location,
31363 count,
31364 value,
31365 );
31366 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31367 {
31368 self.automatic_glGetError("glUniform1uiv");
31369 }
31370 out
31371 }
31372 #[doc(hidden)]
31373 pub unsafe fn Uniform1uiv_load_with_dyn(
31374 &self,
31375 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31376 ) -> bool {
31377 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform1uiv\0", &self.glUniform1uiv_p)
31378 }
31379 #[inline]
31380 #[doc(hidden)]
31381 pub fn Uniform1uiv_is_loaded(&self) -> bool {
31382 !self.glUniform1uiv_p.load(RELAX).is_null()
31383 }
31384 #[cfg_attr(feature = "inline", inline)]
31386 #[cfg_attr(feature = "inline_always", inline(always))]
31387 pub unsafe fn Uniform2d(&self, location: GLint, x: GLdouble, y: GLdouble) {
31388 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31389 {
31390 trace!("calling gl.Uniform2d({:?}, {:?}, {:?});", location, x, y);
31391 }
31392 let out = call_atomic_ptr_3arg("glUniform2d", &self.glUniform2d_p, location, x, y);
31393 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31394 {
31395 self.automatic_glGetError("glUniform2d");
31396 }
31397 out
31398 }
31399 #[doc(hidden)]
31400 pub unsafe fn Uniform2d_load_with_dyn(
31401 &self,
31402 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31403 ) -> bool {
31404 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2d\0", &self.glUniform2d_p)
31405 }
31406 #[inline]
31407 #[doc(hidden)]
31408 pub fn Uniform2d_is_loaded(&self) -> bool {
31409 !self.glUniform2d_p.load(RELAX).is_null()
31410 }
31411 #[cfg_attr(feature = "inline", inline)]
31414 #[cfg_attr(feature = "inline_always", inline(always))]
31415 pub unsafe fn Uniform2dv(&self, location: GLint, count: GLsizei, value: *const GLdouble) {
31416 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31417 {
31418 trace!(
31419 "calling gl.Uniform2dv({:?}, {:?}, {:p});",
31420 location,
31421 count,
31422 value
31423 );
31424 }
31425 let out =
31426 call_atomic_ptr_3arg("glUniform2dv", &self.glUniform2dv_p, location, count, value);
31427 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31428 {
31429 self.automatic_glGetError("glUniform2dv");
31430 }
31431 out
31432 }
31433 #[doc(hidden)]
31434 pub unsafe fn Uniform2dv_load_with_dyn(
31435 &self,
31436 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31437 ) -> bool {
31438 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2dv\0", &self.glUniform2dv_p)
31439 }
31440 #[inline]
31441 #[doc(hidden)]
31442 pub fn Uniform2dv_is_loaded(&self) -> bool {
31443 !self.glUniform2dv_p.load(RELAX).is_null()
31444 }
31445 #[cfg_attr(feature = "inline", inline)]
31447 #[cfg_attr(feature = "inline_always", inline(always))]
31448 pub unsafe fn Uniform2f(&self, location: GLint, v0: GLfloat, v1: GLfloat) {
31449 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31450 {
31451 trace!("calling gl.Uniform2f({:?}, {:?}, {:?});", location, v0, v1);
31452 }
31453 let out = call_atomic_ptr_3arg("glUniform2f", &self.glUniform2f_p, location, v0, v1);
31454 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31455 {
31456 self.automatic_glGetError("glUniform2f");
31457 }
31458 out
31459 }
31460 #[doc(hidden)]
31461 pub unsafe fn Uniform2f_load_with_dyn(
31462 &self,
31463 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31464 ) -> bool {
31465 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2f\0", &self.glUniform2f_p)
31466 }
31467 #[inline]
31468 #[doc(hidden)]
31469 pub fn Uniform2f_is_loaded(&self) -> bool {
31470 !self.glUniform2f_p.load(RELAX).is_null()
31471 }
31472 #[cfg_attr(feature = "inline", inline)]
31475 #[cfg_attr(feature = "inline_always", inline(always))]
31476 pub unsafe fn Uniform2fv(&self, location: GLint, count: GLsizei, value: *const GLfloat) {
31477 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31478 {
31479 trace!(
31480 "calling gl.Uniform2fv({:?}, {:?}, {:p});",
31481 location,
31482 count,
31483 value
31484 );
31485 }
31486 let out =
31487 call_atomic_ptr_3arg("glUniform2fv", &self.glUniform2fv_p, location, count, value);
31488 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31489 {
31490 self.automatic_glGetError("glUniform2fv");
31491 }
31492 out
31493 }
31494 #[doc(hidden)]
31495 pub unsafe fn Uniform2fv_load_with_dyn(
31496 &self,
31497 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31498 ) -> bool {
31499 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2fv\0", &self.glUniform2fv_p)
31500 }
31501 #[inline]
31502 #[doc(hidden)]
31503 pub fn Uniform2fv_is_loaded(&self) -> bool {
31504 !self.glUniform2fv_p.load(RELAX).is_null()
31505 }
31506 #[cfg_attr(feature = "inline", inline)]
31508 #[cfg_attr(feature = "inline_always", inline(always))]
31509 pub unsafe fn Uniform2i(&self, location: GLint, v0: GLint, v1: GLint) {
31510 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31511 {
31512 trace!("calling gl.Uniform2i({:?}, {:?}, {:?});", location, v0, v1);
31513 }
31514 let out = call_atomic_ptr_3arg("glUniform2i", &self.glUniform2i_p, location, v0, v1);
31515 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31516 {
31517 self.automatic_glGetError("glUniform2i");
31518 }
31519 out
31520 }
31521 #[doc(hidden)]
31522 pub unsafe fn Uniform2i_load_with_dyn(
31523 &self,
31524 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31525 ) -> bool {
31526 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2i\0", &self.glUniform2i_p)
31527 }
31528 #[inline]
31529 #[doc(hidden)]
31530 pub fn Uniform2i_is_loaded(&self) -> bool {
31531 !self.glUniform2i_p.load(RELAX).is_null()
31532 }
31533 #[cfg_attr(feature = "inline", inline)]
31536 #[cfg_attr(feature = "inline_always", inline(always))]
31537 pub unsafe fn Uniform2iv(&self, location: GLint, count: GLsizei, value: *const GLint) {
31538 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31539 {
31540 trace!(
31541 "calling gl.Uniform2iv({:?}, {:?}, {:p});",
31542 location,
31543 count,
31544 value
31545 );
31546 }
31547 let out =
31548 call_atomic_ptr_3arg("glUniform2iv", &self.glUniform2iv_p, location, count, value);
31549 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31550 {
31551 self.automatic_glGetError("glUniform2iv");
31552 }
31553 out
31554 }
31555 #[doc(hidden)]
31556 pub unsafe fn Uniform2iv_load_with_dyn(
31557 &self,
31558 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31559 ) -> bool {
31560 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2iv\0", &self.glUniform2iv_p)
31561 }
31562 #[inline]
31563 #[doc(hidden)]
31564 pub fn Uniform2iv_is_loaded(&self) -> bool {
31565 !self.glUniform2iv_p.load(RELAX).is_null()
31566 }
31567 #[cfg_attr(feature = "inline", inline)]
31569 #[cfg_attr(feature = "inline_always", inline(always))]
31570 pub unsafe fn Uniform2ui(&self, location: GLint, v0: GLuint, v1: GLuint) {
31571 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31572 {
31573 trace!("calling gl.Uniform2ui({:?}, {:?}, {:?});", location, v0, v1);
31574 }
31575 let out = call_atomic_ptr_3arg("glUniform2ui", &self.glUniform2ui_p, location, v0, v1);
31576 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31577 {
31578 self.automatic_glGetError("glUniform2ui");
31579 }
31580 out
31581 }
31582 #[doc(hidden)]
31583 pub unsafe fn Uniform2ui_load_with_dyn(
31584 &self,
31585 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31586 ) -> bool {
31587 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2ui\0", &self.glUniform2ui_p)
31588 }
31589 #[inline]
31590 #[doc(hidden)]
31591 pub fn Uniform2ui_is_loaded(&self) -> bool {
31592 !self.glUniform2ui_p.load(RELAX).is_null()
31593 }
31594 #[cfg_attr(feature = "inline", inline)]
31597 #[cfg_attr(feature = "inline_always", inline(always))]
31598 pub unsafe fn Uniform2uiv(&self, location: GLint, count: GLsizei, value: *const GLuint) {
31599 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31600 {
31601 trace!(
31602 "calling gl.Uniform2uiv({:?}, {:?}, {:p});",
31603 location,
31604 count,
31605 value
31606 );
31607 }
31608 let out = call_atomic_ptr_3arg(
31609 "glUniform2uiv",
31610 &self.glUniform2uiv_p,
31611 location,
31612 count,
31613 value,
31614 );
31615 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31616 {
31617 self.automatic_glGetError("glUniform2uiv");
31618 }
31619 out
31620 }
31621 #[doc(hidden)]
31622 pub unsafe fn Uniform2uiv_load_with_dyn(
31623 &self,
31624 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31625 ) -> bool {
31626 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform2uiv\0", &self.glUniform2uiv_p)
31627 }
31628 #[inline]
31629 #[doc(hidden)]
31630 pub fn Uniform2uiv_is_loaded(&self) -> bool {
31631 !self.glUniform2uiv_p.load(RELAX).is_null()
31632 }
31633 #[cfg_attr(feature = "inline", inline)]
31635 #[cfg_attr(feature = "inline_always", inline(always))]
31636 pub unsafe fn Uniform3d(&self, location: GLint, x: GLdouble, y: GLdouble, z: GLdouble) {
31637 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31638 {
31639 trace!(
31640 "calling gl.Uniform3d({:?}, {:?}, {:?}, {:?});",
31641 location,
31642 x,
31643 y,
31644 z
31645 );
31646 }
31647 let out = call_atomic_ptr_4arg("glUniform3d", &self.glUniform3d_p, location, x, y, z);
31648 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31649 {
31650 self.automatic_glGetError("glUniform3d");
31651 }
31652 out
31653 }
31654 #[doc(hidden)]
31655 pub unsafe fn Uniform3d_load_with_dyn(
31656 &self,
31657 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31658 ) -> bool {
31659 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3d\0", &self.glUniform3d_p)
31660 }
31661 #[inline]
31662 #[doc(hidden)]
31663 pub fn Uniform3d_is_loaded(&self) -> bool {
31664 !self.glUniform3d_p.load(RELAX).is_null()
31665 }
31666 #[cfg_attr(feature = "inline", inline)]
31669 #[cfg_attr(feature = "inline_always", inline(always))]
31670 pub unsafe fn Uniform3dv(&self, location: GLint, count: GLsizei, value: *const GLdouble) {
31671 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31672 {
31673 trace!(
31674 "calling gl.Uniform3dv({:?}, {:?}, {:p});",
31675 location,
31676 count,
31677 value
31678 );
31679 }
31680 let out =
31681 call_atomic_ptr_3arg("glUniform3dv", &self.glUniform3dv_p, location, count, value);
31682 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31683 {
31684 self.automatic_glGetError("glUniform3dv");
31685 }
31686 out
31687 }
31688 #[doc(hidden)]
31689 pub unsafe fn Uniform3dv_load_with_dyn(
31690 &self,
31691 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31692 ) -> bool {
31693 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3dv\0", &self.glUniform3dv_p)
31694 }
31695 #[inline]
31696 #[doc(hidden)]
31697 pub fn Uniform3dv_is_loaded(&self) -> bool {
31698 !self.glUniform3dv_p.load(RELAX).is_null()
31699 }
31700 #[cfg_attr(feature = "inline", inline)]
31702 #[cfg_attr(feature = "inline_always", inline(always))]
31703 pub unsafe fn Uniform3f(&self, location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat) {
31704 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31705 {
31706 trace!(
31707 "calling gl.Uniform3f({:?}, {:?}, {:?}, {:?});",
31708 location,
31709 v0,
31710 v1,
31711 v2
31712 );
31713 }
31714 let out =
31715 call_atomic_ptr_4arg("glUniform3f", &self.glUniform3f_p, location, v0, v1, v2);
31716 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31717 {
31718 self.automatic_glGetError("glUniform3f");
31719 }
31720 out
31721 }
31722 #[doc(hidden)]
31723 pub unsafe fn Uniform3f_load_with_dyn(
31724 &self,
31725 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31726 ) -> bool {
31727 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3f\0", &self.glUniform3f_p)
31728 }
31729 #[inline]
31730 #[doc(hidden)]
31731 pub fn Uniform3f_is_loaded(&self) -> bool {
31732 !self.glUniform3f_p.load(RELAX).is_null()
31733 }
31734 #[cfg_attr(feature = "inline", inline)]
31737 #[cfg_attr(feature = "inline_always", inline(always))]
31738 pub unsafe fn Uniform3fv(&self, location: GLint, count: GLsizei, value: *const GLfloat) {
31739 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31740 {
31741 trace!(
31742 "calling gl.Uniform3fv({:?}, {:?}, {:p});",
31743 location,
31744 count,
31745 value
31746 );
31747 }
31748 let out =
31749 call_atomic_ptr_3arg("glUniform3fv", &self.glUniform3fv_p, location, count, value);
31750 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31751 {
31752 self.automatic_glGetError("glUniform3fv");
31753 }
31754 out
31755 }
31756 #[doc(hidden)]
31757 pub unsafe fn Uniform3fv_load_with_dyn(
31758 &self,
31759 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31760 ) -> bool {
31761 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3fv\0", &self.glUniform3fv_p)
31762 }
31763 #[inline]
31764 #[doc(hidden)]
31765 pub fn Uniform3fv_is_loaded(&self) -> bool {
31766 !self.glUniform3fv_p.load(RELAX).is_null()
31767 }
31768 #[cfg_attr(feature = "inline", inline)]
31770 #[cfg_attr(feature = "inline_always", inline(always))]
31771 pub unsafe fn Uniform3i(&self, location: GLint, v0: GLint, v1: GLint, v2: GLint) {
31772 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31773 {
31774 trace!(
31775 "calling gl.Uniform3i({:?}, {:?}, {:?}, {:?});",
31776 location,
31777 v0,
31778 v1,
31779 v2
31780 );
31781 }
31782 let out =
31783 call_atomic_ptr_4arg("glUniform3i", &self.glUniform3i_p, location, v0, v1, v2);
31784 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31785 {
31786 self.automatic_glGetError("glUniform3i");
31787 }
31788 out
31789 }
31790 #[doc(hidden)]
31791 pub unsafe fn Uniform3i_load_with_dyn(
31792 &self,
31793 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31794 ) -> bool {
31795 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3i\0", &self.glUniform3i_p)
31796 }
31797 #[inline]
31798 #[doc(hidden)]
31799 pub fn Uniform3i_is_loaded(&self) -> bool {
31800 !self.glUniform3i_p.load(RELAX).is_null()
31801 }
31802 #[cfg_attr(feature = "inline", inline)]
31805 #[cfg_attr(feature = "inline_always", inline(always))]
31806 pub unsafe fn Uniform3iv(&self, location: GLint, count: GLsizei, value: *const GLint) {
31807 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31808 {
31809 trace!(
31810 "calling gl.Uniform3iv({:?}, {:?}, {:p});",
31811 location,
31812 count,
31813 value
31814 );
31815 }
31816 let out =
31817 call_atomic_ptr_3arg("glUniform3iv", &self.glUniform3iv_p, location, count, value);
31818 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31819 {
31820 self.automatic_glGetError("glUniform3iv");
31821 }
31822 out
31823 }
31824 #[doc(hidden)]
31825 pub unsafe fn Uniform3iv_load_with_dyn(
31826 &self,
31827 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31828 ) -> bool {
31829 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3iv\0", &self.glUniform3iv_p)
31830 }
31831 #[inline]
31832 #[doc(hidden)]
31833 pub fn Uniform3iv_is_loaded(&self) -> bool {
31834 !self.glUniform3iv_p.load(RELAX).is_null()
31835 }
31836 #[cfg_attr(feature = "inline", inline)]
31838 #[cfg_attr(feature = "inline_always", inline(always))]
31839 pub unsafe fn Uniform3ui(&self, location: GLint, v0: GLuint, v1: GLuint, v2: GLuint) {
31840 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31841 {
31842 trace!(
31843 "calling gl.Uniform3ui({:?}, {:?}, {:?}, {:?});",
31844 location,
31845 v0,
31846 v1,
31847 v2
31848 );
31849 }
31850 let out =
31851 call_atomic_ptr_4arg("glUniform3ui", &self.glUniform3ui_p, location, v0, v1, v2);
31852 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31853 {
31854 self.automatic_glGetError("glUniform3ui");
31855 }
31856 out
31857 }
31858 #[doc(hidden)]
31859 pub unsafe fn Uniform3ui_load_with_dyn(
31860 &self,
31861 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31862 ) -> bool {
31863 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3ui\0", &self.glUniform3ui_p)
31864 }
31865 #[inline]
31866 #[doc(hidden)]
31867 pub fn Uniform3ui_is_loaded(&self) -> bool {
31868 !self.glUniform3ui_p.load(RELAX).is_null()
31869 }
31870 #[cfg_attr(feature = "inline", inline)]
31873 #[cfg_attr(feature = "inline_always", inline(always))]
31874 pub unsafe fn Uniform3uiv(&self, location: GLint, count: GLsizei, value: *const GLuint) {
31875 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31876 {
31877 trace!(
31878 "calling gl.Uniform3uiv({:?}, {:?}, {:p});",
31879 location,
31880 count,
31881 value
31882 );
31883 }
31884 let out = call_atomic_ptr_3arg(
31885 "glUniform3uiv",
31886 &self.glUniform3uiv_p,
31887 location,
31888 count,
31889 value,
31890 );
31891 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31892 {
31893 self.automatic_glGetError("glUniform3uiv");
31894 }
31895 out
31896 }
31897 #[doc(hidden)]
31898 pub unsafe fn Uniform3uiv_load_with_dyn(
31899 &self,
31900 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31901 ) -> bool {
31902 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform3uiv\0", &self.glUniform3uiv_p)
31903 }
31904 #[inline]
31905 #[doc(hidden)]
31906 pub fn Uniform3uiv_is_loaded(&self) -> bool {
31907 !self.glUniform3uiv_p.load(RELAX).is_null()
31908 }
31909 #[cfg_attr(feature = "inline", inline)]
31911 #[cfg_attr(feature = "inline_always", inline(always))]
31912 pub unsafe fn Uniform4d(
31913 &self,
31914 location: GLint,
31915 x: GLdouble,
31916 y: GLdouble,
31917 z: GLdouble,
31918 w: GLdouble,
31919 ) {
31920 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31921 {
31922 trace!(
31923 "calling gl.Uniform4d({:?}, {:?}, {:?}, {:?}, {:?});",
31924 location,
31925 x,
31926 y,
31927 z,
31928 w
31929 );
31930 }
31931 let out =
31932 call_atomic_ptr_5arg("glUniform4d", &self.glUniform4d_p, location, x, y, z, w);
31933 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31934 {
31935 self.automatic_glGetError("glUniform4d");
31936 }
31937 out
31938 }
31939 #[doc(hidden)]
31940 pub unsafe fn Uniform4d_load_with_dyn(
31941 &self,
31942 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31943 ) -> bool {
31944 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4d\0", &self.glUniform4d_p)
31945 }
31946 #[inline]
31947 #[doc(hidden)]
31948 pub fn Uniform4d_is_loaded(&self) -> bool {
31949 !self.glUniform4d_p.load(RELAX).is_null()
31950 }
31951 #[cfg_attr(feature = "inline", inline)]
31954 #[cfg_attr(feature = "inline_always", inline(always))]
31955 pub unsafe fn Uniform4dv(&self, location: GLint, count: GLsizei, value: *const GLdouble) {
31956 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31957 {
31958 trace!(
31959 "calling gl.Uniform4dv({:?}, {:?}, {:p});",
31960 location,
31961 count,
31962 value
31963 );
31964 }
31965 let out =
31966 call_atomic_ptr_3arg("glUniform4dv", &self.glUniform4dv_p, location, count, value);
31967 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
31968 {
31969 self.automatic_glGetError("glUniform4dv");
31970 }
31971 out
31972 }
31973 #[doc(hidden)]
31974 pub unsafe fn Uniform4dv_load_with_dyn(
31975 &self,
31976 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
31977 ) -> bool {
31978 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4dv\0", &self.glUniform4dv_p)
31979 }
31980 #[inline]
31981 #[doc(hidden)]
31982 pub fn Uniform4dv_is_loaded(&self) -> bool {
31983 !self.glUniform4dv_p.load(RELAX).is_null()
31984 }
31985 #[cfg_attr(feature = "inline", inline)]
31987 #[cfg_attr(feature = "inline_always", inline(always))]
31988 pub unsafe fn Uniform4f(
31989 &self,
31990 location: GLint,
31991 v0: GLfloat,
31992 v1: GLfloat,
31993 v2: GLfloat,
31994 v3: GLfloat,
31995 ) {
31996 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
31997 {
31998 trace!(
31999 "calling gl.Uniform4f({:?}, {:?}, {:?}, {:?}, {:?});",
32000 location,
32001 v0,
32002 v1,
32003 v2,
32004 v3
32005 );
32006 }
32007 let out =
32008 call_atomic_ptr_5arg("glUniform4f", &self.glUniform4f_p, location, v0, v1, v2, v3);
32009 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32010 {
32011 self.automatic_glGetError("glUniform4f");
32012 }
32013 out
32014 }
32015 #[doc(hidden)]
32016 pub unsafe fn Uniform4f_load_with_dyn(
32017 &self,
32018 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32019 ) -> bool {
32020 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4f\0", &self.glUniform4f_p)
32021 }
32022 #[inline]
32023 #[doc(hidden)]
32024 pub fn Uniform4f_is_loaded(&self) -> bool {
32025 !self.glUniform4f_p.load(RELAX).is_null()
32026 }
32027 #[cfg_attr(feature = "inline", inline)]
32030 #[cfg_attr(feature = "inline_always", inline(always))]
32031 pub unsafe fn Uniform4fv(&self, location: GLint, count: GLsizei, value: *const GLfloat) {
32032 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32033 {
32034 trace!(
32035 "calling gl.Uniform4fv({:?}, {:?}, {:p});",
32036 location,
32037 count,
32038 value
32039 );
32040 }
32041 let out =
32042 call_atomic_ptr_3arg("glUniform4fv", &self.glUniform4fv_p, location, count, value);
32043 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32044 {
32045 self.automatic_glGetError("glUniform4fv");
32046 }
32047 out
32048 }
32049 #[doc(hidden)]
32050 pub unsafe fn Uniform4fv_load_with_dyn(
32051 &self,
32052 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32053 ) -> bool {
32054 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4fv\0", &self.glUniform4fv_p)
32055 }
32056 #[inline]
32057 #[doc(hidden)]
32058 pub fn Uniform4fv_is_loaded(&self) -> bool {
32059 !self.glUniform4fv_p.load(RELAX).is_null()
32060 }
32061 #[cfg_attr(feature = "inline", inline)]
32063 #[cfg_attr(feature = "inline_always", inline(always))]
32064 pub unsafe fn Uniform4i(
32065 &self,
32066 location: GLint,
32067 v0: GLint,
32068 v1: GLint,
32069 v2: GLint,
32070 v3: GLint,
32071 ) {
32072 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32073 {
32074 trace!(
32075 "calling gl.Uniform4i({:?}, {:?}, {:?}, {:?}, {:?});",
32076 location,
32077 v0,
32078 v1,
32079 v2,
32080 v3
32081 );
32082 }
32083 let out =
32084 call_atomic_ptr_5arg("glUniform4i", &self.glUniform4i_p, location, v0, v1, v2, v3);
32085 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32086 {
32087 self.automatic_glGetError("glUniform4i");
32088 }
32089 out
32090 }
32091 #[doc(hidden)]
32092 pub unsafe fn Uniform4i_load_with_dyn(
32093 &self,
32094 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32095 ) -> bool {
32096 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4i\0", &self.glUniform4i_p)
32097 }
32098 #[inline]
32099 #[doc(hidden)]
32100 pub fn Uniform4i_is_loaded(&self) -> bool {
32101 !self.glUniform4i_p.load(RELAX).is_null()
32102 }
32103 #[cfg_attr(feature = "inline", inline)]
32106 #[cfg_attr(feature = "inline_always", inline(always))]
32107 pub unsafe fn Uniform4iv(&self, location: GLint, count: GLsizei, value: *const GLint) {
32108 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32109 {
32110 trace!(
32111 "calling gl.Uniform4iv({:?}, {:?}, {:p});",
32112 location,
32113 count,
32114 value
32115 );
32116 }
32117 let out =
32118 call_atomic_ptr_3arg("glUniform4iv", &self.glUniform4iv_p, location, count, value);
32119 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32120 {
32121 self.automatic_glGetError("glUniform4iv");
32122 }
32123 out
32124 }
32125 #[doc(hidden)]
32126 pub unsafe fn Uniform4iv_load_with_dyn(
32127 &self,
32128 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32129 ) -> bool {
32130 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4iv\0", &self.glUniform4iv_p)
32131 }
32132 #[inline]
32133 #[doc(hidden)]
32134 pub fn Uniform4iv_is_loaded(&self) -> bool {
32135 !self.glUniform4iv_p.load(RELAX).is_null()
32136 }
32137 #[cfg_attr(feature = "inline", inline)]
32139 #[cfg_attr(feature = "inline_always", inline(always))]
32140 pub unsafe fn Uniform4ui(
32141 &self,
32142 location: GLint,
32143 v0: GLuint,
32144 v1: GLuint,
32145 v2: GLuint,
32146 v3: GLuint,
32147 ) {
32148 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32149 {
32150 trace!(
32151 "calling gl.Uniform4ui({:?}, {:?}, {:?}, {:?}, {:?});",
32152 location,
32153 v0,
32154 v1,
32155 v2,
32156 v3
32157 );
32158 }
32159 let out = call_atomic_ptr_5arg(
32160 "glUniform4ui",
32161 &self.glUniform4ui_p,
32162 location,
32163 v0,
32164 v1,
32165 v2,
32166 v3,
32167 );
32168 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32169 {
32170 self.automatic_glGetError("glUniform4ui");
32171 }
32172 out
32173 }
32174 #[doc(hidden)]
32175 pub unsafe fn Uniform4ui_load_with_dyn(
32176 &self,
32177 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32178 ) -> bool {
32179 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4ui\0", &self.glUniform4ui_p)
32180 }
32181 #[inline]
32182 #[doc(hidden)]
32183 pub fn Uniform4ui_is_loaded(&self) -> bool {
32184 !self.glUniform4ui_p.load(RELAX).is_null()
32185 }
32186 #[cfg_attr(feature = "inline", inline)]
32189 #[cfg_attr(feature = "inline_always", inline(always))]
32190 pub unsafe fn Uniform4uiv(&self, location: GLint, count: GLsizei, value: *const GLuint) {
32191 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32192 {
32193 trace!(
32194 "calling gl.Uniform4uiv({:?}, {:?}, {:p});",
32195 location,
32196 count,
32197 value
32198 );
32199 }
32200 let out = call_atomic_ptr_3arg(
32201 "glUniform4uiv",
32202 &self.glUniform4uiv_p,
32203 location,
32204 count,
32205 value,
32206 );
32207 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32208 {
32209 self.automatic_glGetError("glUniform4uiv");
32210 }
32211 out
32212 }
32213 #[doc(hidden)]
32214 pub unsafe fn Uniform4uiv_load_with_dyn(
32215 &self,
32216 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32217 ) -> bool {
32218 load_dyn_name_atomic_ptr(get_proc_address, b"glUniform4uiv\0", &self.glUniform4uiv_p)
32219 }
32220 #[inline]
32221 #[doc(hidden)]
32222 pub fn Uniform4uiv_is_loaded(&self) -> bool {
32223 !self.glUniform4uiv_p.load(RELAX).is_null()
32224 }
32225 #[cfg_attr(feature = "inline", inline)]
32227 #[cfg_attr(feature = "inline_always", inline(always))]
32228 pub unsafe fn UniformBlockBinding(
32229 &self,
32230 program: GLuint,
32231 uniformBlockIndex: GLuint,
32232 uniformBlockBinding: GLuint,
32233 ) {
32234 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32235 {
32236 trace!(
32237 "calling gl.UniformBlockBinding({:?}, {:?}, {:?});",
32238 program,
32239 uniformBlockIndex,
32240 uniformBlockBinding
32241 );
32242 }
32243 let out = call_atomic_ptr_3arg(
32244 "glUniformBlockBinding",
32245 &self.glUniformBlockBinding_p,
32246 program,
32247 uniformBlockIndex,
32248 uniformBlockBinding,
32249 );
32250 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32251 {
32252 self.automatic_glGetError("glUniformBlockBinding");
32253 }
32254 out
32255 }
32256 #[doc(hidden)]
32257 pub unsafe fn UniformBlockBinding_load_with_dyn(
32258 &self,
32259 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32260 ) -> bool {
32261 load_dyn_name_atomic_ptr(
32262 get_proc_address,
32263 b"glUniformBlockBinding\0",
32264 &self.glUniformBlockBinding_p,
32265 )
32266 }
32267 #[inline]
32268 #[doc(hidden)]
32269 pub fn UniformBlockBinding_is_loaded(&self) -> bool {
32270 !self.glUniformBlockBinding_p.load(RELAX).is_null()
32271 }
32272 #[cfg_attr(feature = "inline", inline)]
32275 #[cfg_attr(feature = "inline_always", inline(always))]
32276 pub unsafe fn UniformMatrix2dv(
32277 &self,
32278 location: GLint,
32279 count: GLsizei,
32280 transpose: GLboolean,
32281 value: *const GLdouble,
32282 ) {
32283 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32284 {
32285 trace!(
32286 "calling gl.UniformMatrix2dv({:?}, {:?}, {:?}, {:p});",
32287 location,
32288 count,
32289 transpose,
32290 value
32291 );
32292 }
32293 let out = call_atomic_ptr_4arg(
32294 "glUniformMatrix2dv",
32295 &self.glUniformMatrix2dv_p,
32296 location,
32297 count,
32298 transpose,
32299 value,
32300 );
32301 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32302 {
32303 self.automatic_glGetError("glUniformMatrix2dv");
32304 }
32305 out
32306 }
32307 #[doc(hidden)]
32308 pub unsafe fn UniformMatrix2dv_load_with_dyn(
32309 &self,
32310 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32311 ) -> bool {
32312 load_dyn_name_atomic_ptr(
32313 get_proc_address,
32314 b"glUniformMatrix2dv\0",
32315 &self.glUniformMatrix2dv_p,
32316 )
32317 }
32318 #[inline]
32319 #[doc(hidden)]
32320 pub fn UniformMatrix2dv_is_loaded(&self) -> bool {
32321 !self.glUniformMatrix2dv_p.load(RELAX).is_null()
32322 }
32323 #[cfg_attr(feature = "inline", inline)]
32326 #[cfg_attr(feature = "inline_always", inline(always))]
32327 pub unsafe fn UniformMatrix2fv(
32328 &self,
32329 location: GLint,
32330 count: GLsizei,
32331 transpose: GLboolean,
32332 value: *const GLfloat,
32333 ) {
32334 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32335 {
32336 trace!(
32337 "calling gl.UniformMatrix2fv({:?}, {:?}, {:?}, {:p});",
32338 location,
32339 count,
32340 transpose,
32341 value
32342 );
32343 }
32344 let out = call_atomic_ptr_4arg(
32345 "glUniformMatrix2fv",
32346 &self.glUniformMatrix2fv_p,
32347 location,
32348 count,
32349 transpose,
32350 value,
32351 );
32352 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32353 {
32354 self.automatic_glGetError("glUniformMatrix2fv");
32355 }
32356 out
32357 }
32358 #[doc(hidden)]
32359 pub unsafe fn UniformMatrix2fv_load_with_dyn(
32360 &self,
32361 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32362 ) -> bool {
32363 load_dyn_name_atomic_ptr(
32364 get_proc_address,
32365 b"glUniformMatrix2fv\0",
32366 &self.glUniformMatrix2fv_p,
32367 )
32368 }
32369 #[inline]
32370 #[doc(hidden)]
32371 pub fn UniformMatrix2fv_is_loaded(&self) -> bool {
32372 !self.glUniformMatrix2fv_p.load(RELAX).is_null()
32373 }
32374 #[cfg_attr(feature = "inline", inline)]
32377 #[cfg_attr(feature = "inline_always", inline(always))]
32378 pub unsafe fn UniformMatrix2x3dv(
32379 &self,
32380 location: GLint,
32381 count: GLsizei,
32382 transpose: GLboolean,
32383 value: *const GLdouble,
32384 ) {
32385 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32386 {
32387 trace!(
32388 "calling gl.UniformMatrix2x3dv({:?}, {:?}, {:?}, {:p});",
32389 location,
32390 count,
32391 transpose,
32392 value
32393 );
32394 }
32395 let out = call_atomic_ptr_4arg(
32396 "glUniformMatrix2x3dv",
32397 &self.glUniformMatrix2x3dv_p,
32398 location,
32399 count,
32400 transpose,
32401 value,
32402 );
32403 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32404 {
32405 self.automatic_glGetError("glUniformMatrix2x3dv");
32406 }
32407 out
32408 }
32409 #[doc(hidden)]
32410 pub unsafe fn UniformMatrix2x3dv_load_with_dyn(
32411 &self,
32412 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32413 ) -> bool {
32414 load_dyn_name_atomic_ptr(
32415 get_proc_address,
32416 b"glUniformMatrix2x3dv\0",
32417 &self.glUniformMatrix2x3dv_p,
32418 )
32419 }
32420 #[inline]
32421 #[doc(hidden)]
32422 pub fn UniformMatrix2x3dv_is_loaded(&self) -> bool {
32423 !self.glUniformMatrix2x3dv_p.load(RELAX).is_null()
32424 }
32425 #[cfg_attr(feature = "inline", inline)]
32428 #[cfg_attr(feature = "inline_always", inline(always))]
32429 pub unsafe fn UniformMatrix2x3fv(
32430 &self,
32431 location: GLint,
32432 count: GLsizei,
32433 transpose: GLboolean,
32434 value: *const GLfloat,
32435 ) {
32436 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32437 {
32438 trace!(
32439 "calling gl.UniformMatrix2x3fv({:?}, {:?}, {:?}, {:p});",
32440 location,
32441 count,
32442 transpose,
32443 value
32444 );
32445 }
32446 let out = call_atomic_ptr_4arg(
32447 "glUniformMatrix2x3fv",
32448 &self.glUniformMatrix2x3fv_p,
32449 location,
32450 count,
32451 transpose,
32452 value,
32453 );
32454 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32455 {
32456 self.automatic_glGetError("glUniformMatrix2x3fv");
32457 }
32458 out
32459 }
32460 #[doc(hidden)]
32461 pub unsafe fn UniformMatrix2x3fv_load_with_dyn(
32462 &self,
32463 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32464 ) -> bool {
32465 load_dyn_name_atomic_ptr(
32466 get_proc_address,
32467 b"glUniformMatrix2x3fv\0",
32468 &self.glUniformMatrix2x3fv_p,
32469 )
32470 }
32471 #[inline]
32472 #[doc(hidden)]
32473 pub fn UniformMatrix2x3fv_is_loaded(&self) -> bool {
32474 !self.glUniformMatrix2x3fv_p.load(RELAX).is_null()
32475 }
32476 #[cfg_attr(feature = "inline", inline)]
32479 #[cfg_attr(feature = "inline_always", inline(always))]
32480 pub unsafe fn UniformMatrix2x4dv(
32481 &self,
32482 location: GLint,
32483 count: GLsizei,
32484 transpose: GLboolean,
32485 value: *const GLdouble,
32486 ) {
32487 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32488 {
32489 trace!(
32490 "calling gl.UniformMatrix2x4dv({:?}, {:?}, {:?}, {:p});",
32491 location,
32492 count,
32493 transpose,
32494 value
32495 );
32496 }
32497 let out = call_atomic_ptr_4arg(
32498 "glUniformMatrix2x4dv",
32499 &self.glUniformMatrix2x4dv_p,
32500 location,
32501 count,
32502 transpose,
32503 value,
32504 );
32505 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32506 {
32507 self.automatic_glGetError("glUniformMatrix2x4dv");
32508 }
32509 out
32510 }
32511 #[doc(hidden)]
32512 pub unsafe fn UniformMatrix2x4dv_load_with_dyn(
32513 &self,
32514 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32515 ) -> bool {
32516 load_dyn_name_atomic_ptr(
32517 get_proc_address,
32518 b"glUniformMatrix2x4dv\0",
32519 &self.glUniformMatrix2x4dv_p,
32520 )
32521 }
32522 #[inline]
32523 #[doc(hidden)]
32524 pub fn UniformMatrix2x4dv_is_loaded(&self) -> bool {
32525 !self.glUniformMatrix2x4dv_p.load(RELAX).is_null()
32526 }
32527 #[cfg_attr(feature = "inline", inline)]
32530 #[cfg_attr(feature = "inline_always", inline(always))]
32531 pub unsafe fn UniformMatrix2x4fv(
32532 &self,
32533 location: GLint,
32534 count: GLsizei,
32535 transpose: GLboolean,
32536 value: *const GLfloat,
32537 ) {
32538 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32539 {
32540 trace!(
32541 "calling gl.UniformMatrix2x4fv({:?}, {:?}, {:?}, {:p});",
32542 location,
32543 count,
32544 transpose,
32545 value
32546 );
32547 }
32548 let out = call_atomic_ptr_4arg(
32549 "glUniformMatrix2x4fv",
32550 &self.glUniformMatrix2x4fv_p,
32551 location,
32552 count,
32553 transpose,
32554 value,
32555 );
32556 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32557 {
32558 self.automatic_glGetError("glUniformMatrix2x4fv");
32559 }
32560 out
32561 }
32562 #[doc(hidden)]
32563 pub unsafe fn UniformMatrix2x4fv_load_with_dyn(
32564 &self,
32565 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32566 ) -> bool {
32567 load_dyn_name_atomic_ptr(
32568 get_proc_address,
32569 b"glUniformMatrix2x4fv\0",
32570 &self.glUniformMatrix2x4fv_p,
32571 )
32572 }
32573 #[inline]
32574 #[doc(hidden)]
32575 pub fn UniformMatrix2x4fv_is_loaded(&self) -> bool {
32576 !self.glUniformMatrix2x4fv_p.load(RELAX).is_null()
32577 }
32578 #[cfg_attr(feature = "inline", inline)]
32581 #[cfg_attr(feature = "inline_always", inline(always))]
32582 pub unsafe fn UniformMatrix3dv(
32583 &self,
32584 location: GLint,
32585 count: GLsizei,
32586 transpose: GLboolean,
32587 value: *const GLdouble,
32588 ) {
32589 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32590 {
32591 trace!(
32592 "calling gl.UniformMatrix3dv({:?}, {:?}, {:?}, {:p});",
32593 location,
32594 count,
32595 transpose,
32596 value
32597 );
32598 }
32599 let out = call_atomic_ptr_4arg(
32600 "glUniformMatrix3dv",
32601 &self.glUniformMatrix3dv_p,
32602 location,
32603 count,
32604 transpose,
32605 value,
32606 );
32607 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32608 {
32609 self.automatic_glGetError("glUniformMatrix3dv");
32610 }
32611 out
32612 }
32613 #[doc(hidden)]
32614 pub unsafe fn UniformMatrix3dv_load_with_dyn(
32615 &self,
32616 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32617 ) -> bool {
32618 load_dyn_name_atomic_ptr(
32619 get_proc_address,
32620 b"glUniformMatrix3dv\0",
32621 &self.glUniformMatrix3dv_p,
32622 )
32623 }
32624 #[inline]
32625 #[doc(hidden)]
32626 pub fn UniformMatrix3dv_is_loaded(&self) -> bool {
32627 !self.glUniformMatrix3dv_p.load(RELAX).is_null()
32628 }
32629 #[cfg_attr(feature = "inline", inline)]
32632 #[cfg_attr(feature = "inline_always", inline(always))]
32633 pub unsafe fn UniformMatrix3fv(
32634 &self,
32635 location: GLint,
32636 count: GLsizei,
32637 transpose: GLboolean,
32638 value: *const GLfloat,
32639 ) {
32640 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32641 {
32642 trace!(
32643 "calling gl.UniformMatrix3fv({:?}, {:?}, {:?}, {:p});",
32644 location,
32645 count,
32646 transpose,
32647 value
32648 );
32649 }
32650 let out = call_atomic_ptr_4arg(
32651 "glUniformMatrix3fv",
32652 &self.glUniformMatrix3fv_p,
32653 location,
32654 count,
32655 transpose,
32656 value,
32657 );
32658 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32659 {
32660 self.automatic_glGetError("glUniformMatrix3fv");
32661 }
32662 out
32663 }
32664 #[doc(hidden)]
32665 pub unsafe fn UniformMatrix3fv_load_with_dyn(
32666 &self,
32667 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32668 ) -> bool {
32669 load_dyn_name_atomic_ptr(
32670 get_proc_address,
32671 b"glUniformMatrix3fv\0",
32672 &self.glUniformMatrix3fv_p,
32673 )
32674 }
32675 #[inline]
32676 #[doc(hidden)]
32677 pub fn UniformMatrix3fv_is_loaded(&self) -> bool {
32678 !self.glUniformMatrix3fv_p.load(RELAX).is_null()
32679 }
32680 #[cfg_attr(feature = "inline", inline)]
32683 #[cfg_attr(feature = "inline_always", inline(always))]
32684 pub unsafe fn UniformMatrix3x2dv(
32685 &self,
32686 location: GLint,
32687 count: GLsizei,
32688 transpose: GLboolean,
32689 value: *const GLdouble,
32690 ) {
32691 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32692 {
32693 trace!(
32694 "calling gl.UniformMatrix3x2dv({:?}, {:?}, {:?}, {:p});",
32695 location,
32696 count,
32697 transpose,
32698 value
32699 );
32700 }
32701 let out = call_atomic_ptr_4arg(
32702 "glUniformMatrix3x2dv",
32703 &self.glUniformMatrix3x2dv_p,
32704 location,
32705 count,
32706 transpose,
32707 value,
32708 );
32709 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32710 {
32711 self.automatic_glGetError("glUniformMatrix3x2dv");
32712 }
32713 out
32714 }
32715 #[doc(hidden)]
32716 pub unsafe fn UniformMatrix3x2dv_load_with_dyn(
32717 &self,
32718 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32719 ) -> bool {
32720 load_dyn_name_atomic_ptr(
32721 get_proc_address,
32722 b"glUniformMatrix3x2dv\0",
32723 &self.glUniformMatrix3x2dv_p,
32724 )
32725 }
32726 #[inline]
32727 #[doc(hidden)]
32728 pub fn UniformMatrix3x2dv_is_loaded(&self) -> bool {
32729 !self.glUniformMatrix3x2dv_p.load(RELAX).is_null()
32730 }
32731 #[cfg_attr(feature = "inline", inline)]
32734 #[cfg_attr(feature = "inline_always", inline(always))]
32735 pub unsafe fn UniformMatrix3x2fv(
32736 &self,
32737 location: GLint,
32738 count: GLsizei,
32739 transpose: GLboolean,
32740 value: *const GLfloat,
32741 ) {
32742 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32743 {
32744 trace!(
32745 "calling gl.UniformMatrix3x2fv({:?}, {:?}, {:?}, {:p});",
32746 location,
32747 count,
32748 transpose,
32749 value
32750 );
32751 }
32752 let out = call_atomic_ptr_4arg(
32753 "glUniformMatrix3x2fv",
32754 &self.glUniformMatrix3x2fv_p,
32755 location,
32756 count,
32757 transpose,
32758 value,
32759 );
32760 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32761 {
32762 self.automatic_glGetError("glUniformMatrix3x2fv");
32763 }
32764 out
32765 }
32766 #[doc(hidden)]
32767 pub unsafe fn UniformMatrix3x2fv_load_with_dyn(
32768 &self,
32769 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32770 ) -> bool {
32771 load_dyn_name_atomic_ptr(
32772 get_proc_address,
32773 b"glUniformMatrix3x2fv\0",
32774 &self.glUniformMatrix3x2fv_p,
32775 )
32776 }
32777 #[inline]
32778 #[doc(hidden)]
32779 pub fn UniformMatrix3x2fv_is_loaded(&self) -> bool {
32780 !self.glUniformMatrix3x2fv_p.load(RELAX).is_null()
32781 }
32782 #[cfg_attr(feature = "inline", inline)]
32785 #[cfg_attr(feature = "inline_always", inline(always))]
32786 pub unsafe fn UniformMatrix3x4dv(
32787 &self,
32788 location: GLint,
32789 count: GLsizei,
32790 transpose: GLboolean,
32791 value: *const GLdouble,
32792 ) {
32793 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32794 {
32795 trace!(
32796 "calling gl.UniformMatrix3x4dv({:?}, {:?}, {:?}, {:p});",
32797 location,
32798 count,
32799 transpose,
32800 value
32801 );
32802 }
32803 let out = call_atomic_ptr_4arg(
32804 "glUniformMatrix3x4dv",
32805 &self.glUniformMatrix3x4dv_p,
32806 location,
32807 count,
32808 transpose,
32809 value,
32810 );
32811 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32812 {
32813 self.automatic_glGetError("glUniformMatrix3x4dv");
32814 }
32815 out
32816 }
32817 #[doc(hidden)]
32818 pub unsafe fn UniformMatrix3x4dv_load_with_dyn(
32819 &self,
32820 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32821 ) -> bool {
32822 load_dyn_name_atomic_ptr(
32823 get_proc_address,
32824 b"glUniformMatrix3x4dv\0",
32825 &self.glUniformMatrix3x4dv_p,
32826 )
32827 }
32828 #[inline]
32829 #[doc(hidden)]
32830 pub fn UniformMatrix3x4dv_is_loaded(&self) -> bool {
32831 !self.glUniformMatrix3x4dv_p.load(RELAX).is_null()
32832 }
32833 #[cfg_attr(feature = "inline", inline)]
32836 #[cfg_attr(feature = "inline_always", inline(always))]
32837 pub unsafe fn UniformMatrix3x4fv(
32838 &self,
32839 location: GLint,
32840 count: GLsizei,
32841 transpose: GLboolean,
32842 value: *const GLfloat,
32843 ) {
32844 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32845 {
32846 trace!(
32847 "calling gl.UniformMatrix3x4fv({:?}, {:?}, {:?}, {:p});",
32848 location,
32849 count,
32850 transpose,
32851 value
32852 );
32853 }
32854 let out = call_atomic_ptr_4arg(
32855 "glUniformMatrix3x4fv",
32856 &self.glUniformMatrix3x4fv_p,
32857 location,
32858 count,
32859 transpose,
32860 value,
32861 );
32862 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32863 {
32864 self.automatic_glGetError("glUniformMatrix3x4fv");
32865 }
32866 out
32867 }
32868 #[doc(hidden)]
32869 pub unsafe fn UniformMatrix3x4fv_load_with_dyn(
32870 &self,
32871 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32872 ) -> bool {
32873 load_dyn_name_atomic_ptr(
32874 get_proc_address,
32875 b"glUniformMatrix3x4fv\0",
32876 &self.glUniformMatrix3x4fv_p,
32877 )
32878 }
32879 #[inline]
32880 #[doc(hidden)]
32881 pub fn UniformMatrix3x4fv_is_loaded(&self) -> bool {
32882 !self.glUniformMatrix3x4fv_p.load(RELAX).is_null()
32883 }
32884 #[cfg_attr(feature = "inline", inline)]
32887 #[cfg_attr(feature = "inline_always", inline(always))]
32888 pub unsafe fn UniformMatrix4dv(
32889 &self,
32890 location: GLint,
32891 count: GLsizei,
32892 transpose: GLboolean,
32893 value: *const GLdouble,
32894 ) {
32895 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32896 {
32897 trace!(
32898 "calling gl.UniformMatrix4dv({:?}, {:?}, {:?}, {:p});",
32899 location,
32900 count,
32901 transpose,
32902 value
32903 );
32904 }
32905 let out = call_atomic_ptr_4arg(
32906 "glUniformMatrix4dv",
32907 &self.glUniformMatrix4dv_p,
32908 location,
32909 count,
32910 transpose,
32911 value,
32912 );
32913 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32914 {
32915 self.automatic_glGetError("glUniformMatrix4dv");
32916 }
32917 out
32918 }
32919 #[doc(hidden)]
32920 pub unsafe fn UniformMatrix4dv_load_with_dyn(
32921 &self,
32922 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32923 ) -> bool {
32924 load_dyn_name_atomic_ptr(
32925 get_proc_address,
32926 b"glUniformMatrix4dv\0",
32927 &self.glUniformMatrix4dv_p,
32928 )
32929 }
32930 #[inline]
32931 #[doc(hidden)]
32932 pub fn UniformMatrix4dv_is_loaded(&self) -> bool {
32933 !self.glUniformMatrix4dv_p.load(RELAX).is_null()
32934 }
32935 #[cfg_attr(feature = "inline", inline)]
32938 #[cfg_attr(feature = "inline_always", inline(always))]
32939 pub unsafe fn UniformMatrix4fv(
32940 &self,
32941 location: GLint,
32942 count: GLsizei,
32943 transpose: GLboolean,
32944 value: *const GLfloat,
32945 ) {
32946 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32947 {
32948 trace!(
32949 "calling gl.UniformMatrix4fv({:?}, {:?}, {:?}, {:p});",
32950 location,
32951 count,
32952 transpose,
32953 value
32954 );
32955 }
32956 let out = call_atomic_ptr_4arg(
32957 "glUniformMatrix4fv",
32958 &self.glUniformMatrix4fv_p,
32959 location,
32960 count,
32961 transpose,
32962 value,
32963 );
32964 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
32965 {
32966 self.automatic_glGetError("glUniformMatrix4fv");
32967 }
32968 out
32969 }
32970 #[doc(hidden)]
32971 pub unsafe fn UniformMatrix4fv_load_with_dyn(
32972 &self,
32973 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
32974 ) -> bool {
32975 load_dyn_name_atomic_ptr(
32976 get_proc_address,
32977 b"glUniformMatrix4fv\0",
32978 &self.glUniformMatrix4fv_p,
32979 )
32980 }
32981 #[inline]
32982 #[doc(hidden)]
32983 pub fn UniformMatrix4fv_is_loaded(&self) -> bool {
32984 !self.glUniformMatrix4fv_p.load(RELAX).is_null()
32985 }
32986 #[cfg_attr(feature = "inline", inline)]
32989 #[cfg_attr(feature = "inline_always", inline(always))]
32990 pub unsafe fn UniformMatrix4x2dv(
32991 &self,
32992 location: GLint,
32993 count: GLsizei,
32994 transpose: GLboolean,
32995 value: *const GLdouble,
32996 ) {
32997 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
32998 {
32999 trace!(
33000 "calling gl.UniformMatrix4x2dv({:?}, {:?}, {:?}, {:p});",
33001 location,
33002 count,
33003 transpose,
33004 value
33005 );
33006 }
33007 let out = call_atomic_ptr_4arg(
33008 "glUniformMatrix4x2dv",
33009 &self.glUniformMatrix4x2dv_p,
33010 location,
33011 count,
33012 transpose,
33013 value,
33014 );
33015 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33016 {
33017 self.automatic_glGetError("glUniformMatrix4x2dv");
33018 }
33019 out
33020 }
33021 #[doc(hidden)]
33022 pub unsafe fn UniformMatrix4x2dv_load_with_dyn(
33023 &self,
33024 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33025 ) -> bool {
33026 load_dyn_name_atomic_ptr(
33027 get_proc_address,
33028 b"glUniformMatrix4x2dv\0",
33029 &self.glUniformMatrix4x2dv_p,
33030 )
33031 }
33032 #[inline]
33033 #[doc(hidden)]
33034 pub fn UniformMatrix4x2dv_is_loaded(&self) -> bool {
33035 !self.glUniformMatrix4x2dv_p.load(RELAX).is_null()
33036 }
33037 #[cfg_attr(feature = "inline", inline)]
33040 #[cfg_attr(feature = "inline_always", inline(always))]
33041 pub unsafe fn UniformMatrix4x2fv(
33042 &self,
33043 location: GLint,
33044 count: GLsizei,
33045 transpose: GLboolean,
33046 value: *const GLfloat,
33047 ) {
33048 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33049 {
33050 trace!(
33051 "calling gl.UniformMatrix4x2fv({:?}, {:?}, {:?}, {:p});",
33052 location,
33053 count,
33054 transpose,
33055 value
33056 );
33057 }
33058 let out = call_atomic_ptr_4arg(
33059 "glUniformMatrix4x2fv",
33060 &self.glUniformMatrix4x2fv_p,
33061 location,
33062 count,
33063 transpose,
33064 value,
33065 );
33066 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33067 {
33068 self.automatic_glGetError("glUniformMatrix4x2fv");
33069 }
33070 out
33071 }
33072 #[doc(hidden)]
33073 pub unsafe fn UniformMatrix4x2fv_load_with_dyn(
33074 &self,
33075 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33076 ) -> bool {
33077 load_dyn_name_atomic_ptr(
33078 get_proc_address,
33079 b"glUniformMatrix4x2fv\0",
33080 &self.glUniformMatrix4x2fv_p,
33081 )
33082 }
33083 #[inline]
33084 #[doc(hidden)]
33085 pub fn UniformMatrix4x2fv_is_loaded(&self) -> bool {
33086 !self.glUniformMatrix4x2fv_p.load(RELAX).is_null()
33087 }
33088 #[cfg_attr(feature = "inline", inline)]
33091 #[cfg_attr(feature = "inline_always", inline(always))]
33092 pub unsafe fn UniformMatrix4x3dv(
33093 &self,
33094 location: GLint,
33095 count: GLsizei,
33096 transpose: GLboolean,
33097 value: *const GLdouble,
33098 ) {
33099 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33100 {
33101 trace!(
33102 "calling gl.UniformMatrix4x3dv({:?}, {:?}, {:?}, {:p});",
33103 location,
33104 count,
33105 transpose,
33106 value
33107 );
33108 }
33109 let out = call_atomic_ptr_4arg(
33110 "glUniformMatrix4x3dv",
33111 &self.glUniformMatrix4x3dv_p,
33112 location,
33113 count,
33114 transpose,
33115 value,
33116 );
33117 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33118 {
33119 self.automatic_glGetError("glUniformMatrix4x3dv");
33120 }
33121 out
33122 }
33123 #[doc(hidden)]
33124 pub unsafe fn UniformMatrix4x3dv_load_with_dyn(
33125 &self,
33126 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33127 ) -> bool {
33128 load_dyn_name_atomic_ptr(
33129 get_proc_address,
33130 b"glUniformMatrix4x3dv\0",
33131 &self.glUniformMatrix4x3dv_p,
33132 )
33133 }
33134 #[inline]
33135 #[doc(hidden)]
33136 pub fn UniformMatrix4x3dv_is_loaded(&self) -> bool {
33137 !self.glUniformMatrix4x3dv_p.load(RELAX).is_null()
33138 }
33139 #[cfg_attr(feature = "inline", inline)]
33142 #[cfg_attr(feature = "inline_always", inline(always))]
33143 pub unsafe fn UniformMatrix4x3fv(
33144 &self,
33145 location: GLint,
33146 count: GLsizei,
33147 transpose: GLboolean,
33148 value: *const GLfloat,
33149 ) {
33150 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33151 {
33152 trace!(
33153 "calling gl.UniformMatrix4x3fv({:?}, {:?}, {:?}, {:p});",
33154 location,
33155 count,
33156 transpose,
33157 value
33158 );
33159 }
33160 let out = call_atomic_ptr_4arg(
33161 "glUniformMatrix4x3fv",
33162 &self.glUniformMatrix4x3fv_p,
33163 location,
33164 count,
33165 transpose,
33166 value,
33167 );
33168 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33169 {
33170 self.automatic_glGetError("glUniformMatrix4x3fv");
33171 }
33172 out
33173 }
33174 #[doc(hidden)]
33175 pub unsafe fn UniformMatrix4x3fv_load_with_dyn(
33176 &self,
33177 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33178 ) -> bool {
33179 load_dyn_name_atomic_ptr(
33180 get_proc_address,
33181 b"glUniformMatrix4x3fv\0",
33182 &self.glUniformMatrix4x3fv_p,
33183 )
33184 }
33185 #[inline]
33186 #[doc(hidden)]
33187 pub fn UniformMatrix4x3fv_is_loaded(&self) -> bool {
33188 !self.glUniformMatrix4x3fv_p.load(RELAX).is_null()
33189 }
33190 #[cfg_attr(feature = "inline", inline)]
33194 #[cfg_attr(feature = "inline_always", inline(always))]
33195 pub unsafe fn UniformSubroutinesuiv(
33196 &self,
33197 shadertype: GLenum,
33198 count: GLsizei,
33199 indices: *const GLuint,
33200 ) {
33201 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33202 {
33203 trace!(
33204 "calling gl.UniformSubroutinesuiv({:#X}, {:?}, {:p});",
33205 shadertype,
33206 count,
33207 indices
33208 );
33209 }
33210 let out = call_atomic_ptr_3arg(
33211 "glUniformSubroutinesuiv",
33212 &self.glUniformSubroutinesuiv_p,
33213 shadertype,
33214 count,
33215 indices,
33216 );
33217 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33218 {
33219 self.automatic_glGetError("glUniformSubroutinesuiv");
33220 }
33221 out
33222 }
33223 #[doc(hidden)]
33224 pub unsafe fn UniformSubroutinesuiv_load_with_dyn(
33225 &self,
33226 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33227 ) -> bool {
33228 load_dyn_name_atomic_ptr(
33229 get_proc_address,
33230 b"glUniformSubroutinesuiv\0",
33231 &self.glUniformSubroutinesuiv_p,
33232 )
33233 }
33234 #[inline]
33235 #[doc(hidden)]
33236 pub fn UniformSubroutinesuiv_is_loaded(&self) -> bool {
33237 !self.glUniformSubroutinesuiv_p.load(RELAX).is_null()
33238 }
33239 #[cfg_attr(feature = "inline", inline)]
33242 #[cfg_attr(feature = "inline_always", inline(always))]
33243 pub unsafe fn UnmapBuffer(&self, target: GLenum) -> GLboolean {
33244 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33245 {
33246 trace!("calling gl.UnmapBuffer({:#X});", target);
33247 }
33248 let out = call_atomic_ptr_1arg("glUnmapBuffer", &self.glUnmapBuffer_p, target);
33249 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33250 {
33251 self.automatic_glGetError("glUnmapBuffer");
33252 }
33253 out
33254 }
33255 #[doc(hidden)]
33256 pub unsafe fn UnmapBuffer_load_with_dyn(
33257 &self,
33258 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33259 ) -> bool {
33260 load_dyn_name_atomic_ptr(get_proc_address, b"glUnmapBuffer\0", &self.glUnmapBuffer_p)
33261 }
33262 #[inline]
33263 #[doc(hidden)]
33264 pub fn UnmapBuffer_is_loaded(&self) -> bool {
33265 !self.glUnmapBuffer_p.load(RELAX).is_null()
33266 }
33267 #[cfg_attr(feature = "inline", inline)]
33269 #[cfg_attr(feature = "inline_always", inline(always))]
33270 pub unsafe fn UnmapNamedBuffer(&self, buffer: GLuint) -> GLboolean {
33271 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33272 {
33273 trace!("calling gl.UnmapNamedBuffer({:?});", buffer);
33274 }
33275 let out =
33276 call_atomic_ptr_1arg("glUnmapNamedBuffer", &self.glUnmapNamedBuffer_p, buffer);
33277 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33278 {
33279 self.automatic_glGetError("glUnmapNamedBuffer");
33280 }
33281 out
33282 }
33283 #[doc(hidden)]
33284 pub unsafe fn UnmapNamedBuffer_load_with_dyn(
33285 &self,
33286 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33287 ) -> bool {
33288 load_dyn_name_atomic_ptr(
33289 get_proc_address,
33290 b"glUnmapNamedBuffer\0",
33291 &self.glUnmapNamedBuffer_p,
33292 )
33293 }
33294 #[inline]
33295 #[doc(hidden)]
33296 pub fn UnmapNamedBuffer_is_loaded(&self) -> bool {
33297 !self.glUnmapNamedBuffer_p.load(RELAX).is_null()
33298 }
33299 #[cfg_attr(feature = "inline", inline)]
33301 #[cfg_attr(feature = "inline_always", inline(always))]
33302 pub unsafe fn UseProgram(&self, program: GLuint) {
33303 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33304 {
33305 trace!("calling gl.UseProgram({:?});", program);
33306 }
33307 let out = call_atomic_ptr_1arg("glUseProgram", &self.glUseProgram_p, program);
33308 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33309 {
33310 self.automatic_glGetError("glUseProgram");
33311 }
33312 out
33313 }
33314 #[doc(hidden)]
33315 pub unsafe fn UseProgram_load_with_dyn(
33316 &self,
33317 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33318 ) -> bool {
33319 load_dyn_name_atomic_ptr(get_proc_address, b"glUseProgram\0", &self.glUseProgram_p)
33320 }
33321 #[inline]
33322 #[doc(hidden)]
33323 pub fn UseProgram_is_loaded(&self) -> bool {
33324 !self.glUseProgram_p.load(RELAX).is_null()
33325 }
33326 #[cfg_attr(feature = "inline", inline)]
33329 #[cfg_attr(feature = "inline_always", inline(always))]
33330 pub unsafe fn UseProgramStages(
33331 &self,
33332 pipeline: GLuint,
33333 stages: GLbitfield,
33334 program: GLuint,
33335 ) {
33336 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33337 {
33338 trace!(
33339 "calling gl.UseProgramStages({:?}, {:?}, {:?});",
33340 pipeline,
33341 stages,
33342 program
33343 );
33344 }
33345 let out = call_atomic_ptr_3arg(
33346 "glUseProgramStages",
33347 &self.glUseProgramStages_p,
33348 pipeline,
33349 stages,
33350 program,
33351 );
33352 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33353 {
33354 self.automatic_glGetError("glUseProgramStages");
33355 }
33356 out
33357 }
33358 #[doc(hidden)]
33359 pub unsafe fn UseProgramStages_load_with_dyn(
33360 &self,
33361 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33362 ) -> bool {
33363 load_dyn_name_atomic_ptr(
33364 get_proc_address,
33365 b"glUseProgramStages\0",
33366 &self.glUseProgramStages_p,
33367 )
33368 }
33369 #[inline]
33370 #[doc(hidden)]
33371 pub fn UseProgramStages_is_loaded(&self) -> bool {
33372 !self.glUseProgramStages_p.load(RELAX).is_null()
33373 }
33374 #[cfg_attr(feature = "inline", inline)]
33376 #[cfg_attr(feature = "inline_always", inline(always))]
33377 pub unsafe fn ValidateProgram(&self, program: GLuint) {
33378 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33379 {
33380 trace!("calling gl.ValidateProgram({:?});", program);
33381 }
33382 let out = call_atomic_ptr_1arg("glValidateProgram", &self.glValidateProgram_p, program);
33383 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33384 {
33385 self.automatic_glGetError("glValidateProgram");
33386 }
33387 out
33388 }
33389 #[doc(hidden)]
33390 pub unsafe fn ValidateProgram_load_with_dyn(
33391 &self,
33392 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33393 ) -> bool {
33394 load_dyn_name_atomic_ptr(
33395 get_proc_address,
33396 b"glValidateProgram\0",
33397 &self.glValidateProgram_p,
33398 )
33399 }
33400 #[inline]
33401 #[doc(hidden)]
33402 pub fn ValidateProgram_is_loaded(&self) -> bool {
33403 !self.glValidateProgram_p.load(RELAX).is_null()
33404 }
33405 #[cfg_attr(feature = "inline", inline)]
33407 #[cfg_attr(feature = "inline_always", inline(always))]
33408 pub unsafe fn ValidateProgramPipeline(&self, pipeline: GLuint) {
33409 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33410 {
33411 trace!("calling gl.ValidateProgramPipeline({:?});", pipeline);
33412 }
33413 let out = call_atomic_ptr_1arg(
33414 "glValidateProgramPipeline",
33415 &self.glValidateProgramPipeline_p,
33416 pipeline,
33417 );
33418 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33419 {
33420 self.automatic_glGetError("glValidateProgramPipeline");
33421 }
33422 out
33423 }
33424 #[doc(hidden)]
33425 pub unsafe fn ValidateProgramPipeline_load_with_dyn(
33426 &self,
33427 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33428 ) -> bool {
33429 load_dyn_name_atomic_ptr(
33430 get_proc_address,
33431 b"glValidateProgramPipeline\0",
33432 &self.glValidateProgramPipeline_p,
33433 )
33434 }
33435 #[inline]
33436 #[doc(hidden)]
33437 pub fn ValidateProgramPipeline_is_loaded(&self) -> bool {
33438 !self.glValidateProgramPipeline_p.load(RELAX).is_null()
33439 }
33440 #[cfg_attr(feature = "inline", inline)]
33442 #[cfg_attr(feature = "inline_always", inline(always))]
33443 pub unsafe fn VertexArrayAttribBinding(
33444 &self,
33445 vaobj: GLuint,
33446 attribindex: GLuint,
33447 bindingindex: GLuint,
33448 ) {
33449 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33450 {
33451 trace!(
33452 "calling gl.VertexArrayAttribBinding({:?}, {:?}, {:?});",
33453 vaobj,
33454 attribindex,
33455 bindingindex
33456 );
33457 }
33458 let out = call_atomic_ptr_3arg(
33459 "glVertexArrayAttribBinding",
33460 &self.glVertexArrayAttribBinding_p,
33461 vaobj,
33462 attribindex,
33463 bindingindex,
33464 );
33465 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33466 {
33467 self.automatic_glGetError("glVertexArrayAttribBinding");
33468 }
33469 out
33470 }
33471 #[doc(hidden)]
33472 pub unsafe fn VertexArrayAttribBinding_load_with_dyn(
33473 &self,
33474 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33475 ) -> bool {
33476 load_dyn_name_atomic_ptr(
33477 get_proc_address,
33478 b"glVertexArrayAttribBinding\0",
33479 &self.glVertexArrayAttribBinding_p,
33480 )
33481 }
33482 #[inline]
33483 #[doc(hidden)]
33484 pub fn VertexArrayAttribBinding_is_loaded(&self) -> bool {
33485 !self.glVertexArrayAttribBinding_p.load(RELAX).is_null()
33486 }
33487 #[cfg_attr(feature = "inline", inline)]
33490 #[cfg_attr(feature = "inline_always", inline(always))]
33491 pub unsafe fn VertexArrayAttribFormat(
33492 &self,
33493 vaobj: GLuint,
33494 attribindex: GLuint,
33495 size: GLint,
33496 type_: GLenum,
33497 normalized: GLboolean,
33498 relativeoffset: GLuint,
33499 ) {
33500 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33501 {
33502 trace!(
33503 "calling gl.VertexArrayAttribFormat({:?}, {:?}, {:?}, {:#X}, {:?}, {:?});",
33504 vaobj,
33505 attribindex,
33506 size,
33507 type_,
33508 normalized,
33509 relativeoffset
33510 );
33511 }
33512 let out = call_atomic_ptr_6arg(
33513 "glVertexArrayAttribFormat",
33514 &self.glVertexArrayAttribFormat_p,
33515 vaobj,
33516 attribindex,
33517 size,
33518 type_,
33519 normalized,
33520 relativeoffset,
33521 );
33522 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33523 {
33524 self.automatic_glGetError("glVertexArrayAttribFormat");
33525 }
33526 out
33527 }
33528 #[doc(hidden)]
33529 pub unsafe fn VertexArrayAttribFormat_load_with_dyn(
33530 &self,
33531 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33532 ) -> bool {
33533 load_dyn_name_atomic_ptr(
33534 get_proc_address,
33535 b"glVertexArrayAttribFormat\0",
33536 &self.glVertexArrayAttribFormat_p,
33537 )
33538 }
33539 #[inline]
33540 #[doc(hidden)]
33541 pub fn VertexArrayAttribFormat_is_loaded(&self) -> bool {
33542 !self.glVertexArrayAttribFormat_p.load(RELAX).is_null()
33543 }
33544 #[cfg_attr(feature = "inline", inline)]
33547 #[cfg_attr(feature = "inline_always", inline(always))]
33548 pub unsafe fn VertexArrayAttribIFormat(
33549 &self,
33550 vaobj: GLuint,
33551 attribindex: GLuint,
33552 size: GLint,
33553 type_: GLenum,
33554 relativeoffset: GLuint,
33555 ) {
33556 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33557 {
33558 trace!(
33559 "calling gl.VertexArrayAttribIFormat({:?}, {:?}, {:?}, {:#X}, {:?});",
33560 vaobj,
33561 attribindex,
33562 size,
33563 type_,
33564 relativeoffset
33565 );
33566 }
33567 let out = call_atomic_ptr_5arg(
33568 "glVertexArrayAttribIFormat",
33569 &self.glVertexArrayAttribIFormat_p,
33570 vaobj,
33571 attribindex,
33572 size,
33573 type_,
33574 relativeoffset,
33575 );
33576 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33577 {
33578 self.automatic_glGetError("glVertexArrayAttribIFormat");
33579 }
33580 out
33581 }
33582 #[doc(hidden)]
33583 pub unsafe fn VertexArrayAttribIFormat_load_with_dyn(
33584 &self,
33585 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33586 ) -> bool {
33587 load_dyn_name_atomic_ptr(
33588 get_proc_address,
33589 b"glVertexArrayAttribIFormat\0",
33590 &self.glVertexArrayAttribIFormat_p,
33591 )
33592 }
33593 #[inline]
33594 #[doc(hidden)]
33595 pub fn VertexArrayAttribIFormat_is_loaded(&self) -> bool {
33596 !self.glVertexArrayAttribIFormat_p.load(RELAX).is_null()
33597 }
33598 #[cfg_attr(feature = "inline", inline)]
33601 #[cfg_attr(feature = "inline_always", inline(always))]
33602 pub unsafe fn VertexArrayAttribLFormat(
33603 &self,
33604 vaobj: GLuint,
33605 attribindex: GLuint,
33606 size: GLint,
33607 type_: GLenum,
33608 relativeoffset: GLuint,
33609 ) {
33610 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33611 {
33612 trace!(
33613 "calling gl.VertexArrayAttribLFormat({:?}, {:?}, {:?}, {:#X}, {:?});",
33614 vaobj,
33615 attribindex,
33616 size,
33617 type_,
33618 relativeoffset
33619 );
33620 }
33621 let out = call_atomic_ptr_5arg(
33622 "glVertexArrayAttribLFormat",
33623 &self.glVertexArrayAttribLFormat_p,
33624 vaobj,
33625 attribindex,
33626 size,
33627 type_,
33628 relativeoffset,
33629 );
33630 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33631 {
33632 self.automatic_glGetError("glVertexArrayAttribLFormat");
33633 }
33634 out
33635 }
33636 #[doc(hidden)]
33637 pub unsafe fn VertexArrayAttribLFormat_load_with_dyn(
33638 &self,
33639 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33640 ) -> bool {
33641 load_dyn_name_atomic_ptr(
33642 get_proc_address,
33643 b"glVertexArrayAttribLFormat\0",
33644 &self.glVertexArrayAttribLFormat_p,
33645 )
33646 }
33647 #[inline]
33648 #[doc(hidden)]
33649 pub fn VertexArrayAttribLFormat_is_loaded(&self) -> bool {
33650 !self.glVertexArrayAttribLFormat_p.load(RELAX).is_null()
33651 }
33652 #[cfg_attr(feature = "inline", inline)]
33654 #[cfg_attr(feature = "inline_always", inline(always))]
33655 pub unsafe fn VertexArrayBindingDivisor(
33656 &self,
33657 vaobj: GLuint,
33658 bindingindex: GLuint,
33659 divisor: GLuint,
33660 ) {
33661 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33662 {
33663 trace!(
33664 "calling gl.VertexArrayBindingDivisor({:?}, {:?}, {:?});",
33665 vaobj,
33666 bindingindex,
33667 divisor
33668 );
33669 }
33670 let out = call_atomic_ptr_3arg(
33671 "glVertexArrayBindingDivisor",
33672 &self.glVertexArrayBindingDivisor_p,
33673 vaobj,
33674 bindingindex,
33675 divisor,
33676 );
33677 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33678 {
33679 self.automatic_glGetError("glVertexArrayBindingDivisor");
33680 }
33681 out
33682 }
33683 #[doc(hidden)]
33684 pub unsafe fn VertexArrayBindingDivisor_load_with_dyn(
33685 &self,
33686 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33687 ) -> bool {
33688 load_dyn_name_atomic_ptr(
33689 get_proc_address,
33690 b"glVertexArrayBindingDivisor\0",
33691 &self.glVertexArrayBindingDivisor_p,
33692 )
33693 }
33694 #[inline]
33695 #[doc(hidden)]
33696 pub fn VertexArrayBindingDivisor_is_loaded(&self) -> bool {
33697 !self.glVertexArrayBindingDivisor_p.load(RELAX).is_null()
33698 }
33699 #[cfg_attr(feature = "inline", inline)]
33701 #[cfg_attr(feature = "inline_always", inline(always))]
33702 pub unsafe fn VertexArrayElementBuffer(&self, vaobj: GLuint, buffer: GLuint) {
33703 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33704 {
33705 trace!(
33706 "calling gl.VertexArrayElementBuffer({:?}, {:?});",
33707 vaobj,
33708 buffer
33709 );
33710 }
33711 let out = call_atomic_ptr_2arg(
33712 "glVertexArrayElementBuffer",
33713 &self.glVertexArrayElementBuffer_p,
33714 vaobj,
33715 buffer,
33716 );
33717 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33718 {
33719 self.automatic_glGetError("glVertexArrayElementBuffer");
33720 }
33721 out
33722 }
33723 #[doc(hidden)]
33724 pub unsafe fn VertexArrayElementBuffer_load_with_dyn(
33725 &self,
33726 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33727 ) -> bool {
33728 load_dyn_name_atomic_ptr(
33729 get_proc_address,
33730 b"glVertexArrayElementBuffer\0",
33731 &self.glVertexArrayElementBuffer_p,
33732 )
33733 }
33734 #[inline]
33735 #[doc(hidden)]
33736 pub fn VertexArrayElementBuffer_is_loaded(&self) -> bool {
33737 !self.glVertexArrayElementBuffer_p.load(RELAX).is_null()
33738 }
33739 #[cfg_attr(feature = "inline", inline)]
33741 #[cfg_attr(feature = "inline_always", inline(always))]
33742 pub unsafe fn VertexArrayVertexBuffer(
33743 &self,
33744 vaobj: GLuint,
33745 bindingindex: GLuint,
33746 buffer: GLuint,
33747 offset: GLintptr,
33748 stride: GLsizei,
33749 ) {
33750 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33751 {
33752 trace!(
33753 "calling gl.VertexArrayVertexBuffer({:?}, {:?}, {:?}, {:?}, {:?});",
33754 vaobj,
33755 bindingindex,
33756 buffer,
33757 offset,
33758 stride
33759 );
33760 }
33761 let out = call_atomic_ptr_5arg(
33762 "glVertexArrayVertexBuffer",
33763 &self.glVertexArrayVertexBuffer_p,
33764 vaobj,
33765 bindingindex,
33766 buffer,
33767 offset,
33768 stride,
33769 );
33770 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33771 {
33772 self.automatic_glGetError("glVertexArrayVertexBuffer");
33773 }
33774 out
33775 }
33776 #[doc(hidden)]
33777 pub unsafe fn VertexArrayVertexBuffer_load_with_dyn(
33778 &self,
33779 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33780 ) -> bool {
33781 load_dyn_name_atomic_ptr(
33782 get_proc_address,
33783 b"glVertexArrayVertexBuffer\0",
33784 &self.glVertexArrayVertexBuffer_p,
33785 )
33786 }
33787 #[inline]
33788 #[doc(hidden)]
33789 pub fn VertexArrayVertexBuffer_is_loaded(&self) -> bool {
33790 !self.glVertexArrayVertexBuffer_p.load(RELAX).is_null()
33791 }
33792 #[cfg_attr(feature = "inline", inline)]
33794 #[cfg_attr(feature = "inline_always", inline(always))]
33795 pub unsafe fn VertexArrayVertexBuffers(
33796 &self,
33797 vaobj: GLuint,
33798 first: GLuint,
33799 count: GLsizei,
33800 buffers: *const GLuint,
33801 offsets: *const GLintptr,
33802 strides: *const GLsizei,
33803 ) {
33804 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33805 {
33806 trace!(
33807 "calling gl.VertexArrayVertexBuffers({:?}, {:?}, {:?}, {:p}, {:p}, {:p});",
33808 vaobj,
33809 first,
33810 count,
33811 buffers,
33812 offsets,
33813 strides
33814 );
33815 }
33816 let out = call_atomic_ptr_6arg(
33817 "glVertexArrayVertexBuffers",
33818 &self.glVertexArrayVertexBuffers_p,
33819 vaobj,
33820 first,
33821 count,
33822 buffers,
33823 offsets,
33824 strides,
33825 );
33826 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33827 {
33828 self.automatic_glGetError("glVertexArrayVertexBuffers");
33829 }
33830 out
33831 }
33832 #[doc(hidden)]
33833 pub unsafe fn VertexArrayVertexBuffers_load_with_dyn(
33834 &self,
33835 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33836 ) -> bool {
33837 load_dyn_name_atomic_ptr(
33838 get_proc_address,
33839 b"glVertexArrayVertexBuffers\0",
33840 &self.glVertexArrayVertexBuffers_p,
33841 )
33842 }
33843 #[inline]
33844 #[doc(hidden)]
33845 pub fn VertexArrayVertexBuffers_is_loaded(&self) -> bool {
33846 !self.glVertexArrayVertexBuffers_p.load(RELAX).is_null()
33847 }
33848 #[cfg_attr(feature = "inline", inline)]
33851 #[cfg_attr(feature = "inline_always", inline(always))]
33852 pub unsafe fn VertexAttrib1d(&self, index: GLuint, x: GLdouble) {
33853 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33854 {
33855 trace!("calling gl.VertexAttrib1d({:?}, {:?});", index, x);
33856 }
33857 let out = call_atomic_ptr_2arg("glVertexAttrib1d", &self.glVertexAttrib1d_p, index, x);
33858 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33859 {
33860 self.automatic_glGetError("glVertexAttrib1d");
33861 }
33862 out
33863 }
33864 #[doc(hidden)]
33865 pub unsafe fn VertexAttrib1d_load_with_dyn(
33866 &self,
33867 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33868 ) -> bool {
33869 load_dyn_name_atomic_ptr(
33870 get_proc_address,
33871 b"glVertexAttrib1d\0",
33872 &self.glVertexAttrib1d_p,
33873 )
33874 }
33875 #[inline]
33876 #[doc(hidden)]
33877 pub fn VertexAttrib1d_is_loaded(&self) -> bool {
33878 !self.glVertexAttrib1d_p.load(RELAX).is_null()
33879 }
33880 #[cfg_attr(feature = "inline", inline)]
33883 #[cfg_attr(feature = "inline_always", inline(always))]
33884 pub unsafe fn VertexAttrib1dv(&self, index: GLuint, v: *const GLdouble) {
33885 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33886 {
33887 trace!("calling gl.VertexAttrib1dv({:?}, {:p});", index, v);
33888 }
33889 let out =
33890 call_atomic_ptr_2arg("glVertexAttrib1dv", &self.glVertexAttrib1dv_p, index, v);
33891 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33892 {
33893 self.automatic_glGetError("glVertexAttrib1dv");
33894 }
33895 out
33896 }
33897 #[doc(hidden)]
33898 pub unsafe fn VertexAttrib1dv_load_with_dyn(
33899 &self,
33900 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33901 ) -> bool {
33902 load_dyn_name_atomic_ptr(
33903 get_proc_address,
33904 b"glVertexAttrib1dv\0",
33905 &self.glVertexAttrib1dv_p,
33906 )
33907 }
33908 #[inline]
33909 #[doc(hidden)]
33910 pub fn VertexAttrib1dv_is_loaded(&self) -> bool {
33911 !self.glVertexAttrib1dv_p.load(RELAX).is_null()
33912 }
33913 #[cfg_attr(feature = "inline", inline)]
33916 #[cfg_attr(feature = "inline_always", inline(always))]
33917 pub unsafe fn VertexAttrib1f(&self, index: GLuint, x: GLfloat) {
33918 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33919 {
33920 trace!("calling gl.VertexAttrib1f({:?}, {:?});", index, x);
33921 }
33922 let out = call_atomic_ptr_2arg("glVertexAttrib1f", &self.glVertexAttrib1f_p, index, x);
33923 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33924 {
33925 self.automatic_glGetError("glVertexAttrib1f");
33926 }
33927 out
33928 }
33929 #[doc(hidden)]
33930 pub unsafe fn VertexAttrib1f_load_with_dyn(
33931 &self,
33932 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33933 ) -> bool {
33934 load_dyn_name_atomic_ptr(
33935 get_proc_address,
33936 b"glVertexAttrib1f\0",
33937 &self.glVertexAttrib1f_p,
33938 )
33939 }
33940 #[inline]
33941 #[doc(hidden)]
33942 pub fn VertexAttrib1f_is_loaded(&self) -> bool {
33943 !self.glVertexAttrib1f_p.load(RELAX).is_null()
33944 }
33945 #[cfg_attr(feature = "inline", inline)]
33948 #[cfg_attr(feature = "inline_always", inline(always))]
33949 pub unsafe fn VertexAttrib1fv(&self, index: GLuint, v: *const GLfloat) {
33950 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33951 {
33952 trace!("calling gl.VertexAttrib1fv({:?}, {:p});", index, v);
33953 }
33954 let out =
33955 call_atomic_ptr_2arg("glVertexAttrib1fv", &self.glVertexAttrib1fv_p, index, v);
33956 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33957 {
33958 self.automatic_glGetError("glVertexAttrib1fv");
33959 }
33960 out
33961 }
33962 #[doc(hidden)]
33963 pub unsafe fn VertexAttrib1fv_load_with_dyn(
33964 &self,
33965 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33966 ) -> bool {
33967 load_dyn_name_atomic_ptr(
33968 get_proc_address,
33969 b"glVertexAttrib1fv\0",
33970 &self.glVertexAttrib1fv_p,
33971 )
33972 }
33973 #[inline]
33974 #[doc(hidden)]
33975 pub fn VertexAttrib1fv_is_loaded(&self) -> bool {
33976 !self.glVertexAttrib1fv_p.load(RELAX).is_null()
33977 }
33978 #[cfg_attr(feature = "inline", inline)]
33981 #[cfg_attr(feature = "inline_always", inline(always))]
33982 pub unsafe fn VertexAttrib1s(&self, index: GLuint, x: GLshort) {
33983 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
33984 {
33985 trace!("calling gl.VertexAttrib1s({:?}, {:?});", index, x);
33986 }
33987 let out = call_atomic_ptr_2arg("glVertexAttrib1s", &self.glVertexAttrib1s_p, index, x);
33988 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
33989 {
33990 self.automatic_glGetError("glVertexAttrib1s");
33991 }
33992 out
33993 }
33994 #[doc(hidden)]
33995 pub unsafe fn VertexAttrib1s_load_with_dyn(
33996 &self,
33997 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
33998 ) -> bool {
33999 load_dyn_name_atomic_ptr(
34000 get_proc_address,
34001 b"glVertexAttrib1s\0",
34002 &self.glVertexAttrib1s_p,
34003 )
34004 }
34005 #[inline]
34006 #[doc(hidden)]
34007 pub fn VertexAttrib1s_is_loaded(&self) -> bool {
34008 !self.glVertexAttrib1s_p.load(RELAX).is_null()
34009 }
34010 #[cfg_attr(feature = "inline", inline)]
34013 #[cfg_attr(feature = "inline_always", inline(always))]
34014 pub unsafe fn VertexAttrib1sv(&self, index: GLuint, v: *const GLshort) {
34015 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34016 {
34017 trace!("calling gl.VertexAttrib1sv({:?}, {:p});", index, v);
34018 }
34019 let out =
34020 call_atomic_ptr_2arg("glVertexAttrib1sv", &self.glVertexAttrib1sv_p, index, v);
34021 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34022 {
34023 self.automatic_glGetError("glVertexAttrib1sv");
34024 }
34025 out
34026 }
34027 #[doc(hidden)]
34028 pub unsafe fn VertexAttrib1sv_load_with_dyn(
34029 &self,
34030 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34031 ) -> bool {
34032 load_dyn_name_atomic_ptr(
34033 get_proc_address,
34034 b"glVertexAttrib1sv\0",
34035 &self.glVertexAttrib1sv_p,
34036 )
34037 }
34038 #[inline]
34039 #[doc(hidden)]
34040 pub fn VertexAttrib1sv_is_loaded(&self) -> bool {
34041 !self.glVertexAttrib1sv_p.load(RELAX).is_null()
34042 }
34043 #[cfg_attr(feature = "inline", inline)]
34046 #[cfg_attr(feature = "inline_always", inline(always))]
34047 pub unsafe fn VertexAttrib2d(&self, index: GLuint, x: GLdouble, y: GLdouble) {
34048 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34049 {
34050 trace!("calling gl.VertexAttrib2d({:?}, {:?}, {:?});", index, x, y);
34051 }
34052 let out =
34053 call_atomic_ptr_3arg("glVertexAttrib2d", &self.glVertexAttrib2d_p, index, x, y);
34054 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34055 {
34056 self.automatic_glGetError("glVertexAttrib2d");
34057 }
34058 out
34059 }
34060 #[doc(hidden)]
34061 pub unsafe fn VertexAttrib2d_load_with_dyn(
34062 &self,
34063 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34064 ) -> bool {
34065 load_dyn_name_atomic_ptr(
34066 get_proc_address,
34067 b"glVertexAttrib2d\0",
34068 &self.glVertexAttrib2d_p,
34069 )
34070 }
34071 #[inline]
34072 #[doc(hidden)]
34073 pub fn VertexAttrib2d_is_loaded(&self) -> bool {
34074 !self.glVertexAttrib2d_p.load(RELAX).is_null()
34075 }
34076 #[cfg_attr(feature = "inline", inline)]
34079 #[cfg_attr(feature = "inline_always", inline(always))]
34080 pub unsafe fn VertexAttrib2dv(&self, index: GLuint, v: *const GLdouble) {
34081 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34082 {
34083 trace!("calling gl.VertexAttrib2dv({:?}, {:p});", index, v);
34084 }
34085 let out =
34086 call_atomic_ptr_2arg("glVertexAttrib2dv", &self.glVertexAttrib2dv_p, index, v);
34087 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34088 {
34089 self.automatic_glGetError("glVertexAttrib2dv");
34090 }
34091 out
34092 }
34093 #[doc(hidden)]
34094 pub unsafe fn VertexAttrib2dv_load_with_dyn(
34095 &self,
34096 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34097 ) -> bool {
34098 load_dyn_name_atomic_ptr(
34099 get_proc_address,
34100 b"glVertexAttrib2dv\0",
34101 &self.glVertexAttrib2dv_p,
34102 )
34103 }
34104 #[inline]
34105 #[doc(hidden)]
34106 pub fn VertexAttrib2dv_is_loaded(&self) -> bool {
34107 !self.glVertexAttrib2dv_p.load(RELAX).is_null()
34108 }
34109 #[cfg_attr(feature = "inline", inline)]
34112 #[cfg_attr(feature = "inline_always", inline(always))]
34113 pub unsafe fn VertexAttrib2f(&self, index: GLuint, x: GLfloat, y: GLfloat) {
34114 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34115 {
34116 trace!("calling gl.VertexAttrib2f({:?}, {:?}, {:?});", index, x, y);
34117 }
34118 let out =
34119 call_atomic_ptr_3arg("glVertexAttrib2f", &self.glVertexAttrib2f_p, index, x, y);
34120 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34121 {
34122 self.automatic_glGetError("glVertexAttrib2f");
34123 }
34124 out
34125 }
34126 #[doc(hidden)]
34127 pub unsafe fn VertexAttrib2f_load_with_dyn(
34128 &self,
34129 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34130 ) -> bool {
34131 load_dyn_name_atomic_ptr(
34132 get_proc_address,
34133 b"glVertexAttrib2f\0",
34134 &self.glVertexAttrib2f_p,
34135 )
34136 }
34137 #[inline]
34138 #[doc(hidden)]
34139 pub fn VertexAttrib2f_is_loaded(&self) -> bool {
34140 !self.glVertexAttrib2f_p.load(RELAX).is_null()
34141 }
34142 #[cfg_attr(feature = "inline", inline)]
34145 #[cfg_attr(feature = "inline_always", inline(always))]
34146 pub unsafe fn VertexAttrib2fv(&self, index: GLuint, v: *const GLfloat) {
34147 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34148 {
34149 trace!("calling gl.VertexAttrib2fv({:?}, {:p});", index, v);
34150 }
34151 let out =
34152 call_atomic_ptr_2arg("glVertexAttrib2fv", &self.glVertexAttrib2fv_p, index, v);
34153 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34154 {
34155 self.automatic_glGetError("glVertexAttrib2fv");
34156 }
34157 out
34158 }
34159 #[doc(hidden)]
34160 pub unsafe fn VertexAttrib2fv_load_with_dyn(
34161 &self,
34162 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34163 ) -> bool {
34164 load_dyn_name_atomic_ptr(
34165 get_proc_address,
34166 b"glVertexAttrib2fv\0",
34167 &self.glVertexAttrib2fv_p,
34168 )
34169 }
34170 #[inline]
34171 #[doc(hidden)]
34172 pub fn VertexAttrib2fv_is_loaded(&self) -> bool {
34173 !self.glVertexAttrib2fv_p.load(RELAX).is_null()
34174 }
34175 #[cfg_attr(feature = "inline", inline)]
34178 #[cfg_attr(feature = "inline_always", inline(always))]
34179 pub unsafe fn VertexAttrib2s(&self, index: GLuint, x: GLshort, y: GLshort) {
34180 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34181 {
34182 trace!("calling gl.VertexAttrib2s({:?}, {:?}, {:?});", index, x, y);
34183 }
34184 let out =
34185 call_atomic_ptr_3arg("glVertexAttrib2s", &self.glVertexAttrib2s_p, index, x, y);
34186 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34187 {
34188 self.automatic_glGetError("glVertexAttrib2s");
34189 }
34190 out
34191 }
34192 #[doc(hidden)]
34193 pub unsafe fn VertexAttrib2s_load_with_dyn(
34194 &self,
34195 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34196 ) -> bool {
34197 load_dyn_name_atomic_ptr(
34198 get_proc_address,
34199 b"glVertexAttrib2s\0",
34200 &self.glVertexAttrib2s_p,
34201 )
34202 }
34203 #[inline]
34204 #[doc(hidden)]
34205 pub fn VertexAttrib2s_is_loaded(&self) -> bool {
34206 !self.glVertexAttrib2s_p.load(RELAX).is_null()
34207 }
34208 #[cfg_attr(feature = "inline", inline)]
34211 #[cfg_attr(feature = "inline_always", inline(always))]
34212 pub unsafe fn VertexAttrib2sv(&self, index: GLuint, v: *const GLshort) {
34213 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34214 {
34215 trace!("calling gl.VertexAttrib2sv({:?}, {:p});", index, v);
34216 }
34217 let out =
34218 call_atomic_ptr_2arg("glVertexAttrib2sv", &self.glVertexAttrib2sv_p, index, v);
34219 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34220 {
34221 self.automatic_glGetError("glVertexAttrib2sv");
34222 }
34223 out
34224 }
34225 #[doc(hidden)]
34226 pub unsafe fn VertexAttrib2sv_load_with_dyn(
34227 &self,
34228 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34229 ) -> bool {
34230 load_dyn_name_atomic_ptr(
34231 get_proc_address,
34232 b"glVertexAttrib2sv\0",
34233 &self.glVertexAttrib2sv_p,
34234 )
34235 }
34236 #[inline]
34237 #[doc(hidden)]
34238 pub fn VertexAttrib2sv_is_loaded(&self) -> bool {
34239 !self.glVertexAttrib2sv_p.load(RELAX).is_null()
34240 }
34241 #[cfg_attr(feature = "inline", inline)]
34244 #[cfg_attr(feature = "inline_always", inline(always))]
34245 pub unsafe fn VertexAttrib3d(&self, index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble) {
34246 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34247 {
34248 trace!(
34249 "calling gl.VertexAttrib3d({:?}, {:?}, {:?}, {:?});",
34250 index,
34251 x,
34252 y,
34253 z
34254 );
34255 }
34256 let out =
34257 call_atomic_ptr_4arg("glVertexAttrib3d", &self.glVertexAttrib3d_p, index, x, y, z);
34258 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34259 {
34260 self.automatic_glGetError("glVertexAttrib3d");
34261 }
34262 out
34263 }
34264 #[doc(hidden)]
34265 pub unsafe fn VertexAttrib3d_load_with_dyn(
34266 &self,
34267 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34268 ) -> bool {
34269 load_dyn_name_atomic_ptr(
34270 get_proc_address,
34271 b"glVertexAttrib3d\0",
34272 &self.glVertexAttrib3d_p,
34273 )
34274 }
34275 #[inline]
34276 #[doc(hidden)]
34277 pub fn VertexAttrib3d_is_loaded(&self) -> bool {
34278 !self.glVertexAttrib3d_p.load(RELAX).is_null()
34279 }
34280 #[cfg_attr(feature = "inline", inline)]
34283 #[cfg_attr(feature = "inline_always", inline(always))]
34284 pub unsafe fn VertexAttrib3dv(&self, index: GLuint, v: *const GLdouble) {
34285 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34286 {
34287 trace!("calling gl.VertexAttrib3dv({:?}, {:p});", index, v);
34288 }
34289 let out =
34290 call_atomic_ptr_2arg("glVertexAttrib3dv", &self.glVertexAttrib3dv_p, index, v);
34291 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34292 {
34293 self.automatic_glGetError("glVertexAttrib3dv");
34294 }
34295 out
34296 }
34297 #[doc(hidden)]
34298 pub unsafe fn VertexAttrib3dv_load_with_dyn(
34299 &self,
34300 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34301 ) -> bool {
34302 load_dyn_name_atomic_ptr(
34303 get_proc_address,
34304 b"glVertexAttrib3dv\0",
34305 &self.glVertexAttrib3dv_p,
34306 )
34307 }
34308 #[inline]
34309 #[doc(hidden)]
34310 pub fn VertexAttrib3dv_is_loaded(&self) -> bool {
34311 !self.glVertexAttrib3dv_p.load(RELAX).is_null()
34312 }
34313 #[cfg_attr(feature = "inline", inline)]
34316 #[cfg_attr(feature = "inline_always", inline(always))]
34317 pub unsafe fn VertexAttrib3f(&self, index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat) {
34318 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34319 {
34320 trace!(
34321 "calling gl.VertexAttrib3f({:?}, {:?}, {:?}, {:?});",
34322 index,
34323 x,
34324 y,
34325 z
34326 );
34327 }
34328 let out =
34329 call_atomic_ptr_4arg("glVertexAttrib3f", &self.glVertexAttrib3f_p, index, x, y, z);
34330 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34331 {
34332 self.automatic_glGetError("glVertexAttrib3f");
34333 }
34334 out
34335 }
34336 #[doc(hidden)]
34337 pub unsafe fn VertexAttrib3f_load_with_dyn(
34338 &self,
34339 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34340 ) -> bool {
34341 load_dyn_name_atomic_ptr(
34342 get_proc_address,
34343 b"glVertexAttrib3f\0",
34344 &self.glVertexAttrib3f_p,
34345 )
34346 }
34347 #[inline]
34348 #[doc(hidden)]
34349 pub fn VertexAttrib3f_is_loaded(&self) -> bool {
34350 !self.glVertexAttrib3f_p.load(RELAX).is_null()
34351 }
34352 #[cfg_attr(feature = "inline", inline)]
34355 #[cfg_attr(feature = "inline_always", inline(always))]
34356 pub unsafe fn VertexAttrib3fv(&self, index: GLuint, v: *const GLfloat) {
34357 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34358 {
34359 trace!("calling gl.VertexAttrib3fv({:?}, {:p});", index, v);
34360 }
34361 let out =
34362 call_atomic_ptr_2arg("glVertexAttrib3fv", &self.glVertexAttrib3fv_p, index, v);
34363 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34364 {
34365 self.automatic_glGetError("glVertexAttrib3fv");
34366 }
34367 out
34368 }
34369 #[doc(hidden)]
34370 pub unsafe fn VertexAttrib3fv_load_with_dyn(
34371 &self,
34372 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34373 ) -> bool {
34374 load_dyn_name_atomic_ptr(
34375 get_proc_address,
34376 b"glVertexAttrib3fv\0",
34377 &self.glVertexAttrib3fv_p,
34378 )
34379 }
34380 #[inline]
34381 #[doc(hidden)]
34382 pub fn VertexAttrib3fv_is_loaded(&self) -> bool {
34383 !self.glVertexAttrib3fv_p.load(RELAX).is_null()
34384 }
34385 #[cfg_attr(feature = "inline", inline)]
34388 #[cfg_attr(feature = "inline_always", inline(always))]
34389 pub unsafe fn VertexAttrib3s(&self, index: GLuint, x: GLshort, y: GLshort, z: GLshort) {
34390 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34391 {
34392 trace!(
34393 "calling gl.VertexAttrib3s({:?}, {:?}, {:?}, {:?});",
34394 index,
34395 x,
34396 y,
34397 z
34398 );
34399 }
34400 let out =
34401 call_atomic_ptr_4arg("glVertexAttrib3s", &self.glVertexAttrib3s_p, index, x, y, z);
34402 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34403 {
34404 self.automatic_glGetError("glVertexAttrib3s");
34405 }
34406 out
34407 }
34408 #[doc(hidden)]
34409 pub unsafe fn VertexAttrib3s_load_with_dyn(
34410 &self,
34411 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34412 ) -> bool {
34413 load_dyn_name_atomic_ptr(
34414 get_proc_address,
34415 b"glVertexAttrib3s\0",
34416 &self.glVertexAttrib3s_p,
34417 )
34418 }
34419 #[inline]
34420 #[doc(hidden)]
34421 pub fn VertexAttrib3s_is_loaded(&self) -> bool {
34422 !self.glVertexAttrib3s_p.load(RELAX).is_null()
34423 }
34424 #[cfg_attr(feature = "inline", inline)]
34427 #[cfg_attr(feature = "inline_always", inline(always))]
34428 pub unsafe fn VertexAttrib3sv(&self, index: GLuint, v: *const GLshort) {
34429 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34430 {
34431 trace!("calling gl.VertexAttrib3sv({:?}, {:p});", index, v);
34432 }
34433 let out =
34434 call_atomic_ptr_2arg("glVertexAttrib3sv", &self.glVertexAttrib3sv_p, index, v);
34435 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34436 {
34437 self.automatic_glGetError("glVertexAttrib3sv");
34438 }
34439 out
34440 }
34441 #[doc(hidden)]
34442 pub unsafe fn VertexAttrib3sv_load_with_dyn(
34443 &self,
34444 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34445 ) -> bool {
34446 load_dyn_name_atomic_ptr(
34447 get_proc_address,
34448 b"glVertexAttrib3sv\0",
34449 &self.glVertexAttrib3sv_p,
34450 )
34451 }
34452 #[inline]
34453 #[doc(hidden)]
34454 pub fn VertexAttrib3sv_is_loaded(&self) -> bool {
34455 !self.glVertexAttrib3sv_p.load(RELAX).is_null()
34456 }
34457 #[cfg_attr(feature = "inline", inline)]
34460 #[cfg_attr(feature = "inline_always", inline(always))]
34461 pub unsafe fn VertexAttrib4Nbv(&self, index: GLuint, v: *const GLbyte) {
34462 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34463 {
34464 trace!("calling gl.VertexAttrib4Nbv({:?}, {:p});", index, v);
34465 }
34466 let out =
34467 call_atomic_ptr_2arg("glVertexAttrib4Nbv", &self.glVertexAttrib4Nbv_p, index, v);
34468 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34469 {
34470 self.automatic_glGetError("glVertexAttrib4Nbv");
34471 }
34472 out
34473 }
34474 #[doc(hidden)]
34475 pub unsafe fn VertexAttrib4Nbv_load_with_dyn(
34476 &self,
34477 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34478 ) -> bool {
34479 load_dyn_name_atomic_ptr(
34480 get_proc_address,
34481 b"glVertexAttrib4Nbv\0",
34482 &self.glVertexAttrib4Nbv_p,
34483 )
34484 }
34485 #[inline]
34486 #[doc(hidden)]
34487 pub fn VertexAttrib4Nbv_is_loaded(&self) -> bool {
34488 !self.glVertexAttrib4Nbv_p.load(RELAX).is_null()
34489 }
34490 #[cfg_attr(feature = "inline", inline)]
34493 #[cfg_attr(feature = "inline_always", inline(always))]
34494 pub unsafe fn VertexAttrib4Niv(&self, index: GLuint, v: *const GLint) {
34495 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34496 {
34497 trace!("calling gl.VertexAttrib4Niv({:?}, {:p});", index, v);
34498 }
34499 let out =
34500 call_atomic_ptr_2arg("glVertexAttrib4Niv", &self.glVertexAttrib4Niv_p, index, v);
34501 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34502 {
34503 self.automatic_glGetError("glVertexAttrib4Niv");
34504 }
34505 out
34506 }
34507 #[doc(hidden)]
34508 pub unsafe fn VertexAttrib4Niv_load_with_dyn(
34509 &self,
34510 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34511 ) -> bool {
34512 load_dyn_name_atomic_ptr(
34513 get_proc_address,
34514 b"glVertexAttrib4Niv\0",
34515 &self.glVertexAttrib4Niv_p,
34516 )
34517 }
34518 #[inline]
34519 #[doc(hidden)]
34520 pub fn VertexAttrib4Niv_is_loaded(&self) -> bool {
34521 !self.glVertexAttrib4Niv_p.load(RELAX).is_null()
34522 }
34523 #[cfg_attr(feature = "inline", inline)]
34526 #[cfg_attr(feature = "inline_always", inline(always))]
34527 pub unsafe fn VertexAttrib4Nsv(&self, index: GLuint, v: *const GLshort) {
34528 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34529 {
34530 trace!("calling gl.VertexAttrib4Nsv({:?}, {:p});", index, v);
34531 }
34532 let out =
34533 call_atomic_ptr_2arg("glVertexAttrib4Nsv", &self.glVertexAttrib4Nsv_p, index, v);
34534 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34535 {
34536 self.automatic_glGetError("glVertexAttrib4Nsv");
34537 }
34538 out
34539 }
34540 #[doc(hidden)]
34541 pub unsafe fn VertexAttrib4Nsv_load_with_dyn(
34542 &self,
34543 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34544 ) -> bool {
34545 load_dyn_name_atomic_ptr(
34546 get_proc_address,
34547 b"glVertexAttrib4Nsv\0",
34548 &self.glVertexAttrib4Nsv_p,
34549 )
34550 }
34551 #[inline]
34552 #[doc(hidden)]
34553 pub fn VertexAttrib4Nsv_is_loaded(&self) -> bool {
34554 !self.glVertexAttrib4Nsv_p.load(RELAX).is_null()
34555 }
34556 #[cfg_attr(feature = "inline", inline)]
34558 #[cfg_attr(feature = "inline_always", inline(always))]
34559 pub unsafe fn VertexAttrib4Nub(
34560 &self,
34561 index: GLuint,
34562 x: GLubyte,
34563 y: GLubyte,
34564 z: GLubyte,
34565 w: GLubyte,
34566 ) {
34567 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34568 {
34569 trace!(
34570 "calling gl.VertexAttrib4Nub({:?}, {:?}, {:?}, {:?}, {:?});",
34571 index,
34572 x,
34573 y,
34574 z,
34575 w
34576 );
34577 }
34578 let out = call_atomic_ptr_5arg(
34579 "glVertexAttrib4Nub",
34580 &self.glVertexAttrib4Nub_p,
34581 index,
34582 x,
34583 y,
34584 z,
34585 w,
34586 );
34587 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34588 {
34589 self.automatic_glGetError("glVertexAttrib4Nub");
34590 }
34591 out
34592 }
34593 #[doc(hidden)]
34594 pub unsafe fn VertexAttrib4Nub_load_with_dyn(
34595 &self,
34596 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34597 ) -> bool {
34598 load_dyn_name_atomic_ptr(
34599 get_proc_address,
34600 b"glVertexAttrib4Nub\0",
34601 &self.glVertexAttrib4Nub_p,
34602 )
34603 }
34604 #[inline]
34605 #[doc(hidden)]
34606 pub fn VertexAttrib4Nub_is_loaded(&self) -> bool {
34607 !self.glVertexAttrib4Nub_p.load(RELAX).is_null()
34608 }
34609 #[cfg_attr(feature = "inline", inline)]
34612 #[cfg_attr(feature = "inline_always", inline(always))]
34613 pub unsafe fn VertexAttrib4Nubv(&self, index: GLuint, v: *const GLubyte) {
34614 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34615 {
34616 trace!("calling gl.VertexAttrib4Nubv({:?}, {:p});", index, v);
34617 }
34618 let out =
34619 call_atomic_ptr_2arg("glVertexAttrib4Nubv", &self.glVertexAttrib4Nubv_p, index, v);
34620 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34621 {
34622 self.automatic_glGetError("glVertexAttrib4Nubv");
34623 }
34624 out
34625 }
34626 #[doc(hidden)]
34627 pub unsafe fn VertexAttrib4Nubv_load_with_dyn(
34628 &self,
34629 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34630 ) -> bool {
34631 load_dyn_name_atomic_ptr(
34632 get_proc_address,
34633 b"glVertexAttrib4Nubv\0",
34634 &self.glVertexAttrib4Nubv_p,
34635 )
34636 }
34637 #[inline]
34638 #[doc(hidden)]
34639 pub fn VertexAttrib4Nubv_is_loaded(&self) -> bool {
34640 !self.glVertexAttrib4Nubv_p.load(RELAX).is_null()
34641 }
34642 #[cfg_attr(feature = "inline", inline)]
34645 #[cfg_attr(feature = "inline_always", inline(always))]
34646 pub unsafe fn VertexAttrib4Nuiv(&self, index: GLuint, v: *const GLuint) {
34647 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34648 {
34649 trace!("calling gl.VertexAttrib4Nuiv({:?}, {:p});", index, v);
34650 }
34651 let out =
34652 call_atomic_ptr_2arg("glVertexAttrib4Nuiv", &self.glVertexAttrib4Nuiv_p, index, v);
34653 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34654 {
34655 self.automatic_glGetError("glVertexAttrib4Nuiv");
34656 }
34657 out
34658 }
34659 #[doc(hidden)]
34660 pub unsafe fn VertexAttrib4Nuiv_load_with_dyn(
34661 &self,
34662 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34663 ) -> bool {
34664 load_dyn_name_atomic_ptr(
34665 get_proc_address,
34666 b"glVertexAttrib4Nuiv\0",
34667 &self.glVertexAttrib4Nuiv_p,
34668 )
34669 }
34670 #[inline]
34671 #[doc(hidden)]
34672 pub fn VertexAttrib4Nuiv_is_loaded(&self) -> bool {
34673 !self.glVertexAttrib4Nuiv_p.load(RELAX).is_null()
34674 }
34675 #[cfg_attr(feature = "inline", inline)]
34678 #[cfg_attr(feature = "inline_always", inline(always))]
34679 pub unsafe fn VertexAttrib4Nusv(&self, index: GLuint, v: *const GLushort) {
34680 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34681 {
34682 trace!("calling gl.VertexAttrib4Nusv({:?}, {:p});", index, v);
34683 }
34684 let out =
34685 call_atomic_ptr_2arg("glVertexAttrib4Nusv", &self.glVertexAttrib4Nusv_p, index, v);
34686 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34687 {
34688 self.automatic_glGetError("glVertexAttrib4Nusv");
34689 }
34690 out
34691 }
34692 #[doc(hidden)]
34693 pub unsafe fn VertexAttrib4Nusv_load_with_dyn(
34694 &self,
34695 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34696 ) -> bool {
34697 load_dyn_name_atomic_ptr(
34698 get_proc_address,
34699 b"glVertexAttrib4Nusv\0",
34700 &self.glVertexAttrib4Nusv_p,
34701 )
34702 }
34703 #[inline]
34704 #[doc(hidden)]
34705 pub fn VertexAttrib4Nusv_is_loaded(&self) -> bool {
34706 !self.glVertexAttrib4Nusv_p.load(RELAX).is_null()
34707 }
34708 #[cfg_attr(feature = "inline", inline)]
34711 #[cfg_attr(feature = "inline_always", inline(always))]
34712 pub unsafe fn VertexAttrib4bv(&self, index: GLuint, v: *const GLbyte) {
34713 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34714 {
34715 trace!("calling gl.VertexAttrib4bv({:?}, {:p});", index, v);
34716 }
34717 let out =
34718 call_atomic_ptr_2arg("glVertexAttrib4bv", &self.glVertexAttrib4bv_p, index, v);
34719 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34720 {
34721 self.automatic_glGetError("glVertexAttrib4bv");
34722 }
34723 out
34724 }
34725 #[doc(hidden)]
34726 pub unsafe fn VertexAttrib4bv_load_with_dyn(
34727 &self,
34728 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34729 ) -> bool {
34730 load_dyn_name_atomic_ptr(
34731 get_proc_address,
34732 b"glVertexAttrib4bv\0",
34733 &self.glVertexAttrib4bv_p,
34734 )
34735 }
34736 #[inline]
34737 #[doc(hidden)]
34738 pub fn VertexAttrib4bv_is_loaded(&self) -> bool {
34739 !self.glVertexAttrib4bv_p.load(RELAX).is_null()
34740 }
34741 #[cfg_attr(feature = "inline", inline)]
34744 #[cfg_attr(feature = "inline_always", inline(always))]
34745 pub unsafe fn VertexAttrib4d(
34746 &self,
34747 index: GLuint,
34748 x: GLdouble,
34749 y: GLdouble,
34750 z: GLdouble,
34751 w: GLdouble,
34752 ) {
34753 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34754 {
34755 trace!(
34756 "calling gl.VertexAttrib4d({:?}, {:?}, {:?}, {:?}, {:?});",
34757 index,
34758 x,
34759 y,
34760 z,
34761 w
34762 );
34763 }
34764 let out = call_atomic_ptr_5arg(
34765 "glVertexAttrib4d",
34766 &self.glVertexAttrib4d_p,
34767 index,
34768 x,
34769 y,
34770 z,
34771 w,
34772 );
34773 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34774 {
34775 self.automatic_glGetError("glVertexAttrib4d");
34776 }
34777 out
34778 }
34779 #[doc(hidden)]
34780 pub unsafe fn VertexAttrib4d_load_with_dyn(
34781 &self,
34782 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34783 ) -> bool {
34784 load_dyn_name_atomic_ptr(
34785 get_proc_address,
34786 b"glVertexAttrib4d\0",
34787 &self.glVertexAttrib4d_p,
34788 )
34789 }
34790 #[inline]
34791 #[doc(hidden)]
34792 pub fn VertexAttrib4d_is_loaded(&self) -> bool {
34793 !self.glVertexAttrib4d_p.load(RELAX).is_null()
34794 }
34795 #[cfg_attr(feature = "inline", inline)]
34798 #[cfg_attr(feature = "inline_always", inline(always))]
34799 pub unsafe fn VertexAttrib4dv(&self, index: GLuint, v: *const GLdouble) {
34800 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34801 {
34802 trace!("calling gl.VertexAttrib4dv({:?}, {:p});", index, v);
34803 }
34804 let out =
34805 call_atomic_ptr_2arg("glVertexAttrib4dv", &self.glVertexAttrib4dv_p, index, v);
34806 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34807 {
34808 self.automatic_glGetError("glVertexAttrib4dv");
34809 }
34810 out
34811 }
34812 #[doc(hidden)]
34813 pub unsafe fn VertexAttrib4dv_load_with_dyn(
34814 &self,
34815 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34816 ) -> bool {
34817 load_dyn_name_atomic_ptr(
34818 get_proc_address,
34819 b"glVertexAttrib4dv\0",
34820 &self.glVertexAttrib4dv_p,
34821 )
34822 }
34823 #[inline]
34824 #[doc(hidden)]
34825 pub fn VertexAttrib4dv_is_loaded(&self) -> bool {
34826 !self.glVertexAttrib4dv_p.load(RELAX).is_null()
34827 }
34828 #[cfg_attr(feature = "inline", inline)]
34831 #[cfg_attr(feature = "inline_always", inline(always))]
34832 pub unsafe fn VertexAttrib4f(
34833 &self,
34834 index: GLuint,
34835 x: GLfloat,
34836 y: GLfloat,
34837 z: GLfloat,
34838 w: GLfloat,
34839 ) {
34840 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34841 {
34842 trace!(
34843 "calling gl.VertexAttrib4f({:?}, {:?}, {:?}, {:?}, {:?});",
34844 index,
34845 x,
34846 y,
34847 z,
34848 w
34849 );
34850 }
34851 let out = call_atomic_ptr_5arg(
34852 "glVertexAttrib4f",
34853 &self.glVertexAttrib4f_p,
34854 index,
34855 x,
34856 y,
34857 z,
34858 w,
34859 );
34860 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34861 {
34862 self.automatic_glGetError("glVertexAttrib4f");
34863 }
34864 out
34865 }
34866 #[doc(hidden)]
34867 pub unsafe fn VertexAttrib4f_load_with_dyn(
34868 &self,
34869 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34870 ) -> bool {
34871 load_dyn_name_atomic_ptr(
34872 get_proc_address,
34873 b"glVertexAttrib4f\0",
34874 &self.glVertexAttrib4f_p,
34875 )
34876 }
34877 #[inline]
34878 #[doc(hidden)]
34879 pub fn VertexAttrib4f_is_loaded(&self) -> bool {
34880 !self.glVertexAttrib4f_p.load(RELAX).is_null()
34881 }
34882 #[cfg_attr(feature = "inline", inline)]
34885 #[cfg_attr(feature = "inline_always", inline(always))]
34886 pub unsafe fn VertexAttrib4fv(&self, index: GLuint, v: *const GLfloat) {
34887 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34888 {
34889 trace!("calling gl.VertexAttrib4fv({:?}, {:p});", index, v);
34890 }
34891 let out =
34892 call_atomic_ptr_2arg("glVertexAttrib4fv", &self.glVertexAttrib4fv_p, index, v);
34893 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34894 {
34895 self.automatic_glGetError("glVertexAttrib4fv");
34896 }
34897 out
34898 }
34899 #[doc(hidden)]
34900 pub unsafe fn VertexAttrib4fv_load_with_dyn(
34901 &self,
34902 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34903 ) -> bool {
34904 load_dyn_name_atomic_ptr(
34905 get_proc_address,
34906 b"glVertexAttrib4fv\0",
34907 &self.glVertexAttrib4fv_p,
34908 )
34909 }
34910 #[inline]
34911 #[doc(hidden)]
34912 pub fn VertexAttrib4fv_is_loaded(&self) -> bool {
34913 !self.glVertexAttrib4fv_p.load(RELAX).is_null()
34914 }
34915 #[cfg_attr(feature = "inline", inline)]
34918 #[cfg_attr(feature = "inline_always", inline(always))]
34919 pub unsafe fn VertexAttrib4iv(&self, index: GLuint, v: *const GLint) {
34920 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34921 {
34922 trace!("calling gl.VertexAttrib4iv({:?}, {:p});", index, v);
34923 }
34924 let out =
34925 call_atomic_ptr_2arg("glVertexAttrib4iv", &self.glVertexAttrib4iv_p, index, v);
34926 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34927 {
34928 self.automatic_glGetError("glVertexAttrib4iv");
34929 }
34930 out
34931 }
34932 #[doc(hidden)]
34933 pub unsafe fn VertexAttrib4iv_load_with_dyn(
34934 &self,
34935 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34936 ) -> bool {
34937 load_dyn_name_atomic_ptr(
34938 get_proc_address,
34939 b"glVertexAttrib4iv\0",
34940 &self.glVertexAttrib4iv_p,
34941 )
34942 }
34943 #[inline]
34944 #[doc(hidden)]
34945 pub fn VertexAttrib4iv_is_loaded(&self) -> bool {
34946 !self.glVertexAttrib4iv_p.load(RELAX).is_null()
34947 }
34948 #[cfg_attr(feature = "inline", inline)]
34951 #[cfg_attr(feature = "inline_always", inline(always))]
34952 pub unsafe fn VertexAttrib4s(
34953 &self,
34954 index: GLuint,
34955 x: GLshort,
34956 y: GLshort,
34957 z: GLshort,
34958 w: GLshort,
34959 ) {
34960 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
34961 {
34962 trace!(
34963 "calling gl.VertexAttrib4s({:?}, {:?}, {:?}, {:?}, {:?});",
34964 index,
34965 x,
34966 y,
34967 z,
34968 w
34969 );
34970 }
34971 let out = call_atomic_ptr_5arg(
34972 "glVertexAttrib4s",
34973 &self.glVertexAttrib4s_p,
34974 index,
34975 x,
34976 y,
34977 z,
34978 w,
34979 );
34980 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
34981 {
34982 self.automatic_glGetError("glVertexAttrib4s");
34983 }
34984 out
34985 }
34986 #[doc(hidden)]
34987 pub unsafe fn VertexAttrib4s_load_with_dyn(
34988 &self,
34989 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
34990 ) -> bool {
34991 load_dyn_name_atomic_ptr(
34992 get_proc_address,
34993 b"glVertexAttrib4s\0",
34994 &self.glVertexAttrib4s_p,
34995 )
34996 }
34997 #[inline]
34998 #[doc(hidden)]
34999 pub fn VertexAttrib4s_is_loaded(&self) -> bool {
35000 !self.glVertexAttrib4s_p.load(RELAX).is_null()
35001 }
35002 #[cfg_attr(feature = "inline", inline)]
35005 #[cfg_attr(feature = "inline_always", inline(always))]
35006 pub unsafe fn VertexAttrib4sv(&self, index: GLuint, v: *const GLshort) {
35007 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35008 {
35009 trace!("calling gl.VertexAttrib4sv({:?}, {:p});", index, v);
35010 }
35011 let out =
35012 call_atomic_ptr_2arg("glVertexAttrib4sv", &self.glVertexAttrib4sv_p, index, v);
35013 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35014 {
35015 self.automatic_glGetError("glVertexAttrib4sv");
35016 }
35017 out
35018 }
35019 #[doc(hidden)]
35020 pub unsafe fn VertexAttrib4sv_load_with_dyn(
35021 &self,
35022 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35023 ) -> bool {
35024 load_dyn_name_atomic_ptr(
35025 get_proc_address,
35026 b"glVertexAttrib4sv\0",
35027 &self.glVertexAttrib4sv_p,
35028 )
35029 }
35030 #[inline]
35031 #[doc(hidden)]
35032 pub fn VertexAttrib4sv_is_loaded(&self) -> bool {
35033 !self.glVertexAttrib4sv_p.load(RELAX).is_null()
35034 }
35035 #[cfg_attr(feature = "inline", inline)]
35038 #[cfg_attr(feature = "inline_always", inline(always))]
35039 pub unsafe fn VertexAttrib4ubv(&self, index: GLuint, v: *const GLubyte) {
35040 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35041 {
35042 trace!("calling gl.VertexAttrib4ubv({:?}, {:p});", index, v);
35043 }
35044 let out =
35045 call_atomic_ptr_2arg("glVertexAttrib4ubv", &self.glVertexAttrib4ubv_p, index, v);
35046 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35047 {
35048 self.automatic_glGetError("glVertexAttrib4ubv");
35049 }
35050 out
35051 }
35052 #[doc(hidden)]
35053 pub unsafe fn VertexAttrib4ubv_load_with_dyn(
35054 &self,
35055 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35056 ) -> bool {
35057 load_dyn_name_atomic_ptr(
35058 get_proc_address,
35059 b"glVertexAttrib4ubv\0",
35060 &self.glVertexAttrib4ubv_p,
35061 )
35062 }
35063 #[inline]
35064 #[doc(hidden)]
35065 pub fn VertexAttrib4ubv_is_loaded(&self) -> bool {
35066 !self.glVertexAttrib4ubv_p.load(RELAX).is_null()
35067 }
35068 #[cfg_attr(feature = "inline", inline)]
35071 #[cfg_attr(feature = "inline_always", inline(always))]
35072 pub unsafe fn VertexAttrib4uiv(&self, index: GLuint, v: *const GLuint) {
35073 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35074 {
35075 trace!("calling gl.VertexAttrib4uiv({:?}, {:p});", index, v);
35076 }
35077 let out =
35078 call_atomic_ptr_2arg("glVertexAttrib4uiv", &self.glVertexAttrib4uiv_p, index, v);
35079 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35080 {
35081 self.automatic_glGetError("glVertexAttrib4uiv");
35082 }
35083 out
35084 }
35085 #[doc(hidden)]
35086 pub unsafe fn VertexAttrib4uiv_load_with_dyn(
35087 &self,
35088 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35089 ) -> bool {
35090 load_dyn_name_atomic_ptr(
35091 get_proc_address,
35092 b"glVertexAttrib4uiv\0",
35093 &self.glVertexAttrib4uiv_p,
35094 )
35095 }
35096 #[inline]
35097 #[doc(hidden)]
35098 pub fn VertexAttrib4uiv_is_loaded(&self) -> bool {
35099 !self.glVertexAttrib4uiv_p.load(RELAX).is_null()
35100 }
35101 #[cfg_attr(feature = "inline", inline)]
35104 #[cfg_attr(feature = "inline_always", inline(always))]
35105 pub unsafe fn VertexAttrib4usv(&self, index: GLuint, v: *const GLushort) {
35106 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35107 {
35108 trace!("calling gl.VertexAttrib4usv({:?}, {:p});", index, v);
35109 }
35110 let out =
35111 call_atomic_ptr_2arg("glVertexAttrib4usv", &self.glVertexAttrib4usv_p, index, v);
35112 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35113 {
35114 self.automatic_glGetError("glVertexAttrib4usv");
35115 }
35116 out
35117 }
35118 #[doc(hidden)]
35119 pub unsafe fn VertexAttrib4usv_load_with_dyn(
35120 &self,
35121 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35122 ) -> bool {
35123 load_dyn_name_atomic_ptr(
35124 get_proc_address,
35125 b"glVertexAttrib4usv\0",
35126 &self.glVertexAttrib4usv_p,
35127 )
35128 }
35129 #[inline]
35130 #[doc(hidden)]
35131 pub fn VertexAttrib4usv_is_loaded(&self) -> bool {
35132 !self.glVertexAttrib4usv_p.load(RELAX).is_null()
35133 }
35134 #[cfg_attr(feature = "inline", inline)]
35136 #[cfg_attr(feature = "inline_always", inline(always))]
35137 pub unsafe fn VertexAttribBinding(&self, attribindex: GLuint, bindingindex: GLuint) {
35138 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35139 {
35140 trace!(
35141 "calling gl.VertexAttribBinding({:?}, {:?});",
35142 attribindex,
35143 bindingindex
35144 );
35145 }
35146 let out = call_atomic_ptr_2arg(
35147 "glVertexAttribBinding",
35148 &self.glVertexAttribBinding_p,
35149 attribindex,
35150 bindingindex,
35151 );
35152 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35153 {
35154 self.automatic_glGetError("glVertexAttribBinding");
35155 }
35156 out
35157 }
35158 #[doc(hidden)]
35159 pub unsafe fn VertexAttribBinding_load_with_dyn(
35160 &self,
35161 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35162 ) -> bool {
35163 load_dyn_name_atomic_ptr(
35164 get_proc_address,
35165 b"glVertexAttribBinding\0",
35166 &self.glVertexAttribBinding_p,
35167 )
35168 }
35169 #[inline]
35170 #[doc(hidden)]
35171 pub fn VertexAttribBinding_is_loaded(&self) -> bool {
35172 !self.glVertexAttribBinding_p.load(RELAX).is_null()
35173 }
35174 #[cfg_attr(feature = "inline", inline)]
35176 #[cfg_attr(feature = "inline_always", inline(always))]
35177 pub unsafe fn VertexAttribDivisor(&self, index: GLuint, divisor: GLuint) {
35178 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35179 {
35180 trace!(
35181 "calling gl.VertexAttribDivisor({:?}, {:?});",
35182 index,
35183 divisor
35184 );
35185 }
35186 let out = call_atomic_ptr_2arg(
35187 "glVertexAttribDivisor",
35188 &self.glVertexAttribDivisor_p,
35189 index,
35190 divisor,
35191 );
35192 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35193 {
35194 self.automatic_glGetError("glVertexAttribDivisor");
35195 }
35196 out
35197 }
35198 #[doc(hidden)]
35199 pub unsafe fn VertexAttribDivisor_load_with_dyn(
35200 &self,
35201 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35202 ) -> bool {
35203 load_dyn_name_atomic_ptr(
35204 get_proc_address,
35205 b"glVertexAttribDivisor\0",
35206 &self.glVertexAttribDivisor_p,
35207 )
35208 }
35209 #[inline]
35210 #[doc(hidden)]
35211 pub fn VertexAttribDivisor_is_loaded(&self) -> bool {
35212 !self.glVertexAttribDivisor_p.load(RELAX).is_null()
35213 }
35214 #[cfg_attr(feature = "inline", inline)]
35217 #[cfg_attr(feature = "inline_always", inline(always))]
35218 pub unsafe fn VertexAttribDivisorARB(&self, index: GLuint, divisor: GLuint) {
35219 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35220 {
35221 trace!(
35222 "calling gl.VertexAttribDivisorARB({:?}, {:?});",
35223 index,
35224 divisor
35225 );
35226 }
35227 let out = call_atomic_ptr_2arg(
35228 "glVertexAttribDivisorARB",
35229 &self.glVertexAttribDivisorARB_p,
35230 index,
35231 divisor,
35232 );
35233 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35234 {
35235 self.automatic_glGetError("glVertexAttribDivisorARB");
35236 }
35237 out
35238 }
35239 #[doc(hidden)]
35240 pub unsafe fn VertexAttribDivisorARB_load_with_dyn(
35241 &self,
35242 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35243 ) -> bool {
35244 load_dyn_name_atomic_ptr(
35245 get_proc_address,
35246 b"glVertexAttribDivisorARB\0",
35247 &self.glVertexAttribDivisorARB_p,
35248 )
35249 }
35250 #[inline]
35251 #[doc(hidden)]
35252 pub fn VertexAttribDivisorARB_is_loaded(&self) -> bool {
35253 !self.glVertexAttribDivisorARB_p.load(RELAX).is_null()
35254 }
35255 #[cfg_attr(feature = "inline", inline)]
35258 #[cfg_attr(feature = "inline_always", inline(always))]
35259 pub unsafe fn VertexAttribFormat(
35260 &self,
35261 attribindex: GLuint,
35262 size: GLint,
35263 type_: GLenum,
35264 normalized: GLboolean,
35265 relativeoffset: GLuint,
35266 ) {
35267 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35268 {
35269 trace!(
35270 "calling gl.VertexAttribFormat({:?}, {:?}, {:#X}, {:?}, {:?});",
35271 attribindex,
35272 size,
35273 type_,
35274 normalized,
35275 relativeoffset
35276 );
35277 }
35278 let out = call_atomic_ptr_5arg(
35279 "glVertexAttribFormat",
35280 &self.glVertexAttribFormat_p,
35281 attribindex,
35282 size,
35283 type_,
35284 normalized,
35285 relativeoffset,
35286 );
35287 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35288 {
35289 self.automatic_glGetError("glVertexAttribFormat");
35290 }
35291 out
35292 }
35293 #[doc(hidden)]
35294 pub unsafe fn VertexAttribFormat_load_with_dyn(
35295 &self,
35296 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35297 ) -> bool {
35298 load_dyn_name_atomic_ptr(
35299 get_proc_address,
35300 b"glVertexAttribFormat\0",
35301 &self.glVertexAttribFormat_p,
35302 )
35303 }
35304 #[inline]
35305 #[doc(hidden)]
35306 pub fn VertexAttribFormat_is_loaded(&self) -> bool {
35307 !self.glVertexAttribFormat_p.load(RELAX).is_null()
35308 }
35309 #[cfg_attr(feature = "inline", inline)]
35312 #[cfg_attr(feature = "inline_always", inline(always))]
35313 pub unsafe fn VertexAttribI1i(&self, index: GLuint, x: GLint) {
35314 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35315 {
35316 trace!("calling gl.VertexAttribI1i({:?}, {:?});", index, x);
35317 }
35318 let out =
35319 call_atomic_ptr_2arg("glVertexAttribI1i", &self.glVertexAttribI1i_p, index, x);
35320 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35321 {
35322 self.automatic_glGetError("glVertexAttribI1i");
35323 }
35324 out
35325 }
35326 #[doc(hidden)]
35327 pub unsafe fn VertexAttribI1i_load_with_dyn(
35328 &self,
35329 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35330 ) -> bool {
35331 load_dyn_name_atomic_ptr(
35332 get_proc_address,
35333 b"glVertexAttribI1i\0",
35334 &self.glVertexAttribI1i_p,
35335 )
35336 }
35337 #[inline]
35338 #[doc(hidden)]
35339 pub fn VertexAttribI1i_is_loaded(&self) -> bool {
35340 !self.glVertexAttribI1i_p.load(RELAX).is_null()
35341 }
35342 #[cfg_attr(feature = "inline", inline)]
35345 #[cfg_attr(feature = "inline_always", inline(always))]
35346 pub unsafe fn VertexAttribI1iv(&self, index: GLuint, v: *const GLint) {
35347 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35348 {
35349 trace!("calling gl.VertexAttribI1iv({:?}, {:p});", index, v);
35350 }
35351 let out =
35352 call_atomic_ptr_2arg("glVertexAttribI1iv", &self.glVertexAttribI1iv_p, index, v);
35353 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35354 {
35355 self.automatic_glGetError("glVertexAttribI1iv");
35356 }
35357 out
35358 }
35359 #[doc(hidden)]
35360 pub unsafe fn VertexAttribI1iv_load_with_dyn(
35361 &self,
35362 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35363 ) -> bool {
35364 load_dyn_name_atomic_ptr(
35365 get_proc_address,
35366 b"glVertexAttribI1iv\0",
35367 &self.glVertexAttribI1iv_p,
35368 )
35369 }
35370 #[inline]
35371 #[doc(hidden)]
35372 pub fn VertexAttribI1iv_is_loaded(&self) -> bool {
35373 !self.glVertexAttribI1iv_p.load(RELAX).is_null()
35374 }
35375 #[cfg_attr(feature = "inline", inline)]
35378 #[cfg_attr(feature = "inline_always", inline(always))]
35379 pub unsafe fn VertexAttribI1ui(&self, index: GLuint, x: GLuint) {
35380 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35381 {
35382 trace!("calling gl.VertexAttribI1ui({:?}, {:?});", index, x);
35383 }
35384 let out =
35385 call_atomic_ptr_2arg("glVertexAttribI1ui", &self.glVertexAttribI1ui_p, index, x);
35386 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35387 {
35388 self.automatic_glGetError("glVertexAttribI1ui");
35389 }
35390 out
35391 }
35392 #[doc(hidden)]
35393 pub unsafe fn VertexAttribI1ui_load_with_dyn(
35394 &self,
35395 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35396 ) -> bool {
35397 load_dyn_name_atomic_ptr(
35398 get_proc_address,
35399 b"glVertexAttribI1ui\0",
35400 &self.glVertexAttribI1ui_p,
35401 )
35402 }
35403 #[inline]
35404 #[doc(hidden)]
35405 pub fn VertexAttribI1ui_is_loaded(&self) -> bool {
35406 !self.glVertexAttribI1ui_p.load(RELAX).is_null()
35407 }
35408 #[cfg_attr(feature = "inline", inline)]
35411 #[cfg_attr(feature = "inline_always", inline(always))]
35412 pub unsafe fn VertexAttribI1uiv(&self, index: GLuint, v: *const GLuint) {
35413 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35414 {
35415 trace!("calling gl.VertexAttribI1uiv({:?}, {:p});", index, v);
35416 }
35417 let out =
35418 call_atomic_ptr_2arg("glVertexAttribI1uiv", &self.glVertexAttribI1uiv_p, index, v);
35419 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35420 {
35421 self.automatic_glGetError("glVertexAttribI1uiv");
35422 }
35423 out
35424 }
35425 #[doc(hidden)]
35426 pub unsafe fn VertexAttribI1uiv_load_with_dyn(
35427 &self,
35428 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35429 ) -> bool {
35430 load_dyn_name_atomic_ptr(
35431 get_proc_address,
35432 b"glVertexAttribI1uiv\0",
35433 &self.glVertexAttribI1uiv_p,
35434 )
35435 }
35436 #[inline]
35437 #[doc(hidden)]
35438 pub fn VertexAttribI1uiv_is_loaded(&self) -> bool {
35439 !self.glVertexAttribI1uiv_p.load(RELAX).is_null()
35440 }
35441 #[cfg_attr(feature = "inline", inline)]
35444 #[cfg_attr(feature = "inline_always", inline(always))]
35445 pub unsafe fn VertexAttribI2i(&self, index: GLuint, x: GLint, y: GLint) {
35446 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35447 {
35448 trace!("calling gl.VertexAttribI2i({:?}, {:?}, {:?});", index, x, y);
35449 }
35450 let out =
35451 call_atomic_ptr_3arg("glVertexAttribI2i", &self.glVertexAttribI2i_p, index, x, y);
35452 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35453 {
35454 self.automatic_glGetError("glVertexAttribI2i");
35455 }
35456 out
35457 }
35458 #[doc(hidden)]
35459 pub unsafe fn VertexAttribI2i_load_with_dyn(
35460 &self,
35461 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35462 ) -> bool {
35463 load_dyn_name_atomic_ptr(
35464 get_proc_address,
35465 b"glVertexAttribI2i\0",
35466 &self.glVertexAttribI2i_p,
35467 )
35468 }
35469 #[inline]
35470 #[doc(hidden)]
35471 pub fn VertexAttribI2i_is_loaded(&self) -> bool {
35472 !self.glVertexAttribI2i_p.load(RELAX).is_null()
35473 }
35474 #[cfg_attr(feature = "inline", inline)]
35477 #[cfg_attr(feature = "inline_always", inline(always))]
35478 pub unsafe fn VertexAttribI2iv(&self, index: GLuint, v: *const GLint) {
35479 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35480 {
35481 trace!("calling gl.VertexAttribI2iv({:?}, {:p});", index, v);
35482 }
35483 let out =
35484 call_atomic_ptr_2arg("glVertexAttribI2iv", &self.glVertexAttribI2iv_p, index, v);
35485 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35486 {
35487 self.automatic_glGetError("glVertexAttribI2iv");
35488 }
35489 out
35490 }
35491 #[doc(hidden)]
35492 pub unsafe fn VertexAttribI2iv_load_with_dyn(
35493 &self,
35494 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35495 ) -> bool {
35496 load_dyn_name_atomic_ptr(
35497 get_proc_address,
35498 b"glVertexAttribI2iv\0",
35499 &self.glVertexAttribI2iv_p,
35500 )
35501 }
35502 #[inline]
35503 #[doc(hidden)]
35504 pub fn VertexAttribI2iv_is_loaded(&self) -> bool {
35505 !self.glVertexAttribI2iv_p.load(RELAX).is_null()
35506 }
35507 #[cfg_attr(feature = "inline", inline)]
35510 #[cfg_attr(feature = "inline_always", inline(always))]
35511 pub unsafe fn VertexAttribI2ui(&self, index: GLuint, x: GLuint, y: GLuint) {
35512 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35513 {
35514 trace!(
35515 "calling gl.VertexAttribI2ui({:?}, {:?}, {:?});",
35516 index,
35517 x,
35518 y
35519 );
35520 }
35521 let out = call_atomic_ptr_3arg(
35522 "glVertexAttribI2ui",
35523 &self.glVertexAttribI2ui_p,
35524 index,
35525 x,
35526 y,
35527 );
35528 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35529 {
35530 self.automatic_glGetError("glVertexAttribI2ui");
35531 }
35532 out
35533 }
35534 #[doc(hidden)]
35535 pub unsafe fn VertexAttribI2ui_load_with_dyn(
35536 &self,
35537 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35538 ) -> bool {
35539 load_dyn_name_atomic_ptr(
35540 get_proc_address,
35541 b"glVertexAttribI2ui\0",
35542 &self.glVertexAttribI2ui_p,
35543 )
35544 }
35545 #[inline]
35546 #[doc(hidden)]
35547 pub fn VertexAttribI2ui_is_loaded(&self) -> bool {
35548 !self.glVertexAttribI2ui_p.load(RELAX).is_null()
35549 }
35550 #[cfg_attr(feature = "inline", inline)]
35553 #[cfg_attr(feature = "inline_always", inline(always))]
35554 pub unsafe fn VertexAttribI2uiv(&self, index: GLuint, v: *const GLuint) {
35555 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35556 {
35557 trace!("calling gl.VertexAttribI2uiv({:?}, {:p});", index, v);
35558 }
35559 let out =
35560 call_atomic_ptr_2arg("glVertexAttribI2uiv", &self.glVertexAttribI2uiv_p, index, v);
35561 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35562 {
35563 self.automatic_glGetError("glVertexAttribI2uiv");
35564 }
35565 out
35566 }
35567 #[doc(hidden)]
35568 pub unsafe fn VertexAttribI2uiv_load_with_dyn(
35569 &self,
35570 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35571 ) -> bool {
35572 load_dyn_name_atomic_ptr(
35573 get_proc_address,
35574 b"glVertexAttribI2uiv\0",
35575 &self.glVertexAttribI2uiv_p,
35576 )
35577 }
35578 #[inline]
35579 #[doc(hidden)]
35580 pub fn VertexAttribI2uiv_is_loaded(&self) -> bool {
35581 !self.glVertexAttribI2uiv_p.load(RELAX).is_null()
35582 }
35583 #[cfg_attr(feature = "inline", inline)]
35586 #[cfg_attr(feature = "inline_always", inline(always))]
35587 pub unsafe fn VertexAttribI3i(&self, index: GLuint, x: GLint, y: GLint, z: GLint) {
35588 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35589 {
35590 trace!(
35591 "calling gl.VertexAttribI3i({:?}, {:?}, {:?}, {:?});",
35592 index,
35593 x,
35594 y,
35595 z
35596 );
35597 }
35598 let out = call_atomic_ptr_4arg(
35599 "glVertexAttribI3i",
35600 &self.glVertexAttribI3i_p,
35601 index,
35602 x,
35603 y,
35604 z,
35605 );
35606 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35607 {
35608 self.automatic_glGetError("glVertexAttribI3i");
35609 }
35610 out
35611 }
35612 #[doc(hidden)]
35613 pub unsafe fn VertexAttribI3i_load_with_dyn(
35614 &self,
35615 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35616 ) -> bool {
35617 load_dyn_name_atomic_ptr(
35618 get_proc_address,
35619 b"glVertexAttribI3i\0",
35620 &self.glVertexAttribI3i_p,
35621 )
35622 }
35623 #[inline]
35624 #[doc(hidden)]
35625 pub fn VertexAttribI3i_is_loaded(&self) -> bool {
35626 !self.glVertexAttribI3i_p.load(RELAX).is_null()
35627 }
35628 #[cfg_attr(feature = "inline", inline)]
35631 #[cfg_attr(feature = "inline_always", inline(always))]
35632 pub unsafe fn VertexAttribI3iv(&self, index: GLuint, v: *const GLint) {
35633 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35634 {
35635 trace!("calling gl.VertexAttribI3iv({:?}, {:p});", index, v);
35636 }
35637 let out =
35638 call_atomic_ptr_2arg("glVertexAttribI3iv", &self.glVertexAttribI3iv_p, index, v);
35639 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35640 {
35641 self.automatic_glGetError("glVertexAttribI3iv");
35642 }
35643 out
35644 }
35645 #[doc(hidden)]
35646 pub unsafe fn VertexAttribI3iv_load_with_dyn(
35647 &self,
35648 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35649 ) -> bool {
35650 load_dyn_name_atomic_ptr(
35651 get_proc_address,
35652 b"glVertexAttribI3iv\0",
35653 &self.glVertexAttribI3iv_p,
35654 )
35655 }
35656 #[inline]
35657 #[doc(hidden)]
35658 pub fn VertexAttribI3iv_is_loaded(&self) -> bool {
35659 !self.glVertexAttribI3iv_p.load(RELAX).is_null()
35660 }
35661 #[cfg_attr(feature = "inline", inline)]
35664 #[cfg_attr(feature = "inline_always", inline(always))]
35665 pub unsafe fn VertexAttribI3ui(&self, index: GLuint, x: GLuint, y: GLuint, z: GLuint) {
35666 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35667 {
35668 trace!(
35669 "calling gl.VertexAttribI3ui({:?}, {:?}, {:?}, {:?});",
35670 index,
35671 x,
35672 y,
35673 z
35674 );
35675 }
35676 let out = call_atomic_ptr_4arg(
35677 "glVertexAttribI3ui",
35678 &self.glVertexAttribI3ui_p,
35679 index,
35680 x,
35681 y,
35682 z,
35683 );
35684 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35685 {
35686 self.automatic_glGetError("glVertexAttribI3ui");
35687 }
35688 out
35689 }
35690 #[doc(hidden)]
35691 pub unsafe fn VertexAttribI3ui_load_with_dyn(
35692 &self,
35693 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35694 ) -> bool {
35695 load_dyn_name_atomic_ptr(
35696 get_proc_address,
35697 b"glVertexAttribI3ui\0",
35698 &self.glVertexAttribI3ui_p,
35699 )
35700 }
35701 #[inline]
35702 #[doc(hidden)]
35703 pub fn VertexAttribI3ui_is_loaded(&self) -> bool {
35704 !self.glVertexAttribI3ui_p.load(RELAX).is_null()
35705 }
35706 #[cfg_attr(feature = "inline", inline)]
35709 #[cfg_attr(feature = "inline_always", inline(always))]
35710 pub unsafe fn VertexAttribI3uiv(&self, index: GLuint, v: *const GLuint) {
35711 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35712 {
35713 trace!("calling gl.VertexAttribI3uiv({:?}, {:p});", index, v);
35714 }
35715 let out =
35716 call_atomic_ptr_2arg("glVertexAttribI3uiv", &self.glVertexAttribI3uiv_p, index, v);
35717 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35718 {
35719 self.automatic_glGetError("glVertexAttribI3uiv");
35720 }
35721 out
35722 }
35723 #[doc(hidden)]
35724 pub unsafe fn VertexAttribI3uiv_load_with_dyn(
35725 &self,
35726 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35727 ) -> bool {
35728 load_dyn_name_atomic_ptr(
35729 get_proc_address,
35730 b"glVertexAttribI3uiv\0",
35731 &self.glVertexAttribI3uiv_p,
35732 )
35733 }
35734 #[inline]
35735 #[doc(hidden)]
35736 pub fn VertexAttribI3uiv_is_loaded(&self) -> bool {
35737 !self.glVertexAttribI3uiv_p.load(RELAX).is_null()
35738 }
35739 #[cfg_attr(feature = "inline", inline)]
35742 #[cfg_attr(feature = "inline_always", inline(always))]
35743 pub unsafe fn VertexAttribI4bv(&self, index: GLuint, v: *const GLbyte) {
35744 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35745 {
35746 trace!("calling gl.VertexAttribI4bv({:?}, {:p});", index, v);
35747 }
35748 let out =
35749 call_atomic_ptr_2arg("glVertexAttribI4bv", &self.glVertexAttribI4bv_p, index, v);
35750 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35751 {
35752 self.automatic_glGetError("glVertexAttribI4bv");
35753 }
35754 out
35755 }
35756 #[doc(hidden)]
35757 pub unsafe fn VertexAttribI4bv_load_with_dyn(
35758 &self,
35759 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35760 ) -> bool {
35761 load_dyn_name_atomic_ptr(
35762 get_proc_address,
35763 b"glVertexAttribI4bv\0",
35764 &self.glVertexAttribI4bv_p,
35765 )
35766 }
35767 #[inline]
35768 #[doc(hidden)]
35769 pub fn VertexAttribI4bv_is_loaded(&self) -> bool {
35770 !self.glVertexAttribI4bv_p.load(RELAX).is_null()
35771 }
35772 #[cfg_attr(feature = "inline", inline)]
35775 #[cfg_attr(feature = "inline_always", inline(always))]
35776 pub unsafe fn VertexAttribI4i(
35777 &self,
35778 index: GLuint,
35779 x: GLint,
35780 y: GLint,
35781 z: GLint,
35782 w: GLint,
35783 ) {
35784 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35785 {
35786 trace!(
35787 "calling gl.VertexAttribI4i({:?}, {:?}, {:?}, {:?}, {:?});",
35788 index,
35789 x,
35790 y,
35791 z,
35792 w
35793 );
35794 }
35795 let out = call_atomic_ptr_5arg(
35796 "glVertexAttribI4i",
35797 &self.glVertexAttribI4i_p,
35798 index,
35799 x,
35800 y,
35801 z,
35802 w,
35803 );
35804 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35805 {
35806 self.automatic_glGetError("glVertexAttribI4i");
35807 }
35808 out
35809 }
35810 #[doc(hidden)]
35811 pub unsafe fn VertexAttribI4i_load_with_dyn(
35812 &self,
35813 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35814 ) -> bool {
35815 load_dyn_name_atomic_ptr(
35816 get_proc_address,
35817 b"glVertexAttribI4i\0",
35818 &self.glVertexAttribI4i_p,
35819 )
35820 }
35821 #[inline]
35822 #[doc(hidden)]
35823 pub fn VertexAttribI4i_is_loaded(&self) -> bool {
35824 !self.glVertexAttribI4i_p.load(RELAX).is_null()
35825 }
35826 #[cfg_attr(feature = "inline", inline)]
35829 #[cfg_attr(feature = "inline_always", inline(always))]
35830 pub unsafe fn VertexAttribI4iv(&self, index: GLuint, v: *const GLint) {
35831 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35832 {
35833 trace!("calling gl.VertexAttribI4iv({:?}, {:p});", index, v);
35834 }
35835 let out =
35836 call_atomic_ptr_2arg("glVertexAttribI4iv", &self.glVertexAttribI4iv_p, index, v);
35837 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35838 {
35839 self.automatic_glGetError("glVertexAttribI4iv");
35840 }
35841 out
35842 }
35843 #[doc(hidden)]
35844 pub unsafe fn VertexAttribI4iv_load_with_dyn(
35845 &self,
35846 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35847 ) -> bool {
35848 load_dyn_name_atomic_ptr(
35849 get_proc_address,
35850 b"glVertexAttribI4iv\0",
35851 &self.glVertexAttribI4iv_p,
35852 )
35853 }
35854 #[inline]
35855 #[doc(hidden)]
35856 pub fn VertexAttribI4iv_is_loaded(&self) -> bool {
35857 !self.glVertexAttribI4iv_p.load(RELAX).is_null()
35858 }
35859 #[cfg_attr(feature = "inline", inline)]
35862 #[cfg_attr(feature = "inline_always", inline(always))]
35863 pub unsafe fn VertexAttribI4sv(&self, index: GLuint, v: *const GLshort) {
35864 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35865 {
35866 trace!("calling gl.VertexAttribI4sv({:?}, {:p});", index, v);
35867 }
35868 let out =
35869 call_atomic_ptr_2arg("glVertexAttribI4sv", &self.glVertexAttribI4sv_p, index, v);
35870 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35871 {
35872 self.automatic_glGetError("glVertexAttribI4sv");
35873 }
35874 out
35875 }
35876 #[doc(hidden)]
35877 pub unsafe fn VertexAttribI4sv_load_with_dyn(
35878 &self,
35879 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35880 ) -> bool {
35881 load_dyn_name_atomic_ptr(
35882 get_proc_address,
35883 b"glVertexAttribI4sv\0",
35884 &self.glVertexAttribI4sv_p,
35885 )
35886 }
35887 #[inline]
35888 #[doc(hidden)]
35889 pub fn VertexAttribI4sv_is_loaded(&self) -> bool {
35890 !self.glVertexAttribI4sv_p.load(RELAX).is_null()
35891 }
35892 #[cfg_attr(feature = "inline", inline)]
35895 #[cfg_attr(feature = "inline_always", inline(always))]
35896 pub unsafe fn VertexAttribI4ubv(&self, index: GLuint, v: *const GLubyte) {
35897 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35898 {
35899 trace!("calling gl.VertexAttribI4ubv({:?}, {:p});", index, v);
35900 }
35901 let out =
35902 call_atomic_ptr_2arg("glVertexAttribI4ubv", &self.glVertexAttribI4ubv_p, index, v);
35903 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35904 {
35905 self.automatic_glGetError("glVertexAttribI4ubv");
35906 }
35907 out
35908 }
35909 #[doc(hidden)]
35910 pub unsafe fn VertexAttribI4ubv_load_with_dyn(
35911 &self,
35912 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35913 ) -> bool {
35914 load_dyn_name_atomic_ptr(
35915 get_proc_address,
35916 b"glVertexAttribI4ubv\0",
35917 &self.glVertexAttribI4ubv_p,
35918 )
35919 }
35920 #[inline]
35921 #[doc(hidden)]
35922 pub fn VertexAttribI4ubv_is_loaded(&self) -> bool {
35923 !self.glVertexAttribI4ubv_p.load(RELAX).is_null()
35924 }
35925 #[cfg_attr(feature = "inline", inline)]
35928 #[cfg_attr(feature = "inline_always", inline(always))]
35929 pub unsafe fn VertexAttribI4ui(
35930 &self,
35931 index: GLuint,
35932 x: GLuint,
35933 y: GLuint,
35934 z: GLuint,
35935 w: GLuint,
35936 ) {
35937 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35938 {
35939 trace!(
35940 "calling gl.VertexAttribI4ui({:?}, {:?}, {:?}, {:?}, {:?});",
35941 index,
35942 x,
35943 y,
35944 z,
35945 w
35946 );
35947 }
35948 let out = call_atomic_ptr_5arg(
35949 "glVertexAttribI4ui",
35950 &self.glVertexAttribI4ui_p,
35951 index,
35952 x,
35953 y,
35954 z,
35955 w,
35956 );
35957 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35958 {
35959 self.automatic_glGetError("glVertexAttribI4ui");
35960 }
35961 out
35962 }
35963 #[doc(hidden)]
35964 pub unsafe fn VertexAttribI4ui_load_with_dyn(
35965 &self,
35966 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
35967 ) -> bool {
35968 load_dyn_name_atomic_ptr(
35969 get_proc_address,
35970 b"glVertexAttribI4ui\0",
35971 &self.glVertexAttribI4ui_p,
35972 )
35973 }
35974 #[inline]
35975 #[doc(hidden)]
35976 pub fn VertexAttribI4ui_is_loaded(&self) -> bool {
35977 !self.glVertexAttribI4ui_p.load(RELAX).is_null()
35978 }
35979 #[cfg_attr(feature = "inline", inline)]
35982 #[cfg_attr(feature = "inline_always", inline(always))]
35983 pub unsafe fn VertexAttribI4uiv(&self, index: GLuint, v: *const GLuint) {
35984 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
35985 {
35986 trace!("calling gl.VertexAttribI4uiv({:?}, {:p});", index, v);
35987 }
35988 let out =
35989 call_atomic_ptr_2arg("glVertexAttribI4uiv", &self.glVertexAttribI4uiv_p, index, v);
35990 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
35991 {
35992 self.automatic_glGetError("glVertexAttribI4uiv");
35993 }
35994 out
35995 }
35996 #[doc(hidden)]
35997 pub unsafe fn VertexAttribI4uiv_load_with_dyn(
35998 &self,
35999 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36000 ) -> bool {
36001 load_dyn_name_atomic_ptr(
36002 get_proc_address,
36003 b"glVertexAttribI4uiv\0",
36004 &self.glVertexAttribI4uiv_p,
36005 )
36006 }
36007 #[inline]
36008 #[doc(hidden)]
36009 pub fn VertexAttribI4uiv_is_loaded(&self) -> bool {
36010 !self.glVertexAttribI4uiv_p.load(RELAX).is_null()
36011 }
36012 #[cfg_attr(feature = "inline", inline)]
36015 #[cfg_attr(feature = "inline_always", inline(always))]
36016 pub unsafe fn VertexAttribI4usv(&self, index: GLuint, v: *const GLushort) {
36017 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36018 {
36019 trace!("calling gl.VertexAttribI4usv({:?}, {:p});", index, v);
36020 }
36021 let out =
36022 call_atomic_ptr_2arg("glVertexAttribI4usv", &self.glVertexAttribI4usv_p, index, v);
36023 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36024 {
36025 self.automatic_glGetError("glVertexAttribI4usv");
36026 }
36027 out
36028 }
36029 #[doc(hidden)]
36030 pub unsafe fn VertexAttribI4usv_load_with_dyn(
36031 &self,
36032 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36033 ) -> bool {
36034 load_dyn_name_atomic_ptr(
36035 get_proc_address,
36036 b"glVertexAttribI4usv\0",
36037 &self.glVertexAttribI4usv_p,
36038 )
36039 }
36040 #[inline]
36041 #[doc(hidden)]
36042 pub fn VertexAttribI4usv_is_loaded(&self) -> bool {
36043 !self.glVertexAttribI4usv_p.load(RELAX).is_null()
36044 }
36045 #[cfg_attr(feature = "inline", inline)]
36048 #[cfg_attr(feature = "inline_always", inline(always))]
36049 pub unsafe fn VertexAttribIFormat(
36050 &self,
36051 attribindex: GLuint,
36052 size: GLint,
36053 type_: GLenum,
36054 relativeoffset: GLuint,
36055 ) {
36056 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36057 {
36058 trace!(
36059 "calling gl.VertexAttribIFormat({:?}, {:?}, {:#X}, {:?});",
36060 attribindex,
36061 size,
36062 type_,
36063 relativeoffset
36064 );
36065 }
36066 let out = call_atomic_ptr_4arg(
36067 "glVertexAttribIFormat",
36068 &self.glVertexAttribIFormat_p,
36069 attribindex,
36070 size,
36071 type_,
36072 relativeoffset,
36073 );
36074 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36075 {
36076 self.automatic_glGetError("glVertexAttribIFormat");
36077 }
36078 out
36079 }
36080 #[doc(hidden)]
36081 pub unsafe fn VertexAttribIFormat_load_with_dyn(
36082 &self,
36083 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36084 ) -> bool {
36085 load_dyn_name_atomic_ptr(
36086 get_proc_address,
36087 b"glVertexAttribIFormat\0",
36088 &self.glVertexAttribIFormat_p,
36089 )
36090 }
36091 #[inline]
36092 #[doc(hidden)]
36093 pub fn VertexAttribIFormat_is_loaded(&self) -> bool {
36094 !self.glVertexAttribIFormat_p.load(RELAX).is_null()
36095 }
36096 #[cfg_attr(feature = "inline", inline)]
36100 #[cfg_attr(feature = "inline_always", inline(always))]
36101 pub unsafe fn VertexAttribIPointer(
36102 &self,
36103 index: GLuint,
36104 size: GLint,
36105 type_: GLenum,
36106 stride: GLsizei,
36107 pointer: *const c_void,
36108 ) {
36109 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36110 {
36111 trace!(
36112 "calling gl.VertexAttribIPointer({:?}, {:?}, {:#X}, {:?}, {:p});",
36113 index,
36114 size,
36115 type_,
36116 stride,
36117 pointer
36118 );
36119 }
36120 let out = call_atomic_ptr_5arg(
36121 "glVertexAttribIPointer",
36122 &self.glVertexAttribIPointer_p,
36123 index,
36124 size,
36125 type_,
36126 stride,
36127 pointer,
36128 );
36129 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36130 {
36131 self.automatic_glGetError("glVertexAttribIPointer");
36132 }
36133 out
36134 }
36135 #[doc(hidden)]
36136 pub unsafe fn VertexAttribIPointer_load_with_dyn(
36137 &self,
36138 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36139 ) -> bool {
36140 load_dyn_name_atomic_ptr(
36141 get_proc_address,
36142 b"glVertexAttribIPointer\0",
36143 &self.glVertexAttribIPointer_p,
36144 )
36145 }
36146 #[inline]
36147 #[doc(hidden)]
36148 pub fn VertexAttribIPointer_is_loaded(&self) -> bool {
36149 !self.glVertexAttribIPointer_p.load(RELAX).is_null()
36150 }
36151 #[cfg_attr(feature = "inline", inline)]
36153 #[cfg_attr(feature = "inline_always", inline(always))]
36154 pub unsafe fn VertexAttribL1d(&self, index: GLuint, x: GLdouble) {
36155 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36156 {
36157 trace!("calling gl.VertexAttribL1d({:?}, {:?});", index, x);
36158 }
36159 let out =
36160 call_atomic_ptr_2arg("glVertexAttribL1d", &self.glVertexAttribL1d_p, index, x);
36161 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36162 {
36163 self.automatic_glGetError("glVertexAttribL1d");
36164 }
36165 out
36166 }
36167 #[doc(hidden)]
36168 pub unsafe fn VertexAttribL1d_load_with_dyn(
36169 &self,
36170 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36171 ) -> bool {
36172 load_dyn_name_atomic_ptr(
36173 get_proc_address,
36174 b"glVertexAttribL1d\0",
36175 &self.glVertexAttribL1d_p,
36176 )
36177 }
36178 #[inline]
36179 #[doc(hidden)]
36180 pub fn VertexAttribL1d_is_loaded(&self) -> bool {
36181 !self.glVertexAttribL1d_p.load(RELAX).is_null()
36182 }
36183 #[cfg_attr(feature = "inline", inline)]
36186 #[cfg_attr(feature = "inline_always", inline(always))]
36187 pub unsafe fn VertexAttribL1dv(&self, index: GLuint, v: *const GLdouble) {
36188 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36189 {
36190 trace!("calling gl.VertexAttribL1dv({:?}, {:p});", index, v);
36191 }
36192 let out =
36193 call_atomic_ptr_2arg("glVertexAttribL1dv", &self.glVertexAttribL1dv_p, index, v);
36194 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36195 {
36196 self.automatic_glGetError("glVertexAttribL1dv");
36197 }
36198 out
36199 }
36200 #[doc(hidden)]
36201 pub unsafe fn VertexAttribL1dv_load_with_dyn(
36202 &self,
36203 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36204 ) -> bool {
36205 load_dyn_name_atomic_ptr(
36206 get_proc_address,
36207 b"glVertexAttribL1dv\0",
36208 &self.glVertexAttribL1dv_p,
36209 )
36210 }
36211 #[inline]
36212 #[doc(hidden)]
36213 pub fn VertexAttribL1dv_is_loaded(&self) -> bool {
36214 !self.glVertexAttribL1dv_p.load(RELAX).is_null()
36215 }
36216 #[cfg_attr(feature = "inline", inline)]
36218 #[cfg_attr(feature = "inline_always", inline(always))]
36219 pub unsafe fn VertexAttribL2d(&self, index: GLuint, x: GLdouble, y: GLdouble) {
36220 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36221 {
36222 trace!("calling gl.VertexAttribL2d({:?}, {:?}, {:?});", index, x, y);
36223 }
36224 let out =
36225 call_atomic_ptr_3arg("glVertexAttribL2d", &self.glVertexAttribL2d_p, index, x, y);
36226 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36227 {
36228 self.automatic_glGetError("glVertexAttribL2d");
36229 }
36230 out
36231 }
36232 #[doc(hidden)]
36233 pub unsafe fn VertexAttribL2d_load_with_dyn(
36234 &self,
36235 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36236 ) -> bool {
36237 load_dyn_name_atomic_ptr(
36238 get_proc_address,
36239 b"glVertexAttribL2d\0",
36240 &self.glVertexAttribL2d_p,
36241 )
36242 }
36243 #[inline]
36244 #[doc(hidden)]
36245 pub fn VertexAttribL2d_is_loaded(&self) -> bool {
36246 !self.glVertexAttribL2d_p.load(RELAX).is_null()
36247 }
36248 #[cfg_attr(feature = "inline", inline)]
36251 #[cfg_attr(feature = "inline_always", inline(always))]
36252 pub unsafe fn VertexAttribL2dv(&self, index: GLuint, v: *const GLdouble) {
36253 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36254 {
36255 trace!("calling gl.VertexAttribL2dv({:?}, {:p});", index, v);
36256 }
36257 let out =
36258 call_atomic_ptr_2arg("glVertexAttribL2dv", &self.glVertexAttribL2dv_p, index, v);
36259 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36260 {
36261 self.automatic_glGetError("glVertexAttribL2dv");
36262 }
36263 out
36264 }
36265 #[doc(hidden)]
36266 pub unsafe fn VertexAttribL2dv_load_with_dyn(
36267 &self,
36268 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36269 ) -> bool {
36270 load_dyn_name_atomic_ptr(
36271 get_proc_address,
36272 b"glVertexAttribL2dv\0",
36273 &self.glVertexAttribL2dv_p,
36274 )
36275 }
36276 #[inline]
36277 #[doc(hidden)]
36278 pub fn VertexAttribL2dv_is_loaded(&self) -> bool {
36279 !self.glVertexAttribL2dv_p.load(RELAX).is_null()
36280 }
36281 #[cfg_attr(feature = "inline", inline)]
36283 #[cfg_attr(feature = "inline_always", inline(always))]
36284 pub unsafe fn VertexAttribL3d(&self, index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble) {
36285 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36286 {
36287 trace!(
36288 "calling gl.VertexAttribL3d({:?}, {:?}, {:?}, {:?});",
36289 index,
36290 x,
36291 y,
36292 z
36293 );
36294 }
36295 let out = call_atomic_ptr_4arg(
36296 "glVertexAttribL3d",
36297 &self.glVertexAttribL3d_p,
36298 index,
36299 x,
36300 y,
36301 z,
36302 );
36303 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36304 {
36305 self.automatic_glGetError("glVertexAttribL3d");
36306 }
36307 out
36308 }
36309 #[doc(hidden)]
36310 pub unsafe fn VertexAttribL3d_load_with_dyn(
36311 &self,
36312 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36313 ) -> bool {
36314 load_dyn_name_atomic_ptr(
36315 get_proc_address,
36316 b"glVertexAttribL3d\0",
36317 &self.glVertexAttribL3d_p,
36318 )
36319 }
36320 #[inline]
36321 #[doc(hidden)]
36322 pub fn VertexAttribL3d_is_loaded(&self) -> bool {
36323 !self.glVertexAttribL3d_p.load(RELAX).is_null()
36324 }
36325 #[cfg_attr(feature = "inline", inline)]
36328 #[cfg_attr(feature = "inline_always", inline(always))]
36329 pub unsafe fn VertexAttribL3dv(&self, index: GLuint, v: *const GLdouble) {
36330 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36331 {
36332 trace!("calling gl.VertexAttribL3dv({:?}, {:p});", index, v);
36333 }
36334 let out =
36335 call_atomic_ptr_2arg("glVertexAttribL3dv", &self.glVertexAttribL3dv_p, index, v);
36336 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36337 {
36338 self.automatic_glGetError("glVertexAttribL3dv");
36339 }
36340 out
36341 }
36342 #[doc(hidden)]
36343 pub unsafe fn VertexAttribL3dv_load_with_dyn(
36344 &self,
36345 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36346 ) -> bool {
36347 load_dyn_name_atomic_ptr(
36348 get_proc_address,
36349 b"glVertexAttribL3dv\0",
36350 &self.glVertexAttribL3dv_p,
36351 )
36352 }
36353 #[inline]
36354 #[doc(hidden)]
36355 pub fn VertexAttribL3dv_is_loaded(&self) -> bool {
36356 !self.glVertexAttribL3dv_p.load(RELAX).is_null()
36357 }
36358 #[cfg_attr(feature = "inline", inline)]
36360 #[cfg_attr(feature = "inline_always", inline(always))]
36361 pub unsafe fn VertexAttribL4d(
36362 &self,
36363 index: GLuint,
36364 x: GLdouble,
36365 y: GLdouble,
36366 z: GLdouble,
36367 w: GLdouble,
36368 ) {
36369 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36370 {
36371 trace!(
36372 "calling gl.VertexAttribL4d({:?}, {:?}, {:?}, {:?}, {:?});",
36373 index,
36374 x,
36375 y,
36376 z,
36377 w
36378 );
36379 }
36380 let out = call_atomic_ptr_5arg(
36381 "glVertexAttribL4d",
36382 &self.glVertexAttribL4d_p,
36383 index,
36384 x,
36385 y,
36386 z,
36387 w,
36388 );
36389 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36390 {
36391 self.automatic_glGetError("glVertexAttribL4d");
36392 }
36393 out
36394 }
36395 #[doc(hidden)]
36396 pub unsafe fn VertexAttribL4d_load_with_dyn(
36397 &self,
36398 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36399 ) -> bool {
36400 load_dyn_name_atomic_ptr(
36401 get_proc_address,
36402 b"glVertexAttribL4d\0",
36403 &self.glVertexAttribL4d_p,
36404 )
36405 }
36406 #[inline]
36407 #[doc(hidden)]
36408 pub fn VertexAttribL4d_is_loaded(&self) -> bool {
36409 !self.glVertexAttribL4d_p.load(RELAX).is_null()
36410 }
36411 #[cfg_attr(feature = "inline", inline)]
36414 #[cfg_attr(feature = "inline_always", inline(always))]
36415 pub unsafe fn VertexAttribL4dv(&self, index: GLuint, v: *const GLdouble) {
36416 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36417 {
36418 trace!("calling gl.VertexAttribL4dv({:?}, {:p});", index, v);
36419 }
36420 let out =
36421 call_atomic_ptr_2arg("glVertexAttribL4dv", &self.glVertexAttribL4dv_p, index, v);
36422 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36423 {
36424 self.automatic_glGetError("glVertexAttribL4dv");
36425 }
36426 out
36427 }
36428 #[doc(hidden)]
36429 pub unsafe fn VertexAttribL4dv_load_with_dyn(
36430 &self,
36431 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36432 ) -> bool {
36433 load_dyn_name_atomic_ptr(
36434 get_proc_address,
36435 b"glVertexAttribL4dv\0",
36436 &self.glVertexAttribL4dv_p,
36437 )
36438 }
36439 #[inline]
36440 #[doc(hidden)]
36441 pub fn VertexAttribL4dv_is_loaded(&self) -> bool {
36442 !self.glVertexAttribL4dv_p.load(RELAX).is_null()
36443 }
36444 #[cfg_attr(feature = "inline", inline)]
36447 #[cfg_attr(feature = "inline_always", inline(always))]
36448 pub unsafe fn VertexAttribLFormat(
36449 &self,
36450 attribindex: GLuint,
36451 size: GLint,
36452 type_: GLenum,
36453 relativeoffset: GLuint,
36454 ) {
36455 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36456 {
36457 trace!(
36458 "calling gl.VertexAttribLFormat({:?}, {:?}, {:#X}, {:?});",
36459 attribindex,
36460 size,
36461 type_,
36462 relativeoffset
36463 );
36464 }
36465 let out = call_atomic_ptr_4arg(
36466 "glVertexAttribLFormat",
36467 &self.glVertexAttribLFormat_p,
36468 attribindex,
36469 size,
36470 type_,
36471 relativeoffset,
36472 );
36473 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36474 {
36475 self.automatic_glGetError("glVertexAttribLFormat");
36476 }
36477 out
36478 }
36479 #[doc(hidden)]
36480 pub unsafe fn VertexAttribLFormat_load_with_dyn(
36481 &self,
36482 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36483 ) -> bool {
36484 load_dyn_name_atomic_ptr(
36485 get_proc_address,
36486 b"glVertexAttribLFormat\0",
36487 &self.glVertexAttribLFormat_p,
36488 )
36489 }
36490 #[inline]
36491 #[doc(hidden)]
36492 pub fn VertexAttribLFormat_is_loaded(&self) -> bool {
36493 !self.glVertexAttribLFormat_p.load(RELAX).is_null()
36494 }
36495 #[cfg_attr(feature = "inline", inline)]
36499 #[cfg_attr(feature = "inline_always", inline(always))]
36500 pub unsafe fn VertexAttribLPointer(
36501 &self,
36502 index: GLuint,
36503 size: GLint,
36504 type_: GLenum,
36505 stride: GLsizei,
36506 pointer: *const c_void,
36507 ) {
36508 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36509 {
36510 trace!(
36511 "calling gl.VertexAttribLPointer({:?}, {:?}, {:#X}, {:?}, {:p});",
36512 index,
36513 size,
36514 type_,
36515 stride,
36516 pointer
36517 );
36518 }
36519 let out = call_atomic_ptr_5arg(
36520 "glVertexAttribLPointer",
36521 &self.glVertexAttribLPointer_p,
36522 index,
36523 size,
36524 type_,
36525 stride,
36526 pointer,
36527 );
36528 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36529 {
36530 self.automatic_glGetError("glVertexAttribLPointer");
36531 }
36532 out
36533 }
36534 #[doc(hidden)]
36535 pub unsafe fn VertexAttribLPointer_load_with_dyn(
36536 &self,
36537 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36538 ) -> bool {
36539 load_dyn_name_atomic_ptr(
36540 get_proc_address,
36541 b"glVertexAttribLPointer\0",
36542 &self.glVertexAttribLPointer_p,
36543 )
36544 }
36545 #[inline]
36546 #[doc(hidden)]
36547 pub fn VertexAttribLPointer_is_loaded(&self) -> bool {
36548 !self.glVertexAttribLPointer_p.load(RELAX).is_null()
36549 }
36550 #[cfg_attr(feature = "inline", inline)]
36553 #[cfg_attr(feature = "inline_always", inline(always))]
36554 pub unsafe fn VertexAttribP1ui(
36555 &self,
36556 index: GLuint,
36557 type_: GLenum,
36558 normalized: GLboolean,
36559 value: GLuint,
36560 ) {
36561 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36562 {
36563 trace!(
36564 "calling gl.VertexAttribP1ui({:?}, {:#X}, {:?}, {:?});",
36565 index,
36566 type_,
36567 normalized,
36568 value
36569 );
36570 }
36571 let out = call_atomic_ptr_4arg(
36572 "glVertexAttribP1ui",
36573 &self.glVertexAttribP1ui_p,
36574 index,
36575 type_,
36576 normalized,
36577 value,
36578 );
36579 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36580 {
36581 self.automatic_glGetError("glVertexAttribP1ui");
36582 }
36583 out
36584 }
36585 #[doc(hidden)]
36586 pub unsafe fn VertexAttribP1ui_load_with_dyn(
36587 &self,
36588 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36589 ) -> bool {
36590 load_dyn_name_atomic_ptr(
36591 get_proc_address,
36592 b"glVertexAttribP1ui\0",
36593 &self.glVertexAttribP1ui_p,
36594 )
36595 }
36596 #[inline]
36597 #[doc(hidden)]
36598 pub fn VertexAttribP1ui_is_loaded(&self) -> bool {
36599 !self.glVertexAttribP1ui_p.load(RELAX).is_null()
36600 }
36601 #[cfg_attr(feature = "inline", inline)]
36605 #[cfg_attr(feature = "inline_always", inline(always))]
36606 pub unsafe fn VertexAttribP1uiv(
36607 &self,
36608 index: GLuint,
36609 type_: GLenum,
36610 normalized: GLboolean,
36611 value: *const GLuint,
36612 ) {
36613 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36614 {
36615 trace!(
36616 "calling gl.VertexAttribP1uiv({:?}, {:#X}, {:?}, {:p});",
36617 index,
36618 type_,
36619 normalized,
36620 value
36621 );
36622 }
36623 let out = call_atomic_ptr_4arg(
36624 "glVertexAttribP1uiv",
36625 &self.glVertexAttribP1uiv_p,
36626 index,
36627 type_,
36628 normalized,
36629 value,
36630 );
36631 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36632 {
36633 self.automatic_glGetError("glVertexAttribP1uiv");
36634 }
36635 out
36636 }
36637 #[doc(hidden)]
36638 pub unsafe fn VertexAttribP1uiv_load_with_dyn(
36639 &self,
36640 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36641 ) -> bool {
36642 load_dyn_name_atomic_ptr(
36643 get_proc_address,
36644 b"glVertexAttribP1uiv\0",
36645 &self.glVertexAttribP1uiv_p,
36646 )
36647 }
36648 #[inline]
36649 #[doc(hidden)]
36650 pub fn VertexAttribP1uiv_is_loaded(&self) -> bool {
36651 !self.glVertexAttribP1uiv_p.load(RELAX).is_null()
36652 }
36653 #[cfg_attr(feature = "inline", inline)]
36656 #[cfg_attr(feature = "inline_always", inline(always))]
36657 pub unsafe fn VertexAttribP2ui(
36658 &self,
36659 index: GLuint,
36660 type_: GLenum,
36661 normalized: GLboolean,
36662 value: GLuint,
36663 ) {
36664 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36665 {
36666 trace!(
36667 "calling gl.VertexAttribP2ui({:?}, {:#X}, {:?}, {:?});",
36668 index,
36669 type_,
36670 normalized,
36671 value
36672 );
36673 }
36674 let out = call_atomic_ptr_4arg(
36675 "glVertexAttribP2ui",
36676 &self.glVertexAttribP2ui_p,
36677 index,
36678 type_,
36679 normalized,
36680 value,
36681 );
36682 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36683 {
36684 self.automatic_glGetError("glVertexAttribP2ui");
36685 }
36686 out
36687 }
36688 #[doc(hidden)]
36689 pub unsafe fn VertexAttribP2ui_load_with_dyn(
36690 &self,
36691 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36692 ) -> bool {
36693 load_dyn_name_atomic_ptr(
36694 get_proc_address,
36695 b"glVertexAttribP2ui\0",
36696 &self.glVertexAttribP2ui_p,
36697 )
36698 }
36699 #[inline]
36700 #[doc(hidden)]
36701 pub fn VertexAttribP2ui_is_loaded(&self) -> bool {
36702 !self.glVertexAttribP2ui_p.load(RELAX).is_null()
36703 }
36704 #[cfg_attr(feature = "inline", inline)]
36708 #[cfg_attr(feature = "inline_always", inline(always))]
36709 pub unsafe fn VertexAttribP2uiv(
36710 &self,
36711 index: GLuint,
36712 type_: GLenum,
36713 normalized: GLboolean,
36714 value: *const GLuint,
36715 ) {
36716 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36717 {
36718 trace!(
36719 "calling gl.VertexAttribP2uiv({:?}, {:#X}, {:?}, {:p});",
36720 index,
36721 type_,
36722 normalized,
36723 value
36724 );
36725 }
36726 let out = call_atomic_ptr_4arg(
36727 "glVertexAttribP2uiv",
36728 &self.glVertexAttribP2uiv_p,
36729 index,
36730 type_,
36731 normalized,
36732 value,
36733 );
36734 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36735 {
36736 self.automatic_glGetError("glVertexAttribP2uiv");
36737 }
36738 out
36739 }
36740 #[doc(hidden)]
36741 pub unsafe fn VertexAttribP2uiv_load_with_dyn(
36742 &self,
36743 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36744 ) -> bool {
36745 load_dyn_name_atomic_ptr(
36746 get_proc_address,
36747 b"glVertexAttribP2uiv\0",
36748 &self.glVertexAttribP2uiv_p,
36749 )
36750 }
36751 #[inline]
36752 #[doc(hidden)]
36753 pub fn VertexAttribP2uiv_is_loaded(&self) -> bool {
36754 !self.glVertexAttribP2uiv_p.load(RELAX).is_null()
36755 }
36756 #[cfg_attr(feature = "inline", inline)]
36759 #[cfg_attr(feature = "inline_always", inline(always))]
36760 pub unsafe fn VertexAttribP3ui(
36761 &self,
36762 index: GLuint,
36763 type_: GLenum,
36764 normalized: GLboolean,
36765 value: GLuint,
36766 ) {
36767 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36768 {
36769 trace!(
36770 "calling gl.VertexAttribP3ui({:?}, {:#X}, {:?}, {:?});",
36771 index,
36772 type_,
36773 normalized,
36774 value
36775 );
36776 }
36777 let out = call_atomic_ptr_4arg(
36778 "glVertexAttribP3ui",
36779 &self.glVertexAttribP3ui_p,
36780 index,
36781 type_,
36782 normalized,
36783 value,
36784 );
36785 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36786 {
36787 self.automatic_glGetError("glVertexAttribP3ui");
36788 }
36789 out
36790 }
36791 #[doc(hidden)]
36792 pub unsafe fn VertexAttribP3ui_load_with_dyn(
36793 &self,
36794 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36795 ) -> bool {
36796 load_dyn_name_atomic_ptr(
36797 get_proc_address,
36798 b"glVertexAttribP3ui\0",
36799 &self.glVertexAttribP3ui_p,
36800 )
36801 }
36802 #[inline]
36803 #[doc(hidden)]
36804 pub fn VertexAttribP3ui_is_loaded(&self) -> bool {
36805 !self.glVertexAttribP3ui_p.load(RELAX).is_null()
36806 }
36807 #[cfg_attr(feature = "inline", inline)]
36811 #[cfg_attr(feature = "inline_always", inline(always))]
36812 pub unsafe fn VertexAttribP3uiv(
36813 &self,
36814 index: GLuint,
36815 type_: GLenum,
36816 normalized: GLboolean,
36817 value: *const GLuint,
36818 ) {
36819 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36820 {
36821 trace!(
36822 "calling gl.VertexAttribP3uiv({:?}, {:#X}, {:?}, {:p});",
36823 index,
36824 type_,
36825 normalized,
36826 value
36827 );
36828 }
36829 let out = call_atomic_ptr_4arg(
36830 "glVertexAttribP3uiv",
36831 &self.glVertexAttribP3uiv_p,
36832 index,
36833 type_,
36834 normalized,
36835 value,
36836 );
36837 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36838 {
36839 self.automatic_glGetError("glVertexAttribP3uiv");
36840 }
36841 out
36842 }
36843 #[doc(hidden)]
36844 pub unsafe fn VertexAttribP3uiv_load_with_dyn(
36845 &self,
36846 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36847 ) -> bool {
36848 load_dyn_name_atomic_ptr(
36849 get_proc_address,
36850 b"glVertexAttribP3uiv\0",
36851 &self.glVertexAttribP3uiv_p,
36852 )
36853 }
36854 #[inline]
36855 #[doc(hidden)]
36856 pub fn VertexAttribP3uiv_is_loaded(&self) -> bool {
36857 !self.glVertexAttribP3uiv_p.load(RELAX).is_null()
36858 }
36859 #[cfg_attr(feature = "inline", inline)]
36862 #[cfg_attr(feature = "inline_always", inline(always))]
36863 pub unsafe fn VertexAttribP4ui(
36864 &self,
36865 index: GLuint,
36866 type_: GLenum,
36867 normalized: GLboolean,
36868 value: GLuint,
36869 ) {
36870 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36871 {
36872 trace!(
36873 "calling gl.VertexAttribP4ui({:?}, {:#X}, {:?}, {:?});",
36874 index,
36875 type_,
36876 normalized,
36877 value
36878 );
36879 }
36880 let out = call_atomic_ptr_4arg(
36881 "glVertexAttribP4ui",
36882 &self.glVertexAttribP4ui_p,
36883 index,
36884 type_,
36885 normalized,
36886 value,
36887 );
36888 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36889 {
36890 self.automatic_glGetError("glVertexAttribP4ui");
36891 }
36892 out
36893 }
36894 #[doc(hidden)]
36895 pub unsafe fn VertexAttribP4ui_load_with_dyn(
36896 &self,
36897 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36898 ) -> bool {
36899 load_dyn_name_atomic_ptr(
36900 get_proc_address,
36901 b"glVertexAttribP4ui\0",
36902 &self.glVertexAttribP4ui_p,
36903 )
36904 }
36905 #[inline]
36906 #[doc(hidden)]
36907 pub fn VertexAttribP4ui_is_loaded(&self) -> bool {
36908 !self.glVertexAttribP4ui_p.load(RELAX).is_null()
36909 }
36910 #[cfg_attr(feature = "inline", inline)]
36914 #[cfg_attr(feature = "inline_always", inline(always))]
36915 pub unsafe fn VertexAttribP4uiv(
36916 &self,
36917 index: GLuint,
36918 type_: GLenum,
36919 normalized: GLboolean,
36920 value: *const GLuint,
36921 ) {
36922 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36923 {
36924 trace!(
36925 "calling gl.VertexAttribP4uiv({:?}, {:#X}, {:?}, {:p});",
36926 index,
36927 type_,
36928 normalized,
36929 value
36930 );
36931 }
36932 let out = call_atomic_ptr_4arg(
36933 "glVertexAttribP4uiv",
36934 &self.glVertexAttribP4uiv_p,
36935 index,
36936 type_,
36937 normalized,
36938 value,
36939 );
36940 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36941 {
36942 self.automatic_glGetError("glVertexAttribP4uiv");
36943 }
36944 out
36945 }
36946 #[doc(hidden)]
36947 pub unsafe fn VertexAttribP4uiv_load_with_dyn(
36948 &self,
36949 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
36950 ) -> bool {
36951 load_dyn_name_atomic_ptr(
36952 get_proc_address,
36953 b"glVertexAttribP4uiv\0",
36954 &self.glVertexAttribP4uiv_p,
36955 )
36956 }
36957 #[inline]
36958 #[doc(hidden)]
36959 pub fn VertexAttribP4uiv_is_loaded(&self) -> bool {
36960 !self.glVertexAttribP4uiv_p.load(RELAX).is_null()
36961 }
36962 #[cfg_attr(feature = "inline", inline)]
36966 #[cfg_attr(feature = "inline_always", inline(always))]
36967 pub unsafe fn VertexAttribPointer(
36968 &self,
36969 index: GLuint,
36970 size: GLint,
36971 type_: GLenum,
36972 normalized: GLboolean,
36973 stride: GLsizei,
36974 pointer: *const c_void,
36975 ) {
36976 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
36977 {
36978 trace!(
36979 "calling gl.VertexAttribPointer({:?}, {:?}, {:#X}, {:?}, {:?}, {:p});",
36980 index,
36981 size,
36982 type_,
36983 normalized,
36984 stride,
36985 pointer
36986 );
36987 }
36988 let out = call_atomic_ptr_6arg(
36989 "glVertexAttribPointer",
36990 &self.glVertexAttribPointer_p,
36991 index,
36992 size,
36993 type_,
36994 normalized,
36995 stride,
36996 pointer,
36997 );
36998 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
36999 {
37000 self.automatic_glGetError("glVertexAttribPointer");
37001 }
37002 out
37003 }
37004 #[doc(hidden)]
37005 pub unsafe fn VertexAttribPointer_load_with_dyn(
37006 &self,
37007 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
37008 ) -> bool {
37009 load_dyn_name_atomic_ptr(
37010 get_proc_address,
37011 b"glVertexAttribPointer\0",
37012 &self.glVertexAttribPointer_p,
37013 )
37014 }
37015 #[inline]
37016 #[doc(hidden)]
37017 pub fn VertexAttribPointer_is_loaded(&self) -> bool {
37018 !self.glVertexAttribPointer_p.load(RELAX).is_null()
37019 }
37020 #[cfg_attr(feature = "inline", inline)]
37022 #[cfg_attr(feature = "inline_always", inline(always))]
37023 pub unsafe fn VertexBindingDivisor(&self, bindingindex: GLuint, divisor: GLuint) {
37024 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
37025 {
37026 trace!(
37027 "calling gl.VertexBindingDivisor({:?}, {:?});",
37028 bindingindex,
37029 divisor
37030 );
37031 }
37032 let out = call_atomic_ptr_2arg(
37033 "glVertexBindingDivisor",
37034 &self.glVertexBindingDivisor_p,
37035 bindingindex,
37036 divisor,
37037 );
37038 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
37039 {
37040 self.automatic_glGetError("glVertexBindingDivisor");
37041 }
37042 out
37043 }
37044 #[doc(hidden)]
37045 pub unsafe fn VertexBindingDivisor_load_with_dyn(
37046 &self,
37047 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
37048 ) -> bool {
37049 load_dyn_name_atomic_ptr(
37050 get_proc_address,
37051 b"glVertexBindingDivisor\0",
37052 &self.glVertexBindingDivisor_p,
37053 )
37054 }
37055 #[inline]
37056 #[doc(hidden)]
37057 pub fn VertexBindingDivisor_is_loaded(&self) -> bool {
37058 !self.glVertexBindingDivisor_p.load(RELAX).is_null()
37059 }
37060 #[cfg_attr(feature = "inline", inline)]
37064 #[cfg_attr(feature = "inline_always", inline(always))]
37065 pub unsafe fn Viewport(&self, x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
37066 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
37067 {
37068 trace!(
37069 "calling gl.Viewport({:?}, {:?}, {:?}, {:?});",
37070 x,
37071 y,
37072 width,
37073 height
37074 );
37075 }
37076 let out = call_atomic_ptr_4arg("glViewport", &self.glViewport_p, x, y, width, height);
37077 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
37078 {
37079 self.automatic_glGetError("glViewport");
37080 }
37081 out
37082 }
37083 #[doc(hidden)]
37084 pub unsafe fn Viewport_load_with_dyn(
37085 &self,
37086 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
37087 ) -> bool {
37088 load_dyn_name_atomic_ptr(get_proc_address, b"glViewport\0", &self.glViewport_p)
37089 }
37090 #[inline]
37091 #[doc(hidden)]
37092 pub fn Viewport_is_loaded(&self) -> bool {
37093 !self.glViewport_p.load(RELAX).is_null()
37094 }
37095 #[cfg_attr(feature = "inline", inline)]
37098 #[cfg_attr(feature = "inline_always", inline(always))]
37099 pub unsafe fn ViewportArrayv(&self, first: GLuint, count: GLsizei, v: *const GLfloat) {
37100 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
37101 {
37102 trace!(
37103 "calling gl.ViewportArrayv({:?}, {:?}, {:p});",
37104 first,
37105 count,
37106 v
37107 );
37108 }
37109 let out = call_atomic_ptr_3arg(
37110 "glViewportArrayv",
37111 &self.glViewportArrayv_p,
37112 first,
37113 count,
37114 v,
37115 );
37116 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
37117 {
37118 self.automatic_glGetError("glViewportArrayv");
37119 }
37120 out
37121 }
37122 #[doc(hidden)]
37123 pub unsafe fn ViewportArrayv_load_with_dyn(
37124 &self,
37125 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
37126 ) -> bool {
37127 load_dyn_name_atomic_ptr(
37128 get_proc_address,
37129 b"glViewportArrayv\0",
37130 &self.glViewportArrayv_p,
37131 )
37132 }
37133 #[inline]
37134 #[doc(hidden)]
37135 pub fn ViewportArrayv_is_loaded(&self) -> bool {
37136 !self.glViewportArrayv_p.load(RELAX).is_null()
37137 }
37138 #[cfg_attr(feature = "inline", inline)]
37140 #[cfg_attr(feature = "inline_always", inline(always))]
37141 pub unsafe fn ViewportIndexedf(
37142 &self,
37143 index: GLuint,
37144 x: GLfloat,
37145 y: GLfloat,
37146 w: GLfloat,
37147 h: GLfloat,
37148 ) {
37149 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
37150 {
37151 trace!(
37152 "calling gl.ViewportIndexedf({:?}, {:?}, {:?}, {:?}, {:?});",
37153 index,
37154 x,
37155 y,
37156 w,
37157 h
37158 );
37159 }
37160 let out = call_atomic_ptr_5arg(
37161 "glViewportIndexedf",
37162 &self.glViewportIndexedf_p,
37163 index,
37164 x,
37165 y,
37166 w,
37167 h,
37168 );
37169 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
37170 {
37171 self.automatic_glGetError("glViewportIndexedf");
37172 }
37173 out
37174 }
37175 #[doc(hidden)]
37176 pub unsafe fn ViewportIndexedf_load_with_dyn(
37177 &self,
37178 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
37179 ) -> bool {
37180 load_dyn_name_atomic_ptr(
37181 get_proc_address,
37182 b"glViewportIndexedf\0",
37183 &self.glViewportIndexedf_p,
37184 )
37185 }
37186 #[inline]
37187 #[doc(hidden)]
37188 pub fn ViewportIndexedf_is_loaded(&self) -> bool {
37189 !self.glViewportIndexedf_p.load(RELAX).is_null()
37190 }
37191 #[cfg_attr(feature = "inline", inline)]
37194 #[cfg_attr(feature = "inline_always", inline(always))]
37195 pub unsafe fn ViewportIndexedfv(&self, index: GLuint, v: *const GLfloat) {
37196 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
37197 {
37198 trace!("calling gl.ViewportIndexedfv({:?}, {:p});", index, v);
37199 }
37200 let out =
37201 call_atomic_ptr_2arg("glViewportIndexedfv", &self.glViewportIndexedfv_p, index, v);
37202 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
37203 {
37204 self.automatic_glGetError("glViewportIndexedfv");
37205 }
37206 out
37207 }
37208 #[doc(hidden)]
37209 pub unsafe fn ViewportIndexedfv_load_with_dyn(
37210 &self,
37211 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
37212 ) -> bool {
37213 load_dyn_name_atomic_ptr(
37214 get_proc_address,
37215 b"glViewportIndexedfv\0",
37216 &self.glViewportIndexedfv_p,
37217 )
37218 }
37219 #[inline]
37220 #[doc(hidden)]
37221 pub fn ViewportIndexedfv_is_loaded(&self) -> bool {
37222 !self.glViewportIndexedfv_p.load(RELAX).is_null()
37223 }
37224 #[cfg_attr(feature = "inline", inline)]
37228 #[cfg_attr(feature = "inline_always", inline(always))]
37229 pub unsafe fn WaitSync(&self, sync: GLsync, flags: GLbitfield, timeout: GLuint64) {
37230 #[cfg(all(debug_assertions, feature = "debug_trace_calls"))]
37231 {
37232 trace!(
37233 "calling gl.WaitSync({:p}, {:?}, {:?});",
37234 sync,
37235 flags,
37236 timeout
37237 );
37238 }
37239 let out = call_atomic_ptr_3arg("glWaitSync", &self.glWaitSync_p, sync, flags, timeout);
37240 #[cfg(all(debug_assertions, feature = "debug_automatic_glGetError"))]
37241 {
37242 self.automatic_glGetError("glWaitSync");
37243 }
37244 out
37245 }
37246 #[doc(hidden)]
37247 pub unsafe fn WaitSync_load_with_dyn(
37248 &self,
37249 get_proc_address: &mut dyn FnMut(*const c_char) -> *mut c_void,
37250 ) -> bool {
37251 load_dyn_name_atomic_ptr(get_proc_address, b"glWaitSync\0", &self.glWaitSync_p)
37252 }
37253 #[inline]
37254 #[doc(hidden)]
37255 pub fn WaitSync_is_loaded(&self) -> bool {
37256 !self.glWaitSync_p.load(RELAX).is_null()
37257 }
37258 }
37259 #[repr(C)]
37263 pub struct GlFns {
37264 glActiveShaderProgram_p: APcv,
37265 glActiveTexture_p: APcv,
37266 glAttachShader_p: APcv,
37267 glBeginConditionalRender_p: APcv,
37268 glBeginQuery_p: APcv,
37269 glBeginQueryEXT_p: APcv,
37270 glBeginQueryIndexed_p: APcv,
37271 glBeginTransformFeedback_p: APcv,
37272 glBindAttribLocation_p: APcv,
37273 glBindBuffer_p: APcv,
37274 glBindBufferBase_p: APcv,
37275 glBindBufferRange_p: APcv,
37276 glBindBuffersBase_p: APcv,
37277 glBindBuffersRange_p: APcv,
37278 glBindFragDataLocation_p: APcv,
37279 glBindFragDataLocationIndexed_p: APcv,
37280 glBindFramebuffer_p: APcv,
37281 glBindImageTexture_p: APcv,
37282 glBindImageTextures_p: APcv,
37283 glBindProgramPipeline_p: APcv,
37284 glBindRenderbuffer_p: APcv,
37285 glBindSampler_p: APcv,
37286 glBindSamplers_p: APcv,
37287 glBindTexture_p: APcv,
37288 glBindTextureUnit_p: APcv,
37289 glBindTextures_p: APcv,
37290 glBindTransformFeedback_p: APcv,
37291 glBindVertexArray_p: APcv,
37292 glBindVertexArrayAPPLE_p: APcv,
37293 glBindVertexArrayOES_p: APcv,
37294 glBindVertexBuffer_p: APcv,
37295 glBindVertexBuffers_p: APcv,
37296 glBlendBarrier_p: APcv,
37297 glBlendColor_p: APcv,
37298 glBlendEquation_p: APcv,
37299 glBlendEquationSeparate_p: APcv,
37300 glBlendEquationSeparatei_p: APcv,
37301 glBlendEquationi_p: APcv,
37302 glBlendFunc_p: APcv,
37303 glBlendFuncSeparate_p: APcv,
37304 glBlendFuncSeparatei_p: APcv,
37305 glBlendFunci_p: APcv,
37306 glBlitFramebuffer_p: APcv,
37307 glBlitNamedFramebuffer_p: APcv,
37308 glBufferData_p: APcv,
37309 glBufferStorage_p: APcv,
37310 glBufferStorageEXT_p: APcv,
37311 glBufferSubData_p: APcv,
37312 glCheckFramebufferStatus_p: APcv,
37313 glCheckNamedFramebufferStatus_p: APcv,
37314 glClampColor_p: APcv,
37315 glClear_p: APcv,
37316 glClearBufferData_p: APcv,
37317 glClearBufferSubData_p: APcv,
37318 glClearBufferfi_p: APcv,
37319 glClearBufferfv_p: APcv,
37320 glClearBufferiv_p: APcv,
37321 glClearBufferuiv_p: APcv,
37322 glClearColor_p: APcv,
37323 glClearDepth_p: APcv,
37324 glClearDepthf_p: APcv,
37325 glClearNamedBufferData_p: APcv,
37326 glClearNamedBufferSubData_p: APcv,
37327 glClearNamedFramebufferfi_p: APcv,
37328 glClearNamedFramebufferfv_p: APcv,
37329 glClearNamedFramebufferiv_p: APcv,
37330 glClearNamedFramebufferuiv_p: APcv,
37331 glClearStencil_p: APcv,
37332 glClearTexImage_p: APcv,
37333 glClearTexSubImage_p: APcv,
37334 glClientWaitSync_p: APcv,
37335 glClipControl_p: APcv,
37336 glColorMask_p: APcv,
37337 glColorMaskIndexedEXT_p: APcv,
37338 glColorMaski_p: APcv,
37339 glCompileShader_p: APcv,
37340 glCompressedTexImage1D_p: APcv,
37341 glCompressedTexImage2D_p: APcv,
37342 glCompressedTexImage3D_p: APcv,
37343 glCompressedTexSubImage1D_p: APcv,
37344 glCompressedTexSubImage2D_p: APcv,
37345 glCompressedTexSubImage3D_p: APcv,
37346 glCompressedTextureSubImage1D_p: APcv,
37347 glCompressedTextureSubImage2D_p: APcv,
37348 glCompressedTextureSubImage3D_p: APcv,
37349 glCopyBufferSubData_p: APcv,
37350 glCopyBufferSubDataNV_p: APcv,
37351 glCopyImageSubData_p: APcv,
37352 glCopyNamedBufferSubData_p: APcv,
37353 glCopyTexImage1D_p: APcv,
37354 glCopyTexImage2D_p: APcv,
37355 glCopyTexSubImage1D_p: APcv,
37356 glCopyTexSubImage2D_p: APcv,
37357 glCopyTexSubImage3D_p: APcv,
37358 glCopyTextureSubImage1D_p: APcv,
37359 glCopyTextureSubImage2D_p: APcv,
37360 glCopyTextureSubImage3D_p: APcv,
37361 glCreateBuffers_p: APcv,
37362 glCreateFramebuffers_p: APcv,
37363 glCreateProgram_p: APcv,
37364 glCreateProgramPipelines_p: APcv,
37365 glCreateQueries_p: APcv,
37366 glCreateRenderbuffers_p: APcv,
37367 glCreateSamplers_p: APcv,
37368 glCreateShader_p: APcv,
37369 glCreateShaderProgramv_p: APcv,
37370 glCreateTextures_p: APcv,
37371 glCreateTransformFeedbacks_p: APcv,
37372 glCreateVertexArrays_p: APcv,
37373 glCullFace_p: APcv,
37374 glDebugMessageCallback_p: APcv,
37375 glDebugMessageCallbackARB_p: APcv,
37376 glDebugMessageCallbackKHR_p: APcv,
37377 glDebugMessageControl_p: APcv,
37378 glDebugMessageControlARB_p: APcv,
37379 glDebugMessageControlKHR_p: APcv,
37380 glDebugMessageInsert_p: APcv,
37381 glDebugMessageInsertARB_p: APcv,
37382 glDebugMessageInsertKHR_p: APcv,
37383 glDeleteBuffers_p: APcv,
37384 glDeleteFramebuffers_p: APcv,
37385 glDeleteProgram_p: APcv,
37386 glDeleteProgramPipelines_p: APcv,
37387 glDeleteQueries_p: APcv,
37388 glDeleteQueriesEXT_p: APcv,
37389 glDeleteRenderbuffers_p: APcv,
37390 glDeleteSamplers_p: APcv,
37391 glDeleteShader_p: APcv,
37392 glDeleteSync_p: APcv,
37393 glDeleteTextures_p: APcv,
37394 glDeleteTransformFeedbacks_p: APcv,
37395 glDeleteVertexArrays_p: APcv,
37396 glDeleteVertexArraysAPPLE_p: APcv,
37397 glDeleteVertexArraysOES_p: APcv,
37398 glDepthFunc_p: APcv,
37399 glDepthMask_p: APcv,
37400 glDepthRange_p: APcv,
37401 glDepthRangeArrayv_p: APcv,
37402 glDepthRangeIndexed_p: APcv,
37403 glDepthRangef_p: APcv,
37404 glDetachShader_p: APcv,
37405 glDisable_p: APcv,
37406 glDisableIndexedEXT_p: APcv,
37407 glDisableVertexArrayAttrib_p: APcv,
37408 glDisableVertexAttribArray_p: APcv,
37409 glDisablei_p: APcv,
37410 glDispatchCompute_p: APcv,
37411 glDispatchComputeIndirect_p: APcv,
37412 glDrawArrays_p: APcv,
37413 glDrawArraysIndirect_p: APcv,
37414 glDrawArraysInstanced_p: APcv,
37415 glDrawArraysInstancedARB_p: APcv,
37416 glDrawArraysInstancedBaseInstance_p: APcv,
37417 glDrawBuffer_p: APcv,
37418 glDrawBuffers_p: APcv,
37419 glDrawElements_p: APcv,
37420 glDrawElementsBaseVertex_p: APcv,
37421 glDrawElementsIndirect_p: APcv,
37422 glDrawElementsInstanced_p: APcv,
37423 glDrawElementsInstancedARB_p: APcv,
37424 glDrawElementsInstancedBaseInstance_p: APcv,
37425 glDrawElementsInstancedBaseVertex_p: APcv,
37426 glDrawElementsInstancedBaseVertexBaseInstance_p: APcv,
37427 glDrawRangeElements_p: APcv,
37428 glDrawRangeElementsBaseVertex_p: APcv,
37429 glDrawTransformFeedback_p: APcv,
37430 glDrawTransformFeedbackInstanced_p: APcv,
37431 glDrawTransformFeedbackStream_p: APcv,
37432 glDrawTransformFeedbackStreamInstanced_p: APcv,
37433 glEnable_p: APcv,
37434 glEnableIndexedEXT_p: APcv,
37435 glEnableVertexArrayAttrib_p: APcv,
37436 glEnableVertexAttribArray_p: APcv,
37437 glEnablei_p: APcv,
37438 glEndConditionalRender_p: APcv,
37439 glEndQuery_p: APcv,
37440 glEndQueryEXT_p: APcv,
37441 glEndQueryIndexed_p: APcv,
37442 glEndTransformFeedback_p: APcv,
37443 glFenceSync_p: APcv,
37444 glFinish_p: APcv,
37445 glFlush_p: APcv,
37446 glFlushMappedBufferRange_p: APcv,
37447 glFlushMappedNamedBufferRange_p: APcv,
37448 glFramebufferParameteri_p: APcv,
37449 glFramebufferRenderbuffer_p: APcv,
37450 glFramebufferTexture_p: APcv,
37451 glFramebufferTexture1D_p: APcv,
37452 glFramebufferTexture2D_p: APcv,
37453 #[cfg_attr(
37454 docs_rs,
37455 doc(cfg(any(feature = "GL_EXT_multisampled_render_to_texture")))
37456 )]
37457 glFramebufferTexture2DMultisampleEXT_p: APcv,
37458 glFramebufferTexture3D_p: APcv,
37459 glFramebufferTextureLayer_p: APcv,
37460 glFrontFace_p: APcv,
37461 glGenBuffers_p: APcv,
37462 glGenFramebuffers_p: APcv,
37463 glGenProgramPipelines_p: APcv,
37464 glGenQueries_p: APcv,
37465 glGenQueriesEXT_p: APcv,
37466 glGenRenderbuffers_p: APcv,
37467 glGenSamplers_p: APcv,
37468 glGenTextures_p: APcv,
37469 glGenTransformFeedbacks_p: APcv,
37470 glGenVertexArrays_p: APcv,
37471 glGenVertexArraysAPPLE_p: APcv,
37472 glGenVertexArraysOES_p: APcv,
37473 glGenerateMipmap_p: APcv,
37474 glGenerateTextureMipmap_p: APcv,
37475 glGetActiveAtomicCounterBufferiv_p: APcv,
37476 glGetActiveAttrib_p: APcv,
37477 glGetActiveSubroutineName_p: APcv,
37478 glGetActiveSubroutineUniformName_p: APcv,
37479 glGetActiveSubroutineUniformiv_p: APcv,
37480 glGetActiveUniform_p: APcv,
37481 glGetActiveUniformBlockName_p: APcv,
37482 glGetActiveUniformBlockiv_p: APcv,
37483 glGetActiveUniformName_p: APcv,
37484 glGetActiveUniformsiv_p: APcv,
37485 glGetAttachedShaders_p: APcv,
37486 glGetAttribLocation_p: APcv,
37487 glGetBooleanIndexedvEXT_p: APcv,
37488 glGetBooleani_v_p: APcv,
37489 glGetBooleanv_p: APcv,
37490 glGetBufferParameteri64v_p: APcv,
37491 glGetBufferParameteriv_p: APcv,
37492 glGetBufferPointerv_p: APcv,
37493 glGetBufferSubData_p: APcv,
37494 glGetCompressedTexImage_p: APcv,
37495 glGetCompressedTextureImage_p: APcv,
37496 glGetCompressedTextureSubImage_p: APcv,
37497 glGetDebugMessageLog_p: APcv,
37498 glGetDebugMessageLogARB_p: APcv,
37499 glGetDebugMessageLogKHR_p: APcv,
37500 glGetDoublei_v_p: APcv,
37501 glGetDoublev_p: APcv,
37502 glGetError_p: APcv,
37503 glGetFloati_v_p: APcv,
37504 glGetFloatv_p: APcv,
37505 glGetFragDataIndex_p: APcv,
37506 glGetFragDataLocation_p: APcv,
37507 glGetFramebufferAttachmentParameteriv_p: APcv,
37508 glGetFramebufferParameteriv_p: APcv,
37509 glGetGraphicsResetStatus_p: APcv,
37510 glGetInteger64i_v_p: APcv,
37511 glGetInteger64v_p: APcv,
37512 glGetInteger64vEXT_p: APcv,
37513 glGetIntegerIndexedvEXT_p: APcv,
37514 glGetIntegeri_v_p: APcv,
37515 glGetIntegerv_p: APcv,
37516 glGetInternalformati64v_p: APcv,
37517 glGetInternalformativ_p: APcv,
37518 glGetMultisamplefv_p: APcv,
37519 glGetNamedBufferParameteri64v_p: APcv,
37520 glGetNamedBufferParameteriv_p: APcv,
37521 glGetNamedBufferPointerv_p: APcv,
37522 glGetNamedBufferSubData_p: APcv,
37523 glGetNamedFramebufferAttachmentParameteriv_p: APcv,
37524 glGetNamedFramebufferParameteriv_p: APcv,
37525 glGetNamedRenderbufferParameteriv_p: APcv,
37526 glGetObjectLabel_p: APcv,
37527 glGetObjectLabelKHR_p: APcv,
37528 glGetObjectPtrLabel_p: APcv,
37529 glGetObjectPtrLabelKHR_p: APcv,
37530 glGetPointerv_p: APcv,
37531 glGetPointervKHR_p: APcv,
37532 glGetProgramBinary_p: APcv,
37533 glGetProgramInfoLog_p: APcv,
37534 glGetProgramInterfaceiv_p: APcv,
37535 glGetProgramPipelineInfoLog_p: APcv,
37536 glGetProgramPipelineiv_p: APcv,
37537 glGetProgramResourceIndex_p: APcv,
37538 glGetProgramResourceLocation_p: APcv,
37539 glGetProgramResourceLocationIndex_p: APcv,
37540 glGetProgramResourceName_p: APcv,
37541 glGetProgramResourceiv_p: APcv,
37542 glGetProgramStageiv_p: APcv,
37543 glGetProgramiv_p: APcv,
37544 glGetQueryBufferObjecti64v_p: APcv,
37545 glGetQueryBufferObjectiv_p: APcv,
37546 glGetQueryBufferObjectui64v_p: APcv,
37547 glGetQueryBufferObjectuiv_p: APcv,
37548 glGetQueryIndexediv_p: APcv,
37549 glGetQueryObjecti64v_p: APcv,
37550 glGetQueryObjecti64vEXT_p: APcv,
37551 glGetQueryObjectiv_p: APcv,
37552 glGetQueryObjectivEXT_p: APcv,
37553 glGetQueryObjectui64v_p: APcv,
37554 glGetQueryObjectui64vEXT_p: APcv,
37555 glGetQueryObjectuiv_p: APcv,
37556 glGetQueryObjectuivEXT_p: APcv,
37557 glGetQueryiv_p: APcv,
37558 glGetQueryivEXT_p: APcv,
37559 glGetRenderbufferParameteriv_p: APcv,
37560 glGetSamplerParameterIiv_p: APcv,
37561 glGetSamplerParameterIuiv_p: APcv,
37562 glGetSamplerParameterfv_p: APcv,
37563 glGetSamplerParameteriv_p: APcv,
37564 glGetShaderInfoLog_p: APcv,
37565 glGetShaderPrecisionFormat_p: APcv,
37566 glGetShaderSource_p: APcv,
37567 glGetShaderiv_p: APcv,
37568 glGetString_p: APcv,
37569 glGetStringi_p: APcv,
37570 glGetSubroutineIndex_p: APcv,
37571 glGetSubroutineUniformLocation_p: APcv,
37572 glGetSynciv_p: APcv,
37573 glGetTexImage_p: APcv,
37574 glGetTexLevelParameterfv_p: APcv,
37575 glGetTexLevelParameteriv_p: APcv,
37576 glGetTexParameterIiv_p: APcv,
37577 glGetTexParameterIuiv_p: APcv,
37578 glGetTexParameterfv_p: APcv,
37579 glGetTexParameteriv_p: APcv,
37580 glGetTextureImage_p: APcv,
37581 glGetTextureLevelParameterfv_p: APcv,
37582 glGetTextureLevelParameteriv_p: APcv,
37583 glGetTextureParameterIiv_p: APcv,
37584 glGetTextureParameterIuiv_p: APcv,
37585 glGetTextureParameterfv_p: APcv,
37586 glGetTextureParameteriv_p: APcv,
37587 glGetTextureSubImage_p: APcv,
37588 glGetTransformFeedbackVarying_p: APcv,
37589 glGetTransformFeedbacki64_v_p: APcv,
37590 glGetTransformFeedbacki_v_p: APcv,
37591 glGetTransformFeedbackiv_p: APcv,
37592 glGetUniformBlockIndex_p: APcv,
37593 glGetUniformIndices_p: APcv,
37594 glGetUniformLocation_p: APcv,
37595 glGetUniformSubroutineuiv_p: APcv,
37596 glGetUniformdv_p: APcv,
37597 glGetUniformfv_p: APcv,
37598 glGetUniformiv_p: APcv,
37599 glGetUniformuiv_p: APcv,
37600 glGetVertexArrayIndexed64iv_p: APcv,
37601 glGetVertexArrayIndexediv_p: APcv,
37602 glGetVertexArrayiv_p: APcv,
37603 glGetVertexAttribIiv_p: APcv,
37604 glGetVertexAttribIuiv_p: APcv,
37605 glGetVertexAttribLdv_p: APcv,
37606 glGetVertexAttribPointerv_p: APcv,
37607 glGetVertexAttribdv_p: APcv,
37608 glGetVertexAttribfv_p: APcv,
37609 glGetVertexAttribiv_p: APcv,
37610 glGetnCompressedTexImage_p: APcv,
37611 glGetnTexImage_p: APcv,
37612 glGetnUniformdv_p: APcv,
37613 glGetnUniformfv_p: APcv,
37614 glGetnUniformiv_p: APcv,
37615 glGetnUniformuiv_p: APcv,
37616 glHint_p: APcv,
37617 glInvalidateBufferData_p: APcv,
37618 glInvalidateBufferSubData_p: APcv,
37619 glInvalidateFramebuffer_p: APcv,
37620 glInvalidateNamedFramebufferData_p: APcv,
37621 glInvalidateNamedFramebufferSubData_p: APcv,
37622 glInvalidateSubFramebuffer_p: APcv,
37623 glInvalidateTexImage_p: APcv,
37624 glInvalidateTexSubImage_p: APcv,
37625 glIsBuffer_p: APcv,
37626 glIsEnabled_p: APcv,
37627 glIsEnabledIndexedEXT_p: APcv,
37628 glIsEnabledi_p: APcv,
37629 glIsFramebuffer_p: APcv,
37630 glIsProgram_p: APcv,
37631 glIsProgramPipeline_p: APcv,
37632 glIsQuery_p: APcv,
37633 glIsQueryEXT_p: APcv,
37634 glIsRenderbuffer_p: APcv,
37635 glIsSampler_p: APcv,
37636 glIsShader_p: APcv,
37637 glIsSync_p: APcv,
37638 glIsTexture_p: APcv,
37639 glIsTransformFeedback_p: APcv,
37640 glIsVertexArray_p: APcv,
37641 glIsVertexArrayAPPLE_p: APcv,
37642 glIsVertexArrayOES_p: APcv,
37643 glLineWidth_p: APcv,
37644 glLinkProgram_p: APcv,
37645 glLogicOp_p: APcv,
37646 glMapBuffer_p: APcv,
37647 glMapBufferRange_p: APcv,
37648 glMapNamedBuffer_p: APcv,
37649 glMapNamedBufferRange_p: APcv,
37650 glMaxShaderCompilerThreadsARB_p: APcv,
37651 glMaxShaderCompilerThreadsKHR_p: APcv,
37652 glMemoryBarrier_p: APcv,
37653 glMemoryBarrierByRegion_p: APcv,
37654 glMinSampleShading_p: APcv,
37655 glMultiDrawArrays_p: APcv,
37656 glMultiDrawArraysIndirect_p: APcv,
37657 glMultiDrawArraysIndirectCount_p: APcv,
37658 glMultiDrawElements_p: APcv,
37659 glMultiDrawElementsBaseVertex_p: APcv,
37660 glMultiDrawElementsIndirect_p: APcv,
37661 glMultiDrawElementsIndirectCount_p: APcv,
37662 glNamedBufferData_p: APcv,
37663 glNamedBufferStorage_p: APcv,
37664 glNamedBufferSubData_p: APcv,
37665 glNamedFramebufferDrawBuffer_p: APcv,
37666 glNamedFramebufferDrawBuffers_p: APcv,
37667 glNamedFramebufferParameteri_p: APcv,
37668 glNamedFramebufferReadBuffer_p: APcv,
37669 glNamedFramebufferRenderbuffer_p: APcv,
37670 glNamedFramebufferTexture_p: APcv,
37671 glNamedFramebufferTextureLayer_p: APcv,
37672 glNamedRenderbufferStorage_p: APcv,
37673 glNamedRenderbufferStorageMultisample_p: APcv,
37674 glObjectLabel_p: APcv,
37675 glObjectLabelKHR_p: APcv,
37676 glObjectPtrLabel_p: APcv,
37677 glObjectPtrLabelKHR_p: APcv,
37678 glPatchParameterfv_p: APcv,
37679 glPatchParameteri_p: APcv,
37680 glPauseTransformFeedback_p: APcv,
37681 glPixelStoref_p: APcv,
37682 glPixelStorei_p: APcv,
37683 glPointParameterf_p: APcv,
37684 glPointParameterfv_p: APcv,
37685 glPointParameteri_p: APcv,
37686 glPointParameteriv_p: APcv,
37687 glPointSize_p: APcv,
37688 glPolygonMode_p: APcv,
37689 glPolygonOffset_p: APcv,
37690 glPolygonOffsetClamp_p: APcv,
37691 glPopDebugGroup_p: APcv,
37692 glPopDebugGroupKHR_p: APcv,
37693 glPrimitiveBoundingBox_p: APcv,
37694 glPrimitiveRestartIndex_p: APcv,
37695 glProgramBinary_p: APcv,
37696 glProgramParameteri_p: APcv,
37697 glProgramUniform1d_p: APcv,
37698 glProgramUniform1dv_p: APcv,
37699 glProgramUniform1f_p: APcv,
37700 glProgramUniform1fv_p: APcv,
37701 glProgramUniform1i_p: APcv,
37702 glProgramUniform1iv_p: APcv,
37703 glProgramUniform1ui_p: APcv,
37704 glProgramUniform1uiv_p: APcv,
37705 glProgramUniform2d_p: APcv,
37706 glProgramUniform2dv_p: APcv,
37707 glProgramUniform2f_p: APcv,
37708 glProgramUniform2fv_p: APcv,
37709 glProgramUniform2i_p: APcv,
37710 glProgramUniform2iv_p: APcv,
37711 glProgramUniform2ui_p: APcv,
37712 glProgramUniform2uiv_p: APcv,
37713 glProgramUniform3d_p: APcv,
37714 glProgramUniform3dv_p: APcv,
37715 glProgramUniform3f_p: APcv,
37716 glProgramUniform3fv_p: APcv,
37717 glProgramUniform3i_p: APcv,
37718 glProgramUniform3iv_p: APcv,
37719 glProgramUniform3ui_p: APcv,
37720 glProgramUniform3uiv_p: APcv,
37721 glProgramUniform4d_p: APcv,
37722 glProgramUniform4dv_p: APcv,
37723 glProgramUniform4f_p: APcv,
37724 glProgramUniform4fv_p: APcv,
37725 glProgramUniform4i_p: APcv,
37726 glProgramUniform4iv_p: APcv,
37727 glProgramUniform4ui_p: APcv,
37728 glProgramUniform4uiv_p: APcv,
37729 glProgramUniformMatrix2dv_p: APcv,
37730 glProgramUniformMatrix2fv_p: APcv,
37731 glProgramUniformMatrix2x3dv_p: APcv,
37732 glProgramUniformMatrix2x3fv_p: APcv,
37733 glProgramUniformMatrix2x4dv_p: APcv,
37734 glProgramUniformMatrix2x4fv_p: APcv,
37735 glProgramUniformMatrix3dv_p: APcv,
37736 glProgramUniformMatrix3fv_p: APcv,
37737 glProgramUniformMatrix3x2dv_p: APcv,
37738 glProgramUniformMatrix3x2fv_p: APcv,
37739 glProgramUniformMatrix3x4dv_p: APcv,
37740 glProgramUniformMatrix3x4fv_p: APcv,
37741 glProgramUniformMatrix4dv_p: APcv,
37742 glProgramUniformMatrix4fv_p: APcv,
37743 glProgramUniformMatrix4x2dv_p: APcv,
37744 glProgramUniformMatrix4x2fv_p: APcv,
37745 glProgramUniformMatrix4x3dv_p: APcv,
37746 glProgramUniformMatrix4x3fv_p: APcv,
37747 glProvokingVertex_p: APcv,
37748 glPushDebugGroup_p: APcv,
37749 glPushDebugGroupKHR_p: APcv,
37750 glQueryCounter_p: APcv,
37751 glQueryCounterEXT_p: APcv,
37752 glReadBuffer_p: APcv,
37753 glReadPixels_p: APcv,
37754 glReadnPixels_p: APcv,
37755 glReleaseShaderCompiler_p: APcv,
37756 glRenderbufferStorage_p: APcv,
37757 glRenderbufferStorageMultisample_p: APcv,
37758 #[cfg_attr(
37759 docs_rs,
37760 doc(cfg(any(feature = "GL_EXT_multisampled_render_to_texture")))
37761 )]
37762 glRenderbufferStorageMultisampleEXT_p: APcv,
37763 glResumeTransformFeedback_p: APcv,
37764 glSampleCoverage_p: APcv,
37765 glSampleMaski_p: APcv,
37766 glSamplerParameterIiv_p: APcv,
37767 glSamplerParameterIuiv_p: APcv,
37768 glSamplerParameterf_p: APcv,
37769 glSamplerParameterfv_p: APcv,
37770 glSamplerParameteri_p: APcv,
37771 glSamplerParameteriv_p: APcv,
37772 glScissor_p: APcv,
37773 glScissorArrayv_p: APcv,
37774 glScissorIndexed_p: APcv,
37775 glScissorIndexedv_p: APcv,
37776 glShaderBinary_p: APcv,
37777 glShaderSource_p: APcv,
37778 glShaderStorageBlockBinding_p: APcv,
37779 glSpecializeShader_p: APcv,
37780 glStencilFunc_p: APcv,
37781 glStencilFuncSeparate_p: APcv,
37782 glStencilMask_p: APcv,
37783 glStencilMaskSeparate_p: APcv,
37784 glStencilOp_p: APcv,
37785 glStencilOpSeparate_p: APcv,
37786 glTexBuffer_p: APcv,
37787 glTexBufferRange_p: APcv,
37788 glTexImage1D_p: APcv,
37789 glTexImage2D_p: APcv,
37790 glTexImage2DMultisample_p: APcv,
37791 glTexImage3D_p: APcv,
37792 glTexImage3DMultisample_p: APcv,
37793 glTexParameterIiv_p: APcv,
37794 glTexParameterIuiv_p: APcv,
37795 glTexParameterf_p: APcv,
37796 glTexParameterfv_p: APcv,
37797 glTexParameteri_p: APcv,
37798 glTexParameteriv_p: APcv,
37799 glTexStorage1D_p: APcv,
37800 glTexStorage2D_p: APcv,
37801 glTexStorage2DMultisample_p: APcv,
37802 glTexStorage3D_p: APcv,
37803 glTexStorage3DMultisample_p: APcv,
37804 glTexSubImage1D_p: APcv,
37805 glTexSubImage2D_p: APcv,
37806 glTexSubImage3D_p: APcv,
37807 glTextureBarrier_p: APcv,
37808 glTextureBuffer_p: APcv,
37809 glTextureBufferRange_p: APcv,
37810 glTextureParameterIiv_p: APcv,
37811 glTextureParameterIuiv_p: APcv,
37812 glTextureParameterf_p: APcv,
37813 glTextureParameterfv_p: APcv,
37814 glTextureParameteri_p: APcv,
37815 glTextureParameteriv_p: APcv,
37816 glTextureStorage1D_p: APcv,
37817 glTextureStorage2D_p: APcv,
37818 glTextureStorage2DMultisample_p: APcv,
37819 glTextureStorage3D_p: APcv,
37820 glTextureStorage3DMultisample_p: APcv,
37821 glTextureSubImage1D_p: APcv,
37822 glTextureSubImage2D_p: APcv,
37823 glTextureSubImage3D_p: APcv,
37824 glTextureView_p: APcv,
37825 glTransformFeedbackBufferBase_p: APcv,
37826 glTransformFeedbackBufferRange_p: APcv,
37827 glTransformFeedbackVaryings_p: APcv,
37828 glUniform1d_p: APcv,
37829 glUniform1dv_p: APcv,
37830 glUniform1f_p: APcv,
37831 glUniform1fv_p: APcv,
37832 glUniform1i_p: APcv,
37833 glUniform1iv_p: APcv,
37834 glUniform1ui_p: APcv,
37835 glUniform1uiv_p: APcv,
37836 glUniform2d_p: APcv,
37837 glUniform2dv_p: APcv,
37838 glUniform2f_p: APcv,
37839 glUniform2fv_p: APcv,
37840 glUniform2i_p: APcv,
37841 glUniform2iv_p: APcv,
37842 glUniform2ui_p: APcv,
37843 glUniform2uiv_p: APcv,
37844 glUniform3d_p: APcv,
37845 glUniform3dv_p: APcv,
37846 glUniform3f_p: APcv,
37847 glUniform3fv_p: APcv,
37848 glUniform3i_p: APcv,
37849 glUniform3iv_p: APcv,
37850 glUniform3ui_p: APcv,
37851 glUniform3uiv_p: APcv,
37852 glUniform4d_p: APcv,
37853 glUniform4dv_p: APcv,
37854 glUniform4f_p: APcv,
37855 glUniform4fv_p: APcv,
37856 glUniform4i_p: APcv,
37857 glUniform4iv_p: APcv,
37858 glUniform4ui_p: APcv,
37859 glUniform4uiv_p: APcv,
37860 glUniformBlockBinding_p: APcv,
37861 glUniformMatrix2dv_p: APcv,
37862 glUniformMatrix2fv_p: APcv,
37863 glUniformMatrix2x3dv_p: APcv,
37864 glUniformMatrix2x3fv_p: APcv,
37865 glUniformMatrix2x4dv_p: APcv,
37866 glUniformMatrix2x4fv_p: APcv,
37867 glUniformMatrix3dv_p: APcv,
37868 glUniformMatrix3fv_p: APcv,
37869 glUniformMatrix3x2dv_p: APcv,
37870 glUniformMatrix3x2fv_p: APcv,
37871 glUniformMatrix3x4dv_p: APcv,
37872 glUniformMatrix3x4fv_p: APcv,
37873 glUniformMatrix4dv_p: APcv,
37874 glUniformMatrix4fv_p: APcv,
37875 glUniformMatrix4x2dv_p: APcv,
37876 glUniformMatrix4x2fv_p: APcv,
37877 glUniformMatrix4x3dv_p: APcv,
37878 glUniformMatrix4x3fv_p: APcv,
37879 glUniformSubroutinesuiv_p: APcv,
37880 glUnmapBuffer_p: APcv,
37881 glUnmapNamedBuffer_p: APcv,
37882 glUseProgram_p: APcv,
37883 glUseProgramStages_p: APcv,
37884 glValidateProgram_p: APcv,
37885 glValidateProgramPipeline_p: APcv,
37886 glVertexArrayAttribBinding_p: APcv,
37887 glVertexArrayAttribFormat_p: APcv,
37888 glVertexArrayAttribIFormat_p: APcv,
37889 glVertexArrayAttribLFormat_p: APcv,
37890 glVertexArrayBindingDivisor_p: APcv,
37891 glVertexArrayElementBuffer_p: APcv,
37892 glVertexArrayVertexBuffer_p: APcv,
37893 glVertexArrayVertexBuffers_p: APcv,
37894 glVertexAttrib1d_p: APcv,
37895 glVertexAttrib1dv_p: APcv,
37896 glVertexAttrib1f_p: APcv,
37897 glVertexAttrib1fv_p: APcv,
37898 glVertexAttrib1s_p: APcv,
37899 glVertexAttrib1sv_p: APcv,
37900 glVertexAttrib2d_p: APcv,
37901 glVertexAttrib2dv_p: APcv,
37902 glVertexAttrib2f_p: APcv,
37903 glVertexAttrib2fv_p: APcv,
37904 glVertexAttrib2s_p: APcv,
37905 glVertexAttrib2sv_p: APcv,
37906 glVertexAttrib3d_p: APcv,
37907 glVertexAttrib3dv_p: APcv,
37908 glVertexAttrib3f_p: APcv,
37909 glVertexAttrib3fv_p: APcv,
37910 glVertexAttrib3s_p: APcv,
37911 glVertexAttrib3sv_p: APcv,
37912 glVertexAttrib4Nbv_p: APcv,
37913 glVertexAttrib4Niv_p: APcv,
37914 glVertexAttrib4Nsv_p: APcv,
37915 glVertexAttrib4Nub_p: APcv,
37916 glVertexAttrib4Nubv_p: APcv,
37917 glVertexAttrib4Nuiv_p: APcv,
37918 glVertexAttrib4Nusv_p: APcv,
37919 glVertexAttrib4bv_p: APcv,
37920 glVertexAttrib4d_p: APcv,
37921 glVertexAttrib4dv_p: APcv,
37922 glVertexAttrib4f_p: APcv,
37923 glVertexAttrib4fv_p: APcv,
37924 glVertexAttrib4iv_p: APcv,
37925 glVertexAttrib4s_p: APcv,
37926 glVertexAttrib4sv_p: APcv,
37927 glVertexAttrib4ubv_p: APcv,
37928 glVertexAttrib4uiv_p: APcv,
37929 glVertexAttrib4usv_p: APcv,
37930 glVertexAttribBinding_p: APcv,
37931 glVertexAttribDivisor_p: APcv,
37932 glVertexAttribDivisorARB_p: APcv,
37933 glVertexAttribFormat_p: APcv,
37934 glVertexAttribI1i_p: APcv,
37935 glVertexAttribI1iv_p: APcv,
37936 glVertexAttribI1ui_p: APcv,
37937 glVertexAttribI1uiv_p: APcv,
37938 glVertexAttribI2i_p: APcv,
37939 glVertexAttribI2iv_p: APcv,
37940 glVertexAttribI2ui_p: APcv,
37941 glVertexAttribI2uiv_p: APcv,
37942 glVertexAttribI3i_p: APcv,
37943 glVertexAttribI3iv_p: APcv,
37944 glVertexAttribI3ui_p: APcv,
37945 glVertexAttribI3uiv_p: APcv,
37946 glVertexAttribI4bv_p: APcv,
37947 glVertexAttribI4i_p: APcv,
37948 glVertexAttribI4iv_p: APcv,
37949 glVertexAttribI4sv_p: APcv,
37950 glVertexAttribI4ubv_p: APcv,
37951 glVertexAttribI4ui_p: APcv,
37952 glVertexAttribI4uiv_p: APcv,
37953 glVertexAttribI4usv_p: APcv,
37954 glVertexAttribIFormat_p: APcv,
37955 glVertexAttribIPointer_p: APcv,
37956 glVertexAttribL1d_p: APcv,
37957 glVertexAttribL1dv_p: APcv,
37958 glVertexAttribL2d_p: APcv,
37959 glVertexAttribL2dv_p: APcv,
37960 glVertexAttribL3d_p: APcv,
37961 glVertexAttribL3dv_p: APcv,
37962 glVertexAttribL4d_p: APcv,
37963 glVertexAttribL4dv_p: APcv,
37964 glVertexAttribLFormat_p: APcv,
37965 glVertexAttribLPointer_p: APcv,
37966 glVertexAttribP1ui_p: APcv,
37967 glVertexAttribP1uiv_p: APcv,
37968 glVertexAttribP2ui_p: APcv,
37969 glVertexAttribP2uiv_p: APcv,
37970 glVertexAttribP3ui_p: APcv,
37971 glVertexAttribP3uiv_p: APcv,
37972 glVertexAttribP4ui_p: APcv,
37973 glVertexAttribP4uiv_p: APcv,
37974 glVertexAttribPointer_p: APcv,
37975 glVertexBindingDivisor_p: APcv,
37976 glViewport_p: APcv,
37977 glViewportArrayv_p: APcv,
37978 glViewportIndexedf_p: APcv,
37979 glViewportIndexedfv_p: APcv,
37980 glWaitSync_p: APcv,
37981 }
37982 #[cfg(feature = "bytemuck")]
37983 unsafe impl bytemuck::Zeroable for GlFns {}
37984 impl core::fmt::Debug for GlFns {
37985 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
37986 write!(f, "GlFns")
37987 }
37988 }
37989}
37990