Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/DeviceCaps.h Source File

Diligent Engine API Reference

DeviceCaps.h
1 /* Copyright 2015-2018 Egor Yusov
2 *
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12 *
13 * In no event and under no legal theory, whether in tort (including negligence),
14 * contract, or otherwise, unless required by applicable law (such as deliberate
15 * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16 * liable for any damages, including any direct, indirect, special, incidental,
17 * or consequential damages of any character arising as a result of this License or
18 * out of the use or inability to use the software (including but not limited to damages
19 * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20 * all other commercial damages or losses), even if such Contributor has been advised
21 * of the possibility of such damages.
22 */
23
24 #pragma once
25
28
29 #include "GraphicsTypes.h"
30
31 namespace Diligent
32 {
34 enum class DeviceType : Int32
35 {
36 Undefined = 0,
37 D3D11,
38 D3D12,
39 OpenGL,
40 OpenGLES
41 };
42
44 struct SamplerCaps
45 {
47 Bool bBorderSamplingModeSupported;
48
50 Bool bAnisotropicFilteringSupported;
51
53 Bool bLODBiasSupported;
54
56 SamplerCaps() :
57 bBorderSamplingModeSupported( True ),
58 bAnisotropicFilteringSupported( True ),
59 bLODBiasSupported( True )
60 {}
61 };
62
64 struct TextureCaps
65 {
67 Bool bTexture1DSupported;
68
70 Bool bTexture1DArraySupported;
71
73 Bool bTexture2DMSSupported;
74
76 Bool bTexture2DMSArraySupported;
77
79 bool bTextureViewSupported;
80
82 bool bCubemapArraysSupported;
83
85 TextureCaps():
86 bTexture1DSupported( True ),
87 bTexture1DArraySupported( True ),
88 bTexture2DMSSupported( True ),
89 bTexture2DMSArraySupported( True ),
90 bTextureViewSupported( True ),
91 bCubemapArraysSupported( True )
92 {}
93 };
94
96 struct DeviceCaps
97 {
99 DeviceType DevType;
100
103 Int32 MajorVersion;
104
107 Int32 MinorVersion;
108
110 Bool bSeparableProgramSupported;
111
113 Bool bIndirectRenderingSupported;
114
116 Bool bWireframeFillSupported;
117
119 Bool bMultithreadedResourceCreationSupported;
120
122 SamplerCaps SamCaps;
123
125 TextureCaps TexCaps;
126
128 DeviceCaps() :
129 DevType( DeviceType::Undefined ),
130 MajorVersion( 0 ),
131 MinorVersion( 0 ),
132 bSeparableProgramSupported( True ),
133 bIndirectRenderingSupported( True ),
134 bWireframeFillSupported( True ),
135 bMultithreadedResourceCreationSupported( False )
136 {}
137 };
138 }
Diligent::DeviceCaps::bSeparableProgramSupported
Bool bSeparableProgramSupported
Indicates if device supports separable programs.
Definition: DeviceCaps.h:110
Diligent::TextureCaps::bTexture2DMSSupported
Bool bTexture2DMSSupported
Indicates if device supports 2D multisampled textures.
Definition: DeviceCaps.h:73
Diligent::DeviceCaps::bMultithreadedResourceCreationSupported
Bool bMultithreadedResourceCreationSupported
Indicates if device supports multithreaded resource creation.
Definition: DeviceCaps.h:119
Diligent::DeviceType::D3D12
D3D12 device.
Diligent::DeviceCaps::MinorVersion
Int32 MinorVersion
Major API revision. For instance, for D3D11.2 this value would be 2, and for OpenGL4.3 this value would be 3.
Definition: DeviceCaps.h:107
Diligent::SamplerCaps::bAnisotropicFilteringSupported
Bool bAnisotropicFilteringSupported
Indicates if device supports anisotrpoic filtering.
Definition: DeviceCaps.h:50
Diligent::DeviceType::OpenGL
OpenGL device.
Diligent::DeviceType::Undefined
Undefined device.
Diligent::DeviceCaps::bWireframeFillSupported
Bool bWireframeFillSupported
Indicates if device supports wireframe fill mode.
Definition: DeviceCaps.h:116
Diligent
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
Diligent::SamplerCaps::bLODBiasSupported
Bool bLODBiasSupported
Indicates if device supports MIP load bias.
Definition: DeviceCaps.h:53
Diligent::TextureCaps::TextureCaps
TextureCaps()
Initializes the structure members with default values.
Definition: DeviceCaps.h:85
Diligent::SamplerCaps::SamplerCaps
SamplerCaps()
Initializes the structure members with default values.
Definition: DeviceCaps.h:56
Diligent::DeviceCaps::SamCaps
SamplerCaps SamCaps
Texture sampling capabilities. See Diligent::SamplerCaps.
Definition: DeviceCaps.h:122
Diligent::DeviceCaps
Device capabilities.
Definition: DeviceCaps.h:96
Diligent::TextureCaps::bTexture1DArraySupported
Bool bTexture1DArraySupported
Indicates if device supports 1D texture arrays.
Definition: DeviceCaps.h:70
Diligent::TextureCaps::bTexture1DSupported
Bool bTexture1DSupported
Indicates if device supports 1D textures.
Definition: DeviceCaps.h:67
Diligent::DeviceCaps::MajorVersion
Int32 MajorVersion
Major API revision. For instance, for D3D11.2 this value would be 11, and for OpenGL4.3 this value would be 4.
Definition: DeviceCaps.h:103
Diligent::DeviceType
DeviceType
Device type.
Definition: DeviceCaps.h:34
Diligent::DeviceType::D3D11
D3D11 device.
Diligent::DeviceCaps::DevType
DeviceType DevType
Device type. See Diligent::DeviceType.
Definition: DeviceCaps.h:99
Diligent::TextureCaps
Texture capabilities.
Definition: DeviceCaps.h:64
Diligent::TextureCaps::bTextureViewSupported
bool bTextureViewSupported
Indicates if device supports texture views.
Definition: DeviceCaps.h:79
Diligent::TextureCaps::bTexture2DMSArraySupported
Bool bTexture2DMSArraySupported
Indicates if device supports 2D multisampled texture arrays.
Definition: DeviceCaps.h:76
Diligent::DeviceCaps::DeviceCaps
DeviceCaps()
Initializes the structure members with default values.
Definition: DeviceCaps.h:128
Diligent::DeviceCaps::bIndirectRenderingSupported
Bool bIndirectRenderingSupported
Indicates if device supports indirect draw commands.
Definition: DeviceCaps.h:113
Diligent::DeviceCaps::TexCaps
TextureCaps TexCaps
Texture capabilities. See Diligent::TextureCaps.
Definition: DeviceCaps.h:125
Diligent::SamplerCaps::bBorderSamplingModeSupported
Bool bBorderSamplingModeSupported
Indicates if device supports border texture addressing mode.
Definition: DeviceCaps.h:47
Diligent::TextureCaps::bCubemapArraysSupported
bool bCubemapArraysSupported
Indicates if device supports cubemap arrays.
Definition: DeviceCaps.h:82
Diligent::SamplerCaps
Texture sampler capabilities.
Definition: DeviceCaps.h:44
Diligent::DeviceType::OpenGLES
OpenGLES device.