Auto-generate GLES extensions.

Uses the data from registry.xml combined with gl.xml to produce the
necessary header and source file with the strings map. Also updates
the list of supported extensions. Several extensions were missing
from the supported extensions map.

ARB_sync and NV_robustness_video_memory_purge require some specific
tweaks to get the generator to accept them as gles extensions.

Also includes a generate markdown file that lists supported exts.

Bug: angleproject:6379
Change-Id: I95bd589aa31a62b4a008de24408c7823a49023ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3157418
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
This commit is contained in:
Jamie Madill 2021-09-10 16:44:59 -04:00 коммит произвёл Angle LUCI CQ
Родитель 4fbbd09708
Коммит b918b1c656
27 изменённых файлов: 2782 добавлений и 1031 удалений

206
doc/SupportedExtensions.md Normal file
Просмотреть файл

@ -0,0 +1,206 @@
# ANGLE Supported Extensions
This is a list of all extensions currently supported by ANGLE's front-end. Back-end support is not
yet documented. To produce a list of all supported extensions in the Vulkan back-end, run
`angle_end2end_tests` with `--gtest_filter EGLPrintEGLinfoTest.PrintGLInfo/ES*_Vulkan`.
This list is automatically generated by gen_extensions.py using data from registry_xml.py and gl.xml.
| Extension Name |
| -------------- |
| `GL_ANGLE_base_vertex_base_instance` |
| `GL_ANGLE_client_arrays` |
| `GL_ANGLE_compressed_texture_etc` |
| `GL_ANGLE_copy_texture_3d` |
| `GL_ANGLE_depth_texture` |
| `GL_ANGLE_framebuffer_blit` |
| `GL_ANGLE_framebuffer_multisample` |
| `GL_ANGLE_get_image` |
| `GL_ANGLE_get_serialized_context_string` |
| `GL_ANGLE_get_tex_level_parameter` |
| `GL_ANGLE_instanced_arrays` |
| `GL_ANGLE_lossy_etc_decode` |
| `GL_ANGLE_memory_object_flags` |
| `GL_ANGLE_memory_object_fuchsia` |
| `GL_ANGLE_memory_size` |
| `GL_ANGLE_multi_draw` |
| `GL_ANGLE_multiview_multisample` |
| `GL_ANGLE_pack_reverse_row_order` |
| `GL_ANGLE_program_binary` |
| `GL_ANGLE_program_cache_control` |
| `GL_ANGLE_provoking_vertex` |
| `GL_ANGLE_relaxed_vertex_attribute_type` |
| `GL_ANGLE_request_extension` |
| `GL_ANGLE_robust_client_memory` |
| `GL_ANGLE_robust_resource_initialization` |
| `GL_ANGLE_semaphore_fuchsia` |
| `GL_ANGLE_texture_compression_dxt3` |
| `GL_ANGLE_texture_compression_dxt5` |
| `GL_ANGLE_texture_external_update` |
| `GL_ANGLE_texture_multisample` |
| `GL_ANGLE_texture_rectangle` |
| `GL_ANGLE_texture_usage` |
| `GL_ANGLE_translated_shader_source` |
| `GL_ANGLE_webgl_compatibility` |
| `GL_ANGLE_yuv_internal_format` |
| `GL_APPLE_clip_distance` |
| `GL_ARB_sync` |
| `GL_CHROMIUM_bind_generates_resource` |
| `GL_CHROMIUM_bind_uniform_location` |
| `GL_CHROMIUM_color_buffer_float_rgb` |
| `GL_CHROMIUM_color_buffer_float_rgba` |
| `GL_CHROMIUM_copy_compressed_texture` |
| `GL_CHROMIUM_copy_texture` |
| `GL_CHROMIUM_framebuffer_mixed_samples` |
| `GL_CHROMIUM_lose_context` |
| `GL_CHROMIUM_sync_query` |
| `GL_CHROMIUM_texture_filtering_hint` |
| `GL_EXT_EGL_image_array` |
| `GL_EXT_EGL_image_external_wrap_modes` |
| `GL_EXT_EGL_image_storage` |
| `GL_EXT_YUV_target` |
| `GL_EXT_blend_func_extended` |
| `GL_EXT_blend_minmax` |
| `GL_EXT_buffer_storage` |
| `GL_EXT_clip_control` |
| `GL_EXT_clip_cull_distance` |
| `GL_EXT_color_buffer_float` |
| `GL_EXT_color_buffer_half_float` |
| `GL_EXT_compressed_ETC1_RGB8_sub_texture` |
| `GL_EXT_copy_image` |
| `GL_EXT_debug_label` |
| `GL_EXT_debug_marker` |
| `GL_EXT_discard_framebuffer` |
| `GL_EXT_disjoint_timer_query` |
| `GL_EXT_draw_buffers` |
| `GL_EXT_draw_buffers_indexed` |
| `GL_EXT_draw_elements_base_vertex` |
| `GL_EXT_external_buffer` |
| `GL_EXT_float_blend` |
| `GL_EXT_frag_depth` |
| `GL_EXT_geometry_shader` |
| `GL_EXT_gpu_shader5` |
| `GL_EXT_instanced_arrays` |
| `GL_EXT_map_buffer_range` |
| `GL_EXT_memory_object` |
| `GL_EXT_memory_object_fd` |
| `GL_EXT_multisample_compatibility` |
| `GL_EXT_multisampled_render_to_texture` |
| `GL_EXT_multisampled_render_to_texture2` |
| `GL_EXT_occlusion_query_boolean` |
| `GL_EXT_primitive_bounding_box` |
| `GL_EXT_protected_textures` |
| `GL_EXT_pvrtc_sRGB` |
| `GL_EXT_read_format_bgra` |
| `GL_EXT_robustness` |
| `GL_EXT_sRGB` |
| `GL_EXT_sRGB_write_control` |
| `GL_EXT_semaphore` |
| `GL_EXT_semaphore_fd` |
| `GL_EXT_separate_shader_objects` |
| `GL_EXT_shader_framebuffer_fetch_non_coherent` |
| `GL_EXT_shader_io_blocks` |
| `GL_EXT_shader_non_constant_global_initializers` |
| `GL_EXT_shader_texture_lod` |
| `GL_EXT_shadow_samplers` |
| `GL_EXT_tessellation_shader` |
| `GL_EXT_texture_border_clamp` |
| `GL_EXT_texture_buffer` |
| `GL_EXT_texture_compression_bptc` |
| `GL_EXT_texture_compression_dxt1` |
| `GL_EXT_texture_compression_rgtc` |
| `GL_EXT_texture_compression_s3tc` |
| `GL_EXT_texture_compression_s3tc_srgb` |
| `GL_EXT_texture_cube_map_array` |
| `GL_EXT_texture_filter_anisotropic` |
| `GL_EXT_texture_format_BGRA8888` |
| `GL_EXT_texture_format_sRGB_override` |
| `GL_EXT_texture_norm16` |
| `GL_EXT_texture_rg` |
| `GL_EXT_texture_sRGB_R8` |
| `GL_EXT_texture_sRGB_RG8` |
| `GL_EXT_texture_sRGB_decode` |
| `GL_EXT_texture_storage` |
| `GL_EXT_texture_type_2_10_10_10_REV` |
| `GL_EXT_unpack_subimage` |
| `GL_IMG_texture_compression_pvrtc` |
| `GL_IMG_texture_compression_pvrtc2` |
| `GL_KHR_blend_equation_advanced` |
| `GL_KHR_debug` |
| `GL_KHR_no_error` |
| `GL_KHR_parallel_shader_compile` |
| `GL_KHR_robust_buffer_access_behavior` |
| `GL_KHR_texture_compression_astc_hdr` |
| `GL_KHR_texture_compression_astc_ldr` |
| `GL_KHR_texture_compression_astc_sliced_3d` |
| `GL_NV_EGL_stream_consumer_external` |
| `GL_NV_depth_buffer_float2` |
| `GL_NV_fence` |
| `GL_NV_framebuffer_blit` |
| `GL_NV_pack_subimage` |
| `GL_NV_pixel_buffer_object` |
| `GL_NV_read_depth` |
| `GL_NV_read_stencil` |
| `GL_NV_robustness_video_memory_purge` |
| `GL_NV_shader_noperspective_interpolation` |
| `GL_OES_EGL_image` |
| `GL_OES_EGL_image_external` |
| `GL_OES_EGL_image_external_essl3` |
| `GL_OES_EGL_sync` |
| `GL_OES_compressed_EAC_R11_signed_texture` |
| `GL_OES_compressed_EAC_R11_unsigned_texture` |
| `GL_OES_compressed_EAC_RG11_signed_texture` |
| `GL_OES_compressed_EAC_RG11_unsigned_texture` |
| `GL_OES_compressed_ETC1_RGB8_texture` |
| `GL_OES_compressed_ETC2_RGB8_texture` |
| `GL_OES_compressed_ETC2_RGBA8_texture` |
| `GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture` |
| `GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture` |
| `GL_OES_compressed_ETC2_sRGB8_alpha8_texture` |
| `GL_OES_compressed_ETC2_sRGB8_texture` |
| `GL_OES_copy_image` |
| `GL_OES_depth24` |
| `GL_OES_depth32` |
| `GL_OES_depth_texture` |
| `GL_OES_depth_texture_cube_map` |
| `GL_OES_draw_buffers_indexed` |
| `GL_OES_draw_elements_base_vertex` |
| `GL_OES_draw_texture` |
| `GL_OES_element_index_uint` |
| `GL_OES_fbo_render_mipmap` |
| `GL_OES_framebuffer_object` |
| `GL_OES_geometry_shader` |
| `GL_OES_get_program_binary` |
| `GL_OES_mapbuffer` |
| `GL_OES_matrix_palette` |
| `GL_OES_packed_depth_stencil` |
| `GL_OES_point_size_array` |
| `GL_OES_point_sprite` |
| `GL_OES_query_matrix` |
| `GL_OES_rgb8_rgba8` |
| `GL_OES_sample_shading` |
| `GL_OES_sample_variables` |
| `GL_OES_shader_image_atomic` |
| `GL_OES_shader_io_blocks` |
| `GL_OES_shader_multisample_interpolation` |
| `GL_OES_standard_derivatives` |
| `GL_OES_surfaceless_context` |
| `GL_OES_texture_3D` |
| `GL_OES_texture_border_clamp` |
| `GL_OES_texture_buffer` |
| `GL_OES_texture_compression_astc` |
| `GL_OES_texture_cube_map` |
| `GL_OES_texture_cube_map_array` |
| `GL_OES_texture_float` |
| `GL_OES_texture_float_linear` |
| `GL_OES_texture_half_float` |
| `GL_OES_texture_half_float_linear` |
| `GL_OES_texture_npot` |
| `GL_OES_texture_stencil8` |
| `GL_OES_texture_storage_multisample_2d_array` |
| `GL_OES_vertex_array_object` |
| `GL_OES_vertex_half_float` |
| `GL_OES_vertex_type_10_10_10_2` |
| `GL_OVR_multiview` |
| `GL_OVR_multiview2` |
| `GL_WEBGL_video_texture` |

Просмотреть файл

@ -0,0 +1,24 @@
{
"doc/SupportedExtensions.md":
"4e06f9a617d379fe869ac6fa515b1bb2",
"scripts/cl.xml":
"f923201d4ea3e1130763b19fa7faa7a2",
"scripts/egl.xml":
"013c552e6c523abdcf268268ea47e9fe",
"scripts/egl_angle_ext.xml":
"5bcc01462b355d933cf3ada15198fb68",
"scripts/gl.xml":
"a442a7aeff3a2f0a1fba52ee08089500",
"scripts/gl_angle_ext.xml":
"08f74b35d908b7c02b45fdf45572c434",
"scripts/registry_xml.py":
"7e9a66850b966c79f2f4d5036a5bd8b0",
"scripts/wgl.xml":
"c36001431919e1c435f1215a85f7e1db",
"src/libANGLE/gen_extensions.py":
"09abdc7e386601ea3b259cd30ec08ea0",
"src/libANGLE/gles_extensions_autogen.cpp":
"039e36b4e6f02839e380b07fc9cb2855",
"src/libANGLE/gles_extensions_autogen.h":
"a88430deae68c3fcd045bd22d00033e8"
}

Просмотреть файл

@ -8,11 +8,11 @@
"scripts/generate_loader.py":
"b95f0518351e08bf17240279b2681a6c",
"scripts/gl.xml":
"e99461f683ac14cbb1eac57ad73db0e8",
"a442a7aeff3a2f0a1fba52ee08089500",
"scripts/gl_angle_ext.xml":
"08f74b35d908b7c02b45fdf45572c434",
"scripts/registry_xml.py":
"9dafea2a646826c757d1d32711231e74",
"7e9a66850b966c79f2f4d5036a5bd8b0",
"scripts/wgl.xml":
"c36001431919e1c435f1215a85f7e1db",
"src/libEGL/egl_loader_autogen.cpp":

Просмотреть файл

@ -12,11 +12,11 @@
"scripts/generate_entry_points.py":
"b215414751c7c1b976482edc1a7ffc77",
"scripts/gl.xml":
"e99461f683ac14cbb1eac57ad73db0e8",
"a442a7aeff3a2f0a1fba52ee08089500",
"scripts/gl_angle_ext.xml":
"08f74b35d908b7c02b45fdf45572c434",
"scripts/registry_xml.py":
"9dafea2a646826c757d1d32711231e74",
"7e9a66850b966c79f2f4d5036a5bd8b0",
"scripts/wgl.xml":
"c36001431919e1c435f1215a85f7e1db",
"src/common/entry_points_enum_autogen.cpp":
@ -42,7 +42,7 @@
"src/libANGLE/Context_gles_3_2_autogen.h":
"48567dca16fd881dfe6d61fee0e3106f",
"src/libANGLE/Context_gles_ext_autogen.h":
"eda3bb2e26a59f76eb3e897ea89b4999",
"9ed6f6011b545d72fc8352848999b51d",
"src/libANGLE/capture/capture_gles_1_0_autogen.cpp":
"7ec7ef8f779b809a45d74b97502c419b",
"src/libANGLE/capture/capture_gles_1_0_autogen.h":
@ -66,7 +66,7 @@
"src/libANGLE/capture/capture_gles_ext_autogen.cpp":
"da3c5ba77334da863d267350091b13dd",
"src/libANGLE/capture/capture_gles_ext_autogen.h":
"c668434d3c0f909e48bdcabfebd0b1a7",
"ffb7afa0f3a5971c42e37a31bbd39125",
"src/libANGLE/capture/frame_capture_replay_autogen.cpp":
"e0a3c284b986e2a712589b6f3523d79c",
"src/libANGLE/capture/frame_capture_utils_autogen.cpp":
@ -88,7 +88,7 @@
"src/libANGLE/validationES3_autogen.h":
"7435b9caddf8787b937c71a54dda96e1",
"src/libANGLE/validationESEXT_autogen.h":
"bc9f45eeb628722bd20ca826c96814eb",
"859ef99e38808a39fd89dfc728468dd5",
"src/libANGLE/validationGL1_autogen.h":
"439f8ea26dc37ee6608100f4c6f9205c",
"src/libANGLE/validationGL2_autogen.h":
@ -162,17 +162,17 @@
"src/libGLESv2/entry_points_gles_3_2_autogen.h":
"647f932a299cdb4726b60bbba059f0d2",
"src/libGLESv2/entry_points_gles_ext_autogen.cpp":
"3baf7f6a6470248452230083a53ed016",
"595369698a6deda1c53900dfb0e288b9",
"src/libGLESv2/entry_points_gles_ext_autogen.h":
"132b52b10e3076b6ea183a480709a154",
"d9f1298ae5622c2b9d342d11b1808c74",
"src/libGLESv2/libGLESv2_autogen.cpp":
"a63c3a32a98f1826a6a0e8c3c3dfcc8b",
"78f4797308ea7b304e1427aeca812a1c",
"src/libGLESv2/libGLESv2_autogen.def":
"fcac3c9129aa5a41546fbab3920ab419",
"af8a1948f5b828ae847bd8b00c10fffe",
"src/libGLESv2/libGLESv2_no_capture_autogen.def":
"10406245739cb06a538e75eb8ffe905c",
"7a9fc0f3e95b53fbb1bcb5516c4ae0c2",
"src/libGLESv2/libGLESv2_with_capture_autogen.def":
"a173df42f6845695c19873ffb470f58b",
"2e0ccc0fc63e300c3248a1c3c6ac7aca",
"src/libOpenCL/libOpenCL_autogen.cpp":
"10849978c910dc1af5dd4f0c815d1581"
}

Просмотреть файл

@ -2,13 +2,13 @@
"scripts/gen_gl_enum_utils.py":
"332cfb6f04242d18966445f70f0039b3",
"scripts/gl.xml":
"e99461f683ac14cbb1eac57ad73db0e8",
"a442a7aeff3a2f0a1fba52ee08089500",
"scripts/gl_angle_ext.xml":
"08f74b35d908b7c02b45fdf45572c434",
"scripts/registry_xml.py":
"9dafea2a646826c757d1d32711231e74",
"7e9a66850b966c79f2f4d5036a5bd8b0",
"src/libANGLE/capture/gl_enum_utils_autogen.cpp":
"96cc2400631cc3e7ab7aba104b8f23e9",
"2ea097051161668c1cef088043707735",
"src/libANGLE/capture/gl_enum_utils_autogen.h":
"fb0bb7f506f6082ea3b2c3fa384d2739"
}

Просмотреть файл

@ -1,10 +1,10 @@
{
"scripts/gl.xml":
"e99461f683ac14cbb1eac57ad73db0e8",
"a442a7aeff3a2f0a1fba52ee08089500",
"src/libANGLE/renderer/angle_format.py":
"74d6c9842128293118ccf128aeae896a",
"src/libANGLE/renderer/gl/DispatchTableGL_autogen.cpp":
"06399dbfa161982f60b0af04e3cf9ffb",
"f0d5c792843c9d7d9c06fd7b9b20724c",
"src/libANGLE/renderer/gl/DispatchTableGL_autogen.h":
"3115c293d6612d10498a1063b8cebe1a",
"src/libANGLE/renderer/gl/generate_gl_dispatch_table.py":

Просмотреть файл

@ -8,11 +8,11 @@
"scripts/gen_proc_table.py":
"8336449da7e36f45dd6d70c44add2ebf",
"scripts/gl.xml":
"e99461f683ac14cbb1eac57ad73db0e8",
"a442a7aeff3a2f0a1fba52ee08089500",
"scripts/gl_angle_ext.xml":
"08f74b35d908b7c02b45fdf45572c434",
"scripts/registry_xml.py":
"9dafea2a646826c757d1d32711231e74",
"7e9a66850b966c79f2f4d5036a5bd8b0",
"scripts/wgl.xml":
"c36001431919e1c435f1215a85f7e1db",
"src/libGL/proc_table_wgl_autogen.cpp":

Просмотреть файл

@ -41347,7 +41347,7 @@ typedef unsigned int GLhandleARB;
<enum name="GL_DEPTH_STENCIL_TEXTURE_MODE"/>
</require>
</extension>
<extension name="GL_ARB_sync" supported="gl|glcore">
<extension name="GL_ARB_sync" supported="gl|glcore|gles2" comment="ANGLE hacks, should only be desktop GL">
<require>
<enum name="GL_MAX_SERVER_WAIT_TIMEOUT"/>
<enum name="GL_OBJECT_TYPE"/>
@ -47256,7 +47256,7 @@ typedef unsigned int GLhandleARB;
<command name="glGetCombinerStageParameterfvNV"/>
</require>
</extension>
<extension name="GL_NV_robustness_video_memory_purge" supported="gl">
<extension name="GL_NV_robustness_video_memory_purge" supported="gl|gles2" command="ANGLE hacks, should only be gl">
<require>
<enum name="GL_PURGED_CONTEXT_RESET_NV"/>
</require>

Просмотреть файл

@ -10,6 +10,7 @@
# List of supported extensions. Add to this list to enable new extensions
# available in gl.xml.
import difflib
import os
import sys
import xml.etree.ElementTree as etree
@ -26,63 +27,72 @@ xml_inputs = [
'registry_xml.py',
]
angle_extensions = [
# ANGLE extensions
"GL_CHROMIUM_bind_uniform_location",
"GL_CHROMIUM_framebuffer_mixed_samples",
"GL_CHROMIUM_path_rendering",
"GL_CHROMIUM_copy_texture",
"GL_CHROMIUM_copy_compressed_texture",
"GL_CHROMIUM_lose_context",
"GL_ANGLE_copy_texture_3d",
"GL_ANGLE_get_image",
"GL_ANGLE_get_serialized_context_string",
"GL_ANGLE_get_tex_level_parameter",
"GL_ANGLE_program_binary",
"GL_ANGLE_request_extension",
"GL_ANGLE_robust_client_memory",
"GL_ANGLE_texture_external_update",
# Notes on categories of extensions:
# 'Requestable' extensions are extensions that can be enabled with ANGLE_request_extension
# 'ES-Only' extensions are always implicitly enabled.
# 'Toggleable' extensions are like 'Requestable' except they can be also disabled.
# 'ANGLE' extensions are extensions that are not yet officially upstreamed to Khronos.
# We document those extensions in gl_angle_ext.xml instead of the canonical gl.xml.
angle_toggleable_extensions = [
"GL_ANGLE_texture_rectangle",
]
gles1_extensions = [
# ES1 (Possibly the min set of extensions needed by Android)
"GL_OES_draw_texture",
"GL_OES_framebuffer_object",
"GL_OES_matrix_palette",
"GL_OES_point_size_array",
"GL_OES_query_matrix",
"GL_OES_texture_cube_map",
]
gles_extensions = [
# ES2+
angle_requestable_extensions = [
"GL_ANGLE_base_vertex_base_instance",
"GL_ANGLE_framebuffer_blit",
"GL_ANGLE_compressed_texture_etc",
"GL_ANGLE_copy_texture_3d",
"GL_ANGLE_framebuffer_multisample",
"GL_ANGLE_instanced_arrays",
"GL_ANGLE_get_image",
"GL_ANGLE_get_tex_level_parameter",
"GL_ANGLE_lossy_etc_decode",
"GL_ANGLE_memory_object_flags",
"GL_ANGLE_memory_object_fuchsia",
"GL_ANGLE_memory_size",
"GL_ANGLE_multi_draw",
"GL_ANGLE_multiview_multisample",
"GL_ANGLE_provoking_vertex",
"GL_ANGLE_semaphore_fuchsia",
"GL_ANGLE_texture_compression_dxt3",
"GL_ANGLE_texture_compression_dxt5",
"GL_ANGLE_texture_external_update",
"GL_ANGLE_texture_multisample",
"GL_ANGLE_translated_shader_source",
"GL_KHR_blend_equation_advanced",
"GL_ANGLE_yuv_internal_format",
"GL_CHROMIUM_color_buffer_float_rgb",
"GL_CHROMIUM_color_buffer_float_rgba",
"GL_CHROMIUM_lose_context",
"GL_CHROMIUM_sync_query",
"GL_CHROMIUM_texture_filtering_hint",
]
gles_requestable_extensions = [
"GL_ANGLE_framebuffer_blit",
"GL_ANGLE_instanced_arrays",
"GL_ANGLE_pack_reverse_row_order",
"GL_ANGLE_texture_usage",
"GL_APPLE_clip_distance",
"GL_ARB_sync",
"GL_EXT_blend_func_extended",
"GL_EXT_blend_minmax",
"GL_EXT_buffer_storage",
"GL_EXT_copy_image",
"GL_EXT_clip_control",
"GL_EXT_debug_label",
"GL_EXT_debug_marker",
"GL_EXT_discard_framebuffer",
"GL_EXT_clip_cull_distance",
"GL_EXT_color_buffer_float",
"GL_EXT_color_buffer_half_float",
"GL_EXT_compressed_ETC1_RGB8_sub_texture",
"GL_EXT_copy_image",
"GL_EXT_disjoint_timer_query",
"GL_EXT_draw_buffers",
"GL_EXT_draw_buffers_indexed",
"GL_EXT_draw_elements_base_vertex",
"GL_EXT_EGL_image_array",
"GL_EXT_EGL_image_external_wrap_modes",
"GL_EXT_EGL_image_storage",
"GL_EXT_external_buffer",
"GL_EXT_float_blend",
"GL_EXT_frag_depth",
"GL_EXT_geometry_shader",
"GL_EXT_gpu_shader5",
"GL_EXT_instanced_arrays",
"GL_EXT_map_buffer_range",
"GL_EXT_memory_object",
@ -90,18 +100,18 @@ gles_extensions = [
"GL_EXT_multisampled_render_to_texture",
"GL_EXT_multisampled_render_to_texture2",
"GL_EXT_occlusion_query_boolean",
"GL_EXT_primitive_bounding_box",
"GL_EXT_protected_textures",
"GL_EXT_pvrtc_sRGB",
"GL_EXT_read_format_bgra",
"GL_EXT_robustness",
"GL_EXT_semaphore",
"GL_EXT_semaphore_fd",
"GL_EXT_separate_shader_objects",
"GL_EXT_shader_framebuffer_fetch_non_coherent",
"GL_EXT_shader_io_blocks",
"GL_EXT_shader_non_constant_global_initializers",
"GL_EXT_shader_texture_lod",
"GL_EXT_shadow_samplers",
"GL_EXT_sRGB",
"GL_EXT_sRGB_write_control",
"GL_EXT_tessellation_shader",
"GL_EXT_texture_border_clamp",
"GL_EXT_texture_buffer",
@ -113,45 +123,151 @@ gles_extensions = [
"GL_EXT_texture_cube_map_array",
"GL_EXT_texture_filter_anisotropic",
"GL_EXT_texture_format_BGRA8888",
"GL_EXT_texture_storage",
"GL_EXT_texture_norm16",
"GL_EXT_texture_rg",
"GL_EXT_texture_sRGB_R8",
"GL_EXT_texture_sRGB_RG8",
"GL_EXT_texture_storage",
"GL_EXT_texture_type_2_10_10_10_REV",
"GL_EXT_unpack_subimage",
"GL_EXT_YUV_target",
"GL_IMG_texture_compression_pvrtc",
"GL_IMG_texture_compression_pvrtc2",
"GL_KHR_debug",
"GL_KHR_parallel_shader_compile",
"GL_KHR_texture_compression_astc_ldr",
"GL_KHR_texture_compression_astc_hdr",
"GL_KHR_texture_compression_astc_ldr",
"GL_KHR_texture_compression_astc_sliced_3d",
"GL_NV_fence",
"GL_NV_depth_buffer_float2",
"GL_NV_EGL_stream_consumer_external",
"GL_NV_framebuffer_blit",
"GL_NV_pack_subimage",
"GL_NV_pixel_buffer_object",
"GL_NV_read_depth",
"GL_NV_read_stencil",
"GL_NV_shader_noperspective_interpolation",
"GL_OES_compressed_EAC_R11_signed_texture",
"GL_OES_compressed_EAC_R11_unsigned_texture",
"GL_OES_compressed_EAC_RG11_signed_texture",
"GL_OES_compressed_EAC_RG11_unsigned_texture",
"GL_OES_compressed_ETC1_RGB8_texture",
"GL_EXT_compressed_ETC1_RGB8_sub_texture",
"GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture",
"GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture",
"GL_OES_compressed_ETC2_RGB8_texture",
"GL_OES_compressed_ETC2_RGBA8_texture",
"GL_OES_compressed_ETC2_sRGB8_alpha8_texture",
"GL_OES_compressed_ETC2_sRGB8_texture",
"GL_OES_copy_image",
"GL_OES_depth32",
"GL_OES_depth_texture_cube_map",
"GL_OES_draw_buffers_indexed",
"GL_OES_draw_elements_base_vertex",
"GL_OES_EGL_image",
"GL_OES_EGL_image_external",
"GL_OES_EGL_image_external_essl3",
"GL_OES_element_index_uint",
"GL_OES_fbo_render_mipmap",
"GL_OES_geometry_shader",
"GL_OES_get_program_binary",
"GL_OES_mapbuffer",
"GL_OES_rgb8_rgba8",
"GL_OES_sample_shading",
"GL_OES_sample_variables",
"GL_OES_shader_image_atomic",
"GL_OES_shader_io_blocks",
"GL_OES_shader_multisample_interpolation",
"GL_OES_standard_derivatives",
"GL_OES_texture_3D",
"GL_OES_texture_border_clamp",
"GL_OES_texture_buffer",
"GL_OES_texture_compression_astc",
"GL_OES_texture_cube_map_array",
"GL_OES_texture_float",
"GL_OES_texture_float_linear",
"GL_OES_texture_half_float",
"GL_OES_texture_half_float_linear",
"GL_OES_texture_npot",
"GL_OES_texture_stencil8",
"GL_OES_texture_storage_multisample_2d_array",
"GL_OES_vertex_array_object",
"GL_OES_vertex_half_float",
"GL_OES_vertex_type_10_10_10_2",
"GL_OVR_multiview",
"GL_OVR_multiview2",
"GL_WEBGL_video_texture",
]
angle_es_only_extensions = [
"GL_ANGLE_client_arrays",
"GL_ANGLE_get_serialized_context_string",
"GL_ANGLE_program_binary",
"GL_ANGLE_program_cache_control",
"GL_ANGLE_relaxed_vertex_attribute_type",
"GL_ANGLE_request_extension",
"GL_ANGLE_robust_client_memory",
"GL_ANGLE_robust_resource_initialization",
"GL_ANGLE_webgl_compatibility",
"GL_CHROMIUM_bind_generates_resource",
"GL_CHROMIUM_bind_uniform_location",
"GL_CHROMIUM_copy_compressed_texture",
"GL_CHROMIUM_copy_texture",
"GL_CHROMIUM_framebuffer_mixed_samples",
]
gles_es_only_extensions = [
"GL_ANGLE_depth_texture",
"GL_ANGLE_translated_shader_source",
"GL_EXT_debug_label",
"GL_EXT_debug_marker",
"GL_EXT_discard_framebuffer",
"GL_EXT_multisample_compatibility",
"GL_EXT_primitive_bounding_box",
"GL_EXT_robustness",
"GL_EXT_sRGB_write_control",
"GL_EXT_texture_format_sRGB_override",
"GL_EXT_texture_sRGB_decode",
"GL_KHR_blend_equation_advanced",
"GL_KHR_debug",
"GL_KHR_no_error",
"GL_KHR_robust_buffer_access_behavior",
"GL_NV_fence",
"GL_NV_robustness_video_memory_purge",
"GL_OES_depth24",
"GL_OES_depth32",
"GL_OES_depth_texture",
"GL_OES_EGL_sync",
"GL_OES_packed_depth_stencil",
"GL_OES_surfaceless_context",
]
# ES1 (Possibly the min set of extensions needed by Android)
gles1_extensions = [
"GL_OES_draw_texture",
"GL_OES_framebuffer_object",
"GL_OES_matrix_palette",
"GL_OES_point_size_array",
"GL_OES_point_sprite",
"GL_OES_query_matrix",
"GL_OES_texture_cube_map",
]
def check_sorted(name, l):
unidiff = difflib.unified_diff(l, sorted(l, key=str.casefold), 'unsorted', 'sorted')
diff_lines = list(unidiff)
assert not diff_lines, '\n\nPlease sort "%s":\n%s' % (name, '\n'.join(diff_lines))
angle_extensions = angle_requestable_extensions + angle_es_only_extensions + angle_toggleable_extensions
gles_extensions = gles_requestable_extensions + gles_es_only_extensions
supported_extensions = sorted(angle_extensions + gles1_extensions + gles_extensions)
assert len(supported_extensions) == len(set(supported_extensions)), 'Duplicates in extension list'
check_sorted('angle_requestable_extensions', angle_requestable_extensions)
check_sorted('angle_es_only_extensions', angle_es_only_extensions)
check_sorted('angle_toggleable_extensions', angle_toggleable_extensions)
check_sorted('gles_requestable_extensions', gles_requestable_extensions)
check_sorted('gles_es_only_extensions', gles_es_only_extensions)
check_sorted('gles_extensions', gles1_extensions)
supported_egl_extensions = [
"EGL_ANDROID_blob_cache",
"EGL_ANDROID_create_native_client_buffer",
@ -206,6 +322,8 @@ supported_egl_extensions = [
"EGL_NV_stream_consumer_gltexture_yuv",
]
check_sorted('supported_egl_extensions', supported_egl_extensions)
supported_cl_extensions = [
# Since OpenCL 1.1
"cl_khr_byte_addressable_store",
@ -352,7 +470,8 @@ class RegistryXML:
self.all_cmd_names.add_commands(annotation, commands)
self.commands[annotation] = commands
def _ClassifySupport(self, supported):
def _ClassifySupport(self, extension):
supported = extension.attrib['supported']
if 'gles2' in supported:
return 'gl2ext'
elif 'gles1' in supported:
@ -364,7 +483,8 @@ class RegistryXML:
elif 'cl' in supported:
return 'clext'
else:
assert False
assert False, 'Cannot classify support for %s: %s' % (extension.attrib['name'],
supported)
return 'unknown'
def AddExtensionCommands(self, supported_extensions, apis):
@ -379,7 +499,7 @@ class RegistryXML:
if not extension_name in supported_extensions:
continue
ext_annotations[extension_name] = self._ClassifySupport(extension.attrib['supported'])
ext_annotations[extension_name] = self._ClassifySupport(extension)
ext_cmd_names = []

Просмотреть файл

@ -99,6 +99,8 @@ generators = {
'src/libANGLE/renderer/gen_dxgi_support_tables.py',
'Emulated HLSL functions':
'src/compiler/translator/gen_emulated_builtin_function_tables.py',
'Extension files':
'src/libANGLE/gen_extensions.py',
'GL copy conversion table':
'src/libANGLE/gen_copy_conversion_table.py',
'GL CTS (dEQP) build files':

Просмотреть файл

@ -6,7 +6,6 @@
#include "libANGLE/Caps.h"
#include "anglebase/no_destructor.h"
#include "common/angleutils.h"
#include "common/debug.h"
@ -899,238 +898,6 @@ void Extensions::setTextureExtensionSupport(const TextureCapsMap &textureCaps)
textureStencil8OES = DetermineStencilIndex8Support(textureCaps);
}
const ExtensionInfoMap &GetExtensionInfoMap()
{
auto buildExtensionInfoMap = []() {
auto enableableExtension = [](ExtensionBool member) {
ExtensionInfo info;
info.Requestable = true;
info.ExtensionsMember = member;
return info;
};
auto enableableDisablableExtension = [&](ExtensionBool member) {
ExtensionInfo info = enableableExtension(member);
info.Disablable = true;
return info;
};
auto esOnlyExtension = [](ExtensionBool member) {
ExtensionInfo info;
info.ExtensionsMember = member;
return info;
};
// clang-format off
ExtensionInfoMap map;
map["GL_OES_element_index_uint"] = enableableExtension(&Extensions::elementIndexUintOES);
map["GL_OES_packed_depth_stencil"] = esOnlyExtension(&Extensions::packedDepthStencilOES);
map["GL_OES_get_program_binary"] = enableableExtension(&Extensions::getProgramBinaryOES);
map["GL_OES_rgb8_rgba8"] = enableableExtension(&Extensions::rgb8Rgba8OES);
map["GL_NV_read_depth"] = enableableExtension(&Extensions::readDepthNV);
map["GL_NV_read_stencil"] = enableableExtension(&Extensions::readStencilNV);
map["GL_NV_depth_buffer_float2"] = enableableExtension(&Extensions::depthBufferFloat2NV);
map["GL_EXT_texture_format_BGRA8888"] = enableableExtension(&Extensions::textureFormatBGRA8888EXT);
map["GL_EXT_texture_type_2_10_10_10_REV"] = enableableExtension(&Extensions::textureType2101010REVEXT);
map["GL_EXT_read_format_bgra"] = enableableExtension(&Extensions::readFormatBgraEXT);
map["GL_NV_pixel_buffer_object"] = enableableExtension(&Extensions::pixelBufferObjectNV);
map["GL_ARB_sync"] = enableableExtension(&Extensions::syncARB);
map["GL_OES_mapbuffer"] = enableableExtension(&Extensions::mapbufferOES);
map["GL_EXT_map_buffer_range"] = enableableExtension(&Extensions::mapBufferRangeEXT);
map["GL_EXT_color_buffer_half_float"] = enableableExtension(&Extensions::colorBufferHalfFloatEXT);
map["GL_OES_texture_half_float"] = enableableExtension(&Extensions::textureHalfFloatOES);
map["GL_OES_texture_half_float_linear"] = enableableExtension(&Extensions::textureHalfFloatLinearOES);
map["GL_OES_texture_float"] = enableableExtension(&Extensions::textureFloatOES);
map["GL_OES_texture_float_linear"] = enableableExtension(&Extensions::textureFloatLinearOES);
map["GL_EXT_texture_rg"] = enableableExtension(&Extensions::textureRgEXT);
map["GL_EXT_texture_compression_dxt1"] = enableableExtension(&Extensions::textureCompressionDxt1EXT);
map["GL_ANGLE_texture_compression_dxt3"] = enableableExtension(&Extensions::textureCompressionDxt3ANGLE);
map["GL_ANGLE_texture_compression_dxt5"] = enableableExtension(&Extensions::textureCompressionDxt5ANGLE);
map["GL_EXT_texture_compression_s3tc_srgb"] = enableableExtension(&Extensions::textureCompressionS3tcSrgbEXT);
map["GL_KHR_texture_compression_astc_ldr"] = enableableExtension(&Extensions::textureCompressionAstcLdrKHR);
map["GL_KHR_texture_compression_astc_hdr"] = enableableExtension(&Extensions::textureCompressionAstcHdrKHR);
map["GL_KHR_texture_compression_astc_sliced_3d"] = enableableExtension(&Extensions::textureCompressionAstcSliced3dKHR);
map["GL_OES_texture_compression_astc"] = enableableExtension(&Extensions::textureCompressionAstcOES);
map["GL_EXT_texture_compression_bptc"] = enableableExtension(&Extensions::textureCompressionBptcEXT);
map["GL_EXT_texture_compression_rgtc"] = enableableExtension(&Extensions::textureCompressionRgtcEXT);
map["GL_OES_compressed_ETC1_RGB8_texture"] = enableableExtension(&Extensions::compressedETC1RGB8TextureOES);
map["GL_EXT_compressed_ETC1_RGB8_sub_texture"] = enableableExtension(&Extensions::compressedETC1RGB8SubTextureEXT);
map["GL_OES_compressed_ETC2_RGB8_texture"] = enableableExtension(&Extensions::compressedETC2RGB8TextureOES);
map["GL_OES_compressed_ETC2_sRGB8_texture"] = enableableExtension(&Extensions::compressedETC2SRGB8TextureOES);
map["GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture"] = enableableExtension(&Extensions::compressedETC2PunchthroughARGBA8TextureOES);
map["GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture"] = enableableExtension(&Extensions::compressedETC2PunchthroughASRGB8AlphaTextureOES);
map["GL_OES_compressed_ETC2_RGBA8_texture"] = enableableExtension(&Extensions::compressedETC2RGBA8TextureOES);
map["GL_OES_compressed_ETC2_sRGB8_alpha8_texture"] = enableableExtension(&Extensions::compressedETC2SRGB8Alpha8TextureOES);
map["GL_OES_compressed_EAC_R11_unsigned_texture"] = enableableExtension(&Extensions::compressedEACR11UnsignedTextureOES);
map["GL_OES_compressed_EAC_R11_signed_texture"] = enableableExtension(&Extensions::compressedEACR11SignedTextureOES);
map["GL_OES_compressed_EAC_RG11_unsigned_texture"] = enableableExtension(&Extensions::compressedEACRG11UnsignedTextureOES);
map["GL_OES_compressed_EAC_RG11_signed_texture"] = enableableExtension(&Extensions::compressedEACRG11SignedTextureOES);
map["GL_ANGLE_compressed_texture_etc"] = enableableExtension(&Extensions::compressedTextureEtcANGLE);
map["GL_IMG_texture_compression_pvrtc"] = enableableExtension(&Extensions::textureCompressionPvrtcIMG);
map["GL_EXT_pvrtc_sRGB"] = enableableExtension(&Extensions::pvrtcSRGBEXT);
map["GL_EXT_sRGB"] = enableableExtension(&Extensions::sRGBEXT);
map["GL_EXT_texture_sRGB_R8"] = enableableExtension(&Extensions::textureSRGBR8EXT);
map["GL_EXT_texture_sRGB_RG8"] = enableableExtension(&Extensions::textureSRGBRG8EXT);
map["GL_ANGLE_depth_texture"] = esOnlyExtension(&Extensions::depthTextureANGLE);
map["GL_OES_depth_texture"] = esOnlyExtension(&Extensions::depthTextureOES);
map["GL_OES_depth_texture_cube_map"] = enableableExtension(&Extensions::depthTextureCubeMapOES);
map["GL_OES_depth24"] = esOnlyExtension(&Extensions::depth24OES);
map["GL_OES_depth32"] = esOnlyExtension(&Extensions::depth32OES);
map["GL_OES_texture_3D"] = enableableExtension(&Extensions::texture3DOES);
map["GL_EXT_texture_storage"] = enableableExtension(&Extensions::textureStorageEXT);
map["GL_OES_texture_npot"] = enableableExtension(&Extensions::textureNpotOES);
map["GL_EXT_draw_buffers"] = enableableExtension(&Extensions::drawBuffersEXT);
map["GL_EXT_draw_buffers_indexed"] = enableableExtension(&Extensions::drawBuffersIndexedEXT);
map["GL_OES_draw_buffers_indexed"] = enableableExtension(&Extensions::drawBuffersIndexedOES);
map["GL_EXT_texture_filter_anisotropic"] = enableableExtension(&Extensions::textureFilterAnisotropicEXT);
map["GL_EXT_occlusion_query_boolean"] = enableableExtension(&Extensions::occlusionQueryBooleanEXT);
map["GL_NV_fence"] = esOnlyExtension(&Extensions::fenceNV);
map["GL_EXT_disjoint_timer_query"] = enableableExtension(&Extensions::disjointTimerQueryEXT);
map["GL_EXT_robustness"] = esOnlyExtension(&Extensions::robustnessEXT);
map["GL_KHR_robust_buffer_access_behavior"] = esOnlyExtension(&Extensions::robustBufferAccessBehaviorKHR);
map["GL_EXT_blend_minmax"] = enableableExtension(&Extensions::blendMinmaxEXT);
map["GL_ANGLE_framebuffer_blit"] = enableableExtension(&Extensions::framebufferBlitANGLE);
map["GL_NV_framebuffer_blit"] = enableableExtension(&Extensions::framebufferBlitNV);
map["GL_ANGLE_framebuffer_multisample"] = enableableExtension(&Extensions::framebufferMultisampleANGLE);
map["GL_EXT_multisampled_render_to_texture"] = enableableExtension(&Extensions::multisampledRenderToTextureEXT);
map["GL_EXT_multisampled_render_to_texture2"] = enableableExtension(&Extensions::multisampledRenderToTexture2EXT);
map["GL_ANGLE_instanced_arrays"] = enableableExtension(&Extensions::instancedArraysANGLE);
map["GL_EXT_instanced_arrays"] = enableableExtension(&Extensions::instancedArraysEXT);
map["GL_ANGLE_pack_reverse_row_order"] = enableableExtension(&Extensions::packReverseRowOrderANGLE);
map["GL_OES_standard_derivatives"] = enableableExtension(&Extensions::standardDerivativesOES);
map["GL_EXT_shader_texture_lod"] = enableableExtension(&Extensions::shaderTextureLodEXT);
map["GL_EXT_frag_depth"] = enableableExtension(&Extensions::fragDepthEXT);
map["GL_OVR_multiview"] = enableableExtension(&Extensions::multiviewOVR);
map["GL_OVR_multiview2"] = enableableExtension(&Extensions::multiview2OVR);
map["GL_ANGLE_texture_usage"] = enableableExtension(&Extensions::textureUsageANGLE);
map["GL_ANGLE_translated_shader_source"] = esOnlyExtension(&Extensions::translatedShaderSourceANGLE);
map["GL_OES_fbo_render_mipmap"] = enableableExtension(&Extensions::fboRenderMipmapOES);
map["GL_EXT_discard_framebuffer"] = esOnlyExtension(&Extensions::discardFramebufferEXT);
map["GL_EXT_debug_label"] = esOnlyExtension(&Extensions::debugLabelEXT);
map["GL_EXT_debug_marker"] = esOnlyExtension(&Extensions::debugMarkerEXT);
map["GL_OES_EGL_image"] = enableableExtension(&Extensions::EGLImageOES);
map["GL_OES_EGL_image_external"] = enableableExtension(&Extensions::EGLImageExternalOES);
map["GL_OES_EGL_image_external_essl3"] = enableableExtension(&Extensions::EGLImageExternalEssl3OES);
map["GL_EXT_EGL_image_external_wrap_modes"] = enableableExtension(&Extensions::EGLImageExternalWrapModesEXT);
map["GL_OES_EGL_sync"] = esOnlyExtension(&Extensions::EGLSyncOES);
map["GL_EXT_memory_object"] = enableableExtension(&Extensions::memoryObjectEXT);
map["GL_EXT_memory_object_fd"] = enableableExtension(&Extensions::memoryObjectFdEXT);
map["GL_ANGLE_memory_object_flags"] = enableableExtension(&Extensions::memoryObjectFlagsANGLE);
map["GL_ANGLE_memory_object_fuchsia"] = enableableExtension(&Extensions::memoryObjectFuchsiaANGLE);
map["GL_EXT_semaphore"] = enableableExtension(&Extensions::semaphoreEXT);
map["GL_EXT_semaphore_fd"] = enableableExtension(&Extensions::semaphoreFdEXT);
map["GL_NV_EGL_stream_consumer_external"] = enableableExtension(&Extensions::EGLStreamConsumerExternalNV);
map["GL_NV_shader_noperspective_interpolation"] = enableableExtension(&Extensions::shaderNoperspectiveInterpolationNV);
map["GL_ANGLE_semaphore_fuchsia"] = enableableExtension(&Extensions::semaphoreFuchsiaANGLE);
map["GL_EXT_unpack_subimage"] = enableableExtension(&Extensions::unpackSubimageEXT);
map["GL_NV_pack_subimage"] = enableableExtension(&Extensions::packSubimageNV);
map["GL_EXT_color_buffer_float"] = enableableExtension(&Extensions::colorBufferFloatEXT);
map["GL_OES_vertex_half_float"] = enableableExtension(&Extensions::vertexHalfFloatOES);
map["GL_OES_vertex_array_object"] = enableableExtension(&Extensions::vertexArrayObjectOES);
map["GL_OES_vertex_type_10_10_10_2"] = enableableExtension(&Extensions::vertexType1010102OES);
map["GL_KHR_debug"] = esOnlyExtension(&Extensions::debugKHR);
map["GL_OES_texture_border_clamp"] = enableableExtension(&Extensions::textureBorderClampOES);
map["GL_EXT_texture_border_clamp"] = enableableExtension(&Extensions::textureBorderClampEXT);
map["GL_KHR_no_error"] = esOnlyExtension(&Extensions::noErrorKHR);
map["GL_ANGLE_lossy_etc_decode"] = enableableExtension(&Extensions::lossyEtcDecodeANGLE);
map["GL_CHROMIUM_bind_uniform_location"] = esOnlyExtension(&Extensions::bindUniformLocationCHROMIUM);
map["GL_CHROMIUM_sync_query"] = enableableExtension(&Extensions::syncQueryCHROMIUM);
map["GL_CHROMIUM_copy_texture"] = esOnlyExtension(&Extensions::copyTextureCHROMIUM);
map["GL_CHROMIUM_copy_compressed_texture"] = esOnlyExtension(&Extensions::copyCompressedTextureCHROMIUM);
map["GL_ANGLE_copy_texture_3d"] = enableableExtension(&Extensions::copyTexture3dANGLE);
map["GL_ANGLE_webgl_compatibility"] = esOnlyExtension(&Extensions::webglCompatibilityANGLE);
map["GL_ANGLE_request_extension"] = esOnlyExtension(&Extensions::requestExtensionANGLE);
map["GL_CHROMIUM_bind_generates_resource"] = esOnlyExtension(&Extensions::bindGeneratesResourceCHROMIUM);
map["GL_ANGLE_robust_client_memory"] = esOnlyExtension(&Extensions::robustClientMemoryANGLE);
map["GL_EXT_texture_sRGB_decode"] = esOnlyExtension(&Extensions::textureSRGBDecodeEXT);
map["GL_EXT_texture_format_sRGB_override"] = esOnlyExtension(&Extensions::textureFormatSRGBOverrideEXT);
map["GL_EXT_sRGB_write_control"] = esOnlyExtension(&Extensions::sRGBWriteControlEXT);
map["GL_CHROMIUM_color_buffer_float_rgb"] = enableableExtension(&Extensions::colorBufferFloatRgbCHROMIUM);
map["GL_CHROMIUM_color_buffer_float_rgba"] = enableableExtension(&Extensions::colorBufferFloatRgbaCHROMIUM);
map["GL_EXT_multisample_compatibility"] = esOnlyExtension(&Extensions::multisampleCompatibilityEXT);
map["GL_CHROMIUM_framebuffer_mixed_samples"] = esOnlyExtension(&Extensions::framebufferMixedSamplesCHROMIUM);
map["GL_EXT_texture_norm16"] = enableableExtension(&Extensions::textureNorm16EXT);
map["GL_OES_surfaceless_context"] = esOnlyExtension(&Extensions::surfacelessContextOES);
map["GL_ANGLE_client_arrays"] = esOnlyExtension(&Extensions::clientArraysANGLE);
map["GL_ANGLE_robust_resource_initialization"] = esOnlyExtension(&Extensions::robustResourceInitializationANGLE);
map["GL_ANGLE_program_cache_control"] = esOnlyExtension(&Extensions::programCacheControlANGLE);
map["GL_ANGLE_texture_rectangle"] = enableableDisablableExtension(&Extensions::textureRectangleANGLE);
map["GL_EXT_geometry_shader"] = enableableExtension(&Extensions::geometryShaderEXT);
map["GL_OES_geometry_shader"] = enableableExtension(&Extensions::geometryShaderOES);
map["GL_KHR_parallel_shader_compile"] = enableableExtension(&Extensions::parallelShaderCompileKHR);
map["GL_EXT_separate_shader_objects"] = enableableExtension(&Extensions::separateShaderObjectsEXT);
map["GL_OES_texture_storage_multisample_2d_array"] = enableableExtension(&Extensions::textureStorageMultisample2dArrayOES);
map["GL_ANGLE_multiview_multisample"] = enableableExtension(&Extensions::multiviewMultisampleANGLE);
map["GL_KHR_blend_equation_advanced"] = esOnlyExtension(&Extensions::blendEquationAdvancedKHR);
map["GL_EXT_blend_func_extended"] = enableableExtension(&Extensions::blendFuncExtendedEXT);
map["GL_EXT_float_blend"] = enableableExtension(&Extensions::floatBlendEXT);
map["GL_ANGLE_texture_multisample"] = enableableExtension(&Extensions::textureMultisampleANGLE);
map["GL_ANGLE_multi_draw"] = enableableExtension(&Extensions::multiDrawANGLE);
map["GL_ANGLE_provoking_vertex"] = enableableExtension(&Extensions::provokingVertexANGLE);
map["GL_CHROMIUM_texture_filtering_hint"] = enableableExtension(&Extensions::textureFilteringHintCHROMIUM);
map["GL_CHROMIUM_lose_context"] = enableableExtension(&Extensions::loseContextCHROMIUM);
map["GL_ANGLE_texture_external_update"] = enableableExtension(&Extensions::textureExternalUpdateANGLE);
map["GL_ANGLE_base_vertex_base_instance"] = enableableExtension(&Extensions::baseVertexBaseInstanceANGLE);
map["GL_ANGLE_get_image"] = enableableExtension(&Extensions::getImageANGLE);
map["GL_OES_draw_elements_base_vertex"] = enableableExtension(&Extensions::drawElementsBaseVertexOES);
map["GL_EXT_draw_elements_base_vertex"] = enableableExtension(&Extensions::drawElementsBaseVertexEXT);
map["GL_EXT_gpu_shader5"] = enableableExtension(&Extensions::gpuShader5EXT);
map["GL_APPLE_clip_distance"] = enableableExtension(&Extensions::clipDistanceAPPLE);
map["GL_EXT_clip_control"] = enableableExtension(&Extensions::clipControlEXT);
map["GL_EXT_EGL_image_array"] = enableableExtension(&Extensions::EGLImageArrayEXT);
map["GL_EXT_EGL_image_storage"] = enableableExtension(&Extensions::EGLImageStorageEXT);
map["GL_EXT_buffer_storage"] = enableableExtension(&Extensions::bufferStorageEXT);
map["GL_EXT_external_buffer"] = enableableExtension(&Extensions::externalBufferEXT);
map["GL_OES_texture_stencil8"] = enableableExtension(&Extensions::textureStencil8OES);
map["GL_OES_sample_shading"] = enableableExtension(&Extensions::sampleShadingOES);
map["GL_OES_shader_multisample_interpolation"] = enableableExtension(&Extensions::shaderMultisampleInterpolationOES);
map["GL_OES_shader_image_atomic"] = enableableExtension(&Extensions::shaderImageAtomicOES);
map["GL_OES_sample_variables"] = enableableExtension(&Extensions::sampleVariablesOES);
map["GL_EXT_shader_framebuffer_fetch_non_coherent"] = enableableExtension(&Extensions::shaderFramebufferFetchNonCoherentEXT);
map["GL_NV_robustness_video_memory_purge"] = esOnlyExtension(&Extensions::robustnessVideoMemoryPurgeNV);
map["GL_ANGLE_get_tex_level_parameter"] = enableableExtension(&Extensions::getTexLevelParameterANGLE);
map["GL_EXT_copy_image"] = enableableExtension(&Extensions::copyImageEXT);
map["GL_OES_texture_buffer"] = enableableExtension(&Extensions::textureBufferOES);
map["GL_EXT_texture_buffer"] = enableableExtension(&Extensions::textureBufferEXT);
map["GL_EXT_YUV_target"] = enableableExtension(&Extensions::YUVTargetEXT);
map["GL_OES_shader_io_blocks"] = enableableExtension(&Extensions::shaderIoBlocksOES);
map["GL_EXT_shader_io_blocks"] = enableableExtension(&Extensions::shaderIoBlocksEXT);
map["GL_EXT_clip_cull_distance"] = enableableExtension(&Extensions::clipCullDistanceEXT);
map["GL_ANGLE_get_serialized_context_string"] = esOnlyExtension(&Extensions::getSerializedContextStringANGLE);
map["GL_EXT_primitive_bounding_box"] = esOnlyExtension(&Extensions::primitiveBoundingBoxEXT);
map["GL_ANGLE_relaxed_vertex_attribute_type"] = esOnlyExtension(&Extensions::relaxedVertexAttributeTypeANGLE);
map["GL_ANGLE_yuv_internal_format"] = enableableExtension(&Extensions::yuvInternalFormatANGLE);
map["GL_EXT_protected_textures"] = enableableExtension(&Extensions::protectedTexturesEXT);
// GLES1 extensions
map["GL_OES_point_size_array"] = enableableExtension(&Extensions::pointSizeArrayOES);
map["GL_OES_texture_cube_map"] = enableableExtension(&Extensions::textureCubeMapOES);
map["GL_OES_point_sprite"] = enableableExtension(&Extensions::pointSpriteOES);
map["GL_OES_draw_texture"] = enableableExtension(&Extensions::drawTextureOES);
map["GL_OES_framebuffer_object"] = enableableExtension(&Extensions::framebufferObjectOES);
map["GL_ANGLE_memory_size"] = enableableExtension(&Extensions::memorySizeANGLE);
map["GL_EXT_shader_non_constant_global_initializers"] = enableableExtension(&Extensions::shaderNonConstantGlobalInitializersEXT);
map["GL_WEBGL_video_texture"] = enableableExtension(&Extensions::videoTextureWEBGL);
map["GL_OES_texture_cube_map_array"] = enableableExtension(&Extensions::textureCubeMapArrayOES);
map["GL_EXT_texture_cube_map_array"] = enableableExtension(&Extensions::textureCubeMapArrayEXT);
map["GL_EXT_shadow_samplers"] = enableableExtension(&Extensions::shadowSamplersEXT);
map["GL_EXT_tessellation_shader"] = enableableExtension(&Extensions::tessellationShaderEXT);
// clang-format on
#if defined(ANGLE_ENABLE_ASSERTS)
// Verify all extension strings start with GL_
for (const auto &extension : map)
{
ASSERT(extension.first.rfind("GL_", 0) == 0);
}
#endif
return map;
};
static const angle::base::NoDestructor<ExtensionInfoMap> extensionInfo(buildExtensionInfoMap());
return *extensionInfo;
}
TypePrecision::TypePrecision() = default;
TypePrecision::TypePrecision(const TypePrecision &other) = default;

Просмотреть файл

@ -10,6 +10,7 @@
#include "angle_gl.h"
#include "libANGLE/Version.h"
#include "libANGLE/angletypes.h"
#include "libANGLE/gles_extensions_autogen.h"
#include "libANGLE/renderer/Format.h"
#include <array>
@ -20,9 +21,6 @@
namespace gl
{
struct Extensions;
struct TextureCaps
{
TextureCaps();
@ -92,654 +90,6 @@ void InitMinimumTextureCapsMap(const Version &clientVersion,
// present. Does not determine if they are natively supported without decompression.
bool DetermineCompressedTextureETCSupport(const TextureCapsMap &textureCaps);
struct Extensions
{
Extensions();
Extensions(const Extensions &other);
Extensions &operator=(const Extensions &other);
// Generate a vector of supported extension strings
std::vector<std::string> getStrings() const;
// Set all texture related extension support based on the supported textures.
// Determines support for:
// GL_OES_packed_depth_stencil
// GL_OES_rgb8_rgba8
// GL_EXT_texture_format_BGRA8888
// GL_EXT_color_buffer_half_float,
// GL_OES_texture_half_float, GL_OES_texture_half_float_linear
// GL_OES_texture_float, GL_OES_texture_float_linear
// GL_EXT_texture_rg
// GL_EXT_texture_type_2_10_10_10_REV
// GL_EXT_texture_compression_dxt1, GL_ANGLE_texture_compression_dxt3,
// GL_ANGLE_texture_compression_dxt5
// GL_KHR_texture_compression_astc_ldr, GL_OES_texture_compression_astc.
// NOTE: GL_KHR_texture_compression_astc_hdr must be enabled separately. Support for the
// HDR profile cannot be determined from the format enums alone.
// GL_OES_compressed_ETC1_RGB8_texture
// GL_EXT_sRGB
// GL_ANGLE_depth_texture, GL_OES_depth32
// GL_EXT_color_buffer_float
// GL_EXT_texture_norm16
// GL_EXT_texture_compression_bptc
// GL_EXT_texture_compression_rgtc
void setTextureExtensionSupport(const TextureCapsMap &textureCaps);
// indicate if any depth texture extension is available
bool depthTextureAny() const { return (depthTextureANGLE || depthTextureOES); }
// ES2 Extension support
// GL_OES_element_index_uint
bool elementIndexUintOES = false;
// GL_OES_packed_depth_stencil
bool packedDepthStencilOES = false;
// GL_NV_read_depth
bool readDepthNV = false;
// GL_NV_read_stencil
bool readStencilNV = false;
// GL_NV_depth_buffer_float2
bool depthBufferFloat2NV = false;
// GL_OES_get_program_binary
bool getProgramBinaryOES = false;
// GL_OES_rgb8_rgba8
// Implies that TextureCaps for GL_RGB8 and GL_RGBA8 exist
bool rgb8Rgba8OES = false;
// GL_EXT_texture_format_BGRA8888
// Implies that TextureCaps for GL_BGRA8 exist
bool textureFormatBGRA8888EXT = false;
// GL_EXT_read_format_bgra
bool readFormatBgraEXT = false;
// GL_NV_pixel_buffer_object
bool pixelBufferObjectNV = false;
// GL_ARB_sync
bool syncARB = false;
// GL_OES_mapbuffer and GL_EXT_map_buffer_range
bool mapbufferOES = false;
bool mapBufferRangeEXT = false;
// GL_EXT_color_buffer_half_float
// Together with GL_OES_texture_half_float in a GLES 2.0 context, implies that half-float
// textures are renderable.
bool colorBufferHalfFloatEXT = false;
// GL_OES_texture_half_float and GL_OES_texture_half_float_linear
// Implies that TextureCaps for GL_RGB16F, GL_RGBA16F, GL_ALPHA32F_EXT, GL_LUMINANCE32F_EXT and
// GL_LUMINANCE_ALPHA32F_EXT exist
bool textureHalfFloatOES = false;
bool textureHalfFloatLinearOES = false;
// GL_OES_texture_float and GL_OES_texture_float_linear
// Implies that TextureCaps for GL_RGB32F, GL_RGBA32F, GL_ALPHA16F_EXT, GL_LUMINANCE16F_EXT and
// GL_LUMINANCE_ALPHA16F_EXT exist
bool textureFloatOES = false;
bool textureFloatLinearOES = false;
// GL_EXT_texture_rg
// Implies that TextureCaps for GL_R8, GL_RG8 (and floating point R/RG texture formats if
// floating point extensions are also present) exist
bool textureRgEXT = false;
// GL_EXT_texture_type_2_10_10_10_REV
bool textureType2101010REVEXT = false;
// GL_EXT_texture_compression_dxt1, GL_ANGLE_texture_compression_dxt3 and
// GL_ANGLE_texture_compression_dxt5 Implies that TextureCaps exist for
// GL_COMPRESSED_RGB_S3TC_DXT1_EXT, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
// GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE and GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE
bool textureCompressionDxt1EXT = false;
bool textureCompressionDxt3ANGLE = false;
bool textureCompressionDxt5ANGLE = false;
// GL_EXT_texture_compression_s3tc_srgb
// Implies that TextureCaps exist for GL_COMPRESSED_SRGB_S3TC_DXT1_EXT,
// GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT, and
// GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
bool textureCompressionS3tcSrgbEXT = false;
// GL_KHR_texture_compression_astc_ldr
bool textureCompressionAstcLdrKHR = false;
// GL_KHR_texture_compression_astc_hdr
bool textureCompressionAstcHdrKHR = false;
// GL_OES_texture_compression_astc
bool textureCompressionAstcOES = false;
// GL_KHR_texture_compression_astc_sliced_3d
bool textureCompressionAstcSliced3dKHR = false;
// GL_EXT_texture_compression_bptc
bool textureCompressionBptcEXT = false;
// GL_EXT_texture_compression_rgtc
bool textureCompressionRgtcEXT = false;
// GL_OES_compressed_ETC1_RGB8_texture
// Implies that TextureCaps for GL_ETC1_RGB8_OES exist
bool compressedETC1RGB8TextureOES = false;
// GL_EXT_compressed_ETC1_RGB8_sub_texture
bool compressedETC1RGB8SubTextureEXT = false;
// OES_compressed_ETC2_RGB8_texture
bool compressedETC2RGB8TextureOES = false;
// OES_compressed_ETC2_sRGB8_texture
bool compressedETC2SRGB8TextureOES = false;
// OES_compressed_ETC2_punchthroughA_RGBA8_texture
bool compressedETC2PunchthroughARGBA8TextureOES = false;
// OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture
bool compressedETC2PunchthroughASRGB8AlphaTextureOES = false;
// OES_compressed_ETC2_RGBA8_texture
bool compressedETC2RGBA8TextureOES = false;
// OES_compressed_ETC2_sRGB8_alpha8_texture
bool compressedETC2SRGB8Alpha8TextureOES = false;
// OES_compressed_EAC_R11_unsigned_texture
bool compressedEACR11UnsignedTextureOES = false;
// OES_compressed_EAC_R11_signed_texture
bool compressedEACR11SignedTextureOES = false;
// OES_compressed_EAC_RG11_unsigned_texture
bool compressedEACRG11UnsignedTextureOES = false;
// OES_compressed_EAC_RG11_signed_texture
bool compressedEACRG11SignedTextureOES = false;
// ANGLE_compressed_texture_etc
// ONLY exposed if ETC texture formats are natively supported without decompression
// Backends should enable this extension explicitly. It is not enabled with
// setTextureExtensionSupport, use DetermineCompressedTextureETCSupport to check if all of the
// individual formats required to support this extension are available.
bool compressedTextureEtcANGLE = false;
// GL_IMG_texture_compression_pvrtc
bool textureCompressionPvrtcIMG = false;
// GL_EXT_pvrtc_sRGB
bool pvrtcSRGBEXT = false;
// GL_EXT_sRGB
// Implies that TextureCaps for GL_SRGB8_ALPHA8 and GL_SRGB8 exist
// TODO: Don't advertise this extension in ES3
bool sRGBEXT = false;
// GL_EXT_texture_sRGB_R8
bool textureSRGBR8EXT = false;
// GL_EXT_texture_sRGB_RG8
bool textureSRGBRG8EXT = false;
// GL_ANGLE_depth_texture
bool depthTextureANGLE = false;
// OES_depth_texture
bool depthTextureOES = false;
// GL_OES_depth_texture_cube_map
bool depthTextureCubeMapOES = false;
// GL_OES_depth24
// Allows DEPTH_COMPONENT24_OES as a valid Renderbuffer format.
bool depth24OES = false;
// GL_OES_depth32
// Allows DEPTH_COMPONENT32_OES as a valid Renderbuffer format.
bool depth32OES = false;
// GL_OES_texture_3D
bool texture3DOES = false;
// GL_EXT_texture_storage
bool textureStorageEXT = false;
// GL_OES_texture_npot
bool textureNpotOES = false;
// GL_EXT_draw_buffers
bool drawBuffersEXT = false;
// GL_EXT_draw_buffers_indexed
bool drawBuffersIndexedEXT = false;
// GL_OES_draw_buffers_indexed
bool drawBuffersIndexedOES = false;
// Any version of the draw_buffers_indexed
bool drawBuffersIndexedAny() const { return (drawBuffersIndexedEXT || drawBuffersIndexedOES); }
// GL_EXT_texture_filter_anisotropic
bool textureFilterAnisotropicEXT = false;
// GL_EXT_occlusion_query_boolean
bool occlusionQueryBooleanEXT = false;
// GL_NV_fence
bool fenceNV = false;
// GL_EXT_disjoint_timer_query
bool disjointTimerQueryEXT = false;
// GL_EXT_robustness
bool robustnessEXT = false;
// GL_KHR_robust_buffer_access_behavior
bool robustBufferAccessBehaviorKHR = false;
// GL_EXT_blend_minmax
bool blendMinmaxEXT = false;
// GL_ANGLE_framebuffer_blit
bool framebufferBlitANGLE = false;
// GL_NV_framebuffer_blit
bool framebufferBlitNV = false;
// Any version of the framebuffer_blit extension
bool framebufferBlitAny() const { return (framebufferBlitANGLE || framebufferBlitNV); }
// GL_ANGLE_framebuffer_multisample
bool framebufferMultisampleANGLE = false;
// GL_EXT_multisampled_render_to_texture
bool multisampledRenderToTextureEXT = false;
// GL_EXT_multisampled_render_to_texture2
bool multisampledRenderToTexture2EXT = false;
// GL_ANGLE_instanced_arrays
bool instancedArraysANGLE = false;
// GL_EXT_instanced_arrays
bool instancedArraysEXT = false;
// Any version of the instanced arrays extension
bool instancedArraysAny() const { return (instancedArraysANGLE || instancedArraysEXT); }
// GL_ANGLE_pack_reverse_row_order
bool packReverseRowOrderANGLE = false;
// GL_OES_standard_derivatives
bool standardDerivativesOES = false;
// GL_EXT_shader_texture_lod
bool shaderTextureLodEXT = false;
// GL_EXT_shader_framebuffer_fetch_non_coherent
bool shaderFramebufferFetchNonCoherentEXT = false;
// GL_EXT_frag_depth
bool fragDepthEXT = false;
// OVR_multiview
bool multiviewOVR = false;
// OVR_multiview2
bool multiview2OVR = false;
// GL_ANGLE_texture_usage
bool textureUsageANGLE = false;
// GL_ANGLE_translated_shader_source
bool translatedShaderSourceANGLE = false;
// GL_OES_fbo_render_mipmap
bool fboRenderMipmapOES = false;
// GL_EXT_discard_framebuffer
bool discardFramebufferEXT = false;
// EXT_debug_marker
bool debugMarkerEXT = false;
// EXT_debug_label
bool debugLabelEXT = false;
// GL_OES_EGL_image
bool EGLImageOES = false;
// GL_OES_EGL_image_external
bool EGLImageExternalOES = false;
// GL_OES_EGL_image_external_essl3
bool EGLImageExternalEssl3OES = false;
// GL_EXT_EGL_image_external_wrap_modes
bool EGLImageExternalWrapModesEXT = false;
// GL_OES_EGL_sync
bool EGLSyncOES = false;
// GL_EXT_memory_object
bool memoryObjectEXT = false;
// GL_EXT_memory_object_fd
bool memoryObjectFdEXT = false;
// GL_ANGLE_memory_object_flags
bool memoryObjectFlagsANGLE = false;
// GL_ANGLE_memory_object_fuchsia
bool memoryObjectFuchsiaANGLE = false;
// GL_EXT_semaphore
bool semaphoreEXT = false;
// GL_EXT_semaphore_fd
bool semaphoreFdEXT = false;
// GL_ANGLE_semaphore_fuchsia
bool semaphoreFuchsiaANGLE = false;
// NV_EGL_stream_consumer_external
bool EGLStreamConsumerExternalNV = false;
// EXT_unpack_subimage
bool unpackSubimageEXT = false;
// NV_pack_subimage
bool packSubimageNV = false;
// GL_NV_shader_noperspective_interpolation
bool shaderNoperspectiveInterpolationNV = false;
// GL_OES_vertex_half_float
bool vertexHalfFloatOES = false;
// GL_OES_vertex_array_object
bool vertexArrayObjectOES = false;
// GL_OES_vertex_type_10_10_10_2
bool vertexType1010102OES = false;
// GL_KHR_debug
bool debugKHR = false;
// KHR_no_error
bool noErrorKHR = false;
// GL_ANGLE_lossy_etc_decode
bool lossyEtcDecodeANGLE = false;
// GL_CHROMIUM_bind_uniform_location
bool bindUniformLocationCHROMIUM = false;
// GL_CHROMIUM_sync_query
bool syncQueryCHROMIUM = false;
// GL_CHROMIUM_copy_texture
bool copyTextureCHROMIUM = false;
// GL_CHROMIUM_copy_compressed_texture
bool copyCompressedTextureCHROMIUM = false;
// GL_ANGLE_copy_texture_3d
bool copyTexture3dANGLE = false;
// GL_ANGLE_webgl_compatibility
bool webglCompatibilityANGLE = false;
// GL_ANGLE_request_extension
bool requestExtensionANGLE = false;
// GL_CHROMIUM_bind_generates_resource
bool bindGeneratesResourceCHROMIUM = false;
// GL_ANGLE_robust_client_memory
bool robustClientMemoryANGLE = false;
// GL_OES_texture_border_clamp
bool textureBorderClampOES = false;
// GL_EXT_texture_border_clamp
bool textureBorderClampEXT = false;
// Any version of the texture border clamp extension
bool textureBorderClampAny() const { return (textureBorderClampOES || textureBorderClampEXT); }
// GL_EXT_texture_sRGB_decode
bool textureSRGBDecodeEXT = false;
// GL_EXT_texture_format_sRGB_override
bool textureFormatSRGBOverrideEXT = false;
// GL_EXT_sRGB_write_control
bool sRGBWriteControlEXT = false;
// GL_CHROMIUM_color_buffer_float_rgb
bool colorBufferFloatRgbCHROMIUM = false;
// GL_CHROMIUM_color_buffer_float_rgba
bool colorBufferFloatRgbaCHROMIUM = false;
// GL_EXT_EGL_image_array
bool EGLImageArrayEXT = false;
// ES3 Extension support
// GL_EXT_color_buffer_float
bool colorBufferFloatEXT = false;
// GL_EXT_multisample_compatibility.
// written against ES 3.1 but can apply to earlier versions.
bool multisampleCompatibilityEXT = false;
// GL_CHROMIUM_framebuffer_mixed_samples
bool framebufferMixedSamplesCHROMIUM = false;
// GL_EXT_texture_norm16
// written against ES 3.1 but can apply to ES 3.0 as well.
bool textureNorm16EXT = false;
// GL_OES_surfaceless_context
bool surfacelessContextOES = false;
// GL_ANGLE_client_arrays
bool clientArraysANGLE = false;
// GL_ANGLE_robust_resource_initialization
bool robustResourceInitializationANGLE = false;
// GL_ANGLE_program_cache_control
bool programCacheControlANGLE = false;
// GL_ANGLE_texture_rectangle
bool textureRectangleANGLE = false;
// GL_EXT_geometry_shader
bool geometryShaderEXT = false;
// GL_OES_geometry_shader
bool geometryShaderOES = false;
// Any version of the geometry shader extension
bool geometryShaderAny() const { return (geometryShaderEXT || geometryShaderOES); }
// GLES1 emulation: GLES1 extensions
// GL_OES_point_size_array
bool pointSizeArrayOES = false;
// GL_OES_texture_cube_map
bool textureCubeMapOES = false;
// GL_OES_point_sprite
bool pointSpriteOES = false;
// GL_OES_draw_texture
bool drawTextureOES = false;
// GL_OES_framebuffer_object
bool framebufferObjectOES = false;
// GL_KHR_parallel_shader_compile
bool parallelShaderCompileKHR = false;
// GL_EXT_separate_shader_objects
bool separateShaderObjectsEXT = false;
// GL_OES_texture_storage_multisample_2d_array
bool textureStorageMultisample2dArrayOES = false;
// GL_ANGLE_multiview_multisample
bool multiviewMultisampleANGLE = false;
// GL_KHR_blend_equation_advanced
bool blendEquationAdvancedKHR = false;
// GL_EXT_blend_func_extended
bool blendFuncExtendedEXT = false;
// GL_EXT_float_blend
bool floatBlendEXT = false;
// GL_ANGLE_memory_size
bool memorySizeANGLE = false;
// GL_ANGLE_texture_multisample
bool textureMultisampleANGLE = false;
// GL_ANGLE_multi_draw
bool multiDrawANGLE = false;
// GL_ANGLE_provoking_vertex
bool provokingVertexANGLE = false;
// GL_CHROMIUM_texture_filtering_hint
bool textureFilteringHintCHROMIUM = false;
// GL_CHROMIUM_lose_context
bool loseContextCHROMIUM = false;
// GL_ANGLE_texture_external_update
bool textureExternalUpdateANGLE = false;
// GL_ANGLE_base_vertex_base_instance
bool baseVertexBaseInstanceANGLE = false;
// GL_ANGLE_get_image
bool getImageANGLE = false;
// GL_OES_draw_elements_base_vertex
bool drawElementsBaseVertexOES = false;
// GL_EXT_draw_elements_base_vertex
bool drawElementsBaseVertexEXT = false;
// Any version of the base vertex extension
bool drawElementsBaseVertexAny() const
{
return (drawElementsBaseVertexOES || drawElementsBaseVertexEXT);
}
// GL_EXT_shader_non_constant_global_initializers
bool shaderNonConstantGlobalInitializersEXT = false;
// GL_OES_shader_io_blocks
bool shaderIoBlocksOES = false;
// GL_EXT_shader_io_blocks
bool shaderIoBlocksEXT = false;
// Any version of shader io block extension
bool shaderIoBlocksAny() const { return (shaderIoBlocksOES || shaderIoBlocksEXT); }
// GL_EXT_gpu_shader5
bool gpuShader5EXT = false;
// WEBGL_video_texture
bool videoTextureWEBGL = false;
// GL_APPLE_clip_distance
bool clipDistanceAPPLE = false;
// GL_EXT_clip_control
bool clipControlEXT = false;
// GL_OES_texture_cube_map_array
bool textureCubeMapArrayOES = false;
// GL_EXT_texture_cube_map_array
bool textureCubeMapArrayEXT = false;
// Any version of the texture cube map array extension
bool textureCubeMapArrayAny() const
{
return (textureCubeMapArrayOES || textureCubeMapArrayEXT);
}
// GL_EXT_shadow_samplers
bool shadowSamplersEXT = false;
// GL_EXT_buffer_storage
bool bufferStorageEXT = false;
// GL_EXT_external_buffer
bool externalBufferEXT = false;
// GL_OES_texture_stencil8
bool textureStencil8OES = false;
// GL_OES_sample_shading
bool sampleShadingOES = false;
// OES_shader_multisample_interpolation
bool shaderMultisampleInterpolationOES = false;
// GL_OES_shader_image_atomic
bool shaderImageAtomicOES = false;
// GL_OES_sample_variables
bool sampleVariablesOES = false;
// GL_NV_robustness_video_memory_purge
bool robustnessVideoMemoryPurgeNV = false;
// GL_ANGLE_get_tex_level_parameter
bool getTexLevelParameterANGLE = false;
// GL_EXT_tessellation_shader
bool tessellationShaderEXT = false;
// GL_EXT_copy_image
bool copyImageEXT = false;
// GL_OES_texture_buffer
bool textureBufferOES = false;
// GL_EXT_texture_buffer
bool textureBufferEXT = false;
// Any version of the texture buffer extension
bool textureBufferAny() const { return (textureBufferOES || textureBufferEXT); }
// GL_EXT_YUV_target
bool YUVTargetEXT = false;
// GL_EXT_clip_cull_distance
bool clipCullDistanceEXT = false;
// GL_ANGLE_get_serialized_context_string
bool getSerializedContextStringANGLE = false;
// GL_EXT_primitive_bounding_box
bool primitiveBoundingBoxEXT = false;
// GL_ANGLE_relaxed_vertex_attribute_type
bool relaxedVertexAttributeTypeANGLE = false;
// GL_ANGLE_yuv_internal_format
bool yuvInternalFormatANGLE = false;
// GL_EXT_protected_textures
bool protectedTexturesEXT = false;
// GL_EXT_EGL_image_storage
bool EGLImageStorageEXT = false;
};
// Pointer to a boolean member of the Extensions struct
using ExtensionBool = bool Extensions::*;

Просмотреть файл

@ -31,6 +31,7 @@
void weightPointer(GLint size, GLenum type, GLsizei stride, const void *pointer); \
/* GL_OES_point_size_array */ \
void pointSizePointer(VertexAttribType typePacked, GLsizei stride, const void *pointer); \
/* GL_OES_point_sprite */ \
/* GL_OES_query_matrix */ \
GLbitfield queryMatrixx(GLfixed *mantissa, GLint *exponent); \
/* GL_OES_texture_cube_map */ \
@ -46,64 +47,18 @@
\
/* GLES2+ Extensions */ \
\
/* GL_ANGLE_base_vertex_base_instance */ \
void drawArraysInstancedBaseInstance(PrimitiveMode modePacked, GLint first, GLsizei count, \
GLsizei instanceCount, GLuint baseInstance); \
void drawElementsInstancedBaseVertexBaseInstance( \
PrimitiveMode modePacked, GLsizei count, DrawElementsType typePacked, \
const GLvoid *indices, GLsizei instanceCounts, GLint baseVertex, GLuint baseInstance); \
void multiDrawArraysInstancedBaseInstance( \
PrimitiveMode modePacked, const GLint *firsts, const GLsizei *counts, \
const GLsizei *instanceCounts, const GLuint *baseInstances, GLsizei drawcount); \
void multiDrawElementsInstancedBaseVertexBaseInstance( \
PrimitiveMode modePacked, const GLsizei *counts, DrawElementsType typePacked, \
const GLvoid *const *indices, const GLsizei *instanceCounts, const GLint *baseVertices, \
const GLuint *baseInstances, GLsizei drawcount); \
/* GL_ANGLE_depth_texture */ \
/* GL_ANGLE_framebuffer_blit */ \
/* GL_ANGLE_framebuffer_multisample */ \
/* GL_ANGLE_instanced_arrays */ \
/* GL_ANGLE_memory_object_flags */ \
void texStorageMemFlags2D(TextureType targetPacked, GLsizei levels, GLenum internalFormat, \
GLsizei width, GLsizei height, MemoryObjectID memoryPacked, \
GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); \
void texStorageMemFlags2DMultisample( \
TextureType targetPacked, GLsizei samples, GLenum internalFormat, GLsizei width, \
GLsizei height, GLboolean fixedSampleLocations, MemoryObjectID memoryPacked, \
GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); \
void texStorageMemFlags3D(TextureType targetPacked, GLsizei levels, GLenum internalFormat, \
GLsizei width, GLsizei height, GLsizei depth, \
MemoryObjectID memoryPacked, GLuint64 offset, \
GLbitfield createFlags, GLbitfield usageFlags); \
void texStorageMemFlags3DMultisample(TextureType targetPacked, GLsizei samples, \
GLenum internalFormat, GLsizei width, GLsizei height, \
GLsizei depth, GLboolean fixedSampleLocations, \
MemoryObjectID memoryPacked, GLuint64 offset, \
GLbitfield createFlags, GLbitfield usageFlags); \
/* GL_ANGLE_memory_object_fuchsia */ \
void importMemoryZirconHandle(MemoryObjectID memoryPacked, GLuint64 size, \
HandleType handleTypePacked, GLuint handle); \
/* GL_ANGLE_multi_draw */ \
void multiDrawArrays(PrimitiveMode modePacked, const GLint *firsts, const GLsizei *counts, \
GLsizei drawcount); \
void multiDrawArraysInstanced(PrimitiveMode modePacked, const GLint *firsts, \
const GLsizei *counts, const GLsizei *instanceCounts, \
GLsizei drawcount); \
void multiDrawElements(PrimitiveMode modePacked, const GLsizei *counts, \
DrawElementsType typePacked, const GLvoid *const *indices, \
GLsizei drawcount); \
void multiDrawElementsInstanced(PrimitiveMode modePacked, const GLsizei *counts, \
DrawElementsType typePacked, const GLvoid *const *indices, \
const GLsizei *instanceCounts, GLsizei drawcount); \
/* GL_ANGLE_provoking_vertex */ \
void provokingVertex(ProvokingVertexConvention modePacked); \
/* GL_ANGLE_semaphore_fuchsia */ \
void importSemaphoreZirconHandle(SemaphoreID semaphorePacked, HandleType handleTypePacked, \
GLuint handle); \
/* GL_ANGLE_texture_multisample */ \
/* GL_ANGLE_pack_reverse_row_order */ \
/* GL_ANGLE_texture_usage */ \
/* GL_ANGLE_translated_shader_source */ \
void getTranslatedShaderSource(ShaderProgramID shaderPacked, GLsizei bufsize, GLsizei *length, \
GLchar *source); \
/* GL_APPLE_clip_distance */ \
/* GL_ARB_sync */ \
/* GL_EXT_EGL_image_array */ \
/* GL_EXT_EGL_image_external_wrap_modes */ \
/* GL_EXT_EGL_image_storage */ \
void eGLImageTargetTexStorage(GLenum target, GLeglImageOES image, const GLint *attrib_list); \
void eGLImageTargetTextureStorage(GLuint texture, GLeglImageOES image, \
@ -116,11 +71,15 @@
GLint getFragDataIndex(ShaderProgramID programPacked, const GLchar *name); \
GLint getProgramResourceLocationIndex(ShaderProgramID programPacked, GLenum programInterface, \
const GLchar *name); \
/* GL_EXT_blend_minmax */ \
/* GL_EXT_buffer_storage */ \
void bufferStorage(BufferBinding targetPacked, GLsizeiptr size, const void *data, \
GLbitfield flags); \
/* GL_EXT_clip_control */ \
void clipControl(GLenum origin, GLenum depth); \
/* GL_EXT_clip_cull_distance */ \
/* GL_EXT_color_buffer_float */ \
/* GL_EXT_color_buffer_half_float */ \
/* GL_EXT_compressed_ETC1_RGB8_sub_texture */ \
/* GL_EXT_copy_image */ \
/* GL_EXT_debug_label */ \
@ -147,7 +106,10 @@
GLeglClientBufferEXT clientBuffer, GLbitfield flags); \
void namedBufferStorageExternal(GLuint buffer, GLintptr offset, GLsizeiptr size, \
GLeglClientBufferEXT clientBuffer, GLbitfield flags); \
/* GL_EXT_float_blend */ \
/* GL_EXT_frag_depth */ \
/* GL_EXT_geometry_shader */ \
/* GL_EXT_gpu_shader5 */ \
/* GL_EXT_instanced_arrays */ \
/* GL_EXT_map_buffer_range */ \
/* GL_EXT_memory_object */ \
@ -179,6 +141,7 @@
/* GL_EXT_memory_object_fd */ \
void importMemoryFd(MemoryObjectID memoryPacked, GLuint64 size, HandleType handleTypePacked, \
GLint fd); \
/* GL_EXT_multisample_compatibility */ \
/* GL_EXT_multisampled_render_to_texture */ \
void framebufferTexture2DMultisample(GLenum target, GLenum attachment, \
TextureTarget textargetPacked, TextureID texturePacked, \
@ -213,6 +176,9 @@
/* GL_EXT_shader_framebuffer_fetch_non_coherent */ \
void framebufferFetchBarrier(); \
/* GL_EXT_shader_io_blocks */ \
/* GL_EXT_shader_non_constant_global_initializers */ \
/* GL_EXT_shader_texture_lod */ \
/* GL_EXT_shadow_samplers */ \
/* GL_EXT_tessellation_shader */ \
/* GL_EXT_texture_border_clamp */ \
/* GL_EXT_texture_buffer */ \
@ -224,19 +190,29 @@
/* GL_EXT_texture_cube_map_array */ \
/* GL_EXT_texture_filter_anisotropic */ \
/* GL_EXT_texture_format_BGRA8888 */ \
/* GL_EXT_texture_format_sRGB_override */ \
/* GL_EXT_texture_norm16 */ \
/* GL_EXT_texture_rg */ \
/* GL_EXT_texture_sRGB_R8 */ \
/* GL_EXT_texture_sRGB_RG8 */ \
/* GL_EXT_texture_sRGB_decode */ \
/* GL_EXT_texture_storage */ \
void texStorage1D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); \
/* GL_EXT_texture_type_2_10_10_10_REV */ \
/* GL_EXT_unpack_subimage */ \
/* GL_IMG_texture_compression_pvrtc */ \
/* GL_IMG_texture_compression_pvrtc2 */ \
/* GL_KHR_blend_equation_advanced */ \
/* GL_KHR_debug */ \
/* GL_KHR_no_error */ \
/* GL_KHR_parallel_shader_compile */ \
void maxShaderCompilerThreads(GLuint count); \
/* GL_KHR_robust_buffer_access_behavior */ \
/* GL_KHR_texture_compression_astc_hdr */ \
/* GL_KHR_texture_compression_astc_ldr */ \
/* GL_KHR_texture_compression_astc_sliced_3d */ \
/* GL_NV_EGL_stream_consumer_external */ \
/* GL_NV_depth_buffer_float2 */ \
/* GL_NV_fence */ \
void deleteFencesNV(GLsizei n, const FenceNVID *fencesPacked); \
void finishFenceNV(FenceNVID fencePacked); \
@ -248,37 +224,91 @@
/* GL_NV_framebuffer_blit */ \
void blitFramebufferNV(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, \
GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); \
/* GL_NV_pack_subimage */ \
/* GL_NV_pixel_buffer_object */ \
/* GL_NV_read_depth */ \
/* GL_NV_read_stencil */ \
/* GL_NV_robustness_video_memory_purge */ \
/* GL_NV_shader_noperspective_interpolation */ \
/* GL_OES_EGL_image */ \
void eGLImageTargetRenderbufferStorage(GLenum target, GLeglImageOES image); \
void eGLImageTargetTexture2D(TextureType targetPacked, GLeglImageOES image); \
/* GL_OES_EGL_image_external */ \
/* GL_OES_EGL_image_external_essl3 */ \
/* GL_OES_EGL_sync */ \
/* GL_OES_compressed_EAC_R11_signed_texture */ \
/* GL_OES_compressed_EAC_R11_unsigned_texture */ \
/* GL_OES_compressed_EAC_RG11_signed_texture */ \
/* GL_OES_compressed_EAC_RG11_unsigned_texture */ \
/* GL_OES_compressed_ETC1_RGB8_texture */ \
/* GL_OES_compressed_ETC2_RGB8_texture */ \
/* GL_OES_compressed_ETC2_RGBA8_texture */ \
/* GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture */ \
/* GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture */ \
/* GL_OES_compressed_ETC2_sRGB8_alpha8_texture */ \
/* GL_OES_compressed_ETC2_sRGB8_texture */ \
/* GL_OES_copy_image */ \
/* GL_OES_depth24 */ \
/* GL_OES_depth32 */ \
/* GL_OES_depth_texture */ \
/* GL_OES_depth_texture_cube_map */ \
/* GL_OES_draw_buffers_indexed */ \
/* GL_OES_draw_elements_base_vertex */ \
/* GL_OES_element_index_uint */ \
/* GL_OES_fbo_render_mipmap */ \
/* GL_OES_geometry_shader */ \
/* GL_OES_get_program_binary */ \
/* GL_OES_mapbuffer */ \
void *mapBuffer(BufferBinding targetPacked, GLenum access); \
/* GL_OES_packed_depth_stencil */ \
/* GL_OES_rgb8_rgba8 */ \
/* GL_OES_sample_shading */ \
/* GL_OES_sample_variables */ \
/* GL_OES_shader_image_atomic */ \
/* GL_OES_shader_io_blocks */ \
/* GL_OES_shader_multisample_interpolation */ \
/* GL_OES_standard_derivatives */ \
/* GL_OES_surfaceless_context */ \
/* GL_OES_texture_3D */ \
void framebufferTexture3D(GLenum target, GLenum attachment, TextureTarget textargetPacked, \
TextureID texturePacked, GLint level, GLint zoffset); \
/* GL_OES_texture_border_clamp */ \
/* GL_OES_texture_buffer */ \
/* GL_OES_texture_compression_astc */ \
/* GL_OES_texture_cube_map_array */ \
/* GL_OES_texture_float */ \
/* GL_OES_texture_float_linear */ \
/* GL_OES_texture_half_float */ \
/* GL_OES_texture_half_float_linear */ \
/* GL_OES_texture_npot */ \
/* GL_OES_texture_stencil8 */ \
/* GL_OES_texture_storage_multisample_2d_array */ \
/* GL_OES_vertex_array_object */ \
/* GL_OES_vertex_half_float */ \
/* GL_OES_vertex_type_10_10_10_2 */ \
/* GL_OVR_multiview */ \
void framebufferTextureMultiview(GLenum target, GLenum attachment, TextureID texturePacked, \
GLint level, GLint baseViewIndex, GLsizei numViews); \
/* GL_OVR_multiview2 */ \
/* GL_WEBGL_video_texture */ \
\
/* ANGLE Extensions */ \
\
/* GL_ANGLE_base_vertex_base_instance */ \
void drawArraysInstancedBaseInstance(PrimitiveMode modePacked, GLint first, GLsizei count, \
GLsizei instanceCount, GLuint baseInstance); \
void drawElementsInstancedBaseVertexBaseInstance( \
PrimitiveMode modePacked, GLsizei count, DrawElementsType typePacked, \
const GLvoid *indices, GLsizei instanceCounts, GLint baseVertex, GLuint baseInstance); \
void multiDrawArraysInstancedBaseInstance( \
PrimitiveMode modePacked, const GLint *firsts, const GLsizei *counts, \
const GLsizei *instanceCounts, const GLuint *baseInstances, GLsizei drawcount); \
void multiDrawElementsInstancedBaseVertexBaseInstance( \
PrimitiveMode modePacked, const GLsizei *counts, DrawElementsType typePacked, \
const GLvoid *const *indices, const GLsizei *instanceCounts, const GLint *baseVertices, \
const GLuint *baseInstances, GLsizei drawcount); \
/* GL_ANGLE_client_arrays */ \
/* GL_ANGLE_compressed_texture_etc */ \
/* GL_ANGLE_copy_texture_3d */ \
void copyTexture3D(TextureID sourceIdPacked, GLint sourceLevel, \
TextureTarget destTargetPacked, TextureID destIdPacked, GLint destLevel, \
@ -289,13 +319,53 @@
GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLint z, \
GLint width, GLint height, GLint depth, GLboolean unpackFlipY, \
GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha); \
/* GL_ANGLE_framebuffer_multisample */ \
/* GL_ANGLE_get_image */ \
void getTexImage(TextureTarget targetPacked, GLint level, GLenum format, GLenum type, \
void *pixels); \
void getRenderbufferImage(GLenum target, GLenum format, GLenum type, void *pixels); \
/* GL_ANGLE_get_serialized_context_string */ \
/* GL_ANGLE_get_tex_level_parameter */ \
/* GL_ANGLE_lossy_etc_decode */ \
/* GL_ANGLE_memory_object_flags */ \
void texStorageMemFlags2D(TextureType targetPacked, GLsizei levels, GLenum internalFormat, \
GLsizei width, GLsizei height, MemoryObjectID memoryPacked, \
GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); \
void texStorageMemFlags2DMultisample( \
TextureType targetPacked, GLsizei samples, GLenum internalFormat, GLsizei width, \
GLsizei height, GLboolean fixedSampleLocations, MemoryObjectID memoryPacked, \
GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); \
void texStorageMemFlags3D(TextureType targetPacked, GLsizei levels, GLenum internalFormat, \
GLsizei width, GLsizei height, GLsizei depth, \
MemoryObjectID memoryPacked, GLuint64 offset, \
GLbitfield createFlags, GLbitfield usageFlags); \
void texStorageMemFlags3DMultisample(TextureType targetPacked, GLsizei samples, \
GLenum internalFormat, GLsizei width, GLsizei height, \
GLsizei depth, GLboolean fixedSampleLocations, \
MemoryObjectID memoryPacked, GLuint64 offset, \
GLbitfield createFlags, GLbitfield usageFlags); \
/* GL_ANGLE_memory_object_fuchsia */ \
void importMemoryZirconHandle(MemoryObjectID memoryPacked, GLuint64 size, \
HandleType handleTypePacked, GLuint handle); \
/* GL_ANGLE_memory_size */ \
/* GL_ANGLE_multi_draw */ \
void multiDrawArrays(PrimitiveMode modePacked, const GLint *firsts, const GLsizei *counts, \
GLsizei drawcount); \
void multiDrawArraysInstanced(PrimitiveMode modePacked, const GLint *firsts, \
const GLsizei *counts, const GLsizei *instanceCounts, \
GLsizei drawcount); \
void multiDrawElements(PrimitiveMode modePacked, const GLsizei *counts, \
DrawElementsType typePacked, const GLvoid *const *indices, \
GLsizei drawcount); \
void multiDrawElementsInstanced(PrimitiveMode modePacked, const GLsizei *counts, \
DrawElementsType typePacked, const GLvoid *const *indices, \
const GLsizei *instanceCounts, GLsizei drawcount); \
/* GL_ANGLE_multiview_multisample */ \
/* GL_ANGLE_program_binary */ \
/* GL_ANGLE_program_cache_control */ \
/* GL_ANGLE_provoking_vertex */ \
void provokingVertex(ProvokingVertexConvention modePacked); \
/* GL_ANGLE_relaxed_vertex_attribute_type */ \
/* GL_ANGLE_request_extension */ \
void requestExtension(const GLchar *name); \
void disableExtension(const GLchar *name); \
@ -440,14 +510,27 @@
GLsizei *length, GLint64 *params); \
void getQueryObjectui64vRobust(QueryID idPacked, GLenum pname, GLsizei bufSize, \
GLsizei *length, GLuint64 *params); \
/* GL_ANGLE_robust_resource_initialization */ \
/* GL_ANGLE_semaphore_fuchsia */ \
void importSemaphoreZirconHandle(SemaphoreID semaphorePacked, HandleType handleTypePacked, \
GLuint handle); \
/* GL_ANGLE_texture_compression_dxt3 */ \
/* GL_ANGLE_texture_compression_dxt5 */ \
/* GL_ANGLE_texture_external_update */ \
void texImage2DExternal(TextureTarget targetPacked, GLint level, GLint internalformat, \
GLsizei width, GLsizei height, GLint border, GLenum format, \
GLenum type); \
void invalidateTexture(TextureType targetPacked); \
/* GL_ANGLE_texture_multisample */ \
/* GL_ANGLE_texture_rectangle */ \
/* GL_ANGLE_webgl_compatibility */ \
/* GL_ANGLE_yuv_internal_format */ \
/* GL_CHROMIUM_bind_generates_resource */ \
/* GL_CHROMIUM_bind_uniform_location */ \
void bindUniformLocation(ShaderProgramID programPacked, UniformLocation locationPacked, \
const GLchar *name); \
/* GL_CHROMIUM_color_buffer_float_rgb */ \
/* GL_CHROMIUM_color_buffer_float_rgba */ \
/* GL_CHROMIUM_copy_compressed_texture */ \
void compressedCopyTexture(TextureID sourceIdPacked, TextureID destIdPacked); \
/* GL_CHROMIUM_copy_texture */ \
@ -464,6 +547,7 @@
void coverageModulation(GLenum components); \
/* GL_CHROMIUM_lose_context */ \
void loseContext(GraphicsResetStatus currentPacked, GraphicsResetStatus otherPacked); \
/* GL_CHROMIUM_path_rendering */
/* GL_CHROMIUM_sync_query */ \
/* GL_CHROMIUM_texture_filtering_hint */
#endif // ANGLE_CONTEXT_API_EXT_AUTOGEN_H_

Просмотреть файл

@ -90,6 +90,8 @@ angle::CallCapture CaptureCopySubTexture3DANGLE(const State &glState,
GLboolean unpackPremultiplyAlpha,
GLboolean unpackUnmultiplyAlpha);
// GL_ANGLE_depth_texture
// GL_ANGLE_framebuffer_blit
angle::CallCapture CaptureBlitFramebufferANGLE(const State &glState,
bool isCallValid,
@ -249,6 +251,8 @@ angle::CallCapture CaptureMultiDrawElementsInstancedANGLE(const State &glState,
const GLsizei *instanceCounts,
GLsizei drawcount);
// GL_ANGLE_pack_reverse_row_order
// GL_ANGLE_program_binary
// GL_ANGLE_provoking_vertex
@ -771,6 +775,10 @@ angle::CallCapture CaptureImportSemaphoreZirconHandleANGLE(const State &glState,
HandleType handleTypePacked,
GLuint handle);
// GL_ANGLE_texture_compression_dxt3
// GL_ANGLE_texture_compression_dxt5
// GL_ANGLE_texture_external_update
angle::CallCapture CaptureTexImage2DExternalANGLE(const State &glState,
bool isCallValid,
@ -805,6 +813,8 @@ angle::CallCapture CaptureSampleMaskiANGLE(const State &glState,
GLuint maskNumber,
GLbitfield mask);
// GL_ANGLE_texture_usage
// GL_ANGLE_translated_shader_source
angle::CallCapture CaptureGetTranslatedShaderSourceANGLE(const State &glState,
bool isCallValid,
@ -813,6 +823,10 @@ angle::CallCapture CaptureGetTranslatedShaderSourceANGLE(const State &glState,
GLsizei *length,
GLchar *source);
// GL_APPLE_clip_distance
// GL_ARB_sync
// GL_CHROMIUM_bind_uniform_location
angle::CallCapture CaptureBindUniformLocationCHROMIUM(const State &glState,
bool isCallValid,
@ -907,6 +921,8 @@ angle::CallCapture CaptureGetProgramResourceLocationIndexEXT(const State &glStat
const GLchar *name,
GLint returnValue);
// GL_EXT_blend_minmax
// GL_EXT_buffer_storage
angle::CallCapture CaptureBufferStorageEXT(const State &glState,
bool isCallValid,
@ -921,6 +937,12 @@ angle::CallCapture CaptureClipControlEXT(const State &glState,
GLenum origin,
GLenum depth);
// GL_EXT_clip_cull_distance
// GL_EXT_color_buffer_float
// GL_EXT_color_buffer_half_float
// GL_EXT_copy_image
angle::CallCapture CaptureCopyImageSubDataEXT(const State &glState,
bool isCallValid,
@ -1126,6 +1148,8 @@ angle::CallCapture CaptureNamedBufferStorageExternalEXT(const State &glState,
GLeglClientBufferEXT clientBuffer,
GLbitfield flags);
// GL_EXT_float_blend
// GL_EXT_geometry_shader
angle::CallCapture CaptureFramebufferTextureEXT(const State &glState,
bool isCallValid,
@ -1134,6 +1158,8 @@ angle::CallCapture CaptureFramebufferTextureEXT(const State &glState,
TextureID texturePacked,
GLint level);
// GL_EXT_gpu_shader5
// GL_EXT_instanced_arrays
angle::CallCapture CaptureDrawArraysInstancedEXT(const State &glState,
bool isCallValid,
@ -1638,6 +1664,12 @@ angle::CallCapture CaptureFramebufferFetchBarrierEXT(const State &glState, bool
// GL_EXT_shader_io_blocks
// GL_EXT_shader_non_constant_global_initializers
// GL_EXT_shader_texture_lod
// GL_EXT_shadow_samplers
// GL_EXT_tessellation_shader
angle::CallCapture CapturePatchParameteriEXT(const State &glState,
bool isCallValid,
@ -1716,10 +1748,18 @@ angle::CallCapture CaptureTexBufferRangeEXT(const State &glState,
// GL_EXT_texture_format_BGRA8888
// GL_EXT_texture_format_sRGB_override
// GL_EXT_texture_norm16
// GL_EXT_texture_rg
// GL_EXT_texture_sRGB_R8
// GL_EXT_texture_sRGB_RG8
// GL_EXT_texture_sRGB_decode
// GL_EXT_texture_storage
angle::CallCapture CaptureTexStorage1DEXT(const State &glState,
bool isCallValid,
@ -1743,6 +1783,10 @@ angle::CallCapture CaptureTexStorage3DEXT(const State &glState,
GLsizei height,
GLsizei depth);
// GL_EXT_texture_type_2_10_10_10_REV
// GL_EXT_unpack_subimage
// GL_IMG_texture_compression_pvrtc
// GL_IMG_texture_compression_pvrtc2
@ -1818,11 +1862,15 @@ angle::CallCapture CapturePushDebugGroupKHR(const State &glState,
GLsizei length,
const GLchar *message);
// GL_KHR_no_error
// GL_KHR_parallel_shader_compile
angle::CallCapture CaptureMaxShaderCompilerThreadsKHR(const State &glState,
bool isCallValid,
GLuint count);
// GL_KHR_robust_buffer_access_behavior
// GL_KHR_texture_compression_astc_hdr
// GL_KHR_texture_compression_astc_ldr
@ -1873,6 +1921,16 @@ angle::CallCapture CaptureBlitFramebufferNV(const State &glState,
GLbitfield mask,
GLenum filter);
// GL_NV_pixel_buffer_object
// GL_NV_read_depth
// GL_NV_read_stencil
// GL_NV_robustness_video_memory_purge
// GL_NV_shader_noperspective_interpolation
// GL_OES_EGL_image
angle::CallCapture CaptureEGLImageTargetRenderbufferStorageOES(const State &glState,
bool isCallValid,
@ -1883,6 +1941,10 @@ angle::CallCapture CaptureEGLImageTargetTexture2DOES(const State &glState,
TextureType targetPacked,
GLeglImageOES image);
// GL_OES_EGL_image_external
// GL_OES_EGL_image_external_essl3
// GL_OES_compressed_ETC1_RGB8_texture
// GL_OES_copy_image
@ -1904,8 +1966,12 @@ angle::CallCapture CaptureCopyImageSubDataOES(const State &glState,
GLsizei srcHeight,
GLsizei srcDepth);
// GL_OES_depth24
// GL_OES_depth32
// GL_OES_depth_texture
// GL_OES_draw_buffers_indexed
angle::CallCapture CaptureBlendEquationSeparateiOES(const State &glState,
bool isCallValid,
@ -2015,6 +2081,10 @@ angle::CallCapture CaptureDrawTexxvOES(const State &glState,
bool isCallValid,
const GLfixed *coords);
// GL_OES_element_index_uint
// GL_OES_fbo_render_mipmap
// GL_OES_framebuffer_object
angle::CallCapture CaptureBindFramebufferOES(const State &glState,
bool isCallValid,
@ -2143,6 +2213,8 @@ angle::CallCapture CaptureWeightPointerOES(const State &glState,
GLsizei stride,
const void *pointer);
// GL_OES_packed_depth_stencil
// GL_OES_point_size_array
angle::CallCapture CapturePointSizePointerOES(const State &glState,
bool isCallValid,
@ -2150,6 +2222,8 @@ angle::CallCapture CapturePointSizePointerOES(const State &glState,
GLsizei stride,
const void *pointer);
// GL_OES_point_sprite
// GL_OES_query_matrix
angle::CallCapture CaptureQueryMatrixxOES(const State &glState,
bool isCallValid,
@ -2157,13 +2231,25 @@ angle::CallCapture CaptureQueryMatrixxOES(const State &glState,
GLint *exponent,
GLbitfield returnValue);
// GL_OES_rgb8_rgba8
// GL_OES_sample_shading
angle::CallCapture CaptureMinSampleShadingOES(const State &glState,
bool isCallValid,
GLfloat value);
// GL_OES_sample_variables
// GL_OES_shader_image_atomic
// GL_OES_shader_io_blocks
// GL_OES_shader_multisample_interpolation
// GL_OES_standard_derivatives
// GL_OES_surfaceless_context
// GL_OES_texture_3D
angle::CallCapture CaptureCompressedTexImage3DOES(const State &glState,
bool isCallValid,
@ -2290,6 +2376,8 @@ angle::CallCapture CaptureTexBufferRangeOES(const State &glState,
GLintptr offset,
GLsizeiptr size);
// GL_OES_texture_compression_astc
// GL_OES_texture_cube_map
angle::CallCapture CaptureGetTexGenfvOES(const State &glState,
bool isCallValid,
@ -2339,8 +2427,16 @@ angle::CallCapture CaptureTexGenxvOES(const State &glState,
// GL_OES_texture_cube_map_array
// GL_OES_texture_float
// GL_OES_texture_float_linear
// GL_OES_texture_half_float
// GL_OES_texture_half_float_linear
// GL_OES_texture_npot
// GL_OES_texture_stencil8
// GL_OES_texture_storage_multisample_2d_array
@ -2371,6 +2467,10 @@ angle::CallCapture CaptureIsVertexArrayOES(const State &glState,
VertexArrayID arrayPacked,
GLboolean returnValue);
// GL_OES_vertex_half_float
// GL_OES_vertex_type_10_10_10_2
// GL_OVR_multiview
angle::CallCapture CaptureFramebufferTextureMultiviewOVR(const State &glState,
bool isCallValid,

Просмотреть файл

@ -152,6 +152,10 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
{
case 0x8006:
return "GL_FUNC_ADD";
case 0x8007:
return "GL_MIN_EXT";
case 0x8008:
return "GL_MAX_EXT";
case 0x800A:
return "GL_FUNC_SUBTRACT";
case 0x800B:
@ -535,6 +539,8 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_CONTEXT_FLAG_DEBUG_BIT";
case 0x4:
return "GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT";
case 0x8:
return "GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR";
case 0x10:
return "GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT";
default:
@ -707,6 +713,8 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_CONTEXT_LOST";
case 0x800:
return "GL_CREATE_PROTECTED_BIT_ANGLE";
case 0xD32:
return "GL_MAX_CLIP_DISTANCES_APPLE";
case 0x1000:
return "GL_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_ANGLE";
case 0x1004:
@ -717,6 +725,22 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_CREATE_CORNER_SAMPLED_BIT_ANGLE";
case 0x2500:
return "GL_TEXTURE_GEN_MODE_OES";
case 0x3000:
return "GL_CLIP_DISTANCE0_APPLE";
case 0x3001:
return "GL_CLIP_DISTANCE1_APPLE";
case 0x3002:
return "GL_CLIP_DISTANCE2_APPLE";
case 0x3003:
return "GL_CLIP_DISTANCE3_APPLE";
case 0x3004:
return "GL_CLIP_DISTANCE4_APPLE";
case 0x3005:
return "GL_CLIP_DISTANCE5_APPLE";
case 0x3006:
return "GL_CLIP_DISTANCE6_APPLE";
case 0x3007:
return "GL_CLIP_DISTANCE7_APPLE";
case 0x4000:
return "GL_CREATE_SUBSAMPLED_BIT_ANGLE";
case 0x8005:
@ -767,8 +791,12 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_DEPTH_COMPONENT24";
case 0x8210:
return "GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT";
case 0x8211:
return "GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT";
case 0x8218:
return "GL_FRAMEBUFFER_DEFAULT";
case 0x8219:
return "GL_FRAMEBUFFER_UNDEFINED_OES";
case 0x821A:
return "GL_DEPTH_STENCIL_ATTACHMENT";
case 0x821B:
@ -785,6 +813,8 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_BUFFER_STORAGE_FLAGS_EXT";
case 0x8221:
return "GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED";
case 0x8227:
return "GL_RG_EXT";
case 0x8228:
return "GL_RG_INTEGER";
case 0x8242:
@ -895,6 +925,10 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_DISPLAY_LIST";
case 0x82E8:
return "GL_MAX_LABEL_LENGTH";
case 0x82F9:
return "GL_MAX_CULL_DISTANCES_EXT";
case 0x82FA:
return "GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT";
case 0x8363:
return "GL_UNSIGNED_SHORT_5_6_5";
case 0x8370:
@ -1047,8 +1081,16 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_MATRIX_INDEX_ARRAY_POINTER_OES";
case 0x884A:
return "GL_TEXTURE_DEPTH_SIZE";
case 0x884C:
return "GL_TEXTURE_COMPARE_MODE_EXT";
case 0x884D:
return "GL_TEXTURE_COMPARE_FUNC_EXT";
case 0x884E:
return "GL_COMPARE_REF_TO_TEXTURE";
case 0x8861:
return "GL_POINT_SPRITE_OES";
case 0x8862:
return "GL_COORD_REPLACE_OES";
case 0x8864:
return "GL_QUERY_COUNTER_BITS_EXT";
case 0x8865:
@ -1083,6 +1125,10 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_BUFFER_MAP_POINTER";
case 0x88BF:
return "GL_TIME_ELAPSED_EXT";
case 0x88EB:
return "GL_PIXEL_PACK_BUFFER_NV";
case 0x88EC:
return "GL_PIXEL_UNPACK_BUFFER_NV";
case 0x88ED:
return "GL_PIXEL_PACK_BUFFER_BINDING";
case 0x88EF:
@ -1145,6 +1191,12 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS";
case 0x8A34:
return "GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT";
case 0x8A48:
return "GL_TEXTURE_SRGB_DECODE_EXT";
case 0x8A49:
return "GL_DECODE_EXT";
case 0x8A4A:
return "GL_SKIP_DECODE_EXT";
case 0x8A4F:
return "GL_PROGRAM_PIPELINE_OBJECT_EXT";
case 0x8A52:
@ -1305,6 +1357,8 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_RGB565";
case 0x8D65:
return "GL_TEXTURE_EXTERNAL_OES";
case 0x8D66:
return "GL_SAMPLER_EXTERNAL_OES";
case 0x8D67:
return "GL_TEXTURE_BINDING_EXTERNAL_OES";
case 0x8D68:
@ -1371,6 +1425,10 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_MAX_GEOMETRY_OUTPUT_VERTICES";
case 0x8DE1:
return "GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS";
case 0x8DF6:
return "GL_UNSIGNED_INT_10_10_10_2_OES";
case 0x8DF7:
return "GL_INT_10_10_10_2_OES";
case 0x8DF8:
return "GL_SHADER_BINARY_FORMATS";
case 0x8DF9:
@ -1493,6 +1551,8 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_SR8_EXT";
case 0x8FBE:
return "GL_SRG8_EXT";
case 0x8FBF:
return "GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT";
case 0x900A:
return "GL_TEXTURE_BINDING_CUBE_MAP_ARRAY";
case 0x900C:
@ -1703,6 +1763,8 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_HSL_COLOR";
case 0x92B0:
return "GL_HSL_LUMINOSITY";
case 0x92BB:
return "GL_PURGED_CONTEXT_RESET_NV";
case 0x92BE:
return "GL_PRIMITIVE_BOUNDING_BOX";
case 0x92C2:
@ -1815,6 +1877,12 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE";
case 0x93A1:
return "GL_BGRA8_EXT";
case 0x93A2:
return "GL_TEXTURE_USAGE_ANGLE";
case 0x93A3:
return "GL_FRAMEBUFFER_ATTACHMENT_ANGLE";
case 0x93A4:
return "GL_PACK_REVERSE_ROW_ORDER_ANGLE";
case 0x93A6:
return "GL_PROGRAM_BINARY_ANGLE";
case 0x93AE:
@ -2365,6 +2433,8 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_TEXTURE_2D";
case 0x2A00:
return "GL_POLYGON_OFFSET_UNITS";
case 0x8009:
return "GL_BLEND_EQUATION_EXT";
case 0x8037:
return "GL_POLYGON_OFFSET_FILL";
case 0x8038:
@ -2520,6 +2590,8 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_RGB8";
case 0x8052:
return "GL_RGB10_EXT";
case 0x8054:
return "GL_RGB16_EXT";
case 0x8056:
return "GL_RGBA4";
case 0x8057:
@ -2528,18 +2600,26 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_RGBA8";
case 0x8059:
return "GL_RGB10_A2";
case 0x805B:
return "GL_RGBA16_EXT";
case 0x80E1:
return "GL_BGRA_EXT";
case 0x81A5:
return "GL_DEPTH_COMPONENT16";
case 0x81A6:
return "GL_DEPTH_COMPONENT24_OES";
case 0x81A7:
return "GL_DEPTH_COMPONENT32_OES";
case 0x8227:
return "GL_RG";
case 0x8229:
return "GL_R8";
case 0x822A:
return "GL_R16_EXT";
case 0x822B:
return "GL_RG8";
case 0x822C:
return "GL_RG16_EXT";
case 0x822D:
return "GL_R16F";
case 0x822E:
@ -2577,9 +2657,9 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
case 0x83F1:
return "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT";
case 0x83F2:
return "GL_COMPRESSED_RGBA_S3TC_DXT3_EXT";
return "GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE";
case 0x83F3:
return "GL_COMPRESSED_RGBA_S3TC_DXT5_EXT";
return "GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE";
case 0x84F9:
return "GL_DEPTH_STENCIL";
case 0x8814:
@ -2680,6 +2760,14 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_RGB8_SNORM";
case 0x8F97:
return "GL_RGBA8_SNORM";
case 0x8F98:
return "GL_R16_SNORM_EXT";
case 0x8F99:
return "GL_RG16_SNORM_EXT";
case 0x8F9A:
return "GL_RGB16_SNORM_EXT";
case 0x8F9B:
return "GL_RGBA16_SNORM_EXT";
case 0x906F:
return "GL_RGB10_A2UI";
case 0x9137:
@ -2734,6 +2822,26 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_COMPRESSED_RGBA_ASTC_12x10_KHR";
case 0x93BD:
return "GL_COMPRESSED_RGBA_ASTC_12x12_KHR";
case 0x93C0:
return "GL_COMPRESSED_RGBA_ASTC_3x3x3_OES";
case 0x93C1:
return "GL_COMPRESSED_RGBA_ASTC_4x3x3_OES";
case 0x93C2:
return "GL_COMPRESSED_RGBA_ASTC_4x4x3_OES";
case 0x93C3:
return "GL_COMPRESSED_RGBA_ASTC_4x4x4_OES";
case 0x93C4:
return "GL_COMPRESSED_RGBA_ASTC_5x4x4_OES";
case 0x93C5:
return "GL_COMPRESSED_RGBA_ASTC_5x5x4_OES";
case 0x93C6:
return "GL_COMPRESSED_RGBA_ASTC_5x5x5_OES";
case 0x93C7:
return "GL_COMPRESSED_RGBA_ASTC_6x5x5_OES";
case 0x93C8:
return "GL_COMPRESSED_RGBA_ASTC_6x6x5_OES";
case 0x93C9:
return "GL_COMPRESSED_RGBA_ASTC_6x6x6_OES";
case 0x93D0:
return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR";
case 0x93D1:
@ -2762,6 +2870,26 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR";
case 0x93DD:
return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR";
case 0x93E0:
return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES";
case 0x93E1:
return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES";
case 0x93E2:
return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES";
case 0x93E3:
return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES";
case 0x93E4:
return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES";
case 0x93E5:
return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES";
case 0x93E6:
return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES";
case 0x93E7:
return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES";
case 0x93E8:
return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES";
case 0x93E9:
return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES";
case 0x93F0:
return "GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG";
case 0x93F1:

Просмотреть файл

@ -0,0 +1,326 @@
#!/usr/bin/python3
#
# Copyright 2021 The ANGLE Project Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# gen_extensions.py:
# Generates files from supported extensions data.
# NOTE: don't run this script directly. Run scripts/run_code_generation.py.
import re
import sys
import os
d = os.path.dirname
THIS_DIR = d(os.path.abspath(__file__))
ANGLE_SRC_DIR = d(d(THIS_DIR))
SCRIPTS_DIR = os.path.join(ANGLE_SRC_DIR, 'scripts')
sys.path.insert(0, SCRIPTS_DIR)
import registry_xml
_GLES_EXTENSIONS_TEMPLATE = """\
// GENERATED FILE - DO NOT EDIT.
// Generated by {script_name} using data from {data_source_name}
//
// Copyright 2021 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// {filename}: GLES extension information.
#ifndef LIBANGLE_GLES_EXTENSIONS_AUTOGEN_H_
#define LIBANGLE_GLES_EXTENSIONS_AUTOGEN_H_
namespace gl
{{
class TextureCapsMap;
struct Extensions
{{
Extensions();
Extensions(const Extensions &other);
Extensions &operator=(const Extensions &other);
// Generate a vector of supported extension strings
std::vector<std::string> getStrings() const;
// Set all texture related extension support based on the supported textures.
// Determines support for:
// GL_OES_packed_depth_stencil
// GL_OES_rgb8_rgba8
// GL_EXT_texture_format_BGRA8888
// GL_EXT_color_buffer_half_float,
// GL_OES_texture_half_float, GL_OES_texture_half_float_linear
// GL_OES_texture_float, GL_OES_texture_float_linear
// GL_EXT_texture_rg
// GL_EXT_texture_type_2_10_10_10_REV
// GL_EXT_texture_compression_dxt1, GL_ANGLE_texture_compression_dxt3,
// GL_ANGLE_texture_compression_dxt5
// GL_KHR_texture_compression_astc_ldr, GL_OES_texture_compression_astc.
// NOTE: GL_KHR_texture_compression_astc_hdr must be enabled separately. Support for the
// HDR profile cannot be determined from the format enums alone.
// GL_OES_compressed_ETC1_RGB8_texture
// GL_EXT_sRGB
// GL_ANGLE_depth_texture, GL_OES_depth32
// GL_EXT_color_buffer_float
// GL_EXT_texture_norm16
// GL_EXT_texture_compression_bptc
// GL_EXT_texture_compression_rgtc
void setTextureExtensionSupport(const TextureCapsMap &textureCaps);
// Helper functions
{helper_functions}
// GLES 2.0+ extensions
// --------------------
{gles_extensions}
// ANGLE unofficial extensions
// ---------------------------
{angle_extensions}
// GLES 1.0 and 1.1 extensions
// ---------------------------
{gles1_extensions}}};
}} // namespace gl
#endif // LIBANGLE_GLES_EXTENSIONS_AUTOGEN_H_
"""
_EXT_MEMBER_TEMPLATE = """\
// {full_name}
bool {name_camel_case}{vendor} = false;
"""
_HELPER_TEMPLATE = """ bool {ext_name}Any() const {{ return ({expression}); }}"""
_GLES_EXT_STRINGS_TEMPLATE = """\
// GENERATED FILE - DO NOT EDIT.
// Generated by {script_name} using data from {data_source_name}
//
// Copyright 2021 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// {filename}: GLES extension strings information.
#include "anglebase/no_destructor.h"
#include "libANGLE/Caps.h"
namespace gl
{{
const ExtensionInfoMap &GetExtensionInfoMap()
{{
auto buildExtensionInfoMap = []() {{
auto enableableExtension = [](ExtensionBool member) {{
ExtensionInfo info;
info.Requestable = true;
info.ExtensionsMember = member;
return info;
}};
auto enableableDisablableExtension = [&](ExtensionBool member) {{
ExtensionInfo info = enableableExtension(member);
info.Disablable = true;
return info;
}};
auto esOnlyExtension = [](ExtensionBool member) {{
ExtensionInfo info;
info.ExtensionsMember = member;
return info;
}};
// clang-format off
ExtensionInfoMap map;
// GLES 2.0 extension strings
// --------------------------
{gles_strings}
// ANGLE unofficial extension strings
// ----------------------------------
{angle_strings}
// GLES 1.0 and 1.1 extension strings
// ----------------------------------
{gles1_strings}
// clang-format on
#if defined(ANGLE_ENABLE_ASSERTS)
// Verify all extension strings start with GL_
for (const auto &extension : map)
{{
ASSERT(extension.first.rfind("GL_", 0) == 0);
}}
#endif
return map;
}};
static const angle::base::NoDestructor<ExtensionInfoMap> extensionInfo(buildExtensionInfoMap());
return *extensionInfo;
}}
}} // namespace gl
"""
_EXT_STRING_TEMPLATE = """\
map["{full_name}"] = {mode}Extension(&Extensions::{name_camel_case}{vendor});"""
ESONLY = 'esOnly'
REQUESTABLE = 'enableable'
TOGGLEABLE = 'enableableDisablable'
_MARKDOWN_TEMPLATE = """\
# ANGLE Supported Extensions
This is a list of all extensions currently supported by ANGLE's front-end. Back-end support is not
yet documented. To produce a list of all supported extensions in the Vulkan back-end, run
`angle_end2end_tests` with `--gtest_filter EGLPrintEGLinfoTest.PrintGLInfo/ES*_Vulkan`.
This list is automatically generated by {script_name} using data from {data_source_name}.
| Extension Name |
| -------------- |
{md_exts}
"""
def get_camel_case(name_with_underscores):
""" To follow ANGLE naming for member variables, we convert the canonical extension:
0. Delete the API and vendor prefix.
1. Capitalize letters after underscores.
2. Delete underscores.
3. Add back the vendor prefix to the end. """
words = name_with_underscores.split('_')
words = [words[0]] + [(word[0].upper() + word[1:]) for word in words[1:]]
return ''.join(words)
def break_down_ext(ext, expr, mode):
""" This splits an extension name like GL_EXT_buffer_storage into string components. """
m = expr.match(ext)
return {
'full_name': ext,
'api_prefix': m.group(1),
'vendor': m.group(2),
'name_with_underscores': m.group(3),
'name_camel_case': get_camel_case(m.group(3)),
'mode': mode,
}
def break_down_exts(exts, expr, mode):
return [break_down_ext(ext, expr, mode) for ext in exts]
def format_exts(ext_infos):
return '\n'.join([_EXT_MEMBER_TEMPLATE.format(**ext_info) for ext_info in ext_infos])
def format_helper_function(ext_name, vendors):
return _HELPER_TEMPLATE.format(
ext_name=ext_name,
expression=' || '.join(['%s%s' % (ext_name, vendor) for vendor in vendors]),
)
def format_ext_strings(ext_infos):
return '\n'.join([_EXT_STRING_TEMPLATE.format(**ext_info) for ext_info in ext_infos])
def write_file(fname, template, format_args):
with open(fname, 'w') as f:
formatted = template.format(**format_args)
f.write(formatted)
f.close()
def sort_by_ext_name(ext_infos):
return sorted(ext_infos, key=lambda e: e['name_camel_case'].lower())
def main():
# auto_script parameters.
data_source_name = 'registry_xml.py and gl.xml'
gles_h_output_name = 'gles_extensions_autogen.h'
gles_cpp_output_name = 'gles_extensions_autogen.cpp'
md_output_name = '../../doc/SupportedExtensions.md'
if len(sys.argv) > 1:
inputs = ['../../scripts/%s' % xml_input for xml_input in registry_xml.xml_inputs]
outputs = [gles_h_output_name, gles_cpp_output_name, md_output_name]
if sys.argv[1] == 'inputs':
print(','.join(inputs))
elif sys.argv[1] == 'outputs':
print(','.join(outputs))
else:
print('Invalid script parameters.')
return 1
return 0
expr = re.compile(r'^([A-Z]+)_([A-Z]+)_(\w+)$')
angle_ext_infos = (
break_down_exts(registry_xml.angle_requestable_extensions, expr, REQUESTABLE) +
break_down_exts(registry_xml.angle_es_only_extensions, expr, ESONLY) +
break_down_exts(registry_xml.angle_toggleable_extensions, expr, TOGGLEABLE))
angle_ext_infos = sort_by_ext_name(angle_ext_infos)
gles_ext_infos = (
break_down_exts(registry_xml.gles_requestable_extensions, expr, REQUESTABLE) +
break_down_exts(registry_xml.gles_es_only_extensions, expr, ESONLY))
gles_ext_infos = sort_by_ext_name(gles_ext_infos)
gles1_ext_infos = break_down_exts(registry_xml.gles1_extensions, expr, REQUESTABLE)
gles1_ext_infos = sort_by_ext_name(gles1_ext_infos)
ext_infos = angle_ext_infos + gles_ext_infos + gles1_ext_infos
ext_name_to_vendors = {}
for info in ext_infos:
ext_name = info['name_camel_case']
if ext_name in ext_name_to_vendors:
ext_name_to_vendors[ext_name] += [info['vendor']]
else:
ext_name_to_vendors[ext_name] = [info['vendor']]
helper_function_data = []
for (ext_name, vendors) in sorted(ext_name_to_vendors.items()):
if len(vendors) > 1:
helper_function_data += [format_helper_function(ext_name, vendors)]
helper_functions = '\n'.join(helper_function_data)
sorted_names = sorted([ext_info['full_name'] for ext_info in ext_infos])
md_exts = '\n'.join(['| `%s` |' % full_name for full_name in sorted_names])
format_args = {
'script_name': os.path.basename(__file__),
'data_source_name': os.path.basename(data_source_name),
'filename': gles_h_output_name,
'gles_extensions': format_exts(gles_ext_infos),
'angle_extensions': format_exts(angle_ext_infos),
'gles1_extensions': format_exts(gles1_ext_infos),
'helper_functions': helper_functions,
'angle_strings': format_ext_strings(angle_ext_infos),
'gles_strings': format_ext_strings(gles_ext_infos),
'gles1_strings': format_ext_strings(gles1_ext_infos),
'md_exts': md_exts,
}
write_file(gles_h_output_name, _GLES_EXTENSIONS_TEMPLATE, format_args)
write_file(gles_cpp_output_name, _GLES_EXT_STRINGS_TEMPLATE, format_args)
write_file(md_output_name, _MARKDOWN_TEMPLATE, format_args)
return 0
if __name__ == '__main__':
sys.exit(main())

Просмотреть файл

@ -0,0 +1,260 @@
// GENERATED FILE - DO NOT EDIT.
// Generated by gen_extensions.py using data from registry_xml.py and gl.xml
//
// Copyright 2021 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// gles_extensions_autogen.h: GLES extension strings information.
#include "anglebase/no_destructor.h"
#include "libANGLE/Caps.h"
namespace gl
{
const ExtensionInfoMap &GetExtensionInfoMap()
{
auto buildExtensionInfoMap = []() {
auto enableableExtension = [](ExtensionBool member) {
ExtensionInfo info;
info.Requestable = true;
info.ExtensionsMember = member;
return info;
};
auto enableableDisablableExtension = [&](ExtensionBool member) {
ExtensionInfo info = enableableExtension(member);
info.Disablable = true;
return info;
};
auto esOnlyExtension = [](ExtensionBool member) {
ExtensionInfo info;
info.ExtensionsMember = member;
return info;
};
// clang-format off
ExtensionInfoMap map;
// GLES 2.0 extension strings
// --------------------------
map["GL_KHR_blend_equation_advanced"] = esOnlyExtension(&Extensions::blendEquationAdvancedKHR);
map["GL_EXT_blend_func_extended"] = enableableExtension(&Extensions::blendFuncExtendedEXT);
map["GL_EXT_blend_minmax"] = enableableExtension(&Extensions::blendMinmaxEXT);
map["GL_EXT_buffer_storage"] = enableableExtension(&Extensions::bufferStorageEXT);
map["GL_EXT_clip_control"] = enableableExtension(&Extensions::clipControlEXT);
map["GL_EXT_clip_cull_distance"] = enableableExtension(&Extensions::clipCullDistanceEXT);
map["GL_APPLE_clip_distance"] = enableableExtension(&Extensions::clipDistanceAPPLE);
map["GL_EXT_color_buffer_float"] = enableableExtension(&Extensions::colorBufferFloatEXT);
map["GL_EXT_color_buffer_half_float"] = enableableExtension(&Extensions::colorBufferHalfFloatEXT);
map["GL_OES_compressed_EAC_R11_signed_texture"] = enableableExtension(&Extensions::compressedEACR11SignedTextureOES);
map["GL_OES_compressed_EAC_R11_unsigned_texture"] = enableableExtension(&Extensions::compressedEACR11UnsignedTextureOES);
map["GL_OES_compressed_EAC_RG11_signed_texture"] = enableableExtension(&Extensions::compressedEACRG11SignedTextureOES);
map["GL_OES_compressed_EAC_RG11_unsigned_texture"] = enableableExtension(&Extensions::compressedEACRG11UnsignedTextureOES);
map["GL_EXT_compressed_ETC1_RGB8_sub_texture"] = enableableExtension(&Extensions::compressedETC1RGB8SubTextureEXT);
map["GL_OES_compressed_ETC1_RGB8_texture"] = enableableExtension(&Extensions::compressedETC1RGB8TextureOES);
map["GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture"] = enableableExtension(&Extensions::compressedETC2PunchthroughARGBA8TextureOES);
map["GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture"] = enableableExtension(&Extensions::compressedETC2PunchthroughASRGB8AlphaTextureOES);
map["GL_OES_compressed_ETC2_RGB8_texture"] = enableableExtension(&Extensions::compressedETC2RGB8TextureOES);
map["GL_OES_compressed_ETC2_RGBA8_texture"] = enableableExtension(&Extensions::compressedETC2RGBA8TextureOES);
map["GL_OES_compressed_ETC2_sRGB8_alpha8_texture"] = enableableExtension(&Extensions::compressedETC2SRGB8Alpha8TextureOES);
map["GL_OES_compressed_ETC2_sRGB8_texture"] = enableableExtension(&Extensions::compressedETC2SRGB8TextureOES);
map["GL_EXT_copy_image"] = enableableExtension(&Extensions::copyImageEXT);
map["GL_OES_copy_image"] = enableableExtension(&Extensions::copyImageOES);
map["GL_KHR_debug"] = esOnlyExtension(&Extensions::debugKHR);
map["GL_EXT_debug_label"] = esOnlyExtension(&Extensions::debugLabelEXT);
map["GL_EXT_debug_marker"] = esOnlyExtension(&Extensions::debugMarkerEXT);
map["GL_OES_depth24"] = esOnlyExtension(&Extensions::depth24OES);
map["GL_OES_depth32"] = esOnlyExtension(&Extensions::depth32OES);
map["GL_NV_depth_buffer_float2"] = enableableExtension(&Extensions::depthBufferFloat2NV);
map["GL_ANGLE_depth_texture"] = esOnlyExtension(&Extensions::depthTextureANGLE);
map["GL_OES_depth_texture"] = esOnlyExtension(&Extensions::depthTextureOES);
map["GL_OES_depth_texture_cube_map"] = enableableExtension(&Extensions::depthTextureCubeMapOES);
map["GL_EXT_discard_framebuffer"] = esOnlyExtension(&Extensions::discardFramebufferEXT);
map["GL_EXT_disjoint_timer_query"] = enableableExtension(&Extensions::disjointTimerQueryEXT);
map["GL_EXT_draw_buffers"] = enableableExtension(&Extensions::drawBuffersEXT);
map["GL_EXT_draw_buffers_indexed"] = enableableExtension(&Extensions::drawBuffersIndexedEXT);
map["GL_OES_draw_buffers_indexed"] = enableableExtension(&Extensions::drawBuffersIndexedOES);
map["GL_EXT_draw_elements_base_vertex"] = enableableExtension(&Extensions::drawElementsBaseVertexEXT);
map["GL_OES_draw_elements_base_vertex"] = enableableExtension(&Extensions::drawElementsBaseVertexOES);
map["GL_OES_EGL_image"] = enableableExtension(&Extensions::EGLImageOES);
map["GL_EXT_EGL_image_array"] = enableableExtension(&Extensions::EGLImageArrayEXT);
map["GL_OES_EGL_image_external"] = enableableExtension(&Extensions::EGLImageExternalOES);
map["GL_OES_EGL_image_external_essl3"] = enableableExtension(&Extensions::EGLImageExternalEssl3OES);
map["GL_EXT_EGL_image_external_wrap_modes"] = enableableExtension(&Extensions::EGLImageExternalWrapModesEXT);
map["GL_EXT_EGL_image_storage"] = enableableExtension(&Extensions::EGLImageStorageEXT);
map["GL_NV_EGL_stream_consumer_external"] = enableableExtension(&Extensions::EGLStreamConsumerExternalNV);
map["GL_OES_EGL_sync"] = esOnlyExtension(&Extensions::EGLSyncOES);
map["GL_OES_element_index_uint"] = enableableExtension(&Extensions::elementIndexUintOES);
map["GL_EXT_external_buffer"] = enableableExtension(&Extensions::externalBufferEXT);
map["GL_OES_fbo_render_mipmap"] = enableableExtension(&Extensions::fboRenderMipmapOES);
map["GL_NV_fence"] = esOnlyExtension(&Extensions::fenceNV);
map["GL_EXT_float_blend"] = enableableExtension(&Extensions::floatBlendEXT);
map["GL_EXT_frag_depth"] = enableableExtension(&Extensions::fragDepthEXT);
map["GL_ANGLE_framebuffer_blit"] = enableableExtension(&Extensions::framebufferBlitANGLE);
map["GL_NV_framebuffer_blit"] = enableableExtension(&Extensions::framebufferBlitNV);
map["GL_EXT_geometry_shader"] = enableableExtension(&Extensions::geometryShaderEXT);
map["GL_OES_geometry_shader"] = enableableExtension(&Extensions::geometryShaderOES);
map["GL_OES_get_program_binary"] = enableableExtension(&Extensions::getProgramBinaryOES);
map["GL_EXT_gpu_shader5"] = enableableExtension(&Extensions::gpuShader5EXT);
map["GL_ANGLE_instanced_arrays"] = enableableExtension(&Extensions::instancedArraysANGLE);
map["GL_EXT_instanced_arrays"] = enableableExtension(&Extensions::instancedArraysEXT);
map["GL_OES_mapbuffer"] = enableableExtension(&Extensions::mapbufferOES);
map["GL_EXT_map_buffer_range"] = enableableExtension(&Extensions::mapBufferRangeEXT);
map["GL_EXT_memory_object"] = enableableExtension(&Extensions::memoryObjectEXT);
map["GL_EXT_memory_object_fd"] = enableableExtension(&Extensions::memoryObjectFdEXT);
map["GL_EXT_multisample_compatibility"] = esOnlyExtension(&Extensions::multisampleCompatibilityEXT);
map["GL_EXT_multisampled_render_to_texture"] = enableableExtension(&Extensions::multisampledRenderToTextureEXT);
map["GL_EXT_multisampled_render_to_texture2"] = enableableExtension(&Extensions::multisampledRenderToTexture2EXT);
map["GL_OVR_multiview"] = enableableExtension(&Extensions::multiviewOVR);
map["GL_OVR_multiview2"] = enableableExtension(&Extensions::multiview2OVR);
map["GL_KHR_no_error"] = esOnlyExtension(&Extensions::noErrorKHR);
map["GL_EXT_occlusion_query_boolean"] = enableableExtension(&Extensions::occlusionQueryBooleanEXT);
map["GL_OES_packed_depth_stencil"] = esOnlyExtension(&Extensions::packedDepthStencilOES);
map["GL_ANGLE_pack_reverse_row_order"] = enableableExtension(&Extensions::packReverseRowOrderANGLE);
map["GL_NV_pack_subimage"] = enableableExtension(&Extensions::packSubimageNV);
map["GL_KHR_parallel_shader_compile"] = enableableExtension(&Extensions::parallelShaderCompileKHR);
map["GL_NV_pixel_buffer_object"] = enableableExtension(&Extensions::pixelBufferObjectNV);
map["GL_EXT_primitive_bounding_box"] = esOnlyExtension(&Extensions::primitiveBoundingBoxEXT);
map["GL_EXT_protected_textures"] = enableableExtension(&Extensions::protectedTexturesEXT);
map["GL_EXT_pvrtc_sRGB"] = enableableExtension(&Extensions::pvrtcSRGBEXT);
map["GL_NV_read_depth"] = enableableExtension(&Extensions::readDepthNV);
map["GL_EXT_read_format_bgra"] = enableableExtension(&Extensions::readFormatBgraEXT);
map["GL_NV_read_stencil"] = enableableExtension(&Extensions::readStencilNV);
map["GL_OES_rgb8_rgba8"] = enableableExtension(&Extensions::rgb8Rgba8OES);
map["GL_KHR_robust_buffer_access_behavior"] = esOnlyExtension(&Extensions::robustBufferAccessBehaviorKHR);
map["GL_EXT_robustness"] = esOnlyExtension(&Extensions::robustnessEXT);
map["GL_NV_robustness_video_memory_purge"] = esOnlyExtension(&Extensions::robustnessVideoMemoryPurgeNV);
map["GL_OES_sample_shading"] = enableableExtension(&Extensions::sampleShadingOES);
map["GL_OES_sample_variables"] = enableableExtension(&Extensions::sampleVariablesOES);
map["GL_EXT_semaphore"] = enableableExtension(&Extensions::semaphoreEXT);
map["GL_EXT_semaphore_fd"] = enableableExtension(&Extensions::semaphoreFdEXT);
map["GL_EXT_separate_shader_objects"] = enableableExtension(&Extensions::separateShaderObjectsEXT);
map["GL_EXT_shader_framebuffer_fetch_non_coherent"] = enableableExtension(&Extensions::shaderFramebufferFetchNonCoherentEXT);
map["GL_OES_shader_image_atomic"] = enableableExtension(&Extensions::shaderImageAtomicOES);
map["GL_EXT_shader_io_blocks"] = enableableExtension(&Extensions::shaderIoBlocksEXT);
map["GL_OES_shader_io_blocks"] = enableableExtension(&Extensions::shaderIoBlocksOES);
map["GL_OES_shader_multisample_interpolation"] = enableableExtension(&Extensions::shaderMultisampleInterpolationOES);
map["GL_EXT_shader_non_constant_global_initializers"] = enableableExtension(&Extensions::shaderNonConstantGlobalInitializersEXT);
map["GL_NV_shader_noperspective_interpolation"] = enableableExtension(&Extensions::shaderNoperspectiveInterpolationNV);
map["GL_EXT_shader_texture_lod"] = enableableExtension(&Extensions::shaderTextureLodEXT);
map["GL_EXT_shadow_samplers"] = enableableExtension(&Extensions::shadowSamplersEXT);
map["GL_EXT_sRGB"] = enableableExtension(&Extensions::sRGBEXT);
map["GL_EXT_sRGB_write_control"] = esOnlyExtension(&Extensions::sRGBWriteControlEXT);
map["GL_OES_standard_derivatives"] = enableableExtension(&Extensions::standardDerivativesOES);
map["GL_OES_surfaceless_context"] = esOnlyExtension(&Extensions::surfacelessContextOES);
map["GL_ARB_sync"] = enableableExtension(&Extensions::syncARB);
map["GL_EXT_tessellation_shader"] = enableableExtension(&Extensions::tessellationShaderEXT);
map["GL_OES_texture_3D"] = enableableExtension(&Extensions::texture3DOES);
map["GL_EXT_texture_border_clamp"] = enableableExtension(&Extensions::textureBorderClampEXT);
map["GL_OES_texture_border_clamp"] = enableableExtension(&Extensions::textureBorderClampOES);
map["GL_EXT_texture_buffer"] = enableableExtension(&Extensions::textureBufferEXT);
map["GL_OES_texture_buffer"] = enableableExtension(&Extensions::textureBufferOES);
map["GL_OES_texture_compression_astc"] = enableableExtension(&Extensions::textureCompressionAstcOES);
map["GL_KHR_texture_compression_astc_hdr"] = enableableExtension(&Extensions::textureCompressionAstcHdrKHR);
map["GL_KHR_texture_compression_astc_ldr"] = enableableExtension(&Extensions::textureCompressionAstcLdrKHR);
map["GL_KHR_texture_compression_astc_sliced_3d"] = enableableExtension(&Extensions::textureCompressionAstcSliced3dKHR);
map["GL_EXT_texture_compression_bptc"] = enableableExtension(&Extensions::textureCompressionBptcEXT);
map["GL_EXT_texture_compression_dxt1"] = enableableExtension(&Extensions::textureCompressionDxt1EXT);
map["GL_IMG_texture_compression_pvrtc"] = enableableExtension(&Extensions::textureCompressionPvrtcIMG);
map["GL_IMG_texture_compression_pvrtc2"] = enableableExtension(&Extensions::textureCompressionPvrtc2IMG);
map["GL_EXT_texture_compression_rgtc"] = enableableExtension(&Extensions::textureCompressionRgtcEXT);
map["GL_EXT_texture_compression_s3tc"] = enableableExtension(&Extensions::textureCompressionS3tcEXT);
map["GL_EXT_texture_compression_s3tc_srgb"] = enableableExtension(&Extensions::textureCompressionS3tcSrgbEXT);
map["GL_EXT_texture_cube_map_array"] = enableableExtension(&Extensions::textureCubeMapArrayEXT);
map["GL_OES_texture_cube_map_array"] = enableableExtension(&Extensions::textureCubeMapArrayOES);
map["GL_EXT_texture_filter_anisotropic"] = enableableExtension(&Extensions::textureFilterAnisotropicEXT);
map["GL_OES_texture_float"] = enableableExtension(&Extensions::textureFloatOES);
map["GL_OES_texture_float_linear"] = enableableExtension(&Extensions::textureFloatLinearOES);
map["GL_EXT_texture_format_BGRA8888"] = enableableExtension(&Extensions::textureFormatBGRA8888EXT);
map["GL_EXT_texture_format_sRGB_override"] = esOnlyExtension(&Extensions::textureFormatSRGBOverrideEXT);
map["GL_OES_texture_half_float"] = enableableExtension(&Extensions::textureHalfFloatOES);
map["GL_OES_texture_half_float_linear"] = enableableExtension(&Extensions::textureHalfFloatLinearOES);
map["GL_EXT_texture_norm16"] = enableableExtension(&Extensions::textureNorm16EXT);
map["GL_OES_texture_npot"] = enableableExtension(&Extensions::textureNpotOES);
map["GL_EXT_texture_rg"] = enableableExtension(&Extensions::textureRgEXT);
map["GL_EXT_texture_sRGB_decode"] = esOnlyExtension(&Extensions::textureSRGBDecodeEXT);
map["GL_EXT_texture_sRGB_R8"] = enableableExtension(&Extensions::textureSRGBR8EXT);
map["GL_EXT_texture_sRGB_RG8"] = enableableExtension(&Extensions::textureSRGBRG8EXT);
map["GL_OES_texture_stencil8"] = enableableExtension(&Extensions::textureStencil8OES);
map["GL_EXT_texture_storage"] = enableableExtension(&Extensions::textureStorageEXT);
map["GL_OES_texture_storage_multisample_2d_array"] = enableableExtension(&Extensions::textureStorageMultisample2dArrayOES);
map["GL_EXT_texture_type_2_10_10_10_REV"] = enableableExtension(&Extensions::textureType2101010REVEXT);
map["GL_ANGLE_texture_usage"] = enableableExtension(&Extensions::textureUsageANGLE);
map["GL_ANGLE_translated_shader_source"] = esOnlyExtension(&Extensions::translatedShaderSourceANGLE);
map["GL_EXT_unpack_subimage"] = enableableExtension(&Extensions::unpackSubimageEXT);
map["GL_OES_vertex_array_object"] = enableableExtension(&Extensions::vertexArrayObjectOES);
map["GL_OES_vertex_half_float"] = enableableExtension(&Extensions::vertexHalfFloatOES);
map["GL_OES_vertex_type_10_10_10_2"] = enableableExtension(&Extensions::vertexType1010102OES);
map["GL_WEBGL_video_texture"] = enableableExtension(&Extensions::videoTextureWEBGL);
map["GL_EXT_YUV_target"] = enableableExtension(&Extensions::YUVTargetEXT);
// ANGLE unofficial extension strings
// ----------------------------------
map["GL_ANGLE_base_vertex_base_instance"] = enableableExtension(&Extensions::baseVertexBaseInstanceANGLE);
map["GL_CHROMIUM_bind_generates_resource"] = esOnlyExtension(&Extensions::bindGeneratesResourceCHROMIUM);
map["GL_CHROMIUM_bind_uniform_location"] = esOnlyExtension(&Extensions::bindUniformLocationCHROMIUM);
map["GL_ANGLE_client_arrays"] = esOnlyExtension(&Extensions::clientArraysANGLE);
map["GL_CHROMIUM_color_buffer_float_rgb"] = enableableExtension(&Extensions::colorBufferFloatRgbCHROMIUM);
map["GL_CHROMIUM_color_buffer_float_rgba"] = enableableExtension(&Extensions::colorBufferFloatRgbaCHROMIUM);
map["GL_ANGLE_compressed_texture_etc"] = enableableExtension(&Extensions::compressedTextureEtcANGLE);
map["GL_CHROMIUM_copy_compressed_texture"] = esOnlyExtension(&Extensions::copyCompressedTextureCHROMIUM);
map["GL_CHROMIUM_copy_texture"] = esOnlyExtension(&Extensions::copyTextureCHROMIUM);
map["GL_ANGLE_copy_texture_3d"] = enableableExtension(&Extensions::copyTexture3dANGLE);
map["GL_CHROMIUM_framebuffer_mixed_samples"] = esOnlyExtension(&Extensions::framebufferMixedSamplesCHROMIUM);
map["GL_ANGLE_framebuffer_multisample"] = enableableExtension(&Extensions::framebufferMultisampleANGLE);
map["GL_ANGLE_get_image"] = enableableExtension(&Extensions::getImageANGLE);
map["GL_ANGLE_get_serialized_context_string"] = esOnlyExtension(&Extensions::getSerializedContextStringANGLE);
map["GL_ANGLE_get_tex_level_parameter"] = enableableExtension(&Extensions::getTexLevelParameterANGLE);
map["GL_CHROMIUM_lose_context"] = enableableExtension(&Extensions::loseContextCHROMIUM);
map["GL_ANGLE_lossy_etc_decode"] = enableableExtension(&Extensions::lossyEtcDecodeANGLE);
map["GL_ANGLE_memory_object_flags"] = enableableExtension(&Extensions::memoryObjectFlagsANGLE);
map["GL_ANGLE_memory_object_fuchsia"] = enableableExtension(&Extensions::memoryObjectFuchsiaANGLE);
map["GL_ANGLE_memory_size"] = enableableExtension(&Extensions::memorySizeANGLE);
map["GL_ANGLE_multi_draw"] = enableableExtension(&Extensions::multiDrawANGLE);
map["GL_ANGLE_multiview_multisample"] = enableableExtension(&Extensions::multiviewMultisampleANGLE);
map["GL_ANGLE_program_binary"] = esOnlyExtension(&Extensions::programBinaryANGLE);
map["GL_ANGLE_program_cache_control"] = esOnlyExtension(&Extensions::programCacheControlANGLE);
map["GL_ANGLE_provoking_vertex"] = enableableExtension(&Extensions::provokingVertexANGLE);
map["GL_ANGLE_relaxed_vertex_attribute_type"] = esOnlyExtension(&Extensions::relaxedVertexAttributeTypeANGLE);
map["GL_ANGLE_request_extension"] = esOnlyExtension(&Extensions::requestExtensionANGLE);
map["GL_ANGLE_robust_client_memory"] = esOnlyExtension(&Extensions::robustClientMemoryANGLE);
map["GL_ANGLE_robust_resource_initialization"] = esOnlyExtension(&Extensions::robustResourceInitializationANGLE);
map["GL_ANGLE_semaphore_fuchsia"] = enableableExtension(&Extensions::semaphoreFuchsiaANGLE);
map["GL_CHROMIUM_sync_query"] = enableableExtension(&Extensions::syncQueryCHROMIUM);
map["GL_ANGLE_texture_compression_dxt3"] = enableableExtension(&Extensions::textureCompressionDxt3ANGLE);
map["GL_ANGLE_texture_compression_dxt5"] = enableableExtension(&Extensions::textureCompressionDxt5ANGLE);
map["GL_ANGLE_texture_external_update"] = enableableExtension(&Extensions::textureExternalUpdateANGLE);
map["GL_CHROMIUM_texture_filtering_hint"] = enableableExtension(&Extensions::textureFilteringHintCHROMIUM);
map["GL_ANGLE_texture_multisample"] = enableableExtension(&Extensions::textureMultisampleANGLE);
map["GL_ANGLE_texture_rectangle"] = enableableDisablableExtension(&Extensions::textureRectangleANGLE);
map["GL_ANGLE_webgl_compatibility"] = esOnlyExtension(&Extensions::webglCompatibilityANGLE);
map["GL_ANGLE_yuv_internal_format"] = enableableExtension(&Extensions::yuvInternalFormatANGLE);
// GLES 1.0 and 1.1 extension strings
// ----------------------------------
map["GL_OES_draw_texture"] = enableableExtension(&Extensions::drawTextureOES);
map["GL_OES_framebuffer_object"] = enableableExtension(&Extensions::framebufferObjectOES);
map["GL_OES_matrix_palette"] = enableableExtension(&Extensions::matrixPaletteOES);
map["GL_OES_point_size_array"] = enableableExtension(&Extensions::pointSizeArrayOES);
map["GL_OES_point_sprite"] = enableableExtension(&Extensions::pointSpriteOES);
map["GL_OES_query_matrix"] = enableableExtension(&Extensions::queryMatrixOES);
map["GL_OES_texture_cube_map"] = enableableExtension(&Extensions::textureCubeMapOES);
// clang-format on
#if defined(ANGLE_ENABLE_ASSERTS)
// Verify all extension strings start with GL_
for (const auto &extension : map)
{
ASSERT(extension.first.rfind("GL_", 0) == 0);
}
#endif
return map;
};
static const angle::base::NoDestructor<ExtensionInfoMap> extensionInfo(buildExtensionInfoMap());
return *extensionInfo;
}
} // namespace gl

Просмотреть файл

@ -0,0 +1,669 @@
// GENERATED FILE - DO NOT EDIT.
// Generated by gen_extensions.py using data from registry_xml.py and gl.xml
//
// Copyright 2021 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// gles_extensions_autogen.h: GLES extension information.
#ifndef LIBANGLE_GLES_EXTENSIONS_AUTOGEN_H_
#define LIBANGLE_GLES_EXTENSIONS_AUTOGEN_H_
namespace gl
{
class TextureCapsMap;
struct Extensions
{
Extensions();
Extensions(const Extensions &other);
Extensions &operator=(const Extensions &other);
// Generate a vector of supported extension strings
std::vector<std::string> getStrings() const;
// Set all texture related extension support based on the supported textures.
// Determines support for:
// GL_OES_packed_depth_stencil
// GL_OES_rgb8_rgba8
// GL_EXT_texture_format_BGRA8888
// GL_EXT_color_buffer_half_float,
// GL_OES_texture_half_float, GL_OES_texture_half_float_linear
// GL_OES_texture_float, GL_OES_texture_float_linear
// GL_EXT_texture_rg
// GL_EXT_texture_type_2_10_10_10_REV
// GL_EXT_texture_compression_dxt1, GL_ANGLE_texture_compression_dxt3,
// GL_ANGLE_texture_compression_dxt5
// GL_KHR_texture_compression_astc_ldr, GL_OES_texture_compression_astc.
// NOTE: GL_KHR_texture_compression_astc_hdr must be enabled separately. Support for the
// HDR profile cannot be determined from the format enums alone.
// GL_OES_compressed_ETC1_RGB8_texture
// GL_EXT_sRGB
// GL_ANGLE_depth_texture, GL_OES_depth32
// GL_EXT_color_buffer_float
// GL_EXT_texture_norm16
// GL_EXT_texture_compression_bptc
// GL_EXT_texture_compression_rgtc
void setTextureExtensionSupport(const TextureCapsMap &textureCaps);
// Helper functions
bool copyImageAny() const { return (copyImageEXT || copyImageOES); }
bool depthTextureAny() const { return (depthTextureANGLE || depthTextureOES); }
bool drawBuffersIndexedAny() const { return (drawBuffersIndexedEXT || drawBuffersIndexedOES); }
bool drawElementsBaseVertexAny() const
{
return (drawElementsBaseVertexEXT || drawElementsBaseVertexOES);
}
bool framebufferBlitAny() const { return (framebufferBlitANGLE || framebufferBlitNV); }
bool geometryShaderAny() const { return (geometryShaderEXT || geometryShaderOES); }
bool instancedArraysAny() const { return (instancedArraysANGLE || instancedArraysEXT); }
bool shaderIoBlocksAny() const { return (shaderIoBlocksEXT || shaderIoBlocksOES); }
bool textureBorderClampAny() const { return (textureBorderClampEXT || textureBorderClampOES); }
bool textureBufferAny() const { return (textureBufferEXT || textureBufferOES); }
bool textureCubeMapArrayAny() const
{
return (textureCubeMapArrayEXT || textureCubeMapArrayOES);
}
// GLES 2.0+ extensions
// --------------------
// GL_KHR_blend_equation_advanced
bool blendEquationAdvancedKHR = false;
// GL_EXT_blend_func_extended
bool blendFuncExtendedEXT = false;
// GL_EXT_blend_minmax
bool blendMinmaxEXT = false;
// GL_EXT_buffer_storage
bool bufferStorageEXT = false;
// GL_EXT_clip_control
bool clipControlEXT = false;
// GL_EXT_clip_cull_distance
bool clipCullDistanceEXT = false;
// GL_APPLE_clip_distance
bool clipDistanceAPPLE = false;
// GL_EXT_color_buffer_float
bool colorBufferFloatEXT = false;
// GL_EXT_color_buffer_half_float
bool colorBufferHalfFloatEXT = false;
// GL_OES_compressed_EAC_R11_signed_texture
bool compressedEACR11SignedTextureOES = false;
// GL_OES_compressed_EAC_R11_unsigned_texture
bool compressedEACR11UnsignedTextureOES = false;
// GL_OES_compressed_EAC_RG11_signed_texture
bool compressedEACRG11SignedTextureOES = false;
// GL_OES_compressed_EAC_RG11_unsigned_texture
bool compressedEACRG11UnsignedTextureOES = false;
// GL_EXT_compressed_ETC1_RGB8_sub_texture
bool compressedETC1RGB8SubTextureEXT = false;
// GL_OES_compressed_ETC1_RGB8_texture
bool compressedETC1RGB8TextureOES = false;
// GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture
bool compressedETC2PunchthroughARGBA8TextureOES = false;
// GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture
bool compressedETC2PunchthroughASRGB8AlphaTextureOES = false;
// GL_OES_compressed_ETC2_RGB8_texture
bool compressedETC2RGB8TextureOES = false;
// GL_OES_compressed_ETC2_RGBA8_texture
bool compressedETC2RGBA8TextureOES = false;
// GL_OES_compressed_ETC2_sRGB8_alpha8_texture
bool compressedETC2SRGB8Alpha8TextureOES = false;
// GL_OES_compressed_ETC2_sRGB8_texture
bool compressedETC2SRGB8TextureOES = false;
// GL_EXT_copy_image
bool copyImageEXT = false;
// GL_OES_copy_image
bool copyImageOES = false;
// GL_KHR_debug
bool debugKHR = false;
// GL_EXT_debug_label
bool debugLabelEXT = false;
// GL_EXT_debug_marker
bool debugMarkerEXT = false;
// GL_OES_depth24
bool depth24OES = false;
// GL_OES_depth32
bool depth32OES = false;
// GL_NV_depth_buffer_float2
bool depthBufferFloat2NV = false;
// GL_ANGLE_depth_texture
bool depthTextureANGLE = false;
// GL_OES_depth_texture
bool depthTextureOES = false;
// GL_OES_depth_texture_cube_map
bool depthTextureCubeMapOES = false;
// GL_EXT_discard_framebuffer
bool discardFramebufferEXT = false;
// GL_EXT_disjoint_timer_query
bool disjointTimerQueryEXT = false;
// GL_EXT_draw_buffers
bool drawBuffersEXT = false;
// GL_EXT_draw_buffers_indexed
bool drawBuffersIndexedEXT = false;
// GL_OES_draw_buffers_indexed
bool drawBuffersIndexedOES = false;
// GL_EXT_draw_elements_base_vertex
bool drawElementsBaseVertexEXT = false;
// GL_OES_draw_elements_base_vertex
bool drawElementsBaseVertexOES = false;
// GL_OES_EGL_image
bool EGLImageOES = false;
// GL_EXT_EGL_image_array
bool EGLImageArrayEXT = false;
// GL_OES_EGL_image_external
bool EGLImageExternalOES = false;
// GL_OES_EGL_image_external_essl3
bool EGLImageExternalEssl3OES = false;
// GL_EXT_EGL_image_external_wrap_modes
bool EGLImageExternalWrapModesEXT = false;
// GL_EXT_EGL_image_storage
bool EGLImageStorageEXT = false;
// GL_NV_EGL_stream_consumer_external
bool EGLStreamConsumerExternalNV = false;
// GL_OES_EGL_sync
bool EGLSyncOES = false;
// GL_OES_element_index_uint
bool elementIndexUintOES = false;
// GL_EXT_external_buffer
bool externalBufferEXT = false;
// GL_OES_fbo_render_mipmap
bool fboRenderMipmapOES = false;
// GL_NV_fence
bool fenceNV = false;
// GL_EXT_float_blend
bool floatBlendEXT = false;
// GL_EXT_frag_depth
bool fragDepthEXT = false;
// GL_ANGLE_framebuffer_blit
bool framebufferBlitANGLE = false;
// GL_NV_framebuffer_blit
bool framebufferBlitNV = false;
// GL_EXT_geometry_shader
bool geometryShaderEXT = false;
// GL_OES_geometry_shader
bool geometryShaderOES = false;
// GL_OES_get_program_binary
bool getProgramBinaryOES = false;
// GL_EXT_gpu_shader5
bool gpuShader5EXT = false;
// GL_ANGLE_instanced_arrays
bool instancedArraysANGLE = false;
// GL_EXT_instanced_arrays
bool instancedArraysEXT = false;
// GL_OES_mapbuffer
bool mapbufferOES = false;
// GL_EXT_map_buffer_range
bool mapBufferRangeEXT = false;
// GL_EXT_memory_object
bool memoryObjectEXT = false;
// GL_EXT_memory_object_fd
bool memoryObjectFdEXT = false;
// GL_EXT_multisample_compatibility
bool multisampleCompatibilityEXT = false;
// GL_EXT_multisampled_render_to_texture
bool multisampledRenderToTextureEXT = false;
// GL_EXT_multisampled_render_to_texture2
bool multisampledRenderToTexture2EXT = false;
// GL_OVR_multiview
bool multiviewOVR = false;
// GL_OVR_multiview2
bool multiview2OVR = false;
// GL_KHR_no_error
bool noErrorKHR = false;
// GL_EXT_occlusion_query_boolean
bool occlusionQueryBooleanEXT = false;
// GL_OES_packed_depth_stencil
bool packedDepthStencilOES = false;
// GL_ANGLE_pack_reverse_row_order
bool packReverseRowOrderANGLE = false;
// GL_NV_pack_subimage
bool packSubimageNV = false;
// GL_KHR_parallel_shader_compile
bool parallelShaderCompileKHR = false;
// GL_NV_pixel_buffer_object
bool pixelBufferObjectNV = false;
// GL_EXT_primitive_bounding_box
bool primitiveBoundingBoxEXT = false;
// GL_EXT_protected_textures
bool protectedTexturesEXT = false;
// GL_EXT_pvrtc_sRGB
bool pvrtcSRGBEXT = false;
// GL_NV_read_depth
bool readDepthNV = false;
// GL_EXT_read_format_bgra
bool readFormatBgraEXT = false;
// GL_NV_read_stencil
bool readStencilNV = false;
// GL_OES_rgb8_rgba8
bool rgb8Rgba8OES = false;
// GL_KHR_robust_buffer_access_behavior
bool robustBufferAccessBehaviorKHR = false;
// GL_EXT_robustness
bool robustnessEXT = false;
// GL_NV_robustness_video_memory_purge
bool robustnessVideoMemoryPurgeNV = false;
// GL_OES_sample_shading
bool sampleShadingOES = false;
// GL_OES_sample_variables
bool sampleVariablesOES = false;
// GL_EXT_semaphore
bool semaphoreEXT = false;
// GL_EXT_semaphore_fd
bool semaphoreFdEXT = false;
// GL_EXT_separate_shader_objects
bool separateShaderObjectsEXT = false;
// GL_EXT_shader_framebuffer_fetch_non_coherent
bool shaderFramebufferFetchNonCoherentEXT = false;
// GL_OES_shader_image_atomic
bool shaderImageAtomicOES = false;
// GL_EXT_shader_io_blocks
bool shaderIoBlocksEXT = false;
// GL_OES_shader_io_blocks
bool shaderIoBlocksOES = false;
// GL_OES_shader_multisample_interpolation
bool shaderMultisampleInterpolationOES = false;
// GL_EXT_shader_non_constant_global_initializers
bool shaderNonConstantGlobalInitializersEXT = false;
// GL_NV_shader_noperspective_interpolation
bool shaderNoperspectiveInterpolationNV = false;
// GL_EXT_shader_texture_lod
bool shaderTextureLodEXT = false;
// GL_EXT_shadow_samplers
bool shadowSamplersEXT = false;
// GL_EXT_sRGB
bool sRGBEXT = false;
// GL_EXT_sRGB_write_control
bool sRGBWriteControlEXT = false;
// GL_OES_standard_derivatives
bool standardDerivativesOES = false;
// GL_OES_surfaceless_context
bool surfacelessContextOES = false;
// GL_ARB_sync
bool syncARB = false;
// GL_EXT_tessellation_shader
bool tessellationShaderEXT = false;
// GL_OES_texture_3D
bool texture3DOES = false;
// GL_EXT_texture_border_clamp
bool textureBorderClampEXT = false;
// GL_OES_texture_border_clamp
bool textureBorderClampOES = false;
// GL_EXT_texture_buffer
bool textureBufferEXT = false;
// GL_OES_texture_buffer
bool textureBufferOES = false;
// GL_OES_texture_compression_astc
bool textureCompressionAstcOES = false;
// GL_KHR_texture_compression_astc_hdr
bool textureCompressionAstcHdrKHR = false;
// GL_KHR_texture_compression_astc_ldr
bool textureCompressionAstcLdrKHR = false;
// GL_KHR_texture_compression_astc_sliced_3d
bool textureCompressionAstcSliced3dKHR = false;
// GL_EXT_texture_compression_bptc
bool textureCompressionBptcEXT = false;
// GL_EXT_texture_compression_dxt1
bool textureCompressionDxt1EXT = false;
// GL_IMG_texture_compression_pvrtc
bool textureCompressionPvrtcIMG = false;
// GL_IMG_texture_compression_pvrtc2
bool textureCompressionPvrtc2IMG = false;
// GL_EXT_texture_compression_rgtc
bool textureCompressionRgtcEXT = false;
// GL_EXT_texture_compression_s3tc
bool textureCompressionS3tcEXT = false;
// GL_EXT_texture_compression_s3tc_srgb
bool textureCompressionS3tcSrgbEXT = false;
// GL_EXT_texture_cube_map_array
bool textureCubeMapArrayEXT = false;
// GL_OES_texture_cube_map_array
bool textureCubeMapArrayOES = false;
// GL_EXT_texture_filter_anisotropic
bool textureFilterAnisotropicEXT = false;
// GL_OES_texture_float
bool textureFloatOES = false;
// GL_OES_texture_float_linear
bool textureFloatLinearOES = false;
// GL_EXT_texture_format_BGRA8888
bool textureFormatBGRA8888EXT = false;
// GL_EXT_texture_format_sRGB_override
bool textureFormatSRGBOverrideEXT = false;
// GL_OES_texture_half_float
bool textureHalfFloatOES = false;
// GL_OES_texture_half_float_linear
bool textureHalfFloatLinearOES = false;
// GL_EXT_texture_norm16
bool textureNorm16EXT = false;
// GL_OES_texture_npot
bool textureNpotOES = false;
// GL_EXT_texture_rg
bool textureRgEXT = false;
// GL_EXT_texture_sRGB_decode
bool textureSRGBDecodeEXT = false;
// GL_EXT_texture_sRGB_R8
bool textureSRGBR8EXT = false;
// GL_EXT_texture_sRGB_RG8
bool textureSRGBRG8EXT = false;
// GL_OES_texture_stencil8
bool textureStencil8OES = false;
// GL_EXT_texture_storage
bool textureStorageEXT = false;
// GL_OES_texture_storage_multisample_2d_array
bool textureStorageMultisample2dArrayOES = false;
// GL_EXT_texture_type_2_10_10_10_REV
bool textureType2101010REVEXT = false;
// GL_ANGLE_texture_usage
bool textureUsageANGLE = false;
// GL_ANGLE_translated_shader_source
bool translatedShaderSourceANGLE = false;
// GL_EXT_unpack_subimage
bool unpackSubimageEXT = false;
// GL_OES_vertex_array_object
bool vertexArrayObjectOES = false;
// GL_OES_vertex_half_float
bool vertexHalfFloatOES = false;
// GL_OES_vertex_type_10_10_10_2
bool vertexType1010102OES = false;
// GL_WEBGL_video_texture
bool videoTextureWEBGL = false;
// GL_EXT_YUV_target
bool YUVTargetEXT = false;
// ANGLE unofficial extensions
// ---------------------------
// GL_ANGLE_base_vertex_base_instance
bool baseVertexBaseInstanceANGLE = false;
// GL_CHROMIUM_bind_generates_resource
bool bindGeneratesResourceCHROMIUM = false;
// GL_CHROMIUM_bind_uniform_location
bool bindUniformLocationCHROMIUM = false;
// GL_ANGLE_client_arrays
bool clientArraysANGLE = false;
// GL_CHROMIUM_color_buffer_float_rgb
bool colorBufferFloatRgbCHROMIUM = false;
// GL_CHROMIUM_color_buffer_float_rgba
bool colorBufferFloatRgbaCHROMIUM = false;
// GL_ANGLE_compressed_texture_etc
bool compressedTextureEtcANGLE = false;
// GL_CHROMIUM_copy_compressed_texture
bool copyCompressedTextureCHROMIUM = false;
// GL_CHROMIUM_copy_texture
bool copyTextureCHROMIUM = false;
// GL_ANGLE_copy_texture_3d
bool copyTexture3dANGLE = false;
// GL_CHROMIUM_framebuffer_mixed_samples
bool framebufferMixedSamplesCHROMIUM = false;
// GL_ANGLE_framebuffer_multisample
bool framebufferMultisampleANGLE = false;
// GL_ANGLE_get_image
bool getImageANGLE = false;
// GL_ANGLE_get_serialized_context_string
bool getSerializedContextStringANGLE = false;
// GL_ANGLE_get_tex_level_parameter
bool getTexLevelParameterANGLE = false;
// GL_CHROMIUM_lose_context
bool loseContextCHROMIUM = false;
// GL_ANGLE_lossy_etc_decode
bool lossyEtcDecodeANGLE = false;
// GL_ANGLE_memory_object_flags
bool memoryObjectFlagsANGLE = false;
// GL_ANGLE_memory_object_fuchsia
bool memoryObjectFuchsiaANGLE = false;
// GL_ANGLE_memory_size
bool memorySizeANGLE = false;
// GL_ANGLE_multi_draw
bool multiDrawANGLE = false;
// GL_ANGLE_multiview_multisample
bool multiviewMultisampleANGLE = false;
// GL_ANGLE_program_binary
bool programBinaryANGLE = false;
// GL_ANGLE_program_cache_control
bool programCacheControlANGLE = false;
// GL_ANGLE_provoking_vertex
bool provokingVertexANGLE = false;
// GL_ANGLE_relaxed_vertex_attribute_type
bool relaxedVertexAttributeTypeANGLE = false;
// GL_ANGLE_request_extension
bool requestExtensionANGLE = false;
// GL_ANGLE_robust_client_memory
bool robustClientMemoryANGLE = false;
// GL_ANGLE_robust_resource_initialization
bool robustResourceInitializationANGLE = false;
// GL_ANGLE_semaphore_fuchsia
bool semaphoreFuchsiaANGLE = false;
// GL_CHROMIUM_sync_query
bool syncQueryCHROMIUM = false;
// GL_ANGLE_texture_compression_dxt3
bool textureCompressionDxt3ANGLE = false;
// GL_ANGLE_texture_compression_dxt5
bool textureCompressionDxt5ANGLE = false;
// GL_ANGLE_texture_external_update
bool textureExternalUpdateANGLE = false;
// GL_CHROMIUM_texture_filtering_hint
bool textureFilteringHintCHROMIUM = false;
// GL_ANGLE_texture_multisample
bool textureMultisampleANGLE = false;
// GL_ANGLE_texture_rectangle
bool textureRectangleANGLE = false;
// GL_ANGLE_webgl_compatibility
bool webglCompatibilityANGLE = false;
// GL_ANGLE_yuv_internal_format
bool yuvInternalFormatANGLE = false;
// GLES 1.0 and 1.1 extensions
// ---------------------------
// GL_OES_draw_texture
bool drawTextureOES = false;
// GL_OES_framebuffer_object
bool framebufferObjectOES = false;
// GL_OES_matrix_palette
bool matrixPaletteOES = false;
// GL_OES_point_size_array
bool pointSizeArrayOES = false;
// GL_OES_point_sprite
bool pointSpriteOES = false;
// GL_OES_query_matrix
bool queryMatrixOES = false;
// GL_OES_texture_cube_map
bool textureCubeMapOES = false;
};
} // namespace gl
#endif // LIBANGLE_GLES_EXTENSIONS_AUTOGEN_H_

Просмотреть файл

@ -589,17 +589,6 @@ void DispatchTableGL::initProcsDesktopGL(const gl::Version &version,
ASSIGN("glUniformSubroutinesuiv", uniformSubroutinesuiv);
}
if (extensions.count("GL_ARB_sync") != 0)
{
ASSIGN("glClientWaitSync", clientWaitSync);
ASSIGN("glDeleteSync", deleteSync);
ASSIGN("glFenceSync", fenceSync);
ASSIGN("glGetInteger64v", getInteger64v);
ASSIGN("glGetSynciv", getSynciv);
ASSIGN("glIsSync", isSync);
ASSIGN("glWaitSync", waitSync);
}
if (extensions.count("GL_ARB_tessellation_shader") != 0)
{
ASSIGN("glPatchParameterfv", patchParameterfv);
@ -2650,6 +2639,17 @@ void DispatchTableGL::initProcsGLES(const gl::Version &version,
void DispatchTableGL::initProcsSharedExtensions(const std::set<std::string> &extensions)
{
if (extensions.count("GL_ARB_sync") != 0)
{
ASSIGN("glClientWaitSync", clientWaitSync);
ASSIGN("glDeleteSync", deleteSync);
ASSIGN("glFenceSync", fenceSync);
ASSIGN("glGetInteger64v", getInteger64v);
ASSIGN("glGetSynciv", getSynciv);
ASSIGN("glIsSync", isSync);
ASSIGN("glWaitSync", waitSync);
}
if (extensions.count("GL_EXT_blend_minmax") != 0)
{
ASSIGN("glBlendEquationEXT", blendEquation);
@ -3377,17 +3377,6 @@ void DispatchTableGL::initProcsDesktopGLNULL(const gl::Version &version,
uniformSubroutinesuiv = &glUniformSubroutinesuivNULL;
}
if (extensions.count("GL_ARB_sync") != 0)
{
clientWaitSync = &glClientWaitSyncNULL;
deleteSync = &glDeleteSyncNULL;
fenceSync = &glFenceSyncNULL;
getInteger64v = &glGetInteger64vNULL;
getSynciv = &glGetSyncivNULL;
isSync = &glIsSyncNULL;
waitSync = &glWaitSyncNULL;
}
if (extensions.count("GL_ARB_tessellation_shader") != 0)
{
patchParameterfv = &glPatchParameterfvNULL;
@ -5436,6 +5425,17 @@ void DispatchTableGL::initProcsGLESNULL(const gl::Version &version,
void DispatchTableGL::initProcsSharedExtensionsNULL(const std::set<std::string> &extensions)
{
if (extensions.count("GL_ARB_sync") != 0)
{
clientWaitSync = &glClientWaitSyncNULL;
deleteSync = &glDeleteSyncNULL;
fenceSync = &glFenceSyncNULL;
getInteger64v = &glGetInteger64vNULL;
getSynciv = &glGetSyncivNULL;
isSync = &glIsSyncNULL;
waitSync = &glWaitSyncNULL;
}
if (extensions.count("GL_EXT_blend_minmax") != 0)
{
blendEquation = &glBlendEquationNULL;

Просмотреть файл

@ -80,6 +80,8 @@ bool ValidateCopySubTexture3DANGLE(const Context *context,
GLboolean unpackPremultiplyAlpha,
GLboolean unpackUnmultiplyAlpha);
// GL_ANGLE_depth_texture
// GL_ANGLE_framebuffer_blit
bool ValidateBlitFramebufferANGLE(const Context *context,
GLint srcX0,
@ -219,6 +221,8 @@ bool ValidateMultiDrawElementsInstancedANGLE(const Context *context,
const GLsizei *instanceCounts,
GLsizei drawcount);
// GL_ANGLE_pack_reverse_row_order
// GL_ANGLE_program_binary
// GL_ANGLE_provoking_vertex
@ -669,6 +673,10 @@ bool ValidateImportSemaphoreZirconHandleANGLE(const Context *context,
HandleType handleTypePacked,
GLuint handle);
// GL_ANGLE_texture_compression_dxt3
// GL_ANGLE_texture_compression_dxt5
// GL_ANGLE_texture_external_update
bool ValidateTexImage2DExternalANGLE(const Context *context,
TextureTarget targetPacked,
@ -695,6 +703,8 @@ bool ValidateGetMultisamplefvANGLE(const Context *context,
const GLfloat *val);
bool ValidateSampleMaskiANGLE(const Context *context, GLuint maskNumber, GLbitfield mask);
// GL_ANGLE_texture_usage
// GL_ANGLE_translated_shader_source
bool ValidateGetTranslatedShaderSourceANGLE(const Context *context,
ShaderProgramID shaderPacked,
@ -702,6 +712,10 @@ bool ValidateGetTranslatedShaderSourceANGLE(const Context *context,
const GLsizei *length,
const GLchar *source);
// GL_APPLE_clip_distance
// GL_ARB_sync
// GL_CHROMIUM_bind_uniform_location
bool ValidateBindUniformLocationCHROMIUM(const Context *context,
ShaderProgramID programPacked,
@ -781,6 +795,8 @@ bool ValidateGetProgramResourceLocationIndexEXT(const Context *context,
GLenum programInterface,
const GLchar *name);
// GL_EXT_blend_minmax
// GL_EXT_buffer_storage
bool ValidateBufferStorageEXT(const Context *context,
BufferBinding targetPacked,
@ -791,6 +807,12 @@ bool ValidateBufferStorageEXT(const Context *context,
// GL_EXT_clip_control
bool ValidateClipControlEXT(const Context *context, GLenum origin, GLenum depth);
// GL_EXT_clip_cull_distance
// GL_EXT_color_buffer_float
// GL_EXT_color_buffer_half_float
// GL_EXT_copy_image
bool ValidateCopyImageSubDataEXT(const Context *context,
GLuint srcName,
@ -932,6 +954,8 @@ bool ValidateNamedBufferStorageExternalEXT(const Context *context,
GLeglClientBufferEXT clientBuffer,
GLbitfield flags);
// GL_EXT_float_blend
// GL_EXT_geometry_shader
bool ValidateFramebufferTextureEXT(const Context *context,
GLenum target,
@ -939,6 +963,8 @@ bool ValidateFramebufferTextureEXT(const Context *context,
TextureID texturePacked,
GLint level);
// GL_EXT_gpu_shader5
// GL_EXT_instanced_arrays
bool ValidateDrawArraysInstancedEXT(const Context *context,
PrimitiveMode modePacked,
@ -1351,6 +1377,12 @@ bool ValidateFramebufferFetchBarrierEXT(const Context *context);
// GL_EXT_shader_io_blocks
// GL_EXT_shader_non_constant_global_initializers
// GL_EXT_shader_texture_lod
// GL_EXT_shadow_samplers
// GL_EXT_tessellation_shader
bool ValidatePatchParameteriEXT(const Context *context, GLenum pname, GLint value);
@ -1416,10 +1448,18 @@ bool ValidateTexBufferRangeEXT(const Context *context,
// GL_EXT_texture_format_BGRA8888
// GL_EXT_texture_format_sRGB_override
// GL_EXT_texture_norm16
// GL_EXT_texture_rg
// GL_EXT_texture_sRGB_R8
// GL_EXT_texture_sRGB_RG8
// GL_EXT_texture_sRGB_decode
// GL_EXT_texture_storage
bool ValidateTexStorage1DEXT(const Context *context,
GLenum target,
@ -1440,6 +1480,10 @@ bool ValidateTexStorage3DEXT(const Context *context,
GLsizei height,
GLsizei depth);
// GL_EXT_texture_type_2_10_10_10_REV
// GL_EXT_unpack_subimage
// GL_IMG_texture_compression_pvrtc
// GL_IMG_texture_compression_pvrtc2
@ -1502,9 +1546,13 @@ bool ValidatePushDebugGroupKHR(const Context *context,
GLsizei length,
const GLchar *message);
// GL_KHR_no_error
// GL_KHR_parallel_shader_compile
bool ValidateMaxShaderCompilerThreadsKHR(const Context *context, GLuint count);
// GL_KHR_robust_buffer_access_behavior
// GL_KHR_texture_compression_astc_hdr
// GL_KHR_texture_compression_astc_ldr
@ -1536,6 +1584,16 @@ bool ValidateBlitFramebufferNV(const Context *context,
GLbitfield mask,
GLenum filter);
// GL_NV_pixel_buffer_object
// GL_NV_read_depth
// GL_NV_read_stencil
// GL_NV_robustness_video_memory_purge
// GL_NV_shader_noperspective_interpolation
// GL_OES_EGL_image
bool ValidateEGLImageTargetRenderbufferStorageOES(const Context *context,
GLenum target,
@ -1544,6 +1602,10 @@ bool ValidateEGLImageTargetTexture2DOES(const Context *context,
TextureType targetPacked,
GLeglImageOES image);
// GL_OES_EGL_image_external
// GL_OES_EGL_image_external_essl3
// GL_OES_compressed_ETC1_RGB8_texture
// GL_OES_copy_image
@ -1564,8 +1626,12 @@ bool ValidateCopyImageSubDataOES(const Context *context,
GLsizei srcHeight,
GLsizei srcDepth);
// GL_OES_depth24
// GL_OES_depth32
// GL_OES_depth_texture
// GL_OES_draw_buffers_indexed
bool ValidateBlendEquationSeparateiOES(const Context *context,
GLuint buf,
@ -1642,6 +1708,10 @@ bool ValidateDrawTexxOES(const Context *context,
GLfixed height);
bool ValidateDrawTexxvOES(const Context *context, const GLfixed *coords);
// GL_OES_element_index_uint
// GL_OES_fbo_render_mipmap
// GL_OES_framebuffer_object
bool ValidateBindFramebufferOES(const Context *context,
GLenum target,
@ -1733,22 +1803,38 @@ bool ValidateWeightPointerOES(const Context *context,
GLsizei stride,
const void *pointer);
// GL_OES_packed_depth_stencil
// GL_OES_point_size_array
bool ValidatePointSizePointerOES(const Context *context,
VertexAttribType typePacked,
GLsizei stride,
const void *pointer);
// GL_OES_point_sprite
// GL_OES_query_matrix
bool ValidateQueryMatrixxOES(const Context *context,
const GLfixed *mantissa,
const GLint *exponent);
// GL_OES_rgb8_rgba8
// GL_OES_sample_shading
bool ValidateMinSampleShadingOES(const Context *context, GLfloat value);
// GL_OES_sample_variables
// GL_OES_shader_image_atomic
// GL_OES_shader_io_blocks
// GL_OES_shader_multisample_interpolation
// GL_OES_standard_derivatives
// GL_OES_surfaceless_context
// GL_OES_texture_3D
bool ValidateCompressedTexImage3DOES(const Context *context,
TextureTarget targetPacked,
@ -1859,6 +1945,8 @@ bool ValidateTexBufferRangeOES(const Context *context,
GLintptr offset,
GLsizeiptr size);
// GL_OES_texture_compression_astc
// GL_OES_texture_cube_map
bool ValidateGetTexGenfvOES(const Context *context,
GLenum coord,
@ -1881,8 +1969,16 @@ bool ValidateTexGenxvOES(const Context *context, GLenum coord, GLenum pname, con
// GL_OES_texture_cube_map_array
// GL_OES_texture_float
// GL_OES_texture_float_linear
// GL_OES_texture_half_float
// GL_OES_texture_half_float_linear
// GL_OES_texture_npot
// GL_OES_texture_stencil8
// GL_OES_texture_storage_multisample_2d_array
@ -1905,6 +2001,10 @@ bool ValidateGenVertexArraysOES(const Context *context,
const VertexArrayID *arraysPacked);
bool ValidateIsVertexArrayOES(const Context *context, VertexArrayID arrayPacked);
// GL_OES_vertex_half_float
// GL_OES_vertex_type_10_10_10_2
// GL_OVR_multiview
bool ValidateFramebufferTextureMultiviewOVR(const Context *context,
GLenum target,

Просмотреть файл

@ -276,6 +276,7 @@ libangle_headers = [
"src/libANGLE/entry_points_utils.h",
"src/libANGLE/features.h",
"src/libANGLE/formatutils.h",
"src/libANGLE/gles_extensions_autogen.h",
"src/libANGLE/histogram_macros.h",
"src/libANGLE/queryconversions.h",
"src/libANGLE/queryutils.h",
@ -400,6 +401,7 @@ libangle_sources = [
"src/libANGLE/format_map_autogen.cpp",
"src/libANGLE/format_map_desktop.cpp",
"src/libANGLE/formatutils.cpp",
"src/libANGLE/gles_extensions_autogen.cpp",
"src/libANGLE/queryconversions.cpp",
"src/libANGLE/queryutils.cpp",
"src/libANGLE/renderer/BufferImpl.cpp",

Просмотреть файл

@ -298,6 +298,8 @@ void GL_APIENTRY GL_CopySubTexture3DANGLE(GLuint sourceId,
}
}
// GL_ANGLE_depth_texture
// GL_ANGLE_framebuffer_blit
void GL_APIENTRY GL_BlitFramebufferANGLE(GLint srcX0,
GLint srcY0,
@ -942,6 +944,8 @@ void GL_APIENTRY GL_MultiDrawElementsInstancedANGLE(GLenum mode,
}
}
// GL_ANGLE_pack_reverse_row_order
// GL_ANGLE_program_binary
// GL_ANGLE_provoking_vertex
@ -3231,6 +3235,10 @@ void GL_APIENTRY GL_ImportSemaphoreZirconHandleANGLE(GLuint semaphore,
}
}
// GL_ANGLE_texture_compression_dxt3
// GL_ANGLE_texture_compression_dxt5
// GL_ANGLE_texture_external_update
void GL_APIENTRY GL_TexImage2DExternalANGLE(GLenum target,
GLint level,
@ -3384,6 +3392,8 @@ void GL_APIENTRY GL_SampleMaskiANGLE(GLuint maskNumber, GLbitfield mask)
// GetTexLevelParameterivANGLE is already defined.
// GL_ANGLE_texture_usage
// GL_ANGLE_translated_shader_source
void GL_APIENTRY GL_GetTranslatedShaderSourceANGLE(GLuint shader,
GLsizei bufsize,
@ -3416,6 +3426,23 @@ void GL_APIENTRY GL_GetTranslatedShaderSourceANGLE(GLuint shader,
}
}
// GL_APPLE_clip_distance
// GL_ARB_sync
// ClientWaitSync is already defined.
// DeleteSync is already defined.
// FenceSync is already defined.
// GetInteger64v is already defined.
// GetSynciv is already defined.
// IsSync is already defined.
// WaitSync is already defined.
// GL_CHROMIUM_bind_uniform_location
void GL_APIENTRY GL_BindUniformLocationCHROMIUM(GLuint program, GLint location, const GLchar *name)
{
@ -3813,6 +3840,8 @@ GLint GL_APIENTRY GL_GetProgramResourceLocationIndexEXT(GLuint program,
return returnValue;
}
// GL_EXT_blend_minmax
// GL_EXT_buffer_storage
void GL_APIENTRY GL_BufferStorageEXT(GLenum target,
GLsizeiptr size,
@ -3869,6 +3898,12 @@ void GL_APIENTRY GL_ClipControlEXT(GLenum origin, GLenum depth)
}
}
// GL_EXT_clip_cull_distance
// GL_EXT_color_buffer_float
// GL_EXT_color_buffer_half_float
// GL_EXT_copy_image
void GL_APIENTRY GL_CopyImageSubDataEXT(GLuint srcName,
GLenum srcTarget,
@ -4817,6 +4852,8 @@ void GL_APIENTRY GL_NamedBufferStorageExternalEXT(GLuint buffer,
}
}
// GL_EXT_float_blend
// GL_EXT_geometry_shader
void GL_APIENTRY GL_FramebufferTextureEXT(GLenum target,
GLenum attachment,
@ -4849,6 +4886,8 @@ void GL_APIENTRY GL_FramebufferTextureEXT(GLenum target,
}
}
// GL_EXT_gpu_shader5
// GL_EXT_instanced_arrays
void GL_APIENTRY GL_DrawArraysInstancedEXT(GLenum mode,
GLint start,
@ -7258,6 +7297,12 @@ void GL_APIENTRY GL_FramebufferFetchBarrierEXT()
// GL_EXT_shader_io_blocks
// GL_EXT_shader_non_constant_global_initializers
// GL_EXT_shader_texture_lod
// GL_EXT_shadow_samplers
// GL_EXT_tessellation_shader
void GL_APIENTRY GL_PatchParameteriEXT(GLenum pname, GLint value)
{
@ -7570,10 +7615,18 @@ void GL_APIENTRY GL_TexBufferRangeEXT(GLenum target,
// GL_EXT_texture_format_BGRA8888
// GL_EXT_texture_format_sRGB_override
// GL_EXT_texture_norm16
// GL_EXT_texture_rg
// GL_EXT_texture_sRGB_R8
// GL_EXT_texture_sRGB_RG8
// GL_EXT_texture_sRGB_decode
// GL_EXT_texture_storage
void GL_APIENTRY GL_TexStorage1DEXT(GLenum target,
GLsizei levels,
@ -7670,6 +7723,10 @@ void GL_APIENTRY GL_TexStorage3DEXT(GLenum target,
}
}
// GL_EXT_texture_type_2_10_10_10_REV
// GL_EXT_unpack_subimage
// GL_IMG_texture_compression_pvrtc
// GL_IMG_texture_compression_pvrtc2
@ -8019,6 +8076,8 @@ void GL_APIENTRY GL_PushDebugGroupKHR(GLenum source,
}
}
// GL_KHR_no_error
// GL_KHR_parallel_shader_compile
void GL_APIENTRY GL_MaxShaderCompilerThreadsKHR(GLuint count)
{
@ -8042,6 +8101,8 @@ void GL_APIENTRY GL_MaxShaderCompilerThreadsKHR(GLuint count)
}
}
// GL_KHR_robust_buffer_access_behavior
// GL_KHR_texture_compression_astc_hdr
// GL_KHR_texture_compression_astc_ldr
@ -8267,6 +8328,16 @@ void GL_APIENTRY GL_BlitFramebufferNV(GLint srcX0,
}
}
// GL_NV_pixel_buffer_object
// GL_NV_read_depth
// GL_NV_read_stencil
// GL_NV_robustness_video_memory_purge
// GL_NV_shader_noperspective_interpolation
// GL_OES_EGL_image
void GL_APIENTRY GL_EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image)
{
@ -8317,6 +8388,10 @@ void GL_APIENTRY GL_EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES imag
}
}
// GL_OES_EGL_image_external
// GL_OES_EGL_image_external_essl3
// GL_OES_compressed_ETC1_RGB8_texture
// GL_OES_copy_image
@ -8370,8 +8445,12 @@ void GL_APIENTRY GL_CopyImageSubDataOES(GLuint srcName,
}
}
// GL_OES_depth24
// GL_OES_depth32
// GL_OES_depth_texture
// GL_OES_draw_buffers_indexed
void GL_APIENTRY GL_BlendEquationSeparateiOES(GLuint buf, GLenum modeRGB, GLenum modeAlpha)
{
@ -8868,6 +8947,10 @@ void GL_APIENTRY GL_DrawTexxvOES(const GLfixed *coords)
}
}
// GL_OES_element_index_uint
// GL_OES_fbo_render_mipmap
// GL_OES_framebuffer_object
void GL_APIENTRY GL_BindFramebufferOES(GLenum target, GLuint framebuffer)
{
@ -9576,6 +9659,8 @@ void GL_APIENTRY GL_WeightPointerOES(GLint size, GLenum type, GLsizei stride, co
}
}
// GL_OES_packed_depth_stencil
// GL_OES_point_size_array
void GL_APIENTRY GL_PointSizePointerOES(GLenum type, GLsizei stride, const void *pointer)
{
@ -9602,6 +9687,8 @@ void GL_APIENTRY GL_PointSizePointerOES(GLenum type, GLsizei stride, const void
}
}
// GL_OES_point_sprite
// GL_OES_query_matrix
GLbitfield GL_APIENTRY GL_QueryMatrixxOES(GLfixed *mantissa, GLint *exponent)
{
@ -9634,6 +9721,8 @@ GLbitfield GL_APIENTRY GL_QueryMatrixxOES(GLfixed *mantissa, GLint *exponent)
return returnValue;
}
// GL_OES_rgb8_rgba8
// GL_OES_sample_shading
void GL_APIENTRY GL_MinSampleShadingOES(GLfloat value)
{
@ -9657,8 +9746,18 @@ void GL_APIENTRY GL_MinSampleShadingOES(GLfloat value)
}
}
// GL_OES_sample_variables
// GL_OES_shader_image_atomic
// GL_OES_shader_io_blocks
// GL_OES_shader_multisample_interpolation
// GL_OES_standard_derivatives
// GL_OES_surfaceless_context
// GL_OES_texture_3D
void GL_APIENTRY GL_CompressedTexImage3DOES(GLenum target,
GLint level,
@ -10174,6 +10273,8 @@ void GL_APIENTRY GL_TexBufferRangeOES(GLenum target,
}
}
// GL_OES_texture_compression_astc
// GL_OES_texture_cube_map
void GL_APIENTRY GL_GetTexGenfvOES(GLenum coord, GLenum pname, GLfloat *params)
{
@ -10399,8 +10500,16 @@ void GL_APIENTRY GL_TexGenxvOES(GLenum coord, GLenum pname, const GLfixed *param
// GL_OES_texture_cube_map_array
// GL_OES_texture_float
// GL_OES_texture_float_linear
// GL_OES_texture_half_float
// GL_OES_texture_half_float_linear
// GL_OES_texture_npot
// GL_OES_texture_stencil8
// GL_OES_texture_storage_multisample_2d_array
@ -10544,6 +10653,10 @@ GLboolean GL_APIENTRY GL_IsVertexArrayOES(GLuint array)
return returnValue;
}
// GL_OES_vertex_half_float
// GL_OES_vertex_type_10_10_10_2
// GL_OVR_multiview
void GL_APIENTRY GL_FramebufferTextureMultiviewOVR(GLenum target,
GLenum attachment,

Просмотреть файл

@ -80,6 +80,8 @@ ANGLE_EXPORT void GL_APIENTRY GL_CopySubTexture3DANGLE(GLuint sourceId,
GLboolean unpackPremultiplyAlpha,
GLboolean unpackUnmultiplyAlpha);
// GL_ANGLE_depth_texture
// GL_ANGLE_framebuffer_blit
ANGLE_EXPORT void GL_APIENTRY GL_BlitFramebufferANGLE(GLint srcX0,
GLint srcY0,
@ -201,6 +203,8 @@ ANGLE_EXPORT void GL_APIENTRY GL_MultiDrawElementsInstancedANGLE(GLenum mode,
const GLsizei *instanceCounts,
GLsizei drawcount);
// GL_ANGLE_pack_reverse_row_order
// GL_ANGLE_program_binary
// GL_ANGLE_provoking_vertex
@ -586,6 +590,10 @@ ANGLE_EXPORT void GL_APIENTRY GL_ImportSemaphoreZirconHandleANGLE(GLuint semapho
GLenum handleType,
GLuint handle);
// GL_ANGLE_texture_compression_dxt3
// GL_ANGLE_texture_compression_dxt5
// GL_ANGLE_texture_external_update
ANGLE_EXPORT void GL_APIENTRY GL_TexImage2DExternalANGLE(GLenum target,
GLint level,
@ -607,12 +615,18 @@ ANGLE_EXPORT void GL_APIENTRY GL_TexStorage2DMultisampleANGLE(GLenum target,
ANGLE_EXPORT void GL_APIENTRY GL_GetMultisamplefvANGLE(GLenum pname, GLuint index, GLfloat *val);
ANGLE_EXPORT void GL_APIENTRY GL_SampleMaskiANGLE(GLuint maskNumber, GLbitfield mask);
// GL_ANGLE_texture_usage
// GL_ANGLE_translated_shader_source
ANGLE_EXPORT void GL_APIENTRY GL_GetTranslatedShaderSourceANGLE(GLuint shader,
GLsizei bufsize,
GLsizei *length,
GLchar *source);
// GL_APPLE_clip_distance
// GL_ARB_sync
// GL_CHROMIUM_bind_uniform_location
ANGLE_EXPORT void GL_APIENTRY GL_BindUniformLocationCHROMIUM(GLuint program,
GLint location,
@ -678,6 +692,8 @@ ANGLE_EXPORT GLint GL_APIENTRY GL_GetProgramResourceLocationIndexEXT(GLuint prog
GLenum programInterface,
const GLchar *name);
// GL_EXT_blend_minmax
// GL_EXT_buffer_storage
ANGLE_EXPORT void GL_APIENTRY GL_BufferStorageEXT(GLenum target,
GLsizeiptr size,
@ -687,6 +703,12 @@ ANGLE_EXPORT void GL_APIENTRY GL_BufferStorageEXT(GLenum target,
// GL_EXT_clip_control
ANGLE_EXPORT void GL_APIENTRY GL_ClipControlEXT(GLenum origin, GLenum depth);
// GL_EXT_clip_cull_distance
// GL_EXT_color_buffer_float
// GL_EXT_color_buffer_half_float
// GL_EXT_copy_image
ANGLE_EXPORT void GL_APIENTRY GL_CopyImageSubDataEXT(GLuint srcName,
GLenum srcTarget,
@ -794,12 +816,16 @@ ANGLE_EXPORT void GL_APIENTRY GL_NamedBufferStorageExternalEXT(GLuint buffer,
GLeglClientBufferEXT clientBuffer,
GLbitfield flags);
// GL_EXT_float_blend
// GL_EXT_geometry_shader
ANGLE_EXPORT void GL_APIENTRY GL_FramebufferTextureEXT(GLenum target,
GLenum attachment,
GLuint texture,
GLint level);
// GL_EXT_gpu_shader5
// GL_EXT_instanced_arrays
ANGLE_EXPORT void GL_APIENTRY GL_DrawArraysInstancedEXT(GLenum mode,
GLint start,
@ -1109,6 +1135,12 @@ ANGLE_EXPORT void GL_APIENTRY GL_FramebufferFetchBarrierEXT();
// GL_EXT_shader_io_blocks
// GL_EXT_shader_non_constant_global_initializers
// GL_EXT_shader_texture_lod
// GL_EXT_shadow_samplers
// GL_EXT_tessellation_shader
ANGLE_EXPORT void GL_APIENTRY GL_PatchParameteriEXT(GLenum pname, GLint value);
@ -1160,10 +1192,18 @@ ANGLE_EXPORT void GL_APIENTRY GL_TexBufferRangeEXT(GLenum target,
// GL_EXT_texture_format_BGRA8888
// GL_EXT_texture_format_sRGB_override
// GL_EXT_texture_norm16
// GL_EXT_texture_rg
// GL_EXT_texture_sRGB_R8
// GL_EXT_texture_sRGB_RG8
// GL_EXT_texture_sRGB_decode
// GL_EXT_texture_storage
ANGLE_EXPORT void GL_APIENTRY GL_TexStorage1DEXT(GLenum target,
GLsizei levels,
@ -1181,6 +1221,10 @@ ANGLE_EXPORT void GL_APIENTRY GL_TexStorage3DEXT(GLenum target,
GLsizei height,
GLsizei depth);
// GL_EXT_texture_type_2_10_10_10_REV
// GL_EXT_unpack_subimage
// GL_IMG_texture_compression_pvrtc
// GL_IMG_texture_compression_pvrtc2
@ -1234,9 +1278,13 @@ ANGLE_EXPORT void GL_APIENTRY GL_PushDebugGroupKHR(GLenum source,
GLsizei length,
const GLchar *message);
// GL_KHR_no_error
// GL_KHR_parallel_shader_compile
ANGLE_EXPORT void GL_APIENTRY GL_MaxShaderCompilerThreadsKHR(GLuint count);
// GL_KHR_robust_buffer_access_behavior
// GL_KHR_texture_compression_astc_hdr
// GL_KHR_texture_compression_astc_ldr
@ -1264,11 +1312,25 @@ ANGLE_EXPORT void GL_APIENTRY GL_BlitFramebufferNV(GLint srcX0,
GLbitfield mask,
GLenum filter);
// GL_NV_pixel_buffer_object
// GL_NV_read_depth
// GL_NV_read_stencil
// GL_NV_robustness_video_memory_purge
// GL_NV_shader_noperspective_interpolation
// GL_OES_EGL_image
ANGLE_EXPORT void GL_APIENTRY GL_EGLImageTargetRenderbufferStorageOES(GLenum target,
GLeglImageOES image);
ANGLE_EXPORT void GL_APIENTRY GL_EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image);
// GL_OES_EGL_image_external
// GL_OES_EGL_image_external_essl3
// GL_OES_compressed_ETC1_RGB8_texture
// GL_OES_copy_image
@ -1288,8 +1350,12 @@ ANGLE_EXPORT void GL_APIENTRY GL_CopyImageSubDataOES(GLuint srcName,
GLsizei srcHeight,
GLsizei srcDepth);
// GL_OES_depth24
// GL_OES_depth32
// GL_OES_depth_texture
// GL_OES_draw_buffers_indexed
ANGLE_EXPORT void GL_APIENTRY GL_BlendEquationSeparateiOES(GLuint buf,
GLenum modeRGB,
@ -1340,6 +1406,10 @@ ANGLE_EXPORT void GL_APIENTRY
GL_DrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);
ANGLE_EXPORT void GL_APIENTRY GL_DrawTexxvOES(const GLfixed *coords);
// GL_OES_element_index_uint
// GL_OES_fbo_render_mipmap
// GL_OES_framebuffer_object
ANGLE_EXPORT void GL_APIENTRY GL_BindFramebufferOES(GLenum target, GLuint framebuffer);
ANGLE_EXPORT void GL_APIENTRY GL_BindRenderbufferOES(GLenum target, GLuint renderbuffer);
@ -1406,19 +1476,35 @@ ANGLE_EXPORT void GL_APIENTRY GL_WeightPointerOES(GLint size,
GLsizei stride,
const void *pointer);
// GL_OES_packed_depth_stencil
// GL_OES_point_size_array
ANGLE_EXPORT void GL_APIENTRY GL_PointSizePointerOES(GLenum type,
GLsizei stride,
const void *pointer);
// GL_OES_point_sprite
// GL_OES_query_matrix
ANGLE_EXPORT GLbitfield GL_APIENTRY GL_QueryMatrixxOES(GLfixed *mantissa, GLint *exponent);
// GL_OES_rgb8_rgba8
// GL_OES_sample_shading
ANGLE_EXPORT void GL_APIENTRY GL_MinSampleShadingOES(GLfloat value);
// GL_OES_sample_variables
// GL_OES_shader_image_atomic
// GL_OES_shader_io_blocks
// GL_OES_shader_multisample_interpolation
// GL_OES_standard_derivatives
// GL_OES_surfaceless_context
// GL_OES_texture_3D
ANGLE_EXPORT void GL_APIENTRY GL_CompressedTexImage3DOES(GLenum target,
GLint level,
@ -1509,6 +1595,8 @@ ANGLE_EXPORT void GL_APIENTRY GL_TexBufferRangeOES(GLenum target,
GLintptr offset,
GLsizeiptr size);
// GL_OES_texture_compression_astc
// GL_OES_texture_cube_map
ANGLE_EXPORT void GL_APIENTRY GL_GetTexGenfvOES(GLenum coord, GLenum pname, GLfloat *params);
ANGLE_EXPORT void GL_APIENTRY GL_GetTexGenivOES(GLenum coord, GLenum pname, GLint *params);
@ -1522,8 +1610,16 @@ ANGLE_EXPORT void GL_APIENTRY GL_TexGenxvOES(GLenum coord, GLenum pname, const G
// GL_OES_texture_cube_map_array
// GL_OES_texture_float
// GL_OES_texture_float_linear
// GL_OES_texture_half_float
// GL_OES_texture_half_float_linear
// GL_OES_texture_npot
// GL_OES_texture_stencil8
// GL_OES_texture_storage_multisample_2d_array
@ -1541,6 +1637,10 @@ ANGLE_EXPORT void GL_APIENTRY GL_DeleteVertexArraysOES(GLsizei n, const GLuint *
ANGLE_EXPORT void GL_APIENTRY GL_GenVertexArraysOES(GLsizei n, GLuint *arrays);
ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsVertexArrayOES(GLuint array);
// GL_OES_vertex_half_float
// GL_OES_vertex_type_10_10_10_2
// GL_OVR_multiview
ANGLE_EXPORT void GL_APIENTRY GL_FramebufferTextureMultiviewOVR(GLenum target,
GLenum attachment,

Просмотреть файл

@ -2800,6 +2800,8 @@ void GL_APIENTRY glCopySubTexture3DANGLE(GLuint sourceId,
unpackPremultiplyAlpha, unpackUnmultiplyAlpha);
}
// GL_ANGLE_depth_texture
// GL_ANGLE_framebuffer_blit
void GL_APIENTRY glBlitFramebufferANGLE(GLint srcX0,
GLint srcY0,
@ -2991,6 +2993,8 @@ void GL_APIENTRY glMultiDrawElementsInstancedANGLE(GLenum mode,
drawcount);
}
// GL_ANGLE_pack_reverse_row_order
// GL_ANGLE_program_binary
// GL_ANGLE_provoking_vertex
@ -3658,6 +3662,10 @@ void GL_APIENTRY glImportSemaphoreZirconHandleANGLE(GLuint semaphore,
return GL_ImportSemaphoreZirconHandleANGLE(semaphore, handleType, handle);
}
// GL_ANGLE_texture_compression_dxt3
// GL_ANGLE_texture_compression_dxt5
// GL_ANGLE_texture_external_update
void GL_APIENTRY glTexImage2DExternalANGLE(GLenum target,
GLint level,
@ -3699,6 +3707,8 @@ void GL_APIENTRY glSampleMaskiANGLE(GLuint maskNumber, GLbitfield mask)
return GL_SampleMaskiANGLE(maskNumber, mask);
}
// GL_ANGLE_texture_usage
// GL_ANGLE_translated_shader_source
void GL_APIENTRY glGetTranslatedShaderSourceANGLE(GLuint shader,
GLsizei bufsize,
@ -3708,6 +3718,10 @@ void GL_APIENTRY glGetTranslatedShaderSourceANGLE(GLuint shader,
return GL_GetTranslatedShaderSourceANGLE(shader, bufsize, length, source);
}
// GL_APPLE_clip_distance
// GL_ARB_sync
// GL_CHROMIUM_bind_uniform_location
void GL_APIENTRY glBindUniformLocationCHROMIUM(GLuint program, GLint location, const GLchar *name)
{
@ -3814,6 +3828,8 @@ GLint GL_APIENTRY glGetProgramResourceLocationIndexEXT(GLuint program,
return GL_GetProgramResourceLocationIndexEXT(program, programInterface, name);
}
// GL_EXT_blend_minmax
// GL_EXT_buffer_storage
void GL_APIENTRY glBufferStorageEXT(GLenum target,
GLsizeiptr size,
@ -3829,6 +3845,12 @@ void GL_APIENTRY glClipControlEXT(GLenum origin, GLenum depth)
return GL_ClipControlEXT(origin, depth);
}
// GL_EXT_clip_cull_distance
// GL_EXT_color_buffer_float
// GL_EXT_color_buffer_half_float
// GL_EXT_copy_image
void GL_APIENTRY glCopyImageSubDataEXT(GLuint srcName,
GLenum srcTarget,
@ -4057,6 +4079,8 @@ void GL_APIENTRY glNamedBufferStorageExternalEXT(GLuint buffer,
return GL_NamedBufferStorageExternalEXT(buffer, offset, size, clientBuffer, flags);
}
// GL_EXT_float_blend
// GL_EXT_geometry_shader
void GL_APIENTRY glFramebufferTextureEXT(GLenum target,
GLenum attachment,
@ -4066,6 +4090,8 @@ void GL_APIENTRY glFramebufferTextureEXT(GLenum target,
return GL_FramebufferTextureEXT(target, attachment, texture, level);
}
// GL_EXT_gpu_shader5
// GL_EXT_instanced_arrays
void GL_APIENTRY glDrawArraysInstancedEXT(GLenum mode,
GLint start,
@ -4652,6 +4678,12 @@ void GL_APIENTRY glFramebufferFetchBarrierEXT()
// GL_EXT_shader_io_blocks
// GL_EXT_shader_non_constant_global_initializers
// GL_EXT_shader_texture_lod
// GL_EXT_shadow_samplers
// GL_EXT_tessellation_shader
void GL_APIENTRY glPatchParameteriEXT(GLenum pname, GLint value)
{
@ -4730,10 +4762,18 @@ void GL_APIENTRY glTexBufferRangeEXT(GLenum target,
// GL_EXT_texture_format_BGRA8888
// GL_EXT_texture_format_sRGB_override
// GL_EXT_texture_norm16
// GL_EXT_texture_rg
// GL_EXT_texture_sRGB_R8
// GL_EXT_texture_sRGB_RG8
// GL_EXT_texture_sRGB_decode
// GL_EXT_texture_storage
void GL_APIENTRY glTexStorage1DEXT(GLenum target,
GLsizei levels,
@ -4762,6 +4802,10 @@ void GL_APIENTRY glTexStorage3DEXT(GLenum target,
return GL_TexStorage3DEXT(target, levels, internalformat, width, height, depth);
}
// GL_EXT_texture_type_2_10_10_10_REV
// GL_EXT_unpack_subimage
// GL_IMG_texture_compression_pvrtc
// GL_IMG_texture_compression_pvrtc2
@ -4856,12 +4900,16 @@ void GL_APIENTRY glPushDebugGroupKHR(GLenum source,
return GL_PushDebugGroupKHR(source, id, length, message);
}
// GL_KHR_no_error
// GL_KHR_parallel_shader_compile
void GL_APIENTRY glMaxShaderCompilerThreadsKHR(GLuint count)
{
return GL_MaxShaderCompilerThreadsKHR(count);
}
// GL_KHR_robust_buffer_access_behavior
// GL_KHR_texture_compression_astc_hdr
// GL_KHR_texture_compression_astc_ldr
@ -4920,6 +4968,16 @@ void GL_APIENTRY glBlitFramebufferNV(GLint srcX0,
filter);
}
// GL_NV_pixel_buffer_object
// GL_NV_read_depth
// GL_NV_read_stencil
// GL_NV_robustness_video_memory_purge
// GL_NV_shader_noperspective_interpolation
// GL_OES_EGL_image
void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image)
{
@ -4931,6 +4989,10 @@ void GL_APIENTRY glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image
return GL_EGLImageTargetTexture2DOES(target, image);
}
// GL_OES_EGL_image_external
// GL_OES_EGL_image_external_essl3
// GL_OES_compressed_ETC1_RGB8_texture
// GL_OES_copy_image
@ -4955,8 +5017,12 @@ void GL_APIENTRY glCopyImageSubDataOES(GLuint srcName,
srcDepth);
}
// GL_OES_depth24
// GL_OES_depth32
// GL_OES_depth_texture
// GL_OES_draw_buffers_indexed
void GL_APIENTRY glBlendEquationSeparateiOES(GLuint buf, GLenum modeRGB, GLenum modeAlpha)
{
@ -5072,6 +5138,10 @@ void GL_APIENTRY glDrawTexxvOES(const GLfixed *coords)
return GL_DrawTexxvOES(coords);
}
// GL_OES_element_index_uint
// GL_OES_fbo_render_mipmap
// GL_OES_framebuffer_object
void GL_APIENTRY glBindFramebufferOES(GLenum target, GLuint framebuffer)
{
@ -5228,26 +5298,42 @@ void GL_APIENTRY glWeightPointerOES(GLint size, GLenum type, GLsizei stride, con
return GL_WeightPointerOES(size, type, stride, pointer);
}
// GL_OES_packed_depth_stencil
// GL_OES_point_size_array
void GL_APIENTRY glPointSizePointerOES(GLenum type, GLsizei stride, const void *pointer)
{
return GL_PointSizePointerOES(type, stride, pointer);
}
// GL_OES_point_sprite
// GL_OES_query_matrix
GLbitfield GL_APIENTRY glQueryMatrixxOES(GLfixed *mantissa, GLint *exponent)
{
return GL_QueryMatrixxOES(mantissa, exponent);
}
// GL_OES_rgb8_rgba8
// GL_OES_sample_shading
void GL_APIENTRY glMinSampleShadingOES(GLfloat value)
{
return GL_MinSampleShadingOES(value);
}
// GL_OES_sample_variables
// GL_OES_shader_image_atomic
// GL_OES_shader_io_blocks
// GL_OES_shader_multisample_interpolation
// GL_OES_standard_derivatives
// GL_OES_surfaceless_context
// GL_OES_texture_3D
void GL_APIENTRY glCompressedTexImage3DOES(GLenum target,
GLint level,
@ -5389,6 +5475,8 @@ void GL_APIENTRY glTexBufferRangeOES(GLenum target,
return GL_TexBufferRangeOES(target, internalformat, buffer, offset, size);
}
// GL_OES_texture_compression_astc
// GL_OES_texture_cube_map
void GL_APIENTRY glGetTexGenfvOES(GLenum coord, GLenum pname, GLfloat *params)
{
@ -5437,8 +5525,16 @@ void GL_APIENTRY glTexGenxvOES(GLenum coord, GLenum pname, const GLfixed *params
// GL_OES_texture_cube_map_array
// GL_OES_texture_float
// GL_OES_texture_float_linear
// GL_OES_texture_half_float
// GL_OES_texture_half_float_linear
// GL_OES_texture_npot
// GL_OES_texture_stencil8
// GL_OES_texture_storage_multisample_2d_array
@ -5475,6 +5571,10 @@ GLboolean GL_APIENTRY glIsVertexArrayOES(GLuint array)
return GL_IsVertexArrayOES(array);
}
// GL_OES_vertex_half_float
// GL_OES_vertex_type_10_10_10_2
// GL_OVR_multiview
void GL_APIENTRY glFramebufferTextureMultiviewOVR(GLenum target,
GLenum attachment,

Просмотреть файл

@ -470,6 +470,8 @@ EXPORTS
glCopySubTexture3DANGLE
glCopyTexture3DANGLE
; GL_ANGLE_depth_texture
; GL_ANGLE_framebuffer_blit
glBlitFramebufferANGLE
@ -504,6 +506,8 @@ EXPORTS
glMultiDrawElementsANGLE
glMultiDrawElementsInstancedANGLE
; GL_ANGLE_pack_reverse_row_order
; GL_ANGLE_program_binary
; GL_ANGLE_provoking_vertex
@ -582,6 +586,10 @@ EXPORTS
; GL_ANGLE_semaphore_fuchsia
glImportSemaphoreZirconHandleANGLE
; GL_ANGLE_texture_compression_dxt3
; GL_ANGLE_texture_compression_dxt5
; GL_ANGLE_texture_external_update
glInvalidateTextureANGLE
glTexImage2DExternalANGLE
@ -591,9 +599,15 @@ EXPORTS
glSampleMaskiANGLE
glTexStorage2DMultisampleANGLE
; GL_ANGLE_texture_usage
; GL_ANGLE_translated_shader_source
glGetTranslatedShaderSourceANGLE
; GL_APPLE_clip_distance
; GL_ARB_sync
; GL_CHROMIUM_bind_uniform_location
glBindUniformLocationCHROMIUM
@ -624,12 +638,20 @@ EXPORTS
glGetFragDataIndexEXT
glGetProgramResourceLocationIndexEXT
; GL_EXT_blend_minmax
; GL_EXT_buffer_storage
glBufferStorageEXT
; GL_EXT_clip_control
glClipControlEXT
; GL_EXT_clip_cull_distance
; GL_EXT_color_buffer_float
; GL_EXT_color_buffer_half_float
; GL_EXT_copy_image
glCopyImageSubDataEXT
@ -682,9 +704,13 @@ EXPORTS
glBufferStorageExternalEXT
glNamedBufferStorageExternalEXT
; GL_EXT_float_blend
; GL_EXT_geometry_shader
glFramebufferTextureEXT
; GL_EXT_gpu_shader5
; GL_EXT_instanced_arrays
glDrawArraysInstancedEXT
glDrawElementsInstancedEXT
@ -799,6 +825,12 @@ EXPORTS
; GL_EXT_shader_io_blocks
; GL_EXT_shader_non_constant_global_initializers
; GL_EXT_shader_texture_lod
; GL_EXT_shadow_samplers
; GL_EXT_tessellation_shader
glPatchParameteriEXT
@ -832,15 +864,27 @@ EXPORTS
; GL_EXT_texture_format_BGRA8888
; GL_EXT_texture_format_sRGB_override
; GL_EXT_texture_norm16
; GL_EXT_texture_rg
; GL_EXT_texture_sRGB_R8
; GL_EXT_texture_sRGB_RG8
; GL_EXT_texture_sRGB_decode
; GL_EXT_texture_storage
glTexStorage1DEXT
glTexStorage2DEXT
glTexStorage3DEXT
; GL_EXT_texture_type_2_10_10_10_REV
; GL_EXT_unpack_subimage
; GL_IMG_texture_compression_pvrtc
; GL_IMG_texture_compression_pvrtc2
@ -861,9 +905,13 @@ EXPORTS
glPopDebugGroupKHR
glPushDebugGroupKHR
; GL_KHR_no_error
; GL_KHR_parallel_shader_compile
glMaxShaderCompilerThreadsKHR
; GL_KHR_robust_buffer_access_behavior
; GL_KHR_texture_compression_astc_hdr
; GL_KHR_texture_compression_astc_ldr
@ -882,17 +930,35 @@ EXPORTS
; GL_NV_framebuffer_blit
glBlitFramebufferNV
; GL_NV_pixel_buffer_object
; GL_NV_read_depth
; GL_NV_read_stencil
; GL_NV_robustness_video_memory_purge
; GL_NV_shader_noperspective_interpolation
; GL_OES_EGL_image
glEGLImageTargetRenderbufferStorageOES
glEGLImageTargetTexture2DOES
; GL_OES_EGL_image_external
; GL_OES_EGL_image_external_essl3
; GL_OES_compressed_ETC1_RGB8_texture
; GL_OES_copy_image
glCopyImageSubDataOES
; GL_OES_depth24
; GL_OES_depth32
; GL_OES_depth_texture
; GL_OES_draw_buffers_indexed
glBlendEquationSeparateiOES
glBlendEquationiOES
@ -918,6 +984,10 @@ EXPORTS
glDrawTexxOES
glDrawTexxvOES
; GL_OES_element_index_uint
; GL_OES_fbo_render_mipmap
; GL_OES_framebuffer_object
glBindFramebufferOES
glBindRenderbufferOES
@ -953,17 +1023,33 @@ EXPORTS
glMatrixIndexPointerOES
glWeightPointerOES
; GL_OES_packed_depth_stencil
; GL_OES_point_size_array
glPointSizePointerOES
; GL_OES_point_sprite
; GL_OES_query_matrix
glQueryMatrixxOES
; GL_OES_rgb8_rgba8
; GL_OES_sample_shading
glMinSampleShadingOES
; GL_OES_sample_variables
; GL_OES_shader_image_atomic
; GL_OES_shader_io_blocks
; GL_OES_shader_multisample_interpolation
; GL_OES_standard_derivatives
; GL_OES_surfaceless_context
; GL_OES_texture_3D
glCompressedTexImage3DOES
glCompressedTexSubImage3DOES
@ -986,6 +1072,8 @@ EXPORTS
glTexBufferOES
glTexBufferRangeOES
; GL_OES_texture_compression_astc
; GL_OES_texture_cube_map
glGetTexGenfvOES
glGetTexGenivOES
@ -999,8 +1087,16 @@ EXPORTS
; GL_OES_texture_cube_map_array
; GL_OES_texture_float
; GL_OES_texture_float_linear
; GL_OES_texture_half_float
; GL_OES_texture_half_float_linear
; GL_OES_texture_npot
; GL_OES_texture_stencil8
; GL_OES_texture_storage_multisample_2d_array
@ -1012,6 +1108,10 @@ EXPORTS
glGenVertexArraysOES
glIsVertexArrayOES
; GL_OES_vertex_half_float
; GL_OES_vertex_type_10_10_10_2
; GL_OVR_multiview
glFramebufferTextureMultiviewOVR

Просмотреть файл

@ -470,6 +470,8 @@ EXPORTS
glCopySubTexture3DANGLE
glCopyTexture3DANGLE
; GL_ANGLE_depth_texture
; GL_ANGLE_framebuffer_blit
glBlitFramebufferANGLE
@ -504,6 +506,8 @@ EXPORTS
glMultiDrawElementsANGLE
glMultiDrawElementsInstancedANGLE
; GL_ANGLE_pack_reverse_row_order
; GL_ANGLE_program_binary
; GL_ANGLE_provoking_vertex
@ -582,6 +586,10 @@ EXPORTS
; GL_ANGLE_semaphore_fuchsia
glImportSemaphoreZirconHandleANGLE
; GL_ANGLE_texture_compression_dxt3
; GL_ANGLE_texture_compression_dxt5
; GL_ANGLE_texture_external_update
glInvalidateTextureANGLE
glTexImage2DExternalANGLE
@ -591,9 +599,15 @@ EXPORTS
glSampleMaskiANGLE
glTexStorage2DMultisampleANGLE
; GL_ANGLE_texture_usage
; GL_ANGLE_translated_shader_source
glGetTranslatedShaderSourceANGLE
; GL_APPLE_clip_distance
; GL_ARB_sync
; GL_CHROMIUM_bind_uniform_location
glBindUniformLocationCHROMIUM
@ -624,12 +638,20 @@ EXPORTS
glGetFragDataIndexEXT
glGetProgramResourceLocationIndexEXT
; GL_EXT_blend_minmax
; GL_EXT_buffer_storage
glBufferStorageEXT
; GL_EXT_clip_control
glClipControlEXT
; GL_EXT_clip_cull_distance
; GL_EXT_color_buffer_float
; GL_EXT_color_buffer_half_float
; GL_EXT_copy_image
glCopyImageSubDataEXT
@ -682,9 +704,13 @@ EXPORTS
glBufferStorageExternalEXT
glNamedBufferStorageExternalEXT
; GL_EXT_float_blend
; GL_EXT_geometry_shader
glFramebufferTextureEXT
; GL_EXT_gpu_shader5
; GL_EXT_instanced_arrays
glDrawArraysInstancedEXT
glDrawElementsInstancedEXT
@ -799,6 +825,12 @@ EXPORTS
; GL_EXT_shader_io_blocks
; GL_EXT_shader_non_constant_global_initializers
; GL_EXT_shader_texture_lod
; GL_EXT_shadow_samplers
; GL_EXT_tessellation_shader
glPatchParameteriEXT
@ -832,15 +864,27 @@ EXPORTS
; GL_EXT_texture_format_BGRA8888
; GL_EXT_texture_format_sRGB_override
; GL_EXT_texture_norm16
; GL_EXT_texture_rg
; GL_EXT_texture_sRGB_R8
; GL_EXT_texture_sRGB_RG8
; GL_EXT_texture_sRGB_decode
; GL_EXT_texture_storage
glTexStorage1DEXT
glTexStorage2DEXT
glTexStorage3DEXT
; GL_EXT_texture_type_2_10_10_10_REV
; GL_EXT_unpack_subimage
; GL_IMG_texture_compression_pvrtc
; GL_IMG_texture_compression_pvrtc2
@ -861,9 +905,13 @@ EXPORTS
glPopDebugGroupKHR
glPushDebugGroupKHR
; GL_KHR_no_error
; GL_KHR_parallel_shader_compile
glMaxShaderCompilerThreadsKHR
; GL_KHR_robust_buffer_access_behavior
; GL_KHR_texture_compression_astc_hdr
; GL_KHR_texture_compression_astc_ldr
@ -882,17 +930,35 @@ EXPORTS
; GL_NV_framebuffer_blit
glBlitFramebufferNV
; GL_NV_pixel_buffer_object
; GL_NV_read_depth
; GL_NV_read_stencil
; GL_NV_robustness_video_memory_purge
; GL_NV_shader_noperspective_interpolation
; GL_OES_EGL_image
glEGLImageTargetRenderbufferStorageOES
glEGLImageTargetTexture2DOES
; GL_OES_EGL_image_external
; GL_OES_EGL_image_external_essl3
; GL_OES_compressed_ETC1_RGB8_texture
; GL_OES_copy_image
glCopyImageSubDataOES
; GL_OES_depth24
; GL_OES_depth32
; GL_OES_depth_texture
; GL_OES_draw_buffers_indexed
glBlendEquationSeparateiOES
glBlendEquationiOES
@ -918,6 +984,10 @@ EXPORTS
glDrawTexxOES
glDrawTexxvOES
; GL_OES_element_index_uint
; GL_OES_fbo_render_mipmap
; GL_OES_framebuffer_object
glBindFramebufferOES
glBindRenderbufferOES
@ -953,17 +1023,33 @@ EXPORTS
glMatrixIndexPointerOES
glWeightPointerOES
; GL_OES_packed_depth_stencil
; GL_OES_point_size_array
glPointSizePointerOES
; GL_OES_point_sprite
; GL_OES_query_matrix
glQueryMatrixxOES
; GL_OES_rgb8_rgba8
; GL_OES_sample_shading
glMinSampleShadingOES
; GL_OES_sample_variables
; GL_OES_shader_image_atomic
; GL_OES_shader_io_blocks
; GL_OES_shader_multisample_interpolation
; GL_OES_standard_derivatives
; GL_OES_surfaceless_context
; GL_OES_texture_3D
glCompressedTexImage3DOES
glCompressedTexSubImage3DOES
@ -986,6 +1072,8 @@ EXPORTS
glTexBufferOES
glTexBufferRangeOES
; GL_OES_texture_compression_astc
; GL_OES_texture_cube_map
glGetTexGenfvOES
glGetTexGenivOES
@ -999,8 +1087,16 @@ EXPORTS
; GL_OES_texture_cube_map_array
; GL_OES_texture_float
; GL_OES_texture_float_linear
; GL_OES_texture_half_float
; GL_OES_texture_half_float_linear
; GL_OES_texture_npot
; GL_OES_texture_stencil8
; GL_OES_texture_storage_multisample_2d_array
@ -1012,6 +1108,10 @@ EXPORTS
glGenVertexArraysOES
glIsVertexArrayOES
; GL_OES_vertex_half_float
; GL_OES_vertex_type_10_10_10_2
; GL_OVR_multiview
glFramebufferTextureMultiviewOVR

Просмотреть файл

@ -470,6 +470,8 @@ EXPORTS
glCopySubTexture3DANGLE
glCopyTexture3DANGLE
; GL_ANGLE_depth_texture
; GL_ANGLE_framebuffer_blit
glBlitFramebufferANGLE
@ -504,6 +506,8 @@ EXPORTS
glMultiDrawElementsANGLE
glMultiDrawElementsInstancedANGLE
; GL_ANGLE_pack_reverse_row_order
; GL_ANGLE_program_binary
; GL_ANGLE_provoking_vertex
@ -582,6 +586,10 @@ EXPORTS
; GL_ANGLE_semaphore_fuchsia
glImportSemaphoreZirconHandleANGLE
; GL_ANGLE_texture_compression_dxt3
; GL_ANGLE_texture_compression_dxt5
; GL_ANGLE_texture_external_update
glInvalidateTextureANGLE
glTexImage2DExternalANGLE
@ -591,9 +599,15 @@ EXPORTS
glSampleMaskiANGLE
glTexStorage2DMultisampleANGLE
; GL_ANGLE_texture_usage
; GL_ANGLE_translated_shader_source
glGetTranslatedShaderSourceANGLE
; GL_APPLE_clip_distance
; GL_ARB_sync
; GL_CHROMIUM_bind_uniform_location
glBindUniformLocationCHROMIUM
@ -624,12 +638,20 @@ EXPORTS
glGetFragDataIndexEXT
glGetProgramResourceLocationIndexEXT
; GL_EXT_blend_minmax
; GL_EXT_buffer_storage
glBufferStorageEXT
; GL_EXT_clip_control
glClipControlEXT
; GL_EXT_clip_cull_distance
; GL_EXT_color_buffer_float
; GL_EXT_color_buffer_half_float
; GL_EXT_copy_image
glCopyImageSubDataEXT
@ -682,9 +704,13 @@ EXPORTS
glBufferStorageExternalEXT
glNamedBufferStorageExternalEXT
; GL_EXT_float_blend
; GL_EXT_geometry_shader
glFramebufferTextureEXT
; GL_EXT_gpu_shader5
; GL_EXT_instanced_arrays
glDrawArraysInstancedEXT
glDrawElementsInstancedEXT
@ -799,6 +825,12 @@ EXPORTS
; GL_EXT_shader_io_blocks
; GL_EXT_shader_non_constant_global_initializers
; GL_EXT_shader_texture_lod
; GL_EXT_shadow_samplers
; GL_EXT_tessellation_shader
glPatchParameteriEXT
@ -832,15 +864,27 @@ EXPORTS
; GL_EXT_texture_format_BGRA8888
; GL_EXT_texture_format_sRGB_override
; GL_EXT_texture_norm16
; GL_EXT_texture_rg
; GL_EXT_texture_sRGB_R8
; GL_EXT_texture_sRGB_RG8
; GL_EXT_texture_sRGB_decode
; GL_EXT_texture_storage
glTexStorage1DEXT
glTexStorage2DEXT
glTexStorage3DEXT
; GL_EXT_texture_type_2_10_10_10_REV
; GL_EXT_unpack_subimage
; GL_IMG_texture_compression_pvrtc
; GL_IMG_texture_compression_pvrtc2
@ -861,9 +905,13 @@ EXPORTS
glPopDebugGroupKHR
glPushDebugGroupKHR
; GL_KHR_no_error
; GL_KHR_parallel_shader_compile
glMaxShaderCompilerThreadsKHR
; GL_KHR_robust_buffer_access_behavior
; GL_KHR_texture_compression_astc_hdr
; GL_KHR_texture_compression_astc_ldr
@ -882,17 +930,35 @@ EXPORTS
; GL_NV_framebuffer_blit
glBlitFramebufferNV
; GL_NV_pixel_buffer_object
; GL_NV_read_depth
; GL_NV_read_stencil
; GL_NV_robustness_video_memory_purge
; GL_NV_shader_noperspective_interpolation
; GL_OES_EGL_image
glEGLImageTargetRenderbufferStorageOES
glEGLImageTargetTexture2DOES
; GL_OES_EGL_image_external
; GL_OES_EGL_image_external_essl3
; GL_OES_compressed_ETC1_RGB8_texture
; GL_OES_copy_image
glCopyImageSubDataOES
; GL_OES_depth24
; GL_OES_depth32
; GL_OES_depth_texture
; GL_OES_draw_buffers_indexed
glBlendEquationSeparateiOES
glBlendEquationiOES
@ -918,6 +984,10 @@ EXPORTS
glDrawTexxOES
glDrawTexxvOES
; GL_OES_element_index_uint
; GL_OES_fbo_render_mipmap
; GL_OES_framebuffer_object
glBindFramebufferOES
glBindRenderbufferOES
@ -953,17 +1023,33 @@ EXPORTS
glMatrixIndexPointerOES
glWeightPointerOES
; GL_OES_packed_depth_stencil
; GL_OES_point_size_array
glPointSizePointerOES
; GL_OES_point_sprite
; GL_OES_query_matrix
glQueryMatrixxOES
; GL_OES_rgb8_rgba8
; GL_OES_sample_shading
glMinSampleShadingOES
; GL_OES_sample_variables
; GL_OES_shader_image_atomic
; GL_OES_shader_io_blocks
; GL_OES_shader_multisample_interpolation
; GL_OES_standard_derivatives
; GL_OES_surfaceless_context
; GL_OES_texture_3D
glCompressedTexImage3DOES
glCompressedTexSubImage3DOES
@ -986,6 +1072,8 @@ EXPORTS
glTexBufferOES
glTexBufferRangeOES
; GL_OES_texture_compression_astc
; GL_OES_texture_cube_map
glGetTexGenfvOES
glGetTexGenivOES
@ -999,8 +1087,16 @@ EXPORTS
; GL_OES_texture_cube_map_array
; GL_OES_texture_float
; GL_OES_texture_float_linear
; GL_OES_texture_half_float
; GL_OES_texture_half_float_linear
; GL_OES_texture_npot
; GL_OES_texture_stencil8
; GL_OES_texture_storage_multisample_2d_array
@ -1012,6 +1108,10 @@ EXPORTS
glGenVertexArraysOES
glIsVertexArrayOES
; GL_OES_vertex_half_float
; GL_OES_vertex_type_10_10_10_2
; GL_OVR_multiview
glFramebufferTextureMultiviewOVR