1 // GENERATED FILE - DO NOT EDIT. 2 // Generated by gen_extensions.py using data from registry_xml.py and gl.xml 3 // 4 // Copyright 2021 The ANGLE Project Authors. All rights reserved. 5 // Use of this source code is governed by a BSD-style license that can be 6 // found in the LICENSE file. 7 // 8 // gles_extensions_autogen.h: GLES extension information. 9 10 #ifndef LIBANGLE_GLES_EXTENSIONS_AUTOGEN_H_ 11 #define LIBANGLE_GLES_EXTENSIONS_AUTOGEN_H_ 12 13 namespace gl 14 { 15 class TextureCapsMap; 16 17 struct Extensions 18 { 19 Extensions(); 20 Extensions(const Extensions &other); 21 22 Extensions &operator=(const Extensions &other); 23 24 // Generate a vector of supported extension strings 25 std::vector<std::string> getStrings() const; 26 27 // Set all texture related extension support based on the supported textures. 28 // Determines support for: 29 // GL_OES_packed_depth_stencil 30 // GL_OES_rgb8_rgba8 31 // GL_EXT_texture_format_BGRA8888 32 // GL_EXT_color_buffer_half_float, 33 // GL_OES_texture_half_float, GL_OES_texture_half_float_linear 34 // GL_OES_texture_float, GL_OES_texture_float_linear 35 // GL_EXT_texture_rg 36 // GL_EXT_texture_type_2_10_10_10_REV 37 // GL_EXT_texture_compression_dxt1, GL_ANGLE_texture_compression_dxt3, 38 // GL_ANGLE_texture_compression_dxt5 39 // GL_KHR_texture_compression_astc_ldr, GL_OES_texture_compression_astc. 40 // NOTE: GL_KHR_texture_compression_astc_hdr must be enabled separately. Support for the 41 // HDR profile cannot be determined from the format enums alone. 42 // GL_OES_compressed_ETC1_RGB8_texture 43 // GL_EXT_sRGB 44 // GL_ANGLE_depth_texture, GL_OES_depth32 45 // GL_EXT_color_buffer_float 46 // GL_EXT_texture_norm16 47 // GL_EXT_texture_compression_bptc 48 // GL_EXT_texture_compression_rgtc 49 void setTextureExtensionSupport(const TextureCapsMap &textureCaps); 50 51 // Helper functions copyImageAnyExtensions52 bool copyImageAny() const { return (copyImageEXT || copyImageOES); } depthTextureAnyExtensions53 bool depthTextureAny() const { return (depthTextureANGLE || depthTextureOES); } drawBuffersIndexedAnyExtensions54 bool drawBuffersIndexedAny() const { return (drawBuffersIndexedEXT || drawBuffersIndexedOES); } drawElementsBaseVertexAnyExtensions55 bool drawElementsBaseVertexAny() const 56 { 57 return (drawElementsBaseVertexEXT || drawElementsBaseVertexOES); 58 } framebufferBlitAnyExtensions59 bool framebufferBlitAny() const { return (framebufferBlitANGLE || framebufferBlitNV); } geometryShaderAnyExtensions60 bool geometryShaderAny() const { return (geometryShaderEXT || geometryShaderOES); } instancedArraysAnyExtensions61 bool instancedArraysAny() const { return (instancedArraysANGLE || instancedArraysEXT); } primitiveBoundingBoxAnyExtensions62 bool primitiveBoundingBoxAny() const 63 { 64 return (primitiveBoundingBoxEXT || primitiveBoundingBoxOES); 65 } shaderIoBlocksAnyExtensions66 bool shaderIoBlocksAny() const { return (shaderIoBlocksEXT || shaderIoBlocksOES); } textureBorderClampAnyExtensions67 bool textureBorderClampAny() const { return (textureBorderClampEXT || textureBorderClampOES); } textureBufferAnyExtensions68 bool textureBufferAny() const { return (textureBufferEXT || textureBufferOES); } textureCubeMapArrayAnyExtensions69 bool textureCubeMapArrayAny() const 70 { 71 return (textureCubeMapArrayEXT || textureCubeMapArrayOES); 72 } 73 74 // GLES 2.0+ extensions 75 // -------------------- 76 77 // GL_KHR_blend_equation_advanced 78 bool blendEquationAdvancedKHR = false; 79 80 // GL_EXT_blend_func_extended 81 bool blendFuncExtendedEXT = false; 82 83 // GL_EXT_blend_minmax 84 bool blendMinmaxEXT = false; 85 86 // GL_EXT_buffer_storage 87 bool bufferStorageEXT = false; 88 89 // GL_EXT_clip_control 90 bool clipControlEXT = false; 91 92 // GL_EXT_clip_cull_distance 93 bool clipCullDistanceEXT = false; 94 95 // GL_APPLE_clip_distance 96 bool clipDistanceAPPLE = false; 97 98 // GL_EXT_color_buffer_float 99 bool colorBufferFloatEXT = false; 100 101 // GL_EXT_color_buffer_half_float 102 bool colorBufferHalfFloatEXT = false; 103 104 // GL_OES_compressed_EAC_R11_signed_texture 105 bool compressedEACR11SignedTextureOES = false; 106 107 // GL_OES_compressed_EAC_R11_unsigned_texture 108 bool compressedEACR11UnsignedTextureOES = false; 109 110 // GL_OES_compressed_EAC_RG11_signed_texture 111 bool compressedEACRG11SignedTextureOES = false; 112 113 // GL_OES_compressed_EAC_RG11_unsigned_texture 114 bool compressedEACRG11UnsignedTextureOES = false; 115 116 // GL_EXT_compressed_ETC1_RGB8_sub_texture 117 bool compressedETC1RGB8SubTextureEXT = false; 118 119 // GL_OES_compressed_ETC1_RGB8_texture 120 bool compressedETC1RGB8TextureOES = false; 121 122 // GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture 123 bool compressedETC2PunchthroughARGBA8TextureOES = false; 124 125 // GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture 126 bool compressedETC2PunchthroughASRGB8AlphaTextureOES = false; 127 128 // GL_OES_compressed_ETC2_RGB8_texture 129 bool compressedETC2RGB8TextureOES = false; 130 131 // GL_OES_compressed_ETC2_RGBA8_texture 132 bool compressedETC2RGBA8TextureOES = false; 133 134 // GL_OES_compressed_ETC2_sRGB8_alpha8_texture 135 bool compressedETC2SRGB8Alpha8TextureOES = false; 136 137 // GL_OES_compressed_ETC2_sRGB8_texture 138 bool compressedETC2SRGB8TextureOES = false; 139 140 // GL_EXT_copy_image 141 bool copyImageEXT = false; 142 143 // GL_OES_copy_image 144 bool copyImageOES = false; 145 146 // GL_KHR_debug 147 bool debugKHR = false; 148 149 // GL_EXT_debug_label 150 bool debugLabelEXT = false; 151 152 // GL_EXT_debug_marker 153 bool debugMarkerEXT = false; 154 155 // GL_OES_depth24 156 bool depth24OES = false; 157 158 // GL_OES_depth32 159 bool depth32OES = false; 160 161 // GL_NV_depth_buffer_float2 162 bool depthBufferFloat2NV = false; 163 164 // GL_ANGLE_depth_texture 165 bool depthTextureANGLE = false; 166 167 // GL_OES_depth_texture 168 bool depthTextureOES = false; 169 170 // GL_OES_depth_texture_cube_map 171 bool depthTextureCubeMapOES = false; 172 173 // GL_EXT_discard_framebuffer 174 bool discardFramebufferEXT = false; 175 176 // GL_EXT_disjoint_timer_query 177 bool disjointTimerQueryEXT = false; 178 179 // GL_EXT_draw_buffers 180 bool drawBuffersEXT = false; 181 182 // GL_EXT_draw_buffers_indexed 183 bool drawBuffersIndexedEXT = false; 184 185 // GL_OES_draw_buffers_indexed 186 bool drawBuffersIndexedOES = false; 187 188 // GL_EXT_draw_elements_base_vertex 189 bool drawElementsBaseVertexEXT = false; 190 191 // GL_OES_draw_elements_base_vertex 192 bool drawElementsBaseVertexOES = false; 193 194 // GL_OES_EGL_image 195 bool EGLImageOES = false; 196 197 // GL_EXT_EGL_image_array 198 bool EGLImageArrayEXT = false; 199 200 // GL_OES_EGL_image_external 201 bool EGLImageExternalOES = false; 202 203 // GL_OES_EGL_image_external_essl3 204 bool EGLImageExternalEssl3OES = false; 205 206 // GL_EXT_EGL_image_external_wrap_modes 207 bool EGLImageExternalWrapModesEXT = false; 208 209 // GL_EXT_EGL_image_storage 210 bool EGLImageStorageEXT = false; 211 212 // GL_NV_EGL_stream_consumer_external 213 bool EGLStreamConsumerExternalNV = false; 214 215 // GL_OES_EGL_sync 216 bool EGLSyncOES = false; 217 218 // GL_OES_element_index_uint 219 bool elementIndexUintOES = false; 220 221 // GL_ANDROID_extension_pack_es31a 222 bool extensionPackEs31aANDROID = false; 223 224 // GL_EXT_external_buffer 225 bool externalBufferEXT = false; 226 227 // GL_OES_fbo_render_mipmap 228 bool fboRenderMipmapOES = false; 229 230 // GL_NV_fence 231 bool fenceNV = false; 232 233 // GL_EXT_float_blend 234 bool floatBlendEXT = false; 235 236 // GL_EXT_frag_depth 237 bool fragDepthEXT = false; 238 239 // GL_ANGLE_framebuffer_blit 240 bool framebufferBlitANGLE = false; 241 242 // GL_NV_framebuffer_blit 243 bool framebufferBlitNV = false; 244 245 // GL_MESA_framebuffer_flip_y 246 bool framebufferFlipYMESA = false; 247 248 // GL_EXT_geometry_shader 249 bool geometryShaderEXT = false; 250 251 // GL_OES_geometry_shader 252 bool geometryShaderOES = false; 253 254 // GL_OES_get_program_binary 255 bool getProgramBinaryOES = false; 256 257 // GL_EXT_gpu_shader5 258 bool gpuShader5EXT = false; 259 260 // GL_ANGLE_instanced_arrays 261 bool instancedArraysANGLE = false; 262 263 // GL_EXT_instanced_arrays 264 bool instancedArraysEXT = false; 265 266 // GL_OES_mapbuffer 267 bool mapbufferOES = false; 268 269 // GL_EXT_map_buffer_range 270 bool mapBufferRangeEXT = false; 271 272 // GL_EXT_memory_object 273 bool memoryObjectEXT = false; 274 275 // GL_EXT_memory_object_fd 276 bool memoryObjectFdEXT = false; 277 278 // GL_EXT_multi_draw_indirect 279 bool multiDrawIndirectEXT = false; 280 281 // GL_EXT_multisample_compatibility 282 bool multisampleCompatibilityEXT = false; 283 284 // GL_EXT_multisampled_render_to_texture 285 bool multisampledRenderToTextureEXT = false; 286 287 // GL_EXT_multisampled_render_to_texture2 288 bool multisampledRenderToTexture2EXT = false; 289 290 // GL_OVR_multiview 291 bool multiviewOVR = false; 292 293 // GL_OVR_multiview2 294 bool multiview2OVR = false; 295 296 // GL_KHR_no_error 297 bool noErrorKHR = false; 298 299 // GL_EXT_occlusion_query_boolean 300 bool occlusionQueryBooleanEXT = false; 301 302 // GL_OES_packed_depth_stencil 303 bool packedDepthStencilOES = false; 304 305 // GL_ANGLE_pack_reverse_row_order 306 bool packReverseRowOrderANGLE = false; 307 308 // GL_NV_pack_subimage 309 bool packSubimageNV = false; 310 311 // GL_KHR_parallel_shader_compile 312 bool parallelShaderCompileKHR = false; 313 314 // GL_AMD_performance_monitor 315 bool performanceMonitorAMD = false; 316 317 // GL_NV_pixel_buffer_object 318 bool pixelBufferObjectNV = false; 319 320 // GL_EXT_primitive_bounding_box 321 bool primitiveBoundingBoxEXT = false; 322 323 // GL_OES_primitive_bounding_box 324 bool primitiveBoundingBoxOES = false; 325 326 // GL_EXT_protected_textures 327 bool protectedTexturesEXT = false; 328 329 // GL_EXT_pvrtc_sRGB 330 bool pvrtcSRGBEXT = false; 331 332 // GL_NV_read_depth 333 bool readDepthNV = false; 334 335 // GL_EXT_read_format_bgra 336 bool readFormatBgraEXT = false; 337 338 // GL_NV_read_stencil 339 bool readStencilNV = false; 340 341 // GL_OES_rgb8_rgba8 342 bool rgb8Rgba8OES = false; 343 344 // GL_KHR_robust_buffer_access_behavior 345 bool robustBufferAccessBehaviorKHR = false; 346 347 // GL_EXT_robustness 348 bool robustnessEXT = false; 349 350 // GL_NV_robustness_video_memory_purge 351 bool robustnessVideoMemoryPurgeNV = false; 352 353 // GL_OES_sample_shading 354 bool sampleShadingOES = false; 355 356 // GL_OES_sample_variables 357 bool sampleVariablesOES = false; 358 359 // GL_EXT_semaphore 360 bool semaphoreEXT = false; 361 362 // GL_EXT_semaphore_fd 363 bool semaphoreFdEXT = false; 364 365 // GL_EXT_separate_shader_objects 366 bool separateShaderObjectsEXT = false; 367 368 // GL_EXT_shader_framebuffer_fetch 369 bool shaderFramebufferFetchEXT = false; 370 371 // GL_EXT_shader_framebuffer_fetch_non_coherent 372 bool shaderFramebufferFetchNonCoherentEXT = false; 373 374 // GL_OES_shader_image_atomic 375 bool shaderImageAtomicOES = false; 376 377 // GL_EXT_shader_io_blocks 378 bool shaderIoBlocksEXT = false; 379 380 // GL_OES_shader_io_blocks 381 bool shaderIoBlocksOES = false; 382 383 // GL_OES_shader_multisample_interpolation 384 bool shaderMultisampleInterpolationOES = false; 385 386 // GL_EXT_shader_non_constant_global_initializers 387 bool shaderNonConstantGlobalInitializersEXT = false; 388 389 // GL_NV_shader_noperspective_interpolation 390 bool shaderNoperspectiveInterpolationNV = false; 391 392 // GL_EXT_shader_texture_lod 393 bool shaderTextureLodEXT = false; 394 395 // GL_EXT_shadow_samplers 396 bool shadowSamplersEXT = false; 397 398 // GL_EXT_sRGB 399 bool sRGBEXT = false; 400 401 // GL_EXT_sRGB_write_control 402 bool sRGBWriteControlEXT = false; 403 404 // GL_OES_standard_derivatives 405 bool standardDerivativesOES = false; 406 407 // GL_OES_surfaceless_context 408 bool surfacelessContextOES = false; 409 410 // GL_ARB_sync 411 bool syncARB = false; 412 413 // GL_EXT_tessellation_shader 414 bool tessellationShaderEXT = false; 415 416 // GL_OES_texture_3D 417 bool texture3DOES = false; 418 419 // GL_EXT_texture_border_clamp 420 bool textureBorderClampEXT = false; 421 422 // GL_OES_texture_border_clamp 423 bool textureBorderClampOES = false; 424 425 // GL_EXT_texture_buffer 426 bool textureBufferEXT = false; 427 428 // GL_OES_texture_buffer 429 bool textureBufferOES = false; 430 431 // GL_OES_texture_compression_astc 432 bool textureCompressionAstcOES = false; 433 434 // GL_KHR_texture_compression_astc_hdr 435 bool textureCompressionAstcHdrKHR = false; 436 437 // GL_KHR_texture_compression_astc_ldr 438 bool textureCompressionAstcLdrKHR = false; 439 440 // GL_KHR_texture_compression_astc_sliced_3d 441 bool textureCompressionAstcSliced3dKHR = false; 442 443 // GL_EXT_texture_compression_bptc 444 bool textureCompressionBptcEXT = false; 445 446 // GL_EXT_texture_compression_dxt1 447 bool textureCompressionDxt1EXT = false; 448 449 // GL_IMG_texture_compression_pvrtc 450 bool textureCompressionPvrtcIMG = false; 451 452 // GL_IMG_texture_compression_pvrtc2 453 bool textureCompressionPvrtc2IMG = false; 454 455 // GL_EXT_texture_compression_rgtc 456 bool textureCompressionRgtcEXT = false; 457 458 // GL_EXT_texture_compression_s3tc 459 bool textureCompressionS3tcEXT = false; 460 461 // GL_EXT_texture_compression_s3tc_srgb 462 bool textureCompressionS3tcSrgbEXT = false; 463 464 // GL_EXT_texture_cube_map_array 465 bool textureCubeMapArrayEXT = false; 466 467 // GL_OES_texture_cube_map_array 468 bool textureCubeMapArrayOES = false; 469 470 // GL_EXT_texture_filter_anisotropic 471 bool textureFilterAnisotropicEXT = false; 472 473 // GL_OES_texture_float 474 bool textureFloatOES = false; 475 476 // GL_OES_texture_float_linear 477 bool textureFloatLinearOES = false; 478 479 // GL_EXT_texture_format_BGRA8888 480 bool textureFormatBGRA8888EXT = false; 481 482 // GL_EXT_texture_format_sRGB_override 483 bool textureFormatSRGBOverrideEXT = false; 484 485 // GL_OES_texture_half_float 486 bool textureHalfFloatOES = false; 487 488 // GL_OES_texture_half_float_linear 489 bool textureHalfFloatLinearOES = false; 490 491 // GL_EXT_texture_norm16 492 bool textureNorm16EXT = false; 493 494 // GL_OES_texture_npot 495 bool textureNpotOES = false; 496 497 // GL_EXT_texture_rg 498 bool textureRgEXT = false; 499 500 // GL_EXT_texture_sRGB_decode 501 bool textureSRGBDecodeEXT = false; 502 503 // GL_EXT_texture_sRGB_R8 504 bool textureSRGBR8EXT = false; 505 506 // GL_EXT_texture_sRGB_RG8 507 bool textureSRGBRG8EXT = false; 508 509 // GL_OES_texture_stencil8 510 bool textureStencil8OES = false; 511 512 // GL_EXT_texture_storage 513 bool textureStorageEXT = false; 514 515 // GL_OES_texture_storage_multisample_2d_array 516 bool textureStorageMultisample2dArrayOES = false; 517 518 // GL_EXT_texture_type_2_10_10_10_REV 519 bool textureType2101010REVEXT = false; 520 521 // GL_ANGLE_texture_usage 522 bool textureUsageANGLE = false; 523 524 // GL_ANGLE_translated_shader_source 525 bool translatedShaderSourceANGLE = false; 526 527 // GL_EXT_unpack_subimage 528 bool unpackSubimageEXT = false; 529 530 // GL_OES_vertex_array_object 531 bool vertexArrayObjectOES = false; 532 533 // GL_OES_vertex_half_float 534 bool vertexHalfFloatOES = false; 535 536 // GL_OES_vertex_type_10_10_10_2 537 bool vertexType1010102OES = false; 538 539 // GL_WEBGL_video_texture 540 bool videoTextureWEBGL = false; 541 542 // GL_EXT_YUV_target 543 bool YUVTargetEXT = false; 544 545 // ANGLE unofficial extensions 546 // --------------------------- 547 548 // GL_ANGLE_base_vertex_base_instance 549 bool baseVertexBaseInstanceANGLE = false; 550 551 // GL_ANGLE_base_vertex_base_instance_shader_builtin 552 bool baseVertexBaseInstanceShaderBuiltinANGLE = false; 553 554 // GL_CHROMIUM_bind_generates_resource 555 bool bindGeneratesResourceCHROMIUM = false; 556 557 // GL_CHROMIUM_bind_uniform_location 558 bool bindUniformLocationCHROMIUM = false; 559 560 // GL_ANGLE_client_arrays 561 bool clientArraysANGLE = false; 562 563 // GL_CHROMIUM_color_buffer_float_rgb 564 bool colorBufferFloatRgbCHROMIUM = false; 565 566 // GL_CHROMIUM_color_buffer_float_rgba 567 bool colorBufferFloatRgbaCHROMIUM = false; 568 569 // GL_ANGLE_compressed_texture_etc 570 bool compressedTextureEtcANGLE = false; 571 572 // GL_CHROMIUM_copy_compressed_texture 573 bool copyCompressedTextureCHROMIUM = false; 574 575 // GL_CHROMIUM_copy_texture 576 bool copyTextureCHROMIUM = false; 577 578 // GL_ANGLE_copy_texture_3d 579 bool copyTexture3dANGLE = false; 580 581 // GL_CHROMIUM_framebuffer_mixed_samples 582 bool framebufferMixedSamplesCHROMIUM = false; 583 584 // GL_ANGLE_framebuffer_multisample 585 bool framebufferMultisampleANGLE = false; 586 587 // GL_ANGLE_get_image 588 bool getImageANGLE = false; 589 590 // GL_ANGLE_get_serialized_context_string 591 bool getSerializedContextStringANGLE = false; 592 593 // GL_ANGLE_get_tex_level_parameter 594 bool getTexLevelParameterANGLE = false; 595 596 // GL_CHROMIUM_lose_context 597 bool loseContextCHROMIUM = false; 598 599 // GL_ANGLE_lossy_etc_decode 600 bool lossyEtcDecodeANGLE = false; 601 602 // GL_ANGLE_memory_object_flags 603 bool memoryObjectFlagsANGLE = false; 604 605 // GL_ANGLE_memory_object_fuchsia 606 bool memoryObjectFuchsiaANGLE = false; 607 608 // GL_ANGLE_memory_size 609 bool memorySizeANGLE = false; 610 611 // GL_ANGLE_multi_draw 612 bool multiDrawANGLE = false; 613 614 // GL_ANGLE_multiview_multisample 615 bool multiviewMultisampleANGLE = false; 616 617 // GL_ANGLE_program_binary 618 bool programBinaryANGLE = false; 619 620 // GL_ANGLE_program_cache_control 621 bool programCacheControlANGLE = false; 622 623 // GL_ANGLE_provoking_vertex 624 bool provokingVertexANGLE = false; 625 626 // GL_ANGLE_relaxed_vertex_attribute_type 627 bool relaxedVertexAttributeTypeANGLE = false; 628 629 // GL_ANGLE_request_extension 630 bool requestExtensionANGLE = false; 631 632 // GL_ANGLE_rgbx_internal_format 633 bool rgbxInternalFormatANGLE = false; 634 635 // GL_ANGLE_robust_client_memory 636 bool robustClientMemoryANGLE = false; 637 638 // GL_ANGLE_robust_fragment_shader_output 639 bool robustFragmentShaderOutputANGLE = false; 640 641 // GL_ANGLE_robust_resource_initialization 642 bool robustResourceInitializationANGLE = false; 643 644 // GL_ANGLE_semaphore_fuchsia 645 bool semaphoreFuchsiaANGLE = false; 646 647 // GL_CHROMIUM_sync_query 648 bool syncQueryCHROMIUM = false; 649 650 // GL_ANGLE_texture_compression_dxt3 651 bool textureCompressionDxt3ANGLE = false; 652 653 // GL_ANGLE_texture_compression_dxt5 654 bool textureCompressionDxt5ANGLE = false; 655 656 // GL_ANGLE_texture_external_update 657 bool textureExternalUpdateANGLE = false; 658 659 // GL_CHROMIUM_texture_filtering_hint 660 bool textureFilteringHintCHROMIUM = false; 661 662 // GL_ANGLE_texture_multisample 663 bool textureMultisampleANGLE = false; 664 665 // GL_ANGLE_texture_rectangle 666 bool textureRectangleANGLE = false; 667 668 // GL_ANGLE_vulkan_image 669 bool vulkanImageANGLE = false; 670 671 // GL_ANGLE_webgl_compatibility 672 bool webglCompatibilityANGLE = false; 673 674 // GL_ANGLE_yuv_internal_format 675 bool yuvInternalFormatANGLE = false; 676 677 // GLES 1.0 and 1.1 extensions 678 // --------------------------- 679 680 // GL_OES_draw_texture 681 bool drawTextureOES = false; 682 683 // GL_OES_framebuffer_object 684 bool framebufferObjectOES = false; 685 686 // GL_OES_matrix_palette 687 bool matrixPaletteOES = false; 688 689 // GL_OES_point_size_array 690 bool pointSizeArrayOES = false; 691 692 // GL_OES_point_sprite 693 bool pointSpriteOES = false; 694 695 // GL_OES_query_matrix 696 bool queryMatrixOES = false; 697 698 // GL_OES_texture_cube_map 699 bool textureCubeMapOES = false; 700 }; 701 } // namespace gl 702 703 #endif // LIBANGLE_GLES_EXTENSIONS_AUTOGEN_H_ 704