Source code
Revision control
Copy as Markdown
Other Tools
// 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 primitiveBoundingBoxAny() const
{
return (primitiveBoundingBoxEXT || primitiveBoundingBoxOES);
}
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_EXT_base_instance
bool baseInstanceEXT = false;
// 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_OES_compressed_paletted_texture
bool compressedPalettedTextureOES = 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_ANDROID_extension_pack_es31a
bool extensionPackEs31aANDROID = 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_MESA_framebuffer_flip_y
bool framebufferFlipYMESA = 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_multi_draw_indirect
bool multiDrawIndirectEXT = 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_AMD_performance_monitor
bool performanceMonitorAMD = false;
// GL_NV_pixel_buffer_object
bool pixelBufferObjectNV = false;
// GL_EXT_primitive_bounding_box
bool primitiveBoundingBoxEXT = false;
// GL_OES_primitive_bounding_box
bool primitiveBoundingBoxOES = false;
// GL_EXT_protected_textures
bool protectedTexturesEXT = false;
// GL_EXT_pvrtc_sRGB
bool pvrtcSRGBEXT = false;
// GL_NV_read_depth
bool readDepthNV = false;
// GL_NV_read_depth_stencil
bool readDepthStencilNV = 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
bool shaderFramebufferFetchEXT = 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_QCOM_shading_rate
bool shadingRateQCOM = 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_ANGLE_base_vertex_base_instance_shader_builtin
bool baseVertexBaseInstanceShaderBuiltinANGLE = 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_ANGLE_logic_op
bool logicOpANGLE = 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_read_only_depth_stencil_feedback_loops
bool readOnlyDepthStencilFeedbackLoopsANGLE = false;
// GL_ANGLE_relaxed_vertex_attribute_type
bool relaxedVertexAttributeTypeANGLE = false;
// GL_ANGLE_request_extension
bool requestExtensionANGLE = false;
// GL_ANGLE_rgbx_internal_format
bool rgbxInternalFormatANGLE = false;
// GL_ANGLE_robust_client_memory
bool robustClientMemoryANGLE = false;
// GL_ANGLE_robust_fragment_shader_output
bool robustFragmentShaderOutputANGLE = false;
// GL_ANGLE_robust_resource_initialization
bool robustResourceInitializationANGLE = false;
// GL_ANGLE_semaphore_fuchsia
bool semaphoreFuchsiaANGLE = false;
// GL_ANGLE_shader_pixel_local_storage
bool shaderPixelLocalStorageANGLE = false;
// GL_ANGLE_shader_pixel_local_storage_coherent
bool shaderPixelLocalStorageCoherentANGLE = 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_vulkan_image
bool vulkanImageANGLE = 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_