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  {
48 
51 
54 
59  bLODBiasSupported( True )
60  {}
61  };
62 
64  struct TextureCaps
65  {
68 
71 
74 
77 
80 
83 
86  bTexture1DSupported( True ),
88  bTexture2DMSSupported( True ),
90  bTextureViewSupported( True ),
92  {}
93  };
94 
96  struct DeviceCaps
97  {
100 
104 
108 
111 
114 
117 
120 
123 
126 
129  DevType( DeviceType::Undefined ),
130  MajorVersion( 0 ),
131  MinorVersion( 0 ),
134  bWireframeFillSupported( True ),
136  {}
137  };
138 }
Bool bSeparableProgramSupported
Indicates if device supports separable programs.
Definition: DeviceCaps.h:110
Bool bTexture2DMSSupported
Indicates if device supports 2D multisampled textures.
Definition: DeviceCaps.h:73
Bool bMultithreadedResourceCreationSupported
Indicates if device supports multithreaded resource creation.
Definition: DeviceCaps.h:119
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
Bool bAnisotropicFilteringSupported
Indicates if device supports anisotrpoic filtering.
Definition: DeviceCaps.h:50
Bool bWireframeFillSupported
Indicates if device supports wireframe fill mode.
Definition: DeviceCaps.h:116
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
Bool bLODBiasSupported
Indicates if device supports MIP load bias.
Definition: DeviceCaps.h:53
TextureCaps()
Initializes the structure members with default values.
Definition: DeviceCaps.h:85
SamplerCaps()
Initializes the structure members with default values.
Definition: DeviceCaps.h:56
SamplerCaps SamCaps
Texture sampling capabilities. See Diligent::SamplerCaps.
Definition: DeviceCaps.h:122
Device capabilities.
Definition: DeviceCaps.h:96
Bool bTexture1DArraySupported
Indicates if device supports 1D texture arrays.
Definition: DeviceCaps.h:70
Bool bTexture1DSupported
Indicates if device supports 1D textures.
Definition: DeviceCaps.h:67
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
DeviceType
Device type.
Definition: DeviceCaps.h:34
DeviceType DevType
Device type. See Diligent::DeviceType.
Definition: DeviceCaps.h:99
Texture capabilities.
Definition: DeviceCaps.h:64
bool bTextureViewSupported
Indicates if device supports texture views.
Definition: DeviceCaps.h:79
Bool bTexture2DMSArraySupported
Indicates if device supports 2D multisampled texture arrays.
Definition: DeviceCaps.h:76
DeviceCaps()
Initializes the structure members with default values.
Definition: DeviceCaps.h:128
Bool bIndirectRenderingSupported
Indicates if device supports indirect draw commands.
Definition: DeviceCaps.h:113
TextureCaps TexCaps
Texture capabilities. See Diligent::TextureCaps.
Definition: DeviceCaps.h:125
Bool bBorderSamplingModeSupported
Indicates if device supports border texture addressing mode.
Definition: DeviceCaps.h:47
bool bCubemapArraysSupported
Indicates if device supports cubemap arrays.
Definition: DeviceCaps.h:82
Texture sampler capabilities.
Definition: DeviceCaps.h:44