Path: blob/main_old/src/compiler/translator/ExtensionBehavior.h
1693 views
//1// Copyright 2002 The ANGLE Project Authors. All rights reserved.2// Use of this source code is governed by a BSD-style license that can be3// found in the LICENSE file.4//5// ExtensionBehavior.h: Extension name enumeration and data structures for storing extension6// behavior.78#ifndef COMPILER_TRANSLATOR_EXTENSIONBEHAVIOR_H_9#define COMPILER_TRANSLATOR_EXTENSIONBEHAVIOR_H_1011#include <cstdint>12#include <map>1314namespace sh15{1617enum class TExtension : uint8_t18{19UNDEFINED, // Special value used to indicate no extension.2021ANGLE_base_vertex_base_instance,22ANGLE_multi_draw,23ANGLE_texture_multisample,24APPLE_clip_distance,25ARB_texture_rectangle,26ARM_shader_framebuffer_fetch,27EXT_blend_func_extended,28EXT_clip_cull_distance,29EXT_draw_buffers,30EXT_frag_depth,31EXT_geometry_shader,32OES_geometry_shader,33OES_shader_io_blocks,34EXT_shader_io_blocks,35EXT_gpu_shader5,36EXT_primitive_bounding_box,37EXT_shader_framebuffer_fetch,38EXT_shader_framebuffer_fetch_non_coherent,39EXT_shader_non_constant_global_initializers,40EXT_shader_texture_lod,41EXT_shadow_samplers,42EXT_tessellation_shader,43EXT_texture_buffer,44EXT_texture_cube_map_array,45EXT_YUV_target,46NV_EGL_stream_consumer_external,47NV_shader_framebuffer_fetch,48NV_shader_noperspective_interpolation,49OES_EGL_image_external,50OES_EGL_image_external_essl3,51OES_sample_variables,52OES_shader_multisample_interpolation,53OES_shader_image_atomic,54OES_standard_derivatives,55OES_texture_3D,56OES_texture_buffer,57OES_texture_cube_map_array,58OES_texture_storage_multisample_2d_array,59OVR_multiview,60OVR_multiview2,61WEBGL_video_texture,62};6364enum TBehavior : uint8_t65{66EBhRequire,67EBhEnable,68EBhWarn,69EBhDisable,70EBhUndefined71};7273const char *GetExtensionNameString(TExtension extension);74TExtension GetExtensionByName(const char *extension);7576const char *GetBehaviorString(TBehavior b);7778// Mapping between extension id and behavior.79typedef std::map<TExtension, TBehavior> TExtensionBehavior;8081bool IsExtensionEnabled(const TExtensionBehavior &extBehavior, TExtension extension);8283} // namespace sh8485#endif // COMPILER_TRANSLATOR_EXTENSIONBEHAVIOR_H_868788