4#include <Foundation/Algorithm/HashableStruct.h>
5#include <Foundation/Containers/HybridArray.h>
6#include <Foundation/Containers/StaticArray.h>
7#include <Foundation/Math/Color.h>
8#include <Foundation/Types/SharedPtr.h>
9#include <RendererFoundation/Descriptors/Enumerations.h>
10#include <RendererFoundation/RendererFoundationDLL.h>
11#include <RendererFoundation/Resources/ResourceFormats.h>
12#include <RendererFoundation/Shader/ShaderByteCode.h>
13#include <Texture/Image/ImageEnums.h>
25 plGALMSAASampleCount::Enum m_SampleCount = plGALMSAASampleCount::None;
26 plGALResourceFormat::Enum m_BackBufferFormat = plGALResourceFormat::RGBAUByteNormalizedsRGB;
29 bool m_bDoubleBuffered =
true;
30 bool m_bAllowScreenshots =
false;
35 const plRTTI* m_pSwapChainType =
nullptr;
40 bool m_bDebugDevice =
false;
48 bool HasByteCodeForStage(plGALShaderStage::Enum stage)
const;
96 bool m_bDepthTest =
true;
97 bool m_bDepthWrite =
true;
98 bool m_bStencilTest =
false;
99 plUInt8 m_uiStencilReadMask = 0xFF;
100 plUInt8 m_uiStencilWriteMask = 0xFF;
113 bool m_bScissorTest =
false;
131 float m_fMipLodBias = 0.0f;
132 float m_fMinMip = -1.0f;
133 float m_fMaxMip = 42000.0f;
135 plUInt32 m_uiMaxAnisotropy = 4;
142 plGALVertexAttribute(plGALVertexAttributeSemantic::Enum semantic, plGALResourceFormat::Enum format, plUInt16 uiOffset, plUInt8 uiVertexBufferSlot,
145 plGALVertexAttributeSemantic::Enum m_eSemantic = plGALVertexAttributeSemantic::Position;
146 plGALResourceFormat::Enum m_eFormat = plGALResourceFormat::XYZFloat;
147 plUInt16 m_uiOffset = 0;
148 plUInt8 m_uiVertexBufferSlot = 0;
149 bool m_bInstanceData =
false;
162 PL_ALWAYS_INLINE
bool IsImmutable()
const {
return m_bImmutable; }
164 bool m_bReadBack =
false;
165 bool m_bImmutable =
true;
170 plUInt32 m_uiTotalSize = 0;
171 plUInt32 m_uiStructSize = 0;
178 void SetAsRenderTarget(plUInt32 uiWidth, plUInt32 uiHeight, plGALResourceFormat::Enum format, plGALMSAASampleCount::Enum sampleCount = plGALMSAASampleCount::None);
180 plUInt32 m_uiWidth = 0;
181 plUInt32 m_uiHeight = 0;
182 plUInt32 m_uiDepth = 1;
183 plUInt32 m_uiMipLevelCount = 1;
184 plUInt32 m_uiArraySize = 1;
190 bool m_bAllowShaderResourceView =
true;
191 bool m_bAllowUAV =
false;
192 bool m_bCreateRenderTarget =
false;
193 bool m_bAllowDynamicMipGeneration =
false;
204 plUInt32 m_uiMostDetailedMipLevel = 0;
205 plUInt32 m_uiMipLevelsToUse = 0xFFFFFFFFu;
206 plUInt32 m_uiFirstArraySlice = 0;
207 plUInt32 m_uiArraySize = 1;
214 plUInt32 m_uiFirstElement = 0;
215 plUInt32 m_uiNumElements = 0;
216 bool m_bRawView =
false;
225 plUInt32 m_uiMipLevel = 0;
227 plUInt32 m_uiFirstSlice = 0;
228 plUInt32 m_uiSliceCount = 1;
245 plUInt32 m_uiFirstElement = 0;
246 plUInt32 m_uiNumElements = 0;
248 bool m_bRawView =
false;
278 plUInt64 m_hSharedTexture = 0;
279 plUInt64 m_hSemaphore = 0;
280 plUInt32 m_uiProcessId = 0;
281 plUInt32 m_uiMemoryTypeIndex = 0;
282 plUInt64 m_uiSize = 0;
285#include <RendererFoundation/Descriptors/Implementation/Descriptors_inl.h>
plColor represents an RGBA color in linear color space. Values are stored as float,...
Definition Color.h:44
static const plColor Black
#000000
Definition Color.h:57
Definition RendererFoundationDLL.h:418
Definition CommandEncoder.h:11
The plRenderDevice class is the primary interface for interactions with rendering APIs It contains a ...
Definition Device.h:19
Definition RendererFoundationDLL.h:404
Definition RendererFoundationDLL.h:411
This class provides a base class for hashable structs (e.g. descriptor objects).
Definition HashableStruct.h:17
This class holds information about reflected types. Each instance represents one type that is known t...
Definition RTTI.h:30
A Shared ptr manages a shared object and destroys that object when no one references it anymore....
Definition SharedPtr.h:10
Wraps a C-style array, which has a fixed size at compile-time, with a more convenient interface.
Definition StaticArray.h:13
Base class of all window classes that have a client area and a native window handle.
Definition Window.h:134
The plBitflags class allows you to work with type-safe bitflags.
Definition Bitflags.h:82
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition Enum.h:37
Definition Descriptors.h:70
bool m_bIndependentBlend
Definition Descriptors.h:74
bool m_bAlphaToCoverage
Alpha-to-coverage can only be used with MSAA render targets. Default is false.
Definition Descriptors.h:73
Definition Descriptors.h:169
Definition Descriptors.h:211
Definition Descriptors.h:243
@ Back
Definition RendererFoundationDLL.h:310
Definition Descriptors.h:88
bool m_bSeparateFrontAndBack
Definition Descriptors.h:94
Definition Descriptors.h:39
Type for important GAL events.
Definition Descriptors.h:253
Describes the settings for a new rasterizer state. See plGALDevice::CreateRasterizerState.
Definition Descriptors.h:105
bool m_bWireFrame
Whether triangles are rendered filled or as wireframe. Default is false.
Definition Descriptors.h:110
bool m_bFrontCounterClockwise
Definition Descriptors.h:111
float m_fDepthBiasClamp
The pixel depth bias clamp. Default is 0.
Definition Descriptors.h:108
bool m_bConservativeRasterization
Whether conservative rasterization is enabled.
Definition Descriptors.h:114
float m_fSlopeScaledDepthBias
The pixel slope scaled depth bias clamp. Default is 0.
Definition Descriptors.h:109
plInt32 m_iDepthBias
The pixel depth bias. Default is 0.
Definition Descriptors.h:107
plEnum< plGALCullMode > m_CullMode
Which sides of a triangle to cull. Default is plGALCullMode::Back.
Definition Descriptors.h:106
Definition Descriptors.h:54
bool m_bBlendingEnabled
Definition Descriptors.h:65
plUInt8 m_uiWriteMask
Definition Descriptors.h:63
Definition Descriptors.h:220
bool m_bReadOnly
Can be used for depth stencil views to create read only views (e.g. for soft particles using the nati...
Definition Descriptors.h:230
Definition Descriptors.h:161
Definition Descriptors.h:118
Definition Descriptors.h:44
Definition Descriptors.h:79
Definition Descriptors.h:34
Definition Descriptors.h:177
void * m_pExisitingNativeObject
Can be used to encapsulate existing native textures in objects usable by the GAL.
Definition Descriptors.h:197
Definition Descriptors.h:201
Definition Descriptors.h:234
plUInt16 m_uiMipLevelToUse
Which MipLevel is accessed with this UAV.
Definition Descriptors.h:238
plUInt32 m_uiArraySize
Number of depth slices for 3D textures.
Definition Descriptors.h:237
plUInt32 m_uiFirstArraySlice
First depth slice for 3D Textures.
Definition Descriptors.h:236
Definition Descriptors.h:139
Definition Descriptors.h:153
Definition Descriptors.h:20