Best JavaScript code snippet using fast-check-monorepo
desktop-gl-constants.js
Source:desktop-gl-constants.js
1// Copyright (c) 2009 The Chromium Authors. All rights reserved.2// Use of this source code is governed by a BSD-style license that can be3// found in the LICENSE file.4// Defines a bunch of DesktopGL constants so we can make sure WebGL5// implementations disallow them.6var desktopGL = {7 'MIN': 0x8007,8 'MAX': 0x8008,9 'QUADS': 0x0007,10 'QUAD_STRIP': 0x0008,11 'POLYGON': 0x0009,12 '1': 0x0001,13 '2': 0x0002,14 '3': 0x0003,15 '4': 0x0004,16 'STATIC_READ': 0x88E5,17 'CLIP_PLANE0': 0x3000,18 'PERSPECTIVE_CORRECTION_HINT': 0x0C50,19 'ACCUM_BUFFER_BIT': 0x0200,20 'RGB4': 0x804F,21 'RGB5': 0x8050,22 'RGB8': 0x8051,23 'RGB10': 0x8052,24 'RGB12': 0x8053,25 'RGB16': 0x8054,26 'RGBA2': 0x8055,27 'RGBA4': 0x8056,28 'RGB5_A1': 0x8057,29 'RGBA8': 0x8058,30 'RGB10_A2': 0x8059,31 'RGBA12': 0x805A,32 'RGBA16': 0x805B,33 'SMOOTH_POINT_SIZE_RANGE': 0x0B12,34 'SMOOTH_POINT_SIZE_GRANULARITY': 0x0B13,35 'SMOOTH_LINE_WIDTH_RANGE': 0x0B22,36 'SMOOTH_LINE_WIDTH_GRANULARITY': 0x0B23,37 'UNSIGNED_BYTE_3_3_2': 0x8032,38 'UNSIGNED_SHORT_4_4_4_4': 0x8033,39 'UNSIGNED_SHORT_5_5_5_1': 0x8034,40 'UNSIGNED_INT_8_8_8_8': 0x8035,41 'UNSIGNED_INT_10_10_10_2': 0x8036,42 'RESCALE_NORMAL': 0x803A,43 'TEXTURE_BINDING_3D': 0x806A,44 'PACK_SKIP_IMAGES': 0x806B,45 'PACK_IMAGE_HEIGHT': 0x806C,46 'UNPACK_SKIP_IMAGES': 0x806D,47 'UNPACK_IMAGE_HEIGHT': 0x806E,48 'TEXTURE_3D': 0x806F,49 'PROXY_TEXTURE_3D': 0x8070,50 'TEXTURE_DEPTH': 0x8071,51 'TEXTURE_WRAP_R': 0x8072,52 'MAX_3D_TEXTURE_SIZE': 0x8073,53 'BGR': 0x80E0,54 'BGRA': 0x80E1,55 'MAX_ELEMENTS_VERTICES': 0x80E8,56 'MAX_ELEMENTS_INDICES': 0x80E9,57 'CLAMP_TO_EDGE': 0x812F,58 'TEXTURE_MIN_LOD': 0x813A,59 'TEXTURE_MAX_LOD': 0x813B,60 'TEXTURE_BASE_LEVEL': 0x813C,61 'TEXTURE_MAX_LEVEL': 0x813D,62 'LIGHT_MODEL_COLOR_CONTROL': 0x81F8,63 'SINGLE_COLOR': 0x81F9,64 'SEPARATE_SPECULAR_COLOR': 0x81FA,65 'UNSIGNED_BYTE_2_3_3_REV': 0x8362,66 'UNSIGNED_SHORT_5_6_5': 0x8363,67 'UNSIGNED_SHORT_5_6_5_REV': 0x8364,68 'UNSIGNED_SHORT_4_4_4_4_REV': 0x8365,69 'UNSIGNED_SHORT_1_5_5_5_REV': 0x8366,70 'UNSIGNED_INT_8_8_8_8_REV': 0x8367,71 'UNSIGNED_INT_2_10_10_10_REV': 0x8368,72 'ALIASED_POINT_SIZE_RANGE': 0x846D,73 'ALIASED_LINE_WIDTH_RANGE': 0x846E,74 'MULTISAMPLE': 0x809D,75 'SAMPLE_ALPHA_TO_COVERAGE': 0x809E,76 'SAMPLE_ALPHA_TO_ONE': 0x809F,77 'SAMPLE_COVERAGE': 0x80A0,78 'SAMPLE_BUFFERS': 0x80A8,79 'SAMPLES': 0x80A9,80 'SAMPLE_COVERAGE_VALUE': 0x80AA,81 'SAMPLE_COVERAGE_INVERT': 0x80AB,82 'CLAMP_TO_BORDER': 0x812D,83 'TEXTURE0': 0x84C0,84 'TEXTURE1': 0x84C1,85 'TEXTURE2': 0x84C2,86 'TEXTURE3': 0x84C3,87 'TEXTURE4': 0x84C4,88 'TEXTURE5': 0x84C5,89 'TEXTURE6': 0x84C6,90 'TEXTURE7': 0x84C7,91 'TEXTURE8': 0x84C8,92 'TEXTURE9': 0x84C9,93 'TEXTURE10': 0x84CA,94 'TEXTURE11': 0x84CB,95 'TEXTURE12': 0x84CC,96 'TEXTURE13': 0x84CD,97 'TEXTURE14': 0x84CE,98 'TEXTURE15': 0x84CF,99 'TEXTURE16': 0x84D0,100 'TEXTURE17': 0x84D1,101 'TEXTURE18': 0x84D2,102 'TEXTURE19': 0x84D3,103 'TEXTURE20': 0x84D4,104 'TEXTURE21': 0x84D5,105 'TEXTURE22': 0x84D6,106 'TEXTURE23': 0x84D7,107 'TEXTURE24': 0x84D8,108 'TEXTURE25': 0x84D9,109 'TEXTURE26': 0x84DA,110 'TEXTURE27': 0x84DB,111 'TEXTURE28': 0x84DC,112 'TEXTURE29': 0x84DD,113 'TEXTURE30': 0x84DE,114 'TEXTURE31': 0x84DF,115 'ACTIVE_TEXTURE': 0x84E0,116 'CLIENT_ACTIVE_TEXTURE': 0x84E1,117 'MAX_TEXTURE_UNITS': 0x84E2,118 'TRANSPOSE_MODELVIEW_MATRIX': 0x84E3,119 'TRANSPOSE_PROJECTION_MATRIX': 0x84E4,120 'TRANSPOSE_TEXTURE_MATRIX': 0x84E5,121 'TRANSPOSE_COLOR_MATRIX': 0x84E6,122 'SUBTRACT': 0x84E7,123 'COMPRESSED_ALPHA': 0x84E9,124 'COMPRESSED_LUMINANCE': 0x84EA,125 'COMPRESSED_LUMINANCE_ALPHA': 0x84EB,126 'COMPRESSED_INTENSITY': 0x84EC,127 'COMPRESSED_RGB': 0x84ED,128 'COMPRESSED_RGBA': 0x84EE,129 'TEXTURE_COMPRESSION_HINT': 0x84EF,130 'NORMAL_MAP': 0x8511,131 'REFLECTION_MAP': 0x8512,132 'TEXTURE_CUBE_MAP': 0x8513,133 'TEXTURE_BINDING_CUBE_MAP': 0x8514,134 'TEXTURE_CUBE_MAP_POSITIVE_X': 0x8515,135 'TEXTURE_CUBE_MAP_NEGATIVE_X': 0x8516,136 'TEXTURE_CUBE_MAP_POSITIVE_Y': 0x8517,137 'TEXTURE_CUBE_MAP_NEGATIVE_Y': 0x8518,138 'TEXTURE_CUBE_MAP_POSITIVE_Z': 0x8519,139 'TEXTURE_CUBE_MAP_NEGATIVE_Z': 0x851A,140 'PROXY_TEXTURE_CUBE_MAP': 0x851B,141 'MAX_CUBE_MAP_TEXTURE_SIZE': 0x851C,142 'COMBINE': 0x8570,143 'COMBINE_RGB': 0x8571,144 'COMBINE_ALPHA': 0x8572,145 'RGB_SCALE': 0x8573,146 'ADD_SIGNED': 0x8574,147 'INTERPOLATE': 0x8575,148 'CONSTANT': 0x8576,149 'PRIMARY_COLOR': 0x8577,150 'PREVIOUS': 0x8578,151 'SOURCE0_RGB': 0x8580,152 'SOURCE1_RGB': 0x8581,153 'SOURCE2_RGB': 0x8582,154 'SOURCE0_ALPHA': 0x8588,155 'SOURCE1_ALPHA': 0x8589,156 'SOURCE2_ALPHA': 0x858A,157 'OPERAND0_RGB': 0x8590,158 'OPERAND1_RGB': 0x8591,159 'OPERAND2_RGB': 0x8592,160 'OPERAND0_ALPHA': 0x8598,161 'OPERAND1_ALPHA': 0x8599,162 'OPERAND2_ALPHA': 0x859A,163 'TEXTURE_COMPRESSED_IMAGE_SIZE': 0x86A0,164 'TEXTURE_COMPRESSED': 0x86A1,165 'NUM_COMPRESSED_TEXTURE_FORMATS': 0x86A2,166 'COMPRESSED_TEXTURE_FORMATS': 0x86A3,167 'DOT3_RGB': 0x86AE,168 'DOT3_RGBA': 0x86AF,169 'MULTISAMPLE_BIT': 0x20000000,170 'BLEND_DST_RGB': 0x80C8,171 'BLEND_SRC_RGB': 0x80C9,172 'BLEND_DST_ALPHA': 0x80CA,173 'BLEND_SRC_ALPHA': 0x80CB,174 'POINT_SIZE_MIN': 0x8126,175 'POINT_SIZE_MAX': 0x8127,176 'POINT_FADE_THRESHOLD_SIZE': 0x8128,177 'POINT_DISTANCE_ATTENUATION': 0x8129,178 'GENERATE_MIPMAP': 0x8191,179 'GENERATE_MIPMAP_HINT': 0x8192,180 'DEPTH_COMPONENT16': 0x81A5,181 'DEPTH_COMPONENT24': 0x81A6,182 'DEPTH_COMPONENT32': 0x81A7,183 'MIRRORED_REPEAT': 0x8370,184 'FOG_COORDINATE_SOURCE': 0x8450,185 'FOG_COORDINATE': 0x8451,186 'FRAGMENT_DEPTH': 0x8452,187 'CURRENT_FOG_COORDINATE': 0x8453,188 'FOG_COORDINATE_ARRAY_TYPE': 0x8454,189 'FOG_COORDINATE_ARRAY_STRIDE': 0x8455,190 'FOG_COORDINATE_ARRAY_POINTER': 0x8456,191 'FOG_COORDINATE_ARRAY': 0x8457,192 'COLOR_SUM': 0x8458,193 'CURRENT_SECONDARY_COLOR': 0x8459,194 'SECONDARY_COLOR_ARRAY_SIZE': 0x845A,195 'SECONDARY_COLOR_ARRAY_TYPE': 0x845B,196 'SECONDARY_COLOR_ARRAY_STRIDE': 0x845C,197 'SECONDARY_COLOR_ARRAY_POINTER': 0x845D,198 'SECONDARY_COLOR_ARRAY': 0x845E,199 'MAX_TEXTURE_LOD_BIAS': 0x84FD,200 'TEXTURE_FILTER_CONTROL': 0x8500,201 'TEXTURE_LOD_BIAS': 0x8501,202 'INCR_WRAP': 0x8507,203 'DECR_WRAP': 0x8508,204 'TEXTURE_DEPTH_SIZE': 0x884A,205 'DEPTH_TEXTURE_MODE': 0x884B,206 'TEXTURE_COMPARE_MODE': 0x884C,207 'TEXTURE_COMPARE_FUNC': 0x884D,208 'COMPARE_R_TO_TEXTURE': 0x884E,209 'BUFFER_SIZE': 0x8764,210 'BUFFER_USAGE': 0x8765,211 'QUERY_COUNTER_BITS': 0x8864,212 'CURRENT_QUERY': 0x8865,213 'QUERY_RESULT': 0x8866,214 'QUERY_RESULT_AVAILABLE': 0x8867,215 'ARRAY_BUFFER': 0x8892,216 'ELEMENT_ARRAY_BUFFER': 0x8893,217 'ARRAY_BUFFER_BINDING': 0x8894,218 'ELEMENT_ARRAY_BUFFER_BINDING': 0x8895,219 'VERTEX_ARRAY_BUFFER_BINDING': 0x8896,220 'NORMAL_ARRAY_BUFFER_BINDING': 0x8897,221 'COLOR_ARRAY_BUFFER_BINDING': 0x8898,222 'INDEX_ARRAY_BUFFER_BINDING': 0x8899,223 'TEXTURE_COORD_ARRAY_BUFFER_BINDING': 0x889A,224 'EDGE_FLAG_ARRAY_BUFFER_BINDING': 0x889B,225 'SECONDARY_COLOR_ARRAY_BUFFER_BINDING': 0x889C,226 'FOG_COORDINATE_ARRAY_BUFFER_BINDING': 0x889D,227 'WEIGHT_ARRAY_BUFFER_BINDING': 0x889E,228 'VERTEX_ATTRIB_ARRAY_BUFFER_BINDING': 0x889F,229 'READ_ONLY': 0x88B8,230 'WRITE_ONLY': 0x88B9,231 'READ_WRITE': 0x88BA,232 'BUFFER_ACCESS': 0x88BB,233 'BUFFER_MAPPED': 0x88BC,234 'BUFFER_MAP_POINTER': 0x88BD,235 'STREAM_DRAW': 0x88E0,236 'STREAM_READ': 0x88E1,237 'STREAM_COPY': 0x88E2,238 'STATIC_DRAW': 0x88E4,239 'STATIC_READ': 0x88E5,240 'STATIC_COPY': 0x88E6,241 'DYNAMIC_DRAW': 0x88E8,242 'DYNAMIC_READ': 0x88E9,243 'DYNAMIC_COPY': 0x88EA,244 'SAMPLES_PASSED': 0x8914,245 'VERTEX_ATTRIB_ARRAY_ENABLED': 0x8622,246 'VERTEX_ATTRIB_ARRAY_SIZE': 0x8623,247 'VERTEX_ATTRIB_ARRAY_STRIDE': 0x8624,248 'VERTEX_ATTRIB_ARRAY_TYPE': 0x8625,249 'CURRENT_VERTEX_ATTRIB': 0x8626,250 'VERTEX_PROGRAM_POINT_SIZE': 0x8642,251 'VERTEX_PROGRAM_TWO_SIDE': 0x8643,252 'VERTEX_ATTRIB_ARRAY_POINTER': 0x8645,253 'STENCIL_BACK_FUNC': 0x8800,254 'STENCIL_BACK_FAIL': 0x8801,255 'STENCIL_BACK_PASS_DEPTH_FAIL': 0x8802,256 'STENCIL_BACK_PASS_DEPTH_PASS': 0x8803,257 'MAX_DRAW_BUFFERS': 0x8824,258 'DRAW_BUFFER0': 0x8825,259 'DRAW_BUFFER1': 0x8826,260 'DRAW_BUFFER2': 0x8827,261 'DRAW_BUFFER3': 0x8828,262 'DRAW_BUFFER4': 0x8829,263 'DRAW_BUFFER5': 0x882A,264 'DRAW_BUFFER6': 0x882B,265 'DRAW_BUFFER7': 0x882C,266 'DRAW_BUFFER8': 0x882D,267 'DRAW_BUFFER9': 0x882E,268 'DRAW_BUFFER10': 0x882F,269 'DRAW_BUFFER11': 0x8830,270 'DRAW_BUFFER12': 0x8831,271 'DRAW_BUFFER13': 0x8832,272 'DRAW_BUFFER14': 0x8833,273 'DRAW_BUFFER15': 0x8834,274 'BLEND_EQUATION_ALPHA': 0x883D,275 'POINT_SPRITE': 0x8861,276 'COORD_REPLACE': 0x8862,277 'MAX_VERTEX_ATTRIBS': 0x8869,278 'VERTEX_ATTRIB_ARRAY_NORMALIZED': 0x886A,279 'MAX_TEXTURE_COORDS': 0x8871,280 'MAX_TEXTURE_IMAGE_UNITS': 0x8872,281 'FRAGMENT_SHADER': 0x8B30,282 'VERTEX_SHADER': 0x8B31,283 'MAX_FRAGMENT_UNIFORM_COMPONENTS': 0x8B49,284 'MAX_VERTEX_UNIFORM_COMPONENTS': 0x8B4A,285 'MAX_VARYING_FLOATS': 0x8B4B,286 'MAX_VERTEX_TEXTURE_IMAGE_UNITS': 0x8B4C,287 'MAX_COMBINED_TEXTURE_IMAGE_UNITS': 0x8B4D,288 'SHADER_TYPE': 0x8B4F,289 'FLOAT_VEC2': 0x8B50,290 'FLOAT_VEC3': 0x8B51,291 'FLOAT_VEC4': 0x8B52,292 'INT_VEC2': 0x8B53,293 'INT_VEC3': 0x8B54,294 'INT_VEC4': 0x8B55,295 'BOOL': 0x8B56,296 'BOOL_VEC2': 0x8B57,297 'BOOL_VEC3': 0x8B58,298 'BOOL_VEC4': 0x8B59,299 'FLOAT_MAT2': 0x8B5A,300 'FLOAT_MAT3': 0x8B5B,301 'FLOAT_MAT4': 0x8B5C,302 'SAMPLER_1D': 0x8B5D,303 'SAMPLER_2D': 0x8B5E,304 'SAMPLER_3D': 0x8B5F,305 'SAMPLER_CUBE': 0x8B60,306 'SAMPLER_1D_SHADOW': 0x8B61,307 'SAMPLER_2D_SHADOW': 0x8B62,308 'DELETE_STATUS': 0x8B80,309 'COMPILE_STATUS': 0x8B81,310 'LINK_STATUS': 0x8B82,311 'VALIDATE_STATUS': 0x8B83,312 'INFO_LOG_LENGTH': 0x8B84,313 'ATTACHED_SHADERS': 0x8B85,314 'ACTIVE_UNIFORMS': 0x8B86,315 'ACTIVE_UNIFORM_MAX_LENGTH': 0x8B87,316 'SHADER_SOURCE_LENGTH': 0x8B88,317 'ACTIVE_ATTRIBUTES': 0x8B89,318 'ACTIVE_ATTRIBUTE_MAX_LENGTH': 0x8B8A,319 'FRAGMENT_SHADER_DERIVATIVE_HINT': 0x8B8B,320 'SHADING_LANGUAGE_VERSION': 0x8B8C,321 'CURRENT_PROGRAM': 0x8B8D,322 'POINT_SPRITE_COORD_ORIGIN': 0x8CA0,323 'LOWER_LEFT': 0x8CA1,324 'UPPER_LEFT': 0x8CA2,325 'STENCIL_BACK_REF': 0x8CA3,326 'STENCIL_BACK_VALUE_MASK': 0x8CA4,327 'STENCIL_BACK_WRITEMASK': 0x8CA5,328 'CURRENT_RASTER_SECONDARY_COLOR': 0x845F,329 'PIXEL_PACK_BUFFER': 0x88EB,330 'PIXEL_UNPACK_BUFFER': 0x88EC,331 'PIXEL_PACK_BUFFER_BINDING': 0x88ED,332 'PIXEL_UNPACK_BUFFER_BINDING': 0x88EF,333 'FLOAT_MAT2x3': 0x8B65,334 'FLOAT_MAT2x4': 0x8B66,335 'FLOAT_MAT3x2': 0x8B67,336 'FLOAT_MAT3x4': 0x8B68,337 'FLOAT_MAT4x2': 0x8B69,338 'FLOAT_MAT4x3': 0x8B6A,339 'SRGB': 0x8C40,340 'SRGB8': 0x8C41,341 'SRGB_ALPHA': 0x8C42,342 'SRGB8_ALPHA8': 0x8C43,343 'SLUMINANCE_ALPHA': 0x8C44,344 'SLUMINANCE8_ALPHA8': 0x8C45,345 'SLUMINANCE': 0x8C46,346 'SLUMINANCE8': 0x8C47,347 'COMPRESSED_SRGB': 0x8C48,348 'COMPRESSED_SRGB_ALPHA': 0x8C49,349 'COMPRESSED_SLUMINANCE': 0x8C4A,350 'COMPRESSED_SLUMINANCE_ALPHA': 0x8C4B,351 'CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT': 0x0001,352 'MAJOR_VERSION': 0x821B,353 'MINOR_VERSION': 0x821C,354 'NUM_EXTENSIONS': 0x821D,355 'CONTEXT_FLAGS': 0x821E,356 'DEPTH_BUFFER': 0x8223,357 'STENCIL_BUFFER': 0x8224,358 'COMPRESSED_RED': 0x8225,359 'COMPRESSED_RG': 0x8226,360 'RGBA32F': 0x8814,361 'RGB32F': 0x8815,362 'RGBA16F': 0x881A,363 'RGB16F': 0x881B,364 'VERTEX_ATTRIB_ARRAY_INTEGER': 0x88FD,365 'MAX_ARRAY_TEXTURE_LAYERS': 0x88FF,366 'MIN_PROGRAM_TEXEL_OFFSET': 0x8904,367 'MAX_PROGRAM_TEXEL_OFFSET': 0x8905,368 'CLAMP_VERTEX_COLOR': 0x891A,369 'CLAMP_FRAGMENT_COLOR': 0x891B,370 'CLAMP_READ_COLOR': 0x891C,371 'FIXED_ONLY': 0x891D,372 'TEXTURE_RED_TYPE': 0x8C10,373 'TEXTURE_GREEN_TYPE': 0x8C11,374 'TEXTURE_BLUE_TYPE': 0x8C12,375 'TEXTURE_ALPHA_TYPE': 0x8C13,376 'TEXTURE_LUMINANCE_TYPE': 0x8C14,377 'TEXTURE_INTENSITY_TYPE': 0x8C15,378 'TEXTURE_DEPTH_TYPE': 0x8C16,379 'UNSIGNED_NORMALIZED': 0x8C17,380 'TEXTURE_1D_ARRAY': 0x8C18,381 'PROXY_TEXTURE_1D_ARRAY': 0x8C19,382 'TEXTURE_2D_ARRAY': 0x8C1A,383 'PROXY_TEXTURE_2D_ARRAY': 0x8C1B,384 'TEXTURE_BINDING_1D_ARRAY': 0x8C1C,385 'TEXTURE_BINDING_2D_ARRAY': 0x8C1D,386 'R11F_G11F_B10F': 0x8C3A,387 'UNSIGNED_INT_10F_11F_11F_REV': 0x8C3B,388 'RGB9_E5': 0x8C3D,389 'UNSIGNED_INT_5_9_9_9_REV': 0x8C3E,390 'TEXTURE_SHARED_SIZE': 0x8C3F,391 'TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH': 0x8C76,392 'TRANSFORM_FEEDBACK_BUFFER_MODE': 0x8C7F,393 'MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS': 0x8C80,394 'TRANSFORM_FEEDBACK_VARYINGS': 0x8C83,395 'TRANSFORM_FEEDBACK_BUFFER_START': 0x8C84,396 'TRANSFORM_FEEDBACK_BUFFER_SIZE': 0x8C85,397 'PRIMITIVES_GENERATED': 0x8C87,398 'TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN': 0x8C88,399 'RASTERIZER_DISCARD': 0x8C89,400 'MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS': 0x8C8A,401 'MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS': 0x8C8B,402 'INTERLEAVED_ATTRIBS': 0x8C8C,403 'SEPARATE_ATTRIBS': 0x8C8D,404 'TRANSFORM_FEEDBACK_BUFFER': 0x8C8E,405 'TRANSFORM_FEEDBACK_BUFFER_BINDING': 0x8C8F,406 'RGBA32UI': 0x8D70,407 'RGB32UI': 0x8D71,408 'RGBA16UI': 0x8D76,409 'RGB16UI': 0x8D77,410 'RGBA8UI': 0x8D7C,411 'RGB8UI': 0x8D7D,412 'RGBA32I': 0x8D82,413 'RGB32I': 0x8D83,414 'RGBA16I': 0x8D88,415 'RGB16I': 0x8D89,416 'RGBA8I': 0x8D8E,417 'RGB8I': 0x8D8F,418 'RED_INTEGER': 0x8D94,419 'GREEN_INTEGER': 0x8D95,420 'BLUE_INTEGER': 0x8D96,421 'ALPHA_INTEGER': 0x8D97,422 'RGB_INTEGER': 0x8D98,423 'RGBA_INTEGER': 0x8D99,424 'BGR_INTEGER': 0x8D9A,425 'BGRA_INTEGER': 0x8D9B,426 'SAMPLER_1D_ARRAY': 0x8DC0,427 'SAMPLER_2D_ARRAY': 0x8DC1,428 'SAMPLER_1D_ARRAY_SHADOW': 0x8DC3,429 'SAMPLER_2D_ARRAY_SHADOW': 0x8DC4,430 'SAMPLER_CUBE_SHADOW': 0x8DC5,431 'UNSIGNED_INT_VEC2': 0x8DC6,432 'UNSIGNED_INT_VEC3': 0x8DC7,433 'UNSIGNED_INT_VEC4': 0x8DC8,434 'INT_SAMPLER_1D': 0x8DC9,435 'INT_SAMPLER_2D': 0x8DCA,436 'INT_SAMPLER_3D': 0x8DCB,437 'INT_SAMPLER_CUBE': 0x8DCC,438 'INT_SAMPLER_1D_ARRAY': 0x8DCE,439 'INT_SAMPLER_2D_ARRAY': 0x8DCF,440 'UNSIGNED_INT_SAMPLER_1D': 0x8DD1,441 'UNSIGNED_INT_SAMPLER_2D': 0x8DD2,442 'UNSIGNED_INT_SAMPLER_3D': 0x8DD3,443 'UNSIGNED_INT_SAMPLER_CUBE': 0x8DD4,444 'UNSIGNED_INT_SAMPLER_1D_ARRAY': 0x8DD6,445 'UNSIGNED_INT_SAMPLER_2D_ARRAY': 0x8DD7,446 'QUERY_WAIT': 0x8E13,447 'QUERY_NO_WAIT': 0x8E14,448 'QUERY_BY_REGION_WAIT': 0x8E15,449 'QUERY_BY_REGION_NO_WAIT': 0x8E16,450 'MULTISAMPLE_3DFX': 0x86B2,451 'SAMPLE_BUFFERS_3DFX': 0x86B3,452 'SAMPLES_3DFX': 0x86B4,453 'MULTISAMPLE_BIT_3DFX': 0x20000000,454 'COMPRESSED_RGB_FXT1_3DFX': 0x86B0,455 'COMPRESSED_RGBA_FXT1_3DFX': 0x86B1,456 'UNPACK_CLIENT_STORAGE_APPLE': 0x85B2,457 'ELEMENT_ARRAY_APPLE': 0x8768,458 'ELEMENT_ARRAY_TYPE_APPLE': 0x8769,459 'ELEMENT_ARRAY_POINTER_APPLE': 0x876A,460 'HALF_APPLE': 0x140B,461 'RGBA_FLOAT32_APPLE': 0x8814,462 'RGB_FLOAT32_APPLE': 0x8815,463 'ALPHA_FLOAT32_APPLE': 0x8816,464 'INTENSITY_FLOAT32_APPLE': 0x8817,465 'LUMINANCE_FLOAT32_APPLE': 0x8818,466 'LUMINANCE_ALPHA_FLOAT32_APPLE': 0x8819,467 'RGBA_FLOAT16_APPLE': 0x881A,468 'RGB_FLOAT16_APPLE': 0x881B,469 'ALPHA_FLOAT16_APPLE': 0x881C,470 'INTENSITY_FLOAT16_APPLE': 0x881D,471 'LUMINANCE_FLOAT16_APPLE': 0x881E,472 'LUMINANCE_ALPHA_FLOAT16_APPLE': 0x881F,473 'COLOR_FLOAT_APPLE': 0x8A0F,474 'BUFFER_SERIALIZED_MODIFY_APPLE': 0x8A12,475 'BUFFER_FLUSHING_UNMAP_APPLE': 0x8A13,476 'MIN_PBUFFER_VIEWPORT_DIMS_APPLE': 0x8A10,477 'LIGHT_MODEL_SPECULAR_VECTOR_APPLE': 0x85B0,478 'TEXTURE_RANGE_LENGTH_APPLE': 0x85B7,479 'TEXTURE_RANGE_POINTER_APPLE': 0x85B8,480 'TEXTURE_STORAGE_HINT_APPLE': 0x85BC,481 'STORAGE_PRIVATE_APPLE': 0x85BD,482 'STORAGE_CACHED_APPLE': 0x85BE,483 'STORAGE_SHARED_APPLE': 0x85BF,484 'TRANSFORM_HINT_APPLE': 0x85B1,485 'VERTEX_ARRAY_BINDING_APPLE': 0x85B5,486 'VERTEX_ARRAY_RANGE_APPLE': 0x851D,487 'VERTEX_ARRAY_RANGE_LENGTH_APPLE': 0x851E,488 'VERTEX_ARRAY_STORAGE_HINT_APPLE': 0x851F,489 'MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE': 0x8520,490 'VERTEX_ARRAY_RANGE_POINTER_APPLE': 0x8521,491 'STORAGE_CACHED_APPLE': 0x85BE,492 'STORAGE_SHARED_APPLE': 0x85BF,493 'YCBCR_422_APPLE': 0x85B9,494 'UNSIGNED_SHORT_8_8_APPLE': 0x85BA,495 'UNSIGNED_SHORT_8_8_REV_APPLE': 0x85BB,496 'RGBA_FLOAT_MODE_ARB': 0x8820,497 'CLAMP_VERTEX_COLOR_ARB': 0x891A,498 'CLAMP_FRAGMENT_COLOR_ARB': 0x891B,499 'CLAMP_READ_COLOR_ARB': 0x891C,500 'FIXED_ONLY_ARB': 0x891D,501 'DEPTH_COMPONENT32F': 0x8CAC,502 'DEPTH32F_STENCIL8': 0x8CAD,503 'FLOAT_32_UNSIGNED_INT_24_8_REV': 0x8DAD,504 'DEPTH_COMPONENT16_ARB': 0x81A5,505 'DEPTH_COMPONENT24_ARB': 0x81A6,506 'DEPTH_COMPONENT32_ARB': 0x81A7,507 'TEXTURE_DEPTH_SIZE_ARB': 0x884A,508 'DEPTH_TEXTURE_MODE_ARB': 0x884B,509 'MAX_DRAW_BUFFERS_ARB': 0x8824,510 'DRAW_BUFFER0_ARB': 0x8825,511 'DRAW_BUFFER1_ARB': 0x8826,512 'DRAW_BUFFER2_ARB': 0x8827,513 'DRAW_BUFFER3_ARB': 0x8828,514 'DRAW_BUFFER4_ARB': 0x8829,515 'DRAW_BUFFER5_ARB': 0x882A,516 'DRAW_BUFFER6_ARB': 0x882B,517 'DRAW_BUFFER7_ARB': 0x882C,518 'DRAW_BUFFER8_ARB': 0x882D,519 'DRAW_BUFFER9_ARB': 0x882E,520 'DRAW_BUFFER10_ARB': 0x882F,521 'DRAW_BUFFER11_ARB': 0x8830,522 'DRAW_BUFFER12_ARB': 0x8831,523 'DRAW_BUFFER13_ARB': 0x8832,524 'DRAW_BUFFER14_ARB': 0x8833,525 'DRAW_BUFFER15_ARB': 0x8834,526 'FRAGMENT_PROGRAM_ARB': 0x8804,527 'PROGRAM_ALU_INSTRUCTIONS_ARB': 0x8805,528 'PROGRAM_TEX_INSTRUCTIONS_ARB': 0x8806,529 'PROGRAM_TEX_INDIRECTIONS_ARB': 0x8807,530 'PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB': 0x8808,531 'PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB': 0x8809,532 'PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB': 0x880A,533 'MAX_PROGRAM_ALU_INSTRUCTIONS_ARB': 0x880B,534 'MAX_PROGRAM_TEX_INSTRUCTIONS_ARB': 0x880C,535 'MAX_PROGRAM_TEX_INDIRECTIONS_ARB': 0x880D,536 'MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB': 0x880E,537 'MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB': 0x880F,538 'MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB': 0x8810,539 'MAX_TEXTURE_COORDS_ARB': 0x8871,540 'MAX_TEXTURE_IMAGE_UNITS_ARB': 0x8872,541 'FRAGMENT_SHADER_ARB': 0x8B30,542 'MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB': 0x8B49,543 'FRAGMENT_SHADER_DERIVATIVE_HINT_ARB': 0x8B8B,544 'INVALID_FRAMEBUFFER_OPERATION': 0x0506,545 'FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING': 0x8210,546 'FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE': 0x8211,547 'FRAMEBUFFER_ATTACHMENT_RED_SIZE': 0x8212,548 'FRAMEBUFFER_ATTACHMENT_GREEN_SIZE': 0x8213,549 'FRAMEBUFFER_ATTACHMENT_BLUE_SIZE': 0x8214,550 'FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE': 0x8215,551 'FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE': 0x8216,552 'FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE': 0x8217,553 'FRAMEBUFFER_DEFAULT': 0x8218,554 'FRAMEBUFFER_UNDEFINED': 0x8219,555 'DEPTH_STENCIL_ATTACHMENT': 0x821A,556 'INDEX': 0x8222,557 'MAX_RENDERBUFFER_SIZE': 0x84E8,558 'DEPTH_STENCIL': 0x84F9,559 'UNSIGNED_INT_24_8': 0x84FA,560 'DEPTH24_STENCIL8': 0x88F0,561 'TEXTURE_STENCIL_SIZE': 0x88F1,562 'UNSIGNED_NORMALIZED': 0x8C17,563 'SRGB': 0x8C40,564 'DRAW_FRAMEBUFFER_BINDING': 0x8CA6,565 'FRAMEBUFFER_BINDING': 0x8CA6,566 'RENDERBUFFER_BINDING': 0x8CA7,567 'READ_FRAMEBUFFER': 0x8CA8,568 'DRAW_FRAMEBUFFER': 0x8CA9,569 'READ_FRAMEBUFFER_BINDING': 0x8CAA,570 'RENDERBUFFER_SAMPLES': 0x8CAB,571 'FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE': 0x8CD0,572 'FRAMEBUFFER_ATTACHMENT_OBJECT_NAME': 0x8CD1,573 'FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL': 0x8CD2,574 'FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE': 0x8CD3,575 'FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER': 0x8CD4,576 'FRAMEBUFFER_COMPLETE': 0x8CD5,577 'FRAMEBUFFER_INCOMPLETE_ATTACHMENT': 0x8CD6,578 'FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT': 0x8CD7,579 'FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER': 0x8CDB,580 'FRAMEBUFFER_INCOMPLETE_READ_BUFFER': 0x8CDC,581 'FRAMEBUFFER_UNSUPPORTED': 0x8CDD,582 'MAX_COLOR_ATTACHMENTS': 0x8CDF,583 'COLOR_ATTACHMENT0': 0x8CE0,584 'COLOR_ATTACHMENT1': 0x8CE1,585 'COLOR_ATTACHMENT2': 0x8CE2,586 'COLOR_ATTACHMENT3': 0x8CE3,587 'COLOR_ATTACHMENT4': 0x8CE4,588 'COLOR_ATTACHMENT5': 0x8CE5,589 'COLOR_ATTACHMENT6': 0x8CE6,590 'COLOR_ATTACHMENT7': 0x8CE7,591 'COLOR_ATTACHMENT8': 0x8CE8,592 'COLOR_ATTACHMENT9': 0x8CE9,593 'COLOR_ATTACHMENT10': 0x8CEA,594 'COLOR_ATTACHMENT11': 0x8CEB,595 'COLOR_ATTACHMENT12': 0x8CEC,596 'COLOR_ATTACHMENT13': 0x8CED,597 'COLOR_ATTACHMENT14': 0x8CEE,598 'COLOR_ATTACHMENT15': 0x8CEF,599 'DEPTH_ATTACHMENT': 0x8D00,600 'STENCIL_ATTACHMENT': 0x8D20,601 'FRAMEBUFFER': 0x8D40,602 'RENDERBUFFER': 0x8D41,603 'RENDERBUFFER_WIDTH': 0x8D42,604 'RENDERBUFFER_HEIGHT': 0x8D43,605 'RENDERBUFFER_INTERNAL_FORMAT': 0x8D44,606 'STENCIL_INDEX1': 0x8D46,607 'STENCIL_INDEX4': 0x8D47,608 'STENCIL_INDEX8': 0x8D48,609 'STENCIL_INDEX16': 0x8D49,610 'RENDERBUFFER_RED_SIZE': 0x8D50,611 'RENDERBUFFER_GREEN_SIZE': 0x8D51,612 'RENDERBUFFER_BLUE_SIZE': 0x8D52,613 'RENDERBUFFER_ALPHA_SIZE': 0x8D53,614 'RENDERBUFFER_DEPTH_SIZE': 0x8D54,615 'RENDERBUFFER_STENCIL_SIZE': 0x8D55,616 'FRAMEBUFFER_INCOMPLETE_MULTISAMPLE': 0x8D56,617 'MAX_SAMPLES': 0x8D57,618 'FRAMEBUFFER_SRGB': 0x8DB9,619 'LINES_ADJACENCY_ARB': 0xA,620 'LINE_STRIP_ADJACENCY_ARB': 0xB,621 'TRIANGLES_ADJACENCY_ARB': 0xC,622 'TRIANGLE_STRIP_ADJACENCY_ARB': 0xD,623 'PROGRAM_POINT_SIZE_ARB': 0x8642,624 'MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB': 0x8C29,625 'FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER': 0x8CD4,626 'FRAMEBUFFER_ATTACHMENT_LAYERED_ARB': 0x8DA7,627 'FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB': 0x8DA8,628 'FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB': 0x8DA9,629 'GEOMETRY_SHADER_ARB': 0x8DD9,630 'GEOMETRY_VERTICES_OUT_ARB': 0x8DDA,631 'GEOMETRY_INPUT_TYPE_ARB': 0x8DDB,632 'GEOMETRY_OUTPUT_TYPE_ARB': 0x8DDC,633 'MAX_GEOMETRY_VARYING_COMPONENTS_ARB': 0x8DDD,634 'MAX_VERTEX_VARYING_COMPONENTS_ARB': 0x8DDE,635 'MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB': 0x8DDF,636 'MAX_GEOMETRY_OUTPUT_VERTICES_ARB': 0x8DE0,637 'MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB': 0x8DE1,638 'HALF_FLOAT_ARB': 0x140B,639 'HALF_FLOAT': 0x140B,640 'CONSTANT_COLOR': 0x8001,641 'ONE_MINUS_CONSTANT_COLOR': 0x8002,642 'CONSTANT_ALPHA': 0x8003,643 'ONE_MINUS_CONSTANT_ALPHA': 0x8004,644 'BLEND_COLOR': 0x8005,645 'FUNC_ADD': 0x8006,646 'MIN': 0x8007,647 'MAX': 0x8008,648 'BLEND_EQUATION': 0x8009,649 'FUNC_SUBTRACT': 0x800A,650 'FUNC_REVERSE_SUBTRACT': 0x800B,651 'CONVOLUTION_1D': 0x8010,652 'CONVOLUTION_2D': 0x8011,653 'SEPARABLE_2D': 0x8012,654 'CONVOLUTION_BORDER_MODE': 0x8013,655 'CONVOLUTION_FILTER_SCALE': 0x8014,656 'CONVOLUTION_FILTER_BIAS': 0x8015,657 'REDUCE': 0x8016,658 'CONVOLUTION_FORMAT': 0x8017,659 'CONVOLUTION_WIDTH': 0x8018,660 'CONVOLUTION_HEIGHT': 0x8019,661 'MAX_CONVOLUTION_WIDTH': 0x801A,662 'MAX_CONVOLUTION_HEIGHT': 0x801B,663 'POST_CONVOLUTION_RED_SCALE': 0x801C,664 'POST_CONVOLUTION_GREEN_SCALE': 0x801D,665 'POST_CONVOLUTION_BLUE_SCALE': 0x801E,666 'POST_CONVOLUTION_ALPHA_SCALE': 0x801F,667 'POST_CONVOLUTION_RED_BIAS': 0x8020,668 'POST_CONVOLUTION_GREEN_BIAS': 0x8021,669 'POST_CONVOLUTION_BLUE_BIAS': 0x8022,670 'POST_CONVOLUTION_ALPHA_BIAS': 0x8023,671 'HISTOGRAM': 0x8024,672 'PROXY_HISTOGRAM': 0x8025,673 'HISTOGRAM_WIDTH': 0x8026,674 'HISTOGRAM_FORMAT': 0x8027,675 'HISTOGRAM_RED_SIZE': 0x8028,676 'HISTOGRAM_GREEN_SIZE': 0x8029,677 'HISTOGRAM_BLUE_SIZE': 0x802A,678 'HISTOGRAM_ALPHA_SIZE': 0x802B,679 'HISTOGRAM_LUMINANCE_SIZE': 0x802C,680 'HISTOGRAM_SINK': 0x802D,681 'MINMAX': 0x802E,682 'MINMAX_FORMAT': 0x802F,683 'MINMAX_SINK': 0x8030,684 'TABLE_TOO_LARGE': 0x8031,685 'COLOR_MATRIX': 0x80B1,686 'COLOR_MATRIX_STACK_DEPTH': 0x80B2,687 'MAX_COLOR_MATRIX_STACK_DEPTH': 0x80B3,688 'POST_COLOR_MATRIX_RED_SCALE': 0x80B4,689 'POST_COLOR_MATRIX_GREEN_SCALE': 0x80B5,690 'POST_COLOR_MATRIX_BLUE_SCALE': 0x80B6,691 'POST_COLOR_MATRIX_ALPHA_SCALE': 0x80B7,692 'POST_COLOR_MATRIX_RED_BIAS': 0x80B8,693 'POST_COLOR_MATRIX_GREEN_BIAS': 0x80B9,694 'POST_COLOR_MATRIX_BLUE_BIAS': 0x80BA,695 'POST_COLOR_MATRIX_ALPHA_BIAS': 0x80BB,696 'COLOR_TABLE': 0x80D0,697 'POST_CONVOLUTION_COLOR_TABLE': 0x80D1,698 'POST_COLOR_MATRIX_COLOR_TABLE': 0x80D2,699 'PROXY_COLOR_TABLE': 0x80D3,700 'PROXY_POST_CONVOLUTION_COLOR_TABLE': 0x80D4,701 'PROXY_POST_COLOR_MATRIX_COLOR_TABLE': 0x80D5,702 'COLOR_TABLE_SCALE': 0x80D6,703 'COLOR_TABLE_BIAS': 0x80D7,704 'COLOR_TABLE_FORMAT': 0x80D8,705 'COLOR_TABLE_WIDTH': 0x80D9,706 'COLOR_TABLE_RED_SIZE': 0x80DA,707 'COLOR_TABLE_GREEN_SIZE': 0x80DB,708 'COLOR_TABLE_BLUE_SIZE': 0x80DC,709 'COLOR_TABLE_ALPHA_SIZE': 0x80DD,710 'COLOR_TABLE_LUMINANCE_SIZE': 0x80DE,711 'COLOR_TABLE_INTENSITY_SIZE': 0x80DF,712 'IGNORE_BORDER': 0x8150,713 'CONSTANT_BORDER': 0x8151,714 'WRAP_BORDER': 0x8152,715 'REPLICATE_BORDER': 0x8153,716 'CONVOLUTION_BORDER_COLOR': 0x8154,717 'VERTEX_ATTRIB_ARRAY_DIVISOR_ARB': 0x88FE,718 'MAP_READ_BIT': 0x0001,719 'MAP_WRITE_BIT': 0x0002,720 'MAP_INVALIDATE_RANGE_BIT': 0x0004,721 'MAP_INVALIDATE_BUFFER_BIT': 0x0008,722 'MAP_FLUSH_EXPLICIT_BIT': 0x0010,723 'MAP_UNSYNCHRONIZED_BIT': 0x0020,724 'MATRIX_PALETTE_ARB': 0x8840,725 'MAX_MATRIX_PALETTE_STACK_DEPTH_ARB': 0x8841,726 'MAX_PALETTE_MATRICES_ARB': 0x8842,727 'CURRENT_PALETTE_MATRIX_ARB': 0x8843,728 'MATRIX_INDEX_ARRAY_ARB': 0x8844,729 'CURRENT_MATRIX_INDEX_ARB': 0x8845,730 'MATRIX_INDEX_ARRAY_SIZE_ARB': 0x8846,731 'MATRIX_INDEX_ARRAY_TYPE_ARB': 0x8847,732 'MATRIX_INDEX_ARRAY_STRIDE_ARB': 0x8848,733 'MATRIX_INDEX_ARRAY_POINTER_ARB': 0x8849,734 'MULTISAMPLE_ARB': 0x809D,735 'SAMPLE_ALPHA_TO_COVERAGE_ARB': 0x809E,736 'SAMPLE_ALPHA_TO_ONE_ARB': 0x809F,737 'SAMPLE_COVERAGE_ARB': 0x80A0,738 'SAMPLE_BUFFERS_ARB': 0x80A8,739 'SAMPLES_ARB': 0x80A9,740 'SAMPLE_COVERAGE_VALUE_ARB': 0x80AA,741 'SAMPLE_COVERAGE_INVERT_ARB': 0x80AB,742 'MULTISAMPLE_BIT_ARB': 0x20000000,743 'TEXTURE0_ARB': 0x84C0,744 'TEXTURE1_ARB': 0x84C1,745 'TEXTURE2_ARB': 0x84C2,746 'TEXTURE3_ARB': 0x84C3,747 'TEXTURE4_ARB': 0x84C4,748 'TEXTURE5_ARB': 0x84C5,749 'TEXTURE6_ARB': 0x84C6,750 'TEXTURE7_ARB': 0x84C7,751 'TEXTURE8_ARB': 0x84C8,752 'TEXTURE9_ARB': 0x84C9,753 'TEXTURE10_ARB': 0x84CA,754 'TEXTURE11_ARB': 0x84CB,755 'TEXTURE12_ARB': 0x84CC,756 'TEXTURE13_ARB': 0x84CD,757 'TEXTURE14_ARB': 0x84CE,758 'TEXTURE15_ARB': 0x84CF,759 'TEXTURE16_ARB': 0x84D0,760 'TEXTURE17_ARB': 0x84D1,761 'TEXTURE18_ARB': 0x84D2,762 'TEXTURE19_ARB': 0x84D3,763 'TEXTURE20_ARB': 0x84D4,764 'TEXTURE21_ARB': 0x84D5,765 'TEXTURE22_ARB': 0x84D6,766 'TEXTURE23_ARB': 0x84D7,767 'TEXTURE24_ARB': 0x84D8,768 'TEXTURE25_ARB': 0x84D9,769 'TEXTURE26_ARB': 0x84DA,770 'TEXTURE27_ARB': 0x84DB,771 'TEXTURE28_ARB': 0x84DC,772 'TEXTURE29_ARB': 0x84DD,773 'TEXTURE30_ARB': 0x84DE,774 'TEXTURE31_ARB': 0x84DF,775 'ACTIVE_TEXTURE_ARB': 0x84E0,776 'CLIENT_ACTIVE_TEXTURE_ARB': 0x84E1,777 'MAX_TEXTURE_UNITS_ARB': 0x84E2,778 'QUERY_COUNTER_BITS_ARB': 0x8864,779 'CURRENT_QUERY_ARB': 0x8865,780 'QUERY_RESULT_ARB': 0x8866,781 'QUERY_RESULT_AVAILABLE_ARB': 0x8867,782 'SAMPLES_PASSED_ARB': 0x8914,783 'PIXEL_PACK_BUFFER_ARB': 0x88EB,784 'PIXEL_UNPACK_BUFFER_ARB': 0x88EC,785 'PIXEL_PACK_BUFFER_BINDING_ARB': 0x88ED,786 'PIXEL_UNPACK_BUFFER_BINDING_ARB': 0x88EF,787 'POINT_SIZE_MIN_ARB': 0x8126,788 'POINT_SIZE_MAX_ARB': 0x8127,789 'POINT_FADE_THRESHOLD_SIZE_ARB': 0x8128,790 'POINT_DISTANCE_ATTENUATION_ARB': 0x8129,791 'POINT_SPRITE_ARB': 0x8861,792 'COORD_REPLACE_ARB': 0x8862,793 'PROGRAM_OBJECT_ARB': 0x8B40,794 'SHADER_OBJECT_ARB': 0x8B48,795 'OBJECT_TYPE_ARB': 0x8B4E,796 'OBJECT_SUBTYPE_ARB': 0x8B4F,797 'FLOAT_VEC2_ARB': 0x8B50,798 'FLOAT_VEC3_ARB': 0x8B51,799 'FLOAT_VEC4_ARB': 0x8B52,800 'INT_VEC2_ARB': 0x8B53,801 'INT_VEC3_ARB': 0x8B54,802 'INT_VEC4_ARB': 0x8B55,803 'BOOL_ARB': 0x8B56,804 'BOOL_VEC2_ARB': 0x8B57,805 'BOOL_VEC3_ARB': 0x8B58,806 'BOOL_VEC4_ARB': 0x8B59,807 'FLOAT_MAT2_ARB': 0x8B5A,808 'FLOAT_MAT3_ARB': 0x8B5B,809 'FLOAT_MAT4_ARB': 0x8B5C,810 'SAMPLER_1D_ARB': 0x8B5D,811 'SAMPLER_2D_ARB': 0x8B5E,812 'SAMPLER_3D_ARB': 0x8B5F,813 'SAMPLER_CUBE_ARB': 0x8B60,814 'SAMPLER_1D_SHADOW_ARB': 0x8B61,815 'SAMPLER_2D_SHADOW_ARB': 0x8B62,816 'SAMPLER_2D_RECT_ARB': 0x8B63,817 'SAMPLER_2D_RECT_SHADOW_ARB': 0x8B64,818 'OBJECT_DELETE_STATUS_ARB': 0x8B80,819 'OBJECT_COMPILE_STATUS_ARB': 0x8B81,820 'OBJECT_LINK_STATUS_ARB': 0x8B82,821 'OBJECT_VALIDATE_STATUS_ARB': 0x8B83,822 'OBJECT_INFO_LOG_LENGTH_ARB': 0x8B84,823 'OBJECT_ATTACHED_OBJECTS_ARB': 0x8B85,824 'OBJECT_ACTIVE_UNIFORMS_ARB': 0x8B86,825 'OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB': 0x8B87,826 'OBJECT_SHADER_SOURCE_LENGTH_ARB': 0x8B88,827 'SHADING_LANGUAGE_VERSION_ARB': 0x8B8C,828 'TEXTURE_COMPARE_MODE_ARB': 0x884C,829 'TEXTURE_COMPARE_FUNC_ARB': 0x884D,830 'COMPARE_R_TO_TEXTURE_ARB': 0x884E,831 'TEXTURE_COMPARE_FAIL_VALUE_ARB': 0x80BF,832 'CLAMP_TO_BORDER_ARB': 0x812D,833 'TEXTURE_BUFFER_ARB': 0x8C2A,834 'MAX_TEXTURE_BUFFER_SIZE_ARB': 0x8C2B,835 'TEXTURE_BINDING_BUFFER_ARB': 0x8C2C,836 'TEXTURE_BUFFER_DATA_STORE_BINDING_ARB': 0x8C2D,837 'TEXTURE_BUFFER_FORMAT_ARB': 0x8C2E,838 'COMPRESSED_ALPHA_ARB': 0x84E9,839 'COMPRESSED_LUMINANCE_ARB': 0x84EA,840 'COMPRESSED_LUMINANCE_ALPHA_ARB': 0x84EB,841 'COMPRESSED_INTENSITY_ARB': 0x84EC,842 'COMPRESSED_RGB_ARB': 0x84ED,843 'COMPRESSED_RGBA_ARB': 0x84EE,844 'TEXTURE_COMPRESSION_HINT_ARB': 0x84EF,845 'TEXTURE_COMPRESSED_IMAGE_SIZE_ARB': 0x86A0,846 'TEXTURE_COMPRESSED_ARB': 0x86A1,847 'NUM_COMPRESSED_TEXTURE_FORMATS_ARB': 0x86A2,848 'COMPRESSED_TEXTURE_FORMATS_ARB': 0x86A3,849 'COMPRESSED_RED_RGTC1': 0x8DBB,850 'COMPRESSED_SIGNED_RED_RGTC1': 0x8DBC,851 'COMPRESSED_RG_RGTC2': 0x8DBD,852 'COMPRESSED_SIGNED_RG_RGTC2': 0x8DBE,853 'NORMAL_MAP_ARB': 0x8511,854 'REFLECTION_MAP_ARB': 0x8512,855 'TEXTURE_CUBE_MAP_ARB': 0x8513,856 'TEXTURE_BINDING_CUBE_MAP_ARB': 0x8514,857 'TEXTURE_CUBE_MAP_POSITIVE_X_ARB': 0x8515,858 'TEXTURE_CUBE_MAP_NEGATIVE_X_ARB': 0x8516,859 'TEXTURE_CUBE_MAP_POSITIVE_Y_ARB': 0x8517,860 'TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB': 0x8518,861 'TEXTURE_CUBE_MAP_POSITIVE_Z_ARB': 0x8519,862 'TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB': 0x851A,863 'PROXY_TEXTURE_CUBE_MAP_ARB': 0x851B,864 'MAX_CUBE_MAP_TEXTURE_SIZE_ARB': 0x851C,865 'SUBTRACT_ARB': 0x84E7,866 'COMBINE_ARB': 0x8570,867 'COMBINE_RGB_ARB': 0x8571,868 'COMBINE_ALPHA_ARB': 0x8572,869 'RGB_SCALE_ARB': 0x8573,870 'ADD_SIGNED_ARB': 0x8574,871 'INTERPOLATE_ARB': 0x8575,872 'CONSTANT_ARB': 0x8576,873 'PRIMARY_COLOR_ARB': 0x8577,874 'PREVIOUS_ARB': 0x8578,875 'SOURCE0_RGB_ARB': 0x8580,876 'SOURCE1_RGB_ARB': 0x8581,877 'SOURCE2_RGB_ARB': 0x8582,878 'SOURCE0_ALPHA_ARB': 0x8588,879 'SOURCE1_ALPHA_ARB': 0x8589,880 'SOURCE2_ALPHA_ARB': 0x858A,881 'OPERAND0_RGB_ARB': 0x8590,882 'OPERAND1_RGB_ARB': 0x8591,883 'OPERAND2_RGB_ARB': 0x8592,884 'OPERAND0_ALPHA_ARB': 0x8598,885 'OPERAND1_ALPHA_ARB': 0x8599,886 'OPERAND2_ALPHA_ARB': 0x859A,887 'DOT3_RGB_ARB': 0x86AE,888 'DOT3_RGBA_ARB': 0x86AF,889 'RGBA32F_ARB': 0x8814,890 'RGB32F_ARB': 0x8815,891 'ALPHA32F_ARB': 0x8816,892 'INTENSITY32F_ARB': 0x8817,893 'LUMINANCE32F_ARB': 0x8818,894 'LUMINANCE_ALPHA32F_ARB': 0x8819,895 'RGBA16F_ARB': 0x881A,896 'RGB16F_ARB': 0x881B,897 'ALPHA16F_ARB': 0x881C,898 'INTENSITY16F_ARB': 0x881D,899 'LUMINANCE16F_ARB': 0x881E,900 'LUMINANCE_ALPHA16F_ARB': 0x881F,901 'TEXTURE_RED_TYPE_ARB': 0x8C10,902 'TEXTURE_GREEN_TYPE_ARB': 0x8C11,903 'TEXTURE_BLUE_TYPE_ARB': 0x8C12,904 'TEXTURE_ALPHA_TYPE_ARB': 0x8C13,905 'TEXTURE_LUMINANCE_TYPE_ARB': 0x8C14,906 'TEXTURE_INTENSITY_TYPE_ARB': 0x8C15,907 'TEXTURE_DEPTH_TYPE_ARB': 0x8C16,908 'UNSIGNED_NORMALIZED_ARB': 0x8C17,909 'MIRRORED_REPEAT_ARB': 0x8370,910 'TEXTURE_RECTANGLE_ARB': 0x84F5,911 'TEXTURE_BINDING_RECTANGLE_ARB': 0x84F6,912 'PROXY_TEXTURE_RECTANGLE_ARB': 0x84F7,913 'MAX_RECTANGLE_TEXTURE_SIZE_ARB': 0x84F8,914 'SAMPLER_2D_RECT_ARB': 0x8B63,915 'SAMPLER_2D_RECT_SHADOW_ARB': 0x8B64,916 'RED': 0x1903,917 'RG': 0x8227,918 'RG_INTEGER': 0x8228,919 'R8': 0x8229,920 'R16': 0x822A,921 'RG8': 0x822B,922 'RG16': 0x822C,923 'R16F': 0x822D,924 'R32F': 0x822E,925 'RG16F': 0x822F,926 'RG32F': 0x8230,927 'R8I': 0x8231,928 'R8UI': 0x8232,929 'R16I': 0x8233,930 'R16UI': 0x8234,931 'R32I': 0x8235,932 'R32UI': 0x8236,933 'RG8I': 0x8237,934 'RG8UI': 0x8238,935 'RG16I': 0x8239,936 'RG16UI': 0x823A,937 'RG32I': 0x823B,938 'RG32UI': 0x823C,939 'TRANSPOSE_MODELVIEW_MATRIX_ARB': 0x84E3,940 'TRANSPOSE_PROJECTION_MATRIX_ARB': 0x84E4,941 'TRANSPOSE_TEXTURE_MATRIX_ARB': 0x84E5,942 'TRANSPOSE_COLOR_MATRIX_ARB': 0x84E6,943 'VERTEX_ARRAY_BINDING': 0x85B5,944 'MODELVIEW0_ARB': 0x1700,945 'MODELVIEW1_ARB': 0x850A,946 'MAX_VERTEX_UNITS_ARB': 0x86A4,947 'ACTIVE_VERTEX_UNITS_ARB': 0x86A5,948 'WEIGHT_SUM_UNITY_ARB': 0x86A6,949 'VERTEX_BLEND_ARB': 0x86A7,950 'CURRENT_WEIGHT_ARB': 0x86A8,951 'WEIGHT_ARRAY_TYPE_ARB': 0x86A9,952 'WEIGHT_ARRAY_STRIDE_ARB': 0x86AA,953 'WEIGHT_ARRAY_SIZE_ARB': 0x86AB,954 'WEIGHT_ARRAY_POINTER_ARB': 0x86AC,955 'WEIGHT_ARRAY_ARB': 0x86AD,956 'MODELVIEW2_ARB': 0x8722,957 'MODELVIEW3_ARB': 0x8723,958 'MODELVIEW4_ARB': 0x8724,959 'MODELVIEW5_ARB': 0x8725,960 'MODELVIEW6_ARB': 0x8726,961 'MODELVIEW7_ARB': 0x8727,962 'MODELVIEW8_ARB': 0x8728,963 'MODELVIEW9_ARB': 0x8729,964 'MODELVIEW10_ARB': 0x872A,965 'MODELVIEW11_ARB': 0x872B,966 'MODELVIEW12_ARB': 0x872C,967 'MODELVIEW13_ARB': 0x872D,968 'MODELVIEW14_ARB': 0x872E,969 'MODELVIEW15_ARB': 0x872F,970 'MODELVIEW16_ARB': 0x8730,971 'MODELVIEW17_ARB': 0x8731,972 'MODELVIEW18_ARB': 0x8732,973 'MODELVIEW19_ARB': 0x8733,974 'MODELVIEW20_ARB': 0x8734,975 'MODELVIEW21_ARB': 0x8735,976 'MODELVIEW22_ARB': 0x8736,977 'MODELVIEW23_ARB': 0x8737,978 'MODELVIEW24_ARB': 0x8738,979 'MODELVIEW25_ARB': 0x8739,980 'MODELVIEW26_ARB': 0x873A,981 'MODELVIEW27_ARB': 0x873B,982 'MODELVIEW28_ARB': 0x873C,983 'MODELVIEW29_ARB': 0x873D,984 'MODELVIEW30_ARB': 0x873E,985 'MODELVIEW31_ARB': 0x873F,986 'BUFFER_SIZE_ARB': 0x8764,987 'BUFFER_USAGE_ARB': 0x8765,988 'ARRAY_BUFFER_ARB': 0x8892,989 'ELEMENT_ARRAY_BUFFER_ARB': 0x8893,990 'ARRAY_BUFFER_BINDING_ARB': 0x8894,991 'ELEMENT_ARRAY_BUFFER_BINDING_ARB': 0x8895,992 'VERTEX_ARRAY_BUFFER_BINDING_ARB': 0x8896,993 'NORMAL_ARRAY_BUFFER_BINDING_ARB': 0x8897,994 'COLOR_ARRAY_BUFFER_BINDING_ARB': 0x8898,995 'INDEX_ARRAY_BUFFER_BINDING_ARB': 0x8899,996 'TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB': 0x889A,997 'EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB': 0x889B,998 'SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB': 0x889C,999 'FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB': 0x889D,1000 'WEIGHT_ARRAY_BUFFER_BINDING_ARB': 0x889E,1001 'VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB': 0x889F,1002 'READ_ONLY_ARB': 0x88B8,1003 'WRITE_ONLY_ARB': 0x88B9,1004 'READ_WRITE_ARB': 0x88BA,1005 'BUFFER_ACCESS_ARB': 0x88BB,1006 'BUFFER_MAPPED_ARB': 0x88BC,1007 'BUFFER_MAP_POINTER_ARB': 0x88BD,1008 'STREAM_DRAW_ARB': 0x88E0,1009 'STREAM_READ_ARB': 0x88E1,1010 'STREAM_COPY_ARB': 0x88E2,1011 'STATIC_DRAW_ARB': 0x88E4,1012 'STATIC_READ_ARB': 0x88E5,1013 'STATIC_COPY_ARB': 0x88E6,1014 'DYNAMIC_DRAW_ARB': 0x88E8,1015 'DYNAMIC_READ_ARB': 0x88E9,1016 'DYNAMIC_COPY_ARB': 0x88EA,1017 'COLOR_SUM_ARB': 0x8458,1018 'VERTEX_PROGRAM_ARB': 0x8620,1019 'VERTEX_ATTRIB_ARRAY_ENABLED_ARB': 0x8622,1020 'VERTEX_ATTRIB_ARRAY_SIZE_ARB': 0x8623,1021 'VERTEX_ATTRIB_ARRAY_STRIDE_ARB': 0x8624,1022 'VERTEX_ATTRIB_ARRAY_TYPE_ARB': 0x8625,1023 'CURRENT_VERTEX_ATTRIB_ARB': 0x8626,1024 'PROGRAM_LENGTH_ARB': 0x8627,1025 'PROGRAM_STRING_ARB': 0x8628,1026 'MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB': 0x862E,1027 'MAX_PROGRAM_MATRICES_ARB': 0x862F,1028 'CURRENT_MATRIX_STACK_DEPTH_ARB': 0x8640,1029 'CURRENT_MATRIX_ARB': 0x8641,1030 'VERTEX_PROGRAM_POINT_SIZE_ARB': 0x8642,1031 'VERTEX_PROGRAM_TWO_SIDE_ARB': 0x8643,1032 'VERTEX_ATTRIB_ARRAY_POINTER_ARB': 0x8645,1033 'PROGRAM_ERROR_POSITION_ARB': 0x864B,1034 'PROGRAM_BINDING_ARB': 0x8677,1035 'MAX_VERTEX_ATTRIBS_ARB': 0x8869,1036 'VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB': 0x886A,1037 'PROGRAM_ERROR_STRING_ARB': 0x8874,1038 'PROGRAM_FORMAT_ASCII_ARB': 0x8875,1039 'PROGRAM_FORMAT_ARB': 0x8876,1040 'PROGRAM_INSTRUCTIONS_ARB': 0x88A0,1041 'MAX_PROGRAM_INSTRUCTIONS_ARB': 0x88A1,1042 'PROGRAM_NATIVE_INSTRUCTIONS_ARB': 0x88A2,1043 'MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB': 0x88A3,1044 'PROGRAM_TEMPORARIES_ARB': 0x88A4,1045 'MAX_PROGRAM_TEMPORARIES_ARB': 0x88A5,1046 'PROGRAM_NATIVE_TEMPORARIES_ARB': 0x88A6,1047 'MAX_PROGRAM_NATIVE_TEMPORARIES_ARB': 0x88A7,1048 'PROGRAM_PARAMETERS_ARB': 0x88A8,1049 'MAX_PROGRAM_PARAMETERS_ARB': 0x88A9,1050 'PROGRAM_NATIVE_PARAMETERS_ARB': 0x88AA,1051 'MAX_PROGRAM_NATIVE_PARAMETERS_ARB': 0x88AB,1052 'PROGRAM_ATTRIBS_ARB': 0x88AC,1053 'MAX_PROGRAM_ATTRIBS_ARB': 0x88AD,1054 'PROGRAM_NATIVE_ATTRIBS_ARB': 0x88AE,1055 'MAX_PROGRAM_NATIVE_ATTRIBS_ARB': 0x88AF,1056 'PROGRAM_ADDRESS_REGISTERS_ARB': 0x88B0,1057 'MAX_PROGRAM_ADDRESS_REGISTERS_ARB': 0x88B1,1058 'PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB': 0x88B2,1059 'MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB': 0x88B3,1060 'MAX_PROGRAM_LOCAL_PARAMETERS_ARB': 0x88B4,1061 'MAX_PROGRAM_ENV_PARAMETERS_ARB': 0x88B5,1062 'PROGRAM_UNDER_NATIVE_LIMITS_ARB': 0x88B6,1063 'TRANSPOSE_CURRENT_MATRIX_ARB': 0x88B7,1064 'MATRIX0_ARB': 0x88C0,1065 'MATRIX1_ARB': 0x88C1,1066 'MATRIX2_ARB': 0x88C2,1067 'MATRIX3_ARB': 0x88C3,1068 'MATRIX4_ARB': 0x88C4,1069 'MATRIX5_ARB': 0x88C5,1070 'MATRIX6_ARB': 0x88C6,1071 'MATRIX7_ARB': 0x88C7,1072 'MATRIX8_ARB': 0x88C8,1073 'MATRIX9_ARB': 0x88C9,1074 'MATRIX10_ARB': 0x88CA,1075 'MATRIX11_ARB': 0x88CB,1076 'MATRIX12_ARB': 0x88CC,1077 'MATRIX13_ARB': 0x88CD,1078 'MATRIX14_ARB': 0x88CE,1079 'MATRIX15_ARB': 0x88CF,1080 'MATRIX16_ARB': 0x88D0,1081 'MATRIX17_ARB': 0x88D1,1082 'MATRIX18_ARB': 0x88D2,1083 'MATRIX19_ARB': 0x88D3,1084 'MATRIX20_ARB': 0x88D4,1085 'MATRIX21_ARB': 0x88D5,1086 'MATRIX22_ARB': 0x88D6,1087 'MATRIX23_ARB': 0x88D7,1088 'MATRIX24_ARB': 0x88D8,1089 'MATRIX25_ARB': 0x88D9,1090 'MATRIX26_ARB': 0x88DA,1091 'MATRIX27_ARB': 0x88DB,1092 'MATRIX28_ARB': 0x88DC,1093 'MATRIX29_ARB': 0x88DD,1094 'MATRIX30_ARB': 0x88DE,1095 'MATRIX31_ARB': 0x88DF,1096 'VERTEX_SHADER_ARB': 0x8B31,1097 'MAX_VERTEX_UNIFORM_COMPONENTS_ARB': 0x8B4A,1098 'MAX_VARYING_FLOATS_ARB': 0x8B4B,1099 'MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB': 0x8B4C,1100 'MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB': 0x8B4D,1101 'OBJECT_ACTIVE_ATTRIBUTES_ARB': 0x8B89,1102 'OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB': 0x8B8A,1103 'TEXTURE_POINT_MODE_ATIX': 0x60B0,1104 'TEXTURE_POINT_ONE_COORD_ATIX': 0x60B1,1105 'TEXTURE_POINT_SPRITE_ATIX': 0x60B2,1106 'POINT_SPRITE_CULL_MODE_ATIX': 0x60B3,1107 'POINT_SPRITE_CULL_CENTER_ATIX': 0x60B4,1108 'POINT_SPRITE_CULL_CLIP_ATIX': 0x60B5,1109 'MODULATE_ADD_ATIX': 0x8744,1110 'MODULATE_SIGNED_ADD_ATIX': 0x8745,1111 'MODULATE_SUBTRACT_ATIX': 0x8746,1112 'SECONDARY_COLOR_ATIX': 0x8747,1113 'TEXTURE_OUTPUT_RGB_ATIX': 0x8748,1114 'TEXTURE_OUTPUT_ALPHA_ATIX': 0x8749,1115 'OUTPUT_POINT_SIZE_ATIX': 0x610E,1116 'MAX_DRAW_BUFFERS_ATI': 0x8824,1117 'DRAW_BUFFER0_ATI': 0x8825,1118 'DRAW_BUFFER1_ATI': 0x8826,1119 'DRAW_BUFFER2_ATI': 0x8827,1120 'DRAW_BUFFER3_ATI': 0x8828,1121 'DRAW_BUFFER4_ATI': 0x8829,1122 'DRAW_BUFFER5_ATI': 0x882A,1123 'DRAW_BUFFER6_ATI': 0x882B,1124 'DRAW_BUFFER7_ATI': 0x882C,1125 'DRAW_BUFFER8_ATI': 0x882D,1126 'DRAW_BUFFER9_ATI': 0x882E,1127 'DRAW_BUFFER10_ATI': 0x882F,1128 'DRAW_BUFFER11_ATI': 0x8830,1129 'DRAW_BUFFER12_ATI': 0x8831,1130 'DRAW_BUFFER13_ATI': 0x8832,1131 'DRAW_BUFFER14_ATI': 0x8833,1132 'DRAW_BUFFER15_ATI': 0x8834,1133 'ELEMENT_ARRAY_ATI': 0x8768,1134 'ELEMENT_ARRAY_TYPE_ATI': 0x8769,1135 'ELEMENT_ARRAY_POINTER_ATI': 0x876A,1136 'BUMP_ROT_MATRIX_ATI': 0x8775,1137 'BUMP_ROT_MATRIX_SIZE_ATI': 0x8776,1138 'BUMP_NUM_TEX_UNITS_ATI': 0x8777,1139 'BUMP_TEX_UNITS_ATI': 0x8778,1140 'DUDV_ATI': 0x8779,1141 'DU8DV8_ATI': 0x877A,1142 'BUMP_ENVMAP_ATI': 0x877B,1143 'BUMP_TARGET_ATI': 0x877C,1144 'RED_BIT_ATI': 0x00000001,1145 '2X_BIT_ATI': 0x00000001,1146 '4X_BIT_ATI': 0x00000002,1147 'GREEN_BIT_ATI': 0x00000002,1148 'COMP_BIT_ATI': 0x00000002,1149 'BLUE_BIT_ATI': 0x00000004,1150 '8X_BIT_ATI': 0x00000004,1151 'NEGATE_BIT_ATI': 0x00000004,1152 'BIAS_BIT_ATI': 0x00000008,1153 'HALF_BIT_ATI': 0x00000008,1154 'QUARTER_BIT_ATI': 0x00000010,1155 'EIGHTH_BIT_ATI': 0x00000020,1156 'SATURATE_BIT_ATI': 0x00000040,1157 'FRAGMENT_SHADER_ATI': 0x8920,1158 'REG_0_ATI': 0x8921,1159 'REG_1_ATI': 0x8922,1160 'REG_2_ATI': 0x8923,1161 'REG_3_ATI': 0x8924,1162 'REG_4_ATI': 0x8925,1163 'REG_5_ATI': 0x8926,1164 'CON_0_ATI': 0x8941,1165 'CON_1_ATI': 0x8942,1166 'CON_2_ATI': 0x8943,1167 'CON_3_ATI': 0x8944,1168 'CON_4_ATI': 0x8945,1169 'CON_5_ATI': 0x8946,1170 'CON_6_ATI': 0x8947,1171 'CON_7_ATI': 0x8948,1172 'MOV_ATI': 0x8961,1173 'ADD_ATI': 0x8963,1174 'MUL_ATI': 0x8964,1175 'SUB_ATI': 0x8965,1176 'DOT3_ATI': 0x8966,1177 'DOT4_ATI': 0x8967,1178 'MAD_ATI': 0x8968,1179 'LERP_ATI': 0x8969,1180 'CND_ATI': 0x896A,1181 'CND0_ATI': 0x896B,1182 'DOT2_ADD_ATI': 0x896C,1183 'SECONDARY_INTERPOLATOR_ATI': 0x896D,1184 'NUM_FRAGMENT_REGISTERS_ATI': 0x896E,1185 'NUM_FRAGMENT_CONSTANTS_ATI': 0x896F,1186 'NUM_PASSES_ATI': 0x8970,1187 'NUM_INSTRUCTIONS_PER_PASS_ATI': 0x8971,1188 'NUM_INSTRUCTIONS_TOTAL_ATI': 0x8972,1189 'NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI': 0x8973,1190 'NUM_LOOPBACK_COMPONENTS_ATI': 0x8974,1191 'COLOR_ALPHA_PAIRING_ATI': 0x8975,1192 'SWIZZLE_STR_ATI': 0x8976,1193 'SWIZZLE_STQ_ATI': 0x8977,1194 'SWIZZLE_STR_DR_ATI': 0x8978,1195 'SWIZZLE_STQ_DQ_ATI': 0x8979,1196 'SWIZZLE_STRQ_ATI': 0x897A,1197 'SWIZZLE_STRQ_DQ_ATI': 0x897B,1198 'PN_TRIANGLES_ATI': 0x87F0,1199 'MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI': 0x87F1,1200 'PN_TRIANGLES_POINT_MODE_ATI': 0x87F2,1201 'PN_TRIANGLES_NORMAL_MODE_ATI': 0x87F3,1202 'PN_TRIANGLES_TESSELATION_LEVEL_ATI': 0x87F4,1203 'PN_TRIANGLES_POINT_MODE_LINEAR_ATI': 0x87F5,1204 'PN_TRIANGLES_POINT_MODE_CUBIC_ATI': 0x87F6,1205 'PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI': 0x87F7,1206 'PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI': 0x87F8,1207 'STENCIL_BACK_FUNC_ATI': 0x8800,1208 'STENCIL_BACK_FAIL_ATI': 0x8801,1209 'STENCIL_BACK_PASS_DEPTH_FAIL_ATI': 0x8802,1210 'STENCIL_BACK_PASS_DEPTH_PASS_ATI': 0x8803,1211 'TEXT_FRAGMENT_SHADER_ATI': 0x8200,1212 'COMPRESSED_LUMINANCE_ALPHA_3DC_ATI': 0x8837,1213 'MODULATE_ADD_ATI': 0x8744,1214 'MODULATE_SIGNED_ADD_ATI': 0x8745,1215 'MODULATE_SUBTRACT_ATI': 0x8746,1216 'RGBA_FLOAT32_ATI': 0x8814,1217 'RGB_FLOAT32_ATI': 0x8815,1218 'ALPHA_FLOAT32_ATI': 0x8816,1219 'INTENSITY_FLOAT32_ATI': 0x8817,1220 'LUMINANCE_FLOAT32_ATI': 0x8818,1221 'LUMINANCE_ALPHA_FLOAT32_ATI': 0x8819,1222 'RGBA_FLOAT16_ATI': 0x881A,1223 'RGB_FLOAT16_ATI': 0x881B,1224 'ALPHA_FLOAT16_ATI': 0x881C,1225 'INTENSITY_FLOAT16_ATI': 0x881D,1226 'LUMINANCE_FLOAT16_ATI': 0x881E,1227 'LUMINANCE_ALPHA_FLOAT16_ATI': 0x881F,1228 'MIRROR_CLAMP_ATI': 0x8742,1229 'MIRROR_CLAMP_TO_EDGE_ATI': 0x8743,1230 'STATIC_ATI': 0x8760,1231 'DYNAMIC_ATI': 0x8761,1232 'PRESERVE_ATI': 0x8762,1233 'DISCARD_ATI': 0x8763,1234 'OBJECT_BUFFER_SIZE_ATI': 0x8764,1235 'OBJECT_BUFFER_USAGE_ATI': 0x8765,1236 'ARRAY_OBJECT_BUFFER_ATI': 0x8766,1237 'ARRAY_OBJECT_OFFSET_ATI': 0x8767,1238 'MAX_VERTEX_STREAMS_ATI': 0x876B,1239 'VERTEX_SOURCE_ATI': 0x876C,1240 'VERTEX_STREAM0_ATI': 0x876D,1241 'VERTEX_STREAM1_ATI': 0x876E,1242 'VERTEX_STREAM2_ATI': 0x876F,1243 'VERTEX_STREAM3_ATI': 0x8770,1244 'VERTEX_STREAM4_ATI': 0x8771,1245 'VERTEX_STREAM5_ATI': 0x8772,1246 'VERTEX_STREAM6_ATI': 0x8773,1247 'VERTEX_STREAM7_ATI': 0x8774,1248 '422_EXT': 0x80CC,1249 '422_REV_EXT': 0x80CD,1250 '422_AVERAGE_EXT': 0x80CE,1251 '422_REV_AVERAGE_EXT': 0x80CF,1252 'CG_VERTEX_SHADER_EXT': 0x890E,1253 'CG_FRAGMENT_SHADER_EXT': 0x890F,1254 'ABGR_EXT': 0x8000,1255 'BGR_EXT': 0x80E0,1256 'BGRA_EXT': 0x80E1,1257 'MAX_VERTEX_BINDABLE_UNIFORMS_EXT': 0x8DE2,1258 'MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT': 0x8DE3,1259 'MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT': 0x8DE4,1260 'MAX_BINDABLE_UNIFORM_SIZE_EXT': 0x8DED,1261 'UNIFORM_BUFFER_EXT': 0x8DEE,1262 'UNIFORM_BUFFER_BINDING_EXT': 0x8DEF,1263 'CONSTANT_COLOR_EXT': 0x8001,1264 'ONE_MINUS_CONSTANT_COLOR_EXT': 0x8002,1265 'CONSTANT_ALPHA_EXT': 0x8003,1266 'ONE_MINUS_CONSTANT_ALPHA_EXT': 0x8004,1267 'BLEND_COLOR_EXT': 0x8005,1268 'BLEND_EQUATION_RGB_EXT': 0x8009,1269 'BLEND_EQUATION_ALPHA_EXT': 0x883D,1270 'BLEND_DST_RGB_EXT': 0x80C8,1271 'BLEND_SRC_RGB_EXT': 0x80C9,1272 'BLEND_DST_ALPHA_EXT': 0x80CA,1273 'BLEND_SRC_ALPHA_EXT': 0x80CB,1274 'FUNC_ADD_EXT': 0x8006,1275 'MIN_EXT': 0x8007,1276 'MAX_EXT': 0x8008,1277 'BLEND_EQUATION_EXT': 0x8009,1278 'FUNC_SUBTRACT_EXT': 0x800A,1279 'FUNC_REVERSE_SUBTRACT_EXT': 0x800B,1280 'CLIP_VOLUME_CLIPPING_HINT_EXT': 0x80F0,1281 'CMYK_EXT': 0x800C,1282 'CMYKA_EXT': 0x800D,1283 'PACK_CMYK_HINT_EXT': 0x800E,1284 'UNPACK_CMYK_HINT_EXT': 0x800F,1285 'ARRAY_ELEMENT_LOCK_FIRST_EXT': 0x81A8,1286 'ARRAY_ELEMENT_LOCK_COUNT_EXT': 0x81A9,1287 'CONVOLUTION_1D_EXT': 0x8010,1288 'CONVOLUTION_2D_EXT': 0x8011,1289 'SEPARABLE_2D_EXT': 0x8012,1290 'CONVOLUTION_BORDER_MODE_EXT': 0x8013,1291 'CONVOLUTION_FILTER_SCALE_EXT': 0x8014,1292 'CONVOLUTION_FILTER_BIAS_EXT': 0x8015,1293 'REDUCE_EXT': 0x8016,1294 'CONVOLUTION_FORMAT_EXT': 0x8017,1295 'CONVOLUTION_WIDTH_EXT': 0x8018,1296 'CONVOLUTION_HEIGHT_EXT': 0x8019,1297 'MAX_CONVOLUTION_WIDTH_EXT': 0x801A,1298 'MAX_CONVOLUTION_HEIGHT_EXT': 0x801B,1299 'POST_CONVOLUTION_RED_SCALE_EXT': 0x801C,1300 'POST_CONVOLUTION_GREEN_SCALE_EXT': 0x801D,1301 'POST_CONVOLUTION_BLUE_SCALE_EXT': 0x801E,1302 'POST_CONVOLUTION_ALPHA_SCALE_EXT': 0x801F,1303 'POST_CONVOLUTION_RED_BIAS_EXT': 0x8020,1304 'POST_CONVOLUTION_GREEN_BIAS_EXT': 0x8021,1305 'POST_CONVOLUTION_BLUE_BIAS_EXT': 0x8022,1306 'POST_CONVOLUTION_ALPHA_BIAS_EXT': 0x8023,1307 'TANGENT_ARRAY_EXT': 0x8439,1308 'BINORMAL_ARRAY_EXT': 0x843A,1309 'CURRENT_TANGENT_EXT': 0x843B,1310 'CURRENT_BINORMAL_EXT': 0x843C,1311 'TANGENT_ARRAY_TYPE_EXT': 0x843E,1312 'TANGENT_ARRAY_STRIDE_EXT': 0x843F,1313 'BINORMAL_ARRAY_TYPE_EXT': 0x8440,1314 'BINORMAL_ARRAY_STRIDE_EXT': 0x8441,1315 'TANGENT_ARRAY_POINTER_EXT': 0x8442,1316 'BINORMAL_ARRAY_POINTER_EXT': 0x8443,1317 'MAP1_TANGENT_EXT': 0x8444,1318 'MAP2_TANGENT_EXT': 0x8445,1319 'MAP1_BINORMAL_EXT': 0x8446,1320 'MAP2_BINORMAL_EXT': 0x8447,1321 'DEPTH_BOUNDS_TEST_EXT': 0x8890,1322 'DEPTH_BOUNDS_EXT': 0x8891,1323 'PROGRAM_MATRIX_EXT': 0x8E2D,1324 'TRANSPOSE_PROGRAM_MATRIX_EXT': 0x8E2E,1325 'PROGRAM_MATRIX_STACK_DEPTH_EXT': 0x8E2F,1326 'MAX_ELEMENTS_VERTICES': 0x80E8,1327 'MAX_ELEMENTS_INDICES': 0x80E9,1328 'FOG_COORDINATE_SOURCE_EXT': 0x8450,1329 'FOG_COORDINATE_EXT': 0x8451,1330 'FRAGMENT_DEPTH_EXT': 0x8452,1331 'CURRENT_FOG_COORDINATE_EXT': 0x8453,1332 'FOG_COORDINATE_ARRAY_TYPE_EXT': 0x8454,1333 'FOG_COORDINATE_ARRAY_STRIDE_EXT': 0x8455,1334 'FOG_COORDINATE_ARRAY_POINTER_EXT': 0x8456,1335 'FOG_COORDINATE_ARRAY_EXT': 0x8457,1336 'FRAGMENT_LIGHTING_EXT': 0x8400,1337 'FRAGMENT_COLOR_MATERIAL_EXT': 0x8401,1338 'FRAGMENT_COLOR_MATERIAL_FACE_EXT': 0x8402,1339 'FRAGMENT_COLOR_MATERIAL_PARAMETER_EXT': 0x8403,1340 'MAX_FRAGMENT_LIGHTS_EXT': 0x8404,1341 'MAX_ACTIVE_LIGHTS_EXT': 0x8405,1342 'CURRENT_RASTER_NORMAL_EXT': 0x8406,1343 'LIGHT_ENV_MODE_EXT': 0x8407,1344 'FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_EXT': 0x8408,1345 'FRAGMENT_LIGHT_MODEL_TWO_SIDE_EXT': 0x8409,1346 'FRAGMENT_LIGHT_MODEL_AMBIENT_EXT': 0x840A,1347 'FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_EXT': 0x840B,1348 'FRAGMENT_LIGHT0_EXT': 0x840C,1349 'FRAGMENT_LIGHT7_EXT': 0x8413,1350 'DRAW_FRAMEBUFFER_BINDING_EXT': 0x8CA6,1351 'READ_FRAMEBUFFER_EXT': 0x8CA8,1352 'DRAW_FRAMEBUFFER_EXT': 0x8CA9,1353 'READ_FRAMEBUFFER_BINDING_EXT': 0x8CAA,1354 'RENDERBUFFER_SAMPLES_EXT': 0x8CAB,1355 'FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT': 0x8D56,1356 'MAX_SAMPLES_EXT': 0x8D57,1357 'INVALID_FRAMEBUFFER_OPERATION_EXT': 0x0506,1358 'MAX_RENDERBUFFER_SIZE_EXT': 0x84E8,1359 'FRAMEBUFFER_BINDING_EXT': 0x8CA6,1360 'RENDERBUFFER_BINDING_EXT': 0x8CA7,1361 'FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT': 0x8CD0,1362 'FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT': 0x8CD1,1363 'FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT': 0x8CD2,1364 'FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT': 0x8CD3,1365 'FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT': 0x8CD4,1366 'FRAMEBUFFER_COMPLETE_EXT': 0x8CD5,1367 'FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT': 0x8CD6,1368 'FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT': 0x8CD7,1369 'FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT': 0x8CD9,1370 'FRAMEBUFFER_INCOMPLETE_FORMATS_EXT': 0x8CDA,1371 'FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT': 0x8CDB,1372 'FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT': 0x8CDC,1373 'FRAMEBUFFER_UNSUPPORTED_EXT': 0x8CDD,1374 'MAX_COLOR_ATTACHMENTS_EXT': 0x8CDF,1375 'COLOR_ATTACHMENT0_EXT': 0x8CE0,1376 'COLOR_ATTACHMENT1_EXT': 0x8CE1,1377 'COLOR_ATTACHMENT2_EXT': 0x8CE2,1378 'COLOR_ATTACHMENT3_EXT': 0x8CE3,1379 'COLOR_ATTACHMENT4_EXT': 0x8CE4,1380 'COLOR_ATTACHMENT5_EXT': 0x8CE5,1381 'COLOR_ATTACHMENT6_EXT': 0x8CE6,1382 'COLOR_ATTACHMENT7_EXT': 0x8CE7,1383 'COLOR_ATTACHMENT8_EXT': 0x8CE8,1384 'COLOR_ATTACHMENT9_EXT': 0x8CE9,1385 'COLOR_ATTACHMENT10_EXT': 0x8CEA,1386 'COLOR_ATTACHMENT11_EXT': 0x8CEB,1387 'COLOR_ATTACHMENT12_EXT': 0x8CEC,1388 'COLOR_ATTACHMENT13_EXT': 0x8CED,1389 'COLOR_ATTACHMENT14_EXT': 0x8CEE,1390 'COLOR_ATTACHMENT15_EXT': 0x8CEF,1391 'DEPTH_ATTACHMENT_EXT': 0x8D00,1392 'STENCIL_ATTACHMENT_EXT': 0x8D20,1393 'FRAMEBUFFER_EXT': 0x8D40,1394 'RENDERBUFFER_EXT': 0x8D41,1395 'RENDERBUFFER_WIDTH_EXT': 0x8D42,1396 'RENDERBUFFER_HEIGHT_EXT': 0x8D43,1397 'RENDERBUFFER_INTERNAL_FORMAT_EXT': 0x8D44,1398 'STENCIL_INDEX1_EXT': 0x8D46,1399 'STENCIL_INDEX4_EXT': 0x8D47,1400 'STENCIL_INDEX8_EXT': 0x8D48,1401 'STENCIL_INDEX16_EXT': 0x8D49,1402 'RENDERBUFFER_RED_SIZE_EXT': 0x8D50,1403 'RENDERBUFFER_GREEN_SIZE_EXT': 0x8D51,1404 'RENDERBUFFER_BLUE_SIZE_EXT': 0x8D52,1405 'RENDERBUFFER_ALPHA_SIZE_EXT': 0x8D53,1406 'RENDERBUFFER_DEPTH_SIZE_EXT': 0x8D54,1407 'RENDERBUFFER_STENCIL_SIZE_EXT': 0x8D55,1408 'FRAMEBUFFER_SRGB_EXT': 0x8DB9,1409 'FRAMEBUFFER_SRGB_CAPABLE_EXT': 0x8DBA,1410 'LINES_ADJACENCY_EXT': 0xA,1411 'LINE_STRIP_ADJACENCY_EXT': 0xB,1412 'TRIANGLES_ADJACENCY_EXT': 0xC,1413 'TRIANGLE_STRIP_ADJACENCY_EXT': 0xD,1414 'PROGRAM_POINT_SIZE_EXT': 0x8642,1415 'MAX_VARYING_COMPONENTS_EXT': 0x8B4B,1416 'MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT': 0x8C29,1417 'FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT': 0x8CD4,1418 'FRAMEBUFFER_ATTACHMENT_LAYERED_EXT': 0x8DA7,1419 'FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT': 0x8DA8,1420 'FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT': 0x8DA9,1421 'GEOMETRY_SHADER_EXT': 0x8DD9,1422 'GEOMETRY_VERTICES_OUT_EXT': 0x8DDA,1423 'GEOMETRY_INPUT_TYPE_EXT': 0x8DDB,1424 'GEOMETRY_OUTPUT_TYPE_EXT': 0x8DDC,1425 'MAX_GEOMETRY_VARYING_COMPONENTS_EXT': 0x8DDD,1426 'MAX_VERTEX_VARYING_COMPONENTS_EXT': 0x8DDE,1427 'MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT': 0x8DDF,1428 'MAX_GEOMETRY_OUTPUT_VERTICES_EXT': 0x8DE0,1429 'MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT': 0x8DE1,1430 'VERTEX_ATTRIB_ARRAY_INTEGER_EXT': 0x88FD,1431 'SAMPLER_1D_ARRAY_EXT': 0x8DC0,1432 'SAMPLER_2D_ARRAY_EXT': 0x8DC1,1433 'SAMPLER_BUFFER_EXT': 0x8DC2,1434 'SAMPLER_1D_ARRAY_SHADOW_EXT': 0x8DC3,1435 'SAMPLER_2D_ARRAY_SHADOW_EXT': 0x8DC4,1436 'SAMPLER_CUBE_SHADOW_EXT': 0x8DC5,1437 'UNSIGNED_INT_VEC2_EXT': 0x8DC6,1438 'UNSIGNED_INT_VEC3_EXT': 0x8DC7,1439 'UNSIGNED_INT_VEC4_EXT': 0x8DC8,1440 'INT_SAMPLER_1D_EXT': 0x8DC9,1441 'INT_SAMPLER_2D_EXT': 0x8DCA,1442 'INT_SAMPLER_3D_EXT': 0x8DCB,1443 'INT_SAMPLER_CUBE_EXT': 0x8DCC,1444 'INT_SAMPLER_2D_RECT_EXT': 0x8DCD,1445 'INT_SAMPLER_1D_ARRAY_EXT': 0x8DCE,1446 'INT_SAMPLER_2D_ARRAY_EXT': 0x8DCF,1447 'INT_SAMPLER_BUFFER_EXT': 0x8DD0,1448 'UNSIGNED_INT_SAMPLER_1D_EXT': 0x8DD1,1449 'UNSIGNED_INT_SAMPLER_2D_EXT': 0x8DD2,1450 'UNSIGNED_INT_SAMPLER_3D_EXT': 0x8DD3,1451 'UNSIGNED_INT_SAMPLER_CUBE_EXT': 0x8DD4,1452 'UNSIGNED_INT_SAMPLER_2D_RECT_EXT': 0x8DD5,1453 'UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT': 0x8DD6,1454 'UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT': 0x8DD7,1455 'UNSIGNED_INT_SAMPLER_BUFFER_EXT': 0x8DD8,1456 'HISTOGRAM_EXT': 0x8024,1457 'PROXY_HISTOGRAM_EXT': 0x8025,1458 'HISTOGRAM_WIDTH_EXT': 0x8026,1459 'HISTOGRAM_FORMAT_EXT': 0x8027,1460 'HISTOGRAM_RED_SIZE_EXT': 0x8028,1461 'HISTOGRAM_GREEN_SIZE_EXT': 0x8029,1462 'HISTOGRAM_BLUE_SIZE_EXT': 0x802A,1463 'HISTOGRAM_ALPHA_SIZE_EXT': 0x802B,1464 'HISTOGRAM_LUMINANCE_SIZE_EXT': 0x802C,1465 'HISTOGRAM_SINK_EXT': 0x802D,1466 'MINMAX_EXT': 0x802E,1467 'MINMAX_FORMAT_EXT': 0x802F,1468 'MINMAX_SINK_EXT': 0x8030,1469 'FRAGMENT_MATERIAL_EXT': 0x8349,1470 'FRAGMENT_NORMAL_EXT': 0x834A,1471 'FRAGMENT_COLOR_EXT': 0x834C,1472 'ATTENUATION_EXT': 0x834D,1473 'SHADOW_ATTENUATION_EXT': 0x834E,1474 'TEXTURE_APPLICATION_MODE_EXT': 0x834F,1475 'TEXTURE_LIGHT_EXT': 0x8350,1476 'TEXTURE_MATERIAL_FACE_EXT': 0x8351,1477 'TEXTURE_MATERIAL_PARAMETER_EXT': 0x8352,1478 'FRAGMENT_DEPTH_EXT': 0x8452,1479 'MULTISAMPLE_EXT': 0x809D,1480 'SAMPLE_ALPHA_TO_MASK_EXT': 0x809E,1481 'SAMPLE_ALPHA_TO_ONE_EXT': 0x809F,1482 'SAMPLE_MASK_EXT': 0x80A0,1483 '1PASS_EXT': 0x80A1,1484 '2PASS_0_EXT': 0x80A2,1485 '2PASS_1_EXT': 0x80A3,1486 '4PASS_0_EXT': 0x80A4,1487 '4PASS_1_EXT': 0x80A5,1488 '4PASS_2_EXT': 0x80A6,1489 '4PASS_3_EXT': 0x80A7,1490 'SAMPLE_BUFFERS_EXT': 0x80A8,1491 'SAMPLES_EXT': 0x80A9,1492 'SAMPLE_MASK_VALUE_EXT': 0x80AA,1493 'SAMPLE_MASK_INVERT_EXT': 0x80AB,1494 'SAMPLE_PATTERN_EXT': 0x80AC,1495 'MULTISAMPLE_BIT_EXT': 0x20000000,1496 'DEPTH_STENCIL_EXT': 0x84F9,1497 'UNSIGNED_INT_24_8_EXT': 0x84FA,1498 'DEPTH24_STENCIL8_EXT': 0x88F0,1499 'TEXTURE_STENCIL_SIZE_EXT': 0x88F1,1500 'R11F_G11F_B10F_EXT': 0x8C3A,1501 'UNSIGNED_INT_10F_11F_11F_REV_EXT': 0x8C3B,1502 'RGBA_SIGNED_COMPONENTS_EXT': 0x8C3C,1503 'UNSIGNED_BYTE_3_3_2_EXT': 0x8032,1504 'UNSIGNED_SHORT_4_4_4_4_EXT': 0x8033,1505 'UNSIGNED_SHORT_5_5_5_1_EXT': 0x8034,1506 'UNSIGNED_INT_8_8_8_8_EXT': 0x8035,1507 'UNSIGNED_INT_10_10_10_2_EXT': 0x8036,1508 'TEXTURE_1D': 0x0DE0,1509 'TEXTURE_2D': 0x0DE1,1510 'PROXY_TEXTURE_1D': 0x8063,1511 'PROXY_TEXTURE_2D': 0x8064,1512 'TEXTURE_3D_EXT': 0x806F,1513 'PROXY_TEXTURE_3D_EXT': 0x8070,1514 'COLOR_TABLE_FORMAT_EXT': 0x80D8,1515 'COLOR_TABLE_WIDTH_EXT': 0x80D9,1516 'COLOR_TABLE_RED_SIZE_EXT': 0x80DA,1517 'COLOR_TABLE_GREEN_SIZE_EXT': 0x80DB,1518 'COLOR_TABLE_BLUE_SIZE_EXT': 0x80DC,1519 'COLOR_TABLE_ALPHA_SIZE_EXT': 0x80DD,1520 'COLOR_TABLE_LUMINANCE_SIZE_EXT': 0x80DE,1521 'COLOR_TABLE_INTENSITY_SIZE_EXT': 0x80DF,1522 'COLOR_INDEX1_EXT': 0x80E2,1523 'COLOR_INDEX2_EXT': 0x80E3,1524 'COLOR_INDEX4_EXT': 0x80E4,1525 'COLOR_INDEX8_EXT': 0x80E5,1526 'COLOR_INDEX12_EXT': 0x80E6,1527 'COLOR_INDEX16_EXT': 0x80E7,1528 'TEXTURE_INDEX_SIZE_EXT': 0x80ED,1529 'TEXTURE_CUBE_MAP_ARB': 0x8513,1530 'PROXY_TEXTURE_CUBE_MAP_ARB': 0x851B,1531 'PIXEL_PACK_BUFFER_EXT': 0x88EB,1532 'PIXEL_UNPACK_BUFFER_EXT': 0x88EC,1533 'PIXEL_PACK_BUFFER_BINDING_EXT': 0x88ED,1534 'PIXEL_UNPACK_BUFFER_BINDING_EXT': 0x88EF,1535 'PIXEL_TRANSFORM_2D_EXT': 0x8330,1536 'PIXEL_MAG_FILTER_EXT': 0x8331,1537 'PIXEL_MIN_FILTER_EXT': 0x8332,1538 'PIXEL_CUBIC_WEIGHT_EXT': 0x8333,1539 'CUBIC_EXT': 0x8334,1540 'AVERAGE_EXT': 0x8335,1541 'PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT': 0x8336,1542 'MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT': 0x8337,1543 'PIXEL_TRANSFORM_2D_MATRIX_EXT': 0x8338,1544 'POINT_SIZE_MIN_EXT': 0x8126,1545 'POINT_SIZE_MAX_EXT': 0x8127,1546 'POINT_FADE_THRESHOLD_SIZE_EXT': 0x8128,1547 'DISTANCE_ATTENUATION_EXT': 0x8129,1548 'POLYGON_OFFSET_EXT': 0x8037,1549 'POLYGON_OFFSET_FACTOR_EXT': 0x8038,1550 'POLYGON_OFFSET_BIAS_EXT': 0x8039,1551 'RESCALE_NORMAL_EXT': 0x803A,1552 'COLOR_SUM_EXT': 0x8458,1553 'CURRENT_SECONDARY_COLOR_EXT': 0x8459,1554 'SECONDARY_COLOR_ARRAY_SIZE_EXT': 0x845A,1555 'SECONDARY_COLOR_ARRAY_TYPE_EXT': 0x845B,1556 'SECONDARY_COLOR_ARRAY_STRIDE_EXT': 0x845C,1557 'SECONDARY_COLOR_ARRAY_POINTER_EXT': 0x845D,1558 'SECONDARY_COLOR_ARRAY_EXT': 0x845E,1559 'LIGHT_MODEL_COLOR_CONTROL_EXT': 0x81F8,1560 'SINGLE_COLOR_EXT': 0x81F9,1561 'SEPARATE_SPECULAR_COLOR_EXT': 0x81FA,1562 'SHARED_TEXTURE_PALETTE_EXT': 0x81FB,1563 'STENCIL_TAG_BITS_EXT': 0x88F2,1564 'STENCIL_CLEAR_TAG_VALUE_EXT': 0x88F3,1565 'STENCIL_TEST_TWO_SIDE_EXT': 0x8910,1566 'ACTIVE_STENCIL_FACE_EXT': 0x8911,1567 'INCR_WRAP_EXT': 0x8507,1568 'DECR_WRAP_EXT': 0x8508,1569 'ALPHA4_EXT': 0x803B,1570 'ALPHA8_EXT': 0x803C,1571 'ALPHA12_EXT': 0x803D,1572 'ALPHA16_EXT': 0x803E,1573 'LUMINANCE4_EXT': 0x803F,1574 'LUMINANCE8_EXT': 0x8040,1575 'LUMINANCE12_EXT': 0x8041,1576 'LUMINANCE16_EXT': 0x8042,1577 'LUMINANCE4_ALPHA4_EXT': 0x8043,1578 'LUMINANCE6_ALPHA2_EXT': 0x8044,1579 'LUMINANCE8_ALPHA8_EXT': 0x8045,1580 'LUMINANCE12_ALPHA4_EXT': 0x8046,1581 'LUMINANCE12_ALPHA12_EXT': 0x8047,1582 'LUMINANCE16_ALPHA16_EXT': 0x8048,1583 'INTENSITY_EXT': 0x8049,1584 'INTENSITY4_EXT': 0x804A,1585 'INTENSITY8_EXT': 0x804B,1586 'INTENSITY12_EXT': 0x804C,1587 'INTENSITY16_EXT': 0x804D,1588 'RGB2_EXT': 0x804E,1589 'RGB4_EXT': 0x804F,1590 'RGB5_EXT': 0x8050,1591 'RGB8_EXT': 0x8051,1592 'RGB10_EXT': 0x8052,1593 'RGB12_EXT': 0x8053,1594 'RGB16_EXT': 0x8054,1595 'RGBA2_EXT': 0x8055,1596 'RGBA4_EXT': 0x8056,1597 'RGB5_A1_EXT': 0x8057,1598 'RGBA8_EXT': 0x8058,1599 'RGB10_A2_EXT': 0x8059,1600 'RGBA12_EXT': 0x805A,1601 'RGBA16_EXT': 0x805B,1602 'TEXTURE_RED_SIZE_EXT': 0x805C,1603 'TEXTURE_GREEN_SIZE_EXT': 0x805D,1604 'TEXTURE_BLUE_SIZE_EXT': 0x805E,1605 'TEXTURE_ALPHA_SIZE_EXT': 0x805F,1606 'TEXTURE_LUMINANCE_SIZE_EXT': 0x8060,1607 'TEXTURE_INTENSITY_SIZE_EXT': 0x8061,1608 'REPLACE_EXT': 0x8062,1609 'PROXY_TEXTURE_1D_EXT': 0x8063,1610 'PROXY_TEXTURE_2D_EXT': 0x8064,1611 'PACK_SKIP_IMAGES_EXT': 0x806B,1612 'PACK_IMAGE_HEIGHT_EXT': 0x806C,1613 'UNPACK_SKIP_IMAGES_EXT': 0x806D,1614 'UNPACK_IMAGE_HEIGHT_EXT': 0x806E,1615 'TEXTURE_3D_EXT': 0x806F,1616 'PROXY_TEXTURE_3D_EXT': 0x8070,1617 'TEXTURE_DEPTH_EXT': 0x8071,1618 'TEXTURE_WRAP_R_EXT': 0x8072,1619 'MAX_3D_TEXTURE_SIZE_EXT': 0x8073,1620 'COMPARE_REF_DEPTH_TO_TEXTURE_EXT': 0x884E,1621 'MAX_ARRAY_TEXTURE_LAYERS_EXT': 0x88FF,1622 'TEXTURE_1D_ARRAY_EXT': 0x8C18,1623 'PROXY_TEXTURE_1D_ARRAY_EXT': 0x8C19,1624 'TEXTURE_2D_ARRAY_EXT': 0x8C1A,1625 'PROXY_TEXTURE_2D_ARRAY_EXT': 0x8C1B,1626 'TEXTURE_BINDING_1D_ARRAY_EXT': 0x8C1C,1627 'TEXTURE_BINDING_2D_ARRAY_EXT': 0x8C1D,1628 'TEXTURE_BUFFER_EXT': 0x8C2A,1629 'MAX_TEXTURE_BUFFER_SIZE_EXT': 0x8C2B,1630 'TEXTURE_BINDING_BUFFER_EXT': 0x8C2C,1631 'TEXTURE_BUFFER_DATA_STORE_BINDING_EXT': 0x8C2D,1632 'TEXTURE_BUFFER_FORMAT_EXT': 0x8C2E,1633 'COMPRESSED_RGB_S3TC_DXT1_EXT': 0x83F0,1634 'COMPRESSED_RGBA_S3TC_DXT1_EXT': 0x83F1,1635 'COMPRESSED_LUMINANCE_LATC1_EXT': 0x8C70,1636 'COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT': 0x8C71,1637 'COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT': 0x8C72,1638 'COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT': 0x8C73,1639 'COMPRESSED_RED_RGTC1_EXT': 0x8DBB,1640 'COMPRESSED_SIGNED_RED_RGTC1_EXT': 0x8DBC,1641 'COMPRESSED_RED_GREEN_RGTC2_EXT': 0x8DBD,1642 'COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT': 0x8DBE,1643 'COMPRESSED_RGB_S3TC_DXT1_EXT': 0x83F0,1644 'COMPRESSED_RGBA_S3TC_DXT1_EXT': 0x83F1,1645 'COMPRESSED_RGBA_S3TC_DXT3_EXT': 0x83F2,1646 'COMPRESSED_RGBA_S3TC_DXT5_EXT': 0x83F3,1647 'NORMAL_MAP_EXT': 0x8511,1648 'REFLECTION_MAP_EXT': 0x8512,1649 'TEXTURE_CUBE_MAP_EXT': 0x8513,1650 'TEXTURE_BINDING_CUBE_MAP_EXT': 0x8514,1651 'TEXTURE_CUBE_MAP_POSITIVE_X_EXT': 0x8515,1652 'TEXTURE_CUBE_MAP_NEGATIVE_X_EXT': 0x8516,1653 'TEXTURE_CUBE_MAP_POSITIVE_Y_EXT': 0x8517,1654 'TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT': 0x8518,1655 'TEXTURE_CUBE_MAP_POSITIVE_Z_EXT': 0x8519,1656 'TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT': 0x851A,1657 'PROXY_TEXTURE_CUBE_MAP_EXT': 0x851B,1658 'MAX_CUBE_MAP_TEXTURE_SIZE_EXT': 0x851C,1659 'CLAMP_TO_EDGE_EXT': 0x812F,1660 'COMBINE_EXT': 0x8570,1661 'COMBINE_RGB_EXT': 0x8571,1662 'COMBINE_ALPHA_EXT': 0x8572,1663 'RGB_SCALE_EXT': 0x8573,1664 'ADD_SIGNED_EXT': 0x8574,1665 'INTERPOLATE_EXT': 0x8575,1666 'CONSTANT_EXT': 0x8576,1667 'PRIMARY_COLOR_EXT': 0x8577,1668 'PREVIOUS_EXT': 0x8578,1669 'SOURCE0_RGB_EXT': 0x8580,1670 'SOURCE1_RGB_EXT': 0x8581,1671 'SOURCE2_RGB_EXT': 0x8582,1672 'SOURCE0_ALPHA_EXT': 0x8588,1673 'SOURCE1_ALPHA_EXT': 0x8589,1674 'SOURCE2_ALPHA_EXT': 0x858A,1675 'OPERAND0_RGB_EXT': 0x8590,1676 'OPERAND1_RGB_EXT': 0x8591,1677 'OPERAND2_RGB_EXT': 0x8592,1678 'OPERAND0_ALPHA_EXT': 0x8598,1679 'OPERAND1_ALPHA_EXT': 0x8599,1680 'OPERAND2_ALPHA_EXT': 0x859A,1681 'DOT3_RGB_EXT': 0x8740,1682 'DOT3_RGBA_EXT': 0x8741,1683 'TEXTURE_MAX_ANISOTROPY_EXT': 0x84FE,1684 'MAX_TEXTURE_MAX_ANISOTROPY_EXT': 0x84FF,1685 'RGBA32UI_EXT': 0x8D70,1686 'RGB32UI_EXT': 0x8D71,1687 'ALPHA32UI_EXT': 0x8D72,1688 'INTENSITY32UI_EXT': 0x8D73,1689 'LUMINANCE32UI_EXT': 0x8D74,1690 'LUMINANCE_ALPHA32UI_EXT': 0x8D75,1691 'RGBA16UI_EXT': 0x8D76,1692 'RGB16UI_EXT': 0x8D77,1693 'ALPHA16UI_EXT': 0x8D78,1694 'INTENSITY16UI_EXT': 0x8D79,1695 'LUMINANCE16UI_EXT': 0x8D7A,1696 'LUMINANCE_ALPHA16UI_EXT': 0x8D7B,1697 'RGBA8UI_EXT': 0x8D7C,1698 'RGB8UI_EXT': 0x8D7D,1699 'ALPHA8UI_EXT': 0x8D7E,1700 'INTENSITY8UI_EXT': 0x8D7F,1701 'LUMINANCE8UI_EXT': 0x8D80,1702 'LUMINANCE_ALPHA8UI_EXT': 0x8D81,1703 'RGBA32I_EXT': 0x8D82,1704 'RGB32I_EXT': 0x8D83,1705 'ALPHA32I_EXT': 0x8D84,1706 'INTENSITY32I_EXT': 0x8D85,1707 'LUMINANCE32I_EXT': 0x8D86,1708 'LUMINANCE_ALPHA32I_EXT': 0x8D87,1709 'RGBA16I_EXT': 0x8D88,1710 'RGB16I_EXT': 0x8D89,1711 'ALPHA16I_EXT': 0x8D8A,1712 'INTENSITY16I_EXT': 0x8D8B,1713 'LUMINANCE16I_EXT': 0x8D8C,1714 'LUMINANCE_ALPHA16I_EXT': 0x8D8D,1715 'RGBA8I_EXT': 0x8D8E,1716 'RGB8I_EXT': 0x8D8F,1717 'ALPHA8I_EXT': 0x8D90,1718 'INTENSITY8I_EXT': 0x8D91,1719 'LUMINANCE8I_EXT': 0x8D92,1720 'LUMINANCE_ALPHA8I_EXT': 0x8D93,1721 'RED_INTEGER_EXT': 0x8D94,1722 'GREEN_INTEGER_EXT': 0x8D95,1723 'BLUE_INTEGER_EXT': 0x8D96,1724 'ALPHA_INTEGER_EXT': 0x8D97,1725 'RGB_INTEGER_EXT': 0x8D98,1726 'RGBA_INTEGER_EXT': 0x8D99,1727 'BGR_INTEGER_EXT': 0x8D9A,1728 'BGRA_INTEGER_EXT': 0x8D9B,1729 'LUMINANCE_INTEGER_EXT': 0x8D9C,1730 'LUMINANCE_ALPHA_INTEGER_EXT': 0x8D9D,1731 'RGBA_INTEGER_MODE_EXT': 0x8D9E,1732 'MAX_TEXTURE_LOD_BIAS_EXT': 0x84FD,1733 'TEXTURE_FILTER_CONTROL_EXT': 0x8500,1734 'TEXTURE_LOD_BIAS_EXT': 0x8501,1735 'MIRROR_CLAMP_EXT': 0x8742,1736 'MIRROR_CLAMP_TO_EDGE_EXT': 0x8743,1737 'MIRROR_CLAMP_TO_BORDER_EXT': 0x8912,1738 'TEXTURE_PRIORITY_EXT': 0x8066,1739 'TEXTURE_RESIDENT_EXT': 0x8067,1740 'TEXTURE_1D_BINDING_EXT': 0x8068,1741 'TEXTURE_2D_BINDING_EXT': 0x8069,1742 'TEXTURE_3D_BINDING_EXT': 0x806A,1743 'PERTURB_EXT': 0x85AE,1744 'TEXTURE_NORMAL_EXT': 0x85AF,1745 'TEXTURE_RECTANGLE_EXT': 0x84F5,1746 'TEXTURE_BINDING_RECTANGLE_EXT': 0x84F6,1747 'PROXY_TEXTURE_RECTANGLE_EXT': 0x84F7,1748 'MAX_RECTANGLE_TEXTURE_SIZE_EXT': 0x84F8,1749 'SRGB_EXT': 0x8C40,1750 'SRGB8_EXT': 0x8C41,1751 'SRGB_ALPHA_EXT': 0x8C42,1752 'SRGB8_ALPHA8_EXT': 0x8C43,1753 'SLUMINANCE_ALPHA_EXT': 0x8C44,1754 'SLUMINANCE8_ALPHA8_EXT': 0x8C45,1755 'SLUMINANCE_EXT': 0x8C46,1756 'SLUMINANCE8_EXT': 0x8C47,1757 'COMPRESSED_SRGB_EXT': 0x8C48,1758 'COMPRESSED_SRGB_ALPHA_EXT': 0x8C49,1759 'COMPRESSED_SLUMINANCE_EXT': 0x8C4A,1760 'COMPRESSED_SLUMINANCE_ALPHA_EXT': 0x8C4B,1761 'COMPRESSED_SRGB_S3TC_DXT1_EXT': 0x8C4C,1762 'COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT': 0x8C4D,1763 'COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT': 0x8C4E,1764 'COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT': 0x8C4F,1765 'RGB9_E5_EXT': 0x8C3D,1766 'UNSIGNED_INT_5_9_9_9_REV_EXT': 0x8C3E,1767 'TEXTURE_SHARED_SIZE_EXT': 0x8C3F,1768 'TEXTURE_SWIZZLE_R_EXT': 0x8E42,1769 'TEXTURE_SWIZZLE_G_EXT': 0x8E43,1770 'TEXTURE_SWIZZLE_B_EXT': 0x8E44,1771 'TEXTURE_SWIZZLE_A_EXT': 0x8E45,1772 'TEXTURE_SWIZZLE_RGBA_EXT': 0x8E46,1773 'TIME_ELAPSED_EXT': 0x88BF,1774 'TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT': 0x8C76,1775 'TRANSFORM_FEEDBACK_BUFFER_MODE_EXT': 0x8C7F,1776 'MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT': 0x8C80,1777 'TRANSFORM_FEEDBACK_VARYINGS_EXT': 0x8C83,1778 'TRANSFORM_FEEDBACK_BUFFER_START_EXT': 0x8C84,1779 'TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT': 0x8C85,1780 'PRIMITIVES_GENERATED_EXT': 0x8C87,1781 'TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT': 0x8C88,1782 'RASTERIZER_DISCARD_EXT': 0x8C89,1783 'MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT': 0x8C8A,1784 'MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT': 0x8C8B,1785 'INTERLEAVED_ATTRIBS_EXT': 0x8C8C,1786 'SEPARATE_ATTRIBS_EXT': 0x8C8D,1787 'TRANSFORM_FEEDBACK_BUFFER_EXT': 0x8C8E,1788 'TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT': 0x8C8F,1789 'DOUBLE_EXT': 0x140A,1790 'VERTEX_ARRAY_EXT': 0x8074,1791 'NORMAL_ARRAY_EXT': 0x8075,1792 'COLOR_ARRAY_EXT': 0x8076,1793 'INDEX_ARRAY_EXT': 0x8077,1794 'TEXTURE_COORD_ARRAY_EXT': 0x8078,1795 'EDGE_FLAG_ARRAY_EXT': 0x8079,1796 'VERTEX_ARRAY_SIZE_EXT': 0x807A,1797 'VERTEX_ARRAY_TYPE_EXT': 0x807B,1798 'VERTEX_ARRAY_STRIDE_EXT': 0x807C,1799 'VERTEX_ARRAY_COUNT_EXT': 0x807D,1800 'NORMAL_ARRAY_TYPE_EXT': 0x807E,1801 'NORMAL_ARRAY_STRIDE_EXT': 0x807F,1802 'NORMAL_ARRAY_COUNT_EXT': 0x8080,1803 'COLOR_ARRAY_SIZE_EXT': 0x8081,1804 'COLOR_ARRAY_TYPE_EXT': 0x8082,1805 'COLOR_ARRAY_STRIDE_EXT': 0x8083,1806 'COLOR_ARRAY_COUNT_EXT': 0x8084,1807 'INDEX_ARRAY_TYPE_EXT': 0x8085,1808 'INDEX_ARRAY_STRIDE_EXT': 0x8086,1809 'INDEX_ARRAY_COUNT_EXT': 0x8087,1810 'TEXTURE_COORD_ARRAY_SIZE_EXT': 0x8088,1811 'TEXTURE_COORD_ARRAY_TYPE_EXT': 0x8089,1812 'TEXTURE_COORD_ARRAY_STRIDE_EXT': 0x808A,1813 'TEXTURE_COORD_ARRAY_COUNT_EXT': 0x808B,1814 'EDGE_FLAG_ARRAY_STRIDE_EXT': 0x808C,1815 'EDGE_FLAG_ARRAY_COUNT_EXT': 0x808D,1816 'VERTEX_ARRAY_POINTER_EXT': 0x808E,1817 'NORMAL_ARRAY_POINTER_EXT': 0x808F,1818 'COLOR_ARRAY_POINTER_EXT': 0x8090,1819 'INDEX_ARRAY_POINTER_EXT': 0x8091,1820 'TEXTURE_COORD_ARRAY_POINTER_EXT': 0x8092,1821 'EDGE_FLAG_ARRAY_POINTER_EXT': 0x8093,1822 'BGRA': 0x80E1,1823 'VERTEX_SHADER_EXT': 0x8780,1824 'VERTEX_SHADER_BINDING_EXT': 0x8781,1825 'OP_INDEX_EXT': 0x8782,1826 'OP_NEGATE_EXT': 0x8783,1827 'OP_DOT3_EXT': 0x8784,1828 'OP_DOT4_EXT': 0x8785,1829 'OP_MUL_EXT': 0x8786,1830 'OP_ADD_EXT': 0x8787,1831 'OP_MADD_EXT': 0x8788,1832 'OP_FRAC_EXT': 0x8789,1833 'OP_MAX_EXT': 0x878A,1834 'OP_MIN_EXT': 0x878B,1835 'OP_SET_GE_EXT': 0x878C,1836 'OP_SET_LT_EXT': 0x878D,1837 'OP_CLAMP_EXT': 0x878E,1838 'OP_FLOOR_EXT': 0x878F,1839 'OP_ROUND_EXT': 0x8790,1840 'OP_EXP_BASE_2_EXT': 0x8791,1841 'OP_LOG_BASE_2_EXT': 0x8792,1842 'OP_POWER_EXT': 0x8793,1843 'OP_RECIP_EXT': 0x8794,1844 'OP_RECIP_SQRT_EXT': 0x8795,1845 'OP_SUB_EXT': 0x8796,1846 'OP_CROSS_PRODUCT_EXT': 0x8797,1847 'OP_MULTIPLY_MATRIX_EXT': 0x8798,1848 'OP_MOV_EXT': 0x8799,1849 'OUTPUT_VERTEX_EXT': 0x879A,1850 'OUTPUT_COLOR0_EXT': 0x879B,1851 'OUTPUT_COLOR1_EXT': 0x879C,1852 'OUTPUT_TEXTURE_COORD0_EXT': 0x879D,1853 'OUTPUT_TEXTURE_COORD1_EXT': 0x879E,1854 'OUTPUT_TEXTURE_COORD2_EXT': 0x879F,1855 'OUTPUT_TEXTURE_COORD3_EXT': 0x87A0,1856 'OUTPUT_TEXTURE_COORD4_EXT': 0x87A1,1857 'OUTPUT_TEXTURE_COORD5_EXT': 0x87A2,1858 'OUTPUT_TEXTURE_COORD6_EXT': 0x87A3,1859 'OUTPUT_TEXTURE_COORD7_EXT': 0x87A4,1860 'OUTPUT_TEXTURE_COORD8_EXT': 0x87A5,1861 'OUTPUT_TEXTURE_COORD9_EXT': 0x87A6,1862 'OUTPUT_TEXTURE_COORD10_EXT': 0x87A7,1863 'OUTPUT_TEXTURE_COORD11_EXT': 0x87A8,1864 'OUTPUT_TEXTURE_COORD12_EXT': 0x87A9,1865 'OUTPUT_TEXTURE_COORD13_EXT': 0x87AA,1866 'OUTPUT_TEXTURE_COORD14_EXT': 0x87AB,1867 'OUTPUT_TEXTURE_COORD15_EXT': 0x87AC,1868 'OUTPUT_TEXTURE_COORD16_EXT': 0x87AD,1869 'OUTPUT_TEXTURE_COORD17_EXT': 0x87AE,1870 'OUTPUT_TEXTURE_COORD18_EXT': 0x87AF,1871 'OUTPUT_TEXTURE_COORD19_EXT': 0x87B0,1872 'OUTPUT_TEXTURE_COORD20_EXT': 0x87B1,1873 'OUTPUT_TEXTURE_COORD21_EXT': 0x87B2,1874 'OUTPUT_TEXTURE_COORD22_EXT': 0x87B3,1875 'OUTPUT_TEXTURE_COORD23_EXT': 0x87B4,1876 'OUTPUT_TEXTURE_COORD24_EXT': 0x87B5,1877 'OUTPUT_TEXTURE_COORD25_EXT': 0x87B6,1878 'OUTPUT_TEXTURE_COORD26_EXT': 0x87B7,1879 'OUTPUT_TEXTURE_COORD27_EXT': 0x87B8,1880 'OUTPUT_TEXTURE_COORD28_EXT': 0x87B9,1881 'OUTPUT_TEXTURE_COORD29_EXT': 0x87BA,1882 'OUTPUT_TEXTURE_COORD30_EXT': 0x87BB,1883 'OUTPUT_TEXTURE_COORD31_EXT': 0x87BC,1884 'OUTPUT_FOG_EXT': 0x87BD,1885 'SCALAR_EXT': 0x87BE,1886 'VECTOR_EXT': 0x87BF,1887 'MATRIX_EXT': 0x87C0,1888 'VARIANT_EXT': 0x87C1,1889 'INVARIANT_EXT': 0x87C2,1890 'LOCAL_CONSTANT_EXT': 0x87C3,1891 'LOCAL_EXT': 0x87C4,1892 'MAX_VERTEX_SHADER_INSTRUCTIONS_EXT': 0x87C5,1893 'MAX_VERTEX_SHADER_VARIANTS_EXT': 0x87C6,1894 'MAX_VERTEX_SHADER_INVARIANTS_EXT': 0x87C7,1895 'MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT': 0x87C8,1896 'MAX_VERTEX_SHADER_LOCALS_EXT': 0x87C9,1897 'MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT': 0x87CA,1898 'MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT': 0x87CB,1899 'MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT': 0x87CC,1900 'MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT': 0x87CD,1901 'MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT': 0x87CE,1902 'VERTEX_SHADER_INSTRUCTIONS_EXT': 0x87CF,1903 'VERTEX_SHADER_VARIANTS_EXT': 0x87D0,1904 'VERTEX_SHADER_INVARIANTS_EXT': 0x87D1,1905 'VERTEX_SHADER_LOCAL_CONSTANTS_EXT': 0x87D2,1906 'VERTEX_SHADER_LOCALS_EXT': 0x87D3,1907 'VERTEX_SHADER_OPTIMIZED_EXT': 0x87D4,1908 'X_EXT': 0x87D5,1909 'Y_EXT': 0x87D6,1910 'Z_EXT': 0x87D7,1911 'W_EXT': 0x87D8,1912 'NEGATIVE_X_EXT': 0x87D9,1913 'NEGATIVE_Y_EXT': 0x87DA,1914 'NEGATIVE_Z_EXT': 0x87DB,1915 'NEGATIVE_W_EXT': 0x87DC,1916 'ZERO_EXT': 0x87DD,1917 'ONE_EXT': 0x87DE,1918 'NEGATIVE_ONE_EXT': 0x87DF,1919 'NORMALIZED_RANGE_EXT': 0x87E0,1920 'FULL_RANGE_EXT': 0x87E1,1921 'CURRENT_VERTEX_EXT': 0x87E2,1922 'MVP_MATRIX_EXT': 0x87E3,1923 'VARIANT_VALUE_EXT': 0x87E4,1924 'VARIANT_DATATYPE_EXT': 0x87E5,1925 'VARIANT_ARRAY_STRIDE_EXT': 0x87E6,1926 'VARIANT_ARRAY_TYPE_EXT': 0x87E7,1927 'VARIANT_ARRAY_EXT': 0x87E8,1928 'VARIANT_ARRAY_POINTER_EXT': 0x87E9,1929 'INVARIANT_VALUE_EXT': 0x87EA,1930 'INVARIANT_DATATYPE_EXT': 0x87EB,1931 'LOCAL_CONSTANT_VALUE_EXT': 0x87EC,1932 'LOCAL_CONSTANT_DATATYPE_EXT': 0x87ED,1933 'MODELVIEW0_STACK_DEPTH_EXT': 0x0BA3,1934 'MODELVIEW0_MATRIX_EXT': 0x0BA6,1935 'MODELVIEW0_EXT': 0x1700,1936 'MODELVIEW1_STACK_DEPTH_EXT': 0x8502,1937 'MODELVIEW1_MATRIX_EXT': 0x8506,1938 'VERTEX_WEIGHTING_EXT': 0x8509,1939 'MODELVIEW1_EXT': 0x850A,1940 'CURRENT_VERTEX_WEIGHT_EXT': 0x850B,1941 'VERTEX_WEIGHT_ARRAY_EXT': 0x850C,1942 'VERTEX_WEIGHT_ARRAY_SIZE_EXT': 0x850D,1943 'VERTEX_WEIGHT_ARRAY_TYPE_EXT': 0x850E,1944 'VERTEX_WEIGHT_ARRAY_STRIDE_EXT': 0x850F,1945 'VERTEX_WEIGHT_ARRAY_POINTER_EXT': 0x8510,1946 'OCCLUSION_TEST_HP': 0x8165,1947 'OCCLUSION_TEST_RESULT_HP': 0x8166,1948 'MIRRORED_REPEAT_IBM': 0x8370,1949 'RED_MIN_CLAMP_INGR': 0x8560,1950 'GREEN_MIN_CLAMP_INGR': 0x8561,1951 'BLUE_MIN_CLAMP_INGR': 0x8562,1952 'ALPHA_MIN_CLAMP_INGR': 0x8563,1953 'RED_MAX_CLAMP_INGR': 0x8564,1954 'GREEN_MAX_CLAMP_INGR': 0x8565,1955 'BLUE_MAX_CLAMP_INGR': 0x8566,1956 'ALPHA_MAX_CLAMP_INGR': 0x8567,1957 'INTERLACE_READ_INGR': 0x8568,1958 'PARALLEL_ARRAYS_INTEL': 0x83F4,1959 'VERTEX_ARRAY_PARALLEL_POINTERS_INTEL': 0x83F5,1960 'NORMAL_ARRAY_PARALLEL_POINTERS_INTEL': 0x83F6,1961 'COLOR_ARRAY_PARALLEL_POINTERS_INTEL': 0x83F7,1962 'TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL': 0x83F8,1963 'KTX_FRONT_REGION': 0x0,1964 'KTX_BACK_REGION': 0x1,1965 'KTX_Z_REGION': 0x2,1966 'KTX_STENCIL_REGION': 0x3,1967 'TEXTURE_1D_STACK_MESAX': 0x8759,1968 'TEXTURE_2D_STACK_MESAX': 0x875A,1969 'PROXY_TEXTURE_1D_STACK_MESAX': 0x875B,1970 'PROXY_TEXTURE_2D_STACK_MESAX': 0x875C,1971 'TEXTURE_1D_STACK_BINDING_MESAX': 0x875D,1972 'TEXTURE_2D_STACK_BINDING_MESAX': 0x875E,1973 'PACK_INVERT_MESA': 0x8758,1974 'UNSIGNED_SHORT_8_8_MESA': 0x85BA,1975 'UNSIGNED_SHORT_8_8_REV_MESA': 0x85BB,1976 'YCBCR_MESA': 0x8757,1977 'QUERY_WAIT_NV': 0x8E13,1978 'QUERY_NO_WAIT_NV': 0x8E14,1979 'QUERY_BY_REGION_WAIT_NV': 0x8E15,1980 'QUERY_BY_REGION_NO_WAIT_NV': 0x8E16,1981 'DEPTH_STENCIL_TO_RGBA_NV': 0x886E,1982 'DEPTH_STENCIL_TO_BGRA_NV': 0x886F,1983 'DEPTH_COMPONENT32F_NV': 0x8DAB,1984 'DEPTH32F_STENCIL8_NV': 0x8DAC,1985 'FLOAT_32_UNSIGNED_INT_24_8_REV_NV': 0x8DAD,1986 'DEPTH_BUFFER_FLOAT_MODE_NV': 0x8DAF,1987 'DEPTH_CLAMP_NV': 0x864F,1988 'SAMPLE_COUNT_BITS_NV': 0x8864,1989 'CURRENT_SAMPLE_COUNT_QUERY_NV': 0x8865,1990 'QUERY_RESULT_NV': 0x8866,1991 'QUERY_RESULT_AVAILABLE_NV': 0x8867,1992 'SAMPLE_COUNT_NV': 0x8914,1993 'EVAL_2D_NV': 0x86C0,1994 'EVAL_TRIANGULAR_2D_NV': 0x86C1,1995 'MAP_TESSELLATION_NV': 0x86C2,1996 'MAP_ATTRIB_U_ORDER_NV': 0x86C3,1997 'MAP_ATTRIB_V_ORDER_NV': 0x86C4,1998 'EVAL_FRACTIONAL_TESSELLATION_NV': 0x86C5,1999 'EVAL_VERTEX_ATTRIB0_NV': 0x86C6,2000 'EVAL_VERTEX_ATTRIB1_NV': 0x86C7,2001 'EVAL_VERTEX_ATTRIB2_NV': 0x86C8,2002 'EVAL_VERTEX_ATTRIB3_NV': 0x86C9,2003 'EVAL_VERTEX_ATTRIB4_NV': 0x86CA,2004 'EVAL_VERTEX_ATTRIB5_NV': 0x86CB,2005 'EVAL_VERTEX_ATTRIB6_NV': 0x86CC,2006 'EVAL_VERTEX_ATTRIB7_NV': 0x86CD,2007 'EVAL_VERTEX_ATTRIB8_NV': 0x86CE,2008 'EVAL_VERTEX_ATTRIB9_NV': 0x86CF,2009 'EVAL_VERTEX_ATTRIB10_NV': 0x86D0,2010 'EVAL_VERTEX_ATTRIB11_NV': 0x86D1,2011 'EVAL_VERTEX_ATTRIB12_NV': 0x86D2,2012 'EVAL_VERTEX_ATTRIB13_NV': 0x86D3,2013 'EVAL_VERTEX_ATTRIB14_NV': 0x86D4,2014 'EVAL_VERTEX_ATTRIB15_NV': 0x86D5,2015 'MAX_MAP_TESSELLATION_NV': 0x86D6,2016 'MAX_RATIONAL_EVAL_ORDER_NV': 0x86D7,2017 'SAMPLE_POSITION_NV': 0x8E50,2018 'SAMPLE_MASK_NV': 0x8E51,2019 'SAMPLE_MASK_VALUE_NV': 0x8E52,2020 'TEXTURE_BINDING_RENDERBUFFER_NV': 0x8E53,2021 'TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV': 0x8E54,2022 'TEXTURE_RENDERBUFFER_NV': 0x8E55,2023 'SAMPLER_RENDERBUFFER_NV': 0x8E56,2024 'INT_SAMPLER_RENDERBUFFER_NV': 0x8E57,2025 'UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV': 0x8E58,2026 'MAX_SAMPLE_MASK_WORDS_NV': 0x8E59,2027 'ALL_COMPLETED_NV': 0x84F2,2028 'FENCE_STATUS_NV': 0x84F3,2029 'FENCE_CONDITION_NV': 0x84F4,2030 'FLOAT_R_NV': 0x8880,2031 'FLOAT_RG_NV': 0x8881,2032 'FLOAT_RGB_NV': 0x8882,2033 'FLOAT_RGBA_NV': 0x8883,2034 'FLOAT_R16_NV': 0x8884,2035 'FLOAT_R32_NV': 0x8885,2036 'FLOAT_RG16_NV': 0x8886,2037 'FLOAT_RG32_NV': 0x8887,2038 'FLOAT_RGB16_NV': 0x8888,2039 'FLOAT_RGB32_NV': 0x8889,2040 'FLOAT_RGBA16_NV': 0x888A,2041 'FLOAT_RGBA32_NV': 0x888B,2042 'TEXTURE_FLOAT_COMPONENTS_NV': 0x888C,2043 'FLOAT_CLEAR_COLOR_VALUE_NV': 0x888D,2044 'FLOAT_RGBA_MODE_NV': 0x888E,2045 'FOG_DISTANCE_MODE_NV': 0x855A,2046 'EYE_RADIAL_NV': 0x855B,2047 'EYE_PLANE_ABSOLUTE_NV': 0x855C,2048 'MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV': 0x8868,2049 'FRAGMENT_PROGRAM_NV': 0x8870,2050 'MAX_TEXTURE_COORDS_NV': 0x8871,2051 'MAX_TEXTURE_IMAGE_UNITS_NV': 0x8872,2052 'FRAGMENT_PROGRAM_BINDING_NV': 0x8873,2053 'PROGRAM_ERROR_STRING_NV': 0x8874,2054 'MAX_PROGRAM_EXEC_INSTRUCTIONS_NV': 0x88F4,2055 'MAX_PROGRAM_CALL_DEPTH_NV': 0x88F5,2056 'MAX_PROGRAM_IF_DEPTH_NV': 0x88F6,2057 'MAX_PROGRAM_LOOP_DEPTH_NV': 0x88F7,2058 'MAX_PROGRAM_LOOP_COUNT_NV': 0x88F8,2059 'RENDERBUFFER_COVERAGE_SAMPLES_NV': 0x8CAB,2060 'RENDERBUFFER_COLOR_SAMPLES_NV': 0x8E10,2061 'MAX_MULTISAMPLE_COVERAGE_MODES_NV': 0x8E11,2062 'MULTISAMPLE_COVERAGE_MODES_NV': 0x8E12,2063 'GEOMETRY_PROGRAM_NV': 0x8C26,2064 'MAX_PROGRAM_OUTPUT_VERTICES_NV': 0x8C27,2065 'MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV': 0x8C28,2066 'MIN_PROGRAM_TEXEL_OFFSET_NV': 0x8904,2067 'MAX_PROGRAM_TEXEL_OFFSET_NV': 0x8905,2068 'PROGRAM_ATTRIB_COMPONENTS_NV': 0x8906,2069 'PROGRAM_RESULT_COMPONENTS_NV': 0x8907,2070 'MAX_PROGRAM_ATTRIB_COMPONENTS_NV': 0x8908,2071 'MAX_PROGRAM_RESULT_COMPONENTS_NV': 0x8909,2072 'MAX_PROGRAM_GENERIC_ATTRIBS_NV': 0x8DA5,2073 'MAX_PROGRAM_GENERIC_RESULTS_NV': 0x8DA6,2074 'HALF_FLOAT_NV': 0x140B,2075 'MAX_SHININESS_NV': 0x8504,2076 'MAX_SPOT_EXPONENT_NV': 0x8505,2077 'MULTISAMPLE_FILTER_HINT_NV': 0x8534,2078 'PIXEL_COUNTER_BITS_NV': 0x8864,2079 'CURRENT_OCCLUSION_QUERY_ID_NV': 0x8865,2080 'PIXEL_COUNT_NV': 0x8866,2081 'PIXEL_COUNT_AVAILABLE_NV': 0x8867,2082 'DEPTH_STENCIL_NV': 0x84F9,2083 'UNSIGNED_INT_24_8_NV': 0x84FA,2084 'MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV': 0x8DA0,2085 'MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV': 0x8DA1,2086 'VERTEX_PROGRAM_PARAMETER_BUFFER_NV': 0x8DA2,2087 'GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV': 0x8DA3,2088 'FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV': 0x8DA4,2089 'WRITE_PIXEL_DATA_RANGE_NV': 0x8878,2090 'READ_PIXEL_DATA_RANGE_NV': 0x8879,2091 'WRITE_PIXEL_DATA_RANGE_LENGTH_NV': 0x887A,2092 'READ_PIXEL_DATA_RANGE_LENGTH_NV': 0x887B,2093 'WRITE_PIXEL_DATA_RANGE_POINTER_NV': 0x887C,2094 'READ_PIXEL_DATA_RANGE_POINTER_NV': 0x887D,2095 'POINT_SPRITE_NV': 0x8861,2096 'COORD_REPLACE_NV': 0x8862,2097 'POINT_SPRITE_R_MODE_NV': 0x8863,2098 'FRAME_NV': 0x8E26,2099 'FIELDS_NV': 0x8E27,2100 'CURRENT_TIME_NV': 0x8E28,2101 'NUM_FILL_STREAMS_NV': 0x8E29,2102 'PRESENT_TIME_NV': 0x8E2A,2103 'PRESENT_DURATION_NV': 0x8E2B,2104 'PRIMITIVE_RESTART_NV': 0x8558,2105 'PRIMITIVE_RESTART_INDEX_NV': 0x8559,2106 'REGISTER_COMBINERS_NV': 0x8522,2107 'VARIABLE_A_NV': 0x8523,2108 'VARIABLE_B_NV': 0x8524,2109 'VARIABLE_C_NV': 0x8525,2110 'VARIABLE_D_NV': 0x8526,2111 'VARIABLE_E_NV': 0x8527,2112 'VARIABLE_F_NV': 0x8528,2113 'VARIABLE_G_NV': 0x8529,2114 'CONSTANT_COLOR0_NV': 0x852A,2115 'CONSTANT_COLOR1_NV': 0x852B,2116 'PRIMARY_COLOR_NV': 0x852C,2117 'SECONDARY_COLOR_NV': 0x852D,2118 'SPARE0_NV': 0x852E,2119 'SPARE1_NV': 0x852F,2120 'DISCARD_NV': 0x8530,2121 'E_TIMES_F_NV': 0x8531,2122 'SPARE0_PLUS_SECONDARY_COLOR_NV': 0x8532,2123 'UNSIGNED_IDENTITY_NV': 0x8536,2124 'UNSIGNED_INVERT_NV': 0x8537,2125 'EXPAND_NORMAL_NV': 0x8538,2126 'EXPAND_NEGATE_NV': 0x8539,2127 'HALF_BIAS_NORMAL_NV': 0x853A,2128 'HALF_BIAS_NEGATE_NV': 0x853B,2129 'SIGNED_IDENTITY_NV': 0x853C,2130 'SIGNED_NEGATE_NV': 0x853D,2131 'SCALE_BY_TWO_NV': 0x853E,2132 'SCALE_BY_FOUR_NV': 0x853F,2133 'SCALE_BY_ONE_HALF_NV': 0x8540,2134 'BIAS_BY_NEGATIVE_ONE_HALF_NV': 0x8541,2135 'COMBINER_INPUT_NV': 0x8542,2136 'COMBINER_MAPPING_NV': 0x8543,2137 'COMBINER_COMPONENT_USAGE_NV': 0x8544,2138 'COMBINER_AB_DOT_PRODUCT_NV': 0x8545,2139 'COMBINER_CD_DOT_PRODUCT_NV': 0x8546,2140 'COMBINER_MUX_SUM_NV': 0x8547,2141 'COMBINER_SCALE_NV': 0x8548,2142 'COMBINER_BIAS_NV': 0x8549,2143 'COMBINER_AB_OUTPUT_NV': 0x854A,2144 'COMBINER_CD_OUTPUT_NV': 0x854B,2145 'COMBINER_SUM_OUTPUT_NV': 0x854C,2146 'MAX_GENERAL_COMBINERS_NV': 0x854D,2147 'NUM_GENERAL_COMBINERS_NV': 0x854E,2148 'COLOR_SUM_CLAMP_NV': 0x854F,2149 'COMBINER0_NV': 0x8550,2150 'COMBINER1_NV': 0x8551,2151 'COMBINER2_NV': 0x8552,2152 'COMBINER3_NV': 0x8553,2153 'COMBINER4_NV': 0x8554,2154 'COMBINER5_NV': 0x8555,2155 'COMBINER6_NV': 0x8556,2156 'COMBINER7_NV': 0x8557,2157 'PER_STAGE_CONSTANTS_NV': 0x8535,2158 'EMBOSS_LIGHT_NV': 0x855D,2159 'EMBOSS_CONSTANT_NV': 0x855E,2160 'EMBOSS_MAP_NV': 0x855F,2161 'NORMAL_MAP_NV': 0x8511,2162 'REFLECTION_MAP_NV': 0x8512,2163 'COMBINE4_NV': 0x8503,2164 'SOURCE3_RGB_NV': 0x8583,2165 'SOURCE3_ALPHA_NV': 0x858B,2166 'OPERAND3_RGB_NV': 0x8593,2167 'OPERAND3_ALPHA_NV': 0x859B,2168 'TEXTURE_UNSIGNED_REMAP_MODE_NV': 0x888F,2169 'TEXTURE_RECTANGLE_NV': 0x84F5,2170 'TEXTURE_BINDING_RECTANGLE_NV': 0x84F6,2171 'PROXY_TEXTURE_RECTANGLE_NV': 0x84F7,2172 'MAX_RECTANGLE_TEXTURE_SIZE_NV': 0x84F8,2173 'OFFSET_TEXTURE_RECTANGLE_NV': 0x864C,2174 'OFFSET_TEXTURE_RECTANGLE_SCALE_NV': 0x864D,2175 'DOT_PRODUCT_TEXTURE_RECTANGLE_NV': 0x864E,2176 'RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV': 0x86D9,2177 'UNSIGNED_INT_S8_S8_8_8_NV': 0x86DA,2178 'UNSIGNED_INT_8_8_S8_S8_REV_NV': 0x86DB,2179 'DSDT_MAG_INTENSITY_NV': 0x86DC,2180 'SHADER_CONSISTENT_NV': 0x86DD,2181 'TEXTURE_SHADER_NV': 0x86DE,2182 'SHADER_OPERATION_NV': 0x86DF,2183 'CULL_MODES_NV': 0x86E0,2184 'OFFSET_TEXTURE_2D_MATRIX_NV': 0x86E1,2185 'OFFSET_TEXTURE_MATRIX_NV': 0x86E1,2186 'OFFSET_TEXTURE_2D_SCALE_NV': 0x86E2,2187 'OFFSET_TEXTURE_SCALE_NV': 0x86E2,2188 'OFFSET_TEXTURE_BIAS_NV': 0x86E3,2189 'OFFSET_TEXTURE_2D_BIAS_NV': 0x86E3,2190 'PREVIOUS_TEXTURE_INPUT_NV': 0x86E4,2191 'CONST_EYE_NV': 0x86E5,2192 'PASS_THROUGH_NV': 0x86E6,2193 'CULL_FRAGMENT_NV': 0x86E7,2194 'OFFSET_TEXTURE_2D_NV': 0x86E8,2195 'DEPENDENT_AR_TEXTURE_2D_NV': 0x86E9,2196 'DEPENDENT_GB_TEXTURE_2D_NV': 0x86EA,2197 'DOT_PRODUCT_NV': 0x86EC,2198 'DOT_PRODUCT_DEPTH_REPLACE_NV': 0x86ED,2199 'DOT_PRODUCT_TEXTURE_2D_NV': 0x86EE,2200 'DOT_PRODUCT_TEXTURE_CUBE_MAP_NV': 0x86F0,2201 'DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV': 0x86F1,2202 'DOT_PRODUCT_REFLECT_CUBE_MAP_NV': 0x86F2,2203 'DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV': 0x86F3,2204 'HILO_NV': 0x86F4,2205 'DSDT_NV': 0x86F5,2206 'DSDT_MAG_NV': 0x86F6,2207 'DSDT_MAG_VIB_NV': 0x86F7,2208 'HILO16_NV': 0x86F8,2209 'SIGNED_HILO_NV': 0x86F9,2210 'SIGNED_HILO16_NV': 0x86FA,2211 'SIGNED_RGBA_NV': 0x86FB,2212 'SIGNED_RGBA8_NV': 0x86FC,2213 'SIGNED_RGB_NV': 0x86FE,2214 'SIGNED_RGB8_NV': 0x86FF,2215 'SIGNED_LUMINANCE_NV': 0x8701,2216 'SIGNED_LUMINANCE8_NV': 0x8702,2217 'SIGNED_LUMINANCE_ALPHA_NV': 0x8703,2218 'SIGNED_LUMINANCE8_ALPHA8_NV': 0x8704,2219 'SIGNED_ALPHA_NV': 0x8705,2220 'SIGNED_ALPHA8_NV': 0x8706,2221 'SIGNED_INTENSITY_NV': 0x8707,2222 'SIGNED_INTENSITY8_NV': 0x8708,2223 'DSDT8_NV': 0x8709,2224 'DSDT8_MAG8_NV': 0x870A,2225 'DSDT8_MAG8_INTENSITY8_NV': 0x870B,2226 'SIGNED_RGB_UNSIGNED_ALPHA_NV': 0x870C,2227 'SIGNED_RGB8_UNSIGNED_ALPHA8_NV': 0x870D,2228 'HI_SCALE_NV': 0x870E,2229 'LO_SCALE_NV': 0x870F,2230 'DS_SCALE_NV': 0x8710,2231 'DT_SCALE_NV': 0x8711,2232 'MAGNITUDE_SCALE_NV': 0x8712,2233 'VIBRANCE_SCALE_NV': 0x8713,2234 'HI_BIAS_NV': 0x8714,2235 'LO_BIAS_NV': 0x8715,2236 'DS_BIAS_NV': 0x8716,2237 'DT_BIAS_NV': 0x8717,2238 'MAGNITUDE_BIAS_NV': 0x8718,2239 'VIBRANCE_BIAS_NV': 0x8719,2240 'TEXTURE_BORDER_VALUES_NV': 0x871A,2241 'TEXTURE_HI_SIZE_NV': 0x871B,2242 'TEXTURE_LO_SIZE_NV': 0x871C,2243 'TEXTURE_DS_SIZE_NV': 0x871D,2244 'TEXTURE_DT_SIZE_NV': 0x871E,2245 'TEXTURE_MAG_SIZE_NV': 0x871F,2246 'UNSIGNED_INT_S8_S8_8_8_NV': 0x86DA,2247 'UNSIGNED_INT_8_8_S8_S8_REV_NV': 0x86DB,2248 'DSDT_MAG_INTENSITY_NV': 0x86DC,2249 'DOT_PRODUCT_TEXTURE_3D_NV': 0x86EF,2250 'HILO_NV': 0x86F4,2251 'DSDT_NV': 0x86F5,2252 'DSDT_MAG_NV': 0x86F6,2253 'DSDT_MAG_VIB_NV': 0x86F7,2254 'HILO16_NV': 0x86F8,2255 'SIGNED_HILO_NV': 0x86F9,2256 'SIGNED_HILO16_NV': 0x86FA,2257 'SIGNED_RGBA_NV': 0x86FB,2258 'SIGNED_RGBA8_NV': 0x86FC,2259 'SIGNED_RGB_NV': 0x86FE,2260 'SIGNED_RGB8_NV': 0x86FF,2261 'SIGNED_LUMINANCE_NV': 0x8701,2262 'SIGNED_LUMINANCE8_NV': 0x8702,2263 'SIGNED_LUMINANCE_ALPHA_NV': 0x8703,2264 'SIGNED_LUMINANCE8_ALPHA8_NV': 0x8704,2265 'SIGNED_ALPHA_NV': 0x8705,2266 'SIGNED_ALPHA8_NV': 0x8706,2267 'SIGNED_INTENSITY_NV': 0x8707,2268 'SIGNED_INTENSITY8_NV': 0x8708,2269 'DSDT8_NV': 0x8709,2270 'DSDT8_MAG8_NV': 0x870A,2271 'DSDT8_MAG8_INTENSITY8_NV': 0x870B,2272 'SIGNED_RGB_UNSIGNED_ALPHA_NV': 0x870C,2273 'SIGNED_RGB8_UNSIGNED_ALPHA8_NV': 0x870D,2274 'OFFSET_PROJECTIVE_TEXTURE_2D_NV': 0x8850,2275 'OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV': 0x8851,2276 'OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV': 0x8852,2277 'OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV': 0x8853,2278 'OFFSET_HILO_TEXTURE_2D_NV': 0x8854,2279 'OFFSET_HILO_TEXTURE_RECTANGLE_NV': 0x8855,2280 'OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV': 0x8856,2281 'OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV': 0x8857,2282 'DEPENDENT_HILO_TEXTURE_2D_NV': 0x8858,2283 'DEPENDENT_RGB_TEXTURE_3D_NV': 0x8859,2284 'DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV': 0x885A,2285 'DOT_PRODUCT_PASS_THROUGH_NV': 0x885B,2286 'DOT_PRODUCT_TEXTURE_1D_NV': 0x885C,2287 'DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV': 0x885D,2288 'HILO8_NV': 0x885E,2289 'SIGNED_HILO8_NV': 0x885F,2290 'FORCE_BLUE_TO_ONE_NV': 0x8860,2291 'BACK_PRIMARY_COLOR_NV': 0x8C77,2292 'BACK_SECONDARY_COLOR_NV': 0x8C78,2293 'TEXTURE_COORD_NV': 0x8C79,2294 'CLIP_DISTANCE_NV': 0x8C7A,2295 'VERTEX_ID_NV': 0x8C7B,2296 'PRIMITIVE_ID_NV': 0x8C7C,2297 'GENERIC_ATTRIB_NV': 0x8C7D,2298 'TRANSFORM_FEEDBACK_ATTRIBS_NV': 0x8C7E,2299 'TRANSFORM_FEEDBACK_BUFFER_MODE_NV': 0x8C7F,2300 'MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV': 0x8C80,2301 'ACTIVE_VARYINGS_NV': 0x8C81,2302 'ACTIVE_VARYING_MAX_LENGTH_NV': 0x8C82,2303 'TRANSFORM_FEEDBACK_VARYINGS_NV': 0x8C83,2304 'TRANSFORM_FEEDBACK_BUFFER_START_NV': 0x8C84,2305 'TRANSFORM_FEEDBACK_BUFFER_SIZE_NV': 0x8C85,2306 'TRANSFORM_FEEDBACK_RECORD_NV': 0x8C86,2307 'PRIMITIVES_GENERATED_NV': 0x8C87,2308 'TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV': 0x8C88,2309 'RASTERIZER_DISCARD_NV': 0x8C89,2310 'MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV': 0x8C8A,2311 'MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV': 0x8C8B,2312 'INTERLEAVED_ATTRIBS_NV': 0x8C8C,2313 'SEPARATE_ATTRIBS_NV': 0x8C8D,2314 'TRANSFORM_FEEDBACK_BUFFER_NV': 0x8C8E,2315 'TRANSFORM_FEEDBACK_BUFFER_BINDING_NV': 0x8C8F,2316 'VERTEX_ARRAY_RANGE_NV': 0x851D,2317 'VERTEX_ARRAY_RANGE_LENGTH_NV': 0x851E,2318 'VERTEX_ARRAY_RANGE_VALID_NV': 0x851F,2319 'MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV': 0x8520,2320 'VERTEX_ARRAY_RANGE_POINTER_NV': 0x8521,2321 'VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV': 0x8533,2322 'VERTEX_PROGRAM_NV': 0x8620,2323 'VERTEX_STATE_PROGRAM_NV': 0x8621,2324 'ATTRIB_ARRAY_SIZE_NV': 0x8623,2325 'ATTRIB_ARRAY_STRIDE_NV': 0x8624,2326 'ATTRIB_ARRAY_TYPE_NV': 0x8625,2327 'CURRENT_ATTRIB_NV': 0x8626,2328 'PROGRAM_LENGTH_NV': 0x8627,2329 'PROGRAM_STRING_NV': 0x8628,2330 'MODELVIEW_PROJECTION_NV': 0x8629,2331 'IDENTITY_NV': 0x862A,2332 'INVERSE_NV': 0x862B,2333 'TRANSPOSE_NV': 0x862C,2334 'INVERSE_TRANSPOSE_NV': 0x862D,2335 'MAX_TRACK_MATRIX_STACK_DEPTH_NV': 0x862E,2336 'MAX_TRACK_MATRICES_NV': 0x862F,2337 'MATRIX0_NV': 0x8630,2338 'MATRIX1_NV': 0x8631,2339 'MATRIX2_NV': 0x8632,2340 'MATRIX3_NV': 0x8633,2341 'MATRIX4_NV': 0x8634,2342 'MATRIX5_NV': 0x8635,2343 'MATRIX6_NV': 0x8636,2344 'MATRIX7_NV': 0x8637,2345 'CURRENT_MATRIX_STACK_DEPTH_NV': 0x8640,2346 'CURRENT_MATRIX_NV': 0x8641,2347 'VERTEX_PROGRAM_POINT_SIZE_NV': 0x8642,2348 'VERTEX_PROGRAM_TWO_SIDE_NV': 0x8643,2349 'PROGRAM_PARAMETER_NV': 0x8644,2350 'ATTRIB_ARRAY_POINTER_NV': 0x8645,2351 'PROGRAM_TARGET_NV': 0x8646,2352 'PROGRAM_RESIDENT_NV': 0x8647,2353 'TRACK_MATRIX_NV': 0x8648,2354 'TRACK_MATRIX_TRANSFORM_NV': 0x8649,2355 'VERTEX_PROGRAM_BINDING_NV': 0x864A,2356 'PROGRAM_ERROR_POSITION_NV': 0x864B,2357 'VERTEX_ATTRIB_ARRAY0_NV': 0x8650,2358 'VERTEX_ATTRIB_ARRAY1_NV': 0x8651,2359 'VERTEX_ATTRIB_ARRAY2_NV': 0x8652,2360 'VERTEX_ATTRIB_ARRAY3_NV': 0x8653,2361 'VERTEX_ATTRIB_ARRAY4_NV': 0x8654,2362 'VERTEX_ATTRIB_ARRAY5_NV': 0x8655,2363 'VERTEX_ATTRIB_ARRAY6_NV': 0x8656,2364 'VERTEX_ATTRIB_ARRAY7_NV': 0x8657,2365 'VERTEX_ATTRIB_ARRAY8_NV': 0x8658,2366 'VERTEX_ATTRIB_ARRAY9_NV': 0x8659,2367 'VERTEX_ATTRIB_ARRAY10_NV': 0x865A,2368 'VERTEX_ATTRIB_ARRAY11_NV': 0x865B,2369 'VERTEX_ATTRIB_ARRAY12_NV': 0x865C,2370 'VERTEX_ATTRIB_ARRAY13_NV': 0x865D,2371 'VERTEX_ATTRIB_ARRAY14_NV': 0x865E,2372 'VERTEX_ATTRIB_ARRAY15_NV': 0x865F,2373 'MAP1_VERTEX_ATTRIB0_4_NV': 0x8660,2374 'MAP1_VERTEX_ATTRIB1_4_NV': 0x8661,2375 'MAP1_VERTEX_ATTRIB2_4_NV': 0x8662,2376 'MAP1_VERTEX_ATTRIB3_4_NV': 0x8663,2377 'MAP1_VERTEX_ATTRIB4_4_NV': 0x8664,2378 'MAP1_VERTEX_ATTRIB5_4_NV': 0x8665,2379 'MAP1_VERTEX_ATTRIB6_4_NV': 0x8666,2380 'MAP1_VERTEX_ATTRIB7_4_NV': 0x8667,2381 'MAP1_VERTEX_ATTRIB8_4_NV': 0x8668,2382 'MAP1_VERTEX_ATTRIB9_4_NV': 0x8669,2383 'MAP1_VERTEX_ATTRIB10_4_NV': 0x866A,2384 'MAP1_VERTEX_ATTRIB11_4_NV': 0x866B,2385 'MAP1_VERTEX_ATTRIB12_4_NV': 0x866C,2386 'MAP1_VERTEX_ATTRIB13_4_NV': 0x866D,2387 'MAP1_VERTEX_ATTRIB14_4_NV': 0x866E,2388 'MAP1_VERTEX_ATTRIB15_4_NV': 0x866F,2389 'MAP2_VERTEX_ATTRIB0_4_NV': 0x8670,2390 'MAP2_VERTEX_ATTRIB1_4_NV': 0x8671,2391 'MAP2_VERTEX_ATTRIB2_4_NV': 0x8672,2392 'MAP2_VERTEX_ATTRIB3_4_NV': 0x8673,2393 'MAP2_VERTEX_ATTRIB4_4_NV': 0x8674,2394 'MAP2_VERTEX_ATTRIB5_4_NV': 0x8675,2395 'MAP2_VERTEX_ATTRIB6_4_NV': 0x8676,2396 'MAP2_VERTEX_ATTRIB7_4_NV': 0x8677,2397 'MAP2_VERTEX_ATTRIB8_4_NV': 0x8678,2398 'MAP2_VERTEX_ATTRIB9_4_NV': 0x8679,2399 'MAP2_VERTEX_ATTRIB10_4_NV': 0x867A,2400 'MAP2_VERTEX_ATTRIB11_4_NV': 0x867B,2401 'MAP2_VERTEX_ATTRIB12_4_NV': 0x867C,2402 'MAP2_VERTEX_ATTRIB13_4_NV': 0x867D,2403 'MAP2_VERTEX_ATTRIB14_4_NV': 0x867E,2404 'MAP2_VERTEX_ATTRIB15_4_NV': 0x867F,2405 'MAX_PROGRAM_EXEC_INSTRUCTIONS_NV': 0x88F4,2406 'MAX_PROGRAM_CALL_DEPTH_NV': 0x88F5,2407 'MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB': 0x8B4C,2408 'BYTE': 0x1400,2409 'PALETTE4_RGB8_OES': 0x8B90,2410 'PALETTE4_RGBA8_OES': 0x8B91,2411 'PALETTE4_R5_G6_B5_OES': 0x8B92,2412 'PALETTE4_RGBA4_OES': 0x8B93,2413 'PALETTE4_RGB5_A1_OES': 0x8B94,2414 'PALETTE8_RGB8_OES': 0x8B95,2415 'PALETTE8_RGBA8_OES': 0x8B96,2416 'PALETTE8_R5_G6_B5_OES': 0x8B97,2417 'PALETTE8_RGBA4_OES': 0x8B98,2418 'PALETTE8_RGB5_A1_OES': 0x8B99,2419 'IMPLEMENTATION_COLOR_READ_TYPE_OES': 0x8B9A,2420 'IMPLEMENTATION_COLOR_READ_FORMAT_OES': 0x8B9B,2421 'INTERLACE_OML': 0x8980,2422 'INTERLACE_READ_OML': 0x8981,2423 'PACK_RESAMPLE_OML': 0x8984,2424 'UNPACK_RESAMPLE_OML': 0x8985,2425 'RESAMPLE_REPLICATE_OML': 0x8986,2426 'RESAMPLE_ZERO_FILL_OML': 0x8987,2427 'RESAMPLE_AVERAGE_OML': 0x8988,2428 'RESAMPLE_DECIMATE_OML': 0x8989,2429 'FORMAT_SUBSAMPLE_24_24_OML': 0x8982,2430 'FORMAT_SUBSAMPLE_244_244_OML': 0x8983,2431 'VERTEX23_BIT_PGI': 0x00000004,2432 'VERTEX4_BIT_PGI': 0x00000008,2433 'COLOR3_BIT_PGI': 0x00010000,2434 'COLOR4_BIT_PGI': 0x00020000,2435 'EDGEFLAG_BIT_PGI': 0x00040000,2436 'INDEX_BIT_PGI': 0x00080000,2437 'MAT_AMBIENT_BIT_PGI': 0x00100000,2438 'MAT_AMBIENT_AND_DIFFUSE_BIT_PGI': 0x00200000,2439 'MAT_DIFFUSE_BIT_PGI': 0x00400000,2440 'MAT_EMISSION_BIT_PGI': 0x00800000,2441 'MAT_COLOR_INDEXES_BIT_PGI': 0x01000000,2442 'MAT_SHININESS_BIT_PGI': 0x02000000,2443 'MAT_SPECULAR_BIT_PGI': 0x04000000,2444 'NORMAL_BIT_PGI': 0x08000000,2445 'TEXCOORD1_BIT_PGI': 0x10000000,2446 'TEXCOORD2_BIT_PGI': 0x20000000,2447 'TEXCOORD3_BIT_PGI': 0x40000000,2448 'TEXCOORD4_BIT_PGI': 0x80000000,2449 'SCREEN_COORDINATES_REND': 0x8490,2450 'INVERTED_SCREEN_W_REND': 0x8491,2451 'RGB_S3TC': 0x83A0,2452 'RGB4_S3TC': 0x83A1,2453 'RGBA_S3TC': 0x83A2,2454 'RGBA4_S3TC': 0x83A3,2455 'RGBA_DXT5_S3TC': 0x83A4,2456 'RGBA4_DXT5_S3TC': 0x83A5,2457 'EXTENDED_RANGE_SGIS': 0x85A5,2458 'MIN_RED_SGIS': 0x85A6,2459 'MAX_RED_SGIS': 0x85A7,2460 'MIN_GREEN_SGIS': 0x85A8,2461 'MAX_GREEN_SGIS': 0x85A9,2462 'MIN_BLUE_SGIS': 0x85AA,2463 'MAX_BLUE_SGIS': 0x85AB,2464 'MIN_ALPHA_SGIS': 0x85AC,2465 'MAX_ALPHA_SGIS': 0x85AD,2466 'GENERATE_MIPMAP_SGIS': 0x8191,2467 'GENERATE_MIPMAP_HINT_SGIS': 0x8192,2468 'MULTISAMPLE_SGIS': 0x809D,2469 'SAMPLE_ALPHA_TO_MASK_SGIS': 0x809E,2470 'SAMPLE_ALPHA_TO_ONE_SGIS': 0x809F,2471 'SAMPLE_MASK_SGIS': 0x80A0,2472 '1PASS_SGIS': 0x80A1,2473 '2PASS_0_SGIS': 0x80A2,2474 '2PASS_1_SGIS': 0x80A3,2475 '4PASS_0_SGIS': 0x80A4,2476 '4PASS_1_SGIS': 0x80A5,2477 '4PASS_2_SGIS': 0x80A6,2478 '4PASS_3_SGIS': 0x80A7,2479 'SAMPLE_BUFFERS_SGIS': 0x80A8,2480 'SAMPLES_SGIS': 0x80A9,2481 'SAMPLE_MASK_VALUE_SGIS': 0x80AA,2482 'SAMPLE_MASK_INVERT_SGIS': 0x80AB,2483 'SAMPLE_PATTERN_SGIS': 0x80AC,2484 'MULTISAMPLE_BIT_EXT': 0x20000000,2485 'EYE_DISTANCE_TO_POINT_SGIS': 0x81F0,2486 'OBJECT_DISTANCE_TO_POINT_SGIS': 0x81F1,2487 'EYE_DISTANCE_TO_LINE_SGIS': 0x81F2,2488 'OBJECT_DISTANCE_TO_LINE_SGIS': 0x81F3,2489 'EYE_POINT_SGIS': 0x81F4,2490 'OBJECT_POINT_SGIS': 0x81F5,2491 'EYE_LINE_SGIS': 0x81F6,2492 'OBJECT_LINE_SGIS': 0x81F7,2493 'CLAMP_TO_BORDER_SGIS': 0x812D,2494 'CLAMP_TO_EDGE_SGIS': 0x812F,2495 'TEXTURE_MIN_LOD_SGIS': 0x813A,2496 'TEXTURE_MAX_LOD_SGIS': 0x813B,2497 'TEXTURE_BASE_LEVEL_SGIS': 0x813C,2498 'TEXTURE_MAX_LEVEL_SGIS': 0x813D,2499 'ASYNC_MARKER_SGIX': 0x8329,2500 'ASYNC_HISTOGRAM_SGIX': 0x832C,2501 'MAX_ASYNC_HISTOGRAM_SGIX': 0x832D,2502 'ASYNC_TEX_IMAGE_SGIX': 0x835C,2503 'ASYNC_DRAW_PIXELS_SGIX': 0x835D,2504 'ASYNC_READ_PIXELS_SGIX': 0x835E,2505 'MAX_ASYNC_TEX_IMAGE_SGIX': 0x835F,2506 'MAX_ASYNC_DRAW_PIXELS_SGIX': 0x8360,2507 'MAX_ASYNC_READ_PIXELS_SGIX': 0x8361,2508 'ALPHA_MIN_SGIX': 0x8320,2509 'ALPHA_MAX_SGIX': 0x8321,2510 'CONVOLUTION_HINT_SGIX': 0x8316,2511 'DEPTH_COMPONENT16_SGIX': 0x81A5,2512 'DEPTH_COMPONENT24_SGIX': 0x81A6,2513 'DEPTH_COMPONENT32_SGIX': 0x81A7,2514 'FOG_OFFSET_SGIX': 0x8198,2515 'FOG_OFFSET_VALUE_SGIX': 0x8199,2516 'INTERLACE_SGIX': 0x8094,2517 'PACK_RESAMPLE_SGIX': 0x842E,2518 'UNPACK_RESAMPLE_SGIX': 0x842F,2519 'RESAMPLE_DECIMATE_SGIX': 0x8430,2520 'RESAMPLE_REPLICATE_SGIX': 0x8433,2521 'RESAMPLE_ZERO_FILL_SGIX': 0x8434,2522 'TEXTURE_COMPARE_SGIX': 0x819A,2523 'TEXTURE_COMPARE_OPERATOR_SGIX': 0x819B,2524 'TEXTURE_LEQUAL_R_SGIX': 0x819C,2525 'TEXTURE_GEQUAL_R_SGIX': 0x819D,2526 'SHADOW_AMBIENT_SGIX': 0x80BF,2527 'TEXTURE_MAX_CLAMP_S_SGIX': 0x8369,2528 'TEXTURE_MAX_CLAMP_T_SGIX': 0x836A,2529 'TEXTURE_MAX_CLAMP_R_SGIX': 0x836B,2530 'TEXTURE_MULTI_BUFFER_HINT_SGIX': 0x812E,2531 'RGB_SIGNED_SGIX': 0x85E0,2532 'RGBA_SIGNED_SGIX': 0x85E1,2533 'ALPHA_SIGNED_SGIX': 0x85E2,2534 'LUMINANCE_SIGNED_SGIX': 0x85E3,2535 'INTENSITY_SIGNED_SGIX': 0x85E4,2536 'LUMINANCE_ALPHA_SIGNED_SGIX': 0x85E5,2537 'RGB16_SIGNED_SGIX': 0x85E6,2538 'RGBA16_SIGNED_SGIX': 0x85E7,2539 'ALPHA16_SIGNED_SGIX': 0x85E8,2540 'LUMINANCE16_SIGNED_SGIX': 0x85E9,2541 'INTENSITY16_SIGNED_SGIX': 0x85EA,2542 'LUMINANCE16_ALPHA16_SIGNED_SGIX': 0x85EB,2543 'RGB_EXTENDED_RANGE_SGIX': 0x85EC,2544 'RGBA_EXTENDED_RANGE_SGIX': 0x85ED,2545 'ALPHA_EXTENDED_RANGE_SGIX': 0x85EE,2546 'LUMINANCE_EXTENDED_RANGE_SGIX': 0x85EF,2547 'INTENSITY_EXTENDED_RANGE_SGIX': 0x85F0,2548 'LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX': 0x85F1,2549 'RGB16_EXTENDED_RANGE_SGIX': 0x85F2,2550 'RGBA16_EXTENDED_RANGE_SGIX': 0x85F3,2551 'ALPHA16_EXTENDED_RANGE_SGIX': 0x85F4,2552 'LUMINANCE16_EXTENDED_RANGE_SGIX': 0x85F5,2553 'INTENSITY16_EXTENDED_RANGE_SGIX': 0x85F6,2554 'LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX': 0x85F7,2555 'MIN_LUMINANCE_SGIS': 0x85F8,2556 'MAX_LUMINANCE_SGIS': 0x85F9,2557 'MIN_INTENSITY_SGIS': 0x85FA,2558 'MAX_INTENSITY_SGIS': 0x85FB,2559 'POST_TEXTURE_FILTER_BIAS_SGIX': 0x8179,2560 'POST_TEXTURE_FILTER_SCALE_SGIX': 0x817A,2561 'POST_TEXTURE_FILTER_BIAS_RANGE_SGIX': 0x817B,2562 'POST_TEXTURE_FILTER_SCALE_RANGE_SGIX': 0x817C,2563 'VERTEX_PRECLIP_SGIX': 0x83EE,2564 'VERTEX_PRECLIP_HINT_SGIX': 0x83EF,2565 'VERTEX_PRECLIP_SGIX': 0x83EE,2566 'VERTEX_PRECLIP_HINT_SGIX': 0x83EF,2567 'COLOR_MATRIX_SGI': 0x80B1,2568 'COLOR_MATRIX_STACK_DEPTH_SGI': 0x80B2,2569 'MAX_COLOR_MATRIX_STACK_DEPTH_SGI': 0x80B3,2570 'POST_COLOR_MATRIX_RED_SCALE_SGI': 0x80B4,2571 'POST_COLOR_MATRIX_GREEN_SCALE_SGI': 0x80B5,2572 'POST_COLOR_MATRIX_BLUE_SCALE_SGI': 0x80B6,2573 'POST_COLOR_MATRIX_ALPHA_SCALE_SGI': 0x80B7,2574 'POST_COLOR_MATRIX_RED_BIAS_SGI': 0x80B8,2575 'POST_COLOR_MATRIX_GREEN_BIAS_SGI': 0x80B9,2576 'POST_COLOR_MATRIX_BLUE_BIAS_SGI': 0x80BA,2577 'POST_COLOR_MATRIX_ALPHA_BIAS_SGI': 0x80BB,2578 'COLOR_TABLE_SGI': 0x80D0,2579 'POST_CONVOLUTION_COLOR_TABLE_SGI': 0x80D1,2580 'POST_COLOR_MATRIX_COLOR_TABLE_SGI': 0x80D2,2581 'PROXY_COLOR_TABLE_SGI': 0x80D3,2582 'PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI': 0x80D4,2583 'PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI': 0x80D5,2584 'COLOR_TABLE_SCALE_SGI': 0x80D6,2585 'COLOR_TABLE_BIAS_SGI': 0x80D7,2586 'COLOR_TABLE_FORMAT_SGI': 0x80D8,2587 'COLOR_TABLE_WIDTH_SGI': 0x80D9,2588 'COLOR_TABLE_RED_SIZE_SGI': 0x80DA,2589 'COLOR_TABLE_GREEN_SIZE_SGI': 0x80DB,2590 'COLOR_TABLE_BLUE_SIZE_SGI': 0x80DC,2591 'COLOR_TABLE_ALPHA_SIZE_SGI': 0x80DD,2592 'COLOR_TABLE_LUMINANCE_SIZE_SGI': 0x80DE,2593 'COLOR_TABLE_INTENSITY_SIZE_SGI': 0x80DF,2594 'TEXTURE_COLOR_TABLE_SGI': 0x80BC,2595 'PROXY_TEXTURE_COLOR_TABLE_SGI': 0x80BD,2596 'UNPACK_CONSTANT_DATA_SUNX': 0x81D5,2597 'TEXTURE_CONSTANT_DATA_SUNX': 0x81D6,2598 'WRAP_BORDER_SUN': 0x81D4,2599 'GLOBAL_ALPHA_SUN': 0x81D9,2600 'GLOBAL_ALPHA_FACTOR_SUN': 0x81DA,2601 'QUAD_MESH_SUN': 0x8614,2602 'TRIANGLE_MESH_SUN': 0x8615,2603 'SLICE_ACCUM_SUN': 0x85CC,2604 'RESTART_SUN': 0x01,2605 'REPLACE_MIDDLE_SUN': 0x02,2606 'REPLACE_OLDEST_SUN': 0x03,2607 'TRIANGLE_LIST_SUN': 0x81D7,2608 'REPLACEMENT_CODE_SUN': 0x81D8,2609 'REPLACEMENT_CODE_ARRAY_SUN': 0x85C0,2610 'REPLACEMENT_CODE_ARRAY_TYPE_SUN': 0x85C1,2611 'REPLACEMENT_CODE_ARRAY_STRIDE_SUN': 0x85C2,2612 'REPLACEMENT_CODE_ARRAY_POINTER_SUN': 0x85C3,2613 'R1UI_V3F_SUN': 0x85C4,2614 'R1UI_C4UB_V3F_SUN': 0x85C5,2615 'R1UI_C3F_V3F_SUN': 0x85C6,2616 'R1UI_N3F_V3F_SUN': 0x85C7,2617 'R1UI_C4F_N3F_V3F_SUN': 0x85C8,2618 'R1UI_T2F_V3F_SUN': 0x85C9,2619 'R1UI_T2F_N3F_V3F_SUN': 0x85CA,2620 'R1UI_T2F_C4F_N3F_V3F_SUN': 0x85CB,2621 'PHONG_WIN': 0x80EA,2622 'PHONG_HINT_WIN': 0x80EB,2623 'FOG_SPECULAR_TEXTURE_WIN': 0x80EC...
glbuild.c.ts
Source:glbuild.c.ts
1/// <reference path="../../utils/assert.ts" />2/// <reference path="../../utils/c.ts" />3/// <reference path="../../utils/todo.ts" />4/// <reference path="../../utils/types.ts" />5/// <reference path="../../libs/WebGL.d.ts" />6/// <reference path="../../libs/tsm/tsm-0.6.d.ts" />7/// <reference path="../../build/headers/glbuild.h.ts" />8declare module WebGLDebugUtils {9 function makeDebugContext(ctx: WebGLRenderingContext, nothingInParticular: any, fnForEveryCall: any): WebGLRenderingContext;10 function glFunctionArgsToString(fn: string, args: any[]): WebGLRenderingContext;11}12function logGLCall(functionName: string, args: any[]): void { 13 console.error("gl." + functionName + "(" + 14 WebGLDebugUtils.glFunctionArgsToString(functionName, args) + ")"); 15} 16function validateNoneOfTheArgsAreUndefined(functionName: string, args: any[]): void {17 for (var ii = 0; ii < args.length; ++ii) {18 if (args[ii] === undefined) {19 debugger;20 console.error("undefined passed to gl." + functionName + "(" +21 WebGLDebugUtils.glFunctionArgsToString(functionName, args) + ")");22 }23 if (typeof args[ii] === "number" && isNaN(args[ii])) {24 debugger;25 console.error("NaN passed to gl." + functionName + "(" +26 WebGLDebugUtils.glFunctionArgsToString(functionName, args) + ")");27 }28 }29} 30function logAndValidate(functionName: string, args: any[]): void {31 logGLCall(functionName, args);32 validateNoneOfTheArgsAreUndefined (functionName, args);33}34var gl: WebGLRenderingContext = DEBUG_WEBGL_UTIL ? WebGLDebugUtils.makeDebugContext(GL.create({}), undefined, logAndValidate) : GL.create({});35//var gl: WebGLRenderingContext= GL.create({});36if(document.body /*qunit*/)37 document.body.appendChild(gl.canvas);38//gl.canvas.width = document.documentElement.clientWidth - 5;39//gl.canvas.height = document.documentElement.clientHeight - 5;40gl.canvas.width = 1200;41gl.canvas.height = 800;42// set non-existent enums negative43var GL_TEXTURE0_ARB = gl.TEXTURE0;44var GL_TEXTURE_MIN_FILTER = gl.TEXTURE_MIN_FILTER;45var GL_TEXTURE_MAG_FILTER = gl.TEXTURE_MAG_FILTER;46var GL_NEAREST = gl.NEAREST;47var GL_COLOR_BUFFER_BIT = gl.COLOR_BUFFER_BIT;48var GL_DEPTH_BUFFER_BIT = gl.DEPTH_BUFFER_BIT;49var GL_STENCIL_BUFFER_BIT = gl.STENCIL_BUFFER_BIT;50var GL_TRIANGLE_FAN = gl.TRIANGLE_FAN;51var GL_TEXTURE_2D = gl.TEXTURE_2D;52var GL_TEXTURE = gl.TEXTURE;53var GL_MODELVIEW = gl.MODELVIEW;54var GL_BLEND = gl.BLEND;55var GL_ALPHA_TEST = -99000;//todo?gl.ALPHA_TEST;56var GL_GREATER = gl.GREATER;//todo?gl.ALPHA_TEST;57var GL_RGB = gl.RGB;58var GL_RGBA = gl.RGBA;59var GL_PROJECTION = gl.PROJECTION;60var GL_DEPTH_TEST = gl.DEPTH_TEST;61var GL_TEXTURE_WRAP_S = gl.TEXTURE_WRAP_S;62var GL_TEXTURE_WRAP_T = gl.TEXTURE_WRAP_T;63var GL_REPEAT = gl.REPEAT;64var GL_CLAMP_TO_EDGE = gl.CLAMP_TO_EDGE;65var GL_CLAMP: number = null; //off66var GL_FOG = -99999; 67var GL_UNSIGNED_BYTE = gl.UNSIGNED_BYTE;68var GL_MAX_TEXTURE_SIZE = gl.MAX_TEXTURE_SIZE;69var GL_ALWAYS = gl.ALWAYS;70var GL_FRONT_AND_BACK = gl.FRONT_AND_BACK;71var GL_LEQUAL = gl.LEQUAL;72var GL_POLYGON_OFFSET_FILL = gl.POLYGON_OFFSET_FILL;73var GL_ARRAY_BUFFER_ARB = gl.ARRAY_BUFFER;74var GL_VERTEX_SHADER_ARB = gl.VERTEX_SHADER;75var GL_FRAGMENT_SHADER_ARB = gl.FRAGMENT_SHADER;76var GL_OBJECT_LINK_STATUS_ARB = gl.LINK_STATUS;77var GL_FLOAT = gl.FLOAT;78var GL_CULL_FACE = gl.CULL_FACE;79var GL_FRONT = gl.FRONT;80var GL_BACK = gl.BACK;81var GL_ELEMENT_ARRAY_BUFFER_ARB = gl.ELEMENT_ARRAY_BUFFER;82var GL_STREAM_DRAW_ARB = gl.STREAM_DRAW;83var GL_STATIC_DRAW_ARB = gl.STATIC_DRAW;84var GL_VERTEX_ARRAY = gl.VERTEX_ARRAY;85var GL_TEXTURE_COORD_ARRAY = gl.TEXTURE_COORD_ARRAY;86//var GL_FILL = gl.FILL;87//var GL_LINE = gl.LINE;88//var GL_POINT = gl.POINT;89var GL_TEXTURE_3D = 0x806F;//todo90var GL_TEXTURE_RECTANGLE = 0x84F5;//todo91var GL_TRUE = 0;92var GL_FALSE = 0;93//#include "compat.h"94//#include "glbuild.h"95//#include "baselayer.h"96//#include <stdlib.h>97//#include <string.h>98//#include <stdio.h>99//#if defined USE_OPENGL100//#ifdef RENDERTYPESDL101//#include "sdl_inc.h"102//#endif103var bglClearColor = gl.clearColor.bind(gl);//bglClearColorProcPtr;104var bglClear = gl.clear.bind(gl);//bglClearProcPtr;105var bglColorMask = gl.colorMask.bind(gl); //bglColorMaskProcPtr 106var bglAlphaFunc = function (arg1:any,arg2:any) {todoUnimportant("alphaFunc");}//gl.alphaFunc.bind(gl); //bglAlphaFuncProcPtr //http://stackoverflow.com/questions/7277047/alphafunctions-in-webgl107//bglBlendFuncProcPtr bglBlendFunc;108//bglBlendEquationProcPtr bglBlendEquation;109var bglCullFace = gl.cullFace.bind(gl);110//bglFrontFaceProcPtr bglFrontFace;111var bglPolygonOffset = gl.polygonOffset.bind(gl); //bglPolygonOffsetProcPtr 112//bglPolygonModeProcPtr bglPolygonMode;113var bglEnable = function(v) {114 if(v < 0) return; // manually set values to negative115 gl.enable.call(gl, v);116}; 117var bglDisable = function(v) {118 if(v < 0) return; // manually set values to negative119 gl.disable.call(gl, v);120}; 121//bglGetDoublevProcPtr bglGetDoublev;122var bglGetFloatv = function() {todoThrow();}//bglGetFloatvProcPtr //http://msdn.microsoft.com/en-us/library/windows/desktop/ee872026(v=vs.85).aspx123var bglGetIntegerv = gl.getParameter.bind(gl); //bglGetIntegervProcPtr 124var bglPushAttrib = function() {todoThrow();/*gone!*/};//bglPushAttribProcPtr 125var bglPopAttrib = function() {todoThrow();/*gone!*/};126//bglGetErrorProcPtr bglGetError;127//bglGetStringProcPtr bglGetString;128//bglHintProcPtr bglHint;129//bglDrawBufferProcPtr bglDrawBuffer;130//bglReadBufferProcPtr bglReadBuffer;131//bglScissorProcPtr bglScissor;132//bglClipPlaneProcPtr bglClipPlane;133// Depth134var bglDepthFunc = gl.depthFunc.bind(gl); //bglDepthFuncProcPtr 135//bglDepthMaskProcPtr bglDepthMask;136var bglDepthRange = gl.depthRange.bind(gl); //bglDepthRangeProcPtr 137// Matrix138var bglMatrixMode = gl.matrixMode.bind(gl);//bglMatrixModeProcPtr ;139//bglOrthoProcPtr bglOrtho;140//bglFrustumProcPtr bglFrustum;141var bglViewport = gl.viewport.bind(gl);//bglViewportProcPtr ;142var bglPushMatrix = gl.pushMatrix.bind(gl);//bglPushMatrixProcPtr ;143var bglPopMatrix = gl.popMatrix.bind(gl); //bglPopMatrixProcPtr 144var bglLoadIdentity = gl.loadIdentity.bind(gl);//bglLoadIdentityProcPtr ;145//var bglLoadMatrixf = gl.loadMatrix.bind(gl);146function bglLoadMatrixf (arr: any):void {147 if(arr.length === 4) {148 var mat = new GL.Matrix(149 arr[0][0],150 arr[1][0],151 arr[2][0],152 arr[3][0],153 arr[0][1],154 arr[1][1],155 arr[2][1],156 arr[3][1],157 arr[0][2],158 arr[1][2],159 arr[2][2],160 arr[3][2],161 arr[0][3],162 arr[1][3],163 arr[2][3],164 arr[3][3]);165 166 gl.loadMatrix.call(gl, mat);//bglLoadMatrixfProcPtr ;167 }168 else if(arr.length === 16) {169 gl.loadMatrix.call(gl, arr);170 }171 else {172 throw "matrix must be either 4x4 or 1x16";173 }174}175//bglLoadMatrixdProcPtr bglLoadMatrixd;176var bglMultMatrixf = function() {177 todoThrow();178 //http://stackoverflow.com/questions/11228187/trying-and-failing-to-implement-glulookat-in-webgl179};//bglMultMatrixfProcPtr 180//bglMultMatrixdProcPtr bglMultMatrixd;181//bglRotatefProcPtr bglRotatef;182//bglScalefProcPtr bglScalef;183//bglTranslatefProcPtr bglTranslatef;184// Drawing // http://www.irit.fr/~Rodolphe.Vaillant/?e=8 - c++ class to emulate direct drawing mode185// http://stackoverflow.com/questions/14765017/opengl-point-funtionality-in-webgl186var bglBegin = gl.begin.bind(gl);//bglBeginProcPtr bglBegin;187var bglEnd = gl.end.bind(gl); //bglEndProcPtr 188//bglVertex2fProcPtr bglVertex2f;189//bglVertex2iProcPtr bglVertex2i;190var bglVertex3f = function(x: number, y: number, z: number) {191 gl.vertex.call(gl, x, y, z);192}; //bglVertex3fProcPtr 193var bglVertex3d = bglVertex3f;//bglVertex3dProcPtr;194//bglVertex3fvProcPtr bglVertex3fv;195//bglVertex3dvProcPtr bglVertex3dv;196//bglRectdProcPtr bglRectd;197var bglColor4f = gl.color.bind(gl);/*4f*/; //bglColor4fProcPtr 198var bglColor4ub = gl.color.bind(gl)//bglColor4ubProcPtr ;199var bglTexCoord2d = gl.texCoord.bind(gl); //bglTexCoord2dProcPtr 200//bglTexCoord2fProcPtr bglTexCoord2f;201//bglTexCoord2iProcPtr bglTexCoord2i;202//bglNormal3fProcPtr bglNormal3f;203// Lighting204//bglShadeModelProcPtr bglShadeModel;205var bglLightfv = function() {todoThrow();};//bglLightfvProcPtr 206// Raster funcs207//bglReadPixelsProcPtr bglReadPixels;208//bglRasterPos4iProcPtr bglRasterPos4i;209//bglDrawPixelsProcPtr bglDrawPixels;210//bglPixelStoreiProcPtr bglPixelStorei;211// Texture mapping212//texture wrap stuff https://code.google.com/p/webglsamples/source/browse/color-adjust/color-adjust.html (linked from http://stackoverflow.com/questions/14150941/webgl-glsl-emulate-texture3d )213//bglTexEnvfProcPtr bglTexEnvf;214var bglGenTextures = function(/*GLsizei (int)*/ n: number, /*GLuint **/textures: number): void {215 todo("use params??");216 gl.createTexture.call(gl);217};//gl.createTexture;//bglGenTexturesProcPtr// http://www.khronos.org/files/webgl/webgl-reference-card-1_0.pdf Note: Corresponding OpenGL ES function is GenTextures218//bglDeleteTexturesProcPtr bglDeleteTextures;219var bglBindTexture = gl.bindTexture.bind(gl);//bglBindTextureProcPtr 220var bglTexImage2D = function(target: number, level: number, internalformat: number, width: number, height: number, border: number, format: number, type: number, pixels: ArrayBufferView) {221 if(target === GL_TEXTURE_3D) {222 todoThrow(); //http://stackoverflow.com/questions/14150941/webgl-glsl-emulate-texture3d223 }224 if(target === GL_TEXTURE_RECTANGLE) {225 todoThrow(); //http://stackoverflow.com/questions/6883160/opengl-es-gl-texture-rectangle226 }227 if(DEBUG_APPEND_TEXTURES_TO_BODY) {228 if(level < 2) {229 var can = <HTMLCanvasElement>document.createElement("canvas"),230 ctx = can.getContext('2d');231 can.width = width; 232 can.height = height;233 var img = ctx.createImageData(width, height);234 for (var i=0; i<img.data.length; i++) {235 img.data[i] = pixels[i];236 }237 ctx.putImageData(img, 0, 0);238 var text ="target: " + target + ", level: " + level+ ", internalformat: " + internalformat+ ", width: " + width+ ", height: " + height+ ", border: " + border+ ", format: " + format+ ", type: " + type;239 //console.log(text);240 //console.image(can.toDataURL());241 can.title = text;242 document.body.appendChild(can);243 }244 //http://stackoverflow.com/questions/3792027/webgl-and-the-power-of-two-problem245 //resize: http://www.khronos.org/webgl/wiki/WebGL_and_OpenGL_Differences#Non-Power_of_Two_Texture_Support246 }247 if(internalformat != format) {248 todoThrow("internalformat must === format");249 }250 gl.texImage2D.call(gl, target, level, internalformat, width, height, border, format, type, pixels);251};252//bglTexImage2DProcPtr 253//bglTexImage3DProcPtr bglTexImage3D;254//bglCopyTexImage2DProcPtr bglCopyTexImage2D;255//bglCopyTexSubImage2DProcPtr bglCopyTexSubImage2D;256var bglTexSubImage2D = gl.texSubImage2D.bind(gl);//bglTexSubImage2DProcPtr 257//bglTexParameterfProcPtr bglTexParameterf;258var bglTexParameteri = gl. texParameteri.bind(gl);//bglTexParameteriProcPtr 259//bglGetTexParameterivProcPtr bglGetTexParameteriv;260//bglGetTexLevelParameterivProcPtr bglGetTexLevelParameteriv;261//bglCompressedTexImage2DARBProcPtr bglCompressedTexImage2DARB;262//bglGetCompressedTexImageARBProcPtr bglGetCompressedTexImageARB;263//bglTexGenfvProcPtr bglTexGenfv;264//// Fog265//bglFogfProcPtr bglFogf;266//bglFogiProcPtr bglFogi;267//bglFogfvProcPtr bglFogfv;268//// Display Lists269//bglNewListProcPtr bglNewList;270//bglEndListProcPtr bglEndList;271//bglCallListProcPtr bglCallList;272//bglDeleteListsProcPtr bglDeleteLists;273// Vertex Arrays274var bglEnableClientState = gl.enable.bind(gl);275var bglDisableClientState = gl.disable.bind(gl);276//bglVertexPointerProcPtr bglVertexPointer;277//bglNormalPointerProcPtr bglNormalPointer;278//bglTexCoordPointerProcPtr bglTexCoordPointer;279//bglDrawArraysProcPtr bglDrawArrays;280//bglDrawElementsProcPtr bglDrawElements;281// Stencil Buffer282var bglClearStencil = gl.clearStencil.bind(gl);283//bglStencilOpProcPtr bglStencilOp;284//bglStencilFuncProcPtr bglStencilFunc;285//// GPU Programs286//bglGenProgramsARBProcPtr bglGenProgramsARB;287//bglBindProgramARBProcPtr bglBindProgramARB;288//bglProgramStringARBProcPtr bglProgramStringARB;289//bglDeleteProgramsARBProcPtr bglDeleteProgramsARB;290//// Multitexturing291var bglActiveTextureARB = gl.activeTexture.bind(gl); //bglActiveTextureARBProcPtr 292//bglClientActiveTextureARBProcPtr bglClientActiveTextureARB;293//var bglMultiTexCoord2dARB = gl.multiTexCoord2dARB; //bglMultiTexCoord2dARBProcPtr //https://groups.google.com/forum/#!topic/webgl-dev-list/jHejip4u-Vo294//bglMultiTexCoord2fARBProcPtr bglMultiTexCoord2fARB;295//// Frame Buffer Objects296//bglGenFramebuffersEXTProcPtr bglGenFramebuffersEXT;297//bglBindFramebufferEXTProcPtr bglBindFramebufferEXT;298//bglFramebufferTexture2DEXTProcPtr bglFramebufferTexture2DEXT;299//bglCheckFramebufferStatusEXTProcPtr bglCheckFramebufferStatusEXT;300//bglDeleteFramebuffersEXTProcPtr bglDeleteFramebuffersEXT;301// Vertex Buffer Objects302//bglGenBuffersARBProcPtr bglGenBuffersARB; // use gl.createBuffer instead303var bglBindBufferARB = gl.bindBuffer.bind(gl);304//bglDeleteBuffersARBProcPtr bglDeleteBuffersARB;305var bglBufferDataARB = gl.bufferData.bind(gl);306var bglBufferSubDataARB = function(target:number, offset:number, size: number, data: any /*ArrayBufferView|number*/ ) {307 if(offset > 0) todoThrow("maybe need todo a subarray");308 gl.bufferSubData.call(gl, target, offset, data);309};310//bglMapBufferARBProcPtr bglMapBufferARB;311//bglUnmapBufferARBProcPtr bglUnmapBufferARB;312//// Occlusion queries313//bglGenQueriesARBProcPtr bglGenQueriesARB;314//bglDeleteQueriesARBProcPtr bglDeleteQueriesARB;315//bglIsQueryARBProcPtr bglIsQueryARB;316//bglBeginQueryARBProcPtr bglBeginQueryARB;317//bglEndQueryARBProcPtr bglEndQueryARB;318//bglGetQueryivARBProcPtr bglGetQueryivARB;319//bglGetQueryObjectivARBProcPtr bglGetQueryObjectivARB;320//bglGetQueryObjectuivARBProcPtr bglGetQueryObjectuivARB;321//// Shader Objects322//bglDeleteObjectARBProcPtr bglDeleteObjectARB;323//bglGetHandleARBProcPtr bglGetHandleARB;324//bglDetachObjectARBProcPtr bglDetachObjectARB;325var bglCreateShaderObjectARB = gl.createShader.bind(gl); ////bglCreateShaderObjectARBProcPtr 326var bglShaderSourceARB = function(shader: WebGLShader, count:number, source:string, length: number) {327 gl.shaderSource.call(gl, shader, source);328} ////bglShaderSourceARBProcPtr 329var bglCompileShaderARB = gl.compileShader.bind(gl); //bglCompileShaderARBProcPtr 330var bglCreateProgramObjectARB = gl.createProgram.bind(gl);//bglCreateProgramObjectARBProcPtr 331var bglAttachObjectARB = gl.attachShader.bind(gl);//bglAttachObjectARBProcPtr 332var bglLinkProgramARB = gl.linkProgram.bind(gl);//bglLinkProgramARBProcPtr 333var bglUseProgramObjectARB = gl.useProgram.bind(gl);//bglUseProgramObjectARBProcPtr 334//bglValidateProgramARBProcPtr bglValidateProgramARB;335var bglUniform1fARB = gl.uniform1f.bind(gl);//bglUniform1fARBProcPtr 336var bglUniform2fARB = gl.uniform2f.bind(gl); //bglUniform2fARBProcPtr 337var bglUniform3fARB = gl.uniform3f.bind(gl); //bglUniform3fARBProcPtr 338var bglUniform4fARB = gl.uniform4f.bind(gl); //bglUniform4fARBProcPtr 339var bglUniform1iARB = gl.uniform1i.bind(gl); //bglUniform1iARBProcPtr 340var bglUniform2iARB = gl.uniform2i.bind(gl); //bglUniform2iARBProcPtr 341var bglUniform3iARB = gl.uniform3i.bind(gl); //bglUniform3iARBProcPtr 342var bglUniform4iARB = gl.uniform4i.bind(gl); //bglUniform4iARBProcPtr 343var bglUniform1fvARB = gl.uniform1fv.bind(gl); //bglUniform1fvARBProcPtr344var bglUniform2fvARB = function(location: WebGLUniformLocation, count:number , v: Float32Array):void {gl.uniform2fv.call(gl, location, v);}345var bglUniform3fvARB = gl.uniform3fv.bind(gl); //bglUniform3fvARBProcPtr346var bglUniform4fvARB = gl.uniform4fv.bind(gl); //bglUniform4fvARBProcPtr347var bglUniform1ivARB = gl.uniform1iv.bind(gl); //bglUniform1ivARBProcPtr348var bglUniform2ivARB = gl.uniform2iv.bind(gl); //bglUniform2ivARBProcPtr349var bglUniform3ivARB = gl.uniform3iv.bind(gl); //bglUniform3ivARBProcPtr350var bglUniform4ivARB = gl.uniform4iv.bind(gl); //bglUniform4ivARBProcPtr351var bglUniformMatrix2fvARB = gl.uniformMatrix2fv.bind(gl);352var bglUniformMatrix3fvARB = gl.uniformMatrix3fv.bind(gl);353var bglUniformMatrix4fvARB = gl.uniformMatrix4fv.bind(gl);354//bglGetObjectParameterfvARBProcPtr bglGetObjectParameterfvARB;355var bglGetObjectParameterivARB = gl.getProgramParameter.bind(gl);//bglGetObjectParameterivARBProcPtr 356var bglGetInfoLogARB = function() {/*todo*/};357//bglGetAttachedObjectsARBProcPtr bglGetAttachedObjectsARB;358var bglGetUniformLocationARB = gl.getUniformLocation.bind(gl);//bglGetUniformLocationARBProcPtr 359//bglGetActiveUniformARBProcPtr bglGetActiveUniformARB;360//bglGetUniformfvARBProcPtr bglGetUniformfvARB;361//bglGetUniformivARBProcPtr bglGetUniformivARB;362var bglGetShaderSourceARB = gl.getShaderSource.bind(gl);363//// Vertex Shaders364//bglVertexAttrib1dARBProcPtr bglVertexAttrib1dARB;365//bglVertexAttrib1dvARBProcPtr bglVertexAttrib1dvARB;366//bglVertexAttrib1fARBProcPtr bglVertexAttrib1fARB;367//bglVertexAttrib1fvARBProcPtr bglVertexAttrib1fvARB;368//bglVertexAttrib1sARBProcPtr bglVertexAttrib1sARB;369//bglVertexAttrib1svARBProcPtr bglVertexAttrib1svARB;370//bglVertexAttrib2dARBProcPtr bglVertexAttrib2dARB;371//bglVertexAttrib2dvARBProcPtr bglVertexAttrib2dvARB;372//bglVertexAttrib2fARBProcPtr bglVertexAttrib2fARB;373//bglVertexAttrib2fvARBProcPtr bglVertexAttrib2fvARB;374//bglVertexAttrib2sARBProcPtr bglVertexAttrib2sARB;375//bglVertexAttrib2svARBProcPtr bglVertexAttrib2svARB;376//bglVertexAttrib3dARBProcPtr bglVertexAttrib3dARB;377//bglVertexAttrib3dvARBProcPtr bglVertexAttrib3dvARB;378//bglVertexAttrib3fARBProcPtr bglVertexAttrib3fARB;379//bglVertexAttrib3fvARBProcPtr bglVertexAttrib3fvARB;380//bglVertexAttrib3sARBProcPtr bglVertexAttrib3sARB;381//bglVertexAttrib3svARBProcPtr bglVertexAttrib3svARB;382//bglVertexAttrib4NbvARBProcPtr bglVertexAttrib4NbvARB;383//bglVertexAttrib4NivARBProcPtr bglVertexAttrib4NivARB;384//bglVertexAttrib4NsvARBProcPtr bglVertexAttrib4NsvARB;385//bglVertexAttrib4NubARBProcPtr bglVertexAttrib4NubARB;386//bglVertexAttrib4NubvARBProcPtr bglVertexAttrib4NubvARB;387//bglVertexAttrib4NuivARBProcPtr bglVertexAttrib4NuivARB;388//bglVertexAttrib4NusvARBProcPtr bglVertexAttrib4NusvARB;389//bglVertexAttrib4bvARBProcPtr bglVertexAttrib4bvARB;390//bglVertexAttrib4dARBProcPtr bglVertexAttrib4dARB;391//bglVertexAttrib4dvARBProcPtr bglVertexAttrib4dvARB;392//bglVertexAttrib4fARBProcPtr bglVertexAttrib4fARB;393//bglVertexAttrib4fvARBProcPtr bglVertexAttrib4fvARB;394//bglVertexAttrib4ivARBProcPtr bglVertexAttrib4ivARB;395//bglVertexAttrib4sARBProcPtr bglVertexAttrib4sARB;396//bglVertexAttrib4svARBProcPtr bglVertexAttrib4svARB;397//bglVertexAttrib4ubvARBProcPtr bglVertexAttrib4ubvARB;398//bglVertexAttrib4uivARBProcPtr bglVertexAttrib4uivARB;399//bglVertexAttrib4usvARBProcPtr bglVertexAttrib4usvARB;400var bglVertexAttribPointerARB = gl.vertexAttribPointer.bind(gl);//bglVertexAttribPointerARBProcPtr 401var bglEnableVertexAttribArrayARB = gl.enableVertexAttribArray.bind(gl);//bglEnableVertexAttribArrayARBProcPtr 402var bglDisableVertexAttribArrayARB = gl.disableVertexAttribArray.bind(gl);403//bglGetVertexAttribdvARBProcPtr bglGetVertexAttribdvARB;404//bglGetVertexAttribfvARBProcPtr bglGetVertexAttribfvARB;405//bglGetVertexAttribivARBProcPtr bglGetVertexAttribivARB;406//bglGetVertexAttribPointervARBProcPtr bglGetVertexAttribPointervARB;407//bglBindAttribLocationARBProcPtr bglBindAttribLocationARB;408//bglGetActiveAttribARBProcPtr bglGetActiveAttribARB;409var bglGetAttribLocationARB = gl.getAttribLocation.bind(gl);//bglGetAttribLocationARBProcPtr 410//// Debug Output411//#ifndef __APPLE__412//bglDebugMessageControlARBProcPtr bglDebugMessageControlARB;413//bglDebugMessageCallbackARBProcPtr bglDebugMessageCallbackARB;414//#endif415//// GLU416//bgluTessBeginContourProcPtr bgluTessBeginContour;417//bgluTessBeginPolygonProcPtr bgluTessBeginPolygon;418//bgluTessCallbackProcPtr bgluTessCallback;419//bgluTessEndContourProcPtr bgluTessEndContour;420//bgluTessEndPolygonProcPtr bgluTessEndPolygon;421//bgluTessNormalProcPtr bgluTessNormal;422//bgluTessPropertyProcPtr bgluTessProperty;423//bgluTessVertexProcPtr bgluTessVertex;424//bgluNewTessProcPtr bgluNewTess;425//bgluDeleteTessProcPtr bgluDeleteTess;426var bgluPerspective = function(fov:number, aspect:number, near:number, far:number) {427 //http://forums.inside3d.com/viewtopic.php?t=3369428 //http://learningwebgl.com/blog/?p=507429 //https://github.com/OneGeek/WebGLU/blob/73e7c4f341e5d1464b29c10db2168779907764d5/src/GLU.js430 var m = TSM.mat4.perspective(fov, aspect, near, far);431 //http://stackoverflow.com/questions/2417697/gluperspective-was-removed-in-opengl-3-1-any-replacements ------------432}433//bgluErrorStringProcPtr bgluErrorString;434//bgluProjectProcPtr bgluProject;435//bgluUnProjectProcPtr bgluUnProject;436//#ifdef _WIN32437//// Windows438//bwglCreateContextProcPtr bwglCreateContext;439//bwglDeleteContextProcPtr bwglDeleteContext;440//bwglGetProcAddressProcPtr bwglGetProcAddress;441//bwglMakeCurrentProcPtr bwglMakeCurrent;442//bwglSwapBuffersProcPtr bwglSwapBuffers;443//bwglChoosePixelFormatProcPtr bwglChoosePixelFormat;444//bwglDescribePixelFormatProcPtr bwglDescribePixelFormat;445//bwglGetPixelFormatProcPtr bwglGetPixelFormat;446//bwglSetPixelFormatProcPtr bwglSetPixelFormat;447//bwglSwapIntervalEXTProcPtr bwglSwapIntervalEXT;448//bwglCreateContextAttribsARBProcPtr bwglCreateContextAttribsARB;449//static HMODULE hGLDLL, hGLUDLL;450//#else451//#include <dlfcn.h>452//static void *gluhandle = NULL;453//#endif454//char *gldriver = NULL, *glulibrary = NULL;455//static void *getproc_(const char *s, int32_t *err, int32_t fatal, int32_t extension)456//{457// void *t;458//#if defined RENDERTYPESDL459// UNREFERENCED_PARAMETER(extension);460// t = (void *)SDL_GL_GetProcAddress(s);461//#elif defined _WIN32462// if (extension) t = (void *)bwglGetProcAddress(s);463// else t = (void *)GetProcAddress(hGLDLL,s);464//#else465//#error Need a dynamic loader for this platform...466//#endif467// if (!t && fatal)468// {469// initprintf("Failed to find %s in %s\n", s, gldriver);470// *err = 1;471// }472// return t;473//}474//#define GETPROC(s) getproc_(s,&err,1,0)475//#define GETPROCSOFT(s) getproc_(s,&err,0,0)476//#define GETPROCEXT(s) getproc_(s,&err,1,1)477//#define GETPROCEXTSOFT(s) getproc_(s,&err,0,1)478//int32_t loadgldriver(const char *driver)479//{480// int32_t err=0;481//#ifdef _WIN32482// if (hGLDLL) return 0;483//#endif484// if (!driver)485// {486//#ifdef _WIN32487// driver = "opengl32.dll";488//#elif defined __APPLE__489// driver = "/System/Library/Frameworks/OpenGL.framework/OpenGL";490//#else491// driver = "libGL.so.1";492//#endif493// }494//#if defined RENDERTYPESDL495// if (SDL_GL_LoadLibrary(driver)) goto fail;496//#elif defined _WIN32497// hGLDLL = LoadLibrary(driver);498// if (!hGLDLL) goto fail;499//#endif500// gldriver = Bstrdup(driver);501//#ifdef _WIN32502// bwglCreateContext = (bwglCreateContextProcPtr) GETPROC("wglCreateContext");503// bwglDeleteContext = (bwglDeleteContextProcPtr) GETPROC("wglDeleteContext");504// bwglGetProcAddress = (bwglGetProcAddressProcPtr) GETPROC("wglGetProcAddress");505// bwglMakeCurrent = (bwglMakeCurrentProcPtr) GETPROC("wglMakeCurrent");506// bwglSwapBuffers = (bwglSwapBuffersProcPtr) GETPROC("wglSwapBuffers");507// bwglChoosePixelFormat = (bwglChoosePixelFormatProcPtr) GETPROC("wglChoosePixelFormat");508// bwglDescribePixelFormat = (bwglDescribePixelFormatProcPtr) GETPROC("wglDescribePixelFormat");509// bwglGetPixelFormat = (bwglGetPixelFormatProcPtr) GETPROC("wglGetPixelFormat");510// bwglSetPixelFormat = (bwglSetPixelFormatProcPtr) GETPROC("wglSetPixelFormat");511//#endif512// bglClearColor = (bglClearColorProcPtr) GETPROC("glClearColor");513// bglClear = (bglClearProcPtr) GETPROC("glClear");514// bglColorMask = (bglColorMaskProcPtr) GETPROC("glColorMask");515// bglAlphaFunc = (bglAlphaFuncProcPtr) GETPROC("glAlphaFunc");516// bglBlendFunc = (bglBlendFuncProcPtr) GETPROC("glBlendFunc");517// bglCullFace = (bglCullFaceProcPtr) GETPROC("glCullFace");518// bglFrontFace = (bglFrontFaceProcPtr) GETPROC("glFrontFace");519// bglPolygonOffset = (bglPolygonOffsetProcPtr) GETPROC("glPolygonOffset");520// bglPolygonMode = (bglPolygonModeProcPtr) GETPROC("glPolygonMode");521// bglEnable = (bglEnableProcPtr) GETPROC("glEnable");522// bglDisable = (bglDisableProcPtr) GETPROC("glDisable");523// bglGetDoublev = (bglGetDoublevProcPtr) GETPROC("glGetDoublev");524// bglGetFloatv = (bglGetFloatvProcPtr) GETPROC("glGetFloatv");525// bglGetIntegerv = (bglGetIntegervProcPtr) GETPROC("glGetIntegerv");526// bglPushAttrib = (bglPushAttribProcPtr) GETPROC("glPushAttrib");527// bglPopAttrib = (bglPopAttribProcPtr) GETPROC("glPopAttrib");528// bglGetError = (bglGetErrorProcPtr) GETPROC("glGetError");529// bglGetString = (bglGetStringProcPtr) GETPROC("glGetString");530// bglHint = (bglHintProcPtr) GETPROC("glHint");531// bglDrawBuffer = (bglDrawBufferProcPtr) GETPROC("glDrawBuffer");532// bglReadBuffer = (bglReadBufferProcPtr) GETPROC("glDrawBuffer");533// bglScissor = (bglScissorProcPtr) GETPROC("glScissor");534// bglClipPlane = (bglClipPlaneProcPtr) GETPROC("glClipPlane");535// // Depth536// bglDepthFunc = (bglDepthFuncProcPtr) GETPROC("glDepthFunc");537// bglDepthMask = (bglDepthMaskProcPtr) GETPROC("glDepthMask");538// bglDepthRange = (bglDepthRangeProcPtr) GETPROC("glDepthRange");539// // Matrix540// bglMatrixMode = (bglMatrixModeProcPtr) GETPROC("glMatrixMode");541// bglOrtho = (bglOrthoProcPtr) GETPROC("glOrtho");542// bglFrustum = (bglFrustumProcPtr) GETPROC("glFrustum");543// bglViewport = (bglViewportProcPtr) GETPROC("glViewport");544// bglPushMatrix = (bglPushMatrixProcPtr) GETPROC("glPushMatrix");545// bglPopMatrix = (bglPopMatrixProcPtr) GETPROC("glPopMatrix");546// bglLoadIdentity = (bglLoadIdentityProcPtr) GETPROC("glLoadIdentity");547// bglLoadMatrixf = (bglLoadMatrixfProcPtr) GETPROC("glLoadMatrixf");548// bglLoadMatrixd = (bglLoadMatrixdProcPtr) GETPROC("glLoadMatrixd");549// bglMultMatrixf = (bglMultMatrixfProcPtr) GETPROC("glMultMatrixf");550// bglMultMatrixd = (bglMultMatrixdProcPtr) GETPROC("glMultMatrixd");551// bglRotatef = (bglRotatefProcPtr) GETPROC("glRotatef");552// bglScalef = (bglScalefProcPtr) GETPROC("glScalef");553// bglTranslatef = (bglTranslatefProcPtr) GETPROC("glTranslatef");554// // Drawing555// bglBegin = (bglBeginProcPtr) GETPROC("glBegin");556// bglEnd = (bglEndProcPtr) GETPROC("glEnd");557// bglVertex2f = (bglVertex2fProcPtr) GETPROC("glVertex2f");558// bglVertex2i = (bglVertex2iProcPtr) GETPROC("glVertex2i");559// bglVertex3f = (bglVertex3fProcPtr) GETPROC("glVertex3f");560// bglVertex3d = (bglVertex3dProcPtr) GETPROC("glVertex3d");561// bglVertex3fv = (bglVertex3fvProcPtr) GETPROC("glVertex3fv");562// bglVertex3dv = (bglVertex3dvProcPtr) GETPROC("glVertex3dv");563// bglRectd = (bglRectdProcPtr) GETPROC("glRectd");564// bglColor4f = (bglColor4fProcPtr) GETPROC("glColor4f");565// bglColor4ub = (bglColor4ubProcPtr) GETPROC("glColor4ub");566// bglTexCoord2d = (bglTexCoord2dProcPtr) GETPROC("glTexCoord2d");567// bglTexCoord2f = (bglTexCoord2fProcPtr) GETPROC("glTexCoord2f");568// bglTexCoord2i = (bglTexCoord2iProcPtr) GETPROC("glTexCoord2i");569// bglNormal3f = (bglNormal3fProcPtr) GETPROC("glNormal3f");570// // Lighting571// bglShadeModel = (bglShadeModelProcPtr) GETPROC("glShadeModel");572// bglLightfv = (bglLightfvProcPtr) GETPROC("glLightfv");573// // Raster funcs574// bglReadPixels = (bglReadPixelsProcPtr) GETPROC("glReadPixels");575// bglRasterPos4i = (bglRasterPos4iProcPtr) GETPROC("glRasterPos4i");576// bglDrawPixels = (bglDrawPixelsProcPtr) GETPROC("glDrawPixels");577// bglPixelStorei = (bglPixelStoreiProcPtr) GETPROC("glPixelStorei");578// // Texture mapping579// bglTexEnvf = (bglTexEnvfProcPtr) GETPROC("glTexEnvf");580// bglGenTextures = (bglGenTexturesProcPtr) GETPROC("glGenTextures");581// bglDeleteTextures = (bglDeleteTexturesProcPtr) GETPROC("glDeleteTextures");582// bglBindTexture = (bglBindTextureProcPtr) GETPROC("glBindTexture");583// bglTexImage2D = (bglTexImage2DProcPtr) GETPROC("glTexImage2D");584// bglCopyTexImage2D = (bglCopyTexImage2DProcPtr) GETPROC("glCopyTexImage2D");585// bglCopyTexSubImage2D = (bglCopyTexSubImage2DProcPtr) GETPROC("glCopyTexSubImage2D");586// bglTexSubImage2D = (bglTexSubImage2DProcPtr) GETPROC("glTexSubImage2D");587// bglTexParameterf = (bglTexParameterfProcPtr) GETPROC("glTexParameterf");588// bglTexParameteri = (bglTexParameteriProcPtr) GETPROC("glTexParameteri");589// bglGetTexParameteriv = (bglGetTexParameterivProcPtr) GETPROC("glGetTexParameteriv");590// bglGetTexLevelParameteriv = (bglGetTexLevelParameterivProcPtr) GETPROC("glGetTexLevelParameteriv");591// bglTexGenfv = (bglTexGenfvProcPtr) GETPROC("glTexGenfv");592// // Fog593// bglFogf = (bglFogfProcPtr) GETPROC("glFogf");594// bglFogi = (bglFogiProcPtr) GETPROC("glFogi");595// bglFogfv = (bglFogfvProcPtr) GETPROC("glFogfv");596// // Display Lists597// bglNewList = (bglNewListProcPtr) GETPROC("glNewList");598// bglEndList = (bglEndListProcPtr) GETPROC("glEndList");599// bglCallList = (bglCallListProcPtr) GETPROC("glCallList");600// bglDeleteLists = (bglDeleteListsProcPtr) GETPROC("glDeleteLists");601// // Vertex Arrays602// bglEnableClientState = (bglEnableClientStateProcPtr) GETPROC("glEnableClientState");603// bglDisableClientState = (bglDisableClientStateProcPtr) GETPROC("glDisableClientState");604// bglVertexPointer = (bglVertexPointerProcPtr) GETPROC("glVertexPointer");605// bglNormalPointer = (bglNormalPointerProcPtr) GETPROC("glNormalPointer");606// bglTexCoordPointer = (bglTexCoordPointerProcPtr) GETPROC("glTexCoordPointer");607// bglDrawArrays = (bglDrawArraysProcPtr) GETPROC("glDrawArrays");608// bglDrawElements = (bglDrawElementsProcPtr) GETPROC("glDrawElements");609// // Stencil Buffer610// bglClearStencil = (bglClearStencilProcPtr) GETPROC("glClearStencil");611// bglStencilOp = (bglStencilOpProcPtr) GETPROC("glStencilOp");612// bglStencilFunc = (bglStencilFuncProcPtr) GETPROC("glStencilFunc");613// loadglextensions();614// loadglulibrary(getenv("BUILD_GLULIB"));615// if (err) unloadgldriver();616// return err;617//fail:618// initprintf("Failed loading \"%s\"\n",driver);619// return -1;620//}621//int32_t loadglextensions(void)622//{623// int32_t err = 0;624//#ifdef _WIN32625// if (!hGLDLL) return 0;626//#endif627// bglBlendEquation = (bglBlendEquationProcPtr) GETPROCEXTSOFT("glBlendEquation");628// bglTexImage3D = (bglTexImage3DProcPtr) GETPROCEXTSOFT("glTexImage3D");629// bglCompressedTexImage2DARB = (bglCompressedTexImage2DARBProcPtr) GETPROCEXTSOFT("glCompressedTexImage2DARB");630// bglGetCompressedTexImageARB = (bglGetCompressedTexImageARBProcPtr) GETPROCEXTSOFT("glGetCompressedTexImageARB");631// // GPU Programs632// bglGenProgramsARB = (bglGenProgramsARBProcPtr) GETPROCEXTSOFT("glGenProgramsARB");633// bglBindProgramARB = (bglBindProgramARBProcPtr) GETPROCEXTSOFT("glBindProgramARB");634// bglProgramStringARB = (bglProgramStringARBProcPtr) GETPROCEXTSOFT("glProgramStringARB");635// bglDeleteProgramsARB = (bglDeleteProgramsARBProcPtr) GETPROCEXTSOFT("glDeleteProgramsARB");636// // Multitexturing637// bglActiveTextureARB = (bglActiveTextureARBProcPtr) GETPROCEXTSOFT("glActiveTextureARB");638// bglClientActiveTextureARB = (bglClientActiveTextureARBProcPtr) GETPROCEXTSOFT("glClientActiveTextureARB");639// bglMultiTexCoord2dARB = (bglMultiTexCoord2dARBProcPtr) GETPROCEXTSOFT("glMultiTexCoord2dARB");640// bglMultiTexCoord2fARB = (bglMultiTexCoord2fARBProcPtr) GETPROCEXTSOFT("glMultiTexCoord2fARB");641// // Frame Buffer Objects642// bglGenFramebuffersEXT = (bglGenFramebuffersEXTProcPtr) GETPROCEXTSOFT("glGenFramebuffersEXT");643// bglBindFramebufferEXT = (bglBindFramebufferEXTProcPtr) GETPROCEXTSOFT("glBindFramebufferEXT");644// bglFramebufferTexture2DEXT = (bglFramebufferTexture2DEXTProcPtr) GETPROCEXTSOFT("glFramebufferTexture2DEXT");645// bglCheckFramebufferStatusEXT = (bglCheckFramebufferStatusEXTProcPtr) GETPROCEXTSOFT("glCheckFramebufferStatusEXT");646// bglDeleteFramebuffersEXT = (bglDeleteFramebuffersEXTProcPtr) GETPROCEXTSOFT("glDeleteFramebuffersEXT");647// // Vertex Buffer Objects648// bglGenBuffersARB = (bglGenBuffersARBProcPtr) GETPROCEXTSOFT("glGenBuffersARB");649// bglBindBufferARB = (bglBindBufferARBProcPtr) GETPROCEXTSOFT("glBindBufferARB");650// bglDeleteBuffersARB = (bglDeleteBuffersARBProcPtr) GETPROCEXTSOFT("glDeleteBuffersARB");651// bglBufferDataARB = (bglBufferDataARBProcPtr) GETPROCEXTSOFT("glBufferDataARB");652// bglBufferSubDataARB = (bglBufferSubDataARBProcPtr) GETPROCEXTSOFT("glBufferSubDataARB");653// bglMapBufferARB = (bglMapBufferARBProcPtr) GETPROCEXTSOFT("glMapBufferARB");654// bglUnmapBufferARB = (bglUnmapBufferARBProcPtr) GETPROCEXTSOFT("glUnmapBufferARB");655// // Occlusion queries656// bglGenQueriesARB = (bglGenQueriesARBProcPtr) GETPROCEXTSOFT("glGenQueriesARB");657// bglDeleteQueriesARB = (bglDeleteQueriesARBProcPtr) GETPROCEXTSOFT("glDeleteQueriesARB");658// bglIsQueryARB = (bglIsQueryARBProcPtr) GETPROCEXTSOFT("glIsQueryARB");659// bglBeginQueryARB = (bglBeginQueryARBProcPtr) GETPROCEXTSOFT("glBeginQueryARB");660// bglEndQueryARB = (bglEndQueryARBProcPtr) GETPROCEXTSOFT("glEndQueryARB");661// bglGetQueryivARB = (bglGetQueryivARBProcPtr) GETPROCEXTSOFT("glGetQueryivARB");662// bglGetQueryObjectivARB = (bglGetQueryObjectivARBProcPtr) GETPROCEXTSOFT("glGetQueryObjectivARB");663// bglGetQueryObjectuivARB = (bglGetQueryObjectuivARBProcPtr) GETPROCEXTSOFT("glGetQueryObjectuivARB");664// // Shader Objects665// bglDeleteObjectARB = (bglDeleteObjectARBProcPtr) GETPROCEXTSOFT("glDeleteObjectARB");666// bglGetHandleARB = (bglGetHandleARBProcPtr) GETPROCEXTSOFT("glGetHandleARB");667// bglDetachObjectARB = (bglDetachObjectARBProcPtr) GETPROCEXTSOFT("glDetachObjectARB");668// bglCreateShaderObjectARB = (bglCreateShaderObjectARBProcPtr) GETPROCEXTSOFT("glCreateShaderObjectARB");669// bglShaderSourceARB = (bglShaderSourceARBProcPtr) GETPROCEXTSOFT("glShaderSourceARB");670// bglCompileShaderARB = (bglCompileShaderARBProcPtr) GETPROCEXTSOFT("glCompileShaderARB");671// bglCreateProgramObjectARB = (bglCreateProgramObjectARBProcPtr) GETPROCEXTSOFT("glCreateProgramObjectARB");672// bglAttachObjectARB = (bglAttachObjectARBProcPtr) GETPROCEXTSOFT("glAttachObjectARB");673// bglLinkProgramARB = (bglLinkProgramARBProcPtr) GETPROCEXTSOFT("glLinkProgramARB");674// bglUseProgramObjectARB = (bglUseProgramObjectARBProcPtr) GETPROCEXTSOFT("glUseProgramObjectARB");675// bglValidateProgramARB = (bglValidateProgramARBProcPtr) GETPROCEXTSOFT("glValidateProgramARB");676// bglUniform1fARB = (bglUniform1fARBProcPtr) GETPROCEXTSOFT("glUniform1fARB");677// bglUniform2fARB = (bglUniform2fARBProcPtr) GETPROCEXTSOFT("glUniform2fARB");678// bglUniform3fARB = (bglUniform3fARBProcPtr) GETPROCEXTSOFT("glUniform3fARB");679// bglUniform4fARB = (bglUniform4fARBProcPtr) GETPROCEXTSOFT("glUniform4fARB");680// bglUniform1iARB = (bglUniform1iARBProcPtr) GETPROCEXTSOFT("glUniform1iARB");681// bglUniform2iARB = (bglUniform2iARBProcPtr) GETPROCEXTSOFT("glUniform2iARB");682// bglUniform3iARB = (bglUniform3iARBProcPtr) GETPROCEXTSOFT("glUniform3iARB");683// bglUniform4iARB = (bglUniform4iARBProcPtr) GETPROCEXTSOFT("glUniform4iARB");684// bglUniform1fvARB = (bglUniform1fvARBProcPtr) GETPROCEXTSOFT("glUniform1fvARB");685// bglUniform2fvARB = (bglUniform2fvARBProcPtr) GETPROCEXTSOFT("glUniform2fvARB");686// bglUniform3fvARB = (bglUniform3fvARBProcPtr) GETPROCEXTSOFT("glUniform3fvARB");687// bglUniform4fvARB = (bglUniform4fvARBProcPtr) GETPROCEXTSOFT("glUniform4fvARB");688// bglUniform1ivARB = (bglUniform1ivARBProcPtr) GETPROCEXTSOFT("glUniform1ivARB");689// bglUniform2ivARB = (bglUniform2ivARBProcPtr) GETPROCEXTSOFT("glUniform2ivARB");690// bglUniform3ivARB = (bglUniform3ivARBProcPtr) GETPROCEXTSOFT("glUniform3ivARB");691// bglUniform4ivARB = (bglUniform4ivARBProcPtr) GETPROCEXTSOFT("glUniform4ivARB");692// bglUniformMatrix2fvARB = (bglUniformMatrix2fvARBProcPtr) GETPROCEXTSOFT("glUniformMatrix2fvARB");693// bglUniformMatrix3fvARB = (bglUniformMatrix3fvARBProcPtr) GETPROCEXTSOFT("glUniformMatrix3fvARB");694// bglUniformMatrix4fvARB = (bglUniformMatrix4fvARBProcPtr) GETPROCEXTSOFT("glUniformMatrix4fvARB");695// bglGetObjectParameterfvARB = (bglGetObjectParameterfvARBProcPtr) GETPROCEXTSOFT("glGetObjectParameterfvARB");696// bglGetObjectParameterivARB = (bglGetObjectParameterivARBProcPtr) GETPROCEXTSOFT("glGetObjectParameterivARB");697// bglGetInfoLogARB = (bglGetInfoLogARBProcPtr) GETPROCEXTSOFT("glGetInfoLogARB");698// bglGetAttachedObjectsARB = (bglGetAttachedObjectsARBProcPtr) GETPROCEXTSOFT("glGetAttachedObjectsARB");699// bglGetUniformLocationARB = (bglGetUniformLocationARBProcPtr) GETPROCEXTSOFT("glGetUniformLocationARB");700// bglGetActiveUniformARB = (bglGetActiveUniformARBProcPtr) GETPROCEXTSOFT("glGetActiveUniformARB");701// bglGetUniformfvARB = (bglGetUniformfvARBProcPtr) GETPROCEXTSOFT("glGetUniformfvARB");702// bglGetUniformivARB = (bglGetUniformivARBProcPtr) GETPROCEXTSOFT("glGetUniformivARB");703// bglGetShaderSourceARB = (bglGetShaderSourceARBProcPtr) GETPROCEXTSOFT("glGetShaderSourceARB");704// // Vertex Shaders705// bglVertexAttrib1dARB = (bglVertexAttrib1dARBProcPtr) GETPROCEXTSOFT("glVertexAttrib1dARB");706// bglVertexAttrib1dvARB = (bglVertexAttrib1dvARBProcPtr) GETPROCEXTSOFT("glVertexAttrib1dvARB");707// bglVertexAttrib1fARB = (bglVertexAttrib1fARBProcPtr) GETPROCEXTSOFT("glVertexAttrib1fARB");708// bglVertexAttrib1fvARB = (bglVertexAttrib1fvARBProcPtr) GETPROCEXTSOFT("glVertexAttrib1fvARB");709// bglVertexAttrib1sARB = (bglVertexAttrib1sARBProcPtr) GETPROCEXTSOFT("glVertexAttrib1sARB");710// bglVertexAttrib1svARB = (bglVertexAttrib1svARBProcPtr) GETPROCEXTSOFT("glVertexAttrib1svARB");711// bglVertexAttrib2dARB = (bglVertexAttrib2dARBProcPtr) GETPROCEXTSOFT("glVertexAttrib2dARB");712// bglVertexAttrib2dvARB = (bglVertexAttrib2dvARBProcPtr) GETPROCEXTSOFT("glVertexAttrib2dvARB");713// bglVertexAttrib2fARB = (bglVertexAttrib2fARBProcPtr) GETPROCEXTSOFT("glVertexAttrib2fARB");714// bglVertexAttrib2fvARB = (bglVertexAttrib2fvARBProcPtr) GETPROCEXTSOFT("glVertexAttrib2fvARB");715// bglVertexAttrib2sARB = (bglVertexAttrib2sARBProcPtr) GETPROCEXTSOFT("glVertexAttrib2sARB");716// bglVertexAttrib2svARB = (bglVertexAttrib2svARBProcPtr) GETPROCEXTSOFT("glVertexAttrib2svARB");717// bglVertexAttrib3dARB = (bglVertexAttrib3dARBProcPtr) GETPROCEXTSOFT("glVertexAttrib3dARB");718// bglVertexAttrib3dvARB = (bglVertexAttrib3dvARBProcPtr) GETPROCEXTSOFT("glVertexAttrib3dvARB");719// bglVertexAttrib3fARB = (bglVertexAttrib3fARBProcPtr) GETPROCEXTSOFT("glVertexAttrib3fARB");720// bglVertexAttrib3fvARB = (bglVertexAttrib3fvARBProcPtr) GETPROCEXTSOFT("glVertexAttrib3fvARB");721// bglVertexAttrib3sARB = (bglVertexAttrib3sARBProcPtr) GETPROCEXTSOFT("glVertexAttrib3sARB");722// bglVertexAttrib3svARB = (bglVertexAttrib3svARBProcPtr) GETPROCEXTSOFT("glVertexAttrib3svARB");723// bglVertexAttrib4NbvARB = (bglVertexAttrib4NbvARBProcPtr) GETPROCEXTSOFT("glVertexAttrib4NbvARB");724// bglVertexAttrib4NivARB = (bglVertexAttrib4NivARBProcPtr) GETPROCEXTSOFT("glVertexAttrib4NivARB");725// bglVertexAttrib4NsvARB = (bglVertexAttrib4NsvARBProcPtr) GETPROCEXTSOFT("glVertexAttrib4NsvARB");726// bglVertexAttrib4NubARB = (bglVertexAttrib4NubARBProcPtr) GETPROCEXTSOFT("glVertexAttrib4NubARB");727// bglVertexAttrib4NubvARB = (bglVertexAttrib4NubvARBProcPtr) GETPROCEXTSOFT("glVertexAttrib4NubvARB");728// bglVertexAttrib4NuivARB = (bglVertexAttrib4NuivARBProcPtr) GETPROCEXTSOFT("glVertexAttrib4NuivARB");729// bglVertexAttrib4NusvARB = (bglVertexAttrib4NusvARBProcPtr) GETPROCEXTSOFT("glVertexAttrib4NusvARB");730// bglVertexAttrib4bvARB = (bglVertexAttrib4bvARBProcPtr) GETPROCEXTSOFT("glVertexAttrib4bvARB");731// bglVertexAttrib4dARB = (bglVertexAttrib4dARBProcPtr) GETPROCEXTSOFT("glVertexAttrib4dARB");732// bglVertexAttrib4dvARB = (bglVertexAttrib4dvARBProcPtr) GETPROCEXTSOFT("glVertexAttrib4dvARB");733// bglVertexAttrib4fARB = (bglVertexAttrib4fARBProcPtr) GETPROCEXTSOFT("glVertexAttrib4fARB");734// bglVertexAttrib4fvARB = (bglVertexAttrib4fvARBProcPtr) GETPROCEXTSOFT("glVertexAttrib4fvARB");735// bglVertexAttrib4ivARB = (bglVertexAttrib4ivARBProcPtr) GETPROCEXTSOFT("glVertexAttrib4ivARB");736// bglVertexAttrib4sARB = (bglVertexAttrib4sARBProcPtr) GETPROCEXTSOFT("glVertexAttrib4sARB");737// bglVertexAttrib4svARB = (bglVertexAttrib4svARBProcPtr) GETPROCEXTSOFT("glVertexAttrib4svARB");738// bglVertexAttrib4ubvARB = (bglVertexAttrib4ubvARBProcPtr) GETPROCEXTSOFT("glVertexAttrib4ubvARB");739// bglVertexAttrib4uivARB = (bglVertexAttrib4uivARBProcPtr) GETPROCEXTSOFT("glVertexAttrib4uivARB");740// bglVertexAttrib4usvARB = (bglVertexAttrib4usvARBProcPtr) GETPROCEXTSOFT("glVertexAttrib4usvARB");741// bglVertexAttribPointerARB = (bglVertexAttribPointerARBProcPtr) GETPROCEXTSOFT("glVertexAttribPointerARB");742// bglEnableVertexAttribArrayARB = (bglEnableVertexAttribArrayARBProcPtr) GETPROCEXTSOFT("glEnableVertexAttribArrayARB");743// bglDisableVertexAttribArrayARB = (bglDisableVertexAttribArrayARBProcPtr) GETPROCEXTSOFT("glDisableVertexAttribArrayARB");744// bglGetVertexAttribdvARB = (bglGetVertexAttribdvARBProcPtr) GETPROCEXTSOFT("glGetVertexAttribdvARB");745// bglGetVertexAttribfvARB = (bglGetVertexAttribfvARBProcPtr) GETPROCEXTSOFT("glGetVertexAttribfvARB");746// bglGetVertexAttribivARB = (bglGetVertexAttribivARBProcPtr) GETPROCEXTSOFT("glGetVertexAttribivARB");747// bglGetVertexAttribPointervARB = (bglGetVertexAttribPointervARBProcPtr) GETPROCEXTSOFT("glGetVertexAttribPointervARB");748// bglBindAttribLocationARB = (bglBindAttribLocationARBProcPtr) GETPROCEXTSOFT("glBindAttribLocationARB");749// bglGetActiveAttribARB = (bglGetActiveAttribARBProcPtr) GETPROCEXTSOFT("glGetActiveAttribARB");750// bglGetAttribLocationARB = (bglGetAttribLocationARBProcPtr) GETPROCEXTSOFT("glGetAttribLocationARB");751// // Debug Output752//#ifndef __APPLE__753// bglDebugMessageControlARB = (bglDebugMessageControlARBProcPtr) GETPROCEXTSOFT("glDebugMessageControlARB");754// bglDebugMessageCallbackARB = (bglDebugMessageCallbackARBProcPtr) GETPROCEXTSOFT("glDebugMessageCallbackARB");755//#endif756//#ifdef _WIN32757// bwglSwapIntervalEXT = (bwglSwapIntervalEXTProcPtr) GETPROCEXTSOFT("wglSwapIntervalEXT");758 var bwglSwapIntervalEXT = function(vsync: number) {todo("bwglSwapIntervalEXT");}759// bwglCreateContextAttribsARB = (bwglCreateContextAttribsARBProcPtr) GETPROCEXTSOFT("wglCreateContextAttribsARB");760//#endif761// return err;762//}763//int32_t unloadgldriver(void)764//{765// unloadglulibrary();766//#ifdef _WIN32767// if (!hGLDLL) return 0;768//#endif769// Bfree(gldriver);770// gldriver = NULL;771//#ifdef _WIN32772// FreeLibrary(hGLDLL);773// hGLDLL = NULL;774//#endif775// bglClearColor = (bglClearColorProcPtr) NULL;776// bglClear = (bglClearProcPtr) NULL;777// bglColorMask = (bglColorMaskProcPtr) NULL;778// bglAlphaFunc = (bglAlphaFuncProcPtr) NULL;779// bglBlendFunc = (bglBlendFuncProcPtr) NULL;780// bglBlendEquation = (bglBlendEquationProcPtr) NULL;781// bglCullFace = (bglCullFaceProcPtr) NULL;782// bglFrontFace = (bglFrontFaceProcPtr) NULL;783// bglPolygonOffset = (bglPolygonOffsetProcPtr) NULL;784// bglPolygonMode = (bglPolygonModeProcPtr) NULL;785// bglEnable = (bglEnableProcPtr) NULL;786// bglDisable = (bglDisableProcPtr) NULL;787// bglGetDoublev = (bglGetDoublevProcPtr) NULL;788// bglGetFloatv = (bglGetFloatvProcPtr) NULL;789// bglGetIntegerv = (bglGetIntegervProcPtr) NULL;790// bglPushAttrib = (bglPushAttribProcPtr) NULL;791// bglPopAttrib = (bglPopAttribProcPtr) NULL;792// bglGetError = (bglGetErrorProcPtr) NULL;793// bglGetString = (bglGetStringProcPtr) NULL;794// bglHint = (bglHintProcPtr) NULL;795// bglDrawBuffer = (bglDrawBufferProcPtr) NULL;796// bglReadBuffer = (bglReadBufferProcPtr) NULL;797// bglScissor = (bglScissorProcPtr) NULL;798// bglClipPlane = (bglClipPlaneProcPtr) NULL;799// // Depth800// bglDepthFunc = (bglDepthFuncProcPtr) NULL;801// bglDepthMask = (bglDepthMaskProcPtr) NULL;802// bglDepthRange = (bglDepthRangeProcPtr) NULL;803// // Matrix804// bglMatrixMode = (bglMatrixModeProcPtr) NULL;805// bglOrtho = (bglOrthoProcPtr) NULL;806// bglFrustum = (bglFrustumProcPtr) NULL;807// bglViewport = (bglViewportProcPtr) NULL;808// bglPushMatrix = (bglPushMatrixProcPtr) NULL;809// bglPopMatrix = (bglPopMatrixProcPtr) NULL;810// bglLoadIdentity = (bglLoadIdentityProcPtr) NULL;811// bglLoadMatrixf = (bglLoadMatrixfProcPtr) NULL;812// bglLoadMatrixd = (bglLoadMatrixdProcPtr) NULL;813// bglMultMatrixf = (bglMultMatrixfProcPtr) NULL;814// bglMultMatrixd = (bglMultMatrixdProcPtr) NULL;815// bglRotatef = (bglRotatefProcPtr) NULL;816// bglScalef = (bglScalefProcPtr) NULL;817// bglTranslatef = (bglTranslatefProcPtr) NULL;818// // Drawing819// bglBegin = (bglBeginProcPtr) NULL;820// bglEnd = (bglEndProcPtr) NULL;821// bglVertex2f = (bglVertex2fProcPtr) NULL;822// bglVertex2i = (bglVertex2iProcPtr) NULL;823// bglVertex3f = (bglVertex3fProcPtr) NULL;824// bglVertex3d = (bglVertex3dProcPtr) NULL;825// bglVertex3fv = (bglVertex3fvProcPtr) NULL;826// bglColor4f = (bglColor4fProcPtr) NULL;827// bglColor4ub = (bglColor4ubProcPtr) NULL;828// bglTexCoord2d = (bglTexCoord2dProcPtr) NULL;829// bglTexCoord2f = (bglTexCoord2fProcPtr) NULL;830// bglTexCoord2i = (bglTexCoord2iProcPtr) NULL;831// bglNormal3f = (bglNormal3fProcPtr) NULL;832// // Lighting833// bglShadeModel = (bglShadeModelProcPtr) NULL;834// bglLightfv = (bglLightfvProcPtr) NULL;835// // Raster funcs836// bglReadPixels = (bglReadPixelsProcPtr) NULL;837// bglRasterPos4i = (bglRasterPos4iProcPtr) NULL;838// bglDrawPixels = (bglDrawPixelsProcPtr) NULL;839// bglPixelStorei = (bglPixelStoreiProcPtr) NULL;840// // Texture mapping841// bglTexEnvf = (bglTexEnvfProcPtr) NULL;842// bglGenTextures = (bglGenTexturesProcPtr) NULL;843// bglDeleteTextures = (bglDeleteTexturesProcPtr) NULL;844// bglBindTexture = (bglBindTextureProcPtr) NULL;845// bglTexImage2D = (bglTexImage2DProcPtr) NULL;846// bglTexImage3D = (bglTexImage3DProcPtr) NULL;847// bglCopyTexImage2D = (bglCopyTexImage2DProcPtr) NULL;848// bglCopyTexSubImage2D= NULL;849// bglTexSubImage2D = (bglTexSubImage2DProcPtr) NULL;850// bglTexParameterf = (bglTexParameterfProcPtr) NULL;851// bglTexParameteri = (bglTexParameteriProcPtr) NULL;852// bglGetTexParameteriv = (bglGetTexParameterivProcPtr) NULL;853// bglGetTexLevelParameteriv = (bglGetTexLevelParameterivProcPtr) NULL;854// bglCompressedTexImage2DARB = (bglCompressedTexImage2DARBProcPtr) NULL;855// bglGetCompressedTexImageARB = (bglGetCompressedTexImageARBProcPtr) NULL;856// // Fog857// bglFogf = (bglFogfProcPtr) NULL;858// bglFogi = (bglFogiProcPtr) NULL;859// bglFogfv = (bglFogfvProcPtr) NULL;860// // Display Lists861// bglNewList = (bglNewListProcPtr) NULL;862// bglEndList = (bglEndListProcPtr) NULL;863// bglCallList = (bglCallListProcPtr) NULL;864// bglDeleteLists = (bglDeleteListsProcPtr) NULL;865// // Vertex Arrays866// bglEnableClientState = (bglEnableClientStateProcPtr) NULL;867// bglDisableClientState = (bglDisableClientStateProcPtr) NULL;868// bglVertexPointer = (bglVertexPointerProcPtr) NULL;869// bglNormalPointer = (bglNormalPointerProcPtr) NULL;870// bglTexCoordPointer = (bglTexCoordPointerProcPtr) NULL;871// bglDrawElements = (bglDrawElementsProcPtr) NULL;872// // Stencil Buffer873// bglClearStencil = (bglClearStencilProcPtr) NULL;874// bglStencilOp = (bglStencilOpProcPtr) NULL;875// bglStencilFunc = (bglStencilFuncProcPtr) NULL;876// // GPU Programs877// bglGenProgramsARB = (bglGenProgramsARBProcPtr) NULL;878// bglBindProgramARB = (bglBindProgramARBProcPtr) NULL;879// bglProgramStringARB = (bglProgramStringARBProcPtr) NULL;880// bglDeleteProgramsARB= NULL;881// // Multitexturing882// bglActiveTextureARB = (bglActiveTextureARBProcPtr) NULL;883// bglClientActiveTextureARB = (bglClientActiveTextureARBProcPtr) NULL;884// bglMultiTexCoord2dARB = (bglMultiTexCoord2dARBProcPtr) NULL;885// bglMultiTexCoord2fARB = (bglMultiTexCoord2fARBProcPtr) NULL;886// // Frame Buffer Objects887// bglGenFramebuffersEXT = (bglGenFramebuffersEXTProcPtr) NULL;888// bglBindFramebufferEXT = (bglBindFramebufferEXTProcPtr) NULL;889// bglFramebufferTexture2DEXT = (bglFramebufferTexture2DEXTProcPtr) NULL;890// bglCheckFramebufferStatusEXT = (bglCheckFramebufferStatusEXTProcPtr) NULL;891// bglDeleteFramebuffersEXT = (bglDeleteFramebuffersEXTProcPtr) NULL;892// // Vertex Buffer Objects893// bglGenBuffersARB = (bglGenBuffersARBProcPtr) NULL;894// bglBindBufferARB = (bglBindBufferARBProcPtr) NULL;895// bglDeleteBuffersARB = (bglDeleteBuffersARBProcPtr) NULL;896// bglBufferDataARB = (bglBufferDataARBProcPtr) NULL;897// bglBufferSubDataARB = (bglBufferSubDataARBProcPtr) NULL;898// bglMapBufferARB = (bglMapBufferARBProcPtr) NULL;899// bglUnmapBufferARB = (bglUnmapBufferARBProcPtr) NULL;900// // Occlusion queries901// bglGenQueriesARB = (bglGenQueriesARBProcPtr) NULL;902// bglDeleteQueriesARB = (bglDeleteQueriesARBProcPtr) NULL;903// bglIsQueryARB = (bglIsQueryARBProcPtr) NULL;904// bglBeginQueryARB = (bglBeginQueryARBProcPtr) NULL;905// bglEndQueryARB = (bglEndQueryARBProcPtr) NULL;906// bglGetQueryivARB = (bglGetQueryivARBProcPtr) NULL;907// bglGetQueryObjectivARB = (bglGetQueryObjectivARBProcPtr) NULL;908// bglGetQueryObjectuivARB = (bglGetQueryObjectuivARBProcPtr) NULL;909// // Shader Objects910// bglDeleteObjectARB = (bglDeleteObjectARBProcPtr) NULL;911// bglGetHandleARB = (bglGetHandleARBProcPtr) NULL;912// bglDetachObjectARB = (bglDetachObjectARBProcPtr) NULL;913// bglCreateShaderObjectARB = (bglCreateShaderObjectARBProcPtr) NULL;914// bglShaderSourceARB = (bglShaderSourceARBProcPtr) NULL;915// bglCompileShaderARB = (bglCompileShaderARBProcPtr) NULL;916// bglCreateProgramObjectARB = (bglCreateProgramObjectARBProcPtr) NULL;917// bglAttachObjectARB = (bglAttachObjectARBProcPtr) NULL;918// bglLinkProgramARB = (bglLinkProgramARBProcPtr) NULL;919// bglUseProgramObjectARB = (bglUseProgramObjectARBProcPtr) NULL;920// bglValidateProgramARB = (bglValidateProgramARBProcPtr) NULL;921// bglUniform1fARB = (bglUniform1fARBProcPtr) NULL;922// bglUniform2fARB = (bglUniform2fARBProcPtr) NULL;923// bglUniform3fARB = (bglUniform3fARBProcPtr) NULL;924// bglUniform4fARB = (bglUniform4fARBProcPtr) NULL;925// bglUniform1iARB = (bglUniform1iARBProcPtr) NULL;926// bglUniform2iARB = (bglUniform2iARBProcPtr) NULL;927// bglUniform3iARB = (bglUniform3iARBProcPtr) NULL;928// bglUniform4iARB = (bglUniform4iARBProcPtr) NULL;929// bglUniform1fvARB = (bglUniform1fvARBProcPtr) NULL;930// bglUniform2fvARB = (bglUniform2fvARBProcPtr) NULL;931// bglUniform3fvARB = (bglUniform3fvARBProcPtr) NULL;932// bglUniform4fvARB = (bglUniform4fvARBProcPtr) NULL;933// bglUniform1ivARB = (bglUniform1ivARBProcPtr) NULL;934// bglUniform2ivARB = (bglUniform2ivARBProcPtr) NULL;935// bglUniform3ivARB = (bglUniform3ivARBProcPtr) NULL;936// bglUniform4ivARB = (bglUniform4ivARBProcPtr) NULL;937// bglUniformMatrix2fvARB = (bglUniformMatrix2fvARBProcPtr) NULL;938// bglUniformMatrix3fvARB = (bglUniformMatrix3fvARBProcPtr) NULL;939// bglUniformMatrix4fvARB = (bglUniformMatrix4fvARBProcPtr) NULL;940// bglGetObjectParameterfvARB = (bglGetObjectParameterfvARBProcPtr) NULL;941// bglGetObjectParameterivARB = (bglGetObjectParameterivARBProcPtr) NULL;942// bglGetInfoLogARB = (bglGetInfoLogARBProcPtr) NULL;943// bglGetAttachedObjectsARB = (bglGetAttachedObjectsARBProcPtr) NULL;944// bglGetUniformLocationARB = (bglGetUniformLocationARBProcPtr) NULL;945// bglGetActiveUniformARB = (bglGetActiveUniformARBProcPtr) NULL;946// bglGetUniformfvARB = (bglGetUniformfvARBProcPtr) NULL;947// bglGetUniformivARB = (bglGetUniformivARBProcPtr) NULL;948// bglGetShaderSourceARB = (bglGetShaderSourceARBProcPtr) NULL;949// // Vertex Shaders950// bglVertexAttrib1dARB = (bglVertexAttrib1dARBProcPtr) NULL;951// bglVertexAttrib1dvARB = (bglVertexAttrib1dvARBProcPtr) NULL;952// bglVertexAttrib1fARB = (bglVertexAttrib1fARBProcPtr) NULL;953// bglVertexAttrib1fvARB = (bglVertexAttrib1fvARBProcPtr) NULL;954// bglVertexAttrib1sARB = (bglVertexAttrib1sARBProcPtr) NULL;955// bglVertexAttrib1svARB = (bglVertexAttrib1svARBProcPtr) NULL;956// bglVertexAttrib2dARB = (bglVertexAttrib2dARBProcPtr) NULL;957// bglVertexAttrib2dvARB = (bglVertexAttrib2dvARBProcPtr) NULL;958// bglVertexAttrib2fARB = (bglVertexAttrib2fARBProcPtr) NULL;959// bglVertexAttrib2fvARB = (bglVertexAttrib2fvARBProcPtr) NULL;960// bglVertexAttrib2sARB = (bglVertexAttrib2sARBProcPtr) NULL;961// bglVertexAttrib2svARB = (bglVertexAttrib2svARBProcPtr) NULL;962// bglVertexAttrib3dARB = (bglVertexAttrib3dARBProcPtr) NULL;963// bglVertexAttrib3dvARB = (bglVertexAttrib3dvARBProcPtr) NULL;964// bglVertexAttrib3fARB = (bglVertexAttrib3fARBProcPtr) NULL;965// bglVertexAttrib3fvARB = (bglVertexAttrib3fvARBProcPtr) NULL;966// bglVertexAttrib3sARB = (bglVertexAttrib3sARBProcPtr) NULL;967// bglVertexAttrib3svARB = (bglVertexAttrib3svARBProcPtr) NULL;968// bglVertexAttrib4NbvARB = (bglVertexAttrib4NbvARBProcPtr) NULL;969// bglVertexAttrib4NivARB = (bglVertexAttrib4NivARBProcPtr) NULL;970// bglVertexAttrib4NsvARB = (bglVertexAttrib4NsvARBProcPtr) NULL;971// bglVertexAttrib4NubARB = (bglVertexAttrib4NubARBProcPtr) NULL;972// bglVertexAttrib4NubvARB = (bglVertexAttrib4NubvARBProcPtr) NULL;973// bglVertexAttrib4NuivARB = (bglVertexAttrib4NuivARBProcPtr) NULL;974// bglVertexAttrib4NusvARB = (bglVertexAttrib4NusvARBProcPtr) NULL;975// bglVertexAttrib4bvARB = (bglVertexAttrib4bvARBProcPtr) NULL;976// bglVertexAttrib4dARB = (bglVertexAttrib4dARBProcPtr) NULL;977// bglVertexAttrib4dvARB = (bglVertexAttrib4dvARBProcPtr) NULL;978// bglVertexAttrib4fARB = (bglVertexAttrib4fARBProcPtr) NULL;979// bglVertexAttrib4fvARB = (bglVertexAttrib4fvARBProcPtr) NULL;980// bglVertexAttrib4ivARB = (bglVertexAttrib4ivARBProcPtr) NULL;981// bglVertexAttrib4sARB = (bglVertexAttrib4sARBProcPtr) NULL;982// bglVertexAttrib4svARB = (bglVertexAttrib4svARBProcPtr) NULL;983// bglVertexAttrib4ubvARB = (bglVertexAttrib4ubvARBProcPtr) NULL;984// bglVertexAttrib4uivARB = (bglVertexAttrib4uivARBProcPtr) NULL;985// bglVertexAttrib4usvARB = (bglVertexAttrib4usvARBProcPtr) NULL;986// bglVertexAttribPointerARB = (bglVertexAttribPointerARBProcPtr) NULL;987// bglEnableVertexAttribArrayARB = (bglEnableVertexAttribArrayARBProcPtr) NULL;988// bglDisableVertexAttribArrayARB = (bglDisableVertexAttribArrayARBProcPtr) NULL;989// bglGetVertexAttribdvARB = (bglGetVertexAttribdvARBProcPtr) NULL;990// bglGetVertexAttribfvARB = (bglGetVertexAttribfvARBProcPtr) NULL;991// bglGetVertexAttribivARB = (bglGetVertexAttribivARBProcPtr) NULL;992// bglGetVertexAttribPointervARB = (bglGetVertexAttribPointervARBProcPtr) NULL;993// bglBindAttribLocationARB = (bglBindAttribLocationARBProcPtr) NULL;994// bglGetActiveAttribARB = (bglGetActiveAttribARBProcPtr) NULL;995// bglGetAttribLocationARB = (bglGetAttribLocationARBProcPtr) NULL;996//#ifdef _WIN32997// bwglCreateContext = (bwglCreateContextProcPtr) NULL;998// bwglDeleteContext = (bwglDeleteContextProcPtr) NULL;999// bwglGetProcAddress = (bwglGetProcAddressProcPtr) NULL;1000// bwglMakeCurrent = (bwglMakeCurrentProcPtr) NULL;1001// bwglSwapBuffers = (bwglSwapBuffersProcPtr) NULL;1002// bwglChoosePixelFormat = (bwglChoosePixelFormatProcPtr) NULL;1003// bwglDescribePixelFormat = (bwglDescribePixelFormatProcPtr) NULL;1004// bwglGetPixelFormat = (bwglGetPixelFormatProcPtr) NULL;1005// bwglSetPixelFormat = (bwglSetPixelFormatProcPtr) NULL;1006// bwglSwapIntervalEXT = (bwglSwapIntervalEXTProcPtr) NULL;1007//#endif1008// return 0;1009//}1010//static void *glugetproc_(const char *s, int32_t *err, int32_t fatal)1011//{1012// void *t;1013//#if defined _WIN321014// t = (void *)GetProcAddress(hGLUDLL,s);1015//#else1016// t = (void *)dlsym(gluhandle,s);1017//#endif1018// if (!t && fatal)1019// {1020// initprintf("Failed to find %s in %s\n", s, glulibrary);1021// *err = 1;1022// }1023// return t;1024//}1025//#define GLUGETPROC(s) glugetproc_(s,&err,1)1026//#define GLUGETPROCSOFT(s) glugetproc_(s,&err,0)1027//int32_t loadglulibrary(const char *driver)1028//{1029// int32_t err=0;1030//#ifdef _WIN321031// if (hGLUDLL) return 0;1032//#endif1033// if (!driver)1034// {1035//#ifdef _WIN321036// driver = "glu32.dll";1037//#elif defined __APPLE__1038// driver = "/System/Library/Frameworks/OpenGL.framework/OpenGL"; // FIXME: like I know anything about Apple. Hah.1039//#else1040// driver = "libGLU.so.1";1041//#endif1042// }1043//#if defined _WIN321044// hGLUDLL = LoadLibrary(driver);1045// if (!hGLUDLL) goto fail;1046//#else1047// gluhandle = dlopen(driver, RTLD_NOW|RTLD_GLOBAL);1048// if (!gluhandle) goto fail;1049//#endif1050// glulibrary = Bstrdup(driver);1051// bgluTessBeginContour = (bgluTessBeginContourProcPtr) GLUGETPROC("gluTessBeginContour");1052// bgluTessBeginPolygon = (bgluTessBeginPolygonProcPtr) GLUGETPROC("gluTessBeginPolygon");1053// bgluTessCallback = (bgluTessCallbackProcPtr) GLUGETPROC("gluTessCallback");1054// bgluTessEndContour = (bgluTessEndContourProcPtr) GLUGETPROC("gluTessEndContour");1055// bgluTessEndPolygon = (bgluTessEndPolygonProcPtr) GLUGETPROC("gluTessEndPolygon");1056// bgluTessNormal = (bgluTessNormalProcPtr) GLUGETPROC("gluTessNormal");1057// bgluTessProperty = (bgluTessPropertyProcPtr) GLUGETPROC("gluTessProperty");1058// bgluTessVertex = (bgluTessVertexProcPtr) GLUGETPROC("gluTessVertex");1059// bgluNewTess = (bgluNewTessProcPtr) GLUGETPROC("gluNewTess");1060// bgluDeleteTess = (bgluDeleteTessProcPtr) GLUGETPROC("gluDeleteTess");1061// bgluPerspective = (bgluPerspectiveProcPtr) GLUGETPROC("gluPerspective");1062// bgluErrorString = (bgluErrorStringProcPtr) GLUGETPROC("gluErrorString");1063// bgluProject = (bgluProjectProcPtr) GLUGETPROC("gluProject");1064// bgluUnProject = (bgluUnProjectProcPtr) GLUGETPROC("gluUnProject");1065// if (err) unloadglulibrary();1066// return err;1067//fail:1068// initprintf("Failed loading \"%s\"\n",driver);1069// return -1;1070//}1071//int32_t unloadglulibrary(void)1072//{1073//#ifdef _WIN321074// if (!hGLUDLL) return 0;1075//#endif1076// Bfree(glulibrary);1077// glulibrary = NULL;1078//#ifdef _WIN321079// FreeLibrary(hGLUDLL);1080// hGLUDLL = NULL;1081//#else1082// if (gluhandle) dlclose(gluhandle);1083// gluhandle = NULL;1084//#endif1085// bgluTessBeginContour = (bgluTessBeginContourProcPtr) NULL;1086// bgluTessBeginPolygon = (bgluTessBeginPolygonProcPtr) NULL;1087// bgluTessCallback = (bgluTessCallbackProcPtr) NULL;1088// bgluTessEndContour = (bgluTessEndContourProcPtr) NULL;1089// bgluTessEndPolygon = (bgluTessEndPolygonProcPtr) NULL;1090// bgluTessNormal = (bgluTessNormalProcPtr) NULL;1091// bgluTessProperty = (bgluTessPropertyProcPtr) NULL;1092// bgluTessVertex = (bgluTessVertexProcPtr) NULL;1093// bgluNewTess = (bgluNewTessProcPtr) NULL;1094// bgluDeleteTess = (bgluDeleteTessProcPtr) NULL;1095// bgluPerspective = (bgluPerspectiveProcPtr) NULL;1096// bgluErrorString = (bgluErrorStringProcPtr) NULL;1097// bgluProject = (bgluProjectProcPtr) NULL;1098// bgluUnProject = (bgluUnProjectProcPtr) NULL;1099// return 0;1100//}1101////////// glGenTextures/glDeleteTextures debugging ////////1102//# if defined DEBUGGINGAIDS && defined DEBUG_TEXTURE_NAMES1103//static uint8_t *texnameused; // bitmap1104//static uint32_t *texnamefromwhere; // hash of __FILE__1105//static uint32_t texnameallocsize;1106//// djb3 algorithm1107//static inline uint32_t texdbg_getcode(const char *s)1108//{1109// uint32_t h = 5381;1110// int32_t ch;1111// while ((ch = *s++) != '\0')1112// h = ((h << 5) + h) ^ ch;1113// return h;1114//}1115//static void texdbg_realloc(uint32_t maxtexname)1116//{1117// uint32_t newsize = texnameallocsize ? texnameallocsize : 64;1118// if (maxtexname < texnameallocsize)1119// return;1120// while (maxtexname >= newsize)1121// newsize <<= 1;1122//// initprintf("texdebug: new size %u\n", newsize);1123// texnameused = Brealloc(texnameused, newsize>>3);1124// texnamefromwhere = Brealloc(texnamefromwhere, newsize*sizeof(uint32_t));1125// Bmemset(texnameused + (texnameallocsize>>3), 0, (newsize-texnameallocsize)>>3);1126// Bmemset(texnamefromwhere + texnameallocsize, 0, (newsize-texnameallocsize)*sizeof(uint32_t));1127// texnameallocsize = newsize;1128//}1129//#undef bglGenTextures1130//void texdbg_bglGenTextures(GLsizei n, GLuint *textures, const char *srcfn)1131//{1132// int32_t i;1133// uint32_t hash = srcfn ? texdbg_getcode(srcfn) : 0;1134// for (i=0; i<n; i++)1135// if (textures[i] < texnameallocsize && (texnameused[textures[i]>>3]&(1<<(textures[i]&7))))1136// initprintf("texdebug %x Gen: overwriting used tex name %u from %x\n", hash, textures[i], texnamefromwhere[textures[i]]);1137// bglGenTextures(n, textures);1138// {1139// GLuint maxtexname = 0;1140// for (i=0; i<n; i++)1141// maxtexname = max(maxtexname, textures[i]);1142// texdbg_realloc(maxtexname);1143// for (i=0; i<n; i++)1144// {1145// texnameused[textures[i]>>3] |= (1<<(textures[i]&7));1146// texnamefromwhere[textures[i]] = hash;1147// }1148// }1149//}1150//#undef bglDeleteTextures1151//void texdbg_bglDeleteTextures(GLsizei n, const GLuint *textures, const char *srcfn)1152//{1153// int32_t i;1154// uint32_t hash = srcfn ? texdbg_getcode(srcfn) : 0;1155// for (i=0; i<n; i++)1156// if (textures[i] < texnameallocsize)1157// {1158// if ((texnameused[textures[i]>>3]&(1<<(textures[i]&7)))==0)1159// initprintf("texdebug %x Del: deleting unused tex name %u\n", hash, textures[i]);1160// else if ((texnameused[textures[i]>>3]&(1<<(textures[i]&7))) &&1161// texnamefromwhere[textures[i]] != hash)1162// initprintf("texdebug %x Del: deleting foreign tex name %u from %x\n", hash,1163// textures[i], texnamefromwhere[textures[i]]);1164// }1165// bglDeleteTextures(n, textures);1166// if (texnameallocsize)1167// for (i=0; i<n; i++)1168// {1169// texnameused[textures[i]>>3] &= ~(1<<(textures[i]&7));1170// texnamefromwhere[textures[i]] = 0;1171// }1172//}1173//# endif // defined DEBUGGINGAIDS...
index.js
Source:index.js
1import assert from 'assert';2import laws from 'fantasy-laws';3import jsc from 'jsverify';4import Either from 'sanctuary-either';5import Identity from 'sanctuary-identity';6import show from 'sanctuary-show';7import Z from 'sanctuary-type-classes';8import type from 'sanctuary-type-identifiers';9import Useless from 'sanctuary-useless';10import Maybe from '../index.js';11const {Nothing, Just} = Maybe;12// EitherArb :: Arbitrary a -> Arbitrary b -> Arbitrary (Either a b)13const EitherArb = arbL => arbR =>14 jsc.oneof (arbL.smap (Either.Left, left => left.value, show),15 arbR.smap (Either.Right, right => right.value, show));16// IdentityArb :: Arbitrary a -> Arbitrary (Identity a)17const IdentityArb = arb => arb.smap (Identity, Z.extract, show);18// MaybeArb :: Arbitrary a -> Arbitrary (Maybe a)19const MaybeArb = arb =>20 jsc.oneof (jsc.constant (Nothing),21 arb.smap (Just, just => just.value, show));22// eitherToMaybe :: Either a b -> Maybe b23const eitherToMaybe = e => Z.reduce ((_, x) => Just (x), Nothing, e);24// head :: Array a -> Maybe a25const head = xs => xs.length === 0 ? Nothing : Just (xs[0]);26// parseFloat_ :: String -> Maybe Number27const parseFloat_ = s => Z.reject (isNaN, Just (parseFloat (s)));28// testLaws :: Object -> Object -> Undefined29const testLaws = laws => arbs => {30 (Object.keys (laws)).forEach (name => {31 eq (laws[name].length) (arbs[name].length);32 test (name.replace (/[A-Z]/g, c => ' ' + c.toLowerCase ()),33 laws[name] (...arbs[name]));34 });35};36// eq :: a -> b -> Undefined !37function eq(actual) {38 assert.strictEqual (arguments.length, eq.length);39 return function eq$1(expected) {40 assert.strictEqual (arguments.length, eq$1.length);41 assert.strictEqual (show (actual), show (expected));42 assert.strictEqual (Z.equals (actual, expected), true);43 };44}45suite ('Maybe', () => {46 test ('metadata', () => {47 eq (typeof Nothing) ('object');48 eq (typeof Just) ('function');49 eq (Just.length) (1);50 });51 test ('tags', () => {52 const just = Just (0);53 eq (Nothing.isNothing) (true);54 eq (Nothing.isJust) (false);55 eq (just.isNothing) (false);56 eq (just.isJust) (true);57 });58 test ('@@type', () => {59 eq (type (Nothing)) ('sanctuary-maybe/Maybe@1');60 eq (type (Just (0))) ('sanctuary-maybe/Maybe@1');61 eq (type.parse (type (Just (0))))62 ({namespace: 'sanctuary-maybe', name: 'Maybe', version: 1});63 });64 test ('@@show', () => {65 eq (show (Nothing)) ('Nothing');66 eq (show (Just (['foo', 'bar', 'baz']))) ('Just (["foo", "bar", "baz"])');67 eq (show (Just (Just (Just (-0))))) ('Just (Just (Just (-0)))');68 });69 test ('Maybe.maybe', () => {70 eq (Maybe.maybe ('Nothing')71 (a => 'Just (' + show (a) + ')')72 (Nothing))73 ('Nothing');74 eq (Maybe.maybe ('Nothing')75 (a => 'Just (' + show (a) + ')')76 (Just ([1, 2, 3])))77 ('Just ([1, 2, 3])');78 });79});80suite ('type-class predicates', () => {81 test ('Setoid', () => {82 eq (Z.Setoid.test (Nothing)) (true);83 eq (Z.Setoid.test (Just (Useless))) (false);84 eq (Z.Setoid.test (Just (/(?:)/))) (true);85 });86 test ('Ord', () => {87 eq (Z.Ord.test (Nothing)) (true);88 eq (Z.Ord.test (Just (Useless))) (false);89 eq (Z.Ord.test (Just (/(?:)/))) (false);90 eq (Z.Ord.test (Just (0))) (true);91 });92 test ('Semigroupoid', () => {93 eq (Z.Semigroupoid.test (Nothing)) (false);94 eq (Z.Semigroupoid.test (Just ([]))) (false);95 });96 test ('Category', () => {97 eq (Z.Category.test (Nothing)) (false);98 eq (Z.Category.test (Just ([]))) (false);99 });100 test ('Semigroup', () => {101 eq (Z.Semigroup.test (Nothing)) (true);102 eq (Z.Semigroup.test (Just (Useless))) (false);103 eq (Z.Semigroup.test (Just (0))) (false);104 eq (Z.Semigroup.test (Just ([]))) (true);105 });106 test ('Monoid', () => {107 eq (Z.Monoid.test (Nothing)) (true);108 eq (Z.Monoid.test (Just (Useless))) (false);109 eq (Z.Monoid.test (Just (0))) (false);110 eq (Z.Monoid.test (Just ([]))) (true);111 });112 test ('Group', () => {113 eq (Z.Group.test (Nothing)) (false);114 eq (Z.Group.test (Just ([]))) (false);115 });116 test ('Filterable', () => {117 eq (Z.Filterable.test (Nothing)) (true);118 eq (Z.Filterable.test (Just (Useless))) (true);119 });120 test ('Functor', () => {121 eq (Z.Functor.test (Nothing)) (true);122 eq (Z.Functor.test (Just (Useless))) (true);123 });124 test ('Bifunctor', () => {125 eq (Z.Bifunctor.test (Nothing)) (false);126 eq (Z.Bifunctor.test (Just ([]))) (false);127 });128 test ('Profunctor', () => {129 eq (Z.Profunctor.test (Nothing)) (false);130 eq (Z.Profunctor.test (Just (Math.sqrt))) (false);131 });132 test ('Apply', () => {133 eq (Z.Apply.test (Nothing)) (true);134 eq (Z.Apply.test (Just (Useless))) (true);135 });136 test ('Applicative', () => {137 eq (Z.Applicative.test (Nothing)) (true);138 eq (Z.Applicative.test (Just (Useless))) (true);139 });140 test ('Chain', () => {141 eq (Z.Chain.test (Nothing)) (true);142 eq (Z.Chain.test (Just (Useless))) (true);143 });144 test ('ChainRec', () => {145 eq (Z.ChainRec.test (Nothing)) (true);146 eq (Z.ChainRec.test (Just (Useless))) (true);147 });148 test ('Monad', () => {149 eq (Z.Monad.test (Nothing)) (true);150 eq (Z.Monad.test (Just (Useless))) (true);151 });152 test ('Alt', () => {153 eq (Z.Alt.test (Nothing)) (true);154 eq (Z.Alt.test (Just (Useless))) (true);155 });156 test ('Plus', () => {157 eq (Z.Plus.test (Nothing)) (true);158 eq (Z.Plus.test (Just (Useless))) (true);159 });160 test ('Alternative', () => {161 eq (Z.Alternative.test (Nothing)) (true);162 eq (Z.Alternative.test (Just (Useless))) (true);163 });164 test ('Foldable', () => {165 eq (Z.Foldable.test (Nothing)) (true);166 eq (Z.Foldable.test (Just (Useless))) (true);167 });168 test ('Traversable', () => {169 eq (Z.Traversable.test (Nothing)) (true);170 eq (Z.Traversable.test (Just (Useless))) (true);171 });172 test ('Extend', () => {173 eq (Z.Extend.test (Nothing)) (true);174 eq (Z.Extend.test (Just (Useless))) (true);175 });176 test ('Comonad', () => {177 eq (Z.Comonad.test (Nothing)) (false);178 eq (Z.Comonad.test (Just (Identity (0)))) (false);179 });180 test ('Contravariant', () => {181 eq (Z.Contravariant.test (Nothing)) (false);182 eq (Z.Contravariant.test (Just (Math.sqrt))) (false);183 });184});185suite ('Setoid laws', () => {186 testLaws (laws.Setoid) ({187 reflexivity: [188 MaybeArb (jsc.falsy),189 ],190 symmetry: [191 MaybeArb (jsc.bool),192 MaybeArb (jsc.bool),193 ],194 transitivity: [195 MaybeArb (jsc.bool),196 MaybeArb (jsc.bool),197 MaybeArb (jsc.bool),198 ],199 });200});201suite ('Ord laws', () => {202 testLaws (laws.Ord) ({203 totality: [204 MaybeArb (jsc.string),205 MaybeArb (jsc.string),206 ],207 antisymmetry: [208 MaybeArb (jsc.string),209 MaybeArb (jsc.string),210 ],211 transitivity: [212 MaybeArb (jsc.string),213 MaybeArb (jsc.string),214 MaybeArb (jsc.string),215 ],216 });217});218suite ('Semigroup laws', () => {219 testLaws (laws.Semigroup (Z.equals)) ({220 associativity: [221 MaybeArb (jsc.string),222 MaybeArb (jsc.string),223 MaybeArb (jsc.string),224 ],225 });226});227suite ('Monoid laws', () => {228 testLaws (laws.Monoid (Z.equals, Maybe)) ({229 leftIdentity: [230 MaybeArb (jsc.string),231 ],232 rightIdentity: [233 MaybeArb (jsc.string),234 ],235 });236});237suite ('Filterable laws', () => {238 testLaws (laws.Filterable (Z.equals)) ({239 distributivity: [240 MaybeArb (jsc.number),241 jsc.constant (x => x > -10),242 jsc.constant (x => x < 10),243 ],244 identity: [245 MaybeArb (jsc.number),246 ],247 annihilation: [248 MaybeArb (jsc.number),249 MaybeArb (jsc.number),250 ],251 });252});253suite ('Functor laws', () => {254 testLaws (laws.Functor (Z.equals)) ({255 identity: [256 MaybeArb (jsc.number),257 ],258 composition: [259 MaybeArb (jsc.number),260 jsc.constant (Math.sqrt),261 jsc.constant (Math.abs),262 ],263 });264});265suite ('Apply laws', () => {266 testLaws (laws.Apply (Z.equals)) ({267 composition: [268 MaybeArb (jsc.constant (Math.sqrt)),269 MaybeArb (jsc.constant (Math.abs)),270 MaybeArb (jsc.number),271 ],272 });273});274suite ('Applicative laws', () => {275 testLaws (laws.Applicative (Z.equals, Maybe)) ({276 identity: [277 MaybeArb (jsc.number),278 ],279 homomorphism: [280 jsc.constant (Math.abs),281 jsc.number,282 ],283 interchange: [284 MaybeArb (jsc.constant (Math.abs)),285 jsc.number,286 ],287 });288});289suite ('Chain laws', () => {290 testLaws (laws.Chain (Z.equals)) ({291 associativity: [292 MaybeArb (jsc.array (jsc.asciistring)),293 jsc.constant (head),294 jsc.constant (parseFloat_),295 ],296 });297});298suite ('ChainRec laws', () => {299 testLaws (laws.ChainRec (Z.equals, Maybe)) ({300 equivalence: [301 jsc.constant (x => x >= 1000),302 jsc.constant (x => x <= 1 ? Nothing : Just (x * x)),303 jsc.constant (Just),304 jsc.integer,305 ],306 });307});308suite ('Monad laws', () => {309 testLaws (laws.Monad (Z.equals, Maybe)) ({310 leftIdentity: [311 jsc.constant (head),312 jsc.array (jsc.number),313 ],314 rightIdentity: [315 MaybeArb (jsc.number),316 ],317 });318});319suite ('Alt laws', () => {320 testLaws (laws.Alt (Z.equals)) ({321 associativity: [322 MaybeArb (jsc.number),323 MaybeArb (jsc.number),324 MaybeArb (jsc.number),325 ],326 distributivity: [327 MaybeArb (jsc.number),328 MaybeArb (jsc.number),329 jsc.constant (Math.sqrt),330 ],331 });332});333suite ('Plus laws', () => {334 testLaws (laws.Plus (Z.equals, Maybe)) ({335 leftIdentity: [336 MaybeArb (jsc.number),337 ],338 rightIdentity: [339 MaybeArb (jsc.number),340 ],341 annihilation: [342 jsc.constant (Math.sqrt),343 ],344 });345});346suite ('Alternative laws', () => {347 testLaws (laws.Alternative (Z.equals, Maybe)) ({348 distributivity: [349 MaybeArb (jsc.number),350 MaybeArb (jsc.constant (Math.sqrt)),351 MaybeArb (jsc.constant (Math.abs)),352 ],353 annihilation: [354 MaybeArb (jsc.number),355 ],356 });357});358suite ('Foldable laws', () => {359 testLaws (laws.Foldable (Z.equals)) ({360 associativity: [361 jsc.constant ((x, y) => x + y),362 jsc.number,363 MaybeArb (jsc.number),364 ],365 });366});367suite ('Traversable laws', () => {368 testLaws (laws.Traversable (Z.equals)) ({369 naturality: [370 jsc.constant (Either),371 jsc.constant (Maybe),372 jsc.constant (eitherToMaybe),373 MaybeArb (EitherArb (jsc.string) (jsc.number)),374 ],375 identity: [376 jsc.constant (Identity),377 MaybeArb (jsc.number),378 ],379 composition: [380 jsc.constant (Identity),381 jsc.constant (Maybe),382 MaybeArb (IdentityArb (MaybeArb (jsc.number))),383 ],384 });385});386suite ('Extend laws', () => {387 testLaws (laws.Extend (Z.equals)) ({388 associativity: [389 MaybeArb (jsc.integer),390 jsc.constant (maybe => Z.reduce ((x, y) => x + y, 1, maybe)),391 jsc.constant (maybe => Z.reduce ((x, y) => y * y, 1, maybe)),392 ],393 });...
Using AI Code Generation
1const fc = require('fast-check');2fc.assert(3 fc.property(fc.integer(), fc.integer(), (a, b) => {4 return a + b >= a;5 }),6 { verbose: true }7);8const fc = require('fast-check');9fc.assert(10 fc.property(fc.integer(), fc.integer(), (a, b) => {11 return a + b >= a;12 }),13 { verbose: true }14);15const fc = require('fast-check');16fc.assert(17 fc.property(fc.integer(), fc.integer(), (a, b) => {18 return a + b >= a;19 }),20 { verbose: true }21);22const fc = require('fast-check');23fc.assert(24 fc.property(fc.integer(), fc.integer(), (a, b) => {25 return a + b >= a;26 }),27 { verbose: true }28);29const fc = require('fast-check');30fc.assert(31 fc.property(fc.integer(), fc.integer(), (a, b) => {32 return a + b >= a;33 }),34 { verbose: true }35);36const fc = require('fast-check');37fc.assert(38 fc.property(fc.integer(), fc.integer(), (a, b) => {39 return a + b >= a;40 }),41 { verbose: true }42);43const fc = require('fast-check');44fc.assert(45 fc.property(fc.integer(), fc.integer(), (a, b) => {46 return a + b >= a;47 }),48 { verbose: true }49);50const fc = require('fast-check');51fc.assert(52 fc.property(fc.integer(), fc.integer(), (a, b) => {53 return a + b >= a;54 }),55 { verbose: true }56);
Using AI Code Generation
1const fc = require('fast-check');2const {array} = require('fast-check/lib/check/arbitrary/ArrayArbitrary.js');3const {string} = require('fast-check/lib/check/arbitrary/StringArbitrary.js');4const {oneof} = require('fast-check/lib/check/arbitrary/OneOfArbitrary.js');5const {integer} = require('fast-check/lib/check/arbitrary/IntegerArbitrary.js');6const {record} = require('fast-check/lib/check/arbitrary/RecordArbitrary.js');7const {tuple} = require('fast-check/lib/check/arbitrary/TupleArbitrary.js');8const {option} = require('fast-check/lib/check/arbitrary/OptionArbitrary.js');9const {boolean} = require('fast-check/lib/check/arbitrary/BooleanArbitrary.js');10const arb = array(oneof(string(), integer(), boolean(), option(oneof(string(), integer(), boolean()))));11arb.generate(1);12const fc = require('fast-check');13const {array} = require('fast-check/lib/check/arbitrary/ArrayArbitrary.js');14const {string} = require('fast-check/lib/check/arbitrary/StringArbitrary.js');15const {oneof} = require('fast-check/lib/check/arbitrary/OneOfArbitrary.js');16const {integer} = require('fast-check/lib/check/arbitrary/IntegerArbitrary.js');17const {record} = require('fast-check/lib/check/arbitrary/RecordArbitrary.js');18const {tuple} = require('fast-check/lib/check/arbitrary/TupleArbitrary.js');19const {option} = require('fast-check/lib/check/arbitrary/OptionArbitrary.js');20const {boolean} = require('fast-check/lib/check/arbitrary/BooleanArbitrary.js');21const arb = array(oneof(string(), integer(), boolean(), option(oneof(string(), integer(), boolean()))));22arb.generate(1);23const fc = require('fast-check');24const {array} = require('fast-check/lib/check/arbitrary/ArrayArbitrary.js');25const {string} = require('fast-check/lib/check/arbitrary/StringArbitrary.js');26const {oneof} = require('fast-check
Using AI Code Generation
1const fc = require('fast-check')2const { arb } = require('fast-check-monorepo')3const arb1 = arb()4const arb2 = arb()5fc.assert(6 fc.property(arb1, arb2, (a, b) => {7 })8const fc = require('fast-check')9const { arb } = require('fast-check-monorepo')10const arb1 = arb()11const arb2 = arb()12fc.assert(13 fc.property(arb1, arb2, (a, b) => {14 })15const fc = require('fast-check')16const { arb } = require('fast-check-monorepo')17const arb1 = arb()18const arb2 = arb()19fc.assert(20 fc.property(arb1, arb2, (a, b) => {21 })22const fc = require('fast-check')23const { arb } = require('fast-check-monorepo')24const arb1 = arb()25const arb2 = arb()26fc.assert(27 fc.property(arb1, arb2, (a, b) => {28 })29const fc = require('fast-check')30const { arb } = require('fast-check-monorepo')31const arb1 = arb()32const arb2 = arb()33fc.assert(34 fc.property(arb1, arb2, (a, b) => {35 })36const fc = require('fast-check')37const { arb } = require('fast-check-monorepo')38const arb1 = arb()39const arb2 = arb()40fc.assert(41 fc.property(arb1, arb2, (a, b) => {42 })
Using AI Code Generation
1import { arb } from '@dubzzz/fast-check';2const myArbitrary = arb.string();3import { arb } from '@dubzzz/fast-check';4const myArbitrary = arb.string();5import { arb } from '@dubzzz/fast-check';6const myArbitrary = arb.string();7import { arb } from '@dubzzz/fast-check';8const myArbitrary = arb.string();9import { arb } from '@dubzzz/fast-check';10const myArbitrary = arb.string();11import { arb } from '@dubzzz/fast-check';12const myArbitrary = arb.string();13import { arb } from '@dubzzz/fast-check';14const myArbitrary = arb.string();15import { arb } from '@dubzzz/fast-check';16const myArbitrary = arb.string();17import { arb } from '@dubzzz/fast-check';18const myArbitrary = arb.string();19import { arb } from '@dubzzz/fast-check';20const myArbitrary = arb.string();21import { arb } from '@dubzzz/fast-check';22const myArbitrary = arb.string();23import { arb } from '@dubzzz/fast-check';24const myArbitrary = arb.string();25import { arb } from '@
Using AI Code Generation
1var fc = require('fast-check');2function arb() {3 return fc.integer(1, 100);4}5module.exports = arb;6var fc = require('fast-check');7var arb = require('./test3');8fc.assert(fc.property(fc.integer(1, 100), arb(), function (i, j) {9 return i * j <= 100;10}));11var fc = require('fast-check');12var arb = require('./test3');13fc.assert(fc.property(fc.integer(1, 100), arb(), function (i, j) {14 return i * j <= 100;15}));16var fc = require('fast-check');17var arb = require('./test3');18fc.assert(fc.property(fc.integer(1, 100), arb(), function (i, j) {19 return i * j <= 100;20}));21var fc = require('fast-check');22var arb = require('./test3');23fc.assert(fc.property(fc.integer(1, 100), arb(), function (i, j) {24 return i * j <= 100;25}));26var fc = require('fast-check');27var arb = require('./test3');28fc.assert(fc.property(fc.integer(1, 100), arb(), function (i, j) {29 return i * j <= 100;30}));31var fc = require('fast-check');32var arb = require('./test3');33fc.assert(fc.property(fc.integer(1, 100), arb(), function (i, j) {34 return i * j <= 100;35}));36var fc = require('fast-check');37var arb = require('./test3');38fc.assert(fc.property(fc.integer(1, 100), arb(), function (i, j) {39 return i * j <= 100;40}));41var fc = require('fast-check');42var arb = require('./test3');43fc.assert(fc.property(fc.integer(1, 100), arb(), function (i, j) {44 return i * j <= 100;45}));46var fc = require('fast-check');47var arb = require('./test3');48fc.assert(fc.property(fc.integer(1, 100), arb(), function
Using AI Code Generation
1const fc = require('fast-check');2const arb = fc.integer(1, 100).map(x => x * 2);3fc.assert(fc.property(arb, n => n % 2 === 0));4const fc = require('fast-check');5const arb = fc.integer(1, 100).map(x => x * 2);6fc.assert(fc.property(arb, n => n % 2 === 0));7const fc = require('fast-check');8const arb = fc.integer(1, 100).map(x => x * 2);9fc.assert(fc.property(arb, n => n % 2 === 0));10const fc = require('fast-check');11const arb = fc.integer(1, 100).map(x => x * 2);12fc.assert(fc.property(arb, n => n % 2 === 0));13const fc = require('fast-check');14const arb = fc.integer(1, 100).map(x => x * 2);15fc.assert(fc.property(arb, n => n % 2 === 0));16const fc = require('fast-check');17const arb = fc.integer(1, 100).map(x => x * 2);18fc.assert(fc.property(arb, n => n % 2 === 0));19const fc = require('fast-check');20const arb = fc.integer(1, 100).map(x => x * 2);21fc.assert(fc.property(arb, n => n % 2 === 0));22const fc = require('fast-check');23const arb = fc.integer(1, 100).map(x => x * 2);24fc.assert(fc.property(arb, n => n % 2 === 0));
Using AI Code Generation
1const fc = require('fast-check');2const arb = fc.integer(1, 100);3console.log(arb);4const fc = require('fast-check');5const arb = fc.integer(1, 100);6console.log(arb);7const fc = require('fast-check');8const arb = fc.integer(1, 100);9console.log(arb);10const fc = require('fast-check');11const arb = fc.integer(1, 100);12console.log(arb);13const fc = require('fast-check');14const arb = fc.integer(1, 100);15console.log(arb);16const fc = require('fast-check');17const arb = fc.integer(1, 100);18console.log(arb);19const fc = require('fast-check');20const arb = fc.integer(1, 100);21console.log(arb);22const fc = require('fast-check');23const arb = fc.integer(1, 100);24console.log(arb);25const fc = require('fast-check');26const arb = fc.integer(1, 100);27console.log(arb);28const fc = require('fast-check');29const arb = fc.integer(1, 100);30console.log(arb);31const fc = require('fast-check');32const arb = fc.integer(1, 100);33console.log(arb);34const fc = require('fast-check');35const arb = fc.integer(1, 100);36console.log(arb);37const fc = require('fast-check');38const arb = fc.integer(1, 100);39console.log(arb);40const fc = require('fast-check');41const arb = fc.integer(1, 100);42console.log(arb);
Using AI Code Generation
1const { arb } = require('fast-check');2const { string } = arb;3const { string: string2 } = require('fast-check');4console.log(string);5console.log(string2);6const { arb } = require('fast-check');7const { string: string2 } = require('fast-check');8console.log(arb);9console.log(string2);10const { arb } = require('fast-check');11const { string: string2 } = require('fast-check');12console.log(arb);13console.log(string2);14const { arb } = require('fast-check');15const { string } = arb;16const { string: string2 } = require('fast-check');17console.log(string);18console.log(string2);19const { arb } = require('fast-check');20const { string: string2 } = require('fast-check');21console.log(arb);22console.log(string2);23const { arb } = require('fast-check');24const { string } = arb;25const { string: string2 } = require('fast-check');26console.log(string);27console.log(string2);28const { arb } = require('fast-check');29const { string } = arb;30const { string: string2 } = require('fast-check');31console.log(string);32console.log(string2);33const { arb } = require('fast-check');34const { string: string2 } = require('fast-check');35console.log(arb);36console.log(string2);37const { arb } = require('fast-check');38const { string: string2 } = require('fast-check');39console.log(arb);40console.log(string2);
Using AI Code Generation
1const arb = require('@fast-check/arbitrary');2const fc = require('fast-check');3const gen = arb.nat(5);4const arb2 = fc.array(gen);5console.log(arb2.generate());6const arb = require('fast-check/arbitrary');7const fc = require('fast-check');8const gen = arb.nat(5);9const arb2 = fc.array(gen);10console.log(arb2.generate());11const arb = require('fast-check/lib/arbitrary');12const fc = require('fast-check');13const gen = arb.nat(5);14const arb2 = fc.array(gen);15console.log(arb2.generate());16const arb = require('fast-check/lib/arbitrary/index.js');17const fc = require('fast-check');18const gen = arb.nat(5);19const arb2 = fc.array(gen);20console.log(arb2.generate());21const arb = require('fast-check/lib/arbitrary/index.js');22const fc = require('fast-check');23const gen = arb.nat(5);24const arb2 = fc.array(gen);25console.log(arb2.generate());26const arb = require('fast-check/lib/arbitrary/index.js');27const fc = require('fast-check');28const gen = arb.nat(5);29const arb2 = fc.array(gen);30console.log(arb2.generate());31const arb = require('fast-check/lib/arbitrary/index.js');32const fc = require('fast-check
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!