Files
2024-04-13 15:29:53 +02:00

3013 lines
164 KiB
Plaintext

GLfloat :: typedef float;
GLdouble :: typedef double;
GLchar :: typedef char;
GLenum :: typedef uint;
GLint :: typedef int;
GLuint :: typedef uint;
GLsizei :: typedef int;
GLboolean :: typedef uchar;
GLbitfield :: typedef uint;
GLvoid :: typedef void;
GLbyte :: typedef i8;
GLubyte :: typedef u8;
GLshort :: typedef i16;
GLushort :: typedef u16;
GL_DEPTH_BUFFER_BIT :: 0x00000100;
GL_STENCIL_BUFFER_BIT :: 0x00000400;
GL_COLOR_BUFFER_BIT :: 0x00004000;
GL_FALSE :: 0;
GL_TRUE :: 1;
GL_POINTS :: 0x0000;
GL_LINES :: 0x0001;
GL_LINE_LOOP :: 0x0002;
GL_LINE_STRIP :: 0x0003;
GL_TRIANGLES :: 0x0004;
GL_TRIANGLE_STRIP :: 0x0005;
GL_TRIANGLE_FAN :: 0x0006;
GL_NEVER :: 0x0200;
GL_LESS :: 0x0201;
GL_EQUAL :: 0x0202;
GL_LEQUAL :: 0x0203;
GL_GREATER :: 0x0204;
GL_NOTEQUAL :: 0x0205;
GL_GEQUAL :: 0x0206;
GL_ALWAYS :: 0x0207;
GL_ZERO :: 0;
GL_ONE :: 1;
GL_SRC_COLOR :: 0x0300;
GL_ONE_MINUS_SRC_COLOR :: 0x0301;
GL_SRC_ALPHA :: 0x0302;
GL_ONE_MINUS_SRC_ALPHA :: 0x0303;
GL_DST_ALPHA :: 0x0304;
GL_ONE_MINUS_DST_ALPHA :: 0x0305;
GL_DST_COLOR :: 0x0306;
GL_ONE_MINUS_DST_COLOR :: 0x0307;
GL_SRC_ALPHA_SATURATE :: 0x0308;
GL_NONE :: 0;
GL_FRONT_LEFT :: 0x0400;
GL_FRONT_RIGHT :: 0x0401;
GL_BACK_LEFT :: 0x0402;
GL_BACK_RIGHT :: 0x0403;
GL_FRONT :: 0x0404;
GL_BACK :: 0x0405;
GL_LEFT :: 0x0406;
GL_RIGHT :: 0x0407;
GL_FRONT_AND_BACK :: 0x0408;
GL_NO_ERROR :: 0;
GL_INVALID_ENUM :: 0x0500;
GL_INVALID_VALUE :: 0x0501;
GL_INVALID_OPERATION :: 0x0502;
GL_OUT_OF_MEMORY :: 0x0505;
GL_CW :: 0x0900;
GL_CCW :: 0x0901;
GL_POINT_SIZE :: 0x0b11;
GL_POINT_SIZE_RANGE :: 0x0b12;
GL_POINT_SIZE_GRANULARITY :: 0x0b13;
GL_LINE_SMOOTH :: 0x0b20;
GL_LINE_WIDTH :: 0x0b21;
GL_LINE_WIDTH_RANGE :: 0x0b22;
GL_LINE_WIDTH_GRANULARITY :: 0x0b23;
GL_POLYGON_MODE :: 0x0b40;
GL_POLYGON_SMOOTH :: 0x0b41;
GL_CULL_FACE :: 0x0b44;
GL_CULL_FACE_MODE :: 0x0b45;
GL_FRONT_FACE :: 0x0b46;
GL_DEPTH_RANGE :: 0x0b70;
GL_DEPTH_TEST :: 0x0b71;
GL_DEPTH_WRITEMASK :: 0x0b72;
GL_DEPTH_CLEAR_VALUE :: 0x0b73;
GL_DEPTH_FUNC :: 0x0b74;
GL_STENCIL_TEST :: 0x0b90;
GL_STENCIL_CLEAR_VALUE :: 0x0b91;
GL_STENCIL_FUNC :: 0x0b92;
GL_STENCIL_VALUE_MASK :: 0x0b93;
GL_STENCIL_FAIL :: 0x0b94;
GL_STENCIL_PASS_DEPTH_FAIL :: 0x0b95;
GL_STENCIL_PASS_DEPTH_PASS :: 0x0b96;
GL_STENCIL_REF :: 0x0b97;
GL_STENCIL_WRITEMASK :: 0x0b98;
GL_VIEWPORT :: 0x0ba2;
GL_DITHER :: 0x0bd0;
GL_BLEND_DST :: 0x0be0;
GL_BLEND_SRC :: 0x0be1;
GL_BLEND :: 0x0be2;
GL_LOGIC_OP_MODE :: 0x0bf0;
GL_DRAW_BUFFER :: 0x0c01;
GL_READ_BUFFER :: 0x0c02;
GL_SCISSOR_BOX :: 0x0c10;
GL_SCISSOR_TEST :: 0x0c11;
GL_COLOR_CLEAR_VALUE :: 0x0c22;
GL_COLOR_WRITEMASK :: 0x0c23;
GL_DOUBLEBUFFER :: 0x0c32;
GL_STEREO :: 0x0c33;
GL_LINE_SMOOTH_HINT :: 0x0c52;
GL_POLYGON_SMOOTH_HINT :: 0x0c53;
GL_UNPACK_SWAP_BYTES :: 0x0cf0;
GL_UNPACK_LSB_FIRST :: 0x0cf1;
GL_UNPACK_ROW_LENGTH :: 0x0cf2;
GL_UNPACK_SKIP_ROWS :: 0x0cf3;
GL_UNPACK_SKIP_PIXELS :: 0x0cf4;
GL_UNPACK_ALIGNMENT :: 0x0cf5;
GL_PACK_SWAP_BYTES :: 0x0d00;
GL_PACK_LSB_FIRST :: 0x0d01;
GL_PACK_ROW_LENGTH :: 0x0d02;
GL_PACK_SKIP_ROWS :: 0x0d03;
GL_PACK_SKIP_PIXELS :: 0x0d04;
GL_PACK_ALIGNMENT :: 0x0d05;
GL_MAX_TEXTURE_SIZE :: 0x0d33;
GL_MAX_VIEWPORT_DIMS :: 0x0d3a;
GL_SUBPIXEL_BITS :: 0x0d50;
GL_TEXTURE_1D :: 0x0de0;
GL_TEXTURE_2D :: 0x0de1;
GL_TEXTURE_WIDTH :: 0x1000;
GL_TEXTURE_HEIGHT :: 0x1001;
GL_TEXTURE_BORDER_COLOR :: 0x1004;
GL_DONT_CARE :: 0x1100;
GL_FASTEST :: 0x1101;
GL_NICEST :: 0x1102;
GL_BYTE :: 0x1400;
GL_UNSIGNED_BYTE :: 0x1401;
GL_SHORT :: 0x1402;
GL_UNSIGNED_SHORT :: 0x1403;
GL_INT :: 0x1404;
GL_UNSIGNED_INT :: 0x1405;
GL_FLOAT :: 0x1406;
GL_CLEAR :: 0x1500;
GL_AND :: 0x1501;
GL_AND_REVERSE :: 0x1502;
GL_COPY :: 0x1503;
GL_AND_INVERTED :: 0x1504;
GL_NOOP :: 0x1505;
GL_XOR :: 0x1506;
GL_OR :: 0x1507;
GL_NOR :: 0x1508;
GL_EQUIV :: 0x1509;
GL_INVERT :: 0x150a;
GL_OR_REVERSE :: 0x150b;
GL_COPY_INVERTED :: 0x150c;
GL_OR_INVERTED :: 0x150d;
GL_NAND :: 0x150e;
GL_SET :: 0x150f;
GL_TEXTURE :: 0x1702;
GL_COLOR :: 0x1800;
GL_DEPTH :: 0x1801;
GL_STENCIL :: 0x1802;
GL_STENCIL_INDEX :: 0x1901;
GL_DEPTH_COMPONENT :: 0x1902;
GL_RED :: 0x1903;
GL_GREEN :: 0x1904;
GL_BLUE :: 0x1905;
GL_ALPHA :: 0x1906;
GL_RGB :: 0x1907;
GL_RGBA :: 0x1908;
GL_POINT :: 0x1b00;
GL_LINE :: 0x1b01;
GL_FILL :: 0x1b02;
GL_KEEP :: 0x1e00;
GL_REPLACE :: 0x1e01;
GL_INCR :: 0x1e02;
GL_DECR :: 0x1e03;
GL_VENDOR :: 0x1f00;
GL_RENDERER :: 0x1f01;
GL_VERSION :: 0x1f02;
GL_EXTENSIONS :: 0x1f03;
GL_NEAREST :: 0x2600;
GL_LINEAR :: 0x2601;
GL_NEAREST_MIPMAP_NEAREST :: 0x2700;
GL_LINEAR_MIPMAP_NEAREST :: 0x2701;
GL_NEAREST_MIPMAP_LINEAR :: 0x2702;
GL_LINEAR_MIPMAP_LINEAR :: 0x2703;
GL_TEXTURE_MAG_FILTER :: 0x2800;
GL_TEXTURE_MIN_FILTER :: 0x2801;
GL_TEXTURE_WRAP_S :: 0x2802;
GL_TEXTURE_WRAP_T :: 0x2803;
GL_REPEAT :: 0x2901;
GL_COLOR_LOGIC_OP :: 0x0bf2;
GL_POLYGON_OFFSET_UNITS :: 0x2a00;
GL_POLYGON_OFFSET_POINT :: 0x2a01;
GL_POLYGON_OFFSET_LINE :: 0x2a02;
GL_POLYGON_OFFSET_FILL :: 0x8037;
GL_POLYGON_OFFSET_FACTOR :: 0x8038;
GL_TEXTURE_BINDING_1D :: 0x8068;
GL_TEXTURE_BINDING_2D :: 0x8069;
GL_TEXTURE_INTERNAL_FORMAT :: 0x1003;
GL_TEXTURE_RED_SIZE :: 0x805c;
GL_TEXTURE_GREEN_SIZE :: 0x805d;
GL_TEXTURE_BLUE_SIZE :: 0x805e;
GL_TEXTURE_ALPHA_SIZE :: 0x805f;
GL_DOUBLE :: 0x140a;
GL_PROXY_TEXTURE_1D :: 0x8063;
GL_PROXY_TEXTURE_2D :: 0x8064;
GL_R3_G3_B2 :: 0x2a10;
GL_RGB4 :: 0x804f;
GL_RGB5 :: 0x8050;
GL_RGB8 :: 0x8051;
GL_RGB10 :: 0x8052;
GL_RGB12 :: 0x8053;
GL_RGB16 :: 0x8054;
GL_RGBA2 :: 0x8055;
GL_RGBA4 :: 0x8056;
GL_RGB5_A1 :: 0x8057;
GL_RGBA8 :: 0x8058;
GL_RGB10_A2 :: 0x8059;
GL_RGBA12 :: 0x805a;
GL_RGBA16 :: 0x805b;
GL_UNSIGNED_BYTE_3_3_2 :: 0x8032;
GL_UNSIGNED_SHORT_4_4_4_4 :: 0x8033;
GL_UNSIGNED_SHORT_5_5_5_1 :: 0x8034;
GL_UNSIGNED_INT_8_8_8_8 :: 0x8035;
GL_UNSIGNED_INT_10_10_10_2 :: 0x8036;
GL_TEXTURE_BINDING_3D :: 0x806a;
GL_PACK_SKIP_IMAGES :: 0x806b;
GL_PACK_IMAGE_HEIGHT :: 0x806c;
GL_UNPACK_SKIP_IMAGES :: 0x806d;
GL_UNPACK_IMAGE_HEIGHT :: 0x806e;
GL_TEXTURE_3D :: 0x806f;
GL_PROXY_TEXTURE_3D :: 0x8070;
GL_TEXTURE_DEPTH :: 0x8071;
GL_TEXTURE_WRAP_R :: 0x8072;
GL_MAX_3D_TEXTURE_SIZE :: 0x8073;
GL_UNSIGNED_BYTE_2_3_3_REV :: 0x8362;
GL_UNSIGNED_SHORT_5_6_5 :: 0x8363;
GL_UNSIGNED_SHORT_5_6_5_REV :: 0x8364;
GL_UNSIGNED_SHORT_4_4_4_4_REV :: 0x8365;
GL_UNSIGNED_SHORT_1_5_5_5_REV :: 0x8366;
GL_UNSIGNED_INT_8_8_8_8_REV :: 0x8367;
GL_UNSIGNED_INT_2_10_10_10_REV :: 0x8368;
GL_BGR :: 0x80e0;
GL_BGRA :: 0x80e1;
GL_MAX_ELEMENTS_VERTICES :: 0x80e8;
GL_MAX_ELEMENTS_INDICES :: 0x80e9;
GL_CLAMP_TO_EDGE :: 0x812f;
GL_TEXTURE_MIN_LOD :: 0x813a;
GL_TEXTURE_MAX_LOD :: 0x813b;
GL_TEXTURE_BASE_LEVEL :: 0x813c;
GL_TEXTURE_MAX_LEVEL :: 0x813d;
GL_SMOOTH_POINT_SIZE_RANGE :: 0x0b12;
GL_SMOOTH_POINT_SIZE_GRANULARITY :: 0x0b13;
GL_SMOOTH_LINE_WIDTH_RANGE :: 0x0b22;
GL_SMOOTH_LINE_WIDTH_GRANULARITY :: 0x0b23;
GL_ALIASED_LINE_WIDTH_RANGE :: 0x846e;
GL_TEXTURE0 :: 0x84c0;
GL_TEXTURE1 :: 0x84c1;
GL_TEXTURE2 :: 0x84c2;
GL_TEXTURE3 :: 0x84c3;
GL_TEXTURE4 :: 0x84c4;
GL_TEXTURE5 :: 0x84c5;
GL_TEXTURE6 :: 0x84c6;
GL_TEXTURE7 :: 0x84c7;
GL_TEXTURE8 :: 0x84c8;
GL_TEXTURE9 :: 0x84c9;
GL_TEXTURE10 :: 0x84ca;
GL_TEXTURE11 :: 0x84cb;
GL_TEXTURE12 :: 0x84cc;
GL_TEXTURE13 :: 0x84cd;
GL_TEXTURE14 :: 0x84ce;
GL_TEXTURE15 :: 0x84cf;
GL_TEXTURE16 :: 0x84d0;
GL_TEXTURE17 :: 0x84d1;
GL_TEXTURE18 :: 0x84d2;
GL_TEXTURE19 :: 0x84d3;
GL_TEXTURE20 :: 0x84d4;
GL_TEXTURE21 :: 0x84d5;
GL_TEXTURE22 :: 0x84d6;
GL_TEXTURE23 :: 0x84d7;
GL_TEXTURE24 :: 0x84d8;
GL_TEXTURE25 :: 0x84d9;
GL_TEXTURE26 :: 0x84da;
GL_TEXTURE27 :: 0x84db;
GL_TEXTURE28 :: 0x84dc;
GL_TEXTURE29 :: 0x84dd;
GL_TEXTURE30 :: 0x84de;
GL_TEXTURE31 :: 0x84df;
GL_ACTIVE_TEXTURE :: 0x84e0;
GL_MULTISAMPLE :: 0x809d;
GL_SAMPLE_ALPHA_TO_COVERAGE :: 0x809e;
GL_SAMPLE_ALPHA_TO_ONE :: 0x809f;
GL_SAMPLE_COVERAGE :: 0x80a0;
GL_SAMPLE_BUFFERS :: 0x80a8;
GL_SAMPLES :: 0x80a9;
GL_SAMPLE_COVERAGE_VALUE :: 0x80aa;
GL_SAMPLE_COVERAGE_INVERT :: 0x80ab;
GL_TEXTURE_CUBE_MAP :: 0x8513;
GL_TEXTURE_BINDING_CUBE_MAP :: 0x8514;
GL_TEXTURE_CUBE_MAP_POSITIVE_X :: 0x8515;
GL_TEXTURE_CUBE_MAP_NEGATIVE_X :: 0x8516;
GL_TEXTURE_CUBE_MAP_POSITIVE_Y :: 0x8517;
GL_TEXTURE_CUBE_MAP_NEGATIVE_Y :: 0x8518;
GL_TEXTURE_CUBE_MAP_POSITIVE_Z :: 0x8519;
GL_TEXTURE_CUBE_MAP_NEGATIVE_Z :: 0x851a;
GL_PROXY_TEXTURE_CUBE_MAP :: 0x851b;
GL_MAX_CUBE_MAP_TEXTURE_SIZE :: 0x851c;
GL_COMPRESSED_RGB :: 0x84ed;
GL_COMPRESSED_RGBA :: 0x84ee;
GL_TEXTURE_COMPRESSION_HINT :: 0x84ef;
GL_TEXTURE_COMPRESSED_IMAGE_SIZE :: 0x86a0;
GL_TEXTURE_COMPRESSED :: 0x86a1;
GL_NUM_COMPRESSED_TEXTURE_FORMATS :: 0x86a2;
GL_COMPRESSED_TEXTURE_FORMATS :: 0x86a3;
GL_CLAMP_TO_BORDER :: 0x812d;
GL_BLEND_DST_RGB :: 0x80c8;
GL_BLEND_SRC_RGB :: 0x80c9;
GL_BLEND_DST_ALPHA :: 0x80ca;
GL_BLEND_SRC_ALPHA :: 0x80cb;
GL_POINT_FADE_THRESHOLD_SIZE :: 0x8128;
GL_DEPTH_COMPONENT16 :: 0x81a5;
GL_DEPTH_COMPONENT24 :: 0x81a6;
GL_DEPTH_COMPONENT32 :: 0x81a7;
GL_MIRRORED_REPEAT :: 0x8370;
GL_MAX_TEXTURE_LOD_BIAS :: 0x84fd;
GL_TEXTURE_LOD_BIAS :: 0x8501;
GL_INCR_WRAP :: 0x8507;
GL_DECR_WRAP :: 0x8508;
GL_TEXTURE_DEPTH_SIZE :: 0x884a;
GL_TEXTURE_COMPARE_MODE :: 0x884c;
GL_TEXTURE_COMPARE_FUNC :: 0x884d;
GL_BLEND_COLOR :: 0x8005;
GL_BLEND_EQUATION :: 0x8009;
GL_CONSTANT_COLOR :: 0x8001;
GL_ONE_MINUS_CONSTANT_COLOR :: 0x8002;
GL_CONSTANT_ALPHA :: 0x8003;
GL_ONE_MINUS_CONSTANT_ALPHA :: 0x8004;
GL_FUNC_ADD :: 0x8006;
GL_FUNC_REVERSE_SUBTRACT :: 0x800b;
GL_FUNC_SUBTRACT :: 0x800a;
GL_MIN :: 0x8007;
GL_MAX :: 0x8008;
GL_BUFFER_SIZE :: 0x8764;
GL_BUFFER_USAGE :: 0x8765;
GL_QUERY_COUNTER_BITS :: 0x8864;
GL_CURRENT_QUERY :: 0x8865;
GL_QUERY_RESULT :: 0x8866;
GL_QUERY_RESULT_AVAILABLE :: 0x8867;
GL_ARRAY_BUFFER :: 0x8892;
GL_ELEMENT_ARRAY_BUFFER :: 0x8893;
GL_ARRAY_BUFFER_BINDING :: 0x8894;
GL_ELEMENT_ARRAY_BUFFER_BINDING :: 0x8895;
GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING :: 0x889f;
GL_READ_ONLY :: 0x88b8;
GL_WRITE_ONLY :: 0x88b9;
GL_READ_WRITE :: 0x88ba;
GL_BUFFER_ACCESS :: 0x88bb;
GL_BUFFER_MAPPED :: 0x88bc;
GL_BUFFER_MAP_POINTER :: 0x88bd;
GL_STREAM_DRAW :: 0x88e0;
GL_STREAM_READ :: 0x88e1;
GL_STREAM_COPY :: 0x88e2;
GL_STATIC_DRAW :: 0x88e4;
GL_STATIC_READ :: 0x88e5;
GL_STATIC_COPY :: 0x88e6;
GL_DYNAMIC_DRAW :: 0x88e8;
GL_DYNAMIC_READ :: 0x88e9;
GL_DYNAMIC_COPY :: 0x88ea;
GL_SAMPLES_PASSED :: 0x8914;
GL_SRC1_ALPHA :: 0x8589;
GL_BLEND_EQUATION_RGB :: 0x8009;
GL_VERTEX_ATTRIB_ARRAY_ENABLED :: 0x8622;
GL_VERTEX_ATTRIB_ARRAY_SIZE :: 0x8623;
GL_VERTEX_ATTRIB_ARRAY_STRIDE :: 0x8624;
GL_VERTEX_ATTRIB_ARRAY_TYPE :: 0x8625;
GL_CURRENT_VERTEX_ATTRIB :: 0x8626;
GL_VERTEX_PROGRAM_POINT_SIZE :: 0x8642;
GL_VERTEX_ATTRIB_ARRAY_POINTER :: 0x8645;
GL_STENCIL_BACK_FUNC :: 0x8800;
GL_STENCIL_BACK_FAIL :: 0x8801;
GL_STENCIL_BACK_PASS_DEPTH_FAIL :: 0x8802;
GL_STENCIL_BACK_PASS_DEPTH_PASS :: 0x8803;
GL_MAX_DRAW_BUFFERS :: 0x8824;
GL_DRAW_BUFFER0 :: 0x8825;
GL_DRAW_BUFFER1 :: 0x8826;
GL_DRAW_BUFFER2 :: 0x8827;
GL_DRAW_BUFFER3 :: 0x8828;
GL_DRAW_BUFFER4 :: 0x8829;
GL_DRAW_BUFFER5 :: 0x882a;
GL_DRAW_BUFFER6 :: 0x882b;
GL_DRAW_BUFFER7 :: 0x882c;
GL_DRAW_BUFFER8 :: 0x882d;
GL_DRAW_BUFFER9 :: 0x882e;
GL_DRAW_BUFFER10 :: 0x882f;
GL_DRAW_BUFFER11 :: 0x8830;
GL_DRAW_BUFFER12 :: 0x8831;
GL_DRAW_BUFFER13 :: 0x8832;
GL_DRAW_BUFFER14 :: 0x8833;
GL_DRAW_BUFFER15 :: 0x8834;
GL_BLEND_EQUATION_ALPHA :: 0x883d;
GL_MAX_VERTEX_ATTRIBS :: 0x8869;
GL_VERTEX_ATTRIB_ARRAY_NORMALIZED :: 0x886a;
GL_MAX_TEXTURE_IMAGE_UNITS :: 0x8872;
GL_FRAGMENT_SHADER :: 0x8b30;
GL_VERTEX_SHADER :: 0x8b31;
GL_MAX_FRAGMENT_UNIFORM_COMPONENTS :: 0x8b49;
GL_MAX_VERTEX_UNIFORM_COMPONENTS :: 0x8b4a;
GL_MAX_VARYING_FLOATS :: 0x8b4b;
GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS :: 0x8b4c;
GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS :: 0x8b4d;
GL_SHADER_TYPE :: 0x8b4f;
GL_FLOAT_VEC2 :: 0x8b50;
GL_FLOAT_VEC3 :: 0x8b51;
GL_FLOAT_VEC4 :: 0x8b52;
GL_INT_VEC2 :: 0x8b53;
GL_INT_VEC3 :: 0x8b54;
GL_INT_VEC4 :: 0x8b55;
GL_BOOL :: 0x8b56;
GL_BOOL_VEC2 :: 0x8b57;
GL_BOOL_VEC3 :: 0x8b58;
GL_BOOL_VEC4 :: 0x8b59;
GL_FLOAT_MAT2 :: 0x8b5a;
GL_FLOAT_MAT3 :: 0x8b5b;
GL_FLOAT_MAT4 :: 0x8b5c;
GL_SAMPLER_1D :: 0x8b5d;
GL_SAMPLER_2D :: 0x8b5e;
GL_SAMPLER_3D :: 0x8b5f;
GL_SAMPLER_CUBE :: 0x8b60;
GL_SAMPLER_1D_SHADOW :: 0x8b61;
GL_SAMPLER_2D_SHADOW :: 0x8b62;
GL_DELETE_STATUS :: 0x8b80;
GL_COMPILE_STATUS :: 0x8b81;
GL_LINK_STATUS :: 0x8b82;
GL_VALIDATE_STATUS :: 0x8b83;
GL_INFO_LOG_LENGTH :: 0x8b84;
GL_ATTACHED_SHADERS :: 0x8b85;
GL_ACTIVE_UNIFORMS :: 0x8b86;
GL_ACTIVE_UNIFORM_MAX_LENGTH :: 0x8b87;
GL_SHADER_SOURCE_LENGTH :: 0x8b88;
GL_ACTIVE_ATTRIBUTES :: 0x8b89;
GL_ACTIVE_ATTRIBUTE_MAX_LENGTH :: 0x8b8a;
GL_FRAGMENT_SHADER_DERIVATIVE_HINT :: 0x8b8b;
GL_SHADING_LANGUAGE_VERSION :: 0x8b8c;
GL_CURRENT_PROGRAM :: 0x8b8d;
GL_POINT_SPRITE_COORD_ORIGIN :: 0x8ca0;
GL_LOWER_LEFT :: 0x8ca1;
GL_UPPER_LEFT :: 0x8ca2;
GL_STENCIL_BACK_REF :: 0x8ca3;
GL_STENCIL_BACK_VALUE_MASK :: 0x8ca4;
GL_STENCIL_BACK_WRITEMASK :: 0x8ca5;
GL_PIXEL_PACK_BUFFER :: 0x88eb;
GL_PIXEL_UNPACK_BUFFER :: 0x88ec;
GL_PIXEL_PACK_BUFFER_BINDING :: 0x88ed;
GL_PIXEL_UNPACK_BUFFER_BINDING :: 0x88ef;
GL_FLOAT_MAT2x3 :: 0x8b65;
GL_FLOAT_MAT2x4 :: 0x8b66;
GL_FLOAT_MAT3x2 :: 0x8b67;
GL_FLOAT_MAT3x4 :: 0x8b68;
GL_FLOAT_MAT4x2 :: 0x8b69;
GL_FLOAT_MAT4x3 :: 0x8b6a;
GL_SRGB :: 0x8c40;
GL_SRGB8 :: 0x8c41;
GL_SRGB_ALPHA :: 0x8c42;
GL_SRGB8_ALPHA8 :: 0x8c43;
GL_COMPRESSED_SRGB :: 0x8c48;
GL_COMPRESSED_SRGB_ALPHA :: 0x8c49;
GL_COMPARE_REF_TO_TEXTURE :: 0x884e;
GL_CLIP_DISTANCE0 :: 0x3000;
GL_CLIP_DISTANCE1 :: 0x3001;
GL_CLIP_DISTANCE2 :: 0x3002;
GL_CLIP_DISTANCE3 :: 0x3003;
GL_CLIP_DISTANCE4 :: 0x3004;
GL_CLIP_DISTANCE5 :: 0x3005;
GL_CLIP_DISTANCE6 :: 0x3006;
GL_CLIP_DISTANCE7 :: 0x3007;
GL_MAX_CLIP_DISTANCES :: 0x0d32;
GL_MAJOR_VERSION :: 0x821b;
GL_MINOR_VERSION :: 0x821c;
GL_NUM_EXTENSIONS :: 0x821d;
GL_CONTEXT_FLAGS :: 0x821e;
GL_COMPRESSED_RED :: 0x8225;
GL_COMPRESSED_RG :: 0x8226;
GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT :: 0x00000001;
GL_RGBA32F :: 0x8814;
GL_RGB32F :: 0x8815;
GL_RGBA16F :: 0x881a;
GL_RGB16F :: 0x881b;
GL_VERTEX_ATTRIB_ARRAY_INTEGER :: 0x88fd;
GL_MAX_ARRAY_TEXTURE_LAYERS :: 0x88ff;
GL_MIN_PROGRAM_TEXEL_OFFSET :: 0x8904;
GL_MAX_PROGRAM_TEXEL_OFFSET :: 0x8905;
GL_CLAMP_READ_COLOR :: 0x891c;
GL_FIXED_ONLY :: 0x891d;
GL_MAX_VARYING_COMPONENTS :: 0x8b4b;
GL_TEXTURE_1D_ARRAY :: 0x8c18;
GL_PROXY_TEXTURE_1D_ARRAY :: 0x8c19;
GL_TEXTURE_2D_ARRAY :: 0x8c1a;
GL_PROXY_TEXTURE_2D_ARRAY :: 0x8c1b;
GL_TEXTURE_BINDING_1D_ARRAY :: 0x8c1c;
GL_TEXTURE_BINDING_2D_ARRAY :: 0x8c1d;
GL_R11F_G11F_B10F :: 0x8c3a;
GL_UNSIGNED_INT_10F_11F_11F_REV :: 0x8c3b;
GL_RGB9_E5 :: 0x8c3d;
GL_UNSIGNED_INT_5_9_9_9_REV :: 0x8c3e;
GL_TEXTURE_SHARED_SIZE :: 0x8c3f;
GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH :: 0x8c76;
GL_TRANSFORM_FEEDBACK_BUFFER_MODE :: 0x8c7f;
GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS :: 0x8c80;
GL_TRANSFORM_FEEDBACK_VARYINGS :: 0x8c83;
GL_TRANSFORM_FEEDBACK_BUFFER_START :: 0x8c84;
GL_TRANSFORM_FEEDBACK_BUFFER_SIZE :: 0x8c85;
GL_PRIMITIVES_GENERATED :: 0x8c87;
GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN :: 0x8c88;
GL_RASTERIZER_DISCARD :: 0x8c89;
GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS :: 0x8c8a;
GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS :: 0x8c8b;
GL_INTERLEAVED_ATTRIBS :: 0x8c8c;
GL_SEPARATE_ATTRIBS :: 0x8c8d;
GL_TRANSFORM_FEEDBACK_BUFFER :: 0x8c8e;
GL_TRANSFORM_FEEDBACK_BUFFER_BINDING :: 0x8c8f;
GL_RGBA32UI :: 0x8d70;
GL_RGB32UI :: 0x8d71;
GL_RGBA16UI :: 0x8d76;
GL_RGB16UI :: 0x8d77;
GL_RGBA8UI :: 0x8d7c;
GL_RGB8UI :: 0x8d7d;
GL_RGBA32I :: 0x8d82;
GL_RGB32I :: 0x8d83;
GL_RGBA16I :: 0x8d88;
GL_RGB16I :: 0x8d89;
GL_RGBA8I :: 0x8d8e;
GL_RGB8I :: 0x8d8f;
GL_RED_INTEGER :: 0x8d94;
GL_GREEN_INTEGER :: 0x8d95;
GL_BLUE_INTEGER :: 0x8d96;
GL_RGB_INTEGER :: 0x8d98;
GL_RGBA_INTEGER :: 0x8d99;
GL_BGR_INTEGER :: 0x8d9a;
GL_BGRA_INTEGER :: 0x8d9b;
GL_SAMPLER_1D_ARRAY :: 0x8dc0;
GL_SAMPLER_2D_ARRAY :: 0x8dc1;
GL_SAMPLER_1D_ARRAY_SHADOW :: 0x8dc3;
GL_SAMPLER_2D_ARRAY_SHADOW :: 0x8dc4;
GL_SAMPLER_CUBE_SHADOW :: 0x8dc5;
GL_UNSIGNED_INT_VEC2 :: 0x8dc6;
GL_UNSIGNED_INT_VEC3 :: 0x8dc7;
GL_UNSIGNED_INT_VEC4 :: 0x8dc8;
GL_INT_SAMPLER_1D :: 0x8dc9;
GL_INT_SAMPLER_2D :: 0x8dca;
GL_INT_SAMPLER_3D :: 0x8dcb;
GL_INT_SAMPLER_CUBE :: 0x8dcc;
GL_INT_SAMPLER_1D_ARRAY :: 0x8dce;
GL_INT_SAMPLER_2D_ARRAY :: 0x8dcf;
GL_UNSIGNED_INT_SAMPLER_1D :: 0x8dd1;
GL_UNSIGNED_INT_SAMPLER_2D :: 0x8dd2;
GL_UNSIGNED_INT_SAMPLER_3D :: 0x8dd3;
GL_UNSIGNED_INT_SAMPLER_CUBE :: 0x8dd4;
GL_UNSIGNED_INT_SAMPLER_1D_ARRAY :: 0x8dd6;
GL_UNSIGNED_INT_SAMPLER_2D_ARRAY :: 0x8dd7;
GL_QUERY_WAIT :: 0x8e13;
GL_QUERY_NO_WAIT :: 0x8e14;
GL_QUERY_BY_REGION_WAIT :: 0x8e15;
GL_QUERY_BY_REGION_NO_WAIT :: 0x8e16;
GL_BUFFER_ACCESS_FLAGS :: 0x911f;
GL_BUFFER_MAP_LENGTH :: 0x9120;
GL_BUFFER_MAP_OFFSET :: 0x9121;
GL_DEPTH_COMPONENT32F :: 0x8cac;
GL_DEPTH32F_STENCIL8 :: 0x8cad;
GL_FLOAT_32_UNSIGNED_INT_24_8_REV :: 0x8dad;
GL_INVALID_FRAMEBUFFER_OPERATION :: 0x0506;
GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING :: 0x8210;
GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE :: 0x8211;
GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE :: 0x8212;
GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE :: 0x8213;
GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE :: 0x8214;
GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE :: 0x8215;
GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE :: 0x8216;
GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE :: 0x8217;
GL_FRAMEBUFFER_DEFAULT :: 0x8218;
GL_FRAMEBUFFER_UNDEFINED :: 0x8219;
GL_DEPTH_STENCIL_ATTACHMENT :: 0x821a;
GL_MAX_RENDERBUFFER_SIZE :: 0x84e8;
GL_DEPTH_STENCIL :: 0x84f9;
GL_UNSIGNED_INT_24_8 :: 0x84fa;
GL_DEPTH24_STENCIL8 :: 0x88f0;
GL_TEXTURE_STENCIL_SIZE :: 0x88f1;
GL_TEXTURE_RED_TYPE :: 0x8c10;
GL_TEXTURE_GREEN_TYPE :: 0x8c11;
GL_TEXTURE_BLUE_TYPE :: 0x8c12;
GL_TEXTURE_ALPHA_TYPE :: 0x8c13;
GL_TEXTURE_DEPTH_TYPE :: 0x8c16;
GL_UNSIGNED_NORMALIZED :: 0x8c17;
GL_FRAMEBUFFER_BINDING :: 0x8ca6;
GL_DRAW_FRAMEBUFFER_BINDING :: 0x8ca6;
GL_RENDERBUFFER_BINDING :: 0x8ca7;
GL_READ_FRAMEBUFFER :: 0x8ca8;
GL_DRAW_FRAMEBUFFER :: 0x8ca9;
GL_READ_FRAMEBUFFER_BINDING :: 0x8caa;
GL_RENDERBUFFER_SAMPLES :: 0x8cab;
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE :: 0x8cd0;
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME :: 0x8cd1;
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL :: 0x8cd2;
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE :: 0x8cd3;
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER :: 0x8cd4;
GL_FRAMEBUFFER_COMPLETE :: 0x8cd5;
GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT :: 0x8cd6;
GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT :: 0x8cd7;
GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER :: 0x8cdb;
GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER :: 0x8cdc;
GL_FRAMEBUFFER_UNSUPPORTED :: 0x8cdd;
GL_MAX_COLOR_ATTACHMENTS :: 0x8cdf;
GL_COLOR_ATTACHMENT0 :: 0x8ce0;
GL_COLOR_ATTACHMENT1 :: 0x8ce1;
GL_COLOR_ATTACHMENT2 :: 0x8ce2;
GL_COLOR_ATTACHMENT3 :: 0x8ce3;
GL_COLOR_ATTACHMENT4 :: 0x8ce4;
GL_COLOR_ATTACHMENT5 :: 0x8ce5;
GL_COLOR_ATTACHMENT6 :: 0x8ce6;
GL_COLOR_ATTACHMENT7 :: 0x8ce7;
GL_COLOR_ATTACHMENT8 :: 0x8ce8;
GL_COLOR_ATTACHMENT9 :: 0x8ce9;
GL_COLOR_ATTACHMENT10 :: 0x8cea;
GL_COLOR_ATTACHMENT11 :: 0x8ceb;
GL_COLOR_ATTACHMENT12 :: 0x8cec;
GL_COLOR_ATTACHMENT13 :: 0x8ced;
GL_COLOR_ATTACHMENT14 :: 0x8cee;
GL_COLOR_ATTACHMENT15 :: 0x8cef;
GL_COLOR_ATTACHMENT16 :: 0x8cf0;
GL_COLOR_ATTACHMENT17 :: 0x8cf1;
GL_COLOR_ATTACHMENT18 :: 0x8cf2;
GL_COLOR_ATTACHMENT19 :: 0x8cf3;
GL_COLOR_ATTACHMENT20 :: 0x8cf4;
GL_COLOR_ATTACHMENT21 :: 0x8cf5;
GL_COLOR_ATTACHMENT22 :: 0x8cf6;
GL_COLOR_ATTACHMENT23 :: 0x8cf7;
GL_COLOR_ATTACHMENT24 :: 0x8cf8;
GL_COLOR_ATTACHMENT25 :: 0x8cf9;
GL_COLOR_ATTACHMENT26 :: 0x8cfa;
GL_COLOR_ATTACHMENT27 :: 0x8cfb;
GL_COLOR_ATTACHMENT28 :: 0x8cfc;
GL_COLOR_ATTACHMENT29 :: 0x8cfd;
GL_COLOR_ATTACHMENT30 :: 0x8cfe;
GL_COLOR_ATTACHMENT31 :: 0x8cff;
GL_DEPTH_ATTACHMENT :: 0x8d00;
GL_STENCIL_ATTACHMENT :: 0x8d20;
GL_FRAMEBUFFER :: 0x8d40;
GL_RENDERBUFFER :: 0x8d41;
GL_RENDERBUFFER_WIDTH :: 0x8d42;
GL_RENDERBUFFER_HEIGHT :: 0x8d43;
GL_RENDERBUFFER_INTERNAL_FORMAT :: 0x8d44;
GL_STENCIL_INDEX1 :: 0x8d46;
GL_STENCIL_INDEX4 :: 0x8d47;
GL_STENCIL_INDEX8 :: 0x8d48;
GL_STENCIL_INDEX16 :: 0x8d49;
GL_RENDERBUFFER_RED_SIZE :: 0x8d50;
GL_RENDERBUFFER_GREEN_SIZE :: 0x8d51;
GL_RENDERBUFFER_BLUE_SIZE :: 0x8d52;
GL_RENDERBUFFER_ALPHA_SIZE :: 0x8d53;
GL_RENDERBUFFER_DEPTH_SIZE :: 0x8d54;
GL_RENDERBUFFER_STENCIL_SIZE :: 0x8d55;
GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE :: 0x8d56;
GL_MAX_SAMPLES :: 0x8d57;
GL_FRAMEBUFFER_SRGB :: 0x8db9;
GL_HALF_FLOAT :: 0x140b;
GL_MAP_READ_BIT :: 0x0001;
GL_MAP_WRITE_BIT :: 0x0002;
GL_MAP_INVALIDATE_RANGE_BIT :: 0x0004;
GL_MAP_INVALIDATE_BUFFER_BIT :: 0x0008;
GL_MAP_FLUSH_EXPLICIT_BIT :: 0x0010;
GL_MAP_UNSYNCHRONIZED_BIT :: 0x0020;
GL_COMPRESSED_RED_RGTC1 :: 0x8dbb;
GL_COMPRESSED_SIGNED_RED_RGTC1 :: 0x8dbc;
GL_COMPRESSED_RG_RGTC2 :: 0x8dbd;
GL_COMPRESSED_SIGNED_RG_RGTC2 :: 0x8dbe;
GL_RG :: 0x8227;
GL_RG_INTEGER :: 0x8228;
GL_R8 :: 0x8229;
GL_R16 :: 0x822a;
GL_RG8 :: 0x822b;
GL_RG16 :: 0x822c;
GL_R16F :: 0x822d;
GL_R32F :: 0x822e;
GL_RG16F :: 0x822f;
GL_RG32F :: 0x8230;
GL_R8I :: 0x8231;
GL_R8UI :: 0x8232;
GL_R16I :: 0x8233;
GL_R16UI :: 0x8234;
GL_R32I :: 0x8235;
GL_R32UI :: 0x8236;
GL_RG8I :: 0x8237;
GL_RG8UI :: 0x8238;
GL_RG16I :: 0x8239;
GL_RG16UI :: 0x823a;
GL_RG32I :: 0x823b;
GL_RG32UI :: 0x823c;
GL_VERTEX_ARRAY_BINDING :: 0x85b5;
GL_SAMPLER_2D_RECT :: 0x8b63;
GL_SAMPLER_2D_RECT_SHADOW :: 0x8b64;
GL_SAMPLER_BUFFER :: 0x8dc2;
GL_INT_SAMPLER_2D_RECT :: 0x8dcd;
GL_INT_SAMPLER_BUFFER :: 0x8dd0;
GL_UNSIGNED_INT_SAMPLER_2D_RECT :: 0x8dd5;
GL_UNSIGNED_INT_SAMPLER_BUFFER :: 0x8dd8;
GL_TEXTURE_BUFFER :: 0x8c2a;
GL_MAX_TEXTURE_BUFFER_SIZE :: 0x8c2b;
GL_TEXTURE_BINDING_BUFFER :: 0x8c2c;
GL_TEXTURE_BUFFER_DATA_STORE_BINDING :: 0x8c2d;
GL_TEXTURE_RECTANGLE :: 0x84f5;
GL_TEXTURE_BINDING_RECTANGLE :: 0x84f6;
GL_PROXY_TEXTURE_RECTANGLE :: 0x84f7;
GL_MAX_RECTANGLE_TEXTURE_SIZE :: 0x84f8;
GL_R8_SNORM :: 0x8f94;
GL_RG8_SNORM :: 0x8f95;
GL_RGB8_SNORM :: 0x8f96;
GL_RGBA8_SNORM :: 0x8f97;
GL_R16_SNORM :: 0x8f98;
GL_RG16_SNORM :: 0x8f99;
GL_RGB16_SNORM :: 0x8f9a;
GL_RGBA16_SNORM :: 0x8f9b;
GL_SIGNED_NORMALIZED :: 0x8f9c;
GL_PRIMITIVE_RESTART :: 0x8f9d;
GL_PRIMITIVE_RESTART_INDEX :: 0x8f9e;
GL_COPY_READ_BUFFER :: 0x8f36;
GL_COPY_WRITE_BUFFER :: 0x8f37;
GL_UNIFORM_BUFFER :: 0x8a11;
GL_UNIFORM_BUFFER_BINDING :: 0x8a28;
GL_UNIFORM_BUFFER_START :: 0x8a29;
GL_UNIFORM_BUFFER_SIZE :: 0x8a2a;
GL_MAX_VERTEX_UNIFORM_BLOCKS :: 0x8a2b;
GL_MAX_GEOMETRY_UNIFORM_BLOCKS :: 0x8a2c;
GL_MAX_FRAGMENT_UNIFORM_BLOCKS :: 0x8a2d;
GL_MAX_COMBINED_UNIFORM_BLOCKS :: 0x8a2e;
GL_MAX_UNIFORM_BUFFER_BINDINGS :: 0x8a2f;
GL_MAX_UNIFORM_BLOCK_SIZE :: 0x8a30;
GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS :: 0x8a31;
GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS :: 0x8a32;
GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS :: 0x8a33;
GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT :: 0x8a34;
GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH :: 0x8a35;
GL_ACTIVE_UNIFORM_BLOCKS :: 0x8a36;
GL_UNIFORM_TYPE :: 0x8a37;
GL_UNIFORM_SIZE :: 0x8a38;
GL_UNIFORM_NAME_LENGTH :: 0x8a39;
GL_UNIFORM_BLOCK_INDEX :: 0x8a3a;
GL_UNIFORM_OFFSET :: 0x8a3b;
GL_UNIFORM_ARRAY_STRIDE :: 0x8a3c;
GL_UNIFORM_MATRIX_STRIDE :: 0x8a3d;
GL_UNIFORM_IS_ROW_MAJOR :: 0x8a3e;
GL_UNIFORM_BLOCK_BINDING :: 0x8a3f;
GL_UNIFORM_BLOCK_DATA_SIZE :: 0x8a40;
GL_UNIFORM_BLOCK_NAME_LENGTH :: 0x8a41;
GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS :: 0x8a42;
GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES :: 0x8a43;
GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER :: 0x8a44;
GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER :: 0x8a45;
GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER :: 0x8a46;
GL_INVALID_INDEX :: 0xffffffff;
GL_CONTEXT_CORE_PROFILE_BIT :: 0x00000001;
GL_CONTEXT_COMPATIBILITY_PROFILE_BIT :: 0x00000002;
GL_LINES_ADJACENCY :: 0x000a;
GL_LINE_STRIP_ADJACENCY :: 0x000b;
GL_TRIANGLES_ADJACENCY :: 0x000c;
GL_TRIANGLE_STRIP_ADJACENCY :: 0x000d;
GL_PROGRAM_POINT_SIZE :: 0x8642;
GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS :: 0x8c29;
GL_FRAMEBUFFER_ATTACHMENT_LAYERED :: 0x8da7;
GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS :: 0x8da8;
GL_GEOMETRY_SHADER :: 0x8dd9;
GL_GEOMETRY_VERTICES_OUT :: 0x8916;
GL_GEOMETRY_INPUT_TYPE :: 0x8917;
GL_GEOMETRY_OUTPUT_TYPE :: 0x8918;
GL_MAX_GEOMETRY_UNIFORM_COMPONENTS :: 0x8ddf;
GL_MAX_GEOMETRY_OUTPUT_VERTICES :: 0x8de0;
GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS :: 0x8de1;
GL_MAX_VERTEX_OUTPUT_COMPONENTS :: 0x9122;
GL_MAX_GEOMETRY_INPUT_COMPONENTS :: 0x9123;
GL_MAX_GEOMETRY_OUTPUT_COMPONENTS :: 0x9124;
GL_MAX_FRAGMENT_INPUT_COMPONENTS :: 0x9125;
GL_CONTEXT_PROFILE_MASK :: 0x9126;
GL_DEPTH_CLAMP :: 0x864f;
GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION :: 0x8e4c;
GL_FIRST_VERTEX_CONVENTION :: 0x8e4d;
GL_LAST_VERTEX_CONVENTION :: 0x8e4e;
GL_PROVOKING_VERTEX :: 0x8e4f;
GL_TEXTURE_CUBE_MAP_SEAMLESS :: 0x884f;
GL_MAX_SERVER_WAIT_TIMEOUT :: 0x9111;
GL_OBJECT_TYPE :: 0x9112;
GL_SYNC_CONDITION :: 0x9113;
GL_SYNC_STATUS :: 0x9114;
GL_SYNC_FLAGS :: 0x9115;
GL_SYNC_FENCE :: 0x9116;
GL_SYNC_GPU_COMMANDS_COMPLETE :: 0x9117;
GL_UNSIGNALED :: 0x9118;
GL_SIGNALED :: 0x9119;
GL_ALREADY_SIGNALED :: 0x911a;
GL_TIMEOUT_EXPIRED :: 0x911b;
GL_CONDITION_SATISFIED :: 0x911c;
GL_WAIT_FAILED :: 0x911d;
GL_TIMEOUT_IGNORED :: 0xffffffffffffffff;
GL_SYNC_FLUSH_COMMANDS_BIT :: 0x00000001;
GL_SAMPLE_POSITION :: 0x8e50;
GL_SAMPLE_MASK :: 0x8e51;
GL_SAMPLE_MASK_VALUE :: 0x8e52;
GL_MAX_SAMPLE_MASK_WORDS :: 0x8e59;
GL_TEXTURE_2D_MULTISAMPLE :: 0x9100;
GL_PROXY_TEXTURE_2D_MULTISAMPLE :: 0x9101;
GL_TEXTURE_2D_MULTISAMPLE_ARRAY :: 0x9102;
GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY :: 0x9103;
GL_TEXTURE_BINDING_2D_MULTISAMPLE :: 0x9104;
GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY :: 0x9105;
GL_TEXTURE_SAMPLES :: 0x9106;
GL_TEXTURE_FIXED_SAMPLE_LOCATIONS :: 0x9107;
GL_SAMPLER_2D_MULTISAMPLE :: 0x9108;
GL_INT_SAMPLER_2D_MULTISAMPLE :: 0x9109;
GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE :: 0x910a;
GL_SAMPLER_2D_MULTISAMPLE_ARRAY :: 0x910b;
GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY :: 0x910c;
GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY :: 0x910d;
GL_MAX_COLOR_TEXTURE_SAMPLES :: 0x910e;
GL_MAX_DEPTH_TEXTURE_SAMPLES :: 0x910f;
GL_MAX_INTEGER_SAMPLES :: 0x9110;
GL_VERTEX_ATTRIB_ARRAY_DIVISOR :: 0x88fe;
GL_SRC1_COLOR :: 0x88f9;
GL_ONE_MINUS_SRC1_COLOR :: 0x88fa;
GL_ONE_MINUS_SRC1_ALPHA :: 0x88fb;
GL_MAX_DUAL_SOURCE_DRAW_BUFFERS :: 0x88fc;
GL_ANY_SAMPLES_PASSED :: 0x8c2f;
GL_SAMPLER_BINDING :: 0x8919;
GL_RGB10_A2UI :: 0x906f;
GL_TEXTURE_SWIZZLE_R :: 0x8e42;
GL_TEXTURE_SWIZZLE_G :: 0x8e43;
GL_TEXTURE_SWIZZLE_B :: 0x8e44;
GL_TEXTURE_SWIZZLE_A :: 0x8e45;
GL_TEXTURE_SWIZZLE_RGBA :: 0x8e46;
GL_TIME_ELAPSED :: 0x88bf;
GL_TIMESTAMP :: 0x8e28;
GL_INT_2_10_10_10_REV :: 0x8d9f;
GL_SAMPLE_SHADING :: 0x8c36;
GL_MIN_SAMPLE_SHADING_VALUE :: 0x8c37;
GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET :: 0x8e5e;
GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET :: 0x8e5f;
GL_TEXTURE_CUBE_MAP_ARRAY :: 0x9009;
GL_TEXTURE_BINDING_CUBE_MAP_ARRAY :: 0x900a;
GL_PROXY_TEXTURE_CUBE_MAP_ARRAY :: 0x900b;
GL_SAMPLER_CUBE_MAP_ARRAY :: 0x900c;
GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW :: 0x900d;
GL_INT_SAMPLER_CUBE_MAP_ARRAY :: 0x900e;
GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY :: 0x900f;
GL_DRAW_INDIRECT_BUFFER :: 0x8f3f;
GL_DRAW_INDIRECT_BUFFER_BINDING :: 0x8f43;
GL_GEOMETRY_SHADER_INVOCATIONS :: 0x887f;
GL_MAX_GEOMETRY_SHADER_INVOCATIONS :: 0x8e5a;
GL_MIN_FRAGMENT_INTERPOLATION_OFFSET :: 0x8e5b;
GL_MAX_FRAGMENT_INTERPOLATION_OFFSET :: 0x8e5c;
GL_FRAGMENT_INTERPOLATION_OFFSET_BITS :: 0x8e5d;
GL_MAX_VERTEX_STREAMS :: 0x8e71;
GL_DOUBLE_VEC2 :: 0x8ffc;
GL_DOUBLE_VEC3 :: 0x8ffd;
GL_DOUBLE_VEC4 :: 0x8ffe;
GL_DOUBLE_MAT2 :: 0x8f46;
GL_DOUBLE_MAT3 :: 0x8f47;
GL_DOUBLE_MAT4 :: 0x8f48;
GL_DOUBLE_MAT2x3 :: 0x8f49;
GL_DOUBLE_MAT2x4 :: 0x8f4a;
GL_DOUBLE_MAT3x2 :: 0x8f4b;
GL_DOUBLE_MAT3x4 :: 0x8f4c;
GL_DOUBLE_MAT4x2 :: 0x8f4d;
GL_DOUBLE_MAT4x3 :: 0x8f4e;
GL_ACTIVE_SUBROUTINES :: 0x8de5;
GL_ACTIVE_SUBROUTINE_UNIFORMS :: 0x8de6;
GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS :: 0x8e47;
GL_ACTIVE_SUBROUTINE_MAX_LENGTH :: 0x8e48;
GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH :: 0x8e49;
GL_MAX_SUBROUTINES :: 0x8de7;
GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS :: 0x8de8;
GL_NUM_COMPATIBLE_SUBROUTINES :: 0x8e4a;
GL_COMPATIBLE_SUBROUTINES :: 0x8e4b;
GL_PATCHES :: 0x000e;
GL_PATCH_VERTICES :: 0x8e72;
GL_PATCH_DEFAULT_INNER_LEVEL :: 0x8e73;
GL_PATCH_DEFAULT_OUTER_LEVEL :: 0x8e74;
GL_TESS_CONTROL_OUTPUT_VERTICES :: 0x8e75;
GL_TESS_GEN_MODE :: 0x8e76;
GL_TESS_GEN_SPACING :: 0x8e77;
GL_TESS_GEN_VERTEX_ORDER :: 0x8e78;
GL_TESS_GEN_POINT_MODE :: 0x8e79;
GL_ISOLINES :: 0x8e7a;
GL_QUADS :: 0x0007;
GL_FRACTIONAL_ODD :: 0x8e7b;
GL_FRACTIONAL_EVEN :: 0x8e7c;
GL_MAX_PATCH_VERTICES :: 0x8e7d;
GL_MAX_TESS_GEN_LEVEL :: 0x8e7e;
GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS :: 0x8e7f;
GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS :: 0x8e80;
GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS :: 0x8e81;
GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS :: 0x8e82;
GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS :: 0x8e83;
GL_MAX_TESS_PATCH_COMPONENTS :: 0x8e84;
GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS :: 0x8e85;
GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS :: 0x8e86;
GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS :: 0x8e89;
GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS :: 0x8e8a;
GL_MAX_TESS_CONTROL_INPUT_COMPONENTS :: 0x886c;
GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS :: 0x886d;
GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS :: 0x8e1e;
GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS :: 0x8e1f;
GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER :: 0x84f0;
GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER :: 0x84f1;
GL_TESS_EVALUATION_SHADER :: 0x8e87;
GL_TESS_CONTROL_SHADER :: 0x8e88;
GL_TRANSFORM_FEEDBACK :: 0x8e22;
GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED :: 0x8e23;
GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE :: 0x8e24;
GL_TRANSFORM_FEEDBACK_BINDING :: 0x8e25;
GL_MAX_TRANSFORM_FEEDBACK_BUFFERS :: 0x8e70;
GL_FIXED :: 0x140c;
GL_IMPLEMENTATION_COLOR_READ_TYPE :: 0x8b9a;
GL_IMPLEMENTATION_COLOR_READ_FORMAT :: 0x8b9b;
GL_LOW_FLOAT :: 0x8df0;
GL_MEDIUM_FLOAT :: 0x8df1;
GL_HIGH_FLOAT :: 0x8df2;
GL_LOW_INT :: 0x8df3;
GL_MEDIUM_INT :: 0x8df4;
GL_HIGH_INT :: 0x8df5;
GL_SHADER_COMPILER :: 0x8dfa;
GL_SHADER_BINARY_FORMATS :: 0x8df8;
GL_NUM_SHADER_BINARY_FORMATS :: 0x8df9;
GL_MAX_VERTEX_UNIFORM_VECTORS :: 0x8dfb;
GL_MAX_VARYING_VECTORS :: 0x8dfc;
GL_MAX_FRAGMENT_UNIFORM_VECTORS :: 0x8dfd;
GL_RGB565 :: 0x8d62;
GL_PROGRAM_BINARY_RETRIEVABLE_HINT :: 0x8257;
GL_PROGRAM_BINARY_LENGTH :: 0x8741;
GL_NUM_PROGRAM_BINARY_FORMATS :: 0x87fe;
GL_PROGRAM_BINARY_FORMATS :: 0x87ff;
GL_VERTEX_SHADER_BIT :: 0x00000001;
GL_FRAGMENT_SHADER_BIT :: 0x00000002;
GL_GEOMETRY_SHADER_BIT :: 0x00000004;
GL_TESS_CONTROL_SHADER_BIT :: 0x00000008;
GL_TESS_EVALUATION_SHADER_BIT :: 0x00000010;
GL_ALL_SHADER_BITS :: 0xffffffff;
GL_PROGRAM_SEPARABLE :: 0x8258;
GL_ACTIVE_PROGRAM :: 0x8259;
GL_PROGRAM_PIPELINE_BINDING :: 0x825a;
GL_MAX_VIEWPORTS :: 0x825b;
GL_VIEWPORT_SUBPIXEL_BITS :: 0x825c;
GL_VIEWPORT_BOUNDS_RANGE :: 0x825d;
GL_LAYER_PROVOKING_VERTEX :: 0x825e;
GL_VIEWPORT_INDEX_PROVOKING_VERTEX :: 0x825f;
GL_UNDEFINED_VERTEX :: 0x8260;
GL_COPY_READ_BUFFER_BINDING :: 0x8f36;
GL_COPY_WRITE_BUFFER_BINDING :: 0x8f37;
GL_TRANSFORM_FEEDBACK_ACTIVE :: 0x8e24;
GL_TRANSFORM_FEEDBACK_PAUSED :: 0x8e23;
GL_UNPACK_COMPRESSED_BLOCK_WIDTH :: 0x9127;
GL_UNPACK_COMPRESSED_BLOCK_HEIGHT :: 0x9128;
GL_UNPACK_COMPRESSED_BLOCK_DEPTH :: 0x9129;
GL_UNPACK_COMPRESSED_BLOCK_SIZE :: 0x912a;
GL_PACK_COMPRESSED_BLOCK_WIDTH :: 0x912b;
GL_PACK_COMPRESSED_BLOCK_HEIGHT :: 0x912c;
GL_PACK_COMPRESSED_BLOCK_DEPTH :: 0x912d;
GL_PACK_COMPRESSED_BLOCK_SIZE :: 0x912e;
GL_NUM_SAMPLE_COUNTS :: 0x9380;
GL_MIN_MAP_BUFFER_ALIGNMENT :: 0x90bc;
GL_ATOMIC_COUNTER_BUFFER :: 0x92c0;
GL_ATOMIC_COUNTER_BUFFER_BINDING :: 0x92c1;
GL_ATOMIC_COUNTER_BUFFER_START :: 0x92c2;
GL_ATOMIC_COUNTER_BUFFER_SIZE :: 0x92c3;
GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE :: 0x92c4;
GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS :: 0x92c5;
GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES :: 0x92c6;
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER :: 0x92c7;
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER :: 0x92c8;
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER :: 0x92c9;
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER :: 0x92ca;
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER :: 0x92cb;
GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS :: 0x92cc;
GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS :: 0x92cd;
GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS :: 0x92ce;
GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS :: 0x92cf;
GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS :: 0x92d0;
GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS :: 0x92d1;
GL_MAX_VERTEX_ATOMIC_COUNTERS :: 0x92d2;
GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS :: 0x92d3;
GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS :: 0x92d4;
GL_MAX_GEOMETRY_ATOMIC_COUNTERS :: 0x92d5;
GL_MAX_FRAGMENT_ATOMIC_COUNTERS :: 0x92d6;
GL_MAX_COMBINED_ATOMIC_COUNTERS :: 0x92d7;
GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE :: 0x92d8;
GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS :: 0x92dc;
GL_ACTIVE_ATOMIC_COUNTER_BUFFERS :: 0x92d9;
GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX :: 0x92da;
GL_UNSIGNED_INT_ATOMIC_COUNTER :: 0x92db;
GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT :: 0x00000001;
GL_ELEMENT_ARRAY_BARRIER_BIT :: 0x00000002;
GL_UNIFORM_BARRIER_BIT :: 0x00000004;
GL_TEXTURE_FETCH_BARRIER_BIT :: 0x00000008;
GL_SHADER_IMAGE_ACCESS_BARRIER_BIT :: 0x00000020;
GL_COMMAND_BARRIER_BIT :: 0x00000040;
GL_PIXEL_BUFFER_BARRIER_BIT :: 0x00000080;
GL_TEXTURE_UPDATE_BARRIER_BIT :: 0x00000100;
GL_BUFFER_UPDATE_BARRIER_BIT :: 0x00000200;
GL_FRAMEBUFFER_BARRIER_BIT :: 0x00000400;
GL_TRANSFORM_FEEDBACK_BARRIER_BIT :: 0x00000800;
GL_ATOMIC_COUNTER_BARRIER_BIT :: 0x00001000;
GL_ALL_BARRIER_BITS :: 0xffffffff;
GL_MAX_IMAGE_UNITS :: 0x8f38;
GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS :: 0x8f39;
GL_IMAGE_BINDING_NAME :: 0x8f3a;
GL_IMAGE_BINDING_LEVEL :: 0x8f3b;
GL_IMAGE_BINDING_LAYERED :: 0x8f3c;
GL_IMAGE_BINDING_LAYER :: 0x8f3d;
GL_IMAGE_BINDING_ACCESS :: 0x8f3e;
GL_IMAGE_1D :: 0x904c;
GL_IMAGE_2D :: 0x904d;
GL_IMAGE_3D :: 0x904e;
GL_IMAGE_2D_RECT :: 0x904f;
GL_IMAGE_CUBE :: 0x9050;
GL_IMAGE_BUFFER :: 0x9051;
GL_IMAGE_1D_ARRAY :: 0x9052;
GL_IMAGE_2D_ARRAY :: 0x9053;
GL_IMAGE_CUBE_MAP_ARRAY :: 0x9054;
GL_IMAGE_2D_MULTISAMPLE :: 0x9055;
GL_IMAGE_2D_MULTISAMPLE_ARRAY :: 0x9056;
GL_INT_IMAGE_1D :: 0x9057;
GL_INT_IMAGE_2D :: 0x9058;
GL_INT_IMAGE_3D :: 0x9059;
GL_INT_IMAGE_2D_RECT :: 0x905a;
GL_INT_IMAGE_CUBE :: 0x905b;
GL_INT_IMAGE_BUFFER :: 0x905c;
GL_INT_IMAGE_1D_ARRAY :: 0x905d;
GL_INT_IMAGE_2D_ARRAY :: 0x905e;
GL_INT_IMAGE_CUBE_MAP_ARRAY :: 0x905f;
GL_INT_IMAGE_2D_MULTISAMPLE :: 0x9060;
GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY :: 0x9061;
GL_UNSIGNED_INT_IMAGE_1D :: 0x9062;
GL_UNSIGNED_INT_IMAGE_2D :: 0x9063;
GL_UNSIGNED_INT_IMAGE_3D :: 0x9064;
GL_UNSIGNED_INT_IMAGE_2D_RECT :: 0x9065;
GL_UNSIGNED_INT_IMAGE_CUBE :: 0x9066;
GL_UNSIGNED_INT_IMAGE_BUFFER :: 0x9067;
GL_UNSIGNED_INT_IMAGE_1D_ARRAY :: 0x9068;
GL_UNSIGNED_INT_IMAGE_2D_ARRAY :: 0x9069;
GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY :: 0x906a;
GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE :: 0x906b;
GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY :: 0x906c;
GL_MAX_IMAGE_SAMPLES :: 0x906d;
GL_IMAGE_BINDING_FORMAT :: 0x906e;
GL_IMAGE_FORMAT_COMPATIBILITY_TYPE :: 0x90c7;
GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE :: 0x90c8;
GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS :: 0x90c9;
GL_MAX_VERTEX_IMAGE_UNIFORMS :: 0x90ca;
GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS :: 0x90cb;
GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS :: 0x90cc;
GL_MAX_GEOMETRY_IMAGE_UNIFORMS :: 0x90cd;
GL_MAX_FRAGMENT_IMAGE_UNIFORMS :: 0x90ce;
GL_MAX_COMBINED_IMAGE_UNIFORMS :: 0x90cf;
GL_COMPRESSED_RGBA_BPTC_UNORM :: 0x8e8c;
GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM :: 0x8e8d;
GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT :: 0x8e8e;
GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT :: 0x8e8f;
GL_TEXTURE_IMMUTABLE_FORMAT :: 0x912f;
GL_NUM_SHADING_LANGUAGE_VERSIONS :: 0x82e9;
GL_VERTEX_ATTRIB_ARRAY_LONG :: 0x874e;
GL_COMPRESSED_RGB8_ETC2 :: 0x9274;
GL_COMPRESSED_SRGB8_ETC2 :: 0x9275;
GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 :: 0x9276;
GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 :: 0x9277;
GL_COMPRESSED_RGBA8_ETC2_EAC :: 0x9278;
GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC :: 0x9279;
GL_COMPRESSED_R11_EAC :: 0x9270;
GL_COMPRESSED_SIGNED_R11_EAC :: 0x9271;
GL_COMPRESSED_RG11_EAC :: 0x9272;
GL_COMPRESSED_SIGNED_RG11_EAC :: 0x9273;
GL_PRIMITIVE_RESTART_FIXED_INDEX :: 0x8d69;
GL_ANY_SAMPLES_PASSED_CONSERVATIVE :: 0x8d6a;
GL_MAX_ELEMENT_INDEX :: 0x8d6b;
GL_COMPUTE_SHADER :: 0x91b9;
GL_MAX_COMPUTE_UNIFORM_BLOCKS :: 0x91bb;
GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS :: 0x91bc;
GL_MAX_COMPUTE_IMAGE_UNIFORMS :: 0x91bd;
GL_MAX_COMPUTE_SHARED_MEMORY_SIZE :: 0x8262;
GL_MAX_COMPUTE_UNIFORM_COMPONENTS :: 0x8263;
GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS :: 0x8264;
GL_MAX_COMPUTE_ATOMIC_COUNTERS :: 0x8265;
GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS :: 0x8266;
GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS :: 0x90eb;
GL_MAX_COMPUTE_WORK_GROUP_COUNT :: 0x91be;
GL_MAX_COMPUTE_WORK_GROUP_SIZE :: 0x91bf;
GL_COMPUTE_WORK_GROUP_SIZE :: 0x8267;
GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER :: 0x90ec;
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER :: 0x90ed;
GL_DISPATCH_INDIRECT_BUFFER :: 0x90ee;
GL_DISPATCH_INDIRECT_BUFFER_BINDING :: 0x90ef;
GL_COMPUTE_SHADER_BIT :: 0x00000020;
GL_DEBUG_OUTPUT_SYNCHRONOUS :: 0x8242;
GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH :: 0x8243;
GL_DEBUG_CALLBACK_FUNCTION :: 0x8244;
GL_DEBUG_CALLBACK_USER_PARAM :: 0x8245;
GL_DEBUG_SOURCE_API :: 0x8246;
GL_DEBUG_SOURCE_WINDOW_SYSTEM :: 0x8247;
GL_DEBUG_SOURCE_SHADER_COMPILER :: 0x8248;
GL_DEBUG_SOURCE_THIRD_PARTY :: 0x8249;
GL_DEBUG_SOURCE_APPLICATION :: 0x824a;
GL_DEBUG_SOURCE_OTHER :: 0x824b;
GL_DEBUG_TYPE_ERROR :: 0x824c;
GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR :: 0x824d;
GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR :: 0x824e;
GL_DEBUG_TYPE_PORTABILITY :: 0x824f;
GL_DEBUG_TYPE_PERFORMANCE :: 0x8250;
GL_DEBUG_TYPE_OTHER :: 0x8251;
GL_MAX_DEBUG_MESSAGE_LENGTH :: 0x9143;
GL_MAX_DEBUG_LOGGED_MESSAGES :: 0x9144;
GL_DEBUG_LOGGED_MESSAGES :: 0x9145;
GL_DEBUG_SEVERITY_HIGH :: 0x9146;
GL_DEBUG_SEVERITY_MEDIUM :: 0x9147;
GL_DEBUG_SEVERITY_LOW :: 0x9148;
GL_DEBUG_TYPE_MARKER :: 0x8268;
GL_DEBUG_TYPE_PUSH_GROUP :: 0x8269;
GL_DEBUG_TYPE_POP_GROUP :: 0x826a;
GL_DEBUG_SEVERITY_NOTIFICATION :: 0x826b;
GL_MAX_DEBUG_GROUP_STACK_DEPTH :: 0x826c;
GL_DEBUG_GROUP_STACK_DEPTH :: 0x826d;
GL_BUFFER :: 0x82e0;
GL_SHADER :: 0x82e1;
GL_PROGRAM :: 0x82e2;
GL_VERTEX_ARRAY :: 0x8074;
GL_QUERY :: 0x82e3;
GL_PROGRAM_PIPELINE :: 0x82e4;
GL_SAMPLER :: 0x82e6;
GL_MAX_LABEL_LENGTH :: 0x82e8;
GL_DEBUG_OUTPUT :: 0x92e0;
GL_CONTEXT_FLAG_DEBUG_BIT :: 0x00000002;
GL_MAX_UNIFORM_LOCATIONS :: 0x826e;
GL_FRAMEBUFFER_DEFAULT_WIDTH :: 0x9310;
GL_FRAMEBUFFER_DEFAULT_HEIGHT :: 0x9311;
GL_FRAMEBUFFER_DEFAULT_LAYERS :: 0x9312;
GL_FRAMEBUFFER_DEFAULT_SAMPLES :: 0x9313;
GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS :: 0x9314;
GL_MAX_FRAMEBUFFER_WIDTH :: 0x9315;
GL_MAX_FRAMEBUFFER_HEIGHT :: 0x9316;
GL_MAX_FRAMEBUFFER_LAYERS :: 0x9317;
GL_MAX_FRAMEBUFFER_SAMPLES :: 0x9318;
GL_INTERNALFORMAT_SUPPORTED :: 0x826f;
GL_INTERNALFORMAT_PREFERRED :: 0x8270;
GL_INTERNALFORMAT_RED_SIZE :: 0x8271;
GL_INTERNALFORMAT_GREEN_SIZE :: 0x8272;
GL_INTERNALFORMAT_BLUE_SIZE :: 0x8273;
GL_INTERNALFORMAT_ALPHA_SIZE :: 0x8274;
GL_INTERNALFORMAT_DEPTH_SIZE :: 0x8275;
GL_INTERNALFORMAT_STENCIL_SIZE :: 0x8276;
GL_INTERNALFORMAT_SHARED_SIZE :: 0x8277;
GL_INTERNALFORMAT_RED_TYPE :: 0x8278;
GL_INTERNALFORMAT_GREEN_TYPE :: 0x8279;
GL_INTERNALFORMAT_BLUE_TYPE :: 0x827a;
GL_INTERNALFORMAT_ALPHA_TYPE :: 0x827b;
GL_INTERNALFORMAT_DEPTH_TYPE :: 0x827c;
GL_INTERNALFORMAT_STENCIL_TYPE :: 0x827d;
GL_MAX_WIDTH :: 0x827e;
GL_MAX_HEIGHT :: 0x827f;
GL_MAX_DEPTH :: 0x8280;
GL_MAX_LAYERS :: 0x8281;
GL_MAX_COMBINED_DIMENSIONS :: 0x8282;
GL_COLOR_COMPONENTS :: 0x8283;
GL_DEPTH_COMPONENTS :: 0x8284;
GL_STENCIL_COMPONENTS :: 0x8285;
GL_COLOR_RENDERABLE :: 0x8286;
GL_DEPTH_RENDERABLE :: 0x8287;
GL_STENCIL_RENDERABLE :: 0x8288;
GL_FRAMEBUFFER_RENDERABLE :: 0x8289;
GL_FRAMEBUFFER_RENDERABLE_LAYERED :: 0x828a;
GL_FRAMEBUFFER_BLEND :: 0x828b;
GL_READ_PIXELS :: 0x828c;
GL_READ_PIXELS_FORMAT :: 0x828d;
GL_READ_PIXELS_TYPE :: 0x828e;
GL_TEXTURE_IMAGE_FORMAT :: 0x828f;
GL_TEXTURE_IMAGE_TYPE :: 0x8290;
GL_GET_TEXTURE_IMAGE_FORMAT :: 0x8291;
GL_GET_TEXTURE_IMAGE_TYPE :: 0x8292;
GL_MIPMAP :: 0x8293;
GL_MANUAL_GENERATE_MIPMAP :: 0x8294;
GL_AUTO_GENERATE_MIPMAP :: 0x8295;
GL_COLOR_ENCODING :: 0x8296;
GL_SRGB_READ :: 0x8297;
GL_SRGB_WRITE :: 0x8298;
GL_FILTER :: 0x829a;
GL_VERTEX_TEXTURE :: 0x829b;
GL_TESS_CONTROL_TEXTURE :: 0x829c;
GL_TESS_EVALUATION_TEXTURE :: 0x829d;
GL_GEOMETRY_TEXTURE :: 0x829e;
GL_FRAGMENT_TEXTURE :: 0x829f;
GL_COMPUTE_TEXTURE :: 0x82a0;
GL_TEXTURE_SHADOW :: 0x82a1;
GL_TEXTURE_GATHER :: 0x82a2;
GL_TEXTURE_GATHER_SHADOW :: 0x82a3;
GL_SHADER_IMAGE_LOAD :: 0x82a4;
GL_SHADER_IMAGE_STORE :: 0x82a5;
GL_SHADER_IMAGE_ATOMIC :: 0x82a6;
GL_IMAGE_TEXEL_SIZE :: 0x82a7;
GL_IMAGE_COMPATIBILITY_CLASS :: 0x82a8;
GL_IMAGE_PIXEL_FORMAT :: 0x82a9;
GL_IMAGE_PIXEL_TYPE :: 0x82aa;
GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST :: 0x82ac;
GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST :: 0x82ad;
GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE :: 0x82ae;
GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE :: 0x82af;
GL_TEXTURE_COMPRESSED_BLOCK_WIDTH :: 0x82b1;
GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT :: 0x82b2;
GL_TEXTURE_COMPRESSED_BLOCK_SIZE :: 0x82b3;
GL_CLEAR_BUFFER :: 0x82b4;
GL_TEXTURE_VIEW :: 0x82b5;
GL_VIEW_COMPATIBILITY_CLASS :: 0x82b6;
GL_FULL_SUPPORT :: 0x82b7;
GL_CAVEAT_SUPPORT :: 0x82b8;
GL_IMAGE_CLASS_4_X_32 :: 0x82b9;
GL_IMAGE_CLASS_2_X_32 :: 0x82ba;
GL_IMAGE_CLASS_1_X_32 :: 0x82bb;
GL_IMAGE_CLASS_4_X_16 :: 0x82bc;
GL_IMAGE_CLASS_2_X_16 :: 0x82bd;
GL_IMAGE_CLASS_1_X_16 :: 0x82be;
GL_IMAGE_CLASS_4_X_8 :: 0x82bf;
GL_IMAGE_CLASS_2_X_8 :: 0x82c0;
GL_IMAGE_CLASS_1_X_8 :: 0x82c1;
GL_IMAGE_CLASS_11_11_10 :: 0x82c2;
GL_IMAGE_CLASS_10_10_10_2 :: 0x82c3;
GL_VIEW_CLASS_128_BITS :: 0x82c4;
GL_VIEW_CLASS_96_BITS :: 0x82c5;
GL_VIEW_CLASS_64_BITS :: 0x82c6;
GL_VIEW_CLASS_48_BITS :: 0x82c7;
GL_VIEW_CLASS_32_BITS :: 0x82c8;
GL_VIEW_CLASS_24_BITS :: 0x82c9;
GL_VIEW_CLASS_16_BITS :: 0x82ca;
GL_VIEW_CLASS_8_BITS :: 0x82cb;
GL_VIEW_CLASS_S3TC_DXT1_RGB :: 0x82cc;
GL_VIEW_CLASS_S3TC_DXT1_RGBA :: 0x82cd;
GL_VIEW_CLASS_S3TC_DXT3_RGBA :: 0x82ce;
GL_VIEW_CLASS_S3TC_DXT5_RGBA :: 0x82cf;
GL_VIEW_CLASS_RGTC1_RED :: 0x82d0;
GL_VIEW_CLASS_RGTC2_RG :: 0x82d1;
GL_VIEW_CLASS_BPTC_UNORM :: 0x82d2;
GL_VIEW_CLASS_BPTC_FLOAT :: 0x82d3;
GL_UNIFORM :: 0x92e1;
GL_UNIFORM_BLOCK :: 0x92e2;
GL_PROGRAM_INPUT :: 0x92e3;
GL_PROGRAM_OUTPUT :: 0x92e4;
GL_BUFFER_VARIABLE :: 0x92e5;
GL_SHADER_STORAGE_BLOCK :: 0x92e6;
GL_VERTEX_SUBROUTINE :: 0x92e8;
GL_TESS_CONTROL_SUBROUTINE :: 0x92e9;
GL_TESS_EVALUATION_SUBROUTINE :: 0x92ea;
GL_GEOMETRY_SUBROUTINE :: 0x92eb;
GL_FRAGMENT_SUBROUTINE :: 0x92ec;
GL_COMPUTE_SUBROUTINE :: 0x92ed;
GL_VERTEX_SUBROUTINE_UNIFORM :: 0x92ee;
GL_TESS_CONTROL_SUBROUTINE_UNIFORM :: 0x92ef;
GL_TESS_EVALUATION_SUBROUTINE_UNIFORM :: 0x92f0;
GL_GEOMETRY_SUBROUTINE_UNIFORM :: 0x92f1;
GL_FRAGMENT_SUBROUTINE_UNIFORM :: 0x92f2;
GL_COMPUTE_SUBROUTINE_UNIFORM :: 0x92f3;
GL_TRANSFORM_FEEDBACK_VARYING :: 0x92f4;
GL_ACTIVE_RESOURCES :: 0x92f5;
GL_MAX_NAME_LENGTH :: 0x92f6;
GL_MAX_NUM_ACTIVE_VARIABLES :: 0x92f7;
GL_MAX_NUM_COMPATIBLE_SUBROUTINES :: 0x92f8;
GL_NAME_LENGTH :: 0x92f9;
GL_TYPE :: 0x92fa;
GL_ARRAY_SIZE :: 0x92fb;
GL_OFFSET :: 0x92fc;
GL_BLOCK_INDEX :: 0x92fd;
GL_ARRAY_STRIDE :: 0x92fe;
GL_MATRIX_STRIDE :: 0x92ff;
GL_IS_ROW_MAJOR :: 0x9300;
GL_ATOMIC_COUNTER_BUFFER_INDEX :: 0x9301;
GL_BUFFER_BINDING :: 0x9302;
GL_BUFFER_DATA_SIZE :: 0x9303;
GL_NUM_ACTIVE_VARIABLES :: 0x9304;
GL_ACTIVE_VARIABLES :: 0x9305;
GL_REFERENCED_BY_VERTEX_SHADER :: 0x9306;
GL_REFERENCED_BY_TESS_CONTROL_SHADER :: 0x9307;
GL_REFERENCED_BY_TESS_EVALUATION_SHADER :: 0x9308;
GL_REFERENCED_BY_GEOMETRY_SHADER :: 0x9309;
GL_REFERENCED_BY_FRAGMENT_SHADER :: 0x930a;
GL_REFERENCED_BY_COMPUTE_SHADER :: 0x930b;
GL_TOP_LEVEL_ARRAY_SIZE :: 0x930c;
GL_TOP_LEVEL_ARRAY_STRIDE :: 0x930d;
GL_LOCATION :: 0x930e;
GL_LOCATION_INDEX :: 0x930f;
GL_IS_PER_PATCH :: 0x92e7;
GL_SHADER_STORAGE_BUFFER :: 0x90d2;
GL_SHADER_STORAGE_BUFFER_BINDING :: 0x90d3;
GL_SHADER_STORAGE_BUFFER_START :: 0x90d4;
GL_SHADER_STORAGE_BUFFER_SIZE :: 0x90d5;
GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS :: 0x90d6;
GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS :: 0x90d7;
GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS :: 0x90d8;
GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS :: 0x90d9;
GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS :: 0x90da;
GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS :: 0x90db;
GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS :: 0x90dc;
GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS :: 0x90dd;
GL_MAX_SHADER_STORAGE_BLOCK_SIZE :: 0x90de;
GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT :: 0x90df;
GL_SHADER_STORAGE_BARRIER_BIT :: 0x00002000;
GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES :: 0x8f39;
GL_DEPTH_STENCIL_TEXTURE_MODE :: 0x90ea;
GL_TEXTURE_BUFFER_OFFSET :: 0x919d;
GL_TEXTURE_BUFFER_SIZE :: 0x919e;
GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT :: 0x919f;
GL_TEXTURE_VIEW_MIN_LEVEL :: 0x82db;
GL_TEXTURE_VIEW_NUM_LEVELS :: 0x82dc;
GL_TEXTURE_VIEW_MIN_LAYER :: 0x82dd;
GL_TEXTURE_VIEW_NUM_LAYERS :: 0x82de;
GL_TEXTURE_IMMUTABLE_LEVELS :: 0x82df;
GL_VERTEX_ATTRIB_BINDING :: 0x82d4;
GL_VERTEX_ATTRIB_RELATIVE_OFFSET :: 0x82d5;
GL_VERTEX_BINDING_DIVISOR :: 0x82d6;
GL_VERTEX_BINDING_OFFSET :: 0x82d7;
GL_VERTEX_BINDING_STRIDE :: 0x82d8;
GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET :: 0x82d9;
GL_MAX_VERTEX_ATTRIB_BINDINGS :: 0x82da;
GL_VERTEX_BINDING_BUFFER :: 0x8f4f;
GL_DISPLAY_LIST :: 0x82e7;
GL_STACK_UNDERFLOW :: 0x0504;
GL_STACK_OVERFLOW :: 0x0503;
GL_MAX_VERTEX_ATTRIB_STRIDE :: 0x82e5;
GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED :: 0x8221;
GL_TEXTURE_BUFFER_BINDING :: 0x8c2a;
GL_MAP_PERSISTENT_BIT :: 0x0040;
GL_MAP_COHERENT_BIT :: 0x0080;
GL_DYNAMIC_STORAGE_BIT :: 0x0100;
GL_CLIENT_STORAGE_BIT :: 0x0200;
GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT :: 0x00004000;
GL_BUFFER_IMMUTABLE_STORAGE :: 0x821f;
GL_BUFFER_STORAGE_FLAGS :: 0x8220;
GL_CLEAR_TEXTURE :: 0x9365;
GL_LOCATION_COMPONENT :: 0x934a;
GL_TRANSFORM_FEEDBACK_BUFFER_INDEX :: 0x934b;
GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE :: 0x934c;
GL_QUERY_BUFFER :: 0x9192;
GL_QUERY_BUFFER_BARRIER_BIT :: 0x00008000;
GL_QUERY_BUFFER_BINDING :: 0x9193;
GL_QUERY_RESULT_NO_WAIT :: 0x9194;
GL_MIRROR_CLAMP_TO_EDGE :: 0x8743;
GL_CONTEXT_LOST :: 0x0507;
GL_NEGATIVE_ONE_TO_ONE :: 0x935e;
GL_ZERO_TO_ONE :: 0x935f;
GL_CLIP_ORIGIN :: 0x935c;
GL_CLIP_DEPTH_MODE :: 0x935d;
GL_QUERY_WAIT_INVERTED :: 0x8e17;
GL_QUERY_NO_WAIT_INVERTED :: 0x8e18;
GL_QUERY_BY_REGION_WAIT_INVERTED :: 0x8e19;
GL_QUERY_BY_REGION_NO_WAIT_INVERTED :: 0x8e1a;
GL_MAX_CULL_DISTANCES :: 0x82f9;
GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES :: 0x82fa;
GL_TEXTURE_TARGET :: 0x1006;
GL_QUERY_TARGET :: 0x82ea;
GL_GUILTY_CONTEXT_RESET :: 0x8253;
GL_INNOCENT_CONTEXT_RESET :: 0x8254;
GL_UNKNOWN_CONTEXT_RESET :: 0x8255;
GL_RESET_NOTIFICATION_STRATEGY :: 0x8256;
GL_LOSE_CONTEXT_ON_RESET :: 0x8252;
GL_NO_RESET_NOTIFICATION :: 0x8261;
GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT :: 0x00000004;
GL_COLOR_TABLE :: 0x80d0;
GL_POST_CONVOLUTION_COLOR_TABLE :: 0x80d1;
GL_POST_COLOR_MATRIX_COLOR_TABLE :: 0x80d2;
GL_PROXY_COLOR_TABLE :: 0x80d3;
GL_PROXY_POST_CONVOLUTION_COLOR_TABLE :: 0x80d4;
GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE :: 0x80d5;
GL_CONVOLUTION_1D :: 0x8010;
GL_CONVOLUTION_2D :: 0x8011;
GL_SEPARABLE_2D :: 0x8012;
GL_HISTOGRAM :: 0x8024;
GL_PROXY_HISTOGRAM :: 0x8025;
GL_MINMAX :: 0x802e;
GL_CONTEXT_RELEASE_BEHAVIOR :: 0x82fb;
GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH :: 0x82fc;
loaded_up_to: [2]int;
loaded_up_to_major := 0;
loaded_up_to_minor := 0;
Set_Proc_Address_Type :: typedef proc(p: *void, name: *char);
load_up_to :: proc(major: int, minor: int, set_proc_address: Set_Proc_Address_Type) {
// loaded_up_to = {0, 0}; // @todo
loaded_up_to[0] = major;
loaded_up_to[1] = minor;
loaded_up_to_major = major;
loaded_up_to_minor = minor;
switch major*10+minor {
case 46: load_4_6(set_proc_address); @fallthrough
case 45: load_4_5(set_proc_address); @fallthrough
case 44: load_4_4(set_proc_address); @fallthrough
case 43: load_4_3(set_proc_address); @fallthrough
case 42: load_4_2(set_proc_address); @fallthrough
case 41: load_4_1(set_proc_address); @fallthrough
case 40: load_4_0(set_proc_address); @fallthrough
case 33: load_3_3(set_proc_address); @fallthrough
case 32: load_3_2(set_proc_address); @fallthrough
case 31: load_3_1(set_proc_address); @fallthrough
case 30: load_3_0(set_proc_address); @fallthrough
case 21: load_2_1(set_proc_address); @fallthrough
case 20: load_2_0(set_proc_address); @fallthrough
case 15: load_1_5(set_proc_address); @fallthrough
case 14: load_1_4(set_proc_address); @fallthrough
case 13: load_1_3(set_proc_address); @fallthrough
case 12: load_1_2(set_proc_address); @fallthrough
case 11: load_1_1(set_proc_address); @fallthrough
case 10: load_1_0(set_proc_address);
}
}
/*
Type conversion overview:
typedef unsigned int GLenum; : u32
typedef unsigned char GLboolean;: bool
typedef unsigned int GLbitfield;: u32
typedef signed char GLbyte; : i8
typedef short GLshort; : i16
typedef int GLint; : i32
typedef unsigned char GLubyte; : u8
typedef unsigned short GLushort;: u16
typedef unsigned int GLuint; : u32
typedef int GLsizei; : i32
typedef float GLfloat; : f32
typedef double GLdouble; : f64
typedef char GLchar; : u8
typedef ptrdiff_t GLintptr; : int
typedef ptrdiff_t GLsizeiptr; : int
typedef int64_t GLint64; : i64
typedef uint64_t GLuint64; : u64
void* : *void
*/
sync_t :: typedef *void;
@weak debug_proc_t :: typedef proc(source: u32, type: u32, id: u32, severity: u32, length: i32, message: *char, userParam: *void);
// VERSION_1_0
glCullFace: proc(mode: u32);
glFrontFace: proc(mode: u32);
glHint: proc(target: u32, mode: u32);
glLineWidth: proc(width: f32);
glPointSize: proc(size: f32);
glPolygonMode: proc(face: u32, mode: u32);
glScissor: proc(x: i32, y: i32, width: i32, height: i32);
glTexParameterf: proc(target: u32, pname: u32, param: f32);
glTexParameterfv: proc(target: u32, pname: u32, params: *f32);
glTexParameteri: proc(target: u32, pname: u32, param: i32);
glTexParameteriv: proc(target: u32, pname: u32, params: *i32);
glTexImage1D: proc(target: u32, level: i32, internalformat: i32, width: i32, border: i32, format: u32, type: u32, pixels: *void);
glTexImage2D: proc(target: u32, level: i32, internalformat: i32, width: i32, height: i32, border: i32, format: u32, type: u32, pixels: *void);
glDrawBuffer: proc(buf: u32);
glClear: proc(mask: u32);
glClearColor: proc(red: f32, green: f32, blue: f32, alpha: f32);
glClearStencil: proc(s: i32);
glClearDepth: proc(depth: f64);
glStencilMask: proc(mask: u32);
glColorMask: proc(red: bool, green: bool, blue: bool, alpha: bool);
glDepthMask: proc(flag: bool);
glDisable: proc(cap: u32);
glEnable: proc(cap: u32);
glFinish: proc();
glFlush: proc();
glBlendFunc: proc(sfactor: u32, dfactor: u32);
glLogicOp: proc(opcode: u32);
glStencilFunc: proc(func: u32, ref: i32, mask: u32);
glStencilOp: proc(fail: u32, zfail: u32, zpass: u32);
glDepthFunc: proc(func: u32);
glPixelStoref: proc(pname: u32, param: f32);
glPixelStorei: proc(pname: u32, param: i32);
glReadBuffer: proc(src: u32);
glReadPixels: proc(x: i32, y: i32, width: i32, height: i32, format: u32, type: u32, pixels: *void);
glGetBooleanv: proc(pname: u32, data: *bool);
glGetDoublev: proc(pname: u32, data: *f64);
glGetError: proc(): u32;
glGetFloatv: proc(pname: u32, data: *f32);
glGetIntegerv: proc(pname: u32, data: *i32);
glGetString: proc(name: u32): *char;
glGetTexImage: proc(target: u32, level: i32, format: u32, type: u32, pixels: *void);
glGetTexParameterfv: proc(target: u32, pname: u32, params: *f32);
glGetTexParameteriv: proc(target: u32, pname: u32, params: *i32);
glGetTexLevelParameterfv: proc(target: u32, level: i32, pname: u32, params: *f32);
glGetTexLevelParameteriv: proc(target: u32, level: i32, pname: u32, params: *i32);
glIsEnabled: proc(cap: u32): bool;
glDepthRange: proc(near: f64, far: f64);
glViewport: proc(x: i32, y: i32, width: i32, height: i32);
load_1_0 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glCullFace, "glCullFace");
set_proc_address(&glFrontFace, "glFrontFace");
set_proc_address(&glHint, "glHint");
set_proc_address(&glLineWidth, "glLineWidth");
set_proc_address(&glPointSize, "glPointSize");
set_proc_address(&glPolygonMode, "glPolygonMode");
set_proc_address(&glScissor, "glScissor");
set_proc_address(&glTexParameterf, "glTexParameterf");
set_proc_address(&glTexParameterfv, "glTexParameterfv");
set_proc_address(&glTexParameteri, "glTexParameteri");
set_proc_address(&glTexParameteriv, "glTexParameteriv");
set_proc_address(&glTexImage1D, "glTexImage1D");
set_proc_address(&glTexImage2D, "glTexImage2D");
set_proc_address(&glDrawBuffer, "glDrawBuffer");
set_proc_address(&glClear, "glClear");
set_proc_address(&glClearColor, "glClearColor");
set_proc_address(&glClearStencil, "glClearStencil");
set_proc_address(&glClearDepth, "glClearDepth");
set_proc_address(&glStencilMask, "glStencilMask");
set_proc_address(&glColorMask, "glColorMask");
set_proc_address(&glDepthMask, "glDepthMask");
set_proc_address(&glDisable, "glDisable");
set_proc_address(&glEnable, "glEnable");
set_proc_address(&glFinish, "glFinish");
set_proc_address(&glFlush, "glFlush");
set_proc_address(&glBlendFunc, "glBlendFunc");
set_proc_address(&glLogicOp, "glLogicOp");
set_proc_address(&glStencilFunc, "glStencilFunc");
set_proc_address(&glStencilOp, "glStencilOp");
set_proc_address(&glDepthFunc, "glDepthFunc");
set_proc_address(&glPixelStoref, "glPixelStoref");
set_proc_address(&glPixelStorei, "glPixelStorei");
set_proc_address(&glReadBuffer, "glReadBuffer");
set_proc_address(&glReadPixels, "glReadPixels");
set_proc_address(&glGetBooleanv, "glGetBooleanv");
set_proc_address(&glGetDoublev, "glGetDoublev");
set_proc_address(&glGetError, "glGetError");
set_proc_address(&glGetFloatv, "glGetFloatv");
set_proc_address(&glGetIntegerv, "glGetIntegerv");
set_proc_address(&glGetString, "glGetString");
set_proc_address(&glGetTexImage, "glGetTexImage");
set_proc_address(&glGetTexParameterfv, "glGetTexParameterfv");
set_proc_address(&glGetTexParameteriv, "glGetTexParameteriv");
set_proc_address(&glGetTexLevelParameterfv, "glGetTexLevelParameterfv");
set_proc_address(&glGetTexLevelParameteriv, "glGetTexLevelParameteriv");
set_proc_address(&glIsEnabled, "glIsEnabled");
set_proc_address(&glDepthRange, "glDepthRange");
set_proc_address(&glViewport, "glViewport");
}
// VERSION_1_1
glDrawArrays: proc(mode: u32, first: i32, count: i32);
glDrawElements: proc(mode: u32, count: i32, type: u32, indices: *void);
glPolygonOffset: proc(factor: f32, units: f32);
glCopyTexImage1D: proc(target: u32, level: i32, internalformat: u32, x: i32, y: i32, width: i32, border: i32);
glCopyTexImage2D: proc(target: u32, level: i32, internalformat: u32, x: i32, y: i32, width: i32, height: i32, border: i32);
glCopyTexSubImage1D: proc(target: u32, level: i32, xoffset: i32, x: i32, y: i32, width: i32);
glCopyTexSubImage2D: proc(target: u32, level: i32, xoffset: i32, yoffset: i32, x: i32, y: i32, width: i32, height: i32);
glTexSubImage1D: proc(target: u32, level: i32, xoffset: i32, width: i32, format: u32, type: u32, pixels: *void);
glTexSubImage2D: proc(target: u32, level: i32, xoffset: i32, yoffset: i32, width: i32, height: i32, format: u32, type: u32, pixels: *void);
glBindTexture: proc(target: u32, texture: u32);
glDeleteTextures: proc(n: i32, textures: *u32);
glGenTextures: proc(n: i32, textures: *u32);
glIsTexture: proc(texture: u32): bool;
load_1_1 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glDrawArrays, "glDrawArrays");
set_proc_address(&glDrawElements, "glDrawElements");
set_proc_address(&glPolygonOffset, "glPolygonOffset");
set_proc_address(&glCopyTexImage1D, "glCopyTexImage1D");
set_proc_address(&glCopyTexImage2D, "glCopyTexImage2D");
set_proc_address(&glCopyTexSubImage1D, "glCopyTexSubImage1D");
set_proc_address(&glCopyTexSubImage2D, "glCopyTexSubImage2D");
set_proc_address(&glTexSubImage1D, "glTexSubImage1D");
set_proc_address(&glTexSubImage2D, "glTexSubImage2D");
set_proc_address(&glBindTexture, "glBindTexture");
set_proc_address(&glDeleteTextures, "glDeleteTextures");
set_proc_address(&glGenTextures, "glGenTextures");
set_proc_address(&glIsTexture, "glIsTexture");
}
// VERSION_1_2
glDrawRangeElements: proc(mode: u32, start: u32, end: u32, count: i32, type: u32, indices: *void);
glTexImage3D: proc(target: u32, level: i32, internalformat: i32, width: i32, height: i32, depth: i32, border: i32, format: u32, type: u32, data: *void);
glTexSubImage3D: proc(target: u32, level: i32, xoffset: i32, yoffset: i32, zoffset: i32, width: i32, height: i32, depth: i32, format: u32, type: u32, pixels: *void);
glCopyTexSubImage3D: proc(target: u32, level: i32, xoffset: i32, yoffset: i32, zoffset: i32, x: i32, y: i32, width: i32, height: i32);
load_1_2 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glDrawRangeElements, "glDrawRangeElements");
set_proc_address(&glTexImage3D, "glTexImage3D");
set_proc_address(&glTexSubImage3D, "glTexSubImage3D");
set_proc_address(&glCopyTexSubImage3D, "glCopyTexSubImage3D");
}
// VERSION_1_3
glActiveTexture: proc(texture: u32);
glSampleCoverage: proc(value: f32, invert: bool);
glCompressedTexImage3D: proc(target: u32, level: i32, internalformat: u32, width: i32, height: i32, depth: i32, border: i32, imageSize: i32, data: *void);
glCompressedTexImage2D: proc(target: u32, level: i32, internalformat: u32, width: i32, height: i32, border: i32, imageSize: i32, data: *void);
glCompressedTexImage1D: proc(target: u32, level: i32, internalformat: u32, width: i32, border: i32, imageSize: i32, data: *void);
glCompressedTexSubImage3D: proc(target: u32, level: i32, xoffset: i32, yoffset: i32, zoffset: i32, width: i32, height: i32, depth: i32, format: u32, imageSize: i32, data: *void);
glCompressedTexSubImage2D: proc(target: u32, level: i32, xoffset: i32, yoffset: i32, width: i32, height: i32, format: u32, imageSize: i32, data: *void);
glCompressedTexSubImage1D: proc(target: u32, level: i32, xoffset: i32, width: i32, format: u32, imageSize: i32, data: *void);
glGetCompressedTexImage: proc(target: u32, level: i32, img: *void);
load_1_3 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glActiveTexture, "glActiveTexture");
set_proc_address(&glSampleCoverage, "glSampleCoverage");
set_proc_address(&glCompressedTexImage3D, "glCompressedTexImage3D");
set_proc_address(&glCompressedTexImage2D, "glCompressedTexImage2D");
set_proc_address(&glCompressedTexImage1D, "glCompressedTexImage1D");
set_proc_address(&glCompressedTexSubImage3D, "glCompressedTexSubImage3D");
set_proc_address(&glCompressedTexSubImage2D, "glCompressedTexSubImage2D");
set_proc_address(&glCompressedTexSubImage1D, "glCompressedTexSubImage1D");
set_proc_address(&glGetCompressedTexImage, "glGetCompressedTexImage");
}
// VERSION_1_4
glBlendFuncSeparate: proc(sfactorRGB: u32, dfactorRGB: u32, sfactorAlpha: u32, dfactorAlpha: u32);
glMultiDrawArrays: proc(mode: u32, first: *i32, count: *i32, drawcount: i32);
glMultiDrawElements: proc(mode: u32, count: *i32, type: u32, indices: **void, drawcount: i32);
glPointParameterf: proc(pname: u32, param: f32);
glPointParameterfv: proc(pname: u32, params: *f32);
glPointParameteri: proc(pname: u32, param: i32);
glPointParameteriv: proc(pname: u32, params: *i32);
glBlendColor: proc(red: f32, green: f32, blue: f32, alpha: f32);
glBlendEquation: proc(mode: u32);
load_1_4 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glBlendFuncSeparate, "glBlendFuncSeparate");
set_proc_address(&glMultiDrawArrays, "glMultiDrawArrays");
set_proc_address(&glMultiDrawElements, "glMultiDrawElements");
set_proc_address(&glPointParameterf, "glPointParameterf");
set_proc_address(&glPointParameterfv, "glPointParameterfv");
set_proc_address(&glPointParameteri, "glPointParameteri");
set_proc_address(&glPointParameteriv, "glPointParameteriv");
set_proc_address(&glBlendColor, "glBlendColor");
set_proc_address(&glBlendEquation, "glBlendEquation");
}
// VERSION_1_5
glGenQueries: proc(n: i32, ids: *u32);
glDeleteQueries: proc(n: i32, ids: *u32);
glIsQuery: proc(id: u32): bool;
glBeginQuery: proc(target: u32, id: u32);
glEndQuery: proc(target: u32);
glGetQueryiv: proc(target: u32, pname: u32, params: *i32);
glGetQueryObjectiv: proc(id: u32, pname: u32, params: *i32);
glGetQueryObjectuiv: proc(id: u32, pname: u32, params: *u32);
glBindBuffer: proc(target: u32, buffer: u32);
glDeleteBuffers: proc(n: i32, buffers: *u32);
glGenBuffers: proc(n: i32, buffers: *u32);
glIsBuffer: proc(buffer: u32): bool;
glBufferData: proc(target: u32, size: int, data: *void, usage: u32);
glBufferSubData: proc(target: u32, offset: int, size: int, data: *void);
glGetBufferSubData: proc(target: u32, offset: int, size: int, data: *void);
glMapBuffer: proc(target: u32, access: u32): *void;
glUnmapBuffer: proc(target: u32): bool;
glGetBufferParameteriv: proc(target: u32, pname: u32, params: *i32);
glGetBufferPointerv: proc(target: u32, pname: u32, params: **void);
load_1_5 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glGenQueries, "glGenQueries");
set_proc_address(&glDeleteQueries, "glDeleteQueries");
set_proc_address(&glIsQuery, "glIsQuery");
set_proc_address(&glBeginQuery, "glBeginQuery");
set_proc_address(&glEndQuery, "glEndQuery");
set_proc_address(&glGetQueryiv, "glGetQueryiv");
set_proc_address(&glGetQueryObjectiv, "glGetQueryObjectiv");
set_proc_address(&glGetQueryObjectuiv, "glGetQueryObjectuiv");
set_proc_address(&glBindBuffer, "glBindBuffer");
set_proc_address(&glDeleteBuffers, "glDeleteBuffers");
set_proc_address(&glGenBuffers, "glGenBuffers");
set_proc_address(&glIsBuffer, "glIsBuffer");
set_proc_address(&glBufferData, "glBufferData");
set_proc_address(&glBufferSubData, "glBufferSubData");
set_proc_address(&glGetBufferSubData, "glGetBufferSubData");
set_proc_address(&glMapBuffer, "glMapBuffer");
set_proc_address(&glUnmapBuffer, "glUnmapBuffer");
set_proc_address(&glGetBufferParameteriv, "glGetBufferParameteriv");
set_proc_address(&glGetBufferPointerv, "glGetBufferPointerv");
}
// VERSION_2_0
glBlendEquationSeparate: proc(modeRGB: u32, modeAlpha: u32);
glDrawBuffers: proc(n: i32, bufs: *u32);
glStencilOpSeparate: proc(face: u32, sfail: u32, dpfail: u32, dppass: u32);
glStencilFuncSeparate: proc(face: u32, func: u32, ref: i32, mask: u32);
glStencilMaskSeparate: proc(face: u32, mask: u32);
glAttachShader: proc(program: u32, shader: u32);
glBindAttribLocation: proc(program: u32, index: u32, name: *char);
glCompileShader: proc(shader: u32);
glCreateProgram: proc(): u32;
glCreateShader: proc(type: u32): u32;
glDeleteProgram: proc(program: u32);
glDeleteShader: proc(shader: u32);
glDetachShader: proc(program: u32, shader: u32);
glDisableVertexAttribArray: proc(index: u32);
glEnableVertexAttribArray: proc(index: u32);
glGetActiveAttrib: proc(program: u32, index: u32, bufSize: i32, length: *i32, size: *i32, type: *u32, name: *u8);
glGetActiveUniform: proc(program: u32, index: u32, bufSize: i32, length: *i32, size: *i32, type: *u32, name: *u8);
glGetAttachedShaders: proc(program: u32, maxCount: i32, count: *i32, shaders: *u32);
glGetAttribLocation: proc(program: u32, name: *char): i32;
glGetProgramiv: proc(program: u32, pname: u32, params: *i32);
glGetProgramInfoLog: proc(program: u32, bufSize: i32, length: *i32, infoLog: *u8);
glGetShaderiv: proc(shader: u32, pname: u32, params: *i32);
glGetShaderInfoLog: proc(shader: u32, bufSize: i32, length: *i32, infoLog: *u8);
glGetShaderSource: proc(shader: u32, bufSize: i32, length: *i32, source: *u8);
glGetUniformLocation: proc(program: u32, name: *char): i32;
glGetUniformfv: proc(program: u32, location: i32, params: *f32);
glGetUniformiv: proc(program: u32, location: i32, params: *i32);
glGetVertexAttribdv: proc(index: u32, pname: u32, params: *f64);
glGetVertexAttribfv: proc(index: u32, pname: u32, params: *f32);
glGetVertexAttribiv: proc(index: u32, pname: u32, params: *i32);
glGetVertexAttribPointerv: proc(index: u32, pname: u32, pointer: *uintptr);
glIsProgram: proc(program: u32): bool;
glIsShader: proc(shader: u32): bool;
glLinkProgram: proc(program: u32);
glShaderSource: proc(shader: u32, count: i32, string: **char, length: *i32);
glUseProgram: proc(program: u32);
glUniform1f: proc(location: i32, v0: f32);
glUniform2f: proc(location: i32, v0: f32, v1: f32);
glUniform3f: proc(location: i32, v0: f32, v1: f32, v2: f32);
glUniform4f: proc(location: i32, v0: f32, v1: f32, v2: f32, v3: f32);
glUniform1i: proc(location: i32, v0: i32);
glUniform2i: proc(location: i32, v0: i32, v1: i32);
glUniform3i: proc(location: i32, v0: i32, v1: i32, v2: i32);
glUniform4i: proc(location: i32, v0: i32, v1: i32, v2: i32, v3: i32);
glUniform1fv: proc(location: i32, count: i32, value: *f32);
glUniform2fv: proc(location: i32, count: i32, value: *f32);
glUniform3fv: proc(location: i32, count: i32, value: *f32);
glUniform4fv: proc(location: i32, count: i32, value: *f32);
glUniform1iv: proc(location: i32, count: i32, value: *i32);
glUniform2iv: proc(location: i32, count: i32, value: *i32);
glUniform3iv: proc(location: i32, count: i32, value: *i32);
glUniform4iv: proc(location: i32, count: i32, value: *i32);
glUniformMatrix2fv: proc(location: i32, count: i32, transpose: bool, value: *f32);
glUniformMatrix3fv: proc(location: i32, count: i32, transpose: bool, value: *f32);
glUniformMatrix4fv: proc(location: i32, count: i32, transpose: bool, value: *f32);
glValidateProgram: proc(program: u32);
glVertexAttrib1d: proc(index: u32, x: f64);
glVertexAttrib1dv: proc(index: u32, v: *f64);
glVertexAttrib1f: proc(index: u32, x: f32);
glVertexAttrib1fv: proc(index: u32, v: *f32);
glVertexAttrib1s: proc(index: u32, x: i16);
glVertexAttrib1sv: proc(index: u32, v: *i16);
glVertexAttrib2d: proc(index: u32, x: f64, y: f64);
glVertexAttrib2dv: proc(index: u32, v: *[2]f64);
glVertexAttrib2f: proc(index: u32, x: f32, y: f32);
glVertexAttrib2fv: proc(index: u32, v: *[2]f32);
glVertexAttrib2s: proc(index: u32, x: i16, y: i16);
glVertexAttrib2sv: proc(index: u32, v: *[2]i16);
glVertexAttrib3d: proc(index: u32, x: f64, y: f64, z: f64);
glVertexAttrib3dv: proc(index: u32, v: *[3]f64);
glVertexAttrib3f: proc(index: u32, x: f32, y: f32, z: f32);
glVertexAttrib3fv: proc(index: u32, v: *[3]f32);
glVertexAttrib3s: proc(index: u32, x: i16, y: i16, z: i16);
glVertexAttrib3sv: proc(index: u32, v: *[3]i16);
glVertexAttrib4Nbv: proc(index: u32, v: *[4]i8);
glVertexAttrib4Niv: proc(index: u32, v: *[4]i32);
glVertexAttrib4Nsv: proc(index: u32, v: *[4]i16);
glVertexAttrib4Nub: proc(index: u32, x: u8, y: u8, z: u8, w: u8);
glVertexAttrib4Nubv: proc(index: u32, v: *[4]u8);
glVertexAttrib4Nuiv: proc(index: u32, v: *[4]u32);
glVertexAttrib4Nusv: proc(index: u32, v: *[4]u16);
glVertexAttrib4bv: proc(index: u32, v: *[4]i8);
glVertexAttrib4d: proc(index: u32, x: f64, y: f64, z: f64, w: f64);
glVertexAttrib4dv: proc(index: u32, v: *[4]f64);
glVertexAttrib4f: proc(index: u32, x: f32, y: f32, z: f32, w: f32);
glVertexAttrib4fv: proc(index: u32, v: *[4]f32);
glVertexAttrib4iv: proc(index: u32, v: *[4]i32);
glVertexAttrib4s: proc(index: u32, x: i16, y: i16, z: i16, w: i16);
glVertexAttrib4sv: proc(index: u32, v: *[4]i16);
glVertexAttrib4ubv: proc(index: u32, v: *[4]u8);
glVertexAttrib4uiv: proc(index: u32, v: *[4]u32);
glVertexAttrib4usv: proc(index: u32, v: *[4]u16);
glVertexAttribPointer: proc(index: u32, size: i32, type: u32, normalized: bool, stride: i32, pointer: uintptr);
load_2_0 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glBlendEquationSeparate, "glBlendEquationSeparate");
set_proc_address(&glDrawBuffers, "glDrawBuffers");
set_proc_address(&glStencilOpSeparate, "glStencilOpSeparate");
set_proc_address(&glStencilFuncSeparate, "glStencilFuncSeparate");
set_proc_address(&glStencilMaskSeparate, "glStencilMaskSeparate");
set_proc_address(&glAttachShader, "glAttachShader");
set_proc_address(&glBindAttribLocation, "glBindAttribLocation");
set_proc_address(&glCompileShader, "glCompileShader");
set_proc_address(&glCreateProgram, "glCreateProgram");
set_proc_address(&glCreateShader, "glCreateShader");
set_proc_address(&glDeleteProgram, "glDeleteProgram");
set_proc_address(&glDeleteShader, "glDeleteShader");
set_proc_address(&glDetachShader, "glDetachShader");
set_proc_address(&glDisableVertexAttribArray, "glDisableVertexAttribArray");
set_proc_address(&glEnableVertexAttribArray, "glEnableVertexAttribArray");
set_proc_address(&glGetActiveAttrib, "glGetActiveAttrib");
set_proc_address(&glGetActiveUniform, "glGetActiveUniform");
set_proc_address(&glGetAttachedShaders, "glGetAttachedShaders");
set_proc_address(&glGetAttribLocation, "glGetAttribLocation");
set_proc_address(&glGetProgramiv, "glGetProgramiv");
set_proc_address(&glGetProgramInfoLog, "glGetProgramInfoLog");
set_proc_address(&glGetShaderiv, "glGetShaderiv");
set_proc_address(&glGetShaderInfoLog, "glGetShaderInfoLog");
set_proc_address(&glGetShaderSource, "glGetShaderSource");
set_proc_address(&glGetUniformLocation, "glGetUniformLocation");
set_proc_address(&glGetUniformfv, "glGetUniformfv");
set_proc_address(&glGetUniformiv, "glGetUniformiv");
set_proc_address(&glGetVertexAttribdv, "glGetVertexAttribdv");
set_proc_address(&glGetVertexAttribfv, "glGetVertexAttribfv");
set_proc_address(&glGetVertexAttribiv, "glGetVertexAttribiv");
set_proc_address(&glGetVertexAttribPointerv, "glGetVertexAttribPointerv");
set_proc_address(&glIsProgram, "glIsProgram");
set_proc_address(&glIsShader, "glIsShader");
set_proc_address(&glLinkProgram, "glLinkProgram");
set_proc_address(&glShaderSource, "glShaderSource");
set_proc_address(&glUseProgram, "glUseProgram");
set_proc_address(&glUniform1f, "glUniform1f");
set_proc_address(&glUniform2f, "glUniform2f");
set_proc_address(&glUniform3f, "glUniform3f");
set_proc_address(&glUniform4f, "glUniform4f");
set_proc_address(&glUniform1i, "glUniform1i");
set_proc_address(&glUniform2i, "glUniform2i");
set_proc_address(&glUniform3i, "glUniform3i");
set_proc_address(&glUniform4i, "glUniform4i");
set_proc_address(&glUniform1fv, "glUniform1fv");
set_proc_address(&glUniform2fv, "glUniform2fv");
set_proc_address(&glUniform3fv, "glUniform3fv");
set_proc_address(&glUniform4fv, "glUniform4fv");
set_proc_address(&glUniform1iv, "glUniform1iv");
set_proc_address(&glUniform2iv, "glUniform2iv");
set_proc_address(&glUniform3iv, "glUniform3iv");
set_proc_address(&glUniform4iv, "glUniform4iv");
set_proc_address(&glUniformMatrix2fv, "glUniformMatrix2fv");
set_proc_address(&glUniformMatrix3fv, "glUniformMatrix3fv");
set_proc_address(&glUniformMatrix4fv, "glUniformMatrix4fv");
set_proc_address(&glValidateProgram, "glValidateProgram");
set_proc_address(&glVertexAttrib1d, "glVertexAttrib1d");
set_proc_address(&glVertexAttrib1dv, "glVertexAttrib1dv");
set_proc_address(&glVertexAttrib1f, "glVertexAttrib1f");
set_proc_address(&glVertexAttrib1fv, "glVertexAttrib1fv");
set_proc_address(&glVertexAttrib1s, "glVertexAttrib1s");
set_proc_address(&glVertexAttrib1sv, "glVertexAttrib1sv");
set_proc_address(&glVertexAttrib2d, "glVertexAttrib2d");
set_proc_address(&glVertexAttrib2dv, "glVertexAttrib2dv");
set_proc_address(&glVertexAttrib2f, "glVertexAttrib2f");
set_proc_address(&glVertexAttrib2fv, "glVertexAttrib2fv");
set_proc_address(&glVertexAttrib2s, "glVertexAttrib2s");
set_proc_address(&glVertexAttrib2sv, "glVertexAttrib2sv");
set_proc_address(&glVertexAttrib3d, "glVertexAttrib3d");
set_proc_address(&glVertexAttrib3dv, "glVertexAttrib3dv");
set_proc_address(&glVertexAttrib3f, "glVertexAttrib3f");
set_proc_address(&glVertexAttrib3fv, "glVertexAttrib3fv");
set_proc_address(&glVertexAttrib3s, "glVertexAttrib3s");
set_proc_address(&glVertexAttrib3sv, "glVertexAttrib3sv");
set_proc_address(&glVertexAttrib4Nbv, "glVertexAttrib4Nbv");
set_proc_address(&glVertexAttrib4Niv, "glVertexAttrib4Niv");
set_proc_address(&glVertexAttrib4Nsv, "glVertexAttrib4Nsv");
set_proc_address(&glVertexAttrib4Nub, "glVertexAttrib4Nub");
set_proc_address(&glVertexAttrib4Nubv, "glVertexAttrib4Nubv");
set_proc_address(&glVertexAttrib4Nuiv, "glVertexAttrib4Nuiv");
set_proc_address(&glVertexAttrib4Nusv, "glVertexAttrib4Nusv");
set_proc_address(&glVertexAttrib4bv, "glVertexAttrib4bv");
set_proc_address(&glVertexAttrib4d, "glVertexAttrib4d");
set_proc_address(&glVertexAttrib4dv, "glVertexAttrib4dv");
set_proc_address(&glVertexAttrib4f, "glVertexAttrib4f");
set_proc_address(&glVertexAttrib4fv, "glVertexAttrib4fv");
set_proc_address(&glVertexAttrib4iv, "glVertexAttrib4iv");
set_proc_address(&glVertexAttrib4s, "glVertexAttrib4s");
set_proc_address(&glVertexAttrib4sv, "glVertexAttrib4sv");
set_proc_address(&glVertexAttrib4ubv, "glVertexAttrib4ubv");
set_proc_address(&glVertexAttrib4uiv, "glVertexAttrib4uiv");
set_proc_address(&glVertexAttrib4usv, "glVertexAttrib4usv");
set_proc_address(&glVertexAttribPointer, "glVertexAttribPointer");
}
// VERSION_2_1
glUniformMatrix2x3fv: proc(location: i32, count: i32, transpose: bool, value: *f32);
glUniformMatrix3x2fv: proc(location: i32, count: i32, transpose: bool, value: *f32);
glUniformMatrix2x4fv: proc(location: i32, count: i32, transpose: bool, value: *f32);
glUniformMatrix4x2fv: proc(location: i32, count: i32, transpose: bool, value: *f32);
glUniformMatrix3x4fv: proc(location: i32, count: i32, transpose: bool, value: *f32);
glUniformMatrix4x3fv: proc(location: i32, count: i32, transpose: bool, value: *f32);
load_2_1 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glUniformMatrix2x3fv, "glUniformMatrix2x3fv");
set_proc_address(&glUniformMatrix3x2fv, "glUniformMatrix3x2fv");
set_proc_address(&glUniformMatrix2x4fv, "glUniformMatrix2x4fv");
set_proc_address(&glUniformMatrix4x2fv, "glUniformMatrix4x2fv");
set_proc_address(&glUniformMatrix3x4fv, "glUniformMatrix3x4fv");
set_proc_address(&glUniformMatrix4x3fv, "glUniformMatrix4x3fv");
}
// VERSION_3_0
glColorMaski: proc(index: u32, r: bool, g: bool, b: bool, a: bool);
glGetBooleani_v: proc(target: u32, index: u32, data: *bool);
glGetIntegeri_v: proc(target: u32, index: u32, data: *i32);
glEnablei: proc(target: u32, index: u32);
glDisablei: proc(target: u32, index: u32);
glIsEnabledi: proc(target: u32, index: u32): bool;
glBeginTransformFeedback: proc(primitiveMode: u32);
glEndTransformFeedback: proc();
glBindBufferRange: proc(target: u32, index: u32, buffer: u32, offset: int, size: int);
glBindBufferBase: proc(target: u32, index: u32, buffer: u32);
glTransformFeedbackVaryings: proc(program: u32, count: i32, varyings: **char, bufferMode: u32);
glGetTransformFeedbackVarying: proc(program: u32, index: u32, bufSize: i32, length: *i32, size: *i32, type: *u32, name: *u8);
glClampColor: proc(target: u32, clamp: u32);
glBeginConditionalRender: proc(id: u32, mode: u32);
glEndConditionalRender: proc();
glVertexAttribIPointer: proc(index: u32, size: i32, type: u32, stride: i32, pointer: uintptr);
glGetVertexAttribIiv: proc(index: u32, pname: u32, params: *i32);
glGetVertexAttribIuiv: proc(index: u32, pname: u32, params: *u32);
glVertexAttribI1i: proc(index: u32, x: i32);
glVertexAttribI2i: proc(index: u32, x: i32, y: i32);
glVertexAttribI3i: proc(index: u32, x: i32, y: i32, z: i32);
glVertexAttribI4i: proc(index: u32, x: i32, y: i32, z: i32, w: i32);
glVertexAttribI1ui: proc(index: u32, x: u32);
glVertexAttribI2ui: proc(index: u32, x: u32, y: u32);
glVertexAttribI3ui: proc(index: u32, x: u32, y: u32, z: u32);
glVertexAttribI4ui: proc(index: u32, x: u32, y: u32, z: u32, w: u32);
glVertexAttribI1iv: proc(index: u32, v: *i32);
glVertexAttribI2iv: proc(index: u32, v: *i32);
glVertexAttribI3iv: proc(index: u32, v: *i32);
glVertexAttribI4iv: proc(index: u32, v: *i32);
glVertexAttribI1uiv: proc(index: u32, v: *u32);
glVertexAttribI2uiv: proc(index: u32, v: *u32);
glVertexAttribI3uiv: proc(index: u32, v: *u32);
glVertexAttribI4uiv: proc(index: u32, v: *u32);
glVertexAttribI4bv: proc(index: u32, v: *i8);
glVertexAttribI4sv: proc(index: u32, v: *i16);
glVertexAttribI4ubv: proc(index: u32, v: *u8);
glVertexAttribI4usv: proc(index: u32, v: *u16);
glGetUniformuiv: proc(program: u32, location: i32, params: *u32);
glBindFragDataLocation: proc(program: u32, color: u32, name: *char);
glGetFragDataLocation: proc(program: u32, name: *char): i32;
glUniform1ui: proc(location: i32, v0: u32);
glUniform2ui: proc(location: i32, v0: u32, v1: u32);
glUniform3ui: proc(location: i32, v0: u32, v1: u32, v2: u32);
glUniform4ui: proc(location: i32, v0: u32, v1: u32, v2: u32, v3: u32);
glUniform1uiv: proc(location: i32, count: i32, value: *u32);
glUniform2uiv: proc(location: i32, count: i32, value: *u32);
glUniform3uiv: proc(location: i32, count: i32, value: *u32);
glUniform4uiv: proc(location: i32, count: i32, value: *u32);
glTexParameterIiv: proc(target: u32, pname: u32, params: *i32);
glTexParameterIuiv: proc(target: u32, pname: u32, params: *u32);
glGetTexParameterIiv: proc(target: u32, pname: u32, params: *i32);
glGetTexParameterIuiv: proc(target: u32, pname: u32, params: *u32);
glClearBufferiv: proc(buffer: u32, drawbuffer: i32, value: *i32);
glClearBufferuiv: proc(buffer: u32, drawbuffer: i32, value: *u32);
glClearBufferfv: proc(buffer: u32, drawbuffer: i32, value: *f32);
glClearBufferfi: proc(buffer: u32, drawbuffer: i32, depth: f32, stencil: i32): *void;
glGetStringi: proc(name: u32, index: u32): *char;
glIsRenderbuffer: proc(renderbuffer: u32): bool;
glBindRenderbuffer: proc(target: u32, renderbuffer: u32);
glDeleteRenderbuffers: proc(n: i32, renderbuffers: *u32);
glGenRenderbuffers: proc(n: i32, renderbuffers: *u32);
glRenderbufferStorage: proc(target: u32, internalformat: u32, width: i32, height: i32);
glGetRenderbufferParameteriv: proc(target: u32, pname: u32, params: *i32);
glIsFramebuffer: proc(framebuffer: u32): bool;
glBindFramebuffer: proc(target: u32, framebuffer: u32);
glDeleteFramebuffers: proc(n: i32, framebuffers: *u32);
glGenFramebuffers: proc(n: i32, framebuffers: *u32);
glCheckFramebufferStatus: proc(target: u32): u32;
glFramebufferTexture1D: proc(target: u32, attachment: u32, textarget: u32, texture: u32, level: i32);
glFramebufferTexture2D: proc(target: u32, attachment: u32, textarget: u32, texture: u32, level: i32);
glFramebufferTexture3D: proc(target: u32, attachment: u32, textarget: u32, texture: u32, level: i32, zoffset: i32);
glFramebufferRenderbuffer: proc(target: u32, attachment: u32, renderbuffertarget: u32, renderbuffer: u32);
glGetFramebufferAttachmentParameteriv: proc(target: u32, attachment: u32, pname: u32, params: *i32);
glGenerateMipmap: proc(target: u32);
glBlitFramebuffer: proc(srcX0: i32, srcY0: i32, srcX1: i32, srcY1: i32, dstX0: i32, dstY0: i32, dstX1: i32, dstY1: i32, mask: u32, filter: u32);
glRenderbufferStorageMultisample: proc(target: u32, samples: i32, internalformat: u32, width: i32, height: i32);
glFramebufferTextureLayer: proc(target: u32, attachment: u32, texture: u32, level: i32, layer: i32);
glMapBufferRange: proc(target: u32, offset: int, length: int, access: u32): *void;
glFlushMappedBufferRange: proc(target: u32, offset: int, length: int);
glBindVertexArray: proc(array: u32);
glDeleteVertexArrays: proc(n: i32, arrays: *u32);
glGenVertexArrays: proc(n: i32, arrays: *u32);
glIsVertexArray: proc(array: u32): bool;
load_3_0 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glColorMaski, "glColorMaski");
set_proc_address(&glGetBooleani_v, "glGetBooleani_v");
set_proc_address(&glGetIntegeri_v, "glGetIntegeri_v");
set_proc_address(&glEnablei, "glEnablei");
set_proc_address(&glDisablei, "glDisablei");
set_proc_address(&glIsEnabledi, "glIsEnabledi");
set_proc_address(&glBeginTransformFeedback, "glBeginTransformFeedback");
set_proc_address(&glEndTransformFeedback, "glEndTransformFeedback");
set_proc_address(&glBindBufferRange, "glBindBufferRange");
set_proc_address(&glBindBufferBase, "glBindBufferBase");
set_proc_address(&glTransformFeedbackVaryings, "glTransformFeedbackVaryings");
set_proc_address(&glGetTransformFeedbackVarying, "glGetTransformFeedbackVarying");
set_proc_address(&glClampColor, "glClampColor");
set_proc_address(&glBeginConditionalRender, "glBeginConditionalRender");
set_proc_address(&glEndConditionalRender, "glEndConditionalRender");
set_proc_address(&glVertexAttribIPointer, "glVertexAttribIPointer");
set_proc_address(&glGetVertexAttribIiv, "glGetVertexAttribIiv");
set_proc_address(&glGetVertexAttribIuiv, "glGetVertexAttribIuiv");
set_proc_address(&glVertexAttribI1i, "glVertexAttribI1i");
set_proc_address(&glVertexAttribI2i, "glVertexAttribI2i");
set_proc_address(&glVertexAttribI3i, "glVertexAttribI3i");
set_proc_address(&glVertexAttribI4i, "glVertexAttribI4i");
set_proc_address(&glVertexAttribI1ui, "glVertexAttribI1ui");
set_proc_address(&glVertexAttribI2ui, "glVertexAttribI2ui");
set_proc_address(&glVertexAttribI3ui, "glVertexAttribI3ui");
set_proc_address(&glVertexAttribI4ui, "glVertexAttribI4ui");
set_proc_address(&glVertexAttribI1iv, "glVertexAttribI1iv");
set_proc_address(&glVertexAttribI2iv, "glVertexAttribI2iv");
set_proc_address(&glVertexAttribI3iv, "glVertexAttribI3iv");
set_proc_address(&glVertexAttribI4iv, "glVertexAttribI4iv");
set_proc_address(&glVertexAttribI1uiv, "glVertexAttribI1uiv");
set_proc_address(&glVertexAttribI2uiv, "glVertexAttribI2uiv");
set_proc_address(&glVertexAttribI3uiv, "glVertexAttribI3uiv");
set_proc_address(&glVertexAttribI4uiv, "glVertexAttribI4uiv");
set_proc_address(&glVertexAttribI4bv, "glVertexAttribI4bv");
set_proc_address(&glVertexAttribI4sv, "glVertexAttribI4sv");
set_proc_address(&glVertexAttribI4ubv, "glVertexAttribI4ubv");
set_proc_address(&glVertexAttribI4usv, "glVertexAttribI4usv");
set_proc_address(&glGetUniformuiv, "glGetUniformuiv");
set_proc_address(&glBindFragDataLocation, "glBindFragDataLocation");
set_proc_address(&glGetFragDataLocation, "glGetFragDataLocation");
set_proc_address(&glUniform1ui, "glUniform1ui");
set_proc_address(&glUniform2ui, "glUniform2ui");
set_proc_address(&glUniform3ui, "glUniform3ui");
set_proc_address(&glUniform4ui, "glUniform4ui");
set_proc_address(&glUniform1uiv, "glUniform1uiv");
set_proc_address(&glUniform2uiv, "glUniform2uiv");
set_proc_address(&glUniform3uiv, "glUniform3uiv");
set_proc_address(&glUniform4uiv, "glUniform4uiv");
set_proc_address(&glTexParameterIiv, "glTexParameterIiv");
set_proc_address(&glTexParameterIuiv, "glTexParameterIuiv");
set_proc_address(&glGetTexParameterIiv, "glGetTexParameterIiv");
set_proc_address(&glGetTexParameterIuiv, "glGetTexParameterIuiv");
set_proc_address(&glClearBufferiv, "glClearBufferiv");
set_proc_address(&glClearBufferuiv, "glClearBufferuiv");
set_proc_address(&glClearBufferfv, "glClearBufferfv");
set_proc_address(&glClearBufferfi, "glClearBufferfi");
set_proc_address(&glGetStringi, "glGetStringi");
set_proc_address(&glIsRenderbuffer, "glIsRenderbuffer");
set_proc_address(&glBindRenderbuffer, "glBindRenderbuffer");
set_proc_address(&glDeleteRenderbuffers, "glDeleteRenderbuffers");
set_proc_address(&glGenRenderbuffers, "glGenRenderbuffers");
set_proc_address(&glRenderbufferStorage, "glRenderbufferStorage");
set_proc_address(&glGetRenderbufferParameteriv, "glGetRenderbufferParameteriv");
set_proc_address(&glIsFramebuffer, "glIsFramebuffer");
set_proc_address(&glBindFramebuffer, "glBindFramebuffer");
set_proc_address(&glDeleteFramebuffers, "glDeleteFramebuffers");
set_proc_address(&glGenFramebuffers, "glGenFramebuffers");
set_proc_address(&glCheckFramebufferStatus, "glCheckFramebufferStatus");
set_proc_address(&glFramebufferTexture1D, "glFramebufferTexture1D");
set_proc_address(&glFramebufferTexture2D, "glFramebufferTexture2D");
set_proc_address(&glFramebufferTexture3D, "glFramebufferTexture3D");
set_proc_address(&glFramebufferRenderbuffer, "glFramebufferRenderbuffer");
set_proc_address(&glGetFramebufferAttachmentParameteriv, "glGetFramebufferAttachmentParameteriv");
set_proc_address(&glGenerateMipmap, "glGenerateMipmap");
set_proc_address(&glBlitFramebuffer, "glBlitFramebuffer");
set_proc_address(&glRenderbufferStorageMultisample, "glRenderbufferStorageMultisample");
set_proc_address(&glFramebufferTextureLayer, "glFramebufferTextureLayer");
set_proc_address(&glMapBufferRange, "glMapBufferRange");
set_proc_address(&glFlushMappedBufferRange, "glFlushMappedBufferRange");
set_proc_address(&glBindVertexArray, "glBindVertexArray");
set_proc_address(&glDeleteVertexArrays, "glDeleteVertexArrays");
set_proc_address(&glGenVertexArrays, "glGenVertexArrays");
set_proc_address(&glIsVertexArray, "glIsVertexArray");
}
// VERSION_3_1
glDrawArraysInstanced: proc(mode: u32, first: i32, count: i32, instancecount: i32);
glDrawElementsInstanced: proc(mode: u32, count: i32, type: u32, indices: *void, instancecount: i32);
glTexBuffer: proc(target: u32, internalformat: u32, buffer: u32);
glPrimitiveRestartIndex: proc(index: u32);
glCopyBufferSubData: proc(readTarget: u32, writeTarget: u32, readOffset: int, writeOffset: int, size: int);
glGetUniformIndices: proc(program: u32, uniformCount: i32, uniformNames: **char, uniformIndices: *u32);
glGetActiveUniformsiv: proc(program: u32, uniformCount: i32, uniformIndices: *u32, pname: u32, params: *i32);
glGetActiveUniformName: proc(program: u32, uniformIndex: u32, bufSize: i32, length: *i32, uniformName: *u8);
glGetUniformBlockIndex: proc(program: u32, uniformBlockName: *char): u32;
glGetActiveUniformBlockiv: proc(program: u32, uniformBlockIndex: u32, pname: u32, params: *i32);
glGetActiveUniformBlockName: proc(program: u32, uniformBlockIndex: u32, bufSize: i32, length: *i32, uniformBlockName: *u8);
glUniformBlockBinding: proc(program: u32, uniformBlockIndex: u32, uniformBlockBinding: u32);
load_3_1 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glDrawArraysInstanced, "glDrawArraysInstanced");
set_proc_address(&glDrawElementsInstanced, "glDrawElementsInstanced");
set_proc_address(&glTexBuffer, "glTexBuffer");
set_proc_address(&glPrimitiveRestartIndex, "glPrimitiveRestartIndex");
set_proc_address(&glCopyBufferSubData, "glCopyBufferSubData");
set_proc_address(&glGetUniformIndices, "glGetUniformIndices");
set_proc_address(&glGetActiveUniformsiv, "glGetActiveUniformsiv");
set_proc_address(&glGetActiveUniformName, "glGetActiveUniformName");
set_proc_address(&glGetUniformBlockIndex, "glGetUniformBlockIndex");
set_proc_address(&glGetActiveUniformBlockiv, "glGetActiveUniformBlockiv");
set_proc_address(&glGetActiveUniformBlockName, "glGetActiveUniformBlockName");
set_proc_address(&glUniformBlockBinding, "glUniformBlockBinding");
}
// VERSION_3_2
glDrawElementsBaseVertex: proc(mode: u32, count: i32, type: u32, indices: *void, basevertex: i32);
glDrawRangeElementsBaseVertex: proc(mode: u32, start: u32, end: u32, count: i32, type: u32, indices: *void, basevertex: i32);
glDrawElementsInstancedBaseVertex: proc(mode: u32, count: i32, type: u32, indices: *void, instancecount: i32, basevertex: i32);
glMultiDrawElementsBaseVertex: proc(mode: u32, count: *i32, type: u32, indices: **void, drawcount: i32, basevertex: *i32);
glProvokingVertex: proc(mode: u32);
glFenceSync: proc(condition: u32, flags: u32): sync_t;
glIsSync: proc(sync: sync_t): bool;
glDeleteSync: proc(sync: sync_t);
glClientWaitSync: proc(sync: sync_t, flags: u32, timeout: u64): u32;
glWaitSync: proc(sync: sync_t, flags: u32, timeout: u64);
glGetInteger64v: proc(pname: u32, data: *i64);
glGetSynciv: proc(sync: sync_t, pname: u32, bufSize: i32, length: *i32, values: *i32);
glGetInteger64i_v: proc(target: u32, index: u32, data: *i64);
glGetBufferParameteri64v: proc(target: u32, pname: u32, params: *i64);
glFramebufferTexture: proc(target: u32, attachment: u32, texture: u32, level: i32);
glTexImage2DMultisample: proc(target: u32, samples: i32, internalformat: u32, width: i32, height: i32, fixedsamplelocations: bool);
glTexImage3DMultisample: proc(target: u32, samples: i32, internalformat: u32, width: i32, height: i32, depth: i32, fixedsamplelocations: bool);
glGetMultisamplefv: proc(pname: u32, index: u32, val: *f32);
glSampleMaski: proc(maskNumber: u32, mask: u32);
load_3_2 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glDrawElementsBaseVertex, "glDrawElementsBaseVertex");
set_proc_address(&glDrawRangeElementsBaseVertex, "glDrawRangeElementsBaseVertex");
set_proc_address(&glDrawElementsInstancedBaseVertex, "glDrawElementsInstancedBaseVertex");
set_proc_address(&glMultiDrawElementsBaseVertex, "glMultiDrawElementsBaseVertex");
set_proc_address(&glProvokingVertex, "glProvokingVertex");
set_proc_address(&glFenceSync, "glFenceSync");
set_proc_address(&glIsSync, "glIsSync");
set_proc_address(&glDeleteSync, "glDeleteSync");
set_proc_address(&glClientWaitSync, "glClientWaitSync");
set_proc_address(&glWaitSync, "glWaitSync");
set_proc_address(&glGetInteger64v, "glGetInteger64v");
set_proc_address(&glGetSynciv, "glGetSynciv");
set_proc_address(&glGetInteger64i_v, "glGetInteger64i_v");
set_proc_address(&glGetBufferParameteri64v, "glGetBufferParameteri64v");
set_proc_address(&glFramebufferTexture, "glFramebufferTexture");
set_proc_address(&glTexImage2DMultisample, "glTexImage2DMultisample");
set_proc_address(&glTexImage3DMultisample, "glTexImage3DMultisample");
set_proc_address(&glGetMultisamplefv, "glGetMultisamplefv");
set_proc_address(&glSampleMaski, "glSampleMaski");
}
// VERSION_3_3
glBindFragDataLocationIndexed: proc(program: u32, colorNumber: u32, index: u32, name: *char);
glGetFragDataIndex: proc(program: u32, name: *char): i32;
glGenSamplers: proc(count: i32, samplers: *u32);
glDeleteSamplers: proc(count: i32, samplers: *u32);
glIsSampler: proc(sampler: u32): bool;
glBindSampler: proc(unit: u32, sampler: u32);
glSamplerParameteri: proc(sampler: u32, pname: u32, param: i32);
glSamplerParameteriv: proc(sampler: u32, pname: u32, param: *i32);
glSamplerParameterf: proc(sampler: u32, pname: u32, param: f32);
glSamplerParameterfv: proc(sampler: u32, pname: u32, param: *f32);
glSamplerParameterIiv: proc(sampler: u32, pname: u32, param: *i32);
glSamplerParameterIuiv: proc(sampler: u32, pname: u32, param: *u32);
glGetSamplerParameteriv: proc(sampler: u32, pname: u32, params: *i32);
glGetSamplerParameterIiv: proc(sampler: u32, pname: u32, params: *i32);
glGetSamplerParameterfv: proc(sampler: u32, pname: u32, params: *f32);
glGetSamplerParameterIuiv: proc(sampler: u32, pname: u32, params: *u32);
glQueryCounter: proc(id: u32, target: u32);
glGetQueryObjecti64v: proc(id: u32, pname: u32, params: *i64);
glGetQueryObjectui64v: proc(id: u32, pname: u32, params: *u64);
glVertexAttribDivisor: proc(index: u32, divisor: u32);
glVertexAttribP1ui: proc(index: u32, type: u32, normalized: bool, value: u32);
glVertexAttribP1uiv: proc(index: u32, type: u32, normalized: bool, value: *u32);
glVertexAttribP2ui: proc(index: u32, type: u32, normalized: bool, value: u32);
glVertexAttribP2uiv: proc(index: u32, type: u32, normalized: bool, value: *u32);
glVertexAttribP3ui: proc(index: u32, type: u32, normalized: bool, value: u32);
glVertexAttribP3uiv: proc(index: u32, type: u32, normalized: bool, value: *u32);
glVertexAttribP4ui: proc(index: u32, type: u32, normalized: bool, value: u32);
glVertexAttribP4uiv: proc(index: u32, type: u32, normalized: bool, value: *u32);
glVertexP2ui: proc(type: u32, value: u32);
glVertexP2uiv: proc(type: u32, value: *u32);
glVertexP3ui: proc(type: u32, value: u32);
glVertexP3uiv: proc(type: u32, value: *u32);
glVertexP4ui: proc(type: u32, value: u32);
glVertexP4uiv: proc(type: u32, value: *u32);
glTexCoordP1ui: proc(type: u32, coords: u32);
glTexCoordP1uiv: proc(type: u32, coords: *u32);
glTexCoordP2ui: proc(type: u32, coords: u32);
glTexCoordP2uiv: proc(type: u32, coords: *u32);
glTexCoordP3ui: proc(type: u32, coords: u32);
glTexCoordP3uiv: proc(type: u32, coords: *u32);
glTexCoordP4ui: proc(type: u32, coords: u32);
glTexCoordP4uiv: proc(type: u32, coords: *u32);
glMultiTexCoordP1ui: proc(texture: u32, type: u32, coords: u32);
glMultiTexCoordP1uiv: proc(texture: u32, type: u32, coords: *u32);
glMultiTexCoordP2ui: proc(texture: u32, type: u32, coords: u32);
glMultiTexCoordP2uiv: proc(texture: u32, type: u32, coords: *u32);
glMultiTexCoordP3ui: proc(texture: u32, type: u32, coords: u32);
glMultiTexCoordP3uiv: proc(texture: u32, type: u32, coords: *u32);
glMultiTexCoordP4ui: proc(texture: u32, type: u32, coords: u32);
glMultiTexCoordP4uiv: proc(texture: u32, type: u32, coords: *u32);
glNormalP3ui: proc(type: u32, coords: u32);
glNormalP3uiv: proc(type: u32, coords: *u32);
glColorP3ui: proc(type: u32, color: u32);
glColorP3uiv: proc(type: u32, color: *u32);
glColorP4ui: proc(type: u32, color: u32);
glColorP4uiv: proc(type: u32, color: *u32);
glSecondaryColorP3ui: proc(type: u32, color: u32);
glSecondaryColorP3uiv: proc(type: u32, color: *u32);
load_3_3 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glBindFragDataLocationIndexed, "glBindFragDataLocationIndexed");
set_proc_address(&glGetFragDataIndex, "glGetFragDataIndex");
set_proc_address(&glGenSamplers, "glGenSamplers");
set_proc_address(&glDeleteSamplers, "glDeleteSamplers");
set_proc_address(&glIsSampler, "glIsSampler");
set_proc_address(&glBindSampler, "glBindSampler");
set_proc_address(&glSamplerParameteri, "glSamplerParameteri");
set_proc_address(&glSamplerParameteriv, "glSamplerParameteriv");
set_proc_address(&glSamplerParameterf, "glSamplerParameterf");
set_proc_address(&glSamplerParameterfv, "glSamplerParameterfv");
set_proc_address(&glSamplerParameterIiv, "glSamplerParameterIiv");
set_proc_address(&glSamplerParameterIuiv, "glSamplerParameterIuiv");
set_proc_address(&glGetSamplerParameteriv, "glGetSamplerParameteriv");
set_proc_address(&glGetSamplerParameterIiv, "glGetSamplerParameterIiv");
set_proc_address(&glGetSamplerParameterfv, "glGetSamplerParameterfv");
set_proc_address(&glGetSamplerParameterIuiv, "glGetSamplerParameterIuiv");
set_proc_address(&glQueryCounter, "glQueryCounter");
set_proc_address(&glGetQueryObjecti64v, "glGetQueryObjecti64v");
set_proc_address(&glGetQueryObjectui64v, "glGetQueryObjectui64v");
set_proc_address(&glVertexAttribDivisor, "glVertexAttribDivisor");
set_proc_address(&glVertexAttribP1ui, "glVertexAttribP1ui");
set_proc_address(&glVertexAttribP1uiv, "glVertexAttribP1uiv");
set_proc_address(&glVertexAttribP2ui, "glVertexAttribP2ui");
set_proc_address(&glVertexAttribP2uiv, "glVertexAttribP2uiv");
set_proc_address(&glVertexAttribP3ui, "glVertexAttribP3ui");
set_proc_address(&glVertexAttribP3uiv, "glVertexAttribP3uiv");
set_proc_address(&glVertexAttribP4ui, "glVertexAttribP4ui");
set_proc_address(&glVertexAttribP4uiv, "glVertexAttribP4uiv");
set_proc_address(&glVertexP2ui, "glVertexP2ui");
set_proc_address(&glVertexP2uiv, "glVertexP2uiv");
set_proc_address(&glVertexP3ui, "glVertexP3ui");
set_proc_address(&glVertexP3uiv, "glVertexP3uiv");
set_proc_address(&glVertexP4ui, "glVertexP4ui");
set_proc_address(&glVertexP4uiv, "glVertexP4uiv");
set_proc_address(&glTexCoordP1ui, "glTexCoordP1ui");
set_proc_address(&glTexCoordP1uiv, "glTexCoordP1uiv");
set_proc_address(&glTexCoordP2ui, "glTexCoordP2ui");
set_proc_address(&glTexCoordP2uiv, "glTexCoordP2uiv");
set_proc_address(&glTexCoordP3ui, "glTexCoordP3ui");
set_proc_address(&glTexCoordP3uiv, "glTexCoordP3uiv");
set_proc_address(&glTexCoordP4ui, "glTexCoordP4ui");
set_proc_address(&glTexCoordP4uiv, "glTexCoordP4uiv");
set_proc_address(&glMultiTexCoordP1ui, "glMultiTexCoordP1ui");
set_proc_address(&glMultiTexCoordP1uiv, "glMultiTexCoordP1uiv");
set_proc_address(&glMultiTexCoordP2ui, "glMultiTexCoordP2ui");
set_proc_address(&glMultiTexCoordP2uiv, "glMultiTexCoordP2uiv");
set_proc_address(&glMultiTexCoordP3ui, "glMultiTexCoordP3ui");
set_proc_address(&glMultiTexCoordP3uiv, "glMultiTexCoordP3uiv");
set_proc_address(&glMultiTexCoordP4ui, "glMultiTexCoordP4ui");
set_proc_address(&glMultiTexCoordP4uiv, "glMultiTexCoordP4uiv");
set_proc_address(&glNormalP3ui, "glNormalP3ui");
set_proc_address(&glNormalP3uiv, "glNormalP3uiv");
set_proc_address(&glColorP3ui, "glColorP3ui");
set_proc_address(&glColorP3uiv, "glColorP3uiv");
set_proc_address(&glColorP4ui, "glColorP4ui");
set_proc_address(&glColorP4uiv, "glColorP4uiv");
set_proc_address(&glSecondaryColorP3ui, "glSecondaryColorP3ui");
set_proc_address(&glSecondaryColorP3uiv, "glSecondaryColorP3uiv");
}
// VERSION_4_0
DrawArraysIndirectCommand :: struct {
count: u32;
instanceCount: u32;
first: u32;
baseInstance: u32;
}
DrawElementsIndirectCommand :: struct {
count: u32;
instanceCount: u32;
firstIndex: u32;
baseVertex: u32;
baseInstance: u32;
}
glMinSampleShading: proc(value: f32);
glBlendEquationi: proc(buf: u32, mode: u32);
glBlendEquationSeparatei: proc(buf: u32, modeRGB: u32, modeAlpha: u32);
glBlendFunci: proc(buf: u32, src: u32, dst: u32);
glBlendFuncSeparatei: proc(buf: u32, srcRGB: u32, dstRGB: u32, srcAlpha: u32, dstAlpha: u32);
glDrawArraysIndirect: proc(mode: u32, indirect: *DrawArraysIndirectCommand);
glDrawElementsIndirect: proc(mode: u32, type: u32, indirect: *DrawElementsIndirectCommand);
glUniform1d: proc(location: i32, x: f64);
glUniform2d: proc(location: i32, x: f64, y: f64);
glUniform3d: proc(location: i32, x: f64, y: f64, z: f64);
glUniform4d: proc(location: i32, x: f64, y: f64, z: f64, w: f64);
glUniform1dv: proc(location: i32, count: i32, value: *f64);
glUniform2dv: proc(location: i32, count: i32, value: *f64);
glUniform3dv: proc(location: i32, count: i32, value: *f64);
glUniform4dv: proc(location: i32, count: i32, value: *f64);
glUniformMatrix2dv: proc(location: i32, count: i32, transpose: bool, value: *f64);
glUniformMatrix3dv: proc(location: i32, count: i32, transpose: bool, value: *f64);
glUniformMatrix4dv: proc(location: i32, count: i32, transpose: bool, value: *f64);
glUniformMatrix2x3dv: proc(location: i32, count: i32, transpose: bool, value: *f64);
glUniformMatrix2x4dv: proc(location: i32, count: i32, transpose: bool, value: *f64);
glUniformMatrix3x2dv: proc(location: i32, count: i32, transpose: bool, value: *f64);
glUniformMatrix3x4dv: proc(location: i32, count: i32, transpose: bool, value: *f64);
glUniformMatrix4x2dv: proc(location: i32, count: i32, transpose: bool, value: *f64);
glUniformMatrix4x3dv: proc(location: i32, count: i32, transpose: bool, value: *f64);
glGetUniformdv: proc(program: u32, location: i32, params: *f64);
glGetSubroutineUniformLocation: proc(program: u32, shadertype: u32, name: *char): i32;
glGetSubroutineIndex: proc(program: u32, shadertype: u32, name: *char): u32;
glGetActiveSubroutineUniformiv: proc(program: u32, shadertype: u32, index: u32, pname: u32, values: *i32);
glGetActiveSubroutineUniformName: proc(program: u32, shadertype: u32, index: u32, bufsize: i32, length: *i32, name: *u8);
glGetActiveSubroutineName: proc(program: u32, shadertype: u32, index: u32, bufsize: i32, length: *i32, name: *u8);
glUniformSubroutinesuiv: proc(shadertype: u32, count: i32, indices: *u32);
glGetUniformSubroutineuiv: proc(shadertype: u32, location: i32, params: *u32);
glGetProgramStageiv: proc(program: u32, shadertype: u32, pname: u32, values: *i32);
glPatchParameteri: proc(pname: u32, value: i32);
glPatchParameterfv: proc(pname: u32, values: *f32);
glBindTransformFeedback: proc(target: u32, id: u32);
glDeleteTransformFeedbacks: proc(n: i32, ids: *u32);
glGenTransformFeedbacks: proc(n: i32, ids: *u32);
glIsTransformFeedback: proc(id: u32): bool;
glPauseTransformFeedback: proc();
glResumeTransformFeedback: proc();
glDrawTransformFeedback: proc(mode: u32, id: u32);
glDrawTransformFeedbackStream: proc(mode: u32, id: u32, stream: u32);
glBeginQueryIndexed: proc(target: u32, index: u32, id: u32);
glEndQueryIndexed: proc(target: u32, index: u32);
glGetQueryIndexediv: proc(target: u32, index: u32, pname: u32, params: *i32);
glGetTextureHandleARB: proc(texture: u32): u64;
glGetTextureSamplerHandleARB: proc(texture: u32, sampler: u32): u64;
glGetImageHandleARB: proc(texture: u32, level: i32, layered: bool, layer: i32, format: u32): u64;
glMakeTextureHandleResidentARB: proc(handle: u64);
glMakeImageHandleResidentARB: proc(handle: u64, access: u32);
glMakeTextureHandleNonResidentARB:proc(handle: u64);
glMakeImageHandleNonResidentARB: proc(handle: u64);
load_4_0 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glMinSampleShading, "glMinSampleShading");
set_proc_address(&glBlendEquationi, "glBlendEquationi");
set_proc_address(&glBlendEquationSeparatei, "glBlendEquationSeparatei");
set_proc_address(&glBlendFunci, "glBlendFunci");
set_proc_address(&glBlendFuncSeparatei, "glBlendFuncSeparatei");
set_proc_address(&glDrawArraysIndirect, "glDrawArraysIndirect");
set_proc_address(&glDrawElementsIndirect, "glDrawElementsIndirect");
set_proc_address(&glUniform1d, "glUniform1d");
set_proc_address(&glUniform2d, "glUniform2d");
set_proc_address(&glUniform3d, "glUniform3d");
set_proc_address(&glUniform4d, "glUniform4d");
set_proc_address(&glUniform1dv, "glUniform1dv");
set_proc_address(&glUniform2dv, "glUniform2dv");
set_proc_address(&glUniform3dv, "glUniform3dv");
set_proc_address(&glUniform4dv, "glUniform4dv");
set_proc_address(&glUniformMatrix2dv, "glUniformMatrix2dv");
set_proc_address(&glUniformMatrix3dv, "glUniformMatrix3dv");
set_proc_address(&glUniformMatrix4dv, "glUniformMatrix4dv");
set_proc_address(&glUniformMatrix2x3dv, "glUniformMatrix2x3dv");
set_proc_address(&glUniformMatrix2x4dv, "glUniformMatrix2x4dv");
set_proc_address(&glUniformMatrix3x2dv, "glUniformMatrix3x2dv");
set_proc_address(&glUniformMatrix3x4dv, "glUniformMatrix3x4dv");
set_proc_address(&glUniformMatrix4x2dv, "glUniformMatrix4x2dv");
set_proc_address(&glUniformMatrix4x3dv, "glUniformMatrix4x3dv");
set_proc_address(&glGetUniformdv, "glGetUniformdv");
set_proc_address(&glGetSubroutineUniformLocation, "glGetSubroutineUniformLocation");
set_proc_address(&glGetSubroutineIndex, "glGetSubroutineIndex");
set_proc_address(&glGetActiveSubroutineUniformiv, "glGetActiveSubroutineUniformiv");
set_proc_address(&glGetActiveSubroutineUniformName, "glGetActiveSubroutineUniformName");
set_proc_address(&glGetActiveSubroutineName, "glGetActiveSubroutineName");
set_proc_address(&glUniformSubroutinesuiv, "glUniformSubroutinesuiv");
set_proc_address(&glGetUniformSubroutineuiv, "glGetUniformSubroutineuiv");
set_proc_address(&glGetProgramStageiv, "glGetProgramStageiv");
set_proc_address(&glPatchParameteri, "glPatchParameteri");
set_proc_address(&glPatchParameterfv, "glPatchParameterfv");
set_proc_address(&glBindTransformFeedback, "glBindTransformFeedback");
set_proc_address(&glDeleteTransformFeedbacks, "glDeleteTransformFeedbacks");
set_proc_address(&glGenTransformFeedbacks, "glGenTransformFeedbacks");
set_proc_address(&glIsTransformFeedback, "glIsTransformFeedback");
set_proc_address(&glPauseTransformFeedback, "glPauseTransformFeedback");
set_proc_address(&glResumeTransformFeedback, "glResumeTransformFeedback");
set_proc_address(&glDrawTransformFeedback, "glDrawTransformFeedback");
set_proc_address(&glDrawTransformFeedbackStream, "glDrawTransformFeedbackStream");
set_proc_address(&glBeginQueryIndexed, "glBeginQueryIndexed");
set_proc_address(&glEndQueryIndexed, "glEndQueryIndexed");
set_proc_address(&glGetQueryIndexediv, "glGetQueryIndexediv");
// Load ARB (architecture review board, vendor specific) extensions that might be available
set_proc_address(&glGetTextureHandleARB, "glGetTextureHandleARB");
if !glGetTextureHandleARB {
set_proc_address(&glGetTextureHandleARB, "glGetTextureHandleNV");
}
set_proc_address(&glGetTextureSamplerHandleARB, "glGetTextureSamplerHandleARB");
if !glGetTextureSamplerHandleARB {
set_proc_address(&glGetTextureSamplerHandleARB, "glGetTextureSamplerHandleNV");
}
set_proc_address(&glGetImageHandleARB, "glGetImageHandleARB");
if !glGetImageHandleARB {
set_proc_address(&glGetImageHandleARB, "glGetImageHandleNV");
}
set_proc_address(&glMakeTextureHandleResidentARB, "glMakeTextureHandleResidentARB");
if !glMakeTextureHandleResidentARB {
set_proc_address(&glMakeTextureHandleResidentARB, "glMakeTextureHandleResidentNV");
}
set_proc_address(&glMakeImageHandleResidentARB, "glMakeImageHandleResidentARB");
if !glMakeImageHandleResidentARB {
set_proc_address(&glMakeImageHandleResidentARB, "glMakeImageHandleResidentNV");
}
set_proc_address(&glMakeTextureHandleNonResidentARB, "glMakeTextureHandleNonResidentARB");
if !glMakeTextureHandleNonResidentARB {
set_proc_address(&glMakeTextureHandleNonResidentARB, "glMakeTextureHandleNonResidentNV");
}
set_proc_address(&glMakeImageHandleNonResidentARB, "glMakeImageHandleNonResidentARB");
if !glMakeImageHandleNonResidentARB {
set_proc_address(&glMakeImageHandleNonResidentARB, "glMakeImageHandleNonResidentNV");
}
}
// VERSION_4_1
glReleaseShaderCompiler: proc();
glShaderBinary: proc(count: i32, shaders: *u32, binaryformat: u32, binary: *void, length: i32);
glGetShaderPrecisionFormat: proc(shadertype: u32, precisiontype: u32, range: *i32, precision: *i32);
glDepthRangef: proc(n: f32, f: f32);
glClearDepthf: proc(d: f32);
glGetProgramBinary: proc(program: u32, bufSize: i32, length: *i32, binaryFormat: *u32, binary: *void);
glProgramBinary: proc(program: u32, binaryFormat: u32, binary: *void, length: i32);
glProgramParameteri: proc(program: u32, pname: u32, value: i32);
glUseProgramStages: proc(pipeline: u32, stages: u32, program: u32);
glActiveShaderProgram: proc(pipeline: u32, program: u32);
glCreateShaderProgramv: proc(type: u32, count: i32, strings: **char): u32;
glBindProgramPipeline: proc(pipeline: u32);
glDeleteProgramPipelines: proc(n: i32, pipelines: *u32);
glGenProgramPipelines: proc(n: i32, pipelines: *u32);
glIsProgramPipeline: proc(pipeline: u32): bool;
glGetProgramPipelineiv: proc(pipeline: u32, pname: u32, params: *i32);
glProgramUniform1i: proc(program: u32, location: i32, v0: i32);
glProgramUniform1iv: proc(program: u32, location: i32, count: i32, value: *i32);
glProgramUniform1f: proc(program: u32, location: i32, v0: f32);
glProgramUniform1fv: proc(program: u32, location: i32, count: i32, value: *f32);
glProgramUniform1d: proc(program: u32, location: i32, v0: f64);
glProgramUniform1dv: proc(program: u32, location: i32, count: i32, value: *f64);
glProgramUniform1ui: proc(program: u32, location: i32, v0: u32);
glProgramUniform1uiv: proc(program: u32, location: i32, count: i32, value: *u32);
glProgramUniform2i: proc(program: u32, location: i32, v0: i32, v1: i32);
glProgramUniform2iv: proc(program: u32, location: i32, count: i32, value: *i32);
glProgramUniform2f: proc(program: u32, location: i32, v0: f32, v1: f32);
glProgramUniform2fv: proc(program: u32, location: i32, count: i32, value: *f32);
glProgramUniform2d: proc(program: u32, location: i32, v0: f64, v1: f64);
glProgramUniform2dv: proc(program: u32, location: i32, count: i32, value: *f64);
glProgramUniform2ui: proc(program: u32, location: i32, v0: u32, v1: u32);
glProgramUniform2uiv: proc(program: u32, location: i32, count: i32, value: *u32);
glProgramUniform3i: proc(program: u32, location: i32, v0: i32, v1: i32, v2: i32);
glProgramUniform3iv: proc(program: u32, location: i32, count: i32, value: *i32);
glProgramUniform3f: proc(program: u32, location: i32, v0: f32, v1: f32, v2: f32);
glProgramUniform3fv: proc(program: u32, location: i32, count: i32, value: *f32);
glProgramUniform3d: proc(program: u32, location: i32, v0: f64, v1: f64, v2: f64);
glProgramUniform3dv: proc(program: u32, location: i32, count: i32, value: *f64);
glProgramUniform3ui: proc(program: u32, location: i32, v0: u32, v1: u32, v2: u32);
glProgramUniform3uiv: proc(program: u32, location: i32, count: i32, value: *u32);
glProgramUniform4i: proc(program: u32, location: i32, v0: i32, v1: i32, v2: i32, v3: i32);
glProgramUniform4iv: proc(program: u32, location: i32, count: i32, value: *i32);
glProgramUniform4f: proc(program: u32, location: i32, v0: f32, v1: f32, v2: f32, v3: f32);
glProgramUniform4fv: proc(program: u32, location: i32, count: i32, value: *f32);
glProgramUniform4d: proc(program: u32, location: i32, v0: f64, v1: f64, v2: f64, v3: f64);
glProgramUniform4dv: proc(program: u32, location: i32, count: i32, value: *f64);
glProgramUniform4ui: proc(program: u32, location: i32, v0: u32, v1: u32, v2: u32, v3: u32);
glProgramUniform4uiv: proc(program: u32, location: i32, count: i32, value: *u32);
glProgramUniformMatrix2fv: proc(program: u32, location: i32, count: i32, transpose: bool, value: *f32);
glProgramUniformMatrix3fv: proc(program: u32, location: i32, count: i32, transpose: bool, value: *f32);
glProgramUniformMatrix4fv: proc(program: u32, location: i32, count: i32, transpose: bool, value: *f32);
glProgramUniformMatrix2dv: proc(program: u32, location: i32, count: i32, transpose: bool, value: *f64);
glProgramUniformMatrix3dv: proc(program: u32, location: i32, count: i32, transpose: bool, value: *f64);
glProgramUniformMatrix4dv: proc(program: u32, location: i32, count: i32, transpose: bool, value: *f64);
glProgramUniformMatrix2x3fv: proc(program: u32, location: i32, count: i32, transpose: bool, value: *f32);
glProgramUniformMatrix3x2fv: proc(program: u32, location: i32, count: i32, transpose: bool, value: *f32);
glProgramUniformMatrix2x4fv: proc(program: u32, location: i32, count: i32, transpose: bool, value: *f32);
glProgramUniformMatrix4x2fv: proc(program: u32, location: i32, count: i32, transpose: bool, value: *f32);
glProgramUniformMatrix3x4fv: proc(program: u32, location: i32, count: i32, transpose: bool, value: *f32);
glProgramUniformMatrix4x3fv: proc(program: u32, location: i32, count: i32, transpose: bool, value: *f32);
glProgramUniformMatrix2x3dv: proc(program: u32, location: i32, count: i32, transpose: bool, value: *f64);
glProgramUniformMatrix3x2dv: proc(program: u32, location: i32, count: i32, transpose: bool, value: *f64);
glProgramUniformMatrix2x4dv: proc(program: u32, location: i32, count: i32, transpose: bool, value: *f64);
glProgramUniformMatrix4x2dv: proc(program: u32, location: i32, count: i32, transpose: bool, value: *f64);
glProgramUniformMatrix3x4dv: proc(program: u32, location: i32, count: i32, transpose: bool, value: *f64);
glProgramUniformMatrix4x3dv: proc(program: u32, location: i32, count: i32, transpose: bool, value: *f64);
glValidateProgramPipeline: proc(pipeline: u32);
glGetProgramPipelineInfoLog: proc(pipeline: u32, bufSize: i32, length: *i32, infoLog: *u8);
glVertexAttribL1d: proc(index: u32, x: f64);
glVertexAttribL2d: proc(index: u32, x: f64, y: f64);
glVertexAttribL3d: proc(index: u32, x: f64, y: f64, z: f64);
glVertexAttribL4d: proc(index: u32, x: f64, y: f64, z: f64, w: f64);
glVertexAttribL1dv: proc(index: u32, v: *f64);
glVertexAttribL2dv: proc(index: u32, v: *[2]f64);
glVertexAttribL3dv: proc(index: u32, v: *[3]f64);
glVertexAttribL4dv: proc(index: u32, v: *[4]f64);
glVertexAttribLPointer: proc(index: u32, size: i32, type: u32, stride: i32, pointer: uintptr);
glGetVertexAttribLdv: proc(index: u32, pname: u32, params: *f64);
glViewportArrayv: proc(first: u32, count: i32, v: *f32);
glViewportIndexedf: proc(index: u32, x: f32, y: f32, w: f32, h: f32);
glViewportIndexedfv: proc(index: u32, v: *[4]f32);
glScissorArrayv: proc(first: u32, count: i32, v: *i32);
glScissorIndexed: proc(index: u32, left: i32, bottom: i32, width: i32, height: i32);
glScissorIndexedv: proc(index: u32, v: *[4]i32);
glDepthRangeArrayv: proc(first: u32, count: i32, v: *f64);
glDepthRangeIndexed: proc(index: u32, n: f64, f: f64);
glGetFloati_v: proc(target: u32, index: u32, data: *f32);
glGetDoublei_v: proc(target: u32, index: u32, data: *f64);
load_4_1 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glReleaseShaderCompiler, "glReleaseShaderCompiler");
set_proc_address(&glShaderBinary, "glShaderBinary");
set_proc_address(&glGetShaderPrecisionFormat, "glGetShaderPrecisionFormat");
set_proc_address(&glDepthRangef, "glDepthRangef");
set_proc_address(&glClearDepthf, "glClearDepthf");
set_proc_address(&glGetProgramBinary, "glGetProgramBinary");
set_proc_address(&glProgramBinary, "glProgramBinary");
set_proc_address(&glProgramParameteri, "glProgramParameteri");
set_proc_address(&glUseProgramStages, "glUseProgramStages");
set_proc_address(&glActiveShaderProgram, "glActiveShaderProgram");
set_proc_address(&glCreateShaderProgramv, "glCreateShaderProgramv");
set_proc_address(&glBindProgramPipeline, "glBindProgramPipeline");
set_proc_address(&glDeleteProgramPipelines, "glDeleteProgramPipelines");
set_proc_address(&glGenProgramPipelines, "glGenProgramPipelines");
set_proc_address(&glIsProgramPipeline, "glIsProgramPipeline");
set_proc_address(&glGetProgramPipelineiv, "glGetProgramPipelineiv");
set_proc_address(&glProgramUniform1i, "glProgramUniform1i");
set_proc_address(&glProgramUniform1iv, "glProgramUniform1iv");
set_proc_address(&glProgramUniform1f, "glProgramUniform1f");
set_proc_address(&glProgramUniform1fv, "glProgramUniform1fv");
set_proc_address(&glProgramUniform1d, "glProgramUniform1d");
set_proc_address(&glProgramUniform1dv, "glProgramUniform1dv");
set_proc_address(&glProgramUniform1ui, "glProgramUniform1ui");
set_proc_address(&glProgramUniform1uiv, "glProgramUniform1uiv");
set_proc_address(&glProgramUniform2i, "glProgramUniform2i");
set_proc_address(&glProgramUniform2iv, "glProgramUniform2iv");
set_proc_address(&glProgramUniform2f, "glProgramUniform2f");
set_proc_address(&glProgramUniform2fv, "glProgramUniform2fv");
set_proc_address(&glProgramUniform2d, "glProgramUniform2d");
set_proc_address(&glProgramUniform2dv, "glProgramUniform2dv");
set_proc_address(&glProgramUniform2ui, "glProgramUniform2ui");
set_proc_address(&glProgramUniform2uiv, "glProgramUniform2uiv");
set_proc_address(&glProgramUniform3i, "glProgramUniform3i");
set_proc_address(&glProgramUniform3iv, "glProgramUniform3iv");
set_proc_address(&glProgramUniform3f, "glProgramUniform3f");
set_proc_address(&glProgramUniform3fv, "glProgramUniform3fv");
set_proc_address(&glProgramUniform3d, "glProgramUniform3d");
set_proc_address(&glProgramUniform3dv, "glProgramUniform3dv");
set_proc_address(&glProgramUniform3ui, "glProgramUniform3ui");
set_proc_address(&glProgramUniform3uiv, "glProgramUniform3uiv");
set_proc_address(&glProgramUniform4i, "glProgramUniform4i");
set_proc_address(&glProgramUniform4iv, "glProgramUniform4iv");
set_proc_address(&glProgramUniform4f, "glProgramUniform4f");
set_proc_address(&glProgramUniform4fv, "glProgramUniform4fv");
set_proc_address(&glProgramUniform4d, "glProgramUniform4d");
set_proc_address(&glProgramUniform4dv, "glProgramUniform4dv");
set_proc_address(&glProgramUniform4ui, "glProgramUniform4ui");
set_proc_address(&glProgramUniform4uiv, "glProgramUniform4uiv");
set_proc_address(&glProgramUniformMatrix2fv, "glProgramUniformMatrix2fv");
set_proc_address(&glProgramUniformMatrix3fv, "glProgramUniformMatrix3fv");
set_proc_address(&glProgramUniformMatrix4fv, "glProgramUniformMatrix4fv");
set_proc_address(&glProgramUniformMatrix2dv, "glProgramUniformMatrix2dv");
set_proc_address(&glProgramUniformMatrix3dv, "glProgramUniformMatrix3dv");
set_proc_address(&glProgramUniformMatrix4dv, "glProgramUniformMatrix4dv");
set_proc_address(&glProgramUniformMatrix2x3fv, "glProgramUniformMatrix2x3fv");
set_proc_address(&glProgramUniformMatrix3x2fv, "glProgramUniformMatrix3x2fv");
set_proc_address(&glProgramUniformMatrix2x4fv, "glProgramUniformMatrix2x4fv");
set_proc_address(&glProgramUniformMatrix4x2fv, "glProgramUniformMatrix4x2fv");
set_proc_address(&glProgramUniformMatrix3x4fv, "glProgramUniformMatrix3x4fv");
set_proc_address(&glProgramUniformMatrix4x3fv, "glProgramUniformMatrix4x3fv");
set_proc_address(&glProgramUniformMatrix2x3dv, "glProgramUniformMatrix2x3dv");
set_proc_address(&glProgramUniformMatrix3x2dv, "glProgramUniformMatrix3x2dv");
set_proc_address(&glProgramUniformMatrix2x4dv, "glProgramUniformMatrix2x4dv");
set_proc_address(&glProgramUniformMatrix4x2dv, "glProgramUniformMatrix4x2dv");
set_proc_address(&glProgramUniformMatrix3x4dv, "glProgramUniformMatrix3x4dv");
set_proc_address(&glProgramUniformMatrix4x3dv, "glProgramUniformMatrix4x3dv");
set_proc_address(&glValidateProgramPipeline, "glValidateProgramPipeline");
set_proc_address(&glGetProgramPipelineInfoLog, "glGetProgramPipelineInfoLog");
set_proc_address(&glVertexAttribL1d, "glVertexAttribL1d");
set_proc_address(&glVertexAttribL2d, "glVertexAttribL2d");
set_proc_address(&glVertexAttribL3d, "glVertexAttribL3d");
set_proc_address(&glVertexAttribL4d, "glVertexAttribL4d");
set_proc_address(&glVertexAttribL1dv, "glVertexAttribL1dv");
set_proc_address(&glVertexAttribL2dv, "glVertexAttribL2dv");
set_proc_address(&glVertexAttribL3dv, "glVertexAttribL3dv");
set_proc_address(&glVertexAttribL4dv, "glVertexAttribL4dv");
set_proc_address(&glVertexAttribLPointer, "glVertexAttribLPointer");
set_proc_address(&glGetVertexAttribLdv, "glGetVertexAttribLdv");
set_proc_address(&glViewportArrayv, "glViewportArrayv");
set_proc_address(&glViewportIndexedf, "glViewportIndexedf");
set_proc_address(&glViewportIndexedfv, "glViewportIndexedfv");
set_proc_address(&glScissorArrayv, "glScissorArrayv");
set_proc_address(&glScissorIndexed, "glScissorIndexed");
set_proc_address(&glScissorIndexedv, "glScissorIndexedv");
set_proc_address(&glDepthRangeArrayv, "glDepthRangeArrayv");
set_proc_address(&glDepthRangeIndexed, "glDepthRangeIndexed");
set_proc_address(&glGetFloati_v, "glGetFloati_v");
set_proc_address(&glGetDoublei_v, "glGetDoublei_v");
}
// VERSION_4_2
glDrawArraysInstancedBaseInstance: proc(mode: u32, first: i32, count: i32, instancecount: i32, baseinstance: u32);
glDrawElementsInstancedBaseInstance: proc(mode: u32, count: i32, type: u32, indices: *void, instancecount: i32, baseinstance: u32);
glDrawElementsInstancedBaseVertexBaseInstance: proc(mode: u32, count: i32, type: u32, indices: *void, instancecount: i32, basevertex: i32, baseinstance: u32);
glGetInternalformativ: proc(target: u32, internalformat: u32, pname: u32, bufSize: i32, params: *i32);
glGetActiveAtomicCounterBufferiv: proc(program: u32, bufferIndex: u32, pname: u32, params: *i32);
glBindImageTexture: proc(unit: u32, texture: u32, level: i32, layered: bool, layer: i32, access: u32, format: u32);
glMemoryBarrier: proc(barriers: u32);
glTexStorage1D: proc(target: u32, levels: i32, internalformat: u32, width: i32);
glTexStorage2D: proc(target: u32, levels: i32, internalformat: u32, width: i32, height: i32);
glTexStorage3D: proc(target: u32, levels: i32, internalformat: u32, width: i32, height: i32, depth: i32);
glDrawTransformFeedbackInstanced: proc(mode: u32, id: u32, instancecount: i32);
glDrawTransformFeedbackStreamInstanced: proc(mode: u32, id: u32, stream: u32, instancecount: i32);
load_4_2 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glDrawArraysInstancedBaseInstance, "glDrawArraysInstancedBaseInstance");
set_proc_address(&glDrawElementsInstancedBaseInstance, "glDrawElementsInstancedBaseInstance");
set_proc_address(&glDrawElementsInstancedBaseVertexBaseInstance, "glDrawElementsInstancedBaseVertexBaseInstance");
set_proc_address(&glGetInternalformativ, "glGetInternalformativ");
set_proc_address(&glGetActiveAtomicCounterBufferiv, "glGetActiveAtomicCounterBufferiv");
set_proc_address(&glBindImageTexture, "glBindImageTexture");
set_proc_address(&glMemoryBarrier, "glMemoryBarrier");
set_proc_address(&glTexStorage1D, "glTexStorage1D");
set_proc_address(&glTexStorage2D, "glTexStorage2D");
set_proc_address(&glTexStorage3D, "glTexStorage3D");
set_proc_address(&glDrawTransformFeedbackInstanced, "glDrawTransformFeedbackInstanced");
set_proc_address(&glDrawTransformFeedbackStreamInstanced, "glDrawTransformFeedbackStreamInstanced");
}
// VERSION_4_3
DispatchIndirectCommand :: struct {
num_groups_x: u32;
num_groups_y: u32;
num_groups_z: u32;
}
glClearBufferData: proc(target: u32, internalformat: u32, format: u32, type: u32, data: *void);
glClearBufferSubData: proc(target: u32, internalformat: u32, offset: int, size: int, format: u32, type: u32, data: *void);
glDispatchCompute: proc(num_groups_x: u32, num_groups_y: u32, num_groups_z: u32);
glDispatchComputeIndirect: proc(indirect: *DispatchIndirectCommand);
glCopyImageSubData: proc(srcName: u32, srcTarget: u32, srcLevel: i32, srcX: i32, srcY: i32, srcZ: i32, dstName: u32, dstTarget: u32, dstLevel: i32, dstX: i32, dstY: i32, dstZ: i32, srcWidth: i32, srcHeight: i32, srcDepth: i32);
glFramebufferParameteri: proc(target: u32, pname: u32, param: i32);
glGetFramebufferParameteriv: proc(target: u32, pname: u32, params: *i32);
glGetInternalformati64v: proc(target: u32, internalformat: u32, pname: u32, bufSize: i32, params: *i64);
glInvalidateTexSubImage: proc(texture: u32, level: i32, xoffset: i32, yoffset: i32, zoffset: i32, width: i32, height: i32, depth: i32);
glInvalidateTexImage: proc(texture: u32, level: i32);
glInvalidateBufferSubData: proc(buffer: u32, offset: int, length: int);
glInvalidateBufferData: proc(buffer: u32);
glInvalidateFramebuffer: proc(target: u32, numAttachments: i32, attachments: *u32);
glInvalidateSubFramebuffer: proc(target: u32, numAttachments: i32, attachments: *u32, x: i32, y: i32, width: i32, height: i32);
glMultiDrawArraysIndirect: proc(mode: u32, indirect: *DrawArraysIndirectCommand, drawcount: i32, stride: i32);
glMultiDrawElementsIndirect: proc(mode: u32, type: u32, indirect: *DrawElementsIndirectCommand, drawcount: i32, stride: i32);
glGetProgramInterfaceiv: proc(program: u32, programInterface: u32, pname: u32, params: *i32);
glGetProgramResourceIndex: proc(program: u32, programInterface: u32, name: *char): u32;
glGetProgramResourceName: proc(program: u32, programInterface: u32, index: u32, bufSize: i32, length: *i32, name: *u8);
glGetProgramResourceiv: proc(program: u32, programInterface: u32, index: u32, propCount: i32, props: *u32, bufSize: i32, length: *i32, params: *i32);
glGetProgramResourceLocation: proc(program: u32, programInterface: u32, name: *char): i32;
glGetProgramResourceLocationIndex: proc(program: u32, programInterface: u32, name: *char): i32;
glShaderStorageBlockBinding: proc(program: u32, storageBlockIndex: u32, storageBlockBinding: u32);
glTexBufferRange: proc(target: u32, internalformat: u32, buffer: u32, offset: int, size: int);
glTexStorage2DMultisample: proc(target: u32, samples: i32, internalformat: u32, width: i32, height: i32, fixedsamplelocations: bool);
glTexStorage3DMultisample: proc(target: u32, samples: i32, internalformat: u32, width: i32, height: i32, depth: i32, fixedsamplelocations: bool);
glTextureView: proc(texture: u32, target: u32, origtexture: u32, internalformat: u32, minlevel: u32, numlevels: u32, minlayer: u32, numlayers: u32);
glBindVertexBuffer: proc(bindingindex: u32, buffer: u32, offset: int, stride: i32);
glVertexAttribFormat: proc(attribindex: u32, size: i32, type: u32, normalized: bool, relativeoffset: u32);
glVertexAttribIFormat: proc(attribindex: u32, size: i32, type: u32, relativeoffset: u32);
glVertexAttribLFormat: proc(attribindex: u32, size: i32, type: u32, relativeoffset: u32);
glVertexAttribBinding: proc(attribindex: u32, bindingindex: u32);
glVertexBindingDivisor: proc(bindingindex: u32, divisor: u32);
glDebugMessageControl: proc(source: u32, type: u32, severity: u32, count: i32, ids: *u32, enabled: bool);
glDebugMessageInsert: proc(source: u32, type: u32, id: u32, severity: u32, length: i32, message: *char);
glDebugMessageCallback: proc(callback: debug_proc_t, userParam: *void);
glGetDebugMessageLog: proc(count: u32, bufSize: i32, sources: *u32, types: *u32, ids: *u32, severities: *u32, lengths: *i32, messageLog: *u8): u32;
glPushDebugGroup: proc(source: u32, id: u32, length: i32, message: *char);
glPopDebugGroup: proc();
glObjectLabel: proc(identifier: u32, name: u32, length: i32, label: *char);
glGetObjectLabel: proc(identifier: u32, name: u32, bufSize: i32, length: *i32, label: *u8);
glObjectPtrLabel: proc(ptr: *void, length: i32, label: *char);
glGetObjectPtrLabel: proc(ptr: *void, bufSize: i32, length: *i32, label: *u8);
load_4_3 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glClearBufferData, "glClearBufferData");
set_proc_address(&glClearBufferSubData, "glClearBufferSubData");
set_proc_address(&glDispatchCompute, "glDispatchCompute");
set_proc_address(&glDispatchComputeIndirect, "glDispatchComputeIndirect");
set_proc_address(&glCopyImageSubData, "glCopyImageSubData");
set_proc_address(&glFramebufferParameteri, "glFramebufferParameteri");
set_proc_address(&glGetFramebufferParameteriv, "glGetFramebufferParameteriv");
set_proc_address(&glGetInternalformati64v, "glGetInternalformati64v");
set_proc_address(&glInvalidateTexSubImage, "glInvalidateTexSubImage");
set_proc_address(&glInvalidateTexImage, "glInvalidateTexImage");
set_proc_address(&glInvalidateBufferSubData, "glInvalidateBufferSubData");
set_proc_address(&glInvalidateBufferData, "glInvalidateBufferData");
set_proc_address(&glInvalidateFramebuffer, "glInvalidateFramebuffer");
set_proc_address(&glInvalidateSubFramebuffer, "glInvalidateSubFramebuffer");
set_proc_address(&glMultiDrawArraysIndirect, "glMultiDrawArraysIndirect");
set_proc_address(&glMultiDrawElementsIndirect, "glMultiDrawElementsIndirect");
set_proc_address(&glGetProgramInterfaceiv, "glGetProgramInterfaceiv");
set_proc_address(&glGetProgramResourceIndex, "glGetProgramResourceIndex");
set_proc_address(&glGetProgramResourceName, "glGetProgramResourceName");
set_proc_address(&glGetProgramResourceiv, "glGetProgramResourceiv");
set_proc_address(&glGetProgramResourceLocation, "glGetProgramResourceLocation");
set_proc_address(&glGetProgramResourceLocationIndex, "glGetProgramResourceLocationIndex");
set_proc_address(&glShaderStorageBlockBinding, "glShaderStorageBlockBinding");
set_proc_address(&glTexBufferRange, "glTexBufferRange");
set_proc_address(&glTexStorage2DMultisample, "glTexStorage2DMultisample");
set_proc_address(&glTexStorage3DMultisample, "glTexStorage3DMultisample");
set_proc_address(&glTextureView, "glTextureView");
set_proc_address(&glBindVertexBuffer, "glBindVertexBuffer");
set_proc_address(&glVertexAttribFormat, "glVertexAttribFormat");
set_proc_address(&glVertexAttribIFormat, "glVertexAttribIFormat");
set_proc_address(&glVertexAttribLFormat, "glVertexAttribLFormat");
set_proc_address(&glVertexAttribBinding, "glVertexAttribBinding");
set_proc_address(&glVertexBindingDivisor, "glVertexBindingDivisor");
set_proc_address(&glDebugMessageControl, "glDebugMessageControl");
set_proc_address(&glDebugMessageInsert, "glDebugMessageInsert");
set_proc_address(&glDebugMessageCallback, "glDebugMessageCallback");
set_proc_address(&glGetDebugMessageLog, "glGetDebugMessageLog");
set_proc_address(&glPushDebugGroup, "glPushDebugGroup");
set_proc_address(&glPopDebugGroup, "glPopDebugGroup");
set_proc_address(&glObjectLabel, "glObjectLabel");
set_proc_address(&glGetObjectLabel, "glGetObjectLabel");
set_proc_address(&glObjectPtrLabel, "glObjectPtrLabel");
set_proc_address(&glGetObjectPtrLabel, "glGetObjectPtrLabel");
}
// VERSION_4_4
glBufferStorage: proc(target: u32, size: int, data: *void, flags: u32);
glClearTexImage: proc(texture: u32, level: i32, format: u32, type: u32, data: *void);
glClearTexSubImage: proc(texture: u32, level: i32, xoffset: i32, yoffset: i32, zoffset: i32, width: i32, height: i32, depth: i32, format: u32, type: u32, data: *void);
glBindBuffersBase: proc(target: u32, first: u32, count: i32, buffers: *u32);
glBindBuffersRange: proc(target: u32, first: u32, count: i32, buffers: *u32, offsets: *uintptr, sizes: *int);
glBindTextures: proc(first: u32, count: i32, textures: *u32);
glBindSamplers: proc(first: u32, count: i32, samplers: *u32);
glBindImageTextures: proc(first: u32, count: i32, textures: *u32);
glBindVertexBuffers: proc(first: u32, count: i32, buffers: *u32, offsets: *uintptr, strides: *i32);
load_4_4 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glBufferStorage, "glBufferStorage");
set_proc_address(&glClearTexImage, "glClearTexImage");
set_proc_address(&glClearTexSubImage, "glClearTexSubImage");
set_proc_address(&glBindBuffersBase, "glBindBuffersBase");
set_proc_address(&glBindBuffersRange, "glBindBuffersRange");
set_proc_address(&glBindTextures, "glBindTextures");
set_proc_address(&glBindSamplers, "glBindSamplers");
set_proc_address(&glBindImageTextures, "glBindImageTextures");
set_proc_address(&glBindVertexBuffers, "glBindVertexBuffers");
}
// VERSION_4_5
glClipControl: proc(origin: u32, depth: u32);
glCreateTransformFeedbacks: proc(n: i32, ids: *u32);
glTransformFeedbackBufferBase: proc(xfb: u32, index: u32, buffer: u32);
glTransformFeedbackBufferRange: proc(xfb: u32, index: u32, buffer: u32, offset: int, size: int);
glGetTransformFeedbackiv: proc(xfb: u32, pname: u32, param: *i32);
glGetTransformFeedbacki_v: proc(xfb: u32, pname: u32, index: u32, param: *i32);
glGetTransformFeedbacki64_v: proc(xfb: u32, pname: u32, index: u32, param: *i64);
glCreateBuffers: proc(n: i32, buffers: *u32);
glNamedBufferStorage: proc(buffer: u32, size: int, data: *void, flags: u32);
glNamedBufferData: proc(buffer: u32, size: int, data: *void, usage: u32);
glNamedBufferSubData: proc(buffer: u32, offset: int, size: int, data: *void);
glCopyNamedBufferSubData: proc(readBuffer: u32, writeBuffer: u32, readOffset: int, writeOffset: int, size: int);
glClearNamedBufferData: proc(buffer: u32, internalformat: u32, format: u32, type: u32, data: *void);
glClearNamedBufferSubData: proc(buffer: u32, internalformat: u32, offset: int, size: int, format: u32, type: u32, data: *void);
glMapNamedBuffer: proc(buffer: u32, access: u32): *void;
glMapNamedBufferRange: proc(buffer: u32, offset: int, length: int, access: u32): *void;
glUnmapNamedBuffer: proc(buffer: u32): bool;
glFlushMappedNamedBufferRange: proc(buffer: u32, offset: int, length: int);
glGetNamedBufferParameteriv: proc(buffer: u32, pname: u32, params: *i32);
glGetNamedBufferParameteri64v: proc(buffer: u32, pname: u32, params: *i64);
glGetNamedBufferPointerv: proc(buffer: u32, pname: u32, params: **void);
glGetNamedBufferSubData: proc(buffer: u32, offset: int, size: int, data: *void);
glCreateFramebuffers: proc(n: i32, framebuffers: *u32);
glNamedFramebufferRenderbuffer: proc(framebuffer: u32, attachment: u32, renderbuffertarget: u32, renderbuffer: u32);
glNamedFramebufferParameteri: proc(framebuffer: u32, pname: u32, param: i32);
glNamedFramebufferTexture: proc(framebuffer: u32, attachment: u32, texture: u32, level: i32);
glNamedFramebufferTextureLayer: proc(framebuffer: u32, attachment: u32, texture: u32, level: i32, layer: i32);
glNamedFramebufferDrawBuffer: proc(framebuffer: u32, buf: u32);
glNamedFramebufferDrawBuffers: proc(framebuffer: u32, n: i32, bufs: *u32);
glNamedFramebufferReadBuffer: proc(framebuffer: u32, src: u32);
glInvalidateNamedFramebufferData: proc(framebuffer: u32, numAttachments: i32, attachments: *u32);
glInvalidateNamedFramebufferSubData: proc(framebuffer: u32, numAttachments: i32, attachments: *u32, x: i32, y: i32, width: i32, height: i32);
glClearNamedFramebufferiv: proc(framebuffer: u32, buffer: u32, drawbuffer: i32, value: *i32);
glClearNamedFramebufferuiv: proc(framebuffer: u32, buffer: u32, drawbuffer: i32, value: *u32);
glClearNamedFramebufferfv: proc(framebuffer: u32, buffer: u32, drawbuffer: i32, value: *f32);
glClearNamedFramebufferfi: proc(framebuffer: u32, buffer: u32, drawbuffer: i32, depth: f32, stencil: i32);
glBlitNamedFramebuffer: proc(readFramebuffer: u32, drawFramebuffer: u32, srcX0: i32, srcY0: i32, srcX1: i32, srcY1: i32, dstX0: i32, dstY0: i32, dstX1: i32, dstY1: i32, mask: u32, filter: u32);
glCheckNamedFramebufferStatus: proc(framebuffer: u32, target: u32): u32;
glGetNamedFramebufferParameteriv: proc(framebuffer: u32, pname: u32, param: *i32);
glGetNamedFramebufferAttachmentParameteriv: proc(framebuffer: u32, attachment: u32, pname: u32, params: *i32);
glCreateRenderbuffers: proc(n: i32, renderbuffers: *u32);
glNamedRenderbufferStorage: proc(renderbuffer: u32, internalformat: u32, width: i32, height: i32);
glNamedRenderbufferStorageMultisample: proc(renderbuffer: u32, samples: i32, internalformat: u32, width: i32, height: i32);
glGetNamedRenderbufferParameteriv: proc(renderbuffer: u32, pname: u32, params: *i32);
glCreateTextures: proc(target: u32, n: i32, textures: *u32);
glTextureBuffer: proc(texture: u32, internalformat: u32, buffer: u32);
glTextureBufferRange: proc(texture: u32, internalformat: u32, buffer: u32, offset: int, size: int);
glTextureStorage1D: proc(texture: u32, levels: i32, internalformat: u32, width: i32);
glTextureStorage2D: proc(texture: u32, levels: i32, internalformat: u32, width: i32, height: i32);
glTextureStorage3D: proc(texture: u32, levels: i32, internalformat: u32, width: i32, height: i32, depth: i32);
glTextureStorage2DMultisample: proc(texture: u32, samples: i32, internalformat: u32, width: i32, height: i32, fixedsamplelocations: bool);
glTextureStorage3DMultisample: proc(texture: u32, samples: i32, internalformat: u32, width: i32, height: i32, depth: i32, fixedsamplelocations: bool);
glTextureSubImage1D: proc(texture: u32, level: i32, xoffset: i32, width: i32, format: u32, type: u32, pixels: *void);
glTextureSubImage2D: proc(texture: u32, level: i32, xoffset: i32, yoffset: i32, width: i32, height: i32, format: u32, type: u32, pixels: *void);
glTextureSubImage3D: proc(texture: u32, level: i32, xoffset: i32, yoffset: i32, zoffset: i32, width: i32, height: i32, depth: i32, format: u32, type: u32, pixels: *void);
glCompressedTextureSubImage1D: proc(texture: u32, level: i32, xoffset: i32, width: i32, format: u32, imageSize: i32, data: *void);
glCompressedTextureSubImage2D: proc(texture: u32, level: i32, xoffset: i32, yoffset: i32, width: i32, height: i32, format: u32, imageSize: i32, data: *void);
glCompressedTextureSubImage3D: proc(texture: u32, level: i32, xoffset: i32, yoffset: i32, zoffset: i32, width: i32, height: i32, depth: i32, format: u32, imageSize: i32, data: *void);
glCopyTextureSubImage1D: proc(texture: u32, level: i32, xoffset: i32, x: i32, y: i32, width: i32);
glCopyTextureSubImage2D: proc(texture: u32, level: i32, xoffset: i32, yoffset: i32, x: i32, y: i32, width: i32, height: i32);
glCopyTextureSubImage3D: proc(texture: u32, level: i32, xoffset: i32, yoffset: i32, zoffset: i32, x: i32, y: i32, width: i32, height: i32);
glTextureParameterf: proc(texture: u32, pname: u32, param: f32);
glTextureParameterfv: proc(texture: u32, pname: u32, param: *f32);
glTextureParameteri: proc(texture: u32, pname: u32, param: i32);
glTextureParameterIiv: proc(texture: u32, pname: u32, params: *i32);
glTextureParameterIuiv: proc(texture: u32, pname: u32, params: *u32);
glTextureParameteriv: proc(texture: u32, pname: u32, param: *i32);
glGenerateTextureMipmap: proc(texture: u32);
glBindTextureUnit: proc(unit: u32, texture: u32);
glGetTextureImage: proc(texture: u32, level: i32, format: u32, type: u32, bufSize: i32, pixels: *void);
glGetCompressedTextureImage: proc(texture: u32, level: i32, bufSize: i32, pixels: *void);
glGetTextureLevelParameterfv: proc(texture: u32, level: i32, pname: u32, params: *f32);
glGetTextureLevelParameteriv: proc(texture: u32, level: i32, pname: u32, params: *i32);
glGetTextureParameterfv: proc(texture: u32, pname: u32, params: *f32);
glGetTextureParameterIiv: proc(texture: u32, pname: u32, params: *i32);
glGetTextureParameterIuiv: proc(texture: u32, pname: u32, params: *u32);
glGetTextureParameteriv: proc(texture: u32, pname: u32, params: *i32);
glCreateVertexArrays: proc(n: i32, arrays: *u32);
glDisableVertexArrayAttrib: proc(vaobj: u32, index: u32);
glEnableVertexArrayAttrib: proc(vaobj: u32, index: u32);
glVertexArrayElementBuffer: proc(vaobj: u32, buffer: u32);
glVertexArrayVertexBuffer: proc(vaobj: u32, bindingindex: u32, buffer: u32, offset: int, stride: i32);
glVertexArrayVertexBuffers: proc(vaobj: u32, first: u32, count: i32, buffers: *u32, offsets: *uintptr, strides: *i32);
glVertexArrayAttribBinding: proc(vaobj: u32, attribindex: u32, bindingindex: u32);
glVertexArrayAttribFormat: proc(vaobj: u32, attribindex: u32, size: i32, type: u32, normalized: bool, relativeoffset: u32);
glVertexArrayAttribIFormat: proc(vaobj: u32, attribindex: u32, size: i32, type: u32, relativeoffset: u32);
glVertexArrayAttribLFormat: proc(vaobj: u32, attribindex: u32, size: i32, type: u32, relativeoffset: u32);
glVertexArrayBindingDivisor: proc(vaobj: u32, bindingindex: u32, divisor: u32);
glGetVertexArrayiv: proc(vaobj: u32, pname: u32, param: *i32);
glGetVertexArrayIndexediv: proc(vaobj: u32, index: u32, pname: u32, param: *i32);
glGetVertexArrayIndexed64iv: proc(vaobj: u32, index: u32, pname: u32, param: *i64);
glCreateSamplers: proc(n: i32, samplers: *u32);
glCreateProgramPipelines: proc(n: i32, pipelines: *u32);
glCreateQueries: proc(target: u32, n: i32, ids: *u32);
glGetQueryBufferObjecti64v: proc(id: u32, buffer: u32, pname: u32, offset: int);
glGetQueryBufferObjectiv: proc(id: u32, buffer: u32, pname: u32, offset: int);
glGetQueryBufferObjectui64v: proc(id: u32, buffer: u32, pname: u32, offset: int);
glGetQueryBufferObjectuiv: proc(id: u32, buffer: u32, pname: u32, offset: int);
glMemoryBarrierByRegion: proc(barriers: u32);
glGetTextureSubImage: proc(texture: u32, level: i32, xoffset: i32, yoffset: i32, zoffset: i32, width: i32, height: i32, depth: i32, format: u32, type: u32, bufSize: i32, pixels: *void);
glGetCompressedTextureSubImage: proc(texture: u32, level: i32, xoffset: i32, yoffset: i32, zoffset: i32, width: i32, height: i32, depth: i32, bufSize: i32, pixels: *void);
glGetGraphicsResetStatus: proc(): u32;
glGetnCompressedTexImage: proc(target: u32, lod: i32, bufSize: i32, pixels: *void);
glGetnTexImage: proc(target: u32, level: i32, format: u32, type: u32, bufSize: i32, pixels: *void);
glGetnUniformdv: proc(program: u32, location: i32, bufSize: i32, params: *f64);
glGetnUniformfv: proc(program: u32, location: i32, bufSize: i32, params: *f32);
glGetnUniformiv: proc(program: u32, location: i32, bufSize: i32, params: *i32);
glGetnUniformuiv: proc(program: u32, location: i32, bufSize: i32, params: *u32);
glReadnPixels: proc(x: i32, y: i32, width: i32, height: i32, format: u32, type: u32, bufSize: i32, data: *void);
glGetnMapdv: proc(target: u32, query: u32, bufSize: i32, v: *f64);
glGetnMapfv: proc(target: u32, query: u32, bufSize: i32, v: *f32);
glGetnMapiv: proc(target: u32, query: u32, bufSize: i32, v: *i32);
glGetnPixelMapusv: proc(map_: u32, bufSize: i32, values: *u16);
glGetnPixelMapfv: proc(map_: u32, bufSize: i32, values: *f32);
glGetnPixelMapuiv: proc(map_: u32, bufSize: i32, values: *u32);
glGetnPolygonStipple: proc(bufSize: i32, pattern: *u8);
glGetnColorTable: proc(target: u32, format: u32, type: u32, bufSize: i32, table: *void);
glGetnConvolutionFilter: proc(target: u32, format: u32, type: u32, bufSize: i32, image: *void);
glGetnSeparableFilter: proc(target: u32, format: u32, type: u32, rowBufSize: i32, row: *void, columnBufSize: i32, column: *void, span: *void);
glGetnHistogram: proc(target: u32, reset: bool, format: u32, type: u32, bufSize: i32, values: *void);
glGetnMinmax: proc(target: u32, reset: bool, format: u32, type: u32, bufSize: i32, values: *void);
glTextureBarrier: proc();
glGetUnsignedBytevEXT: proc(pname: u32, data: *u8);
glTexPageCommitmentARB: proc(target: u32, level: i32, xoffset: i32, yoffset: i32, zoffset: i32, width: i32, height: i32, depth: i32, commit: bool);
load_4_5 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glClipControl, "glClipControl");
set_proc_address(&glCreateTransformFeedbacks, "glCreateTransformFeedbacks");
set_proc_address(&glTransformFeedbackBufferBase, "glTransformFeedbackBufferBase");
set_proc_address(&glTransformFeedbackBufferRange, "glTransformFeedbackBufferRange");
set_proc_address(&glGetTransformFeedbackiv, "glGetTransformFeedbackiv");
set_proc_address(&glGetTransformFeedbacki_v, "glGetTransformFeedbacki_v");
set_proc_address(&glGetTransformFeedbacki64_v, "glGetTransformFeedbacki64_v");
set_proc_address(&glCreateBuffers, "glCreateBuffers");
set_proc_address(&glNamedBufferStorage, "glNamedBufferStorage");
set_proc_address(&glNamedBufferData, "glNamedBufferData");
set_proc_address(&glNamedBufferSubData, "glNamedBufferSubData");
set_proc_address(&glCopyNamedBufferSubData, "glCopyNamedBufferSubData");
set_proc_address(&glClearNamedBufferData, "glClearNamedBufferData");
set_proc_address(&glClearNamedBufferSubData, "glClearNamedBufferSubData");
set_proc_address(&glMapNamedBuffer, "glMapNamedBuffer");
set_proc_address(&glMapNamedBufferRange, "glMapNamedBufferRange");
set_proc_address(&glUnmapNamedBuffer, "glUnmapNamedBuffer");
set_proc_address(&glFlushMappedNamedBufferRange, "glFlushMappedNamedBufferRange");
set_proc_address(&glGetNamedBufferParameteriv, "glGetNamedBufferParameteriv");
set_proc_address(&glGetNamedBufferParameteri64v, "glGetNamedBufferParameteri64v");
set_proc_address(&glGetNamedBufferPointerv, "glGetNamedBufferPointerv");
set_proc_address(&glGetNamedBufferSubData, "glGetNamedBufferSubData");
set_proc_address(&glCreateFramebuffers, "glCreateFramebuffers");
set_proc_address(&glNamedFramebufferRenderbuffer, "glNamedFramebufferRenderbuffer");
set_proc_address(&glNamedFramebufferParameteri, "glNamedFramebufferParameteri");
set_proc_address(&glNamedFramebufferTexture, "glNamedFramebufferTexture");
set_proc_address(&glNamedFramebufferTextureLayer, "glNamedFramebufferTextureLayer");
set_proc_address(&glNamedFramebufferDrawBuffer, "glNamedFramebufferDrawBuffer");
set_proc_address(&glNamedFramebufferDrawBuffers, "glNamedFramebufferDrawBuffers");
set_proc_address(&glNamedFramebufferReadBuffer, "glNamedFramebufferReadBuffer");
set_proc_address(&glInvalidateNamedFramebufferData, "glInvalidateNamedFramebufferData");
set_proc_address(&glInvalidateNamedFramebufferSubData, "glInvalidateNamedFramebufferSubData");
set_proc_address(&glClearNamedFramebufferiv, "glClearNamedFramebufferiv");
set_proc_address(&glClearNamedFramebufferuiv, "glClearNamedFramebufferuiv");
set_proc_address(&glClearNamedFramebufferfv, "glClearNamedFramebufferfv");
set_proc_address(&glClearNamedFramebufferfi, "glClearNamedFramebufferfi");
set_proc_address(&glBlitNamedFramebuffer, "glBlitNamedFramebuffer");
set_proc_address(&glCheckNamedFramebufferStatus, "glCheckNamedFramebufferStatus");
set_proc_address(&glGetNamedFramebufferParameteriv, "glGetNamedFramebufferParameteriv");
set_proc_address(&glGetNamedFramebufferAttachmentParameteriv, "glGetNamedFramebufferAttachmentParameteriv");
set_proc_address(&glCreateRenderbuffers, "glCreateRenderbuffers");
set_proc_address(&glNamedRenderbufferStorage, "glNamedRenderbufferStorage");
set_proc_address(&glNamedRenderbufferStorageMultisample, "glNamedRenderbufferStorageMultisample");
set_proc_address(&glGetNamedRenderbufferParameteriv, "glGetNamedRenderbufferParameteriv");
set_proc_address(&glCreateTextures, "glCreateTextures");
set_proc_address(&glTextureBuffer, "glTextureBuffer");
set_proc_address(&glTextureBufferRange, "glTextureBufferRange");
set_proc_address(&glTextureStorage1D, "glTextureStorage1D");
set_proc_address(&glTextureStorage2D, "glTextureStorage2D");
set_proc_address(&glTextureStorage3D, "glTextureStorage3D");
set_proc_address(&glTextureStorage2DMultisample, "glTextureStorage2DMultisample");
set_proc_address(&glTextureStorage3DMultisample, "glTextureStorage3DMultisample");
set_proc_address(&glTextureSubImage1D, "glTextureSubImage1D");
set_proc_address(&glTextureSubImage2D, "glTextureSubImage2D");
set_proc_address(&glTextureSubImage3D, "glTextureSubImage3D");
set_proc_address(&glCompressedTextureSubImage1D, "glCompressedTextureSubImage1D");
set_proc_address(&glCompressedTextureSubImage2D, "glCompressedTextureSubImage2D");
set_proc_address(&glCompressedTextureSubImage3D, "glCompressedTextureSubImage3D");
set_proc_address(&glCopyTextureSubImage1D, "glCopyTextureSubImage1D");
set_proc_address(&glCopyTextureSubImage2D, "glCopyTextureSubImage2D");
set_proc_address(&glCopyTextureSubImage3D, "glCopyTextureSubImage3D");
set_proc_address(&glTextureParameterf, "glTextureParameterf");
set_proc_address(&glTextureParameterfv, "glTextureParameterfv");
set_proc_address(&glTextureParameteri, "glTextureParameteri");
set_proc_address(&glTextureParameterIiv, "glTextureParameterIiv");
set_proc_address(&glTextureParameterIuiv, "glTextureParameterIuiv");
set_proc_address(&glTextureParameteriv, "glTextureParameteriv");
set_proc_address(&glGenerateTextureMipmap, "glGenerateTextureMipmap");
set_proc_address(&glBindTextureUnit, "glBindTextureUnit");
set_proc_address(&glGetTextureImage, "glGetTextureImage");
set_proc_address(&glGetCompressedTextureImage, "glGetCompressedTextureImage");
set_proc_address(&glGetTextureLevelParameterfv, "glGetTextureLevelParameterfv");
set_proc_address(&glGetTextureLevelParameteriv, "glGetTextureLevelParameteriv");
set_proc_address(&glGetTextureParameterfv, "glGetTextureParameterfv");
set_proc_address(&glGetTextureParameterIiv, "glGetTextureParameterIiv");
set_proc_address(&glGetTextureParameterIuiv, "glGetTextureParameterIuiv");
set_proc_address(&glGetTextureParameteriv, "glGetTextureParameteriv");
set_proc_address(&glCreateVertexArrays, "glCreateVertexArrays");
set_proc_address(&glDisableVertexArrayAttrib, "glDisableVertexArrayAttrib");
set_proc_address(&glEnableVertexArrayAttrib, "glEnableVertexArrayAttrib");
set_proc_address(&glVertexArrayElementBuffer, "glVertexArrayElementBuffer");
set_proc_address(&glVertexArrayVertexBuffer, "glVertexArrayVertexBuffer");
set_proc_address(&glVertexArrayVertexBuffers, "glVertexArrayVertexBuffers");
set_proc_address(&glVertexArrayAttribBinding, "glVertexArrayAttribBinding");
set_proc_address(&glVertexArrayAttribFormat, "glVertexArrayAttribFormat");
set_proc_address(&glVertexArrayAttribIFormat, "glVertexArrayAttribIFormat");
set_proc_address(&glVertexArrayAttribLFormat, "glVertexArrayAttribLFormat");
set_proc_address(&glVertexArrayBindingDivisor, "glVertexArrayBindingDivisor");
set_proc_address(&glGetVertexArrayiv, "glGetVertexArrayiv");
set_proc_address(&glGetVertexArrayIndexediv, "glGetVertexArrayIndexediv");
set_proc_address(&glGetVertexArrayIndexed64iv, "glGetVertexArrayIndexed64iv");
set_proc_address(&glCreateSamplers, "glCreateSamplers");
set_proc_address(&glCreateProgramPipelines, "glCreateProgramPipelines");
set_proc_address(&glCreateQueries, "glCreateQueries");
set_proc_address(&glGetQueryBufferObjecti64v, "glGetQueryBufferObjecti64v");
set_proc_address(&glGetQueryBufferObjectiv, "glGetQueryBufferObjectiv");
set_proc_address(&glGetQueryBufferObjectui64v, "glGetQueryBufferObjectui64v");
set_proc_address(&glGetQueryBufferObjectuiv, "glGetQueryBufferObjectuiv");
set_proc_address(&glMemoryBarrierByRegion, "glMemoryBarrierByRegion");
set_proc_address(&glGetTextureSubImage, "glGetTextureSubImage");
set_proc_address(&glGetCompressedTextureSubImage, "glGetCompressedTextureSubImage");
set_proc_address(&glGetGraphicsResetStatus, "glGetGraphicsResetStatus");
set_proc_address(&glGetnCompressedTexImage, "glGetnCompressedTexImage");
set_proc_address(&glGetnTexImage, "glGetnTexImage");
set_proc_address(&glGetnUniformdv, "glGetnUniformdv");
set_proc_address(&glGetnUniformfv, "glGetnUniformfv");
set_proc_address(&glGetnUniformiv, "glGetnUniformiv");
set_proc_address(&glGetnUniformuiv, "glGetnUniformuiv");
set_proc_address(&glReadnPixels, "glReadnPixels");
set_proc_address(&glGetnMapdv, "glGetnMapdv");
set_proc_address(&glGetnMapfv, "glGetnMapfv");
set_proc_address(&glGetnMapiv, "glGetnMapiv");
set_proc_address(&glGetnPixelMapfv, "glGetnPixelMapfv");
set_proc_address(&glGetnPixelMapuiv, "glGetnPixelMapuiv");
set_proc_address(&glGetnPixelMapusv, "glGetnPixelMapusv");
set_proc_address(&glGetnPolygonStipple, "glGetnPolygonStipple");
set_proc_address(&glGetnColorTable, "glGetnColorTable");
set_proc_address(&glGetnConvolutionFilter, "glGetnConvolutionFilter");
set_proc_address(&glGetnSeparableFilter, "glGetnSeparableFilter");
set_proc_address(&glGetnHistogram, "glGetnHistogram");
set_proc_address(&glGetnMinmax, "glGetnMinmax");
set_proc_address(&glTextureBarrier, "glTextureBarrier");
set_proc_address(&glGetUnsignedBytevEXT, "glGetUnsignedBytevEXT");
set_proc_address(&glTexPageCommitmentARB, "glTexPageCommitmentARB");
}
// VERSION_4_6
glSpecializeShader: proc(shader: u32, pEntryPoint: *char, numSpecializationConstants: u32, pConstantIndex: *u32, pConstantValue: *u32);
glMultiDrawArraysIndirectCount: proc(mode: i32, indirect: *DrawArraysIndirectCommand, drawcount: i32, maxdrawcount: i32, stride: i32);
glMultiDrawElementsIndirectCount: proc(mode: i32, type: i32, indirect: *DrawElementsIndirectCommand, drawcount: i32, maxdrawcount: i32, stride: i32);
glPolygonOffsetClamp: proc(factor: f32, units: f32, clamp: f32);
load_4_6 :: proc(set_proc_address: Set_Proc_Address_Type) {
set_proc_address(&glSpecializeShader, "glSpecializeShader");
set_proc_address(&glMultiDrawArraysIndirectCount, "glMultiDrawArraysIndirectCount");
set_proc_address(&glMultiDrawElementsIndirectCount, "glMultiDrawElementsIndirectCount");
set_proc_address(&glPolygonOffsetClamp, "glPolygonOffsetClamp");
}