export namespace WebGL2Consts {
    // 原WebGLRenderingContext的常量
    /* ClearBufferMask */
    type DEPTH_BUFFER_BIT = 0x00000100;
    type STENCIL_BUFFER_BIT = 0x00000400;
    type COLOR_BUFFER_BIT = 0x00004000;

    /* BeginMode */
    type POINTS = 0x0000;
    type LINES = 0x0001;
    type LINE_LOOP = 0x0002;
    type LINE_STRIP = 0x0003;
    type TRIANGLES = 0x0004;
    type TRIANGLE_STRIP = 0x0005;
    type TRIANGLE_FAN = 0x0006;

    /* AlphaFunction (not supported in ES20) */
    /*      NEVER */
    /*      LESS */
    /*      EQUAL */
    /*      LEQUAL */
    /*      GREATER */
    /*      NOTEQUAL */
    /*      GEQUAL */
    /*      ALWAYS */

    /* BlendingFactorDest */
    type ZERO = 0;
    type ONE = 1;
    type SRC_COLOR = 0x0300;
    type ONE_MINUS_SRC_COLOR = 0x0301;
    type SRC_ALPHA = 0x0302;
    type ONE_MINUS_SRC_ALPHA = 0x0303;
    type DST_ALPHA = 0x0304;
    type ONE_MINUS_DST_ALPHA = 0x0305;

    /* BlendingFactorSrc */
    /*      ZERO */
    /*      ONE */
    type DST_COLOR = 0x0306;
    type ONE_MINUS_DST_COLOR = 0x0307;
    type SRC_ALPHA_SATURATE = 0x0308;
    /*      SRC_ALPHA */
    /*      ONE_MINUS_SRC_ALPHA */
    /*      DST_ALPHA */
    /*      ONE_MINUS_DST_ALPHA */

    /* BlendEquationSeparate */
    type FUNC_ADD = 0x8006;
    type BLEND_EQUATION = 0x8009;
    type BLEND_EQUATION_RGB = 0x8009;   /* same as BLEND_EQUATION */
    type BLEND_EQUATION_ALPHA = 0x883D;

    /* BlendSubtract */
    type FUNC_SUBTRACT = 0x800A;
    type FUNC_REVERSE_SUBTRACT = 0x800B;

    /* Separate Blend Functions */
    type BLEND_DST_RGB = 0x80C8;
    type BLEND_SRC_RGB = 0x80C9;
    type BLEND_DST_ALPHA = 0x80CA;
    type BLEND_SRC_ALPHA = 0x80CB;
    type CONSTANT_COLOR = 0x8001;
    type ONE_MINUS_CONSTANT_COLOR = 0x8002;
    type CONSTANT_ALPHA = 0x8003;
    type ONE_MINUS_CONSTANT_ALPHA = 0x8004;
    type BLEND_COLOR = 0x8005;

    /* Buffer Objects */
    type ARRAY_BUFFER = 0x8892;
    type ELEMENT_ARRAY_BUFFER = 0x8893;
    type ARRAY_BUFFER_BINDING = 0x8894;
    type ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;

    type STREAM_DRAW = 0x88E0;
    type STATIC_DRAW = 0x88E4;
    type DYNAMIC_DRAW = 0x88E8;

    type BUFFER_SIZE = 0x8764;
    type BUFFER_USAGE = 0x8765;

    type CURRENT_VERTEX_ATTRIB = 0x8626;

    /* CullFaceMode */
    type FRONT = 0x0404;
    type BACK = 0x0405;
    type FRONT_AND_BACK = 0x0408;

    /* DepthFunction */
    /*      NEVER */
    /*      LESS */
    /*      EQUAL */
    /*      LEQUAL */
    /*      GREATER */
    /*      NOTEQUAL */
    /*      GEQUAL */
    /*      ALWAYS */

    /* EnableCap */
    /* TEXTURE_2D */
    type CULL_FACE = 0x0B44;
    type BLEND = 0x0BE2;
    type DITHER = 0x0BD0;
    type STENCIL_TEST = 0x0B90;
    type DEPTH_TEST = 0x0B71;
    type SCISSOR_TEST = 0x0C11;
    type POLYGON_OFFSET_FILL = 0x8037;
    type SAMPLE_ALPHA_TO_COVERAGE = 0x809E;
    type SAMPLE_COVERAGE = 0x80A0;

    /* ErrorCode */
    type NO_ERROR = 0;
    type INVALID_ENUM = 0x0500;
    type INVALID_VALUE = 0x0501;
    type INVALID_OPERATION = 0x0502;
    type OUT_OF_MEMORY = 0x0505;

    /* FrontFaceDirection */
    type CW = 0x0900;
    type CCW = 0x0901;

    /* GetPName */
    type LINE_WIDTH = 0x0B21;
    type ALIASED_POINT_SIZE_RANGE = 0x846D;
    type ALIASED_LINE_WIDTH_RANGE = 0x846E;
    type CULL_FACE_MODE = 0x0B45;
    type FRONT_FACE = 0x0B46;
    type DEPTH_RANGE = 0x0B70;
    type DEPTH_WRITEMASK = 0x0B72;
    type DEPTH_CLEAR_VALUE = 0x0B73;
    type DEPTH_FUNC = 0x0B74;
    type STENCIL_CLEAR_VALUE = 0x0B91;
    type STENCIL_FUNC = 0x0B92;
    type STENCIL_FAIL = 0x0B94;
    type STENCIL_PASS_DEPTH_FAIL = 0x0B95;
    type STENCIL_PASS_DEPTH_PASS = 0x0B96;
    type STENCIL_REF = 0x0B97;
    type STENCIL_VALUE_MASK = 0x0B93;
    type STENCIL_WRITEMASK = 0x0B98;
    type STENCIL_BACK_FUNC = 0x8800;
    type STENCIL_BACK_FAIL = 0x8801;
    type STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802;
    type STENCIL_BACK_PASS_DEPTH_PASS = 0x8803;
    type STENCIL_BACK_REF = 0x8CA3;
    type STENCIL_BACK_VALUE_MASK = 0x8CA4;
    type STENCIL_BACK_WRITEMASK = 0x8CA5;
    type VIEWPORT = 0x0BA2;
    type SCISSOR_BOX = 0x0C10;
    /*      SCISSOR_TEST */
    type COLOR_CLEAR_VALUE = 0x0C22;
    type COLOR_WRITEMASK = 0x0C23;
    type UNPACK_ALIGNMENT = 0x0CF5;
    type PACK_ALIGNMENT = 0x0D05;
    type MAX_TEXTURE_SIZE = 0x0D33;
    type MAX_VIEWPORT_DIMS = 0x0D3A;
    type SUBPIXEL_BITS = 0x0D50;
    type RED_BITS = 0x0D52;
    type GREEN_BITS = 0x0D53;
    type BLUE_BITS = 0x0D54;
    type ALPHA_BITS = 0x0D55;
    type DEPTH_BITS = 0x0D56;
    type STENCIL_BITS = 0x0D57;
    type POLYGON_OFFSET_UNITS = 0x2A00;
    /*      POLYGON_OFFSET_FILL */
    type POLYGON_OFFSET_FACTOR = 0x8038;
    type TEXTURE_BINDING_2D = 0x8069;
    type SAMPLE_BUFFERS = 0x80A8;
    type SAMPLES = 0x80A9;
    type SAMPLE_COVERAGE_VALUE = 0x80AA;
    type SAMPLE_COVERAGE_INVERT = 0x80AB;

    /* GetTextureParameter */
    /*      TEXTURE_MAG_FILTER */
    /*      TEXTURE_MIN_FILTER */
    /*      TEXTURE_WRAP_S */
    /*      TEXTURE_WRAP_T */

    type COMPRESSED_TEXTURE_FORMATS = 0x86A3;

    /* HintMode */
    type DONT_CARE = 0x1100;
    type FASTEST = 0x1101;
    type NICEST = 0x1102;

    /* HintTarget */
    type GENERATE_MIPMAP_HINT = 0x8192;

    /* DataType */
    type BYTE = 0x1400;
    type UNSIGNED_BYTE = 0x1401;
    type SHORT = 0x1402;
    type UNSIGNED_SHORT = 0x1403;
    type INT = 0x1404;
    type UNSIGNED_INT = 0x1405;
    type FLOAT = 0x1406;

    /* PixelFormat */
    type DEPTH_COMPONENT = 0x1902;
    type ALPHA = 0x1906;
    type RGB = 0x1907;
    type RGBA = 0x1908;
    type LUMINANCE = 0x1909;
    type LUMINANCE_ALPHA = 0x190A;

    /* PixelType */
    /*      UNSIGNED_BYTE */
    type UNSIGNED_SHORT_4_4_4_4 = 0x8033;
    type UNSIGNED_SHORT_5_5_5_1 = 0x8034;
    type UNSIGNED_SHORT_5_6_5 = 0x8363;

    /* Shaders */
    type FRAGMENT_SHADER = 0x8B30;
    type VERTEX_SHADER = 0x8B31;
    type MAX_VERTEX_ATTRIBS = 0x8869;
    type MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB;
    type MAX_VARYING_VECTORS = 0x8DFC;
    type MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;
    type MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C;
    type MAX_TEXTURE_IMAGE_UNITS = 0x8872;
    type MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD;
    type SHADER_TYPE = 0x8B4F;
    type DELETE_STATUS = 0x8B80;
    type LINK_STATUS = 0x8B82;
    type VALIDATE_STATUS = 0x8B83;
    type ATTACHED_SHADERS = 0x8B85;
    type ACTIVE_UNIFORMS = 0x8B86;
    type ACTIVE_ATTRIBUTES = 0x8B89;
    type SHADING_LANGUAGE_VERSION = 0x8B8C;
    type CURRENT_PROGRAM = 0x8B8D;

    /* StencilFunction */
    type NEVER = 0x0200;
    type LESS = 0x0201;
    type EQUAL = 0x0202;
    type LEQUAL = 0x0203;
    type GREATER = 0x0204;
    type NOTEQUAL = 0x0205;
    type GEQUAL = 0x0206;
    type ALWAYS = 0x0207;

    /* StencilOp */
    /*      ZERO */
    type KEEP = 0x1E00;
    type REPLACE = 0x1E01;
    type INCR = 0x1E02;
    type DECR = 0x1E03;
    type INVERT = 0x150A;
    type INCR_WRAP = 0x8507;
    type DECR_WRAP = 0x8508;

    /* StringName */
    type VENDOR = 0x1F00;
    type RENDERER = 0x1F01;
    type VERSION = 0x1F02;

    /* TextureMagFilter */
    type NEAREST = 0x2600;
    type LINEAR = 0x2601;

    /* TextureMinFilter */
    /*      NEAREST */
    /*      LINEAR */
    type NEAREST_MIPMAP_NEAREST = 0x2700;
    type LINEAR_MIPMAP_NEAREST = 0x2701;
    type NEAREST_MIPMAP_LINEAR = 0x2702;
    type LINEAR_MIPMAP_LINEAR = 0x2703;

    /* TextureParameterName */
    type TEXTURE_MAG_FILTER = 0x2800;
    type TEXTURE_MIN_FILTER = 0x2801;
    type TEXTURE_WRAP_S = 0x2802;
    type TEXTURE_WRAP_T = 0x2803;

    /* TextureTarget */
    type TEXTURE_2D = 0x0DE1;
    type TEXTURE = 0x1702;

    type TEXTURE_CUBE_MAP = 0x8513;
    type TEXTURE_BINDING_CUBE_MAP = 0x8514;
    type TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;
    type TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;
    type TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;
    type TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;
    type TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;
    type TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A;
    type MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C;

    /* TextureUnit */
    type TEXTURE0 = 0x84C0;
    type TEXTURE1 = 0x84C1;
    type TEXTURE2 = 0x84C2;
    type TEXTURE3 = 0x84C3;
    type TEXTURE4 = 0x84C4;
    type TEXTURE5 = 0x84C5;
    type TEXTURE6 = 0x84C6;
    type TEXTURE7 = 0x84C7;
    type TEXTURE8 = 0x84C8;
    type TEXTURE9 = 0x84C9;
    type TEXTURE10 = 0x84CA;
    type TEXTURE11 = 0x84CB;
    type TEXTURE12 = 0x84CC;
    type TEXTURE13 = 0x84CD;
    type TEXTURE14 = 0x84CE;
    type TEXTURE15 = 0x84CF;
    type TEXTURE16 = 0x84D0;
    type TEXTURE17 = 0x84D1;
    type TEXTURE18 = 0x84D2;
    type TEXTURE19 = 0x84D3;
    type TEXTURE20 = 0x84D4;
    type TEXTURE21 = 0x84D5;
    type TEXTURE22 = 0x84D6;
    type TEXTURE23 = 0x84D7;
    type TEXTURE24 = 0x84D8;
    type TEXTURE25 = 0x84D9;
    type TEXTURE26 = 0x84DA;
    type TEXTURE27 = 0x84DB;
    type TEXTURE28 = 0x84DC;
    type TEXTURE29 = 0x84DD;
    type TEXTURE30 = 0x84DE;
    type TEXTURE31 = 0x84DF;
    type ACTIVE_TEXTURE = 0x84E0;

    /* TextureWrapMode */
    type REPEAT = 0x2901;
    type CLAMP_TO_EDGE = 0x812F;
    type MIRRORED_REPEAT = 0x8370;

    /* Uniform Types */
    type FLOAT_VEC2 = 0x8B50;
    type FLOAT_VEC3 = 0x8B51;
    type FLOAT_VEC4 = 0x8B52;
    type INT_VEC2 = 0x8B53;
    type INT_VEC3 = 0x8B54;
    type INT_VEC4 = 0x8B55;
    type BOOL = 0x8B56;
    type BOOL_VEC2 = 0x8B57;
    type BOOL_VEC3 = 0x8B58;
    type BOOL_VEC4 = 0x8B59;
    type FLOAT_MAT2 = 0x8B5A;
    type FLOAT_MAT3 = 0x8B5B;
    type FLOAT_MAT4 = 0x8B5C;
    type SAMPLER_2D = 0x8B5E;
    type SAMPLER_CUBE = 0x8B60;

    /* Vertex Arrays */
    type VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622;
    type VERTEX_ATTRIB_ARRAY_SIZE = 0x8623;
    type VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624;
    type VERTEX_ATTRIB_ARRAY_TYPE = 0x8625;
    type VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A;
    type VERTEX_ATTRIB_ARRAY_POINTER = 0x8645;
    type VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;

    /* Shader Source */
    type COMPILE_STATUS = 0x8B81;

    /* Shader Precision-Specified Types */
    type LOW_FLOAT = 0x8DF0;
    type MEDIUM_FLOAT = 0x8DF1;
    type HIGH_FLOAT = 0x8DF2;
    type LOW_INT = 0x8DF3;
    type MEDIUM_INT = 0x8DF4;
    type HIGH_INT = 0x8DF5;

    /* Framebuffer Object. */
    type FRAMEBUFFER = 0x8D40;
    type RENDERBUFFER = 0x8D41;

    type RGBA4 = 0x8056;
    type RGB5_A1 = 0x8057;
    type RGB565 = 0x8D62;
    type DEPTH_COMPONENT16 = 0x81A5;
    type STENCIL_INDEX = 0x1901;
    type STENCIL_INDEX8 = 0x8D48;
    type DEPTH_STENCIL = 0x84F9;

    type RENDERBUFFER_WIDTH = 0x8D42;
    type RENDERBUFFER_HEIGHT = 0x8D43;
    type RENDERBUFFER_INTERNAL_FORMAT = 0x8D44;
    type RENDERBUFFER_RED_SIZE = 0x8D50;
    type RENDERBUFFER_GREEN_SIZE = 0x8D51;
    type RENDERBUFFER_BLUE_SIZE = 0x8D52;
    type RENDERBUFFER_ALPHA_SIZE = 0x8D53;
    type RENDERBUFFER_DEPTH_SIZE = 0x8D54;
    type RENDERBUFFER_STENCIL_SIZE = 0x8D55;

    type FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0;
    type FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1;
    type FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2;
    type FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;

    type COLOR_ATTACHMENT0 = 0x8CE0;
    type DEPTH_ATTACHMENT = 0x8D00;
    type STENCIL_ATTACHMENT = 0x8D20;
    type DEPTH_STENCIL_ATTACHMENT = 0x821A;

    type NONE = 0;

    type FRAMEBUFFER_COMPLETE = 0x8CD5;
    type FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6;
    type FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;
    type FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9;
    type FRAMEBUFFER_UNSUPPORTED = 0x8CDD;

    type FRAMEBUFFER_BINDING = 0x8CA6;
    type RENDERBUFFER_BINDING = 0x8CA7;
    type MAX_RENDERBUFFER_SIZE = 0x84E8;

    type INVALID_FRAMEBUFFER_OPERATION = 0x0506;

    /* WebGL-specific enums */
    type UNPACK_FLIP_Y_WEBGL = 0x9240;
    type UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241;
    type CONTEXT_LOST_WEBGL = 0x9242;
    type UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243;
    type BROWSER_DEFAULT_WEBGL = 0x9244;

    /////////////////////////////////////////////////////////////////////////
    // WebGL2 Consts
    type READ_BUFFER = 0x0C02;
    type UNPACK_ROW_LENGTH = 0x0CF2;
    type UNPACK_SKIP_ROWS = 0x0CF3;
    type UNPACK_SKIP_PIXELS = 0x0CF4;
    type PACK_ROW_LENGTH = 0x0D02;
    type PACK_SKIP_ROWS = 0x0D03;
    type PACK_SKIP_PIXELS = 0x0D04;
    type COLOR = 0x1800;
    type DEPTH = 0x1801;
    type STENCIL = 0x1802;
    type RED = 0x1903;
    type RGB8 = 0x8051;
    type RGBA8 = 0x8058;
    type RGB10_A2 = 0x8059;
    type TEXTURE_BINDING_3D = 0x806A;
    type UNPACK_SKIP_IMAGES = 0x806D;
    type UNPACK_IMAGE_HEIGHT = 0x806E;
    type TEXTURE_3D = 0x806F;
    type TEXTURE_WRAP_R = 0x8072;
    type MAX_3D_TEXTURE_SIZE = 0x8073;
    type UNSIGNED_INT_2_10_10_10_REV = 0x8368;
    type MAX_ELEMENTS_VERTICES = 0x80E8;
    type MAX_ELEMENTS_INDICES = 0x80E9;
    type TEXTURE_MIN_LOD = 0x813A;
    type TEXTURE_MAX_LOD = 0x813B;
    type TEXTURE_BASE_LEVEL = 0x813C;
    type TEXTURE_MAX_LEVEL = 0x813D;
    type MIN = 0x8007;
    type MAX = 0x8008;
    type DEPTH_COMPONENT24 = 0x81A6;
    type MAX_TEXTURE_LOD_BIAS = 0x84FD;
    type TEXTURE_COMPARE_MODE = 0x884C;
    type TEXTURE_COMPARE_FUNC = 0x884D;
    type CURRENT_QUERY = 0x8865;
    type QUERY_RESULT = 0x8866;
    type QUERY_RESULT_AVAILABLE = 0x8867;
    type STREAM_READ = 0x88E1;
    type STREAM_COPY = 0x88E2;
    type STATIC_READ = 0x88E5;
    type STATIC_COPY = 0x88E6;
    type DYNAMIC_READ = 0x88E9;
    type DYNAMIC_COPY = 0x88EA;
    type MAX_DRAW_BUFFERS = 0x8824;
    type DRAW_BUFFER0 = 0x8825;
    type DRAW_BUFFER1 = 0x8826;
    type DRAW_BUFFER2 = 0x8827;
    type DRAW_BUFFER3 = 0x8828;
    type DRAW_BUFFER4 = 0x8829;
    type DRAW_BUFFER5 = 0x882A;
    type DRAW_BUFFER6 = 0x882B;
    type DRAW_BUFFER7 = 0x882C;
    type DRAW_BUFFER8 = 0x882D;
    type DRAW_BUFFER9 = 0x882E;
    type DRAW_BUFFER10 = 0x882F;
    type DRAW_BUFFER11 = 0x8830;
    type DRAW_BUFFER12 = 0x8831;
    type DRAW_BUFFER13 = 0x8832;
    type DRAW_BUFFER14 = 0x8833;
    type DRAW_BUFFER15 = 0x8834;
    type MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49;
    type MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A;
    type SAMPLER_3D = 0x8B5F;
    type SAMPLER_2D_SHADOW = 0x8B62;
    type FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B;
    type PIXEL_PACK_BUFFER = 0x88EB;
    type PIXEL_UNPACK_BUFFER = 0x88EC;
    type PIXEL_PACK_BUFFER_BINDING = 0x88ED;
    type PIXEL_UNPACK_BUFFER_BINDING = 0x88EF;
    type FLOAT_MAT2x3 = 0x8B65;
    type FLOAT_MAT2x4 = 0x8B66;
    type FLOAT_MAT3x2 = 0x8B67;
    type FLOAT_MAT3x4 = 0x8B68;
    type FLOAT_MAT4x2 = 0x8B69;
    type FLOAT_MAT4x3 = 0x8B6A;
    type SRGB = 0x8C40;
    type SRGB8 = 0x8C41;
    type SRGB8_ALPHA8 = 0x8C43;
    type COMPARE_REF_TO_TEXTURE = 0x884E;
    type RGBA32F = 0x8814;
    type RGB32F = 0x8815;
    type RGBA16F = 0x881A;
    type RGB16F = 0x881B;
    type VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD;
    type MAX_ARRAY_TEXTURE_LAYERS = 0x88FF;
    type MIN_PROGRAM_TEXEL_OFFSET = 0x8904;
    type MAX_PROGRAM_TEXEL_OFFSET = 0x8905;
    type MAX_VARYING_COMPONENTS = 0x8B4B;
    type TEXTURE_2D_ARRAY = 0x8C1A;
    type TEXTURE_BINDING_2D_ARRAY = 0x8C1D;
    type R11F_G11F_B10F = 0x8C3A;
    type UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B;
    type RGB9_E5 = 0x8C3D;
    type UNSIGNED_INT_5_9_9_9_REV = 0x8C3E;
    type TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F;
    type MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80;
    type TRANSFORM_FEEDBACK_VARYINGS = 0x8C83;
    type TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84;
    type TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85;
    type TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88;
    type RASTERIZER_DISCARD = 0x8C89;
    type MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A;
    type MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B;
    type INTERLEAVED_ATTRIBS = 0x8C8C;
    type SEPARATE_ATTRIBS = 0x8C8D;
    type TRANSFORM_FEEDBACK_BUFFER = 0x8C8E;
    type TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F;
    type RGBA32UI = 0x8D70;
    type RGB32UI = 0x8D71;
    type RGBA16UI = 0x8D76;
    type RGB16UI = 0x8D77;
    type RGBA8UI = 0x8D7C;
    type RGB8UI = 0x8D7D;
    type RGBA32I = 0x8D82;
    type RGB32I = 0x8D83;
    type RGBA16I = 0x8D88;
    type RGB16I = 0x8D89;
    type RGBA8I = 0x8D8E;
    type RGB8I = 0x8D8F;
    type RED_INTEGER = 0x8D94;
    type RGB_INTEGER = 0x8D98;
    type RGBA_INTEGER = 0x8D99;
    type SAMPLER_2D_ARRAY = 0x8DC1;
    type SAMPLER_2D_ARRAY_SHADOW = 0x8DC4;
    type SAMPLER_CUBE_SHADOW = 0x8DC5;
    type UNSIGNED_INT_VEC2 = 0x8DC6;
    type UNSIGNED_INT_VEC3 = 0x8DC7;
    type UNSIGNED_INT_VEC4 = 0x8DC8;
    type INT_SAMPLER_2D = 0x8DCA;
    type INT_SAMPLER_3D = 0x8DCB;
    type INT_SAMPLER_CUBE = 0x8DCC;
    type INT_SAMPLER_2D_ARRAY = 0x8DCF;
    type UNSIGNED_INT_SAMPLER_2D = 0x8DD2;
    type UNSIGNED_INT_SAMPLER_3D = 0x8DD3;
    type UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4;
    type UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7;
    type DEPTH_COMPONENT32F = 0x8CAC;
    type DEPTH32F_STENCIL8 = 0x8CAD;
    type FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD;
    type FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210;
    type FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211;
    type FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212;
    type FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213;
    type FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214;
    type FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215;
    type FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216;
    type FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217;
    type FRAMEBUFFER_DEFAULT = 0x8218;
    type UNSIGNED_INT_24_8 = 0x84FA;
    type DEPTH24_STENCIL8 = 0x88F0;
    type UNSIGNED_NORMALIZED = 0x8C17;
    type DRAW_FRAMEBUFFER_BINDING = 0x8CA6; /* Same as FRAMEBUFFER_BINDING */
    type READ_FRAMEBUFFER = 0x8CA8;
    type DRAW_FRAMEBUFFER = 0x8CA9;
    type READ_FRAMEBUFFER_BINDING = 0x8CAA;
    type RENDERBUFFER_SAMPLES = 0x8CAB;
    type FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4;
    type MAX_COLOR_ATTACHMENTS = 0x8CDF;
    type COLOR_ATTACHMENT1 = 0x8CE1;
    type COLOR_ATTACHMENT2 = 0x8CE2;
    type COLOR_ATTACHMENT3 = 0x8CE3;
    type COLOR_ATTACHMENT4 = 0x8CE4;
    type COLOR_ATTACHMENT5 = 0x8CE5;
    type COLOR_ATTACHMENT6 = 0x8CE6;
    type COLOR_ATTACHMENT7 = 0x8CE7;
    type COLOR_ATTACHMENT8 = 0x8CE8;
    type COLOR_ATTACHMENT9 = 0x8CE9;
    type COLOR_ATTACHMENT10 = 0x8CEA;
    type COLOR_ATTACHMENT11 = 0x8CEB;
    type COLOR_ATTACHMENT12 = 0x8CEC;
    type COLOR_ATTACHMENT13 = 0x8CED;
    type COLOR_ATTACHMENT14 = 0x8CEE;
    type COLOR_ATTACHMENT15 = 0x8CEF;
    type FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56;
    type MAX_SAMPLES = 0x8D57;
    type HALF_FLOAT = 0x140B;
    type RG = 0x8227;
    type RG_INTEGER = 0x8228;
    type R8 = 0x8229;
    type RG8 = 0x822B;
    type R16F = 0x822D;
    type R32F = 0x822E;
    type RG16F = 0x822F;
    type RG32F = 0x8230;
    type R8I = 0x8231;
    type R8UI = 0x8232;
    type R16I = 0x8233;
    type R16UI = 0x8234;
    type R32I = 0x8235;
    type R32UI = 0x8236;
    type RG8I = 0x8237;
    type RG8UI = 0x8238;
    type RG16I = 0x8239;
    type RG16UI = 0x823A;
    type RG32I = 0x823B;
    type RG32UI = 0x823C;
    type VERTEX_ARRAY_BINDING = 0x85B5;
    type R8_SNORM = 0x8F94;
    type RG8_SNORM = 0x8F95;
    type RGB8_SNORM = 0x8F96;
    type RGBA8_SNORM = 0x8F97;
    type SIGNED_NORMALIZED = 0x8F9C;
    type COPY_READ_BUFFER = 0x8F36;
    type COPY_WRITE_BUFFER = 0x8F37;
    type COPY_READ_BUFFER_BINDING = 0x8F36; /* Same as COPY_READ_BUFFER */
    type COPY_WRITE_BUFFER_BINDING = 0x8F37; /* Same as COPY_WRITE_BUFFER */
    type UNIFORM_BUFFER = 0x8A11;
    type UNIFORM_BUFFER_BINDING = 0x8A28;
    type UNIFORM_BUFFER_START = 0x8A29;
    type UNIFORM_BUFFER_SIZE = 0x8A2A;
    type MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B;
    type MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D;
    type MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E;
    type MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F;
    type MAX_UNIFORM_BLOCK_SIZE = 0x8A30;
    type MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31;
    type MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33;
    type UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34;
    type ACTIVE_UNIFORM_BLOCKS = 0x8A36;
    type UNIFORM_TYPE = 0x8A37;
    type UNIFORM_SIZE = 0x8A38;
    type UNIFORM_BLOCK_INDEX = 0x8A3A;
    type UNIFORM_OFFSET = 0x8A3B;
    type UNIFORM_ARRAY_STRIDE = 0x8A3C;
    type UNIFORM_MATRIX_STRIDE = 0x8A3D;
    type UNIFORM_IS_ROW_MAJOR = 0x8A3E;
    type UNIFORM_BLOCK_BINDING = 0x8A3F;
    type UNIFORM_BLOCK_DATA_SIZE = 0x8A40;
    type UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42;
    type UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
    type UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
    type UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
    type INVALID_INDEX = 0xFFFFFFFF;
    type MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
    type MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
    type MAX_SERVER_WAIT_TIMEOUT = 0x9111;
    type OBJECT_TYPE = 0x9112;
    type SYNC_CONDITION = 0x9113;
    type SYNC_STATUS = 0x9114;
    type SYNC_FLAGS = 0x9115;
    type SYNC_FENCE = 0x9116;
    type SYNC_GPU_COMMANDS_COMPLETE = 0x9117;
    type UNSIGNALED = 0x9118;
    type SIGNALED = 0x9119;
    type ALREADY_SIGNALED = 0x911A;
    type TIMEOUT_EXPIRED = 0x911B;
    type CONDITION_SATISFIED = 0x911C;
    type WAIT_FAILED = 0x911D;
    type SYNC_FLUSH_COMMANDS_BIT = 0x00000001;
    type VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE;
    type ANY_SAMPLES_PASSED = 0x8C2F;
    type ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A;
    type SAMPLER_BINDING = 0x8919;
    type RGB10_A2UI = 0x906F;
    type INT_2_10_10_10_REV = 0x8D9F;
    type TRANSFORM_FEEDBACK = 0x8E22;
    type TRANSFORM_FEEDBACK_PAUSED = 0x8E23;
    type TRANSFORM_FEEDBACK_ACTIVE = 0x8E24;
    type TRANSFORM_FEEDBACK_BINDING = 0x8E25;
    type TEXTURE_IMMUTABLE_FORMAT = 0x912F;
    type MAX_ELEMENT_INDEX = 0x8D6B;
    type TEXTURE_IMMUTABLE_LEVELS = 0x82DF;

    //   type GLint64 TIMEOUT_IGNORED                              = -1;
    // type TIMEOUT_IGNORED = -1;

    /* WebGL-specific enums */
    type MAX_CLIENT_WAIT_TIMEOUT_WEBGL = 0x9247;
}

export interface WebGL2Consts {
    // 原WebGLRenderingContext的常量
    /* ClearBufferMask */
    readonly DEPTH_BUFFER_BIT: 0x00000100;
    readonly STENCIL_BUFFER_BIT: 0x00000400;
    readonly COLOR_BUFFER_BIT: 0x00004000;

    /* BeginMode */
    readonly POINTS: 0x0000;
    readonly LINES: 0x0001;
    readonly LINE_LOOP: 0x0002;
    readonly LINE_STRIP: 0x0003;
    readonly TRIANGLES: 0x0004;
    readonly TRIANGLE_STRIP: 0x0005;
    readonly TRIANGLE_FAN: 0x0006;

    /* AlphaFunction (not supported in ES20) */
    /*      NEVER */
    /*      LESS */
    /*      EQUAL */
    /*      LEQUAL */
    /*      GREATER */
    /*      NOTEQUAL */
    /*      GEQUAL */
    /*      ALWAYS */

    /* BlendingFactorDest */
    readonly ZERO: 0;
    readonly ONE: 1;
    readonly SRC_COLOR: 0x0300;
    readonly ONE_MINUS_SRC_COLOR: 0x0301;
    readonly SRC_ALPHA: 0x0302;
    readonly ONE_MINUS_SRC_ALPHA: 0x0303;
    readonly DST_ALPHA: 0x0304;
    readonly ONE_MINUS_DST_ALPHA: 0x0305;

    /* BlendingFactorSrc */
    /*      ZERO */
    /*      ONE */
    readonly DST_COLOR: 0x0306;
    readonly ONE_MINUS_DST_COLOR: 0x0307;
    readonly SRC_ALPHA_SATURATE: 0x0308;
    /*      SRC_ALPHA */
    /*      ONE_MINUS_SRC_ALPHA */
    /*      DST_ALPHA */
    /*      ONE_MINUS_DST_ALPHA */

    /* BlendEquationSeparate */
    readonly FUNC_ADD: 0x8006;
    readonly BLEND_EQUATION: 0x8009;
    readonly BLEND_EQUATION_RGB: 0x8009;   /* same as BLEND_EQUATION */
    readonly BLEND_EQUATION_ALPHA: 0x883D;

    /* BlendSubtract */
    readonly FUNC_SUBTRACT: 0x800A;
    readonly FUNC_REVERSE_SUBTRACT: 0x800B;

    /* Separate Blend Functions */
    readonly BLEND_DST_RGB: 0x80C8;
    readonly BLEND_SRC_RGB: 0x80C9;
    readonly BLEND_DST_ALPHA: 0x80CA;
    readonly BLEND_SRC_ALPHA: 0x80CB;
    readonly CONSTANT_COLOR: 0x8001;
    readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;
    readonly CONSTANT_ALPHA: 0x8003;
    readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;
    readonly BLEND_COLOR: 0x8005;

    /* Buffer Objects */
    readonly ARRAY_BUFFER: 0x8892;
    readonly ELEMENT_ARRAY_BUFFER: 0x8893;
    readonly ARRAY_BUFFER_BINDING: 0x8894;
    readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;

    readonly STREAM_DRAW: 0x88E0;
    readonly STATIC_DRAW: 0x88E4;
    readonly DYNAMIC_DRAW: 0x88E8;

    readonly BUFFER_SIZE: 0x8764;
    readonly BUFFER_USAGE: 0x8765;

    readonly CURRENT_VERTEX_ATTRIB: 0x8626;

    /* CullFaceMode */
    readonly FRONT: 0x0404;
    readonly BACK: 0x0405;
    readonly FRONT_AND_BACK: 0x0408;

    /* DepthFunction */
    /*      NEVER */
    /*      LESS */
    /*      EQUAL */
    /*      LEQUAL */
    /*      GREATER */
    /*      NOTEQUAL */
    /*      GEQUAL */
    /*      ALWAYS */

    /* EnableCap */
    /* TEXTURE_2D */
    readonly CULL_FACE: 0x0B44;
    readonly BLEND: 0x0BE2;
    readonly DITHER: 0x0BD0;
    readonly STENCIL_TEST: 0x0B90;
    readonly DEPTH_TEST: 0x0B71;
    readonly SCISSOR_TEST: 0x0C11;
    readonly POLYGON_OFFSET_FILL: 0x8037;
    readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;
    readonly SAMPLE_COVERAGE: 0x80A0;

    /* ErrorCode */
    readonly NO_ERROR: 0;
    readonly INVALID_ENUM: 0x0500;
    readonly INVALID_VALUE: 0x0501;
    readonly INVALID_OPERATION: 0x0502;
    readonly OUT_OF_MEMORY: 0x0505;

    /* FrontFaceDirection */
    readonly CW: 0x0900;
    readonly CCW: 0x0901;

    /* GetPName */
    readonly LINE_WIDTH: 0x0B21;
    readonly ALIASED_POINT_SIZE_RANGE: 0x846D;
    readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;
    readonly CULL_FACE_MODE: 0x0B45;
    readonly FRONT_FACE: 0x0B46;
    readonly DEPTH_RANGE: 0x0B70;
    readonly DEPTH_WRITEMASK: 0x0B72;
    readonly DEPTH_CLEAR_VALUE: 0x0B73;
    readonly DEPTH_FUNC: 0x0B74;
    readonly STENCIL_CLEAR_VALUE: 0x0B91;
    readonly STENCIL_FUNC: 0x0B92;
    readonly STENCIL_FAIL: 0x0B94;
    readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;
    readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;
    readonly STENCIL_REF: 0x0B97;
    readonly STENCIL_VALUE_MASK: 0x0B93;
    readonly STENCIL_WRITEMASK: 0x0B98;
    readonly STENCIL_BACK_FUNC: 0x8800;
    readonly STENCIL_BACK_FAIL: 0x8801;
    readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;
    readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;
    readonly STENCIL_BACK_REF: 0x8CA3;
    readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;
    readonly STENCIL_BACK_WRITEMASK: 0x8CA5;
    readonly VIEWPORT: 0x0BA2;
    readonly SCISSOR_BOX: 0x0C10;
    /*      SCISSOR_TEST */
    readonly COLOR_CLEAR_VALUE: 0x0C22;
    readonly COLOR_WRITEMASK: 0x0C23;
    readonly UNPACK_ALIGNMENT: 0x0CF5;
    readonly PACK_ALIGNMENT: 0x0D05;
    readonly MAX_TEXTURE_SIZE: 0x0D33;
    readonly MAX_VIEWPORT_DIMS: 0x0D3A;
    readonly SUBPIXEL_BITS: 0x0D50;
    readonly RED_BITS: 0x0D52;
    readonly GREEN_BITS: 0x0D53;
    readonly BLUE_BITS: 0x0D54;
    readonly ALPHA_BITS: 0x0D55;
    readonly DEPTH_BITS: 0x0D56;
    readonly STENCIL_BITS: 0x0D57;
    readonly POLYGON_OFFSET_UNITS: 0x2A00;
    /*      POLYGON_OFFSET_FILL */
    readonly POLYGON_OFFSET_FACTOR: 0x8038;
    readonly TEXTURE_BINDING_2D: 0x8069;
    readonly SAMPLE_BUFFERS: 0x80A8;
    readonly SAMPLES: 0x80A9;
    readonly SAMPLE_COVERAGE_VALUE: 0x80AA;
    readonly SAMPLE_COVERAGE_INVERT: 0x80AB;

    /* GetTextureParameter */
    /*      TEXTURE_MAG_FILTER */
    /*      TEXTURE_MIN_FILTER */
    /*      TEXTURE_WRAP_S */
    /*      TEXTURE_WRAP_T */

    readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;

    /* HintMode */
    readonly DONT_CARE: 0x1100;
    readonly FASTEST: 0x1101;
    readonly NICEST: 0x1102;

    /* HintTarget */
    readonly GENERATE_MIPMAP_HINT: 0x8192;

    /* DataType */
    readonly BYTE: 0x1400;
    readonly UNSIGNED_BYTE: 0x1401;
    readonly SHORT: 0x1402;
    readonly UNSIGNED_SHORT: 0x1403;
    readonly INT: 0x1404;
    readonly UNSIGNED_INT: 0x1405;
    readonly FLOAT: 0x1406;

    /* PixelFormat */
    readonly DEPTH_COMPONENT: 0x1902;
    readonly ALPHA: 0x1906;
    readonly RGB: 0x1907;
    readonly RGBA: 0x1908;
    readonly LUMINANCE: 0x1909;
    readonly LUMINANCE_ALPHA: 0x190A;

    /* PixelType */
    /*      UNSIGNED_BYTE */
    readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;
    readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;
    readonly UNSIGNED_SHORT_5_6_5: 0x8363;

    /* Shaders */
    readonly FRAGMENT_SHADER: 0x8B30;
    readonly VERTEX_SHADER: 0x8B31;
    readonly MAX_VERTEX_ATTRIBS: 0x8869;
    readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;
    readonly MAX_VARYING_VECTORS: 0x8DFC;
    readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;
    readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;
    readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;
    readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;
    readonly SHADER_TYPE: 0x8B4F;
    readonly DELETE_STATUS: 0x8B80;
    readonly LINK_STATUS: 0x8B82;
    readonly VALIDATE_STATUS: 0x8B83;
    readonly ATTACHED_SHADERS: 0x8B85;
    readonly ACTIVE_UNIFORMS: 0x8B86;
    readonly ACTIVE_ATTRIBUTES: 0x8B89;
    readonly SHADING_LANGUAGE_VERSION: 0x8B8C;
    readonly CURRENT_PROGRAM: 0x8B8D;

    /* StencilFunction */
    readonly NEVER: 0x0200;
    readonly LESS: 0x0201;
    readonly EQUAL: 0x0202;
    readonly LEQUAL: 0x0203;
    readonly GREATER: 0x0204;
    readonly NOTEQUAL: 0x0205;
    readonly GEQUAL: 0x0206;
    readonly ALWAYS: 0x0207;

    /* StencilOp */
    /*      ZERO */
    readonly KEEP: 0x1E00;
    readonly REPLACE: 0x1E01;
    readonly INCR: 0x1E02;
    readonly DECR: 0x1E03;
    readonly INVERT: 0x150A;
    readonly INCR_WRAP: 0x8507;
    readonly DECR_WRAP: 0x8508;

    /* StringName */
    readonly VENDOR: 0x1F00;
    readonly RENDERER: 0x1F01;
    readonly VERSION: 0x1F02;

    /* TextureMagFilter */
    readonly NEAREST: 0x2600;
    readonly LINEAR: 0x2601;

    /* TextureMinFilter */
    /*      NEAREST */
    /*      LINEAR */
    readonly NEAREST_MIPMAP_NEAREST: 0x2700;
    readonly LINEAR_MIPMAP_NEAREST: 0x2701;
    readonly NEAREST_MIPMAP_LINEAR: 0x2702;
    readonly LINEAR_MIPMAP_LINEAR: 0x2703;

    /* TextureParameterName */
    readonly TEXTURE_MAG_FILTER: 0x2800;
    readonly TEXTURE_MIN_FILTER: 0x2801;
    readonly TEXTURE_WRAP_S: 0x2802;
    readonly TEXTURE_WRAP_T: 0x2803;

    /* TextureTarget */
    readonly TEXTURE_2D: 0x0DE1;
    readonly TEXTURE: 0x1702;

    readonly TEXTURE_CUBE_MAP: 0x8513;
    readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;
    readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;
    readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;
    readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;
    readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;

    /* TextureUnit */
    readonly TEXTURE0: 0x84C0;
    readonly TEXTURE1: 0x84C1;
    readonly TEXTURE2: 0x84C2;
    readonly TEXTURE3: 0x84C3;
    readonly TEXTURE4: 0x84C4;
    readonly TEXTURE5: 0x84C5;
    readonly TEXTURE6: 0x84C6;
    readonly TEXTURE7: 0x84C7;
    readonly TEXTURE8: 0x84C8;
    readonly TEXTURE9: 0x84C9;
    readonly TEXTURE10: 0x84CA;
    readonly TEXTURE11: 0x84CB;
    readonly TEXTURE12: 0x84CC;
    readonly TEXTURE13: 0x84CD;
    readonly TEXTURE14: 0x84CE;
    readonly TEXTURE15: 0x84CF;
    readonly TEXTURE16: 0x84D0;
    readonly TEXTURE17: 0x84D1;
    readonly TEXTURE18: 0x84D2;
    readonly TEXTURE19: 0x84D3;
    readonly TEXTURE20: 0x84D4;
    readonly TEXTURE21: 0x84D5;
    readonly TEXTURE22: 0x84D6;
    readonly TEXTURE23: 0x84D7;
    readonly TEXTURE24: 0x84D8;
    readonly TEXTURE25: 0x84D9;
    readonly TEXTURE26: 0x84DA;
    readonly TEXTURE27: 0x84DB;
    readonly TEXTURE28: 0x84DC;
    readonly TEXTURE29: 0x84DD;
    readonly TEXTURE30: 0x84DE;
    readonly TEXTURE31: 0x84DF;
    readonly ACTIVE_TEXTURE: 0x84E0;

    /* TextureWrapMode */
    readonly REPEAT: 0x2901;
    readonly CLAMP_TO_EDGE: 0x812F;
    readonly MIRRORED_REPEAT: 0x8370;

    /* Uniform Types */
    readonly FLOAT_VEC2: 0x8B50;
    readonly FLOAT_VEC3: 0x8B51;
    readonly FLOAT_VEC4: 0x8B52;
    readonly INT_VEC2: 0x8B53;
    readonly INT_VEC3: 0x8B54;
    readonly INT_VEC4: 0x8B55;
    readonly BOOL: 0x8B56;
    readonly BOOL_VEC2: 0x8B57;
    readonly BOOL_VEC3: 0x8B58;
    readonly BOOL_VEC4: 0x8B59;
    readonly FLOAT_MAT2: 0x8B5A;
    readonly FLOAT_MAT3: 0x8B5B;
    readonly FLOAT_MAT4: 0x8B5C;
    readonly SAMPLER_2D: 0x8B5E;
    readonly SAMPLER_CUBE: 0x8B60;

    /* Vertex Arrays */
    readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;
    readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;
    readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;
    readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;
    readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;
    readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;
    readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;

    /* Shader Source */
    readonly COMPILE_STATUS: 0x8B81;

    /* Shader Precision-Specified Types */
    readonly LOW_FLOAT: 0x8DF0;
    readonly MEDIUM_FLOAT: 0x8DF1;
    readonly HIGH_FLOAT: 0x8DF2;
    readonly LOW_INT: 0x8DF3;
    readonly MEDIUM_INT: 0x8DF4;
    readonly HIGH_INT: 0x8DF5;

    /* Framebuffer Object. */
    readonly FRAMEBUFFER: 0x8D40;
    readonly RENDERBUFFER: 0x8D41;

    readonly RGBA4: 0x8056;
    readonly RGB5_A1: 0x8057;
    readonly RGB565: 0x8D62;
    readonly DEPTH_COMPONENT16: 0x81A5;
    readonly STENCIL_INDEX: 0x1901;
    readonly STENCIL_INDEX8: 0x8D48;
    readonly DEPTH_STENCIL: 0x84F9;

    readonly RENDERBUFFER_WIDTH: 0x8D42;
    readonly RENDERBUFFER_HEIGHT: 0x8D43;
    readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;
    readonly RENDERBUFFER_RED_SIZE: 0x8D50;
    readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;
    readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;
    readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;
    readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;
    readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;

    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;
    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;

    readonly COLOR_ATTACHMENT0: 0x8CE0;
    readonly DEPTH_ATTACHMENT: 0x8D00;
    readonly STENCIL_ATTACHMENT: 0x8D20;
    readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;

    readonly NONE: 0;

    readonly FRAMEBUFFER_COMPLETE: 0x8CD5;
    readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;
    readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;
    readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;
    readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;

    readonly FRAMEBUFFER_BINDING: 0x8CA6;
    readonly RENDERBUFFER_BINDING: 0x8CA7;
    readonly MAX_RENDERBUFFER_SIZE: 0x84E8;

    readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;

    /* WebGL-specific enums */
    readonly UNPACK_FLIP_Y_WEBGL: 0x9240;
    readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;
    readonly CONTEXT_LOST_WEBGL: 0x9242;
    readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;
    readonly BROWSER_DEFAULT_WEBGL: 0x9244;

    /////////////////////////////////////////////////////////////////////////
    // WebGL2 Consts
    readonly READ_BUFFER: 0x0C02;
    readonly UNPACK_ROW_LENGTH: 0x0CF2;
    readonly UNPACK_SKIP_ROWS: 0x0CF3;
    readonly UNPACK_SKIP_PIXELS: 0x0CF4;
    readonly PACK_ROW_LENGTH: 0x0D02;
    readonly PACK_SKIP_ROWS: 0x0D03;
    readonly PACK_SKIP_PIXELS: 0x0D04;
    readonly COLOR: 0x1800;
    readonly DEPTH: 0x1801;
    readonly STENCIL: 0x1802;
    readonly RED: 0x1903;
    readonly RGB8: 0x8051;
    readonly RGBA8: 0x8058;
    readonly RGB10_A2: 0x8059;
    readonly TEXTURE_BINDING_3D: 0x806A;
    readonly UNPACK_SKIP_IMAGES: 0x806D;
    readonly UNPACK_IMAGE_HEIGHT: 0x806E;
    readonly TEXTURE_3D: 0x806F;
    readonly TEXTURE_WRAP_R: 0x8072;
    readonly MAX_3D_TEXTURE_SIZE: 0x8073;
    readonly UNSIGNED_INT_2_10_10_10_REV: 0x8368;
    readonly MAX_ELEMENTS_VERTICES: 0x80E8;
    readonly MAX_ELEMENTS_INDICES: 0x80E9;
    readonly TEXTURE_MIN_LOD: 0x813A;
    readonly TEXTURE_MAX_LOD: 0x813B;
    readonly TEXTURE_BASE_LEVEL: 0x813C;
    readonly TEXTURE_MAX_LEVEL: 0x813D;
    readonly MIN: 0x8007;
    readonly MAX: 0x8008;
    readonly DEPTH_COMPONENT24: 0x81A6;
    readonly MAX_TEXTURE_LOD_BIAS: 0x84FD;
    readonly TEXTURE_COMPARE_MODE: 0x884C;
    readonly TEXTURE_COMPARE_FUNC: 0x884D;
    readonly CURRENT_QUERY: 0x8865;
    readonly QUERY_RESULT: 0x8866;
    readonly QUERY_RESULT_AVAILABLE: 0x8867;
    readonly STREAM_READ: 0x88E1;
    readonly STREAM_COPY: 0x88E2;
    readonly STATIC_READ: 0x88E5;
    readonly STATIC_COPY: 0x88E6;
    readonly DYNAMIC_READ: 0x88E9;
    readonly DYNAMIC_COPY: 0x88EA;
    readonly MAX_DRAW_BUFFERS: 0x8824;
    readonly DRAW_BUFFER0: 0x8825;
    readonly DRAW_BUFFER1: 0x8826;
    readonly DRAW_BUFFER2: 0x8827;
    readonly DRAW_BUFFER3: 0x8828;
    readonly DRAW_BUFFER4: 0x8829;
    readonly DRAW_BUFFER5: 0x882A;
    readonly DRAW_BUFFER6: 0x882B;
    readonly DRAW_BUFFER7: 0x882C;
    readonly DRAW_BUFFER8: 0x882D;
    readonly DRAW_BUFFER9: 0x882E;
    readonly DRAW_BUFFER10: 0x882F;
    readonly DRAW_BUFFER11: 0x8830;
    readonly DRAW_BUFFER12: 0x8831;
    readonly DRAW_BUFFER13: 0x8832;
    readonly DRAW_BUFFER14: 0x8833;
    readonly DRAW_BUFFER15: 0x8834;
    readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 0x8B49;
    readonly MAX_VERTEX_UNIFORM_COMPONENTS: 0x8B4A;
    readonly SAMPLER_3D: 0x8B5F;
    readonly SAMPLER_2D_SHADOW: 0x8B62;
    readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 0x8B8B;
    readonly PIXEL_PACK_BUFFER: 0x88EB;
    readonly PIXEL_UNPACK_BUFFER: 0x88EC;
    readonly PIXEL_PACK_BUFFER_BINDING: 0x88ED;
    readonly PIXEL_UNPACK_BUFFER_BINDING: 0x88EF;
    readonly FLOAT_MAT2x3: 0x8B65;
    readonly FLOAT_MAT2x4: 0x8B66;
    readonly FLOAT_MAT3x2: 0x8B67;
    readonly FLOAT_MAT3x4: 0x8B68;
    readonly FLOAT_MAT4x2: 0x8B69;
    readonly FLOAT_MAT4x3: 0x8B6A;
    readonly SRGB: 0x8C40;
    readonly SRGB8: 0x8C41;
    readonly SRGB8_ALPHA8: 0x8C43;
    readonly COMPARE_REF_TO_TEXTURE: 0x884E;
    readonly RGBA32F: 0x8814;
    readonly RGB32F: 0x8815;
    readonly RGBA16F: 0x881A;
    readonly RGB16F: 0x881B;
    readonly VERTEX_ATTRIB_ARRAY_INTEGER: 0x88FD;
    readonly MAX_ARRAY_TEXTURE_LAYERS: 0x88FF;
    readonly MIN_PROGRAM_TEXEL_OFFSET: 0x8904;
    readonly MAX_PROGRAM_TEXEL_OFFSET: 0x8905;
    readonly MAX_VARYING_COMPONENTS: 0x8B4B;
    readonly TEXTURE_2D_ARRAY: 0x8C1A;
    readonly TEXTURE_BINDING_2D_ARRAY: 0x8C1D;
    readonly R11F_G11F_B10F: 0x8C3A;
    readonly UNSIGNED_INT_10F_11F_11F_REV: 0x8C3B;
    readonly RGB9_E5: 0x8C3D;
    readonly UNSIGNED_INT_5_9_9_9_REV: 0x8C3E;
    readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 0x8C7F;
    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 0x8C80;
    readonly TRANSFORM_FEEDBACK_VARYINGS: 0x8C83;
    readonly TRANSFORM_FEEDBACK_BUFFER_START: 0x8C84;
    readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 0x8C85;
    readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 0x8C88;
    readonly RASTERIZER_DISCARD: 0x8C89;
    readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 0x8C8A;
    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 0x8C8B;
    readonly INTERLEAVED_ATTRIBS: 0x8C8C;
    readonly SEPARATE_ATTRIBS: 0x8C8D;
    readonly TRANSFORM_FEEDBACK_BUFFER: 0x8C8E;
    readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 0x8C8F;
    readonly RGBA32UI: 0x8D70;
    readonly RGB32UI: 0x8D71;
    readonly RGBA16UI: 0x8D76;
    readonly RGB16UI: 0x8D77;
    readonly RGBA8UI: 0x8D7C;
    readonly RGB8UI: 0x8D7D;
    readonly RGBA32I: 0x8D82;
    readonly RGB32I: 0x8D83;
    readonly RGBA16I: 0x8D88;
    readonly RGB16I: 0x8D89;
    readonly RGBA8I: 0x8D8E;
    readonly RGB8I: 0x8D8F;
    readonly RED_INTEGER: 0x8D94;
    readonly RGB_INTEGER: 0x8D98;
    readonly RGBA_INTEGER: 0x8D99;
    readonly SAMPLER_2D_ARRAY: 0x8DC1;
    readonly SAMPLER_2D_ARRAY_SHADOW: 0x8DC4;
    readonly SAMPLER_CUBE_SHADOW: 0x8DC5;
    readonly UNSIGNED_INT_VEC2: 0x8DC6;
    readonly UNSIGNED_INT_VEC3: 0x8DC7;
    readonly UNSIGNED_INT_VEC4: 0x8DC8;
    readonly INT_SAMPLER_2D: 0x8DCA;
    readonly INT_SAMPLER_3D: 0x8DCB;
    readonly INT_SAMPLER_CUBE: 0x8DCC;
    readonly INT_SAMPLER_2D_ARRAY: 0x8DCF;
    readonly UNSIGNED_INT_SAMPLER_2D: 0x8DD2;
    readonly UNSIGNED_INT_SAMPLER_3D: 0x8DD3;
    readonly UNSIGNED_INT_SAMPLER_CUBE: 0x8DD4;
    readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 0x8DD7;
    readonly DEPTH_COMPONENT32F: 0x8CAC;
    readonly DEPTH32F_STENCIL8: 0x8CAD;
    readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 0x8DAD;
    readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 0x8210;
    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 0x8211;
    readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 0x8212;
    readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 0x8213;
    readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 0x8214;
    readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 0x8215;
    readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 0x8216;
    readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 0x8217;
    readonly FRAMEBUFFER_DEFAULT: 0x8218;
    readonly UNSIGNED_INT_24_8: 0x84FA;
    readonly DEPTH24_STENCIL8: 0x88F0;
    readonly UNSIGNED_NORMALIZED: 0x8C17;
    readonly DRAW_FRAMEBUFFER_BINDING: 0x8CA6; /* Same as FRAMEBUFFER_BINDING */
    readonly READ_FRAMEBUFFER: 0x8CA8;
    readonly DRAW_FRAMEBUFFER: 0x8CA9;
    readonly READ_FRAMEBUFFER_BINDING: 0x8CAA;
    readonly RENDERBUFFER_SAMPLES: 0x8CAB;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 0x8CD4;
    readonly MAX_COLOR_ATTACHMENTS: 0x8CDF;
    readonly COLOR_ATTACHMENT1: 0x8CE1;
    readonly COLOR_ATTACHMENT2: 0x8CE2;
    readonly COLOR_ATTACHMENT3: 0x8CE3;
    readonly COLOR_ATTACHMENT4: 0x8CE4;
    readonly COLOR_ATTACHMENT5: 0x8CE5;
    readonly COLOR_ATTACHMENT6: 0x8CE6;
    readonly COLOR_ATTACHMENT7: 0x8CE7;
    readonly COLOR_ATTACHMENT8: 0x8CE8;
    readonly COLOR_ATTACHMENT9: 0x8CE9;
    readonly COLOR_ATTACHMENT10: 0x8CEA;
    readonly COLOR_ATTACHMENT11: 0x8CEB;
    readonly COLOR_ATTACHMENT12: 0x8CEC;
    readonly COLOR_ATTACHMENT13: 0x8CED;
    readonly COLOR_ATTACHMENT14: 0x8CEE;
    readonly COLOR_ATTACHMENT15: 0x8CEF;
    readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 0x8D56;
    readonly MAX_SAMPLES: 0x8D57;
    readonly HALF_FLOAT: 0x140B;
    readonly RG: 0x8227;
    readonly RG_INTEGER: 0x8228;
    readonly R8: 0x8229;
    readonly RG8: 0x822B;
    readonly R16F: 0x822D;
    readonly R32F: 0x822E;
    readonly RG16F: 0x822F;
    readonly RG32F: 0x8230;
    readonly R8I: 0x8231;
    readonly R8UI: 0x8232;
    readonly R16I: 0x8233;
    readonly R16UI: 0x8234;
    readonly R32I: 0x8235;
    readonly R32UI: 0x8236;
    readonly RG8I: 0x8237;
    readonly RG8UI: 0x8238;
    readonly RG16I: 0x8239;
    readonly RG16UI: 0x823A;
    readonly RG32I: 0x823B;
    readonly RG32UI: 0x823C;
    readonly VERTEX_ARRAY_BINDING: 0x85B5;
    readonly R8_SNORM: 0x8F94;
    readonly RG8_SNORM: 0x8F95;
    readonly RGB8_SNORM: 0x8F96;
    readonly RGBA8_SNORM: 0x8F97;
    readonly SIGNED_NORMALIZED: 0x8F9C;
    readonly COPY_READ_BUFFER: 0x8F36;
    readonly COPY_WRITE_BUFFER: 0x8F37;
    readonly COPY_READ_BUFFER_BINDING: 0x8F36; /* Same as COPY_READ_BUFFER */
    readonly COPY_WRITE_BUFFER_BINDING: 0x8F37; /* Same as COPY_WRITE_BUFFER */
    readonly UNIFORM_BUFFER: 0x8A11;
    readonly UNIFORM_BUFFER_BINDING: 0x8A28;
    readonly UNIFORM_BUFFER_START: 0x8A29;
    readonly UNIFORM_BUFFER_SIZE: 0x8A2A;
    readonly MAX_VERTEX_UNIFORM_BLOCKS: 0x8A2B;
    readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 0x8A2D;
    readonly MAX_COMBINED_UNIFORM_BLOCKS: 0x8A2E;
    readonly MAX_UNIFORM_BUFFER_BINDINGS: 0x8A2F;
    readonly MAX_UNIFORM_BLOCK_SIZE: 0x8A30;
    readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 0x8A31;
    readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 0x8A33;
    readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 0x8A34;
    readonly ACTIVE_UNIFORM_BLOCKS: 0x8A36;
    readonly UNIFORM_TYPE: 0x8A37;
    readonly UNIFORM_SIZE: 0x8A38;
    readonly UNIFORM_BLOCK_INDEX: 0x8A3A;
    readonly UNIFORM_OFFSET: 0x8A3B;
    readonly UNIFORM_ARRAY_STRIDE: 0x8A3C;
    readonly UNIFORM_MATRIX_STRIDE: 0x8A3D;
    readonly UNIFORM_IS_ROW_MAJOR: 0x8A3E;
    readonly UNIFORM_BLOCK_BINDING: 0x8A3F;
    readonly UNIFORM_BLOCK_DATA_SIZE: 0x8A40;
    readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 0x8A42;
    readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 0x8A43;
    readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 0x8A44;
    readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 0x8A46;
    readonly INVALID_INDEX: 0xFFFFFFFF;
    readonly MAX_VERTEX_OUTPUT_COMPONENTS: 0x9122;
    readonly MAX_FRAGMENT_INPUT_COMPONENTS: 0x9125;
    readonly MAX_SERVER_WAIT_TIMEOUT: 0x9111;
    readonly OBJECT_TYPE: 0x9112;
    readonly SYNC_CONDITION: 0x9113;
    readonly SYNC_STATUS: 0x9114;
    readonly SYNC_FLAGS: 0x9115;
    readonly SYNC_FENCE: 0x9116;
    readonly SYNC_GPU_COMMANDS_COMPLETE: 0x9117;
    readonly UNSIGNALED: 0x9118;
    readonly SIGNALED: 0x9119;
    readonly ALREADY_SIGNALED: 0x911A;
    readonly TIMEOUT_EXPIRED: 0x911B;
    readonly CONDITION_SATISFIED: 0x911C;
    readonly WAIT_FAILED: 0x911D;
    readonly SYNC_FLUSH_COMMANDS_BIT: 0x00000001;
    readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 0x88FE;
    readonly ANY_SAMPLES_PASSED: 0x8C2F;
    readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 0x8D6A;
    readonly SAMPLER_BINDING: 0x8919;
    readonly RGB10_A2UI: 0x906F;
    readonly INT_2_10_10_10_REV: 0x8D9F;
    readonly TRANSFORM_FEEDBACK: 0x8E22;
    readonly TRANSFORM_FEEDBACK_PAUSED: 0x8E23;
    readonly TRANSFORM_FEEDBACK_ACTIVE: 0x8E24;
    readonly TRANSFORM_FEEDBACK_BINDING: 0x8E25;
    readonly TEXTURE_IMMUTABLE_FORMAT: 0x912F;
    readonly MAX_ELEMENT_INDEX: 0x8D6B;
    readonly TEXTURE_IMMUTABLE_LEVELS: 0x82DF;

    //   readonly GLint64 TIMEOUT_IGNORED                             : -1;
    // readonly TIMEOUT_IGNORED: -1;

    /* WebGL-specific enums */
    readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 0x9247;
}

export var WebGL2Consts : WebGL2Consts;

export default WebGL2Consts; 
