# The following output is taken from `magnum-gl-info` with removed `GL_`
# prefixes. Some extensions are comented out as they don't add any symbols
# that aren't already added by headers and would only bloat the headers.

version 3.0 es

extraspec https://raw.githubusercontent.com/google/angle/master/scripts/gl_angle_ext.xml
extraspec webgl.xml

extension EXT_texture_filter_anisotropic        optional
# It's actually EXT_disjoint_timer_query_webgl2, but that's not known to gl.xml
extension EXT_disjoint_timer_query              optional
extension EXT_color_buffer_float                optional
extension EXT_texture_compression_rgtc          optional
extension EXT_texture_compression_bptc          optional
extension EXT_clip_cull_distance                optional
extension EXT_texture_norm16                    optional
extension EXT_draw_buffers_indexed              optional
# WebGL has only OVR_multiview2, but we need the definitions from OVR_multiview
extension OVR_multiview                         optional
extension OVR_multiview2                        optional
# These two are used as a base for WEBGL_* extensions
extension EXT_texture_compression_s3tc          optional
extension EXT_texture_compression_s3tc_srgb     optional
extension EXT_polygon_offset_clamp              optional
extension EXT_clip_control                      optional
extension EXT_depth_clamp                       optional
extension EXT_texture_mirror_clamp_to_edge      optional
# These three are used as a base for WEBGL_* extensions
extension EXT_blend_func_extended               optional
extension IMG_texture_compression_pvrtc         optional
extension KHR_texture_compression_astc_ldr      optional
# GLSL-only extension, no actual API
extension NV_shader_noperspective_interpolation optional

# WEBGL_blend_equation_advanced_coherent includes just the enums but not the
# barrier
extension KHR_blend_equation_advanced           optional

# KHR_parallel_shader_compile includes just GL_COMPLETION_STATUS_KHR and not
# the max threads setting
extension KHR_parallel_shader_compile           optional

# From the gl_angle_ext file, base for WEBGL_multi_draw etc
extension ANGLE_multi_draw                      optional
extension ANGLE_base_vertex_base_instance       optional
# Base for WEBGL_stencil_texturing
extension ANGLE_stencil_texturing               optional
# Haha you wish, OF COURSE it's not included in gl_angle_ext.xml. But
# fortunately ES3 defines these constants on its own so I don't need it anyway.
# extension ANGLE_compressed_texture_etc        optional

extension MAGNUM_what_webgl_has_but_es_not      optional

# These are based off ANGLE_ extensions, for Emscripten they need to get
# renamed from an ANGLE suffix to WEBGL so they come from webgl.xml above. The
# first one doesn't have Emscripten support yet, last checked w/ 3.1.67.
# extension WEBGL_provoking_vertex              optional
extension WEBGL_polygon_mode                    optional

begin functions blacklist
    # Not present in WebGL variant of EXT_blend_func_extended
    BindFragDataLocationEXT
    BindFragDataLocationIndexedEXT
    GetFragDataIndexEXT
    GetProgramResourceLocationIndexEXT
    # Not present in WEBGL_blend_equation_advanced_coherent
    BlendBarrierKHR
    # Not present in WebGL variant of KHR_parallel_shader_compile
    MaxShaderCompilerThreadsKHR
end functions blacklist

# kate: hl python
