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 23import os 24import string 25 26# TODO remove 27import sys 28sys.path.append(os.path.dirname(os.path.dirname(__file__))) 29 30from src_util import * 31from khr_util.gen_str_util import addValuePrefix, genStrUtilProtos, genStrUtilImpls 32 33# Bitfield mapping 34BITFIELD_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 ("ContextMask", [ 72 "CONTEXT_FLAG_NO_ERROR_BIT", 73 "CONTEXT_FLAG_ROBUST_ACCESS_BIT", 74 "CONTEXT_FLAG_DEBUG_BIT", 75 "CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT", 76 ]), 77 78 ("ClientWaitMask", [ 79 "SYNC_FLUSH_COMMANDS_BIT", 80 ]), 81 82 ("ContextProfileMask", [ 83 "CONTEXT_CORE_PROFILE_BIT", 84 "CONTEXT_COMPATIBILITY_PROFILE_BIT", 85 ]), 86] 87 88# Enum mapping 89ENUM_GROUPS = [ 90 # Common enums 91 92 # ErrorCode 93 ("Error", [ 94 "NO_ERROR", 95 "INVALID_ENUM", 96 "INVALID_VALUE", 97 "INVALID_OPERATION", 98 "OUT_OF_MEMORY", 99 "INVALID_FRAMEBUFFER_OPERATION", 100 "CONTEXT_LOST", 101 ]), 102 103 # PixelType, partially 104 ("Type", [ 105 # GLES2 types 106 "BYTE", 107 "UNSIGNED_BYTE", 108 "SHORT", 109 "UNSIGNED_SHORT", 110 "INT", 111 "UNSIGNED_INT", 112 "FLOAT", 113 "DOUBLE", 114 "FIXED", 115 "UNSIGNED_SHORT_5_6_5", 116 "UNSIGNED_SHORT_4_4_4_4", 117 "UNSIGNED_SHORT_5_5_5_1", 118 "UNSIGNED_BYTE_3_3_2", 119 "UNSIGNED_INT_8_8_8_8", 120 "UNSIGNED_INT_10_10_10_2", 121 "UNSIGNED_BYTE_2_3_3_REV", 122 "UNSIGNED_SHORT_5_6_5_REV", 123 "UNSIGNED_SHORT_4_4_4_4_REV", 124 "UNSIGNED_SHORT_1_5_5_5_REV", 125 "UNSIGNED_INT_8_8_8_8_REV", 126 127 # GLES3 types 128 "HALF_FLOAT", 129 "INT_2_10_10_10_REV", 130 "UNSIGNED_INT_2_10_10_10_REV", 131 "UNSIGNED_INT_10F_11F_11F_REV", 132 "UNSIGNED_INT_5_9_9_9_REV", 133 "UNSIGNED_INT_24_8", 134 "FLOAT_32_UNSIGNED_INT_24_8_REV", 135 "SIGNED_NORMALIZED", 136 "UNSIGNED_NORMALIZED", 137 138 # Extension types 139 "HALF_FLOAT_OES", 140 141 # GL4.0 types 142 "DOUBLE_VEC2", 143 "DOUBLE_VEC3", 144 "DOUBLE_VEC4", 145 "DOUBLE_MAT2", 146 "DOUBLE_MAT3", 147 "DOUBLE_MAT4", 148 "DOUBLE_MAT2x3", 149 "DOUBLE_MAT2x4", 150 "DOUBLE_MAT3x2", 151 "DOUBLE_MAT3x4", 152 "DOUBLE_MAT4x2", 153 "DOUBLE_MAT4x3", 154 ]), 155 156 # GetPName, also GettableState below 157 ("ParamQuery", [ 158 # Generic 159 "LINE_WIDTH", 160 "LINE_SMOOTH", 161 "LINE_SMOOTH_HINT", 162 "LINE_WIDTH_RANGE", 163 "LINE_WIDTH_GRANULARITY", 164 "POLYGON_SMOOTH", 165 "POLYGON_SMOOTH_HINT", 166 "ALIASED_POINT_SIZE_RANGE", 167 "ALIASED_LINE_WIDTH_RANGE", 168 "CULL_FACE_MODE", 169 "FRONT_FACE", 170 "DEPTH_RANGE", 171 "DEPTH_WRITEMASK", 172 "DEPTH_CLEAR_VALUE", 173 "DEPTH_FUNC", 174 "STENCIL_CLEAR_VALUE", 175 "STENCIL_FUNC", 176 "STENCIL_FAIL", 177 "STENCIL_PASS_DEPTH_FAIL", 178 "STENCIL_PASS_DEPTH_PASS", 179 "STENCIL_REF", 180 "STENCIL_VALUE_MASK", 181 "STENCIL_WRITEMASK", 182 "STENCIL_BACK_FUNC", 183 "STENCIL_BACK_FAIL", 184 "STENCIL_BACK_PASS_DEPTH_FAIL", 185 "STENCIL_BACK_PASS_DEPTH_PASS", 186 "STENCIL_BACK_REF", 187 "STENCIL_BACK_VALUE_MASK", 188 "STENCIL_BACK_WRITEMASK", 189 "VIEWPORT", 190 "SCISSOR_BOX", 191 "SCISSOR_TEST", 192 "COLOR_CLEAR_VALUE", 193 "COLOR_WRITEMASK", 194 "UNPACK_ALIGNMENT", 195 "PACK_ALIGNMENT", 196 "MAX_TEXTURE_SIZE", 197 "MAX_VIEWPORT_DIMS", 198 "SUBPIXEL_BITS", 199 "RED_BITS", 200 "GREEN_BITS", 201 "BLUE_BITS", 202 "ALPHA_BITS", 203 "DEPTH_BITS", 204 "STENCIL_BITS", 205 "POLYGON_OFFSET_UNITS", 206 "POLYGON_OFFSET_FILL", 207 "POLYGON_OFFSET_FACTOR", 208 "POLYGON_OFFSET_POINT", 209 "POLYGON_OFFSET_LINE", 210 "TEXTURE_BINDING_2D", 211 "SAMPLE_BUFFERS", 212 "SAMPLES", 213 "SAMPLE_COVERAGE_VALUE", 214 "SAMPLE_COVERAGE_INVERT", 215 216 "MAX_CUBE_MAP_TEXTURE_SIZE", 217 "MAX_RENDERBUFFER_SIZE", 218 219 # Program-related 220 "MAX_VERTEX_ATTRIBS", 221 "MAX_VERTEX_UNIFORM_VECTORS", 222 "MAX_VARYING_VECTORS", 223 "MAX_COMBINED_TEXTURE_IMAGE_UNITS", 224 "MAX_VERTEX_TEXTURE_IMAGE_UNITS", 225 "MAX_TEXTURE_IMAGE_UNITS", 226 "MAX_FRAGMENT_UNIFORM_VECTORS" 227 ]), 228 229 # *missing* 230 # Program query 231 ("ProgramParam", [ 232 "ACTIVE_ATTRIBUTES", 233 "ACTIVE_ATTRIBUTE_MAX_LENGTH", 234 "ACTIVE_UNIFORMS", 235 "ACTIVE_UNIFORM_BLOCKS", 236 "ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH", 237 "ACTIVE_UNIFORM_MAX_LENGTH", 238 "ATTACHED_SHADERS", 239 "DELETE_STATUS", 240 "INFO_LOG_LENGTH", 241 "LINK_STATUS", 242 "PROGRAM_BINARY_RETRIEVABLE_HINT", 243 "TRANSFORM_FEEDBACK_BUFFER_MODE", 244 "TRANSFORM_FEEDBACK_BUFFER_PAUSED", 245 "TRANSFORM_FEEDBACK_BUFFER_ACTIVE", 246 "TRANSFORM_FEEDBACK_VARYINGS", 247 "TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH", 248 "VALIDATE_STATUS", 249 "GEOMETRY_INPUT_TYPE", 250 "GEOMETRY_OUTPUT_TYPE", 251 "GEOMETRY_VERTICES_OUT", 252 "GEOMETRY_SHADER_INVOCATIONS", 253 "PROGRAM_SEPARABLE", 254 "COMPUTE_WORK_GROUP_SIZE", 255 "ACTIVE_ATOMIC_COUNTER_BUFFERS", 256 "TESS_CONTROL_OUTPUT_VERTICES", 257 "TESS_GEN_MODE", 258 "TESS_GEN_SPACING", 259 "TESS_GEN_VERTEX_ORDER", 260 "TESS_GEN_POINT_MODE", 261 ]), 262 263 # *missing* 264 # Uniform query 265 ("UniformParam", [ 266 "UNIFORM_TYPE", 267 "UNIFORM_SIZE", 268 "UNIFORM_NAME_LENGTH", 269 "UNIFORM_BLOCK_INDEX", 270 "UNIFORM_OFFSET", 271 "UNIFORM_ARRAY_STRIDE", 272 "UNIFORM_MATRIX_STRIDE", 273 "UNIFORM_IS_ROW_MAJOR" 274 ]), 275 276 # *missing* 277 # Framebuffers 278 ("FramebufferAttachment", ["COLOR_ATTACHMENT0", "COLOR_ATTACHMENT1", "COLOR_ATTACHMENT2", "COLOR_ATTACHMENT3", 279 "COLOR_ATTACHMENT4", "COLOR_ATTACHMENT5", "COLOR_ATTACHMENT6", "COLOR_ATTACHMENT7", 280 "COLOR_ATTACHMENT8", "COLOR_ATTACHMENT9", "COLOR_ATTACHMENT10", "COLOR_ATTACHMENT11", 281 "COLOR_ATTACHMENT12", "COLOR_ATTACHMENT13", "COLOR_ATTACHMENT14", "COLOR_ATTACHMENT15", 282 "DEPTH_ATTACHMENT", "STENCIL_ATTACHMENT", "DEPTH_STENCIL_ATTACHMENT", 283 "BACK", "FRONT_LEFT", "FRONT_RIGHT", "BACK_LEFT", "BACK_RIGHT", "LEFT", "RIGHT", 284 "DEPTH", "STENCIL"]), 285 # *missing* 286 ("FramebufferAttachmentParameter", ["FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE", "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME", 287 "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL", "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE", 288 "FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER", "FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE", 289 "FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING", "FRAMEBUFFER_ATTACHMENT_RED_SIZE", 290 "FRAMEBUFFER_ATTACHMENT_GREEN_SIZE", "FRAMEBUFFER_ATTACHMENT_BLUE_SIZE", 291 "FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE", "FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE", 292 "FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE", "FRAMEBUFFER_ATTACHMENT_LAYERED"]), 293 ("FramebufferTarget", ["FRAMEBUFFER", "RENDERBUFFER", "DRAW_FRAMEBUFFER", "READ_FRAMEBUFFER"]), 294 ("FramebufferStatus", ["FRAMEBUFFER_COMPLETE", "FRAMEBUFFER_INCOMPLETE_ATTACHMENT", "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT", 295 "FRAMEBUFFER_INCOMPLETE_DIMENSIONS", "FRAMEBUFFER_UNSUPPORTED", "FRAMEBUFFER_INCOMPLETE_MULTISAMPLE", 296 "FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS", "FRAMEBUFFER_UNDEFINED", 297 "FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER", "FRAMEBUFFER_INCOMPLETE_READ_BUFFER"]), 298 ("FramebufferAttachmentType", ["NONE", "FRAMEBUFFER_DEFAULT", "TEXTURE", "RENDERBUFFER"]), 299 ("FramebufferColorEncoding", ["LINEAR", "SRGB"]), 300 301 ("FramebufferParameter", [ 302 "FRAMEBUFFER_DEFAULT_WIDTH", 303 "FRAMEBUFFER_DEFAULT_HEIGHT", 304 "FRAMEBUFFER_DEFAULT_SAMPLES", 305 "FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS", 306 "FRAMEBUFFER_DEFAULT_LAYERS", 307 "DOUBLEBUFFER", 308 "IMPLEMENTATION_COLOR_READ_FORMAT", 309 "IMPLEMENTATION_COLOR_READ_TYPE", 310 "SAMPLES", 311 "SAMPLE_BUFFERS", 312 "STEREO", 313 ]), 314 315 # Renderbuffers 316 ("RenderbufferParameter", ["RENDERBUFFER_WIDTH", "RENDERBUFFER_HEIGHT", "RENDERBUFFER_INTERNAL_FORMAT", "RENDERBUFFER_RED_SIZE", 317 "RENDERBUFFER_GREEN_SIZE", "RENDERBUFFER_BLUE_SIZE", "RENDERBUFFER_ALPHA_SIZE", "RENDERBUFFER_DEPTH_SIZE", 318 "RENDERBUFFER_STENCIL_SIZE", "RENDERBUFFER_SAMPLES"]), 319 320 # Primitives 321 ("PrimitiveType", [ 322 "POINTS", 323 "LINES", 324 "LINE_STRIP", 325 "LINE_LOOP", 326 "TRIANGLES", 327 "TRIANGLE_STRIP", 328 "TRIANGLE_FAN", 329 "LINES_ADJACENCY", 330 "LINE_STRIP_ADJACENCY", 331 "TRIANGLES_ADJACENCY", 332 "TRIANGLE_STRIP_ADJACENCY", 333 "PATCHES", 334 "ISOLINES", 335 ]), 336 337 # Blending 338 ("BlendFactor", ["ZERO", "ONE", "SRC_ALPHA_SATURATE", 339 "SRC_COLOR", "ONE_MINUS_SRC_COLOR", "SRC_ALPHA", "ONE_MINUS_SRC_ALPHA", 340 "SRC1_COLOR", "ONE_MINUS_SRC1_COLOR", "SRC1_ALPHA", "ONE_MINUS_SRC1_ALPHA", 341 "DST_COLOR", "ONE_MINUS_DST_COLOR", "DST_ALPHA", "ONE_MINUS_DST_ALPHA", 342 "CONSTANT_COLOR", "ONE_MINUS_CONSTANT_COLOR", "CONSTANT_ALPHA", "ONE_MINUS_CONSTANT_ALPHA"]), 343 ("BlendEquation", [ 344 "FUNC_ADD", 345 "FUNC_SUBTRACT", 346 "FUNC_REVERSE_SUBTRACT", 347 "MIN", 348 "MAX", 349 "MULTIPLY_KHR", 350 "SCREEN_KHR", 351 "OVERLAY_KHR", 352 "DARKEN_KHR", 353 "LIGHTEN_KHR", 354 "COLORDODGE_KHR", 355 "COLORBURN_KHR", 356 "HARDLIGHT_KHR", 357 "SOFTLIGHT_KHR", 358 "DIFFERENCE_KHR", 359 "EXCLUSION_KHR", 360 "HSL_HUE_KHR", 361 "HSL_SATURATION_KHR", 362 "HSL_COLOR_KHR", 363 "HSL_LUMINOSITY_KHR", 364 "BLEND_EQUATION", 365 ]), 366 367 # Buffer Objects 368 ("BufferTarget", [ 369 "ARRAY_BUFFER", 370 "ELEMENT_ARRAY_BUFFER", 371 "COPY_READ_BUFFER", 372 "COPY_WRITE_BUFFER", 373 "PIXEL_PACK_BUFFER", 374 "PIXEL_UNPACK_BUFFER", 375 "TRANSFORM_FEEDBACK_BUFFER", 376 "UNIFORM_BUFFER", 377 "DRAW_INDIRECT_BUFFER", 378 "SHADER_STORAGE_BUFFER", 379 "TEXTURE_BUFFER", 380 "DISPATCH_INDIRECT_BUFFER", 381 "ATOMIC_COUNTER_BUFFER", 382 ]), 383 ("BufferBinding", ["ARRAY_BUFFER_BINDING", "ELEMENT_ARRAY_BUFFER_BINDING"]), 384 ("Usage", [ 385 "STREAM_DRAW", 386 "STREAM_READ", 387 "STREAM_COPY", 388 "STATIC_DRAW", 389 "STATIC_READ", 390 "STATIC_COPY", 391 "DYNAMIC_DRAW", 392 "DYNAMIC_READ", 393 "DYNAMIC_COPY"]), 394 ("BufferQuery", [ 395 "BUFFER_SIZE", 396 "BUFFER_USAGE", 397 "BUFFER_ACCESS_FLAGS", 398 "BUFFER_MAPPED", 399 "BUFFER_MAP_OFFSET", 400 "BUFFER_MAP_LENGTH", 401 "BUFFER_ACCESS", 402 "BUFFER_MAP_POINTER", 403 ]), 404 405 # Culling 406 ("Face", ["FRONT", "BACK", "FRONT_AND_BACK"]), 407 408 # Comparison function 409 ("CompareFunc", ["NEVER", "LESS", "LEQUAL", "GREATER", "EQUAL", "NOTEQUAL", "GEQUAL", "ALWAYS"]), 410 411 # Enable-disable bit 412 ("EnableCap", [ 413 "TEXTURE_2D", "CULL_FACE", "BLEND", "DITHER", "STENCIL_TEST", "DEPTH_TEST", "SCISSOR_TEST", 414 "POLYGON_OFFSET_FILL", "SAMPLE_ALPHA_TO_COVERAGE", "SAMPLE_COVERAGE", "STEREO", 415 "PRIMITIVE_RESTART_FIXED_INDEX", "RASTERIZER_DISCARD", "FRAMEBUFFER_SRGB", "SAMPLE_SHADING", "DEPTH_CLAMP", 416 "PRIMITIVE_RESTART", "SAMPLE_MASK", "DEBUG_OUTPUT", "DEBUG_OUTPUT_SYNCHRONOUS", 417 "BLEND_ADVANCED_COHERENT_KHR", "MULTISAMPLE", "SAMPLE_ALPHA_TO_ONE", "VERTEX_PROGRAM_POINT_SIZE", 418 "TEXTURE_CUBE_MAP_SEAMLESS", 419 ]), 420 421 # Indexed enable-disable bit 422 ("IndexedEnableCap", ["BLEND"]), 423 424 # Polygon winding 425 ("Winding", ["CW", "CCW"]), 426 427 # Hints 428 ("HintMode", ["DONT_CARE", "FASTEST", "NICEST"]), 429 ("Hint", ["GENERATE_MIPMAP_HINT", "TEXTURE_COMPRESSION_HINT"]), 430 431 # Stencil ops 432 ("StencilOp", ["ZERO", "KEEP", "REPLACE", "INCR", "DECR", "INVERT", "INCR_WRAP", "DECR_WRAP"]), 433 434 # Shader type 435 ("ShaderType", [ 436 "VERTEX_SHADER", 437 "FRAGMENT_SHADER", 438 "COMPUTE_SHADER", 439 "TESS_CONTROL_SHADER", 440 "TESS_EVALUATION_SHADER", 441 "GEOMETRY_SHADER", 442 ]), 443 444 # Buffers 445 ("Buffer", ["COLOR", "DEPTH", "STENCIL", "DEPTH_STENCIL"]), 446 447 # Invalidate buffer target 448 ("InvalidateAttachment",["COLOR", "DEPTH", "STENCIL", 449 "COLOR_ATTACHMENT0", 450 "COLOR_ATTACHMENT1", 451 "COLOR_ATTACHMENT2", 452 "COLOR_ATTACHMENT3", 453 "COLOR_ATTACHMENT4", 454 "COLOR_ATTACHMENT5", 455 "COLOR_ATTACHMENT6", 456 "COLOR_ATTACHMENT7", 457 "DEPTH_ATTACHMENT", 458 "STENCIL_ATTACHMENT", 459 "DEPTH_STENCIL_ATTACHMENT"]), 460 461 # Draw/ReadBuffer attachment 462 ("DrawReadBuffer", ["COLOR", "DEPTH", "STENCIL", "BACK", "NONE", 463 "COLOR_ATTACHMENT0", 464 "COLOR_ATTACHMENT1", 465 "COLOR_ATTACHMENT2", 466 "COLOR_ATTACHMENT3", 467 "COLOR_ATTACHMENT4", 468 "COLOR_ATTACHMENT5", 469 "COLOR_ATTACHMENT6", 470 "COLOR_ATTACHMENT7", 471 "DEPTH_ATTACHMENT", 472 "STENCIL_ATTACHMENT", 473 "DEPTH_STENCIL_ATTACHMENT"]), 474 475 # Textures 476 ("TextureTarget", ["TEXTURE_1D", "TEXTURE_1D_ARRAY", "PROXY_TEXTURE_1D", "PROXY_TEXTURE_1D_ARRAY", 477 "TEXTURE_2D", "TEXTURE_RECTANGLE", "PROXY_TEXTURE_2D", "TEXTURE_CUBE_MAP", 478 "PROXY_TEXTURE_CUBE_MAP", "PROXY_TEXTURE_CUBE_MAP_ARRAY", 479 "TEXTURE_CUBE_MAP_POSITIVE_X", "TEXTURE_CUBE_MAP_NEGATIVE_X", 480 "TEXTURE_CUBE_MAP_POSITIVE_Y", "TEXTURE_CUBE_MAP_NEGATIVE_Y", 481 "TEXTURE_CUBE_MAP_POSITIVE_Z", "TEXTURE_CUBE_MAP_NEGATIVE_Z", 482 "TEXTURE_3D", "PROXY_TEXTURE_3D", "TEXTURE_2D_ARRAY", "PROXY_TEXTURE_2D_ARRAY", 483 "TEXTURE_2D_MULTISAMPLE", "PROXY_TEXTURE_2D_MULTISAMPLE", "TEXTURE_2D_MULTISAMPLE_ARRAY", 484 "PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY", "PROXY_TEXTURE_RECTANGLE", 485 "TEXTURE_BUFFER", "TEXTURE_CUBE_MAP_ARRAY"]), 486 ("TextureParameter", [ 487 "TEXTURE_WRAP_S", 488 "TEXTURE_WRAP_T", 489 "TEXTURE_WRAP_R", 490 "TEXTURE_BASE_LEVEL", 491 "TEXTURE_MAX_LEVEL", 492 "TEXTURE_COMPARE_MODE", 493 "TEXTURE_COMPARE_FUNC", 494 "TEXTURE_MAX_LOD", 495 "TEXTURE_MIN_LOD", 496 "TEXTURE_SWIZZLE_R", 497 "TEXTURE_SWIZZLE_G", 498 "TEXTURE_SWIZZLE_B", 499 "TEXTURE_SWIZZLE_A", 500 "TEXTURE_SWIZZLE_RGBA", 501 "TEXTURE_MIN_FILTER", 502 "TEXTURE_MAG_FILTER", 503 "DEPTH_STENCIL_TEXTURE_MODE", 504 "TEXTURE_SRGB_DECODE_EXT", 505 "TEXTURE_BORDER_COLOR", 506 507 # Gettable only 508 "TEXTURE_IMMUTABLE_LEVELS", 509 "TEXTURE_IMMUTABLE_FORMAT", 510 ]), 511 ("TextureLevelParameter", [ 512 "TEXTURE_SAMPLES", 513 "TEXTURE_FIXED_SAMPLE_LOCATIONS", 514 "TEXTURE_WIDTH", 515 "TEXTURE_HEIGHT", 516 "TEXTURE_DEPTH", 517 "TEXTURE_INTERNAL_FORMAT", 518 "TEXTURE_RED_SIZE", 519 "TEXTURE_GREEN_SIZE", 520 "TEXTURE_BLUE_SIZE", 521 "TEXTURE_ALPHA_SIZE", 522 "TEXTURE_DEPTH_SIZE", 523 "TEXTURE_STENCIL_SIZE", 524 "TEXTURE_SHARED_SIZE", 525 "TEXTURE_RED_TYPE", 526 "TEXTURE_GREEN_TYPE", 527 "TEXTURE_BLUE_TYPE", 528 "TEXTURE_ALPHA_TYPE", 529 "TEXTURE_DEPTH_TYPE", 530 "TEXTURE_COMPRESSED", 531 "TEXTURE_BUFFER_DATA_STORE_BINDING", 532 "TEXTURE_BUFFER_OFFSET", 533 "TEXTURE_BUFFER_SIZE", 534 "TEXTURE_COMPRESSED_IMAGE_SIZE", 535 ]), 536 ("RepeatMode", ["REPEAT", "CLAMP_TO_EDGE", "MIRRORED_REPEAT", "CLAMP_TO_BORDER"]), 537 ("TextureFilter", ["NEAREST", "LINEAR", "NEAREST_MIPMAP_NEAREST", "LINEAR_MIPMAP_NEAREST", 538 "NEAREST_MIPMAP_LINEAR", "LINEAR_MIPMAP_LINEAR"]), 539 ("TextureWrapMode", ["REPEAT", "CLAMP_TO_EDGE", "MIRRORED_REPEAT"]), 540 ("TextureSwizzle", ["RED", "GREEN", "BLUE", "ALPHA", "ZERO", "ONE"]), 541 ("TextureCompareMode", ["NONE", "COMPARE_REF_TO_TEXTURE"]), 542 ("CubeMapFace", ["TEXTURE_CUBE_MAP_POSITIVE_X", "TEXTURE_CUBE_MAP_NEGATIVE_X", 543 "TEXTURE_CUBE_MAP_POSITIVE_Y", "TEXTURE_CUBE_MAP_NEGATIVE_Y", 544 "TEXTURE_CUBE_MAP_POSITIVE_Z", "TEXTURE_CUBE_MAP_NEGATIVE_Z"]), 545 ("TextureDepthStencilMode", ["DEPTH_COMPONENT", "STENCIL_INDEX"]), 546 ("PixelStoreParameter", [ 547 "UNPACK_ALIGNMENT", 548 "UNPACK_IMAGE_HEIGHT", 549 "UNPACK_ROW_LENGTH", 550 "UNPACK_SKIP_IMAGES", 551 "UNPACK_SKIP_ROWS", 552 "UNPACK_SKIP_PIXELS", 553 "PACK_ROW_LENGTH", 554 "PACK_SKIP_ROWS", 555 "PACK_SKIP_PIXELS"]), 556 ("UncompressedTextureFormat", [ 557 # GLES2 unsized formats 558 "LUMINANCE", 559 "LUMINANCE_ALPHA", 560 "ALPHA", 561 "RGB", 562 "RGBA", 563 564 # GLES2 sized formats 565 "RGBA4", 566 "RGB4", 567 "RGB5_A1", 568 "RGB565", 569 "R3_G3_B2", "RGB5", "RGB12", "RGBA2", "RGBA12", 570 "DEPTH_COMPONENT16", 571 "STENCIL_INDEX1", 572 "STENCIL_INDEX4", 573 "STENCIL_INDEX8", 574 "STENCIL_INDEX16", 575 576 # GLES3 unsized formats 577 "RG", 578 "RED", 579 "RGBA_INTEGER", 580 "RGB_INTEGER", 581 "RG_INTEGER", 582 "RED_INTEGER", 583 "GREEN_INTEGER", 584 "BLUE_INTEGER", 585 "BGR_INTEGER", 586 "BGRA_INTEGER", 587 "DEPTH_COMPONENT", 588 "DEPTH_STENCIL", 589 590 # GLES3 sized formats 591 "RGBA32F", 592 "RGBA32I", 593 "RGBA32UI", 594 "RGBA16", 595 "RGBA16_SNORM", 596 "RGBA16F", 597 "RGBA16I", 598 "RGBA16UI", 599 "RGBA8", 600 "RGBA8I", 601 "RGBA8UI", 602 "SRGB8_ALPHA8", 603 "RGB10_A2", 604 "RGB10_A2UI", 605 "RGBA8_SNORM", 606 "RGB8", 607 "R11F_G11F_B10F", 608 "RGB32F", 609 "RGB32I", 610 "RGB32UI", 611 "RGB16", 612 "RGB16_SNORM", 613 "RGB16F", 614 "RGB16I", 615 "RGB16UI", 616 "RGB8_SNORM", 617 "RGB8I", 618 "RGB8UI", 619 "SRGB8", 620 "RGB9_E5", 621 "RG32F", 622 "RG32I", 623 "RG32UI", 624 "RG16", 625 "RG16_SNORM", 626 "RG16F", 627 "RG16I", 628 "RG16UI", 629 "RG8", 630 "RG8I", 631 "RG8UI", 632 "RG8_SNORM", 633 "R32F", 634 "R32I", 635 "R32UI", 636 "R16", 637 "R16_SNORM", 638 "R16F", 639 "R16I", 640 "R16UI", 641 "R8", 642 "R8I", 643 "R8UI", 644 "R8_SNORM", 645 "DEPTH_COMPONENT32F", 646 "DEPTH_COMPONENT24", 647 "DEPTH32F_STENCIL8", 648 "DEPTH24_STENCIL8", 649 650 # OES_required_internalformat 651 "RGB10", 652 653 # OES_depth32 654 "DEPTH_COMPONENT32", 655 656 # EXT_sRGB 657 "SRGB", 658 "SRGB_ALPHA", 659 660 # GL_EXT_texture_sRGB_R8 & RG8 661 "SR8_EXT", 662 "SRG8_EXT", 663 664 # GL_EXT_read_format_bgra 665 "BGRA", 666 667 # GL_EXT_texture_format_BGRA8888 668 "BGRA8_EXT", 669 670 "BGR", 671 "RED_SNORM", 672 "RG_SNORM", 673 "RGB_SNORM", 674 "RGBA_SNORM", 675 ]), 676 677 ("CompressedTextureFormat", [ 678 # ETC2/EAC formats 679 "COMPRESSED_R11_EAC", 680 "COMPRESSED_SIGNED_R11_EAC", 681 "COMPRESSED_RG11_EAC", 682 "COMPRESSED_SIGNED_RG11_EAC", 683 "COMPRESSED_RGB8_ETC2", 684 "COMPRESSED_SRGB8_ETC2", 685 "COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2", 686 "COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2", 687 "COMPRESSED_RGBA8_ETC2_EAC", 688 "COMPRESSED_SRGB8_ALPHA8_ETC2_EAC", 689 690 # ASTC formats 691 "COMPRESSED_RGBA_ASTC_4x4_KHR", 692 "COMPRESSED_RGBA_ASTC_5x4_KHR", 693 "COMPRESSED_RGBA_ASTC_5x5_KHR", 694 "COMPRESSED_RGBA_ASTC_6x5_KHR", 695 "COMPRESSED_RGBA_ASTC_6x6_KHR", 696 "COMPRESSED_RGBA_ASTC_8x5_KHR", 697 "COMPRESSED_RGBA_ASTC_8x6_KHR", 698 "COMPRESSED_RGBA_ASTC_8x8_KHR", 699 "COMPRESSED_RGBA_ASTC_10x5_KHR", 700 "COMPRESSED_RGBA_ASTC_10x6_KHR", 701 "COMPRESSED_RGBA_ASTC_10x8_KHR", 702 "COMPRESSED_RGBA_ASTC_10x10_KHR", 703 "COMPRESSED_RGBA_ASTC_12x10_KHR", 704 "COMPRESSED_RGBA_ASTC_12x12_KHR", 705 "COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR", 706 "COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR", 707 "COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR", 708 "COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR", 709 "COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR", 710 "COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR", 711 "COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR", 712 "COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR", 713 "COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR", 714 "COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR", 715 "COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR", 716 "COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR", 717 "COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR", 718 "COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR", 719 720 # EXT_texture_compression_s3tc 721 "COMPRESSED_RGB_S3TC_DXT1_EXT", 722 "COMPRESSED_RGBA_S3TC_DXT1_EXT", 723 "COMPRESSED_RGBA_S3TC_DXT3_EXT", 724 "COMPRESSED_RGBA_S3TC_DXT5_EXT", 725 726 # IMG_texture_compression_pvrtc 727 "COMPRESSED_RGB_PVRTC_4BPPV1_IMG", 728 "COMPRESSED_RGB_PVRTC_2BPPV1_IMG", 729 "COMPRESSED_RGBA_PVRTC_4BPPV1_IMG", 730 "COMPRESSED_RGBA_PVRTC_2BPPV1_IMG", 731 732 "COMPRESSED_RED", 733 "COMPRESSED_RG", 734 "COMPRESSED_RGB", 735 "COMPRESSED_RGBA", 736 "COMPRESSED_SRGB", 737 "COMPRESSED_SRGB_ALPHA", 738 "COMPRESSED_RED_RGTC1", 739 "COMPRESSED_SIGNED_RED_RGTC1", 740 "COMPRESSED_RG_RGTC2", 741 "COMPRESSED_SIGNED_RG_RGTC2", 742 "COMPRESSED_RGBA_BPTC_UNORM", 743 "COMPRESSED_SRGB_ALPHA_BPTC_UNORM", 744 "COMPRESSED_RGB_BPTC_SIGNED_FLOAT", 745 "COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT", 746 ]), 747 748 # Shader var type 749 ("ShaderVarType", [ 750 "FLOAT", 751 "FLOAT_VEC2", 752 "FLOAT_VEC3", 753 "FLOAT_VEC4", 754 "INT", 755 "INT_VEC2", 756 "INT_VEC3", 757 "INT_VEC4", 758 "UNSIGNED_INT", 759 "UNSIGNED_INT_VEC2", 760 "UNSIGNED_INT_VEC3", 761 "UNSIGNED_INT_VEC4", 762 "BOOL", 763 "BOOL_VEC2", 764 "BOOL_VEC3", 765 "BOOL_VEC4", 766 "FLOAT_MAT2", 767 "FLOAT_MAT3", 768 "FLOAT_MAT4", 769 "FLOAT_MAT2x3", 770 "FLOAT_MAT2x4", 771 "FLOAT_MAT3x2", 772 "FLOAT_MAT3x4", 773 "FLOAT_MAT4x2", 774 "FLOAT_MAT4x3", 775 "SAMPLER_1D", 776 "SAMPLER_1D_ARRAY", 777 "SAMPLER_1D_SHADOW", 778 "SAMPLER_2D", 779 "SAMPLER_2D_RECT", 780 "SAMPLER_2D_RECT_SHADOW", 781 "SAMPLER_3D", 782 "SAMPLER_CUBE", 783 "SAMPLER_1D_ARRAY_SHADOW", 784 "SAMPLER_2D_SHADOW", 785 "SAMPLER_2D_ARRAY", 786 "SAMPLER_2D_ARRAY_SHADOW", 787 "SAMPLER_CUBE_SHADOW", 788 "INT_SAMPLER_1D", 789 "INT_SAMPLER_2D", 790 "INT_SAMPLER_2D_RECT", 791 "INT_SAMPLER_3D", 792 "INT_SAMPLER_CUBE", 793 "INT_SAMPLER_2D_ARRAY", 794 "INT_SAMPLER_1D_ARRAY", 795 "UNSIGNED_INT_SAMPLER_1D", 796 "UNSIGNED_INT_SAMPLER_2D", 797 "UNSIGNED_INT_SAMPLER_2D_RECT", 798 "UNSIGNED_INT_SAMPLER_3D", 799 "UNSIGNED_INT_SAMPLER_CUBE", 800 "UNSIGNED_INT_SAMPLER_1D_ARRAY", 801 "UNSIGNED_INT_SAMPLER_2D_ARRAY", 802 "SAMPLER_2D_MULTISAMPLE", 803 "INT_SAMPLER_2D_MULTISAMPLE", 804 "UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE", 805 "IMAGE_2D", 806 "IMAGE_3D", 807 "IMAGE_CUBE", 808 "IMAGE_2D_ARRAY", 809 "INT_IMAGE_2D", 810 "INT_IMAGE_3D", 811 "INT_IMAGE_CUBE", 812 "INT_IMAGE_2D_ARRAY", 813 "UNSIGNED_INT_IMAGE_2D", 814 "UNSIGNED_INT_IMAGE_3D", 815 "UNSIGNED_INT_IMAGE_CUBE", 816 "UNSIGNED_INT_IMAGE_2D_ARRAY", 817 "UNSIGNED_INT_ATOMIC_COUNTER", 818 "SAMPLER_2D_MULTISAMPLE_ARRAY", 819 "INT_SAMPLER_2D_MULTISAMPLE_ARRAY", 820 "UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY", 821 "SAMPLER_BUFFER", 822 "INT_SAMPLER_BUFFER", 823 "UNSIGNED_INT_SAMPLER_BUFFER", 824 "IMAGE_BUFFER", 825 "INT_IMAGE_BUFFER", 826 "UNSIGNED_INT_IMAGE_BUFFER", 827 "SAMPLER_CUBE_MAP_ARRAY", 828 "SAMPLER_CUBE_MAP_ARRAY_SHADOW", 829 "INT_SAMPLER_CUBE_MAP_ARRAY", 830 "UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY", 831 "IMAGE_CUBE_MAP_ARRAY", 832 "INT_IMAGE_CUBE_MAP_ARRAY", 833 "UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY", 834 ]), 835 836 # Shader params 837 ("ShaderParam", [ "SHADER_TYPE", "DELETE_STATUS", "COMPILE_STATUS", "INFO_LOG_LENGTH", "SHADER_SOURCE_LENGTH"]), 838 839 # Vertex attribute queries 840 ("VertexAttribParameterName", [ 841 "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING", 842 "VERTEX_ATTRIB_ARRAY_ENABLED", 843 "VERTEX_ATTRIB_ARRAY_SIZE", 844 "VERTEX_ATTRIB_ARRAY_STRIDE", 845 "VERTEX_ATTRIB_ARRAY_TYPE", 846 "VERTEX_ATTRIB_ARRAY_NORMALIZED", 847 "VERTEX_ATTRIB_ARRAY_INTEGER", 848 "VERTEX_ATTRIB_ARRAY_DIVISOR", 849 "CURRENT_VERTEX_ATTRIB", 850 "VERTEX_ATTRIB_BINDING", 851 "VERTEX_ATTRIB_RELATIVE_OFFSET", 852 "VERTEX_ATTRIB_ARRAY_POINTER", 853 ]), 854 855 ("Boolean", ["FALSE", "TRUE"]), 856 857 # GetPName 858 ("GettableState", [ 859 "ELEMENT_ARRAY_BUFFER_BINDING", "ARRAY_BUFFER_BINDING", "VERTEX_ARRAY_BINDING", "VIEWPORT", "DEPTH_RANGE", 860 "TRANSFORM_FEEDBACK_BINDING", "LINE_WIDTH", "CULL_FACE_MODE", "FRONT_FACE", "POLYGON_OFFSET_FACTOR", 861 "POLYGON_OFFSET_UNITS", "SAMPLE_COVERAGE_VALUE", "SAMPLE_COVERAGE_INVERT", "ACTIVE_TEXTURE", "TEXTURE_BINDING_1D", 862 "TEXTURE_BINDING_1D_ARRAY", "TEXTURE_BINDING_2D", "TEXTURE_BINDING_RECTANGLE", "TEXTURE_BINDING_3D", "TEXTURE_BINDING_2D_ARRAY", 863 "TEXTURE_BINDING_CUBE_MAP", "TEXTURE_BINDING_CUBE_MAP_ARRAY", "SAMPLER_BINDING", "SCISSOR_BOX", "STENCIL_FUNC", "STENCIL_VALUE_MASK", 864 "STENCIL_REF", "STENCIL_FAIL", "STENCIL_PASS_DEPTH_FAIL", "STENCIL_PASS_DEPTH_PASS", "STENCIL_BACK_FUNC", 865 "STENCIL_BACK_VALUE_MASK", "STENCIL_BACK_REF", "STENCIL_BACK_FAIL", "STENCIL_BACK_PASS_DEPTH_FAIL", "STENCIL_BACK_PASS_DEPTH_PASS", 866 "DEPTH_FUNC", "BLEND_SRC_RGB", "BLEND_SRC_ALPHA", "BLEND_DST_RGB", "BLEND_DST_ALPHA", 867 "BLEND_EQUATION_RGB", "BLEND_EQUATION_ALPHA", "BLEND_COLOR", "COLOR_WRITEMASK", "DEPTH_WRITEMASK", 868 "STENCIL_WRITEMASK", "STENCIL_BACK_WRITEMASK", "COLOR_CLEAR_VALUE", "DEPTH_CLEAR_VALUE", "STENCIL_CLEAR_VALUE", 869 "DRAW_FRAMEBUFFER_BINDING", "READ_FRAMEBUFFER_BINDING", "RENDERBUFFER_BINDING", "DRAW_BUFFER0", "DRAW_BUFFER1", 870 "DRAW_BUFFER2", "DRAW_BUFFER3", "DRAW_BUFFER4", "DRAW_BUFFER5", "DRAW_BUFFER6", 871 "DRAW_BUFFER7", "DRAW_BUFFER8", "DRAW_BUFFER9", "DRAW_BUFFER10", "DRAW_BUFFER11", 872 "DRAW_BUFFER12", "DRAW_BUFFER13", "DRAW_BUFFER14", "DRAW_BUFFER15", "READ_BUFFER", "DRAW_BUFFER", 873 "UNPACK_IMAGE_HEIGHT", "UNPACK_SKIP_IMAGES", "UNPACK_ROW_LENGTH", "UNPACK_SKIP_ROWS", "UNPACK_SKIP_PIXELS", 874 "UNPACK_ALIGNMENT", "PACK_ROW_LENGTH", "PACK_SKIP_ROWS", "PACK_SKIP_PIXELS", "PACK_ALIGNMENT", 875 "PIXEL_PACK_BUFFER_BINDING", "PIXEL_UNPACK_BUFFER_BINDING", "CURRENT_PROGRAM", "TRANSFORM_FEEDBACK_BUFFER_BINDING", "TRANSFORM_FEEDBACK_PAUSED", 876 "TRANSFORM_FEEDBACK_ACTIVE", "UNIFORM_BUFFER_BINDING", "GENERATE_MIPMAP_HINT", "FRAGMENT_SHADER_DERIVATIVE_HINT", "MAX_ELEMENT_INDEX", 877 "SUBPIXEL_BITS", "MAX_3D_TEXTURE_SIZE", "MAX_TEXTURE_SIZE", "MAX_ARRAY_TEXTURE_LAYERS", "MAX_TEXTURE_LOD_BIAS", 878 "MAX_CUBE_MAP_TEXTURE_SIZE", "MAX_RECTANGLE_TEXTURE_SIZE", "MAX_RENDERBUFFER_SIZE", "MAX_DRAW_BUFFERS", "MAX_DUAL_SOURCE_DRAW_BUFFERS", "MAX_COLOR_ATTACHMENTS", "MAX_VIEWPORT_DIMS", 879 "ALIASED_POINT_SIZE_RANGE", "ALIASED_LINE_WIDTH_RANGE", "MAX_ELEMENTS_INDICES", "MAX_ELEMENTS_VERTICES", "COMPRESSED_TEXTURE_FORMATS", 880 "NUM_COMPRESSED_TEXTURE_FORMATS", "PROGRAM_BINARY_FORMATS", "NUM_PROGRAM_BINARY_FORMATS", "SHADER_BINARY_FORMATS", "NUM_SHADER_BINARY_FORMATS", 881 "SHADER_COMPILER", "MAX_SERVER_WAIT_TIMEOUT", "NUM_EXTENSIONS", "MAJOR_VERSION", "MINOR_VERSION", 882 "MAX_VERTEX_ATTRIBS", "MAX_VERTEX_UNIFORM_COMPONENTS", "MAX_VERTEX_UNIFORM_VECTORS", "MAX_VERTEX_UNIFORM_BLOCKS", "MAX_VERTEX_OUTPUT_COMPONENTS", 883 "MAX_VERTEX_TEXTURE_IMAGE_UNITS", "MAX_FRAGMENT_UNIFORM_COMPONENTS", "MAX_FRAGMENT_UNIFORM_VECTORS", "MAX_FRAGMENT_UNIFORM_BLOCKS", "MAX_FRAGMENT_INPUT_COMPONENTS", 884 "MAX_TEXTURE_IMAGE_UNITS", "MIN_PROGRAM_TEXEL_OFFSET", "MAX_PROGRAM_TEXEL_OFFSET", "MAX_UNIFORM_BUFFER_BINDINGS", "MAX_UNIFORM_BLOCK_SIZE", 885 "UNIFORM_BUFFER_OFFSET_ALIGNMENT", "MAX_COMBINED_UNIFORM_BLOCKS", "MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS", "MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS", "MAX_VARYING_COMPONENTS", 886 "MAX_VARYING_VECTORS", "MAX_COMBINED_TEXTURE_IMAGE_UNITS", 887 "MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS", "MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS", "MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS", "INTERLEAVED_ATTRIBS", "SEPARATE_ATTRIBS", 888 "SAMPLE_BUFFERS", "SAMPLES", "MAX_SAMPLES", "DEPTH_BITS", "STENCIL_BITS", 889 "IMPLEMENTATION_COLOR_READ_TYPE", "IMPLEMENTATION_COLOR_READ_FORMAT", "COPY_READ_BUFFER_BINDING", "COPY_WRITE_BUFFER_BINDING", "RED_BITS", 890 "GREEN_BITS", "BLUE_BITS", "ALPHA_BITS", "MAX_COLOR_TEXTURE_SAMPLES", "TIMESTAMP", 891 "MAX_DEPTH_TEXTURE_SAMPLES", "MAX_INTEGER_SAMPLES", "TEXTURE_BINDING_2D_MULTISAMPLE", "TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY", "MAX_VERTEX_ATTRIB_STRIDE", 892 "MAX_VERTEX_ATTRIB_BINDINGS", "MAX_VERTEX_ATTRIB_RELATIVE_OFFSET", "MIN_SAMPLE_SHADING_VALUE", "FRAGMENT_INTERPOLATION_OFFSET_BITS", "MAX_FRAGMENT_INTERPOLATION_OFFSET", 893 "MIN_FRAGMENT_INTERPOLATION_OFFSET", "MAX_GEOMETRY_SHADER_INVOCATIONS", "LAYER_PROVOKING_VERTEX", "MAX_GEOMETRY_UNIFORM_COMPONENTS", "MAX_GEOMETRY_SHADER_STORAGE_BLOCKS", 894 "MAX_GEOMETRY_UNIFORM_BLOCKS", "MAX_GEOMETRY_INPUT_COMPONENTS", "MAX_GEOMETRY_OUTPUT_COMPONENTS", "MAX_GEOMETRY_IMAGE_UNIFORMS", "MAX_GEOMETRY_TEXTURE_IMAGE_UNITS", 895 "MAX_GEOMETRY_OUTPUT_VERTICES", "MAX_GEOMETRY_ATOMIC_COUNTERS", "MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS", "MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS", "MAX_FRAMEBUFFER_LAYERS", 896 "PROVOKING_VERTEX", "PRIMITIVE_RESTART_INDEX", "MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS", "MAX_FRAGMENT_ATOMIC_COUNTERS", "MAX_FRAGMENT_IMAGE_UNIFORMS", 897 "MAX_COMPUTE_UNIFORM_BLOCKS", "MAX_COMPUTE_TEXTURE_IMAGE_UNITS", "MAX_COMPUTE_UNIFORM_COMPONENTS", "MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS", "MAX_COMPUTE_ATOMIC_COUNTERS", 898 "MAX_COMPUTE_IMAGE_UNIFORMS", "MAX_COMPUTE_SHADER_STORAGE_BLOCKS", "MAX_FRAGMENT_SHADER_STORAGE_BLOCKS", "MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS", "MAX_VERTEX_ATOMIC_COUNTER_BUFFERS", 899 "MAX_VERTEX_ATOMIC_COUNTERS", "MAX_VERTEX_IMAGE_UNIFORMS", "MAX_VERTEX_SHADER_STORAGE_BLOCKS", "MAX_COMBINED_SHADER_OUTPUT_RESOURCES", "MAX_ATOMIC_COUNTER_BUFFER_BINDINGS", 900 "MAX_ATOMIC_COUNTER_BUFFER_SIZE", "MAX_IMAGE_UNITS", "MAX_COMBINED_ATOMIC_COUNTER_BUFFERS", "MAX_COMBINED_IMAGE_UNIFORMS", "MAX_SHADER_STORAGE_BUFFER_BINDINGS", 901 "MAX_SHADER_STORAGE_BLOCK_SIZE", "MAX_COMBINED_ATOMIC_COUNTERS", "MAX_COMBINED_SHADER_STORAGE_BLOCKS", "SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT", "PRIMITIVE_BOUNDING_BOX_EXT", 902 "DRAW_INDIRECT_BUFFER_BINDING", "MAX_SAMPLE_MASK_WORDS", "PROGRAM_PIPELINE_BINDING", "ATOMIC_COUNTER_BUFFER_BINDING", "SHADER_STORAGE_BUFFER_BINDING", 903 "DISPATCH_INDIRECT_BUFFER_BINDING", "MAX_FRAMEBUFFER_WIDTH", "MAX_FRAMEBUFFER_HEIGHT", "MAX_FRAMEBUFFER_SAMPLES", "MAX_COMPUTE_SHARED_MEMORY_SIZE", 904 "MIN_PROGRAM_TEXTURE_GATHER_OFFSET", "MAX_PROGRAM_TEXTURE_GATHER_OFFSET", "MAX_COMPUTE_WORK_GROUP_INVOCATIONS", "MAX_UNIFORM_LOCATIONS", "MAX_DEBUG_MESSAGE_LENGTH", 905 "MAX_DEBUG_LOGGED_MESSAGES", "MAX_DEBUG_GROUP_STACK_DEPTH", "MAX_LABEL_LENGTH", "CONTEXT_FLAGS", "DEBUG_LOGGED_MESSAGES", 906 "DEBUG_NEXT_LOGGED_MESSAGE_LENGTH", "DEBUG_GROUP_STACK_DEPTH", "MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS", "TEXTURE_BUFFER_OFFSET_ALIGNMENT", "TEXTURE_BUFFER_BINDING", 907 "TEXTURE_BINDING_BUFFER", "MAX_TEXTURE_BUFFER_SIZE", "MAX_PATCH_VERTICES", "MAX_TESS_GEN_LEVEL", "MAX_TESS_CONTROL_UNIFORM_COMPONENTS", 908 "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", 909 "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", 910 "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", 911 "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", 912 "MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS", "PATCH_VERTICES", "PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED", "BUFFER_MAP_POINTER", "POINT_SIZE", "POINT_SIZE_RANGE", "POINT_SIZE_GRANULARITY", 913 "BLEND_DST", "BLEND_SRC", "LOGIC_OP_MODE", "COLOR_LOGIC_OP", "TEXTURE_LOD_BIAS", "QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION", 914 "MAX_SUBROUTINES", "MAX_SUBROUTINE_UNIFORM_LOCATIONS", "NUM_COMPATIBLE_SUBROUTINES", "COMPATIBLE_SUBROUTINES", 915 "PATCH_DEFAULT_INNER_LEVEL", "PATCH_DEFAULT_OUTER_LEVEL", "MAX_TRANSFORM_FEEDBACK_BUFFERS", 916 ]), 917 918 ("GettableIndexedState", [ 919 "TRANSFORM_FEEDBACK_BUFFER_BINDING", 920 "UNIFORM_BUFFER_BINDING", 921 "TRANSFORM_FEEDBACK_BUFFER_START", 922 "TRANSFORM_FEEDBACK_BUFFER_SIZE", 923 "UNIFORM_BUFFER_START", 924 "UNIFORM_BUFFER_SIZE", 925 "SAMPLE_MASK_VALUE", 926 "VERTEX_BINDING_OFFSET", 927 "VERTEX_BINDING_STRIDE", 928 "VERTEX_BINDING_DIVISOR", 929 "VERTEX_BINDING_BUFFER", 930 "MAX_COMPUTE_WORK_GROUP_COUNT", 931 "MAX_COMPUTE_WORK_GROUP_SIZE", 932 "ATOMIC_COUNTER_BUFFER_BINDING", 933 "ATOMIC_COUNTER_BUFFER_START", 934 "ATOMIC_COUNTER_BUFFER_SIZE", 935 "SHADER_STORAGE_BUFFER_BINDING", 936 "SHADER_STORAGE_BUFFER_START", 937 "SHADER_STORAGE_BUFFER_SIZE", 938 "IMAGE_BINDING_NAME", 939 "IMAGE_BINDING_LEVEL", 940 "IMAGE_BINDING_LAYERED", 941 "IMAGE_BINDING_LAYER", 942 "IMAGE_BINDING_ACCESS", 943 "IMAGE_BINDING_FORMAT", 944 "BLEND_EQUATION_RGB", 945 "BLEND_EQUATION_ALPHA", 946 "BLEND_SRC_RGB", 947 "BLEND_SRC_ALPHA", 948 "BLEND_DST_RGB", 949 "BLEND_DST_ALPHA", 950 "COLOR_WRITEMASK", 951 "UNIFORM_BLOCK_BINDING", 952 "UNIFORM_BLOCK_DATA_SIZE", 953 "UNIFORM_BLOCK_NAME_LENGTH", 954 "UNIFORM_BLOCK_ACTIVE_UNIFORMS", 955 "UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES", 956 "UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER", 957 "UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER", 958 "UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER", 959 "UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER", 960 "UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER", 961 "UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER", 962 "OBJECT_TYPE", 963 "SYNC_STATUS", 964 "SYNC_CONDITION", 965 "SYNC_FLAGS", 966 "SYNC_FENCE", 967 "SYNC_GPU_COMMANDS_COMPLETE", 968 "SIGNALED", 969 "UNSIGNALED", 970 "PROGRAM_BINARY_LENGTH", 971 "CONTEXT_PROFILE_MASK", 972 "FRACTIONAL_EVEN", 973 "FRACTIONAL_ODD", 974 ]), 975 976 ("GettableString", [ 977 "EXTENSIONS", 978 "RENDERER", 979 "SHADING_LANGUAGE_VERSION", 980 "VENDOR", 981 "VERSION" 982 ]), 983 984 ("GettablePackState", [ 985 "PACK_SWAP_BYTES", "PACK_LSB_FIRST", "PACK_ROW_LENGTH", "PACK_IMAGE_HEIGHT", "PACK_SKIP_ROWS", "PACK_SKIP_PIXELS", "PACK_SKIP_IMAGES", 986 "PACK_ALIGNMENT", "UNPACK_SWAP_BYTES", "UNPACK_LSB_FIRST", "UNPACK_ROW_LENGTH", "UNPACK_IMAGE_HEIGHT", "UNPACK_SKIP_ROWS", "UNPACK_SKIP_PIXELS", 987 "UNPACK_SKIP_IMAGES", "UNPACK_ALIGNMENT", 988 ]), 989 990 ("PointerState", [ 991 "DEBUG_CALLBACK_FUNCTION", 992 "DEBUG_CALLBACK_USER_PARAM", 993 ]), 994 995 ("InternalFormatParameter", ["NUM_SAMPLE_COUNTS", "SAMPLES"]), 996 ("InternalFormatTarget", [ 997 "RENDERBUFFER", 998 "TEXTURE_2D_MULTISAMPLE", 999 "TEXTURE_2D_MULTISAMPLE_ARRAY", 1000 "TEXTURE_2D", 1001 "TEXTURE_3D", 1002 "TEXTURE_2D_ARRAY", 1003 "TEXTURE_CUBE_MAP", 1004 ]), 1005 1006 ("MultisampleParameter", ["SAMPLE_POSITION"]), 1007 1008 # Occlusion and timer queries 1009 ("QueryTarget", [ 1010 "SAMPLES_PASSED", 1011 "ANY_SAMPLES_PASSED", 1012 "PRIMITIVES_GENERATED", 1013 "TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN", 1014 "TIME_ELAPSED", 1015 "ANY_SAMPLES_PASSED_CONSERVATIVE", 1016 ]), 1017 1018 ("QueryParam", ["CURRENT_QUERY", "QUERY_COUNTER_BITS"]), 1019 ("QueryObjectParam", [ 1020 "QUERY_RESULT", 1021 "QUERY_RESULT_AVAILABLE", 1022 "MAX_VERTEX_STREAMS", 1023 ]), 1024 1025 ("ImageAccess", ["READ_ONLY", "WRITE_ONLY", "READ_WRITE"]), 1026 1027 ("ProgramInterface", [ 1028 "UNIFORM", 1029 "UNIFORM_BLOCK", 1030 "ATOMIC_COUNTER_BUFFER", 1031 "PROGRAM_INPUT", 1032 "PROGRAM_OUTPUT", 1033 "TRANSFORM_FEEDBACK_VARYING", 1034 "BUFFER_VARIABLE", 1035 "SHADER_STORAGE_BLOCK", 1036 ]), 1037 1038 ("ProgramResourceProperty", [ 1039 "ACTIVE_VARIABLES", 1040 "BUFFER_BINDING", 1041 "NUM_ACTIVE_VARIABLES", 1042 "ARRAY_SIZE", 1043 "ARRAY_STRIDE", 1044 "BLOCK_INDEX", 1045 "IS_ROW_MAJOR", 1046 "MATRIX_STRIDE", 1047 "ATOMIC_COUNTER_BUFFER_INDEX", 1048 "BUFFER_DATA_SIZE", 1049 "LOCATION", 1050 "NAME_LENGTH", 1051 "OFFSET", 1052 "REFERENCED_BY_VERTEX_SHADER", 1053 "REFERENCED_BY_FRAGMENT_SHADER", 1054 "REFERENCED_BY_COMPUTE_SHADER", 1055 "REFERENCED_BY_GEOMETRY_SHADER", 1056 "REFERENCED_BY_TESS_CONTROL_SHADER", 1057 "REFERENCED_BY_TESS_EVALUATION_SHADER", 1058 "TOP_LEVEL_ARRAY_SIZE", 1059 "TOP_LEVEL_ARRAY_STRIDE", 1060 "TYPE", 1061 "IS_PER_PATCH", 1062 ]), 1063 1064 ("PrecisionFormatType", ["LOW_FLOAT", "MEDIUM_FLOAT", "HIGH_FLOAT", "LOW_INT", "MEDIUM_INT", "HIGH_INT"]), 1065 1066 ("TransformFeedbackTarget", ["TRANSFORM_FEEDBACK"]), 1067 1068 ("ClampColorTarget", ["CLAMP_READ_COLOR", "FIXED_ONLY"]), 1069 1070 ("ProvokingVertex", ["FIRST_VERTEX_CONVENTION", "LAST_VERTEX_CONVENTION", "UNDEFINED_VERTEX"]), 1071 1072 ("DebugMessageSource", [ 1073 "DEBUG_SOURCE_API", 1074 "DEBUG_SOURCE_WINDOW_SYSTEM", 1075 "DEBUG_SOURCE_SHADER_COMPILER", 1076 "DEBUG_SOURCE_THIRD_PARTY", 1077 "DEBUG_SOURCE_APPLICATION", 1078 "DEBUG_SOURCE_OTHER", "DONT_CARE" 1079 ]), 1080 ("DebugMessageType", [ 1081 "DEBUG_TYPE_ERROR", 1082 "DEBUG_TYPE_DEPRECATED_BEHAVIOR", 1083 "DEBUG_TYPE_UNDEFINED_BEHAVIOR", 1084 "DEBUG_TYPE_PORTABILITY", 1085 "DEBUG_TYPE_PERFORMANCE", 1086 "DEBUG_TYPE_OTHER", 1087 "DEBUG_TYPE_MARKER", 1088 "DEBUG_TYPE_PUSH_GROUP", 1089 "DEBUG_TYPE_POP_GROUP", 1090 "DONT_CARE" 1091 ]), 1092 ("DebugMessageSeverity", [ 1093 "DEBUG_SEVERITY_HIGH", 1094 "DEBUG_SEVERITY_MEDIUM", 1095 "DEBUG_SEVERITY_LOW", 1096 "DEBUG_SEVERITY_NOTIFICATION", 1097 "DONT_CARE" 1098 ]), 1099 1100 # Pipeline query 1101 ("PipelineParam", [ 1102 "ACTIVE_PROGRAM", 1103 "INFO_LOG_LENGTH", 1104 "VALIDATE_STATUS", 1105 "VERTEX_SHADER", 1106 "FRAGMENT_SHADER", 1107 "COMPUTE_SHADER", 1108 "GEOMETRY_SHADER", 1109 "TESS_CONTROL_SHADER", 1110 "TESS_EVALUATION_SHADER", 1111 ]), 1112 1113 ("PatchParam", [ 1114 "PATCH_VERTICES", 1115 ]), 1116 1117 ("TextureFormat", [ 1118 # generated: UncompressedTextureFormat + CompressedTextureFormat 1119 ]), 1120 1121 # GraphicsResetStatus 1122 ("GraphicsResetStatus", [ 1123 "NO_ERROR", 1124 "GUILTY_CONTEXT_RESET", 1125 "INNOCENT_CONTEXT_RESET", 1126 "UNKNOWN_CONTEXT_RESET", 1127 ]), 1128 1129 ("ClipDistanceParam", [ 1130 "CLIP_DISTANCE0", 1131 "CLIP_DISTANCE1", 1132 "CLIP_DISTANCE2", 1133 "CLIP_DISTANCE3", 1134 "CLIP_DISTANCE4", 1135 "CLIP_DISTANCE5", 1136 "CLIP_DISTANCE6", 1137 "CLIP_DISTANCE7", 1138 "MAX_CLIP_DISTANCES", 1139 "MAX_CULL_DISTANCES", 1140 "MAX_COMBINED_CLIP_AND_CULL_DISTANCES", 1141 ]), 1142 1143 ("ConditionalRenderParam", [ 1144 "QUERY_WAIT", 1145 "QUERY_NO_WAIT", 1146 "QUERY_BY_REGION_WAIT", 1147 "QUERY_BY_REGION_NO_WAIT", 1148 "QUERY_WAIT_INVERTED", 1149 "QUERY_NO_WAIT_INVERTED", 1150 "QUERY_BY_REGION_WAIT_INVERTED", 1151 "QUERY_BY_REGION_NO_WAIT_INVERTED", 1152 ]), 1153 1154 ("WaitEnum", [ 1155 "ALREADY_SIGNALED", 1156 "TIMEOUT_EXPIRED", 1157 "CONDITION_SATISFIED", 1158 "WAIT_FAILED", 1159 ]), 1160 1161 ("LogicOpParams", [ 1162 "CLEAR", "SET", "COPY", "COPY_INVERTED", "NOOP", 1163 "INVERT", "AND", "NAND", "OR", "NOR", "XOR", "EQUIV", 1164 "AND_REVERSE", "AND_INVERTED", "OR_REVERSE", "OR_INVERTED", 1165 ]), 1166 1167 ("PolygonMode", [ 1168 "LINE", "POINT", "FILL", 1169 ]), 1170 1171 ("PrimSizeParam", [ 1172 "ALIASED_POINT_SIZE_RANGE", "POINT_SIZE", "POINT_FADE_THRESHOLD_SIZE", 1173 "SMOOTH_POINT_SIZE_RANGE", "SMOOTH_POINT_SIZE_GRANULARITY", "POINT_SPRITE_COORD_ORIGIN", 1174 "SMOOTH_LINE_WIDTH_RANGE", "SMOOTH_LINE_WIDTH_GRANULARITY", "ALIASED_LINE_WIDTH_RANGE", 1175 ]), 1176 1177 ("ActiveTextureParam", [ 1178 "TEXTURE0", "TEXTURE1", 1179 "TEXTURE2", "TEXTURE3", 1180 "TEXTURE4", "TEXTURE5", 1181 "TEXTURE6", "TEXTURE7", 1182 "TEXTURE8", "TEXTURE9", 1183 "TEXTURE10", "TEXTURE11", 1184 "TEXTURE12", "TEXTURE13", 1185 "TEXTURE14", "TEXTURE15", 1186 "TEXTURE16", "TEXTURE17", 1187 "TEXTURE18", "TEXTURE19", 1188 "TEXTURE20", "TEXTURE21", 1189 "TEXTURE22", "TEXTURE23", 1190 "TEXTURE24", "TEXTURE25", 1191 "TEXTURE26", "TEXTURE27", 1192 "TEXTURE28", "TEXTURE29", 1193 "TEXTURE30", "TEXTURE31", 1194 ]), 1195 1196 ("ClipControlParam", [ 1197 "LOWER_LEFT", 1198 "UPPER_LEFT", 1199 "NEGATIVE_ONE_TO_ONE", 1200 "ZERO_TO_ONE", 1201 ]), 1202 1203 ("UniformSubroutinesParam", [ 1204 "ACTIVE_SUBROUTINES", 1205 "ACTIVE_SUBROUTINE_UNIFORMS", 1206 "ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS", 1207 "ACTIVE_SUBROUTINE_MAX_LENGTH", 1208 "ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH", 1209 ]), 1210] 1211 1212def getEnumGroupByName (name): 1213 # \note: will raise an (index out of bounds) error if no such group 1214 return [x for x in ENUM_GROUPS if x[0]==name][0][1] 1215 1216# EnableCap EnumGroups are also GettableState EnumGroups 1217getEnumGroupByName("GettableState").extend(getEnumGroupByName("EnableCap")) 1218 1219# TextureFormat = UncompressedTextureFormat + CompressedTextureFormat 1220getEnumGroupByName("TextureFormat").extend(getEnumGroupByName("UncompressedTextureFormat") + getEnumGroupByName("CompressedTextureFormat")) 1221 1222def genStrUtil (iface): 1223 enumGroups = addValuePrefix(ENUM_GROUPS, "GL_") 1224 bitfieldGroups = addValuePrefix(BITFIELD_GROUPS, "GL_") 1225 prototypeFile = os.path.join(OPENGL_DIR, "gluStrUtilPrototypes.inl") 1226 implFile = os.path.join(OPENGL_DIR, "gluStrUtil.inl") 1227 1228 writeInlFile(prototypeFile, indentLines(genStrUtilProtos(iface, enumGroups, bitfieldGroups))) 1229 writeInlFile(implFile, genStrUtilImpls(iface, enumGroups, bitfieldGroups)) 1230 1231if __name__ == "__main__": 1232 genStrUtil(getHybridInterface()) 1233