]> git.lizzy.rs Git - irrlicht.git/blob - include/EDriverFeatures.h
Remove irr::core::hash
[irrlicht.git] / include / EDriverFeatures.h
1 // Copyright (C) 2002-2012 Nikolaus Gebhardt\r
2 // This file is part of the "Irrlicht Engine".\r
3 // For conditions of distribution and use, see copyright notice in irrlicht.h\r
4 \r
5 #ifndef __E_DRIVER_FEATURES_H_INCLUDED__\r
6 #define __E_DRIVER_FEATURES_H_INCLUDED__\r
7 \r
8 namespace irr\r
9 {\r
10 namespace video\r
11 {\r
12 \r
13         //! enumeration for querying features of the video driver.\r
14         enum E_VIDEO_DRIVER_FEATURE\r
15         {\r
16                 //! Is driver able to render to a surface?\r
17                 EVDF_RENDER_TO_TARGET = 0,\r
18 \r
19                 //! Is hardware transform and lighting supported?\r
20                 EVDF_HARDWARE_TL,\r
21 \r
22                 //! Are multiple textures per material possible?\r
23                 EVDF_MULTITEXTURE,\r
24 \r
25                 //! Is driver able to render with a bilinear filter applied?\r
26                 EVDF_BILINEAR_FILTER,\r
27 \r
28                 //! Can the driver handle mip maps?\r
29                 EVDF_MIP_MAP,\r
30 \r
31                 //! Can the driver update mip maps automatically?\r
32                 EVDF_MIP_MAP_AUTO_UPDATE,\r
33 \r
34                 //! Are stencilbuffers switched on and does the device support stencil buffers?\r
35                 EVDF_STENCIL_BUFFER,\r
36 \r
37                 //! Is Vertex Shader 1.1 supported?\r
38                 EVDF_VERTEX_SHADER_1_1,\r
39 \r
40                 //! Is Vertex Shader 2.0 supported?\r
41                 EVDF_VERTEX_SHADER_2_0,\r
42 \r
43                 //! Is Vertex Shader 3.0 supported?\r
44                 EVDF_VERTEX_SHADER_3_0,\r
45 \r
46                 //! Is Pixel Shader 1.1 supported?\r
47                 EVDF_PIXEL_SHADER_1_1,\r
48 \r
49                 //! Is Pixel Shader 1.2 supported?\r
50                 EVDF_PIXEL_SHADER_1_2,\r
51 \r
52                 //! Is Pixel Shader 1.3 supported?\r
53                 EVDF_PIXEL_SHADER_1_3,\r
54 \r
55                 //! Is Pixel Shader 1.4 supported?\r
56                 EVDF_PIXEL_SHADER_1_4,\r
57 \r
58                 //! Is Pixel Shader 2.0 supported?\r
59                 EVDF_PIXEL_SHADER_2_0,\r
60 \r
61                 //! Is Pixel Shader 3.0 supported?\r
62                 EVDF_PIXEL_SHADER_3_0,\r
63 \r
64                 //! Are ARB vertex programs v1.0 supported?\r
65                 EVDF_ARB_VERTEX_PROGRAM_1,\r
66 \r
67                 //! Are ARB fragment programs v1.0 supported?\r
68                 EVDF_ARB_FRAGMENT_PROGRAM_1,\r
69 \r
70                 //! Is GLSL supported?\r
71                 EVDF_ARB_GLSL,\r
72 \r
73                 //! Is HLSL supported?\r
74                 EVDF_HLSL,\r
75 \r
76                 //! Are non-square textures supported?\r
77                 EVDF_TEXTURE_NSQUARE,\r
78 \r
79                 //! Are non-power-of-two textures supported?\r
80                 EVDF_TEXTURE_NPOT,\r
81 \r
82                 //! Are framebuffer objects supported?\r
83                 EVDF_FRAMEBUFFER_OBJECT,\r
84 \r
85                 //! Are vertex buffer objects supported?\r
86                 EVDF_VERTEX_BUFFER_OBJECT,\r
87 \r
88                 //! Supports Alpha To Coverage\r
89                 EVDF_ALPHA_TO_COVERAGE,\r
90 \r
91                 //! Supports Color masks (disabling color planes in output)\r
92                 EVDF_COLOR_MASK,\r
93 \r
94                 //! Supports multiple render targets at once\r
95                 EVDF_MULTIPLE_RENDER_TARGETS,\r
96 \r
97                 //! Supports separate blend settings for multiple render targets\r
98                 EVDF_MRT_BLEND,\r
99 \r
100                 //! Supports separate color masks for multiple render targets\r
101                 EVDF_MRT_COLOR_MASK,\r
102 \r
103                 //! Supports separate blend functions for multiple render targets\r
104                 EVDF_MRT_BLEND_FUNC,\r
105 \r
106                 //! Supports geometry shaders\r
107                 EVDF_GEOMETRY_SHADER,\r
108 \r
109                 //! Supports occlusion queries\r
110                 EVDF_OCCLUSION_QUERY,\r
111 \r
112                 //! Supports polygon offset/depth bias for avoiding z-fighting\r
113                 EVDF_POLYGON_OFFSET,\r
114 \r
115                 //! Support for different blend functions. Without, only ADD is available\r
116                 EVDF_BLEND_OPERATIONS,\r
117 \r
118                 //! Support for separate blending for RGB and Alpha.\r
119                 EVDF_BLEND_SEPARATE,\r
120 \r
121                 //! Support for texture coord transformation via texture matrix\r
122                 EVDF_TEXTURE_MATRIX,\r
123 \r
124                 //! Support for DXTn compressed textures.\r
125                 EVDF_TEXTURE_COMPRESSED_DXT,\r
126 \r
127                 //! Support for PVRTC compressed textures.\r
128                 EVDF_TEXTURE_COMPRESSED_PVRTC,\r
129 \r
130                 //! Support for PVRTC2 compressed textures.\r
131                 EVDF_TEXTURE_COMPRESSED_PVRTC2,\r
132 \r
133                 //! Support for ETC1 compressed textures.\r
134                 EVDF_TEXTURE_COMPRESSED_ETC1,\r
135 \r
136                 //! Support for ETC2 compressed textures.\r
137                 EVDF_TEXTURE_COMPRESSED_ETC2,\r
138 \r
139                 //! Support for cube map textures.\r
140                 EVDF_TEXTURE_CUBEMAP,\r
141 \r
142                 //! Support for filtering across different faces of the cubemap\r
143                 EVDF_TEXTURE_CUBEMAP_SEAMLESS,\r
144 \r
145                 //! Support for clamping vertices beyond far-plane to depth instead of capping them.\r
146                 EVDF_DEPTH_CLAMP,\r
147 \r
148                 //! Only used for counting the elements of this enum\r
149                 EVDF_COUNT\r
150         };\r
151 \r
152 } // end namespace video\r
153 } // end namespace irr\r
154 \r
155 \r
156 #endif\r
157 \r