// // Copyright (c) 2002-2010 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. // // ExtensionBehavior.h: Extension name enumeration and data structures for storing extension // behavior. #ifndef COMPILER_TRANSLATOR_EXTENSIONBEHAVIOR_H_ #define COMPILER_TRANSLATOR_EXTENSIONBEHAVIOR_H_ #include namespace sh { enum class TExtension { UNDEFINED, // Special value used to indicate no extension. ARB_texture_rectangle, ARM_shader_framebuffer_fetch, EXT_blend_func_extended, EXT_draw_buffers, EXT_frag_depth, EXT_geometry_shader, EXT_shader_framebuffer_fetch, EXT_shader_texture_lod, EXT_YUV_target, NV_EGL_stream_consumer_external, NV_shader_framebuffer_fetch, OES_EGL_image_external, OES_EGL_image_external_essl3, OES_geometry_shader, OES_standard_derivatives, OVR_multiview }; enum TBehavior { EBhRequire, EBhEnable, EBhWarn, EBhDisable, EBhUndefined }; const char *GetExtensionNameString(TExtension extension); TExtension GetExtensionByName(const char *extension); const char *GetBehaviorString(TBehavior b); // Mapping between extension id and behavior. typedef std::map TExtensionBehavior; bool IsExtensionEnabled(const TExtensionBehavior &extBehavior, TExtension extension); } // namespace sh #endif // COMPILER_TRANSLATOR_EXTENSIONBEHAVIOR_H_