/* automatically generated by rust-bindgen 0.54.1 */

pub const __GNUC_VA_LIST: u32 = 1;
pub const PI: f64 = 3.141592653589793;
pub const DEG2RAD: f64 = 0.017453292519943295;
pub const RAD2DEG: f64 = 57.29577951308232;
pub const MAX_TOUCH_POINTS: u32 = 10;
pub const true_: u32 = 1;
pub const false_: u32 = 0;
pub const __bool_true_false_are_defined: u32 = 1;
pub const _MATH_H: u32 = 1;
pub const _FEATURES_H: u32 = 1;
pub const __USE_ISOC11: u32 = 1;
pub const __USE_ISOC99: u32 = 1;
pub const __USE_ISOC95: u32 = 1;
pub const __USE_FORTIFY_LEVEL: u32 = 0;
pub const _STDC_PREDEF_H: u32 = 1;
pub const __STDC_IEC_559__: u32 = 1;
pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
pub const __STDC_ISO_10646__: u32 = 201605;
pub const __STDC_NO_THREADS__: u32 = 1;
pub const __GNU_LIBRARY__: u32 = 6;
pub const __GLIBC__: u32 = 2;
pub const __GLIBC_MINOR__: u32 = 24;
pub const _SYS_CDEFS_H: u32 = 1;
pub const __WORDSIZE: u32 = 64;
pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
pub const __SYSCALL_WORDSIZE: u32 = 64;
pub const _BITS_LIBM_SIMD_DECL_STUBS_H: u32 = 1;
pub const _MATH_H_MATHDEF: u32 = 1;
pub const FP_ILOGB0: i32 = -2147483648;
pub const FP_ILOGBNAN: i32 = -2147483648;
pub const __MATH_DECLARING_DOUBLE: u32 = 1;
pub const __MATH_DECLARE_LDOUBLE: u32 = 1;
pub const FP_NAN: u32 = 0;
pub const FP_INFINITE: u32 = 1;
pub const FP_ZERO: u32 = 2;
pub const FP_SUBNORMAL: u32 = 3;
pub const FP_NORMAL: u32 = 4;
pub const MATH_ERRNO: u32 = 1;
pub const MATH_ERREXCEPT: u32 = 2;
pub const math_errhandling: u32 = 3;
pub const MAX_BATCH_ELEMENTS: u32 = 8192;
pub const MAX_BATCH_BUFFERING: u32 = 1;
pub const MAX_MATRIX_STACK_SIZE: u32 = 32;
pub const MAX_DRAWCALL_REGISTERED: u32 = 256;
pub const DEFAULT_NEAR_CULL_DISTANCE: f64 = 0.01;
pub const DEFAULT_FAR_CULL_DISTANCE: f64 = 1000.0;
pub const MAX_SHADER_LOCATIONS: u32 = 32;
pub const MAX_MATERIAL_MAPS: u32 = 12;
pub const RL_TEXTURE_WRAP_S: u32 = 10242;
pub const RL_TEXTURE_WRAP_T: u32 = 10243;
pub const RL_TEXTURE_MAG_FILTER: u32 = 10240;
pub const RL_TEXTURE_MIN_FILTER: u32 = 10241;
pub const RL_TEXTURE_ANISOTROPIC_FILTER: u32 = 12288;
pub const RL_FILTER_NEAREST: u32 = 9728;
pub const RL_FILTER_LINEAR: u32 = 9729;
pub const RL_FILTER_MIP_NEAREST: u32 = 9984;
pub const RL_FILTER_NEAREST_MIP_LINEAR: u32 = 9986;
pub const RL_FILTER_LINEAR_MIP_NEAREST: u32 = 9985;
pub const RL_FILTER_MIP_LINEAR: u32 = 9987;
pub const RL_WRAP_REPEAT: u32 = 10497;
pub const RL_WRAP_CLAMP: u32 = 33071;
pub const RL_WRAP_MIRROR_REPEAT: u32 = 33648;
pub const RL_WRAP_MIRROR_CLAMP: u32 = 34626;
pub const RL_MODELVIEW: u32 = 5888;
pub const RL_PROJECTION: u32 = 5889;
pub const RL_TEXTURE: u32 = 5890;
pub const RL_LINES: u32 = 1;
pub const RL_TRIANGLES: u32 = 4;
pub const RL_QUADS: u32 = 7;
pub const RAYLIB_VERSION: &'static [u8; 4usize] = b"3.0\0";
pub const SUPPORT_CAMERA_SYSTEM: u32 = 1;
pub const SUPPORT_GESTURES_SYSTEM: u32 = 1;
pub const SUPPORT_MOUSE_GESTURES: u32 = 1;
pub const SUPPORT_SSH_KEYBOARD_RPI: u32 = 1;
pub const SUPPORT_MOUSE_CURSOR_RPI: u32 = 1;
pub const SUPPORT_SCREEN_CAPTURE: u32 = 1;
pub const SUPPORT_COMPRESSION_API: u32 = 1;
pub const SUPPORT_DATA_STORAGE: u32 = 1;
pub const SUPPORT_VR_SIMULATOR: u32 = 1;
pub const SUPPORT_FONT_TEXTURE: u32 = 1;
pub const SUPPORT_QUADS_DRAW_MODE: u32 = 1;
pub const SUPPORT_FILEFORMAT_PNG: u32 = 1;
pub const SUPPORT_FILEFORMAT_BMP: u32 = 1;
pub const SUPPORT_FILEFORMAT_TGA: u32 = 1;
pub const SUPPORT_FILEFORMAT_GIF: u32 = 1;
pub const SUPPORT_FILEFORMAT_DDS: u32 = 1;
pub const SUPPORT_FILEFORMAT_HDR: u32 = 1;
pub const SUPPORT_FILEFORMAT_KTX: u32 = 1;
pub const SUPPORT_FILEFORMAT_ASTC: u32 = 1;
pub const SUPPORT_IMAGE_EXPORT: u32 = 1;
pub const SUPPORT_IMAGE_MANIPULATION: u32 = 1;
pub const SUPPORT_IMAGE_GENERATION: u32 = 1;
pub const SUPPORT_DEFAULT_FONT: u32 = 1;
pub const SUPPORT_FILEFORMAT_FNT: u32 = 1;
pub const SUPPORT_FILEFORMAT_TTF: u32 = 1;
pub const SUPPORT_FILEFORMAT_OBJ: u32 = 1;
pub const SUPPORT_FILEFORMAT_MTL: u32 = 1;
pub const SUPPORT_FILEFORMAT_IQM: u32 = 1;
pub const SUPPORT_FILEFORMAT_GLTF: u32 = 1;
pub const SUPPORT_MESH_GENERATION: u32 = 1;
pub const SUPPORT_FILEFORMAT_WAV: u32 = 1;
pub const SUPPORT_FILEFORMAT_OGG: u32 = 1;
pub const SUPPORT_FILEFORMAT_XM: u32 = 1;
pub const SUPPORT_FILEFORMAT_MOD: u32 = 1;
pub const SUPPORT_FILEFORMAT_MP3: u32 = 1;
pub const SUPPORT_TRACELOG: u32 = 1;
pub const _STDLIB_H: u32 = 1;
pub const __ldiv_t_defined: u32 = 1;
pub const __lldiv_t_defined: u32 = 1;
pub const RAND_MAX: u32 = 2147483647;
pub const EXIT_FAILURE: u32 = 1;
pub const EXIT_SUCCESS: u32 = 0;
pub const _STRING_H: u32 = 1;
pub const _INTTYPES_H: u32 = 1;
pub const _STDINT_H: u32 = 1;
pub const _BITS_WCHAR_H: u32 = 1;
pub const INT8_MIN: i32 = -128;
pub const INT16_MIN: i32 = -32768;
pub const INT32_MIN: i32 = -2147483648;
pub const INT8_MAX: u32 = 127;
pub const INT16_MAX: u32 = 32767;
pub const INT32_MAX: u32 = 2147483647;
pub const UINT8_MAX: u32 = 255;
pub const UINT16_MAX: u32 = 65535;
pub const UINT32_MAX: u32 = 4294967295;
pub const INT_LEAST8_MIN: i32 = -128;
pub const INT_LEAST16_MIN: i32 = -32768;
pub const INT_LEAST32_MIN: i32 = -2147483648;
pub const INT_LEAST8_MAX: u32 = 127;
pub const INT_LEAST16_MAX: u32 = 32767;
pub const INT_LEAST32_MAX: u32 = 2147483647;
pub const UINT_LEAST8_MAX: u32 = 255;
pub const UINT_LEAST16_MAX: u32 = 65535;
pub const UINT_LEAST32_MAX: u32 = 4294967295;
pub const INT_FAST8_MIN: i32 = -128;
pub const INT_FAST16_MIN: i64 = -9223372036854775808;
pub const INT_FAST32_MIN: i64 = -9223372036854775808;
pub const INT_FAST8_MAX: u32 = 127;
pub const INT_FAST16_MAX: u64 = 9223372036854775807;
pub const INT_FAST32_MAX: u64 = 9223372036854775807;
pub const UINT_FAST8_MAX: u32 = 255;
pub const UINT_FAST16_MAX: i32 = -1;
pub const UINT_FAST32_MAX: i32 = -1;
pub const INTPTR_MIN: i64 = -9223372036854775808;
pub const INTPTR_MAX: u64 = 9223372036854775807;
pub const UINTPTR_MAX: i32 = -1;
pub const PTRDIFF_MIN: i64 = -9223372036854775808;
pub const PTRDIFF_MAX: u64 = 9223372036854775807;
pub const SIG_ATOMIC_MIN: i32 = -2147483648;
pub const SIG_ATOMIC_MAX: u32 = 2147483647;
pub const SIZE_MAX: i32 = -1;
pub const WINT_MIN: u32 = 0;
pub const WINT_MAX: u32 = 4294967295;
pub const ____gwchar_t_defined: u32 = 1;
pub const __PRI64_PREFIX: &'static [u8; 2usize] = b"l\0";
pub const __PRIPTR_PREFIX: &'static [u8; 2usize] = b"l\0";
pub const PRId8: &'static [u8; 2usize] = b"d\0";
pub const PRId16: &'static [u8; 2usize] = b"d\0";
pub const PRId32: &'static [u8; 2usize] = b"d\0";
pub const PRId64: &'static [u8; 3usize] = b"ld\0";
pub const PRIdLEAST8: &'static [u8; 2usize] = b"d\0";
pub const PRIdLEAST16: &'static [u8; 2usize] = b"d\0";
pub const PRIdLEAST32: &'static [u8; 2usize] = b"d\0";
pub const PRIdLEAST64: &'static [u8; 3usize] = b"ld\0";
pub const PRIdFAST8: &'static [u8; 2usize] = b"d\0";
pub const PRIdFAST16: &'static [u8; 3usize] = b"ld\0";
pub const PRIdFAST32: &'static [u8; 3usize] = b"ld\0";
pub const PRIdFAST64: &'static [u8; 3usize] = b"ld\0";
pub const PRIi8: &'static [u8; 2usize] = b"i\0";
pub const PRIi16: &'static [u8; 2usize] = b"i\0";
pub const PRIi32: &'static [u8; 2usize] = b"i\0";
pub const PRIi64: &'static [u8; 3usize] = b"li\0";
pub const PRIiLEAST8: &'static [u8; 2usize] = b"i\0";
pub const PRIiLEAST16: &'static [u8; 2usize] = b"i\0";
pub const PRIiLEAST32: &'static [u8; 2usize] = b"i\0";
pub const PRIiLEAST64: &'static [u8; 3usize] = b"li\0";
pub const PRIiFAST8: &'static [u8; 2usize] = b"i\0";
pub const PRIiFAST16: &'static [u8; 3usize] = b"li\0";
pub const PRIiFAST32: &'static [u8; 3usize] = b"li\0";
pub const PRIiFAST64: &'static [u8; 3usize] = b"li\0";
pub const PRIo8: &'static [u8; 2usize] = b"o\0";
pub const PRIo16: &'static [u8; 2usize] = b"o\0";
pub const PRIo32: &'static [u8; 2usize] = b"o\0";
pub const PRIo64: &'static [u8; 3usize] = b"lo\0";
pub const PRIoLEAST8: &'static [u8; 2usize] = b"o\0";
pub const PRIoLEAST16: &'static [u8; 2usize] = b"o\0";
pub const PRIoLEAST32: &'static [u8; 2usize] = b"o\0";
pub const PRIoLEAST64: &'static [u8; 3usize] = b"lo\0";
pub const PRIoFAST8: &'static [u8; 2usize] = b"o\0";
pub const PRIoFAST16: &'static [u8; 3usize] = b"lo\0";
pub const PRIoFAST32: &'static [u8; 3usize] = b"lo\0";
pub const PRIoFAST64: &'static [u8; 3usize] = b"lo\0";
pub const PRIu8: &'static [u8; 2usize] = b"u\0";
pub const PRIu16: &'static [u8; 2usize] = b"u\0";
pub const PRIu32: &'static [u8; 2usize] = b"u\0";
pub const PRIu64: &'static [u8; 3usize] = b"lu\0";
pub const PRIuLEAST8: &'static [u8; 2usize] = b"u\0";
pub const PRIuLEAST16: &'static [u8; 2usize] = b"u\0";
pub const PRIuLEAST32: &'static [u8; 2usize] = b"u\0";
pub const PRIuLEAST64: &'static [u8; 3usize] = b"lu\0";
pub const PRIuFAST8: &'static [u8; 2usize] = b"u\0";
pub const PRIuFAST16: &'static [u8; 3usize] = b"lu\0";
pub const PRIuFAST32: &'static [u8; 3usize] = b"lu\0";
pub const PRIuFAST64: &'static [u8; 3usize] = b"lu\0";
pub const PRIx8: &'static [u8; 2usize] = b"x\0";
pub const PRIx16: &'static [u8; 2usize] = b"x\0";
pub const PRIx32: &'static [u8; 2usize] = b"x\0";
pub const PRIx64: &'static [u8; 3usize] = b"lx\0";
pub const PRIxLEAST8: &'static [u8; 2usize] = b"x\0";
pub const PRIxLEAST16: &'static [u8; 2usize] = b"x\0";
pub const PRIxLEAST32: &'static [u8; 2usize] = b"x\0";
pub const PRIxLEAST64: &'static [u8; 3usize] = b"lx\0";
pub const PRIxFAST8: &'static [u8; 2usize] = b"x\0";
pub const PRIxFAST16: &'static [u8; 3usize] = b"lx\0";
pub const PRIxFAST32: &'static [u8; 3usize] = b"lx\0";
pub const PRIxFAST64: &'static [u8; 3usize] = b"lx\0";
pub const PRIX8: &'static [u8; 2usize] = b"X\0";
pub const PRIX16: &'static [u8; 2usize] = b"X\0";
pub const PRIX32: &'static [u8; 2usize] = b"X\0";
pub const PRIX64: &'static [u8; 3usize] = b"lX\0";
pub const PRIXLEAST8: &'static [u8; 2usize] = b"X\0";
pub const PRIXLEAST16: &'static [u8; 2usize] = b"X\0";
pub const PRIXLEAST32: &'static [u8; 2usize] = b"X\0";
pub const PRIXLEAST64: &'static [u8; 3usize] = b"lX\0";
pub const PRIXFAST8: &'static [u8; 2usize] = b"X\0";
pub const PRIXFAST16: &'static [u8; 3usize] = b"lX\0";
pub const PRIXFAST32: &'static [u8; 3usize] = b"lX\0";
pub const PRIXFAST64: &'static [u8; 3usize] = b"lX\0";
pub const PRIdMAX: &'static [u8; 3usize] = b"ld\0";
pub const PRIiMAX: &'static [u8; 3usize] = b"li\0";
pub const PRIoMAX: &'static [u8; 3usize] = b"lo\0";
pub const PRIuMAX: &'static [u8; 3usize] = b"lu\0";
pub const PRIxMAX: &'static [u8; 3usize] = b"lx\0";
pub const PRIXMAX: &'static [u8; 3usize] = b"lX\0";
pub const PRIdPTR: &'static [u8; 3usize] = b"ld\0";
pub const PRIiPTR: &'static [u8; 3usize] = b"li\0";
pub const PRIoPTR: &'static [u8; 3usize] = b"lo\0";
pub const PRIuPTR: &'static [u8; 3usize] = b"lu\0";
pub const PRIxPTR: &'static [u8; 3usize] = b"lx\0";
pub const PRIXPTR: &'static [u8; 3usize] = b"lX\0";
pub const SCNd8: &'static [u8; 4usize] = b"hhd\0";
pub const SCNd16: &'static [u8; 3usize] = b"hd\0";
pub const SCNd32: &'static [u8; 2usize] = b"d\0";
pub const SCNd64: &'static [u8; 3usize] = b"ld\0";
pub const SCNdLEAST8: &'static [u8; 4usize] = b"hhd\0";
pub const SCNdLEAST16: &'static [u8; 3usize] = b"hd\0";
pub const SCNdLEAST32: &'static [u8; 2usize] = b"d\0";
pub const SCNdLEAST64: &'static [u8; 3usize] = b"ld\0";
pub const SCNdFAST8: &'static [u8; 4usize] = b"hhd\0";
pub const SCNdFAST16: &'static [u8; 3usize] = b"ld\0";
pub const SCNdFAST32: &'static [u8; 3usize] = b"ld\0";
pub const SCNdFAST64: &'static [u8; 3usize] = b"ld\0";
pub const SCNi8: &'static [u8; 4usize] = b"hhi\0";
pub const SCNi16: &'static [u8; 3usize] = b"hi\0";
pub const SCNi32: &'static [u8; 2usize] = b"i\0";
pub const SCNi64: &'static [u8; 3usize] = b"li\0";
pub const SCNiLEAST8: &'static [u8; 4usize] = b"hhi\0";
pub const SCNiLEAST16: &'static [u8; 3usize] = b"hi\0";
pub const SCNiLEAST32: &'static [u8; 2usize] = b"i\0";
pub const SCNiLEAST64: &'static [u8; 3usize] = b"li\0";
pub const SCNiFAST8: &'static [u8; 4usize] = b"hhi\0";
pub const SCNiFAST16: &'static [u8; 3usize] = b"li\0";
pub const SCNiFAST32: &'static [u8; 3usize] = b"li\0";
pub const SCNiFAST64: &'static [u8; 3usize] = b"li\0";
pub const SCNu8: &'static [u8; 4usize] = b"hhu\0";
pub const SCNu16: &'static [u8; 3usize] = b"hu\0";
pub const SCNu32: &'static [u8; 2usize] = b"u\0";
pub const SCNu64: &'static [u8; 3usize] = b"lu\0";
pub const SCNuLEAST8: &'static [u8; 4usize] = b"hhu\0";
pub const SCNuLEAST16: &'static [u8; 3usize] = b"hu\0";
pub const SCNuLEAST32: &'static [u8; 2usize] = b"u\0";
pub const SCNuLEAST64: &'static [u8; 3usize] = b"lu\0";
pub const SCNuFAST8: &'static [u8; 4usize] = b"hhu\0";
pub const SCNuFAST16: &'static [u8; 3usize] = b"lu\0";
pub const SCNuFAST32: &'static [u8; 3usize] = b"lu\0";
pub const SCNuFAST64: &'static [u8; 3usize] = b"lu\0";
pub const SCNo8: &'static [u8; 4usize] = b"hho\0";
pub const SCNo16: &'static [u8; 3usize] = b"ho\0";
pub const SCNo32: &'static [u8; 2usize] = b"o\0";
pub const SCNo64: &'static [u8; 3usize] = b"lo\0";
pub const SCNoLEAST8: &'static [u8; 4usize] = b"hho\0";
pub const SCNoLEAST16: &'static [u8; 3usize] = b"ho\0";
pub const SCNoLEAST32: &'static [u8; 2usize] = b"o\0";
pub const SCNoLEAST64: &'static [u8; 3usize] = b"lo\0";
pub const SCNoFAST8: &'static [u8; 4usize] = b"hho\0";
pub const SCNoFAST16: &'static [u8; 3usize] = b"lo\0";
pub const SCNoFAST32: &'static [u8; 3usize] = b"lo\0";
pub const SCNoFAST64: &'static [u8; 3usize] = b"lo\0";
pub const SCNx8: &'static [u8; 4usize] = b"hhx\0";
pub const SCNx16: &'static [u8; 3usize] = b"hx\0";
pub const SCNx32: &'static [u8; 2usize] = b"x\0";
pub const SCNx64: &'static [u8; 3usize] = b"lx\0";
pub const SCNxLEAST8: &'static [u8; 4usize] = b"hhx\0";
pub const SCNxLEAST16: &'static [u8; 3usize] = b"hx\0";
pub const SCNxLEAST32: &'static [u8; 2usize] = b"x\0";
pub const SCNxLEAST64: &'static [u8; 3usize] = b"lx\0";
pub const SCNxFAST8: &'static [u8; 4usize] = b"hhx\0";
pub const SCNxFAST16: &'static [u8; 3usize] = b"lx\0";
pub const SCNxFAST32: &'static [u8; 3usize] = b"lx\0";
pub const SCNxFAST64: &'static [u8; 3usize] = b"lx\0";
pub const SCNdMAX: &'static [u8; 3usize] = b"ld\0";
pub const SCNiMAX: &'static [u8; 3usize] = b"li\0";
pub const SCNoMAX: &'static [u8; 3usize] = b"lo\0";
pub const SCNuMAX: &'static [u8; 3usize] = b"lu\0";
pub const SCNxMAX: &'static [u8; 3usize] = b"lx\0";
pub const SCNdPTR: &'static [u8; 3usize] = b"ld\0";
pub const SCNiPTR: &'static [u8; 3usize] = b"li\0";
pub const SCNoPTR: &'static [u8; 3usize] = b"lo\0";
pub const SCNuPTR: &'static [u8; 3usize] = b"lu\0";
pub const SCNxPTR: &'static [u8; 3usize] = b"lx\0";
pub const GL_DEPTH_BUFFER_BIT: u32 = 256;
pub const GL_STENCIL_BUFFER_BIT: u32 = 1024;
pub const GL_COLOR_BUFFER_BIT: u32 = 16384;
pub const GL_FALSE: u32 = 0;
pub const GL_TRUE: u32 = 1;
pub const GL_POINTS: u32 = 0;
pub const GL_LINES: u32 = 1;
pub const GL_LINE_LOOP: u32 = 2;
pub const GL_LINE_STRIP: u32 = 3;
pub const GL_TRIANGLES: u32 = 4;
pub const GL_TRIANGLE_STRIP: u32 = 5;
pub const GL_TRIANGLE_FAN: u32 = 6;
pub const GL_NEVER: u32 = 512;
pub const GL_LESS: u32 = 513;
pub const GL_EQUAL: u32 = 514;
pub const GL_LEQUAL: u32 = 515;
pub const GL_GREATER: u32 = 516;
pub const GL_NOTEQUAL: u32 = 517;
pub const GL_GEQUAL: u32 = 518;
pub const GL_ALWAYS: u32 = 519;
pub const GL_ZERO: u32 = 0;
pub const GL_ONE: u32 = 1;
pub const GL_SRC_COLOR: u32 = 768;
pub const GL_ONE_MINUS_SRC_COLOR: u32 = 769;
pub const GL_SRC_ALPHA: u32 = 770;
pub const GL_ONE_MINUS_SRC_ALPHA: u32 = 771;
pub const GL_DST_ALPHA: u32 = 772;
pub const GL_ONE_MINUS_DST_ALPHA: u32 = 773;
pub const GL_DST_COLOR: u32 = 774;
pub const GL_ONE_MINUS_DST_COLOR: u32 = 775;
pub const GL_SRC_ALPHA_SATURATE: u32 = 776;
pub const GL_NONE: u32 = 0;
pub const GL_FRONT_LEFT: u32 = 1024;
pub const GL_FRONT_RIGHT: u32 = 1025;
pub const GL_BACK_LEFT: u32 = 1026;
pub const GL_BACK_RIGHT: u32 = 1027;
pub const GL_FRONT: u32 = 1028;
pub const GL_BACK: u32 = 1029;
pub const GL_LEFT: u32 = 1030;
pub const GL_RIGHT: u32 = 1031;
pub const GL_FRONT_AND_BACK: u32 = 1032;
pub const GL_NO_ERROR: u32 = 0;
pub const GL_INVALID_ENUM: u32 = 1280;
pub const GL_INVALID_VALUE: u32 = 1281;
pub const GL_INVALID_OPERATION: u32 = 1282;
pub const GL_OUT_OF_MEMORY: u32 = 1285;
pub const GL_CW: u32 = 2304;
pub const GL_CCW: u32 = 2305;
pub const GL_POINT_SIZE: u32 = 2833;
pub const GL_POINT_SIZE_RANGE: u32 = 2834;
pub const GL_POINT_SIZE_GRANULARITY: u32 = 2835;
pub const GL_LINE_SMOOTH: u32 = 2848;
pub const GL_LINE_WIDTH: u32 = 2849;
pub const GL_LINE_WIDTH_RANGE: u32 = 2850;
pub const GL_LINE_WIDTH_GRANULARITY: u32 = 2851;
pub const GL_POLYGON_MODE: u32 = 2880;
pub const GL_POLYGON_SMOOTH: u32 = 2881;
pub const GL_CULL_FACE: u32 = 2884;
pub const GL_CULL_FACE_MODE: u32 = 2885;
pub const GL_FRONT_FACE: u32 = 2886;
pub const GL_DEPTH_RANGE: u32 = 2928;
pub const GL_DEPTH_TEST: u32 = 2929;
pub const GL_DEPTH_WRITEMASK: u32 = 2930;
pub const GL_DEPTH_CLEAR_VALUE: u32 = 2931;
pub const GL_DEPTH_FUNC: u32 = 2932;
pub const GL_STENCIL_TEST: u32 = 2960;
pub const GL_STENCIL_CLEAR_VALUE: u32 = 2961;
pub const GL_STENCIL_FUNC: u32 = 2962;
pub const GL_STENCIL_VALUE_MASK: u32 = 2963;
pub const GL_STENCIL_FAIL: u32 = 2964;
pub const GL_STENCIL_PASS_DEPTH_FAIL: u32 = 2965;
pub const GL_STENCIL_PASS_DEPTH_PASS: u32 = 2966;
pub const GL_STENCIL_REF: u32 = 2967;
pub const GL_STENCIL_WRITEMASK: u32 = 2968;
pub const GL_VIEWPORT: u32 = 2978;
pub const GL_DITHER: u32 = 3024;
pub const GL_BLEND_DST: u32 = 3040;
pub const GL_BLEND_SRC: u32 = 3041;
pub const GL_BLEND: u32 = 3042;
pub const GL_LOGIC_OP_MODE: u32 = 3056;
pub const GL_COLOR_LOGIC_OP: u32 = 3058;
pub const GL_DRAW_BUFFER: u32 = 3073;
pub const GL_READ_BUFFER: u32 = 3074;
pub const GL_SCISSOR_BOX: u32 = 3088;
pub const GL_SCISSOR_TEST: u32 = 3089;
pub const GL_COLOR_CLEAR_VALUE: u32 = 3106;
pub const GL_COLOR_WRITEMASK: u32 = 3107;
pub const GL_DOUBLEBUFFER: u32 = 3122;
pub const GL_STEREO: u32 = 3123;
pub const GL_LINE_SMOOTH_HINT: u32 = 3154;
pub const GL_POLYGON_SMOOTH_HINT: u32 = 3155;
pub const GL_UNPACK_SWAP_BYTES: u32 = 3312;
pub const GL_UNPACK_LSB_FIRST: u32 = 3313;
pub const GL_UNPACK_ROW_LENGTH: u32 = 3314;
pub const GL_UNPACK_SKIP_ROWS: u32 = 3315;
pub const GL_UNPACK_SKIP_PIXELS: u32 = 3316;
pub const GL_UNPACK_ALIGNMENT: u32 = 3317;
pub const GL_PACK_SWAP_BYTES: u32 = 3328;
pub const GL_PACK_LSB_FIRST: u32 = 3329;
pub const GL_PACK_ROW_LENGTH: u32 = 3330;
pub const GL_PACK_SKIP_ROWS: u32 = 3331;
pub const GL_PACK_SKIP_PIXELS: u32 = 3332;
pub const GL_PACK_ALIGNMENT: u32 = 3333;
pub const GL_MAX_TEXTURE_SIZE: u32 = 3379;
pub const GL_MAX_VIEWPORT_DIMS: u32 = 3386;
pub const GL_SUBPIXEL_BITS: u32 = 3408;
pub const GL_TEXTURE_1D: u32 = 3552;
pub const GL_TEXTURE_2D: u32 = 3553;
pub const GL_POLYGON_OFFSET_UNITS: u32 = 10752;
pub const GL_POLYGON_OFFSET_POINT: u32 = 10753;
pub const GL_POLYGON_OFFSET_LINE: u32 = 10754;
pub const GL_POLYGON_OFFSET_FILL: u32 = 32823;
pub const GL_POLYGON_OFFSET_FACTOR: u32 = 32824;
pub const GL_TEXTURE_BINDING_1D: u32 = 32872;
pub const GL_TEXTURE_BINDING_2D: u32 = 32873;
pub const GL_TEXTURE_WIDTH: u32 = 4096;
pub const GL_TEXTURE_HEIGHT: u32 = 4097;
pub const GL_TEXTURE_INTERNAL_FORMAT: u32 = 4099;
pub const GL_TEXTURE_BORDER_COLOR: u32 = 4100;
pub const GL_TEXTURE_RED_SIZE: u32 = 32860;
pub const GL_TEXTURE_GREEN_SIZE: u32 = 32861;
pub const GL_TEXTURE_BLUE_SIZE: u32 = 32862;
pub const GL_TEXTURE_ALPHA_SIZE: u32 = 32863;
pub const GL_DONT_CARE: u32 = 4352;
pub const GL_FASTEST: u32 = 4353;
pub const GL_NICEST: u32 = 4354;
pub const GL_BYTE: u32 = 5120;
pub const GL_UNSIGNED_BYTE: u32 = 5121;
pub const GL_SHORT: u32 = 5122;
pub const GL_UNSIGNED_SHORT: u32 = 5123;
pub const GL_INT: u32 = 5124;
pub const GL_UNSIGNED_INT: u32 = 5125;
pub const GL_FLOAT: u32 = 5126;
pub const GL_DOUBLE: u32 = 5130;
pub const GL_CLEAR: u32 = 5376;
pub const GL_AND: u32 = 5377;
pub const GL_AND_REVERSE: u32 = 5378;
pub const GL_COPY: u32 = 5379;
pub const GL_AND_INVERTED: u32 = 5380;
pub const GL_NOOP: u32 = 5381;
pub const GL_XOR: u32 = 5382;
pub const GL_OR: u32 = 5383;
pub const GL_NOR: u32 = 5384;
pub const GL_EQUIV: u32 = 5385;
pub const GL_INVERT: u32 = 5386;
pub const GL_OR_REVERSE: u32 = 5387;
pub const GL_COPY_INVERTED: u32 = 5388;
pub const GL_OR_INVERTED: u32 = 5389;
pub const GL_NAND: u32 = 5390;
pub const GL_SET: u32 = 5391;
pub const GL_TEXTURE: u32 = 5890;
pub const GL_COLOR: u32 = 6144;
pub const GL_DEPTH: u32 = 6145;
pub const GL_STENCIL: u32 = 6146;
pub const GL_STENCIL_INDEX: u32 = 6401;
pub const GL_DEPTH_COMPONENT: u32 = 6402;
pub const GL_RED: u32 = 6403;
pub const GL_GREEN: u32 = 6404;
pub const GL_BLUE: u32 = 6405;
pub const GL_ALPHA: u32 = 6406;
pub const GL_RGB: u32 = 6407;
pub const GL_RGBA: u32 = 6408;
pub const GL_POINT: u32 = 6912;
pub const GL_LINE: u32 = 6913;
pub const GL_FILL: u32 = 6914;
pub const GL_KEEP: u32 = 7680;
pub const GL_REPLACE: u32 = 7681;
pub const GL_INCR: u32 = 7682;
pub const GL_DECR: u32 = 7683;
pub const GL_VENDOR: u32 = 7936;
pub const GL_RENDERER: u32 = 7937;
pub const GL_VERSION: u32 = 7938;
pub const GL_EXTENSIONS: u32 = 7939;
pub const GL_NEAREST: u32 = 9728;
pub const GL_LINEAR: u32 = 9729;
pub const GL_NEAREST_MIPMAP_NEAREST: u32 = 9984;
pub const GL_LINEAR_MIPMAP_NEAREST: u32 = 9985;
pub const GL_NEAREST_MIPMAP_LINEAR: u32 = 9986;
pub const GL_LINEAR_MIPMAP_LINEAR: u32 = 9987;
pub const GL_TEXTURE_MAG_FILTER: u32 = 10240;
pub const GL_TEXTURE_MIN_FILTER: u32 = 10241;
pub const GL_TEXTURE_WRAP_S: u32 = 10242;
pub const GL_TEXTURE_WRAP_T: u32 = 10243;
pub const GL_PROXY_TEXTURE_1D: u32 = 32867;
pub const GL_PROXY_TEXTURE_2D: u32 = 32868;
pub const GL_REPEAT: u32 = 10497;
pub const GL_R3_G3_B2: u32 = 10768;
pub const GL_RGB4: u32 = 32847;
pub const GL_RGB5: u32 = 32848;
pub const GL_RGB8: u32 = 32849;
pub const GL_RGB10: u32 = 32850;
pub const GL_RGB12: u32 = 32851;
pub const GL_RGB16: u32 = 32852;
pub const GL_RGBA2: u32 = 32853;
pub const GL_RGBA4: u32 = 32854;
pub const GL_RGB5_A1: u32 = 32855;
pub const GL_RGBA8: u32 = 32856;
pub const GL_RGB10_A2: u32 = 32857;
pub const GL_RGBA12: u32 = 32858;
pub const GL_RGBA16: u32 = 32859;
pub const GL_UNSIGNED_BYTE_3_3_2: u32 = 32818;
pub const GL_UNSIGNED_SHORT_4_4_4_4: u32 = 32819;
pub const GL_UNSIGNED_SHORT_5_5_5_1: u32 = 32820;
pub const GL_UNSIGNED_INT_8_8_8_8: u32 = 32821;
pub const GL_UNSIGNED_INT_10_10_10_2: u32 = 32822;
pub const GL_TEXTURE_BINDING_3D: u32 = 32874;
pub const GL_PACK_SKIP_IMAGES: u32 = 32875;
pub const GL_PACK_IMAGE_HEIGHT: u32 = 32876;
pub const GL_UNPACK_SKIP_IMAGES: u32 = 32877;
pub const GL_UNPACK_IMAGE_HEIGHT: u32 = 32878;
pub const GL_TEXTURE_3D: u32 = 32879;
pub const GL_PROXY_TEXTURE_3D: u32 = 32880;
pub const GL_TEXTURE_DEPTH: u32 = 32881;
pub const GL_TEXTURE_WRAP_R: u32 = 32882;
pub const GL_MAX_3D_TEXTURE_SIZE: u32 = 32883;
pub const GL_UNSIGNED_BYTE_2_3_3_REV: u32 = 33634;
pub const GL_UNSIGNED_SHORT_5_6_5: u32 = 33635;
pub const GL_UNSIGNED_SHORT_5_6_5_REV: u32 = 33636;
pub const GL_UNSIGNED_SHORT_4_4_4_4_REV: u32 = 33637;
pub const GL_UNSIGNED_SHORT_1_5_5_5_REV: u32 = 33638;
pub const GL_UNSIGNED_INT_8_8_8_8_REV: u32 = 33639;
pub const GL_UNSIGNED_INT_2_10_10_10_REV: u32 = 33640;
pub const GL_BGR: u32 = 32992;
pub const GL_BGRA: u32 = 32993;
pub const GL_MAX_ELEMENTS_VERTICES: u32 = 33000;
pub const GL_MAX_ELEMENTS_INDICES: u32 = 33001;
pub const GL_CLAMP_TO_EDGE: u32 = 33071;
pub const GL_TEXTURE_MIN_LOD: u32 = 33082;
pub const GL_TEXTURE_MAX_LOD: u32 = 33083;
pub const GL_TEXTURE_BASE_LEVEL: u32 = 33084;
pub const GL_TEXTURE_MAX_LEVEL: u32 = 33085;
pub const GL_SMOOTH_POINT_SIZE_RANGE: u32 = 2834;
pub const GL_SMOOTH_POINT_SIZE_GRANULARITY: u32 = 2835;
pub const GL_SMOOTH_LINE_WIDTH_RANGE: u32 = 2850;
pub const GL_SMOOTH_LINE_WIDTH_GRANULARITY: u32 = 2851;
pub const GL_ALIASED_LINE_WIDTH_RANGE: u32 = 33902;
pub const GL_TEXTURE0: u32 = 33984;
pub const GL_TEXTURE1: u32 = 33985;
pub const GL_TEXTURE2: u32 = 33986;
pub const GL_TEXTURE3: u32 = 33987;
pub const GL_TEXTURE4: u32 = 33988;
pub const GL_TEXTURE5: u32 = 33989;
pub const GL_TEXTURE6: u32 = 33990;
pub const GL_TEXTURE7: u32 = 33991;
pub const GL_TEXTURE8: u32 = 33992;
pub const GL_TEXTURE9: u32 = 33993;
pub const GL_TEXTURE10: u32 = 33994;
pub const GL_TEXTURE11: u32 = 33995;
pub const GL_TEXTURE12: u32 = 33996;
pub const GL_TEXTURE13: u32 = 33997;
pub const GL_TEXTURE14: u32 = 33998;
pub const GL_TEXTURE15: u32 = 33999;
pub const GL_TEXTURE16: u32 = 34000;
pub const GL_TEXTURE17: u32 = 34001;
pub const GL_TEXTURE18: u32 = 34002;
pub const GL_TEXTURE19: u32 = 34003;
pub const GL_TEXTURE20: u32 = 34004;
pub const GL_TEXTURE21: u32 = 34005;
pub const GL_TEXTURE22: u32 = 34006;
pub const GL_TEXTURE23: u32 = 34007;
pub const GL_TEXTURE24: u32 = 34008;
pub const GL_TEXTURE25: u32 = 34009;
pub const GL_TEXTURE26: u32 = 34010;
pub const GL_TEXTURE27: u32 = 34011;
pub const GL_TEXTURE28: u32 = 34012;
pub const GL_TEXTURE29: u32 = 34013;
pub const GL_TEXTURE30: u32 = 34014;
pub const GL_TEXTURE31: u32 = 34015;
pub const GL_ACTIVE_TEXTURE: u32 = 34016;
pub const GL_MULTISAMPLE: u32 = 32925;
pub const GL_SAMPLE_ALPHA_TO_COVERAGE: u32 = 32926;
pub const GL_SAMPLE_ALPHA_TO_ONE: u32 = 32927;
pub const GL_SAMPLE_COVERAGE: u32 = 32928;
pub const GL_SAMPLE_BUFFERS: u32 = 32936;
pub const GL_SAMPLES: u32 = 32937;
pub const GL_SAMPLE_COVERAGE_VALUE: u32 = 32938;
pub const GL_SAMPLE_COVERAGE_INVERT: u32 = 32939;
pub const GL_TEXTURE_CUBE_MAP: u32 = 34067;
pub const GL_TEXTURE_BINDING_CUBE_MAP: u32 = 34068;
pub const GL_TEXTURE_CUBE_MAP_POSITIVE_X: u32 = 34069;
pub const GL_TEXTURE_CUBE_MAP_NEGATIVE_X: u32 = 34070;
pub const GL_TEXTURE_CUBE_MAP_POSITIVE_Y: u32 = 34071;
pub const GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: u32 = 34072;
pub const GL_TEXTURE_CUBE_MAP_POSITIVE_Z: u32 = 34073;
pub const GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: u32 = 34074;
pub const GL_PROXY_TEXTURE_CUBE_MAP: u32 = 34075;
pub const GL_MAX_CUBE_MAP_TEXTURE_SIZE: u32 = 34076;
pub const GL_COMPRESSED_RGB: u32 = 34029;
pub const GL_COMPRESSED_RGBA: u32 = 34030;
pub const GL_TEXTURE_COMPRESSION_HINT: u32 = 34031;
pub const GL_TEXTURE_COMPRESSED_IMAGE_SIZE: u32 = 34464;
pub const GL_TEXTURE_COMPRESSED: u32 = 34465;
pub const GL_NUM_COMPRESSED_TEXTURE_FORMATS: u32 = 34466;
pub const GL_COMPRESSED_TEXTURE_FORMATS: u32 = 34467;
pub const GL_CLAMP_TO_BORDER: u32 = 33069;
pub const GL_BLEND_DST_RGB: u32 = 32968;
pub const GL_BLEND_SRC_RGB: u32 = 32969;
pub const GL_BLEND_DST_ALPHA: u32 = 32970;
pub const GL_BLEND_SRC_ALPHA: u32 = 32971;
pub const GL_POINT_FADE_THRESHOLD_SIZE: u32 = 33064;
pub const GL_DEPTH_COMPONENT16: u32 = 33189;
pub const GL_DEPTH_COMPONENT24: u32 = 33190;
pub const GL_DEPTH_COMPONENT32: u32 = 33191;
pub const GL_MIRRORED_REPEAT: u32 = 33648;
pub const GL_MAX_TEXTURE_LOD_BIAS: u32 = 34045;
pub const GL_TEXTURE_LOD_BIAS: u32 = 34049;
pub const GL_INCR_WRAP: u32 = 34055;
pub const GL_DECR_WRAP: u32 = 34056;
pub const GL_TEXTURE_DEPTH_SIZE: u32 = 34890;
pub const GL_TEXTURE_COMPARE_MODE: u32 = 34892;
pub const GL_TEXTURE_COMPARE_FUNC: u32 = 34893;
pub const GL_FUNC_ADD: u32 = 32774;
pub const GL_FUNC_SUBTRACT: u32 = 32778;
pub const GL_FUNC_REVERSE_SUBTRACT: u32 = 32779;
pub const GL_MIN: u32 = 32775;
pub const GL_MAX: u32 = 32776;
pub const GL_CONSTANT_COLOR: u32 = 32769;
pub const GL_ONE_MINUS_CONSTANT_COLOR: u32 = 32770;
pub const GL_CONSTANT_ALPHA: u32 = 32771;
pub const GL_ONE_MINUS_CONSTANT_ALPHA: u32 = 32772;
pub const GL_BUFFER_SIZE: u32 = 34660;
pub const GL_BUFFER_USAGE: u32 = 34661;
pub const GL_QUERY_COUNTER_BITS: u32 = 34916;
pub const GL_CURRENT_QUERY: u32 = 34917;
pub const GL_QUERY_RESULT: u32 = 34918;
pub const GL_QUERY_RESULT_AVAILABLE: u32 = 34919;
pub const GL_ARRAY_BUFFER: u32 = 34962;
pub const GL_ELEMENT_ARRAY_BUFFER: u32 = 34963;
pub const GL_ARRAY_BUFFER_BINDING: u32 = 34964;
pub const GL_ELEMENT_ARRAY_BUFFER_BINDING: u32 = 34965;
pub const GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: u32 = 34975;
pub const GL_READ_ONLY: u32 = 35000;
pub const GL_WRITE_ONLY: u32 = 35001;
pub const GL_READ_WRITE: u32 = 35002;
pub const GL_BUFFER_ACCESS: u32 = 35003;
pub const GL_BUFFER_MAPPED: u32 = 35004;
pub const GL_BUFFER_MAP_POINTER: u32 = 35005;
pub const GL_STREAM_DRAW: u32 = 35040;
pub const GL_STREAM_READ: u32 = 35041;
pub const GL_STREAM_COPY: u32 = 35042;
pub const GL_STATIC_DRAW: u32 = 35044;
pub const GL_STATIC_READ: u32 = 35045;
pub const GL_STATIC_COPY: u32 = 35046;
pub const GL_DYNAMIC_DRAW: u32 = 35048;
pub const GL_DYNAMIC_READ: u32 = 35049;
pub const GL_DYNAMIC_COPY: u32 = 35050;
pub const GL_SAMPLES_PASSED: u32 = 35092;
pub const GL_SRC1_ALPHA: u32 = 34185;
pub const GL_BLEND_EQUATION_RGB: u32 = 32777;
pub const GL_VERTEX_ATTRIB_ARRAY_ENABLED: u32 = 34338;
pub const GL_VERTEX_ATTRIB_ARRAY_SIZE: u32 = 34339;
pub const GL_VERTEX_ATTRIB_ARRAY_STRIDE: u32 = 34340;
pub const GL_VERTEX_ATTRIB_ARRAY_TYPE: u32 = 34341;
pub const GL_CURRENT_VERTEX_ATTRIB: u32 = 34342;
pub const GL_VERTEX_PROGRAM_POINT_SIZE: u32 = 34370;
pub const GL_VERTEX_ATTRIB_ARRAY_POINTER: u32 = 34373;
pub const GL_STENCIL_BACK_FUNC: u32 = 34816;
pub const GL_STENCIL_BACK_FAIL: u32 = 34817;
pub const GL_STENCIL_BACK_PASS_DEPTH_FAIL: u32 = 34818;
pub const GL_STENCIL_BACK_PASS_DEPTH_PASS: u32 = 34819;
pub const GL_MAX_DRAW_BUFFERS: u32 = 34852;
pub const GL_DRAW_BUFFER0: u32 = 34853;
pub const GL_DRAW_BUFFER1: u32 = 34854;
pub const GL_DRAW_BUFFER2: u32 = 34855;
pub const GL_DRAW_BUFFER3: u32 = 34856;
pub const GL_DRAW_BUFFER4: u32 = 34857;
pub const GL_DRAW_BUFFER5: u32 = 34858;
pub const GL_DRAW_BUFFER6: u32 = 34859;
pub const GL_DRAW_BUFFER7: u32 = 34860;
pub const GL_DRAW_BUFFER8: u32 = 34861;
pub const GL_DRAW_BUFFER9: u32 = 34862;
pub const GL_DRAW_BUFFER10: u32 = 34863;
pub const GL_DRAW_BUFFER11: u32 = 34864;
pub const GL_DRAW_BUFFER12: u32 = 34865;
pub const GL_DRAW_BUFFER13: u32 = 34866;
pub const GL_DRAW_BUFFER14: u32 = 34867;
pub const GL_DRAW_BUFFER15: u32 = 34868;
pub const GL_BLEND_EQUATION_ALPHA: u32 = 34877;
pub const GL_MAX_VERTEX_ATTRIBS: u32 = 34921;
pub const GL_VERTEX_ATTRIB_ARRAY_NORMALIZED: u32 = 34922;
pub const GL_MAX_TEXTURE_IMAGE_UNITS: u32 = 34930;
pub const GL_FRAGMENT_SHADER: u32 = 35632;
pub const GL_VERTEX_SHADER: u32 = 35633;
pub const GL_MAX_FRAGMENT_UNIFORM_COMPONENTS: u32 = 35657;
pub const GL_MAX_VERTEX_UNIFORM_COMPONENTS: u32 = 35658;
pub const GL_MAX_VARYING_FLOATS: u32 = 35659;
pub const GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: u32 = 35660;
pub const GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: u32 = 35661;
pub const GL_SHADER_TYPE: u32 = 35663;
pub const GL_FLOAT_VEC2: u32 = 35664;
pub const GL_FLOAT_VEC3: u32 = 35665;
pub const GL_FLOAT_VEC4: u32 = 35666;
pub const GL_INT_VEC2: u32 = 35667;
pub const GL_INT_VEC3: u32 = 35668;
pub const GL_INT_VEC4: u32 = 35669;
pub const GL_BOOL: u32 = 35670;
pub const GL_BOOL_VEC2: u32 = 35671;
pub const GL_BOOL_VEC3: u32 = 35672;
pub const GL_BOOL_VEC4: u32 = 35673;
pub const GL_FLOAT_MAT2: u32 = 35674;
pub const GL_FLOAT_MAT3: u32 = 35675;
pub const GL_FLOAT_MAT4: u32 = 35676;
pub const GL_SAMPLER_1D: u32 = 35677;
pub const GL_SAMPLER_2D: u32 = 35678;
pub const GL_SAMPLER_3D: u32 = 35679;
pub const GL_SAMPLER_CUBE: u32 = 35680;
pub const GL_SAMPLER_1D_SHADOW: u32 = 35681;
pub const GL_SAMPLER_2D_SHADOW: u32 = 35682;
pub const GL_DELETE_STATUS: u32 = 35712;
pub const GL_COMPILE_STATUS: u32 = 35713;
pub const GL_LINK_STATUS: u32 = 35714;
pub const GL_VALIDATE_STATUS: u32 = 35715;
pub const GL_INFO_LOG_LENGTH: u32 = 35716;
pub const GL_ATTACHED_SHADERS: u32 = 35717;
pub const GL_ACTIVE_UNIFORMS: u32 = 35718;
pub const GL_ACTIVE_UNIFORM_MAX_LENGTH: u32 = 35719;
pub const GL_SHADER_SOURCE_LENGTH: u32 = 35720;
pub const GL_ACTIVE_ATTRIBUTES: u32 = 35721;
pub const GL_ACTIVE_ATTRIBUTE_MAX_LENGTH: u32 = 35722;
pub const GL_FRAGMENT_SHADER_DERIVATIVE_HINT: u32 = 35723;
pub const GL_SHADING_LANGUAGE_VERSION: u32 = 35724;
pub const GL_CURRENT_PROGRAM: u32 = 35725;
pub const GL_POINT_SPRITE_COORD_ORIGIN: u32 = 36000;
pub const GL_LOWER_LEFT: u32 = 36001;
pub const GL_UPPER_LEFT: u32 = 36002;
pub const GL_STENCIL_BACK_REF: u32 = 36003;
pub const GL_STENCIL_BACK_VALUE_MASK: u32 = 36004;
pub const GL_STENCIL_BACK_WRITEMASK: u32 = 36005;
pub const GL_PIXEL_PACK_BUFFER: u32 = 35051;
pub const GL_PIXEL_UNPACK_BUFFER: u32 = 35052;
pub const GL_PIXEL_PACK_BUFFER_BINDING: u32 = 35053;
pub const GL_PIXEL_UNPACK_BUFFER_BINDING: u32 = 35055;
pub const GL_FLOAT_MAT2x3: u32 = 35685;
pub const GL_FLOAT_MAT2x4: u32 = 35686;
pub const GL_FLOAT_MAT3x2: u32 = 35687;
pub const GL_FLOAT_MAT3x4: u32 = 35688;
pub const GL_FLOAT_MAT4x2: u32 = 35689;
pub const GL_FLOAT_MAT4x3: u32 = 35690;
pub const GL_SRGB: u32 = 35904;
pub const GL_SRGB8: u32 = 35905;
pub const GL_SRGB_ALPHA: u32 = 35906;
pub const GL_SRGB8_ALPHA8: u32 = 35907;
pub const GL_COMPRESSED_SRGB: u32 = 35912;
pub const GL_COMPRESSED_SRGB_ALPHA: u32 = 35913;
pub const GL_COMPARE_REF_TO_TEXTURE: u32 = 34894;
pub const GL_CLIP_DISTANCE0: u32 = 12288;
pub const GL_CLIP_DISTANCE1: u32 = 12289;
pub const GL_CLIP_DISTANCE2: u32 = 12290;
pub const GL_CLIP_DISTANCE3: u32 = 12291;
pub const GL_CLIP_DISTANCE4: u32 = 12292;
pub const GL_CLIP_DISTANCE5: u32 = 12293;
pub const GL_CLIP_DISTANCE6: u32 = 12294;
pub const GL_CLIP_DISTANCE7: u32 = 12295;
pub const GL_MAX_CLIP_DISTANCES: u32 = 3378;
pub const GL_MAJOR_VERSION: u32 = 33307;
pub const GL_MINOR_VERSION: u32 = 33308;
pub const GL_NUM_EXTENSIONS: u32 = 33309;
pub const GL_CONTEXT_FLAGS: u32 = 33310;
pub const GL_COMPRESSED_RED: u32 = 33317;
pub const GL_COMPRESSED_RG: u32 = 33318;
pub const GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT: u32 = 1;
pub const GL_RGBA32F: u32 = 34836;
pub const GL_RGB32F: u32 = 34837;
pub const GL_RGBA16F: u32 = 34842;
pub const GL_RGB16F: u32 = 34843;
pub const GL_VERTEX_ATTRIB_ARRAY_INTEGER: u32 = 35069;
pub const GL_MAX_ARRAY_TEXTURE_LAYERS: u32 = 35071;
pub const GL_MIN_PROGRAM_TEXEL_OFFSET: u32 = 35076;
pub const GL_MAX_PROGRAM_TEXEL_OFFSET: u32 = 35077;
pub const GL_CLAMP_READ_COLOR: u32 = 35100;
pub const GL_FIXED_ONLY: u32 = 35101;
pub const GL_MAX_VARYING_COMPONENTS: u32 = 35659;
pub const GL_TEXTURE_1D_ARRAY: u32 = 35864;
pub const GL_PROXY_TEXTURE_1D_ARRAY: u32 = 35865;
pub const GL_TEXTURE_2D_ARRAY: u32 = 35866;
pub const GL_PROXY_TEXTURE_2D_ARRAY: u32 = 35867;
pub const GL_TEXTURE_BINDING_1D_ARRAY: u32 = 35868;
pub const GL_TEXTURE_BINDING_2D_ARRAY: u32 = 35869;
pub const GL_R11F_G11F_B10F: u32 = 35898;
pub const GL_UNSIGNED_INT_10F_11F_11F_REV: u32 = 35899;
pub const GL_RGB9_E5: u32 = 35901;
pub const GL_UNSIGNED_INT_5_9_9_9_REV: u32 = 35902;
pub const GL_TEXTURE_SHARED_SIZE: u32 = 35903;
pub const GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH: u32 = 35958;
pub const GL_TRANSFORM_FEEDBACK_BUFFER_MODE: u32 = 35967;
pub const GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: u32 = 35968;
pub const GL_TRANSFORM_FEEDBACK_VARYINGS: u32 = 35971;
pub const GL_TRANSFORM_FEEDBACK_BUFFER_START: u32 = 35972;
pub const GL_TRANSFORM_FEEDBACK_BUFFER_SIZE: u32 = 35973;
pub const GL_PRIMITIVES_GENERATED: u32 = 35975;
pub const GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: u32 = 35976;
pub const GL_RASTERIZER_DISCARD: u32 = 35977;
pub const GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: u32 = 35978;
pub const GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: u32 = 35979;
pub const GL_INTERLEAVED_ATTRIBS: u32 = 35980;
pub const GL_SEPARATE_ATTRIBS: u32 = 35981;
pub const GL_TRANSFORM_FEEDBACK_BUFFER: u32 = 35982;
pub const GL_TRANSFORM_FEEDBACK_BUFFER_BINDING: u32 = 35983;
pub const GL_RGBA32UI: u32 = 36208;
pub const GL_RGB32UI: u32 = 36209;
pub const GL_RGBA16UI: u32 = 36214;
pub const GL_RGB16UI: u32 = 36215;
pub const GL_RGBA8UI: u32 = 36220;
pub const GL_RGB8UI: u32 = 36221;
pub const GL_RGBA32I: u32 = 36226;
pub const GL_RGB32I: u32 = 36227;
pub const GL_RGBA16I: u32 = 36232;
pub const GL_RGB16I: u32 = 36233;
pub const GL_RGBA8I: u32 = 36238;
pub const GL_RGB8I: u32 = 36239;
pub const GL_RED_INTEGER: u32 = 36244;
pub const GL_GREEN_INTEGER: u32 = 36245;
pub const GL_BLUE_INTEGER: u32 = 36246;
pub const GL_RGB_INTEGER: u32 = 36248;
pub const GL_RGBA_INTEGER: u32 = 36249;
pub const GL_BGR_INTEGER: u32 = 36250;
pub const GL_BGRA_INTEGER: u32 = 36251;
pub const GL_SAMPLER_1D_ARRAY: u32 = 36288;
pub const GL_SAMPLER_2D_ARRAY: u32 = 36289;
pub const GL_SAMPLER_1D_ARRAY_SHADOW: u32 = 36291;
pub const GL_SAMPLER_2D_ARRAY_SHADOW: u32 = 36292;
pub const GL_SAMPLER_CUBE_SHADOW: u32 = 36293;
pub const GL_UNSIGNED_INT_VEC2: u32 = 36294;
pub const GL_UNSIGNED_INT_VEC3: u32 = 36295;
pub const GL_UNSIGNED_INT_VEC4: u32 = 36296;
pub const GL_INT_SAMPLER_1D: u32 = 36297;
pub const GL_INT_SAMPLER_2D: u32 = 36298;
pub const GL_INT_SAMPLER_3D: u32 = 36299;
pub const GL_INT_SAMPLER_CUBE: u32 = 36300;
pub const GL_INT_SAMPLER_1D_ARRAY: u32 = 36302;
pub const GL_INT_SAMPLER_2D_ARRAY: u32 = 36303;
pub const GL_UNSIGNED_INT_SAMPLER_1D: u32 = 36305;
pub const GL_UNSIGNED_INT_SAMPLER_2D: u32 = 36306;
pub const GL_UNSIGNED_INT_SAMPLER_3D: u32 = 36307;
pub const GL_UNSIGNED_INT_SAMPLER_CUBE: u32 = 36308;
pub const GL_UNSIGNED_INT_SAMPLER_1D_ARRAY: u32 = 36310;
pub const GL_UNSIGNED_INT_SAMPLER_2D_ARRAY: u32 = 36311;
pub const GL_QUERY_WAIT: u32 = 36371;
pub const GL_QUERY_NO_WAIT: u32 = 36372;
pub const GL_QUERY_BY_REGION_WAIT: u32 = 36373;
pub const GL_QUERY_BY_REGION_NO_WAIT: u32 = 36374;
pub const GL_BUFFER_ACCESS_FLAGS: u32 = 37151;
pub const GL_BUFFER_MAP_LENGTH: u32 = 37152;
pub const GL_BUFFER_MAP_OFFSET: u32 = 37153;
pub const GL_DEPTH_COMPONENT32F: u32 = 36012;
pub const GL_DEPTH32F_STENCIL8: u32 = 36013;
pub const GL_FLOAT_32_UNSIGNED_INT_24_8_REV: u32 = 36269;
pub const GL_INVALID_FRAMEBUFFER_OPERATION: u32 = 1286;
pub const GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: u32 = 33296;
pub const GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: u32 = 33297;
pub const GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE: u32 = 33298;
pub const GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: u32 = 33299;
pub const GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: u32 = 33300;
pub const GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: u32 = 33301;
pub const GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: u32 = 33302;
pub const GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: u32 = 33303;
pub const GL_FRAMEBUFFER_DEFAULT: u32 = 33304;
pub const GL_FRAMEBUFFER_UNDEFINED: u32 = 33305;
pub const GL_DEPTH_STENCIL_ATTACHMENT: u32 = 33306;
pub const GL_MAX_RENDERBUFFER_SIZE: u32 = 34024;
pub const GL_DEPTH_STENCIL: u32 = 34041;
pub const GL_UNSIGNED_INT_24_8: u32 = 34042;
pub const GL_DEPTH24_STENCIL8: u32 = 35056;
pub const GL_TEXTURE_STENCIL_SIZE: u32 = 35057;
pub const GL_TEXTURE_RED_TYPE: u32 = 35856;
pub const GL_TEXTURE_GREEN_TYPE: u32 = 35857;
pub const GL_TEXTURE_BLUE_TYPE: u32 = 35858;
pub const GL_TEXTURE_ALPHA_TYPE: u32 = 35859;
pub const GL_TEXTURE_DEPTH_TYPE: u32 = 35862;
pub const GL_UNSIGNED_NORMALIZED: u32 = 35863;
pub const GL_FRAMEBUFFER_BINDING: u32 = 36006;
pub const GL_DRAW_FRAMEBUFFER_BINDING: u32 = 36006;
pub const GL_RENDERBUFFER_BINDING: u32 = 36007;
pub const GL_READ_FRAMEBUFFER: u32 = 36008;
pub const GL_DRAW_FRAMEBUFFER: u32 = 36009;
pub const GL_READ_FRAMEBUFFER_BINDING: u32 = 36010;
pub const GL_RENDERBUFFER_SAMPLES: u32 = 36011;
pub const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: u32 = 36048;
pub const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: u32 = 36049;
pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: u32 = 36050;
pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: u32 = 36051;
pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: u32 = 36052;
pub const GL_FRAMEBUFFER_COMPLETE: u32 = 36053;
pub const GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: u32 = 36054;
pub const GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: u32 = 36055;
pub const GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER: u32 = 36059;
pub const GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER: u32 = 36060;
pub const GL_FRAMEBUFFER_UNSUPPORTED: u32 = 36061;
pub const GL_MAX_COLOR_ATTACHMENTS: u32 = 36063;
pub const GL_COLOR_ATTACHMENT0: u32 = 36064;
pub const GL_COLOR_ATTACHMENT1: u32 = 36065;
pub const GL_COLOR_ATTACHMENT2: u32 = 36066;
pub const GL_COLOR_ATTACHMENT3: u32 = 36067;
pub const GL_COLOR_ATTACHMENT4: u32 = 36068;
pub const GL_COLOR_ATTACHMENT5: u32 = 36069;
pub const GL_COLOR_ATTACHMENT6: u32 = 36070;
pub const GL_COLOR_ATTACHMENT7: u32 = 36071;
pub const GL_COLOR_ATTACHMENT8: u32 = 36072;
pub const GL_COLOR_ATTACHMENT9: u32 = 36073;
pub const GL_COLOR_ATTACHMENT10: u32 = 36074;
pub const GL_COLOR_ATTACHMENT11: u32 = 36075;
pub const GL_COLOR_ATTACHMENT12: u32 = 36076;
pub const GL_COLOR_ATTACHMENT13: u32 = 36077;
pub const GL_COLOR_ATTACHMENT14: u32 = 36078;
pub const GL_COLOR_ATTACHMENT15: u32 = 36079;
pub const GL_COLOR_ATTACHMENT16: u32 = 36080;
pub const GL_COLOR_ATTACHMENT17: u32 = 36081;
pub const GL_COLOR_ATTACHMENT18: u32 = 36082;
pub const GL_COLOR_ATTACHMENT19: u32 = 36083;
pub const GL_COLOR_ATTACHMENT20: u32 = 36084;
pub const GL_COLOR_ATTACHMENT21: u32 = 36085;
pub const GL_COLOR_ATTACHMENT22: u32 = 36086;
pub const GL_COLOR_ATTACHMENT23: u32 = 36087;
pub const GL_COLOR_ATTACHMENT24: u32 = 36088;
pub const GL_COLOR_ATTACHMENT25: u32 = 36089;
pub const GL_COLOR_ATTACHMENT26: u32 = 36090;
pub const GL_COLOR_ATTACHMENT27: u32 = 36091;
pub const GL_COLOR_ATTACHMENT28: u32 = 36092;
pub const GL_COLOR_ATTACHMENT29: u32 = 36093;
pub const GL_COLOR_ATTACHMENT30: u32 = 36094;
pub const GL_COLOR_ATTACHMENT31: u32 = 36095;
pub const GL_DEPTH_ATTACHMENT: u32 = 36096;
pub const GL_STENCIL_ATTACHMENT: u32 = 36128;
pub const GL_FRAMEBUFFER: u32 = 36160;
pub const GL_RENDERBUFFER: u32 = 36161;
pub const GL_RENDERBUFFER_WIDTH: u32 = 36162;
pub const GL_RENDERBUFFER_HEIGHT: u32 = 36163;
pub const GL_RENDERBUFFER_INTERNAL_FORMAT: u32 = 36164;
pub const GL_STENCIL_INDEX1: u32 = 36166;
pub const GL_STENCIL_INDEX4: u32 = 36167;
pub const GL_STENCIL_INDEX8: u32 = 36168;
pub const GL_STENCIL_INDEX16: u32 = 36169;
pub const GL_RENDERBUFFER_RED_SIZE: u32 = 36176;
pub const GL_RENDERBUFFER_GREEN_SIZE: u32 = 36177;
pub const GL_RENDERBUFFER_BLUE_SIZE: u32 = 36178;
pub const GL_RENDERBUFFER_ALPHA_SIZE: u32 = 36179;
pub const GL_RENDERBUFFER_DEPTH_SIZE: u32 = 36180;
pub const GL_RENDERBUFFER_STENCIL_SIZE: u32 = 36181;
pub const GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: u32 = 36182;
pub const GL_MAX_SAMPLES: u32 = 36183;
pub const GL_INDEX: u32 = 33314;
pub const GL_FRAMEBUFFER_SRGB: u32 = 36281;
pub const GL_HALF_FLOAT: u32 = 5131;
pub const GL_MAP_READ_BIT: u32 = 1;
pub const GL_MAP_WRITE_BIT: u32 = 2;
pub const GL_MAP_INVALIDATE_RANGE_BIT: u32 = 4;
pub const GL_MAP_INVALIDATE_BUFFER_BIT: u32 = 8;
pub const GL_MAP_FLUSH_EXPLICIT_BIT: u32 = 16;
pub const GL_MAP_UNSYNCHRONIZED_BIT: u32 = 32;
pub const GL_COMPRESSED_RED_RGTC1: u32 = 36283;
pub const GL_COMPRESSED_SIGNED_RED_RGTC1: u32 = 36284;
pub const GL_COMPRESSED_RG_RGTC2: u32 = 36285;
pub const GL_COMPRESSED_SIGNED_RG_RGTC2: u32 = 36286;
pub const GL_RG: u32 = 33319;
pub const GL_RG_INTEGER: u32 = 33320;
pub const GL_R8: u32 = 33321;
pub const GL_R16: u32 = 33322;
pub const GL_RG8: u32 = 33323;
pub const GL_RG16: u32 = 33324;
pub const GL_R16F: u32 = 33325;
pub const GL_R32F: u32 = 33326;
pub const GL_RG16F: u32 = 33327;
pub const GL_RG32F: u32 = 33328;
pub const GL_R8I: u32 = 33329;
pub const GL_R8UI: u32 = 33330;
pub const GL_R16I: u32 = 33331;
pub const GL_R16UI: u32 = 33332;
pub const GL_R32I: u32 = 33333;
pub const GL_R32UI: u32 = 33334;
pub const GL_RG8I: u32 = 33335;
pub const GL_RG8UI: u32 = 33336;
pub const GL_RG16I: u32 = 33337;
pub const GL_RG16UI: u32 = 33338;
pub const GL_RG32I: u32 = 33339;
pub const GL_RG32UI: u32 = 33340;
pub const GL_VERTEX_ARRAY_BINDING: u32 = 34229;
pub const GL_SAMPLER_2D_RECT: u32 = 35683;
pub const GL_SAMPLER_2D_RECT_SHADOW: u32 = 35684;
pub const GL_SAMPLER_BUFFER: u32 = 36290;
pub const GL_INT_SAMPLER_2D_RECT: u32 = 36301;
pub const GL_INT_SAMPLER_BUFFER: u32 = 36304;
pub const GL_UNSIGNED_INT_SAMPLER_2D_RECT: u32 = 36309;
pub const GL_UNSIGNED_INT_SAMPLER_BUFFER: u32 = 36312;
pub const GL_TEXTURE_BUFFER: u32 = 35882;
pub const GL_MAX_TEXTURE_BUFFER_SIZE: u32 = 35883;
pub const GL_TEXTURE_BINDING_BUFFER: u32 = 35884;
pub const GL_TEXTURE_BUFFER_DATA_STORE_BINDING: u32 = 35885;
pub const GL_TEXTURE_RECTANGLE: u32 = 34037;
pub const GL_TEXTURE_BINDING_RECTANGLE: u32 = 34038;
pub const GL_PROXY_TEXTURE_RECTANGLE: u32 = 34039;
pub const GL_MAX_RECTANGLE_TEXTURE_SIZE: u32 = 34040;
pub const GL_R8_SNORM: u32 = 36756;
pub const GL_RG8_SNORM: u32 = 36757;
pub const GL_RGB8_SNORM: u32 = 36758;
pub const GL_RGBA8_SNORM: u32 = 36759;
pub const GL_R16_SNORM: u32 = 36760;
pub const GL_RG16_SNORM: u32 = 36761;
pub const GL_RGB16_SNORM: u32 = 36762;
pub const GL_RGBA16_SNORM: u32 = 36763;
pub const GL_SIGNED_NORMALIZED: u32 = 36764;
pub const GL_PRIMITIVE_RESTART: u32 = 36765;
pub const GL_PRIMITIVE_RESTART_INDEX: u32 = 36766;
pub const GL_COPY_READ_BUFFER: u32 = 36662;
pub const GL_COPY_WRITE_BUFFER: u32 = 36663;
pub const GL_UNIFORM_BUFFER: u32 = 35345;
pub const GL_UNIFORM_BUFFER_BINDING: u32 = 35368;
pub const GL_UNIFORM_BUFFER_START: u32 = 35369;
pub const GL_UNIFORM_BUFFER_SIZE: u32 = 35370;
pub const GL_MAX_VERTEX_UNIFORM_BLOCKS: u32 = 35371;
pub const GL_MAX_GEOMETRY_UNIFORM_BLOCKS: u32 = 35372;
pub const GL_MAX_FRAGMENT_UNIFORM_BLOCKS: u32 = 35373;
pub const GL_MAX_COMBINED_UNIFORM_BLOCKS: u32 = 35374;
pub const GL_MAX_UNIFORM_BUFFER_BINDINGS: u32 = 35375;
pub const GL_MAX_UNIFORM_BLOCK_SIZE: u32 = 35376;
pub const GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: u32 = 35377;
pub const GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS: u32 = 35378;
pub const GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: u32 = 35379;
pub const GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT: u32 = 35380;
pub const GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH: u32 = 35381;
pub const GL_ACTIVE_UNIFORM_BLOCKS: u32 = 35382;
pub const GL_UNIFORM_TYPE: u32 = 35383;
pub const GL_UNIFORM_SIZE: u32 = 35384;
pub const GL_UNIFORM_NAME_LENGTH: u32 = 35385;
pub const GL_UNIFORM_BLOCK_INDEX: u32 = 35386;
pub const GL_UNIFORM_OFFSET: u32 = 35387;
pub const GL_UNIFORM_ARRAY_STRIDE: u32 = 35388;
pub const GL_UNIFORM_MATRIX_STRIDE: u32 = 35389;
pub const GL_UNIFORM_IS_ROW_MAJOR: u32 = 35390;
pub const GL_UNIFORM_BLOCK_BINDING: u32 = 35391;
pub const GL_UNIFORM_BLOCK_DATA_SIZE: u32 = 35392;
pub const GL_UNIFORM_BLOCK_NAME_LENGTH: u32 = 35393;
pub const GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS: u32 = 35394;
pub const GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: u32 = 35395;
pub const GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: u32 = 35396;
pub const GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER: u32 = 35397;
pub const GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: u32 = 35398;
pub const GL_INVALID_INDEX: u32 = 4294967295;
pub const GL_CONTEXT_CORE_PROFILE_BIT: u32 = 1;
pub const GL_CONTEXT_COMPATIBILITY_PROFILE_BIT: u32 = 2;
pub const GL_LINES_ADJACENCY: u32 = 10;
pub const GL_LINE_STRIP_ADJACENCY: u32 = 11;
pub const GL_TRIANGLES_ADJACENCY: u32 = 12;
pub const GL_TRIANGLE_STRIP_ADJACENCY: u32 = 13;
pub const GL_PROGRAM_POINT_SIZE: u32 = 34370;
pub const GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS: u32 = 35881;
pub const GL_FRAMEBUFFER_ATTACHMENT_LAYERED: u32 = 36263;
pub const GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS: u32 = 36264;
pub const GL_GEOMETRY_SHADER: u32 = 36313;
pub const GL_GEOMETRY_VERTICES_OUT: u32 = 35094;
pub const GL_GEOMETRY_INPUT_TYPE: u32 = 35095;
pub const GL_GEOMETRY_OUTPUT_TYPE: u32 = 35096;
pub const GL_MAX_GEOMETRY_UNIFORM_COMPONENTS: u32 = 36319;
pub const GL_MAX_GEOMETRY_OUTPUT_VERTICES: u32 = 36320;
pub const GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS: u32 = 36321;
pub const GL_MAX_VERTEX_OUTPUT_COMPONENTS: u32 = 37154;
pub const GL_MAX_GEOMETRY_INPUT_COMPONENTS: u32 = 37155;
pub const GL_MAX_GEOMETRY_OUTPUT_COMPONENTS: u32 = 37156;
pub const GL_MAX_FRAGMENT_INPUT_COMPONENTS: u32 = 37157;
pub const GL_CONTEXT_PROFILE_MASK: u32 = 37158;
pub const GL_DEPTH_CLAMP: u32 = 34383;
pub const GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION: u32 = 36428;
pub const GL_FIRST_VERTEX_CONVENTION: u32 = 36429;
pub const GL_LAST_VERTEX_CONVENTION: u32 = 36430;
pub const GL_PROVOKING_VERTEX: u32 = 36431;
pub const GL_TEXTURE_CUBE_MAP_SEAMLESS: u32 = 34895;
pub const GL_MAX_SERVER_WAIT_TIMEOUT: u32 = 37137;
pub const GL_OBJECT_TYPE: u32 = 37138;
pub const GL_SYNC_CONDITION: u32 = 37139;
pub const GL_SYNC_STATUS: u32 = 37140;
pub const GL_SYNC_FLAGS: u32 = 37141;
pub const GL_SYNC_FENCE: u32 = 37142;
pub const GL_SYNC_GPU_COMMANDS_COMPLETE: u32 = 37143;
pub const GL_UNSIGNALED: u32 = 37144;
pub const GL_SIGNALED: u32 = 37145;
pub const GL_ALREADY_SIGNALED: u32 = 37146;
pub const GL_TIMEOUT_EXPIRED: u32 = 37147;
pub const GL_CONDITION_SATISFIED: u32 = 37148;
pub const GL_WAIT_FAILED: u32 = 37149;
pub const GL_TIMEOUT_IGNORED: i32 = -1;
pub const GL_SYNC_FLUSH_COMMANDS_BIT: u32 = 1;
pub const GL_SAMPLE_POSITION: u32 = 36432;
pub const GL_SAMPLE_MASK: u32 = 36433;
pub const GL_SAMPLE_MASK_VALUE: u32 = 36434;
pub const GL_MAX_SAMPLE_MASK_WORDS: u32 = 36441;
pub const GL_TEXTURE_2D_MULTISAMPLE: u32 = 37120;
pub const GL_PROXY_TEXTURE_2D_MULTISAMPLE: u32 = 37121;
pub const GL_TEXTURE_2D_MULTISAMPLE_ARRAY: u32 = 37122;
pub const GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY: u32 = 37123;
pub const GL_TEXTURE_BINDING_2D_MULTISAMPLE: u32 = 37124;
pub const GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY: u32 = 37125;
pub const GL_TEXTURE_SAMPLES: u32 = 37126;
pub const GL_TEXTURE_FIXED_SAMPLE_LOCATIONS: u32 = 37127;
pub const GL_SAMPLER_2D_MULTISAMPLE: u32 = 37128;
pub const GL_INT_SAMPLER_2D_MULTISAMPLE: u32 = 37129;
pub const GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE: u32 = 37130;
pub const GL_SAMPLER_2D_MULTISAMPLE_ARRAY: u32 = 37131;
pub const GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: u32 = 37132;
pub const GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: u32 = 37133;
pub const GL_MAX_COLOR_TEXTURE_SAMPLES: u32 = 37134;
pub const GL_MAX_DEPTH_TEXTURE_SAMPLES: u32 = 37135;
pub const GL_MAX_INTEGER_SAMPLES: u32 = 37136;
pub const GL_VERTEX_ATTRIB_ARRAY_DIVISOR: u32 = 35070;
pub const GL_SRC1_COLOR: u32 = 35065;
pub const GL_ONE_MINUS_SRC1_COLOR: u32 = 35066;
pub const GL_ONE_MINUS_SRC1_ALPHA: u32 = 35067;
pub const GL_MAX_DUAL_SOURCE_DRAW_BUFFERS: u32 = 35068;
pub const GL_ANY_SAMPLES_PASSED: u32 = 35887;
pub const GL_SAMPLER_BINDING: u32 = 35097;
pub const GL_RGB10_A2UI: u32 = 36975;
pub const GL_TEXTURE_SWIZZLE_R: u32 = 36418;
pub const GL_TEXTURE_SWIZZLE_G: u32 = 36419;
pub const GL_TEXTURE_SWIZZLE_B: u32 = 36420;
pub const GL_TEXTURE_SWIZZLE_A: u32 = 36421;
pub const GL_TEXTURE_SWIZZLE_RGBA: u32 = 36422;
pub const GL_TIME_ELAPSED: u32 = 35007;
pub const GL_TIMESTAMP: u32 = 36392;
pub const GL_INT_2_10_10_10_REV: u32 = 36255;
pub const GL_VERSION_1_0: u32 = 1;
pub const GL_VERSION_1_1: u32 = 1;
pub const GL_VERSION_1_2: u32 = 1;
pub const GL_VERSION_1_3: u32 = 1;
pub const GL_VERSION_1_4: u32 = 1;
pub const GL_VERSION_1_5: u32 = 1;
pub const GL_VERSION_2_0: u32 = 1;
pub const GL_VERSION_2_1: u32 = 1;
pub const GL_VERSION_3_0: u32 = 1;
pub const GL_VERSION_3_1: u32 = 1;
pub const GL_VERSION_3_2: u32 = 1;
pub const GL_VERSION_3_3: u32 = 1;
pub const GL_MAX_DEBUG_MESSAGE_LENGTH_AMD: u32 = 37187;
pub const GL_MAX_DEBUG_LOGGED_MESSAGES_AMD: u32 = 37188;
pub const GL_DEBUG_LOGGED_MESSAGES_AMD: u32 = 37189;
pub const GL_DEBUG_SEVERITY_HIGH_AMD: u32 = 37190;
pub const GL_DEBUG_SEVERITY_MEDIUM_AMD: u32 = 37191;
pub const GL_DEBUG_SEVERITY_LOW_AMD: u32 = 37192;
pub const GL_DEBUG_CATEGORY_API_ERROR_AMD: u32 = 37193;
pub const GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD: u32 = 37194;
pub const GL_DEBUG_CATEGORY_DEPRECATION_AMD: u32 = 37195;
pub const GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD: u32 = 37196;
pub const GL_DEBUG_CATEGORY_PERFORMANCE_AMD: u32 = 37197;
pub const GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD: u32 = 37198;
pub const GL_DEBUG_CATEGORY_APPLICATION_AMD: u32 = 37199;
pub const GL_DEBUG_CATEGORY_OTHER_AMD: u32 = 37200;
pub const GL_QUERY_BUFFER_AMD: u32 = 37266;
pub const GL_QUERY_BUFFER_BINDING_AMD: u32 = 37267;
pub const GL_QUERY_RESULT_NO_WAIT_AMD: u32 = 37268;
pub const GL_FIXED: u32 = 5132;
pub const GL_IMPLEMENTATION_COLOR_READ_TYPE: u32 = 35738;
pub const GL_IMPLEMENTATION_COLOR_READ_FORMAT: u32 = 35739;
pub const GL_LOW_FLOAT: u32 = 36336;
pub const GL_MEDIUM_FLOAT: u32 = 36337;
pub const GL_HIGH_FLOAT: u32 = 36338;
pub const GL_LOW_INT: u32 = 36339;
pub const GL_MEDIUM_INT: u32 = 36340;
pub const GL_HIGH_INT: u32 = 36341;
pub const GL_SHADER_COMPILER: u32 = 36346;
pub const GL_SHADER_BINARY_FORMATS: u32 = 36344;
pub const GL_NUM_SHADER_BINARY_FORMATS: u32 = 36345;
pub const GL_MAX_VERTEX_UNIFORM_VECTORS: u32 = 36347;
pub const GL_MAX_VARYING_VECTORS: u32 = 36348;
pub const GL_MAX_FRAGMENT_UNIFORM_VECTORS: u32 = 36349;
pub const GL_RGB565: u32 = 36194;
pub const GL_COMPRESSED_RGB8_ETC2: u32 = 37492;
pub const GL_COMPRESSED_SRGB8_ETC2: u32 = 37493;
pub const GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: u32 = 37494;
pub const GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: u32 = 37495;
pub const GL_COMPRESSED_RGBA8_ETC2_EAC: u32 = 37496;
pub const GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: u32 = 37497;
pub const GL_COMPRESSED_R11_EAC: u32 = 37488;
pub const GL_COMPRESSED_SIGNED_R11_EAC: u32 = 37489;
pub const GL_COMPRESSED_RG11_EAC: u32 = 37490;
pub const GL_COMPRESSED_SIGNED_RG11_EAC: u32 = 37491;
pub const GL_PRIMITIVE_RESTART_FIXED_INDEX: u32 = 36201;
pub const GL_ANY_SAMPLES_PASSED_CONSERVATIVE: u32 = 36202;
pub const GL_MAX_ELEMENT_INDEX: u32 = 36203;
pub const GL_MAP_PERSISTENT_BIT: u32 = 64;
pub const GL_MAP_COHERENT_BIT: u32 = 128;
pub const GL_DYNAMIC_STORAGE_BIT: u32 = 256;
pub const GL_CLIENT_STORAGE_BIT: u32 = 512;
pub const GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT: u32 = 16384;
pub const GL_BUFFER_IMMUTABLE_STORAGE: u32 = 33311;
pub const GL_BUFFER_STORAGE_FLAGS: u32 = 33312;
pub const GL_UNPACK_COMPRESSED_BLOCK_WIDTH: u32 = 37159;
pub const GL_UNPACK_COMPRESSED_BLOCK_HEIGHT: u32 = 37160;
pub const GL_UNPACK_COMPRESSED_BLOCK_DEPTH: u32 = 37161;
pub const GL_UNPACK_COMPRESSED_BLOCK_SIZE: u32 = 37162;
pub const GL_PACK_COMPRESSED_BLOCK_WIDTH: u32 = 37163;
pub const GL_PACK_COMPRESSED_BLOCK_HEIGHT: u32 = 37164;
pub const GL_PACK_COMPRESSED_BLOCK_DEPTH: u32 = 37165;
pub const GL_PACK_COMPRESSED_BLOCK_SIZE: u32 = 37166;
pub const GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB: u32 = 33346;
pub const GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB: u32 = 33347;
pub const GL_DEBUG_CALLBACK_FUNCTION_ARB: u32 = 33348;
pub const GL_DEBUG_CALLBACK_USER_PARAM_ARB: u32 = 33349;
pub const GL_DEBUG_SOURCE_API_ARB: u32 = 33350;
pub const GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB: u32 = 33351;
pub const GL_DEBUG_SOURCE_SHADER_COMPILER_ARB: u32 = 33352;
pub const GL_DEBUG_SOURCE_THIRD_PARTY_ARB: u32 = 33353;
pub const GL_DEBUG_SOURCE_APPLICATION_ARB: u32 = 33354;
pub const GL_DEBUG_SOURCE_OTHER_ARB: u32 = 33355;
pub const GL_DEBUG_TYPE_ERROR_ARB: u32 = 33356;
pub const GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB: u32 = 33357;
pub const GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB: u32 = 33358;
pub const GL_DEBUG_TYPE_PORTABILITY_ARB: u32 = 33359;
pub const GL_DEBUG_TYPE_PERFORMANCE_ARB: u32 = 33360;
pub const GL_DEBUG_TYPE_OTHER_ARB: u32 = 33361;
pub const GL_MAX_DEBUG_MESSAGE_LENGTH_ARB: u32 = 37187;
pub const GL_MAX_DEBUG_LOGGED_MESSAGES_ARB: u32 = 37188;
pub const GL_DEBUG_LOGGED_MESSAGES_ARB: u32 = 37189;
pub const GL_DEBUG_SEVERITY_HIGH_ARB: u32 = 37190;
pub const GL_DEBUG_SEVERITY_MEDIUM_ARB: u32 = 37191;
pub const GL_DEBUG_SEVERITY_LOW_ARB: u32 = 37192;
pub const GL_DEPTH_COMPONENT16_ARB: u32 = 33189;
pub const GL_DEPTH_COMPONENT24_ARB: u32 = 33190;
pub const GL_DEPTH_COMPONENT32_ARB: u32 = 33191;
pub const GL_TEXTURE_DEPTH_SIZE_ARB: u32 = 34890;
pub const GL_DEPTH_TEXTURE_MODE_ARB: u32 = 34891;
pub const GL_MAX_DRAW_BUFFERS_ARB: u32 = 34852;
pub const GL_DRAW_BUFFER0_ARB: u32 = 34853;
pub const GL_DRAW_BUFFER1_ARB: u32 = 34854;
pub const GL_DRAW_BUFFER2_ARB: u32 = 34855;
pub const GL_DRAW_BUFFER3_ARB: u32 = 34856;
pub const GL_DRAW_BUFFER4_ARB: u32 = 34857;
pub const GL_DRAW_BUFFER5_ARB: u32 = 34858;
pub const GL_DRAW_BUFFER6_ARB: u32 = 34859;
pub const GL_DRAW_BUFFER7_ARB: u32 = 34860;
pub const GL_DRAW_BUFFER8_ARB: u32 = 34861;
pub const GL_DRAW_BUFFER9_ARB: u32 = 34862;
pub const GL_DRAW_BUFFER10_ARB: u32 = 34863;
pub const GL_DRAW_BUFFER11_ARB: u32 = 34864;
pub const GL_DRAW_BUFFER12_ARB: u32 = 34865;
pub const GL_DRAW_BUFFER13_ARB: u32 = 34866;
pub const GL_DRAW_BUFFER14_ARB: u32 = 34867;
pub const GL_DRAW_BUFFER15_ARB: u32 = 34868;
pub const GL_MAX_UNIFORM_LOCATIONS: u32 = 33390;
pub const GL_FRAGMENT_PROGRAM_ARB: u32 = 34820;
pub const GL_PROGRAM_FORMAT_ASCII_ARB: u32 = 34933;
pub const GL_PROGRAM_LENGTH_ARB: u32 = 34343;
pub const GL_PROGRAM_FORMAT_ARB: u32 = 34934;
pub const GL_PROGRAM_BINDING_ARB: u32 = 34423;
pub const GL_PROGRAM_INSTRUCTIONS_ARB: u32 = 34976;
pub const GL_MAX_PROGRAM_INSTRUCTIONS_ARB: u32 = 34977;
pub const GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB: u32 = 34978;
pub const GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB: u32 = 34979;
pub const GL_PROGRAM_TEMPORARIES_ARB: u32 = 34980;
pub const GL_MAX_PROGRAM_TEMPORARIES_ARB: u32 = 34981;
pub const GL_PROGRAM_NATIVE_TEMPORARIES_ARB: u32 = 34982;
pub const GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB: u32 = 34983;
pub const GL_PROGRAM_PARAMETERS_ARB: u32 = 34984;
pub const GL_MAX_PROGRAM_PARAMETERS_ARB: u32 = 34985;
pub const GL_PROGRAM_NATIVE_PARAMETERS_ARB: u32 = 34986;
pub const GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB: u32 = 34987;
pub const GL_PROGRAM_ATTRIBS_ARB: u32 = 34988;
pub const GL_MAX_PROGRAM_ATTRIBS_ARB: u32 = 34989;
pub const GL_PROGRAM_NATIVE_ATTRIBS_ARB: u32 = 34990;
pub const GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB: u32 = 34991;
pub const GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB: u32 = 34996;
pub const GL_MAX_PROGRAM_ENV_PARAMETERS_ARB: u32 = 34997;
pub const GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB: u32 = 34998;
pub const GL_PROGRAM_ALU_INSTRUCTIONS_ARB: u32 = 34821;
pub const GL_PROGRAM_TEX_INSTRUCTIONS_ARB: u32 = 34822;
pub const GL_PROGRAM_TEX_INDIRECTIONS_ARB: u32 = 34823;
pub const GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB: u32 = 34824;
pub const GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB: u32 = 34825;
pub const GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB: u32 = 34826;
pub const GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB: u32 = 34827;
pub const GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB: u32 = 34828;
pub const GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB: u32 = 34829;
pub const GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB: u32 = 34830;
pub const GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB: u32 = 34831;
pub const GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB: u32 = 34832;
pub const GL_PROGRAM_STRING_ARB: u32 = 34344;
pub const GL_PROGRAM_ERROR_POSITION_ARB: u32 = 34379;
pub const GL_CURRENT_MATRIX_ARB: u32 = 34369;
pub const GL_TRANSPOSE_CURRENT_MATRIX_ARB: u32 = 34999;
pub const GL_CURRENT_MATRIX_STACK_DEPTH_ARB: u32 = 34368;
pub const GL_MAX_PROGRAM_MATRICES_ARB: u32 = 34351;
pub const GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB: u32 = 34350;
pub const GL_MAX_TEXTURE_COORDS_ARB: u32 = 34929;
pub const GL_MAX_TEXTURE_IMAGE_UNITS_ARB: u32 = 34930;
pub const GL_PROGRAM_ERROR_STRING_ARB: u32 = 34932;
pub const GL_MATRIX0_ARB: u32 = 35008;
pub const GL_MATRIX1_ARB: u32 = 35009;
pub const GL_MATRIX2_ARB: u32 = 35010;
pub const GL_MATRIX3_ARB: u32 = 35011;
pub const GL_MATRIX4_ARB: u32 = 35012;
pub const GL_MATRIX5_ARB: u32 = 35013;
pub const GL_MATRIX6_ARB: u32 = 35014;
pub const GL_MATRIX7_ARB: u32 = 35015;
pub const GL_MATRIX8_ARB: u32 = 35016;
pub const GL_MATRIX9_ARB: u32 = 35017;
pub const GL_MATRIX10_ARB: u32 = 35018;
pub const GL_MATRIX11_ARB: u32 = 35019;
pub const GL_MATRIX12_ARB: u32 = 35020;
pub const GL_MATRIX13_ARB: u32 = 35021;
pub const GL_MATRIX14_ARB: u32 = 35022;
pub const GL_MATRIX15_ARB: u32 = 35023;
pub const GL_MATRIX16_ARB: u32 = 35024;
pub const GL_MATRIX17_ARB: u32 = 35025;
pub const GL_MATRIX18_ARB: u32 = 35026;
pub const GL_MATRIX19_ARB: u32 = 35027;
pub const GL_MATRIX20_ARB: u32 = 35028;
pub const GL_MATRIX21_ARB: u32 = 35029;
pub const GL_MATRIX22_ARB: u32 = 35030;
pub const GL_MATRIX23_ARB: u32 = 35031;
pub const GL_MATRIX24_ARB: u32 = 35032;
pub const GL_MATRIX25_ARB: u32 = 35033;
pub const GL_MATRIX26_ARB: u32 = 35034;
pub const GL_MATRIX27_ARB: u32 = 35035;
pub const GL_MATRIX28_ARB: u32 = 35036;
pub const GL_MATRIX29_ARB: u32 = 35037;
pub const GL_MATRIX30_ARB: u32 = 35038;
pub const GL_MATRIX31_ARB: u32 = 35039;
pub const GL_FRAGMENT_SHADER_ARB: u32 = 35632;
pub const GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB: u32 = 35657;
pub const GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB: u32 = 35723;
pub const GL_MULTISAMPLE_ARB: u32 = 32925;
pub const GL_SAMPLE_ALPHA_TO_COVERAGE_ARB: u32 = 32926;
pub const GL_SAMPLE_ALPHA_TO_ONE_ARB: u32 = 32927;
pub const GL_SAMPLE_COVERAGE_ARB: u32 = 32928;
pub const GL_SAMPLE_BUFFERS_ARB: u32 = 32936;
pub const GL_SAMPLES_ARB: u32 = 32937;
pub const GL_SAMPLE_COVERAGE_VALUE_ARB: u32 = 32938;
pub const GL_SAMPLE_COVERAGE_INVERT_ARB: u32 = 32939;
pub const GL_MULTISAMPLE_BIT_ARB: u32 = 536870912;
pub const GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB: u32 = 37693;
pub const GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB: u32 = 37694;
pub const GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB: u32 = 37695;
pub const GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB: u32 = 37696;
pub const GL_SAMPLE_LOCATION_ARB: u32 = 36432;
pub const GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB: u32 = 37697;
pub const GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB: u32 = 37698;
pub const GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB: u32 = 37699;
pub const GL_COMPRESSED_ALPHA_ARB: u32 = 34025;
pub const GL_COMPRESSED_LUMINANCE_ARB: u32 = 34026;
pub const GL_COMPRESSED_LUMINANCE_ALPHA_ARB: u32 = 34027;
pub const GL_COMPRESSED_INTENSITY_ARB: u32 = 34028;
pub const GL_COMPRESSED_RGB_ARB: u32 = 34029;
pub const GL_COMPRESSED_RGBA_ARB: u32 = 34030;
pub const GL_TEXTURE_COMPRESSION_HINT_ARB: u32 = 34031;
pub const GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB: u32 = 34464;
pub const GL_TEXTURE_COMPRESSED_ARB: u32 = 34465;
pub const GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB: u32 = 34466;
pub const GL_COMPRESSED_TEXTURE_FORMATS_ARB: u32 = 34467;
pub const GL_TEXTURE_RED_TYPE_ARB: u32 = 35856;
pub const GL_TEXTURE_GREEN_TYPE_ARB: u32 = 35857;
pub const GL_TEXTURE_BLUE_TYPE_ARB: u32 = 35858;
pub const GL_TEXTURE_ALPHA_TYPE_ARB: u32 = 35859;
pub const GL_TEXTURE_LUMINANCE_TYPE_ARB: u32 = 35860;
pub const GL_TEXTURE_INTENSITY_TYPE_ARB: u32 = 35861;
pub const GL_TEXTURE_DEPTH_TYPE_ARB: u32 = 35862;
pub const GL_UNSIGNED_NORMALIZED_ARB: u32 = 35863;
pub const GL_RGBA32F_ARB: u32 = 34836;
pub const GL_RGB32F_ARB: u32 = 34837;
pub const GL_ALPHA32F_ARB: u32 = 34838;
pub const GL_INTENSITY32F_ARB: u32 = 34839;
pub const GL_LUMINANCE32F_ARB: u32 = 34840;
pub const GL_LUMINANCE_ALPHA32F_ARB: u32 = 34841;
pub const GL_RGBA16F_ARB: u32 = 34842;
pub const GL_RGB16F_ARB: u32 = 34843;
pub const GL_ALPHA16F_ARB: u32 = 34844;
pub const GL_INTENSITY16F_ARB: u32 = 34845;
pub const GL_LUMINANCE16F_ARB: u32 = 34846;
pub const GL_LUMINANCE_ALPHA16F_ARB: u32 = 34847;
pub const GL_VERTEX_ATTRIB_BINDING: u32 = 33492;
pub const GL_VERTEX_ATTRIB_RELATIVE_OFFSET: u32 = 33493;
pub const GL_VERTEX_BINDING_DIVISOR: u32 = 33494;
pub const GL_VERTEX_BINDING_OFFSET: u32 = 33495;
pub const GL_VERTEX_BINDING_STRIDE: u32 = 33496;
pub const GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET: u32 = 33497;
pub const GL_MAX_VERTEX_ATTRIB_BINDINGS: u32 = 33498;
pub const GL_BUFFER_SIZE_ARB: u32 = 34660;
pub const GL_BUFFER_USAGE_ARB: u32 = 34661;
pub const GL_ARRAY_BUFFER_ARB: u32 = 34962;
pub const GL_ELEMENT_ARRAY_BUFFER_ARB: u32 = 34963;
pub const GL_ARRAY_BUFFER_BINDING_ARB: u32 = 34964;
pub const GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB: u32 = 34965;
pub const GL_VERTEX_ARRAY_BUFFER_BINDING_ARB: u32 = 34966;
pub const GL_NORMAL_ARRAY_BUFFER_BINDING_ARB: u32 = 34967;
pub const GL_COLOR_ARRAY_BUFFER_BINDING_ARB: u32 = 34968;
pub const GL_INDEX_ARRAY_BUFFER_BINDING_ARB: u32 = 34969;
pub const GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB: u32 = 34970;
pub const GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB: u32 = 34971;
pub const GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB: u32 = 34972;
pub const GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB: u32 = 34973;
pub const GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB: u32 = 34974;
pub const GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB: u32 = 34975;
pub const GL_READ_ONLY_ARB: u32 = 35000;
pub const GL_WRITE_ONLY_ARB: u32 = 35001;
pub const GL_READ_WRITE_ARB: u32 = 35002;
pub const GL_BUFFER_ACCESS_ARB: u32 = 35003;
pub const GL_BUFFER_MAPPED_ARB: u32 = 35004;
pub const GL_BUFFER_MAP_POINTER_ARB: u32 = 35005;
pub const GL_STREAM_DRAW_ARB: u32 = 35040;
pub const GL_STREAM_READ_ARB: u32 = 35041;
pub const GL_STREAM_COPY_ARB: u32 = 35042;
pub const GL_STATIC_DRAW_ARB: u32 = 35044;
pub const GL_STATIC_READ_ARB: u32 = 35045;
pub const GL_STATIC_COPY_ARB: u32 = 35046;
pub const GL_DYNAMIC_DRAW_ARB: u32 = 35048;
pub const GL_DYNAMIC_READ_ARB: u32 = 35049;
pub const GL_DYNAMIC_COPY_ARB: u32 = 35050;
pub const GL_COLOR_SUM_ARB: u32 = 33880;
pub const GL_VERTEX_PROGRAM_ARB: u32 = 34336;
pub const GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB: u32 = 34338;
pub const GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB: u32 = 34339;
pub const GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB: u32 = 34340;
pub const GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB: u32 = 34341;
pub const GL_CURRENT_VERTEX_ATTRIB_ARB: u32 = 34342;
pub const GL_VERTEX_PROGRAM_POINT_SIZE_ARB: u32 = 34370;
pub const GL_VERTEX_PROGRAM_TWO_SIDE_ARB: u32 = 34371;
pub const GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB: u32 = 34373;
pub const GL_MAX_VERTEX_ATTRIBS_ARB: u32 = 34921;
pub const GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB: u32 = 34922;
pub const GL_PROGRAM_ADDRESS_REGISTERS_ARB: u32 = 34992;
pub const GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB: u32 = 34993;
pub const GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB: u32 = 34994;
pub const GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB: u32 = 34995;
pub const GL_VERTEX_SHADER_ARB: u32 = 35633;
pub const GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB: u32 = 35658;
pub const GL_MAX_VARYING_FLOATS_ARB: u32 = 35659;
pub const GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB: u32 = 35660;
pub const GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB: u32 = 35661;
pub const GL_OBJECT_ACTIVE_ATTRIBUTES_ARB: u32 = 35721;
pub const GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB: u32 = 35722;
pub const GL_FLOAT_VEC2_ARB: u32 = 35664;
pub const GL_FLOAT_VEC3_ARB: u32 = 35665;
pub const GL_FLOAT_VEC4_ARB: u32 = 35666;
pub const GL_FLOAT_MAT2_ARB: u32 = 35674;
pub const GL_FLOAT_MAT3_ARB: u32 = 35675;
pub const GL_FLOAT_MAT4_ARB: u32 = 35676;
pub const GL_ELEMENT_ARRAY_ATI: u32 = 34664;
pub const GL_ELEMENT_ARRAY_TYPE_ATI: u32 = 34665;
pub const GL_ELEMENT_ARRAY_POINTER_ATI: u32 = 34666;
pub const GL_FRAGMENT_SHADER_ATI: u32 = 35104;
pub const GL_REG_0_ATI: u32 = 35105;
pub const GL_REG_1_ATI: u32 = 35106;
pub const GL_REG_2_ATI: u32 = 35107;
pub const GL_REG_3_ATI: u32 = 35108;
pub const GL_REG_4_ATI: u32 = 35109;
pub const GL_REG_5_ATI: u32 = 35110;
pub const GL_REG_6_ATI: u32 = 35111;
pub const GL_REG_7_ATI: u32 = 35112;
pub const GL_REG_8_ATI: u32 = 35113;
pub const GL_REG_9_ATI: u32 = 35114;
pub const GL_REG_10_ATI: u32 = 35115;
pub const GL_REG_11_ATI: u32 = 35116;
pub const GL_REG_12_ATI: u32 = 35117;
pub const GL_REG_13_ATI: u32 = 35118;
pub const GL_REG_14_ATI: u32 = 35119;
pub const GL_REG_15_ATI: u32 = 35120;
pub const GL_REG_16_ATI: u32 = 35121;
pub const GL_REG_17_ATI: u32 = 35122;
pub const GL_REG_18_ATI: u32 = 35123;
pub const GL_REG_19_ATI: u32 = 35124;
pub const GL_REG_20_ATI: u32 = 35125;
pub const GL_REG_21_ATI: u32 = 35126;
pub const GL_REG_22_ATI: u32 = 35127;
pub const GL_REG_23_ATI: u32 = 35128;
pub const GL_REG_24_ATI: u32 = 35129;
pub const GL_REG_25_ATI: u32 = 35130;
pub const GL_REG_26_ATI: u32 = 35131;
pub const GL_REG_27_ATI: u32 = 35132;
pub const GL_REG_28_ATI: u32 = 35133;
pub const GL_REG_29_ATI: u32 = 35134;
pub const GL_REG_30_ATI: u32 = 35135;
pub const GL_REG_31_ATI: u32 = 35136;
pub const GL_CON_0_ATI: u32 = 35137;
pub const GL_CON_1_ATI: u32 = 35138;
pub const GL_CON_2_ATI: u32 = 35139;
pub const GL_CON_3_ATI: u32 = 35140;
pub const GL_CON_4_ATI: u32 = 35141;
pub const GL_CON_5_ATI: u32 = 35142;
pub const GL_CON_6_ATI: u32 = 35143;
pub const GL_CON_7_ATI: u32 = 35144;
pub const GL_CON_8_ATI: u32 = 35145;
pub const GL_CON_9_ATI: u32 = 35146;
pub const GL_CON_10_ATI: u32 = 35147;
pub const GL_CON_11_ATI: u32 = 35148;
pub const GL_CON_12_ATI: u32 = 35149;
pub const GL_CON_13_ATI: u32 = 35150;
pub const GL_CON_14_ATI: u32 = 35151;
pub const GL_CON_15_ATI: u32 = 35152;
pub const GL_CON_16_ATI: u32 = 35153;
pub const GL_CON_17_ATI: u32 = 35154;
pub const GL_CON_18_ATI: u32 = 35155;
pub const GL_CON_19_ATI: u32 = 35156;
pub const GL_CON_20_ATI: u32 = 35157;
pub const GL_CON_21_ATI: u32 = 35158;
pub const GL_CON_22_ATI: u32 = 35159;
pub const GL_CON_23_ATI: u32 = 35160;
pub const GL_CON_24_ATI: u32 = 35161;
pub const GL_CON_25_ATI: u32 = 35162;
pub const GL_CON_26_ATI: u32 = 35163;
pub const GL_CON_27_ATI: u32 = 35164;
pub const GL_CON_28_ATI: u32 = 35165;
pub const GL_CON_29_ATI: u32 = 35166;
pub const GL_CON_30_ATI: u32 = 35167;
pub const GL_CON_31_ATI: u32 = 35168;
pub const GL_MOV_ATI: u32 = 35169;
pub const GL_ADD_ATI: u32 = 35171;
pub const GL_MUL_ATI: u32 = 35172;
pub const GL_SUB_ATI: u32 = 35173;
pub const GL_DOT3_ATI: u32 = 35174;
pub const GL_DOT4_ATI: u32 = 35175;
pub const GL_MAD_ATI: u32 = 35176;
pub const GL_LERP_ATI: u32 = 35177;
pub const GL_CND_ATI: u32 = 35178;
pub const GL_CND0_ATI: u32 = 35179;
pub const GL_DOT2_ADD_ATI: u32 = 35180;
pub const GL_SECONDARY_INTERPOLATOR_ATI: u32 = 35181;
pub const GL_NUM_FRAGMENT_REGISTERS_ATI: u32 = 35182;
pub const GL_NUM_FRAGMENT_CONSTANTS_ATI: u32 = 35183;
pub const GL_NUM_PASSES_ATI: u32 = 35184;
pub const GL_NUM_INSTRUCTIONS_PER_PASS_ATI: u32 = 35185;
pub const GL_NUM_INSTRUCTIONS_TOTAL_ATI: u32 = 35186;
pub const GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI: u32 = 35187;
pub const GL_NUM_LOOPBACK_COMPONENTS_ATI: u32 = 35188;
pub const GL_COLOR_ALPHA_PAIRING_ATI: u32 = 35189;
pub const GL_SWIZZLE_STR_ATI: u32 = 35190;
pub const GL_SWIZZLE_STQ_ATI: u32 = 35191;
pub const GL_SWIZZLE_STR_DR_ATI: u32 = 35192;
pub const GL_SWIZZLE_STQ_DQ_ATI: u32 = 35193;
pub const GL_SWIZZLE_STRQ_ATI: u32 = 35194;
pub const GL_SWIZZLE_STRQ_DQ_ATI: u32 = 35195;
pub const GL_RED_BIT_ATI: u32 = 1;
pub const GL_GREEN_BIT_ATI: u32 = 2;
pub const GL_BLUE_BIT_ATI: u32 = 4;
pub const GL_2X_BIT_ATI: u32 = 1;
pub const GL_4X_BIT_ATI: u32 = 2;
pub const GL_8X_BIT_ATI: u32 = 4;
pub const GL_HALF_BIT_ATI: u32 = 8;
pub const GL_QUARTER_BIT_ATI: u32 = 16;
pub const GL_EIGHTH_BIT_ATI: u32 = 32;
pub const GL_SATURATE_BIT_ATI: u32 = 64;
pub const GL_COMP_BIT_ATI: u32 = 2;
pub const GL_NEGATE_BIT_ATI: u32 = 4;
pub const GL_BIAS_BIT_ATI: u32 = 8;
pub const GL_STATIC_ATI: u32 = 34656;
pub const GL_DYNAMIC_ATI: u32 = 34657;
pub const GL_PRESERVE_ATI: u32 = 34658;
pub const GL_DISCARD_ATI: u32 = 34659;
pub const GL_OBJECT_BUFFER_SIZE_ATI: u32 = 34660;
pub const GL_OBJECT_BUFFER_USAGE_ATI: u32 = 34661;
pub const GL_ARRAY_OBJECT_BUFFER_ATI: u32 = 34662;
pub const GL_ARRAY_OBJECT_OFFSET_ATI: u32 = 34663;
pub const GL_CONSTANT_COLOR_EXT: u32 = 32769;
pub const GL_ONE_MINUS_CONSTANT_COLOR_EXT: u32 = 32770;
pub const GL_CONSTANT_ALPHA_EXT: u32 = 32771;
pub const GL_ONE_MINUS_CONSTANT_ALPHA_EXT: u32 = 32772;
pub const GL_BLEND_COLOR_EXT: u32 = 32773;
pub const GL_BLEND_EQUATION_RGB_EXT: u32 = 32777;
pub const GL_BLEND_EQUATION_ALPHA_EXT: u32 = 34877;
pub const GL_BLEND_DST_RGB_EXT: u32 = 32968;
pub const GL_BLEND_SRC_RGB_EXT: u32 = 32969;
pub const GL_BLEND_DST_ALPHA_EXT: u32 = 32970;
pub const GL_BLEND_SRC_ALPHA_EXT: u32 = 32971;
pub const GL_READ_FRAMEBUFFER_EXT: u32 = 36008;
pub const GL_DRAW_FRAMEBUFFER_EXT: u32 = 36009;
pub const GL_DRAW_FRAMEBUFFER_BINDING_EXT: u32 = 36006;
pub const GL_READ_FRAMEBUFFER_BINDING_EXT: u32 = 36010;
pub const GL_RENDERBUFFER_SAMPLES_EXT: u32 = 36011;
pub const GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT: u32 = 36182;
pub const GL_MAX_SAMPLES_EXT: u32 = 36183;
pub const GL_SCALED_RESOLVE_FASTEST_EXT: u32 = 37050;
pub const GL_SCALED_RESOLVE_NICEST_EXT: u32 = 37051;
pub const GL_INVALID_FRAMEBUFFER_OPERATION_EXT: u32 = 1286;
pub const GL_MAX_RENDERBUFFER_SIZE_EXT: u32 = 34024;
pub const GL_FRAMEBUFFER_BINDING_EXT: u32 = 36006;
pub const GL_RENDERBUFFER_BINDING_EXT: u32 = 36007;
pub const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT: u32 = 36048;
pub const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT: u32 = 36049;
pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT: u32 = 36050;
pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT: u32 = 36051;
pub const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT: u32 = 36052;
pub const GL_FRAMEBUFFER_COMPLETE_EXT: u32 = 36053;
pub const GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT: u32 = 36054;
pub const GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT: u32 = 36055;
pub const GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT: u32 = 36057;
pub const GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT: u32 = 36058;
pub const GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT: u32 = 36059;
pub const GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT: u32 = 36060;
pub const GL_FRAMEBUFFER_UNSUPPORTED_EXT: u32 = 36061;
pub const GL_MAX_COLOR_ATTACHMENTS_EXT: u32 = 36063;
pub const GL_COLOR_ATTACHMENT0_EXT: u32 = 36064;
pub const GL_COLOR_ATTACHMENT1_EXT: u32 = 36065;
pub const GL_COLOR_ATTACHMENT2_EXT: u32 = 36066;
pub const GL_COLOR_ATTACHMENT3_EXT: u32 = 36067;
pub const GL_COLOR_ATTACHMENT4_EXT: u32 = 36068;
pub const GL_COLOR_ATTACHMENT5_EXT: u32 = 36069;
pub const GL_COLOR_ATTACHMENT6_EXT: u32 = 36070;
pub const GL_COLOR_ATTACHMENT7_EXT: u32 = 36071;
pub const GL_COLOR_ATTACHMENT8_EXT: u32 = 36072;
pub const GL_COLOR_ATTACHMENT9_EXT: u32 = 36073;
pub const GL_COLOR_ATTACHMENT10_EXT: u32 = 36074;
pub const GL_COLOR_ATTACHMENT11_EXT: u32 = 36075;
pub const GL_COLOR_ATTACHMENT12_EXT: u32 = 36076;
pub const GL_COLOR_ATTACHMENT13_EXT: u32 = 36077;
pub const GL_COLOR_ATTACHMENT14_EXT: u32 = 36078;
pub const GL_COLOR_ATTACHMENT15_EXT: u32 = 36079;
pub const GL_DEPTH_ATTACHMENT_EXT: u32 = 36096;
pub const GL_STENCIL_ATTACHMENT_EXT: u32 = 36128;
pub const GL_FRAMEBUFFER_EXT: u32 = 36160;
pub const GL_RENDERBUFFER_EXT: u32 = 36161;
pub const GL_RENDERBUFFER_WIDTH_EXT: u32 = 36162;
pub const GL_RENDERBUFFER_HEIGHT_EXT: u32 = 36163;
pub const GL_RENDERBUFFER_INTERNAL_FORMAT_EXT: u32 = 36164;
pub const GL_STENCIL_INDEX1_EXT: u32 = 36166;
pub const GL_STENCIL_INDEX4_EXT: u32 = 36167;
pub const GL_STENCIL_INDEX8_EXT: u32 = 36168;
pub const GL_STENCIL_INDEX16_EXT: u32 = 36169;
pub const GL_RENDERBUFFER_RED_SIZE_EXT: u32 = 36176;
pub const GL_RENDERBUFFER_GREEN_SIZE_EXT: u32 = 36177;
pub const GL_RENDERBUFFER_BLUE_SIZE_EXT: u32 = 36178;
pub const GL_RENDERBUFFER_ALPHA_SIZE_EXT: u32 = 36179;
pub const GL_RENDERBUFFER_DEPTH_SIZE_EXT: u32 = 36180;
pub const GL_RENDERBUFFER_STENCIL_SIZE_EXT: u32 = 36181;
pub const GL_FRAMEBUFFER_SRGB_EXT: u32 = 36281;
pub const GL_FRAMEBUFFER_SRGB_CAPABLE_EXT: u32 = 36282;
pub const GL_IUI_V2F_EXT: u32 = 33197;
pub const GL_IUI_V3F_EXT: u32 = 33198;
pub const GL_IUI_N3F_V2F_EXT: u32 = 33199;
pub const GL_IUI_N3F_V3F_EXT: u32 = 33200;
pub const GL_T2F_IUI_V2F_EXT: u32 = 33201;
pub const GL_T2F_IUI_V3F_EXT: u32 = 33202;
pub const GL_T2F_IUI_N3F_V2F_EXT: u32 = 33203;
pub const GL_T2F_IUI_N3F_V3F_EXT: u32 = 33204;
pub const GL_ALPHA4_EXT: u32 = 32827;
pub const GL_ALPHA8_EXT: u32 = 32828;
pub const GL_ALPHA12_EXT: u32 = 32829;
pub const GL_ALPHA16_EXT: u32 = 32830;
pub const GL_LUMINANCE4_EXT: u32 = 32831;
pub const GL_LUMINANCE8_EXT: u32 = 32832;
pub const GL_LUMINANCE12_EXT: u32 = 32833;
pub const GL_LUMINANCE16_EXT: u32 = 32834;
pub const GL_LUMINANCE4_ALPHA4_EXT: u32 = 32835;
pub const GL_LUMINANCE6_ALPHA2_EXT: u32 = 32836;
pub const GL_LUMINANCE8_ALPHA8_EXT: u32 = 32837;
pub const GL_LUMINANCE12_ALPHA4_EXT: u32 = 32838;
pub const GL_LUMINANCE12_ALPHA12_EXT: u32 = 32839;
pub const GL_LUMINANCE16_ALPHA16_EXT: u32 = 32840;
pub const GL_INTENSITY_EXT: u32 = 32841;
pub const GL_INTENSITY4_EXT: u32 = 32842;
pub const GL_INTENSITY8_EXT: u32 = 32843;
pub const GL_INTENSITY12_EXT: u32 = 32844;
pub const GL_INTENSITY16_EXT: u32 = 32845;
pub const GL_RGB2_EXT: u32 = 32846;
pub const GL_RGB4_EXT: u32 = 32847;
pub const GL_RGB5_EXT: u32 = 32848;
pub const GL_RGB8_EXT: u32 = 32849;
pub const GL_RGB10_EXT: u32 = 32850;
pub const GL_RGB12_EXT: u32 = 32851;
pub const GL_RGB16_EXT: u32 = 32852;
pub const GL_RGBA2_EXT: u32 = 32853;
pub const GL_RGBA4_EXT: u32 = 32854;
pub const GL_RGB5_A1_EXT: u32 = 32855;
pub const GL_RGBA8_EXT: u32 = 32856;
pub const GL_RGB10_A2_EXT: u32 = 32857;
pub const GL_RGBA12_EXT: u32 = 32858;
pub const GL_RGBA16_EXT: u32 = 32859;
pub const GL_TEXTURE_RED_SIZE_EXT: u32 = 32860;
pub const GL_TEXTURE_GREEN_SIZE_EXT: u32 = 32861;
pub const GL_TEXTURE_BLUE_SIZE_EXT: u32 = 32862;
pub const GL_TEXTURE_ALPHA_SIZE_EXT: u32 = 32863;
pub const GL_TEXTURE_LUMINANCE_SIZE_EXT: u32 = 32864;
pub const GL_TEXTURE_INTENSITY_SIZE_EXT: u32 = 32865;
pub const GL_REPLACE_EXT: u32 = 32866;
pub const GL_PROXY_TEXTURE_1D_EXT: u32 = 32867;
pub const GL_PROXY_TEXTURE_2D_EXT: u32 = 32868;
pub const GL_TEXTURE_TOO_LARGE_EXT: u32 = 32869;
pub const GL_COMPRESSED_RGB_S3TC_DXT1_EXT: u32 = 33776;
pub const GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: u32 = 33777;
pub const GL_COMPRESSED_RGBA_S3TC_DXT3_EXT: u32 = 33778;
pub const GL_COMPRESSED_RGBA_S3TC_DXT5_EXT: u32 = 33779;
pub const GL_SRGB_EXT: u32 = 35904;
pub const GL_SRGB8_EXT: u32 = 35905;
pub const GL_SRGB_ALPHA_EXT: u32 = 35906;
pub const GL_SRGB8_ALPHA8_EXT: u32 = 35907;
pub const GL_SLUMINANCE_ALPHA_EXT: u32 = 35908;
pub const GL_SLUMINANCE8_ALPHA8_EXT: u32 = 35909;
pub const GL_SLUMINANCE_EXT: u32 = 35910;
pub const GL_SLUMINANCE8_EXT: u32 = 35911;
pub const GL_COMPRESSED_SRGB_EXT: u32 = 35912;
pub const GL_COMPRESSED_SRGB_ALPHA_EXT: u32 = 35913;
pub const GL_COMPRESSED_SLUMINANCE_EXT: u32 = 35914;
pub const GL_COMPRESSED_SLUMINANCE_ALPHA_EXT: u32 = 35915;
pub const GL_COMPRESSED_SRGB_S3TC_DXT1_EXT: u32 = 35916;
pub const GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: u32 = 35917;
pub const GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: u32 = 35918;
pub const GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: u32 = 35919;
pub const GL_TEXTURE_SWIZZLE_R_EXT: u32 = 36418;
pub const GL_TEXTURE_SWIZZLE_G_EXT: u32 = 36419;
pub const GL_TEXTURE_SWIZZLE_B_EXT: u32 = 36420;
pub const GL_TEXTURE_SWIZZLE_A_EXT: u32 = 36421;
pub const GL_TEXTURE_SWIZZLE_RGBA_EXT: u32 = 36422;
pub const GL_VERTEX_ARRAY_EXT: u32 = 32884;
pub const GL_NORMAL_ARRAY_EXT: u32 = 32885;
pub const GL_COLOR_ARRAY_EXT: u32 = 32886;
pub const GL_INDEX_ARRAY_EXT: u32 = 32887;
pub const GL_TEXTURE_COORD_ARRAY_EXT: u32 = 32888;
pub const GL_EDGE_FLAG_ARRAY_EXT: u32 = 32889;
pub const GL_VERTEX_ARRAY_SIZE_EXT: u32 = 32890;
pub const GL_VERTEX_ARRAY_TYPE_EXT: u32 = 32891;
pub const GL_VERTEX_ARRAY_STRIDE_EXT: u32 = 32892;
pub const GL_VERTEX_ARRAY_COUNT_EXT: u32 = 32893;
pub const GL_NORMAL_ARRAY_TYPE_EXT: u32 = 32894;
pub const GL_NORMAL_ARRAY_STRIDE_EXT: u32 = 32895;
pub const GL_NORMAL_ARRAY_COUNT_EXT: u32 = 32896;
pub const GL_COLOR_ARRAY_SIZE_EXT: u32 = 32897;
pub const GL_COLOR_ARRAY_TYPE_EXT: u32 = 32898;
pub const GL_COLOR_ARRAY_STRIDE_EXT: u32 = 32899;
pub const GL_COLOR_ARRAY_COUNT_EXT: u32 = 32900;
pub const GL_INDEX_ARRAY_TYPE_EXT: u32 = 32901;
pub const GL_INDEX_ARRAY_STRIDE_EXT: u32 = 32902;
pub const GL_INDEX_ARRAY_COUNT_EXT: u32 = 32903;
pub const GL_TEXTURE_COORD_ARRAY_SIZE_EXT: u32 = 32904;
pub const GL_TEXTURE_COORD_ARRAY_TYPE_EXT: u32 = 32905;
pub const GL_TEXTURE_COORD_ARRAY_STRIDE_EXT: u32 = 32906;
pub const GL_TEXTURE_COORD_ARRAY_COUNT_EXT: u32 = 32907;
pub const GL_EDGE_FLAG_ARRAY_STRIDE_EXT: u32 = 32908;
pub const GL_EDGE_FLAG_ARRAY_COUNT_EXT: u32 = 32909;
pub const GL_VERTEX_ARRAY_POINTER_EXT: u32 = 32910;
pub const GL_NORMAL_ARRAY_POINTER_EXT: u32 = 32911;
pub const GL_COLOR_ARRAY_POINTER_EXT: u32 = 32912;
pub const GL_INDEX_ARRAY_POINTER_EXT: u32 = 32913;
pub const GL_TEXTURE_COORD_ARRAY_POINTER_EXT: u32 = 32914;
pub const GL_EDGE_FLAG_ARRAY_POINTER_EXT: u32 = 32915;
pub const GL_VERTEX_SHADER_EXT: u32 = 34688;
pub const GL_VERTEX_SHADER_BINDING_EXT: u32 = 34689;
pub const GL_OP_INDEX_EXT: u32 = 34690;
pub const GL_OP_NEGATE_EXT: u32 = 34691;
pub const GL_OP_DOT3_EXT: u32 = 34692;
pub const GL_OP_DOT4_EXT: u32 = 34693;
pub const GL_OP_MUL_EXT: u32 = 34694;
pub const GL_OP_ADD_EXT: u32 = 34695;
pub const GL_OP_MADD_EXT: u32 = 34696;
pub const GL_OP_FRAC_EXT: u32 = 34697;
pub const GL_OP_MAX_EXT: u32 = 34698;
pub const GL_OP_MIN_EXT: u32 = 34699;
pub const GL_OP_SET_GE_EXT: u32 = 34700;
pub const GL_OP_SET_LT_EXT: u32 = 34701;
pub const GL_OP_CLAMP_EXT: u32 = 34702;
pub const GL_OP_FLOOR_EXT: u32 = 34703;
pub const GL_OP_ROUND_EXT: u32 = 34704;
pub const GL_OP_EXP_BASE_2_EXT: u32 = 34705;
pub const GL_OP_LOG_BASE_2_EXT: u32 = 34706;
pub const GL_OP_POWER_EXT: u32 = 34707;
pub const GL_OP_RECIP_EXT: u32 = 34708;
pub const GL_OP_RECIP_SQRT_EXT: u32 = 34709;
pub const GL_OP_SUB_EXT: u32 = 34710;
pub const GL_OP_CROSS_PRODUCT_EXT: u32 = 34711;
pub const GL_OP_MULTIPLY_MATRIX_EXT: u32 = 34712;
pub const GL_OP_MOV_EXT: u32 = 34713;
pub const GL_OUTPUT_VERTEX_EXT: u32 = 34714;
pub const GL_OUTPUT_COLOR0_EXT: u32 = 34715;
pub const GL_OUTPUT_COLOR1_EXT: u32 = 34716;
pub const GL_OUTPUT_TEXTURE_COORD0_EXT: u32 = 34717;
pub const GL_OUTPUT_TEXTURE_COORD1_EXT: u32 = 34718;
pub const GL_OUTPUT_TEXTURE_COORD2_EXT: u32 = 34719;
pub const GL_OUTPUT_TEXTURE_COORD3_EXT: u32 = 34720;
pub const GL_OUTPUT_TEXTURE_COORD4_EXT: u32 = 34721;
pub const GL_OUTPUT_TEXTURE_COORD5_EXT: u32 = 34722;
pub const GL_OUTPUT_TEXTURE_COORD6_EXT: u32 = 34723;
pub const GL_OUTPUT_TEXTURE_COORD7_EXT: u32 = 34724;
pub const GL_OUTPUT_TEXTURE_COORD8_EXT: u32 = 34725;
pub const GL_OUTPUT_TEXTURE_COORD9_EXT: u32 = 34726;
pub const GL_OUTPUT_TEXTURE_COORD10_EXT: u32 = 34727;
pub const GL_OUTPUT_TEXTURE_COORD11_EXT: u32 = 34728;
pub const GL_OUTPUT_TEXTURE_COORD12_EXT: u32 = 34729;
pub const GL_OUTPUT_TEXTURE_COORD13_EXT: u32 = 34730;
pub const GL_OUTPUT_TEXTURE_COORD14_EXT: u32 = 34731;
pub const GL_OUTPUT_TEXTURE_COORD15_EXT: u32 = 34732;
pub const GL_OUTPUT_TEXTURE_COORD16_EXT: u32 = 34733;
pub const GL_OUTPUT_TEXTURE_COORD17_EXT: u32 = 34734;
pub const GL_OUTPUT_TEXTURE_COORD18_EXT: u32 = 34735;
pub const GL_OUTPUT_TEXTURE_COORD19_EXT: u32 = 34736;
pub const GL_OUTPUT_TEXTURE_COORD20_EXT: u32 = 34737;
pub const GL_OUTPUT_TEXTURE_COORD21_EXT: u32 = 34738;
pub const GL_OUTPUT_TEXTURE_COORD22_EXT: u32 = 34739;
pub const GL_OUTPUT_TEXTURE_COORD23_EXT: u32 = 34740;
pub const GL_OUTPUT_TEXTURE_COORD24_EXT: u32 = 34741;
pub const GL_OUTPUT_TEXTURE_COORD25_EXT: u32 = 34742;
pub const GL_OUTPUT_TEXTURE_COORD26_EXT: u32 = 34743;
pub const GL_OUTPUT_TEXTURE_COORD27_EXT: u32 = 34744;
pub const GL_OUTPUT_TEXTURE_COORD28_EXT: u32 = 34745;
pub const GL_OUTPUT_TEXTURE_COORD29_EXT: u32 = 34746;
pub const GL_OUTPUT_TEXTURE_COORD30_EXT: u32 = 34747;
pub const GL_OUTPUT_TEXTURE_COORD31_EXT: u32 = 34748;
pub const GL_OUTPUT_FOG_EXT: u32 = 34749;
pub const GL_SCALAR_EXT: u32 = 34750;
pub const GL_VECTOR_EXT: u32 = 34751;
pub const GL_MATRIX_EXT: u32 = 34752;
pub const GL_VARIANT_EXT: u32 = 34753;
pub const GL_INVARIANT_EXT: u32 = 34754;
pub const GL_LOCAL_CONSTANT_EXT: u32 = 34755;
pub const GL_LOCAL_EXT: u32 = 34756;
pub const GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT: u32 = 34757;
pub const GL_MAX_VERTEX_SHADER_VARIANTS_EXT: u32 = 34758;
pub const GL_MAX_VERTEX_SHADER_INVARIANTS_EXT: u32 = 34759;
pub const GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT: u32 = 34760;
pub const GL_MAX_VERTEX_SHADER_LOCALS_EXT: u32 = 34761;
pub const GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT: u32 = 34762;
pub const GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT: u32 = 34763;
pub const GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT: u32 = 34764;
pub const GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT: u32 = 34765;
pub const GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT: u32 = 34766;
pub const GL_VERTEX_SHADER_INSTRUCTIONS_EXT: u32 = 34767;
pub const GL_VERTEX_SHADER_VARIANTS_EXT: u32 = 34768;
pub const GL_VERTEX_SHADER_INVARIANTS_EXT: u32 = 34769;
pub const GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT: u32 = 34770;
pub const GL_VERTEX_SHADER_LOCALS_EXT: u32 = 34771;
pub const GL_VERTEX_SHADER_OPTIMIZED_EXT: u32 = 34772;
pub const GL_X_EXT: u32 = 34773;
pub const GL_Y_EXT: u32 = 34774;
pub const GL_Z_EXT: u32 = 34775;
pub const GL_W_EXT: u32 = 34776;
pub const GL_NEGATIVE_X_EXT: u32 = 34777;
pub const GL_NEGATIVE_Y_EXT: u32 = 34778;
pub const GL_NEGATIVE_Z_EXT: u32 = 34779;
pub const GL_NEGATIVE_W_EXT: u32 = 34780;
pub const GL_ZERO_EXT: u32 = 34781;
pub const GL_ONE_EXT: u32 = 34782;
pub const GL_NEGATIVE_ONE_EXT: u32 = 34783;
pub const GL_NORMALIZED_RANGE_EXT: u32 = 34784;
pub const GL_FULL_RANGE_EXT: u32 = 34785;
pub const GL_CURRENT_VERTEX_EXT: u32 = 34786;
pub const GL_MVP_MATRIX_EXT: u32 = 34787;
pub const GL_VARIANT_VALUE_EXT: u32 = 34788;
pub const GL_VARIANT_DATATYPE_EXT: u32 = 34789;
pub const GL_VARIANT_ARRAY_STRIDE_EXT: u32 = 34790;
pub const GL_VARIANT_ARRAY_TYPE_EXT: u32 = 34791;
pub const GL_VARIANT_ARRAY_EXT: u32 = 34792;
pub const GL_VARIANT_ARRAY_POINTER_EXT: u32 = 34793;
pub const GL_INVARIANT_VALUE_EXT: u32 = 34794;
pub const GL_INVARIANT_DATATYPE_EXT: u32 = 34795;
pub const GL_LOCAL_CONSTANT_VALUE_EXT: u32 = 34796;
pub const GL_LOCAL_CONSTANT_DATATYPE_EXT: u32 = 34797;
pub const GL_AMD_debug_output: u32 = 1;
pub const GL_AMD_query_buffer_object: u32 = 1;
pub const GL_ARB_ES2_compatibility: u32 = 1;
pub const GL_ARB_ES3_compatibility: u32 = 1;
pub const GL_ARB_buffer_storage: u32 = 1;
pub const GL_ARB_compatibility: u32 = 1;
pub const GL_ARB_compressed_texture_pixel_storage: u32 = 1;
pub const GL_ARB_debug_output: u32 = 1;
pub const GL_ARB_depth_buffer_float: u32 = 1;
pub const GL_ARB_depth_clamp: u32 = 1;
pub const GL_ARB_depth_texture: u32 = 1;
pub const GL_ARB_draw_buffers: u32 = 1;
pub const GL_ARB_draw_buffers_blend: u32 = 1;
pub const GL_ARB_explicit_attrib_location: u32 = 1;
pub const GL_ARB_explicit_uniform_location: u32 = 1;
pub const GL_ARB_fragment_program: u32 = 1;
pub const GL_ARB_fragment_shader: u32 = 1;
pub const GL_ARB_framebuffer_object: u32 = 1;
pub const GL_ARB_framebuffer_sRGB: u32 = 1;
pub const GL_ARB_multisample: u32 = 1;
pub const GL_ARB_sample_locations: u32 = 1;
pub const GL_ARB_texture_compression: u32 = 1;
pub const GL_ARB_texture_float: u32 = 1;
pub const GL_ARB_texture_multisample: u32 = 1;
pub const GL_ARB_texture_non_power_of_two: u32 = 1;
pub const GL_ARB_texture_rg: u32 = 1;
pub const GL_ARB_texture_swizzle: u32 = 1;
pub const GL_ARB_uniform_buffer_object: u32 = 1;
pub const GL_ARB_vertex_array_object: u32 = 1;
pub const GL_ARB_vertex_attrib_binding: u32 = 1;
pub const GL_ARB_vertex_buffer_object: u32 = 1;
pub const GL_ARB_vertex_program: u32 = 1;
pub const GL_ARB_vertex_shader: u32 = 1;
pub const GL_ATI_element_array: u32 = 1;
pub const GL_ATI_fragment_shader: u32 = 1;
pub const GL_ATI_vertex_array_object: u32 = 1;
pub const GL_EXT_blend_color: u32 = 1;
pub const GL_EXT_blend_equation_separate: u32 = 1;
pub const GL_EXT_blend_func_separate: u32 = 1;
pub const GL_EXT_debug_marker: u32 = 1;
pub const GL_EXT_framebuffer_blit: u32 = 1;
pub const GL_EXT_framebuffer_multisample: u32 = 1;
pub const GL_EXT_framebuffer_multisample_blit_scaled: u32 = 1;
pub const GL_EXT_framebuffer_object: u32 = 1;
pub const GL_EXT_framebuffer_sRGB: u32 = 1;
pub const GL_EXT_index_array_formats: u32 = 1;
pub const GL_EXT_texture: u32 = 1;
pub const GL_EXT_texture_compression_s3tc: u32 = 1;
pub const GL_EXT_texture_sRGB: u32 = 1;
pub const GL_EXT_texture_swizzle: u32 = 1;
pub const GL_EXT_vertex_array: u32 = 1;
pub const GL_EXT_vertex_shader: u32 = 1;
pub const _STDIO_H: u32 = 1;
pub const _BITS_TYPES_H: u32 = 1;
pub const _BITS_TYPESIZES_H: u32 = 1;
pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
pub const __INO_T_MATCHES_INO64_T: u32 = 1;
pub const __FD_SETSIZE: u32 = 1024;
pub const __FILE_defined: u32 = 1;
pub const ____FILE_defined: u32 = 1;
pub const _G_config_h: u32 = 1;
pub const ____mbstate_t_defined: u32 = 1;
pub const _G_HAVE_MMAP: u32 = 1;
pub const _G_HAVE_MREMAP: u32 = 1;
pub const _G_IO_IO_FILE_VERSION: u32 = 131073;
pub const _G_BUFSIZ: u32 = 8192;
pub const _IO_BUFSIZ: u32 = 8192;
pub const _IO_UNIFIED_JUMPTABLES: u32 = 1;
pub const EOF: i32 = -1;
pub const _IOS_INPUT: u32 = 1;
pub const _IOS_OUTPUT: u32 = 2;
pub const _IOS_ATEND: u32 = 4;
pub const _IOS_APPEND: u32 = 8;
pub const _IOS_TRUNC: u32 = 16;
pub const _IOS_NOCREATE: u32 = 32;
pub const _IOS_NOREPLACE: u32 = 64;
pub const _IOS_BIN: u32 = 128;
pub const _IO_MAGIC: u32 = 4222418944;
pub const _OLD_STDIO_MAGIC: u32 = 4206624768;
pub const _IO_MAGIC_MASK: u32 = 4294901760;
pub const _IO_USER_BUF: u32 = 1;
pub const _IO_UNBUFFERED: u32 = 2;
pub const _IO_NO_READS: u32 = 4;
pub const _IO_NO_WRITES: u32 = 8;
pub const _IO_EOF_SEEN: u32 = 16;
pub const _IO_ERR_SEEN: u32 = 32;
pub const _IO_DELETE_DONT_CLOSE: u32 = 64;
pub const _IO_LINKED: u32 = 128;
pub const _IO_IN_BACKUP: u32 = 256;
pub const _IO_LINE_BUF: u32 = 512;
pub const _IO_TIED_PUT_GET: u32 = 1024;
pub const _IO_CURRENTLY_PUTTING: u32 = 2048;
pub const _IO_IS_APPENDING: u32 = 4096;
pub const _IO_IS_FILEBUF: u32 = 8192;
pub const _IO_BAD_SEEN: u32 = 16384;
pub const _IO_USER_LOCK: u32 = 32768;
pub const _IO_FLAGS2_MMAP: u32 = 1;
pub const _IO_FLAGS2_NOTCANCEL: u32 = 2;
pub const _IO_FLAGS2_USER_WBUF: u32 = 8;
pub const _IO_SKIPWS: u32 = 1;
pub const _IO_LEFT: u32 = 2;
pub const _IO_RIGHT: u32 = 4;
pub const _IO_INTERNAL: u32 = 8;
pub const _IO_DEC: u32 = 16;
pub const _IO_OCT: u32 = 32;
pub const _IO_HEX: u32 = 64;
pub const _IO_SHOWBASE: u32 = 128;
pub const _IO_SHOWPOINT: u32 = 256;
pub const _IO_UPPERCASE: u32 = 512;
pub const _IO_SHOWPOS: u32 = 1024;
pub const _IO_SCIENTIFIC: u32 = 2048;
pub const _IO_FIXED: u32 = 4096;
pub const _IO_UNITBUF: u32 = 8192;
pub const _IO_STDIO: u32 = 16384;
pub const _IO_DONT_CLOSE: u32 = 32768;
pub const _IO_BOOLALPHA: u32 = 65536;
pub const _IOFBF: u32 = 0;
pub const _IOLBF: u32 = 1;
pub const _IONBF: u32 = 2;
pub const BUFSIZ: u32 = 8192;
pub const SEEK_SET: u32 = 0;
pub const SEEK_CUR: u32 = 1;
pub const SEEK_END: u32 = 2;
pub const L_tmpnam: u32 = 20;
pub const TMP_MAX: u32 = 238328;
pub const FILENAME_MAX: u32 = 4096;
pub const FOPEN_MAX: u32 = 16;
pub const _GLAD_IS_SOME_NEW_VERSION: u32 = 1;
pub const GL_ETC1_RGB8_OES: u32 = 36196;
pub const GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG: u32 = 35840;
pub const GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: u32 = 35842;
pub const GL_COMPRESSED_RGBA_ASTC_4x4_KHR: u32 = 37808;
pub const GL_COMPRESSED_RGBA_ASTC_8x8_KHR: u32 = 37815;
pub const GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: u32 = 34047;
pub const GL_TEXTURE_MAX_ANISOTROPY_EXT: u32 = 34046;
pub const DEFAULT_ATTRIB_POSITION_NAME: &'static [u8; 15usize] = b"vertexPosition\0";
pub const DEFAULT_ATTRIB_TEXCOORD_NAME: &'static [u8; 15usize] = b"vertexTexCoord\0";
pub const DEFAULT_ATTRIB_NORMAL_NAME: &'static [u8; 13usize] = b"vertexNormal\0";
pub const DEFAULT_ATTRIB_COLOR_NAME: &'static [u8; 12usize] = b"vertexColor\0";
pub const DEFAULT_ATTRIB_TANGENT_NAME: &'static [u8; 14usize] = b"vertexTangent\0";
pub const DEFAULT_ATTRIB_TEXCOORD2_NAME: &'static [u8; 16usize] = b"vertexTexCoord2\0";
pub const MAX_MIPMAP_LEVELS: u32 = 5;
pub const RAYGUI_VERSION: &'static [u8; 8usize] = b"2.6-dev\0";
pub const NUM_CONTROLS: u32 = 16;
pub const NUM_PROPS_DEFAULT: u32 = 16;
pub const NUM_PROPS_EXTENDED: u32 = 8;
pub const TEXTEDIT_CURSOR_BLINK_FRAMES: u32 = 20;
pub const RICON_MAX_ICONS: u32 = 256;
pub const RICON_SIZE: u32 = 16;
pub const RICON_MAX_NAME_LENGTH: u32 = 32;
pub const RICON_DATA_ELEMENTS: u32 = 8;
pub const WINDOW_STATUSBAR_HEIGHT: u32 = 22;
pub const GROUPBOX_LINE_THICK: u32 = 1;
pub const GROUPBOX_TEXT_PADDING: u32 = 10;
pub const LINE_TEXT_PADDING: u32 = 10;
pub const PANEL_BORDER_WIDTH: u32 = 1;
pub const TOGGLEGROUP_MAX_ELEMENTS: u32 = 32;
pub const VALUEBOX_MAX_CHARS: u32 = 32;
pub const COLORBARALPHA_CHECKED_SIZE: u32 = 10;
pub const MESSAGEBOX_BUTTON_HEIGHT: u32 = 24;
pub const MESSAGEBOX_BUTTON_PADDING: u32 = 10;
pub const TEXTINPUTBOX_BUTTON_HEIGHT: u32 = 24;
pub const TEXTINPUTBOX_BUTTON_PADDING: u32 = 10;
pub const TEXTINPUTBOX_HEIGHT: u32 = 30;
pub const TEXTINPUTBOX_MAX_TEXT_LENGTH: u32 = 256;
pub const GRID_COLOR_ALPHA: f64 = 0.15;
pub const ICON_TEXT_PADDING: u32 = 4;
pub const TEXTSPLIT_MAX_TEXT_LENGTH: u32 = 1024;
pub const TEXTSPLIT_MAX_TEXT_ELEMENTS: u32 = 128;
pub const MAX_LIGHTS: u32 = 4;
pub const LIGHT_DISTANCE: f64 = 3.5;
pub const LIGHT_HEIGHT: f64 = 1.0;
pub type va_list = __builtin_va_list;
pub type __gnuc_va_list = __builtin_va_list;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Vector2 {
    pub x: f32,
    pub y: f32,
}
#[test]
fn bindgen_test_layout_Vector2() {
    assert_eq!(
        ::std::mem::size_of::<Vector2>(),
        8usize,
        concat!("Size of: ", stringify!(Vector2))
    );
    assert_eq!(
        ::std::mem::align_of::<Vector2>(),
        4usize,
        concat!("Alignment of ", stringify!(Vector2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Vector2>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Vector2),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Vector2>())).y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(Vector2),
            "::",
            stringify!(y)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Vector3 {
    pub x: f32,
    pub y: f32,
    pub z: f32,
}
#[test]
fn bindgen_test_layout_Vector3() {
    assert_eq!(
        ::std::mem::size_of::<Vector3>(),
        12usize,
        concat!("Size of: ", stringify!(Vector3))
    );
    assert_eq!(
        ::std::mem::align_of::<Vector3>(),
        4usize,
        concat!("Alignment of ", stringify!(Vector3))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Vector3>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Vector3),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Vector3>())).y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(Vector3),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Vector3>())).z as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(Vector3),
            "::",
            stringify!(z)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Vector4 {
    pub x: f32,
    pub y: f32,
    pub z: f32,
    pub w: f32,
}
#[test]
fn bindgen_test_layout_Vector4() {
    assert_eq!(
        ::std::mem::size_of::<Vector4>(),
        16usize,
        concat!("Size of: ", stringify!(Vector4))
    );
    assert_eq!(
        ::std::mem::align_of::<Vector4>(),
        4usize,
        concat!("Alignment of ", stringify!(Vector4))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Vector4>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Vector4),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Vector4>())).y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(Vector4),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Vector4>())).z as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(Vector4),
            "::",
            stringify!(z)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Vector4>())).w as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(Vector4),
            "::",
            stringify!(w)
        )
    );
}
pub type Quaternion = Vector4;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Matrix {
    pub m0: f32,
    pub m4: f32,
    pub m8: f32,
    pub m12: f32,
    pub m1: f32,
    pub m5: f32,
    pub m9: f32,
    pub m13: f32,
    pub m2: f32,
    pub m6: f32,
    pub m10: f32,
    pub m14: f32,
    pub m3: f32,
    pub m7: f32,
    pub m11: f32,
    pub m15: f32,
}
#[test]
fn bindgen_test_layout_Matrix() {
    assert_eq!(
        ::std::mem::size_of::<Matrix>(),
        64usize,
        concat!("Size of: ", stringify!(Matrix))
    );
    assert_eq!(
        ::std::mem::align_of::<Matrix>(),
        4usize,
        concat!("Alignment of ", stringify!(Matrix))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Matrix>())).m0 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Matrix),
            "::",
            stringify!(m0)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Matrix>())).m4 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(Matrix),
            "::",
            stringify!(m4)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Matrix>())).m8 as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(Matrix),
            "::",
            stringify!(m8)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Matrix>())).m12 as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(Matrix),
            "::",
            stringify!(m12)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Matrix>())).m1 as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(Matrix),
            "::",
            stringify!(m1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Matrix>())).m5 as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(Matrix),
            "::",
            stringify!(m5)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Matrix>())).m9 as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(Matrix),
            "::",
            stringify!(m9)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Matrix>())).m13 as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(Matrix),
            "::",
            stringify!(m13)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Matrix>())).m2 as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(Matrix),
            "::",
            stringify!(m2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Matrix>())).m6 as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(Matrix),
            "::",
            stringify!(m6)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Matrix>())).m10 as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(Matrix),
            "::",
            stringify!(m10)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Matrix>())).m14 as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(Matrix),
            "::",
            stringify!(m14)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Matrix>())).m3 as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(Matrix),
            "::",
            stringify!(m3)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Matrix>())).m7 as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(Matrix),
            "::",
            stringify!(m7)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Matrix>())).m11 as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(Matrix),
            "::",
            stringify!(m11)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Matrix>())).m15 as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(Matrix),
            "::",
            stringify!(m15)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Color {
    pub r: ::std::os::raw::c_uchar,
    pub g: ::std::os::raw::c_uchar,
    pub b: ::std::os::raw::c_uchar,
    pub a: ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout_Color() {
    assert_eq!(
        ::std::mem::size_of::<Color>(),
        4usize,
        concat!("Size of: ", stringify!(Color))
    );
    assert_eq!(
        ::std::mem::align_of::<Color>(),
        1usize,
        concat!("Alignment of ", stringify!(Color))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Color>())).r as *const _ as usize },
        0usize,
        concat!("Offset of field: ", stringify!(Color), "::", stringify!(r))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Color>())).g as *const _ as usize },
        1usize,
        concat!("Offset of field: ", stringify!(Color), "::", stringify!(g))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Color>())).b as *const _ as usize },
        2usize,
        concat!("Offset of field: ", stringify!(Color), "::", stringify!(b))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Color>())).a as *const _ as usize },
        3usize,
        concat!("Offset of field: ", stringify!(Color), "::", stringify!(a))
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Rectangle {
    pub x: f32,
    pub y: f32,
    pub width: f32,
    pub height: f32,
}
#[test]
fn bindgen_test_layout_Rectangle() {
    assert_eq!(
        ::std::mem::size_of::<Rectangle>(),
        16usize,
        concat!("Size of: ", stringify!(Rectangle))
    );
    assert_eq!(
        ::std::mem::align_of::<Rectangle>(),
        4usize,
        concat!("Alignment of ", stringify!(Rectangle))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Rectangle>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Rectangle),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Rectangle>())).y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(Rectangle),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Rectangle>())).width as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(Rectangle),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Rectangle>())).height as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(Rectangle),
            "::",
            stringify!(height)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Image {
    pub data: *mut ::std::os::raw::c_void,
    pub width: ::std::os::raw::c_int,
    pub height: ::std::os::raw::c_int,
    pub mipmaps: ::std::os::raw::c_int,
    pub format: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_Image() {
    assert_eq!(
        ::std::mem::size_of::<Image>(),
        24usize,
        concat!("Size of: ", stringify!(Image))
    );
    assert_eq!(
        ::std::mem::align_of::<Image>(),
        8usize,
        concat!("Alignment of ", stringify!(Image))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Image>())).data as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Image),
            "::",
            stringify!(data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Image>())).width as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(Image),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Image>())).height as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(Image),
            "::",
            stringify!(height)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Image>())).mipmaps as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(Image),
            "::",
            stringify!(mipmaps)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Image>())).format as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(Image),
            "::",
            stringify!(format)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Texture2D {
    pub id: ::std::os::raw::c_uint,
    pub width: ::std::os::raw::c_int,
    pub height: ::std::os::raw::c_int,
    pub mipmaps: ::std::os::raw::c_int,
    pub format: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_Texture2D() {
    assert_eq!(
        ::std::mem::size_of::<Texture2D>(),
        20usize,
        concat!("Size of: ", stringify!(Texture2D))
    );
    assert_eq!(
        ::std::mem::align_of::<Texture2D>(),
        4usize,
        concat!("Alignment of ", stringify!(Texture2D))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Texture2D>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Texture2D),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Texture2D>())).width as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(Texture2D),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Texture2D>())).height as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(Texture2D),
            "::",
            stringify!(height)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Texture2D>())).mipmaps as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(Texture2D),
            "::",
            stringify!(mipmaps)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Texture2D>())).format as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(Texture2D),
            "::",
            stringify!(format)
        )
    );
}
pub type Texture = Texture2D;
pub type TextureCubemap = Texture2D;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RenderTexture2D {
    pub id: ::std::os::raw::c_uint,
    pub texture: Texture2D,
    pub depth: Texture2D,
    pub depthTexture: bool,
}
#[test]
fn bindgen_test_layout_RenderTexture2D() {
    assert_eq!(
        ::std::mem::size_of::<RenderTexture2D>(),
        48usize,
        concat!("Size of: ", stringify!(RenderTexture2D))
    );
    assert_eq!(
        ::std::mem::align_of::<RenderTexture2D>(),
        4usize,
        concat!("Alignment of ", stringify!(RenderTexture2D))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RenderTexture2D>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(RenderTexture2D),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RenderTexture2D>())).texture as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(RenderTexture2D),
            "::",
            stringify!(texture)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RenderTexture2D>())).depth as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(RenderTexture2D),
            "::",
            stringify!(depth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RenderTexture2D>())).depthTexture as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(RenderTexture2D),
            "::",
            stringify!(depthTexture)
        )
    );
}
pub type RenderTexture = RenderTexture2D;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NPatchInfo {
    pub sourceRec: Rectangle,
    pub left: ::std::os::raw::c_int,
    pub top: ::std::os::raw::c_int,
    pub right: ::std::os::raw::c_int,
    pub bottom: ::std::os::raw::c_int,
    pub type_: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_NPatchInfo() {
    assert_eq!(
        ::std::mem::size_of::<NPatchInfo>(),
        36usize,
        concat!("Size of: ", stringify!(NPatchInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<NPatchInfo>(),
        4usize,
        concat!("Alignment of ", stringify!(NPatchInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NPatchInfo>())).sourceRec as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(NPatchInfo),
            "::",
            stringify!(sourceRec)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NPatchInfo>())).left as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(NPatchInfo),
            "::",
            stringify!(left)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NPatchInfo>())).top as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(NPatchInfo),
            "::",
            stringify!(top)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NPatchInfo>())).right as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(NPatchInfo),
            "::",
            stringify!(right)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NPatchInfo>())).bottom as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(NPatchInfo),
            "::",
            stringify!(bottom)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NPatchInfo>())).type_ as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(NPatchInfo),
            "::",
            stringify!(type_)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CharInfo {
    pub value: ::std::os::raw::c_int,
    pub offsetX: ::std::os::raw::c_int,
    pub offsetY: ::std::os::raw::c_int,
    pub advanceX: ::std::os::raw::c_int,
    pub image: Image,
}
#[test]
fn bindgen_test_layout_CharInfo() {
    assert_eq!(
        ::std::mem::size_of::<CharInfo>(),
        40usize,
        concat!("Size of: ", stringify!(CharInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<CharInfo>(),
        8usize,
        concat!("Alignment of ", stringify!(CharInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<CharInfo>())).value as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(CharInfo),
            "::",
            stringify!(value)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<CharInfo>())).offsetX as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(CharInfo),
            "::",
            stringify!(offsetX)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<CharInfo>())).offsetY as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(CharInfo),
            "::",
            stringify!(offsetY)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<CharInfo>())).advanceX as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(CharInfo),
            "::",
            stringify!(advanceX)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<CharInfo>())).image as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(CharInfo),
            "::",
            stringify!(image)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Font {
    pub baseSize: ::std::os::raw::c_int,
    pub charsCount: ::std::os::raw::c_int,
    pub texture: Texture2D,
    pub recs: *mut Rectangle,
    pub chars: *mut CharInfo,
}
#[test]
fn bindgen_test_layout_Font() {
    assert_eq!(
        ::std::mem::size_of::<Font>(),
        48usize,
        concat!("Size of: ", stringify!(Font))
    );
    assert_eq!(
        ::std::mem::align_of::<Font>(),
        8usize,
        concat!("Alignment of ", stringify!(Font))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Font>())).baseSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Font),
            "::",
            stringify!(baseSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Font>())).charsCount as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(Font),
            "::",
            stringify!(charsCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Font>())).texture as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(Font),
            "::",
            stringify!(texture)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Font>())).recs as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(Font),
            "::",
            stringify!(recs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Font>())).chars as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(Font),
            "::",
            stringify!(chars)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Camera3D {
    pub position: Vector3,
    pub target: Vector3,
    pub up: Vector3,
    pub fovy: f32,
    pub type_: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_Camera3D() {
    assert_eq!(
        ::std::mem::size_of::<Camera3D>(),
        44usize,
        concat!("Size of: ", stringify!(Camera3D))
    );
    assert_eq!(
        ::std::mem::align_of::<Camera3D>(),
        4usize,
        concat!("Alignment of ", stringify!(Camera3D))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Camera3D>())).position as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Camera3D),
            "::",
            stringify!(position)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Camera3D>())).target as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(Camera3D),
            "::",
            stringify!(target)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Camera3D>())).up as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(Camera3D),
            "::",
            stringify!(up)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Camera3D>())).fovy as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(Camera3D),
            "::",
            stringify!(fovy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Camera3D>())).type_ as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(Camera3D),
            "::",
            stringify!(type_)
        )
    );
}
pub type Camera = Camera3D;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Camera2D {
    pub offset: Vector2,
    pub target: Vector2,
    pub rotation: f32,
    pub zoom: f32,
}
#[test]
fn bindgen_test_layout_Camera2D() {
    assert_eq!(
        ::std::mem::size_of::<Camera2D>(),
        24usize,
        concat!("Size of: ", stringify!(Camera2D))
    );
    assert_eq!(
        ::std::mem::align_of::<Camera2D>(),
        4usize,
        concat!("Alignment of ", stringify!(Camera2D))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Camera2D>())).offset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Camera2D),
            "::",
            stringify!(offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Camera2D>())).target as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(Camera2D),
            "::",
            stringify!(target)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Camera2D>())).rotation as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(Camera2D),
            "::",
            stringify!(rotation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Camera2D>())).zoom as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(Camera2D),
            "::",
            stringify!(zoom)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Mesh {
    pub vertexCount: ::std::os::raw::c_int,
    pub triangleCount: ::std::os::raw::c_int,
    pub vertices: *mut f32,
    pub texcoords: *mut f32,
    pub texcoords2: *mut f32,
    pub normals: *mut f32,
    pub tangents: *mut f32,
    pub colors: *mut ::std::os::raw::c_uchar,
    pub indices: *mut ::std::os::raw::c_ushort,
    pub animVertices: *mut f32,
    pub animNormals: *mut f32,
    pub boneIds: *mut ::std::os::raw::c_int,
    pub boneWeights: *mut f32,
    pub vaoId: ::std::os::raw::c_uint,
    pub vboId: *mut ::std::os::raw::c_uint,
}
#[test]
fn bindgen_test_layout_Mesh() {
    assert_eq!(
        ::std::mem::size_of::<Mesh>(),
        112usize,
        concat!("Size of: ", stringify!(Mesh))
    );
    assert_eq!(
        ::std::mem::align_of::<Mesh>(),
        8usize,
        concat!("Alignment of ", stringify!(Mesh))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Mesh>())).vertexCount as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Mesh),
            "::",
            stringify!(vertexCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Mesh>())).triangleCount as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(Mesh),
            "::",
            stringify!(triangleCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Mesh>())).vertices as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(Mesh),
            "::",
            stringify!(vertices)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Mesh>())).texcoords as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(Mesh),
            "::",
            stringify!(texcoords)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Mesh>())).texcoords2 as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(Mesh),
            "::",
            stringify!(texcoords2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Mesh>())).normals as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(Mesh),
            "::",
            stringify!(normals)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Mesh>())).tangents as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(Mesh),
            "::",
            stringify!(tangents)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Mesh>())).colors as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(Mesh),
            "::",
            stringify!(colors)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Mesh>())).indices as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(Mesh),
            "::",
            stringify!(indices)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Mesh>())).animVertices as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(Mesh),
            "::",
            stringify!(animVertices)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Mesh>())).animNormals as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(Mesh),
            "::",
            stringify!(animNormals)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Mesh>())).boneIds as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(Mesh),
            "::",
            stringify!(boneIds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Mesh>())).boneWeights as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(Mesh),
            "::",
            stringify!(boneWeights)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Mesh>())).vaoId as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(Mesh),
            "::",
            stringify!(vaoId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Mesh>())).vboId as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(Mesh),
            "::",
            stringify!(vboId)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Shader {
    pub id: ::std::os::raw::c_uint,
    pub locs: *mut ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_Shader() {
    assert_eq!(
        ::std::mem::size_of::<Shader>(),
        16usize,
        concat!("Size of: ", stringify!(Shader))
    );
    assert_eq!(
        ::std::mem::align_of::<Shader>(),
        8usize,
        concat!("Alignment of ", stringify!(Shader))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Shader>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Shader),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Shader>())).locs as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(Shader),
            "::",
            stringify!(locs)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MaterialMap {
    pub texture: Texture2D,
    pub color: Color,
    pub value: f32,
}
#[test]
fn bindgen_test_layout_MaterialMap() {
    assert_eq!(
        ::std::mem::size_of::<MaterialMap>(),
        28usize,
        concat!("Size of: ", stringify!(MaterialMap))
    );
    assert_eq!(
        ::std::mem::align_of::<MaterialMap>(),
        4usize,
        concat!("Alignment of ", stringify!(MaterialMap))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MaterialMap>())).texture as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MaterialMap),
            "::",
            stringify!(texture)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MaterialMap>())).color as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(MaterialMap),
            "::",
            stringify!(color)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MaterialMap>())).value as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(MaterialMap),
            "::",
            stringify!(value)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Material {
    pub shader: Shader,
    pub maps: *mut MaterialMap,
    pub params: *mut f32,
}
#[test]
fn bindgen_test_layout_Material() {
    assert_eq!(
        ::std::mem::size_of::<Material>(),
        32usize,
        concat!("Size of: ", stringify!(Material))
    );
    assert_eq!(
        ::std::mem::align_of::<Material>(),
        8usize,
        concat!("Alignment of ", stringify!(Material))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Material>())).shader as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Material),
            "::",
            stringify!(shader)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Material>())).maps as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(Material),
            "::",
            stringify!(maps)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Material>())).params as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(Material),
            "::",
            stringify!(params)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Transform {
    pub translation: Vector3,
    pub rotation: Quaternion,
    pub scale: Vector3,
}
#[test]
fn bindgen_test_layout_Transform() {
    assert_eq!(
        ::std::mem::size_of::<Transform>(),
        40usize,
        concat!("Size of: ", stringify!(Transform))
    );
    assert_eq!(
        ::std::mem::align_of::<Transform>(),
        4usize,
        concat!("Alignment of ", stringify!(Transform))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Transform>())).translation as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Transform),
            "::",
            stringify!(translation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Transform>())).rotation as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(Transform),
            "::",
            stringify!(rotation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Transform>())).scale as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(Transform),
            "::",
            stringify!(scale)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BoneInfo {
    pub name: [::std::os::raw::c_char; 32usize],
    pub parent: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_BoneInfo() {
    assert_eq!(
        ::std::mem::size_of::<BoneInfo>(),
        36usize,
        concat!("Size of: ", stringify!(BoneInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<BoneInfo>(),
        4usize,
        concat!("Alignment of ", stringify!(BoneInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BoneInfo>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(BoneInfo),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BoneInfo>())).parent as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(BoneInfo),
            "::",
            stringify!(parent)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Model {
    pub transform: Matrix,
    pub meshCount: ::std::os::raw::c_int,
    pub meshes: *mut Mesh,
    pub materialCount: ::std::os::raw::c_int,
    pub materials: *mut Material,
    pub meshMaterial: *mut ::std::os::raw::c_int,
    pub boneCount: ::std::os::raw::c_int,
    pub bones: *mut BoneInfo,
    pub bindPose: *mut Transform,
}
#[test]
fn bindgen_test_layout_Model() {
    assert_eq!(
        ::std::mem::size_of::<Model>(),
        128usize,
        concat!("Size of: ", stringify!(Model))
    );
    assert_eq!(
        ::std::mem::align_of::<Model>(),
        8usize,
        concat!("Alignment of ", stringify!(Model))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Model>())).transform as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Model),
            "::",
            stringify!(transform)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Model>())).meshCount as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(Model),
            "::",
            stringify!(meshCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Model>())).meshes as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(Model),
            "::",
            stringify!(meshes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Model>())).materialCount as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(Model),
            "::",
            stringify!(materialCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Model>())).materials as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(Model),
            "::",
            stringify!(materials)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Model>())).meshMaterial as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(Model),
            "::",
            stringify!(meshMaterial)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Model>())).boneCount as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(Model),
            "::",
            stringify!(boneCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Model>())).bones as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(Model),
            "::",
            stringify!(bones)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Model>())).bindPose as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(Model),
            "::",
            stringify!(bindPose)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ModelAnimation {
    pub boneCount: ::std::os::raw::c_int,
    pub bones: *mut BoneInfo,
    pub frameCount: ::std::os::raw::c_int,
    pub framePoses: *mut *mut Transform,
}
#[test]
fn bindgen_test_layout_ModelAnimation() {
    assert_eq!(
        ::std::mem::size_of::<ModelAnimation>(),
        32usize,
        concat!("Size of: ", stringify!(ModelAnimation))
    );
    assert_eq!(
        ::std::mem::align_of::<ModelAnimation>(),
        8usize,
        concat!("Alignment of ", stringify!(ModelAnimation))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ModelAnimation>())).boneCount as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ModelAnimation),
            "::",
            stringify!(boneCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ModelAnimation>())).bones as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ModelAnimation),
            "::",
            stringify!(bones)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ModelAnimation>())).frameCount as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ModelAnimation),
            "::",
            stringify!(frameCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ModelAnimation>())).framePoses as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ModelAnimation),
            "::",
            stringify!(framePoses)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Ray {
    pub position: Vector3,
    pub direction: Vector3,
}
#[test]
fn bindgen_test_layout_Ray() {
    assert_eq!(
        ::std::mem::size_of::<Ray>(),
        24usize,
        concat!("Size of: ", stringify!(Ray))
    );
    assert_eq!(
        ::std::mem::align_of::<Ray>(),
        4usize,
        concat!("Alignment of ", stringify!(Ray))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Ray>())).position as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Ray),
            "::",
            stringify!(position)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Ray>())).direction as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(Ray),
            "::",
            stringify!(direction)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RayHitInfo {
    pub hit: bool,
    pub distance: f32,
    pub position: Vector3,
    pub normal: Vector3,
}
#[test]
fn bindgen_test_layout_RayHitInfo() {
    assert_eq!(
        ::std::mem::size_of::<RayHitInfo>(),
        32usize,
        concat!("Size of: ", stringify!(RayHitInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<RayHitInfo>(),
        4usize,
        concat!("Alignment of ", stringify!(RayHitInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RayHitInfo>())).hit as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(RayHitInfo),
            "::",
            stringify!(hit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RayHitInfo>())).distance as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(RayHitInfo),
            "::",
            stringify!(distance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RayHitInfo>())).position as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(RayHitInfo),
            "::",
            stringify!(position)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RayHitInfo>())).normal as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(RayHitInfo),
            "::",
            stringify!(normal)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BoundingBox {
    pub min: Vector3,
    pub max: Vector3,
}
#[test]
fn bindgen_test_layout_BoundingBox() {
    assert_eq!(
        ::std::mem::size_of::<BoundingBox>(),
        24usize,
        concat!("Size of: ", stringify!(BoundingBox))
    );
    assert_eq!(
        ::std::mem::align_of::<BoundingBox>(),
        4usize,
        concat!("Alignment of ", stringify!(BoundingBox))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BoundingBox>())).min as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(BoundingBox),
            "::",
            stringify!(min)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BoundingBox>())).max as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(BoundingBox),
            "::",
            stringify!(max)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Wave {
    pub sampleCount: ::std::os::raw::c_uint,
    pub sampleRate: ::std::os::raw::c_uint,
    pub sampleSize: ::std::os::raw::c_uint,
    pub channels: ::std::os::raw::c_uint,
    pub data: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_Wave() {
    assert_eq!(
        ::std::mem::size_of::<Wave>(),
        24usize,
        concat!("Size of: ", stringify!(Wave))
    );
    assert_eq!(
        ::std::mem::align_of::<Wave>(),
        8usize,
        concat!("Alignment of ", stringify!(Wave))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Wave>())).sampleCount as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Wave),
            "::",
            stringify!(sampleCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Wave>())).sampleRate as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(Wave),
            "::",
            stringify!(sampleRate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Wave>())).sampleSize as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(Wave),
            "::",
            stringify!(sampleSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Wave>())).channels as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(Wave),
            "::",
            stringify!(channels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Wave>())).data as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(Wave),
            "::",
            stringify!(data)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct rAudioBuffer {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AudioStream {
    pub sampleRate: ::std::os::raw::c_uint,
    pub sampleSize: ::std::os::raw::c_uint,
    pub channels: ::std::os::raw::c_uint,
    pub buffer: *mut rAudioBuffer,
}
#[test]
fn bindgen_test_layout_AudioStream() {
    assert_eq!(
        ::std::mem::size_of::<AudioStream>(),
        24usize,
        concat!("Size of: ", stringify!(AudioStream))
    );
    assert_eq!(
        ::std::mem::align_of::<AudioStream>(),
        8usize,
        concat!("Alignment of ", stringify!(AudioStream))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AudioStream>())).sampleRate as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(AudioStream),
            "::",
            stringify!(sampleRate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AudioStream>())).sampleSize as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(AudioStream),
            "::",
            stringify!(sampleSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AudioStream>())).channels as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(AudioStream),
            "::",
            stringify!(channels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AudioStream>())).buffer as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(AudioStream),
            "::",
            stringify!(buffer)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Sound {
    pub sampleCount: ::std::os::raw::c_uint,
    pub stream: AudioStream,
}
#[test]
fn bindgen_test_layout_Sound() {
    assert_eq!(
        ::std::mem::size_of::<Sound>(),
        32usize,
        concat!("Size of: ", stringify!(Sound))
    );
    assert_eq!(
        ::std::mem::align_of::<Sound>(),
        8usize,
        concat!("Alignment of ", stringify!(Sound))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Sound>())).sampleCount as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Sound),
            "::",
            stringify!(sampleCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Sound>())).stream as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(Sound),
            "::",
            stringify!(stream)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Music {
    pub ctxType: ::std::os::raw::c_int,
    pub ctxData: *mut ::std::os::raw::c_void,
    pub sampleCount: ::std::os::raw::c_uint,
    pub loopCount: ::std::os::raw::c_uint,
    pub stream: AudioStream,
}
#[test]
fn bindgen_test_layout_Music() {
    assert_eq!(
        ::std::mem::size_of::<Music>(),
        48usize,
        concat!("Size of: ", stringify!(Music))
    );
    assert_eq!(
        ::std::mem::align_of::<Music>(),
        8usize,
        concat!("Alignment of ", stringify!(Music))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Music>())).ctxType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Music),
            "::",
            stringify!(ctxType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Music>())).ctxData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(Music),
            "::",
            stringify!(ctxData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Music>())).sampleCount as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(Music),
            "::",
            stringify!(sampleCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Music>())).loopCount as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(Music),
            "::",
            stringify!(loopCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Music>())).stream as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(Music),
            "::",
            stringify!(stream)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VrDeviceInfo {
    pub hResolution: ::std::os::raw::c_int,
    pub vResolution: ::std::os::raw::c_int,
    pub hScreenSize: f32,
    pub vScreenSize: f32,
    pub vScreenCenter: f32,
    pub eyeToScreenDistance: f32,
    pub lensSeparationDistance: f32,
    pub interpupillaryDistance: f32,
    pub lensDistortionValues: [f32; 4usize],
    pub chromaAbCorrection: [f32; 4usize],
}
#[test]
fn bindgen_test_layout_VrDeviceInfo() {
    assert_eq!(
        ::std::mem::size_of::<VrDeviceInfo>(),
        64usize,
        concat!("Size of: ", stringify!(VrDeviceInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<VrDeviceInfo>(),
        4usize,
        concat!("Alignment of ", stringify!(VrDeviceInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<VrDeviceInfo>())).hResolution as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(VrDeviceInfo),
            "::",
            stringify!(hResolution)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<VrDeviceInfo>())).vResolution as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(VrDeviceInfo),
            "::",
            stringify!(vResolution)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<VrDeviceInfo>())).hScreenSize as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(VrDeviceInfo),
            "::",
            stringify!(hScreenSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<VrDeviceInfo>())).vScreenSize as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(VrDeviceInfo),
            "::",
            stringify!(vScreenSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<VrDeviceInfo>())).vScreenCenter as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(VrDeviceInfo),
            "::",
            stringify!(vScreenCenter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<VrDeviceInfo>())).eyeToScreenDistance as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(VrDeviceInfo),
            "::",
            stringify!(eyeToScreenDistance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<VrDeviceInfo>())).lensSeparationDistance as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(VrDeviceInfo),
            "::",
            stringify!(lensSeparationDistance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<VrDeviceInfo>())).interpupillaryDistance as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(VrDeviceInfo),
            "::",
            stringify!(interpupillaryDistance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<VrDeviceInfo>())).lensDistortionValues as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(VrDeviceInfo),
            "::",
            stringify!(lensDistortionValues)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<VrDeviceInfo>())).chromaAbCorrection as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(VrDeviceInfo),
            "::",
            stringify!(chromaAbCorrection)
        )
    );
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum ConfigFlag {
    FLAG_RESERVED = 1,
    FLAG_FULLSCREEN_MODE = 2,
    FLAG_WINDOW_RESIZABLE = 4,
    FLAG_WINDOW_UNDECORATED = 8,
    FLAG_WINDOW_TRANSPARENT = 16,
    FLAG_WINDOW_HIDDEN = 128,
    FLAG_WINDOW_ALWAYS_RUN = 256,
    FLAG_MSAA_4X_HINT = 32,
    FLAG_VSYNC_HINT = 64,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum TraceLogType {
    LOG_ALL = 0,
    LOG_TRACE = 1,
    LOG_DEBUG = 2,
    LOG_INFO = 3,
    LOG_WARNING = 4,
    LOG_ERROR = 5,
    LOG_FATAL = 6,
    LOG_NONE = 7,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum KeyboardKey {
    KEY_APOSTROPHE = 39,
    KEY_COMMA = 44,
    KEY_MINUS = 45,
    KEY_PERIOD = 46,
    KEY_SLASH = 47,
    KEY_ZERO = 48,
    KEY_ONE = 49,
    KEY_TWO = 50,
    KEY_THREE = 51,
    KEY_FOUR = 52,
    KEY_FIVE = 53,
    KEY_SIX = 54,
    KEY_SEVEN = 55,
    KEY_EIGHT = 56,
    KEY_NINE = 57,
    KEY_SEMICOLON = 59,
    KEY_EQUAL = 61,
    KEY_A = 65,
    KEY_B = 66,
    KEY_C = 67,
    KEY_D = 68,
    KEY_E = 69,
    KEY_F = 70,
    KEY_G = 71,
    KEY_H = 72,
    KEY_I = 73,
    KEY_J = 74,
    KEY_K = 75,
    KEY_L = 76,
    KEY_M = 77,
    KEY_N = 78,
    KEY_O = 79,
    KEY_P = 80,
    KEY_Q = 81,
    KEY_R = 82,
    KEY_S = 83,
    KEY_T = 84,
    KEY_U = 85,
    KEY_V = 86,
    KEY_W = 87,
    KEY_X = 88,
    KEY_Y = 89,
    KEY_Z = 90,
    KEY_SPACE = 32,
    KEY_ESCAPE = 256,
    KEY_ENTER = 257,
    KEY_TAB = 258,
    KEY_BACKSPACE = 259,
    KEY_INSERT = 260,
    KEY_DELETE = 261,
    KEY_RIGHT = 262,
    KEY_LEFT = 263,
    KEY_DOWN = 264,
    KEY_UP = 265,
    KEY_PAGE_UP = 266,
    KEY_PAGE_DOWN = 267,
    KEY_HOME = 268,
    KEY_END = 269,
    KEY_CAPS_LOCK = 280,
    KEY_SCROLL_LOCK = 281,
    KEY_NUM_LOCK = 282,
    KEY_PRINT_SCREEN = 283,
    KEY_PAUSE = 284,
    KEY_F1 = 290,
    KEY_F2 = 291,
    KEY_F3 = 292,
    KEY_F4 = 293,
    KEY_F5 = 294,
    KEY_F6 = 295,
    KEY_F7 = 296,
    KEY_F8 = 297,
    KEY_F9 = 298,
    KEY_F10 = 299,
    KEY_F11 = 300,
    KEY_F12 = 301,
    KEY_LEFT_SHIFT = 340,
    KEY_LEFT_CONTROL = 341,
    KEY_LEFT_ALT = 342,
    KEY_LEFT_SUPER = 343,
    KEY_RIGHT_SHIFT = 344,
    KEY_RIGHT_CONTROL = 345,
    KEY_RIGHT_ALT = 346,
    KEY_RIGHT_SUPER = 347,
    KEY_KB_MENU = 348,
    KEY_LEFT_BRACKET = 91,
    KEY_BACKSLASH = 92,
    KEY_RIGHT_BRACKET = 93,
    KEY_GRAVE = 96,
    KEY_KP_0 = 320,
    KEY_KP_1 = 321,
    KEY_KP_2 = 322,
    KEY_KP_3 = 323,
    KEY_KP_4 = 324,
    KEY_KP_5 = 325,
    KEY_KP_6 = 326,
    KEY_KP_7 = 327,
    KEY_KP_8 = 328,
    KEY_KP_9 = 329,
    KEY_KP_DECIMAL = 330,
    KEY_KP_DIVIDE = 331,
    KEY_KP_MULTIPLY = 332,
    KEY_KP_SUBTRACT = 333,
    KEY_KP_ADD = 334,
    KEY_KP_ENTER = 335,
    KEY_KP_EQUAL = 336,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum AndroidButton {
    KEY_BACK = 4,
    KEY_MENU = 82,
    KEY_VOLUME_UP = 24,
    KEY_VOLUME_DOWN = 25,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum MouseButton {
    MOUSE_LEFT_BUTTON = 0,
    MOUSE_RIGHT_BUTTON = 1,
    MOUSE_MIDDLE_BUTTON = 2,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GamepadNumber {
    GAMEPAD_PLAYER1 = 0,
    GAMEPAD_PLAYER2 = 1,
    GAMEPAD_PLAYER3 = 2,
    GAMEPAD_PLAYER4 = 3,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GamepadButton {
    GAMEPAD_BUTTON_UNKNOWN = 0,
    GAMEPAD_BUTTON_LEFT_FACE_UP = 1,
    GAMEPAD_BUTTON_LEFT_FACE_RIGHT = 2,
    GAMEPAD_BUTTON_LEFT_FACE_DOWN = 3,
    GAMEPAD_BUTTON_LEFT_FACE_LEFT = 4,
    GAMEPAD_BUTTON_RIGHT_FACE_UP = 5,
    GAMEPAD_BUTTON_RIGHT_FACE_RIGHT = 6,
    GAMEPAD_BUTTON_RIGHT_FACE_DOWN = 7,
    GAMEPAD_BUTTON_RIGHT_FACE_LEFT = 8,
    GAMEPAD_BUTTON_LEFT_TRIGGER_1 = 9,
    GAMEPAD_BUTTON_LEFT_TRIGGER_2 = 10,
    GAMEPAD_BUTTON_RIGHT_TRIGGER_1 = 11,
    GAMEPAD_BUTTON_RIGHT_TRIGGER_2 = 12,
    GAMEPAD_BUTTON_MIDDLE_LEFT = 13,
    GAMEPAD_BUTTON_MIDDLE = 14,
    GAMEPAD_BUTTON_MIDDLE_RIGHT = 15,
    GAMEPAD_BUTTON_LEFT_THUMB = 16,
    GAMEPAD_BUTTON_RIGHT_THUMB = 17,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GamepadAxis {
    GAMEPAD_AXIS_UNKNOWN = 0,
    GAMEPAD_AXIS_LEFT_X = 1,
    GAMEPAD_AXIS_LEFT_Y = 2,
    GAMEPAD_AXIS_RIGHT_X = 3,
    GAMEPAD_AXIS_RIGHT_Y = 4,
    GAMEPAD_AXIS_LEFT_TRIGGER = 5,
    GAMEPAD_AXIS_RIGHT_TRIGGER = 6,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum ShaderLocationIndex {
    LOC_VERTEX_POSITION = 0,
    LOC_VERTEX_TEXCOORD01 = 1,
    LOC_VERTEX_TEXCOORD02 = 2,
    LOC_VERTEX_NORMAL = 3,
    LOC_VERTEX_TANGENT = 4,
    LOC_VERTEX_COLOR = 5,
    LOC_MATRIX_MVP = 6,
    LOC_MATRIX_MODEL = 7,
    LOC_MATRIX_VIEW = 8,
    LOC_MATRIX_PROJECTION = 9,
    LOC_VECTOR_VIEW = 10,
    LOC_COLOR_DIFFUSE = 11,
    LOC_COLOR_SPECULAR = 12,
    LOC_COLOR_AMBIENT = 13,
    LOC_MAP_ALBEDO = 14,
    LOC_MAP_METALNESS = 15,
    LOC_MAP_NORMAL = 16,
    LOC_MAP_ROUGHNESS = 17,
    LOC_MAP_OCCLUSION = 18,
    LOC_MAP_EMISSION = 19,
    LOC_MAP_HEIGHT = 20,
    LOC_MAP_CUBEMAP = 21,
    LOC_MAP_IRRADIANCE = 22,
    LOC_MAP_PREFILTER = 23,
    LOC_MAP_BRDF = 24,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum ShaderUniformDataType {
    UNIFORM_FLOAT = 0,
    UNIFORM_VEC2 = 1,
    UNIFORM_VEC3 = 2,
    UNIFORM_VEC4 = 3,
    UNIFORM_INT = 4,
    UNIFORM_IVEC2 = 5,
    UNIFORM_IVEC3 = 6,
    UNIFORM_IVEC4 = 7,
    UNIFORM_SAMPLER2D = 8,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum MaterialMapType {
    MAP_ALBEDO = 0,
    MAP_METALNESS = 1,
    MAP_NORMAL = 2,
    MAP_ROUGHNESS = 3,
    MAP_OCCLUSION = 4,
    MAP_EMISSION = 5,
    MAP_HEIGHT = 6,
    MAP_CUBEMAP = 7,
    MAP_IRRADIANCE = 8,
    MAP_PREFILTER = 9,
    MAP_BRDF = 10,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum PixelFormat {
    UNCOMPRESSED_GRAYSCALE = 1,
    UNCOMPRESSED_GRAY_ALPHA = 2,
    UNCOMPRESSED_R5G6B5 = 3,
    UNCOMPRESSED_R8G8B8 = 4,
    UNCOMPRESSED_R5G5B5A1 = 5,
    UNCOMPRESSED_R4G4B4A4 = 6,
    UNCOMPRESSED_R8G8B8A8 = 7,
    UNCOMPRESSED_R32 = 8,
    UNCOMPRESSED_R32G32B32 = 9,
    UNCOMPRESSED_R32G32B32A32 = 10,
    COMPRESSED_DXT1_RGB = 11,
    COMPRESSED_DXT1_RGBA = 12,
    COMPRESSED_DXT3_RGBA = 13,
    COMPRESSED_DXT5_RGBA = 14,
    COMPRESSED_ETC1_RGB = 15,
    COMPRESSED_ETC2_RGB = 16,
    COMPRESSED_ETC2_EAC_RGBA = 17,
    COMPRESSED_PVRT_RGB = 18,
    COMPRESSED_PVRT_RGBA = 19,
    COMPRESSED_ASTC_4x4_RGBA = 20,
    COMPRESSED_ASTC_8x8_RGBA = 21,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum TextureFilterMode {
    FILTER_POINT = 0,
    FILTER_BILINEAR = 1,
    FILTER_TRILINEAR = 2,
    FILTER_ANISOTROPIC_4X = 3,
    FILTER_ANISOTROPIC_8X = 4,
    FILTER_ANISOTROPIC_16X = 5,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum CubemapLayoutType {
    CUBEMAP_AUTO_DETECT = 0,
    CUBEMAP_LINE_VERTICAL = 1,
    CUBEMAP_LINE_HORIZONTAL = 2,
    CUBEMAP_CROSS_THREE_BY_FOUR = 3,
    CUBEMAP_CROSS_FOUR_BY_THREE = 4,
    CUBEMAP_PANORAMA = 5,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum TextureWrapMode {
    WRAP_REPEAT = 0,
    WRAP_CLAMP = 1,
    WRAP_MIRROR_REPEAT = 2,
    WRAP_MIRROR_CLAMP = 3,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum FontType {
    FONT_DEFAULT = 0,
    FONT_BITMAP = 1,
    FONT_SDF = 2,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum BlendMode {
    BLEND_ALPHA = 0,
    BLEND_ADDITIVE = 1,
    BLEND_MULTIPLIED = 2,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GestureType {
    GESTURE_NONE = 0,
    GESTURE_TAP = 1,
    GESTURE_DOUBLETAP = 2,
    GESTURE_HOLD = 4,
    GESTURE_DRAG = 8,
    GESTURE_SWIPE_RIGHT = 16,
    GESTURE_SWIPE_LEFT = 32,
    GESTURE_SWIPE_UP = 64,
    GESTURE_SWIPE_DOWN = 128,
    GESTURE_PINCH_IN = 256,
    GESTURE_PINCH_OUT = 512,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum CameraMode {
    CAMERA_CUSTOM = 0,
    CAMERA_FREE = 1,
    CAMERA_ORBITAL = 2,
    CAMERA_FIRST_PERSON = 3,
    CAMERA_THIRD_PERSON = 4,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum CameraType {
    CAMERA_PERSPECTIVE = 0,
    CAMERA_ORTHOGRAPHIC = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum NPatchType {
    NPT_9PATCH = 0,
    NPT_3PATCH_VERTICAL = 1,
    NPT_3PATCH_HORIZONTAL = 2,
}
pub type TraceLogCallback = ::std::option::Option<
    unsafe extern "C" fn(
        logType: ::std::os::raw::c_int,
        text: *const ::std::os::raw::c_char,
        args: *mut __va_list_tag,
    ),
>;
extern "C" {
    pub fn InitWindow(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        title: *const ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn WindowShouldClose() -> bool;
}
extern "C" {
    pub fn CloseWindow();
}
extern "C" {
    pub fn IsWindowReady() -> bool;
}
extern "C" {
    pub fn IsWindowMinimized() -> bool;
}
extern "C" {
    pub fn IsWindowResized() -> bool;
}
extern "C" {
    pub fn IsWindowHidden() -> bool;
}
extern "C" {
    pub fn IsWindowFullscreen() -> bool;
}
extern "C" {
    pub fn ToggleFullscreen();
}
extern "C" {
    pub fn UnhideWindow();
}
extern "C" {
    pub fn HideWindow();
}
extern "C" {
    pub fn SetWindowIcon(image: Image);
}
extern "C" {
    pub fn SetWindowTitle(title: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn SetWindowPosition(x: ::std::os::raw::c_int, y: ::std::os::raw::c_int);
}
extern "C" {
    pub fn SetWindowMonitor(monitor: ::std::os::raw::c_int);
}
extern "C" {
    pub fn SetWindowMinSize(width: ::std::os::raw::c_int, height: ::std::os::raw::c_int);
}
extern "C" {
    pub fn SetWindowSize(width: ::std::os::raw::c_int, height: ::std::os::raw::c_int);
}
extern "C" {
    pub fn GetWindowHandle() -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn GetScreenWidth() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetScreenHeight() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetMonitorCount() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetMonitorWidth(monitor: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetMonitorHeight(monitor: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetMonitorPhysicalWidth(monitor: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetMonitorPhysicalHeight(monitor: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetWindowPosition() -> Vector2;
}
extern "C" {
    pub fn GetMonitorName(monitor: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn GetClipboardText() -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn SetClipboardText(text: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn ShowCursor();
}
extern "C" {
    pub fn HideCursor();
}
extern "C" {
    pub fn IsCursorHidden() -> bool;
}
extern "C" {
    pub fn EnableCursor();
}
extern "C" {
    pub fn DisableCursor();
}
extern "C" {
    pub fn ClearBackground(color: Color);
}
extern "C" {
    pub fn BeginDrawing();
}
extern "C" {
    pub fn EndDrawing();
}
extern "C" {
    pub fn BeginMode2D(camera: Camera2D);
}
extern "C" {
    pub fn EndMode2D();
}
extern "C" {
    pub fn BeginMode3D(camera: Camera3D);
}
extern "C" {
    pub fn EndMode3D();
}
extern "C" {
    pub fn BeginTextureMode(target: RenderTexture2D);
}
extern "C" {
    pub fn EndTextureMode();
}
extern "C" {
    pub fn BeginScissorMode(
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn EndScissorMode();
}
extern "C" {
    pub fn GetMouseRay(mousePosition: Vector2, camera: Camera) -> Ray;
}
extern "C" {
    pub fn GetCameraMatrix(camera: Camera) -> Matrix;
}
extern "C" {
    pub fn GetCameraMatrix2D(camera: Camera2D) -> Matrix;
}
extern "C" {
    pub fn GetWorldToScreen(position: Vector3, camera: Camera) -> Vector2;
}
extern "C" {
    pub fn GetWorldToScreenEx(
        position: Vector3,
        camera: Camera,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) -> Vector2;
}
extern "C" {
    pub fn GetWorldToScreen2D(position: Vector2, camera: Camera2D) -> Vector2;
}
extern "C" {
    pub fn GetScreenToWorld2D(position: Vector2, camera: Camera2D) -> Vector2;
}
extern "C" {
    pub fn SetTargetFPS(fps: ::std::os::raw::c_int);
}
extern "C" {
    pub fn GetFPS() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetFrameTime() -> f32;
}
extern "C" {
    pub fn GetTime() -> f64;
}
extern "C" {
    pub fn ColorToInt(color: Color) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ColorNormalize(color: Color) -> Vector4;
}
extern "C" {
    pub fn ColorFromNormalized(normalized: Vector4) -> Color;
}
extern "C" {
    pub fn ColorToHSV(color: Color) -> Vector3;
}
extern "C" {
    pub fn ColorFromHSV(hsv: Vector3) -> Color;
}
extern "C" {
    pub fn GetColor(hexValue: ::std::os::raw::c_int) -> Color;
}
extern "C" {
    pub fn Fade(color: Color, alpha: f32) -> Color;
}
extern "C" {
    pub fn SetConfigFlags(flags: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn SetTraceLogLevel(logType: ::std::os::raw::c_int);
}
extern "C" {
    pub fn SetTraceLogExit(logType: ::std::os::raw::c_int);
}
extern "C" {
    pub fn SetTraceLogCallback(callback: TraceLogCallback);
}
extern "C" {
    pub fn TraceLog(logType: ::std::os::raw::c_int, text: *const ::std::os::raw::c_char, ...);
}
extern "C" {
    pub fn TakeScreenshot(fileName: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn GetRandomValue(
        min: ::std::os::raw::c_int,
        max: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn LoadFileData(
        fileName: *const ::std::os::raw::c_char,
        bytesRead: *mut ::std::os::raw::c_uint,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn SaveFileData(
        fileName: *const ::std::os::raw::c_char,
        data: *mut ::std::os::raw::c_void,
        bytesToWrite: ::std::os::raw::c_uint,
    );
}
extern "C" {
    pub fn LoadFileText(fileName: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn SaveFileText(fileName: *const ::std::os::raw::c_char, text: *mut ::std::os::raw::c_char);
}
extern "C" {
    pub fn FileExists(fileName: *const ::std::os::raw::c_char) -> bool;
}
extern "C" {
    pub fn IsFileExtension(
        fileName: *const ::std::os::raw::c_char,
        ext: *const ::std::os::raw::c_char,
    ) -> bool;
}
extern "C" {
    pub fn DirectoryExists(dirPath: *const ::std::os::raw::c_char) -> bool;
}
extern "C" {
    pub fn GetExtension(fileName: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn GetFileName(filePath: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn GetFileNameWithoutExt(
        filePath: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn GetDirectoryPath(
        filePath: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn GetPrevDirectoryPath(
        dirPath: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn GetWorkingDirectory() -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn GetDirectoryFiles(
        dirPath: *const ::std::os::raw::c_char,
        count: *mut ::std::os::raw::c_int,
    ) -> *mut *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn ClearDirectoryFiles();
}
extern "C" {
    pub fn ChangeDirectory(dir: *const ::std::os::raw::c_char) -> bool;
}
extern "C" {
    pub fn IsFileDropped() -> bool;
}
extern "C" {
    pub fn GetDroppedFiles(count: *mut ::std::os::raw::c_int) -> *mut *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn ClearDroppedFiles();
}
extern "C" {
    pub fn GetFileModTime(fileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn CompressData(
        data: *mut ::std::os::raw::c_uchar,
        dataLength: ::std::os::raw::c_int,
        compDataLength: *mut ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn DecompressData(
        compData: *mut ::std::os::raw::c_uchar,
        compDataLength: ::std::os::raw::c_int,
        dataLength: *mut ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn SaveStorageValue(position: ::std::os::raw::c_uint, value: ::std::os::raw::c_int);
}
extern "C" {
    pub fn LoadStorageValue(position: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn OpenURL(url: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn IsKeyPressed(key: ::std::os::raw::c_int) -> bool;
}
extern "C" {
    pub fn IsKeyDown(key: ::std::os::raw::c_int) -> bool;
}
extern "C" {
    pub fn IsKeyReleased(key: ::std::os::raw::c_int) -> bool;
}
extern "C" {
    pub fn IsKeyUp(key: ::std::os::raw::c_int) -> bool;
}
extern "C" {
    pub fn SetExitKey(key: ::std::os::raw::c_int);
}
extern "C" {
    pub fn GetKeyPressed() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn IsGamepadAvailable(gamepad: ::std::os::raw::c_int) -> bool;
}
extern "C" {
    pub fn IsGamepadName(
        gamepad: ::std::os::raw::c_int,
        name: *const ::std::os::raw::c_char,
    ) -> bool;
}
extern "C" {
    pub fn GetGamepadName(gamepad: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn IsGamepadButtonPressed(
        gamepad: ::std::os::raw::c_int,
        button: ::std::os::raw::c_int,
    ) -> bool;
}
extern "C" {
    pub fn IsGamepadButtonDown(
        gamepad: ::std::os::raw::c_int,
        button: ::std::os::raw::c_int,
    ) -> bool;
}
extern "C" {
    pub fn IsGamepadButtonReleased(
        gamepad: ::std::os::raw::c_int,
        button: ::std::os::raw::c_int,
    ) -> bool;
}
extern "C" {
    pub fn IsGamepadButtonUp(gamepad: ::std::os::raw::c_int, button: ::std::os::raw::c_int)
        -> bool;
}
extern "C" {
    pub fn GetGamepadButtonPressed() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetGamepadAxisCount(gamepad: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetGamepadAxisMovement(
        gamepad: ::std::os::raw::c_int,
        axis: ::std::os::raw::c_int,
    ) -> f32;
}
extern "C" {
    pub fn IsMouseButtonPressed(button: ::std::os::raw::c_int) -> bool;
}
extern "C" {
    pub fn IsMouseButtonDown(button: ::std::os::raw::c_int) -> bool;
}
extern "C" {
    pub fn IsMouseButtonReleased(button: ::std::os::raw::c_int) -> bool;
}
extern "C" {
    pub fn IsMouseButtonUp(button: ::std::os::raw::c_int) -> bool;
}
extern "C" {
    pub fn GetMouseX() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetMouseY() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetMousePosition() -> Vector2;
}
extern "C" {
    pub fn SetMousePosition(x: ::std::os::raw::c_int, y: ::std::os::raw::c_int);
}
extern "C" {
    pub fn SetMouseOffset(offsetX: ::std::os::raw::c_int, offsetY: ::std::os::raw::c_int);
}
extern "C" {
    pub fn SetMouseScale(scaleX: f32, scaleY: f32);
}
extern "C" {
    pub fn GetMouseWheelMove() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetTouchX() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetTouchY() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetTouchPosition(index: ::std::os::raw::c_int) -> Vector2;
}
extern "C" {
    pub fn SetGesturesEnabled(gestureFlags: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn IsGestureDetected(gesture: ::std::os::raw::c_int) -> bool;
}
extern "C" {
    pub fn GetGestureDetected() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetTouchPointsCount() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetGestureHoldDuration() -> f32;
}
extern "C" {
    pub fn GetGestureDragVector() -> Vector2;
}
extern "C" {
    pub fn GetGestureDragAngle() -> f32;
}
extern "C" {
    pub fn GetGesturePinchVector() -> Vector2;
}
extern "C" {
    pub fn GetGesturePinchAngle() -> f32;
}
extern "C" {
    pub fn SetCameraMode(camera: Camera, mode: ::std::os::raw::c_int);
}
extern "C" {
    pub fn UpdateCamera(camera: *mut Camera);
}
extern "C" {
    pub fn SetCameraPanControl(panKey: ::std::os::raw::c_int);
}
extern "C" {
    pub fn SetCameraAltControl(altKey: ::std::os::raw::c_int);
}
extern "C" {
    pub fn SetCameraSmoothZoomControl(szKey: ::std::os::raw::c_int);
}
extern "C" {
    pub fn SetCameraMoveControls(
        frontKey: ::std::os::raw::c_int,
        backKey: ::std::os::raw::c_int,
        rightKey: ::std::os::raw::c_int,
        leftKey: ::std::os::raw::c_int,
        upKey: ::std::os::raw::c_int,
        downKey: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn DrawPixel(posX: ::std::os::raw::c_int, posY: ::std::os::raw::c_int, color: Color);
}
extern "C" {
    pub fn DrawPixelV(position: Vector2, color: Color);
}
extern "C" {
    pub fn DrawLine(
        startPosX: ::std::os::raw::c_int,
        startPosY: ::std::os::raw::c_int,
        endPosX: ::std::os::raw::c_int,
        endPosY: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn DrawLineV(startPos: Vector2, endPos: Vector2, color: Color);
}
extern "C" {
    pub fn DrawLineEx(startPos: Vector2, endPos: Vector2, thick: f32, color: Color);
}
extern "C" {
    pub fn DrawLineBezier(startPos: Vector2, endPos: Vector2, thick: f32, color: Color);
}
extern "C" {
    pub fn DrawLineStrip(points: *mut Vector2, numPoints: ::std::os::raw::c_int, color: Color);
}
extern "C" {
    pub fn DrawCircle(
        centerX: ::std::os::raw::c_int,
        centerY: ::std::os::raw::c_int,
        radius: f32,
        color: Color,
    );
}
extern "C" {
    pub fn DrawCircleSector(
        center: Vector2,
        radius: f32,
        startAngle: ::std::os::raw::c_int,
        endAngle: ::std::os::raw::c_int,
        segments: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn DrawCircleSectorLines(
        center: Vector2,
        radius: f32,
        startAngle: ::std::os::raw::c_int,
        endAngle: ::std::os::raw::c_int,
        segments: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn DrawCircleGradient(
        centerX: ::std::os::raw::c_int,
        centerY: ::std::os::raw::c_int,
        radius: f32,
        color1: Color,
        color2: Color,
    );
}
extern "C" {
    pub fn DrawCircleV(center: Vector2, radius: f32, color: Color);
}
extern "C" {
    pub fn DrawCircleLines(
        centerX: ::std::os::raw::c_int,
        centerY: ::std::os::raw::c_int,
        radius: f32,
        color: Color,
    );
}
extern "C" {
    pub fn DrawEllipse(
        centerX: ::std::os::raw::c_int,
        centerY: ::std::os::raw::c_int,
        radiusH: f32,
        radiusV: f32,
        color: Color,
    );
}
extern "C" {
    pub fn DrawEllipseLines(
        centerX: ::std::os::raw::c_int,
        centerY: ::std::os::raw::c_int,
        radiusH: f32,
        radiusV: f32,
        color: Color,
    );
}
extern "C" {
    pub fn DrawRing(
        center: Vector2,
        innerRadius: f32,
        outerRadius: f32,
        startAngle: ::std::os::raw::c_int,
        endAngle: ::std::os::raw::c_int,
        segments: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn DrawRingLines(
        center: Vector2,
        innerRadius: f32,
        outerRadius: f32,
        startAngle: ::std::os::raw::c_int,
        endAngle: ::std::os::raw::c_int,
        segments: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn DrawRectangle(
        posX: ::std::os::raw::c_int,
        posY: ::std::os::raw::c_int,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn DrawRectangleV(position: Vector2, size: Vector2, color: Color);
}
extern "C" {
    pub fn DrawRectangleRec(rec: Rectangle, color: Color);
}
extern "C" {
    pub fn DrawRectanglePro(rec: Rectangle, origin: Vector2, rotation: f32, color: Color);
}
extern "C" {
    pub fn DrawRectangleGradientV(
        posX: ::std::os::raw::c_int,
        posY: ::std::os::raw::c_int,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        color1: Color,
        color2: Color,
    );
}
extern "C" {
    pub fn DrawRectangleGradientH(
        posX: ::std::os::raw::c_int,
        posY: ::std::os::raw::c_int,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        color1: Color,
        color2: Color,
    );
}
extern "C" {
    pub fn DrawRectangleGradientEx(
        rec: Rectangle,
        col1: Color,
        col2: Color,
        col3: Color,
        col4: Color,
    );
}
extern "C" {
    pub fn DrawRectangleLines(
        posX: ::std::os::raw::c_int,
        posY: ::std::os::raw::c_int,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn DrawRectangleLinesEx(rec: Rectangle, lineThick: ::std::os::raw::c_int, color: Color);
}
extern "C" {
    pub fn DrawRectangleRounded(
        rec: Rectangle,
        roundness: f32,
        segments: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn DrawRectangleRoundedLines(
        rec: Rectangle,
        roundness: f32,
        segments: ::std::os::raw::c_int,
        lineThick: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn DrawTriangle(v1: Vector2, v2: Vector2, v3: Vector2, color: Color);
}
extern "C" {
    pub fn DrawTriangleLines(v1: Vector2, v2: Vector2, v3: Vector2, color: Color);
}
extern "C" {
    pub fn DrawTriangleFan(points: *mut Vector2, numPoints: ::std::os::raw::c_int, color: Color);
}
extern "C" {
    pub fn DrawTriangleStrip(
        points: *mut Vector2,
        pointsCount: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn DrawPoly(
        center: Vector2,
        sides: ::std::os::raw::c_int,
        radius: f32,
        rotation: f32,
        color: Color,
    );
}
extern "C" {
    pub fn DrawPolyLines(
        center: Vector2,
        sides: ::std::os::raw::c_int,
        radius: f32,
        rotation: f32,
        color: Color,
    );
}
extern "C" {
    pub fn CheckCollisionRecs(rec1: Rectangle, rec2: Rectangle) -> bool;
}
extern "C" {
    pub fn CheckCollisionCircles(
        center1: Vector2,
        radius1: f32,
        center2: Vector2,
        radius2: f32,
    ) -> bool;
}
extern "C" {
    pub fn CheckCollisionCircleRec(center: Vector2, radius: f32, rec: Rectangle) -> bool;
}
extern "C" {
    pub fn GetCollisionRec(rec1: Rectangle, rec2: Rectangle) -> Rectangle;
}
extern "C" {
    pub fn CheckCollisionPointRec(point: Vector2, rec: Rectangle) -> bool;
}
extern "C" {
    pub fn CheckCollisionPointCircle(point: Vector2, center: Vector2, radius: f32) -> bool;
}
extern "C" {
    pub fn CheckCollisionPointTriangle(
        point: Vector2,
        p1: Vector2,
        p2: Vector2,
        p3: Vector2,
    ) -> bool;
}
extern "C" {
    pub fn LoadImage(fileName: *const ::std::os::raw::c_char) -> Image;
}
extern "C" {
    pub fn LoadImageEx(
        pixels: *mut Color,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) -> Image;
}
extern "C" {
    pub fn LoadImagePro(
        data: *mut ::std::os::raw::c_void,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        format: ::std::os::raw::c_int,
    ) -> Image;
}
extern "C" {
    pub fn LoadImageRaw(
        fileName: *const ::std::os::raw::c_char,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        format: ::std::os::raw::c_int,
        headerSize: ::std::os::raw::c_int,
    ) -> Image;
}
extern "C" {
    pub fn UnloadImage(image: Image);
}
extern "C" {
    pub fn ExportImage(image: Image, fileName: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn ExportImageAsCode(image: Image, fileName: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn GetImageData(image: Image) -> *mut Color;
}
extern "C" {
    pub fn GetImageDataNormalized(image: Image) -> *mut Vector4;
}
extern "C" {
    pub fn GenImageColor(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        color: Color,
    ) -> Image;
}
extern "C" {
    pub fn GenImageGradientV(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        top: Color,
        bottom: Color,
    ) -> Image;
}
extern "C" {
    pub fn GenImageGradientH(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        left: Color,
        right: Color,
    ) -> Image;
}
extern "C" {
    pub fn GenImageGradientRadial(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        density: f32,
        inner: Color,
        outer: Color,
    ) -> Image;
}
extern "C" {
    pub fn GenImageChecked(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        checksX: ::std::os::raw::c_int,
        checksY: ::std::os::raw::c_int,
        col1: Color,
        col2: Color,
    ) -> Image;
}
extern "C" {
    pub fn GenImageWhiteNoise(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        factor: f32,
    ) -> Image;
}
extern "C" {
    pub fn GenImagePerlinNoise(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        offsetX: ::std::os::raw::c_int,
        offsetY: ::std::os::raw::c_int,
        scale: f32,
    ) -> Image;
}
extern "C" {
    pub fn GenImageCellular(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        tileSize: ::std::os::raw::c_int,
    ) -> Image;
}
extern "C" {
    pub fn ImageCopy(image: Image) -> Image;
}
extern "C" {
    pub fn ImageFromImage(image: Image, rec: Rectangle) -> Image;
}
extern "C" {
    pub fn ImageText(
        text: *const ::std::os::raw::c_char,
        fontSize: ::std::os::raw::c_int,
        color: Color,
    ) -> Image;
}
extern "C" {
    pub fn ImageTextEx(
        font: Font,
        text: *const ::std::os::raw::c_char,
        fontSize: f32,
        spacing: f32,
        tint: Color,
    ) -> Image;
}
extern "C" {
    pub fn ImageToPOT(image: *mut Image, fillColor: Color);
}
extern "C" {
    pub fn ImageFormat(image: *mut Image, newFormat: ::std::os::raw::c_int);
}
extern "C" {
    pub fn ImageAlphaMask(image: *mut Image, alphaMask: Image);
}
extern "C" {
    pub fn ImageAlphaClear(image: *mut Image, color: Color, threshold: f32);
}
extern "C" {
    pub fn ImageAlphaCrop(image: *mut Image, threshold: f32);
}
extern "C" {
    pub fn ImageAlphaPremultiply(image: *mut Image);
}
extern "C" {
    pub fn ImageCrop(image: *mut Image, crop: Rectangle);
}
extern "C" {
    pub fn ImageResize(
        image: *mut Image,
        newWidth: ::std::os::raw::c_int,
        newHeight: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn ImageResizeNN(
        image: *mut Image,
        newWidth: ::std::os::raw::c_int,
        newHeight: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn ImageResizeCanvas(
        image: *mut Image,
        newWidth: ::std::os::raw::c_int,
        newHeight: ::std::os::raw::c_int,
        offsetX: ::std::os::raw::c_int,
        offsetY: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn ImageMipmaps(image: *mut Image);
}
extern "C" {
    pub fn ImageDither(
        image: *mut Image,
        rBpp: ::std::os::raw::c_int,
        gBpp: ::std::os::raw::c_int,
        bBpp: ::std::os::raw::c_int,
        aBpp: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn ImageFlipVertical(image: *mut Image);
}
extern "C" {
    pub fn ImageFlipHorizontal(image: *mut Image);
}
extern "C" {
    pub fn ImageRotateCW(image: *mut Image);
}
extern "C" {
    pub fn ImageRotateCCW(image: *mut Image);
}
extern "C" {
    pub fn ImageColorTint(image: *mut Image, color: Color);
}
extern "C" {
    pub fn ImageColorInvert(image: *mut Image);
}
extern "C" {
    pub fn ImageColorGrayscale(image: *mut Image);
}
extern "C" {
    pub fn ImageColorContrast(image: *mut Image, contrast: f32);
}
extern "C" {
    pub fn ImageColorBrightness(image: *mut Image, brightness: ::std::os::raw::c_int);
}
extern "C" {
    pub fn ImageColorReplace(image: *mut Image, color: Color, replace: Color);
}
extern "C" {
    pub fn ImageExtractPalette(
        image: Image,
        maxPaletteSize: ::std::os::raw::c_int,
        extractCount: *mut ::std::os::raw::c_int,
    ) -> *mut Color;
}
extern "C" {
    pub fn GetImageAlphaBorder(image: Image, threshold: f32) -> Rectangle;
}
extern "C" {
    pub fn ImageClearBackground(dst: *mut Image, color: Color);
}
extern "C" {
    pub fn ImageDrawPixel(
        dst: *mut Image,
        posX: ::std::os::raw::c_int,
        posY: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn ImageDrawPixelV(dst: *mut Image, position: Vector2, color: Color);
}
extern "C" {
    pub fn ImageDrawLine(
        dst: *mut Image,
        startPosX: ::std::os::raw::c_int,
        startPosY: ::std::os::raw::c_int,
        endPosX: ::std::os::raw::c_int,
        endPosY: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn ImageDrawLineV(dst: *mut Image, start: Vector2, end: Vector2, color: Color);
}
extern "C" {
    pub fn ImageDrawCircle(
        dst: *mut Image,
        centerX: ::std::os::raw::c_int,
        centerY: ::std::os::raw::c_int,
        radius: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn ImageDrawCircleV(
        dst: *mut Image,
        center: Vector2,
        radius: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn ImageDrawRectangle(
        dst: *mut Image,
        posX: ::std::os::raw::c_int,
        posY: ::std::os::raw::c_int,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn ImageDrawRectangleV(dst: *mut Image, position: Vector2, size: Vector2, color: Color);
}
extern "C" {
    pub fn ImageDrawRectangleRec(dst: *mut Image, rec: Rectangle, color: Color);
}
extern "C" {
    pub fn ImageDrawRectangleLines(
        dst: *mut Image,
        rec: Rectangle,
        thick: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn ImageDraw(
        dst: *mut Image,
        src: Image,
        srcRec: Rectangle,
        dstRec: Rectangle,
        tint: Color,
    );
}
extern "C" {
    pub fn ImageDrawText(
        dst: *mut Image,
        position: Vector2,
        text: *const ::std::os::raw::c_char,
        fontSize: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn ImageDrawTextEx(
        dst: *mut Image,
        position: Vector2,
        font: Font,
        text: *const ::std::os::raw::c_char,
        fontSize: f32,
        spacing: f32,
        color: Color,
    );
}
extern "C" {
    pub fn LoadTexture(fileName: *const ::std::os::raw::c_char) -> Texture2D;
}
extern "C" {
    pub fn LoadTextureFromImage(image: Image) -> Texture2D;
}
extern "C" {
    pub fn LoadTextureCubemap(image: Image, layoutType: ::std::os::raw::c_int) -> TextureCubemap;
}
extern "C" {
    pub fn LoadRenderTexture(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) -> RenderTexture2D;
}
extern "C" {
    pub fn UnloadTexture(texture: Texture2D);
}
extern "C" {
    pub fn UnloadRenderTexture(target: RenderTexture2D);
}
extern "C" {
    pub fn UpdateTexture(texture: Texture2D, pixels: *const ::std::os::raw::c_void);
}
extern "C" {
    pub fn GetTextureData(texture: Texture2D) -> Image;
}
extern "C" {
    pub fn GetScreenData() -> Image;
}
extern "C" {
    pub fn GenTextureMipmaps(texture: *mut Texture2D);
}
extern "C" {
    pub fn SetTextureFilter(texture: Texture2D, filterMode: ::std::os::raw::c_int);
}
extern "C" {
    pub fn SetTextureWrap(texture: Texture2D, wrapMode: ::std::os::raw::c_int);
}
extern "C" {
    pub fn DrawTexture(
        texture: Texture2D,
        posX: ::std::os::raw::c_int,
        posY: ::std::os::raw::c_int,
        tint: Color,
    );
}
extern "C" {
    pub fn DrawTextureV(texture: Texture2D, position: Vector2, tint: Color);
}
extern "C" {
    pub fn DrawTextureEx(
        texture: Texture2D,
        position: Vector2,
        rotation: f32,
        scale: f32,
        tint: Color,
    );
}
extern "C" {
    pub fn DrawTextureRec(texture: Texture2D, sourceRec: Rectangle, position: Vector2, tint: Color);
}
extern "C" {
    pub fn DrawTextureQuad(
        texture: Texture2D,
        tiling: Vector2,
        offset: Vector2,
        quad: Rectangle,
        tint: Color,
    );
}
extern "C" {
    pub fn DrawTexturePro(
        texture: Texture2D,
        sourceRec: Rectangle,
        destRec: Rectangle,
        origin: Vector2,
        rotation: f32,
        tint: Color,
    );
}
extern "C" {
    pub fn DrawTextureNPatch(
        texture: Texture2D,
        nPatchInfo: NPatchInfo,
        destRec: Rectangle,
        origin: Vector2,
        rotation: f32,
        tint: Color,
    );
}
extern "C" {
    pub fn GetPixelDataSize(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        format: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetFontDefault() -> Font;
}
extern "C" {
    pub fn LoadFont(fileName: *const ::std::os::raw::c_char) -> Font;
}
extern "C" {
    pub fn LoadFontEx(
        fileName: *const ::std::os::raw::c_char,
        fontSize: ::std::os::raw::c_int,
        fontChars: *mut ::std::os::raw::c_int,
        charsCount: ::std::os::raw::c_int,
    ) -> Font;
}
extern "C" {
    pub fn LoadFontFromImage(image: Image, key: Color, firstChar: ::std::os::raw::c_int) -> Font;
}
extern "C" {
    pub fn LoadFontData(
        fileName: *const ::std::os::raw::c_char,
        fontSize: ::std::os::raw::c_int,
        fontChars: *mut ::std::os::raw::c_int,
        charsCount: ::std::os::raw::c_int,
        type_: ::std::os::raw::c_int,
    ) -> *mut CharInfo;
}
extern "C" {
    pub fn GenImageFontAtlas(
        chars: *const CharInfo,
        recs: *mut *mut Rectangle,
        charsCount: ::std::os::raw::c_int,
        fontSize: ::std::os::raw::c_int,
        padding: ::std::os::raw::c_int,
        packMethod: ::std::os::raw::c_int,
    ) -> Image;
}
extern "C" {
    pub fn UnloadFont(font: Font);
}
extern "C" {
    pub fn DrawFPS(posX: ::std::os::raw::c_int, posY: ::std::os::raw::c_int);
}
extern "C" {
    pub fn DrawText(
        text: *const ::std::os::raw::c_char,
        posX: ::std::os::raw::c_int,
        posY: ::std::os::raw::c_int,
        fontSize: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn DrawTextEx(
        font: Font,
        text: *const ::std::os::raw::c_char,
        position: Vector2,
        fontSize: f32,
        spacing: f32,
        tint: Color,
    );
}
extern "C" {
    pub fn DrawTextRec(
        font: Font,
        text: *const ::std::os::raw::c_char,
        rec: Rectangle,
        fontSize: f32,
        spacing: f32,
        wordWrap: bool,
        tint: Color,
    );
}
extern "C" {
    pub fn DrawTextRecEx(
        font: Font,
        text: *const ::std::os::raw::c_char,
        rec: Rectangle,
        fontSize: f32,
        spacing: f32,
        wordWrap: bool,
        tint: Color,
        selectStart: ::std::os::raw::c_int,
        selectLength: ::std::os::raw::c_int,
        selectTint: Color,
        selectBackTint: Color,
    );
}
extern "C" {
    pub fn DrawTextCodepoint(
        font: Font,
        codepoint: ::std::os::raw::c_int,
        position: Vector2,
        scale: f32,
        tint: Color,
    );
}
extern "C" {
    pub fn MeasureText(
        text: *const ::std::os::raw::c_char,
        fontSize: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn MeasureTextEx(
        font: Font,
        text: *const ::std::os::raw::c_char,
        fontSize: f32,
        spacing: f32,
    ) -> Vector2;
}
extern "C" {
    pub fn GetGlyphIndex(font: Font, codepoint: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn TextCopy(
        dst: *mut ::std::os::raw::c_char,
        src: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn TextIsEqual(
        text1: *const ::std::os::raw::c_char,
        text2: *const ::std::os::raw::c_char,
    ) -> bool;
}
extern "C" {
    pub fn TextLength(text: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn TextFormat(text: *const ::std::os::raw::c_char, ...) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn TextSubtext(
        text: *const ::std::os::raw::c_char,
        position: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn TextReplace(
        text: *mut ::std::os::raw::c_char,
        replace: *const ::std::os::raw::c_char,
        by: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn TextInsert(
        text: *const ::std::os::raw::c_char,
        insert: *const ::std::os::raw::c_char,
        position: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn TextJoin(
        textList: *mut *const ::std::os::raw::c_char,
        count: ::std::os::raw::c_int,
        delimiter: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn TextSplit(
        text: *const ::std::os::raw::c_char,
        delimiter: ::std::os::raw::c_char,
        count: *mut ::std::os::raw::c_int,
    ) -> *mut *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn TextAppend(
        text: *mut ::std::os::raw::c_char,
        append: *const ::std::os::raw::c_char,
        position: *mut ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn TextFindIndex(
        text: *const ::std::os::raw::c_char,
        find: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn TextToUpper(text: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn TextToLower(text: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn TextToPascal(text: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn TextToInteger(text: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn TextToUtf8(
        codepoints: *mut ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn GetCodepoints(
        text: *const ::std::os::raw::c_char,
        count: *mut ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetCodepointsCount(text: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetNextCodepoint(
        text: *const ::std::os::raw::c_char,
        bytesProcessed: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn CodepointToUtf8(
        codepoint: ::std::os::raw::c_int,
        byteLength: *mut ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn DrawLine3D(startPos: Vector3, endPos: Vector3, color: Color);
}
extern "C" {
    pub fn DrawPoint3D(position: Vector3, color: Color);
}
extern "C" {
    pub fn DrawCircle3D(
        center: Vector3,
        radius: f32,
        rotationAxis: Vector3,
        rotationAngle: f32,
        color: Color,
    );
}
extern "C" {
    pub fn DrawCube(position: Vector3, width: f32, height: f32, length: f32, color: Color);
}
extern "C" {
    pub fn DrawCubeV(position: Vector3, size: Vector3, color: Color);
}
extern "C" {
    pub fn DrawCubeWires(position: Vector3, width: f32, height: f32, length: f32, color: Color);
}
extern "C" {
    pub fn DrawCubeWiresV(position: Vector3, size: Vector3, color: Color);
}
extern "C" {
    pub fn DrawCubeTexture(
        texture: Texture2D,
        position: Vector3,
        width: f32,
        height: f32,
        length: f32,
        color: Color,
    );
}
extern "C" {
    pub fn DrawSphere(centerPos: Vector3, radius: f32, color: Color);
}
extern "C" {
    pub fn DrawSphereEx(
        centerPos: Vector3,
        radius: f32,
        rings: ::std::os::raw::c_int,
        slices: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn DrawSphereWires(
        centerPos: Vector3,
        radius: f32,
        rings: ::std::os::raw::c_int,
        slices: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn DrawCylinder(
        position: Vector3,
        radiusTop: f32,
        radiusBottom: f32,
        height: f32,
        slices: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn DrawCylinderWires(
        position: Vector3,
        radiusTop: f32,
        radiusBottom: f32,
        height: f32,
        slices: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn DrawPlane(centerPos: Vector3, size: Vector2, color: Color);
}
extern "C" {
    pub fn DrawRay(ray: Ray, color: Color);
}
extern "C" {
    pub fn DrawGrid(slices: ::std::os::raw::c_int, spacing: f32);
}
extern "C" {
    pub fn DrawGizmo(position: Vector3);
}
extern "C" {
    pub fn LoadModel(fileName: *const ::std::os::raw::c_char) -> Model;
}
extern "C" {
    pub fn LoadModelFromMesh(mesh: Mesh) -> Model;
}
extern "C" {
    pub fn UnloadModel(model: Model);
}
extern "C" {
    pub fn LoadMeshes(
        fileName: *const ::std::os::raw::c_char,
        meshCount: *mut ::std::os::raw::c_int,
    ) -> *mut Mesh;
}
extern "C" {
    pub fn ExportMesh(mesh: Mesh, fileName: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn UnloadMesh(mesh: Mesh);
}
extern "C" {
    pub fn LoadMaterials(
        fileName: *const ::std::os::raw::c_char,
        materialCount: *mut ::std::os::raw::c_int,
    ) -> *mut Material;
}
extern "C" {
    pub fn LoadMaterialDefault() -> Material;
}
extern "C" {
    pub fn UnloadMaterial(material: Material);
}
extern "C" {
    pub fn SetMaterialTexture(
        material: *mut Material,
        mapType: ::std::os::raw::c_int,
        texture: Texture2D,
    );
}
extern "C" {
    pub fn SetModelMeshMaterial(
        model: *mut Model,
        meshId: ::std::os::raw::c_int,
        materialId: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn LoadModelAnimations(
        fileName: *const ::std::os::raw::c_char,
        animsCount: *mut ::std::os::raw::c_int,
    ) -> *mut ModelAnimation;
}
extern "C" {
    pub fn UpdateModelAnimation(model: Model, anim: ModelAnimation, frame: ::std::os::raw::c_int);
}
extern "C" {
    pub fn UnloadModelAnimation(anim: ModelAnimation);
}
extern "C" {
    pub fn IsModelAnimationValid(model: Model, anim: ModelAnimation) -> bool;
}
extern "C" {
    pub fn GenMeshPoly(sides: ::std::os::raw::c_int, radius: f32) -> Mesh;
}
extern "C" {
    pub fn GenMeshPlane(
        width: f32,
        length: f32,
        resX: ::std::os::raw::c_int,
        resZ: ::std::os::raw::c_int,
    ) -> Mesh;
}
extern "C" {
    pub fn GenMeshCube(width: f32, height: f32, length: f32) -> Mesh;
}
extern "C" {
    pub fn GenMeshSphere(
        radius: f32,
        rings: ::std::os::raw::c_int,
        slices: ::std::os::raw::c_int,
    ) -> Mesh;
}
extern "C" {
    pub fn GenMeshHemiSphere(
        radius: f32,
        rings: ::std::os::raw::c_int,
        slices: ::std::os::raw::c_int,
    ) -> Mesh;
}
extern "C" {
    pub fn GenMeshCylinder(radius: f32, height: f32, slices: ::std::os::raw::c_int) -> Mesh;
}
extern "C" {
    pub fn GenMeshTorus(
        radius: f32,
        size: f32,
        radSeg: ::std::os::raw::c_int,
        sides: ::std::os::raw::c_int,
    ) -> Mesh;
}
extern "C" {
    pub fn GenMeshKnot(
        radius: f32,
        size: f32,
        radSeg: ::std::os::raw::c_int,
        sides: ::std::os::raw::c_int,
    ) -> Mesh;
}
extern "C" {
    pub fn GenMeshHeightmap(heightmap: Image, size: Vector3) -> Mesh;
}
extern "C" {
    pub fn GenMeshCubicmap(cubicmap: Image, cubeSize: Vector3) -> Mesh;
}
extern "C" {
    pub fn MeshBoundingBox(mesh: Mesh) -> BoundingBox;
}
extern "C" {
    pub fn MeshTangents(mesh: *mut Mesh);
}
extern "C" {
    pub fn MeshBinormals(mesh: *mut Mesh);
}
extern "C" {
    pub fn DrawModel(model: Model, position: Vector3, scale: f32, tint: Color);
}
extern "C" {
    pub fn DrawModelEx(
        model: Model,
        position: Vector3,
        rotationAxis: Vector3,
        rotationAngle: f32,
        scale: Vector3,
        tint: Color,
    );
}
extern "C" {
    pub fn DrawModelWires(model: Model, position: Vector3, scale: f32, tint: Color);
}
extern "C" {
    pub fn DrawModelWiresEx(
        model: Model,
        position: Vector3,
        rotationAxis: Vector3,
        rotationAngle: f32,
        scale: Vector3,
        tint: Color,
    );
}
extern "C" {
    pub fn DrawBoundingBox(box_: BoundingBox, color: Color);
}
extern "C" {
    pub fn DrawBillboard(
        camera: Camera,
        texture: Texture2D,
        center: Vector3,
        size: f32,
        tint: Color,
    );
}
extern "C" {
    pub fn DrawBillboardRec(
        camera: Camera,
        texture: Texture2D,
        sourceRec: Rectangle,
        center: Vector3,
        size: f32,
        tint: Color,
    );
}
extern "C" {
    pub fn CheckCollisionSpheres(
        centerA: Vector3,
        radiusA: f32,
        centerB: Vector3,
        radiusB: f32,
    ) -> bool;
}
extern "C" {
    pub fn CheckCollisionBoxes(box1: BoundingBox, box2: BoundingBox) -> bool;
}
extern "C" {
    pub fn CheckCollisionBoxSphere(box_: BoundingBox, center: Vector3, radius: f32) -> bool;
}
extern "C" {
    pub fn CheckCollisionRaySphere(ray: Ray, center: Vector3, radius: f32) -> bool;
}
extern "C" {
    pub fn CheckCollisionRaySphereEx(
        ray: Ray,
        center: Vector3,
        radius: f32,
        collisionPoint: *mut Vector3,
    ) -> bool;
}
extern "C" {
    pub fn CheckCollisionRayBox(ray: Ray, box_: BoundingBox) -> bool;
}
extern "C" {
    pub fn GetCollisionRayModel(ray: Ray, model: Model) -> RayHitInfo;
}
extern "C" {
    pub fn GetCollisionRayTriangle(ray: Ray, p1: Vector3, p2: Vector3, p3: Vector3) -> RayHitInfo;
}
extern "C" {
    pub fn GetCollisionRayGround(ray: Ray, groundHeight: f32) -> RayHitInfo;
}
extern "C" {
    pub fn LoadShader(
        vsFileName: *const ::std::os::raw::c_char,
        fsFileName: *const ::std::os::raw::c_char,
    ) -> Shader;
}
extern "C" {
    pub fn LoadShaderCode(
        vsCode: *const ::std::os::raw::c_char,
        fsCode: *const ::std::os::raw::c_char,
    ) -> Shader;
}
extern "C" {
    pub fn UnloadShader(shader: Shader);
}
extern "C" {
    pub fn GetShaderDefault() -> Shader;
}
extern "C" {
    pub fn GetTextureDefault() -> Texture2D;
}
extern "C" {
    pub fn GetShapesTexture() -> Texture2D;
}
extern "C" {
    pub fn GetShapesTextureRec() -> Rectangle;
}
extern "C" {
    pub fn SetShapesTexture(texture: Texture2D, source: Rectangle);
}
extern "C" {
    pub fn GetShaderLocation(
        shader: Shader,
        uniformName: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetShaderValue(
        shader: Shader,
        uniformLoc: ::std::os::raw::c_int,
        value: *const ::std::os::raw::c_void,
        uniformType: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn SetShaderValueV(
        shader: Shader,
        uniformLoc: ::std::os::raw::c_int,
        value: *const ::std::os::raw::c_void,
        uniformType: ::std::os::raw::c_int,
        count: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn SetShaderValueMatrix(shader: Shader, uniformLoc: ::std::os::raw::c_int, mat: Matrix);
}
extern "C" {
    pub fn SetShaderValueTexture(
        shader: Shader,
        uniformLoc: ::std::os::raw::c_int,
        texture: Texture2D,
    );
}
extern "C" {
    pub fn SetMatrixProjection(proj: Matrix);
}
extern "C" {
    pub fn SetMatrixModelview(view: Matrix);
}
extern "C" {
    pub fn GetMatrixModelview() -> Matrix;
}
extern "C" {
    pub fn GetMatrixProjection() -> Matrix;
}
extern "C" {
    pub fn GenTextureCubemap(
        shader: Shader,
        map: Texture2D,
        size: ::std::os::raw::c_int,
    ) -> Texture2D;
}
extern "C" {
    pub fn GenTextureIrradiance(
        shader: Shader,
        cubemap: Texture2D,
        size: ::std::os::raw::c_int,
    ) -> Texture2D;
}
extern "C" {
    pub fn GenTexturePrefilter(
        shader: Shader,
        cubemap: Texture2D,
        size: ::std::os::raw::c_int,
    ) -> Texture2D;
}
extern "C" {
    pub fn GenTextureBRDF(shader: Shader, size: ::std::os::raw::c_int) -> Texture2D;
}
extern "C" {
    pub fn BeginShaderMode(shader: Shader);
}
extern "C" {
    pub fn EndShaderMode();
}
extern "C" {
    pub fn BeginBlendMode(mode: ::std::os::raw::c_int);
}
extern "C" {
    pub fn EndBlendMode();
}
extern "C" {
    pub fn InitVrSimulator();
}
extern "C" {
    pub fn CloseVrSimulator();
}
extern "C" {
    pub fn UpdateVrTracking(camera: *mut Camera);
}
extern "C" {
    pub fn SetVrConfiguration(info: VrDeviceInfo, distortion: Shader);
}
extern "C" {
    pub fn IsVrSimulatorReady() -> bool;
}
extern "C" {
    pub fn ToggleVrMode();
}
extern "C" {
    pub fn BeginVrDrawing();
}
extern "C" {
    pub fn EndVrDrawing();
}
extern "C" {
    pub fn InitAudioDevice();
}
extern "C" {
    pub fn CloseAudioDevice();
}
extern "C" {
    pub fn IsAudioDeviceReady() -> bool;
}
extern "C" {
    pub fn SetMasterVolume(volume: f32);
}
extern "C" {
    pub fn LoadWave(fileName: *const ::std::os::raw::c_char) -> Wave;
}
extern "C" {
    pub fn LoadSound(fileName: *const ::std::os::raw::c_char) -> Sound;
}
extern "C" {
    pub fn LoadSoundFromWave(wave: Wave) -> Sound;
}
extern "C" {
    pub fn UpdateSound(
        sound: Sound,
        data: *const ::std::os::raw::c_void,
        samplesCount: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn UnloadWave(wave: Wave);
}
extern "C" {
    pub fn UnloadSound(sound: Sound);
}
extern "C" {
    pub fn ExportWave(wave: Wave, fileName: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn ExportWaveAsCode(wave: Wave, fileName: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn PlaySound(sound: Sound);
}
extern "C" {
    pub fn StopSound(sound: Sound);
}
extern "C" {
    pub fn PauseSound(sound: Sound);
}
extern "C" {
    pub fn ResumeSound(sound: Sound);
}
extern "C" {
    pub fn PlaySoundMulti(sound: Sound);
}
extern "C" {
    pub fn StopSoundMulti();
}
extern "C" {
    pub fn GetSoundsPlaying() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn IsSoundPlaying(sound: Sound) -> bool;
}
extern "C" {
    pub fn SetSoundVolume(sound: Sound, volume: f32);
}
extern "C" {
    pub fn SetSoundPitch(sound: Sound, pitch: f32);
}
extern "C" {
    pub fn WaveFormat(
        wave: *mut Wave,
        sampleRate: ::std::os::raw::c_int,
        sampleSize: ::std::os::raw::c_int,
        channels: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn WaveCopy(wave: Wave) -> Wave;
}
extern "C" {
    pub fn WaveCrop(
        wave: *mut Wave,
        initSample: ::std::os::raw::c_int,
        finalSample: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn GetWaveData(wave: Wave) -> *mut f32;
}
extern "C" {
    pub fn LoadMusicStream(fileName: *const ::std::os::raw::c_char) -> Music;
}
extern "C" {
    pub fn UnloadMusicStream(music: Music);
}
extern "C" {
    pub fn PlayMusicStream(music: Music);
}
extern "C" {
    pub fn UpdateMusicStream(music: Music);
}
extern "C" {
    pub fn StopMusicStream(music: Music);
}
extern "C" {
    pub fn PauseMusicStream(music: Music);
}
extern "C" {
    pub fn ResumeMusicStream(music: Music);
}
extern "C" {
    pub fn IsMusicPlaying(music: Music) -> bool;
}
extern "C" {
    pub fn SetMusicVolume(music: Music, volume: f32);
}
extern "C" {
    pub fn SetMusicPitch(music: Music, pitch: f32);
}
extern "C" {
    pub fn SetMusicLoopCount(music: Music, count: ::std::os::raw::c_int);
}
extern "C" {
    pub fn GetMusicTimeLength(music: Music) -> f32;
}
extern "C" {
    pub fn GetMusicTimePlayed(music: Music) -> f32;
}
extern "C" {
    pub fn InitAudioStream(
        sampleRate: ::std::os::raw::c_uint,
        sampleSize: ::std::os::raw::c_uint,
        channels: ::std::os::raw::c_uint,
    ) -> AudioStream;
}
extern "C" {
    pub fn UpdateAudioStream(
        stream: AudioStream,
        data: *const ::std::os::raw::c_void,
        samplesCount: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn CloseAudioStream(stream: AudioStream);
}
extern "C" {
    pub fn IsAudioStreamProcessed(stream: AudioStream) -> bool;
}
extern "C" {
    pub fn PlayAudioStream(stream: AudioStream);
}
extern "C" {
    pub fn PauseAudioStream(stream: AudioStream);
}
extern "C" {
    pub fn ResumeAudioStream(stream: AudioStream);
}
extern "C" {
    pub fn IsAudioStreamPlaying(stream: AudioStream) -> bool;
}
extern "C" {
    pub fn StopAudioStream(stream: AudioStream);
}
extern "C" {
    pub fn SetAudioStreamVolume(stream: AudioStream, volume: f32);
}
extern "C" {
    pub fn SetAudioStreamPitch(stream: AudioStream, pitch: f32);
}
extern "C" {
    pub fn SetAudioStreamBufferSizeDefault(size: ::std::os::raw::c_int);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct float3 {
    pub v: [f32; 3usize],
}
#[test]
fn bindgen_test_layout_float3() {
    assert_eq!(
        ::std::mem::size_of::<float3>(),
        12usize,
        concat!("Size of: ", stringify!(float3))
    );
    assert_eq!(
        ::std::mem::align_of::<float3>(),
        4usize,
        concat!("Alignment of ", stringify!(float3))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<float3>())).v as *const _ as usize },
        0usize,
        concat!("Offset of field: ", stringify!(float3), "::", stringify!(v))
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct float16 {
    pub v: [f32; 16usize],
}
#[test]
fn bindgen_test_layout_float16() {
    assert_eq!(
        ::std::mem::size_of::<float16>(),
        64usize,
        concat!("Size of: ", stringify!(float16))
    );
    assert_eq!(
        ::std::mem::align_of::<float16>(),
        4usize,
        concat!("Alignment of ", stringify!(float16))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<float16>())).v as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(float16),
            "::",
            stringify!(v)
        )
    );
}
pub type float_t = f32;
pub type double_t = f64;

#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum _bindgen_ty_1 {
    FP_NAN = 0,
    FP_INFINITE = 1,
    FP_ZERO = 2,
    FP_SUBNORMAL = 3,
    FP_NORMAL = 4,
}
extern "C" {
    pub fn Clamp(value: f32, min: f32, max: f32) -> f32;
}
extern "C" {
    pub fn Lerp(start: f32, end: f32, amount: f32) -> f32;
}
extern "C" {
    pub fn Vector2Zero() -> Vector2;
}
extern "C" {
    pub fn Vector2One() -> Vector2;
}
extern "C" {
    pub fn Vector2Add(v1: Vector2, v2: Vector2) -> Vector2;
}
extern "C" {
    pub fn Vector2Subtract(v1: Vector2, v2: Vector2) -> Vector2;
}
extern "C" {
    pub fn Vector2Length(v: Vector2) -> f32;
}
extern "C" {
    pub fn Vector2DotProduct(v1: Vector2, v2: Vector2) -> f32;
}
extern "C" {
    pub fn Vector2Distance(v1: Vector2, v2: Vector2) -> f32;
}
extern "C" {
    pub fn Vector2Angle(v1: Vector2, v2: Vector2) -> f32;
}
extern "C" {
    pub fn Vector2Scale(v: Vector2, scale: f32) -> Vector2;
}
extern "C" {
    pub fn Vector2MultiplyV(v1: Vector2, v2: Vector2) -> Vector2;
}
extern "C" {
    pub fn Vector2Negate(v: Vector2) -> Vector2;
}
extern "C" {
    pub fn Vector2Divide(v: Vector2, div: f32) -> Vector2;
}
extern "C" {
    pub fn Vector2DivideV(v1: Vector2, v2: Vector2) -> Vector2;
}
extern "C" {
    pub fn Vector2Normalize(v: Vector2) -> Vector2;
}
extern "C" {
    pub fn Vector2Lerp(v1: Vector2, v2: Vector2, amount: f32) -> Vector2;
}
extern "C" {
    pub fn Vector2Rotate(v: Vector2, degs: f32) -> Vector2;
}
extern "C" {
    pub fn Vector3Zero() -> Vector3;
}
extern "C" {
    pub fn Vector3One() -> Vector3;
}
extern "C" {
    pub fn Vector3Add(v1: Vector3, v2: Vector3) -> Vector3;
}
extern "C" {
    pub fn Vector3Subtract(v1: Vector3, v2: Vector3) -> Vector3;
}
extern "C" {
    pub fn Vector3Scale(v: Vector3, scalar: f32) -> Vector3;
}
extern "C" {
    pub fn Vector3Multiply(v1: Vector3, v2: Vector3) -> Vector3;
}
extern "C" {
    pub fn Vector3CrossProduct(v1: Vector3, v2: Vector3) -> Vector3;
}
extern "C" {
    pub fn Vector3Perpendicular(v: Vector3) -> Vector3;
}
extern "C" {
    pub fn Vector3Length(v: Vector3) -> f32;
}
extern "C" {
    pub fn Vector3DotProduct(v1: Vector3, v2: Vector3) -> f32;
}
extern "C" {
    pub fn Vector3Distance(v1: Vector3, v2: Vector3) -> f32;
}
extern "C" {
    pub fn Vector3Negate(v: Vector3) -> Vector3;
}
extern "C" {
    pub fn Vector3Divide(v: Vector3, div: f32) -> Vector3;
}
extern "C" {
    pub fn Vector3DivideV(v1: Vector3, v2: Vector3) -> Vector3;
}
extern "C" {
    pub fn Vector3Normalize(v: Vector3) -> Vector3;
}
extern "C" {
    pub fn Vector3OrthoNormalize(v1: *mut Vector3, v2: *mut Vector3);
}
extern "C" {
    pub fn Vector3Transform(v: Vector3, mat: Matrix) -> Vector3;
}
extern "C" {
    pub fn Vector3RotateByQuaternion(v: Vector3, q: Quaternion) -> Vector3;
}
extern "C" {
    pub fn Vector3Lerp(v1: Vector3, v2: Vector3, amount: f32) -> Vector3;
}
extern "C" {
    pub fn Vector3Reflect(v: Vector3, normal: Vector3) -> Vector3;
}
extern "C" {
    pub fn Vector3Min(v1: Vector3, v2: Vector3) -> Vector3;
}
extern "C" {
    pub fn Vector3Max(v1: Vector3, v2: Vector3) -> Vector3;
}
extern "C" {
    pub fn Vector3Barycenter(p: Vector3, a: Vector3, b: Vector3, c: Vector3) -> Vector3;
}
extern "C" {
    pub fn Vector3ToFloatV(v: Vector3) -> float3;
}
extern "C" {
    pub fn MatrixDeterminant(mat: Matrix) -> f32;
}
extern "C" {
    pub fn MatrixTrace(mat: Matrix) -> f32;
}
extern "C" {
    pub fn MatrixTranspose(mat: Matrix) -> Matrix;
}
extern "C" {
    pub fn MatrixInvert(mat: Matrix) -> Matrix;
}
extern "C" {
    pub fn MatrixNormalize(mat: Matrix) -> Matrix;
}
extern "C" {
    pub fn MatrixIdentity() -> Matrix;
}
extern "C" {
    pub fn MatrixAdd(left: Matrix, right: Matrix) -> Matrix;
}
extern "C" {
    pub fn MatrixSubtract(left: Matrix, right: Matrix) -> Matrix;
}
extern "C" {
    pub fn MatrixTranslate(x: f32, y: f32, z: f32) -> Matrix;
}
extern "C" {
    pub fn MatrixRotate(axis: Vector3, angle: f32) -> Matrix;
}
extern "C" {
    pub fn MatrixRotateXYZ(ang: Vector3) -> Matrix;
}
extern "C" {
    pub fn MatrixRotateX(angle: f32) -> Matrix;
}
extern "C" {
    pub fn MatrixRotateY(angle: f32) -> Matrix;
}
extern "C" {
    pub fn MatrixRotateZ(angle: f32) -> Matrix;
}
extern "C" {
    pub fn MatrixScale(x: f32, y: f32, z: f32) -> Matrix;
}
extern "C" {
    pub fn MatrixMultiply(left: Matrix, right: Matrix) -> Matrix;
}
extern "C" {
    pub fn MatrixFrustum(
        left: f64,
        right: f64,
        bottom: f64,
        top: f64,
        near: f64,
        far: f64,
    ) -> Matrix;
}
extern "C" {
    pub fn MatrixPerspective(fovy: f64, aspect: f64, near: f64, far: f64) -> Matrix;
}
extern "C" {
    pub fn MatrixOrtho(left: f64, right: f64, bottom: f64, top: f64, near: f64, far: f64)
        -> Matrix;
}
extern "C" {
    pub fn MatrixLookAt(eye: Vector3, target: Vector3, up: Vector3) -> Matrix;
}
extern "C" {
    pub fn MatrixToFloatV(mat: Matrix) -> float16;
}
extern "C" {
    pub fn QuaternionIdentity() -> Quaternion;
}
extern "C" {
    pub fn QuaternionLength(q: Quaternion) -> f32;
}
extern "C" {
    pub fn QuaternionNormalize(q: Quaternion) -> Quaternion;
}
extern "C" {
    pub fn QuaternionInvert(q: Quaternion) -> Quaternion;
}
extern "C" {
    pub fn QuaternionMultiply(q1: Quaternion, q2: Quaternion) -> Quaternion;
}
extern "C" {
    pub fn QuaternionLerp(q1: Quaternion, q2: Quaternion, amount: f32) -> Quaternion;
}
extern "C" {
    pub fn QuaternionNlerp(q1: Quaternion, q2: Quaternion, amount: f32) -> Quaternion;
}
extern "C" {
    pub fn QuaternionSlerp(q1: Quaternion, q2: Quaternion, amount: f32) -> Quaternion;
}
extern "C" {
    pub fn QuaternionFromVector3ToVector3(from: Vector3, to: Vector3) -> Quaternion;
}
extern "C" {
    pub fn QuaternionFromMatrix(mat: Matrix) -> Quaternion;
}
extern "C" {
    pub fn QuaternionToMatrix(q: Quaternion) -> Matrix;
}
extern "C" {
    pub fn QuaternionFromAxisAngle(axis: Vector3, angle: f32) -> Quaternion;
}
extern "C" {
    pub fn QuaternionToAxisAngle(q: Quaternion, outAxis: *mut Vector3, outAngle: *mut f32);
}
extern "C" {
    pub fn QuaternionFromEuler(roll: f32, pitch: f32, yaw: f32) -> Quaternion;
}
extern "C" {
    pub fn QuaternionToEuler(q: Quaternion) -> Vector3;
}
extern "C" {
    pub fn QuaternionTransform(q: Quaternion, mat: Matrix) -> Quaternion;
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GlVersion {
    OPENGL_11 = 1,
    OPENGL_21 = 2,
    OPENGL_33 = 3,
    OPENGL_ES_20 = 4,
}
pub type byte = ::std::os::raw::c_uchar;
extern "C" {
    pub fn rlMatrixMode(mode: ::std::os::raw::c_int);
}
extern "C" {
    pub fn rlPushMatrix();
}
extern "C" {
    pub fn rlPopMatrix();
}
extern "C" {
    pub fn rlLoadIdentity();
}
extern "C" {
    pub fn rlTranslatef(x: f32, y: f32, z: f32);
}
extern "C" {
    pub fn rlRotatef(angleDeg: f32, x: f32, y: f32, z: f32);
}
extern "C" {
    pub fn rlScalef(x: f32, y: f32, z: f32);
}
extern "C" {
    pub fn rlMultMatrixf(matf: *mut f32);
}
extern "C" {
    pub fn rlFrustum(left: f64, right: f64, bottom: f64, top: f64, znear: f64, zfar: f64);
}
extern "C" {
    pub fn rlOrtho(left: f64, right: f64, bottom: f64, top: f64, znear: f64, zfar: f64);
}
extern "C" {
    pub fn rlViewport(
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn rlBegin(mode: ::std::os::raw::c_int);
}
extern "C" {
    pub fn rlEnd();
}
extern "C" {
    pub fn rlVertex2i(x: ::std::os::raw::c_int, y: ::std::os::raw::c_int);
}
extern "C" {
    pub fn rlVertex2f(x: f32, y: f32);
}
extern "C" {
    pub fn rlVertex3f(x: f32, y: f32, z: f32);
}
extern "C" {
    pub fn rlTexCoord2f(x: f32, y: f32);
}
extern "C" {
    pub fn rlNormal3f(x: f32, y: f32, z: f32);
}
extern "C" {
    pub fn rlColor4ub(r: byte, g: byte, b: byte, a: byte);
}
extern "C" {
    pub fn rlColor3f(x: f32, y: f32, z: f32);
}
extern "C" {
    pub fn rlColor4f(x: f32, y: f32, z: f32, w: f32);
}
extern "C" {
    pub fn rlEnableTexture(id: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn rlDisableTexture();
}
extern "C" {
    pub fn rlTextureParameters(
        id: ::std::os::raw::c_uint,
        param: ::std::os::raw::c_int,
        value: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn rlEnableRenderTexture(id: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn rlDisableRenderTexture();
}
extern "C" {
    pub fn rlEnableDepthTest();
}
extern "C" {
    pub fn rlDisableDepthTest();
}
extern "C" {
    pub fn rlEnableBackfaceCulling();
}
extern "C" {
    pub fn rlDisableBackfaceCulling();
}
extern "C" {
    pub fn rlEnableScissorTest();
}
extern "C" {
    pub fn rlDisableScissorTest();
}
extern "C" {
    pub fn rlScissor(
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn rlEnableWireMode();
}
extern "C" {
    pub fn rlDisableWireMode();
}
extern "C" {
    pub fn rlDeleteTextures(id: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn rlDeleteRenderTextures(target: RenderTexture2D);
}
extern "C" {
    pub fn rlDeleteShader(id: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn rlDeleteVertexArrays(id: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn rlDeleteBuffers(id: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn rlClearColor(r: byte, g: byte, b: byte, a: byte);
}
extern "C" {
    pub fn rlClearScreenBuffers();
}
extern "C" {
    pub fn rlUpdateBuffer(
        bufferId: ::std::os::raw::c_int,
        data: *mut ::std::os::raw::c_void,
        dataSize: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn rlLoadAttribBuffer(
        vaoId: ::std::os::raw::c_uint,
        shaderLoc: ::std::os::raw::c_int,
        buffer: *mut ::std::os::raw::c_void,
        size: ::std::os::raw::c_int,
        dynamic: bool,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn rlglInit(width: ::std::os::raw::c_int, height: ::std::os::raw::c_int);
}
extern "C" {
    pub fn rlglClose();
}
extern "C" {
    pub fn rlglDraw();
}
extern "C" {
    pub fn rlGetVersion() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn rlCheckBufferLimit(vCount: ::std::os::raw::c_int) -> bool;
}
extern "C" {
    pub fn rlSetDebugMarker(text: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn rlLoadExtensions(loader: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn rlUnproject(source: Vector3, proj: Matrix, view: Matrix) -> Vector3;
}
extern "C" {
    pub fn rlLoadTexture(
        data: *mut ::std::os::raw::c_void,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        format: ::std::os::raw::c_int,
        mipmapCount: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn rlLoadTextureDepth(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        bits: ::std::os::raw::c_int,
        useRenderBuffer: bool,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn rlLoadTextureCubemap(
        data: *mut ::std::os::raw::c_void,
        size: ::std::os::raw::c_int,
        format: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn rlUpdateTexture(
        id: ::std::os::raw::c_uint,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        format: ::std::os::raw::c_int,
        data: *const ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn rlGetGlTextureFormats(
        format: ::std::os::raw::c_int,
        glInternalFormat: *mut ::std::os::raw::c_uint,
        glFormat: *mut ::std::os::raw::c_uint,
        glType: *mut ::std::os::raw::c_uint,
    );
}
extern "C" {
    pub fn rlUnloadTexture(id: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn rlGenerateMipmaps(texture: *mut Texture2D);
}
extern "C" {
    pub fn rlReadTexturePixels(texture: Texture2D) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn rlReadScreenPixels(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn rlLoadRenderTexture(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        format: ::std::os::raw::c_int,
        depthBits: ::std::os::raw::c_int,
        useDepthTexture: bool,
    ) -> RenderTexture2D;
}
extern "C" {
    pub fn rlRenderTextureAttach(
        target: RenderTexture,
        id: ::std::os::raw::c_uint,
        attachType: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn rlRenderTextureComplete(target: RenderTexture) -> bool;
}
extern "C" {
    pub fn rlLoadMesh(mesh: *mut Mesh, dynamic: bool);
}
extern "C" {
    pub fn rlUpdateMesh(mesh: Mesh, buffer: ::std::os::raw::c_int, num: ::std::os::raw::c_int);
}
extern "C" {
    pub fn rlUpdateMeshAt(
        mesh: Mesh,
        buffer: ::std::os::raw::c_int,
        num: ::std::os::raw::c_int,
        index: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn rlDrawMesh(mesh: Mesh, material: Material, transform: Matrix);
}
extern "C" {
    pub fn rlUnloadMesh(mesh: Mesh);
}
pub type size_t = ::std::os::raw::c_ulong;
pub type wchar_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct div_t {
    pub quot: ::std::os::raw::c_int,
    pub rem: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_div_t() {
    assert_eq!(
        ::std::mem::size_of::<div_t>(),
        8usize,
        concat!("Size of: ", stringify!(div_t))
    );
    assert_eq!(
        ::std::mem::align_of::<div_t>(),
        4usize,
        concat!("Alignment of ", stringify!(div_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<div_t>())).quot as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(div_t),
            "::",
            stringify!(quot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<div_t>())).rem as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(div_t),
            "::",
            stringify!(rem)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ldiv_t {
    pub quot: ::std::os::raw::c_long,
    pub rem: ::std::os::raw::c_long,
}
#[test]
fn bindgen_test_layout_ldiv_t() {
    assert_eq!(
        ::std::mem::size_of::<ldiv_t>(),
        16usize,
        concat!("Size of: ", stringify!(ldiv_t))
    );
    assert_eq!(
        ::std::mem::align_of::<ldiv_t>(),
        8usize,
        concat!("Alignment of ", stringify!(ldiv_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ldiv_t>())).quot as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ldiv_t),
            "::",
            stringify!(quot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ldiv_t>())).rem as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ldiv_t),
            "::",
            stringify!(rem)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct lldiv_t {
    pub quot: ::std::os::raw::c_longlong,
    pub rem: ::std::os::raw::c_longlong,
}
#[test]
fn bindgen_test_layout_lldiv_t() {
    assert_eq!(
        ::std::mem::size_of::<lldiv_t>(),
        16usize,
        concat!("Size of: ", stringify!(lldiv_t))
    );
    assert_eq!(
        ::std::mem::align_of::<lldiv_t>(),
        8usize,
        concat!("Alignment of ", stringify!(lldiv_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<lldiv_t>())).quot as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(lldiv_t),
            "::",
            stringify!(quot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<lldiv_t>())).rem as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(lldiv_t),
            "::",
            stringify!(rem)
        )
    );
}
extern "C" {
    pub fn __ctype_get_mb_cur_max() -> size_t;
}
extern "C" {
    pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64;
}
extern "C" {
    pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn strtod(
        __nptr: *const ::std::os::raw::c_char,
        __endptr: *mut *mut ::std::os::raw::c_char,
    ) -> f64;
}
extern "C" {
    pub fn strtof(
        __nptr: *const ::std::os::raw::c_char,
        __endptr: *mut *mut ::std::os::raw::c_char,
    ) -> f32;
}
extern "C" {
    pub fn strtold(
        __nptr: *const ::std::os::raw::c_char,
        __endptr: *mut *mut ::std::os::raw::c_char,
    ) -> u128;
}
extern "C" {
    pub fn strtol(
        __nptr: *const ::std::os::raw::c_char,
        __endptr: *mut *mut ::std::os::raw::c_char,
        __base: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn strtoul(
        __nptr: *const ::std::os::raw::c_char,
        __endptr: *mut *mut ::std::os::raw::c_char,
        __base: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn strtoll(
        __nptr: *const ::std::os::raw::c_char,
        __endptr: *mut *mut ::std::os::raw::c_char,
        __base: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn strtoull(
        __nptr: *const ::std::os::raw::c_char,
        __endptr: *mut *mut ::std::os::raw::c_char,
        __base: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn rand() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn srand(__seed: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn calloc(
        __nmemb: ::std::os::raw::c_ulong,
        __size: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn realloc(
        __ptr: *mut ::std::os::raw::c_void,
        __size: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn free(__ptr: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn aligned_alloc(__alignment: size_t, __size: size_t) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn abort();
}
extern "C" {
    pub fn atexit(__func: ::std::option::Option<unsafe extern "C" fn()>) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn at_quick_exit(
        __func: ::std::option::Option<unsafe extern "C" fn()>,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn exit(__status: ::std::os::raw::c_int);
}
extern "C" {
    pub fn quick_exit(__status: ::std::os::raw::c_int);
}
extern "C" {
    pub fn _Exit(__status: ::std::os::raw::c_int);
}
extern "C" {
    pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
pub type __compar_fn_t = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *const ::std::os::raw::c_void,
        arg2: *const ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int,
>;
extern "C" {
    pub fn bsearch(
        __key: *const ::std::os::raw::c_void,
        __base: *const ::std::os::raw::c_void,
        __nmemb: size_t,
        __size: size_t,
        __compar: __compar_fn_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn qsort(
        __base: *mut ::std::os::raw::c_void,
        __nmemb: size_t,
        __size: size_t,
        __compar: __compar_fn_t,
    );
}
extern "C" {
    pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t;
}
extern "C" {
    pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t;
}
extern "C" {
    pub fn lldiv(
        __numer: ::std::os::raw::c_longlong,
        __denom: ::std::os::raw::c_longlong,
    ) -> lldiv_t;
}
extern "C" {
    pub fn mblen(__s: *const ::std::os::raw::c_char, __n: size_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mbtowc(
        __pwc: *mut wchar_t,
        __s: *const ::std::os::raw::c_char,
        __n: size_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mbstowcs(
        __pwcs: *mut wchar_t,
        __s: *const ::std::os::raw::c_char,
        __n: size_t,
    ) -> size_t;
}
extern "C" {
    pub fn wcstombs(
        __s: *mut ::std::os::raw::c_char,
        __pwcs: *const wchar_t,
        __n: size_t,
    ) -> size_t;
}
extern "C" {
    pub fn memcpy(
        __dest: *mut ::std::os::raw::c_void,
        __src: *const ::std::os::raw::c_void,
        __n: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memmove(
        __dest: *mut ::std::os::raw::c_void,
        __src: *const ::std::os::raw::c_void,
        __n: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memset(
        __s: *mut ::std::os::raw::c_void,
        __c: ::std::os::raw::c_int,
        __n: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memcmp(
        __s1: *const ::std::os::raw::c_void,
        __s2: *const ::std::os::raw::c_void,
        __n: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn memchr(
        __s: *const ::std::os::raw::c_void,
        __c: ::std::os::raw::c_int,
        __n: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn strcpy(
        __dest: *mut ::std::os::raw::c_char,
        __src: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strncpy(
        __dest: *mut ::std::os::raw::c_char,
        __src: *const ::std::os::raw::c_char,
        __n: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strcat(
        __dest: *mut ::std::os::raw::c_char,
        __src: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strncat(
        __dest: *mut ::std::os::raw::c_char,
        __src: *const ::std::os::raw::c_char,
        __n: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strcmp(
        __s1: *const ::std::os::raw::c_char,
        __s2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strncmp(
        __s1: *const ::std::os::raw::c_char,
        __s2: *const ::std::os::raw::c_char,
        __n: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strcoll(
        __s1: *const ::std::os::raw::c_char,
        __s2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strxfrm(
        __dest: *mut ::std::os::raw::c_char,
        __src: *const ::std::os::raw::c_char,
        __n: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn strchr(
        __s: *const ::std::os::raw::c_char,
        __c: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strrchr(
        __s: *const ::std::os::raw::c_char,
        __c: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strcspn(
        __s: *const ::std::os::raw::c_char,
        __reject: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn strspn(
        __s: *const ::std::os::raw::c_char,
        __accept: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn strpbrk(
        __s: *const ::std::os::raw::c_char,
        __accept: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strstr(
        __haystack: *const ::std::os::raw::c_char,
        __needle: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strtok(
        __s: *mut ::std::os::raw::c_char,
        __delim: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn __strtok_r(
        __s: *mut ::std::os::raw::c_char,
        __delim: *const ::std::os::raw::c_char,
        __save_ptr: *mut *mut ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn __bzero(__s: *mut ::std::os::raw::c_void, __n: size_t);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gladGLversionStruct {
    pub major: ::std::os::raw::c_int,
    pub minor: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_gladGLversionStruct() {
    assert_eq!(
        ::std::mem::size_of::<gladGLversionStruct>(),
        8usize,
        concat!("Size of: ", stringify!(gladGLversionStruct))
    );
    assert_eq!(
        ::std::mem::align_of::<gladGLversionStruct>(),
        4usize,
        concat!("Alignment of ", stringify!(gladGLversionStruct))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<gladGLversionStruct>())).major as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(gladGLversionStruct),
            "::",
            stringify!(major)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<gladGLversionStruct>())).minor as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(gladGLversionStruct),
            "::",
            stringify!(minor)
        )
    );
}
pub type GLADloadproc = ::std::option::Option<
    unsafe extern "C" fn(name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void,
>;
extern "C" {
    pub static mut GLVersion: gladGLversionStruct;
}
extern "C" {
    pub fn gladLoadGLLoader(arg1: GLADloadproc) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Copy, Clone)]
pub struct max_align_t {
    pub __clang_max_align_nonce1: ::std::os::raw::c_longlong,
    pub __bindgen_padding_0: u64,
    pub __clang_max_align_nonce2: u128,
}
#[test]
fn bindgen_test_layout_max_align_t() {
    assert_eq!(
        ::std::mem::size_of::<max_align_t>(),
        32usize,
        concat!("Size of: ", stringify!(max_align_t))
    );
    assert_eq!(
        ::std::mem::align_of::<max_align_t>(),
        16usize,
        concat!("Alignment of ", stringify!(max_align_t))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<max_align_t>())).__clang_max_align_nonce1 as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(max_align_t),
            "::",
            stringify!(__clang_max_align_nonce1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<max_align_t>())).__clang_max_align_nonce2 as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(max_align_t),
            "::",
            stringify!(__clang_max_align_nonce2)
        )
    );
}
pub type int_least8_t = ::std::os::raw::c_schar;
pub type int_least16_t = ::std::os::raw::c_short;
pub type int_least32_t = ::std::os::raw::c_int;
pub type int_least64_t = ::std::os::raw::c_long;
pub type uint_least8_t = ::std::os::raw::c_uchar;
pub type uint_least16_t = ::std::os::raw::c_ushort;
pub type uint_least32_t = ::std::os::raw::c_uint;
pub type uint_least64_t = ::std::os::raw::c_ulong;
pub type int_fast8_t = ::std::os::raw::c_schar;
pub type int_fast16_t = ::std::os::raw::c_long;
pub type int_fast32_t = ::std::os::raw::c_long;
pub type int_fast64_t = ::std::os::raw::c_long;
pub type uint_fast8_t = ::std::os::raw::c_uchar;
pub type uint_fast16_t = ::std::os::raw::c_ulong;
pub type uint_fast32_t = ::std::os::raw::c_ulong;
pub type uint_fast64_t = ::std::os::raw::c_ulong;
pub type intmax_t = ::std::os::raw::c_long;
pub type uintmax_t = ::std::os::raw::c_ulong;
pub type __gwchar_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct imaxdiv_t {
    pub quot: ::std::os::raw::c_long,
    pub rem: ::std::os::raw::c_long,
}
#[test]
fn bindgen_test_layout_imaxdiv_t() {
    assert_eq!(
        ::std::mem::size_of::<imaxdiv_t>(),
        16usize,
        concat!("Size of: ", stringify!(imaxdiv_t))
    );
    assert_eq!(
        ::std::mem::align_of::<imaxdiv_t>(),
        8usize,
        concat!("Alignment of ", stringify!(imaxdiv_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<imaxdiv_t>())).quot as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(imaxdiv_t),
            "::",
            stringify!(quot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<imaxdiv_t>())).rem as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(imaxdiv_t),
            "::",
            stringify!(rem)
        )
    );
}
extern "C" {
    pub fn imaxabs(__n: intmax_t) -> intmax_t;
}
extern "C" {
    pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t;
}
extern "C" {
    pub fn strtoimax(
        __nptr: *const ::std::os::raw::c_char,
        __endptr: *mut *mut ::std::os::raw::c_char,
        __base: ::std::os::raw::c_int,
    ) -> intmax_t;
}
extern "C" {
    pub fn strtoumax(
        __nptr: *const ::std::os::raw::c_char,
        __endptr: *mut *mut ::std::os::raw::c_char,
        __base: ::std::os::raw::c_int,
    ) -> uintmax_t;
}
extern "C" {
    pub fn wcstoimax(
        __nptr: *const __gwchar_t,
        __endptr: *mut *mut __gwchar_t,
        __base: ::std::os::raw::c_int,
    ) -> intmax_t;
}
extern "C" {
    pub fn wcstoumax(
        __nptr: *const __gwchar_t,
        __endptr: *mut *mut __gwchar_t,
        __base: ::std::os::raw::c_int,
    ) -> uintmax_t;
}
pub type GLenum = ::std::os::raw::c_uint;
pub type GLboolean = ::std::os::raw::c_uchar;
pub type GLbitfield = ::std::os::raw::c_uint;
pub type GLvoid = ::std::os::raw::c_void;
pub type GLbyte = ::std::os::raw::c_schar;
pub type GLshort = ::std::os::raw::c_short;
pub type GLint = ::std::os::raw::c_int;
pub type GLclampx = ::std::os::raw::c_int;
pub type GLubyte = ::std::os::raw::c_uchar;
pub type GLushort = ::std::os::raw::c_ushort;
pub type GLuint = ::std::os::raw::c_uint;
pub type GLsizei = ::std::os::raw::c_int;
pub type GLfloat = f32;
pub type GLclampf = f32;
pub type GLdouble = f64;
pub type GLclampd = f64;
pub type GLeglImageOES = *mut ::std::os::raw::c_void;
pub type GLchar = ::std::os::raw::c_char;
pub type GLcharARB = ::std::os::raw::c_char;
pub type GLhandleARB = ::std::os::raw::c_uint;
pub type GLhalfARB = ::std::os::raw::c_ushort;
pub type GLhalf = ::std::os::raw::c_ushort;
pub type GLfixed = GLint;
pub type GLintptr = isize;
pub type GLsizeiptr = isize;
pub type GLint64 = i64;
pub type GLuint64 = u64;
pub type GLintptrARB = isize;
pub type GLsizeiptrARB = isize;
pub type GLint64EXT = i64;
pub type GLuint64EXT = u64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __GLsync {
    _unused: [u8; 0],
}
pub type GLsync = *mut __GLsync;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _cl_context {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _cl_event {
    _unused: [u8; 0],
}
pub type GLDEBUGPROC = ::std::option::Option<
    unsafe extern "C" fn(
        source: GLenum,
        type_: GLenum,
        id: GLuint,
        severity: GLenum,
        length: GLsizei,
        message: *const GLchar,
        userParam: *const ::std::os::raw::c_void,
    ),
>;
pub type GLDEBUGPROCARB = ::std::option::Option<
    unsafe extern "C" fn(
        source: GLenum,
        type_: GLenum,
        id: GLuint,
        severity: GLenum,
        length: GLsizei,
        message: *const GLchar,
        userParam: *const ::std::os::raw::c_void,
    ),
>;
pub type GLDEBUGPROCKHR = ::std::option::Option<
    unsafe extern "C" fn(
        source: GLenum,
        type_: GLenum,
        id: GLuint,
        severity: GLenum,
        length: GLsizei,
        message: *const GLchar,
        userParam: *const ::std::os::raw::c_void,
    ),
>;
pub type GLDEBUGPROCAMD = ::std::option::Option<
    unsafe extern "C" fn(
        id: GLuint,
        category: GLenum,
        severity: GLenum,
        length: GLsizei,
        message: *const GLchar,
        userParam: *mut ::std::os::raw::c_void,
    ),
>;
pub type GLhalfNV = ::std::os::raw::c_ushort;
pub type GLvdpauSurfaceNV = GLintptr;
extern "C" {
    pub static mut GLAD_GL_VERSION_1_0: ::std::os::raw::c_int;
}
pub type PFNGLCULLFACEPROC = ::std::option::Option<unsafe extern "C" fn(mode: GLenum)>;
extern "C" {
    pub static mut glad_glCullFace: PFNGLCULLFACEPROC;
}
pub type PFNGLFRONTFACEPROC = ::std::option::Option<unsafe extern "C" fn(mode: GLenum)>;
extern "C" {
    pub static mut glad_glFrontFace: PFNGLFRONTFACEPROC;
}
pub type PFNGLHINTPROC = ::std::option::Option<unsafe extern "C" fn(target: GLenum, mode: GLenum)>;
extern "C" {
    pub static mut glad_glHint: PFNGLHINTPROC;
}
pub type PFNGLLINEWIDTHPROC = ::std::option::Option<unsafe extern "C" fn(width: GLfloat)>;
extern "C" {
    pub static mut glad_glLineWidth: PFNGLLINEWIDTHPROC;
}
pub type PFNGLPOINTSIZEPROC = ::std::option::Option<unsafe extern "C" fn(size: GLfloat)>;
extern "C" {
    pub static mut glad_glPointSize: PFNGLPOINTSIZEPROC;
}
pub type PFNGLPOLYGONMODEPROC =
    ::std::option::Option<unsafe extern "C" fn(face: GLenum, mode: GLenum)>;
extern "C" {
    pub static mut glad_glPolygonMode: PFNGLPOLYGONMODEPROC;
}
pub type PFNGLSCISSORPROC = ::std::option::Option<
    unsafe extern "C" fn(x: GLint, y: GLint, width: GLsizei, height: GLsizei),
>;
extern "C" {
    pub static mut glad_glScissor: PFNGLSCISSORPROC;
}
pub type PFNGLTEXPARAMETERFPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, param: GLfloat)>;
extern "C" {
    pub static mut glad_glTexParameterf: PFNGLTEXPARAMETERFPROC;
}
pub type PFNGLTEXPARAMETERFVPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *const GLfloat),
>;
extern "C" {
    pub static mut glad_glTexParameterfv: PFNGLTEXPARAMETERFVPROC;
}
pub type PFNGLTEXPARAMETERIPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, param: GLint)>;
extern "C" {
    pub static mut glad_glTexParameteri: PFNGLTEXPARAMETERIPROC;
}
pub type PFNGLTEXPARAMETERIVPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *const GLint),
>;
extern "C" {
    pub static mut glad_glTexParameteriv: PFNGLTEXPARAMETERIVPROC;
}
pub type PFNGLTEXIMAGE1DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        internalformat: GLint,
        width: GLsizei,
        border: GLint,
        format: GLenum,
        type_: GLenum,
        pixels: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glTexImage1D: PFNGLTEXIMAGE1DPROC;
}
pub type PFNGLTEXIMAGE2DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        internalformat: GLint,
        width: GLsizei,
        height: GLsizei,
        border: GLint,
        format: GLenum,
        type_: GLenum,
        pixels: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glTexImage2D: PFNGLTEXIMAGE2DPROC;
}
pub type PFNGLDRAWBUFFERPROC = ::std::option::Option<unsafe extern "C" fn(buf: GLenum)>;
extern "C" {
    pub static mut glad_glDrawBuffer: PFNGLDRAWBUFFERPROC;
}
pub type PFNGLCLEARPROC = ::std::option::Option<unsafe extern "C" fn(mask: GLbitfield)>;
extern "C" {
    pub static mut glad_glClear: PFNGLCLEARPROC;
}
pub type PFNGLCLEARCOLORPROC = ::std::option::Option<
    unsafe extern "C" fn(red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat),
>;
extern "C" {
    pub static mut glad_glClearColor: PFNGLCLEARCOLORPROC;
}
pub type PFNGLCLEARSTENCILPROC = ::std::option::Option<unsafe extern "C" fn(s: GLint)>;
extern "C" {
    pub static mut glad_glClearStencil: PFNGLCLEARSTENCILPROC;
}
pub type PFNGLCLEARDEPTHPROC = ::std::option::Option<unsafe extern "C" fn(depth: GLdouble)>;
extern "C" {
    pub static mut glad_glClearDepth: PFNGLCLEARDEPTHPROC;
}
pub type PFNGLSTENCILMASKPROC = ::std::option::Option<unsafe extern "C" fn(mask: GLuint)>;
extern "C" {
    pub static mut glad_glStencilMask: PFNGLSTENCILMASKPROC;
}
pub type PFNGLCOLORMASKPROC = ::std::option::Option<
    unsafe extern "C" fn(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean),
>;
extern "C" {
    pub static mut glad_glColorMask: PFNGLCOLORMASKPROC;
}
pub type PFNGLDEPTHMASKPROC = ::std::option::Option<unsafe extern "C" fn(flag: GLboolean)>;
extern "C" {
    pub static mut glad_glDepthMask: PFNGLDEPTHMASKPROC;
}
pub type PFNGLDISABLEPROC = ::std::option::Option<unsafe extern "C" fn(cap: GLenum)>;
extern "C" {
    pub static mut glad_glDisable: PFNGLDISABLEPROC;
}
pub type PFNGLENABLEPROC = ::std::option::Option<unsafe extern "C" fn(cap: GLenum)>;
extern "C" {
    pub static mut glad_glEnable: PFNGLENABLEPROC;
}
pub type PFNGLFINISHPROC = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut glad_glFinish: PFNGLFINISHPROC;
}
pub type PFNGLFLUSHPROC = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut glad_glFlush: PFNGLFLUSHPROC;
}
pub type PFNGLBLENDFUNCPROC =
    ::std::option::Option<unsafe extern "C" fn(sfactor: GLenum, dfactor: GLenum)>;
extern "C" {
    pub static mut glad_glBlendFunc: PFNGLBLENDFUNCPROC;
}
pub type PFNGLLOGICOPPROC = ::std::option::Option<unsafe extern "C" fn(opcode: GLenum)>;
extern "C" {
    pub static mut glad_glLogicOp: PFNGLLOGICOPPROC;
}
pub type PFNGLSTENCILFUNCPROC =
    ::std::option::Option<unsafe extern "C" fn(func: GLenum, ref_: GLint, mask: GLuint)>;
extern "C" {
    pub static mut glad_glStencilFunc: PFNGLSTENCILFUNCPROC;
}
pub type PFNGLSTENCILOPPROC =
    ::std::option::Option<unsafe extern "C" fn(fail: GLenum, zfail: GLenum, zpass: GLenum)>;
extern "C" {
    pub static mut glad_glStencilOp: PFNGLSTENCILOPPROC;
}
pub type PFNGLDEPTHFUNCPROC = ::std::option::Option<unsafe extern "C" fn(func: GLenum)>;
extern "C" {
    pub static mut glad_glDepthFunc: PFNGLDEPTHFUNCPROC;
}
pub type PFNGLPIXELSTOREFPROC =
    ::std::option::Option<unsafe extern "C" fn(pname: GLenum, param: GLfloat)>;
extern "C" {
    pub static mut glad_glPixelStoref: PFNGLPIXELSTOREFPROC;
}
pub type PFNGLPIXELSTOREIPROC =
    ::std::option::Option<unsafe extern "C" fn(pname: GLenum, param: GLint)>;
extern "C" {
    pub static mut glad_glPixelStorei: PFNGLPIXELSTOREIPROC;
}
pub type PFNGLREADBUFFERPROC = ::std::option::Option<unsafe extern "C" fn(src: GLenum)>;
extern "C" {
    pub static mut glad_glReadBuffer: PFNGLREADBUFFERPROC;
}
pub type PFNGLREADPIXELSPROC = ::std::option::Option<
    unsafe extern "C" fn(
        x: GLint,
        y: GLint,
        width: GLsizei,
        height: GLsizei,
        format: GLenum,
        type_: GLenum,
        pixels: *mut ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glReadPixels: PFNGLREADPIXELSPROC;
}
pub type PFNGLGETBOOLEANVPROC =
    ::std::option::Option<unsafe extern "C" fn(pname: GLenum, data: *mut GLboolean)>;
extern "C" {
    pub static mut glad_glGetBooleanv: PFNGLGETBOOLEANVPROC;
}
pub type PFNGLGETDOUBLEVPROC =
    ::std::option::Option<unsafe extern "C" fn(pname: GLenum, data: *mut GLdouble)>;
extern "C" {
    pub static mut glad_glGetDoublev: PFNGLGETDOUBLEVPROC;
}
pub type PFNGLGETERRORPROC = ::std::option::Option<unsafe extern "C" fn() -> GLenum>;
extern "C" {
    pub static mut glad_glGetError: PFNGLGETERRORPROC;
}
pub type PFNGLGETFLOATVPROC =
    ::std::option::Option<unsafe extern "C" fn(pname: GLenum, data: *mut GLfloat)>;
extern "C" {
    pub static mut glad_glGetFloatv: PFNGLGETFLOATVPROC;
}
pub type PFNGLGETINTEGERVPROC =
    ::std::option::Option<unsafe extern "C" fn(pname: GLenum, data: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetIntegerv: PFNGLGETINTEGERVPROC;
}
pub type PFNGLGETSTRINGPROC =
    ::std::option::Option<unsafe extern "C" fn(name: GLenum) -> *const GLubyte>;
extern "C" {
    pub static mut glad_glGetString: PFNGLGETSTRINGPROC;
}
pub type PFNGLGETTEXIMAGEPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        format: GLenum,
        type_: GLenum,
        pixels: *mut ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glGetTexImage: PFNGLGETTEXIMAGEPROC;
}
pub type PFNGLGETTEXPARAMETERFVPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut GLfloat),
>;
extern "C" {
    pub static mut glad_glGetTexParameterfv: PFNGLGETTEXPARAMETERFVPROC;
}
pub type PFNGLGETTEXPARAMETERIVPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetTexParameteriv: PFNGLGETTEXPARAMETERIVPROC;
}
pub type PFNGLGETTEXLEVELPARAMETERFVPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, level: GLint, pname: GLenum, params: *mut GLfloat),
>;
extern "C" {
    pub static mut glad_glGetTexLevelParameterfv: PFNGLGETTEXLEVELPARAMETERFVPROC;
}
pub type PFNGLGETTEXLEVELPARAMETERIVPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, level: GLint, pname: GLenum, params: *mut GLint),
>;
extern "C" {
    pub static mut glad_glGetTexLevelParameteriv: PFNGLGETTEXLEVELPARAMETERIVPROC;
}
pub type PFNGLISENABLEDPROC = ::std::option::Option<unsafe extern "C" fn(cap: GLenum) -> GLboolean>;
extern "C" {
    pub static mut glad_glIsEnabled: PFNGLISENABLEDPROC;
}
pub type PFNGLDEPTHRANGEPROC =
    ::std::option::Option<unsafe extern "C" fn(near: GLdouble, far: GLdouble)>;
extern "C" {
    pub static mut glad_glDepthRange: PFNGLDEPTHRANGEPROC;
}
pub type PFNGLVIEWPORTPROC = ::std::option::Option<
    unsafe extern "C" fn(x: GLint, y: GLint, width: GLsizei, height: GLsizei),
>;
extern "C" {
    pub static mut glad_glViewport: PFNGLVIEWPORTPROC;
}
extern "C" {
    pub static mut GLAD_GL_VERSION_1_1: ::std::os::raw::c_int;
}
pub type PFNGLDRAWARRAYSPROC =
    ::std::option::Option<unsafe extern "C" fn(mode: GLenum, first: GLint, count: GLsizei)>;
extern "C" {
    pub static mut glad_glDrawArrays: PFNGLDRAWARRAYSPROC;
}
pub type PFNGLDRAWELEMENTSPROC = ::std::option::Option<
    unsafe extern "C" fn(
        mode: GLenum,
        count: GLsizei,
        type_: GLenum,
        indices: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glDrawElements: PFNGLDRAWELEMENTSPROC;
}
pub type PFNGLPOLYGONOFFSETPROC =
    ::std::option::Option<unsafe extern "C" fn(factor: GLfloat, units: GLfloat)>;
extern "C" {
    pub static mut glad_glPolygonOffset: PFNGLPOLYGONOFFSETPROC;
}
pub type PFNGLCOPYTEXIMAGE1DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        internalformat: GLenum,
        x: GLint,
        y: GLint,
        width: GLsizei,
        border: GLint,
    ),
>;
extern "C" {
    pub static mut glad_glCopyTexImage1D: PFNGLCOPYTEXIMAGE1DPROC;
}
pub type PFNGLCOPYTEXIMAGE2DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        internalformat: GLenum,
        x: GLint,
        y: GLint,
        width: GLsizei,
        height: GLsizei,
        border: GLint,
    ),
>;
extern "C" {
    pub static mut glad_glCopyTexImage2D: PFNGLCOPYTEXIMAGE2DPROC;
}
pub type PFNGLCOPYTEXSUBIMAGE1DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        xoffset: GLint,
        x: GLint,
        y: GLint,
        width: GLsizei,
    ),
>;
extern "C" {
    pub static mut glad_glCopyTexSubImage1D: PFNGLCOPYTEXSUBIMAGE1DPROC;
}
pub type PFNGLCOPYTEXSUBIMAGE2DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        xoffset: GLint,
        yoffset: GLint,
        x: GLint,
        y: GLint,
        width: GLsizei,
        height: GLsizei,
    ),
>;
extern "C" {
    pub static mut glad_glCopyTexSubImage2D: PFNGLCOPYTEXSUBIMAGE2DPROC;
}
pub type PFNGLTEXSUBIMAGE1DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        xoffset: GLint,
        width: GLsizei,
        format: GLenum,
        type_: GLenum,
        pixels: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glTexSubImage1D: PFNGLTEXSUBIMAGE1DPROC;
}
pub type PFNGLTEXSUBIMAGE2DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        xoffset: GLint,
        yoffset: GLint,
        width: GLsizei,
        height: GLsizei,
        format: GLenum,
        type_: GLenum,
        pixels: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glTexSubImage2D: PFNGLTEXSUBIMAGE2DPROC;
}
pub type PFNGLBINDTEXTUREPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, texture: GLuint)>;
extern "C" {
    pub static mut glad_glBindTexture: PFNGLBINDTEXTUREPROC;
}
pub type PFNGLDELETETEXTURESPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, textures: *const GLuint)>;
extern "C" {
    pub static mut glad_glDeleteTextures: PFNGLDELETETEXTURESPROC;
}
pub type PFNGLGENTEXTURESPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, textures: *mut GLuint)>;
extern "C" {
    pub static mut glad_glGenTextures: PFNGLGENTEXTURESPROC;
}
pub type PFNGLISTEXTUREPROC =
    ::std::option::Option<unsafe extern "C" fn(texture: GLuint) -> GLboolean>;
extern "C" {
    pub static mut glad_glIsTexture: PFNGLISTEXTUREPROC;
}
extern "C" {
    pub static mut GLAD_GL_VERSION_1_2: ::std::os::raw::c_int;
}
pub type PFNGLDRAWRANGEELEMENTSPROC = ::std::option::Option<
    unsafe extern "C" fn(
        mode: GLenum,
        start: GLuint,
        end: GLuint,
        count: GLsizei,
        type_: GLenum,
        indices: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glDrawRangeElements: PFNGLDRAWRANGEELEMENTSPROC;
}
pub type PFNGLTEXIMAGE3DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        internalformat: GLint,
        width: GLsizei,
        height: GLsizei,
        depth: GLsizei,
        border: GLint,
        format: GLenum,
        type_: GLenum,
        pixels: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glTexImage3D: PFNGLTEXIMAGE3DPROC;
}
pub type PFNGLTEXSUBIMAGE3DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        xoffset: GLint,
        yoffset: GLint,
        zoffset: GLint,
        width: GLsizei,
        height: GLsizei,
        depth: GLsizei,
        format: GLenum,
        type_: GLenum,
        pixels: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glTexSubImage3D: PFNGLTEXSUBIMAGE3DPROC;
}
pub type PFNGLCOPYTEXSUBIMAGE3DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        xoffset: GLint,
        yoffset: GLint,
        zoffset: GLint,
        x: GLint,
        y: GLint,
        width: GLsizei,
        height: GLsizei,
    ),
>;
extern "C" {
    pub static mut glad_glCopyTexSubImage3D: PFNGLCOPYTEXSUBIMAGE3DPROC;
}
extern "C" {
    pub static mut GLAD_GL_VERSION_1_3: ::std::os::raw::c_int;
}
pub type PFNGLACTIVETEXTUREPROC = ::std::option::Option<unsafe extern "C" fn(texture: GLenum)>;
extern "C" {
    pub static mut glad_glActiveTexture: PFNGLACTIVETEXTUREPROC;
}
pub type PFNGLSAMPLECOVERAGEPROC =
    ::std::option::Option<unsafe extern "C" fn(value: GLfloat, invert: GLboolean)>;
extern "C" {
    pub static mut glad_glSampleCoverage: PFNGLSAMPLECOVERAGEPROC;
}
pub type PFNGLCOMPRESSEDTEXIMAGE3DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        internalformat: GLenum,
        width: GLsizei,
        height: GLsizei,
        depth: GLsizei,
        border: GLint,
        imageSize: GLsizei,
        data: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glCompressedTexImage3D: PFNGLCOMPRESSEDTEXIMAGE3DPROC;
}
pub type PFNGLCOMPRESSEDTEXIMAGE2DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        internalformat: GLenum,
        width: GLsizei,
        height: GLsizei,
        border: GLint,
        imageSize: GLsizei,
        data: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glCompressedTexImage2D: PFNGLCOMPRESSEDTEXIMAGE2DPROC;
}
pub type PFNGLCOMPRESSEDTEXIMAGE1DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        internalformat: GLenum,
        width: GLsizei,
        border: GLint,
        imageSize: GLsizei,
        data: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glCompressedTexImage1D: PFNGLCOMPRESSEDTEXIMAGE1DPROC;
}
pub type PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        xoffset: GLint,
        yoffset: GLint,
        zoffset: GLint,
        width: GLsizei,
        height: GLsizei,
        depth: GLsizei,
        format: GLenum,
        imageSize: GLsizei,
        data: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glCompressedTexSubImage3D: PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC;
}
pub type PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        xoffset: GLint,
        yoffset: GLint,
        width: GLsizei,
        height: GLsizei,
        format: GLenum,
        imageSize: GLsizei,
        data: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glCompressedTexSubImage2D: PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC;
}
pub type PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        xoffset: GLint,
        width: GLsizei,
        format: GLenum,
        imageSize: GLsizei,
        data: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glCompressedTexSubImage1D: PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC;
}
pub type PFNGLGETCOMPRESSEDTEXIMAGEPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, level: GLint, img: *mut ::std::os::raw::c_void),
>;
extern "C" {
    pub static mut glad_glGetCompressedTexImage: PFNGLGETCOMPRESSEDTEXIMAGEPROC;
}
extern "C" {
    pub static mut GLAD_GL_VERSION_1_4: ::std::os::raw::c_int;
}
pub type PFNGLBLENDFUNCSEPARATEPROC = ::std::option::Option<
    unsafe extern "C" fn(
        sfactorRGB: GLenum,
        dfactorRGB: GLenum,
        sfactorAlpha: GLenum,
        dfactorAlpha: GLenum,
    ),
>;
extern "C" {
    pub static mut glad_glBlendFuncSeparate: PFNGLBLENDFUNCSEPARATEPROC;
}
pub type PFNGLMULTIDRAWARRAYSPROC = ::std::option::Option<
    unsafe extern "C" fn(
        mode: GLenum,
        first: *const GLint,
        count: *const GLsizei,
        drawcount: GLsizei,
    ),
>;
extern "C" {
    pub static mut glad_glMultiDrawArrays: PFNGLMULTIDRAWARRAYSPROC;
}
pub type PFNGLMULTIDRAWELEMENTSPROC = ::std::option::Option<
    unsafe extern "C" fn(
        mode: GLenum,
        count: *const GLsizei,
        type_: GLenum,
        indices: *mut *const ::std::os::raw::c_void,
        drawcount: GLsizei,
    ),
>;
extern "C" {
    pub static mut glad_glMultiDrawElements: PFNGLMULTIDRAWELEMENTSPROC;
}
pub type PFNGLPOINTPARAMETERFPROC =
    ::std::option::Option<unsafe extern "C" fn(pname: GLenum, param: GLfloat)>;
extern "C" {
    pub static mut glad_glPointParameterf: PFNGLPOINTPARAMETERFPROC;
}
pub type PFNGLPOINTPARAMETERFVPROC =
    ::std::option::Option<unsafe extern "C" fn(pname: GLenum, params: *const GLfloat)>;
extern "C" {
    pub static mut glad_glPointParameterfv: PFNGLPOINTPARAMETERFVPROC;
}
pub type PFNGLPOINTPARAMETERIPROC =
    ::std::option::Option<unsafe extern "C" fn(pname: GLenum, param: GLint)>;
extern "C" {
    pub static mut glad_glPointParameteri: PFNGLPOINTPARAMETERIPROC;
}
pub type PFNGLPOINTPARAMETERIVPROC =
    ::std::option::Option<unsafe extern "C" fn(pname: GLenum, params: *const GLint)>;
extern "C" {
    pub static mut glad_glPointParameteriv: PFNGLPOINTPARAMETERIVPROC;
}
pub type PFNGLBLENDCOLORPROC = ::std::option::Option<
    unsafe extern "C" fn(red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat),
>;
extern "C" {
    pub static mut glad_glBlendColor: PFNGLBLENDCOLORPROC;
}
pub type PFNGLBLENDEQUATIONPROC = ::std::option::Option<unsafe extern "C" fn(mode: GLenum)>;
extern "C" {
    pub static mut glad_glBlendEquation: PFNGLBLENDEQUATIONPROC;
}
extern "C" {
    pub static mut GLAD_GL_VERSION_1_5: ::std::os::raw::c_int;
}
pub type PFNGLGENQUERIESPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, ids: *mut GLuint)>;
extern "C" {
    pub static mut glad_glGenQueries: PFNGLGENQUERIESPROC;
}
pub type PFNGLDELETEQUERIESPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, ids: *const GLuint)>;
extern "C" {
    pub static mut glad_glDeleteQueries: PFNGLDELETEQUERIESPROC;
}
pub type PFNGLISQUERYPROC = ::std::option::Option<unsafe extern "C" fn(id: GLuint) -> GLboolean>;
extern "C" {
    pub static mut glad_glIsQuery: PFNGLISQUERYPROC;
}
pub type PFNGLBEGINQUERYPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, id: GLuint)>;
extern "C" {
    pub static mut glad_glBeginQuery: PFNGLBEGINQUERYPROC;
}
pub type PFNGLENDQUERYPROC = ::std::option::Option<unsafe extern "C" fn(target: GLenum)>;
extern "C" {
    pub static mut glad_glEndQuery: PFNGLENDQUERYPROC;
}
pub type PFNGLGETQUERYIVPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetQueryiv: PFNGLGETQUERYIVPROC;
}
pub type PFNGLGETQUERYOBJECTIVPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetQueryObjectiv: PFNGLGETQUERYOBJECTIVPROC;
}
pub type PFNGLGETQUERYOBJECTUIVPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, pname: GLenum, params: *mut GLuint)>;
extern "C" {
    pub static mut glad_glGetQueryObjectuiv: PFNGLGETQUERYOBJECTUIVPROC;
}
pub type PFNGLBINDBUFFERPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, buffer: GLuint)>;
extern "C" {
    pub static mut glad_glBindBuffer: PFNGLBINDBUFFERPROC;
}
pub type PFNGLDELETEBUFFERSPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, buffers: *const GLuint)>;
extern "C" {
    pub static mut glad_glDeleteBuffers: PFNGLDELETEBUFFERSPROC;
}
pub type PFNGLGENBUFFERSPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, buffers: *mut GLuint)>;
extern "C" {
    pub static mut glad_glGenBuffers: PFNGLGENBUFFERSPROC;
}
pub type PFNGLISBUFFERPROC =
    ::std::option::Option<unsafe extern "C" fn(buffer: GLuint) -> GLboolean>;
extern "C" {
    pub static mut glad_glIsBuffer: PFNGLISBUFFERPROC;
}
pub type PFNGLBUFFERDATAPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        size: GLsizeiptr,
        data: *const ::std::os::raw::c_void,
        usage: GLenum,
    ),
>;
extern "C" {
    pub static mut glad_glBufferData: PFNGLBUFFERDATAPROC;
}
pub type PFNGLBUFFERSUBDATAPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        offset: GLintptr,
        size: GLsizeiptr,
        data: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glBufferSubData: PFNGLBUFFERSUBDATAPROC;
}
pub type PFNGLGETBUFFERSUBDATAPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        offset: GLintptr,
        size: GLsizeiptr,
        data: *mut ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glGetBufferSubData: PFNGLGETBUFFERSUBDATAPROC;
}
pub type PFNGLMAPBUFFERPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, access: GLenum) -> *mut ::std::os::raw::c_void,
>;
extern "C" {
    pub static mut glad_glMapBuffer: PFNGLMAPBUFFERPROC;
}
pub type PFNGLUNMAPBUFFERPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum) -> GLboolean>;
extern "C" {
    pub static mut glad_glUnmapBuffer: PFNGLUNMAPBUFFERPROC;
}
pub type PFNGLGETBUFFERPARAMETERIVPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetBufferParameteriv: PFNGLGETBUFFERPARAMETERIVPROC;
}
pub type PFNGLGETBUFFERPOINTERVPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut *mut ::std::os::raw::c_void),
>;
extern "C" {
    pub static mut glad_glGetBufferPointerv: PFNGLGETBUFFERPOINTERVPROC;
}
extern "C" {
    pub static mut GLAD_GL_VERSION_2_0: ::std::os::raw::c_int;
}
pub type PFNGLBLENDEQUATIONSEPARATEPROC =
    ::std::option::Option<unsafe extern "C" fn(modeRGB: GLenum, modeAlpha: GLenum)>;
extern "C" {
    pub static mut glad_glBlendEquationSeparate: PFNGLBLENDEQUATIONSEPARATEPROC;
}
pub type PFNGLDRAWBUFFERSPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, bufs: *const GLenum)>;
extern "C" {
    pub static mut glad_glDrawBuffers: PFNGLDRAWBUFFERSPROC;
}
pub type PFNGLSTENCILOPSEPARATEPROC = ::std::option::Option<
    unsafe extern "C" fn(face: GLenum, sfail: GLenum, dpfail: GLenum, dppass: GLenum),
>;
extern "C" {
    pub static mut glad_glStencilOpSeparate: PFNGLSTENCILOPSEPARATEPROC;
}
pub type PFNGLSTENCILFUNCSEPARATEPROC = ::std::option::Option<
    unsafe extern "C" fn(face: GLenum, func: GLenum, ref_: GLint, mask: GLuint),
>;
extern "C" {
    pub static mut glad_glStencilFuncSeparate: PFNGLSTENCILFUNCSEPARATEPROC;
}
pub type PFNGLSTENCILMASKSEPARATEPROC =
    ::std::option::Option<unsafe extern "C" fn(face: GLenum, mask: GLuint)>;
extern "C" {
    pub static mut glad_glStencilMaskSeparate: PFNGLSTENCILMASKSEPARATEPROC;
}
pub type PFNGLATTACHSHADERPROC =
    ::std::option::Option<unsafe extern "C" fn(program: GLuint, shader: GLuint)>;
extern "C" {
    pub static mut glad_glAttachShader: PFNGLATTACHSHADERPROC;
}
pub type PFNGLBINDATTRIBLOCATIONPROC = ::std::option::Option<
    unsafe extern "C" fn(program: GLuint, index: GLuint, name: *const GLchar),
>;
extern "C" {
    pub static mut glad_glBindAttribLocation: PFNGLBINDATTRIBLOCATIONPROC;
}
pub type PFNGLCOMPILESHADERPROC = ::std::option::Option<unsafe extern "C" fn(shader: GLuint)>;
extern "C" {
    pub static mut glad_glCompileShader: PFNGLCOMPILESHADERPROC;
}
pub type PFNGLCREATEPROGRAMPROC = ::std::option::Option<unsafe extern "C" fn() -> GLuint>;
extern "C" {
    pub static mut glad_glCreateProgram: PFNGLCREATEPROGRAMPROC;
}
pub type PFNGLCREATESHADERPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum) -> GLuint>;
extern "C" {
    pub static mut glad_glCreateShader: PFNGLCREATESHADERPROC;
}
pub type PFNGLDELETEPROGRAMPROC = ::std::option::Option<unsafe extern "C" fn(program: GLuint)>;
extern "C" {
    pub static mut glad_glDeleteProgram: PFNGLDELETEPROGRAMPROC;
}
pub type PFNGLDELETESHADERPROC = ::std::option::Option<unsafe extern "C" fn(shader: GLuint)>;
extern "C" {
    pub static mut glad_glDeleteShader: PFNGLDELETESHADERPROC;
}
pub type PFNGLDETACHSHADERPROC =
    ::std::option::Option<unsafe extern "C" fn(program: GLuint, shader: GLuint)>;
extern "C" {
    pub static mut glad_glDetachShader: PFNGLDETACHSHADERPROC;
}
pub type PFNGLDISABLEVERTEXATTRIBARRAYPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint)>;
extern "C" {
    pub static mut glad_glDisableVertexAttribArray: PFNGLDISABLEVERTEXATTRIBARRAYPROC;
}
pub type PFNGLENABLEVERTEXATTRIBARRAYPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint)>;
extern "C" {
    pub static mut glad_glEnableVertexAttribArray: PFNGLENABLEVERTEXATTRIBARRAYPROC;
}
pub type PFNGLGETACTIVEATTRIBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        program: GLuint,
        index: GLuint,
        bufSize: GLsizei,
        length: *mut GLsizei,
        size: *mut GLint,
        type_: *mut GLenum,
        name: *mut GLchar,
    ),
>;
extern "C" {
    pub static mut glad_glGetActiveAttrib: PFNGLGETACTIVEATTRIBPROC;
}
pub type PFNGLGETACTIVEUNIFORMPROC = ::std::option::Option<
    unsafe extern "C" fn(
        program: GLuint,
        index: GLuint,
        bufSize: GLsizei,
        length: *mut GLsizei,
        size: *mut GLint,
        type_: *mut GLenum,
        name: *mut GLchar,
    ),
>;
extern "C" {
    pub static mut glad_glGetActiveUniform: PFNGLGETACTIVEUNIFORMPROC;
}
pub type PFNGLGETATTACHEDSHADERSPROC = ::std::option::Option<
    unsafe extern "C" fn(
        program: GLuint,
        maxCount: GLsizei,
        count: *mut GLsizei,
        shaders: *mut GLuint,
    ),
>;
extern "C" {
    pub static mut glad_glGetAttachedShaders: PFNGLGETATTACHEDSHADERSPROC;
}
pub type PFNGLGETATTRIBLOCATIONPROC =
    ::std::option::Option<unsafe extern "C" fn(program: GLuint, name: *const GLchar) -> GLint>;
extern "C" {
    pub static mut glad_glGetAttribLocation: PFNGLGETATTRIBLOCATIONPROC;
}
pub type PFNGLGETPROGRAMIVPROC =
    ::std::option::Option<unsafe extern "C" fn(program: GLuint, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetProgramiv: PFNGLGETPROGRAMIVPROC;
}
pub type PFNGLGETPROGRAMINFOLOGPROC = ::std::option::Option<
    unsafe extern "C" fn(
        program: GLuint,
        bufSize: GLsizei,
        length: *mut GLsizei,
        infoLog: *mut GLchar,
    ),
>;
extern "C" {
    pub static mut glad_glGetProgramInfoLog: PFNGLGETPROGRAMINFOLOGPROC;
}
pub type PFNGLGETSHADERIVPROC =
    ::std::option::Option<unsafe extern "C" fn(shader: GLuint, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetShaderiv: PFNGLGETSHADERIVPROC;
}
pub type PFNGLGETSHADERINFOLOGPROC = ::std::option::Option<
    unsafe extern "C" fn(
        shader: GLuint,
        bufSize: GLsizei,
        length: *mut GLsizei,
        infoLog: *mut GLchar,
    ),
>;
extern "C" {
    pub static mut glad_glGetShaderInfoLog: PFNGLGETSHADERINFOLOGPROC;
}
pub type PFNGLGETSHADERSOURCEPROC = ::std::option::Option<
    unsafe extern "C" fn(
        shader: GLuint,
        bufSize: GLsizei,
        length: *mut GLsizei,
        source: *mut GLchar,
    ),
>;
extern "C" {
    pub static mut glad_glGetShaderSource: PFNGLGETSHADERSOURCEPROC;
}
pub type PFNGLGETUNIFORMLOCATIONPROC =
    ::std::option::Option<unsafe extern "C" fn(program: GLuint, name: *const GLchar) -> GLint>;
extern "C" {
    pub static mut glad_glGetUniformLocation: PFNGLGETUNIFORMLOCATIONPROC;
}
pub type PFNGLGETUNIFORMFVPROC = ::std::option::Option<
    unsafe extern "C" fn(program: GLuint, location: GLint, params: *mut GLfloat),
>;
extern "C" {
    pub static mut glad_glGetUniformfv: PFNGLGETUNIFORMFVPROC;
}
pub type PFNGLGETUNIFORMIVPROC = ::std::option::Option<
    unsafe extern "C" fn(program: GLuint, location: GLint, params: *mut GLint),
>;
extern "C" {
    pub static mut glad_glGetUniformiv: PFNGLGETUNIFORMIVPROC;
}
pub type PFNGLGETVERTEXATTRIBDVPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, pname: GLenum, params: *mut GLdouble),
>;
extern "C" {
    pub static mut glad_glGetVertexAttribdv: PFNGLGETVERTEXATTRIBDVPROC;
}
pub type PFNGLGETVERTEXATTRIBFVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, pname: GLenum, params: *mut GLfloat)>;
extern "C" {
    pub static mut glad_glGetVertexAttribfv: PFNGLGETVERTEXATTRIBFVPROC;
}
pub type PFNGLGETVERTEXATTRIBIVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetVertexAttribiv: PFNGLGETVERTEXATTRIBIVPROC;
}
pub type PFNGLGETVERTEXATTRIBPOINTERVPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, pname: GLenum, pointer: *mut *mut ::std::os::raw::c_void),
>;
extern "C" {
    pub static mut glad_glGetVertexAttribPointerv: PFNGLGETVERTEXATTRIBPOINTERVPROC;
}
pub type PFNGLISPROGRAMPROC =
    ::std::option::Option<unsafe extern "C" fn(program: GLuint) -> GLboolean>;
extern "C" {
    pub static mut glad_glIsProgram: PFNGLISPROGRAMPROC;
}
pub type PFNGLISSHADERPROC =
    ::std::option::Option<unsafe extern "C" fn(shader: GLuint) -> GLboolean>;
extern "C" {
    pub static mut glad_glIsShader: PFNGLISSHADERPROC;
}
pub type PFNGLLINKPROGRAMPROC = ::std::option::Option<unsafe extern "C" fn(program: GLuint)>;
extern "C" {
    pub static mut glad_glLinkProgram: PFNGLLINKPROGRAMPROC;
}
pub type PFNGLSHADERSOURCEPROC = ::std::option::Option<
    unsafe extern "C" fn(
        shader: GLuint,
        count: GLsizei,
        string: *mut *const GLchar,
        length: *const GLint,
    ),
>;
extern "C" {
    pub static mut glad_glShaderSource: PFNGLSHADERSOURCEPROC;
}
pub type PFNGLUSEPROGRAMPROC = ::std::option::Option<unsafe extern "C" fn(program: GLuint)>;
extern "C" {
    pub static mut glad_glUseProgram: PFNGLUSEPROGRAMPROC;
}
pub type PFNGLUNIFORM1FPROC =
    ::std::option::Option<unsafe extern "C" fn(location: GLint, v0: GLfloat)>;
extern "C" {
    pub static mut glad_glUniform1f: PFNGLUNIFORM1FPROC;
}
pub type PFNGLUNIFORM2FPROC =
    ::std::option::Option<unsafe extern "C" fn(location: GLint, v0: GLfloat, v1: GLfloat)>;
extern "C" {
    pub static mut glad_glUniform2f: PFNGLUNIFORM2FPROC;
}
pub type PFNGLUNIFORM3FPROC = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat),
>;
extern "C" {
    pub static mut glad_glUniform3f: PFNGLUNIFORM3FPROC;
}
pub type PFNGLUNIFORM4FPROC = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat, v3: GLfloat),
>;
extern "C" {
    pub static mut glad_glUniform4f: PFNGLUNIFORM4FPROC;
}
pub type PFNGLUNIFORM1IPROC =
    ::std::option::Option<unsafe extern "C" fn(location: GLint, v0: GLint)>;
extern "C" {
    pub static mut glad_glUniform1i: PFNGLUNIFORM1IPROC;
}
pub type PFNGLUNIFORM2IPROC =
    ::std::option::Option<unsafe extern "C" fn(location: GLint, v0: GLint, v1: GLint)>;
extern "C" {
    pub static mut glad_glUniform2i: PFNGLUNIFORM2IPROC;
}
pub type PFNGLUNIFORM3IPROC =
    ::std::option::Option<unsafe extern "C" fn(location: GLint, v0: GLint, v1: GLint, v2: GLint)>;
extern "C" {
    pub static mut glad_glUniform3i: PFNGLUNIFORM3IPROC;
}
pub type PFNGLUNIFORM4IPROC = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, v0: GLint, v1: GLint, v2: GLint, v3: GLint),
>;
extern "C" {
    pub static mut glad_glUniform4i: PFNGLUNIFORM4IPROC;
}
pub type PFNGLUNIFORM1FVPROC = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLfloat),
>;
extern "C" {
    pub static mut glad_glUniform1fv: PFNGLUNIFORM1FVPROC;
}
pub type PFNGLUNIFORM2FVPROC = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLfloat),
>;
extern "C" {
    pub static mut glad_glUniform2fv: PFNGLUNIFORM2FVPROC;
}
pub type PFNGLUNIFORM3FVPROC = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLfloat),
>;
extern "C" {
    pub static mut glad_glUniform3fv: PFNGLUNIFORM3FVPROC;
}
pub type PFNGLUNIFORM4FVPROC = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLfloat),
>;
extern "C" {
    pub static mut glad_glUniform4fv: PFNGLUNIFORM4FVPROC;
}
pub type PFNGLUNIFORM1IVPROC = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLint),
>;
extern "C" {
    pub static mut glad_glUniform1iv: PFNGLUNIFORM1IVPROC;
}
pub type PFNGLUNIFORM2IVPROC = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLint),
>;
extern "C" {
    pub static mut glad_glUniform2iv: PFNGLUNIFORM2IVPROC;
}
pub type PFNGLUNIFORM3IVPROC = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLint),
>;
extern "C" {
    pub static mut glad_glUniform3iv: PFNGLUNIFORM3IVPROC;
}
pub type PFNGLUNIFORM4IVPROC = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLint),
>;
extern "C" {
    pub static mut glad_glUniform4iv: PFNGLUNIFORM4IVPROC;
}
pub type PFNGLUNIFORMMATRIX2FVPROC = ::std::option::Option<
    unsafe extern "C" fn(
        location: GLint,
        count: GLsizei,
        transpose: GLboolean,
        value: *const GLfloat,
    ),
>;
extern "C" {
    pub static mut glad_glUniformMatrix2fv: PFNGLUNIFORMMATRIX2FVPROC;
}
pub type PFNGLUNIFORMMATRIX3FVPROC = ::std::option::Option<
    unsafe extern "C" fn(
        location: GLint,
        count: GLsizei,
        transpose: GLboolean,
        value: *const GLfloat,
    ),
>;
extern "C" {
    pub static mut glad_glUniformMatrix3fv: PFNGLUNIFORMMATRIX3FVPROC;
}
pub type PFNGLUNIFORMMATRIX4FVPROC = ::std::option::Option<
    unsafe extern "C" fn(
        location: GLint,
        count: GLsizei,
        transpose: GLboolean,
        value: *const GLfloat,
    ),
>;
extern "C" {
    pub static mut glad_glUniformMatrix4fv: PFNGLUNIFORMMATRIX4FVPROC;
}
pub type PFNGLVALIDATEPROGRAMPROC = ::std::option::Option<unsafe extern "C" fn(program: GLuint)>;
extern "C" {
    pub static mut glad_glValidateProgram: PFNGLVALIDATEPROGRAMPROC;
}
pub type PFNGLVERTEXATTRIB1DPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLdouble)>;
extern "C" {
    pub static mut glad_glVertexAttrib1d: PFNGLVERTEXATTRIB1DPROC;
}
pub type PFNGLVERTEXATTRIB1DVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLdouble)>;
extern "C" {
    pub static mut glad_glVertexAttrib1dv: PFNGLVERTEXATTRIB1DVPROC;
}
pub type PFNGLVERTEXATTRIB1FPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLfloat)>;
extern "C" {
    pub static mut glad_glVertexAttrib1f: PFNGLVERTEXATTRIB1FPROC;
}
pub type PFNGLVERTEXATTRIB1FVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLfloat)>;
extern "C" {
    pub static mut glad_glVertexAttrib1fv: PFNGLVERTEXATTRIB1FVPROC;
}
pub type PFNGLVERTEXATTRIB1SPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLshort)>;
extern "C" {
    pub static mut glad_glVertexAttrib1s: PFNGLVERTEXATTRIB1SPROC;
}
pub type PFNGLVERTEXATTRIB1SVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLshort)>;
extern "C" {
    pub static mut glad_glVertexAttrib1sv: PFNGLVERTEXATTRIB1SVPROC;
}
pub type PFNGLVERTEXATTRIB2DPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLdouble, y: GLdouble)>;
extern "C" {
    pub static mut glad_glVertexAttrib2d: PFNGLVERTEXATTRIB2DPROC;
}
pub type PFNGLVERTEXATTRIB2DVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLdouble)>;
extern "C" {
    pub static mut glad_glVertexAttrib2dv: PFNGLVERTEXATTRIB2DVPROC;
}
pub type PFNGLVERTEXATTRIB2FPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLfloat, y: GLfloat)>;
extern "C" {
    pub static mut glad_glVertexAttrib2f: PFNGLVERTEXATTRIB2FPROC;
}
pub type PFNGLVERTEXATTRIB2FVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLfloat)>;
extern "C" {
    pub static mut glad_glVertexAttrib2fv: PFNGLVERTEXATTRIB2FVPROC;
}
pub type PFNGLVERTEXATTRIB2SPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLshort, y: GLshort)>;
extern "C" {
    pub static mut glad_glVertexAttrib2s: PFNGLVERTEXATTRIB2SPROC;
}
pub type PFNGLVERTEXATTRIB2SVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLshort)>;
extern "C" {
    pub static mut glad_glVertexAttrib2sv: PFNGLVERTEXATTRIB2SVPROC;
}
pub type PFNGLVERTEXATTRIB3DPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble),
>;
extern "C" {
    pub static mut glad_glVertexAttrib3d: PFNGLVERTEXATTRIB3DPROC;
}
pub type PFNGLVERTEXATTRIB3DVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLdouble)>;
extern "C" {
    pub static mut glad_glVertexAttrib3dv: PFNGLVERTEXATTRIB3DVPROC;
}
pub type PFNGLVERTEXATTRIB3FPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat)>;
extern "C" {
    pub static mut glad_glVertexAttrib3f: PFNGLVERTEXATTRIB3FPROC;
}
pub type PFNGLVERTEXATTRIB3FVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLfloat)>;
extern "C" {
    pub static mut glad_glVertexAttrib3fv: PFNGLVERTEXATTRIB3FVPROC;
}
pub type PFNGLVERTEXATTRIB3SPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLshort, y: GLshort, z: GLshort)>;
extern "C" {
    pub static mut glad_glVertexAttrib3s: PFNGLVERTEXATTRIB3SPROC;
}
pub type PFNGLVERTEXATTRIB3SVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLshort)>;
extern "C" {
    pub static mut glad_glVertexAttrib3sv: PFNGLVERTEXATTRIB3SVPROC;
}
pub type PFNGLVERTEXATTRIB4NBVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLbyte)>;
extern "C" {
    pub static mut glad_glVertexAttrib4Nbv: PFNGLVERTEXATTRIB4NBVPROC;
}
pub type PFNGLVERTEXATTRIB4NIVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLint)>;
extern "C" {
    pub static mut glad_glVertexAttrib4Niv: PFNGLVERTEXATTRIB4NIVPROC;
}
pub type PFNGLVERTEXATTRIB4NSVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLshort)>;
extern "C" {
    pub static mut glad_glVertexAttrib4Nsv: PFNGLVERTEXATTRIB4NSVPROC;
}
pub type PFNGLVERTEXATTRIB4NUBPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, x: GLubyte, y: GLubyte, z: GLubyte, w: GLubyte),
>;
extern "C" {
    pub static mut glad_glVertexAttrib4Nub: PFNGLVERTEXATTRIB4NUBPROC;
}
pub type PFNGLVERTEXATTRIB4NUBVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLubyte)>;
extern "C" {
    pub static mut glad_glVertexAttrib4Nubv: PFNGLVERTEXATTRIB4NUBVPROC;
}
pub type PFNGLVERTEXATTRIB4NUIVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLuint)>;
extern "C" {
    pub static mut glad_glVertexAttrib4Nuiv: PFNGLVERTEXATTRIB4NUIVPROC;
}
pub type PFNGLVERTEXATTRIB4NUSVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLushort)>;
extern "C" {
    pub static mut glad_glVertexAttrib4Nusv: PFNGLVERTEXATTRIB4NUSVPROC;
}
pub type PFNGLVERTEXATTRIB4BVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLbyte)>;
extern "C" {
    pub static mut glad_glVertexAttrib4bv: PFNGLVERTEXATTRIB4BVPROC;
}
pub type PFNGLVERTEXATTRIB4DPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble, w: GLdouble),
>;
extern "C" {
    pub static mut glad_glVertexAttrib4d: PFNGLVERTEXATTRIB4DPROC;
}
pub type PFNGLVERTEXATTRIB4DVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLdouble)>;
extern "C" {
    pub static mut glad_glVertexAttrib4dv: PFNGLVERTEXATTRIB4DVPROC;
}
pub type PFNGLVERTEXATTRIB4FPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat),
>;
extern "C" {
    pub static mut glad_glVertexAttrib4f: PFNGLVERTEXATTRIB4FPROC;
}
pub type PFNGLVERTEXATTRIB4FVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLfloat)>;
extern "C" {
    pub static mut glad_glVertexAttrib4fv: PFNGLVERTEXATTRIB4FVPROC;
}
pub type PFNGLVERTEXATTRIB4IVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLint)>;
extern "C" {
    pub static mut glad_glVertexAttrib4iv: PFNGLVERTEXATTRIB4IVPROC;
}
pub type PFNGLVERTEXATTRIB4SPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, x: GLshort, y: GLshort, z: GLshort, w: GLshort),
>;
extern "C" {
    pub static mut glad_glVertexAttrib4s: PFNGLVERTEXATTRIB4SPROC;
}
pub type PFNGLVERTEXATTRIB4SVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLshort)>;
extern "C" {
    pub static mut glad_glVertexAttrib4sv: PFNGLVERTEXATTRIB4SVPROC;
}
pub type PFNGLVERTEXATTRIB4UBVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLubyte)>;
extern "C" {
    pub static mut glad_glVertexAttrib4ubv: PFNGLVERTEXATTRIB4UBVPROC;
}
pub type PFNGLVERTEXATTRIB4UIVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLuint)>;
extern "C" {
    pub static mut glad_glVertexAttrib4uiv: PFNGLVERTEXATTRIB4UIVPROC;
}
pub type PFNGLVERTEXATTRIB4USVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLushort)>;
extern "C" {
    pub static mut glad_glVertexAttrib4usv: PFNGLVERTEXATTRIB4USVPROC;
}
pub type PFNGLVERTEXATTRIBPOINTERPROC = ::std::option::Option<
    unsafe extern "C" fn(
        index: GLuint,
        size: GLint,
        type_: GLenum,
        normalized: GLboolean,
        stride: GLsizei,
        pointer: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glVertexAttribPointer: PFNGLVERTEXATTRIBPOINTERPROC;
}
extern "C" {
    pub static mut GLAD_GL_VERSION_2_1: ::std::os::raw::c_int;
}
pub type PFNGLUNIFORMMATRIX2X3FVPROC = ::std::option::Option<
    unsafe extern "C" fn(
        location: GLint,
        count: GLsizei,
        transpose: GLboolean,
        value: *const GLfloat,
    ),
>;
extern "C" {
    pub static mut glad_glUniformMatrix2x3fv: PFNGLUNIFORMMATRIX2X3FVPROC;
}
pub type PFNGLUNIFORMMATRIX3X2FVPROC = ::std::option::Option<
    unsafe extern "C" fn(
        location: GLint,
        count: GLsizei,
        transpose: GLboolean,
        value: *const GLfloat,
    ),
>;
extern "C" {
    pub static mut glad_glUniformMatrix3x2fv: PFNGLUNIFORMMATRIX3X2FVPROC;
}
pub type PFNGLUNIFORMMATRIX2X4FVPROC = ::std::option::Option<
    unsafe extern "C" fn(
        location: GLint,
        count: GLsizei,
        transpose: GLboolean,
        value: *const GLfloat,
    ),
>;
extern "C" {
    pub static mut glad_glUniformMatrix2x4fv: PFNGLUNIFORMMATRIX2X4FVPROC;
}
pub type PFNGLUNIFORMMATRIX4X2FVPROC = ::std::option::Option<
    unsafe extern "C" fn(
        location: GLint,
        count: GLsizei,
        transpose: GLboolean,
        value: *const GLfloat,
    ),
>;
extern "C" {
    pub static mut glad_glUniformMatrix4x2fv: PFNGLUNIFORMMATRIX4X2FVPROC;
}
pub type PFNGLUNIFORMMATRIX3X4FVPROC = ::std::option::Option<
    unsafe extern "C" fn(
        location: GLint,
        count: GLsizei,
        transpose: GLboolean,
        value: *const GLfloat,
    ),
>;
extern "C" {
    pub static mut glad_glUniformMatrix3x4fv: PFNGLUNIFORMMATRIX3X4FVPROC;
}
pub type PFNGLUNIFORMMATRIX4X3FVPROC = ::std::option::Option<
    unsafe extern "C" fn(
        location: GLint,
        count: GLsizei,
        transpose: GLboolean,
        value: *const GLfloat,
    ),
>;
extern "C" {
    pub static mut glad_glUniformMatrix4x3fv: PFNGLUNIFORMMATRIX4X3FVPROC;
}
extern "C" {
    pub static mut GLAD_GL_VERSION_3_0: ::std::os::raw::c_int;
}
pub type PFNGLCOLORMASKIPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, r: GLboolean, g: GLboolean, b: GLboolean, a: GLboolean),
>;
extern "C" {
    pub static mut glad_glColorMaski: PFNGLCOLORMASKIPROC;
}
pub type PFNGLGETBOOLEANI_VPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, index: GLuint, data: *mut GLboolean),
>;
extern "C" {
    pub static mut glad_glGetBooleani_v: PFNGLGETBOOLEANI_VPROC;
}
pub type PFNGLGETINTEGERI_VPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, index: GLuint, data: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetIntegeri_v: PFNGLGETINTEGERI_VPROC;
}
pub type PFNGLENABLEIPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, index: GLuint)>;
extern "C" {
    pub static mut glad_glEnablei: PFNGLENABLEIPROC;
}
pub type PFNGLDISABLEIPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, index: GLuint)>;
extern "C" {
    pub static mut glad_glDisablei: PFNGLDISABLEIPROC;
}
pub type PFNGLISENABLEDIPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, index: GLuint) -> GLboolean>;
extern "C" {
    pub static mut glad_glIsEnabledi: PFNGLISENABLEDIPROC;
}
pub type PFNGLBEGINTRANSFORMFEEDBACKPROC =
    ::std::option::Option<unsafe extern "C" fn(primitiveMode: GLenum)>;
extern "C" {
    pub static mut glad_glBeginTransformFeedback: PFNGLBEGINTRANSFORMFEEDBACKPROC;
}
pub type PFNGLENDTRANSFORMFEEDBACKPROC = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut glad_glEndTransformFeedback: PFNGLENDTRANSFORMFEEDBACKPROC;
}
pub type PFNGLBINDBUFFERRANGEPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        index: GLuint,
        buffer: GLuint,
        offset: GLintptr,
        size: GLsizeiptr,
    ),
>;
extern "C" {
    pub static mut glad_glBindBufferRange: PFNGLBINDBUFFERRANGEPROC;
}
pub type PFNGLBINDBUFFERBASEPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, index: GLuint, buffer: GLuint)>;
extern "C" {
    pub static mut glad_glBindBufferBase: PFNGLBINDBUFFERBASEPROC;
}
pub type PFNGLTRANSFORMFEEDBACKVARYINGSPROC = ::std::option::Option<
    unsafe extern "C" fn(
        program: GLuint,
        count: GLsizei,
        varyings: *mut *const GLchar,
        bufferMode: GLenum,
    ),
>;
extern "C" {
    pub static mut glad_glTransformFeedbackVaryings: PFNGLTRANSFORMFEEDBACKVARYINGSPROC;
}
pub type PFNGLGETTRANSFORMFEEDBACKVARYINGPROC = ::std::option::Option<
    unsafe extern "C" fn(
        program: GLuint,
        index: GLuint,
        bufSize: GLsizei,
        length: *mut GLsizei,
        size: *mut GLsizei,
        type_: *mut GLenum,
        name: *mut GLchar,
    ),
>;
extern "C" {
    pub static mut glad_glGetTransformFeedbackVarying: PFNGLGETTRANSFORMFEEDBACKVARYINGPROC;
}
pub type PFNGLCLAMPCOLORPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, clamp: GLenum)>;
extern "C" {
    pub static mut glad_glClampColor: PFNGLCLAMPCOLORPROC;
}
pub type PFNGLBEGINCONDITIONALRENDERPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, mode: GLenum)>;
extern "C" {
    pub static mut glad_glBeginConditionalRender: PFNGLBEGINCONDITIONALRENDERPROC;
}
pub type PFNGLENDCONDITIONALRENDERPROC = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut glad_glEndConditionalRender: PFNGLENDCONDITIONALRENDERPROC;
}
pub type PFNGLVERTEXATTRIBIPOINTERPROC = ::std::option::Option<
    unsafe extern "C" fn(
        index: GLuint,
        size: GLint,
        type_: GLenum,
        stride: GLsizei,
        pointer: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glVertexAttribIPointer: PFNGLVERTEXATTRIBIPOINTERPROC;
}
pub type PFNGLGETVERTEXATTRIBIIVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetVertexAttribIiv: PFNGLGETVERTEXATTRIBIIVPROC;
}
pub type PFNGLGETVERTEXATTRIBIUIVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, pname: GLenum, params: *mut GLuint)>;
extern "C" {
    pub static mut glad_glGetVertexAttribIuiv: PFNGLGETVERTEXATTRIBIUIVPROC;
}
pub type PFNGLVERTEXATTRIBI1IPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLint)>;
extern "C" {
    pub static mut glad_glVertexAttribI1i: PFNGLVERTEXATTRIBI1IPROC;
}
pub type PFNGLVERTEXATTRIBI2IPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLint, y: GLint)>;
extern "C" {
    pub static mut glad_glVertexAttribI2i: PFNGLVERTEXATTRIBI2IPROC;
}
pub type PFNGLVERTEXATTRIBI3IPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLint, y: GLint, z: GLint)>;
extern "C" {
    pub static mut glad_glVertexAttribI3i: PFNGLVERTEXATTRIBI3IPROC;
}
pub type PFNGLVERTEXATTRIBI4IPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint),
>;
extern "C" {
    pub static mut glad_glVertexAttribI4i: PFNGLVERTEXATTRIBI4IPROC;
}
pub type PFNGLVERTEXATTRIBI1UIPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLuint)>;
extern "C" {
    pub static mut glad_glVertexAttribI1ui: PFNGLVERTEXATTRIBI1UIPROC;
}
pub type PFNGLVERTEXATTRIBI2UIPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLuint, y: GLuint)>;
extern "C" {
    pub static mut glad_glVertexAttribI2ui: PFNGLVERTEXATTRIBI2UIPROC;
}
pub type PFNGLVERTEXATTRIBI3UIPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLuint, y: GLuint, z: GLuint)>;
extern "C" {
    pub static mut glad_glVertexAttribI3ui: PFNGLVERTEXATTRIBI3UIPROC;
}
pub type PFNGLVERTEXATTRIBI4UIPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint),
>;
extern "C" {
    pub static mut glad_glVertexAttribI4ui: PFNGLVERTEXATTRIBI4UIPROC;
}
pub type PFNGLVERTEXATTRIBI1IVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLint)>;
extern "C" {
    pub static mut glad_glVertexAttribI1iv: PFNGLVERTEXATTRIBI1IVPROC;
}
pub type PFNGLVERTEXATTRIBI2IVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLint)>;
extern "C" {
    pub static mut glad_glVertexAttribI2iv: PFNGLVERTEXATTRIBI2IVPROC;
}
pub type PFNGLVERTEXATTRIBI3IVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLint)>;
extern "C" {
    pub static mut glad_glVertexAttribI3iv: PFNGLVERTEXATTRIBI3IVPROC;
}
pub type PFNGLVERTEXATTRIBI4IVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLint)>;
extern "C" {
    pub static mut glad_glVertexAttribI4iv: PFNGLVERTEXATTRIBI4IVPROC;
}
pub type PFNGLVERTEXATTRIBI1UIVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLuint)>;
extern "C" {
    pub static mut glad_glVertexAttribI1uiv: PFNGLVERTEXATTRIBI1UIVPROC;
}
pub type PFNGLVERTEXATTRIBI2UIVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLuint)>;
extern "C" {
    pub static mut glad_glVertexAttribI2uiv: PFNGLVERTEXATTRIBI2UIVPROC;
}
pub type PFNGLVERTEXATTRIBI3UIVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLuint)>;
extern "C" {
    pub static mut glad_glVertexAttribI3uiv: PFNGLVERTEXATTRIBI3UIVPROC;
}
pub type PFNGLVERTEXATTRIBI4UIVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLuint)>;
extern "C" {
    pub static mut glad_glVertexAttribI4uiv: PFNGLVERTEXATTRIBI4UIVPROC;
}
pub type PFNGLVERTEXATTRIBI4BVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLbyte)>;
extern "C" {
    pub static mut glad_glVertexAttribI4bv: PFNGLVERTEXATTRIBI4BVPROC;
}
pub type PFNGLVERTEXATTRIBI4SVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLshort)>;
extern "C" {
    pub static mut glad_glVertexAttribI4sv: PFNGLVERTEXATTRIBI4SVPROC;
}
pub type PFNGLVERTEXATTRIBI4UBVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLubyte)>;
extern "C" {
    pub static mut glad_glVertexAttribI4ubv: PFNGLVERTEXATTRIBI4UBVPROC;
}
pub type PFNGLVERTEXATTRIBI4USVPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLushort)>;
extern "C" {
    pub static mut glad_glVertexAttribI4usv: PFNGLVERTEXATTRIBI4USVPROC;
}
pub type PFNGLGETUNIFORMUIVPROC = ::std::option::Option<
    unsafe extern "C" fn(program: GLuint, location: GLint, params: *mut GLuint),
>;
extern "C" {
    pub static mut glad_glGetUniformuiv: PFNGLGETUNIFORMUIVPROC;
}
pub type PFNGLBINDFRAGDATALOCATIONPROC = ::std::option::Option<
    unsafe extern "C" fn(program: GLuint, color: GLuint, name: *const GLchar),
>;
extern "C" {
    pub static mut glad_glBindFragDataLocation: PFNGLBINDFRAGDATALOCATIONPROC;
}
pub type PFNGLGETFRAGDATALOCATIONPROC =
    ::std::option::Option<unsafe extern "C" fn(program: GLuint, name: *const GLchar) -> GLint>;
extern "C" {
    pub static mut glad_glGetFragDataLocation: PFNGLGETFRAGDATALOCATIONPROC;
}
pub type PFNGLUNIFORM1UIPROC =
    ::std::option::Option<unsafe extern "C" fn(location: GLint, v0: GLuint)>;
extern "C" {
    pub static mut glad_glUniform1ui: PFNGLUNIFORM1UIPROC;
}
pub type PFNGLUNIFORM2UIPROC =
    ::std::option::Option<unsafe extern "C" fn(location: GLint, v0: GLuint, v1: GLuint)>;
extern "C" {
    pub static mut glad_glUniform2ui: PFNGLUNIFORM2UIPROC;
}
pub type PFNGLUNIFORM3UIPROC = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, v0: GLuint, v1: GLuint, v2: GLuint),
>;
extern "C" {
    pub static mut glad_glUniform3ui: PFNGLUNIFORM3UIPROC;
}
pub type PFNGLUNIFORM4UIPROC = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint),
>;
extern "C" {
    pub static mut glad_glUniform4ui: PFNGLUNIFORM4UIPROC;
}
pub type PFNGLUNIFORM1UIVPROC = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLuint),
>;
extern "C" {
    pub static mut glad_glUniform1uiv: PFNGLUNIFORM1UIVPROC;
}
pub type PFNGLUNIFORM2UIVPROC = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLuint),
>;
extern "C" {
    pub static mut glad_glUniform2uiv: PFNGLUNIFORM2UIVPROC;
}
pub type PFNGLUNIFORM3UIVPROC = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLuint),
>;
extern "C" {
    pub static mut glad_glUniform3uiv: PFNGLUNIFORM3UIVPROC;
}
pub type PFNGLUNIFORM4UIVPROC = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLuint),
>;
extern "C" {
    pub static mut glad_glUniform4uiv: PFNGLUNIFORM4UIVPROC;
}
pub type PFNGLTEXPARAMETERIIVPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *const GLint),
>;
extern "C" {
    pub static mut glad_glTexParameterIiv: PFNGLTEXPARAMETERIIVPROC;
}
pub type PFNGLTEXPARAMETERIUIVPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *const GLuint),
>;
extern "C" {
    pub static mut glad_glTexParameterIuiv: PFNGLTEXPARAMETERIUIVPROC;
}
pub type PFNGLGETTEXPARAMETERIIVPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetTexParameterIiv: PFNGLGETTEXPARAMETERIIVPROC;
}
pub type PFNGLGETTEXPARAMETERIUIVPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut GLuint)>;
extern "C" {
    pub static mut glad_glGetTexParameterIuiv: PFNGLGETTEXPARAMETERIUIVPROC;
}
pub type PFNGLCLEARBUFFERIVPROC = ::std::option::Option<
    unsafe extern "C" fn(buffer: GLenum, drawbuffer: GLint, value: *const GLint),
>;
extern "C" {
    pub static mut glad_glClearBufferiv: PFNGLCLEARBUFFERIVPROC;
}
pub type PFNGLCLEARBUFFERUIVPROC = ::std::option::Option<
    unsafe extern "C" fn(buffer: GLenum, drawbuffer: GLint, value: *const GLuint),
>;
extern "C" {
    pub static mut glad_glClearBufferuiv: PFNGLCLEARBUFFERUIVPROC;
}
pub type PFNGLCLEARBUFFERFVPROC = ::std::option::Option<
    unsafe extern "C" fn(buffer: GLenum, drawbuffer: GLint, value: *const GLfloat),
>;
extern "C" {
    pub static mut glad_glClearBufferfv: PFNGLCLEARBUFFERFVPROC;
}
pub type PFNGLCLEARBUFFERFIPROC = ::std::option::Option<
    unsafe extern "C" fn(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint),
>;
extern "C" {
    pub static mut glad_glClearBufferfi: PFNGLCLEARBUFFERFIPROC;
}
pub type PFNGLGETSTRINGIPROC =
    ::std::option::Option<unsafe extern "C" fn(name: GLenum, index: GLuint) -> *const GLubyte>;
extern "C" {
    pub static mut glad_glGetStringi: PFNGLGETSTRINGIPROC;
}
pub type PFNGLISRENDERBUFFERPROC =
    ::std::option::Option<unsafe extern "C" fn(renderbuffer: GLuint) -> GLboolean>;
extern "C" {
    pub static mut glad_glIsRenderbuffer: PFNGLISRENDERBUFFERPROC;
}
pub type PFNGLBINDRENDERBUFFERPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, renderbuffer: GLuint)>;
extern "C" {
    pub static mut glad_glBindRenderbuffer: PFNGLBINDRENDERBUFFERPROC;
}
pub type PFNGLDELETERENDERBUFFERSPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, renderbuffers: *const GLuint)>;
extern "C" {
    pub static mut glad_glDeleteRenderbuffers: PFNGLDELETERENDERBUFFERSPROC;
}
pub type PFNGLGENRENDERBUFFERSPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, renderbuffers: *mut GLuint)>;
extern "C" {
    pub static mut glad_glGenRenderbuffers: PFNGLGENRENDERBUFFERSPROC;
}
pub type PFNGLRENDERBUFFERSTORAGEPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei),
>;
extern "C" {
    pub static mut glad_glRenderbufferStorage: PFNGLRENDERBUFFERSTORAGEPROC;
}
pub type PFNGLGETRENDERBUFFERPARAMETERIVPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetRenderbufferParameteriv: PFNGLGETRENDERBUFFERPARAMETERIVPROC;
}
pub type PFNGLISFRAMEBUFFERPROC =
    ::std::option::Option<unsafe extern "C" fn(framebuffer: GLuint) -> GLboolean>;
extern "C" {
    pub static mut glad_glIsFramebuffer: PFNGLISFRAMEBUFFERPROC;
}
pub type PFNGLBINDFRAMEBUFFERPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, framebuffer: GLuint)>;
extern "C" {
    pub static mut glad_glBindFramebuffer: PFNGLBINDFRAMEBUFFERPROC;
}
pub type PFNGLDELETEFRAMEBUFFERSPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, framebuffers: *const GLuint)>;
extern "C" {
    pub static mut glad_glDeleteFramebuffers: PFNGLDELETEFRAMEBUFFERSPROC;
}
pub type PFNGLGENFRAMEBUFFERSPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, framebuffers: *mut GLuint)>;
extern "C" {
    pub static mut glad_glGenFramebuffers: PFNGLGENFRAMEBUFFERSPROC;
}
pub type PFNGLCHECKFRAMEBUFFERSTATUSPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum) -> GLenum>;
extern "C" {
    pub static mut glad_glCheckFramebufferStatus: PFNGLCHECKFRAMEBUFFERSTATUSPROC;
}
pub type PFNGLFRAMEBUFFERTEXTURE1DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        attachment: GLenum,
        textarget: GLenum,
        texture: GLuint,
        level: GLint,
    ),
>;
extern "C" {
    pub static mut glad_glFramebufferTexture1D: PFNGLFRAMEBUFFERTEXTURE1DPROC;
}
pub type PFNGLFRAMEBUFFERTEXTURE2DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        attachment: GLenum,
        textarget: GLenum,
        texture: GLuint,
        level: GLint,
    ),
>;
extern "C" {
    pub static mut glad_glFramebufferTexture2D: PFNGLFRAMEBUFFERTEXTURE2DPROC;
}
pub type PFNGLFRAMEBUFFERTEXTURE3DPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        attachment: GLenum,
        textarget: GLenum,
        texture: GLuint,
        level: GLint,
        zoffset: GLint,
    ),
>;
extern "C" {
    pub static mut glad_glFramebufferTexture3D: PFNGLFRAMEBUFFERTEXTURE3DPROC;
}
pub type PFNGLFRAMEBUFFERRENDERBUFFERPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        attachment: GLenum,
        renderbuffertarget: GLenum,
        renderbuffer: GLuint,
    ),
>;
extern "C" {
    pub static mut glad_glFramebufferRenderbuffer: PFNGLFRAMEBUFFERRENDERBUFFERPROC;
}
pub type PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, attachment: GLenum, pname: GLenum, params: *mut GLint),
>;
extern "C" {
    pub static mut glad_glGetFramebufferAttachmentParameteriv:
        PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC;
}
pub type PFNGLGENERATEMIPMAPPROC = ::std::option::Option<unsafe extern "C" fn(target: GLenum)>;
extern "C" {
    pub static mut glad_glGenerateMipmap: PFNGLGENERATEMIPMAPPROC;
}
pub type PFNGLBLITFRAMEBUFFERPROC = ::std::option::Option<
    unsafe extern "C" fn(
        srcX0: GLint,
        srcY0: GLint,
        srcX1: GLint,
        srcY1: GLint,
        dstX0: GLint,
        dstY0: GLint,
        dstX1: GLint,
        dstY1: GLint,
        mask: GLbitfield,
        filter: GLenum,
    ),
>;
extern "C" {
    pub static mut glad_glBlitFramebuffer: PFNGLBLITFRAMEBUFFERPROC;
}
pub type PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        samples: GLsizei,
        internalformat: GLenum,
        width: GLsizei,
        height: GLsizei,
    ),
>;
extern "C" {
    pub static mut glad_glRenderbufferStorageMultisample: PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC;
}
pub type PFNGLFRAMEBUFFERTEXTURELAYERPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        attachment: GLenum,
        texture: GLuint,
        level: GLint,
        layer: GLint,
    ),
>;
extern "C" {
    pub static mut glad_glFramebufferTextureLayer: PFNGLFRAMEBUFFERTEXTURELAYERPROC;
}
pub type PFNGLMAPBUFFERRANGEPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        offset: GLintptr,
        length: GLsizeiptr,
        access: GLbitfield,
    ) -> *mut ::std::os::raw::c_void,
>;
extern "C" {
    pub static mut glad_glMapBufferRange: PFNGLMAPBUFFERRANGEPROC;
}
pub type PFNGLFLUSHMAPPEDBUFFERRANGEPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, offset: GLintptr, length: GLsizeiptr),
>;
extern "C" {
    pub static mut glad_glFlushMappedBufferRange: PFNGLFLUSHMAPPEDBUFFERRANGEPROC;
}
pub type PFNGLBINDVERTEXARRAYPROC = ::std::option::Option<unsafe extern "C" fn(array: GLuint)>;
extern "C" {
    pub static mut glad_glBindVertexArray: PFNGLBINDVERTEXARRAYPROC;
}
pub type PFNGLDELETEVERTEXARRAYSPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, arrays: *const GLuint)>;
extern "C" {
    pub static mut glad_glDeleteVertexArrays: PFNGLDELETEVERTEXARRAYSPROC;
}
pub type PFNGLGENVERTEXARRAYSPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, arrays: *mut GLuint)>;
extern "C" {
    pub static mut glad_glGenVertexArrays: PFNGLGENVERTEXARRAYSPROC;
}
pub type PFNGLISVERTEXARRAYPROC =
    ::std::option::Option<unsafe extern "C" fn(array: GLuint) -> GLboolean>;
extern "C" {
    pub static mut glad_glIsVertexArray: PFNGLISVERTEXARRAYPROC;
}
extern "C" {
    pub static mut GLAD_GL_VERSION_3_1: ::std::os::raw::c_int;
}
pub type PFNGLDRAWARRAYSINSTANCEDPROC = ::std::option::Option<
    unsafe extern "C" fn(mode: GLenum, first: GLint, count: GLsizei, instancecount: GLsizei),
>;
extern "C" {
    pub static mut glad_glDrawArraysInstanced: PFNGLDRAWARRAYSINSTANCEDPROC;
}
pub type PFNGLDRAWELEMENTSINSTANCEDPROC = ::std::option::Option<
    unsafe extern "C" fn(
        mode: GLenum,
        count: GLsizei,
        type_: GLenum,
        indices: *const ::std::os::raw::c_void,
        instancecount: GLsizei,
    ),
>;
extern "C" {
    pub static mut glad_glDrawElementsInstanced: PFNGLDRAWELEMENTSINSTANCEDPROC;
}
pub type PFNGLTEXBUFFERPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, internalformat: GLenum, buffer: GLuint),
>;
extern "C" {
    pub static mut glad_glTexBuffer: PFNGLTEXBUFFERPROC;
}
pub type PFNGLPRIMITIVERESTARTINDEXPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint)>;
extern "C" {
    pub static mut glad_glPrimitiveRestartIndex: PFNGLPRIMITIVERESTARTINDEXPROC;
}
pub type PFNGLCOPYBUFFERSUBDATAPROC = ::std::option::Option<
    unsafe extern "C" fn(
        readTarget: GLenum,
        writeTarget: GLenum,
        readOffset: GLintptr,
        writeOffset: GLintptr,
        size: GLsizeiptr,
    ),
>;
extern "C" {
    pub static mut glad_glCopyBufferSubData: PFNGLCOPYBUFFERSUBDATAPROC;
}
pub type PFNGLGETUNIFORMINDICESPROC = ::std::option::Option<
    unsafe extern "C" fn(
        program: GLuint,
        uniformCount: GLsizei,
        uniformNames: *mut *const GLchar,
        uniformIndices: *mut GLuint,
    ),
>;
extern "C" {
    pub static mut glad_glGetUniformIndices: PFNGLGETUNIFORMINDICESPROC;
}
pub type PFNGLGETACTIVEUNIFORMSIVPROC = ::std::option::Option<
    unsafe extern "C" fn(
        program: GLuint,
        uniformCount: GLsizei,
        uniformIndices: *const GLuint,
        pname: GLenum,
        params: *mut GLint,
    ),
>;
extern "C" {
    pub static mut glad_glGetActiveUniformsiv: PFNGLGETACTIVEUNIFORMSIVPROC;
}
pub type PFNGLGETACTIVEUNIFORMNAMEPROC = ::std::option::Option<
    unsafe extern "C" fn(
        program: GLuint,
        uniformIndex: GLuint,
        bufSize: GLsizei,
        length: *mut GLsizei,
        uniformName: *mut GLchar,
    ),
>;
extern "C" {
    pub static mut glad_glGetActiveUniformName: PFNGLGETACTIVEUNIFORMNAMEPROC;
}
pub type PFNGLGETUNIFORMBLOCKINDEXPROC = ::std::option::Option<
    unsafe extern "C" fn(program: GLuint, uniformBlockName: *const GLchar) -> GLuint,
>;
extern "C" {
    pub static mut glad_glGetUniformBlockIndex: PFNGLGETUNIFORMBLOCKINDEXPROC;
}
pub type PFNGLGETACTIVEUNIFORMBLOCKIVPROC = ::std::option::Option<
    unsafe extern "C" fn(
        program: GLuint,
        uniformBlockIndex: GLuint,
        pname: GLenum,
        params: *mut GLint,
    ),
>;
extern "C" {
    pub static mut glad_glGetActiveUniformBlockiv: PFNGLGETACTIVEUNIFORMBLOCKIVPROC;
}
pub type PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC = ::std::option::Option<
    unsafe extern "C" fn(
        program: GLuint,
        uniformBlockIndex: GLuint,
        bufSize: GLsizei,
        length: *mut GLsizei,
        uniformBlockName: *mut GLchar,
    ),
>;
extern "C" {
    pub static mut glad_glGetActiveUniformBlockName: PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC;
}
pub type PFNGLUNIFORMBLOCKBINDINGPROC = ::std::option::Option<
    unsafe extern "C" fn(program: GLuint, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint),
>;
extern "C" {
    pub static mut glad_glUniformBlockBinding: PFNGLUNIFORMBLOCKBINDINGPROC;
}
extern "C" {
    pub static mut GLAD_GL_VERSION_3_2: ::std::os::raw::c_int;
}
pub type PFNGLDRAWELEMENTSBASEVERTEXPROC = ::std::option::Option<
    unsafe extern "C" fn(
        mode: GLenum,
        count: GLsizei,
        type_: GLenum,
        indices: *const ::std::os::raw::c_void,
        basevertex: GLint,
    ),
>;
extern "C" {
    pub static mut glad_glDrawElementsBaseVertex: PFNGLDRAWELEMENTSBASEVERTEXPROC;
}
pub type PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC = ::std::option::Option<
    unsafe extern "C" fn(
        mode: GLenum,
        start: GLuint,
        end: GLuint,
        count: GLsizei,
        type_: GLenum,
        indices: *const ::std::os::raw::c_void,
        basevertex: GLint,
    ),
>;
extern "C" {
    pub static mut glad_glDrawRangeElementsBaseVertex: PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC;
}
pub type PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC = ::std::option::Option<
    unsafe extern "C" fn(
        mode: GLenum,
        count: GLsizei,
        type_: GLenum,
        indices: *const ::std::os::raw::c_void,
        instancecount: GLsizei,
        basevertex: GLint,
    ),
>;
extern "C" {
    pub static mut glad_glDrawElementsInstancedBaseVertex: PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC;
}
pub type PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC = ::std::option::Option<
    unsafe extern "C" fn(
        mode: GLenum,
        count: *const GLsizei,
        type_: GLenum,
        indices: *mut *const ::std::os::raw::c_void,
        drawcount: GLsizei,
        basevertex: *const GLint,
    ),
>;
extern "C" {
    pub static mut glad_glMultiDrawElementsBaseVertex: PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC;
}
pub type PFNGLPROVOKINGVERTEXPROC = ::std::option::Option<unsafe extern "C" fn(mode: GLenum)>;
extern "C" {
    pub static mut glad_glProvokingVertex: PFNGLPROVOKINGVERTEXPROC;
}
pub type PFNGLFENCESYNCPROC =
    ::std::option::Option<unsafe extern "C" fn(condition: GLenum, flags: GLbitfield) -> GLsync>;
extern "C" {
    pub static mut glad_glFenceSync: PFNGLFENCESYNCPROC;
}
pub type PFNGLISSYNCPROC = ::std::option::Option<unsafe extern "C" fn(sync: GLsync) -> GLboolean>;
extern "C" {
    pub static mut glad_glIsSync: PFNGLISSYNCPROC;
}
pub type PFNGLDELETESYNCPROC = ::std::option::Option<unsafe extern "C" fn(sync: GLsync)>;
extern "C" {
    pub static mut glad_glDeleteSync: PFNGLDELETESYNCPROC;
}
pub type PFNGLCLIENTWAITSYNCPROC = ::std::option::Option<
    unsafe extern "C" fn(sync: GLsync, flags: GLbitfield, timeout: GLuint64) -> GLenum,
>;
extern "C" {
    pub static mut glad_glClientWaitSync: PFNGLCLIENTWAITSYNCPROC;
}
pub type PFNGLWAITSYNCPROC =
    ::std::option::Option<unsafe extern "C" fn(sync: GLsync, flags: GLbitfield, timeout: GLuint64)>;
extern "C" {
    pub static mut glad_glWaitSync: PFNGLWAITSYNCPROC;
}
pub type PFNGLGETINTEGER64VPROC =
    ::std::option::Option<unsafe extern "C" fn(pname: GLenum, data: *mut GLint64)>;
extern "C" {
    pub static mut glad_glGetInteger64v: PFNGLGETINTEGER64VPROC;
}
pub type PFNGLGETSYNCIVPROC = ::std::option::Option<
    unsafe extern "C" fn(
        sync: GLsync,
        pname: GLenum,
        bufSize: GLsizei,
        length: *mut GLsizei,
        values: *mut GLint,
    ),
>;
extern "C" {
    pub static mut glad_glGetSynciv: PFNGLGETSYNCIVPROC;
}
pub type PFNGLGETINTEGER64I_VPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, index: GLuint, data: *mut GLint64)>;
extern "C" {
    pub static mut glad_glGetInteger64i_v: PFNGLGETINTEGER64I_VPROC;
}
pub type PFNGLGETBUFFERPARAMETERI64VPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut GLint64),
>;
extern "C" {
    pub static mut glad_glGetBufferParameteri64v: PFNGLGETBUFFERPARAMETERI64VPROC;
}
pub type PFNGLFRAMEBUFFERTEXTUREPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, attachment: GLenum, texture: GLuint, level: GLint),
>;
extern "C" {
    pub static mut glad_glFramebufferTexture: PFNGLFRAMEBUFFERTEXTUREPROC;
}
pub type PFNGLTEXIMAGE2DMULTISAMPLEPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        samples: GLsizei,
        internalformat: GLenum,
        width: GLsizei,
        height: GLsizei,
        fixedsamplelocations: GLboolean,
    ),
>;
extern "C" {
    pub static mut glad_glTexImage2DMultisample: PFNGLTEXIMAGE2DMULTISAMPLEPROC;
}
pub type PFNGLTEXIMAGE3DMULTISAMPLEPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        samples: GLsizei,
        internalformat: GLenum,
        width: GLsizei,
        height: GLsizei,
        depth: GLsizei,
        fixedsamplelocations: GLboolean,
    ),
>;
extern "C" {
    pub static mut glad_glTexImage3DMultisample: PFNGLTEXIMAGE3DMULTISAMPLEPROC;
}
pub type PFNGLGETMULTISAMPLEFVPROC =
    ::std::option::Option<unsafe extern "C" fn(pname: GLenum, index: GLuint, val: *mut GLfloat)>;
extern "C" {
    pub static mut glad_glGetMultisamplefv: PFNGLGETMULTISAMPLEFVPROC;
}
pub type PFNGLSAMPLEMASKIPROC =
    ::std::option::Option<unsafe extern "C" fn(maskNumber: GLuint, mask: GLbitfield)>;
extern "C" {
    pub static mut glad_glSampleMaski: PFNGLSAMPLEMASKIPROC;
}
extern "C" {
    pub static mut GLAD_GL_VERSION_3_3: ::std::os::raw::c_int;
}
pub type PFNGLBINDFRAGDATALOCATIONINDEXEDPROC = ::std::option::Option<
    unsafe extern "C" fn(program: GLuint, colorNumber: GLuint, index: GLuint, name: *const GLchar),
>;
extern "C" {
    pub static mut glad_glBindFragDataLocationIndexed: PFNGLBINDFRAGDATALOCATIONINDEXEDPROC;
}
pub type PFNGLGETFRAGDATAINDEXPROC =
    ::std::option::Option<unsafe extern "C" fn(program: GLuint, name: *const GLchar) -> GLint>;
extern "C" {
    pub static mut glad_glGetFragDataIndex: PFNGLGETFRAGDATAINDEXPROC;
}
pub type PFNGLGENSAMPLERSPROC =
    ::std::option::Option<unsafe extern "C" fn(count: GLsizei, samplers: *mut GLuint)>;
extern "C" {
    pub static mut glad_glGenSamplers: PFNGLGENSAMPLERSPROC;
}
pub type PFNGLDELETESAMPLERSPROC =
    ::std::option::Option<unsafe extern "C" fn(count: GLsizei, samplers: *const GLuint)>;
extern "C" {
    pub static mut glad_glDeleteSamplers: PFNGLDELETESAMPLERSPROC;
}
pub type PFNGLISSAMPLERPROC =
    ::std::option::Option<unsafe extern "C" fn(sampler: GLuint) -> GLboolean>;
extern "C" {
    pub static mut glad_glIsSampler: PFNGLISSAMPLERPROC;
}
pub type PFNGLBINDSAMPLERPROC =
    ::std::option::Option<unsafe extern "C" fn(unit: GLuint, sampler: GLuint)>;
extern "C" {
    pub static mut glad_glBindSampler: PFNGLBINDSAMPLERPROC;
}
pub type PFNGLSAMPLERPARAMETERIPROC =
    ::std::option::Option<unsafe extern "C" fn(sampler: GLuint, pname: GLenum, param: GLint)>;
extern "C" {
    pub static mut glad_glSamplerParameteri: PFNGLSAMPLERPARAMETERIPROC;
}
pub type PFNGLSAMPLERPARAMETERIVPROC = ::std::option::Option<
    unsafe extern "C" fn(sampler: GLuint, pname: GLenum, param: *const GLint),
>;
extern "C" {
    pub static mut glad_glSamplerParameteriv: PFNGLSAMPLERPARAMETERIVPROC;
}
pub type PFNGLSAMPLERPARAMETERFPROC =
    ::std::option::Option<unsafe extern "C" fn(sampler: GLuint, pname: GLenum, param: GLfloat)>;
extern "C" {
    pub static mut glad_glSamplerParameterf: PFNGLSAMPLERPARAMETERFPROC;
}
pub type PFNGLSAMPLERPARAMETERFVPROC = ::std::option::Option<
    unsafe extern "C" fn(sampler: GLuint, pname: GLenum, param: *const GLfloat),
>;
extern "C" {
    pub static mut glad_glSamplerParameterfv: PFNGLSAMPLERPARAMETERFVPROC;
}
pub type PFNGLSAMPLERPARAMETERIIVPROC = ::std::option::Option<
    unsafe extern "C" fn(sampler: GLuint, pname: GLenum, param: *const GLint),
>;
extern "C" {
    pub static mut glad_glSamplerParameterIiv: PFNGLSAMPLERPARAMETERIIVPROC;
}
pub type PFNGLSAMPLERPARAMETERIUIVPROC = ::std::option::Option<
    unsafe extern "C" fn(sampler: GLuint, pname: GLenum, param: *const GLuint),
>;
extern "C" {
    pub static mut glad_glSamplerParameterIuiv: PFNGLSAMPLERPARAMETERIUIVPROC;
}
pub type PFNGLGETSAMPLERPARAMETERIVPROC =
    ::std::option::Option<unsafe extern "C" fn(sampler: GLuint, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetSamplerParameteriv: PFNGLGETSAMPLERPARAMETERIVPROC;
}
pub type PFNGLGETSAMPLERPARAMETERIIVPROC =
    ::std::option::Option<unsafe extern "C" fn(sampler: GLuint, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetSamplerParameterIiv: PFNGLGETSAMPLERPARAMETERIIVPROC;
}
pub type PFNGLGETSAMPLERPARAMETERFVPROC = ::std::option::Option<
    unsafe extern "C" fn(sampler: GLuint, pname: GLenum, params: *mut GLfloat),
>;
extern "C" {
    pub static mut glad_glGetSamplerParameterfv: PFNGLGETSAMPLERPARAMETERFVPROC;
}
pub type PFNGLGETSAMPLERPARAMETERIUIVPROC = ::std::option::Option<
    unsafe extern "C" fn(sampler: GLuint, pname: GLenum, params: *mut GLuint),
>;
extern "C" {
    pub static mut glad_glGetSamplerParameterIuiv: PFNGLGETSAMPLERPARAMETERIUIVPROC;
}
pub type PFNGLQUERYCOUNTERPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, target: GLenum)>;
extern "C" {
    pub static mut glad_glQueryCounter: PFNGLQUERYCOUNTERPROC;
}
pub type PFNGLGETQUERYOBJECTI64VPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, pname: GLenum, params: *mut GLint64)>;
extern "C" {
    pub static mut glad_glGetQueryObjecti64v: PFNGLGETQUERYOBJECTI64VPROC;
}
pub type PFNGLGETQUERYOBJECTUI64VPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, pname: GLenum, params: *mut GLuint64)>;
extern "C" {
    pub static mut glad_glGetQueryObjectui64v: PFNGLGETQUERYOBJECTUI64VPROC;
}
pub type PFNGLVERTEXATTRIBDIVISORPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, divisor: GLuint)>;
extern "C" {
    pub static mut glad_glVertexAttribDivisor: PFNGLVERTEXATTRIBDIVISORPROC;
}
pub type PFNGLVERTEXATTRIBP1UIPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, type_: GLenum, normalized: GLboolean, value: GLuint),
>;
extern "C" {
    pub static mut glad_glVertexAttribP1ui: PFNGLVERTEXATTRIBP1UIPROC;
}
pub type PFNGLVERTEXATTRIBP1UIVPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, type_: GLenum, normalized: GLboolean, value: *const GLuint),
>;
extern "C" {
    pub static mut glad_glVertexAttribP1uiv: PFNGLVERTEXATTRIBP1UIVPROC;
}
pub type PFNGLVERTEXATTRIBP2UIPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, type_: GLenum, normalized: GLboolean, value: GLuint),
>;
extern "C" {
    pub static mut glad_glVertexAttribP2ui: PFNGLVERTEXATTRIBP2UIPROC;
}
pub type PFNGLVERTEXATTRIBP2UIVPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, type_: GLenum, normalized: GLboolean, value: *const GLuint),
>;
extern "C" {
    pub static mut glad_glVertexAttribP2uiv: PFNGLVERTEXATTRIBP2UIVPROC;
}
pub type PFNGLVERTEXATTRIBP3UIPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, type_: GLenum, normalized: GLboolean, value: GLuint),
>;
extern "C" {
    pub static mut glad_glVertexAttribP3ui: PFNGLVERTEXATTRIBP3UIPROC;
}
pub type PFNGLVERTEXATTRIBP3UIVPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, type_: GLenum, normalized: GLboolean, value: *const GLuint),
>;
extern "C" {
    pub static mut glad_glVertexAttribP3uiv: PFNGLVERTEXATTRIBP3UIVPROC;
}
pub type PFNGLVERTEXATTRIBP4UIPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, type_: GLenum, normalized: GLboolean, value: GLuint),
>;
extern "C" {
    pub static mut glad_glVertexAttribP4ui: PFNGLVERTEXATTRIBP4UIPROC;
}
pub type PFNGLVERTEXATTRIBP4UIVPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, type_: GLenum, normalized: GLboolean, value: *const GLuint),
>;
extern "C" {
    pub static mut glad_glVertexAttribP4uiv: PFNGLVERTEXATTRIBP4UIVPROC;
}
pub type PFNGLVERTEXP2UIPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, value: GLuint)>;
extern "C" {
    pub static mut glad_glVertexP2ui: PFNGLVERTEXP2UIPROC;
}
pub type PFNGLVERTEXP2UIVPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, value: *const GLuint)>;
extern "C" {
    pub static mut glad_glVertexP2uiv: PFNGLVERTEXP2UIVPROC;
}
pub type PFNGLVERTEXP3UIPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, value: GLuint)>;
extern "C" {
    pub static mut glad_glVertexP3ui: PFNGLVERTEXP3UIPROC;
}
pub type PFNGLVERTEXP3UIVPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, value: *const GLuint)>;
extern "C" {
    pub static mut glad_glVertexP3uiv: PFNGLVERTEXP3UIVPROC;
}
pub type PFNGLVERTEXP4UIPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, value: GLuint)>;
extern "C" {
    pub static mut glad_glVertexP4ui: PFNGLVERTEXP4UIPROC;
}
pub type PFNGLVERTEXP4UIVPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, value: *const GLuint)>;
extern "C" {
    pub static mut glad_glVertexP4uiv: PFNGLVERTEXP4UIVPROC;
}
pub type PFNGLTEXCOORDP1UIPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, coords: GLuint)>;
extern "C" {
    pub static mut glad_glTexCoordP1ui: PFNGLTEXCOORDP1UIPROC;
}
pub type PFNGLTEXCOORDP1UIVPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, coords: *const GLuint)>;
extern "C" {
    pub static mut glad_glTexCoordP1uiv: PFNGLTEXCOORDP1UIVPROC;
}
pub type PFNGLTEXCOORDP2UIPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, coords: GLuint)>;
extern "C" {
    pub static mut glad_glTexCoordP2ui: PFNGLTEXCOORDP2UIPROC;
}
pub type PFNGLTEXCOORDP2UIVPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, coords: *const GLuint)>;
extern "C" {
    pub static mut glad_glTexCoordP2uiv: PFNGLTEXCOORDP2UIVPROC;
}
pub type PFNGLTEXCOORDP3UIPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, coords: GLuint)>;
extern "C" {
    pub static mut glad_glTexCoordP3ui: PFNGLTEXCOORDP3UIPROC;
}
pub type PFNGLTEXCOORDP3UIVPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, coords: *const GLuint)>;
extern "C" {
    pub static mut glad_glTexCoordP3uiv: PFNGLTEXCOORDP3UIVPROC;
}
pub type PFNGLTEXCOORDP4UIPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, coords: GLuint)>;
extern "C" {
    pub static mut glad_glTexCoordP4ui: PFNGLTEXCOORDP4UIPROC;
}
pub type PFNGLTEXCOORDP4UIVPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, coords: *const GLuint)>;
extern "C" {
    pub static mut glad_glTexCoordP4uiv: PFNGLTEXCOORDP4UIVPROC;
}
pub type PFNGLMULTITEXCOORDP1UIPROC =
    ::std::option::Option<unsafe extern "C" fn(texture: GLenum, type_: GLenum, coords: GLuint)>;
extern "C" {
    pub static mut glad_glMultiTexCoordP1ui: PFNGLMULTITEXCOORDP1UIPROC;
}
pub type PFNGLMULTITEXCOORDP1UIVPROC = ::std::option::Option<
    unsafe extern "C" fn(texture: GLenum, type_: GLenum, coords: *const GLuint),
>;
extern "C" {
    pub static mut glad_glMultiTexCoordP1uiv: PFNGLMULTITEXCOORDP1UIVPROC;
}
pub type PFNGLMULTITEXCOORDP2UIPROC =
    ::std::option::Option<unsafe extern "C" fn(texture: GLenum, type_: GLenum, coords: GLuint)>;
extern "C" {
    pub static mut glad_glMultiTexCoordP2ui: PFNGLMULTITEXCOORDP2UIPROC;
}
pub type PFNGLMULTITEXCOORDP2UIVPROC = ::std::option::Option<
    unsafe extern "C" fn(texture: GLenum, type_: GLenum, coords: *const GLuint),
>;
extern "C" {
    pub static mut glad_glMultiTexCoordP2uiv: PFNGLMULTITEXCOORDP2UIVPROC;
}
pub type PFNGLMULTITEXCOORDP3UIPROC =
    ::std::option::Option<unsafe extern "C" fn(texture: GLenum, type_: GLenum, coords: GLuint)>;
extern "C" {
    pub static mut glad_glMultiTexCoordP3ui: PFNGLMULTITEXCOORDP3UIPROC;
}
pub type PFNGLMULTITEXCOORDP3UIVPROC = ::std::option::Option<
    unsafe extern "C" fn(texture: GLenum, type_: GLenum, coords: *const GLuint),
>;
extern "C" {
    pub static mut glad_glMultiTexCoordP3uiv: PFNGLMULTITEXCOORDP3UIVPROC;
}
pub type PFNGLMULTITEXCOORDP4UIPROC =
    ::std::option::Option<unsafe extern "C" fn(texture: GLenum, type_: GLenum, coords: GLuint)>;
extern "C" {
    pub static mut glad_glMultiTexCoordP4ui: PFNGLMULTITEXCOORDP4UIPROC;
}
pub type PFNGLMULTITEXCOORDP4UIVPROC = ::std::option::Option<
    unsafe extern "C" fn(texture: GLenum, type_: GLenum, coords: *const GLuint),
>;
extern "C" {
    pub static mut glad_glMultiTexCoordP4uiv: PFNGLMULTITEXCOORDP4UIVPROC;
}
pub type PFNGLNORMALP3UIPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, coords: GLuint)>;
extern "C" {
    pub static mut glad_glNormalP3ui: PFNGLNORMALP3UIPROC;
}
pub type PFNGLNORMALP3UIVPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, coords: *const GLuint)>;
extern "C" {
    pub static mut glad_glNormalP3uiv: PFNGLNORMALP3UIVPROC;
}
pub type PFNGLCOLORP3UIPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, color: GLuint)>;
extern "C" {
    pub static mut glad_glColorP3ui: PFNGLCOLORP3UIPROC;
}
pub type PFNGLCOLORP3UIVPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, color: *const GLuint)>;
extern "C" {
    pub static mut glad_glColorP3uiv: PFNGLCOLORP3UIVPROC;
}
pub type PFNGLCOLORP4UIPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, color: GLuint)>;
extern "C" {
    pub static mut glad_glColorP4ui: PFNGLCOLORP4UIPROC;
}
pub type PFNGLCOLORP4UIVPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, color: *const GLuint)>;
extern "C" {
    pub static mut glad_glColorP4uiv: PFNGLCOLORP4UIVPROC;
}
pub type PFNGLSECONDARYCOLORP3UIPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, color: GLuint)>;
extern "C" {
    pub static mut glad_glSecondaryColorP3ui: PFNGLSECONDARYCOLORP3UIPROC;
}
pub type PFNGLSECONDARYCOLORP3UIVPROC =
    ::std::option::Option<unsafe extern "C" fn(type_: GLenum, color: *const GLuint)>;
extern "C" {
    pub static mut glad_glSecondaryColorP3uiv: PFNGLSECONDARYCOLORP3UIVPROC;
}
extern "C" {
    pub static mut GLAD_GL_AMD_debug_output: ::std::os::raw::c_int;
}
pub type PFNGLDEBUGMESSAGEENABLEAMDPROC = ::std::option::Option<
    unsafe extern "C" fn(
        category: GLenum,
        severity: GLenum,
        count: GLsizei,
        ids: *const GLuint,
        enabled: GLboolean,
    ),
>;
extern "C" {
    pub static mut glad_glDebugMessageEnableAMD: PFNGLDEBUGMESSAGEENABLEAMDPROC;
}
pub type PFNGLDEBUGMESSAGEINSERTAMDPROC = ::std::option::Option<
    unsafe extern "C" fn(
        category: GLenum,
        severity: GLenum,
        id: GLuint,
        length: GLsizei,
        buf: *const GLchar,
    ),
>;
extern "C" {
    pub static mut glad_glDebugMessageInsertAMD: PFNGLDEBUGMESSAGEINSERTAMDPROC;
}
pub type PFNGLDEBUGMESSAGECALLBACKAMDPROC = ::std::option::Option<
    unsafe extern "C" fn(callback: GLDEBUGPROCAMD, userParam: *mut ::std::os::raw::c_void),
>;
extern "C" {
    pub static mut glad_glDebugMessageCallbackAMD: PFNGLDEBUGMESSAGECALLBACKAMDPROC;
}
pub type PFNGLGETDEBUGMESSAGELOGAMDPROC = ::std::option::Option<
    unsafe extern "C" fn(
        count: GLuint,
        bufsize: GLsizei,
        categories: *mut GLenum,
        severities: *mut GLuint,
        ids: *mut GLuint,
        lengths: *mut GLsizei,
        message: *mut GLchar,
    ) -> GLuint,
>;
extern "C" {
    pub static mut glad_glGetDebugMessageLogAMD: PFNGLGETDEBUGMESSAGELOGAMDPROC;
}
extern "C" {
    pub static mut GLAD_GL_AMD_query_buffer_object: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_ES2_compatibility: ::std::os::raw::c_int;
}
pub type PFNGLRELEASESHADERCOMPILERPROC = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut glad_glReleaseShaderCompiler: PFNGLRELEASESHADERCOMPILERPROC;
}
pub type PFNGLSHADERBINARYPROC = ::std::option::Option<
    unsafe extern "C" fn(
        count: GLsizei,
        shaders: *const GLuint,
        binaryformat: GLenum,
        binary: *const ::std::os::raw::c_void,
        length: GLsizei,
    ),
>;
extern "C" {
    pub static mut glad_glShaderBinary: PFNGLSHADERBINARYPROC;
}
pub type PFNGLGETSHADERPRECISIONFORMATPROC = ::std::option::Option<
    unsafe extern "C" fn(
        shadertype: GLenum,
        precisiontype: GLenum,
        range: *mut GLint,
        precision: *mut GLint,
    ),
>;
extern "C" {
    pub static mut glad_glGetShaderPrecisionFormat: PFNGLGETSHADERPRECISIONFORMATPROC;
}
pub type PFNGLDEPTHRANGEFPROC = ::std::option::Option<unsafe extern "C" fn(n: GLfloat, f: GLfloat)>;
extern "C" {
    pub static mut glad_glDepthRangef: PFNGLDEPTHRANGEFPROC;
}
pub type PFNGLCLEARDEPTHFPROC = ::std::option::Option<unsafe extern "C" fn(d: GLfloat)>;
extern "C" {
    pub static mut glad_glClearDepthf: PFNGLCLEARDEPTHFPROC;
}
extern "C" {
    pub static mut GLAD_GL_ARB_ES3_compatibility: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_buffer_storage: ::std::os::raw::c_int;
}
pub type PFNGLBUFFERSTORAGEPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        size: GLsizeiptr,
        data: *const ::std::os::raw::c_void,
        flags: GLbitfield,
    ),
>;
extern "C" {
    pub static mut glad_glBufferStorage: PFNGLBUFFERSTORAGEPROC;
}
extern "C" {
    pub static mut GLAD_GL_ARB_compatibility: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_compressed_texture_pixel_storage: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_debug_output: ::std::os::raw::c_int;
}
pub type PFNGLDEBUGMESSAGECONTROLARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        source: GLenum,
        type_: GLenum,
        severity: GLenum,
        count: GLsizei,
        ids: *const GLuint,
        enabled: GLboolean,
    ),
>;
extern "C" {
    pub static mut glad_glDebugMessageControlARB: PFNGLDEBUGMESSAGECONTROLARBPROC;
}
pub type PFNGLDEBUGMESSAGEINSERTARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        source: GLenum,
        type_: GLenum,
        id: GLuint,
        severity: GLenum,
        length: GLsizei,
        buf: *const GLchar,
    ),
>;
extern "C" {
    pub static mut glad_glDebugMessageInsertARB: PFNGLDEBUGMESSAGEINSERTARBPROC;
}
pub type PFNGLDEBUGMESSAGECALLBACKARBPROC = ::std::option::Option<
    unsafe extern "C" fn(callback: GLDEBUGPROCARB, userParam: *const ::std::os::raw::c_void),
>;
extern "C" {
    pub static mut glad_glDebugMessageCallbackARB: PFNGLDEBUGMESSAGECALLBACKARBPROC;
}
pub type PFNGLGETDEBUGMESSAGELOGARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        count: GLuint,
        bufSize: GLsizei,
        sources: *mut GLenum,
        types: *mut GLenum,
        ids: *mut GLuint,
        severities: *mut GLenum,
        lengths: *mut GLsizei,
        messageLog: *mut GLchar,
    ) -> GLuint,
>;
extern "C" {
    pub static mut glad_glGetDebugMessageLogARB: PFNGLGETDEBUGMESSAGELOGARBPROC;
}
extern "C" {
    pub static mut GLAD_GL_ARB_depth_buffer_float: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_depth_clamp: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_depth_texture: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_draw_buffers: ::std::os::raw::c_int;
}
pub type PFNGLDRAWBUFFERSARBPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, bufs: *const GLenum)>;
extern "C" {
    pub static mut glad_glDrawBuffersARB: PFNGLDRAWBUFFERSARBPROC;
}
extern "C" {
    pub static mut GLAD_GL_ARB_draw_buffers_blend: ::std::os::raw::c_int;
}
pub type PFNGLBLENDEQUATIONIARBPROC =
    ::std::option::Option<unsafe extern "C" fn(buf: GLuint, mode: GLenum)>;
extern "C" {
    pub static mut glad_glBlendEquationiARB: PFNGLBLENDEQUATIONIARBPROC;
}
pub type PFNGLBLENDEQUATIONSEPARATEIARBPROC =
    ::std::option::Option<unsafe extern "C" fn(buf: GLuint, modeRGB: GLenum, modeAlpha: GLenum)>;
extern "C" {
    pub static mut glad_glBlendEquationSeparateiARB: PFNGLBLENDEQUATIONSEPARATEIARBPROC;
}
pub type PFNGLBLENDFUNCIARBPROC =
    ::std::option::Option<unsafe extern "C" fn(buf: GLuint, src: GLenum, dst: GLenum)>;
extern "C" {
    pub static mut glad_glBlendFunciARB: PFNGLBLENDFUNCIARBPROC;
}
pub type PFNGLBLENDFUNCSEPARATEIARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        buf: GLuint,
        srcRGB: GLenum,
        dstRGB: GLenum,
        srcAlpha: GLenum,
        dstAlpha: GLenum,
    ),
>;
extern "C" {
    pub static mut glad_glBlendFuncSeparateiARB: PFNGLBLENDFUNCSEPARATEIARBPROC;
}
extern "C" {
    pub static mut GLAD_GL_ARB_explicit_attrib_location: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_explicit_uniform_location: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_fragment_program: ::std::os::raw::c_int;
}
pub type PFNGLPROGRAMSTRINGARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        format: GLenum,
        len: GLsizei,
        string: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glProgramStringARB: PFNGLPROGRAMSTRINGARBPROC;
}
pub type PFNGLBINDPROGRAMARBPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, program: GLuint)>;
extern "C" {
    pub static mut glad_glBindProgramARB: PFNGLBINDPROGRAMARBPROC;
}
pub type PFNGLDELETEPROGRAMSARBPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, programs: *const GLuint)>;
extern "C" {
    pub static mut glad_glDeleteProgramsARB: PFNGLDELETEPROGRAMSARBPROC;
}
pub type PFNGLGENPROGRAMSARBPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, programs: *mut GLuint)>;
extern "C" {
    pub static mut glad_glGenProgramsARB: PFNGLGENPROGRAMSARBPROC;
}
pub type PFNGLPROGRAMENVPARAMETER4DARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        index: GLuint,
        x: GLdouble,
        y: GLdouble,
        z: GLdouble,
        w: GLdouble,
    ),
>;
extern "C" {
    pub static mut glad_glProgramEnvParameter4dARB: PFNGLPROGRAMENVPARAMETER4DARBPROC;
}
pub type PFNGLPROGRAMENVPARAMETER4DVARBPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, index: GLuint, params: *const GLdouble),
>;
extern "C" {
    pub static mut glad_glProgramEnvParameter4dvARB: PFNGLPROGRAMENVPARAMETER4DVARBPROC;
}
pub type PFNGLPROGRAMENVPARAMETER4FARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        index: GLuint,
        x: GLfloat,
        y: GLfloat,
        z: GLfloat,
        w: GLfloat,
    ),
>;
extern "C" {
    pub static mut glad_glProgramEnvParameter4fARB: PFNGLPROGRAMENVPARAMETER4FARBPROC;
}
pub type PFNGLPROGRAMENVPARAMETER4FVARBPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, index: GLuint, params: *const GLfloat),
>;
extern "C" {
    pub static mut glad_glProgramEnvParameter4fvARB: PFNGLPROGRAMENVPARAMETER4FVARBPROC;
}
pub type PFNGLPROGRAMLOCALPARAMETER4DARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        index: GLuint,
        x: GLdouble,
        y: GLdouble,
        z: GLdouble,
        w: GLdouble,
    ),
>;
extern "C" {
    pub static mut glad_glProgramLocalParameter4dARB: PFNGLPROGRAMLOCALPARAMETER4DARBPROC;
}
pub type PFNGLPROGRAMLOCALPARAMETER4DVARBPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, index: GLuint, params: *const GLdouble),
>;
extern "C" {
    pub static mut glad_glProgramLocalParameter4dvARB: PFNGLPROGRAMLOCALPARAMETER4DVARBPROC;
}
pub type PFNGLPROGRAMLOCALPARAMETER4FARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        index: GLuint,
        x: GLfloat,
        y: GLfloat,
        z: GLfloat,
        w: GLfloat,
    ),
>;
extern "C" {
    pub static mut glad_glProgramLocalParameter4fARB: PFNGLPROGRAMLOCALPARAMETER4FARBPROC;
}
pub type PFNGLPROGRAMLOCALPARAMETER4FVARBPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, index: GLuint, params: *const GLfloat),
>;
extern "C" {
    pub static mut glad_glProgramLocalParameter4fvARB: PFNGLPROGRAMLOCALPARAMETER4FVARBPROC;
}
pub type PFNGLGETPROGRAMENVPARAMETERDVARBPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, index: GLuint, params: *mut GLdouble),
>;
extern "C" {
    pub static mut glad_glGetProgramEnvParameterdvARB: PFNGLGETPROGRAMENVPARAMETERDVARBPROC;
}
pub type PFNGLGETPROGRAMENVPARAMETERFVARBPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, index: GLuint, params: *mut GLfloat),
>;
extern "C" {
    pub static mut glad_glGetProgramEnvParameterfvARB: PFNGLGETPROGRAMENVPARAMETERFVARBPROC;
}
pub type PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, index: GLuint, params: *mut GLdouble),
>;
extern "C" {
    pub static mut glad_glGetProgramLocalParameterdvARB: PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC;
}
pub type PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, index: GLuint, params: *mut GLfloat),
>;
extern "C" {
    pub static mut glad_glGetProgramLocalParameterfvARB: PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC;
}
pub type PFNGLGETPROGRAMIVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetProgramivARB: PFNGLGETPROGRAMIVARBPROC;
}
pub type PFNGLGETPROGRAMSTRINGARBPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, pname: GLenum, string: *mut ::std::os::raw::c_void),
>;
extern "C" {
    pub static mut glad_glGetProgramStringARB: PFNGLGETPROGRAMSTRINGARBPROC;
}
pub type PFNGLISPROGRAMARBPROC =
    ::std::option::Option<unsafe extern "C" fn(program: GLuint) -> GLboolean>;
extern "C" {
    pub static mut glad_glIsProgramARB: PFNGLISPROGRAMARBPROC;
}
extern "C" {
    pub static mut GLAD_GL_ARB_fragment_shader: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_framebuffer_object: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_framebuffer_sRGB: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_multisample: ::std::os::raw::c_int;
}
pub type PFNGLSAMPLECOVERAGEARBPROC =
    ::std::option::Option<unsafe extern "C" fn(value: GLfloat, invert: GLboolean)>;
extern "C" {
    pub static mut glad_glSampleCoverageARB: PFNGLSAMPLECOVERAGEARBPROC;
}
extern "C" {
    pub static mut GLAD_GL_ARB_sample_locations: ::std::os::raw::c_int;
}
pub type PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, start: GLuint, count: GLsizei, v: *const GLfloat),
>;
extern "C" {
    pub static mut glad_glFramebufferSampleLocationsfvARB: PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC;
}
pub type PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC = ::std::option::Option<
    unsafe extern "C" fn(framebuffer: GLuint, start: GLuint, count: GLsizei, v: *const GLfloat),
>;
extern "C" {
    pub static mut glad_glNamedFramebufferSampleLocationsfvARB:
        PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC;
}
pub type PFNGLEVALUATEDEPTHVALUESARBPROC = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut glad_glEvaluateDepthValuesARB: PFNGLEVALUATEDEPTHVALUESARBPROC;
}
extern "C" {
    pub static mut GLAD_GL_ARB_texture_compression: ::std::os::raw::c_int;
}
pub type PFNGLCOMPRESSEDTEXIMAGE3DARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        internalformat: GLenum,
        width: GLsizei,
        height: GLsizei,
        depth: GLsizei,
        border: GLint,
        imageSize: GLsizei,
        data: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glCompressedTexImage3DARB: PFNGLCOMPRESSEDTEXIMAGE3DARBPROC;
}
pub type PFNGLCOMPRESSEDTEXIMAGE2DARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        internalformat: GLenum,
        width: GLsizei,
        height: GLsizei,
        border: GLint,
        imageSize: GLsizei,
        data: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glCompressedTexImage2DARB: PFNGLCOMPRESSEDTEXIMAGE2DARBPROC;
}
pub type PFNGLCOMPRESSEDTEXIMAGE1DARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        internalformat: GLenum,
        width: GLsizei,
        border: GLint,
        imageSize: GLsizei,
        data: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glCompressedTexImage1DARB: PFNGLCOMPRESSEDTEXIMAGE1DARBPROC;
}
pub type PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        xoffset: GLint,
        yoffset: GLint,
        zoffset: GLint,
        width: GLsizei,
        height: GLsizei,
        depth: GLsizei,
        format: GLenum,
        imageSize: GLsizei,
        data: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glCompressedTexSubImage3DARB: PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC;
}
pub type PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        xoffset: GLint,
        yoffset: GLint,
        width: GLsizei,
        height: GLsizei,
        format: GLenum,
        imageSize: GLsizei,
        data: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glCompressedTexSubImage2DARB: PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC;
}
pub type PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        xoffset: GLint,
        width: GLsizei,
        format: GLenum,
        imageSize: GLsizei,
        data: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glCompressedTexSubImage1DARB: PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC;
}
pub type PFNGLGETCOMPRESSEDTEXIMAGEARBPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, level: GLint, img: *mut ::std::os::raw::c_void),
>;
extern "C" {
    pub static mut glad_glGetCompressedTexImageARB: PFNGLGETCOMPRESSEDTEXIMAGEARBPROC;
}
extern "C" {
    pub static mut GLAD_GL_ARB_texture_float: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_texture_multisample: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_texture_non_power_of_two: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_texture_rg: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_texture_swizzle: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_uniform_buffer_object: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_vertex_array_object: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_ARB_vertex_attrib_binding: ::std::os::raw::c_int;
}
pub type PFNGLBINDVERTEXBUFFERPROC = ::std::option::Option<
    unsafe extern "C" fn(bindingindex: GLuint, buffer: GLuint, offset: GLintptr, stride: GLsizei),
>;
extern "C" {
    pub static mut glad_glBindVertexBuffer: PFNGLBINDVERTEXBUFFERPROC;
}
pub type PFNGLVERTEXATTRIBFORMATPROC = ::std::option::Option<
    unsafe extern "C" fn(
        attribindex: GLuint,
        size: GLint,
        type_: GLenum,
        normalized: GLboolean,
        relativeoffset: GLuint,
    ),
>;
extern "C" {
    pub static mut glad_glVertexAttribFormat: PFNGLVERTEXATTRIBFORMATPROC;
}
pub type PFNGLVERTEXATTRIBIFORMATPROC = ::std::option::Option<
    unsafe extern "C" fn(attribindex: GLuint, size: GLint, type_: GLenum, relativeoffset: GLuint),
>;
extern "C" {
    pub static mut glad_glVertexAttribIFormat: PFNGLVERTEXATTRIBIFORMATPROC;
}
pub type PFNGLVERTEXATTRIBLFORMATPROC = ::std::option::Option<
    unsafe extern "C" fn(attribindex: GLuint, size: GLint, type_: GLenum, relativeoffset: GLuint),
>;
extern "C" {
    pub static mut glad_glVertexAttribLFormat: PFNGLVERTEXATTRIBLFORMATPROC;
}
pub type PFNGLVERTEXATTRIBBINDINGPROC =
    ::std::option::Option<unsafe extern "C" fn(attribindex: GLuint, bindingindex: GLuint)>;
extern "C" {
    pub static mut glad_glVertexAttribBinding: PFNGLVERTEXATTRIBBINDINGPROC;
}
pub type PFNGLVERTEXBINDINGDIVISORPROC =
    ::std::option::Option<unsafe extern "C" fn(bindingindex: GLuint, divisor: GLuint)>;
extern "C" {
    pub static mut glad_glVertexBindingDivisor: PFNGLVERTEXBINDINGDIVISORPROC;
}
extern "C" {
    pub static mut GLAD_GL_ARB_vertex_buffer_object: ::std::os::raw::c_int;
}
pub type PFNGLBINDBUFFERARBPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, buffer: GLuint)>;
extern "C" {
    pub static mut glad_glBindBufferARB: PFNGLBINDBUFFERARBPROC;
}
pub type PFNGLDELETEBUFFERSARBPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, buffers: *const GLuint)>;
extern "C" {
    pub static mut glad_glDeleteBuffersARB: PFNGLDELETEBUFFERSARBPROC;
}
pub type PFNGLGENBUFFERSARBPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, buffers: *mut GLuint)>;
extern "C" {
    pub static mut glad_glGenBuffersARB: PFNGLGENBUFFERSARBPROC;
}
pub type PFNGLISBUFFERARBPROC =
    ::std::option::Option<unsafe extern "C" fn(buffer: GLuint) -> GLboolean>;
extern "C" {
    pub static mut glad_glIsBufferARB: PFNGLISBUFFERARBPROC;
}
pub type PFNGLBUFFERDATAARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        size: GLsizeiptrARB,
        data: *const ::std::os::raw::c_void,
        usage: GLenum,
    ),
>;
extern "C" {
    pub static mut glad_glBufferDataARB: PFNGLBUFFERDATAARBPROC;
}
pub type PFNGLBUFFERSUBDATAARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        offset: GLintptrARB,
        size: GLsizeiptrARB,
        data: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glBufferSubDataARB: PFNGLBUFFERSUBDATAARBPROC;
}
pub type PFNGLGETBUFFERSUBDATAARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        offset: GLintptrARB,
        size: GLsizeiptrARB,
        data: *mut ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glGetBufferSubDataARB: PFNGLGETBUFFERSUBDATAARBPROC;
}
pub type PFNGLMAPBUFFERARBPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, access: GLenum) -> *mut ::std::os::raw::c_void,
>;
extern "C" {
    pub static mut glad_glMapBufferARB: PFNGLMAPBUFFERARBPROC;
}
pub type PFNGLUNMAPBUFFERARBPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum) -> GLboolean>;
extern "C" {
    pub static mut glad_glUnmapBufferARB: PFNGLUNMAPBUFFERARBPROC;
}
pub type PFNGLGETBUFFERPARAMETERIVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetBufferParameterivARB: PFNGLGETBUFFERPARAMETERIVARBPROC;
}
pub type PFNGLGETBUFFERPOINTERVARBPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut *mut ::std::os::raw::c_void),
>;
extern "C" {
    pub static mut glad_glGetBufferPointervARB: PFNGLGETBUFFERPOINTERVARBPROC;
}
extern "C" {
    pub static mut GLAD_GL_ARB_vertex_program: ::std::os::raw::c_int;
}
pub type PFNGLVERTEXATTRIB1DARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLdouble)>;
extern "C" {
    pub static mut glad_glVertexAttrib1dARB: PFNGLVERTEXATTRIB1DARBPROC;
}
pub type PFNGLVERTEXATTRIB1DVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLdouble)>;
extern "C" {
    pub static mut glad_glVertexAttrib1dvARB: PFNGLVERTEXATTRIB1DVARBPROC;
}
pub type PFNGLVERTEXATTRIB1FARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLfloat)>;
extern "C" {
    pub static mut glad_glVertexAttrib1fARB: PFNGLVERTEXATTRIB1FARBPROC;
}
pub type PFNGLVERTEXATTRIB1FVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLfloat)>;
extern "C" {
    pub static mut glad_glVertexAttrib1fvARB: PFNGLVERTEXATTRIB1FVARBPROC;
}
pub type PFNGLVERTEXATTRIB1SARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLshort)>;
extern "C" {
    pub static mut glad_glVertexAttrib1sARB: PFNGLVERTEXATTRIB1SARBPROC;
}
pub type PFNGLVERTEXATTRIB1SVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLshort)>;
extern "C" {
    pub static mut glad_glVertexAttrib1svARB: PFNGLVERTEXATTRIB1SVARBPROC;
}
pub type PFNGLVERTEXATTRIB2DARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLdouble, y: GLdouble)>;
extern "C" {
    pub static mut glad_glVertexAttrib2dARB: PFNGLVERTEXATTRIB2DARBPROC;
}
pub type PFNGLVERTEXATTRIB2DVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLdouble)>;
extern "C" {
    pub static mut glad_glVertexAttrib2dvARB: PFNGLVERTEXATTRIB2DVARBPROC;
}
pub type PFNGLVERTEXATTRIB2FARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLfloat, y: GLfloat)>;
extern "C" {
    pub static mut glad_glVertexAttrib2fARB: PFNGLVERTEXATTRIB2FARBPROC;
}
pub type PFNGLVERTEXATTRIB2FVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLfloat)>;
extern "C" {
    pub static mut glad_glVertexAttrib2fvARB: PFNGLVERTEXATTRIB2FVARBPROC;
}
pub type PFNGLVERTEXATTRIB2SARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLshort, y: GLshort)>;
extern "C" {
    pub static mut glad_glVertexAttrib2sARB: PFNGLVERTEXATTRIB2SARBPROC;
}
pub type PFNGLVERTEXATTRIB2SVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLshort)>;
extern "C" {
    pub static mut glad_glVertexAttrib2svARB: PFNGLVERTEXATTRIB2SVARBPROC;
}
pub type PFNGLVERTEXATTRIB3DARBPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble),
>;
extern "C" {
    pub static mut glad_glVertexAttrib3dARB: PFNGLVERTEXATTRIB3DARBPROC;
}
pub type PFNGLVERTEXATTRIB3DVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLdouble)>;
extern "C" {
    pub static mut glad_glVertexAttrib3dvARB: PFNGLVERTEXATTRIB3DVARBPROC;
}
pub type PFNGLVERTEXATTRIB3FARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat)>;
extern "C" {
    pub static mut glad_glVertexAttrib3fARB: PFNGLVERTEXATTRIB3FARBPROC;
}
pub type PFNGLVERTEXATTRIB3FVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLfloat)>;
extern "C" {
    pub static mut glad_glVertexAttrib3fvARB: PFNGLVERTEXATTRIB3FVARBPROC;
}
pub type PFNGLVERTEXATTRIB3SARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, x: GLshort, y: GLshort, z: GLshort)>;
extern "C" {
    pub static mut glad_glVertexAttrib3sARB: PFNGLVERTEXATTRIB3SARBPROC;
}
pub type PFNGLVERTEXATTRIB3SVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLshort)>;
extern "C" {
    pub static mut glad_glVertexAttrib3svARB: PFNGLVERTEXATTRIB3SVARBPROC;
}
pub type PFNGLVERTEXATTRIB4NBVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLbyte)>;
extern "C" {
    pub static mut glad_glVertexAttrib4NbvARB: PFNGLVERTEXATTRIB4NBVARBPROC;
}
pub type PFNGLVERTEXATTRIB4NIVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLint)>;
extern "C" {
    pub static mut glad_glVertexAttrib4NivARB: PFNGLVERTEXATTRIB4NIVARBPROC;
}
pub type PFNGLVERTEXATTRIB4NSVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLshort)>;
extern "C" {
    pub static mut glad_glVertexAttrib4NsvARB: PFNGLVERTEXATTRIB4NSVARBPROC;
}
pub type PFNGLVERTEXATTRIB4NUBARBPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, x: GLubyte, y: GLubyte, z: GLubyte, w: GLubyte),
>;
extern "C" {
    pub static mut glad_glVertexAttrib4NubARB: PFNGLVERTEXATTRIB4NUBARBPROC;
}
pub type PFNGLVERTEXATTRIB4NUBVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLubyte)>;
extern "C" {
    pub static mut glad_glVertexAttrib4NubvARB: PFNGLVERTEXATTRIB4NUBVARBPROC;
}
pub type PFNGLVERTEXATTRIB4NUIVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLuint)>;
extern "C" {
    pub static mut glad_glVertexAttrib4NuivARB: PFNGLVERTEXATTRIB4NUIVARBPROC;
}
pub type PFNGLVERTEXATTRIB4NUSVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLushort)>;
extern "C" {
    pub static mut glad_glVertexAttrib4NusvARB: PFNGLVERTEXATTRIB4NUSVARBPROC;
}
pub type PFNGLVERTEXATTRIB4BVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLbyte)>;
extern "C" {
    pub static mut glad_glVertexAttrib4bvARB: PFNGLVERTEXATTRIB4BVARBPROC;
}
pub type PFNGLVERTEXATTRIB4DARBPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble, w: GLdouble),
>;
extern "C" {
    pub static mut glad_glVertexAttrib4dARB: PFNGLVERTEXATTRIB4DARBPROC;
}
pub type PFNGLVERTEXATTRIB4DVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLdouble)>;
extern "C" {
    pub static mut glad_glVertexAttrib4dvARB: PFNGLVERTEXATTRIB4DVARBPROC;
}
pub type PFNGLVERTEXATTRIB4FARBPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat),
>;
extern "C" {
    pub static mut glad_glVertexAttrib4fARB: PFNGLVERTEXATTRIB4FARBPROC;
}
pub type PFNGLVERTEXATTRIB4FVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLfloat)>;
extern "C" {
    pub static mut glad_glVertexAttrib4fvARB: PFNGLVERTEXATTRIB4FVARBPROC;
}
pub type PFNGLVERTEXATTRIB4IVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLint)>;
extern "C" {
    pub static mut glad_glVertexAttrib4ivARB: PFNGLVERTEXATTRIB4IVARBPROC;
}
pub type PFNGLVERTEXATTRIB4SARBPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, x: GLshort, y: GLshort, z: GLshort, w: GLshort),
>;
extern "C" {
    pub static mut glad_glVertexAttrib4sARB: PFNGLVERTEXATTRIB4SARBPROC;
}
pub type PFNGLVERTEXATTRIB4SVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLshort)>;
extern "C" {
    pub static mut glad_glVertexAttrib4svARB: PFNGLVERTEXATTRIB4SVARBPROC;
}
pub type PFNGLVERTEXATTRIB4UBVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLubyte)>;
extern "C" {
    pub static mut glad_glVertexAttrib4ubvARB: PFNGLVERTEXATTRIB4UBVARBPROC;
}
pub type PFNGLVERTEXATTRIB4UIVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLuint)>;
extern "C" {
    pub static mut glad_glVertexAttrib4uivARB: PFNGLVERTEXATTRIB4UIVARBPROC;
}
pub type PFNGLVERTEXATTRIB4USVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, v: *const GLushort)>;
extern "C" {
    pub static mut glad_glVertexAttrib4usvARB: PFNGLVERTEXATTRIB4USVARBPROC;
}
pub type PFNGLVERTEXATTRIBPOINTERARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        index: GLuint,
        size: GLint,
        type_: GLenum,
        normalized: GLboolean,
        stride: GLsizei,
        pointer: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glVertexAttribPointerARB: PFNGLVERTEXATTRIBPOINTERARBPROC;
}
pub type PFNGLENABLEVERTEXATTRIBARRAYARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint)>;
extern "C" {
    pub static mut glad_glEnableVertexAttribArrayARB: PFNGLENABLEVERTEXATTRIBARRAYARBPROC;
}
pub type PFNGLDISABLEVERTEXATTRIBARRAYARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint)>;
extern "C" {
    pub static mut glad_glDisableVertexAttribArrayARB: PFNGLDISABLEVERTEXATTRIBARRAYARBPROC;
}
pub type PFNGLGETVERTEXATTRIBDVARBPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, pname: GLenum, params: *mut GLdouble),
>;
extern "C" {
    pub static mut glad_glGetVertexAttribdvARB: PFNGLGETVERTEXATTRIBDVARBPROC;
}
pub type PFNGLGETVERTEXATTRIBFVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, pname: GLenum, params: *mut GLfloat)>;
extern "C" {
    pub static mut glad_glGetVertexAttribfvARB: PFNGLGETVERTEXATTRIBFVARBPROC;
}
pub type PFNGLGETVERTEXATTRIBIVARBPROC =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetVertexAttribivARB: PFNGLGETVERTEXATTRIBIVARBPROC;
}
pub type PFNGLGETVERTEXATTRIBPOINTERVARBPROC = ::std::option::Option<
    unsafe extern "C" fn(index: GLuint, pname: GLenum, pointer: *mut *mut ::std::os::raw::c_void),
>;
extern "C" {
    pub static mut glad_glGetVertexAttribPointervARB: PFNGLGETVERTEXATTRIBPOINTERVARBPROC;
}
extern "C" {
    pub static mut GLAD_GL_ARB_vertex_shader: ::std::os::raw::c_int;
}
pub type PFNGLBINDATTRIBLOCATIONARBPROC = ::std::option::Option<
    unsafe extern "C" fn(programObj: GLhandleARB, index: GLuint, name: *const GLcharARB),
>;
extern "C" {
    pub static mut glad_glBindAttribLocationARB: PFNGLBINDATTRIBLOCATIONARBPROC;
}
pub type PFNGLGETACTIVEATTRIBARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        programObj: GLhandleARB,
        index: GLuint,
        maxLength: GLsizei,
        length: *mut GLsizei,
        size: *mut GLint,
        type_: *mut GLenum,
        name: *mut GLcharARB,
    ),
>;
extern "C" {
    pub static mut glad_glGetActiveAttribARB: PFNGLGETACTIVEATTRIBARBPROC;
}
pub type PFNGLGETATTRIBLOCATIONARBPROC = ::std::option::Option<
    unsafe extern "C" fn(programObj: GLhandleARB, name: *const GLcharARB) -> GLint,
>;
extern "C" {
    pub static mut glad_glGetAttribLocationARB: PFNGLGETATTRIBLOCATIONARBPROC;
}
extern "C" {
    pub static mut GLAD_GL_ATI_element_array: ::std::os::raw::c_int;
}
pub type PFNGLELEMENTPOINTERATIPROC = ::std::option::Option<
    unsafe extern "C" fn(type_: GLenum, pointer: *const ::std::os::raw::c_void),
>;
extern "C" {
    pub static mut glad_glElementPointerATI: PFNGLELEMENTPOINTERATIPROC;
}
pub type PFNGLDRAWELEMENTARRAYATIPROC =
    ::std::option::Option<unsafe extern "C" fn(mode: GLenum, count: GLsizei)>;
extern "C" {
    pub static mut glad_glDrawElementArrayATI: PFNGLDRAWELEMENTARRAYATIPROC;
}
pub type PFNGLDRAWRANGEELEMENTARRAYATIPROC = ::std::option::Option<
    unsafe extern "C" fn(mode: GLenum, start: GLuint, end: GLuint, count: GLsizei),
>;
extern "C" {
    pub static mut glad_glDrawRangeElementArrayATI: PFNGLDRAWRANGEELEMENTARRAYATIPROC;
}
extern "C" {
    pub static mut GLAD_GL_ATI_fragment_shader: ::std::os::raw::c_int;
}
pub type PFNGLGENFRAGMENTSHADERSATIPROC =
    ::std::option::Option<unsafe extern "C" fn(range: GLuint) -> GLuint>;
extern "C" {
    pub static mut glad_glGenFragmentShadersATI: PFNGLGENFRAGMENTSHADERSATIPROC;
}
pub type PFNGLBINDFRAGMENTSHADERATIPROC = ::std::option::Option<unsafe extern "C" fn(id: GLuint)>;
extern "C" {
    pub static mut glad_glBindFragmentShaderATI: PFNGLBINDFRAGMENTSHADERATIPROC;
}
pub type PFNGLDELETEFRAGMENTSHADERATIPROC = ::std::option::Option<unsafe extern "C" fn(id: GLuint)>;
extern "C" {
    pub static mut glad_glDeleteFragmentShaderATI: PFNGLDELETEFRAGMENTSHADERATIPROC;
}
pub type PFNGLBEGINFRAGMENTSHADERATIPROC = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut glad_glBeginFragmentShaderATI: PFNGLBEGINFRAGMENTSHADERATIPROC;
}
pub type PFNGLENDFRAGMENTSHADERATIPROC = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut glad_glEndFragmentShaderATI: PFNGLENDFRAGMENTSHADERATIPROC;
}
pub type PFNGLPASSTEXCOORDATIPROC =
    ::std::option::Option<unsafe extern "C" fn(dst: GLuint, coord: GLuint, swizzle: GLenum)>;
extern "C" {
    pub static mut glad_glPassTexCoordATI: PFNGLPASSTEXCOORDATIPROC;
}
pub type PFNGLSAMPLEMAPATIPROC =
    ::std::option::Option<unsafe extern "C" fn(dst: GLuint, interp: GLuint, swizzle: GLenum)>;
extern "C" {
    pub static mut glad_glSampleMapATI: PFNGLSAMPLEMAPATIPROC;
}
pub type PFNGLCOLORFRAGMENTOP1ATIPROC = ::std::option::Option<
    unsafe extern "C" fn(
        op: GLenum,
        dst: GLuint,
        dstMask: GLuint,
        dstMod: GLuint,
        arg1: GLuint,
        arg1Rep: GLuint,
        arg1Mod: GLuint,
    ),
>;
extern "C" {
    pub static mut glad_glColorFragmentOp1ATI: PFNGLCOLORFRAGMENTOP1ATIPROC;
}
pub type PFNGLCOLORFRAGMENTOP2ATIPROC = ::std::option::Option<
    unsafe extern "C" fn(
        op: GLenum,
        dst: GLuint,
        dstMask: GLuint,
        dstMod: GLuint,
        arg1: GLuint,
        arg1Rep: GLuint,
        arg1Mod: GLuint,
        arg2: GLuint,
        arg2Rep: GLuint,
        arg2Mod: GLuint,
    ),
>;
extern "C" {
    pub static mut glad_glColorFragmentOp2ATI: PFNGLCOLORFRAGMENTOP2ATIPROC;
}
pub type PFNGLCOLORFRAGMENTOP3ATIPROC = ::std::option::Option<
    unsafe extern "C" fn(
        op: GLenum,
        dst: GLuint,
        dstMask: GLuint,
        dstMod: GLuint,
        arg1: GLuint,
        arg1Rep: GLuint,
        arg1Mod: GLuint,
        arg2: GLuint,
        arg2Rep: GLuint,
        arg2Mod: GLuint,
        arg3: GLuint,
        arg3Rep: GLuint,
        arg3Mod: GLuint,
    ),
>;
extern "C" {
    pub static mut glad_glColorFragmentOp3ATI: PFNGLCOLORFRAGMENTOP3ATIPROC;
}
pub type PFNGLALPHAFRAGMENTOP1ATIPROC = ::std::option::Option<
    unsafe extern "C" fn(
        op: GLenum,
        dst: GLuint,
        dstMod: GLuint,
        arg1: GLuint,
        arg1Rep: GLuint,
        arg1Mod: GLuint,
    ),
>;
extern "C" {
    pub static mut glad_glAlphaFragmentOp1ATI: PFNGLALPHAFRAGMENTOP1ATIPROC;
}
pub type PFNGLALPHAFRAGMENTOP2ATIPROC = ::std::option::Option<
    unsafe extern "C" fn(
        op: GLenum,
        dst: GLuint,
        dstMod: GLuint,
        arg1: GLuint,
        arg1Rep: GLuint,
        arg1Mod: GLuint,
        arg2: GLuint,
        arg2Rep: GLuint,
        arg2Mod: GLuint,
    ),
>;
extern "C" {
    pub static mut glad_glAlphaFragmentOp2ATI: PFNGLALPHAFRAGMENTOP2ATIPROC;
}
pub type PFNGLALPHAFRAGMENTOP3ATIPROC = ::std::option::Option<
    unsafe extern "C" fn(
        op: GLenum,
        dst: GLuint,
        dstMod: GLuint,
        arg1: GLuint,
        arg1Rep: GLuint,
        arg1Mod: GLuint,
        arg2: GLuint,
        arg2Rep: GLuint,
        arg2Mod: GLuint,
        arg3: GLuint,
        arg3Rep: GLuint,
        arg3Mod: GLuint,
    ),
>;
extern "C" {
    pub static mut glad_glAlphaFragmentOp3ATI: PFNGLALPHAFRAGMENTOP3ATIPROC;
}
pub type PFNGLSETFRAGMENTSHADERCONSTANTATIPROC =
    ::std::option::Option<unsafe extern "C" fn(dst: GLuint, value: *const GLfloat)>;
extern "C" {
    pub static mut glad_glSetFragmentShaderConstantATI: PFNGLSETFRAGMENTSHADERCONSTANTATIPROC;
}
extern "C" {
    pub static mut GLAD_GL_ATI_vertex_array_object: ::std::os::raw::c_int;
}
pub type PFNGLNEWOBJECTBUFFERATIPROC = ::std::option::Option<
    unsafe extern "C" fn(
        size: GLsizei,
        pointer: *const ::std::os::raw::c_void,
        usage: GLenum,
    ) -> GLuint,
>;
extern "C" {
    pub static mut glad_glNewObjectBufferATI: PFNGLNEWOBJECTBUFFERATIPROC;
}
pub type PFNGLISOBJECTBUFFERATIPROC =
    ::std::option::Option<unsafe extern "C" fn(buffer: GLuint) -> GLboolean>;
extern "C" {
    pub static mut glad_glIsObjectBufferATI: PFNGLISOBJECTBUFFERATIPROC;
}
pub type PFNGLUPDATEOBJECTBUFFERATIPROC = ::std::option::Option<
    unsafe extern "C" fn(
        buffer: GLuint,
        offset: GLuint,
        size: GLsizei,
        pointer: *const ::std::os::raw::c_void,
        preserve: GLenum,
    ),
>;
extern "C" {
    pub static mut glad_glUpdateObjectBufferATI: PFNGLUPDATEOBJECTBUFFERATIPROC;
}
pub type PFNGLGETOBJECTBUFFERFVATIPROC = ::std::option::Option<
    unsafe extern "C" fn(buffer: GLuint, pname: GLenum, params: *mut GLfloat),
>;
extern "C" {
    pub static mut glad_glGetObjectBufferfvATI: PFNGLGETOBJECTBUFFERFVATIPROC;
}
pub type PFNGLGETOBJECTBUFFERIVATIPROC =
    ::std::option::Option<unsafe extern "C" fn(buffer: GLuint, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetObjectBufferivATI: PFNGLGETOBJECTBUFFERIVATIPROC;
}
pub type PFNGLFREEOBJECTBUFFERATIPROC = ::std::option::Option<unsafe extern "C" fn(buffer: GLuint)>;
extern "C" {
    pub static mut glad_glFreeObjectBufferATI: PFNGLFREEOBJECTBUFFERATIPROC;
}
pub type PFNGLARRAYOBJECTATIPROC = ::std::option::Option<
    unsafe extern "C" fn(
        array: GLenum,
        size: GLint,
        type_: GLenum,
        stride: GLsizei,
        buffer: GLuint,
        offset: GLuint,
    ),
>;
extern "C" {
    pub static mut glad_glArrayObjectATI: PFNGLARRAYOBJECTATIPROC;
}
pub type PFNGLGETARRAYOBJECTFVATIPROC =
    ::std::option::Option<unsafe extern "C" fn(array: GLenum, pname: GLenum, params: *mut GLfloat)>;
extern "C" {
    pub static mut glad_glGetArrayObjectfvATI: PFNGLGETARRAYOBJECTFVATIPROC;
}
pub type PFNGLGETARRAYOBJECTIVATIPROC =
    ::std::option::Option<unsafe extern "C" fn(array: GLenum, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetArrayObjectivATI: PFNGLGETARRAYOBJECTIVATIPROC;
}
pub type PFNGLVARIANTARRAYOBJECTATIPROC = ::std::option::Option<
    unsafe extern "C" fn(
        id: GLuint,
        type_: GLenum,
        stride: GLsizei,
        buffer: GLuint,
        offset: GLuint,
    ),
>;
extern "C" {
    pub static mut glad_glVariantArrayObjectATI: PFNGLVARIANTARRAYOBJECTATIPROC;
}
pub type PFNGLGETVARIANTARRAYOBJECTFVATIPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, pname: GLenum, params: *mut GLfloat)>;
extern "C" {
    pub static mut glad_glGetVariantArrayObjectfvATI: PFNGLGETVARIANTARRAYOBJECTFVATIPROC;
}
pub type PFNGLGETVARIANTARRAYOBJECTIVATIPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetVariantArrayObjectivATI: PFNGLGETVARIANTARRAYOBJECTIVATIPROC;
}
extern "C" {
    pub static mut GLAD_GL_EXT_blend_color: ::std::os::raw::c_int;
}
pub type PFNGLBLENDCOLOREXTPROC = ::std::option::Option<
    unsafe extern "C" fn(red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat),
>;
extern "C" {
    pub static mut glad_glBlendColorEXT: PFNGLBLENDCOLOREXTPROC;
}
extern "C" {
    pub static mut GLAD_GL_EXT_blend_equation_separate: ::std::os::raw::c_int;
}
pub type PFNGLBLENDEQUATIONSEPARATEEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(modeRGB: GLenum, modeAlpha: GLenum)>;
extern "C" {
    pub static mut glad_glBlendEquationSeparateEXT: PFNGLBLENDEQUATIONSEPARATEEXTPROC;
}
extern "C" {
    pub static mut GLAD_GL_EXT_blend_func_separate: ::std::os::raw::c_int;
}
pub type PFNGLBLENDFUNCSEPARATEEXTPROC = ::std::option::Option<
    unsafe extern "C" fn(
        sfactorRGB: GLenum,
        dfactorRGB: GLenum,
        sfactorAlpha: GLenum,
        dfactorAlpha: GLenum,
    ),
>;
extern "C" {
    pub static mut glad_glBlendFuncSeparateEXT: PFNGLBLENDFUNCSEPARATEEXTPROC;
}
extern "C" {
    pub static mut GLAD_GL_EXT_debug_marker: ::std::os::raw::c_int;
}
pub type PFNGLINSERTEVENTMARKEREXTPROC =
    ::std::option::Option<unsafe extern "C" fn(length: GLsizei, marker: *const GLchar)>;
extern "C" {
    pub static mut glad_glInsertEventMarkerEXT: PFNGLINSERTEVENTMARKEREXTPROC;
}
pub type PFNGLPUSHGROUPMARKEREXTPROC =
    ::std::option::Option<unsafe extern "C" fn(length: GLsizei, marker: *const GLchar)>;
extern "C" {
    pub static mut glad_glPushGroupMarkerEXT: PFNGLPUSHGROUPMARKEREXTPROC;
}
pub type PFNGLPOPGROUPMARKEREXTPROC = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut glad_glPopGroupMarkerEXT: PFNGLPOPGROUPMARKEREXTPROC;
}
extern "C" {
    pub static mut GLAD_GL_EXT_framebuffer_blit: ::std::os::raw::c_int;
}
pub type PFNGLBLITFRAMEBUFFEREXTPROC = ::std::option::Option<
    unsafe extern "C" fn(
        srcX0: GLint,
        srcY0: GLint,
        srcX1: GLint,
        srcY1: GLint,
        dstX0: GLint,
        dstY0: GLint,
        dstX1: GLint,
        dstY1: GLint,
        mask: GLbitfield,
        filter: GLenum,
    ),
>;
extern "C" {
    pub static mut glad_glBlitFramebufferEXT: PFNGLBLITFRAMEBUFFEREXTPROC;
}
extern "C" {
    pub static mut GLAD_GL_EXT_framebuffer_multisample: ::std::os::raw::c_int;
}
pub type PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        samples: GLsizei,
        internalformat: GLenum,
        width: GLsizei,
        height: GLsizei,
    ),
>;
extern "C" {
    pub static mut glad_glRenderbufferStorageMultisampleEXT:
        PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC;
}
extern "C" {
    pub static mut GLAD_GL_EXT_framebuffer_multisample_blit_scaled: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_EXT_framebuffer_object: ::std::os::raw::c_int;
}
pub type PFNGLISRENDERBUFFEREXTPROC =
    ::std::option::Option<unsafe extern "C" fn(renderbuffer: GLuint) -> GLboolean>;
extern "C" {
    pub static mut glad_glIsRenderbufferEXT: PFNGLISRENDERBUFFEREXTPROC;
}
pub type PFNGLBINDRENDERBUFFEREXTPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, renderbuffer: GLuint)>;
extern "C" {
    pub static mut glad_glBindRenderbufferEXT: PFNGLBINDRENDERBUFFEREXTPROC;
}
pub type PFNGLDELETERENDERBUFFERSEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, renderbuffers: *const GLuint)>;
extern "C" {
    pub static mut glad_glDeleteRenderbuffersEXT: PFNGLDELETERENDERBUFFERSEXTPROC;
}
pub type PFNGLGENRENDERBUFFERSEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, renderbuffers: *mut GLuint)>;
extern "C" {
    pub static mut glad_glGenRenderbuffersEXT: PFNGLGENRENDERBUFFERSEXTPROC;
}
pub type PFNGLRENDERBUFFERSTORAGEEXTPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei),
>;
extern "C" {
    pub static mut glad_glRenderbufferStorageEXT: PFNGLRENDERBUFFERSTORAGEEXTPROC;
}
pub type PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetRenderbufferParameterivEXT: PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC;
}
pub type PFNGLISFRAMEBUFFEREXTPROC =
    ::std::option::Option<unsafe extern "C" fn(framebuffer: GLuint) -> GLboolean>;
extern "C" {
    pub static mut glad_glIsFramebufferEXT: PFNGLISFRAMEBUFFEREXTPROC;
}
pub type PFNGLBINDFRAMEBUFFEREXTPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, framebuffer: GLuint)>;
extern "C" {
    pub static mut glad_glBindFramebufferEXT: PFNGLBINDFRAMEBUFFEREXTPROC;
}
pub type PFNGLDELETEFRAMEBUFFERSEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, framebuffers: *const GLuint)>;
extern "C" {
    pub static mut glad_glDeleteFramebuffersEXT: PFNGLDELETEFRAMEBUFFERSEXTPROC;
}
pub type PFNGLGENFRAMEBUFFERSEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, framebuffers: *mut GLuint)>;
extern "C" {
    pub static mut glad_glGenFramebuffersEXT: PFNGLGENFRAMEBUFFERSEXTPROC;
}
pub type PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum) -> GLenum>;
extern "C" {
    pub static mut glad_glCheckFramebufferStatusEXT: PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC;
}
pub type PFNGLFRAMEBUFFERTEXTURE1DEXTPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        attachment: GLenum,
        textarget: GLenum,
        texture: GLuint,
        level: GLint,
    ),
>;
extern "C" {
    pub static mut glad_glFramebufferTexture1DEXT: PFNGLFRAMEBUFFERTEXTURE1DEXTPROC;
}
pub type PFNGLFRAMEBUFFERTEXTURE2DEXTPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        attachment: GLenum,
        textarget: GLenum,
        texture: GLuint,
        level: GLint,
    ),
>;
extern "C" {
    pub static mut glad_glFramebufferTexture2DEXT: PFNGLFRAMEBUFFERTEXTURE2DEXTPROC;
}
pub type PFNGLFRAMEBUFFERTEXTURE3DEXTPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        attachment: GLenum,
        textarget: GLenum,
        texture: GLuint,
        level: GLint,
        zoffset: GLint,
    ),
>;
extern "C" {
    pub static mut glad_glFramebufferTexture3DEXT: PFNGLFRAMEBUFFERTEXTURE3DEXTPROC;
}
pub type PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        attachment: GLenum,
        renderbuffertarget: GLenum,
        renderbuffer: GLuint,
    ),
>;
extern "C" {
    pub static mut glad_glFramebufferRenderbufferEXT: PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC;
}
pub type PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, attachment: GLenum, pname: GLenum, params: *mut GLint),
>;
extern "C" {
    pub static mut glad_glGetFramebufferAttachmentParameterivEXT:
        PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC;
}
pub type PFNGLGENERATEMIPMAPEXTPROC = ::std::option::Option<unsafe extern "C" fn(target: GLenum)>;
extern "C" {
    pub static mut glad_glGenerateMipmapEXT: PFNGLGENERATEMIPMAPEXTPROC;
}
extern "C" {
    pub static mut GLAD_GL_EXT_framebuffer_sRGB: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_EXT_index_array_formats: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_EXT_texture: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_EXT_texture_compression_s3tc: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_EXT_texture_sRGB: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_EXT_texture_swizzle: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut GLAD_GL_EXT_vertex_array: ::std::os::raw::c_int;
}
pub type PFNGLARRAYELEMENTEXTPROC = ::std::option::Option<unsafe extern "C" fn(i: GLint)>;
extern "C" {
    pub static mut glad_glArrayElementEXT: PFNGLARRAYELEMENTEXTPROC;
}
pub type PFNGLCOLORPOINTEREXTPROC = ::std::option::Option<
    unsafe extern "C" fn(
        size: GLint,
        type_: GLenum,
        stride: GLsizei,
        count: GLsizei,
        pointer: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glColorPointerEXT: PFNGLCOLORPOINTEREXTPROC;
}
pub type PFNGLDRAWARRAYSEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(mode: GLenum, first: GLint, count: GLsizei)>;
extern "C" {
    pub static mut glad_glDrawArraysEXT: PFNGLDRAWARRAYSEXTPROC;
}
pub type PFNGLEDGEFLAGPOINTEREXTPROC = ::std::option::Option<
    unsafe extern "C" fn(stride: GLsizei, count: GLsizei, pointer: *const GLboolean),
>;
extern "C" {
    pub static mut glad_glEdgeFlagPointerEXT: PFNGLEDGEFLAGPOINTEREXTPROC;
}
pub type PFNGLGETPOINTERVEXTPROC = ::std::option::Option<
    unsafe extern "C" fn(pname: GLenum, params: *mut *mut ::std::os::raw::c_void),
>;
extern "C" {
    pub static mut glad_glGetPointervEXT: PFNGLGETPOINTERVEXTPROC;
}
pub type PFNGLINDEXPOINTEREXTPROC = ::std::option::Option<
    unsafe extern "C" fn(
        type_: GLenum,
        stride: GLsizei,
        count: GLsizei,
        pointer: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glIndexPointerEXT: PFNGLINDEXPOINTEREXTPROC;
}
pub type PFNGLNORMALPOINTEREXTPROC = ::std::option::Option<
    unsafe extern "C" fn(
        type_: GLenum,
        stride: GLsizei,
        count: GLsizei,
        pointer: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glNormalPointerEXT: PFNGLNORMALPOINTEREXTPROC;
}
pub type PFNGLTEXCOORDPOINTEREXTPROC = ::std::option::Option<
    unsafe extern "C" fn(
        size: GLint,
        type_: GLenum,
        stride: GLsizei,
        count: GLsizei,
        pointer: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glTexCoordPointerEXT: PFNGLTEXCOORDPOINTEREXTPROC;
}
pub type PFNGLVERTEXPOINTEREXTPROC = ::std::option::Option<
    unsafe extern "C" fn(
        size: GLint,
        type_: GLenum,
        stride: GLsizei,
        count: GLsizei,
        pointer: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glVertexPointerEXT: PFNGLVERTEXPOINTEREXTPROC;
}
extern "C" {
    pub static mut GLAD_GL_EXT_vertex_shader: ::std::os::raw::c_int;
}
pub type PFNGLBEGINVERTEXSHADEREXTPROC = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut glad_glBeginVertexShaderEXT: PFNGLBEGINVERTEXSHADEREXTPROC;
}
pub type PFNGLENDVERTEXSHADEREXTPROC = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut glad_glEndVertexShaderEXT: PFNGLENDVERTEXSHADEREXTPROC;
}
pub type PFNGLBINDVERTEXSHADEREXTPROC = ::std::option::Option<unsafe extern "C" fn(id: GLuint)>;
extern "C" {
    pub static mut glad_glBindVertexShaderEXT: PFNGLBINDVERTEXSHADEREXTPROC;
}
pub type PFNGLGENVERTEXSHADERSEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(range: GLuint) -> GLuint>;
extern "C" {
    pub static mut glad_glGenVertexShadersEXT: PFNGLGENVERTEXSHADERSEXTPROC;
}
pub type PFNGLDELETEVERTEXSHADEREXTPROC = ::std::option::Option<unsafe extern "C" fn(id: GLuint)>;
extern "C" {
    pub static mut glad_glDeleteVertexShaderEXT: PFNGLDELETEVERTEXSHADEREXTPROC;
}
pub type PFNGLSHADEROP1EXTPROC =
    ::std::option::Option<unsafe extern "C" fn(op: GLenum, res: GLuint, arg1: GLuint)>;
extern "C" {
    pub static mut glad_glShaderOp1EXT: PFNGLSHADEROP1EXTPROC;
}
pub type PFNGLSHADEROP2EXTPROC = ::std::option::Option<
    unsafe extern "C" fn(op: GLenum, res: GLuint, arg1: GLuint, arg2: GLuint),
>;
extern "C" {
    pub static mut glad_glShaderOp2EXT: PFNGLSHADEROP2EXTPROC;
}
pub type PFNGLSHADEROP3EXTPROC = ::std::option::Option<
    unsafe extern "C" fn(op: GLenum, res: GLuint, arg1: GLuint, arg2: GLuint, arg3: GLuint),
>;
extern "C" {
    pub static mut glad_glShaderOp3EXT: PFNGLSHADEROP3EXTPROC;
}
pub type PFNGLSWIZZLEEXTPROC = ::std::option::Option<
    unsafe extern "C" fn(
        res: GLuint,
        in_: GLuint,
        outX: GLenum,
        outY: GLenum,
        outZ: GLenum,
        outW: GLenum,
    ),
>;
extern "C" {
    pub static mut glad_glSwizzleEXT: PFNGLSWIZZLEEXTPROC;
}
pub type PFNGLWRITEMASKEXTPROC = ::std::option::Option<
    unsafe extern "C" fn(
        res: GLuint,
        in_: GLuint,
        outX: GLenum,
        outY: GLenum,
        outZ: GLenum,
        outW: GLenum,
    ),
>;
extern "C" {
    pub static mut glad_glWriteMaskEXT: PFNGLWRITEMASKEXTPROC;
}
pub type PFNGLINSERTCOMPONENTEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(res: GLuint, src: GLuint, num: GLuint)>;
extern "C" {
    pub static mut glad_glInsertComponentEXT: PFNGLINSERTCOMPONENTEXTPROC;
}
pub type PFNGLEXTRACTCOMPONENTEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(res: GLuint, src: GLuint, num: GLuint)>;
extern "C" {
    pub static mut glad_glExtractComponentEXT: PFNGLEXTRACTCOMPONENTEXTPROC;
}
pub type PFNGLGENSYMBOLSEXTPROC = ::std::option::Option<
    unsafe extern "C" fn(
        datatype: GLenum,
        storagetype: GLenum,
        range: GLenum,
        components: GLuint,
    ) -> GLuint,
>;
extern "C" {
    pub static mut glad_glGenSymbolsEXT: PFNGLGENSYMBOLSEXTPROC;
}
pub type PFNGLSETINVARIANTEXTPROC = ::std::option::Option<
    unsafe extern "C" fn(id: GLuint, type_: GLenum, addr: *const ::std::os::raw::c_void),
>;
extern "C" {
    pub static mut glad_glSetInvariantEXT: PFNGLSETINVARIANTEXTPROC;
}
pub type PFNGLSETLOCALCONSTANTEXTPROC = ::std::option::Option<
    unsafe extern "C" fn(id: GLuint, type_: GLenum, addr: *const ::std::os::raw::c_void),
>;
extern "C" {
    pub static mut glad_glSetLocalConstantEXT: PFNGLSETLOCALCONSTANTEXTPROC;
}
pub type PFNGLVARIANTBVEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, addr: *const GLbyte)>;
extern "C" {
    pub static mut glad_glVariantbvEXT: PFNGLVARIANTBVEXTPROC;
}
pub type PFNGLVARIANTSVEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, addr: *const GLshort)>;
extern "C" {
    pub static mut glad_glVariantsvEXT: PFNGLVARIANTSVEXTPROC;
}
pub type PFNGLVARIANTIVEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, addr: *const GLint)>;
extern "C" {
    pub static mut glad_glVariantivEXT: PFNGLVARIANTIVEXTPROC;
}
pub type PFNGLVARIANTFVEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, addr: *const GLfloat)>;
extern "C" {
    pub static mut glad_glVariantfvEXT: PFNGLVARIANTFVEXTPROC;
}
pub type PFNGLVARIANTDVEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, addr: *const GLdouble)>;
extern "C" {
    pub static mut glad_glVariantdvEXT: PFNGLVARIANTDVEXTPROC;
}
pub type PFNGLVARIANTUBVEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, addr: *const GLubyte)>;
extern "C" {
    pub static mut glad_glVariantubvEXT: PFNGLVARIANTUBVEXTPROC;
}
pub type PFNGLVARIANTUSVEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, addr: *const GLushort)>;
extern "C" {
    pub static mut glad_glVariantusvEXT: PFNGLVARIANTUSVEXTPROC;
}
pub type PFNGLVARIANTUIVEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, addr: *const GLuint)>;
extern "C" {
    pub static mut glad_glVariantuivEXT: PFNGLVARIANTUIVEXTPROC;
}
pub type PFNGLVARIANTPOINTEREXTPROC = ::std::option::Option<
    unsafe extern "C" fn(
        id: GLuint,
        type_: GLenum,
        stride: GLuint,
        addr: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut glad_glVariantPointerEXT: PFNGLVARIANTPOINTEREXTPROC;
}
pub type PFNGLENABLEVARIANTCLIENTSTATEEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint)>;
extern "C" {
    pub static mut glad_glEnableVariantClientStateEXT: PFNGLENABLEVARIANTCLIENTSTATEEXTPROC;
}
pub type PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint)>;
extern "C" {
    pub static mut glad_glDisableVariantClientStateEXT: PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC;
}
pub type PFNGLBINDLIGHTPARAMETEREXTPROC =
    ::std::option::Option<unsafe extern "C" fn(light: GLenum, value: GLenum) -> GLuint>;
extern "C" {
    pub static mut glad_glBindLightParameterEXT: PFNGLBINDLIGHTPARAMETEREXTPROC;
}
pub type PFNGLBINDMATERIALPARAMETEREXTPROC =
    ::std::option::Option<unsafe extern "C" fn(face: GLenum, value: GLenum) -> GLuint>;
extern "C" {
    pub static mut glad_glBindMaterialParameterEXT: PFNGLBINDMATERIALPARAMETEREXTPROC;
}
pub type PFNGLBINDTEXGENPARAMETEREXTPROC = ::std::option::Option<
    unsafe extern "C" fn(unit: GLenum, coord: GLenum, value: GLenum) -> GLuint,
>;
extern "C" {
    pub static mut glad_glBindTexGenParameterEXT: PFNGLBINDTEXGENPARAMETEREXTPROC;
}
pub type PFNGLBINDTEXTUREUNITPARAMETEREXTPROC =
    ::std::option::Option<unsafe extern "C" fn(unit: GLenum, value: GLenum) -> GLuint>;
extern "C" {
    pub static mut glad_glBindTextureUnitParameterEXT: PFNGLBINDTEXTUREUNITPARAMETEREXTPROC;
}
pub type PFNGLBINDPARAMETEREXTPROC =
    ::std::option::Option<unsafe extern "C" fn(value: GLenum) -> GLuint>;
extern "C" {
    pub static mut glad_glBindParameterEXT: PFNGLBINDPARAMETEREXTPROC;
}
pub type PFNGLISVARIANTENABLEDEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, cap: GLenum) -> GLboolean>;
extern "C" {
    pub static mut glad_glIsVariantEnabledEXT: PFNGLISVARIANTENABLEDEXTPROC;
}
pub type PFNGLGETVARIANTBOOLEANVEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, value: GLenum, data: *mut GLboolean)>;
extern "C" {
    pub static mut glad_glGetVariantBooleanvEXT: PFNGLGETVARIANTBOOLEANVEXTPROC;
}
pub type PFNGLGETVARIANTINTEGERVEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, value: GLenum, data: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetVariantIntegervEXT: PFNGLGETVARIANTINTEGERVEXTPROC;
}
pub type PFNGLGETVARIANTFLOATVEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, value: GLenum, data: *mut GLfloat)>;
extern "C" {
    pub static mut glad_glGetVariantFloatvEXT: PFNGLGETVARIANTFLOATVEXTPROC;
}
pub type PFNGLGETVARIANTPOINTERVEXTPROC = ::std::option::Option<
    unsafe extern "C" fn(id: GLuint, value: GLenum, data: *mut *mut ::std::os::raw::c_void),
>;
extern "C" {
    pub static mut glad_glGetVariantPointervEXT: PFNGLGETVARIANTPOINTERVEXTPROC;
}
pub type PFNGLGETINVARIANTBOOLEANVEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, value: GLenum, data: *mut GLboolean)>;
extern "C" {
    pub static mut glad_glGetInvariantBooleanvEXT: PFNGLGETINVARIANTBOOLEANVEXTPROC;
}
pub type PFNGLGETINVARIANTINTEGERVEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, value: GLenum, data: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetInvariantIntegervEXT: PFNGLGETINVARIANTINTEGERVEXTPROC;
}
pub type PFNGLGETINVARIANTFLOATVEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, value: GLenum, data: *mut GLfloat)>;
extern "C" {
    pub static mut glad_glGetInvariantFloatvEXT: PFNGLGETINVARIANTFLOATVEXTPROC;
}
pub type PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, value: GLenum, data: *mut GLboolean)>;
extern "C" {
    pub static mut glad_glGetLocalConstantBooleanvEXT: PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC;
}
pub type PFNGLGETLOCALCONSTANTINTEGERVEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, value: GLenum, data: *mut GLint)>;
extern "C" {
    pub static mut glad_glGetLocalConstantIntegervEXT: PFNGLGETLOCALCONSTANTINTEGERVEXTPROC;
}
pub type PFNGLGETLOCALCONSTANTFLOATVEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(id: GLuint, value: GLenum, data: *mut GLfloat)>;
extern "C" {
    pub static mut glad_glGetLocalConstantFloatvEXT: PFNGLGETLOCALCONSTANTFLOATVEXTPROC;
}
pub type __u_char = ::std::os::raw::c_uchar;
pub type __u_short = ::std::os::raw::c_ushort;
pub type __u_int = ::std::os::raw::c_uint;
pub type __u_long = ::std::os::raw::c_ulong;
pub type __int8_t = ::std::os::raw::c_schar;
pub type __uint8_t = ::std::os::raw::c_uchar;
pub type __int16_t = ::std::os::raw::c_short;
pub type __uint16_t = ::std::os::raw::c_ushort;
pub type __int32_t = ::std::os::raw::c_int;
pub type __uint32_t = ::std::os::raw::c_uint;
pub type __int64_t = ::std::os::raw::c_long;
pub type __uint64_t = ::std::os::raw::c_ulong;
pub type __quad_t = ::std::os::raw::c_long;
pub type __u_quad_t = ::std::os::raw::c_ulong;
pub type __dev_t = ::std::os::raw::c_ulong;
pub type __uid_t = ::std::os::raw::c_uint;
pub type __gid_t = ::std::os::raw::c_uint;
pub type __ino_t = ::std::os::raw::c_ulong;
pub type __ino64_t = ::std::os::raw::c_ulong;
pub type __mode_t = ::std::os::raw::c_uint;
pub type __nlink_t = ::std::os::raw::c_ulong;
pub type __off_t = ::std::os::raw::c_long;
pub type __off64_t = ::std::os::raw::c_long;
pub type __pid_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __fsid_t {
    pub __val: [::std::os::raw::c_int; 2usize],
}
#[test]
fn bindgen_test_layout___fsid_t() {
    assert_eq!(
        ::std::mem::size_of::<__fsid_t>(),
        8usize,
        concat!("Size of: ", stringify!(__fsid_t))
    );
    assert_eq!(
        ::std::mem::align_of::<__fsid_t>(),
        4usize,
        concat!("Alignment of ", stringify!(__fsid_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__fsid_t>())).__val as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__fsid_t),
            "::",
            stringify!(__val)
        )
    );
}
pub type __clock_t = ::std::os::raw::c_long;
pub type __rlim_t = ::std::os::raw::c_ulong;
pub type __rlim64_t = ::std::os::raw::c_ulong;
pub type __id_t = ::std::os::raw::c_uint;
pub type __time_t = ::std::os::raw::c_long;
pub type __useconds_t = ::std::os::raw::c_uint;
pub type __suseconds_t = ::std::os::raw::c_long;
pub type __daddr_t = ::std::os::raw::c_int;
pub type __key_t = ::std::os::raw::c_int;
pub type __clockid_t = ::std::os::raw::c_int;
pub type __timer_t = *mut ::std::os::raw::c_void;
pub type __blksize_t = ::std::os::raw::c_long;
pub type __blkcnt_t = ::std::os::raw::c_long;
pub type __blkcnt64_t = ::std::os::raw::c_long;
pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
pub type __fsword_t = ::std::os::raw::c_long;
pub type __ssize_t = ::std::os::raw::c_long;
pub type __syscall_slong_t = ::std::os::raw::c_long;
pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
pub type __loff_t = __off64_t;
pub type __qaddr_t = *mut __quad_t;
pub type __caddr_t = *mut ::std::os::raw::c_char;
pub type __intptr_t = ::std::os::raw::c_long;
pub type __socklen_t = ::std::os::raw::c_uint;
pub type FILE = _IO_FILE;
pub type __FILE = _IO_FILE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct __mbstate_t {
    pub __count: ::std::os::raw::c_int,
    pub __value: __mbstate_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union __mbstate_t__bindgen_ty_1 {
    pub __wch: ::std::os::raw::c_uint,
    pub __wchb: [::std::os::raw::c_char; 4usize],
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout___mbstate_t__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<__mbstate_t__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(__mbstate_t__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<__mbstate_t__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(__mbstate_t__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__mbstate_t__bindgen_ty_1>())).__wch as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__mbstate_t__bindgen_ty_1),
            "::",
            stringify!(__wch)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__mbstate_t__bindgen_ty_1>())).__wchb as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__mbstate_t__bindgen_ty_1),
            "::",
            stringify!(__wchb)
        )
    );
}
#[test]
fn bindgen_test_layout___mbstate_t() {
    assert_eq!(
        ::std::mem::size_of::<__mbstate_t>(),
        8usize,
        concat!("Size of: ", stringify!(__mbstate_t))
    );
    assert_eq!(
        ::std::mem::align_of::<__mbstate_t>(),
        4usize,
        concat!("Alignment of ", stringify!(__mbstate_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__mbstate_t>())).__count as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__mbstate_t),
            "::",
            stringify!(__count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__mbstate_t>())).__value as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(__mbstate_t),
            "::",
            stringify!(__value)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _G_fpos_t {
    pub __pos: __off_t,
    pub __state: __mbstate_t,
}
#[test]
fn bindgen_test_layout__G_fpos_t() {
    assert_eq!(
        ::std::mem::size_of::<_G_fpos_t>(),
        16usize,
        concat!("Size of: ", stringify!(_G_fpos_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_G_fpos_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_G_fpos_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_G_fpos_t>())).__pos as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_G_fpos_t),
            "::",
            stringify!(__pos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_G_fpos_t>())).__state as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_G_fpos_t),
            "::",
            stringify!(__state)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _G_fpos64_t {
    pub __pos: __off64_t,
    pub __state: __mbstate_t,
}
#[test]
fn bindgen_test_layout__G_fpos64_t() {
    assert_eq!(
        ::std::mem::size_of::<_G_fpos64_t>(),
        16usize,
        concat!("Size of: ", stringify!(_G_fpos64_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_G_fpos64_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_G_fpos64_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_G_fpos64_t>())).__pos as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_G_fpos64_t),
            "::",
            stringify!(__pos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_G_fpos64_t>())).__state as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_G_fpos64_t),
            "::",
            stringify!(__state)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_jump_t {
    _unused: [u8; 0],
}
pub type _IO_lock_t = ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_marker {
    pub _next: *mut _IO_marker,
    pub _sbuf: *mut _IO_FILE,
    pub _pos: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout__IO_marker() {
    assert_eq!(
        ::std::mem::size_of::<_IO_marker>(),
        24usize,
        concat!("Size of: ", stringify!(_IO_marker))
    );
    assert_eq!(
        ::std::mem::align_of::<_IO_marker>(),
        8usize,
        concat!("Alignment of ", stringify!(_IO_marker))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_marker>()))._next as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_marker),
            "::",
            stringify!(_next)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_marker>()))._sbuf as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_marker),
            "::",
            stringify!(_sbuf)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_marker>()))._pos as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_marker),
            "::",
            stringify!(_pos)
        )
    );
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum __codecvt_result {
    __codecvt_ok = 0,
    __codecvt_partial = 1,
    __codecvt_error = 2,
    __codecvt_noconv = 3,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_FILE {
    pub _flags: ::std::os::raw::c_int,
    pub _IO_read_ptr: *mut ::std::os::raw::c_char,
    pub _IO_read_end: *mut ::std::os::raw::c_char,
    pub _IO_read_base: *mut ::std::os::raw::c_char,
    pub _IO_write_base: *mut ::std::os::raw::c_char,
    pub _IO_write_ptr: *mut ::std::os::raw::c_char,
    pub _IO_write_end: *mut ::std::os::raw::c_char,
    pub _IO_buf_base: *mut ::std::os::raw::c_char,
    pub _IO_buf_end: *mut ::std::os::raw::c_char,
    pub _IO_save_base: *mut ::std::os::raw::c_char,
    pub _IO_backup_base: *mut ::std::os::raw::c_char,
    pub _IO_save_end: *mut ::std::os::raw::c_char,
    pub _markers: *mut _IO_marker,
    pub _chain: *mut _IO_FILE,
    pub _fileno: ::std::os::raw::c_int,
    pub _flags2: ::std::os::raw::c_int,
    pub _old_offset: __off_t,
    pub _cur_column: ::std::os::raw::c_ushort,
    pub _vtable_offset: ::std::os::raw::c_schar,
    pub _shortbuf: [::std::os::raw::c_char; 1usize],
    pub _lock: *mut _IO_lock_t,
    pub _offset: __off64_t,
    pub __pad1: *mut ::std::os::raw::c_void,
    pub __pad2: *mut ::std::os::raw::c_void,
    pub __pad3: *mut ::std::os::raw::c_void,
    pub __pad4: *mut ::std::os::raw::c_void,
    pub __pad5: size_t,
    pub _mode: ::std::os::raw::c_int,
    pub _unused2: [::std::os::raw::c_char; 20usize],
}
#[test]
fn bindgen_test_layout__IO_FILE() {
    assert_eq!(
        ::std::mem::size_of::<_IO_FILE>(),
        216usize,
        concat!("Size of: ", stringify!(_IO_FILE))
    );
    assert_eq!(
        ::std::mem::align_of::<_IO_FILE>(),
        8usize,
        concat!("Alignment of ", stringify!(_IO_FILE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_ptr as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_read_ptr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_end as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_read_end)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_base as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_read_base)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_base as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_write_base)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_ptr as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_write_ptr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_end as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_write_end)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_buf_base as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_buf_base)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_buf_end as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_buf_end)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_save_base as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_save_base)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_backup_base as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_backup_base)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_save_end as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_save_end)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._markers as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_markers)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._chain as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_chain)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._fileno as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_fileno)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._flags2 as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_flags2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._old_offset as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_old_offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._cur_column as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_cur_column)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._vtable_offset as *const _ as usize },
        130usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_vtable_offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._shortbuf as *const _ as usize },
        131usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_shortbuf)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._lock as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_lock)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._offset as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad1 as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(__pad1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad2 as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(__pad2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad3 as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(__pad3)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad4 as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(__pad4)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad5 as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(__pad5)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._mode as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_mode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._unused2 as *const _ as usize },
        196usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_unused2)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_FILE_plus {
    _unused: [u8; 0],
}
extern "C" {
    pub static mut _IO_2_1_stdin_: _IO_FILE_plus;
}
extern "C" {
    pub static mut _IO_2_1_stdout_: _IO_FILE_plus;
}
extern "C" {
    pub static mut _IO_2_1_stderr_: _IO_FILE_plus;
}
pub type __io_read_fn = ::std::option::Option<
    unsafe extern "C" fn(
        __cookie: *mut ::std::os::raw::c_void,
        __buf: *mut ::std::os::raw::c_char,
        __nbytes: size_t,
    ) -> __ssize_t,
>;
pub type __io_write_fn = ::std::option::Option<
    unsafe extern "C" fn(
        __cookie: *mut ::std::os::raw::c_void,
        __buf: *const ::std::os::raw::c_char,
        __n: size_t,
    ) -> __ssize_t,
>;
pub type __io_seek_fn = ::std::option::Option<
    unsafe extern "C" fn(
        __cookie: *mut ::std::os::raw::c_void,
        __pos: *mut __off64_t,
        __w: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int,
>;
pub type __io_close_fn = ::std::option::Option<
    unsafe extern "C" fn(__cookie: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
>;
extern "C" {
    pub fn __underflow(arg1: *mut _IO_FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __uflow(arg1: *mut _IO_FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __overflow(arg1: *mut _IO_FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _IO_getc(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _IO_putc(__c: ::std::os::raw::c_int, __fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _IO_feof(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _IO_ferror(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _IO_peekc_locked(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _IO_flockfile(arg1: *mut _IO_FILE);
}
extern "C" {
    pub fn _IO_funlockfile(arg1: *mut _IO_FILE);
}
extern "C" {
    pub fn _IO_ftrylockfile(arg1: *mut _IO_FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _IO_vfscanf(
        arg1: *mut _IO_FILE,
        arg2: *const ::std::os::raw::c_char,
        arg3: *mut __va_list_tag,
        arg4: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _IO_vfprintf(
        arg1: *mut _IO_FILE,
        arg2: *const ::std::os::raw::c_char,
        arg3: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _IO_padn(arg1: *mut _IO_FILE, arg2: ::std::os::raw::c_int, arg3: __ssize_t)
        -> __ssize_t;
}
extern "C" {
    pub fn _IO_sgetn(
        arg1: *mut _IO_FILE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: size_t,
    ) -> size_t;
}
extern "C" {
    pub fn _IO_seekoff(
        arg1: *mut _IO_FILE,
        arg2: __off64_t,
        arg3: ::std::os::raw::c_int,
        arg4: ::std::os::raw::c_int,
    ) -> __off64_t;
}
extern "C" {
    pub fn _IO_seekpos(
        arg1: *mut _IO_FILE,
        arg2: __off64_t,
        arg3: ::std::os::raw::c_int,
    ) -> __off64_t;
}
extern "C" {
    pub fn _IO_free_backup_area(arg1: *mut _IO_FILE);
}
pub type fpos_t = _G_fpos_t;
extern "C" {
    pub static mut stdin: *mut _IO_FILE;
}
extern "C" {
    pub static mut stdout: *mut _IO_FILE;
}
extern "C" {
    pub static mut stderr: *mut _IO_FILE;
}
extern "C" {
    pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn rename(
        __old: *const ::std::os::raw::c_char,
        __new: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn tmpfile() -> *mut FILE;
}
extern "C" {
    pub fn tmpnam(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fopen(
        __filename: *const ::std::os::raw::c_char,
        __modes: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
extern "C" {
    pub fn freopen(
        __filename: *const ::std::os::raw::c_char,
        __modes: *const ::std::os::raw::c_char,
        __stream: *mut FILE,
    ) -> *mut FILE;
}
extern "C" {
    pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char);
}
extern "C" {
    pub fn setvbuf(
        __stream: *mut FILE,
        __buf: *mut ::std::os::raw::c_char,
        __modes: ::std::os::raw::c_int,
        __n: size_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fprintf(
        __stream: *mut FILE,
        __format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sprintf(
        __s: *mut ::std::os::raw::c_char,
        __format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vfprintf(
        __s: *mut FILE,
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vprintf(
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vsprintf(
        __s: *mut ::std::os::raw::c_char,
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn snprintf(
        __s: *mut ::std::os::raw::c_char,
        __maxlen: ::std::os::raw::c_ulong,
        __format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vsnprintf(
        __s: *mut ::std::os::raw::c_char,
        __maxlen: ::std::os::raw::c_ulong,
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fscanf(
        __stream: *mut FILE,
        __format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sscanf(
        __s: *const ::std::os::raw::c_char,
        __format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[link_name = "\u{1}__isoc99_fscanf"]
    pub fn fscanf1(
        __stream: *mut FILE,
        __format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[link_name = "\u{1}__isoc99_scanf"]
    pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    #[link_name = "\u{1}__isoc99_sscanf"]
    pub fn sscanf1(
        __s: *const ::std::os::raw::c_char,
        __format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vfscanf(
        __s: *mut FILE,
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vscanf(
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vsscanf(
        __s: *const ::std::os::raw::c_char,
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[link_name = "\u{1}__isoc99_vfscanf"]
    pub fn vfscanf1(
        __s: *mut FILE,
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[link_name = "\u{1}__isoc99_vscanf"]
    pub fn vscanf1(
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[link_name = "\u{1}__isoc99_vsscanf"]
    pub fn vsscanf1(
        __s: *const ::std::os::raw::c_char,
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getchar() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fgets(
        __s: *mut ::std::os::raw::c_char,
        __n: ::std::os::raw::c_int,
        __stream: *mut FILE,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fread(
        __ptr: *mut ::std::os::raw::c_void,
        __size: size_t,
        __n: size_t,
        __stream: *mut FILE,
    ) -> size_t;
}
extern "C" {
    pub fn fwrite(
        __ptr: *const ::std::os::raw::c_void,
        __size: size_t,
        __n: size_t,
        __s: *mut FILE,
    ) -> size_t;
}
extern "C" {
    pub fn fseek(
        __stream: *mut FILE,
        __off: ::std::os::raw::c_long,
        __whence: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn rewind(__stream: *mut FILE);
}
extern "C" {
    pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn clearerr(__stream: *mut FILE);
}
extern "C" {
    pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn perror(__s: *const ::std::os::raw::c_char);
}
extern "C" {
    pub static mut max_loaded_major: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut max_loaded_minor: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut exts: *const ::std::os::raw::c_char;
}
pub const num_exts_i: ::std::os::raw::c_int = 0;
extern "C" {
    pub static mut exts_i: *mut *const ::std::os::raw::c_char;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DynamicBuffer {
    pub vCounter: ::std::os::raw::c_int,
    pub tcCounter: ::std::os::raw::c_int,
    pub cCounter: ::std::os::raw::c_int,
    pub vertices: *mut f32,
    pub texcoords: *mut f32,
    pub colors: *mut ::std::os::raw::c_uchar,
    pub indices: *mut ::std::os::raw::c_uint,
    pub vaoId: ::std::os::raw::c_uint,
    pub vboId: [::std::os::raw::c_uint; 4usize],
}
#[test]
fn bindgen_test_layout_DynamicBuffer() {
    assert_eq!(
        ::std::mem::size_of::<DynamicBuffer>(),
        72usize,
        concat!("Size of: ", stringify!(DynamicBuffer))
    );
    assert_eq!(
        ::std::mem::align_of::<DynamicBuffer>(),
        8usize,
        concat!("Alignment of ", stringify!(DynamicBuffer))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DynamicBuffer>())).vCounter as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DynamicBuffer),
            "::",
            stringify!(vCounter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DynamicBuffer>())).tcCounter as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(DynamicBuffer),
            "::",
            stringify!(tcCounter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DynamicBuffer>())).cCounter as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(DynamicBuffer),
            "::",
            stringify!(cCounter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DynamicBuffer>())).vertices as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(DynamicBuffer),
            "::",
            stringify!(vertices)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DynamicBuffer>())).texcoords as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(DynamicBuffer),
            "::",
            stringify!(texcoords)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DynamicBuffer>())).colors as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(DynamicBuffer),
            "::",
            stringify!(colors)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DynamicBuffer>())).indices as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(DynamicBuffer),
            "::",
            stringify!(indices)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DynamicBuffer>())).vaoId as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(DynamicBuffer),
            "::",
            stringify!(vaoId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DynamicBuffer>())).vboId as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(DynamicBuffer),
            "::",
            stringify!(vboId)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DrawCall {
    pub mode: ::std::os::raw::c_int,
    pub vertexCount: ::std::os::raw::c_int,
    pub vertexAlignment: ::std::os::raw::c_int,
    pub textureId: ::std::os::raw::c_uint,
}
#[test]
fn bindgen_test_layout_DrawCall() {
    assert_eq!(
        ::std::mem::size_of::<DrawCall>(),
        16usize,
        concat!("Size of: ", stringify!(DrawCall))
    );
    assert_eq!(
        ::std::mem::align_of::<DrawCall>(),
        4usize,
        concat!("Alignment of ", stringify!(DrawCall))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DrawCall>())).mode as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DrawCall),
            "::",
            stringify!(mode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DrawCall>())).vertexCount as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(DrawCall),
            "::",
            stringify!(vertexCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DrawCall>())).vertexAlignment as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(DrawCall),
            "::",
            stringify!(vertexAlignment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DrawCall>())).textureId as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(DrawCall),
            "::",
            stringify!(textureId)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VrStereoConfig {
    pub distortionShader: Shader,
    pub eyesProjection: [Matrix; 2usize],
    pub eyesViewOffset: [Matrix; 2usize],
    pub eyeViewportRight: [::std::os::raw::c_int; 4usize],
    pub eyeViewportLeft: [::std::os::raw::c_int; 4usize],
}
#[test]
fn bindgen_test_layout_VrStereoConfig() {
    assert_eq!(
        ::std::mem::size_of::<VrStereoConfig>(),
        304usize,
        concat!("Size of: ", stringify!(VrStereoConfig))
    );
    assert_eq!(
        ::std::mem::align_of::<VrStereoConfig>(),
        8usize,
        concat!("Alignment of ", stringify!(VrStereoConfig))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<VrStereoConfig>())).distortionShader as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(VrStereoConfig),
            "::",
            stringify!(distortionShader)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<VrStereoConfig>())).eyesProjection as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(VrStereoConfig),
            "::",
            stringify!(eyesProjection)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<VrStereoConfig>())).eyesViewOffset as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(VrStereoConfig),
            "::",
            stringify!(eyesViewOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<VrStereoConfig>())).eyeViewportRight as *const _ as usize },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(VrStereoConfig),
            "::",
            stringify!(eyeViewportRight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<VrStereoConfig>())).eyeViewportLeft as *const _ as usize },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(VrStereoConfig),
            "::",
            stringify!(eyeViewportLeft)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct rlglData {
    pub State: rlglData__bindgen_ty_1,
    pub ExtSupported: rlglData__bindgen_ty_2,
    pub Vr: rlglData__bindgen_ty_3,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct rlglData__bindgen_ty_1 {
    pub currentMatrixMode: ::std::os::raw::c_int,
    pub currentMatrix: *mut Matrix,
    pub modelview: Matrix,
    pub projection: Matrix,
    pub transform: Matrix,
    pub doTransform: bool,
    pub stack: [Matrix; 32usize],
    pub stackCounter: ::std::os::raw::c_int,
    pub vertexData: [DynamicBuffer; 1usize],
    pub currentBuffer: ::std::os::raw::c_int,
    pub draws: *mut DrawCall,
    pub drawsCounter: ::std::os::raw::c_int,
    pub shapesTexture: Texture2D,
    pub shapesTextureRec: Rectangle,
    pub defaultTextureId: ::std::os::raw::c_uint,
    pub defaultVShaderId: ::std::os::raw::c_uint,
    pub defaultFShaderId: ::std::os::raw::c_uint,
    pub defaultShader: Shader,
    pub currentShader: Shader,
    pub currentDepth: f32,
    pub framebufferWidth: ::std::os::raw::c_int,
    pub framebufferHeight: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_rlglData__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<rlglData__bindgen_ty_1>(),
        2456usize,
        concat!("Size of: ", stringify!(rlglData__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<rlglData__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(rlglData__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).currentMatrixMode as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(currentMatrixMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).currentMatrix as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(currentMatrix)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).modelview as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(modelview)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).projection as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(projection)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).transform as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(transform)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).doTransform as *const _ as usize
        },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(doTransform)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).stack as *const _ as usize },
        212usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(stack)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).stackCounter as *const _ as usize
        },
        2260usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(stackCounter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).vertexData as *const _ as usize
        },
        2264usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(vertexData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).currentBuffer as *const _ as usize
        },
        2336usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(currentBuffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).draws as *const _ as usize },
        2344usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(draws)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).drawsCounter as *const _ as usize
        },
        2352usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(drawsCounter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).shapesTexture as *const _ as usize
        },
        2356usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(shapesTexture)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).shapesTextureRec as *const _ as usize
        },
        2376usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(shapesTextureRec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).defaultTextureId as *const _ as usize
        },
        2392usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(defaultTextureId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).defaultVShaderId as *const _ as usize
        },
        2396usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(defaultVShaderId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).defaultFShaderId as *const _ as usize
        },
        2400usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(defaultFShaderId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).defaultShader as *const _ as usize
        },
        2408usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(defaultShader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).currentShader as *const _ as usize
        },
        2424usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(currentShader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).currentDepth as *const _ as usize
        },
        2440usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(currentDepth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).framebufferWidth as *const _ as usize
        },
        2444usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(framebufferWidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_1>())).framebufferHeight as *const _
                as usize
        },
        2448usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_1),
            "::",
            stringify!(framebufferHeight)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct rlglData__bindgen_ty_2 {
    pub vao: bool,
    pub texNPOT: bool,
    pub texDepth: bool,
    pub texFloat32: bool,
    pub texCompDXT: bool,
    pub texCompETC1: bool,
    pub texCompETC2: bool,
    pub texCompPVRT: bool,
    pub texCompASTC: bool,
    pub texMirrorClamp: bool,
    pub texAnisoFilter: bool,
    pub debugMarker: bool,
    pub maxAnisotropicLevel: f32,
    pub maxDepthBits: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_rlglData__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<rlglData__bindgen_ty_2>(),
        20usize,
        concat!("Size of: ", stringify!(rlglData__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<rlglData__bindgen_ty_2>(),
        4usize,
        concat!("Alignment of ", stringify!(rlglData__bindgen_ty_2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<rlglData__bindgen_ty_2>())).vao as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_2),
            "::",
            stringify!(vao)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<rlglData__bindgen_ty_2>())).texNPOT as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_2),
            "::",
            stringify!(texNPOT)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<rlglData__bindgen_ty_2>())).texDepth as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_2),
            "::",
            stringify!(texDepth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_2>())).texFloat32 as *const _ as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_2),
            "::",
            stringify!(texFloat32)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_2>())).texCompDXT as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_2),
            "::",
            stringify!(texCompDXT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_2>())).texCompETC1 as *const _ as usize
        },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_2),
            "::",
            stringify!(texCompETC1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_2>())).texCompETC2 as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_2),
            "::",
            stringify!(texCompETC2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_2>())).texCompPVRT as *const _ as usize
        },
        7usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_2),
            "::",
            stringify!(texCompPVRT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_2>())).texCompASTC as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_2),
            "::",
            stringify!(texCompASTC)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_2>())).texMirrorClamp as *const _ as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_2),
            "::",
            stringify!(texMirrorClamp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_2>())).texAnisoFilter as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_2),
            "::",
            stringify!(texAnisoFilter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_2>())).debugMarker as *const _ as usize
        },
        11usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_2),
            "::",
            stringify!(debugMarker)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_2>())).maxAnisotropicLevel as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_2),
            "::",
            stringify!(maxAnisotropicLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_2>())).maxDepthBits as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_2),
            "::",
            stringify!(maxDepthBits)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct rlglData__bindgen_ty_3 {
    pub config: VrStereoConfig,
    pub stereoFbo: RenderTexture2D,
    pub simulatorReady: bool,
    pub stereoRender: bool,
}
#[test]
fn bindgen_test_layout_rlglData__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<rlglData__bindgen_ty_3>(),
        360usize,
        concat!("Size of: ", stringify!(rlglData__bindgen_ty_3))
    );
    assert_eq!(
        ::std::mem::align_of::<rlglData__bindgen_ty_3>(),
        8usize,
        concat!("Alignment of ", stringify!(rlglData__bindgen_ty_3))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<rlglData__bindgen_ty_3>())).config as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_3),
            "::",
            stringify!(config)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_3>())).stereoFbo as *const _ as usize
        },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_3),
            "::",
            stringify!(stereoFbo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_3>())).simulatorReady as *const _ as usize
        },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_3),
            "::",
            stringify!(simulatorReady)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<rlglData__bindgen_ty_3>())).stereoRender as *const _ as usize
        },
        353usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData__bindgen_ty_3),
            "::",
            stringify!(stereoRender)
        )
    );
}
#[test]
fn bindgen_test_layout_rlglData() {
    assert_eq!(
        ::std::mem::size_of::<rlglData>(),
        2840usize,
        concat!("Size of: ", stringify!(rlglData))
    );
    assert_eq!(
        ::std::mem::align_of::<rlglData>(),
        8usize,
        concat!("Alignment of ", stringify!(rlglData))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<rlglData>())).State as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData),
            "::",
            stringify!(State)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<rlglData>())).ExtSupported as *const _ as usize },
        2456usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData),
            "::",
            stringify!(ExtSupported)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<rlglData>())).Vr as *const _ as usize },
        2480usize,
        concat!(
            "Offset of field: ",
            stringify!(rlglData),
            "::",
            stringify!(Vr)
        )
    );
}
extern "C" {
    pub static mut RLGL: rlglData;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct GuiStyleProp {
    pub controlId: ::std::os::raw::c_ushort,
    pub propertyId: ::std::os::raw::c_ushort,
    pub propertyValue: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_GuiStyleProp() {
    assert_eq!(
        ::std::mem::size_of::<GuiStyleProp>(),
        8usize,
        concat!("Size of: ", stringify!(GuiStyleProp))
    );
    assert_eq!(
        ::std::mem::align_of::<GuiStyleProp>(),
        4usize,
        concat!("Alignment of ", stringify!(GuiStyleProp))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<GuiStyleProp>())).controlId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(GuiStyleProp),
            "::",
            stringify!(controlId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<GuiStyleProp>())).propertyId as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(GuiStyleProp),
            "::",
            stringify!(propertyId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<GuiStyleProp>())).propertyValue as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(GuiStyleProp),
            "::",
            stringify!(propertyValue)
        )
    );
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GuiControlState {
    GUI_STATE_NORMAL = 0,
    GUI_STATE_FOCUSED = 1,
    GUI_STATE_PRESSED = 2,
    GUI_STATE_DISABLED = 3,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GuiTextAlignment {
    GUI_TEXT_ALIGN_LEFT = 0,
    GUI_TEXT_ALIGN_CENTER = 1,
    GUI_TEXT_ALIGN_RIGHT = 2,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GuiControl {
    DEFAULT = 0,
    LABEL = 1,
    BUTTON = 2,
    TOGGLE = 3,
    SLIDER = 4,
    PROGRESSBAR = 5,
    CHECKBOX = 6,
    COMBOBOX = 7,
    DROPDOWNBOX = 8,
    TEXTBOX = 9,
    VALUEBOX = 10,
    SPINNER = 11,
    LISTVIEW = 12,
    COLORPICKER = 13,
    SCROLLBAR = 14,
    STATUSBAR = 15,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GuiControlProperty {
    BORDER_COLOR_NORMAL = 0,
    BASE_COLOR_NORMAL = 1,
    TEXT_COLOR_NORMAL = 2,
    BORDER_COLOR_FOCUSED = 3,
    BASE_COLOR_FOCUSED = 4,
    TEXT_COLOR_FOCUSED = 5,
    BORDER_COLOR_PRESSED = 6,
    BASE_COLOR_PRESSED = 7,
    TEXT_COLOR_PRESSED = 8,
    BORDER_COLOR_DISABLED = 9,
    BASE_COLOR_DISABLED = 10,
    TEXT_COLOR_DISABLED = 11,
    BORDER_WIDTH = 12,
    TEXT_PADDING = 13,
    TEXT_ALIGNMENT = 14,
    RESERVED = 15,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GuiDefaultProperty {
    TEXT_SIZE = 16,
    TEXT_SPACING = 17,
    LINE_COLOR = 18,
    BACKGROUND_COLOR = 19,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GuiToggleProperty {
    GROUP_PADDING = 16,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GuiSliderProperty {
    SLIDER_WIDTH = 16,
    SLIDER_PADDING = 17,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GuiProgressBarProperty {
    PROGRESS_PADDING = 16,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GuiCheckBoxProperty {
    CHECK_PADDING = 16,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GuiComboBoxProperty {
    COMBO_BUTTON_WIDTH = 16,
    COMBO_BUTTON_PADDING = 17,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GuiDropdownBoxProperty {
    ARROW_PADDING = 16,
    DROPDOWN_ITEMS_PADDING = 17,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GuiTextBoxProperty {
    TEXT_INNER_PADDING = 16,
    TEXT_LINES_PADDING = 17,
    COLOR_SELECTED_FG = 18,
    COLOR_SELECTED_BG = 19,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GuiSpinnerProperty {
    SPIN_BUTTON_WIDTH = 16,
    SPIN_BUTTON_PADDING = 17,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GuiScrollBarProperty {
    ARROWS_SIZE = 16,
    ARROWS_VISIBLE = 17,
    SCROLL_SLIDER_PADDING = 18,
    SCROLL_SLIDER_SIZE = 19,
    SCROLL_PADDING = 20,
    SCROLL_SPEED = 21,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GuiScrollBarSide {
    SCROLLBAR_LEFT_SIDE = 0,
    SCROLLBAR_RIGHT_SIDE = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GuiListViewProperty {
    LIST_ITEMS_HEIGHT = 16,
    LIST_ITEMS_PADDING = 17,
    SCROLLBAR_WIDTH = 18,
    SCROLLBAR_SIDE = 19,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GuiColorPickerProperty {
    COLOR_SELECTOR_SIZE = 16,
    HUEBAR_WIDTH = 17,
    HUEBAR_PADDING = 18,
    HUEBAR_SELECTOR_HEIGHT = 19,
    HUEBAR_SELECTOR_OVERFLOW = 20,
}
extern "C" {
    pub fn GuiEnable();
}
extern "C" {
    pub fn GuiDisable();
}
extern "C" {
    pub fn GuiLock();
}
extern "C" {
    pub fn GuiUnlock();
}
extern "C" {
    pub fn GuiFade(alpha: f32);
}
extern "C" {
    pub fn GuiSetState(state: ::std::os::raw::c_int);
}
extern "C" {
    pub fn GuiGetState() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GuiSetFont(font: Font);
}
extern "C" {
    pub fn GuiGetFont() -> Font;
}
extern "C" {
    pub fn GuiSetStyle(
        control: ::std::os::raw::c_int,
        property: ::std::os::raw::c_int,
        value: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn GuiGetStyle(
        control: ::std::os::raw::c_int,
        property: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GuiEnableTooltip();
}
extern "C" {
    pub fn GuiDisableTooltip();
}
extern "C" {
    pub fn GuiSetTooltip(tooltip: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn GuiClearTooltip();
}
extern "C" {
    pub fn GuiWindowBox(bounds: Rectangle, title: *const ::std::os::raw::c_char) -> bool;
}
extern "C" {
    pub fn GuiGroupBox(bounds: Rectangle, text: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn GuiLine(bounds: Rectangle, text: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn GuiPanel(bounds: Rectangle);
}
extern "C" {
    pub fn GuiScrollPanel(bounds: Rectangle, content: Rectangle, scroll: *mut Vector2)
        -> Rectangle;
}
extern "C" {
    pub fn GuiLabel(bounds: Rectangle, text: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn GuiButton(bounds: Rectangle, text: *const ::std::os::raw::c_char) -> bool;
}
extern "C" {
    pub fn GuiLabelButton(bounds: Rectangle, text: *const ::std::os::raw::c_char) -> bool;
}
extern "C" {
    pub fn GuiImageButton(
        bounds: Rectangle,
        text: *const ::std::os::raw::c_char,
        texture: Texture2D,
    ) -> bool;
}
extern "C" {
    pub fn GuiImageButtonEx(
        bounds: Rectangle,
        text: *const ::std::os::raw::c_char,
        texture: Texture2D,
        texSource: Rectangle,
    ) -> bool;
}
extern "C" {
    pub fn GuiToggle(bounds: Rectangle, text: *const ::std::os::raw::c_char, active: bool) -> bool;
}
extern "C" {
    pub fn GuiToggleGroup(
        bounds: Rectangle,
        text: *const ::std::os::raw::c_char,
        active: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GuiCheckBox(
        bounds: Rectangle,
        text: *const ::std::os::raw::c_char,
        checked: bool,
    ) -> bool;
}
extern "C" {
    pub fn GuiComboBox(
        bounds: Rectangle,
        text: *const ::std::os::raw::c_char,
        active: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GuiDropdownBox(
        bounds: Rectangle,
        text: *const ::std::os::raw::c_char,
        active: *mut ::std::os::raw::c_int,
        editMode: bool,
    ) -> bool;
}
extern "C" {
    pub fn GuiSpinner(
        bounds: Rectangle,
        text: *const ::std::os::raw::c_char,
        value: *mut ::std::os::raw::c_int,
        minValue: ::std::os::raw::c_int,
        maxValue: ::std::os::raw::c_int,
        editMode: bool,
    ) -> bool;
}
extern "C" {
    pub fn GuiValueBox(
        bounds: Rectangle,
        text: *const ::std::os::raw::c_char,
        value: *mut ::std::os::raw::c_int,
        minValue: ::std::os::raw::c_int,
        maxValue: ::std::os::raw::c_int,
        editMode: bool,
    ) -> bool;
}
extern "C" {
    pub fn GuiTextBox(
        bounds: Rectangle,
        text: *mut ::std::os::raw::c_char,
        textSize: ::std::os::raw::c_int,
        editMode: bool,
    ) -> bool;
}
extern "C" {
    pub fn GuiTextBoxMulti(
        bounds: Rectangle,
        text: *mut ::std::os::raw::c_char,
        textSize: ::std::os::raw::c_int,
        editMode: bool,
    ) -> bool;
}
extern "C" {
    pub fn GuiSlider(
        bounds: Rectangle,
        textLeft: *const ::std::os::raw::c_char,
        textRight: *const ::std::os::raw::c_char,
        value: f32,
        minValue: f32,
        maxValue: f32,
    ) -> f32;
}
extern "C" {
    pub fn GuiSliderBar(
        bounds: Rectangle,
        textLeft: *const ::std::os::raw::c_char,
        textRight: *const ::std::os::raw::c_char,
        value: f32,
        minValue: f32,
        maxValue: f32,
    ) -> f32;
}
extern "C" {
    pub fn GuiProgressBar(
        bounds: Rectangle,
        textLeft: *const ::std::os::raw::c_char,
        textRight: *const ::std::os::raw::c_char,
        value: f32,
        minValue: f32,
        maxValue: f32,
    ) -> f32;
}
extern "C" {
    pub fn GuiStatusBar(bounds: Rectangle, text: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn GuiDummyRec(bounds: Rectangle, text: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn GuiScrollBar(
        bounds: Rectangle,
        value: ::std::os::raw::c_int,
        minValue: ::std::os::raw::c_int,
        maxValue: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GuiGrid(bounds: Rectangle, spacing: f32, subdivs: ::std::os::raw::c_int) -> Vector2;
}
extern "C" {
    pub fn GuiListView(
        bounds: Rectangle,
        text: *const ::std::os::raw::c_char,
        scrollIndex: *mut ::std::os::raw::c_int,
        active: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GuiListViewEx(
        bounds: Rectangle,
        text: *mut *const ::std::os::raw::c_char,
        count: ::std::os::raw::c_int,
        focus: *mut ::std::os::raw::c_int,
        scrollIndex: *mut ::std::os::raw::c_int,
        active: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GuiMessageBox(
        bounds: Rectangle,
        title: *const ::std::os::raw::c_char,
        message: *const ::std::os::raw::c_char,
        buttons: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GuiTextInputBox(
        bounds: Rectangle,
        title: *const ::std::os::raw::c_char,
        message: *const ::std::os::raw::c_char,
        buttons: *const ::std::os::raw::c_char,
        text: *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GuiColorPicker(bounds: Rectangle, color: Color) -> Color;
}
extern "C" {
    pub fn GuiColorPanel(bounds: Rectangle, color: Color) -> Color;
}
extern "C" {
    pub fn GuiColorBarAlpha(bounds: Rectangle, alpha: f32) -> f32;
}
extern "C" {
    pub fn GuiColorBarHue(bounds: Rectangle, value: f32) -> f32;
}
extern "C" {
    pub fn GuiLoadStyle(fileName: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn GuiLoadStyleDefault();
}
extern "C" {
    pub fn GuiIconText(
        iconId: ::std::os::raw::c_int,
        text: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn GuiDrawIcon(
        iconId: ::std::os::raw::c_int,
        position: Vector2,
        pixelSize: ::std::os::raw::c_int,
        color: Color,
    );
}
extern "C" {
    pub fn GuiGetIcons() -> *mut ::std::os::raw::c_uint;
}
extern "C" {
    pub fn GuiGetIconData(iconId: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_uint;
}
extern "C" {
    pub fn GuiSetIconData(iconId: ::std::os::raw::c_int, data: *mut ::std::os::raw::c_uint);
}
extern "C" {
    pub fn GuiSetIconPixel(
        iconId: ::std::os::raw::c_int,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn GuiClearIconPixel(
        iconId: ::std::os::raw::c_int,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn GuiCheckIconPixel(
        iconId: ::std::os::raw::c_int,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
    ) -> bool;
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum guiIconName {
    RICON_NONE = 0,
    RICON_FOLDER_FILE_OPEN = 1,
    RICON_FILE_SAVE_CLASSIC = 2,
    RICON_FOLDER_OPEN = 3,
    RICON_FOLDER_SAVE = 4,
    RICON_FILE_OPEN = 5,
    RICON_FILE_SAVE = 6,
    RICON_FILE_EXPORT = 7,
    RICON_FILE_NEW = 8,
    RICON_FILE_DELETE = 9,
    RICON_FILETYPE_TEXT = 10,
    RICON_FILETYPE_AUDIO = 11,
    RICON_FILETYPE_IMAGE = 12,
    RICON_FILETYPE_PLAY = 13,
    RICON_FILETYPE_VIDEO = 14,
    RICON_FILETYPE_INFO = 15,
    RICON_FILE_COPY = 16,
    RICON_FILE_CUT = 17,
    RICON_FILE_PASTE = 18,
    RICON_CURSOR_HAND = 19,
    RICON_CURSOR_POINTER = 20,
    RICON_CURSOR_CLASSIC = 21,
    RICON_PENCIL = 22,
    RICON_PENCIL_BIG = 23,
    RICON_BRUSH_CLASSIC = 24,
    RICON_BRUSH_PAINTER = 25,
    RICON_WATER_DROP = 26,
    RICON_COLOR_PICKER = 27,
    RICON_RUBBER = 28,
    RICON_COLOR_BUCKET = 29,
    RICON_TEXT_T = 30,
    RICON_TEXT_A = 31,
    RICON_SCALE = 32,
    RICON_RESIZE = 33,
    RICON_FILTER_POINT = 34,
    RICON_FILTER_BILINEAR = 35,
    RICON_CROP = 36,
    RICON_CROP_ALPHA = 37,
    RICON_SQUARE_TOGGLE = 38,
    RICON_SYMMETRY = 39,
    RICON_SYMMETRY_HORIZONTAL = 40,
    RICON_SYMMETRY_VERTICAL = 41,
    RICON_LENS = 42,
    RICON_LENS_BIG = 43,
    RICON_EYE_ON = 44,
    RICON_EYE_OFF = 45,
    RICON_FILTER_TOP = 46,
    RICON_FILTER = 47,
    RICON_TARGET_POINT = 48,
    RICON_TARGET_SMALL = 49,
    RICON_TARGET_BIG = 50,
    RICON_TARGET_MOVE = 51,
    RICON_CURSOR_MOVE = 52,
    RICON_CURSOR_SCALE = 53,
    RICON_CURSOR_SCALE_RIGHT = 54,
    RICON_CURSOR_SCALE_LEFT = 55,
    RICON_UNDO = 56,
    RICON_REDO = 57,
    RICON_REREDO = 58,
    RICON_MUTATE = 59,
    RICON_ROTATE = 60,
    RICON_REPEAT = 61,
    RICON_SHUFFLE = 62,
    RICON_EMPTYBOX = 63,
    RICON_TARGET = 64,
    RICON_TARGET_SMALL_FILL = 65,
    RICON_TARGET_BIG_FILL = 66,
    RICON_TARGET_MOVE_FILL = 67,
    RICON_CURSOR_MOVE_FILL = 68,
    RICON_CURSOR_SCALE_FILL = 69,
    RICON_CURSOR_SCALE_RIGHT_FILL = 70,
    RICON_CURSOR_SCALE_LEFT_FILL = 71,
    RICON_UNDO_FILL = 72,
    RICON_REDO_FILL = 73,
    RICON_REREDO_FILL = 74,
    RICON_MUTATE_FILL = 75,
    RICON_ROTATE_FILL = 76,
    RICON_REPEAT_FILL = 77,
    RICON_SHUFFLE_FILL = 78,
    RICON_EMPTYBOX_SMALL = 79,
    RICON_BOX = 80,
    RICON_BOX_TOP = 81,
    RICON_BOX_TOP_RIGHT = 82,
    RICON_BOX_RIGHT = 83,
    RICON_BOX_BOTTOM_RIGHT = 84,
    RICON_BOX_BOTTOM = 85,
    RICON_BOX_BOTTOM_LEFT = 86,
    RICON_BOX_LEFT = 87,
    RICON_BOX_TOP_LEFT = 88,
    RICON_BOX_CENTER = 89,
    RICON_BOX_CIRCLE_MASK = 90,
    RICON_POT = 91,
    RICON_ALPHA_MULTIPLY = 92,
    RICON_ALPHA_CLEAR = 93,
    RICON_DITHERING = 94,
    RICON_MIPMAPS = 95,
    RICON_BOX_GRID = 96,
    RICON_GRID = 97,
    RICON_BOX_CORNERS_SMALL = 98,
    RICON_BOX_CORNERS_BIG = 99,
    RICON_FOUR_BOXES = 100,
    RICON_GRID_FILL = 101,
    RICON_BOX_MULTISIZE = 102,
    RICON_ZOOM_SMALL = 103,
    RICON_ZOOM_MEDIUM = 104,
    RICON_ZOOM_BIG = 105,
    RICON_ZOOM_ALL = 106,
    RICON_ZOOM_CENTER = 107,
    RICON_BOX_DOTS_SMALL = 108,
    RICON_BOX_DOTS_BIG = 109,
    RICON_BOX_CONCENTRIC = 110,
    RICON_BOX_GRID_BIG = 111,
    RICON_OK_TICK = 112,
    RICON_CROSS = 113,
    RICON_ARROW_LEFT = 114,
    RICON_ARROW_RIGHT = 115,
    RICON_ARROW_BOTTOM = 116,
    RICON_ARROW_TOP = 117,
    RICON_ARROW_LEFT_FILL = 118,
    RICON_ARROW_RIGHT_FILL = 119,
    RICON_ARROW_BOTTOM_FILL = 120,
    RICON_ARROW_TOP_FILL = 121,
    RICON_AUDIO = 122,
    RICON_FX = 123,
    RICON_WAVE = 124,
    RICON_WAVE_SINUS = 125,
    RICON_WAVE_SQUARE = 126,
    RICON_WAVE_TRIANGULAR = 127,
    RICON_CROSS_SMALL = 128,
    RICON_PLAYER_PREVIOUS = 129,
    RICON_PLAYER_PLAY_BACK = 130,
    RICON_PLAYER_PLAY = 131,
    RICON_PLAYER_PAUSE = 132,
    RICON_PLAYER_STOP = 133,
    RICON_PLAYER_NEXT = 134,
    RICON_PLAYER_RECORD = 135,
    RICON_MAGNET = 136,
    RICON_LOCK_CLOSE = 137,
    RICON_LOCK_OPEN = 138,
    RICON_CLOCK = 139,
    RICON_TOOLS = 140,
    RICON_GEAR = 141,
    RICON_GEAR_BIG = 142,
    RICON_BIN = 143,
    RICON_HAND_POINTER = 144,
    RICON_LASER = 145,
    RICON_COIN = 146,
    RICON_EXPLOSION = 147,
    RICON_1UP = 148,
    RICON_PLAYER = 149,
    RICON_PLAYER_JUMP = 150,
    RICON_KEY = 151,
    RICON_DEMON = 152,
    RICON_TEXT_POPUP = 153,
    RICON_GEAR_EX = 154,
    RICON_CRACK = 155,
    RICON_CRACK_POINTS = 156,
    RICON_STAR = 157,
    RICON_DOOR = 158,
    RICON_EXIT = 159,
    RICON_MODE_2D = 160,
    RICON_MODE_3D = 161,
    RICON_CUBE = 162,
    RICON_CUBE_FACE_TOP = 163,
    RICON_CUBE_FACE_LEFT = 164,
    RICON_CUBE_FACE_FRONT = 165,
    RICON_CUBE_FACE_BOTTOM = 166,
    RICON_CUBE_FACE_RIGHT = 167,
    RICON_CUBE_FACE_BACK = 168,
    RICON_CAMERA = 169,
    RICON_SPECIAL = 170,
    RICON_LINK_NET = 171,
    RICON_LINK_BOXES = 172,
    RICON_LINK_MULTI = 173,
    RICON_LINK = 174,
    RICON_LINK_BROKE = 175,
    RICON_TEXT_NOTES = 176,
    RICON_NOTEBOOK = 177,
    RICON_SUITCASE = 178,
    RICON_SUITCASE_ZIP = 179,
    RICON_MAILBOX = 180,
    RICON_MONITOR = 181,
    RICON_PRINTER = 182,
    RICON_PHOTO_CAMERA = 183,
    RICON_PHOTO_CAMERA_FLASH = 184,
    RICON_HOUSE = 185,
    RICON_HEART = 186,
    RICON_CORNER = 187,
    RICON_VERTICAL_BARS = 188,
    RICON_VERTICAL_BARS_FILL = 189,
    RICON_LIFE_BARS = 190,
    RICON_INFO = 191,
    RICON_CROSSLINE = 192,
    RICON_HELP = 193,
    RICON_FILETYPE_ALPHA = 194,
    RICON_FILETYPE_HOME = 195,
    RICON_LAYERS_VISIBLE = 196,
    RICON_LAYERS = 197,
    RICON_WINDOW = 198,
    RICON_HIDPI = 199,
    RICON_200 = 200,
    RICON_201 = 201,
    RICON_202 = 202,
    RICON_203 = 203,
    RICON_204 = 204,
    RICON_205 = 205,
    RICON_206 = 206,
    RICON_207 = 207,
    RICON_208 = 208,
    RICON_209 = 209,
    RICON_210 = 210,
    RICON_211 = 211,
    RICON_212 = 212,
    RICON_213 = 213,
    RICON_214 = 214,
    RICON_215 = 215,
    RICON_216 = 216,
    RICON_217 = 217,
    RICON_218 = 218,
    RICON_219 = 219,
    RICON_220 = 220,
    RICON_221 = 221,
    RICON_222 = 222,
    RICON_223 = 223,
    RICON_224 = 224,
    RICON_225 = 225,
    RICON_226 = 226,
    RICON_227 = 227,
    RICON_228 = 228,
    RICON_229 = 229,
    RICON_230 = 230,
    RICON_231 = 231,
    RICON_232 = 232,
    RICON_233 = 233,
    RICON_234 = 234,
    RICON_235 = 235,
    RICON_236 = 236,
    RICON_237 = 237,
    RICON_238 = 238,
    RICON_239 = 239,
    RICON_240 = 240,
    RICON_241 = 241,
    RICON_242 = 242,
    RICON_243 = 243,
    RICON_244 = 244,
    RICON_245 = 245,
    RICON_246 = 246,
    RICON_247 = 247,
    RICON_248 = 248,
    RICON_249 = 249,
    RICON_250 = 250,
    RICON_251 = 251,
    RICON_252 = 252,
    RICON_253 = 253,
    RICON_254 = 254,
    RICON_255 = 255,
}
extern "C" {
    pub static mut guiIcons: [::std::os::raw::c_uint; 2048usize];
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum GuiPropertyElement {
    BORDER = 0,
    BASE = 1,
    TEXT = 2,
    OTHER = 3,
}
extern "C" {
    pub static mut guiState: GuiControlState;
}
extern "C" {
    pub static mut guiFont: Font;
}
extern "C" {
    pub static mut guiLocked: bool;
}
extern "C" {
    pub static mut guiAlpha: f32;
}
extern "C" {
    pub static mut guiStyle: [::std::os::raw::c_uint; 384usize];
}
extern "C" {
    pub static mut guiStyleLoaded: bool;
}
extern "C" {
    pub static mut guiTooltip: *const ::std::os::raw::c_char;
}
extern "C" {
    pub static mut guiTooltipEnabled: bool;
}
extern "C" {
    pub fn GuiSliderPro(
        bounds: Rectangle,
        textLeft: *const ::std::os::raw::c_char,
        textRight: *const ::std::os::raw::c_char,
        value: f32,
        minValue: f32,
        maxValue: f32,
        sliderWidth: ::std::os::raw::c_int,
    ) -> f32;
}
extern "C" {
    pub fn GuiColorPanelEx(bounds: Rectangle, color: Color, hue: f32) -> Color;
}
extern "C" {
    pub fn GuiLoadIcons(
        fileName: *const ::std::os::raw::c_char,
        loadIconsName: bool,
    ) -> *mut *mut ::std::os::raw::c_char;
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum LightType {
    LIGHT_DIRECTIONAL = 0,
    LIGHT_POINT = 1,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Light {
    pub enabled: bool,
    pub type_: LightType,
    pub position: Vector3,
    pub target: Vector3,
    pub color: Color,
    pub enabledLoc: ::std::os::raw::c_int,
    pub typeLoc: ::std::os::raw::c_int,
    pub posLoc: ::std::os::raw::c_int,
    pub targetLoc: ::std::os::raw::c_int,
    pub colorLoc: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_Light() {
    assert_eq!(
        ::std::mem::size_of::<Light>(),
        56usize,
        concat!("Size of: ", stringify!(Light))
    );
    assert_eq!(
        ::std::mem::align_of::<Light>(),
        4usize,
        concat!("Alignment of ", stringify!(Light))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Light>())).enabled as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Light),
            "::",
            stringify!(enabled)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Light>())).type_ as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(Light),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Light>())).position as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(Light),
            "::",
            stringify!(position)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Light>())).target as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(Light),
            "::",
            stringify!(target)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Light>())).color as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(Light),
            "::",
            stringify!(color)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Light>())).enabledLoc as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(Light),
            "::",
            stringify!(enabledLoc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Light>())).typeLoc as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(Light),
            "::",
            stringify!(typeLoc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Light>())).posLoc as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(Light),
            "::",
            stringify!(posLoc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Light>())).targetLoc as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(Light),
            "::",
            stringify!(targetLoc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<Light>())).colorLoc as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(Light),
            "::",
            stringify!(colorLoc)
        )
    );
}
extern "C" {
    pub fn CreateLight(
        type_: ::std::os::raw::c_int,
        position: Vector3,
        target: Vector3,
        color: Color,
        shader: Shader,
    ) -> Light;
}
extern "C" {
    pub fn UpdateLightValues(shader: Shader, light: Light);
}
extern "C" {
    pub static mut lights: [Light; 4usize];
}
pub const lightsCount: ::std::os::raw::c_int = 0;
pub type __builtin_va_list = [__va_list_tag; 1usize];
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __va_list_tag {
    pub gp_offset: ::std::os::raw::c_uint,
    pub fp_offset: ::std::os::raw::c_uint,
    pub overflow_arg_area: *mut ::std::os::raw::c_void,
    pub reg_save_area: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout___va_list_tag() {
    assert_eq!(
        ::std::mem::size_of::<__va_list_tag>(),
        24usize,
        concat!("Size of: ", stringify!(__va_list_tag))
    );
    assert_eq!(
        ::std::mem::align_of::<__va_list_tag>(),
        8usize,
        concat!("Alignment of ", stringify!(__va_list_tag))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).gp_offset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(gp_offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).fp_offset as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(fp_offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).overflow_arg_area as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(overflow_arg_area)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).reg_save_area as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(reg_save_area)
        )
    );
}
