61 static int UnknownModel = -1;
68 static constexpr size_t unknownAmount = ~static_cast<size_t>(0);
70 int featureLevelMajor = -1;
71 int featureLevelMinor = -1;
73 int MaxTextureSlots = 0;
74 int MaxVertexInputElements = 32;
75 unsigned MaxSamples = 8;
76 unsigned MaxMultiViews = 0;
77 float MaxAnisotropy = 1.f;
85 bool RenderPass =
false;
87 bool GeometryShaders =
false;
88 bool TessellationShaders =
false;
89 bool ComputeShaders =
false;
92 bool SupportsHlsl =
true;
95 bool UnsignedIntIndexes =
true;
96 bool FloatTextures =
true;
97 bool TextureCompressionS3TC =
false;
98 bool TextureCompressionRGTC =
false;
99 bool TextureCompressionBPTC =
false;
100 bool TextureCompressionETC =
false;
101 bool TextureCompressionPVRTC =
false;
102 bool TextureCompressionASTC =
false;
104 bool VertexAndIndexDataInSharedBuffers =
true;
105 bool SupportsMultipleThreads =
true;
108 bool MultiView =
false;
109 bool MultiSampleMultiView =
false;
124 size_t DedicatedVideoMemory = unknownAmount;
125 size_t DedicatedSystemMemory = unknownAmount;
126 size_t SharedSystemMemory = unknownAmount;
128 bool CheckFeatureLevel(
int major,
int minor)
const
130 if(major > featureLevelMajor)
return true;
131 if(major == featureLevelMajor && minor >= featureLevelMinor)
return true;
161 virtual int getModel()
const {
return UnknownModel; };
Contains all Cogs related functionality.
Contains device capabilities.
bool DefaultColorTargetHasLinearEncoding
Encoding of default color target.
bool DepthNegativeOneToOne
If true, min z depth=-1 otherwise it is min z depth = 0 (max z depth = 1).
bool FragDepth
Allows setting fragdepth in fragment shader.
uint32_t MaxTexture3DSize
Using D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION as default.
bool IndependentSamplerState
Sampler state not tied to a texture unit (hlsl style)
bool OriginOnTop
If true, y=0 refers to top of screen, otherwise it refers to bottom.
uint32_t MaxTexture2DSize
Using D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION as default.
bool SyncObjects
Support for syncronization objects.
uint32_t MaxTextureCubeSize
Using D3D11_REQ_TEXTURECUBE_DIMENSION as default.
bool Instancing
Supports instanced draw calls.
bool VertexArrayObjects
Supports binding input geometry using GL vertex array objects.
uint32_t MaxTextureArrayLayers
Using D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION as default.
bool TextureCubeArrays
supports texture cube arrays.
bool StartInstance
Supports non-zero start instance in instanced draw calls.
unsigned ConstantBufferOffsetAlignment
Minimum offset alignment when binding constant buffers.
bool ConstantBufferRange
supports binding a range of a constant buffer.
Provides capability query functionality.
virtual int getModel() const
Gets the model number of the initialized graphics device.
virtual const GraphicsDeviceCapabilities & getDeviceCapabilities() const
Gets the device capabilities in a structure.
virtual bool supportsInstancing() const
Check if the graphics device supports instancing.
virtual Vendors::EVendors getVendor() const
Gets the known vendor of the initialized graphics device.
virtual Series::ESeries getSeries() const
Gets the series of GPUs the currently initialized graphics device belongs to.
virtual int getMaxTextureSlots() const
Gets maximum number of supported texture slots.
Known graphics device series.
@ QuadroFX
nVidia Quadro FX professional graphics adapters.
@ FireGL
AMD FireGL series.
@ geForce
nVidia geForce consumer adapters.
@ RadeonX
AMD Radeon X series.
@ RadeonHD
AMD Radeon HD series.
@ Quadro
nVidia Quadro professional graphics adapters.
Known graphics device vendors.
@ nVidia
nVidia Corporation.
@ Unknown
Unknown device vendor.