using System;

namespace SteelEngine.GL {
    class GL {
        public function void* GetProcAddressFunc(StringView procname);

        public const uint GL_DEPTH_BUFFER_BIT = 0x00000100;
        public const uint GL_STENCIL_BUFFER_BIT = 0x00000400;
        public const uint GL_COLOR_BUFFER_BIT = 0x00004000;
        public const uint GL_FALSE = 0;
        public const uint GL_TRUE = 1;
        public const uint GL_POINTS = 0x0000;
        public const uint GL_LINES = 0x0001;
        public const uint GL_LINE_LOOP = 0x0002;
        public const uint GL_LINE_STRIP = 0x0003;
        public const uint GL_TRIANGLES = 0x0004;
        public const uint GL_TRIANGLE_STRIP = 0x0005;
        public const uint GL_TRIANGLE_FAN = 0x0006;
        public const uint GL_NEVER = 0x0200;
        public const uint GL_LESS = 0x0201;
        public const uint GL_EQUAL = 0x0202;
        public const uint GL_LEQUAL = 0x0203;
        public const uint GL_GREATER = 0x0204;
        public const uint GL_NOTEQUAL = 0x0205;
        public const uint GL_GEQUAL = 0x0206;
        public const uint GL_ALWAYS = 0x0207;
        public const uint GL_ZERO = 0;
        public const uint GL_ONE = 1;
        public const uint GL_SRC_COLOR = 0x0300;
        public const uint GL_ONE_MINUS_SRC_COLOR = 0x0301;
        public const uint GL_SRC_ALPHA = 0x0302;
        public const uint GL_ONE_MINUS_SRC_ALPHA = 0x0303;
        public const uint GL_DST_ALPHA = 0x0304;
        public const uint GL_ONE_MINUS_DST_ALPHA = 0x0305;
        public const uint GL_DST_COLOR = 0x0306;
        public const uint GL_ONE_MINUS_DST_COLOR = 0x0307;
        public const uint GL_SRC_ALPHA_SATURATE = 0x0308;
        public const uint GL_NONE = 0;
        public const uint GL_FRONT_LEFT = 0x0400;
        public const uint GL_FRONT_RIGHT = 0x0401;
        public const uint GL_BACK_LEFT = 0x0402;
        public const uint GL_BACK_RIGHT = 0x0403;
        public const uint GL_FRONT = 0x0404;
        public const uint GL_BACK = 0x0405;
        public const uint GL_LEFT = 0x0406;
        public const uint GL_RIGHT = 0x0407;
        public const uint GL_FRONT_AND_BACK = 0x0408;
        public const uint GL_NO_ERROR = 0;
        public const uint GL_INVALID_ENUM = 0x0500;
        public const uint GL_INVALID_VALUE = 0x0501;
        public const uint GL_INVALID_OPERATION = 0x0502;
        public const uint GL_OUT_OF_MEMORY = 0x0505;
        public const uint GL_CW = 0x0900;
        public const uint GL_CCW = 0x0901;
        public const uint GL_POINT_SIZE = 0x0B11;
        public const uint GL_POINT_SIZE_RANGE = 0x0B12;
        public const uint GL_POINT_SIZE_GRANULARITY = 0x0B13;
        public const uint GL_LINE_SMOOTH = 0x0B20;
        public const uint GL_LINE_WIDTH = 0x0B21;
        public const uint GL_LINE_WIDTH_RANGE = 0x0B22;
        public const uint GL_LINE_WIDTH_GRANULARITY = 0x0B23;
        public const uint GL_POLYGON_MODE = 0x0B40;
        public const uint GL_POLYGON_SMOOTH = 0x0B41;
        public const uint GL_CULL_FACE = 0x0B44;
        public const uint GL_CULL_FACE_MODE = 0x0B45;
        public const uint GL_FRONT_FACE = 0x0B46;
        public const uint GL_DEPTH_RANGE = 0x0B70;
        public const uint GL_DEPTH_TEST = 0x0B71;
        public const uint GL_DEPTH_WRITEMASK = 0x0B72;
        public const uint GL_DEPTH_CLEAR_VALUE = 0x0B73;
        public const uint GL_DEPTH_FUNC = 0x0B74;
        public const uint GL_STENCIL_TEST = 0x0B90;
        public const uint GL_STENCIL_CLEAR_VALUE = 0x0B91;
        public const uint GL_STENCIL_FUNC = 0x0B92;
        public const uint GL_STENCIL_VALUE_MASK = 0x0B93;
        public const uint GL_STENCIL_FAIL = 0x0B94;
        public const uint GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95;
        public const uint GL_STENCIL_PASS_DEPTH_PASS = 0x0B96;
        public const uint GL_STENCIL_REF = 0x0B97;
        public const uint GL_STENCIL_WRITEMASK = 0x0B98;
        public const uint GL_VIEWPORT = 0x0BA2;
        public const uint GL_DITHER = 0x0BD0;
        public const uint GL_BLEND_DST = 0x0BE0;
        public const uint GL_BLEND_SRC = 0x0BE1;
        public const uint GL_BLEND = 0x0BE2;
        public const uint GL_LOGIC_OP_MODE = 0x0BF0;
        public const uint GL_DRAW_BUFFER = 0x0C01;
        public const uint GL_READ_BUFFER = 0x0C02;
        public const uint GL_SCISSOR_BOX = 0x0C10;
        public const uint GL_SCISSOR_TEST = 0x0C11;
        public const uint GL_COLOR_CLEAR_VALUE = 0x0C22;
        public const uint GL_COLOR_WRITEMASK = 0x0C23;
        public const uint GL_DOUBLEBUFFER = 0x0C32;
        public const uint GL_STEREO = 0x0C33;
        public const uint GL_LINE_SMOOTH_HINT = 0x0C52;
        public const uint GL_POLYGON_SMOOTH_HINT = 0x0C53;
        public const uint GL_UNPACK_SWAP_BYTES = 0x0CF0;
        public const uint GL_UNPACK_LSB_FIRST = 0x0CF1;
        public const uint GL_UNPACK_ROW_LENGTH = 0x0CF2;
        public const uint GL_UNPACK_SKIP_ROWS = 0x0CF3;
        public const uint GL_UNPACK_SKIP_PIXELS = 0x0CF4;
        public const uint GL_UNPACK_ALIGNMENT = 0x0CF5;
        public const uint GL_PACK_SWAP_BYTES = 0x0D00;
        public const uint GL_PACK_LSB_FIRST = 0x0D01;
        public const uint GL_PACK_ROW_LENGTH = 0x0D02;
        public const uint GL_PACK_SKIP_ROWS = 0x0D03;
        public const uint GL_PACK_SKIP_PIXELS = 0x0D04;
        public const uint GL_PACK_ALIGNMENT = 0x0D05;
        public const uint GL_MAX_TEXTURE_SIZE = 0x0D33;
        public const uint GL_MAX_VIEWPORT_DIMS = 0x0D3A;
        public const uint GL_SUBPIXEL_BITS = 0x0D50;
        public const uint GL_TEXTURE_1D = 0x0DE0;
        public const uint GL_TEXTURE_2D = 0x0DE1;
        public const uint GL_TEXTURE_WIDTH = 0x1000;
        public const uint GL_TEXTURE_HEIGHT = 0x1001;
        public const uint GL_TEXTURE_BORDER_COLOR = 0x1004;
        public const uint GL_DONT_CARE = 0x1100;
        public const uint GL_FASTEST = 0x1101;
        public const uint GL_NICEST = 0x1102;
        public const uint GL_BYTE = 0x1400;
        public const uint GL_UNSIGNED_BYTE = 0x1401;
        public const uint GL_SHORT = 0x1402;
        public const uint GL_UNSIGNED_SHORT = 0x1403;
        public const uint GL_INT = 0x1404;
        public const uint GL_UNSIGNED_INT = 0x1405;
        public const uint GL_FLOAT = 0x1406;
        public const uint GL_CLEAR = 0x1500;
        public const uint GL_AND = 0x1501;
        public const uint GL_AND_REVERSE = 0x1502;
        public const uint GL_COPY = 0x1503;
        public const uint GL_AND_INVERTED = 0x1504;
        public const uint GL_NOOP = 0x1505;
        public const uint GL_XOR = 0x1506;
        public const uint GL_OR = 0x1507;
        public const uint GL_NOR = 0x1508;
        public const uint GL_EQUIV = 0x1509;
        public const uint GL_INVERT = 0x150A;
        public const uint GL_OR_REVERSE = 0x150B;
        public const uint GL_COPY_INVERTED = 0x150C;
        public const uint GL_OR_INVERTED = 0x150D;
        public const uint GL_NAND = 0x150E;
        public const uint GL_SET = 0x150F;
        public const uint GL_TEXTURE = 0x1702;
        public const uint GL_COLOR = 0x1800;
        public const uint GL_DEPTH = 0x1801;
        public const uint GL_STENCIL = 0x1802;
        public const uint GL_STENCIL_INDEX = 0x1901;
        public const uint GL_DEPTH_COMPONENT = 0x1902;
        public const uint GL_RED = 0x1903;
        public const uint GL_GREEN = 0x1904;
        public const uint GL_BLUE = 0x1905;
        public const uint GL_ALPHA = 0x1906;
        public const uint GL_RGB = 0x1907;
        public const uint GL_RGBA = 0x1908;
        public const uint GL_POINT = 0x1B00;
        public const uint GL_LINE = 0x1B01;
        public const uint GL_FILL = 0x1B02;
        public const uint GL_KEEP = 0x1E00;
        public const uint GL_REPLACE = 0x1E01;
        public const uint GL_INCR = 0x1E02;
        public const uint GL_DECR = 0x1E03;
        public const uint GL_VENDOR = 0x1F00;
        public const uint GL_RENDERER = 0x1F01;
        public const uint GL_VERSION = 0x1F02;
        public const uint GL_EXTENSIONS = 0x1F03;
        public const uint GL_NEAREST = 0x2600;
        public const uint GL_LINEAR = 0x2601;
        public const uint GL_NEAREST_MIPMAP_NEAREST = 0x2700;
        public const uint GL_LINEAR_MIPMAP_NEAREST = 0x2701;
        public const uint GL_NEAREST_MIPMAP_LINEAR = 0x2702;
        public const uint GL_LINEAR_MIPMAP_LINEAR = 0x2703;
        public const uint GL_TEXTURE_MAG_FILTER = 0x2800;
        public const uint GL_TEXTURE_MIN_FILTER = 0x2801;
        public const uint GL_TEXTURE_WRAP_S = 0x2802;
        public const uint GL_TEXTURE_WRAP_T = 0x2803;
        public const uint GL_REPEAT = 0x2901;
        public const uint GL_COLOR_LOGIC_OP = 0x0BF2;
        public const uint GL_POLYGON_OFFSET_UNITS = 0x2A00;
        public const uint GL_POLYGON_OFFSET_POINT = 0x2A01;
        public const uint GL_POLYGON_OFFSET_LINE = 0x2A02;
        public const uint GL_POLYGON_OFFSET_FILL = 0x8037;
        public const uint GL_POLYGON_OFFSET_FACTOR = 0x8038;
        public const uint GL_TEXTURE_BINDING_1D = 0x8068;
        public const uint GL_TEXTURE_BINDING_2D = 0x8069;
        public const uint GL_TEXTURE_INTERNAL_FORMAT = 0x1003;
        public const uint GL_TEXTURE_RED_SIZE = 0x805C;
        public const uint GL_TEXTURE_GREEN_SIZE = 0x805D;
        public const uint GL_TEXTURE_BLUE_SIZE = 0x805E;
        public const uint GL_TEXTURE_ALPHA_SIZE = 0x805F;
        public const uint GL_DOUBLE = 0x140A;
        public const uint GL_PROXY_TEXTURE_1D = 0x8063;
        public const uint GL_PROXY_TEXTURE_2D = 0x8064;
        public const uint GL_R3_G3_B2 = 0x2A10;
        public const uint GL_RGB4 = 0x804F;
        public const uint GL_RGB5 = 0x8050;
        public const uint GL_RGB8 = 0x8051;
        public const uint GL_RGB10 = 0x8052;
        public const uint GL_RGB12 = 0x8053;
        public const uint GL_RGB16 = 0x8054;
        public const uint GL_RGBA2 = 0x8055;
        public const uint GL_RGBA4 = 0x8056;
        public const uint GL_RGB5_A1 = 0x8057;
        public const uint GL_RGBA8 = 0x8058;
        public const uint GL_RGB10_A2 = 0x8059;
        public const uint GL_RGBA12 = 0x805A;
        public const uint GL_RGBA16 = 0x805B;
        public const uint GL_UNSIGNED_BYTE_3_3_2 = 0x8032;
        public const uint GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033;
        public const uint GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034;
        public const uint GL_UNSIGNED_INT_8_8_8_8 = 0x8035;
        public const uint GL_UNSIGNED_INT_10_10_10_2 = 0x8036;
        public const uint GL_TEXTURE_BINDING_3D = 0x806A;
        public const uint GL_PACK_SKIP_IMAGES = 0x806B;
        public const uint GL_PACK_IMAGE_HEIGHT = 0x806C;
        public const uint GL_UNPACK_SKIP_IMAGES = 0x806D;
        public const uint GL_UNPACK_IMAGE_HEIGHT = 0x806E;
        public const uint GL_TEXTURE_3D = 0x806F;
        public const uint GL_PROXY_TEXTURE_3D = 0x8070;
        public const uint GL_TEXTURE_DEPTH = 0x8071;
        public const uint GL_TEXTURE_WRAP_R = 0x8072;
        public const uint GL_MAX_3D_TEXTURE_SIZE = 0x8073;
        public const uint GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362;
        public const uint GL_UNSIGNED_SHORT_5_6_5 = 0x8363;
        public const uint GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364;
        public const uint GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365;
        public const uint GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366;
        public const uint GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367;
        public const uint GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368;
        public const uint GL_BGR = 0x80E0;
        public const uint GL_BGRA = 0x80E1;
        public const uint GL_MAX_ELEMENTS_VERTICES = 0x80E8;
        public const uint GL_MAX_ELEMENTS_INDICES = 0x80E9;
        public const uint GL_CLAMP_TO_EDGE = 0x812F;
        public const uint GL_TEXTURE_MIN_LOD = 0x813A;
        public const uint GL_TEXTURE_MAX_LOD = 0x813B;
        public const uint GL_TEXTURE_BASE_LEVEL = 0x813C;
        public const uint GL_TEXTURE_MAX_LEVEL = 0x813D;
        public const uint GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12;
        public const uint GL_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13;
        public const uint GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22;
        public const uint GL_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23;
        public const uint GL_ALIASED_LINE_WIDTH_RANGE = 0x846E;
        public const uint GL_TEXTURE0 = 0x84C0;
        public const uint GL_TEXTURE1 = 0x84C1;
        public const uint GL_TEXTURE2 = 0x84C2;
        public const uint GL_TEXTURE3 = 0x84C3;
        public const uint GL_TEXTURE4 = 0x84C4;
        public const uint GL_TEXTURE5 = 0x84C5;
        public const uint GL_TEXTURE6 = 0x84C6;
        public const uint GL_TEXTURE7 = 0x84C7;
        public const uint GL_TEXTURE8 = 0x84C8;
        public const uint GL_TEXTURE9 = 0x84C9;
        public const uint GL_TEXTURE10 = 0x84CA;
        public const uint GL_TEXTURE11 = 0x84CB;
        public const uint GL_TEXTURE12 = 0x84CC;
        public const uint GL_TEXTURE13 = 0x84CD;
        public const uint GL_TEXTURE14 = 0x84CE;
        public const uint GL_TEXTURE15 = 0x84CF;
        public const uint GL_TEXTURE16 = 0x84D0;
        public const uint GL_TEXTURE17 = 0x84D1;
        public const uint GL_TEXTURE18 = 0x84D2;
        public const uint GL_TEXTURE19 = 0x84D3;
        public const uint GL_TEXTURE20 = 0x84D4;
        public const uint GL_TEXTURE21 = 0x84D5;
        public const uint GL_TEXTURE22 = 0x84D6;
        public const uint GL_TEXTURE23 = 0x84D7;
        public const uint GL_TEXTURE24 = 0x84D8;
        public const uint GL_TEXTURE25 = 0x84D9;
        public const uint GL_TEXTURE26 = 0x84DA;
        public const uint GL_TEXTURE27 = 0x84DB;
        public const uint GL_TEXTURE28 = 0x84DC;
        public const uint GL_TEXTURE29 = 0x84DD;
        public const uint GL_TEXTURE30 = 0x84DE;
        public const uint GL_TEXTURE31 = 0x84DF;
        public const uint GL_ACTIVE_TEXTURE = 0x84E0;
        public const uint GL_MULTISAMPLE = 0x809D;
        public const uint GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E;
        public const uint GL_SAMPLE_ALPHA_TO_ONE = 0x809F;
        public const uint GL_SAMPLE_COVERAGE = 0x80A0;
        public const uint GL_SAMPLE_BUFFERS = 0x80A8;
        public const uint GL_SAMPLES = 0x80A9;
        public const uint GL_SAMPLE_COVERAGE_VALUE = 0x80AA;
        public const uint GL_SAMPLE_COVERAGE_INVERT = 0x80AB;
        public const uint GL_TEXTURE_CUBE_MAP = 0x8513;
        public const uint GL_TEXTURE_BINDING_CUBE_MAP = 0x8514;
        public const uint GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;
        public const uint GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;
        public const uint GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;
        public const uint GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;
        public const uint GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;
        public const uint GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A;
        public const uint GL_PROXY_TEXTURE_CUBE_MAP = 0x851B;
        public const uint GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C;
        public const uint GL_COMPRESSED_RGB = 0x84ED;
        public const uint GL_COMPRESSED_RGBA = 0x84EE;
        public const uint GL_TEXTURE_COMPRESSION_HINT = 0x84EF;
        public const uint GL_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0;
        public const uint GL_TEXTURE_COMPRESSED = 0x86A1;
        public const uint GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2;
        public const uint GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3;
        public const uint GL_CLAMP_TO_BORDER = 0x812D;
        public const uint GL_BLEND_DST_RGB = 0x80C8;
        public const uint GL_BLEND_SRC_RGB = 0x80C9;
        public const uint GL_BLEND_DST_ALPHA = 0x80CA;
        public const uint GL_BLEND_SRC_ALPHA = 0x80CB;
        public const uint GL_POINT_FADE_THRESHOLD_SIZE = 0x8128;
        public const uint GL_DEPTH_COMPONENT16 = 0x81A5;
        public const uint GL_DEPTH_COMPONENT24 = 0x81A6;
        public const uint GL_DEPTH_COMPONENT32 = 0x81A7;
        public const uint GL_MIRRORED_REPEAT = 0x8370;
        public const uint GL_MAX_TEXTURE_LOD_BIAS = 0x84FD;
        public const uint GL_TEXTURE_LOD_BIAS = 0x8501;
        public const uint GL_INCR_WRAP = 0x8507;
        public const uint GL_DECR_WRAP = 0x8508;
        public const uint GL_TEXTURE_DEPTH_SIZE = 0x884A;
        public const uint GL_TEXTURE_COMPARE_MODE = 0x884C;
        public const uint GL_TEXTURE_COMPARE_FUNC = 0x884D;
        public const uint GL_BLEND_COLOR = 0x8005;
        public const uint GL_BLEND_EQUATION = 0x8009;
        public const uint GL_CONSTANT_COLOR = 0x8001;
        public const uint GL_ONE_MINUS_CONSTANT_COLOR = 0x8002;
        public const uint GL_CONSTANT_ALPHA = 0x8003;
        public const uint GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004;
        public const uint GL_FUNC_ADD = 0x8006;
        public const uint GL_FUNC_REVERSE_SUBTRACT = 0x800B;
        public const uint GL_FUNC_SUBTRACT = 0x800A;
        public const uint GL_MIN = 0x8007;
        public const uint GL_MAX = 0x8008;
        public const uint GL_BUFFER_SIZE = 0x8764;
        public const uint GL_BUFFER_USAGE = 0x8765;
        public const uint GL_QUERY_COUNTER_BITS = 0x8864;
        public const uint GL_CURRENT_QUERY = 0x8865;
        public const uint GL_QUERY_RESULT = 0x8866;
        public const uint GL_QUERY_RESULT_AVAILABLE = 0x8867;
        public const uint GL_ARRAY_BUFFER = 0x8892;
        public const uint GL_ELEMENT_ARRAY_BUFFER = 0x8893;
        public const uint GL_ARRAY_BUFFER_BINDING = 0x8894;
        public const uint GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;
        public const uint GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;
        public const uint GL_READ_ONLY = 0x88B8;
        public const uint GL_WRITE_ONLY = 0x88B9;
        public const uint GL_READ_WRITE = 0x88BA;
        public const uint GL_BUFFER_ACCESS = 0x88BB;
        public const uint GL_BUFFER_MAPPED = 0x88BC;
        public const uint GL_BUFFER_MAP_POINTER = 0x88BD;
        public const uint GL_STREAM_DRAW = 0x88E0;
        public const uint GL_STREAM_READ = 0x88E1;
        public const uint GL_STREAM_COPY = 0x88E2;
        public const uint GL_STATIC_DRAW = 0x88E4;
        public const uint GL_STATIC_READ = 0x88E5;
        public const uint GL_STATIC_COPY = 0x88E6;
        public const uint GL_DYNAMIC_DRAW = 0x88E8;
        public const uint GL_DYNAMIC_READ = 0x88E9;
        public const uint GL_DYNAMIC_COPY = 0x88EA;
        public const uint GL_SAMPLES_PASSED = 0x8914;
        public const uint GL_SRC1_ALPHA = 0x8589;
        public const uint GL_BLEND_EQUATION_RGB = 0x8009;
        public const uint GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622;
        public const uint GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623;
        public const uint GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624;
        public const uint GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625;
        public const uint GL_CURRENT_VERTEX_ATTRIB = 0x8626;
        public const uint GL_VERTEX_PROGRAM_POINT_SIZE = 0x8642;
        public const uint GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645;
        public const uint GL_STENCIL_BACK_FUNC = 0x8800;
        public const uint GL_STENCIL_BACK_FAIL = 0x8801;
        public const uint GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802;
        public const uint GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803;
        public const uint GL_MAX_DRAW_BUFFERS = 0x8824;
        public const uint GL_DRAW_BUFFER0 = 0x8825;
        public const uint GL_DRAW_BUFFER1 = 0x8826;
        public const uint GL_DRAW_BUFFER2 = 0x8827;
        public const uint GL_DRAW_BUFFER3 = 0x8828;
        public const uint GL_DRAW_BUFFER4 = 0x8829;
        public const uint GL_DRAW_BUFFER5 = 0x882A;
        public const uint GL_DRAW_BUFFER6 = 0x882B;
        public const uint GL_DRAW_BUFFER7 = 0x882C;
        public const uint GL_DRAW_BUFFER8 = 0x882D;
        public const uint GL_DRAW_BUFFER9 = 0x882E;
        public const uint GL_DRAW_BUFFER10 = 0x882F;
        public const uint GL_DRAW_BUFFER11 = 0x8830;
        public const uint GL_DRAW_BUFFER12 = 0x8831;
        public const uint GL_DRAW_BUFFER13 = 0x8832;
        public const uint GL_DRAW_BUFFER14 = 0x8833;
        public const uint GL_DRAW_BUFFER15 = 0x8834;
        public const uint GL_BLEND_EQUATION_ALPHA = 0x883D;
        public const uint GL_MAX_VERTEX_ATTRIBS = 0x8869;
        public const uint GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A;
        public const uint GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872;
        public const uint GL_FRAGMENT_SHADER = 0x8B30;
        public const uint GL_VERTEX_SHADER = 0x8B31;
        public const uint GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49;
        public const uint GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A;
        public const uint GL_MAX_VARYING_FLOATS = 0x8B4B;
        public const uint GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C;
        public const uint GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;
        public const uint GL_SHADER_TYPE = 0x8B4F;
        public const uint GL_FLOAT_VEC2 = 0x8B50;
        public const uint GL_FLOAT_VEC3 = 0x8B51;
        public const uint GL_FLOAT_VEC4 = 0x8B52;
        public const uint GL_INT_VEC2 = 0x8B53;
        public const uint GL_INT_VEC3 = 0x8B54;
        public const uint GL_INT_VEC4 = 0x8B55;
        public const uint GL_BOOL = 0x8B56;
        public const uint GL_BOOL_VEC2 = 0x8B57;
        public const uint GL_BOOL_VEC3 = 0x8B58;
        public const uint GL_BOOL_VEC4 = 0x8B59;
        public const uint GL_FLOAT_MAT2 = 0x8B5A;
        public const uint GL_FLOAT_MAT3 = 0x8B5B;
        public const uint GL_FLOAT_MAT4 = 0x8B5C;
        public const uint GL_SAMPLER_1D = 0x8B5D;
        public const uint GL_SAMPLER_2D = 0x8B5E;
        public const uint GL_SAMPLER_3D = 0x8B5F;
        public const uint GL_SAMPLER_CUBE = 0x8B60;
        public const uint GL_SAMPLER_1D_SHADOW = 0x8B61;
        public const uint GL_SAMPLER_2D_SHADOW = 0x8B62;
        public const uint GL_DELETE_STATUS = 0x8B80;
        public const uint GL_COMPILE_STATUS = 0x8B81;
        public const uint GL_LINK_STATUS = 0x8B82;
        public const uint GL_VALIDATE_STATUS = 0x8B83;
        public const uint GL_INFO_LOG_LENGTH = 0x8B84;
        public const uint GL_ATTACHED_SHADERS = 0x8B85;
        public const uint GL_ACTIVE_UNIFORMS = 0x8B86;
        public const uint GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87;
        public const uint GL_SHADER_SOURCE_LENGTH = 0x8B88;
        public const uint GL_ACTIVE_ATTRIBUTES = 0x8B89;
        public const uint GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A;
        public const uint GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B;
        public const uint GL_SHADING_LANGUAGE_VERSION = 0x8B8C;
        public const uint GL_CURRENT_PROGRAM = 0x8B8D;
        public const uint GL_POINT_SPRITE_COORD_ORIGIN = 0x8CA0;
        public const uint GL_LOWER_LEFT = 0x8CA1;
        public const uint GL_UPPER_LEFT = 0x8CA2;
        public const uint GL_STENCIL_BACK_REF = 0x8CA3;
        public const uint GL_STENCIL_BACK_VALUE_MASK = 0x8CA4;
        public const uint GL_STENCIL_BACK_WRITEMASK = 0x8CA5;
        public const uint GL_PIXEL_PACK_BUFFER = 0x88EB;
        public const uint GL_PIXEL_UNPACK_BUFFER = 0x88EC;
        public const uint GL_PIXEL_PACK_BUFFER_BINDING = 0x88ED;
        public const uint GL_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF;
        public const uint GL_FLOAT_MAT2x3 = 0x8B65;
        public const uint GL_FLOAT_MAT2x4 = 0x8B66;
        public const uint GL_FLOAT_MAT3x2 = 0x8B67;
        public const uint GL_FLOAT_MAT3x4 = 0x8B68;
        public const uint GL_FLOAT_MAT4x2 = 0x8B69;
        public const uint GL_FLOAT_MAT4x3 = 0x8B6A;
        public const uint GL_SRGB = 0x8C40;
        public const uint GL_SRGB8 = 0x8C41;
        public const uint GL_SRGB_ALPHA = 0x8C42;
        public const uint GL_SRGB8_ALPHA8 = 0x8C43;
        public const uint GL_COMPRESSED_SRGB = 0x8C48;
        public const uint GL_COMPRESSED_SRGB_ALPHA = 0x8C49;
        public const uint GL_COMPARE_REF_TO_TEXTURE = 0x884E;
        public const uint GL_CLIP_DISTANCE0 = 0x3000;
        public const uint GL_CLIP_DISTANCE1 = 0x3001;
        public const uint GL_CLIP_DISTANCE2 = 0x3002;
        public const uint GL_CLIP_DISTANCE3 = 0x3003;
        public const uint GL_CLIP_DISTANCE4 = 0x3004;
        public const uint GL_CLIP_DISTANCE5 = 0x3005;
        public const uint GL_CLIP_DISTANCE6 = 0x3006;
        public const uint GL_CLIP_DISTANCE7 = 0x3007;
        public const uint GL_MAX_CLIP_DISTANCES = 0x0D32;
        public const uint GL_MAJOR_VERSION = 0x821B;
        public const uint GL_MINOR_VERSION = 0x821C;
        public const uint GL_NUM_EXTENSIONS = 0x821D;
        public const uint GL_CONTEXT_FLAGS = 0x821E;
        public const uint GL_COMPRESSED_RED = 0x8225;
        public const uint GL_COMPRESSED_RG = 0x8226;
        public const uint GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001;
        public const uint GL_RGBA32F = 0x8814;
        public const uint GL_RGB32F = 0x8815;
        public const uint GL_RGBA16F = 0x881A;
        public const uint GL_RGB16F = 0x881B;
        public const uint GL_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD;
        public const uint GL_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF;
        public const uint GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904;
        public const uint GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905;
        public const uint GL_CLAMP_READ_COLOR = 0x891C;
        public const uint GL_FIXED_ONLY = 0x891D;
        public const uint GL_MAX_VARYING_COMPONENTS = 0x8B4B;
        public const uint GL_TEXTURE_1D_ARRAY = 0x8C18;
        public const uint GL_PROXY_TEXTURE_1D_ARRAY = 0x8C19;
        public const uint GL_TEXTURE_2D_ARRAY = 0x8C1A;
        public const uint GL_PROXY_TEXTURE_2D_ARRAY = 0x8C1B;
        public const uint GL_TEXTURE_BINDING_1D_ARRAY = 0x8C1C;
        public const uint GL_TEXTURE_BINDING_2D_ARRAY = 0x8C1D;
        public const uint GL_R11F_G11F_B10F = 0x8C3A;
        public const uint GL_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B;
        public const uint GL_RGB9_E5 = 0x8C3D;
        public const uint GL_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E;
        public const uint GL_TEXTURE_SHARED_SIZE = 0x8C3F;
        public const uint GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76;
        public const uint GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F;
        public const uint GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80;
        public const uint GL_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83;
        public const uint GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84;
        public const uint GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85;
        public const uint GL_PRIMITIVES_GENERATED = 0x8C87;
        public const uint GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88;
        public const uint GL_RASTERIZER_DISCARD = 0x8C89;
        public const uint GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A;
        public const uint GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B;
        public const uint GL_INTERLEAVED_ATTRIBS = 0x8C8C;
        public const uint GL_SEPARATE_ATTRIBS = 0x8C8D;
        public const uint GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E;
        public const uint GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F;
        public const uint GL_RGBA32UI = 0x8D70;
        public const uint GL_RGB32UI = 0x8D71;
        public const uint GL_RGBA16UI = 0x8D76;
        public const uint GL_RGB16UI = 0x8D77;
        public const uint GL_RGBA8UI = 0x8D7C;
        public const uint GL_RGB8UI = 0x8D7D;
        public const uint GL_RGBA32I = 0x8D82;
        public const uint GL_RGB32I = 0x8D83;
        public const uint GL_RGBA16I = 0x8D88;
        public const uint GL_RGB16I = 0x8D89;
        public const uint GL_RGBA8I = 0x8D8E;
        public const uint GL_RGB8I = 0x8D8F;
        public const uint GL_RED_INTEGER = 0x8D94;
        public const uint GL_GREEN_INTEGER = 0x8D95;
        public const uint GL_BLUE_INTEGER = 0x8D96;
        public const uint GL_RGB_INTEGER = 0x8D98;
        public const uint GL_RGBA_INTEGER = 0x8D99;
        public const uint GL_BGR_INTEGER = 0x8D9A;
        public const uint GL_BGRA_INTEGER = 0x8D9B;
        public const uint GL_SAMPLER_1D_ARRAY = 0x8DC0;
        public const uint GL_SAMPLER_2D_ARRAY = 0x8DC1;
        public const uint GL_SAMPLER_1D_ARRAY_SHADOW = 0x8DC3;
        public const uint GL_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4;
        public const uint GL_SAMPLER_CUBE_SHADOW = 0x8DC5;
        public const uint GL_UNSIGNED_INT_VEC2 = 0x8DC6;
        public const uint GL_UNSIGNED_INT_VEC3 = 0x8DC7;
        public const uint GL_UNSIGNED_INT_VEC4 = 0x8DC8;
        public const uint GL_INT_SAMPLER_1D = 0x8DC9;
        public const uint GL_INT_SAMPLER_2D = 0x8DCA;
        public const uint GL_INT_SAMPLER_3D = 0x8DCB;
        public const uint GL_INT_SAMPLER_CUBE = 0x8DCC;
        public const uint GL_INT_SAMPLER_1D_ARRAY = 0x8DCE;
        public const uint GL_INT_SAMPLER_2D_ARRAY = 0x8DCF;
        public const uint GL_UNSIGNED_INT_SAMPLER_1D = 0x8DD1;
        public const uint GL_UNSIGNED_INT_SAMPLER_2D = 0x8DD2;
        public const uint GL_UNSIGNED_INT_SAMPLER_3D = 0x8DD3;
        public const uint GL_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4;
        public const uint GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6;
        public const uint GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7;
        public const uint GL_QUERY_WAIT = 0x8E13;
        public const uint GL_QUERY_NO_WAIT = 0x8E14;
        public const uint GL_QUERY_BY_REGION_WAIT = 0x8E15;
        public const uint GL_QUERY_BY_REGION_NO_WAIT = 0x8E16;
        public const uint GL_BUFFER_ACCESS_FLAGS = 0x911F;
        public const uint GL_BUFFER_MAP_LENGTH = 0x9120;
        public const uint GL_BUFFER_MAP_OFFSET = 0x9121;
        public const uint GL_DEPTH_COMPONENT32F = 0x8CAC;
        public const uint GL_DEPTH32F_STENCIL8 = 0x8CAD;
        public const uint GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD;
        public const uint GL_INVALID_FRAMEBUFFER_OPERATION = 0x0506;
        public const uint GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210;
        public const uint GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211;
        public const uint GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212;
        public const uint GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213;
        public const uint GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214;
        public const uint GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215;
        public const uint GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216;
        public const uint GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217;
        public const uint GL_FRAMEBUFFER_DEFAULT = 0x8218;
        public const uint GL_FRAMEBUFFER_UNDEFINED = 0x8219;
        public const uint GL_DEPTH_STENCIL_ATTACHMENT = 0x821A;
        public const uint GL_MAX_RENDERBUFFER_SIZE = 0x84E8;
        public const uint GL_DEPTH_STENCIL = 0x84F9;
        public const uint GL_UNSIGNED_INT_24_8 = 0x84FA;
        public const uint GL_DEPTH24_STENCIL8 = 0x88F0;
        public const uint GL_TEXTURE_STENCIL_SIZE = 0x88F1;
        public const uint GL_TEXTURE_RED_TYPE = 0x8C10;
        public const uint GL_TEXTURE_GREEN_TYPE = 0x8C11;
        public const uint GL_TEXTURE_BLUE_TYPE = 0x8C12;
        public const uint GL_TEXTURE_ALPHA_TYPE = 0x8C13;
        public const uint GL_TEXTURE_DEPTH_TYPE = 0x8C16;
        public const uint GL_UNSIGNED_NORMALIZED = 0x8C17;
        public const uint GL_FRAMEBUFFER_BINDING = 0x8CA6;
        public const uint GL_DRAW_FRAMEBUFFER_BINDING = 0x8CA6;
        public const uint GL_RENDERBUFFER_BINDING = 0x8CA7;
        public const uint GL_READ_FRAMEBUFFER = 0x8CA8;
        public const uint GL_DRAW_FRAMEBUFFER = 0x8CA9;
        public const uint GL_READ_FRAMEBUFFER_BINDING = 0x8CAA;
        public const uint GL_RENDERBUFFER_SAMPLES = 0x8CAB;
        public const uint GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0;
        public const uint GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1;
        public const uint GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2;
        public const uint GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;
        public const uint GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4;
        public const uint GL_FRAMEBUFFER_COMPLETE = 0x8CD5;
        public const uint GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6;
        public const uint GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;
        public const uint GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB;
        public const uint GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC;
        public const uint GL_FRAMEBUFFER_UNSUPPORTED = 0x8CDD;
        public const uint GL_MAX_COLOR_ATTACHMENTS = 0x8CDF;
        public const uint GL_COLOR_ATTACHMENT0 = 0x8CE0;
        public const uint GL_COLOR_ATTACHMENT1 = 0x8CE1;
        public const uint GL_COLOR_ATTACHMENT2 = 0x8CE2;
        public const uint GL_COLOR_ATTACHMENT3 = 0x8CE3;
        public const uint GL_COLOR_ATTACHMENT4 = 0x8CE4;
        public const uint GL_COLOR_ATTACHMENT5 = 0x8CE5;
        public const uint GL_COLOR_ATTACHMENT6 = 0x8CE6;
        public const uint GL_COLOR_ATTACHMENT7 = 0x8CE7;
        public const uint GL_COLOR_ATTACHMENT8 = 0x8CE8;
        public const uint GL_COLOR_ATTACHMENT9 = 0x8CE9;
        public const uint GL_COLOR_ATTACHMENT10 = 0x8CEA;
        public const uint GL_COLOR_ATTACHMENT11 = 0x8CEB;
        public const uint GL_COLOR_ATTACHMENT12 = 0x8CEC;
        public const uint GL_COLOR_ATTACHMENT13 = 0x8CED;
        public const uint GL_COLOR_ATTACHMENT14 = 0x8CEE;
        public const uint GL_COLOR_ATTACHMENT15 = 0x8CEF;
        public const uint GL_COLOR_ATTACHMENT16 = 0x8CF0;
        public const uint GL_COLOR_ATTACHMENT17 = 0x8CF1;
        public const uint GL_COLOR_ATTACHMENT18 = 0x8CF2;
        public const uint GL_COLOR_ATTACHMENT19 = 0x8CF3;
        public const uint GL_COLOR_ATTACHMENT20 = 0x8CF4;
        public const uint GL_COLOR_ATTACHMENT21 = 0x8CF5;
        public const uint GL_COLOR_ATTACHMENT22 = 0x8CF6;
        public const uint GL_COLOR_ATTACHMENT23 = 0x8CF7;
        public const uint GL_COLOR_ATTACHMENT24 = 0x8CF8;
        public const uint GL_COLOR_ATTACHMENT25 = 0x8CF9;
        public const uint GL_COLOR_ATTACHMENT26 = 0x8CFA;
        public const uint GL_COLOR_ATTACHMENT27 = 0x8CFB;
        public const uint GL_COLOR_ATTACHMENT28 = 0x8CFC;
        public const uint GL_COLOR_ATTACHMENT29 = 0x8CFD;
        public const uint GL_COLOR_ATTACHMENT30 = 0x8CFE;
        public const uint GL_COLOR_ATTACHMENT31 = 0x8CFF;
        public const uint GL_DEPTH_ATTACHMENT = 0x8D00;
        public const uint GL_STENCIL_ATTACHMENT = 0x8D20;
        public const uint GL_FRAMEBUFFER = 0x8D40;
        public const uint GL_RENDERBUFFER = 0x8D41;
        public const uint GL_RENDERBUFFER_WIDTH = 0x8D42;
        public const uint GL_RENDERBUFFER_HEIGHT = 0x8D43;
        public const uint GL_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44;
        public const uint GL_STENCIL_INDEX1 = 0x8D46;
        public const uint GL_STENCIL_INDEX4 = 0x8D47;
        public const uint GL_STENCIL_INDEX8 = 0x8D48;
        public const uint GL_STENCIL_INDEX16 = 0x8D49;
        public const uint GL_RENDERBUFFER_RED_SIZE = 0x8D50;
        public const uint GL_RENDERBUFFER_GREEN_SIZE = 0x8D51;
        public const uint GL_RENDERBUFFER_BLUE_SIZE = 0x8D52;
        public const uint GL_RENDERBUFFER_ALPHA_SIZE = 0x8D53;
        public const uint GL_RENDERBUFFER_DEPTH_SIZE = 0x8D54;
        public const uint GL_RENDERBUFFER_STENCIL_SIZE = 0x8D55;
        public const uint GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56;
        public const uint GL_MAX_SAMPLES = 0x8D57;
        public const uint GL_FRAMEBUFFER_SRGB = 0x8DB9;
        public const uint GL_HALF_FLOAT = 0x140B;
        public const uint GL_MAP_READ_BIT = 0x0001;
        public const uint GL_MAP_WRITE_BIT = 0x0002;
        public const uint GL_MAP_INVALIDATE_RANGE_BIT = 0x0004;
        public const uint GL_MAP_INVALIDATE_BUFFER_BIT = 0x0008;
        public const uint GL_MAP_FLUSH_EXPLICIT_BIT = 0x0010;
        public const uint GL_MAP_UNSYNCHRONIZED_BIT = 0x0020;
        public const uint GL_COMPRESSED_RED_RGTC1 = 0x8DBB;
        public const uint GL_COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC;
        public const uint GL_COMPRESSED_RG_RGTC2 = 0x8DBD;
        public const uint GL_COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE;
        public const uint GL_RG = 0x8227;
        public const uint GL_RG_INTEGER = 0x8228;
        public const uint GL_R8 = 0x8229;
        public const uint GL_R16 = 0x822A;
        public const uint GL_RG8 = 0x822B;
        public const uint GL_RG16 = 0x822C;
        public const uint GL_R16F = 0x822D;
        public const uint GL_R32F = 0x822E;
        public const uint GL_RG16F = 0x822F;
        public const uint GL_RG32F = 0x8230;
        public const uint GL_R8I = 0x8231;
        public const uint GL_R8UI = 0x8232;
        public const uint GL_R16I = 0x8233;
        public const uint GL_R16UI = 0x8234;
        public const uint GL_R32I = 0x8235;
        public const uint GL_R32UI = 0x8236;
        public const uint GL_RG8I = 0x8237;
        public const uint GL_RG8UI = 0x8238;
        public const uint GL_RG16I = 0x8239;
        public const uint GL_RG16UI = 0x823A;
        public const uint GL_RG32I = 0x823B;
        public const uint GL_RG32UI = 0x823C;
        public const uint GL_VERTEX_ARRAY_BINDING = 0x85B5;
        public const uint GL_SAMPLER_2D_RECT = 0x8B63;
        public const uint GL_SAMPLER_2D_RECT_SHADOW = 0x8B64;
        public const uint GL_SAMPLER_BUFFER = 0x8DC2;
        public const uint GL_INT_SAMPLER_2D_RECT = 0x8DCD;
        public const uint GL_INT_SAMPLER_BUFFER = 0x8DD0;
        public const uint GL_UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5;
        public const uint GL_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8;
        public const uint GL_TEXTURE_BUFFER = 0x8C2A;
        public const uint GL_MAX_TEXTURE_BUFFER_SIZE = 0x8C2B;
        public const uint GL_TEXTURE_BINDING_BUFFER = 0x8C2C;
        public const uint GL_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D;
        public const uint GL_TEXTURE_RECTANGLE = 0x84F5;
        public const uint GL_TEXTURE_BINDING_RECTANGLE = 0x84F6;
        public const uint GL_PROXY_TEXTURE_RECTANGLE = 0x84F7;
        public const uint GL_MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8;
        public const uint GL_R8_SNORM = 0x8F94;
        public const uint GL_RG8_SNORM = 0x8F95;
        public const uint GL_RGB8_SNORM = 0x8F96;
        public const uint GL_RGBA8_SNORM = 0x8F97;
        public const uint GL_R16_SNORM = 0x8F98;
        public const uint GL_RG16_SNORM = 0x8F99;
        public const uint GL_RGB16_SNORM = 0x8F9A;
        public const uint GL_RGBA16_SNORM = 0x8F9B;
        public const uint GL_SIGNED_NORMALIZED = 0x8F9C;
        public const uint GL_PRIMITIVE_RESTART = 0x8F9D;
        public const uint GL_PRIMITIVE_RESTART_INDEX = 0x8F9E;
        public const uint GL_COPY_READ_BUFFER = 0x8F36;
        public const uint GL_COPY_WRITE_BUFFER = 0x8F37;
        public const uint GL_UNIFORM_BUFFER = 0x8A11;
        public const uint GL_UNIFORM_BUFFER_BINDING = 0x8A28;
        public const uint GL_UNIFORM_BUFFER_START = 0x8A29;
        public const uint GL_UNIFORM_BUFFER_SIZE = 0x8A2A;
        public const uint GL_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B;
        public const uint GL_MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C;
        public const uint GL_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D;
        public const uint GL_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E;
        public const uint GL_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F;
        public const uint GL_MAX_UNIFORM_BLOCK_SIZE = 0x8A30;
        public const uint GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31;
        public const uint GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32;
        public const uint GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33;
        public const uint GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34;
        public const uint GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35;
        public const uint GL_ACTIVE_UNIFORM_BLOCKS = 0x8A36;
        public const uint GL_UNIFORM_TYPE = 0x8A37;
        public const uint GL_UNIFORM_SIZE = 0x8A38;
        public const uint GL_UNIFORM_NAME_LENGTH = 0x8A39;
        public const uint GL_UNIFORM_BLOCK_INDEX = 0x8A3A;
        public const uint GL_UNIFORM_OFFSET = 0x8A3B;
        public const uint GL_UNIFORM_ARRAY_STRIDE = 0x8A3C;
        public const uint GL_UNIFORM_MATRIX_STRIDE = 0x8A3D;
        public const uint GL_UNIFORM_IS_ROW_MAJOR = 0x8A3E;
        public const uint GL_UNIFORM_BLOCK_BINDING = 0x8A3F;
        public const uint GL_UNIFORM_BLOCK_DATA_SIZE = 0x8A40;
        public const uint GL_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41;
        public const uint GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42;
        public const uint GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
        public const uint GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
        public const uint GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45;
        public const uint GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
        public const uint GL_INVALID_INDEX = 0xFFFFFFFF;
        public const uint GL_CONTEXT_CORE_PROFILE_BIT = 0x00000001;
        public const uint GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002;
        public const uint GL_LINES_ADJACENCY = 0x000A;
        public const uint GL_LINE_STRIP_ADJACENCY = 0x000B;
        public const uint GL_TRIANGLES_ADJACENCY = 0x000C;
        public const uint GL_TRIANGLE_STRIP_ADJACENCY = 0x000D;
        public const uint GL_PROGRAM_POINT_SIZE = 0x8642;
        public const uint GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29;
        public const uint GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7;
        public const uint GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8;
        public const uint GL_GEOMETRY_SHADER = 0x8DD9;
        public const uint GL_GEOMETRY_VERTICES_OUT = 0x8916;
        public const uint GL_GEOMETRY_INPUT_TYPE = 0x8917;
        public const uint GL_GEOMETRY_OUTPUT_TYPE = 0x8918;
        public const uint GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF;
        public const uint GL_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0;
        public const uint GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1;
        public const uint GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
        public const uint GL_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123;
        public const uint GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124;
        public const uint GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
        public const uint GL_CONTEXT_PROFILE_MASK = 0x9126;
        public const uint GL_DEPTH_CLAMP = 0x864F;
        public const uint GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C;
        public const uint GL_FIRST_VERTEX_CONVENTION = 0x8E4D;
        public const uint GL_LAST_VERTEX_CONVENTION = 0x8E4E;
        public const uint GL_PROVOKING_VERTEX = 0x8E4F;
        public const uint GL_TEXTURE_CUBE_MAP_SEAMLESS = 0x884F;
        public const uint GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111;
        public const uint GL_OBJECT_TYPE = 0x9112;
        public const uint GL_SYNC_CONDITION = 0x9113;
        public const uint GL_SYNC_STATUS = 0x9114;
        public const uint GL_SYNC_FLAGS = 0x9115;
        public const uint GL_SYNC_FENCE = 0x9116;
        public const uint GL_SYNC_GPU_COMMANDS_COMPLETE = 0x9117;
        public const uint GL_UNSIGNALED = 0x9118;
        public const uint GL_SIGNALED = 0x9119;
        public const uint GL_ALREADY_SIGNALED = 0x911A;
        public const uint GL_TIMEOUT_EXPIRED = 0x911B;
        public const uint GL_CONDITION_SATISFIED = 0x911C;
        public const uint GL_WAIT_FAILED = 0x911D;
        public const uint GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF;
        public const uint GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001;
        public const uint GL_SAMPLE_POSITION = 0x8E50;
        public const uint GL_SAMPLE_MASK = 0x8E51;
        public const uint GL_SAMPLE_MASK_VALUE = 0x8E52;
        public const uint GL_MAX_SAMPLE_MASK_WORDS = 0x8E59;
        public const uint GL_TEXTURE_2D_MULTISAMPLE = 0x9100;
        public const uint GL_PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101;
        public const uint GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102;
        public const uint GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103;
        public const uint GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104;
        public const uint GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105;
        public const uint GL_TEXTURE_SAMPLES = 0x9106;
        public const uint GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107;
        public const uint GL_SAMPLER_2D_MULTISAMPLE = 0x9108;
        public const uint GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109;
        public const uint GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A;
        public const uint GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B;
        public const uint GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C;
        public const uint GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D;
        public const uint GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E;
        public const uint GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F;
        public const uint GL_MAX_INTEGER_SAMPLES = 0x9110;
        public const uint GL_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE;
        public const uint GL_SRC1_COLOR = 0x88F9;
        public const uint GL_ONE_MINUS_SRC1_COLOR = 0x88FA;
        public const uint GL_ONE_MINUS_SRC1_ALPHA = 0x88FB;
        public const uint GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC;
        public const uint GL_ANY_SAMPLES_PASSED = 0x8C2F;
        public const uint GL_SAMPLER_BINDING = 0x8919;
        public const uint GL_RGB10_A2UI = 0x906F;
        public const uint GL_TEXTURE_SWIZZLE_R = 0x8E42;
        public const uint GL_TEXTURE_SWIZZLE_G = 0x8E43;
        public const uint GL_TEXTURE_SWIZZLE_B = 0x8E44;
        public const uint GL_TEXTURE_SWIZZLE_A = 0x8E45;
        public const uint GL_TEXTURE_SWIZZLE_RGBA = 0x8E46;
        public const uint GL_TIME_ELAPSED = 0x88BF;
        public const uint GL_TIMESTAMP = 0x8E28;
        public const uint GL_INT_2_10_10_10_REV = 0x8D9F;

        public function void GlCullFace(uint mode);
        public static GlCullFace glCullFace;

        public function void GlFrontFace(uint mode);
        public static GlFrontFace glFrontFace;

        public function void GlHint(uint target, uint mode);
        public static GlHint glHint;

        public function void GlLineWidth(float width);
        public static GlLineWidth glLineWidth;

        public function void GlPointSize(float size);
        public static GlPointSize glPointSize;

        public function void GlPolygonMode(uint face, uint mode);
        public static GlPolygonMode glPolygonMode;

        public function void GlScissor(int x, int y, int width, int height);
        public static GlScissor glScissor;

        public function void GlTexParameterf(uint target, uint pname, float param);
        public static GlTexParameterf glTexParameterf;

        public function void GlTexParameterfv(uint target, uint pname, float* paramss);
        public static GlTexParameterfv glTexParameterfv;

        public function void GlTexParameteri(uint target, uint pname, int param);
        public static GlTexParameteri glTexParameteri;

        public function void GlTexParameteriv(uint target, uint pname, int32* paramss);
        public static GlTexParameteriv glTexParameteriv;

        public function void GlTexImage1D(uint target, int level, int internalformat, int width, int border, uint format, uint type, void* pixels);
        public static GlTexImage1D glTexImage1D;

        public function void GlTexImage2D(uint target, int level, int internalformat, int width, int height, int border, uint format, uint type, void* pixels);
        public static GlTexImage2D glTexImage2D;

        public function void GlDrawBuffer(uint buf);
        public static GlDrawBuffer glDrawBuffer;

        public function void GlClear(uint mask);
        public static GlClear glClear;

        public function void GlClearColor(float red, float green, float blue, float alpha);
        public static GlClearColor glClearColor;

        public function void GlClearStencil(int s);
        public static GlClearStencil glClearStencil;

        public function void GlClearDepth(double depth);
        public static GlClearDepth glClearDepth;

        public function void GlStencilMask(uint mask);
        public static GlStencilMask glStencilMask;

        public function void GlColorMask(uint8 red, uint8 green, uint8 blue, uint8 alpha);
        public static GlColorMask glColorMask;

        public function void GlDepthMask(uint8 flag);
        public static GlDepthMask glDepthMask;

        public function void GlDisable(uint cap);
        public static GlDisable glDisable;

        public function void GlEnable(uint cap);
        public static GlEnable glEnable;

        public function void GlFinish();
        public static GlFinish glFinish;

        public function void GlFlush();
        public static GlFlush glFlush;

        public function void GlBlendFunc(uint sfactor, uint dfactor);
        public static GlBlendFunc glBlendFunc;

        public function void GlLogicOp(uint opcode);
        public static GlLogicOp glLogicOp;

        public function void GlStencilFunc(uint func, int reff, uint mask);
        public static GlStencilFunc glStencilFunc;

        public function void GlStencilOp(uint fail, uint zfail, uint zpass);
        public static GlStencilOp glStencilOp;

        public function void GlDepthFunc(uint func);
        public static GlDepthFunc glDepthFunc;

        public function void GlPixelStoref(uint pname, float param);
        public static GlPixelStoref glPixelStoref;

        public function void GlPixelStorei(uint pname, int param);
        public static GlPixelStorei glPixelStorei;

        public function void GlReadBuffer(uint src);
        public static GlReadBuffer glReadBuffer;

        public function void GlReadPixels(int x, int y, int width, int height, uint format, uint type, void* pixels);
        public static GlReadPixels glReadPixels;

        public function void GlGetBooleanv(uint pname, uint8* data);
        public static GlGetBooleanv glGetBooleanv;

        public function void GlGetDoublev(uint pname, double* data);
        public static GlGetDoublev glGetDoublev;

        public function uint GlGetError();
        public static GlGetError glGetError;

        public function void GlGetFloatv(uint pname, float* data);
        public static GlGetFloatv glGetFloatv;

        public function void GlGetIntegerv(uint pname, int32* data);
        public static GlGetIntegerv glGetIntegerv;

        public function uint8 GlGetString(uint name);
        public static GlGetString glGetString;

        public function void GlGetTexImage(uint target, int level, uint format, uint type, void* pixels);
        public static GlGetTexImage glGetTexImage;

        public function void GlGetTexParameterfv(uint target, uint pname, float* paramss);
        public static GlGetTexParameterfv glGetTexParameterfv;

        public function void GlGetTexParameteriv(uint target, uint pname, int32* paramss);
        public static GlGetTexParameteriv glGetTexParameteriv;

        public function void GlGetTexLevelParameterfv(uint target, int level, uint pname, float* paramss);
        public static GlGetTexLevelParameterfv glGetTexLevelParameterfv;

        public function void GlGetTexLevelParameteriv(uint target, int level, uint pname, int32* paramss);
        public static GlGetTexLevelParameteriv glGetTexLevelParameteriv;

        public function uint8 GlIsEnabled(uint cap);
        public static GlIsEnabled glIsEnabled;

        public function void GlDepthRange(double n, double f);
        public static GlDepthRange glDepthRange;

        public function void GlViewport(int x, int y, int width, int height);
        public static GlViewport glViewport;

        public function void GlDrawArrays(uint mode, int first, int count);
        public static GlDrawArrays glDrawArrays;

        public function void GlDrawElements(uint mode, int count, uint type, void* indices);
        public static GlDrawElements glDrawElements;

        public function void GlPolygonOffset(float factor, float units);
        public static GlPolygonOffset glPolygonOffset;

        public function void GlCopyTexImage1D(uint target, int level, uint internalformat, int x, int y, int width, int border);
        public static GlCopyTexImage1D glCopyTexImage1D;

        public function void GlCopyTexImage2D(uint target, int level, uint internalformat, int x, int y, int width, int height, int border);
        public static GlCopyTexImage2D glCopyTexImage2D;

        public function void GlCopyTexSubImage1D(uint target, int level, int xoffset, int x, int y, int width);
        public static GlCopyTexSubImage1D glCopyTexSubImage1D;

        public function void GlCopyTexSubImage2D(uint target, int level, int xoffset, int yoffset, int x, int y, int width, int height);
        public static GlCopyTexSubImage2D glCopyTexSubImage2D;

        public function void GlTexSubImage1D(uint target, int level, int xoffset, int width, uint format, uint type, void* pixels);
        public static GlTexSubImage1D glTexSubImage1D;

        public function void GlTexSubImage2D(uint target, int level, int xoffset, int yoffset, int width, int height, uint format, uint type, void* pixels);
        public static GlTexSubImage2D glTexSubImage2D;

        public function void GlBindTexture(uint target, uint texture);
        public static GlBindTexture glBindTexture;

        public function void GlDeleteTextures(int n, uint32* textures);
        public static GlDeleteTextures glDeleteTextures;

        public function void GlGenTextures(int n, uint32* textures);
        public static GlGenTextures glGenTextures;

        public function uint8 GlIsTexture(uint texture);
        public static GlIsTexture glIsTexture;

        public function void GlDrawRangeElements(uint mode, uint start, uint end, int count, uint type, void* indices);
        public static GlDrawRangeElements glDrawRangeElements;

        public function void GlTexImage3D(uint target, int level, int internalformat, int width, int height, int depth, int border, uint format, uint type, void* pixels);
        public static GlTexImage3D glTexImage3D;

        public function void GlTexSubImage3D(uint target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, uint type, void* pixels);
        public static GlTexSubImage3D glTexSubImage3D;

        public function void GlCopyTexSubImage3D(uint target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height);
        public static GlCopyTexSubImage3D glCopyTexSubImage3D;

        public function void GlActiveTexture(uint texture);
        public static GlActiveTexture glActiveTexture;

        public function void GlSampleCoverage(float value, uint8 invert);
        public static GlSampleCoverage glSampleCoverage;

        public function void GlCompressedTexImage3D(uint target, int level, uint internalformat, int width, int height, int depth, int border, int imageSize, void* data);
        public static GlCompressedTexImage3D glCompressedTexImage3D;

        public function void GlCompressedTexImage2D(uint target, int level, uint internalformat, int width, int height, int border, int imageSize, void* data);
        public static GlCompressedTexImage2D glCompressedTexImage2D;

        public function void GlCompressedTexImage1D(uint target, int level, uint internalformat, int width, int border, int imageSize, void* data);
        public static GlCompressedTexImage1D glCompressedTexImage1D;

        public function void GlCompressedTexSubImage3D(uint target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, int imageSize, void* data);
        public static GlCompressedTexSubImage3D glCompressedTexSubImage3D;

        public function void GlCompressedTexSubImage2D(uint target, int level, int xoffset, int yoffset, int width, int height, uint format, int imageSize, void* data);
        public static GlCompressedTexSubImage2D glCompressedTexSubImage2D;

        public function void GlCompressedTexSubImage1D(uint target, int level, int xoffset, int width, uint format, int imageSize, void* data);
        public static GlCompressedTexSubImage1D glCompressedTexSubImage1D;

        public function void GlGetCompressedTexImage(uint target, int level, void* img);
        public static GlGetCompressedTexImage glGetCompressedTexImage;

        public function void GlBlendFuncSeparate(uint sfactorRGB, uint dfactorRGB, uint sfactorAlpha, uint dfactorAlpha);
        public static GlBlendFuncSeparate glBlendFuncSeparate;

        public function void GlMultiDrawArrays(uint mode, int32* first, int32* count, int drawcount);
        public static GlMultiDrawArrays glMultiDrawArrays;

        public function void GlMultiDrawElements(uint mode, int32* count, uint type, void *** indices, int drawcount);
        public static GlMultiDrawElements glMultiDrawElements;

        public function void GlPointParameterf(uint pname, float param);
        public static GlPointParameterf glPointParameterf;

        public function void GlPointParameterfv(uint pname, float* paramss);
        public static GlPointParameterfv glPointParameterfv;

        public function void GlPointParameteri(uint pname, int param);
        public static GlPointParameteri glPointParameteri;

        public function void GlPointParameteriv(uint pname, int32* paramss);
        public static GlPointParameteriv glPointParameteriv;

        public function void GlBlendColor(float red, float green, float blue, float alpha);
        public static GlBlendColor glBlendColor;

        public function void GlBlendEquation(uint mode);
        public static GlBlendEquation glBlendEquation;

        public function void GlGenQueries(int n, uint32* ids);
        public static GlGenQueries glGenQueries;

        public function void GlDeleteQueries(int n, uint32* ids);
        public static GlDeleteQueries glDeleteQueries;

        public function uint8 GlIsQuery(uint id);
        public static GlIsQuery glIsQuery;

        public function void GlBeginQuery(uint target, uint id);
        public static GlBeginQuery glBeginQuery;

        public function void GlEndQuery(uint target);
        public static GlEndQuery glEndQuery;

        public function void GlGetQueryiv(uint target, uint pname, int32* paramss);
        public static GlGetQueryiv glGetQueryiv;

        public function void GlGetQueryObjectiv(uint id, uint pname, int32* paramss);
        public static GlGetQueryObjectiv glGetQueryObjectiv;

        public function void GlGetQueryObjectuiv(uint id, uint pname, uint32* paramss);
        public static GlGetQueryObjectuiv glGetQueryObjectuiv;

        public function void GlBindBuffer(uint target, uint buffer);
        public static GlBindBuffer glBindBuffer;

        public function void GlDeleteBuffers(int n, uint32* buffers);
        public static GlDeleteBuffers glDeleteBuffers;

        public function void GlGenBuffers(int n, uint32* buffers);
        public static GlGenBuffers glGenBuffers;

        public function uint8 GlIsBuffer(uint buffer);
        public static GlIsBuffer glIsBuffer;

        public function void GlBufferData(uint target, int size, void* data, uint usage);
        public static GlBufferData glBufferData;

        public function void GlBufferSubData(uint target, int offset, int size, void* data);
        public static GlBufferSubData glBufferSubData;

        public function void GlGetBufferSubData(uint target, int offset, int size, void* data);
        public static GlGetBufferSubData glGetBufferSubData;

        public function void GlMapBuffer(uint target, uint access);
        public static GlMapBuffer glMapBuffer;

        public function uint8 GlUnmapBuffer(uint target);
        public static GlUnmapBuffer glUnmapBuffer;

        public function void GlGetBufferParameteriv(uint target, uint pname, int32* paramss);
        public static GlGetBufferParameteriv glGetBufferParameteriv;

        public function void GlGetBufferPointerv(uint target, uint pname, void *** paramss);
        public static GlGetBufferPointerv glGetBufferPointerv;

        public function void GlBlendEquationSeparate(uint modeRGB, uint modeAlpha);
        public static GlBlendEquationSeparate glBlendEquationSeparate;

        public function void GlDrawBuffers(int n, uint32* bufs);
        public static GlDrawBuffers glDrawBuffers;

        public function void GlStencilOpSeparate(uint face, uint sfail, uint dpfail, uint dppass);
        public static GlStencilOpSeparate glStencilOpSeparate;

        public function void GlStencilFuncSeparate(uint face, uint func, int reff, uint mask);
        public static GlStencilFuncSeparate glStencilFuncSeparate;

        public function void GlStencilMaskSeparate(uint face, uint mask);
        public static GlStencilMaskSeparate glStencilMaskSeparate;

        public function void GlAttachShader(uint program, uint shader);
        public static GlAttachShader glAttachShader;

        public function void GlBindAttribLocation(uint program, uint index, char8* name);
        public static GlBindAttribLocation glBindAttribLocation;

        public function void GlCompileShader(uint shader);
        public static GlCompileShader glCompileShader;

        public function uint GlCreateProgram();
        public static GlCreateProgram glCreateProgram;

        public function uint GlCreateShader(uint type);
        public static GlCreateShader glCreateShader;

        public function void GlDeleteProgram(uint program);
        public static GlDeleteProgram glDeleteProgram;

        public function void GlDeleteShader(uint shader);
        public static GlDeleteShader glDeleteShader;

        public function void GlDetachShader(uint program, uint shader);
        public static GlDetachShader glDetachShader;

        public function void GlDisableVertexAttribArray(uint index);
        public static GlDisableVertexAttribArray glDisableVertexAttribArray;

        public function void GlEnableVertexAttribArray(uint index);
        public static GlEnableVertexAttribArray glEnableVertexAttribArray;

        public function void GlGetActiveAttrib(uint program, uint index, int bufSize, int32* length, int32* size, uint32* type, char8* name);
        public static GlGetActiveAttrib glGetActiveAttrib;

        public function void GlGetActiveUniform(uint program, uint index, int bufSize, int32* length, int32* size, uint32* type, char8* name);
        public static GlGetActiveUniform glGetActiveUniform;

        public function void GlGetAttachedShaders(uint program, int maxCount, int32* count, uint32* shaders);
        public static GlGetAttachedShaders glGetAttachedShaders;

        public function int GlGetAttribLocation(uint program, char8* name);
        public static GlGetAttribLocation glGetAttribLocation;

        public function void GlGetProgramiv(uint program, uint pname, int32* paramss);
        public static GlGetProgramiv glGetProgramiv;

        public function void GlGetProgramInfoLog(uint program, int bufSize, int32* length, char8* infoLog);
        public static GlGetProgramInfoLog glGetProgramInfoLog;

        public function void GlGetShaderiv(uint shader, uint pname, int32* paramss);
        public static GlGetShaderiv glGetShaderiv;

        public function void GlGetShaderInfoLog(uint shader, int bufSize, int32* length, char8* infoLog);
        public static GlGetShaderInfoLog glGetShaderInfoLog;

        public function void GlGetShaderSource(uint shader, int bufSize, int32* length, char8* source);
        public static GlGetShaderSource glGetShaderSource;

        public function int GlGetUniformLocation(uint program, char8* name);
        public static GlGetUniformLocation glGetUniformLocation;

        public function void GlGetUniformfv(uint program, int location, float* paramss);
        public static GlGetUniformfv glGetUniformfv;

        public function void GlGetUniformiv(uint program, int location, int32* paramss);
        public static GlGetUniformiv glGetUniformiv;

        public function void GlGetVertexAttribdv(uint index, uint pname, double* paramss);
        public static GlGetVertexAttribdv glGetVertexAttribdv;

        public function void GlGetVertexAttribfv(uint index, uint pname, float* paramss);
        public static GlGetVertexAttribfv glGetVertexAttribfv;

        public function void GlGetVertexAttribiv(uint index, uint pname, int32* paramss);
        public static GlGetVertexAttribiv glGetVertexAttribiv;

        public function void GlGetVertexAttribPointerv(uint index, uint pname, void *** pointer);
        public static GlGetVertexAttribPointerv glGetVertexAttribPointerv;

        public function uint8 GlIsProgram(uint program);
        public static GlIsProgram glIsProgram;

        public function uint8 GlIsShader(uint shader);
        public static GlIsShader glIsShader;

        public function void GlLinkProgram(uint program);
        public static GlLinkProgram glLinkProgram;

        public function void GlShaderSource(uint shader, int count, char8** string, int32* length);
        public static GlShaderSource glShaderSource;

        public function void GlUseProgram(uint program);
        public static GlUseProgram glUseProgram;

        public function void GlUniform1f(int location, float v0);
        public static GlUniform1f glUniform1f;

        public function void GlUniform2f(int location, float v0, float v1);
        public static GlUniform2f glUniform2f;

        public function void GlUniform3f(int location, float v0, float v1, float v2);
        public static GlUniform3f glUniform3f;

        public function void GlUniform4f(int location, float v0, float v1, float v2, float v3);
        public static GlUniform4f glUniform4f;

        public function void GlUniform1i(int location, int v0);
        public static GlUniform1i glUniform1i;

        public function void GlUniform2i(int location, int v0, int v1);
        public static GlUniform2i glUniform2i;

        public function void GlUniform3i(int location, int v0, int v1, int v2);
        public static GlUniform3i glUniform3i;

        public function void GlUniform4i(int location, int v0, int v1, int v2, int v3);
        public static GlUniform4i glUniform4i;

        public function void GlUniform1fv(int location, int count, float* value);
        public static GlUniform1fv glUniform1fv;

        public function void GlUniform2fv(int location, int count, float* value);
        public static GlUniform2fv glUniform2fv;

        public function void GlUniform3fv(int location, int count, float* value);
        public static GlUniform3fv glUniform3fv;

        public function void GlUniform4fv(int location, int count, float* value);
        public static GlUniform4fv glUniform4fv;

        public function void GlUniform1iv(int location, int count, int32* value);
        public static GlUniform1iv glUniform1iv;

        public function void GlUniform2iv(int location, int count, int32* value);
        public static GlUniform2iv glUniform2iv;

        public function void GlUniform3iv(int location, int count, int32* value);
        public static GlUniform3iv glUniform3iv;

        public function void GlUniform4iv(int location, int count, int32* value);
        public static GlUniform4iv glUniform4iv;

        public function void GlUniformMatrix2fv(int location, int count, uint8 transpose, float* value);
        public static GlUniformMatrix2fv glUniformMatrix2fv;

        public function void GlUniformMatrix3fv(int location, int count, uint8 transpose, float* value);
        public static GlUniformMatrix3fv glUniformMatrix3fv;

        public function void GlUniformMatrix4fv(int location, int count, uint8 transpose, float* value);
        public static GlUniformMatrix4fv glUniformMatrix4fv;

        public function void GlValidateProgram(uint program);
        public static GlValidateProgram glValidateProgram;

        public function void GlVertexAttrib1d(uint index, double x);
        public static GlVertexAttrib1d glVertexAttrib1d;

        public function void GlVertexAttrib1dv(uint index, double* v);
        public static GlVertexAttrib1dv glVertexAttrib1dv;

        public function void GlVertexAttrib1f(uint index, float x);
        public static GlVertexAttrib1f glVertexAttrib1f;

        public function void GlVertexAttrib1fv(uint index, float* v);
        public static GlVertexAttrib1fv glVertexAttrib1fv;

        public function void GlVertexAttrib1s(uint index, int16 x);
        public static GlVertexAttrib1s glVertexAttrib1s;

        public function void GlVertexAttrib1sv(uint index, int16* v);
        public static GlVertexAttrib1sv glVertexAttrib1sv;

        public function void GlVertexAttrib2d(uint index, double x, double y);
        public static GlVertexAttrib2d glVertexAttrib2d;

        public function void GlVertexAttrib2dv(uint index, double* v);
        public static GlVertexAttrib2dv glVertexAttrib2dv;

        public function void GlVertexAttrib2f(uint index, float x, float y);
        public static GlVertexAttrib2f glVertexAttrib2f;

        public function void GlVertexAttrib2fv(uint index, float* v);
        public static GlVertexAttrib2fv glVertexAttrib2fv;

        public function void GlVertexAttrib2s(uint index, int16 x, int16 y);
        public static GlVertexAttrib2s glVertexAttrib2s;

        public function void GlVertexAttrib2sv(uint index, int16* v);
        public static GlVertexAttrib2sv glVertexAttrib2sv;

        public function void GlVertexAttrib3d(uint index, double x, double y, double z);
        public static GlVertexAttrib3d glVertexAttrib3d;

        public function void GlVertexAttrib3dv(uint index, double* v);
        public static GlVertexAttrib3dv glVertexAttrib3dv;

        public function void GlVertexAttrib3f(uint index, float x, float y, float z);
        public static GlVertexAttrib3f glVertexAttrib3f;

        public function void GlVertexAttrib3fv(uint index, float* v);
        public static GlVertexAttrib3fv glVertexAttrib3fv;

        public function void GlVertexAttrib3s(uint index, int16 x, int16 y, int16 z);
        public static GlVertexAttrib3s glVertexAttrib3s;

        public function void GlVertexAttrib3sv(uint index, int16* v);
        public static GlVertexAttrib3sv glVertexAttrib3sv;

        public function void GlVertexAttrib4Nbv(uint index, int8* v);
        public static GlVertexAttrib4Nbv glVertexAttrib4Nbv;

        public function void GlVertexAttrib4Niv(uint index, int32* v);
        public static GlVertexAttrib4Niv glVertexAttrib4Niv;

        public function void GlVertexAttrib4Nsv(uint index, int16* v);
        public static GlVertexAttrib4Nsv glVertexAttrib4Nsv;

        public function void GlVertexAttrib4Nub(uint index, uint8 x, uint8 y, uint8 z, uint8 w);
        public static GlVertexAttrib4Nub glVertexAttrib4Nub;

        public function void GlVertexAttrib4Nubv(uint index, uint8* v);
        public static GlVertexAttrib4Nubv glVertexAttrib4Nubv;

        public function void GlVertexAttrib4Nuiv(uint index, uint32* v);
        public static GlVertexAttrib4Nuiv glVertexAttrib4Nuiv;

        public function void GlVertexAttrib4Nusv(uint index, uint16* v);
        public static GlVertexAttrib4Nusv glVertexAttrib4Nusv;

        public function void GlVertexAttrib4bv(uint index, int8* v);
        public static GlVertexAttrib4bv glVertexAttrib4bv;

        public function void GlVertexAttrib4d(uint index, double x, double y, double z, double w);
        public static GlVertexAttrib4d glVertexAttrib4d;

        public function void GlVertexAttrib4dv(uint index, double* v);
        public static GlVertexAttrib4dv glVertexAttrib4dv;

        public function void GlVertexAttrib4f(uint index, float x, float y, float z, float w);
        public static GlVertexAttrib4f glVertexAttrib4f;

        public function void GlVertexAttrib4fv(uint index, float* v);
        public static GlVertexAttrib4fv glVertexAttrib4fv;

        public function void GlVertexAttrib4iv(uint index, int32* v);
        public static GlVertexAttrib4iv glVertexAttrib4iv;

        public function void GlVertexAttrib4s(uint index, int16 x, int16 y, int16 z, int16 w);
        public static GlVertexAttrib4s glVertexAttrib4s;

        public function void GlVertexAttrib4sv(uint index, int16* v);
        public static GlVertexAttrib4sv glVertexAttrib4sv;

        public function void GlVertexAttrib4ubv(uint index, uint8* v);
        public static GlVertexAttrib4ubv glVertexAttrib4ubv;

        public function void GlVertexAttrib4uiv(uint index, uint32* v);
        public static GlVertexAttrib4uiv glVertexAttrib4uiv;

        public function void GlVertexAttrib4usv(uint index, uint16* v);
        public static GlVertexAttrib4usv glVertexAttrib4usv;

        public function void GlVertexAttribPointer(uint index, int size, uint type, uint8 normalized, int stride, void* pointer);
        public static GlVertexAttribPointer glVertexAttribPointer;

        public function void GlUniformMatrix2x3fv(int location, int count, uint8 transpose, float* value);
        public static GlUniformMatrix2x3fv glUniformMatrix2x3fv;

        public function void GlUniformMatrix3x2fv(int location, int count, uint8 transpose, float* value);
        public static GlUniformMatrix3x2fv glUniformMatrix3x2fv;

        public function void GlUniformMatrix2x4fv(int location, int count, uint8 transpose, float* value);
        public static GlUniformMatrix2x4fv glUniformMatrix2x4fv;

        public function void GlUniformMatrix4x2fv(int location, int count, uint8 transpose, float* value);
        public static GlUniformMatrix4x2fv glUniformMatrix4x2fv;

        public function void GlUniformMatrix3x4fv(int location, int count, uint8 transpose, float* value);
        public static GlUniformMatrix3x4fv glUniformMatrix3x4fv;

        public function void GlUniformMatrix4x3fv(int location, int count, uint8 transpose, float* value);
        public static GlUniformMatrix4x3fv glUniformMatrix4x3fv;

        public function void GlColorMaski(uint index, uint8 r, uint8 g, uint8 b, uint8 a);
        public static GlColorMaski glColorMaski;

        public function void GlGetBooleani_v(uint target, uint index, uint8* data);
        public static GlGetBooleani_v glGetBooleani_v;

        public function void GlGetIntegeri_v(uint target, uint index, int32* data);
        public static GlGetIntegeri_v glGetIntegeri_v;

        public function void GlEnablei(uint target, uint index);
        public static GlEnablei glEnablei;

        public function void GlDisablei(uint target, uint index);
        public static GlDisablei glDisablei;

        public function uint8 GlIsEnabledi(uint target, uint index);
        public static GlIsEnabledi glIsEnabledi;

        public function void GlBeginTransformFeedback(uint primitiveMode);
        public static GlBeginTransformFeedback glBeginTransformFeedback;

        public function void GlEndTransformFeedback();
        public static GlEndTransformFeedback glEndTransformFeedback;

        public function void GlBindBufferRange(uint target, uint index, uint buffer, int offset, int size);
        public static GlBindBufferRange glBindBufferRange;

        public function void GlBindBufferBase(uint target, uint index, uint buffer);
        public static GlBindBufferBase glBindBufferBase;

        public function void GlTransformFeedbackVaryings(uint program, int count, char8** varyings, uint bufferMode);
        public static GlTransformFeedbackVaryings glTransformFeedbackVaryings;

        public function void GlGetTransformFeedbackVarying(uint program, uint index, int bufSize, int32* length, int32* size, uint32* type, char8* name);
        public static GlGetTransformFeedbackVarying glGetTransformFeedbackVarying;

        public function void GlClampColor(uint target, uint clamp);
        public static GlClampColor glClampColor;

        public function void GlBeginConditionalRender(uint id, uint mode);
        public static GlBeginConditionalRender glBeginConditionalRender;

        public function void GlEndConditionalRender();
        public static GlEndConditionalRender glEndConditionalRender;

        public function void GlVertexAttribIPointer(uint index, int size, uint type, int stride, void* pointer);
        public static GlVertexAttribIPointer glVertexAttribIPointer;

        public function void GlGetVertexAttribIiv(uint index, uint pname, int32* paramss);
        public static GlGetVertexAttribIiv glGetVertexAttribIiv;

        public function void GlGetVertexAttribIuiv(uint index, uint pname, uint32* paramss);
        public static GlGetVertexAttribIuiv glGetVertexAttribIuiv;

        public function void GlVertexAttribI1i(uint index, int x);
        public static GlVertexAttribI1i glVertexAttribI1i;

        public function void GlVertexAttribI2i(uint index, int x, int y);
        public static GlVertexAttribI2i glVertexAttribI2i;

        public function void GlVertexAttribI3i(uint index, int x, int y, int z);
        public static GlVertexAttribI3i glVertexAttribI3i;

        public function void GlVertexAttribI4i(uint index, int x, int y, int z, int w);
        public static GlVertexAttribI4i glVertexAttribI4i;

        public function void GlVertexAttribI1ui(uint index, uint x);
        public static GlVertexAttribI1ui glVertexAttribI1ui;

        public function void GlVertexAttribI2ui(uint index, uint x, uint y);
        public static GlVertexAttribI2ui glVertexAttribI2ui;

        public function void GlVertexAttribI3ui(uint index, uint x, uint y, uint z);
        public static GlVertexAttribI3ui glVertexAttribI3ui;

        public function void GlVertexAttribI4ui(uint index, uint x, uint y, uint z, uint w);
        public static GlVertexAttribI4ui glVertexAttribI4ui;

        public function void GlVertexAttribI1iv(uint index, int32* v);
        public static GlVertexAttribI1iv glVertexAttribI1iv;

        public function void GlVertexAttribI2iv(uint index, int32* v);
        public static GlVertexAttribI2iv glVertexAttribI2iv;

        public function void GlVertexAttribI3iv(uint index, int32* v);
        public static GlVertexAttribI3iv glVertexAttribI3iv;

        public function void GlVertexAttribI4iv(uint index, int32* v);
        public static GlVertexAttribI4iv glVertexAttribI4iv;

        public function void GlVertexAttribI1uiv(uint index, uint32* v);
        public static GlVertexAttribI1uiv glVertexAttribI1uiv;

        public function void GlVertexAttribI2uiv(uint index, uint32* v);
        public static GlVertexAttribI2uiv glVertexAttribI2uiv;

        public function void GlVertexAttribI3uiv(uint index, uint32* v);
        public static GlVertexAttribI3uiv glVertexAttribI3uiv;

        public function void GlVertexAttribI4uiv(uint index, uint32* v);
        public static GlVertexAttribI4uiv glVertexAttribI4uiv;

        public function void GlVertexAttribI4bv(uint index, int8* v);
        public static GlVertexAttribI4bv glVertexAttribI4bv;

        public function void GlVertexAttribI4sv(uint index, int16* v);
        public static GlVertexAttribI4sv glVertexAttribI4sv;

        public function void GlVertexAttribI4ubv(uint index, uint8* v);
        public static GlVertexAttribI4ubv glVertexAttribI4ubv;

        public function void GlVertexAttribI4usv(uint index, uint16* v);
        public static GlVertexAttribI4usv glVertexAttribI4usv;

        public function void GlGetUniformuiv(uint program, int location, uint32* paramss);
        public static GlGetUniformuiv glGetUniformuiv;

        public function void GlBindFragDataLocation(uint program, uint color, char8* name);
        public static GlBindFragDataLocation glBindFragDataLocation;

        public function int GlGetFragDataLocation(uint program, char8* name);
        public static GlGetFragDataLocation glGetFragDataLocation;

        public function void GlUniform1ui(int location, uint v0);
        public static GlUniform1ui glUniform1ui;

        public function void GlUniform2ui(int location, uint v0, uint v1);
        public static GlUniform2ui glUniform2ui;

        public function void GlUniform3ui(int location, uint v0, uint v1, uint v2);
        public static GlUniform3ui glUniform3ui;

        public function void GlUniform4ui(int location, uint v0, uint v1, uint v2, uint v3);
        public static GlUniform4ui glUniform4ui;

        public function void GlUniform1uiv(int location, int count, uint32* value);
        public static GlUniform1uiv glUniform1uiv;

        public function void GlUniform2uiv(int location, int count, uint32* value);
        public static GlUniform2uiv glUniform2uiv;

        public function void GlUniform3uiv(int location, int count, uint32* value);
        public static GlUniform3uiv glUniform3uiv;

        public function void GlUniform4uiv(int location, int count, uint32* value);
        public static GlUniform4uiv glUniform4uiv;

        public function void GlTexParameterIiv(uint target, uint pname, int32* paramss);
        public static GlTexParameterIiv glTexParameterIiv;

        public function void GlTexParameterIuiv(uint target, uint pname, uint32* paramss);
        public static GlTexParameterIuiv glTexParameterIuiv;

        public function void GlGetTexParameterIiv(uint target, uint pname, int32* paramss);
        public static GlGetTexParameterIiv glGetTexParameterIiv;

        public function void GlGetTexParameterIuiv(uint target, uint pname, uint32* paramss);
        public static GlGetTexParameterIuiv glGetTexParameterIuiv;

        public function void GlClearBufferiv(uint buffer, int drawbuffer, int32* value);
        public static GlClearBufferiv glClearBufferiv;

        public function void GlClearBufferuiv(uint buffer, int drawbuffer, uint32* value);
        public static GlClearBufferuiv glClearBufferuiv;

        public function void GlClearBufferfv(uint buffer, int drawbuffer, float* value);
        public static GlClearBufferfv glClearBufferfv;

        public function void GlClearBufferfi(uint buffer, int drawbuffer, float depth, int stencil);
        public static GlClearBufferfi glClearBufferfi;

        public function uint8 GlGetStringi(uint name, uint index);
        public static GlGetStringi glGetStringi;

        public function uint8 GlIsRenderbuffer(uint renderbuffer);
        public static GlIsRenderbuffer glIsRenderbuffer;

        public function void GlBindRenderbuffer(uint target, uint renderbuffer);
        public static GlBindRenderbuffer glBindRenderbuffer;

        public function void GlDeleteRenderbuffers(int n, uint32* renderbuffers);
        public static GlDeleteRenderbuffers glDeleteRenderbuffers;

        public function void GlGenRenderbuffers(int n, uint32* renderbuffers);
        public static GlGenRenderbuffers glGenRenderbuffers;

        public function void GlRenderbufferStorage(uint target, uint internalformat, int width, int height);
        public static GlRenderbufferStorage glRenderbufferStorage;

        public function void GlGetRenderbufferParameteriv(uint target, uint pname, int32* paramss);
        public static GlGetRenderbufferParameteriv glGetRenderbufferParameteriv;

        public function uint8 GlIsFramebuffer(uint framebuffer);
        public static GlIsFramebuffer glIsFramebuffer;

        public function void GlBindFramebuffer(uint target, uint framebuffer);
        public static GlBindFramebuffer glBindFramebuffer;

        public function void GlDeleteFramebuffers(int n, uint32* framebuffers);
        public static GlDeleteFramebuffers glDeleteFramebuffers;

        public function void GlGenFramebuffers(int n, uint32* framebuffers);
        public static GlGenFramebuffers glGenFramebuffers;

        public function uint GlCheckFramebufferStatus(uint target);
        public static GlCheckFramebufferStatus glCheckFramebufferStatus;

        public function void GlFramebufferTexture1D(uint target, uint attachment, uint textarget, uint texture, int level);
        public static GlFramebufferTexture1D glFramebufferTexture1D;

        public function void GlFramebufferTexture2D(uint target, uint attachment, uint textarget, uint texture, int level);
        public static GlFramebufferTexture2D glFramebufferTexture2D;

        public function void GlFramebufferTexture3D(uint target, uint attachment, uint textarget, uint texture, int level, int zoffset);
        public static GlFramebufferTexture3D glFramebufferTexture3D;

        public function void GlFramebufferRenderbuffer(uint target, uint attachment, uint renderbuffertarget, uint renderbuffer);
        public static GlFramebufferRenderbuffer glFramebufferRenderbuffer;

        public function void GlGetFramebufferAttachmentParameteriv(uint target, uint attachment, uint pname, int32* paramss);
        public static GlGetFramebufferAttachmentParameteriv glGetFramebufferAttachmentParameteriv;

        public function void GlGenerateMipmap(uint target);
        public static GlGenerateMipmap glGenerateMipmap;

        public function void GlBlitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, uint mask, uint filter);
        public static GlBlitFramebuffer glBlitFramebuffer;

        public function void GlRenderbufferStorageMultisample(uint target, int samples, uint internalformat, int width, int height);
        public static GlRenderbufferStorageMultisample glRenderbufferStorageMultisample;

        public function void GlFramebufferTextureLayer(uint target, uint attachment, uint texture, int level, int layer);
        public static GlFramebufferTextureLayer glFramebufferTextureLayer;

        public function void GlMapBufferRange(uint target, int offset, int length, uint access);
        public static GlMapBufferRange glMapBufferRange;

        public function void GlFlushMappedBufferRange(uint target, int offset, int length);
        public static GlFlushMappedBufferRange glFlushMappedBufferRange;

        public function void GlBindVertexArray(uint array);
        public static GlBindVertexArray glBindVertexArray;

        public function void GlDeleteVertexArrays(int n, uint32* arrays);
        public static GlDeleteVertexArrays glDeleteVertexArrays;

        public function void GlGenVertexArrays(int n, uint32* arrays);
        public static GlGenVertexArrays glGenVertexArrays;

        public function uint8 GlIsVertexArray(uint array);
        public static GlIsVertexArray glIsVertexArray;

        public function void GlDrawArraysInstanced(uint mode, int first, int count, int instancecount);
        public static GlDrawArraysInstanced glDrawArraysInstanced;

        public function void GlDrawElementsInstanced(uint mode, int count, uint type, void* indices, int instancecount);
        public static GlDrawElementsInstanced glDrawElementsInstanced;

        public function void GlTexBuffer(uint target, uint internalformat, uint buffer);
        public static GlTexBuffer glTexBuffer;

        public function void GlPrimitiveRestartIndex(uint index);
        public static GlPrimitiveRestartIndex glPrimitiveRestartIndex;

        public function void GlCopyBufferSubData(uint readTarget, uint writeTarget, int readOffset, int writeOffset, int size);
        public static GlCopyBufferSubData glCopyBufferSubData;

        public function void GlGetUniformIndices(uint program, int uniformCount, char8** uniformNames, uint32* uniformIndices);
        public static GlGetUniformIndices glGetUniformIndices;

        public function void GlGetActiveUniformsiv(uint program, int uniformCount, uint32* uniformIndices, uint pname, int32* paramss);
        public static GlGetActiveUniformsiv glGetActiveUniformsiv;

        public function void GlGetActiveUniformName(uint program, uint uniformIndex, int bufSize, int32* length, char8* uniformName);
        public static GlGetActiveUniformName glGetActiveUniformName;

        public function uint GlGetUniformBlockIndex(uint program, char8* uniformBlockName);
        public static GlGetUniformBlockIndex glGetUniformBlockIndex;

        public function void GlGetActiveUniformBlockiv(uint program, uint uniformBlockIndex, uint pname, int32* paramss);
        public static GlGetActiveUniformBlockiv glGetActiveUniformBlockiv;

        public function void GlGetActiveUniformBlockName(uint program, uint uniformBlockIndex, int bufSize, int32* length, char8* uniformBlockName);
        public static GlGetActiveUniformBlockName glGetActiveUniformBlockName;

        public function void GlUniformBlockBinding(uint program, uint uniformBlockIndex, uint uniformBlockBinding);
        public static GlUniformBlockBinding glUniformBlockBinding;

        public function void GlDrawElementsBaseVertex(uint mode, int count, uint type, void* indices, int basevertex);
        public static GlDrawElementsBaseVertex glDrawElementsBaseVertex;

        public function void GlDrawRangeElementsBaseVertex(uint mode, uint start, uint end, int count, uint type, void* indices, int basevertex);
        public static GlDrawRangeElementsBaseVertex glDrawRangeElementsBaseVertex;

        public function void GlDrawElementsInstancedBaseVertex(uint mode, int count, uint type, void* indices, int instancecount, int basevertex);
        public static GlDrawElementsInstancedBaseVertex glDrawElementsInstancedBaseVertex;

        public function void GlMultiDrawElementsBaseVertex(uint mode, int32* count, uint type, void *** indices, int drawcount, int32* basevertex);
        public static GlMultiDrawElementsBaseVertex glMultiDrawElementsBaseVertex;

        public function void GlProvokingVertex(uint mode);
        public static GlProvokingVertex glProvokingVertex;

        public function void* GlFenceSync(uint condition, uint flags);
        public static GlFenceSync glFenceSync;

        public function uint8 GlIsSync(void* sync);
        public static GlIsSync glIsSync;

        public function void GlDeleteSync(void* sync);
        public static GlDeleteSync glDeleteSync;

        public function uint GlClientWaitSync(void* sync, uint flags, uint64 timeout);
        public static GlClientWaitSync glClientWaitSync;

        public function void GlWaitSync(void* sync, uint flags, uint64 timeout);
        public static GlWaitSync glWaitSync;

        public function void GlGetInteger64v(uint pname, int64* data);
        public static GlGetInteger64v glGetInteger64v;

        public function void GlGetSynciv(void* sync, uint pname, int count, int32* length, int32* values);
        public static GlGetSynciv glGetSynciv;

        public function void GlGetInteger64i_v(uint target, uint index, int64* data);
        public static GlGetInteger64i_v glGetInteger64i_v;

        public function void GlGetBufferParameteri64v(uint target, uint pname, int64* paramss);
        public static GlGetBufferParameteri64v glGetBufferParameteri64v;

        public function void GlFramebufferTexture(uint target, uint attachment, uint texture, int level);
        public static GlFramebufferTexture glFramebufferTexture;

        public function void GlTexImage2DMultisample(uint target, int samples, uint internalformat, int width, int height, uint8 fixedsamplelocations);
        public static GlTexImage2DMultisample glTexImage2DMultisample;

        public function void GlTexImage3DMultisample(uint target, int samples, uint internalformat, int width, int height, int depth, uint8 fixedsamplelocations);
        public static GlTexImage3DMultisample glTexImage3DMultisample;

        public function void GlGetMultisamplefv(uint pname, uint index, float* val);
        public static GlGetMultisamplefv glGetMultisamplefv;

        public function void GlSampleMaski(uint maskNumber, uint mask);
        public static GlSampleMaski glSampleMaski;

        public function void GlBindFragDataLocationIndexed(uint program, uint colorNumber, uint index, char8* name);
        public static GlBindFragDataLocationIndexed glBindFragDataLocationIndexed;

        public function int GlGetFragDataIndex(uint program, char8* name);
        public static GlGetFragDataIndex glGetFragDataIndex;

        public function void GlGenSamplers(int count, uint32* samplers);
        public static GlGenSamplers glGenSamplers;

        public function void GlDeleteSamplers(int count, uint32* samplers);
        public static GlDeleteSamplers glDeleteSamplers;

        public function uint8 GlIsSampler(uint sampler);
        public static GlIsSampler glIsSampler;

        public function void GlBindSampler(uint unit, uint sampler);
        public static GlBindSampler glBindSampler;

        public function void GlSamplerParameteri(uint sampler, uint pname, int param);
        public static GlSamplerParameteri glSamplerParameteri;

        public function void GlSamplerParameteriv(uint sampler, uint pname, int32* param);
        public static GlSamplerParameteriv glSamplerParameteriv;

        public function void GlSamplerParameterf(uint sampler, uint pname, float param);
        public static GlSamplerParameterf glSamplerParameterf;

        public function void GlSamplerParameterfv(uint sampler, uint pname, float* param);
        public static GlSamplerParameterfv glSamplerParameterfv;

        public function void GlSamplerParameterIiv(uint sampler, uint pname, int32* param);
        public static GlSamplerParameterIiv glSamplerParameterIiv;

        public function void GlSamplerParameterIuiv(uint sampler, uint pname, uint32* param);
        public static GlSamplerParameterIuiv glSamplerParameterIuiv;

        public function void GlGetSamplerParameteriv(uint sampler, uint pname, int32* paramss);
        public static GlGetSamplerParameteriv glGetSamplerParameteriv;

        public function void GlGetSamplerParameterIiv(uint sampler, uint pname, int32* paramss);
        public static GlGetSamplerParameterIiv glGetSamplerParameterIiv;

        public function void GlGetSamplerParameterfv(uint sampler, uint pname, float* paramss);
        public static GlGetSamplerParameterfv glGetSamplerParameterfv;

        public function void GlGetSamplerParameterIuiv(uint sampler, uint pname, uint32* paramss);
        public static GlGetSamplerParameterIuiv glGetSamplerParameterIuiv;

        public function void GlQueryCounter(uint id, uint target);
        public static GlQueryCounter glQueryCounter;

        public function void GlGetQueryObjecti64v(uint id, uint pname, int64* paramss);
        public static GlGetQueryObjecti64v glGetQueryObjecti64v;

        public function void GlGetQueryObjectui64v(uint id, uint pname, uint64* paramss);
        public static GlGetQueryObjectui64v glGetQueryObjectui64v;

        public function void GlVertexAttribDivisor(uint index, uint divisor);
        public static GlVertexAttribDivisor glVertexAttribDivisor;

        public function void GlVertexAttribP1ui(uint index, uint type, uint8 normalized, uint value);
        public static GlVertexAttribP1ui glVertexAttribP1ui;

        public function void GlVertexAttribP1uiv(uint index, uint type, uint8 normalized, uint32* value);
        public static GlVertexAttribP1uiv glVertexAttribP1uiv;

        public function void GlVertexAttribP2ui(uint index, uint type, uint8 normalized, uint value);
        public static GlVertexAttribP2ui glVertexAttribP2ui;

        public function void GlVertexAttribP2uiv(uint index, uint type, uint8 normalized, uint32* value);
        public static GlVertexAttribP2uiv glVertexAttribP2uiv;

        public function void GlVertexAttribP3ui(uint index, uint type, uint8 normalized, uint value);
        public static GlVertexAttribP3ui glVertexAttribP3ui;

        public function void GlVertexAttribP3uiv(uint index, uint type, uint8 normalized, uint32* value);
        public static GlVertexAttribP3uiv glVertexAttribP3uiv;

        public function void GlVertexAttribP4ui(uint index, uint type, uint8 normalized, uint value);
        public static GlVertexAttribP4ui glVertexAttribP4ui;

        public function void GlVertexAttribP4uiv(uint index, uint type, uint8 normalized, uint32* value);
        public static GlVertexAttribP4uiv glVertexAttribP4uiv;

        public static void Init(GetProcAddressFunc getProcAddress) {
            glCullFace = (GlCullFace) getProcAddress("glCullFace");
            glFrontFace = (GlFrontFace) getProcAddress("glFrontFace");
            glHint = (GlHint) getProcAddress("glHint");
            glLineWidth = (GlLineWidth) getProcAddress("glLineWidth");
            glPointSize = (GlPointSize) getProcAddress("glPointSize");
            glPolygonMode = (GlPolygonMode) getProcAddress("glPolygonMode");
            glScissor = (GlScissor) getProcAddress("glScissor");
            glTexParameterf = (GlTexParameterf) getProcAddress("glTexParameterf");
            glTexParameterfv = (GlTexParameterfv) getProcAddress("glTexParameterfv");
            glTexParameteri = (GlTexParameteri) getProcAddress("glTexParameteri");
            glTexParameteriv = (GlTexParameteriv) getProcAddress("glTexParameteriv");
            glTexImage1D = (GlTexImage1D) getProcAddress("glTexImage1D");
            glTexImage2D = (GlTexImage2D) getProcAddress("glTexImage2D");
            glDrawBuffer = (GlDrawBuffer) getProcAddress("glDrawBuffer");
            glClear = (GlClear) getProcAddress("glClear");
            glClearColor = (GlClearColor) getProcAddress("glClearColor");
            glClearStencil = (GlClearStencil) getProcAddress("glClearStencil");
            glClearDepth = (GlClearDepth) getProcAddress("glClearDepth");
            glStencilMask = (GlStencilMask) getProcAddress("glStencilMask");
            glColorMask = (GlColorMask) getProcAddress("glColorMask");
            glDepthMask = (GlDepthMask) getProcAddress("glDepthMask");
            glDisable = (GlDisable) getProcAddress("glDisable");
            glEnable = (GlEnable) getProcAddress("glEnable");
            glFinish = (GlFinish) getProcAddress("glFinish");
            glFlush = (GlFlush) getProcAddress("glFlush");
            glBlendFunc = (GlBlendFunc) getProcAddress("glBlendFunc");
            glLogicOp = (GlLogicOp) getProcAddress("glLogicOp");
            glStencilFunc = (GlStencilFunc) getProcAddress("glStencilFunc");
            glStencilOp = (GlStencilOp) getProcAddress("glStencilOp");
            glDepthFunc = (GlDepthFunc) getProcAddress("glDepthFunc");
            glPixelStoref = (GlPixelStoref) getProcAddress("glPixelStoref");
            glPixelStorei = (GlPixelStorei) getProcAddress("glPixelStorei");
            glReadBuffer = (GlReadBuffer) getProcAddress("glReadBuffer");
            glReadPixels = (GlReadPixels) getProcAddress("glReadPixels");
            glGetBooleanv = (GlGetBooleanv) getProcAddress("glGetBooleanv");
            glGetDoublev = (GlGetDoublev) getProcAddress("glGetDoublev");
            glGetError = (GlGetError) getProcAddress("glGetError");
            glGetFloatv = (GlGetFloatv) getProcAddress("glGetFloatv");
            glGetIntegerv = (GlGetIntegerv) getProcAddress("glGetIntegerv");
            glGetString = (GlGetString) getProcAddress("glGetString");
            glGetTexImage = (GlGetTexImage) getProcAddress("glGetTexImage");
            glGetTexParameterfv = (GlGetTexParameterfv) getProcAddress("glGetTexParameterfv");
            glGetTexParameteriv = (GlGetTexParameteriv) getProcAddress("glGetTexParameteriv");
            glGetTexLevelParameterfv = (GlGetTexLevelParameterfv) getProcAddress("glGetTexLevelParameterfv");
            glGetTexLevelParameteriv = (GlGetTexLevelParameteriv) getProcAddress("glGetTexLevelParameteriv");
            glIsEnabled = (GlIsEnabled) getProcAddress("glIsEnabled");
            glDepthRange = (GlDepthRange) getProcAddress("glDepthRange");
            glViewport = (GlViewport) getProcAddress("glViewport");
            glDrawArrays = (GlDrawArrays) getProcAddress("glDrawArrays");
            glDrawElements = (GlDrawElements) getProcAddress("glDrawElements");
            glPolygonOffset = (GlPolygonOffset) getProcAddress("glPolygonOffset");
            glCopyTexImage1D = (GlCopyTexImage1D) getProcAddress("glCopyTexImage1D");
            glCopyTexImage2D = (GlCopyTexImage2D) getProcAddress("glCopyTexImage2D");
            glCopyTexSubImage1D = (GlCopyTexSubImage1D) getProcAddress("glCopyTexSubImage1D");
            glCopyTexSubImage2D = (GlCopyTexSubImage2D) getProcAddress("glCopyTexSubImage2D");
            glTexSubImage1D = (GlTexSubImage1D) getProcAddress("glTexSubImage1D");
            glTexSubImage2D = (GlTexSubImage2D) getProcAddress("glTexSubImage2D");
            glBindTexture = (GlBindTexture) getProcAddress("glBindTexture");
            glDeleteTextures = (GlDeleteTextures) getProcAddress("glDeleteTextures");
            glGenTextures = (GlGenTextures) getProcAddress("glGenTextures");
            glIsTexture = (GlIsTexture) getProcAddress("glIsTexture");
            glDrawRangeElements = (GlDrawRangeElements) getProcAddress("glDrawRangeElements");
            glTexImage3D = (GlTexImage3D) getProcAddress("glTexImage3D");
            glTexSubImage3D = (GlTexSubImage3D) getProcAddress("glTexSubImage3D");
            glCopyTexSubImage3D = (GlCopyTexSubImage3D) getProcAddress("glCopyTexSubImage3D");
            glActiveTexture = (GlActiveTexture) getProcAddress("glActiveTexture");
            glSampleCoverage = (GlSampleCoverage) getProcAddress("glSampleCoverage");
            glCompressedTexImage3D = (GlCompressedTexImage3D) getProcAddress("glCompressedTexImage3D");
            glCompressedTexImage2D = (GlCompressedTexImage2D) getProcAddress("glCompressedTexImage2D");
            glCompressedTexImage1D = (GlCompressedTexImage1D) getProcAddress("glCompressedTexImage1D");
            glCompressedTexSubImage3D = (GlCompressedTexSubImage3D) getProcAddress("glCompressedTexSubImage3D");
            glCompressedTexSubImage2D = (GlCompressedTexSubImage2D) getProcAddress("glCompressedTexSubImage2D");
            glCompressedTexSubImage1D = (GlCompressedTexSubImage1D) getProcAddress("glCompressedTexSubImage1D");
            glGetCompressedTexImage = (GlGetCompressedTexImage) getProcAddress("glGetCompressedTexImage");
            glBlendFuncSeparate = (GlBlendFuncSeparate) getProcAddress("glBlendFuncSeparate");
            glMultiDrawArrays = (GlMultiDrawArrays) getProcAddress("glMultiDrawArrays");
            glMultiDrawElements = (GlMultiDrawElements) getProcAddress("glMultiDrawElements");
            glPointParameterf = (GlPointParameterf) getProcAddress("glPointParameterf");
            glPointParameterfv = (GlPointParameterfv) getProcAddress("glPointParameterfv");
            glPointParameteri = (GlPointParameteri) getProcAddress("glPointParameteri");
            glPointParameteriv = (GlPointParameteriv) getProcAddress("glPointParameteriv");
            glBlendColor = (GlBlendColor) getProcAddress("glBlendColor");
            glBlendEquation = (GlBlendEquation) getProcAddress("glBlendEquation");
            glGenQueries = (GlGenQueries) getProcAddress("glGenQueries");
            glDeleteQueries = (GlDeleteQueries) getProcAddress("glDeleteQueries");
            glIsQuery = (GlIsQuery) getProcAddress("glIsQuery");
            glBeginQuery = (GlBeginQuery) getProcAddress("glBeginQuery");
            glEndQuery = (GlEndQuery) getProcAddress("glEndQuery");
            glGetQueryiv = (GlGetQueryiv) getProcAddress("glGetQueryiv");
            glGetQueryObjectiv = (GlGetQueryObjectiv) getProcAddress("glGetQueryObjectiv");
            glGetQueryObjectuiv = (GlGetQueryObjectuiv) getProcAddress("glGetQueryObjectuiv");
            glBindBuffer = (GlBindBuffer) getProcAddress("glBindBuffer");
            glDeleteBuffers = (GlDeleteBuffers) getProcAddress("glDeleteBuffers");
            glGenBuffers = (GlGenBuffers) getProcAddress("glGenBuffers");
            glIsBuffer = (GlIsBuffer) getProcAddress("glIsBuffer");
            glBufferData = (GlBufferData) getProcAddress("glBufferData");
            glBufferSubData = (GlBufferSubData) getProcAddress("glBufferSubData");
            glGetBufferSubData = (GlGetBufferSubData) getProcAddress("glGetBufferSubData");
            glMapBuffer = (GlMapBuffer) getProcAddress("glMapBuffer");
            glUnmapBuffer = (GlUnmapBuffer) getProcAddress("glUnmapBuffer");
            glGetBufferParameteriv = (GlGetBufferParameteriv) getProcAddress("glGetBufferParameteriv");
            glGetBufferPointerv = (GlGetBufferPointerv) getProcAddress("glGetBufferPointerv");
            glBlendEquationSeparate = (GlBlendEquationSeparate) getProcAddress("glBlendEquationSeparate");
            glDrawBuffers = (GlDrawBuffers) getProcAddress("glDrawBuffers");
            glStencilOpSeparate = (GlStencilOpSeparate) getProcAddress("glStencilOpSeparate");
            glStencilFuncSeparate = (GlStencilFuncSeparate) getProcAddress("glStencilFuncSeparate");
            glStencilMaskSeparate = (GlStencilMaskSeparate) getProcAddress("glStencilMaskSeparate");
            glAttachShader = (GlAttachShader) getProcAddress("glAttachShader");
            glBindAttribLocation = (GlBindAttribLocation) getProcAddress("glBindAttribLocation");
            glCompileShader = (GlCompileShader) getProcAddress("glCompileShader");
            glCreateProgram = (GlCreateProgram) getProcAddress("glCreateProgram");
            glCreateShader = (GlCreateShader) getProcAddress("glCreateShader");
            glDeleteProgram = (GlDeleteProgram) getProcAddress("glDeleteProgram");
            glDeleteShader = (GlDeleteShader) getProcAddress("glDeleteShader");
            glDetachShader = (GlDetachShader) getProcAddress("glDetachShader");
            glDisableVertexAttribArray = (GlDisableVertexAttribArray) getProcAddress("glDisableVertexAttribArray");
            glEnableVertexAttribArray = (GlEnableVertexAttribArray) getProcAddress("glEnableVertexAttribArray");
            glGetActiveAttrib = (GlGetActiveAttrib) getProcAddress("glGetActiveAttrib");
            glGetActiveUniform = (GlGetActiveUniform) getProcAddress("glGetActiveUniform");
            glGetAttachedShaders = (GlGetAttachedShaders) getProcAddress("glGetAttachedShaders");
            glGetAttribLocation = (GlGetAttribLocation) getProcAddress("glGetAttribLocation");
            glGetProgramiv = (GlGetProgramiv) getProcAddress("glGetProgramiv");
            glGetProgramInfoLog = (GlGetProgramInfoLog) getProcAddress("glGetProgramInfoLog");
            glGetShaderiv = (GlGetShaderiv) getProcAddress("glGetShaderiv");
            glGetShaderInfoLog = (GlGetShaderInfoLog) getProcAddress("glGetShaderInfoLog");
            glGetShaderSource = (GlGetShaderSource) getProcAddress("glGetShaderSource");
            glGetUniformLocation = (GlGetUniformLocation) getProcAddress("glGetUniformLocation");
            glGetUniformfv = (GlGetUniformfv) getProcAddress("glGetUniformfv");
            glGetUniformiv = (GlGetUniformiv) getProcAddress("glGetUniformiv");
            glGetVertexAttribdv = (GlGetVertexAttribdv) getProcAddress("glGetVertexAttribdv");
            glGetVertexAttribfv = (GlGetVertexAttribfv) getProcAddress("glGetVertexAttribfv");
            glGetVertexAttribiv = (GlGetVertexAttribiv) getProcAddress("glGetVertexAttribiv");
            glGetVertexAttribPointerv = (GlGetVertexAttribPointerv) getProcAddress("glGetVertexAttribPointerv");
            glIsProgram = (GlIsProgram) getProcAddress("glIsProgram");
            glIsShader = (GlIsShader) getProcAddress("glIsShader");
            glLinkProgram = (GlLinkProgram) getProcAddress("glLinkProgram");
            glShaderSource = (GlShaderSource) getProcAddress("glShaderSource");
            glUseProgram = (GlUseProgram) getProcAddress("glUseProgram");
            glUniform1f = (GlUniform1f) getProcAddress("glUniform1f");
            glUniform2f = (GlUniform2f) getProcAddress("glUniform2f");
            glUniform3f = (GlUniform3f) getProcAddress("glUniform3f");
            glUniform4f = (GlUniform4f) getProcAddress("glUniform4f");
            glUniform1i = (GlUniform1i) getProcAddress("glUniform1i");
            glUniform2i = (GlUniform2i) getProcAddress("glUniform2i");
            glUniform3i = (GlUniform3i) getProcAddress("glUniform3i");
            glUniform4i = (GlUniform4i) getProcAddress("glUniform4i");
            glUniform1fv = (GlUniform1fv) getProcAddress("glUniform1fv");
            glUniform2fv = (GlUniform2fv) getProcAddress("glUniform2fv");
            glUniform3fv = (GlUniform3fv) getProcAddress("glUniform3fv");
            glUniform4fv = (GlUniform4fv) getProcAddress("glUniform4fv");
            glUniform1iv = (GlUniform1iv) getProcAddress("glUniform1iv");
            glUniform2iv = (GlUniform2iv) getProcAddress("glUniform2iv");
            glUniform3iv = (GlUniform3iv) getProcAddress("glUniform3iv");
            glUniform4iv = (GlUniform4iv) getProcAddress("glUniform4iv");
            glUniformMatrix2fv = (GlUniformMatrix2fv) getProcAddress("glUniformMatrix2fv");
            glUniformMatrix3fv = (GlUniformMatrix3fv) getProcAddress("glUniformMatrix3fv");
            glUniformMatrix4fv = (GlUniformMatrix4fv) getProcAddress("glUniformMatrix4fv");
            glValidateProgram = (GlValidateProgram) getProcAddress("glValidateProgram");
            glVertexAttrib1d = (GlVertexAttrib1d) getProcAddress("glVertexAttrib1d");
            glVertexAttrib1dv = (GlVertexAttrib1dv) getProcAddress("glVertexAttrib1dv");
            glVertexAttrib1f = (GlVertexAttrib1f) getProcAddress("glVertexAttrib1f");
            glVertexAttrib1fv = (GlVertexAttrib1fv) getProcAddress("glVertexAttrib1fv");
            glVertexAttrib1s = (GlVertexAttrib1s) getProcAddress("glVertexAttrib1s");
            glVertexAttrib1sv = (GlVertexAttrib1sv) getProcAddress("glVertexAttrib1sv");
            glVertexAttrib2d = (GlVertexAttrib2d) getProcAddress("glVertexAttrib2d");
            glVertexAttrib2dv = (GlVertexAttrib2dv) getProcAddress("glVertexAttrib2dv");
            glVertexAttrib2f = (GlVertexAttrib2f) getProcAddress("glVertexAttrib2f");
            glVertexAttrib2fv = (GlVertexAttrib2fv) getProcAddress("glVertexAttrib2fv");
            glVertexAttrib2s = (GlVertexAttrib2s) getProcAddress("glVertexAttrib2s");
            glVertexAttrib2sv = (GlVertexAttrib2sv) getProcAddress("glVertexAttrib2sv");
            glVertexAttrib3d = (GlVertexAttrib3d) getProcAddress("glVertexAttrib3d");
            glVertexAttrib3dv = (GlVertexAttrib3dv) getProcAddress("glVertexAttrib3dv");
            glVertexAttrib3f = (GlVertexAttrib3f) getProcAddress("glVertexAttrib3f");
            glVertexAttrib3fv = (GlVertexAttrib3fv) getProcAddress("glVertexAttrib3fv");
            glVertexAttrib3s = (GlVertexAttrib3s) getProcAddress("glVertexAttrib3s");
            glVertexAttrib3sv = (GlVertexAttrib3sv) getProcAddress("glVertexAttrib3sv");
            glVertexAttrib4Nbv = (GlVertexAttrib4Nbv) getProcAddress("glVertexAttrib4Nbv");
            glVertexAttrib4Niv = (GlVertexAttrib4Niv) getProcAddress("glVertexAttrib4Niv");
            glVertexAttrib4Nsv = (GlVertexAttrib4Nsv) getProcAddress("glVertexAttrib4Nsv");
            glVertexAttrib4Nub = (GlVertexAttrib4Nub) getProcAddress("glVertexAttrib4Nub");
            glVertexAttrib4Nubv = (GlVertexAttrib4Nubv) getProcAddress("glVertexAttrib4Nubv");
            glVertexAttrib4Nuiv = (GlVertexAttrib4Nuiv) getProcAddress("glVertexAttrib4Nuiv");
            glVertexAttrib4Nusv = (GlVertexAttrib4Nusv) getProcAddress("glVertexAttrib4Nusv");
            glVertexAttrib4bv = (GlVertexAttrib4bv) getProcAddress("glVertexAttrib4bv");
            glVertexAttrib4d = (GlVertexAttrib4d) getProcAddress("glVertexAttrib4d");
            glVertexAttrib4dv = (GlVertexAttrib4dv) getProcAddress("glVertexAttrib4dv");
            glVertexAttrib4f = (GlVertexAttrib4f) getProcAddress("glVertexAttrib4f");
            glVertexAttrib4fv = (GlVertexAttrib4fv) getProcAddress("glVertexAttrib4fv");
            glVertexAttrib4iv = (GlVertexAttrib4iv) getProcAddress("glVertexAttrib4iv");
            glVertexAttrib4s = (GlVertexAttrib4s) getProcAddress("glVertexAttrib4s");
            glVertexAttrib4sv = (GlVertexAttrib4sv) getProcAddress("glVertexAttrib4sv");
            glVertexAttrib4ubv = (GlVertexAttrib4ubv) getProcAddress("glVertexAttrib4ubv");
            glVertexAttrib4uiv = (GlVertexAttrib4uiv) getProcAddress("glVertexAttrib4uiv");
            glVertexAttrib4usv = (GlVertexAttrib4usv) getProcAddress("glVertexAttrib4usv");
            glVertexAttribPointer = (GlVertexAttribPointer) getProcAddress("glVertexAttribPointer");
            glUniformMatrix2x3fv = (GlUniformMatrix2x3fv) getProcAddress("glUniformMatrix2x3fv");
            glUniformMatrix3x2fv = (GlUniformMatrix3x2fv) getProcAddress("glUniformMatrix3x2fv");
            glUniformMatrix2x4fv = (GlUniformMatrix2x4fv) getProcAddress("glUniformMatrix2x4fv");
            glUniformMatrix4x2fv = (GlUniformMatrix4x2fv) getProcAddress("glUniformMatrix4x2fv");
            glUniformMatrix3x4fv = (GlUniformMatrix3x4fv) getProcAddress("glUniformMatrix3x4fv");
            glUniformMatrix4x3fv = (GlUniformMatrix4x3fv) getProcAddress("glUniformMatrix4x3fv");
            glColorMaski = (GlColorMaski) getProcAddress("glColorMaski");
            glGetBooleani_v = (GlGetBooleani_v) getProcAddress("glGetBooleani_v");
            glGetIntegeri_v = (GlGetIntegeri_v) getProcAddress("glGetIntegeri_v");
            glEnablei = (GlEnablei) getProcAddress("glEnablei");
            glDisablei = (GlDisablei) getProcAddress("glDisablei");
            glIsEnabledi = (GlIsEnabledi) getProcAddress("glIsEnabledi");
            glBeginTransformFeedback = (GlBeginTransformFeedback) getProcAddress("glBeginTransformFeedback");
            glEndTransformFeedback = (GlEndTransformFeedback) getProcAddress("glEndTransformFeedback");
            glBindBufferRange = (GlBindBufferRange) getProcAddress("glBindBufferRange");
            glBindBufferBase = (GlBindBufferBase) getProcAddress("glBindBufferBase");
            glTransformFeedbackVaryings = (GlTransformFeedbackVaryings) getProcAddress("glTransformFeedbackVaryings");
            glGetTransformFeedbackVarying = (GlGetTransformFeedbackVarying) getProcAddress("glGetTransformFeedbackVarying");
            glClampColor = (GlClampColor) getProcAddress("glClampColor");
            glBeginConditionalRender = (GlBeginConditionalRender) getProcAddress("glBeginConditionalRender");
            glEndConditionalRender = (GlEndConditionalRender) getProcAddress("glEndConditionalRender");
            glVertexAttribIPointer = (GlVertexAttribIPointer) getProcAddress("glVertexAttribIPointer");
            glGetVertexAttribIiv = (GlGetVertexAttribIiv) getProcAddress("glGetVertexAttribIiv");
            glGetVertexAttribIuiv = (GlGetVertexAttribIuiv) getProcAddress("glGetVertexAttribIuiv");
            glVertexAttribI1i = (GlVertexAttribI1i) getProcAddress("glVertexAttribI1i");
            glVertexAttribI2i = (GlVertexAttribI2i) getProcAddress("glVertexAttribI2i");
            glVertexAttribI3i = (GlVertexAttribI3i) getProcAddress("glVertexAttribI3i");
            glVertexAttribI4i = (GlVertexAttribI4i) getProcAddress("glVertexAttribI4i");
            glVertexAttribI1ui = (GlVertexAttribI1ui) getProcAddress("glVertexAttribI1ui");
            glVertexAttribI2ui = (GlVertexAttribI2ui) getProcAddress("glVertexAttribI2ui");
            glVertexAttribI3ui = (GlVertexAttribI3ui) getProcAddress("glVertexAttribI3ui");
            glVertexAttribI4ui = (GlVertexAttribI4ui) getProcAddress("glVertexAttribI4ui");
            glVertexAttribI1iv = (GlVertexAttribI1iv) getProcAddress("glVertexAttribI1iv");
            glVertexAttribI2iv = (GlVertexAttribI2iv) getProcAddress("glVertexAttribI2iv");
            glVertexAttribI3iv = (GlVertexAttribI3iv) getProcAddress("glVertexAttribI3iv");
            glVertexAttribI4iv = (GlVertexAttribI4iv) getProcAddress("glVertexAttribI4iv");
            glVertexAttribI1uiv = (GlVertexAttribI1uiv) getProcAddress("glVertexAttribI1uiv");
            glVertexAttribI2uiv = (GlVertexAttribI2uiv) getProcAddress("glVertexAttribI2uiv");
            glVertexAttribI3uiv = (GlVertexAttribI3uiv) getProcAddress("glVertexAttribI3uiv");
            glVertexAttribI4uiv = (GlVertexAttribI4uiv) getProcAddress("glVertexAttribI4uiv");
            glVertexAttribI4bv = (GlVertexAttribI4bv) getProcAddress("glVertexAttribI4bv");
            glVertexAttribI4sv = (GlVertexAttribI4sv) getProcAddress("glVertexAttribI4sv");
            glVertexAttribI4ubv = (GlVertexAttribI4ubv) getProcAddress("glVertexAttribI4ubv");
            glVertexAttribI4usv = (GlVertexAttribI4usv) getProcAddress("glVertexAttribI4usv");
            glGetUniformuiv = (GlGetUniformuiv) getProcAddress("glGetUniformuiv");
            glBindFragDataLocation = (GlBindFragDataLocation) getProcAddress("glBindFragDataLocation");
            glGetFragDataLocation = (GlGetFragDataLocation) getProcAddress("glGetFragDataLocation");
            glUniform1ui = (GlUniform1ui) getProcAddress("glUniform1ui");
            glUniform2ui = (GlUniform2ui) getProcAddress("glUniform2ui");
            glUniform3ui = (GlUniform3ui) getProcAddress("glUniform3ui");
            glUniform4ui = (GlUniform4ui) getProcAddress("glUniform4ui");
            glUniform1uiv = (GlUniform1uiv) getProcAddress("glUniform1uiv");
            glUniform2uiv = (GlUniform2uiv) getProcAddress("glUniform2uiv");
            glUniform3uiv = (GlUniform3uiv) getProcAddress("glUniform3uiv");
            glUniform4uiv = (GlUniform4uiv) getProcAddress("glUniform4uiv");
            glTexParameterIiv = (GlTexParameterIiv) getProcAddress("glTexParameterIiv");
            glTexParameterIuiv = (GlTexParameterIuiv) getProcAddress("glTexParameterIuiv");
            glGetTexParameterIiv = (GlGetTexParameterIiv) getProcAddress("glGetTexParameterIiv");
            glGetTexParameterIuiv = (GlGetTexParameterIuiv) getProcAddress("glGetTexParameterIuiv");
            glClearBufferiv = (GlClearBufferiv) getProcAddress("glClearBufferiv");
            glClearBufferuiv = (GlClearBufferuiv) getProcAddress("glClearBufferuiv");
            glClearBufferfv = (GlClearBufferfv) getProcAddress("glClearBufferfv");
            glClearBufferfi = (GlClearBufferfi) getProcAddress("glClearBufferfi");
            glGetStringi = (GlGetStringi) getProcAddress("glGetStringi");
            glIsRenderbuffer = (GlIsRenderbuffer) getProcAddress("glIsRenderbuffer");
            glBindRenderbuffer = (GlBindRenderbuffer) getProcAddress("glBindRenderbuffer");
            glDeleteRenderbuffers = (GlDeleteRenderbuffers) getProcAddress("glDeleteRenderbuffers");
            glGenRenderbuffers = (GlGenRenderbuffers) getProcAddress("glGenRenderbuffers");
            glRenderbufferStorage = (GlRenderbufferStorage) getProcAddress("glRenderbufferStorage");
            glGetRenderbufferParameteriv = (GlGetRenderbufferParameteriv) getProcAddress("glGetRenderbufferParameteriv");
            glIsFramebuffer = (GlIsFramebuffer) getProcAddress("glIsFramebuffer");
            glBindFramebuffer = (GlBindFramebuffer) getProcAddress("glBindFramebuffer");
            glDeleteFramebuffers = (GlDeleteFramebuffers) getProcAddress("glDeleteFramebuffers");
            glGenFramebuffers = (GlGenFramebuffers) getProcAddress("glGenFramebuffers");
            glCheckFramebufferStatus = (GlCheckFramebufferStatus) getProcAddress("glCheckFramebufferStatus");
            glFramebufferTexture1D = (GlFramebufferTexture1D) getProcAddress("glFramebufferTexture1D");
            glFramebufferTexture2D = (GlFramebufferTexture2D) getProcAddress("glFramebufferTexture2D");
            glFramebufferTexture3D = (GlFramebufferTexture3D) getProcAddress("glFramebufferTexture3D");
            glFramebufferRenderbuffer = (GlFramebufferRenderbuffer) getProcAddress("glFramebufferRenderbuffer");
            glGetFramebufferAttachmentParameteriv = (GlGetFramebufferAttachmentParameteriv) getProcAddress("glGetFramebufferAttachmentParameteriv");
            glGenerateMipmap = (GlGenerateMipmap) getProcAddress("glGenerateMipmap");
            glBlitFramebuffer = (GlBlitFramebuffer) getProcAddress("glBlitFramebuffer");
            glRenderbufferStorageMultisample = (GlRenderbufferStorageMultisample) getProcAddress("glRenderbufferStorageMultisample");
            glFramebufferTextureLayer = (GlFramebufferTextureLayer) getProcAddress("glFramebufferTextureLayer");
            glMapBufferRange = (GlMapBufferRange) getProcAddress("glMapBufferRange");
            glFlushMappedBufferRange = (GlFlushMappedBufferRange) getProcAddress("glFlushMappedBufferRange");
            glBindVertexArray = (GlBindVertexArray) getProcAddress("glBindVertexArray");
            glDeleteVertexArrays = (GlDeleteVertexArrays) getProcAddress("glDeleteVertexArrays");
            glGenVertexArrays = (GlGenVertexArrays) getProcAddress("glGenVertexArrays");
            glIsVertexArray = (GlIsVertexArray) getProcAddress("glIsVertexArray");
            glDrawArraysInstanced = (GlDrawArraysInstanced) getProcAddress("glDrawArraysInstanced");
            glDrawElementsInstanced = (GlDrawElementsInstanced) getProcAddress("glDrawElementsInstanced");
            glTexBuffer = (GlTexBuffer) getProcAddress("glTexBuffer");
            glPrimitiveRestartIndex = (GlPrimitiveRestartIndex) getProcAddress("glPrimitiveRestartIndex");
            glCopyBufferSubData = (GlCopyBufferSubData) getProcAddress("glCopyBufferSubData");
            glGetUniformIndices = (GlGetUniformIndices) getProcAddress("glGetUniformIndices");
            glGetActiveUniformsiv = (GlGetActiveUniformsiv) getProcAddress("glGetActiveUniformsiv");
            glGetActiveUniformName = (GlGetActiveUniformName) getProcAddress("glGetActiveUniformName");
            glGetUniformBlockIndex = (GlGetUniformBlockIndex) getProcAddress("glGetUniformBlockIndex");
            glGetActiveUniformBlockiv = (GlGetActiveUniformBlockiv) getProcAddress("glGetActiveUniformBlockiv");
            glGetActiveUniformBlockName = (GlGetActiveUniformBlockName) getProcAddress("glGetActiveUniformBlockName");
            glUniformBlockBinding = (GlUniformBlockBinding) getProcAddress("glUniformBlockBinding");
            glDrawElementsBaseVertex = (GlDrawElementsBaseVertex) getProcAddress("glDrawElementsBaseVertex");
            glDrawRangeElementsBaseVertex = (GlDrawRangeElementsBaseVertex) getProcAddress("glDrawRangeElementsBaseVertex");
            glDrawElementsInstancedBaseVertex = (GlDrawElementsInstancedBaseVertex) getProcAddress("glDrawElementsInstancedBaseVertex");
            glMultiDrawElementsBaseVertex = (GlMultiDrawElementsBaseVertex) getProcAddress("glMultiDrawElementsBaseVertex");
            glProvokingVertex = (GlProvokingVertex) getProcAddress("glProvokingVertex");
            glFenceSync = (GlFenceSync) getProcAddress("glFenceSync");
            glIsSync = (GlIsSync) getProcAddress("glIsSync");
            glDeleteSync = (GlDeleteSync) getProcAddress("glDeleteSync");
            glClientWaitSync = (GlClientWaitSync) getProcAddress("glClientWaitSync");
            glWaitSync = (GlWaitSync) getProcAddress("glWaitSync");
            glGetInteger64v = (GlGetInteger64v) getProcAddress("glGetInteger64v");
            glGetSynciv = (GlGetSynciv) getProcAddress("glGetSynciv");
            glGetInteger64i_v = (GlGetInteger64i_v) getProcAddress("glGetInteger64i_v");
            glGetBufferParameteri64v = (GlGetBufferParameteri64v) getProcAddress("glGetBufferParameteri64v");
            glFramebufferTexture = (GlFramebufferTexture) getProcAddress("glFramebufferTexture");
            glTexImage2DMultisample = (GlTexImage2DMultisample) getProcAddress("glTexImage2DMultisample");
            glTexImage3DMultisample = (GlTexImage3DMultisample) getProcAddress("glTexImage3DMultisample");
            glGetMultisamplefv = (GlGetMultisamplefv) getProcAddress("glGetMultisamplefv");
            glSampleMaski = (GlSampleMaski) getProcAddress("glSampleMaski");
            glBindFragDataLocationIndexed = (GlBindFragDataLocationIndexed) getProcAddress("glBindFragDataLocationIndexed");
            glGetFragDataIndex = (GlGetFragDataIndex) getProcAddress("glGetFragDataIndex");
            glGenSamplers = (GlGenSamplers) getProcAddress("glGenSamplers");
            glDeleteSamplers = (GlDeleteSamplers) getProcAddress("glDeleteSamplers");
            glIsSampler = (GlIsSampler) getProcAddress("glIsSampler");
            glBindSampler = (GlBindSampler) getProcAddress("glBindSampler");
            glSamplerParameteri = (GlSamplerParameteri) getProcAddress("glSamplerParameteri");
            glSamplerParameteriv = (GlSamplerParameteriv) getProcAddress("glSamplerParameteriv");
            glSamplerParameterf = (GlSamplerParameterf) getProcAddress("glSamplerParameterf");
            glSamplerParameterfv = (GlSamplerParameterfv) getProcAddress("glSamplerParameterfv");
            glSamplerParameterIiv = (GlSamplerParameterIiv) getProcAddress("glSamplerParameterIiv");
            glSamplerParameterIuiv = (GlSamplerParameterIuiv) getProcAddress("glSamplerParameterIuiv");
            glGetSamplerParameteriv = (GlGetSamplerParameteriv) getProcAddress("glGetSamplerParameteriv");
            glGetSamplerParameterIiv = (GlGetSamplerParameterIiv) getProcAddress("glGetSamplerParameterIiv");
            glGetSamplerParameterfv = (GlGetSamplerParameterfv) getProcAddress("glGetSamplerParameterfv");
            glGetSamplerParameterIuiv = (GlGetSamplerParameterIuiv) getProcAddress("glGetSamplerParameterIuiv");
            glQueryCounter = (GlQueryCounter) getProcAddress("glQueryCounter");
            glGetQueryObjecti64v = (GlGetQueryObjecti64v) getProcAddress("glGetQueryObjecti64v");
            glGetQueryObjectui64v = (GlGetQueryObjectui64v) getProcAddress("glGetQueryObjectui64v");
            glVertexAttribDivisor = (GlVertexAttribDivisor) getProcAddress("glVertexAttribDivisor");
            glVertexAttribP1ui = (GlVertexAttribP1ui) getProcAddress("glVertexAttribP1ui");
            glVertexAttribP1uiv = (GlVertexAttribP1uiv) getProcAddress("glVertexAttribP1uiv");
            glVertexAttribP2ui = (GlVertexAttribP2ui) getProcAddress("glVertexAttribP2ui");
            glVertexAttribP2uiv = (GlVertexAttribP2uiv) getProcAddress("glVertexAttribP2uiv");
            glVertexAttribP3ui = (GlVertexAttribP3ui) getProcAddress("glVertexAttribP3ui");
            glVertexAttribP3uiv = (GlVertexAttribP3uiv) getProcAddress("glVertexAttribP3uiv");
            glVertexAttribP4ui = (GlVertexAttribP4ui) getProcAddress("glVertexAttribP4ui");
            glVertexAttribP4uiv = (GlVertexAttribP4uiv) getProcAddress("glVertexAttribP4uiv");
        }
    }
}
