1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
//
// 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 <map>
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<TExtension, TBehavior> TExtensionBehavior;
bool IsExtensionEnabled(const TExtensionBehavior &extBehavior, TExtension extension);
} // namespace sh
#endif // COMPILER_TRANSLATOR_EXTENSIONBEHAVIOR_H_
|