tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

ExtensionBehavior.h (2531B)


      1 //
      2 // Copyright 2002 The ANGLE Project Authors. All rights reserved.
      3 // Use of this source code is governed by a BSD-style license that can be
      4 // found in the LICENSE file.
      5 //
      6 // ExtensionBehavior.h: Extension name enumeration and data structures for storing extension
      7 // behavior.
      8 
      9 #ifndef COMPILER_TRANSLATOR_EXTENSIONBEHAVIOR_H_
     10 #define COMPILER_TRANSLATOR_EXTENSIONBEHAVIOR_H_
     11 
     12 #include <cstdint>
     13 #include <map>
     14 
     15 namespace sh
     16 {
     17 
     18 enum class TExtension : uint8_t
     19 {
     20    UNDEFINED,  // Special value used to indicate no extension.
     21 
     22    ANDROID_extension_pack_es31a,
     23    ANGLE_base_vertex_base_instance_shader_builtin,
     24    ANGLE_multi_draw,
     25    ANGLE_shader_pixel_local_storage,
     26    ANGLE_texture_multisample,
     27    APPLE_clip_distance,
     28    ARB_fragment_shader_interlock,
     29    ARB_texture_rectangle,
     30    ARM_shader_framebuffer_fetch,
     31    EXT_YUV_target,
     32    EXT_blend_func_extended,
     33    EXT_clip_cull_distance,
     34    EXT_draw_buffers,
     35    EXT_frag_depth,
     36    EXT_geometry_shader,
     37    EXT_gpu_shader5,
     38    EXT_primitive_bounding_box,
     39    EXT_shader_framebuffer_fetch,
     40    EXT_shader_framebuffer_fetch_non_coherent,
     41    EXT_shader_io_blocks,
     42    EXT_shader_non_constant_global_initializers,
     43    EXT_shader_texture_lod,
     44    EXT_shadow_samplers,
     45    EXT_tessellation_shader,
     46    EXT_texture_buffer,
     47    EXT_texture_cube_map_array,
     48    INTEL_fragment_shader_ordering,
     49    KHR_blend_equation_advanced,
     50    NV_EGL_stream_consumer_external,
     51    NV_fragment_shader_interlock,
     52    NV_shader_framebuffer_fetch,
     53    NV_shader_noperspective_interpolation,
     54    OES_EGL_image_external,
     55    OES_EGL_image_external_essl3,
     56    OES_geometry_shader,
     57    OES_primitive_bounding_box,
     58    OES_sample_variables,
     59    OES_shader_image_atomic,
     60    OES_shader_io_blocks,
     61    OES_shader_multisample_interpolation,
     62    OES_standard_derivatives,
     63    OES_texture_3D,
     64    OES_texture_buffer,
     65    OES_texture_cube_map_array,
     66    OES_texture_storage_multisample_2d_array,
     67    OVR_multiview,
     68    OVR_multiview2,
     69    WEBGL_video_texture,
     70 };
     71 
     72 enum TBehavior : uint8_t
     73 {
     74    EBhRequire,
     75    EBhEnable,
     76    EBhWarn,
     77    EBhDisable,
     78    EBhUndefined
     79 };
     80 
     81 const char *GetExtensionNameString(TExtension extension);
     82 TExtension GetExtensionByName(const char *extension);
     83 
     84 const char *GetBehaviorString(TBehavior b);
     85 
     86 // Mapping between extension id and behavior.
     87 typedef std::map<TExtension, TBehavior> TExtensionBehavior;
     88 
     89 bool IsExtensionEnabled(const TExtensionBehavior &extBehavior, TExtension extension);
     90 
     91 }  // namespace sh
     92 
     93 #endif  // COMPILER_TRANSLATOR_EXTENSIONBEHAVIOR_H_