UNPKG

gl-conformance

Version:
1,364 lines (1,311 loc) 212 kB
/*eslint-disable */ var _windowShim = require("../lib/shims/window-shim"); var _documentShim = require("../lib/shims/document-shim"); var _canvasShim = require("../lib/shims/canvas-shim"); var _imageShim = require("../lib/shims/image-shim"); var _rafShim = require("../lib/shims/raf-shim"); var _RESOURCES = require("./resources.json"); function misc_invalid_passed_params(ENVIRONMENT) { var HTMLElement = function() {}; ENVIRONMENT.CONTEXT_LIST = []; ENVIRONMENT.tape.end = (function(tape_end) { return function() { _rafShim.clear(); ENVIRONMENT.CONTEXT_LIST.forEach(function(gl) { (gl.destroy && gl.destroy()); }); ENVIRONMENT.CONTEXT_LIST = []; tape_end.call(ENVIRONMENT.tape); } })(ENVIRONMENT.tape.end); ENVIRONMENT._createContext = ENVIRONMENT.createContext; ENVIRONMENT.createContext = function(w, h, o) { var gl = ENVIRONMENT._createContext(w, h, o); ENVIRONMENT.CONTEXT_LIST.push(gl); return gl; }; ENVIRONMENT.document = _documentShim(ENVIRONMENT); ENVIRONMENT.window = _windowShim(ENVIRONMENT); ENVIRONMENT.scriptList = {}; ENVIRONMENT.canvasList = [].map(function(opts) { return _canvasShim(ENVIRONMENT, opts); }); ENVIRONMENT.RESOURCES = _RESOURCES; ENVIRONMENT.BASEPATH = "misc"; var document = ENVIRONMENT.document; var window = ENVIRONMENT.window; var Image = _imageShim; var requestAnimationFrame = _rafShim.requestAnimationFrame; var cancelAnimationFrame = _rafShim.cancelAnimationFrame;; /* ** Copyright (c) 2012 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and/or associated documentation files (the ** "Materials"), to deal in the Materials without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Materials, and to ** permit persons to whom the Materials are furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be included ** in all copies or substantial portions of the Materials. ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. */ var CONSOLE = (1, eval)("console") function enableJSTestPreVerboseLogging() {} function initTestingHarnessWaitUntilDone() {} function initTestingHarness() {} function nonKhronosFrameworkNotifyDone() { // WebKit Specific code. Add your code here. ENVIRONMENT.tape.end() } function reportTestResultsToHarness(success, msg) { //Garbage } function notifyFinishedToHarness() { ENVIRONMENT.tape.end() } function description(msg) { CONSOLE.log("DESCRIPTION:", msg) } function debug(msg) { CONSOLE.log("DEBUG:", msg) } function escapeHTML(text) { return text.replace(/&/g, "&amp;").replace(/</g, "&lt;"); } function testPassed(msg) { ENVIRONMENT.tape.pass(msg) } function testFailed(msg) { ENVIRONMENT.tape.fail(msg) } function areArraysEqual(_a, _b) { try { if (_a.length !== _b.length) return false; for (var i = 0; i < _a.length; i++) if (_a[i] !== _b[i]) return false; } catch (ex) { return false; } return true; } function isMinusZero(n) { // the only way to tell 0 from -0 in JS is the fact that 1/-0 is // -Infinity instead of Infinity return n === 0 && 1 / n < 0; } function isResultCorrect(_actual, _expected) { if (_expected === 0) return _actual === _expected && (1 / _actual) === (1 / _expected); if (_actual === _expected) return true; if (typeof(_expected) == "number" && isNaN(_expected)) return typeof(_actual) == "number" && isNaN(_actual); if (Object.prototype.toString.call(_expected) == Object.prototype.toString.call([])) return areArraysEqual(_actual, _expected); return false; } function stringify(v) { if (v === 0 && 1 / v < 0) return "-0"; else return "" + v; } function evalAndLog(_a) { if (typeof _a != "string") debug("WARN: tryAndLog() expects a string argument"); // Log first in case things go horribly wrong or this causes a sync event. debug(_a); var _av; try { _av = eval(_a); } catch (e) { testFailed(_a + " threw exception " + e); } return _av; } function shouldBe(_a, _b, quiet) { if (typeof _a != "string" || typeof _b != "string") debug("WARN: shouldBe() expects string arguments"); var exception; var _av; try { _av = eval(_a); } catch (e) { exception = e; } var _bv = eval(_b); if (exception) testFailed(_a + " should be " + _bv + ". Threw exception " + exception); else if (isResultCorrect(_av, _bv)) { if (!quiet) { testPassed(_a + " is " + _b); } } else if (typeof(_av) == typeof(_bv)) testFailed(_a + " should be " + _bv + ". Was " + stringify(_av) + "."); else testFailed(_a + " should be " + _bv + " (of type " + typeof _bv + "). Was " + _av + " (of type " + typeof _av + ")."); } function shouldNotBe(_a, _b, quiet) { if (typeof _a != "string" || typeof _b != "string") debug("WARN: shouldNotBe() expects string arguments"); var exception; var _av; try { _av = eval(_a); } catch (e) { exception = e; } var _bv = eval(_b); if (exception) testFailed(_a + " should not be " + _bv + ". Threw exception " + exception); else if (!isResultCorrect(_av, _bv)) { if (!quiet) { testPassed(_a + " is not " + _b); } } else testFailed(_a + " should not be " + _bv + "."); } function shouldBeTrue(_a) { shouldBe(_a, "true"); } function shouldBeFalse(_a) { shouldBe(_a, "false"); } function shouldBeNaN(_a) { shouldBe(_a, "NaN"); } function shouldBeNull(_a) { shouldBe(_a, "null"); } function shouldBeEqualToString(a, b) { var unevaledString = '"' + b.replace(/"/g, "\"") + '"'; shouldBe(a, unevaledString); } function shouldEvaluateTo(actual, expected) { // A general-purpose comparator. 'actual' should be a string to be // evaluated, as for shouldBe(). 'expected' may be any type and will be // used without being eval'ed. if (expected == null) { // Do this before the object test, since null is of type 'object'. shouldBeNull(actual); } else if (typeof expected == "undefined") { shouldBeUndefined(actual); } else if (typeof expected == "function") { // All this fuss is to avoid the string-arg warning from shouldBe(). try { actualValue = eval(actual); } catch (e) { testFailed("Evaluating " + actual + ": Threw exception " + e); return; } shouldBe("'" + actualValue.toString().replace(/\n/g, "") + "'", "'" + expected.toString().replace(/\n/g, "") + "'"); } else if (typeof expected == "object") { shouldBeTrue(actual + " == '" + expected + "'"); } else if (typeof expected == "string") { shouldBe(actual, expected); } else if (typeof expected == "boolean") { shouldBe("typeof " + actual, "'boolean'"); if (expected) shouldBeTrue(actual); else shouldBeFalse(actual); } else if (typeof expected == "number") { shouldBe(actual, stringify(expected)); } else { debug(expected + " is unknown type " + typeof expected); shouldBeTrue(actual, "'" + expected.toString() + "'"); } } function shouldBeNonZero(_a) { var exception; var _av; try { _av = eval(_a); } catch (e) { exception = e; } if (exception) testFailed(_a + " should be non-zero. Threw exception " + exception); else if (_av != 0) testPassed(_a + " is non-zero."); else testFailed(_a + " should be non-zero. Was " + _av); } function shouldBeNonNull(_a) { var exception; var _av; try { _av = eval(_a); } catch (e) { exception = e; } if (exception) testFailed(_a + " should be non-null. Threw exception " + exception); else if (_av != null) testPassed(_a + " is non-null."); else testFailed(_a + " should be non-null. Was " + _av); } function shouldBeUndefined(_a) { var exception; var _av; try { _av = eval(_a); } catch (e) { exception = e; } if (exception) testFailed(_a + " should be undefined. Threw exception " + exception); else if (typeof _av == "undefined") testPassed(_a + " is undefined."); else testFailed(_a + " should be undefined. Was " + _av); } function shouldBeDefined(_a) { var exception; var _av; try { _av = eval(_a); } catch (e) { exception = e; } if (exception) testFailed(_a + " should be defined. Threw exception " + exception); else if (_av !== undefined) testPassed(_a + " is defined."); else testFailed(_a + " should be defined. Was " + _av); } function shouldBeGreaterThanOrEqual(_a, _b) { if (typeof _a != "string" || typeof _b != "string") debug("WARN: shouldBeGreaterThanOrEqual expects string arguments"); var exception; var _av; try { _av = eval(_a); } catch (e) { exception = e; } var _bv = eval(_b); if (exception) testFailed(_a + " should be >= " + _b + ". Threw exception " + exception); else if (typeof _av == "undefined" || _av < _bv) testFailed(_a + " should be >= " + _b + ". Was " + _av + " (of type " + typeof _av + ")."); else testPassed(_a + " is >= " + _b); } function expectTrue(v, msg) { if (v) { testPassed(msg); } else { testFailed(msg); } } function shouldThrow(_a, _e) { var exception; var _av; try { _av = eval(_a); } catch (e) { exception = e; } var _ev; if (_e) _ev = eval(_e); if (exception) { if (typeof _e == "undefined" || exception == _ev) testPassed(_a + " threw exception " + exception + "."); else testFailed(_a + " should throw " + (typeof _e == "undefined" ? "an exception" : _ev) + ". Threw exception " + exception + "."); } else if (typeof _av == "undefined") testFailed(_a + " should throw " + (typeof _e == "undefined" ? "an exception" : _ev) + ". Was undefined."); else testFailed(_a + " should throw " + (typeof _e == "undefined" ? "an exception" : _ev) + ". Was " + _av + "."); } function shouldBeType(_a, _type) { var exception; var _av; try { _av = eval(_a); } catch (e) { exception = e; } var _typev = eval(_type); if (_av instanceof _typev) { testPassed(_a + " is an instance of " + _type); } else { testFailed(_a + " is not an instance of " + _type); } } function assertMsg(assertion, msg) { if (assertion) { testPassed(msg); } else { testFailed(msg); } } function gc() {} function finishTest() { ENVIRONMENT.tape.end() };; /* ** Copyright (c) 2012 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and/or associated documentation files (the ** "Materials"), to deal in the Materials without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Materials, and to ** permit persons to whom the Materials are furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be included ** in all copies or substantial portions of the Materials. ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. */ // Defines a bunch of DesktopGL constants so we can make sure WebGL // implementations disallow them. var desktopGL = { // eslint-disable line 'MIN': 0x8007, 'MAX': 0x8008, 'QUADS': 0x0007, 'QUAD_STRIP': 0x0008, 'POLYGON': 0x0009, '1': 0x0001, '2': 0x0002, '3': 0x0003, '4': 0x0004, 'STATIC_READ': 0x88E5, 'CLIP_PLANE0': 0x3000, 'PERSPECTIVE_CORRECTION_HINT': 0x0C50, 'ACCUM_BUFFER_BIT': 0x0200, 'RGB4': 0x804F, 'RGB5': 0x8050, 'RGB8': 0x8051, 'RGB10': 0x8052, 'RGB12': 0x8053, 'RGB16': 0x8054, 'RGBA2': 0x8055, 'RGBA4': 0x8056, 'RGB5_A1': 0x8057, 'RGBA8': 0x8058, 'RGB10_A2': 0x8059, 'RGBA12': 0x805A, 'RGBA16': 0x805B, 'SMOOTH_POINT_SIZE_RANGE': 0x0B12, 'SMOOTH_POINT_SIZE_GRANULARITY': 0x0B13, 'SMOOTH_LINE_WIDTH_RANGE': 0x0B22, 'SMOOTH_LINE_WIDTH_GRANULARITY': 0x0B23, 'UNSIGNED_BYTE_3_3_2': 0x8032, 'UNSIGNED_SHORT_4_4_4_4': 0x8033, 'UNSIGNED_SHORT_5_5_5_1': 0x8034, 'UNSIGNED_INT_8_8_8_8': 0x8035, 'UNSIGNED_INT_10_10_10_2': 0x8036, 'RESCALE_NORMAL': 0x803A, 'TEXTURE_BINDING_3D': 0x806A, 'PACK_SKIP_IMAGES': 0x806B, 'PACK_IMAGE_HEIGHT': 0x806C, 'UNPACK_SKIP_IMAGES': 0x806D, 'UNPACK_IMAGE_HEIGHT': 0x806E, 'TEXTURE_3D': 0x806F, 'PROXY_TEXTURE_3D': 0x8070, 'TEXTURE_DEPTH': 0x8071, 'TEXTURE_WRAP_R': 0x8072, 'MAX_3D_TEXTURE_SIZE': 0x8073, 'BGR': 0x80E0, 'BGRA': 0x80E1, 'MAX_ELEMENTS_VERTICES': 0x80E8, 'MAX_ELEMENTS_INDICES': 0x80E9, 'CLAMP_TO_EDGE': 0x812F, 'TEXTURE_MIN_LOD': 0x813A, 'TEXTURE_MAX_LOD': 0x813B, 'TEXTURE_BASE_LEVEL': 0x813C, 'TEXTURE_MAX_LEVEL': 0x813D, 'LIGHT_MODEL_COLOR_CONTROL': 0x81F8, 'SINGLE_COLOR': 0x81F9, 'SEPARATE_SPECULAR_COLOR': 0x81FA, 'UNSIGNED_BYTE_2_3_3_REV': 0x8362, 'UNSIGNED_SHORT_5_6_5': 0x8363, 'UNSIGNED_SHORT_5_6_5_REV': 0x8364, 'UNSIGNED_SHORT_4_4_4_4_REV': 0x8365, 'UNSIGNED_SHORT_1_5_5_5_REV': 0x8366, 'UNSIGNED_INT_8_8_8_8_REV': 0x8367, 'UNSIGNED_INT_2_10_10_10_REV': 0x8368, 'ALIASED_POINT_SIZE_RANGE': 0x846D, 'ALIASED_LINE_WIDTH_RANGE': 0x846E, 'MULTISAMPLE': 0x809D, 'SAMPLE_ALPHA_TO_COVERAGE': 0x809E, 'SAMPLE_ALPHA_TO_ONE': 0x809F, 'SAMPLE_COVERAGE': 0x80A0, 'SAMPLE_BUFFERS': 0x80A8, 'SAMPLES': 0x80A9, 'SAMPLE_COVERAGE_VALUE': 0x80AA, 'SAMPLE_COVERAGE_INVERT': 0x80AB, 'CLAMP_TO_BORDER': 0x812D, 'TEXTURE0': 0x84C0, 'TEXTURE1': 0x84C1, 'TEXTURE2': 0x84C2, 'TEXTURE3': 0x84C3, 'TEXTURE4': 0x84C4, 'TEXTURE5': 0x84C5, 'TEXTURE6': 0x84C6, 'TEXTURE7': 0x84C7, 'TEXTURE8': 0x84C8, 'TEXTURE9': 0x84C9, 'TEXTURE10': 0x84CA, 'TEXTURE11': 0x84CB, 'TEXTURE12': 0x84CC, 'TEXTURE13': 0x84CD, 'TEXTURE14': 0x84CE, 'TEXTURE15': 0x84CF, 'TEXTURE16': 0x84D0, 'TEXTURE17': 0x84D1, 'TEXTURE18': 0x84D2, 'TEXTURE19': 0x84D3, 'TEXTURE20': 0x84D4, 'TEXTURE21': 0x84D5, 'TEXTURE22': 0x84D6, 'TEXTURE23': 0x84D7, 'TEXTURE24': 0x84D8, 'TEXTURE25': 0x84D9, 'TEXTURE26': 0x84DA, 'TEXTURE27': 0x84DB, 'TEXTURE28': 0x84DC, 'TEXTURE29': 0x84DD, 'TEXTURE30': 0x84DE, 'TEXTURE31': 0x84DF, 'ACTIVE_TEXTURE': 0x84E0, 'CLIENT_ACTIVE_TEXTURE': 0x84E1, 'MAX_TEXTURE_UNITS': 0x84E2, 'TRANSPOSE_MODELVIEW_MATRIX': 0x84E3, 'TRANSPOSE_PROJECTION_MATRIX': 0x84E4, 'TRANSPOSE_TEXTURE_MATRIX': 0x84E5, 'TRANSPOSE_COLOR_MATRIX': 0x84E6, 'SUBTRACT': 0x84E7, 'COMPRESSED_ALPHA': 0x84E9, 'COMPRESSED_LUMINANCE': 0x84EA, 'COMPRESSED_LUMINANCE_ALPHA': 0x84EB, 'COMPRESSED_INTENSITY': 0x84EC, 'COMPRESSED_RGB': 0x84ED, 'COMPRESSED_RGBA': 0x84EE, 'TEXTURE_COMPRESSION_HINT': 0x84EF, 'NORMAL_MAP': 0x8511, 'REFLECTION_MAP': 0x8512, 'TEXTURE_CUBE_MAP': 0x8513, 'TEXTURE_BINDING_CUBE_MAP': 0x8514, 'TEXTURE_CUBE_MAP_POSITIVE_X': 0x8515, 'TEXTURE_CUBE_MAP_NEGATIVE_X': 0x8516, 'TEXTURE_CUBE_MAP_POSITIVE_Y': 0x8517, 'TEXTURE_CUBE_MAP_NEGATIVE_Y': 0x8518, 'TEXTURE_CUBE_MAP_POSITIVE_Z': 0x8519, 'TEXTURE_CUBE_MAP_NEGATIVE_Z': 0x851A, 'PROXY_TEXTURE_CUBE_MAP': 0x851B, 'MAX_CUBE_MAP_TEXTURE_SIZE': 0x851C, 'COMBINE': 0x8570, 'COMBINE_RGB': 0x8571, 'COMBINE_ALPHA': 0x8572, 'RGB_SCALE': 0x8573, 'ADD_SIGNED': 0x8574, 'INTERPOLATE': 0x8575, 'CONSTANT': 0x8576, 'PRIMARY_COLOR': 0x8577, 'PREVIOUS': 0x8578, 'SOURCE0_RGB': 0x8580, 'SOURCE1_RGB': 0x8581, 'SOURCE2_RGB': 0x8582, 'SOURCE0_ALPHA': 0x8588, 'SOURCE1_ALPHA': 0x8589, 'SOURCE2_ALPHA': 0x858A, 'OPERAND0_RGB': 0x8590, 'OPERAND1_RGB': 0x8591, 'OPERAND2_RGB': 0x8592, 'OPERAND0_ALPHA': 0x8598, 'OPERAND1_ALPHA': 0x8599, 'OPERAND2_ALPHA': 0x859A, 'TEXTURE_COMPRESSED_IMAGE_SIZE': 0x86A0, 'TEXTURE_COMPRESSED': 0x86A1, 'NUM_COMPRESSED_TEXTURE_FORMATS': 0x86A2, 'COMPRESSED_TEXTURE_FORMATS': 0x86A3, 'DOT3_RGB': 0x86AE, 'DOT3_RGBA': 0x86AF, 'MULTISAMPLE_BIT': 0x20000000, 'BLEND_DST_RGB': 0x80C8, 'BLEND_SRC_RGB': 0x80C9, 'BLEND_DST_ALPHA': 0x80CA, 'BLEND_SRC_ALPHA': 0x80CB, 'POINT_SIZE_MIN': 0x8126, 'POINT_SIZE_MAX': 0x8127, 'POINT_FADE_THRESHOLD_SIZE': 0x8128, 'POINT_DISTANCE_ATTENUATION': 0x8129, 'GENERATE_MIPMAP': 0x8191, 'GENERATE_MIPMAP_HINT': 0x8192, 'DEPTH_COMPONENT16': 0x81A5, 'DEPTH_COMPONENT24': 0x81A6, 'DEPTH_COMPONENT32': 0x81A7, 'MIRRORED_REPEAT': 0x8370, 'FOG_COORDINATE_SOURCE': 0x8450, 'FOG_COORDINATE': 0x8451, 'FRAGMENT_DEPTH': 0x8452, 'CURRENT_FOG_COORDINATE': 0x8453, 'FOG_COORDINATE_ARRAY_TYPE': 0x8454, 'FOG_COORDINATE_ARRAY_STRIDE': 0x8455, 'FOG_COORDINATE_ARRAY_POINTER': 0x8456, 'FOG_COORDINATE_ARRAY': 0x8457, 'COLOR_SUM': 0x8458, 'CURRENT_SECONDARY_COLOR': 0x8459, 'SECONDARY_COLOR_ARRAY_SIZE': 0x845A, 'SECONDARY_COLOR_ARRAY_TYPE': 0x845B, 'SECONDARY_COLOR_ARRAY_STRIDE': 0x845C, 'SECONDARY_COLOR_ARRAY_POINTER': 0x845D, 'SECONDARY_COLOR_ARRAY': 0x845E, 'MAX_TEXTURE_LOD_BIAS': 0x84FD, 'TEXTURE_FILTER_CONTROL': 0x8500, 'TEXTURE_LOD_BIAS': 0x8501, 'INCR_WRAP': 0x8507, 'DECR_WRAP': 0x8508, 'TEXTURE_DEPTH_SIZE': 0x884A, 'DEPTH_TEXTURE_MODE': 0x884B, 'TEXTURE_COMPARE_MODE': 0x884C, 'TEXTURE_COMPARE_FUNC': 0x884D, 'COMPARE_R_TO_TEXTURE': 0x884E, 'BUFFER_SIZE': 0x8764, 'BUFFER_USAGE': 0x8765, 'QUERY_COUNTER_BITS': 0x8864, 'CURRENT_QUERY': 0x8865, 'QUERY_RESULT': 0x8866, 'QUERY_RESULT_AVAILABLE': 0x8867, 'ARRAY_BUFFER': 0x8892, 'ELEMENT_ARRAY_BUFFER': 0x8893, 'ARRAY_BUFFER_BINDING': 0x8894, 'ELEMENT_ARRAY_BUFFER_BINDING': 0x8895, 'VERTEX_ARRAY_BUFFER_BINDING': 0x8896, 'NORMAL_ARRAY_BUFFER_BINDING': 0x8897, 'COLOR_ARRAY_BUFFER_BINDING': 0x8898, 'INDEX_ARRAY_BUFFER_BINDING': 0x8899, 'TEXTURE_COORD_ARRAY_BUFFER_BINDING': 0x889A, 'EDGE_FLAG_ARRAY_BUFFER_BINDING': 0x889B, 'SECONDARY_COLOR_ARRAY_BUFFER_BINDING': 0x889C, 'FOG_COORDINATE_ARRAY_BUFFER_BINDING': 0x889D, 'WEIGHT_ARRAY_BUFFER_BINDING': 0x889E, 'VERTEX_ATTRIB_ARRAY_BUFFER_BINDING': 0x889F, 'READ_ONLY': 0x88B8, 'WRITE_ONLY': 0x88B9, 'READ_WRITE': 0x88BA, 'BUFFER_ACCESS': 0x88BB, 'BUFFER_MAPPED': 0x88BC, 'BUFFER_MAP_POINTER': 0x88BD, 'STREAM_DRAW': 0x88E0, 'STREAM_READ': 0x88E1, 'STREAM_COPY': 0x88E2, 'STATIC_DRAW': 0x88E4, 'STATIC_COPY': 0x88E6, 'DYNAMIC_DRAW': 0x88E8, 'DYNAMIC_READ': 0x88E9, 'DYNAMIC_COPY': 0x88EA, 'SAMPLES_PASSED': 0x8914, 'VERTEX_ATTRIB_ARRAY_ENABLED': 0x8622, 'VERTEX_ATTRIB_ARRAY_SIZE': 0x8623, 'VERTEX_ATTRIB_ARRAY_STRIDE': 0x8624, 'VERTEX_ATTRIB_ARRAY_TYPE': 0x8625, 'CURRENT_VERTEX_ATTRIB': 0x8626, 'VERTEX_PROGRAM_POINT_SIZE': 0x8642, 'VERTEX_PROGRAM_TWO_SIDE': 0x8643, 'VERTEX_ATTRIB_ARRAY_POINTER': 0x8645, 'STENCIL_BACK_FUNC': 0x8800, 'STENCIL_BACK_FAIL': 0x8801, 'STENCIL_BACK_PASS_DEPTH_FAIL': 0x8802, 'STENCIL_BACK_PASS_DEPTH_PASS': 0x8803, 'MAX_DRAW_BUFFERS': 0x8824, 'DRAW_BUFFER0': 0x8825, 'DRAW_BUFFER1': 0x8826, 'DRAW_BUFFER2': 0x8827, 'DRAW_BUFFER3': 0x8828, 'DRAW_BUFFER4': 0x8829, 'DRAW_BUFFER5': 0x882A, 'DRAW_BUFFER6': 0x882B, 'DRAW_BUFFER7': 0x882C, 'DRAW_BUFFER8': 0x882D, 'DRAW_BUFFER9': 0x882E, 'DRAW_BUFFER10': 0x882F, 'DRAW_BUFFER11': 0x8830, 'DRAW_BUFFER12': 0x8831, 'DRAW_BUFFER13': 0x8832, 'DRAW_BUFFER14': 0x8833, 'DRAW_BUFFER15': 0x8834, 'BLEND_EQUATION_ALPHA': 0x883D, 'POINT_SPRITE': 0x8861, 'COORD_REPLACE': 0x8862, 'MAX_VERTEX_ATTRIBS': 0x8869, 'VERTEX_ATTRIB_ARRAY_NORMALIZED': 0x886A, 'MAX_TEXTURE_COORDS': 0x8871, 'MAX_TEXTURE_IMAGE_UNITS': 0x8872, 'FRAGMENT_SHADER': 0x8B30, 'VERTEX_SHADER': 0x8B31, 'MAX_FRAGMENT_UNIFORM_COMPONENTS': 0x8B49, 'MAX_VERTEX_UNIFORM_COMPONENTS': 0x8B4A, 'MAX_VARYING_FLOATS': 0x8B4B, 'MAX_VERTEX_TEXTURE_IMAGE_UNITS': 0x8B4C, 'MAX_COMBINED_TEXTURE_IMAGE_UNITS': 0x8B4D, 'SHADER_TYPE': 0x8B4F, 'FLOAT_VEC2': 0x8B50, 'FLOAT_VEC3': 0x8B51, 'FLOAT_VEC4': 0x8B52, 'INT_VEC2': 0x8B53, 'INT_VEC3': 0x8B54, 'INT_VEC4': 0x8B55, 'BOOL': 0x8B56, 'BOOL_VEC2': 0x8B57, 'BOOL_VEC3': 0x8B58, 'BOOL_VEC4': 0x8B59, 'FLOAT_MAT2': 0x8B5A, 'FLOAT_MAT3': 0x8B5B, 'FLOAT_MAT4': 0x8B5C, 'SAMPLER_1D': 0x8B5D, 'SAMPLER_2D': 0x8B5E, 'SAMPLER_3D': 0x8B5F, 'SAMPLER_CUBE': 0x8B60, 'SAMPLER_1D_SHADOW': 0x8B61, 'SAMPLER_2D_SHADOW': 0x8B62, 'DELETE_STATUS': 0x8B80, 'COMPILE_STATUS': 0x8B81, 'LINK_STATUS': 0x8B82, 'VALIDATE_STATUS': 0x8B83, 'INFO_LOG_LENGTH': 0x8B84, 'ATTACHED_SHADERS': 0x8B85, 'ACTIVE_UNIFORMS': 0x8B86, 'ACTIVE_UNIFORM_MAX_LENGTH': 0x8B87, 'SHADER_SOURCE_LENGTH': 0x8B88, 'ACTIVE_ATTRIBUTES': 0x8B89, 'ACTIVE_ATTRIBUTE_MAX_LENGTH': 0x8B8A, 'FRAGMENT_SHADER_DERIVATIVE_HINT': 0x8B8B, 'SHADING_LANGUAGE_VERSION': 0x8B8C, 'CURRENT_PROGRAM': 0x8B8D, 'POINT_SPRITE_COORD_ORIGIN': 0x8CA0, 'LOWER_LEFT': 0x8CA1, 'UPPER_LEFT': 0x8CA2, 'STENCIL_BACK_REF': 0x8CA3, 'STENCIL_BACK_VALUE_MASK': 0x8CA4, 'STENCIL_BACK_WRITEMASK': 0x8CA5, 'CURRENT_RASTER_SECONDARY_COLOR': 0x845F, 'PIXEL_PACK_BUFFER': 0x88EB, 'PIXEL_UNPACK_BUFFER': 0x88EC, 'PIXEL_PACK_BUFFER_BINDING': 0x88ED, 'PIXEL_UNPACK_BUFFER_BINDING': 0x88EF, 'FLOAT_MAT2x3': 0x8B65, 'FLOAT_MAT2x4': 0x8B66, 'FLOAT_MAT3x2': 0x8B67, 'FLOAT_MAT3x4': 0x8B68, 'FLOAT_MAT4x2': 0x8B69, 'FLOAT_MAT4x3': 0x8B6A, 'SRGB': 0x8C40, 'SRGB8': 0x8C41, 'SRGB_ALPHA': 0x8C42, 'SRGB8_ALPHA8': 0x8C43, 'SLUMINANCE_ALPHA': 0x8C44, 'SLUMINANCE8_ALPHA8': 0x8C45, 'SLUMINANCE': 0x8C46, 'SLUMINANCE8': 0x8C47, 'COMPRESSED_SRGB': 0x8C48, 'COMPRESSED_SRGB_ALPHA': 0x8C49, 'COMPRESSED_SLUMINANCE': 0x8C4A, 'COMPRESSED_SLUMINANCE_ALPHA': 0x8C4B, 'CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT': 0x0001, 'MAJOR_VERSION': 0x821B, 'MINOR_VERSION': 0x821C, 'NUM_EXTENSIONS': 0x821D, 'CONTEXT_FLAGS': 0x821E, 'DEPTH_BUFFER': 0x8223, 'STENCIL_BUFFER': 0x8224, 'COMPRESSED_RED': 0x8225, 'COMPRESSED_RG': 0x8226, 'RGBA32F': 0x8814, 'RGB32F': 0x8815, 'RGBA16F': 0x881A, 'RGB16F': 0x881B, 'VERTEX_ATTRIB_ARRAY_INTEGER': 0x88FD, 'MAX_ARRAY_TEXTURE_LAYERS': 0x88FF, 'MIN_PROGRAM_TEXEL_OFFSET': 0x8904, 'MAX_PROGRAM_TEXEL_OFFSET': 0x8905, 'CLAMP_VERTEX_COLOR': 0x891A, 'CLAMP_FRAGMENT_COLOR': 0x891B, 'CLAMP_READ_COLOR': 0x891C, 'FIXED_ONLY': 0x891D, 'TEXTURE_RED_TYPE': 0x8C10, 'TEXTURE_GREEN_TYPE': 0x8C11, 'TEXTURE_BLUE_TYPE': 0x8C12, 'TEXTURE_ALPHA_TYPE': 0x8C13, 'TEXTURE_LUMINANCE_TYPE': 0x8C14, 'TEXTURE_INTENSITY_TYPE': 0x8C15, 'TEXTURE_DEPTH_TYPE': 0x8C16, 'UNSIGNED_NORMALIZED': 0x8C17, 'TEXTURE_1D_ARRAY': 0x8C18, 'PROXY_TEXTURE_1D_ARRAY': 0x8C19, 'TEXTURE_2D_ARRAY': 0x8C1A, 'PROXY_TEXTURE_2D_ARRAY': 0x8C1B, 'TEXTURE_BINDING_1D_ARRAY': 0x8C1C, 'TEXTURE_BINDING_2D_ARRAY': 0x8C1D, 'R11F_G11F_B10F': 0x8C3A, 'UNSIGNED_INT_10F_11F_11F_REV': 0x8C3B, 'RGB9_E5': 0x8C3D, 'UNSIGNED_INT_5_9_9_9_REV': 0x8C3E, 'TEXTURE_SHARED_SIZE': 0x8C3F, 'TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH': 0x8C76, 'TRANSFORM_FEEDBACK_BUFFER_MODE': 0x8C7F, 'MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS': 0x8C80, 'TRANSFORM_FEEDBACK_VARYINGS': 0x8C83, 'TRANSFORM_FEEDBACK_BUFFER_START': 0x8C84, 'TRANSFORM_FEEDBACK_BUFFER_SIZE': 0x8C85, 'PRIMITIVES_GENERATED': 0x8C87, 'TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN': 0x8C88, 'RASTERIZER_DISCARD': 0x8C89, 'MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS': 0x8C8A, 'MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS': 0x8C8B, 'INTERLEAVED_ATTRIBS': 0x8C8C, 'SEPARATE_ATTRIBS': 0x8C8D, 'TRANSFORM_FEEDBACK_BUFFER': 0x8C8E, 'TRANSFORM_FEEDBACK_BUFFER_BINDING': 0x8C8F, 'RGBA32UI': 0x8D70, 'RGB32UI': 0x8D71, 'RGBA16UI': 0x8D76, 'RGB16UI': 0x8D77, 'RGBA8UI': 0x8D7C, 'RGB8UI': 0x8D7D, 'RGBA32I': 0x8D82, 'RGB32I': 0x8D83, 'RGBA16I': 0x8D88, 'RGB16I': 0x8D89, 'RGBA8I': 0x8D8E, 'RGB8I': 0x8D8F, 'RED_INTEGER': 0x8D94, 'GREEN_INTEGER': 0x8D95, 'BLUE_INTEGER': 0x8D96, 'ALPHA_INTEGER': 0x8D97, 'RGB_INTEGER': 0x8D98, 'RGBA_INTEGER': 0x8D99, 'BGR_INTEGER': 0x8D9A, 'BGRA_INTEGER': 0x8D9B, 'SAMPLER_1D_ARRAY': 0x8DC0, 'SAMPLER_2D_ARRAY': 0x8DC1, 'SAMPLER_1D_ARRAY_SHADOW': 0x8DC3, 'SAMPLER_2D_ARRAY_SHADOW': 0x8DC4, 'SAMPLER_CUBE_SHADOW': 0x8DC5, 'UNSIGNED_INT_VEC2': 0x8DC6, 'UNSIGNED_INT_VEC3': 0x8DC7, 'UNSIGNED_INT_VEC4': 0x8DC8, 'INT_SAMPLER_1D': 0x8DC9, 'INT_SAMPLER_2D': 0x8DCA, 'INT_SAMPLER_3D': 0x8DCB, 'INT_SAMPLER_CUBE': 0x8DCC, 'INT_SAMPLER_1D_ARRAY': 0x8DCE, 'INT_SAMPLER_2D_ARRAY': 0x8DCF, 'UNSIGNED_INT_SAMPLER_1D': 0x8DD1, 'UNSIGNED_INT_SAMPLER_2D': 0x8DD2, 'UNSIGNED_INT_SAMPLER_3D': 0x8DD3, 'UNSIGNED_INT_SAMPLER_CUBE': 0x8DD4, 'UNSIGNED_INT_SAMPLER_1D_ARRAY': 0x8DD6, 'UNSIGNED_INT_SAMPLER_2D_ARRAY': 0x8DD7, 'QUERY_WAIT': 0x8E13, 'QUERY_NO_WAIT': 0x8E14, 'QUERY_BY_REGION_WAIT': 0x8E15, 'QUERY_BY_REGION_NO_WAIT': 0x8E16, 'MULTISAMPLE_3DFX': 0x86B2, 'SAMPLE_BUFFERS_3DFX': 0x86B3, 'SAMPLES_3DFX': 0x86B4, 'MULTISAMPLE_BIT_3DFX': 0x20000000, 'COMPRESSED_RGB_FXT1_3DFX': 0x86B0, 'COMPRESSED_RGBA_FXT1_3DFX': 0x86B1, 'UNPACK_CLIENT_STORAGE_APPLE': 0x85B2, 'ELEMENT_ARRAY_APPLE': 0x8768, 'ELEMENT_ARRAY_TYPE_APPLE': 0x8769, 'ELEMENT_ARRAY_POINTER_APPLE': 0x876A, 'HALF_APPLE': 0x140B, 'RGBA_FLOAT32_APPLE': 0x8814, 'RGB_FLOAT32_APPLE': 0x8815, 'ALPHA_FLOAT32_APPLE': 0x8816, 'INTENSITY_FLOAT32_APPLE': 0x8817, 'LUMINANCE_FLOAT32_APPLE': 0x8818, 'LUMINANCE_ALPHA_FLOAT32_APPLE': 0x8819, 'RGBA_FLOAT16_APPLE': 0x881A, 'RGB_FLOAT16_APPLE': 0x881B, 'ALPHA_FLOAT16_APPLE': 0x881C, 'INTENSITY_FLOAT16_APPLE': 0x881D, 'LUMINANCE_FLOAT16_APPLE': 0x881E, 'LUMINANCE_ALPHA_FLOAT16_APPLE': 0x881F, 'COLOR_FLOAT_APPLE': 0x8A0F, 'BUFFER_SERIALIZED_MODIFY_APPLE': 0x8A12, 'BUFFER_FLUSHING_UNMAP_APPLE': 0x8A13, 'MIN_PBUFFER_VIEWPORT_DIMS_APPLE': 0x8A10, 'LIGHT_MODEL_SPECULAR_VECTOR_APPLE': 0x85B0, 'TEXTURE_RANGE_LENGTH_APPLE': 0x85B7, 'TEXTURE_RANGE_POINTER_APPLE': 0x85B8, 'TEXTURE_STORAGE_HINT_APPLE': 0x85BC, 'STORAGE_PRIVATE_APPLE': 0x85BD, 'STORAGE_CACHED_APPLE': 0x85BE, 'STORAGE_SHARED_APPLE': 0x85BF, 'TRANSFORM_HINT_APPLE': 0x85B1, 'VERTEX_ARRAY_BINDING_APPLE': 0x85B5, 'VERTEX_ARRAY_RANGE_APPLE': 0x851D, 'VERTEX_ARRAY_RANGE_LENGTH_APPLE': 0x851E, 'VERTEX_ARRAY_STORAGE_HINT_APPLE': 0x851F, 'MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE': 0x8520, 'VERTEX_ARRAY_RANGE_POINTER_APPLE': 0x8521, 'YCBCR_422_APPLE': 0x85B9, 'UNSIGNED_SHORT_8_8_APPLE': 0x85BA, 'UNSIGNED_SHORT_8_8_REV_APPLE': 0x85BB, 'RGBA_FLOAT_MODE_ARB': 0x8820, 'CLAMP_VERTEX_COLOR_ARB': 0x891A, 'CLAMP_FRAGMENT_COLOR_ARB': 0x891B, 'CLAMP_READ_COLOR_ARB': 0x891C, 'FIXED_ONLY_ARB': 0x891D, 'DEPTH_COMPONENT32F': 0x8CAC, 'DEPTH32F_STENCIL8': 0x8CAD, 'FLOAT_32_UNSIGNED_INT_24_8_REV': 0x8DAD, 'DEPTH_COMPONENT16_ARB': 0x81A5, 'DEPTH_COMPONENT24_ARB': 0x81A6, 'DEPTH_COMPONENT32_ARB': 0x81A7, 'TEXTURE_DEPTH_SIZE_ARB': 0x884A, 'DEPTH_TEXTURE_MODE_ARB': 0x884B, 'MAX_DRAW_BUFFERS_ARB': 0x8824, 'DRAW_BUFFER0_ARB': 0x8825, 'DRAW_BUFFER1_ARB': 0x8826, 'DRAW_BUFFER2_ARB': 0x8827, 'DRAW_BUFFER3_ARB': 0x8828, 'DRAW_BUFFER4_ARB': 0x8829, 'DRAW_BUFFER5_ARB': 0x882A, 'DRAW_BUFFER6_ARB': 0x882B, 'DRAW_BUFFER7_ARB': 0x882C, 'DRAW_BUFFER8_ARB': 0x882D, 'DRAW_BUFFER9_ARB': 0x882E, 'DRAW_BUFFER10_ARB': 0x882F, 'DRAW_BUFFER11_ARB': 0x8830, 'DRAW_BUFFER12_ARB': 0x8831, 'DRAW_BUFFER13_ARB': 0x8832, 'DRAW_BUFFER14_ARB': 0x8833, 'DRAW_BUFFER15_ARB': 0x8834, 'FRAGMENT_PROGRAM_ARB': 0x8804, 'PROGRAM_ALU_INSTRUCTIONS_ARB': 0x8805, 'PROGRAM_TEX_INSTRUCTIONS_ARB': 0x8806, 'PROGRAM_TEX_INDIRECTIONS_ARB': 0x8807, 'PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB': 0x8808, 'PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB': 0x8809, 'PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB': 0x880A, 'MAX_PROGRAM_ALU_INSTRUCTIONS_ARB': 0x880B, 'MAX_PROGRAM_TEX_INSTRUCTIONS_ARB': 0x880C, 'MAX_PROGRAM_TEX_INDIRECTIONS_ARB': 0x880D, 'MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB': 0x880E, 'MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB': 0x880F, 'MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB': 0x8810, 'MAX_TEXTURE_COORDS_ARB': 0x8871, 'MAX_TEXTURE_IMAGE_UNITS_ARB': 0x8872, 'FRAGMENT_SHADER_ARB': 0x8B30, 'MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB': 0x8B49, 'FRAGMENT_SHADER_DERIVATIVE_HINT_ARB': 0x8B8B, 'INVALID_FRAMEBUFFER_OPERATION': 0x0506, 'FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING': 0x8210, 'FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE': 0x8211, 'FRAMEBUFFER_ATTACHMENT_RED_SIZE': 0x8212, 'FRAMEBUFFER_ATTACHMENT_GREEN_SIZE': 0x8213, 'FRAMEBUFFER_ATTACHMENT_BLUE_SIZE': 0x8214, 'FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE': 0x8215, 'FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE': 0x8216, 'FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE': 0x8217, 'FRAMEBUFFER_DEFAULT': 0x8218, 'FRAMEBUFFER_UNDEFINED': 0x8219, 'DEPTH_STENCIL_ATTACHMENT': 0x821A, 'INDEX': 0x8222, 'MAX_RENDERBUFFER_SIZE': 0x84E8, 'DEPTH_STENCIL': 0x84F9, 'UNSIGNED_INT_24_8': 0x84FA, 'DEPTH24_STENCIL8': 0x88F0, 'TEXTURE_STENCIL_SIZE': 0x88F1, 'DRAW_FRAMEBUFFER_BINDING': 0x8CA6, 'FRAMEBUFFER_BINDING': 0x8CA6, 'RENDERBUFFER_BINDING': 0x8CA7, 'READ_FRAMEBUFFER': 0x8CA8, 'DRAW_FRAMEBUFFER': 0x8CA9, 'READ_FRAMEBUFFER_BINDING': 0x8CAA, 'RENDERBUFFER_SAMPLES': 0x8CAB, 'FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE': 0x8CD0, 'FRAMEBUFFER_ATTACHMENT_OBJECT_NAME': 0x8CD1, 'FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL': 0x8CD2, 'FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE': 0x8CD3, 'FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER': 0x8CD4, 'FRAMEBUFFER_COMPLETE': 0x8CD5, 'FRAMEBUFFER_INCOMPLETE_ATTACHMENT': 0x8CD6, 'FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT': 0x8CD7, 'FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER': 0x8CDB, 'FRAMEBUFFER_INCOMPLETE_READ_BUFFER': 0x8CDC, 'FRAMEBUFFER_UNSUPPORTED': 0x8CDD, 'MAX_COLOR_ATTACHMENTS': 0x8CDF, 'COLOR_ATTACHMENT0': 0x8CE0, 'COLOR_ATTACHMENT1': 0x8CE1, 'COLOR_ATTACHMENT2': 0x8CE2, 'COLOR_ATTACHMENT3': 0x8CE3, 'COLOR_ATTACHMENT4': 0x8CE4, 'COLOR_ATTACHMENT5': 0x8CE5, 'COLOR_ATTACHMENT6': 0x8CE6, 'COLOR_ATTACHMENT7': 0x8CE7, 'COLOR_ATTACHMENT8': 0x8CE8, 'COLOR_ATTACHMENT9': 0x8CE9, 'COLOR_ATTACHMENT10': 0x8CEA, 'COLOR_ATTACHMENT11': 0x8CEB, 'COLOR_ATTACHMENT12': 0x8CEC, 'COLOR_ATTACHMENT13': 0x8CED, 'COLOR_ATTACHMENT14': 0x8CEE, 'COLOR_ATTACHMENT15': 0x8CEF, 'DEPTH_ATTACHMENT': 0x8D00, 'STENCIL_ATTACHMENT': 0x8D20, 'FRAMEBUFFER': 0x8D40, 'RENDERBUFFER': 0x8D41, 'RENDERBUFFER_WIDTH': 0x8D42, 'RENDERBUFFER_HEIGHT': 0x8D43, 'RENDERBUFFER_INTERNAL_FORMAT': 0x8D44, 'STENCIL_INDEX1': 0x8D46, 'STENCIL_INDEX4': 0x8D47, 'STENCIL_INDEX8': 0x8D48, 'STENCIL_INDEX16': 0x8D49, 'RENDERBUFFER_RED_SIZE': 0x8D50, 'RENDERBUFFER_GREEN_SIZE': 0x8D51, 'RENDERBUFFER_BLUE_SIZE': 0x8D52, 'RENDERBUFFER_ALPHA_SIZE': 0x8D53, 'RENDERBUFFER_DEPTH_SIZE': 0x8D54, 'RENDERBUFFER_STENCIL_SIZE': 0x8D55, 'FRAMEBUFFER_INCOMPLETE_MULTISAMPLE': 0x8D56, 'MAX_SAMPLES': 0x8D57, 'FRAMEBUFFER_SRGB': 0x8DB9, 'LINES_ADJACENCY_ARB': 0xA, 'LINE_STRIP_ADJACENCY_ARB': 0xB, 'TRIANGLES_ADJACENCY_ARB': 0xC, 'TRIANGLE_STRIP_ADJACENCY_ARB': 0xD, 'PROGRAM_POINT_SIZE_ARB': 0x8642, 'MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB': 0x8C29, 'FRAMEBUFFER_ATTACHMENT_LAYERED_ARB': 0x8DA7, 'FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB': 0x8DA8, 'FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB': 0x8DA9, 'GEOMETRY_SHADER_ARB': 0x8DD9, 'GEOMETRY_VERTICES_OUT_ARB': 0x8DDA, 'GEOMETRY_INPUT_TYPE_ARB': 0x8DDB, 'GEOMETRY_OUTPUT_TYPE_ARB': 0x8DDC, 'MAX_GEOMETRY_VARYING_COMPONENTS_ARB': 0x8DDD, 'MAX_VERTEX_VARYING_COMPONENTS_ARB': 0x8DDE, 'MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB': 0x8DDF, 'MAX_GEOMETRY_OUTPUT_VERTICES_ARB': 0x8DE0, 'MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB': 0x8DE1, 'HALF_FLOAT_ARB': 0x140B, 'HALF_FLOAT': 0x140B, 'CONSTANT_COLOR': 0x8001, 'ONE_MINUS_CONSTANT_COLOR': 0x8002, 'CONSTANT_ALPHA': 0x8003, 'ONE_MINUS_CONSTANT_ALPHA': 0x8004, 'BLEND_COLOR': 0x8005, 'FUNC_ADD': 0x8006, 'BLEND_EQUATION': 0x8009, 'FUNC_SUBTRACT': 0x800A, 'FUNC_REVERSE_SUBTRACT': 0x800B, 'CONVOLUTION_1D': 0x8010, 'CONVOLUTION_2D': 0x8011, 'SEPARABLE_2D': 0x8012, 'CONVOLUTION_BORDER_MODE': 0x8013, 'CONVOLUTION_FILTER_SCALE': 0x8014, 'CONVOLUTION_FILTER_BIAS': 0x8015, 'REDUCE': 0x8016, 'CONVOLUTION_FORMAT': 0x8017, 'CONVOLUTION_WIDTH': 0x8018, 'CONVOLUTION_HEIGHT': 0x8019, 'MAX_CONVOLUTION_WIDTH': 0x801A, 'MAX_CONVOLUTION_HEIGHT': 0x801B, 'POST_CONVOLUTION_RED_SCALE': 0x801C, 'POST_CONVOLUTION_GREEN_SCALE': 0x801D, 'POST_CONVOLUTION_BLUE_SCALE': 0x801E, 'POST_CONVOLUTION_ALPHA_SCALE': 0x801F, 'POST_CONVOLUTION_RED_BIAS': 0x8020, 'POST_CONVOLUTION_GREEN_BIAS': 0x8021, 'POST_CONVOLUTION_BLUE_BIAS': 0x8022, 'POST_CONVOLUTION_ALPHA_BIAS': 0x8023, 'HISTOGRAM': 0x8024, 'PROXY_HISTOGRAM': 0x8025, 'HISTOGRAM_WIDTH': 0x8026, 'HISTOGRAM_FORMAT': 0x8027, 'HISTOGRAM_RED_SIZE': 0x8028, 'HISTOGRAM_GREEN_SIZE': 0x8029, 'HISTOGRAM_BLUE_SIZE': 0x802A, 'HISTOGRAM_ALPHA_SIZE': 0x802B, 'HISTOGRAM_LUMINANCE_SIZE': 0x802C, 'HISTOGRAM_SINK': 0x802D, 'MINMAX': 0x802E, 'MINMAX_FORMAT': 0x802F, 'MINMAX_SINK': 0x8030, 'TABLE_TOO_LARGE': 0x8031, 'COLOR_MATRIX': 0x80B1, 'COLOR_MATRIX_STACK_DEPTH': 0x80B2, 'MAX_COLOR_MATRIX_STACK_DEPTH': 0x80B3, 'POST_COLOR_MATRIX_RED_SCALE': 0x80B4, 'POST_COLOR_MATRIX_GREEN_SCALE': 0x80B5, 'POST_COLOR_MATRIX_BLUE_SCALE': 0x80B6, 'POST_COLOR_MATRIX_ALPHA_SCALE': 0x80B7, 'POST_COLOR_MATRIX_RED_BIAS': 0x80B8, 'POST_COLOR_MATRIX_GREEN_BIAS': 0x80B9, 'POST_COLOR_MATRIX_BLUE_BIAS': 0x80BA, 'POST_COLOR_MATRIX_ALPHA_BIAS': 0x80BB, 'COLOR_TABLE': 0x80D0, 'POST_CONVOLUTION_COLOR_TABLE': 0x80D1, 'POST_COLOR_MATRIX_COLOR_TABLE': 0x80D2, 'PROXY_COLOR_TABLE': 0x80D3, 'PROXY_POST_CONVOLUTION_COLOR_TABLE': 0x80D4, 'PROXY_POST_COLOR_MATRIX_COLOR_TABLE': 0x80D5, 'COLOR_TABLE_SCALE': 0x80D6, 'COLOR_TABLE_BIAS': 0x80D7, 'COLOR_TABLE_FORMAT': 0x80D8, 'COLOR_TABLE_WIDTH': 0x80D9, 'COLOR_TABLE_RED_SIZE': 0x80DA, 'COLOR_TABLE_GREEN_SIZE': 0x80DB, 'COLOR_TABLE_BLUE_SIZE': 0x80DC, 'COLOR_TABLE_ALPHA_SIZE': 0x80DD, 'COLOR_TABLE_LUMINANCE_SIZE': 0x80DE, 'COLOR_TABLE_INTENSITY_SIZE': 0x80DF, 'IGNORE_BORDER': 0x8150, 'CONSTANT_BORDER': 0x8151, 'WRAP_BORDER': 0x8152, 'REPLICATE_BORDER': 0x8153, 'CONVOLUTION_BORDER_COLOR': 0x8154, 'VERTEX_ATTRIB_ARRAY_DIVISOR_ARB': 0x88FE, 'MAP_READ_BIT': 0x0001, 'MAP_WRITE_BIT': 0x0002, 'MAP_INVALIDATE_RANGE_BIT': 0x0004, 'MAP_INVALIDATE_BUFFER_BIT': 0x0008, 'MAP_FLUSH_EXPLICIT_BIT': 0x0010, 'MAP_UNSYNCHRONIZED_BIT': 0x0020, 'MATRIX_PALETTE_ARB': 0x8840, 'MAX_MATRIX_PALETTE_STACK_DEPTH_ARB': 0x8841, 'MAX_PALETTE_MATRICES_ARB': 0x8842, 'CURRENT_PALETTE_MATRIX_ARB': 0x8843, 'MATRIX_INDEX_ARRAY_ARB': 0x8844, 'CURRENT_MATRIX_INDEX_ARB': 0x8845, 'MATRIX_INDEX_ARRAY_SIZE_ARB': 0x8846, 'MATRIX_INDEX_ARRAY_TYPE_ARB': 0x8847, 'MATRIX_INDEX_ARRAY_STRIDE_ARB': 0x8848, 'MATRIX_INDEX_ARRAY_POINTER_ARB': 0x8849, 'MULTISAMPLE_ARB': 0x809D, 'SAMPLE_ALPHA_TO_COVERAGE_ARB': 0x809E, 'SAMPLE_ALPHA_TO_ONE_ARB': 0x809F, 'SAMPLE_COVERAGE_ARB': 0x80A0, 'SAMPLE_BUFFERS_ARB': 0x80A8, 'SAMPLES_ARB': 0x80A9, 'SAMPLE_COVERAGE_VALUE_ARB': 0x80AA, 'SAMPLE_COVERAGE_INVERT_ARB': 0x80AB, 'MULTISAMPLE_BIT_ARB': 0x20000000, 'TEXTURE0_ARB': 0x84C0, 'TEXTURE1_ARB': 0x84C1, 'TEXTURE2_ARB': 0x84C2, 'TEXTURE3_ARB': 0x84C3, 'TEXTURE4_ARB': 0x84C4, 'TEXTURE5_ARB': 0x84C5, 'TEXTURE6_ARB': 0x84C6, 'TEXTURE7_ARB': 0x84C7, 'TEXTURE8_ARB': 0x84C8, 'TEXTURE9_ARB': 0x84C9, 'TEXTURE10_ARB': 0x84CA, 'TEXTURE11_ARB': 0x84CB, 'TEXTURE12_ARB': 0x84CC, 'TEXTURE13_ARB': 0x84CD, 'TEXTURE14_ARB': 0x84CE, 'TEXTURE15_ARB': 0x84CF, 'TEXTURE16_ARB': 0x84D0, 'TEXTURE17_ARB': 0x84D1, 'TEXTURE18_ARB': 0x84D2, 'TEXTURE19_ARB': 0x84D3, 'TEXTURE20_ARB': 0x84D4, 'TEXTURE21_ARB': 0x84D5, 'TEXTURE22_ARB': 0x84D6, 'TEXTURE23_ARB': 0x84D7, 'TEXTURE24_ARB': 0x84D8, 'TEXTURE25_ARB': 0x84D9, 'TEXTURE26_ARB': 0x84DA, 'TEXTURE27_ARB': 0x84DB, 'TEXTURE28_ARB': 0x84DC, 'TEXTURE29_ARB': 0x84DD, 'TEXTURE30_ARB': 0x84DE, 'TEXTURE31_ARB': 0x84DF, 'ACTIVE_TEXTURE_ARB': 0x84E0, 'CLIENT_ACTIVE_TEXTURE_ARB': 0x84E1, 'MAX_TEXTURE_UNITS_ARB': 0x84E2, 'QUERY_COUNTER_BITS_ARB': 0x8864, 'CURRENT_QUERY_ARB': 0x8865, 'QUERY_RESULT_ARB': 0x8866, 'QUERY_RESULT_AVAILABLE_ARB': 0x8867, 'SAMPLES_PASSED_ARB': 0x8914, 'PIXEL_PACK_BUFFER_ARB': 0x88EB, 'PIXEL_UNPACK_BUFFER_ARB': 0x88EC, 'PIXEL_PACK_BUFFER_BINDING_ARB': 0x88ED, 'PIXEL_UNPACK_BUFFER_BINDING_ARB': 0x88EF, 'POINT_SIZE_MIN_ARB': 0x8126, 'POINT_SIZE_MAX_ARB': 0x8127, 'POINT_FADE_THRESHOLD_SIZE_ARB': 0x8128, 'POINT_DISTANCE_ATTENUATION_ARB': 0x8129, 'POINT_SPRITE_ARB': 0x8861, 'COORD_REPLACE_ARB': 0x8862, 'PROGRAM_OBJECT_ARB': 0x8B40, 'SHADER_OBJECT_ARB': 0x8B48, 'OBJECT_TYPE_ARB': 0x8B4E, 'OBJECT_SUBTYPE_ARB': 0x8B4F, 'FLOAT_VEC2_ARB': 0x8B50, 'FLOAT_VEC3_ARB': 0x8B51, 'FLOAT_VEC4_ARB': 0x8B52, 'INT_VEC2_ARB': 0x8B53, 'INT_VEC3_ARB': 0x8B54, 'INT_VEC4_ARB': 0x8B55, 'BOOL_ARB': 0x8B56, 'BOOL_VEC2_ARB': 0x8B57, 'BOOL_VEC3_ARB': 0x8B58, 'BOOL_VEC4_ARB': 0x8B59, 'FLOAT_MAT2_ARB': 0x8B5A, 'FLOAT_MAT3_ARB': 0x8B5B, 'FLOAT_MAT4_ARB': 0x8B5C, 'SAMPLER_1D_ARB': 0x8B5D, 'SAMPLER_2D_ARB': 0x8B5E, 'SAMPLER_3D_ARB': 0x8B5F, 'SAMPLER_CUBE_ARB': 0x8B60, 'SAMPLER_1D_SHADOW_ARB': 0x8B61, 'SAMPLER_2D_SHADOW_ARB': 0x8B62, 'SAMPLER_2D_RECT_ARB': 0x8B63, 'SAMPLER_2D_RECT_SHADOW_ARB': 0x8B64, 'OBJECT_DELETE_STATUS_ARB': 0x8B80, 'OBJECT_COMPILE_STATUS_ARB': 0x8B81, 'OBJECT_LINK_STATUS_ARB': 0x8B82, 'OBJECT_VALIDATE_STATUS_ARB': 0x8B83, 'OBJECT_INFO_LOG_LENGTH_ARB': 0x8B84, 'OBJECT_ATTACHED_OBJECTS_ARB': 0x8B85, 'OBJECT_ACTIVE_UNIFORMS_ARB': 0x8B86, 'OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB': 0x8B87, 'OBJECT_SHADER_SOURCE_LENGTH_ARB': 0x8B88, 'SHADING_LANGUAGE_VERSION_ARB': 0x8B8C, 'TEXTURE_COMPARE_MODE_ARB': 0x884C, 'TEXTURE_COMPARE_FUNC_ARB': 0x884D, 'COMPARE_R_TO_TEXTURE_ARB': 0x884E, 'TEXTURE_COMPARE_FAIL_VALUE_ARB': 0x80BF, 'CLAMP_TO_BORDER_ARB': 0x812D, 'TEXTURE_BUFFER_ARB': 0x8C2A, 'MAX_TEXTURE_BUFFER_SIZE_ARB': 0x8C2B, 'TEXTURE_BINDING_BUFFER_ARB': 0x8C2C, 'TEXTURE_BUFFER_DATA_STORE_BINDING_ARB': 0x8C2D, 'TEXTURE_BUFFER_FORMAT_ARB': 0x8C2E, 'COMPRESSED_ALPHA_ARB': 0x84E9, 'COMPRESSED_LUMINANCE_ARB': 0x84EA, 'COMPRESSED_LUMINANCE_ALPHA_ARB': 0x84EB, 'COMPRESSED_INTENSITY_ARB': 0x84EC, 'COMPRESSED_RGB_ARB': 0x84ED, 'COMPRESSED_RGBA_ARB': 0x84EE, 'TEXTURE_COMPRESSION_HINT_ARB': 0x84EF, 'TEXTURE_COMPRESSED_IMAGE_SIZE_ARB': 0x86A0, 'TEXTURE_COMPRESSED_ARB': 0x86A1, 'NUM_COMPRESSED_TEXTURE_FORMATS_ARB': 0x86A2, 'COMPRESSED_TEXTURE_FORMATS_ARB': 0x86A3, 'COMPRESSED_RED_RGTC1': 0x8DBB, 'COMPRESSED_SIGNED_RED_RGTC1': 0x8DBC, 'COMPRESSED_RG_RGTC2': 0x8DBD, 'COMPRESSED_SIGNED_RG_RGTC2': 0x8DBE, 'NORMAL_MAP_ARB': 0x8511, 'REFLECTION_MAP_ARB': 0x8512, 'TEXTURE_CUBE_MAP_ARB': 0x8513, 'TEXTURE_BINDING_CUBE_MAP_ARB': 0x8514, 'TEXTURE_CUBE_MAP_POSITIVE_X_ARB': 0x8515, 'TEXTURE_CUBE_MAP_NEGATIVE_X_ARB': 0x8516, 'TEXTURE_CUBE_MAP_POSITIVE_Y_ARB': 0x8517, 'TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB': 0x8518, 'TEXTURE_CUBE_MAP_POSITIVE_Z_ARB': 0x8519, 'TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB': 0x851A, 'PROXY_TEXTURE_CUBE_MAP_ARB': 0x851B, 'MAX_CUBE_MAP_TEXTURE_SIZE_ARB': 0x851C, 'SUBTRACT_ARB': 0x84E7, 'COMBINE_ARB': 0x8570, 'COMBINE_RGB_ARB': 0x8571, 'COMBINE_ALPHA_ARB': 0x8572, 'RGB_SCALE_ARB': 0x8573, 'ADD_SIGNED_ARB': 0x8574, 'INTERPOLATE_ARB': 0x8575, 'CONSTANT_ARB': 0x8576, 'PRIMARY_COLOR_ARB': 0x8577, 'PREVIOUS_ARB': 0x8578, 'SOURCE0_RGB_ARB': 0x8580, 'SOURCE1_RGB_ARB': 0x8581, 'SOURCE2_RGB_ARB': 0x8582, 'SOURCE0_ALPHA_ARB': 0x8588, 'SOURCE1_ALPHA_ARB': 0x8589, 'SOURCE2_ALPHA_ARB': 0x858A, 'OPERAND0_RGB_ARB': 0x8590, 'OPERAND1_RGB_ARB': 0x8591, 'OPERAND2_RGB_ARB': 0x8592, 'OPERAND0_ALPHA_ARB': 0x8598, 'OPERAND1_ALPHA_ARB': 0x8599, 'OPERAND2_ALPHA_ARB': 0x859A, 'DOT3_RGB_ARB': 0x86AE, 'DOT3_RGBA_ARB': 0x86AF, 'RGBA32F_ARB': 0x8814, 'RGB32F_ARB': 0x8815, 'ALPHA32F_ARB': 0x8816, 'INTENSITY32F_ARB': 0x8817, 'LUMINANCE32F_ARB': 0x8818, 'LUMINANCE_ALPHA32F_ARB': 0x8819, 'RGBA16F_ARB': 0x881A, 'RGB16F_ARB': 0x881B, 'ALPHA16F_ARB': 0x881C, 'INTENSITY16F_ARB': 0x881D, 'LUMINANCE16F_ARB': 0x881E, 'LUMINANCE_ALPHA16F_ARB': 0x881F, 'TEXTURE_RED_TYPE_ARB': 0x8C10, 'TEXTURE_GREEN_TYPE_ARB': 0x8C11, 'TEXTURE_BLUE_TYPE_ARB': 0x8C12, 'TEXTURE_ALPHA_TYPE_ARB': 0x8C13, 'TEXTURE_LUMINANCE_TYPE_ARB': 0x8C14, 'TEXTURE_INTENSITY_TYPE_ARB': 0x8C15, 'TEXTURE_DEPTH_TYPE_ARB': 0x8C16, 'UNSIGNED_NORMALIZED_ARB': 0x8C17, 'MIRRORED_REPEAT_ARB': 0x8370, 'TEXTURE_RECTANGLE_ARB': 0x84F5, 'TEXTURE_BINDING_RECTANGLE_ARB': 0x84F6, 'PROXY_TEXTURE_RECTANGLE_ARB': 0x84F7, 'MAX_RECTANGLE_TEXTURE_SIZE_ARB': 0x84F8, 'RED': 0x1903, 'RG': 0x8227, 'RG_INTEGER': 0x8228, 'R8': 0x8229, 'R16': 0x822A, 'RG8': 0x822B, 'RG16': 0x822C, 'R16F': 0x822D, 'R32F': 0x822E, 'RG16F': 0x822F, 'RG32F': 0x8230, 'R8I': 0x8231, 'R8UI': 0x8232, 'R16I': 0x8233, 'R16UI': 0x8234, 'R32I': 0x8235, 'R32UI': 0x8236, 'RG8I': 0x8237, 'RG8UI': 0x8238, 'RG16I': 0x8239, 'RG16UI': 0x823A, 'RG32I': 0x823B, 'RG32UI': 0x823C, 'TRANSPOSE_MODELVIEW_MATRIX_ARB': 0x84E3, 'TRANSPOSE_PROJEC