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
5 #ifndef __E_DRIVER_FEATURES_H_INCLUDED__
\r
6 #define __E_DRIVER_FEATURES_H_INCLUDED__
\r
13 //! enumeration for querying features of the video driver.
\r
14 enum E_VIDEO_DRIVER_FEATURE
\r
16 //! Is driver able to render to a surface?
\r
17 EVDF_RENDER_TO_TARGET = 0,
\r
19 //! Is hardware transform and lighting supported?
\r
22 //! Are multiple textures per material possible?
\r
25 //! Is driver able to render with a bilinear filter applied?
\r
26 EVDF_BILINEAR_FILTER,
\r
28 //! Can the driver handle mip maps?
\r
31 //! Can the driver update mip maps automatically?
\r
32 EVDF_MIP_MAP_AUTO_UPDATE,
\r
34 //! Are stencilbuffers switched on and does the device support stencil buffers?
\r
35 EVDF_STENCIL_BUFFER,
\r
37 //! Is Vertex Shader 1.1 supported?
\r
38 EVDF_VERTEX_SHADER_1_1,
\r
40 //! Is Vertex Shader 2.0 supported?
\r
41 EVDF_VERTEX_SHADER_2_0,
\r
43 //! Is Vertex Shader 3.0 supported?
\r
44 EVDF_VERTEX_SHADER_3_0,
\r
46 //! Is Pixel Shader 1.1 supported?
\r
47 EVDF_PIXEL_SHADER_1_1,
\r
49 //! Is Pixel Shader 1.2 supported?
\r
50 EVDF_PIXEL_SHADER_1_2,
\r
52 //! Is Pixel Shader 1.3 supported?
\r
53 EVDF_PIXEL_SHADER_1_3,
\r
55 //! Is Pixel Shader 1.4 supported?
\r
56 EVDF_PIXEL_SHADER_1_4,
\r
58 //! Is Pixel Shader 2.0 supported?
\r
59 EVDF_PIXEL_SHADER_2_0,
\r
61 //! Is Pixel Shader 3.0 supported?
\r
62 EVDF_PIXEL_SHADER_3_0,
\r
64 //! Are ARB vertex programs v1.0 supported?
\r
65 EVDF_ARB_VERTEX_PROGRAM_1,
\r
67 //! Are ARB fragment programs v1.0 supported?
\r
68 EVDF_ARB_FRAGMENT_PROGRAM_1,
\r
70 //! Is GLSL supported?
\r
73 //! Is HLSL supported?
\r
76 //! Are non-square textures supported?
\r
77 EVDF_TEXTURE_NSQUARE,
\r
79 //! Are non-power-of-two textures supported?
\r
82 //! Are framebuffer objects supported?
\r
83 EVDF_FRAMEBUFFER_OBJECT,
\r
85 //! Are vertex buffer objects supported?
\r
86 EVDF_VERTEX_BUFFER_OBJECT,
\r
88 //! Supports Alpha To Coverage
\r
89 EVDF_ALPHA_TO_COVERAGE,
\r
91 //! Supports Color masks (disabling color planes in output)
\r
94 //! Supports multiple render targets at once
\r
95 EVDF_MULTIPLE_RENDER_TARGETS,
\r
97 //! Supports separate blend settings for multiple render targets
\r
100 //! Supports separate color masks for multiple render targets
\r
101 EVDF_MRT_COLOR_MASK,
\r
103 //! Supports separate blend functions for multiple render targets
\r
104 EVDF_MRT_BLEND_FUNC,
\r
106 //! Supports geometry shaders
\r
107 EVDF_GEOMETRY_SHADER,
\r
109 //! Supports occlusion queries
\r
110 EVDF_OCCLUSION_QUERY,
\r
112 //! Supports polygon offset/depth bias for avoiding z-fighting
\r
113 EVDF_POLYGON_OFFSET,
\r
115 //! Support for different blend functions. Without, only ADD is available
\r
116 EVDF_BLEND_OPERATIONS,
\r
118 //! Support for separate blending for RGB and Alpha.
\r
119 EVDF_BLEND_SEPARATE,
\r
121 //! Support for texture coord transformation via texture matrix
\r
122 EVDF_TEXTURE_MATRIX,
\r
124 //! Support for DXTn compressed textures.
\r
125 EVDF_TEXTURE_COMPRESSED_DXT,
\r
127 //! Support for PVRTC compressed textures.
\r
128 EVDF_TEXTURE_COMPRESSED_PVRTC,
\r
130 //! Support for PVRTC2 compressed textures.
\r
131 EVDF_TEXTURE_COMPRESSED_PVRTC2,
\r
133 //! Support for ETC1 compressed textures.
\r
134 EVDF_TEXTURE_COMPRESSED_ETC1,
\r
136 //! Support for ETC2 compressed textures.
\r
137 EVDF_TEXTURE_COMPRESSED_ETC2,
\r
139 //! Support for cube map textures.
\r
140 EVDF_TEXTURE_CUBEMAP,
\r
142 //! Support for filtering across different faces of the cubemap
\r
143 EVDF_TEXTURE_CUBEMAP_SEAMLESS,
\r
145 //! Support for clamping vertices beyond far-plane to depth instead of capping them.
\r
148 //! Only used for counting the elements of this enum
\r
152 } // end namespace video
\r
153 } // end namespace irr
\r