2013-03-28 10:04:07 -07:00
|
|
|
// Copyright (C) 2002-2012 Nikolaus Gebhardt
|
2009-05-04 17:09:53 -07:00
|
|
|
// This file is part of the "Irrlicht Engine".
|
|
|
|
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
|
|
|
|
2021-08-30 14:06:51 -07:00
|
|
|
#ifndef IRR_E_DRIVER_FEATURES_H_INCLUDED
|
|
|
|
#define IRR_E_DRIVER_FEATURES_H_INCLUDED
|
2009-05-04 17:09:53 -07:00
|
|
|
|
|
|
|
namespace irr
|
|
|
|
{
|
|
|
|
namespace video
|
|
|
|
{
|
|
|
|
|
|
|
|
//! enumeration for querying features of the video driver.
|
|
|
|
enum E_VIDEO_DRIVER_FEATURE
|
|
|
|
{
|
|
|
|
//! Is driver able to render to a surface?
|
|
|
|
EVDF_RENDER_TO_TARGET = 0,
|
|
|
|
|
2019-10-17 03:23:16 -07:00
|
|
|
//! Is hardware transform and lighting supported?
|
2009-05-04 17:09:53 -07:00
|
|
|
EVDF_HARDWARE_TL,
|
|
|
|
|
|
|
|
//! Are multiple textures per material possible?
|
|
|
|
EVDF_MULTITEXTURE,
|
|
|
|
|
|
|
|
//! Is driver able to render with a bilinear filter applied?
|
|
|
|
EVDF_BILINEAR_FILTER,
|
|
|
|
|
|
|
|
//! Can the driver handle mip maps?
|
|
|
|
EVDF_MIP_MAP,
|
|
|
|
|
|
|
|
//! Can the driver update mip maps automatically?
|
|
|
|
EVDF_MIP_MAP_AUTO_UPDATE,
|
|
|
|
|
|
|
|
//! Are stencilbuffers switched on and does the device support stencil buffers?
|
|
|
|
EVDF_STENCIL_BUFFER,
|
|
|
|
|
|
|
|
//! Is Vertex Shader 1.1 supported?
|
|
|
|
EVDF_VERTEX_SHADER_1_1,
|
|
|
|
|
|
|
|
//! Is Vertex Shader 2.0 supported?
|
|
|
|
EVDF_VERTEX_SHADER_2_0,
|
|
|
|
|
|
|
|
//! Is Vertex Shader 3.0 supported?
|
|
|
|
EVDF_VERTEX_SHADER_3_0,
|
|
|
|
|
|
|
|
//! Is Pixel Shader 1.1 supported?
|
|
|
|
EVDF_PIXEL_SHADER_1_1,
|
|
|
|
|
|
|
|
//! Is Pixel Shader 1.2 supported?
|
|
|
|
EVDF_PIXEL_SHADER_1_2,
|
|
|
|
|
|
|
|
//! Is Pixel Shader 1.3 supported?
|
|
|
|
EVDF_PIXEL_SHADER_1_3,
|
|
|
|
|
|
|
|
//! Is Pixel Shader 1.4 supported?
|
|
|
|
EVDF_PIXEL_SHADER_1_4,
|
|
|
|
|
|
|
|
//! Is Pixel Shader 2.0 supported?
|
|
|
|
EVDF_PIXEL_SHADER_2_0,
|
|
|
|
|
|
|
|
//! Is Pixel Shader 3.0 supported?
|
|
|
|
EVDF_PIXEL_SHADER_3_0,
|
|
|
|
|
|
|
|
//! Are ARB vertex programs v1.0 supported?
|
|
|
|
EVDF_ARB_VERTEX_PROGRAM_1,
|
|
|
|
|
|
|
|
//! Are ARB fragment programs v1.0 supported?
|
|
|
|
EVDF_ARB_FRAGMENT_PROGRAM_1,
|
|
|
|
|
|
|
|
//! Is GLSL supported?
|
|
|
|
EVDF_ARB_GLSL,
|
|
|
|
|
|
|
|
//! Is HLSL supported?
|
|
|
|
EVDF_HLSL,
|
|
|
|
|
|
|
|
//! Are non-square textures supported?
|
|
|
|
EVDF_TEXTURE_NSQUARE,
|
|
|
|
|
|
|
|
//! Are non-power-of-two textures supported?
|
|
|
|
EVDF_TEXTURE_NPOT,
|
|
|
|
|
|
|
|
//! Are framebuffer objects supported?
|
|
|
|
EVDF_FRAMEBUFFER_OBJECT,
|
|
|
|
|
|
|
|
//! Are vertex buffer objects supported?
|
|
|
|
EVDF_VERTEX_BUFFER_OBJECT,
|
|
|
|
|
|
|
|
//! Supports Alpha To Coverage
|
|
|
|
EVDF_ALPHA_TO_COVERAGE,
|
|
|
|
|
|
|
|
//! Supports Color masks (disabling color planes in output)
|
|
|
|
EVDF_COLOR_MASK,
|
|
|
|
|
2009-11-20 02:08:00 -08:00
|
|
|
//! Supports multiple render targets at once
|
|
|
|
EVDF_MULTIPLE_RENDER_TARGETS,
|
|
|
|
|
|
|
|
//! Supports separate blend settings for multiple render targets
|
|
|
|
EVDF_MRT_BLEND,
|
|
|
|
|
|
|
|
//! Supports separate color masks for multiple render targets
|
|
|
|
EVDF_MRT_COLOR_MASK,
|
|
|
|
|
|
|
|
//! Supports separate blend functions for multiple render targets
|
|
|
|
EVDF_MRT_BLEND_FUNC,
|
|
|
|
|
|
|
|
//! Supports geometry shaders
|
|
|
|
EVDF_GEOMETRY_SHADER,
|
|
|
|
|
2010-06-01 15:52:38 -07:00
|
|
|
//! Supports occlusion queries
|
|
|
|
EVDF_OCCLUSION_QUERY,
|
|
|
|
|
2011-05-18 15:21:50 -07:00
|
|
|
//! Supports polygon offset/depth bias for avoiding z-fighting
|
|
|
|
EVDF_POLYGON_OFFSET,
|
|
|
|
|
|
|
|
//! Support for different blend functions. Without, only ADD is available
|
|
|
|
EVDF_BLEND_OPERATIONS,
|
|
|
|
|
2014-05-08 09:58:33 -07:00
|
|
|
//! Support for separate blending for RGB and Alpha.
|
|
|
|
EVDF_BLEND_SEPARATE,
|
|
|
|
|
2011-06-09 00:08:47 -07:00
|
|
|
//! Support for texture coord transformation via texture matrix
|
|
|
|
EVDF_TEXTURE_MATRIX,
|
|
|
|
|
2013-03-28 10:04:07 -07:00
|
|
|
//! Support for DXTn compressed textures.
|
|
|
|
EVDF_TEXTURE_COMPRESSED_DXT,
|
|
|
|
|
2013-05-20 14:38:55 -07:00
|
|
|
//! Support for PVRTC compressed textures.
|
|
|
|
EVDF_TEXTURE_COMPRESSED_PVRTC,
|
|
|
|
|
|
|
|
//! Support for PVRTC2 compressed textures.
|
|
|
|
EVDF_TEXTURE_COMPRESSED_PVRTC2,
|
|
|
|
|
2013-05-26 10:54:36 -07:00
|
|
|
//! Support for ETC1 compressed textures.
|
|
|
|
EVDF_TEXTURE_COMPRESSED_ETC1,
|
|
|
|
|
|
|
|
//! Support for ETC2 compressed textures.
|
|
|
|
EVDF_TEXTURE_COMPRESSED_ETC2,
|
|
|
|
|
2013-11-18 14:41:30 -08:00
|
|
|
//! Support for cube map textures.
|
2015-11-28 04:10:25 -08:00
|
|
|
EVDF_TEXTURE_CUBEMAP,
|
2013-11-18 14:41:30 -08:00
|
|
|
|
2018-11-25 07:44:47 -08:00
|
|
|
//! Support for filtering across different faces of the cubemap
|
|
|
|
EVDF_TEXTURE_CUBEMAP_SEAMLESS,
|
|
|
|
|
2019-11-25 06:35:58 -08:00
|
|
|
//! Support for clamping vertices beyond far-plane to depth instead of capping them.
|
|
|
|
EVDF_DEPTH_CLAMP,
|
|
|
|
|
2009-05-04 17:09:53 -07:00
|
|
|
//! Only used for counting the elements of this enum
|
|
|
|
EVDF_COUNT
|
|
|
|
};
|
|
|
|
|
|
|
|
} // end namespace video
|
|
|
|
} // end namespace irr
|
|
|
|
|
|
|
|
#endif
|