1 # -*- coding: utf-8 -*- 2 3 #------------------------------------------------------------------------- 4 # drawElements Quality Program utilities 5 # -------------------------------------- 6 # 7 # Copyright 2015 The Android Open Source Project 8 # 9 # Licensed under the Apache License, Version 2.0 (the "License"); 10 # you may not use this file except in compliance with the License. 11 # You may obtain a copy of the License at 12 # 13 # http://www.apache.org/licenses/LICENSE-2.0 14 # 15 # Unless required by applicable law or agreed to in writing, software 16 # distributed under the License is distributed on an "AS IS" BASIS, 17 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 # See the License for the specific language governing permissions and 19 # limitations under the License. 20 # 21 #------------------------------------------------------------------------- 22 23 import os 24 import string 25 26 # TODO remove 27 import sys 28 sys.path.append(os.path.dirname(os.path.dirname(__file__))) 29 30 from src_util import * 31 from khr_util.gen_str_util import addValuePrefix, genStrUtilProtos, genStrUtilImpls 32 33 # Bitfield mapping 34 BITFIELD_GROUPS = [ 35 # ClearBufferMask 36 ("BufferMask", ["DEPTH_BUFFER_BIT", "STENCIL_BUFFER_BIT", "COLOR_BUFFER_BIT"]), 37 # MapBufferUsageMask 38 ("BufferMapFlags", [ 39 "MAP_READ_BIT", 40 "MAP_WRITE_BIT", 41 "MAP_INVALIDATE_RANGE_BIT", 42 "MAP_INVALIDATE_BUFFER_BIT", 43 "MAP_FLUSH_EXPLICIT_BIT", 44 "MAP_UNSYNCHRONIZED_BIT" 45 ]), 46 # MemoryBarrierMask 47 ("MemoryBarrierFlags", [ 48 "VERTEX_ATTRIB_ARRAY_BARRIER_BIT", 49 "ELEMENT_ARRAY_BARRIER_BIT", 50 "UNIFORM_BARRIER_BIT", 51 "TEXTURE_FETCH_BARRIER_BIT", 52 "SHADER_IMAGE_ACCESS_BARRIER_BIT", 53 "COMMAND_BARRIER_BIT", 54 "PIXEL_BUFFER_BARRIER_BIT", 55 "TEXTURE_UPDATE_BARRIER_BIT", 56 "BUFFER_UPDATE_BARRIER_BIT", 57 "FRAMEBUFFER_BARRIER_BIT", 58 "TRANSFORM_FEEDBACK_BARRIER_BIT", 59 "ATOMIC_COUNTER_BARRIER_BIT" 60 ]), 61 # ShaderTypeMask 62 ("ShaderTypeMask", [ 63 "VERTEX_SHADER_BIT", 64 "FRAGMENT_SHADER_BIT", 65 "COMPUTE_SHADER_BIT", 66 "GEOMETRY_SHADER_BIT", 67 "TESS_CONTROL_SHADER_BIT", 68 "TESS_EVALUATION_SHADER_BIT" 69 ]), 70 ] 71 72 # Enum mapping 73 ENUM_GROUPS = [ 74 # Common enums 75 76 # ErrorCode 77 ("Error", ["NO_ERROR", "INVALID_ENUM", "INVALID_VALUE", "INVALID_OPERATION", "OUT_OF_MEMORY", 78 "INVALID_FRAMEBUFFER_OPERATION"]), 79 # PixelType, partially 80 ("Type", [ 81 # GLES2 types 82 "BYTE", 83 "UNSIGNED_BYTE", 84 "SHORT", 85 "UNSIGNED_SHORT", 86 "INT", 87 "UNSIGNED_INT", 88 "FLOAT", 89 "FIXED", 90 "UNSIGNED_SHORT_5_6_5", 91 "UNSIGNED_SHORT_4_4_4_4", 92 "UNSIGNED_SHORT_5_5_5_1", 93 94 # GLES3 types 95 "HALF_FLOAT", 96 "INT_2_10_10_10_REV", 97 "UNSIGNED_INT_2_10_10_10_REV", 98 "UNSIGNED_INT_10F_11F_11F_REV", 99 "UNSIGNED_INT_5_9_9_9_REV", 100 "UNSIGNED_INT_24_8", 101 "FLOAT_32_UNSIGNED_INT_24_8_REV", 102 "SIGNED_NORMALIZED", 103 "UNSIGNED_NORMALIZED", 104 105 # Extension types 106 "HALF_FLOAT_OES", 107 ]), 108 109 # GetPName, also GettableState below 110 ("ParamQuery", [ 111 # Generic 112 "LINE_WIDTH", 113 "ALIASED_POINT_SIZE_RANGE", 114 "ALIASED_LINE_WIDTH_RANGE", 115 "CULL_FACE_MODE", 116 "FRONT_FACE", 117 "DEPTH_RANGE", 118 "DEPTH_WRITEMASK", 119 "DEPTH_CLEAR_VALUE", 120 "DEPTH_FUNC", 121 "STENCIL_CLEAR_VALUE", 122 "STENCIL_FUNC", 123 "STENCIL_FAIL", 124 "STENCIL_PASS_DEPTH_FAIL", 125 "STENCIL_PASS_DEPTH_PASS", 126 "STENCIL_REF", 127 "STENCIL_VALUE_MASK", 128 "STENCIL_WRITEMASK", 129 "STENCIL_BACK_FUNC", 130 "STENCIL_BACK_FAIL", 131 "STENCIL_BACK_PASS_DEPTH_FAIL", 132 "STENCIL_BACK_PASS_DEPTH_PASS", 133 "STENCIL_BACK_REF", 134 "STENCIL_BACK_VALUE_MASK", 135 "STENCIL_BACK_WRITEMASK", 136 "VIEWPORT", 137 "SCISSOR_BOX", 138 "SCISSOR_TEST", 139 "COLOR_CLEAR_VALUE", 140 "COLOR_WRITEMASK", 141 "UNPACK_ALIGNMENT", 142 "PACK_ALIGNMENT", 143 "MAX_TEXTURE_SIZE", 144 "MAX_VIEWPORT_DIMS", 145 "SUBPIXEL_BITS", 146 "RED_BITS", 147 "GREEN_BITS", 148 "BLUE_BITS", 149 "ALPHA_BITS", 150 "DEPTH_BITS", 151 "STENCIL_BITS", 152 "POLYGON_OFFSET_UNITS", 153 "POLYGON_OFFSET_FILL", 154 "POLYGON_OFFSET_FACTOR", 155 "TEXTURE_BINDING_2D", 156 "SAMPLE_BUFFERS", 157 "SAMPLES", 158 "SAMPLE_COVERAGE_VALUE", 159 "SAMPLE_COVERAGE_INVERT", 160 161 "MAX_CUBE_MAP_TEXTURE_SIZE", 162 "MAX_RENDERBUFFER_SIZE", 163 164 # Program-related 165 "MAX_VERTEX_ATTRIBS", 166 "MAX_VERTEX_UNIFORM_VECTORS", 167 "MAX_VARYING_VECTORS", 168 "MAX_COMBINED_TEXTURE_IMAGE_UNITS", 169 "MAX_VERTEX_TEXTURE_IMAGE_UNITS", 170 "MAX_TEXTURE_IMAGE_UNITS", 171 "MAX_FRAGMENT_UNIFORM_VECTORS" 172 ]), 173 174 # *missing* 175 # Program query 176 ("ProgramParam", [ 177 "ACTIVE_ATTRIBUTES", 178 "ACTIVE_ATTRIBUTE_MAX_LENGTH", 179 "ACTIVE_UNIFORMS", 180 "ACTIVE_UNIFORM_BLOCKS", 181 "ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH", 182 "ACTIVE_UNIFORM_MAX_LENGTH", 183 "ATTACHED_SHADERS", 184 "DELETE_STATUS", 185 "INFO_LOG_LENGTH", 186 "LINK_STATUS", 187 "PROGRAM_BINARY_RETRIEVABLE_HINT", 188 "TRANSFORM_FEEDBACK_BUFFER_MODE", 189 "TRANSFORM_FEEDBACK_VARYINGS", 190 "TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH", 191 "VALIDATE_STATUS", 192 "GEOMETRY_INPUT_TYPE", 193 "GEOMETRY_OUTPUT_TYPE", 194 "GEOMETRY_VERTICES_OUT", 195 "GEOMETRY_SHADER_INVOCATIONS", 196 "PROGRAM_SEPARABLE", 197 "COMPUTE_WORK_GROUP_SIZE", 198 "ACTIVE_ATOMIC_COUNTER_BUFFERS", 199 "TESS_CONTROL_OUTPUT_VERTICES", 200 "TESS_GEN_MODE", 201 "TESS_GEN_SPACING", 202 "TESS_GEN_VERTEX_ORDER", 203 "TESS_GEN_POINT_MODE", 204 ]), 205 206 # *missing* 207 # Uniform query 208 ("UniformParam", [ 209 "UNIFORM_TYPE", 210 "UNIFORM_SIZE", 211 "UNIFORM_NAME_LENGTH", 212 "UNIFORM_BLOCK_INDEX", 213 "UNIFORM_OFFSET", 214 "UNIFORM_ARRAY_STRIDE", 215 "UNIFORM_MATRIX_STRIDE", 216 "UNIFORM_IS_ROW_MAJOR" 217 ]), 218 219 # *missing* 220 # Framebuffers 221 ("FramebufferAttachment", ["COLOR_ATTACHMENT0", "COLOR_ATTACHMENT1", "COLOR_ATTACHMENT2", "COLOR_ATTACHMENT3", 222 "COLOR_ATTACHMENT4", "COLOR_ATTACHMENT5", "COLOR_ATTACHMENT6", "COLOR_ATTACHMENT7", 223 "COLOR_ATTACHMENT8", "COLOR_ATTACHMENT9", "COLOR_ATTACHMENT10", "COLOR_ATTACHMENT11", 224 "COLOR_ATTACHMENT12", "COLOR_ATTACHMENT13", "COLOR_ATTACHMENT14", "COLOR_ATTACHMENT15", 225 "DEPTH_ATTACHMENT", "STENCIL_ATTACHMENT", "DEPTH_STENCIL_ATTACHMENT", 226 "BACK", "FRONT_LEFT", "FRONT_RIGHT", "BACK_LEFT", "BACK_RIGHT", 227 "DEPTH", "STENCIL"]), 228 # *missing* 229 ("FramebufferAttachmentParameter", ["FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE", "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME", 230 "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL", "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE", 231 "FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER", "FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE", 232 "FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING", "FRAMEBUFFER_ATTACHMENT_RED_SIZE", 233 "FRAMEBUFFER_ATTACHMENT_GREEN_SIZE", "FRAMEBUFFER_ATTACHMENT_BLUE_SIZE", 234 "FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE", "FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE", 235 "FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE", "FRAMEBUFFER_ATTACHMENT_LAYERED"]), 236 ("FramebufferTarget", ["FRAMEBUFFER", "RENDERBUFFER", "DRAW_FRAMEBUFFER", "READ_FRAMEBUFFER"]), 237 ("FramebufferStatus", ["FRAMEBUFFER_COMPLETE", "FRAMEBUFFER_INCOMPLETE_ATTACHMENT", "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT", 238 "FRAMEBUFFER_INCOMPLETE_DIMENSIONS", "FRAMEBUFFER_UNSUPPORTED", "FRAMEBUFFER_INCOMPLETE_MULTISAMPLE", 239 "FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS"]), 240 ("FramebufferAttachmentType", ["NONE", "FRAMEBUFFER_DEFAULT", "TEXTURE", "RENDERBUFFER"]), 241 ("FramebufferColorEncoding", ["LINEAR", "SRGB"]), 242 243 ("FramebufferParameter", [ 244 "FRAMEBUFFER_DEFAULT_WIDTH", 245 "FRAMEBUFFER_DEFAULT_HEIGHT", 246 "FRAMEBUFFER_DEFAULT_SAMPLES", 247 "FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS", 248 "FRAMEBUFFER_DEFAULT_LAYERS", 249 ]), 250 251 # Renderbuffers 252 ("RenderbufferParameter", ["RENDERBUFFER_WIDTH", "RENDERBUFFER_HEIGHT", "RENDERBUFFER_INTERNAL_FORMAT", "RENDERBUFFER_RED_SIZE", 253 "RENDERBUFFER_GREEN_SIZE", "RENDERBUFFER_BLUE_SIZE", "RENDERBUFFER_ALPHA_SIZE", "RENDERBUFFER_DEPTH_SIZE", 254 "RENDERBUFFER_STENCIL_SIZE", "RENDERBUFFER_SAMPLES"]), 255 256 # Primitives 257 ("PrimitiveType", ["POINTS", "LINES", "LINE_STRIP", "LINE_LOOP", "TRIANGLES", "TRIANGLE_STRIP", "TRIANGLE_FAN", "LINES_ADJACENCY", "LINE_STRIP_ADJACENCY", "TRIANGLES_ADJACENCY", "TRIANGLE_STRIP_ADJACENCY"]), 258 259 # Blending 260 ("BlendFactor", ["ZERO", "ONE", "SRC_ALPHA_SATURATE", 261 "SRC_COLOR", "ONE_MINUS_SRC_COLOR", "SRC_ALPHA", "ONE_MINUS_SRC_ALPHA", 262 "SRC1_COLOR", "ONE_MINUS_SRC1_COLOR", "SRC1_ALPHA", "ONE_MINUS_SRC1_ALPHA", 263 "DST_COLOR", "ONE_MINUS_DST_COLOR", "DST_ALPHA", "ONE_MINUS_DST_ALPHA", 264 "CONSTANT_COLOR", "ONE_MINUS_CONSTANT_COLOR", "CONSTANT_ALPHA", "ONE_MINUS_CONSTANT_ALPHA"]), 265 ("BlendEquation", [ 266 "FUNC_ADD", 267 "FUNC_SUBTRACT", 268 "FUNC_REVERSE_SUBTRACT", 269 "MIN", 270 "MAX", 271 "MULTIPLY_KHR", 272 "SCREEN_KHR", 273 "OVERLAY_KHR", 274 "DARKEN_KHR", 275 "LIGHTEN_KHR", 276 "COLORDODGE_KHR", 277 "COLORBURN_KHR", 278 "HARDLIGHT_KHR", 279 "SOFTLIGHT_KHR", 280 "DIFFERENCE_KHR", 281 "EXCLUSION_KHR", 282 "HSL_HUE_KHR", 283 "HSL_SATURATION_KHR", 284 "HSL_COLOR_KHR", 285 "HSL_LUMINOSITY_KHR", 286 ]), 287 288 # Buffer Objects 289 ("BufferTarget", [ 290 "ARRAY_BUFFER", 291 "ELEMENT_ARRAY_BUFFER", 292 "COPY_READ_BUFFER", 293 "COPY_WRITE_BUFFER", 294 "PIXEL_PACK_BUFFER", 295 "PIXEL_UNPACK_BUFFER", 296 "TRANSFORM_FEEDBACK_BUFFER", 297 "UNIFORM_BUFFER", 298 "DRAW_INDIRECT_BUFFER", 299 "SHADER_STORAGE_BUFFER", 300 "TEXTURE_BUFFER", 301 "DISPATCH_INDIRECT_BUFFER", 302 "ATOMIC_COUNTER_BUFFER", 303 ]), 304 ("BufferBinding", ["ARRAY_BUFFER_BINDING", "ELEMENT_ARRAY_BUFFER_BINDING"]), 305 ("Usage", [ 306 "STREAM_DRAW", 307 "STREAM_READ", 308 "STREAM_COPY", 309 "STATIC_DRAW", 310 "STATIC_READ", 311 "STATIC_COPY", 312 "DYNAMIC_DRAW", 313 "DYNAMIC_READ", 314 "DYNAMIC_COPY"]), 315 ("BufferQuery", ["BUFFER_SIZE", "BUFFER_USAGE", "BUFFER_ACCESS_FLAGS", "BUFFER_MAPPED", "BUFFER_MAP_OFFSET", "BUFFER_MAP_LENGTH"]), 316 317 # Culling 318 ("Face", ["FRONT", "BACK", "FRONT_AND_BACK"]), 319 320 # Comparison function 321 ("CompareFunc", ["NEVER", "LESS", "LEQUAL", "GREATER", "EQUAL", "NOTEQUAL", "GEQUAL", "ALWAYS"]), 322 323 # Enable-disable bit 324 ("EnableCap", ["TEXTURE_2D", "CULL_FACE", "BLEND", "DITHER", "STENCIL_TEST", "DEPTH_TEST", "SCISSOR_TEST", 325 "POLYGON_OFFSET_FILL", "SAMPLE_ALPHA_TO_COVERAGE", "SAMPLE_COVERAGE", 326 "PRIMITIVE_RESTART_FIXED_INDEX", "RASTERIZER_DISCARD", 327 "FRAMEBUFFER_SRGB", "SAMPLE_SHADING", "DEPTH_CLAMP", 328 "PRIMITIVE_RESTART", "SAMPLE_MASK", "DEBUG_OUTPUT", "DEBUG_OUTPUT_SYNCHRONOUS", 329 "BLEND_ADVANCED_COHERENT_KHR"]), 330 331 # Indexed enable-disable bit 332 ("IndexedEnableCap", ["BLEND"]), 333 334 # Polygon winding 335 ("Winding", ["CW", "CCW"]), 336 337 # Hints 338 ("HintMode", ["DONT_CARE", "FASTEST", "NICEST"]), 339 ("Hint", ["GENERATE_MIPMAP_HINT"]), 340 341 # Stencil ops 342 ("StencilOp", ["ZERO", "KEEP", "REPLACE", "INCR", "DECR", "INVERT", "INCR_WRAP", "DECR_WRAP"]), 343 344 # Shader type 345 ("ShaderType", [ 346 "VERTEX_SHADER", 347 "FRAGMENT_SHADER", 348 "COMPUTE_SHADER", 349 "TESS_CONTROL_SHADER", 350 "TESS_EVALUATION_SHADER", 351 "GEOMETRY_SHADER", 352 ]), 353 354 # Buffers 355 ("Buffer", ["COLOR", "DEPTH", "STENCIL", "DEPTH_STENCIL"]), 356 357 # Invalidate buffer target 358 ("InvalidateAttachment",["COLOR", "DEPTH", "STENCIL", 359 "COLOR_ATTACHMENT0", 360 "COLOR_ATTACHMENT1", 361 "COLOR_ATTACHMENT2", 362 "COLOR_ATTACHMENT3", 363 "COLOR_ATTACHMENT4", 364 "COLOR_ATTACHMENT5", 365 "COLOR_ATTACHMENT6", 366 "COLOR_ATTACHMENT7", 367 "DEPTH_ATTACHMENT", 368 "STENCIL_ATTACHMENT", 369 "DEPTH_STENCIL_ATTACHMENT"]), 370 371 # Draw/ReadBuffer attachment 372 ("DrawReadBuffer", ["COLOR", "DEPTH", "STENCIL", "BACK", "NONE", 373 "COLOR_ATTACHMENT0", 374 "COLOR_ATTACHMENT1", 375 "COLOR_ATTACHMENT2", 376 "COLOR_ATTACHMENT3", 377 "COLOR_ATTACHMENT4", 378 "COLOR_ATTACHMENT5", 379 "COLOR_ATTACHMENT6", 380 "COLOR_ATTACHMENT7", 381 "DEPTH_ATTACHMENT", 382 "STENCIL_ATTACHMENT", 383 "DEPTH_STENCIL_ATTACHMENT"]), 384 385 # Textures 386 ("TextureTarget", ["TEXTURE_1D", 387 "TEXTURE_2D", "TEXTURE_CUBE_MAP", 388 "TEXTURE_CUBE_MAP_POSITIVE_X", "TEXTURE_CUBE_MAP_NEGATIVE_X", 389 "TEXTURE_CUBE_MAP_POSITIVE_Y", "TEXTURE_CUBE_MAP_NEGATIVE_Y", 390 "TEXTURE_CUBE_MAP_POSITIVE_Z", "TEXTURE_CUBE_MAP_NEGATIVE_Z", 391 "TEXTURE_3D", "TEXTURE_2D_ARRAY", "TEXTURE_2D_MULTISAMPLE", 392 "TEXTURE_2D_MULTISAMPLE_ARRAY", 393 "TEXTURE_BUFFER", 394 "TEXTURE_CUBE_MAP_ARRAY"]), 395 ("TextureParameter", [ 396 "TEXTURE_WRAP_S", 397 "TEXTURE_WRAP_T", 398 "TEXTURE_WRAP_R", 399 "TEXTURE_BASE_LEVEL", 400 "TEXTURE_MAX_LEVEL", 401 "TEXTURE_COMPARE_MODE", 402 "TEXTURE_COMPARE_FUNC", 403 "TEXTURE_MAX_LOD", 404 "TEXTURE_MIN_LOD", 405 "TEXTURE_SWIZZLE_R", 406 "TEXTURE_SWIZZLE_G", 407 "TEXTURE_SWIZZLE_B", 408 "TEXTURE_SWIZZLE_A", 409 "TEXTURE_MIN_FILTER", 410 "TEXTURE_MAG_FILTER", 411 "DEPTH_STENCIL_TEXTURE_MODE", 412 "TEXTURE_SRGB_DECODE_EXT", 413 "TEXTURE_BORDER_COLOR", 414 415 # Gettable only 416 "TEXTURE_IMMUTABLE_LEVELS", 417 "TEXTURE_IMMUTABLE_FORMAT", 418 ]), 419 ("TextureLevelParameter", [ 420 "TEXTURE_SAMPLES", 421 "TEXTURE_FIXED_SAMPLE_LOCATIONS", 422 "TEXTURE_WIDTH", 423 "TEXTURE_HEIGHT", 424 "TEXTURE_DEPTH", 425 "TEXTURE_INTERNAL_FORMAT", 426 "TEXTURE_RED_SIZE", 427 "TEXTURE_GREEN_SIZE", 428 "TEXTURE_BLUE_SIZE", 429 "TEXTURE_ALPHA_SIZE", 430 "TEXTURE_DEPTH_SIZE", 431 "TEXTURE_STENCIL_SIZE", 432 "TEXTURE_SHARED_SIZE", 433 "TEXTURE_RED_TYPE", 434 "TEXTURE_GREEN_TYPE", 435 "TEXTURE_BLUE_TYPE", 436 "TEXTURE_ALPHA_TYPE", 437 "TEXTURE_DEPTH_TYPE", 438 "TEXTURE_COMPRESSED", 439 "TEXTURE_BUFFER_DATA_STORE_BINDING", 440 "TEXTURE_BUFFER_OFFSET", 441 "TEXTURE_BUFFER_SIZE", 442 ]), 443 ("RepeatMode", ["REPEAT", "CLAMP_TO_EDGE", "MIRRORED_REPEAT", "CLAMP_TO_BORDER"]), 444 ("TextureFilter", ["NEAREST", "LINEAR", "NEAREST_MIPMAP_NEAREST", "LINEAR_MIPMAP_NEAREST", 445 "NEAREST_MIPMAP_LINEAR", "LINEAR_MIPMAP_LINEAR"]), 446 ("TextureWrapMode", ["REPEAT", "CLAMP_TO_EDGE", "MIRRORED_REPEAT"]), 447 ("TextureSwizzle", ["RED", "GREEN", "BLUE", "ALPHA", "ZERO", "ONE"]), 448 ("TextureCompareMode", ["NONE", "COMPARE_REF_TO_TEXTURE"]), 449 ("CubeMapFace", ["TEXTURE_CUBE_MAP_POSITIVE_X", "TEXTURE_CUBE_MAP_NEGATIVE_X", 450 "TEXTURE_CUBE_MAP_POSITIVE_Y", "TEXTURE_CUBE_MAP_NEGATIVE_Y", 451 "TEXTURE_CUBE_MAP_POSITIVE_Z", "TEXTURE_CUBE_MAP_NEGATIVE_Z"]), 452 ("TextureDepthStencilMode", ["DEPTH_COMPONENT", "STENCIL_INDEX"]), 453 ("PixelStoreParameter", [ 454 "UNPACK_ALIGNMENT", 455 "UNPACK_IMAGE_HEIGHT", 456 "UNPACK_ROW_LENGTH", 457 "UNPACK_SKIP_IMAGES", 458 "UNPACK_SKIP_ROWS", 459 "UNPACK_SKIP_PIXELS", 460 "PACK_ROW_LENGTH", 461 "PACK_SKIP_ROWS", 462 "PACK_SKIP_PIXELS"]), 463 ("UncompressedTextureFormat", [ 464 # GLES2 unsized formats 465 "LUMINANCE", 466 "LUMINANCE_ALPHA", 467 "ALPHA", 468 "RGB", 469 "RGBA", 470 471 # GLES2 sized formats 472 "RGBA4", 473 "RGB5_A1", 474 "RGB565", 475 "DEPTH_COMPONENT16", 476 "STENCIL_INDEX8", 477 478 # GLES3 unsized formats 479 "RG", 480 "RED", 481 "RGBA_INTEGER", 482 "RGB_INTEGER", 483 "RG_INTEGER", 484 "RED_INTEGER", 485 "DEPTH_COMPONENT", 486 "DEPTH_STENCIL", 487 488 # GLES3 sized formats 489 "RGBA32F", 490 "RGBA32I", 491 "RGBA32UI", 492 "RGBA16", 493 "RGBA16_SNORM", 494 "RGBA16F", 495 "RGBA16I", 496 "RGBA16UI", 497 "RGBA8", 498 "RGBA8I", 499 "RGBA8UI", 500 "SRGB8_ALPHA8", 501 "RGB10_A2", 502 "RGB10_A2UI", 503 "RGBA8_SNORM", 504 "RGB8", 505 "R11F_G11F_B10F", 506 "RGB32F", 507 "RGB32I", 508 "RGB32UI", 509 "RGB16", 510 "RGB16_SNORM", 511 "RGB16F", 512 "RGB16I", 513 "RGB16UI", 514 "RGB8_SNORM", 515 "RGB8I", 516 "RGB8UI", 517 "SRGB8", 518 "RGB9_E5", 519 "RG32F", 520 "RG32I", 521 "RG32UI", 522 "RG16", 523 "RG16_SNORM", 524 "RG16F", 525 "RG16I", 526 "RG16UI", 527 "RG8", 528 "RG8I", 529 "RG8UI", 530 "RG8_SNORM", 531 "R32F", 532 "R32I", 533 "R32UI", 534 "R16", 535 "R16_SNORM", 536 "R16F", 537 "R16I", 538 "R16UI", 539 "R8", 540 "R8I", 541 "R8UI", 542 "R8_SNORM", 543 "DEPTH_COMPONENT32F", 544 "DEPTH_COMPONENT24", 545 "DEPTH32F_STENCIL8", 546 "DEPTH24_STENCIL8", 547 548 # OES_required_internalformat 549 "RGB10", 550 551 # OES_depth32 552 "DEPTH_COMPONENT32", 553 554 # EXT_sRGB 555 "SRGB", 556 "SRGB_ALPHA", 557 558 # GL_EXT_texture_sRGB_R8 & RG8 559 "SR8_EXT", 560 "SRG8_EXT", 561 562 # GL_EXT_read_format_bgra 563 "BGRA", 564 ]), 565 566 ("CompressedTextureFormat", [ 567 # ETC2/EAC formats 568 "COMPRESSED_R11_EAC", 569 "COMPRESSED_SIGNED_R11_EAC", 570 "COMPRESSED_RG11_EAC", 571 "COMPRESSED_SIGNED_RG11_EAC", 572 "COMPRESSED_RGB8_ETC2", 573 "COMPRESSED_SRGB8_ETC2", 574 "COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2", 575 "COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2", 576 "COMPRESSED_RGBA8_ETC2_EAC", 577 "COMPRESSED_SRGB8_ALPHA8_ETC2_EAC", 578 579 # ASTC formats 580 "COMPRESSED_RGBA_ASTC_4x4_KHR", 581 "COMPRESSED_RGBA_ASTC_5x4_KHR", 582 "COMPRESSED_RGBA_ASTC_5x5_KHR", 583 "COMPRESSED_RGBA_ASTC_6x5_KHR", 584 "COMPRESSED_RGBA_ASTC_6x6_KHR", 585 "COMPRESSED_RGBA_ASTC_8x5_KHR", 586 "COMPRESSED_RGBA_ASTC_8x6_KHR", 587 "COMPRESSED_RGBA_ASTC_8x8_KHR", 588 "COMPRESSED_RGBA_ASTC_10x5_KHR", 589 "COMPRESSED_RGBA_ASTC_10x6_KHR", 590 "COMPRESSED_RGBA_ASTC_10x8_KHR", 591 "COMPRESSED_RGBA_ASTC_10x10_KHR", 592 "COMPRESSED_RGBA_ASTC_12x10_KHR", 593 "COMPRESSED_RGBA_ASTC_12x12_KHR", 594 "COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR", 595 "COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR", 596 "COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR", 597 "COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR", 598 "COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR", 599 "COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR", 600 "COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR", 601 "COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR", 602 "COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR", 603 "COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR", 604 "COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR", 605 "COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR", 606 "COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR", 607 "COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR", 608 609 # EXT_texture_compression_s3tc 610 "COMPRESSED_RGB_S3TC_DXT1_EXT", 611 "COMPRESSED_RGBA_S3TC_DXT1_EXT", 612 "COMPRESSED_RGBA_S3TC_DXT3_EXT", 613 "COMPRESSED_RGBA_S3TC_DXT5_EXT", 614 615 # IMG_texture_compression_pvrtc 616 "COMPRESSED_RGB_PVRTC_4BPPV1_IMG", 617 "COMPRESSED_RGB_PVRTC_2BPPV1_IMG", 618 "COMPRESSED_RGBA_PVRTC_4BPPV1_IMG", 619 "COMPRESSED_RGBA_PVRTC_2BPPV1_IMG", 620 ]), 621 622 # Shader var type 623 ("ShaderVarType", [ 624 "FLOAT", 625 "FLOAT_VEC2", 626 "FLOAT_VEC3", 627 "FLOAT_VEC4", 628 "INT", 629 "INT_VEC2", 630 "INT_VEC3", 631 "INT_VEC4", 632 "UNSIGNED_INT", 633 "UNSIGNED_INT_VEC2", 634 "UNSIGNED_INT_VEC3", 635 "UNSIGNED_INT_VEC4", 636 "BOOL", 637 "BOOL_VEC2", 638 "BOOL_VEC3", 639 "BOOL_VEC4", 640 "FLOAT_MAT2", 641 "FLOAT_MAT3", 642 "FLOAT_MAT4", 643 "FLOAT_MAT2x3", 644 "FLOAT_MAT2x4", 645 "FLOAT_MAT3x2", 646 "FLOAT_MAT3x4", 647 "FLOAT_MAT4x2", 648 "FLOAT_MAT4x3", 649 "SAMPLER_2D", 650 "SAMPLER_3D", 651 "SAMPLER_CUBE", 652 "SAMPLER_2D_SHADOW", 653 "SAMPLER_2D_ARRAY", 654 "SAMPLER_2D_ARRAY_SHADOW", 655 "SAMPLER_CUBE_SHADOW", 656 "INT_SAMPLER_2D", 657 "INT_SAMPLER_3D", 658 "INT_SAMPLER_CUBE", 659 "INT_SAMPLER_2D_ARRAY", 660 "UNSIGNED_INT_SAMPLER_2D", 661 "UNSIGNED_INT_SAMPLER_3D", 662 "UNSIGNED_INT_SAMPLER_CUBE", 663 "UNSIGNED_INT_SAMPLER_2D_ARRAY", 664 "SAMPLER_2D_MULTISAMPLE", 665 "INT_SAMPLER_2D_MULTISAMPLE", 666 "UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE", 667 "IMAGE_2D", 668 "IMAGE_3D", 669 "IMAGE_CUBE", 670 "IMAGE_2D_ARRAY", 671 "INT_IMAGE_2D", 672 "INT_IMAGE_3D", 673 "INT_IMAGE_CUBE", 674 "INT_IMAGE_2D_ARRAY", 675 "UNSIGNED_INT_IMAGE_2D", 676 "UNSIGNED_INT_IMAGE_3D", 677 "UNSIGNED_INT_IMAGE_CUBE", 678 "UNSIGNED_INT_IMAGE_2D_ARRAY", 679 "UNSIGNED_INT_ATOMIC_COUNTER", 680 "SAMPLER_2D_MULTISAMPLE_ARRAY", 681 "INT_SAMPLER_2D_MULTISAMPLE_ARRAY", 682 "UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY", 683 "SAMPLER_BUFFER", 684 "INT_SAMPLER_BUFFER", 685 "UNSIGNED_INT_SAMPLER_BUFFER", 686 "IMAGE_BUFFER", 687 "INT_IMAGE_BUFFER", 688 "UNSIGNED_INT_IMAGE_BUFFER", 689 "SAMPLER_CUBE_MAP_ARRAY", 690 "SAMPLER_CUBE_MAP_ARRAY_SHADOW", 691 "INT_SAMPLER_CUBE_MAP_ARRAY", 692 "UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY", 693 "IMAGE_CUBE_MAP_ARRAY", 694 "INT_IMAGE_CUBE_MAP_ARRAY", 695 "UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY", 696 ]), 697 698 # Shader params 699 ("ShaderParam", [ "SHADER_TYPE", "DELETE_STATUS", "COMPILE_STATUS", "INFO_LOG_LENGTH", "SHADER_SOURCE_LENGTH"]), 700 701 # Vertex attribute queries 702 ("VertexAttribParameterName", [ 703 "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING", 704 "VERTEX_ATTRIB_ARRAY_ENABLED", 705 "VERTEX_ATTRIB_ARRAY_SIZE", 706 "VERTEX_ATTRIB_ARRAY_STRIDE", 707 "VERTEX_ATTRIB_ARRAY_TYPE", 708 "VERTEX_ATTRIB_ARRAY_NORMALIZED", 709 "VERTEX_ATTRIB_ARRAY_INTEGER", 710 "VERTEX_ATTRIB_ARRAY_DIVISOR", 711 "CURRENT_VERTEX_ATTRIB", 712 "VERTEX_ATTRIB_BINDING", 713 "VERTEX_ATTRIB_RELATIVE_OFFSET", 714 ]), 715 716 ("Boolean", ["FALSE", "TRUE"]), 717 718 # GetPName 719 ("GettableState", [ 720 "ELEMENT_ARRAY_BUFFER_BINDING", "ARRAY_BUFFER_BINDING", "VERTEX_ARRAY_BINDING", "VIEWPORT", "DEPTH_RANGE", 721 "TRANSFORM_FEEDBACK_BINDING", "LINE_WIDTH", "CULL_FACE_MODE", "FRONT_FACE", "POLYGON_OFFSET_FACTOR", 722 "POLYGON_OFFSET_UNITS", "SAMPLE_COVERAGE_VALUE", "SAMPLE_COVERAGE_INVERT", "ACTIVE_TEXTURE", "TEXTURE_BINDING_1D", 723 "TEXTURE_BINDING_2D", "TEXTURE_BINDING_3D", "TEXTURE_BINDING_2D_ARRAY", 724 "TEXTURE_BINDING_CUBE_MAP", "SAMPLER_BINDING", "SCISSOR_BOX", "STENCIL_FUNC", "STENCIL_VALUE_MASK", 725 "STENCIL_REF", "STENCIL_FAIL", "STENCIL_PASS_DEPTH_FAIL", "STENCIL_PASS_DEPTH_PASS", "STENCIL_BACK_FUNC", 726 "STENCIL_BACK_VALUE_MASK", "STENCIL_BACK_REF", "STENCIL_BACK_FAIL", "STENCIL_BACK_PASS_DEPTH_FAIL", "STENCIL_BACK_PASS_DEPTH_PASS", 727 "DEPTH_FUNC", "BLEND_SRC_RGB", "BLEND_SRC_ALPHA", "BLEND_DST_RGB", "BLEND_DST_ALPHA", 728 "BLEND_EQUATION_RGB", "BLEND_EQUATION_ALPHA", "BLEND_COLOR", "COLOR_WRITEMASK", "DEPTH_WRITEMASK", 729 "STENCIL_WRITEMASK", "STENCIL_BACK_WRITEMASK", "COLOR_CLEAR_VALUE", "DEPTH_CLEAR_VALUE", "STENCIL_CLEAR_VALUE", 730 "DRAW_FRAMEBUFFER_BINDING", "READ_FRAMEBUFFER_BINDING", "RENDERBUFFER_BINDING", "DRAW_BUFFER0", "DRAW_BUFFER1", 731 "DRAW_BUFFER2", "DRAW_BUFFER3", "DRAW_BUFFER4", "DRAW_BUFFER5", "DRAW_BUFFER6", 732 "DRAW_BUFFER7", "DRAW_BUFFER8", "DRAW_BUFFER9", "DRAW_BUFFER10", "DRAW_BUFFER11", 733 "DRAW_BUFFER12", "DRAW_BUFFER13", "DRAW_BUFFER14", "DRAW_BUFFER15", "READ_BUFFER", 734 "UNPACK_IMAGE_HEIGHT", "UNPACK_SKIP_IMAGES", "UNPACK_ROW_LENGTH", "UNPACK_SKIP_ROWS", "UNPACK_SKIP_PIXELS", 735 "UNPACK_ALIGNMENT", "PACK_ROW_LENGTH", "PACK_SKIP_ROWS", "PACK_SKIP_PIXELS", "PACK_ALIGNMENT", 736 "PIXEL_PACK_BUFFER_BINDING", "PIXEL_UNPACK_BUFFER_BINDING", "CURRENT_PROGRAM", "TRANSFORM_FEEDBACK_BUFFER_BINDING", "TRANSFORM_FEEDBACK_PAUSED", 737 "TRANSFORM_FEEDBACK_ACTIVE", "UNIFORM_BUFFER_BINDING", "GENERATE_MIPMAP_HINT", "FRAGMENT_SHADER_DERIVATIVE_HINT", "MAX_ELEMENT_INDEX", 738 "SUBPIXEL_BITS", "MAX_3D_TEXTURE_SIZE", "MAX_TEXTURE_SIZE", "MAX_ARRAY_TEXTURE_LAYERS", "MAX_TEXTURE_LOD_BIAS", 739 "MAX_CUBE_MAP_TEXTURE_SIZE", "MAX_RENDERBUFFER_SIZE", "MAX_DRAW_BUFFERS", "MAX_COLOR_ATTACHMENTS", "MAX_VIEWPORT_DIMS", 740 "ALIASED_POINT_SIZE_RANGE", "ALIASED_LINE_WIDTH_RANGE", "MAX_ELEMENTS_INDICES", "MAX_ELEMENTS_VERTICES", "COMPRESSED_TEXTURE_FORMATS", 741 "NUM_COMPRESSED_TEXTURE_FORMATS", "PROGRAM_BINARY_FORMATS", "NUM_PROGRAM_BINARY_FORMATS", "SHADER_BINARY_FORMATS", "NUM_SHADER_BINARY_FORMATS", 742 "SHADER_COMPILER", "MAX_SERVER_WAIT_TIMEOUT", "NUM_EXTENSIONS", "MAJOR_VERSION", "MINOR_VERSION", 743 "MAX_VERTEX_ATTRIBS", "MAX_VERTEX_UNIFORM_COMPONENTS", "MAX_VERTEX_UNIFORM_VECTORS", "MAX_VERTEX_UNIFORM_BLOCKS", "MAX_VERTEX_OUTPUT_COMPONENTS", 744 "MAX_VERTEX_TEXTURE_IMAGE_UNITS", "MAX_FRAGMENT_UNIFORM_COMPONENTS", "MAX_FRAGMENT_UNIFORM_VECTORS", "MAX_FRAGMENT_UNIFORM_BLOCKS", "MAX_FRAGMENT_INPUT_COMPONENTS", 745 "MAX_TEXTURE_IMAGE_UNITS", "MIN_PROGRAM_TEXEL_OFFSET", "MAX_PROGRAM_TEXEL_OFFSET", "MAX_UNIFORM_BUFFER_BINDINGS", "MAX_UNIFORM_BLOCK_SIZE", 746 "UNIFORM_BUFFER_OFFSET_ALIGNMENT", "MAX_COMBINED_UNIFORM_BLOCKS", "MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS", "MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS", "MAX_VARYING_COMPONENTS", 747 "MAX_VARYING_VECTORS", "MAX_COMBINED_TEXTURE_IMAGE_UNITS", "MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS", "MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS", "MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS", 748 "SAMPLE_BUFFERS", "SAMPLES", "MAX_SAMPLES", "DEPTH_BITS", "STENCIL_BITS", 749 "IMPLEMENTATION_COLOR_READ_TYPE", "IMPLEMENTATION_COLOR_READ_FORMAT", "COPY_READ_BUFFER_BINDING", "COPY_WRITE_BUFFER_BINDING", "RED_BITS", 750 "GREEN_BITS", "BLUE_BITS", "ALPHA_BITS", "MAX_COLOR_TEXTURE_SAMPLES", "TIMESTAMP", 751 "MAX_DEPTH_TEXTURE_SAMPLES", "MAX_INTEGER_SAMPLES", "TEXTURE_BINDING_2D_MULTISAMPLE", "TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY", "MAX_VERTEX_ATTRIB_STRIDE", 752 "MAX_VERTEX_ATTRIB_BINDINGS", "MAX_VERTEX_ATTRIB_RELATIVE_OFFSET", "MIN_SAMPLE_SHADING_VALUE", "FRAGMENT_INTERPOLATION_OFFSET_BITS", "MAX_FRAGMENT_INTERPOLATION_OFFSET", 753 "MIN_FRAGMENT_INTERPOLATION_OFFSET", "MAX_GEOMETRY_SHADER_INVOCATIONS", "LAYER_PROVOKING_VERTEX", "MAX_GEOMETRY_UNIFORM_COMPONENTS", "MAX_GEOMETRY_SHADER_STORAGE_BLOCKS", 754 "MAX_GEOMETRY_UNIFORM_BLOCKS", "MAX_GEOMETRY_INPUT_COMPONENTS", "MAX_GEOMETRY_OUTPUT_COMPONENTS", "MAX_GEOMETRY_IMAGE_UNIFORMS", "MAX_GEOMETRY_TEXTURE_IMAGE_UNITS", 755 "MAX_GEOMETRY_OUTPUT_VERTICES", "MAX_GEOMETRY_ATOMIC_COUNTERS", "MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS", "MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS", "MAX_FRAMEBUFFER_LAYERS", 756 "PROVOKING_VERTEX", "PRIMITIVE_RESTART_INDEX", "MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS", "MAX_FRAGMENT_ATOMIC_COUNTERS", "MAX_FRAGMENT_IMAGE_UNIFORMS", 757 "MAX_COMPUTE_UNIFORM_BLOCKS", "MAX_COMPUTE_TEXTURE_IMAGE_UNITS", "MAX_COMPUTE_UNIFORM_COMPONENTS", "MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS", "MAX_COMPUTE_ATOMIC_COUNTERS", 758 "MAX_COMPUTE_IMAGE_UNIFORMS", "MAX_COMPUTE_SHADER_STORAGE_BLOCKS", "MAX_FRAGMENT_SHADER_STORAGE_BLOCKS", "MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS", "MAX_VERTEX_ATOMIC_COUNTER_BUFFERS", 759 "MAX_VERTEX_ATOMIC_COUNTERS", "MAX_VERTEX_IMAGE_UNIFORMS", "MAX_VERTEX_SHADER_STORAGE_BLOCKS", "MAX_COMBINED_SHADER_OUTPUT_RESOURCES", "MAX_ATOMIC_COUNTER_BUFFER_BINDINGS", 760 "MAX_ATOMIC_COUNTER_BUFFER_SIZE", "MAX_IMAGE_UNITS", "MAX_COMBINED_ATOMIC_COUNTER_BUFFERS", "MAX_COMBINED_IMAGE_UNIFORMS", "MAX_SHADER_STORAGE_BUFFER_BINDINGS", 761 "MAX_SHADER_STORAGE_BLOCK_SIZE", "MAX_COMBINED_ATOMIC_COUNTERS", "MAX_COMBINED_SHADER_STORAGE_BLOCKS", "SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT", "PRIMITIVE_BOUNDING_BOX_EXT", 762 "DRAW_INDIRECT_BUFFER_BINDING", "MAX_SAMPLE_MASK_WORDS", "PROGRAM_PIPELINE_BINDING", "ATOMIC_COUNTER_BUFFER_BINDING", "SHADER_STORAGE_BUFFER_BINDING", 763 "DISPATCH_INDIRECT_BUFFER_BINDING", "MAX_FRAMEBUFFER_WIDTH", "MAX_FRAMEBUFFER_HEIGHT", "MAX_FRAMEBUFFER_SAMPLES", "MAX_COMPUTE_SHARED_MEMORY_SIZE", 764 "MIN_PROGRAM_TEXTURE_GATHER_OFFSET", "MAX_PROGRAM_TEXTURE_GATHER_OFFSET", "MAX_COMPUTE_WORK_GROUP_INVOCATIONS", "MAX_UNIFORM_LOCATIONS", "MAX_DEBUG_MESSAGE_LENGTH", 765 "MAX_DEBUG_LOGGED_MESSAGES", "MAX_DEBUG_GROUP_STACK_DEPTH", "MAX_LABEL_LENGTH", "CONTEXT_FLAGS", "DEBUG_LOGGED_MESSAGES", 766 "DEBUG_NEXT_LOGGED_MESSAGE_LENGTH", "DEBUG_GROUP_STACK_DEPTH", "MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS", "TEXTURE_BUFFER_OFFSET_ALIGNMENT", "TEXTURE_BUFFER_BINDING", 767 "TEXTURE_BINDING_BUFFER", "MAX_TEXTURE_BUFFER_SIZE", "MAX_PATCH_VERTICES", "MAX_TESS_GEN_LEVEL", "MAX_TESS_CONTROL_UNIFORM_COMPONENTS", 768 "MAX_TESS_EVALUATION_UNIFORM_COMPONENTS", "MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS", "MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS", "MAX_TESS_CONTROL_OUTPUT_COMPONENTS", "MAX_TESS_PATCH_COMPONENTS", 769 "MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS", "MAX_TESS_EVALUATION_OUTPUT_COMPONENTS", "MAX_TESS_CONTROL_UNIFORM_BLOCKS", "MAX_TESS_EVALUATION_UNIFORM_BLOCKS", "MAX_TESS_CONTROL_INPUT_COMPONENTS", 770 "MAX_TESS_EVALUATION_INPUT_COMPONENTS", "MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS", "MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS", "MAX_TESS_CONTROL_ATOMIC_COUNTERS", "MAX_TESS_EVALUATION_ATOMIC_COUNTERS", 771 "MAX_TESS_CONTROL_IMAGE_UNIFORMS", "MAX_TESS_EVALUATION_IMAGE_UNIFORMS", "MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS", "MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS","MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS", 772 "MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS", "PATCH_VERTICES", "PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED" 773 ]), 774 775 ("GettableIndexedState", [ 776 "TRANSFORM_FEEDBACK_BUFFER_BINDING", 777 "UNIFORM_BUFFER_BINDING", 778 "TRANSFORM_FEEDBACK_BUFFER_START", 779 "TRANSFORM_FEEDBACK_BUFFER_SIZE", 780 "UNIFORM_BUFFER_START", 781 "UNIFORM_BUFFER_SIZE", 782 "SAMPLE_MASK_VALUE", 783 "VERTEX_BINDING_OFFSET", 784 "VERTEX_BINDING_STRIDE", 785 "VERTEX_BINDING_DIVISOR", 786 "VERTEX_BINDING_BUFFER", 787 "MAX_COMPUTE_WORK_GROUP_COUNT", 788 "MAX_COMPUTE_WORK_GROUP_SIZE", 789 "ATOMIC_COUNTER_BUFFER_BINDING", 790 "ATOMIC_COUNTER_BUFFER_START", 791 "ATOMIC_COUNTER_BUFFER_SIZE", 792 "SHADER_STORAGE_BUFFER_BINDING", 793 "SHADER_STORAGE_BUFFER_START", 794 "SHADER_STORAGE_BUFFER_SIZE", 795 "IMAGE_BINDING_NAME", 796 "IMAGE_BINDING_LEVEL", 797 "IMAGE_BINDING_LAYERED", 798 "IMAGE_BINDING_LAYER", 799 "IMAGE_BINDING_ACCESS", 800 "IMAGE_BINDING_FORMAT", 801 "BLEND_EQUATION_RGB", 802 "BLEND_EQUATION_ALPHA", 803 "BLEND_SRC_RGB", 804 "BLEND_SRC_ALPHA", 805 "BLEND_DST_RGB", 806 "BLEND_DST_ALPHA", 807 "COLOR_WRITEMASK", 808 ]), 809 810 ("GettableString", [ 811 "EXTENSIONS", 812 "RENDERER", 813 "SHADING_LANGUAGE_VERSION", 814 "VENDOR", 815 "VERSION" 816 ]), 817 818 ("PointerState", [ 819 "DEBUG_CALLBACK_FUNCTION", 820 "DEBUG_CALLBACK_USER_PARAM", 821 ]), 822 823 ("InternalFormatParameter", ["NUM_SAMPLE_COUNTS", "SAMPLES"]), 824 ("InternalFormatTarget", [ 825 "RENDERBUFFER", 826 "TEXTURE_2D_MULTISAMPLE", 827 "TEXTURE_2D_MULTISAMPLE_ARRAY", 828 "TEXTURE_2D", 829 "TEXTURE_3D", 830 "TEXTURE_2D_ARRAY", 831 "TEXTURE_CUBE_MAP", 832 ]), 833 834 ("MultisampleParameter", ["SAMPLE_POSITION"]), 835 836 # Occlusion and timer queries 837 ("QueryTarget", [ 838 "SAMPLES_PASSED", 839 "ANY_SAMPLES_PASSED", 840 "PRIMITIVES_GENERATED", 841 "TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN", 842 "TIME_ELAPSED", 843 ]), 844 845 ("QueryParam", ["CURRENT_QUERY", "QUERY_COUNTER_BITS"]), 846 ("QueryObjectParam", ["QUERY_RESULT", "QUERY_RESULT_AVAILABLE"]), 847 848 ("ImageAccess", ["READ_ONLY", "WRITE_ONLY", "READ_WRITE"]), 849 850 ("ProgramInterface", [ 851 "UNIFORM", 852 "UNIFORM_BLOCK", 853 "ATOMIC_COUNTER_BUFFER", 854 "PROGRAM_INPUT", 855 "PROGRAM_OUTPUT", 856 "TRANSFORM_FEEDBACK_VARYING", 857 "BUFFER_VARIABLE", 858 "SHADER_STORAGE_BLOCK", 859 ]), 860 861 ("ProgramResourceProperty", [ 862 "ACTIVE_VARIABLES", 863 "BUFFER_BINDING", 864 "NUM_ACTIVE_VARIABLES", 865 "ARRAY_SIZE", 866 "ARRAY_STRIDE", 867 "BLOCK_INDEX", 868 "IS_ROW_MAJOR", 869 "MATRIX_STRIDE", 870 "ATOMIC_COUNTER_BUFFER_INDEX", 871 "BUFFER_DATA_SIZE", 872 "LOCATION", 873 "NAME_LENGTH", 874 "OFFSET", 875 "REFERENCED_BY_VERTEX_SHADER", 876 "REFERENCED_BY_FRAGMENT_SHADER", 877 "REFERENCED_BY_COMPUTE_SHADER", 878 "REFERENCED_BY_GEOMETRY_SHADER", 879 "REFERENCED_BY_TESS_CONTROL_SHADER", 880 "REFERENCED_BY_TESS_EVALUATION_SHADER", 881 "TOP_LEVEL_ARRAY_SIZE", 882 "TOP_LEVEL_ARRAY_STRIDE", 883 "TYPE", 884 "IS_PER_PATCH", 885 ]), 886 887 ("PrecisionFormatType", ["LOW_FLOAT", "MEDIUM_FLOAT", "HIGH_FLOAT", "LOW_INT", "MEDIUM_INT", "HIGH_INT"]), 888 889 ("TransformFeedbackTarget", ["TRANSFORM_FEEDBACK"]), 890 891 ("ProvokingVertex", ["FIRST_VERTEX_CONVENTION", "LAST_VERTEX_CONVENTION", "UNDEFINED_VERTEX"]), 892 893 ("DebugMessageSource", [ 894 "DEBUG_SOURCE_API", 895 "DEBUG_SOURCE_WINDOW_SYSTEM", 896 "DEBUG_SOURCE_SHADER_COMPILER", 897 "DEBUG_SOURCE_THIRD_PARTY", 898 "DEBUG_SOURCE_APPLICATION", 899 "DEBUG_SOURCE_OTHER", "DONT_CARE" 900 ]), 901 ("DebugMessageType", [ 902 "DEBUG_TYPE_ERROR", 903 "DEBUG_TYPE_DEPRECATED_BEHAVIOR", 904 "DEBUG_TYPE_UNDEFINED_BEHAVIOR", 905 "DEBUG_TYPE_PORTABILITY", 906 "DEBUG_TYPE_PERFORMANCE", 907 "DEBUG_TYPE_OTHER", 908 "DEBUG_TYPE_MARKER", 909 "DEBUG_TYPE_PUSH_GROUP", 910 "DEBUG_TYPE_POP_GROUP", 911 "DONT_CARE" 912 ]), 913 ("DebugMessageSeverity", [ 914 "DEBUG_SEVERITY_HIGH", 915 "DEBUG_SEVERITY_MEDIUM", 916 "DEBUG_SEVERITY_LOW", 917 "DEBUG_SEVERITY_NOTIFICATION", 918 "DONT_CARE" 919 ]), 920 921 # Pipeline query 922 ("PipelineParam", [ 923 "ACTIVE_PROGRAM", 924 "INFO_LOG_LENGTH", 925 "VALIDATE_STATUS", 926 "VERTEX_SHADER", 927 "FRAGMENT_SHADER", 928 "COMPUTE_SHADER", 929 "GEOMETRY_SHADER", 930 "TESS_CONTROL_SHADER", 931 "TESS_EVALUATION_SHADER", 932 ]), 933 934 ("PatchParam", [ 935 "PATCH_VERTICES", 936 ]), 937 938 ("TextureFormat", [ 939 # generated: UncompressedTextureFormat + CompressedTextureFormat 940 ]), 941 ] 942 943 def getEnumGroupByName (name): 944 # \note: will raise an (index out of bounds) error if no such group 945 return [x for x in ENUM_GROUPS if x[0]==name][0][1] 946 947 # EnableCap EnumGroups are also GettableState EnumGroups 948 getEnumGroupByName("GettableState").extend(getEnumGroupByName("EnableCap")) 949 950 # TextureFormat = UncompressedTextureFormat + CompressedTextureFormat 951 getEnumGroupByName("TextureFormat").extend(getEnumGroupByName("UncompressedTextureFormat") + getEnumGroupByName("CompressedTextureFormat")) 952 953 def genStrUtil (iface): 954 enumGroups = addValuePrefix(ENUM_GROUPS, "GL_") 955 bitfieldGroups = addValuePrefix(BITFIELD_GROUPS, "GL_") 956 prototypeFile = os.path.join(OPENGL_DIR, "gluStrUtilPrototypes.inl") 957 implFile = os.path.join(OPENGL_DIR, "gluStrUtil.inl") 958 959 writeInlFile(prototypeFile, indentLines(genStrUtilProtos(iface, enumGroups, bitfieldGroups))) 960 writeInlFile(implFile, genStrUtilImpls(iface, enumGroups, bitfieldGroups)) 961 962 if __name__ == "__main__": 963 genStrUtil(getHybridInterface()) 964