3#include <litefx/rendering.hpp>
6#include "dx12_formatters.hpp"
20 LITEFX_BUILDER(DirectX12VertexBufferLayoutBuilder);
41 virtual
size_t elementSize() const noexcept override;
44 virtual const
UInt32& binding() const noexcept override;
47 virtual const BufferType& type() const noexcept override;
71 virtual const IndexType& indexType() const noexcept override;
76 virtual
size_t elementSize() const noexcept override;
79 virtual const
UInt32& binding() const noexcept override;
82 virtual const BufferType& type() const noexcept override;
107 virtual const D3D12_VERTEX_BUFFER_VIEW& view() const noexcept = 0;
120 virtual const D3D12_INDEX_BUFFER_VIEW& view() const noexcept = 0;
166 virtual
void transition(
IDirectX12Buffer& buffer, const ResourceState& targetState) override;
169 virtual
void transition(
IDirectX12Buffer& buffer, const
UInt32& element, const ResourceState& targetState) override;
172 virtual
void transition(
IDirectX12Buffer& buffer, const ResourceState& sourceState, const ResourceState& targetState) override;
175 virtual
void transition(
IDirectX12Buffer& buffer, const ResourceState& sourceState, const
UInt32& element, const ResourceState& targetState) override;
178 virtual
void transition(
IDirectX12Image& image, const ResourceState& targetState) override;
184 virtual
void transition(
IDirectX12Image& image, const ResourceState& sourceState, const ResourceState& targetState) override;
187 virtual
void transition(
IDirectX12Image& image, const ResourceState& sourceState, const
UInt32& level, const
UInt32& layer, const
UInt32& plane, const ResourceState& targetState) override;
201 virtual
void execute(const
DirectX12CommandBuffer& commandBuffer, const D3D12_RESOURCE_BARRIER_FLAGS& flags = D3D12_RESOURCE_BARRIER_FLAG_NONE) const noexcept;
212 virtual
void executeInverse(const
DirectX12CommandBuffer& commandBuffer, const D3D12_RESOURCE_BARRIER_FLAGS& flags = D3D12_RESOURCE_BARRIER_FLAG_NONE) const noexcept;
249 virtual const
String& fileName() const noexcept override;
252 virtual const
String& entryPoint() const noexcept override;
255 virtual const ShaderStage& type() const noexcept override;
265 LITEFX_BUILDER(DirectX12ShaderProgramBuilder);
294 return std::static_pointer_cast<IPipelineLayout>(this->reflectPipelineLayout());
310 static void suppressMissingRootSignatureWarning(
bool disableWarning =
true) noexcept;
357 virtual const ComPtr<ID3D12DescriptorHeap>& bufferHeap() const noexcept;
363 virtual const
UInt32& bufferOffset() const noexcept;
369 virtual const ComPtr<ID3D12DescriptorHeap>& samplerHeap() const noexcept;
375 virtual const
UInt32& samplerOffset() const noexcept;
413 virtual const DescriptorType& descriptorType() const noexcept override;
416 virtual const
UInt32& descriptors() const noexcept override;
424 virtual
size_t elementSize() const noexcept override;
427 virtual const
UInt32& binding() const noexcept override;
430 virtual const BufferType& type() const noexcept override;
440 LITEFX_BUILDER(DirectX12DescriptorSetLayoutBuilder);
468 virtual const
UInt32& rootParameterIndex() const noexcept;
477 virtual
UInt32 descriptorOffsetForBinding(const
UInt32& binding) const;
490 virtual
UInt32& rootParameterIndex() noexcept;
499 virtual
bool isRuntimeArray() const noexcept;
509 virtual const
UInt32& space() const noexcept override;
512 virtual const ShaderStage& shaderStages() const noexcept override;
515 virtual
UInt32 uniforms() const noexcept override;
518 virtual
UInt32 storages() const noexcept override;
521 virtual
UInt32 images() const noexcept override;
524 virtual
UInt32 buffers() const noexcept override;
527 virtual
UInt32 samplers() const noexcept override;
530 virtual
UInt32 staticSamplers() const noexcept override;
533 virtual
UInt32 inputAttachments() const noexcept override;
570 virtual const
UInt32& space() const noexcept override;
573 virtual const
UInt32& binding() const noexcept override;
576 virtual const
UInt32& offset() const noexcept override;
579 virtual const
UInt32& size() const noexcept override;
582 virtual const ShaderStage& stage() const noexcept override;
589 virtual const
UInt32& rootParameterIndex() const noexcept;
596 virtual
UInt32& rootParameterIndex() noexcept;
612 LITEFX_BUILDER(DirectX12PushConstantsLayoutBuilder);
635 virtual const
UInt32& size() const noexcept override;
657 LITEFX_BUILDER(DirectX12PipelineLayoutBuilder);
705 LITEFX_BUILDER(DirectX12InputAssemblerBuilder);
736 virtual const PrimitiveTopology& topology() const noexcept override;
744 LITEFX_BUILDER(DirectX12RasterizerBuilder);
755 explicit DirectX12Rasterizer(
const PolygonMode& polygonMode,
const CullMode& cullMode,
const CullOrder& cullOrder,
const Float& lineWidth = 1.f,
const DepthStencilState& depthStencilState = {})
noexcept;
806 virtual
void begin() const override;
809 virtual
void end() const override;
812 virtual
void generateMipMaps(
IDirectX12Image& image) noexcept override;
815 virtual
void barrier(const
DirectX12Barrier& barrier, const
bool& invert = false) const noexcept override;
842 virtual
void dispatch(const
Vector3u& threadCount) const noexcept override;
845 virtual
void draw(const
UInt32& vertices, const
UInt32& instances = 1, const
UInt32& firstVertex = 0, const
UInt32& firstInstance = 0) const noexcept override;
848 virtual
void drawIndexed(const
UInt32& indices, const
UInt32& instances = 1, const
UInt32& firstIndex = 0, const
Int32& vertexOffset = 0, const
UInt32& firstInstance = 0) const noexcept override;
861 LITEFX_BUILDER(DirectX12RenderPipelineBuilder);
904 virtual
Array<const
IViewport*> viewports() const noexcept override;
907 virtual
Array<const
IScissor*> scissors() const noexcept override;
910 virtual
UInt32& stencilRef() const noexcept override;
913 virtual
Vector4f& blendFactors() const noexcept override;
916 virtual const
bool& alphaToCoverage() const noexcept override;
931 LITEFX_BUILDER(DirectX12ComputePipelineBuilder);
994 virtual ID3D12DescriptorHeap* renderTargetHeap() const noexcept;
1005 virtual ID3D12DescriptorHeap* depthStencilTargetHeap() const noexcept;
1012 virtual const
UInt32& renderTargetDescriptorSize() const noexcept;
1019 virtual const
UInt32& depthStencilTargetDescriptorSize() const noexcept;
1028 virtual
UInt64& lastFence() const noexcept;
1033 virtual const
UInt32& bufferIndex() const noexcept override;
1036 virtual const
Size2d& size() const noexcept override;
1039 virtual
size_t getWidth() const noexcept override;
1042 virtual
size_t getHeight() const noexcept override;
1058 virtual
void resize(const
Size2d& renderArea) override;
1067 LITEFX_BUILDER(DirectX12RenderPassBuilder);
1136 virtual
bool hasPresentTarget() const noexcept override;
1142 virtual const MultiSamplingLevel& multiSamplingLevel() const noexcept override;
1146 virtual
void begin(const
UInt32& buffer) override;
1149 virtual
void end() const override;
1152 virtual
void resizeFrameBuffers(const
Size2d& renderArea) override;
1155 virtual
void changeMultiSamplingLevel(const MultiSamplingLevel& samples) override;
1211 virtual const
RenderTarget& renderTarget() const noexcept override;
1214 virtual const
UInt32& location() const noexcept override;
1242 virtual const
bool& supportsVariableRefreshRate() const noexcept;
1247 virtual const Format& surfaceFormat() const noexcept override;
1250 virtual const
UInt32& buffers() const noexcept override;
1253 virtual const
Size2d& renderArea() const noexcept override;
1263 virtual
Array<Format> getSurfaceFormats() const noexcept override;
1266 virtual
void reset(const Format& surfaceFormat, const
Size2d& renderArea, const
UInt32& buffers) override;
1269 [[nodiscard]] virtual
UInt32 swapBackBuffer() const override;
1302 virtual
bool isBound() const noexcept override;
1305 virtual const QueuePriority& priority() const noexcept override;
1308 virtual const QueueType& type() const noexcept override;
1312 virtual
void bind() override;
1315 virtual
void release() override;
1327 virtual
void waitFor(const
UInt64& fence) const noexcept override;
1330 virtual
UInt64 currentFence() const noexcept override;
1354 virtual
UniquePtr<
IDirectX12Buffer> createBuffer(const BufferType& type, const BufferUsage& usage, const
size_t& elementSize, const
UInt32& elements = 1, const
bool& allowWrite = false) const override;
1357 virtual
UniquePtr<
IDirectX12Buffer> createBuffer(const
String& name, const BufferType& type, const BufferUsage& usage, const
size_t& elementSize, const
UInt32& elements = 1, const
bool& allowWrite = false) const override;
1372 virtual
UniquePtr<
IDirectX12Image> createAttachment(const Format& format, const
Size2d& size, const MultiSamplingLevel& samples = MultiSamplingLevel::x1) const override;
1375 virtual
UniquePtr<
IDirectX12Image> createAttachment(const
String& name, const Format& format, const
Size2d& size, const MultiSamplingLevel& samples = MultiSamplingLevel::x1) const override;
1378 virtual
UniquePtr<
IDirectX12Image> createTexture(const Format& format, const
Size3d& size, const ImageDimensions& dimension = ImageDimensions::DIM_2, const
UInt32& levels = 1, const
UInt32& layers = 1, const MultiSamplingLevel& samples = MultiSamplingLevel::x1, const
bool& allowWrite = false) const override;
1381 virtual
UniquePtr<
IDirectX12Image> createTexture(const
String& name, const Format& format, const
Size3d& size, const ImageDimensions& dimension = ImageDimensions::DIM_2, const
UInt32& levels = 1, const
UInt32& layers = 1, const MultiSamplingLevel& samples = MultiSamplingLevel::x1, const
bool& allowWrite = false) const override;
1384 virtual
Array<
UniquePtr<
IDirectX12Image>> createTextures(const
UInt32& elements, const Format& format, const
Size3d& size, const ImageDimensions& dimension = ImageDimensions::DIM_2, const
UInt32& levels = 1, const
UInt32& layers = 1, const MultiSamplingLevel& samples = MultiSamplingLevel::x1, const
bool& allowWrite = false) const override;
1387 virtual
UniquePtr<
IDirectX12Sampler> createSampler(const FilterMode& magFilter = FilterMode::Nearest, const FilterMode& minFilter = FilterMode::Nearest, const BorderMode& borderU = BorderMode::Repeat, const BorderMode& borderV = BorderMode::Repeat, const BorderMode& borderW = BorderMode::Repeat, const MipMapMode& mipMapMode = MipMapMode::Nearest, const
Float& mipMapBias = 0.f, const
Float& maxLod = std::numeric_limits<
Float>::max(), const
Float& minLod = 0.f, const
Float& anisotropy = 0.f) const override;
1390 virtual
UniquePtr<
IDirectX12Sampler> createSampler(const
String& name, const FilterMode& magFilter = FilterMode::Nearest, const FilterMode& minFilter = FilterMode::Nearest, const BorderMode& borderU = BorderMode::Repeat, const BorderMode& borderV = BorderMode::Repeat, const BorderMode& borderW = BorderMode::Repeat, const MipMapMode& mipMapMode = MipMapMode::Nearest, const
Float& mipMapBias = 0.f, const
Float& maxLod = std::numeric_limits<
Float>::max(), const
Float& minLod = 0.f, const
Float& anisotropy = 0.f) const override;
1393 virtual
Array<
UniquePtr<
IDirectX12Sampler>> createSamplers(const
UInt32& elements, const FilterMode& magFilter = FilterMode::Nearest, const FilterMode& minFilter = FilterMode::Nearest, const BorderMode& borderU = BorderMode::Repeat, const BorderMode& borderV = BorderMode::Repeat, const BorderMode& borderW = BorderMode::Repeat, const MipMapMode& mipMapMode = MipMapMode::Nearest, const
Float& mipMapBias = 0.f, const
Float& maxLod = std::numeric_limits<
Float>::max(), const
Float& minLod = 0.f, const
Float& anisotropy = 0.f) const override;
1443 virtual const ID3D12DescriptorHeap* globalBufferHeap() const noexcept;
1450 virtual const ID3D12DescriptorHeap* globalSamplerHeap() const noexcept;
1518 virtual
DeviceState& state() const noexcept override;
1536 virtual const
DirectX12Queue& graphicsQueue() const noexcept override;
1539 virtual const
DirectX12Queue& transferQueue() const noexcept override;
1542 virtual const
DirectX12Queue& bufferQueue() const noexcept override;
1545 virtual const
DirectX12Queue& computeQueue() const noexcept override;
1552 virtual MultiSamplingLevel maximumMultiSamplingLevel(const Format& format) const noexcept override;
1556 virtual
void wait() const override;
1558#if defined(BUILD_DEFINE_BUILDERS)
1561 [[nodiscard]]
virtual DirectX12RenderPassBuilder buildRenderPass(
const MultiSamplingLevel& samples = MultiSamplingLevel::x1,
const UInt32& commandBuffers = 1)
const override;
1564 [[nodiscard]]
virtual DirectX12RenderPassBuilder buildRenderPass(
const String& name,
const MultiSamplingLevel& samples = MultiSamplingLevel::x1,
const UInt32& commandBuffers = 1)
const override;
1570 [[nodiscard]]
virtual DirectX12RenderPipelineBuilder buildRenderPipeline(
const DirectX12RenderPass& renderPass,
const String& name)
const override;
1573 [[nodiscard]]
virtual DirectX12ComputePipelineBuilder buildComputePipeline(
const String& name)
const override;
1576 [[nodiscard]]
virtual DirectX12PipelineLayoutBuilder buildPipelineLayout()
const override;
1579 [[nodiscard]]
virtual DirectX12InputAssemblerBuilder buildInputAssembler()
const override;
1582 [[nodiscard]]
virtual DirectX12RasterizerBuilder buildRasterizer()
const override;
1585 [[nodiscard]]
virtual DirectX12ShaderProgramBuilder buildShaderProgram()
const override;
1596 explicit DirectX12Backend(
const App& app,
const bool& advancedSoftwareRasterizer =
false);
1604 virtual BackendType type() const noexcept override;
1607 virtual
String name() const noexcept override;
1611 virtual
void activate() override;
1614 virtual
void deactivate() override;
1628 virtual
void releaseDevice(const
String& name) override;
1652 virtual
void enableAdvancedSoftwareRasterizer(const
bool& enable = false);
Definition: backend.cpp:9
Definition: barrier.cpp:12
Definition: command_buffer.cpp:9
Definition: compute_pipeline.cpp:10
Definition: descriptor_layout.cpp:9
Definition: descriptor_set.cpp:9
Definition: descriptor_set_layout.cpp:11
Definition: device.cpp:11
Definition: frame_buffer.cpp:9
Definition: factory.cpp:11
Definition: index_buffer_layout.cpp:9
Definition: pipeline_layout.cpp:10
Definition: push_constants_layout.cpp:10
Definition: push_constants_range.cpp:9
Definition: render_pass.cpp:11
Definition: render_pipeline.cpp:10
Definition: shader_module.cpp:9
Definition: shader_program.cpp:33
Definition: swapchain.cpp:10
Definition: vertex_buffer_layout.cpp:10
The base class for an application.
Definition: app.hpp:74
Provides access to a resource managed by the class.
Definition: containers.hpp:347
Implements the DirectX 12 RenderBackend.
Definition: dx12.hpp:1592
DirectX12Backend(const DirectX12Backend &) noexcept=delete
DirectX12Backend(DirectX12Backend &&) noexcept=delete
Implements a DirectX 12 resource barrier.
Definition: dx12.hpp:154
DirectX12Barrier(const DirectX12Barrier &)=delete
DirectX12Barrier(DirectX12Barrier &&)=delete
virtual ~DirectX12Barrier() noexcept
Records commands for a DirectX12CommandQueue
Definition: dx12.hpp:789
virtual ~DirectX12CommandBuffer() noexcept
DirectX12CommandBuffer(DirectX12CommandBuffer &&)=delete
DirectX12CommandBuffer(const DirectX12CommandBuffer &)=delete
Implements a DirectX 12 ComputePipeline.
Definition: dx12.hpp:929
DirectX12ComputePipeline(DirectX12ComputePipeline &&) noexcept=delete
Implements a DirectX 12 IDescriptorLayout
Definition: dx12.hpp:386
DirectX12DescriptorLayout(DirectX12DescriptorLayout &&)=delete
DirectX12DescriptorLayout(const DirectX12DescriptorLayout &)=delete
virtual ~DirectX12DescriptorLayout() noexcept
Implements a DirectX 12 DescriptorSet.
Definition: dx12.hpp:317
DirectX12DescriptorSet(const DirectX12DescriptorSet &)=delete
DirectX12DescriptorSet(DirectX12DescriptorSet &&)=delete
Implements a DirectX 12 DescriptorSetLayout.
Definition: dx12.hpp:438
DirectX12DescriptorSetLayout(const DirectX12DescriptorSetLayout &)=delete
DirectX12DescriptorSetLayout(DirectX12DescriptorSetLayout &&)=delete
virtual ~DirectX12DescriptorSetLayout() noexcept
Implements a DirectX 12 graphics device.
Definition: dx12.hpp:1399
DirectX12Device(const DirectX12Device &)=delete
DirectX12Device(DirectX12Device &&)=delete
virtual ~DirectX12Device() noexcept
Implements a DirectX 12 frame buffer.
Definition: dx12.hpp:970
DirectX12FrameBuffer(const DirectX12FrameBuffer &) noexcept=delete
DirectX12FrameBuffer(DirectX12FrameBuffer &&) noexcept=delete
Implements a DirectX12 IGraphicsAdapter.
Definition: dx12_api.hpp:203
A graphics factory that produces objects for a DirectX12Device.
Definition: dx12.hpp:1339
DirectX12GraphicsFactory(DirectX12GraphicsFactory &&)=delete
virtual ~DirectX12GraphicsFactory() noexcept
DirectX12GraphicsFactory(const DirectX12GraphicsFactory &)=delete
Implements a DirectX 12 index buffer layout.
Definition: dx12.hpp:55
virtual ~DirectX12IndexBufferLayout() noexcept
DirectX12IndexBufferLayout(const DirectX12IndexBufferLayout &)=delete
DirectX12IndexBufferLayout(DirectX12IndexBufferLayout &&)=delete
Implements a DirectX 12 PipelineLayout.
Definition: dx12.hpp:655
DirectX12PipelineLayout(DirectX12PipelineLayout &&) noexcept=delete
Defines the base class for DirectX 12 pipeline state objects.
Definition: dx12.hpp:772
virtual ~DirectX12PipelineState() noexcept=default
Implements the DirectX 12 PushConstantsLayout.
Definition: dx12.hpp:610
virtual ~DirectX12PushConstantsLayout() noexcept
DirectX12PushConstantsLayout(DirectX12PushConstantsLayout &&)=delete
DirectX12PushConstantsLayout(const DirectX12PushConstantsLayout &)=delete
Implements the DirectX 12 IPushConstantsRange.
Definition: dx12.hpp:550
DirectX12PushConstantsRange(const DirectX12PushConstantsRange &)=delete
virtual ~DirectX12PushConstantsRange() noexcept
DirectX12PushConstantsRange(DirectX12PushConstantsRange &&)=delete
Implements a DirectX 12 command queue.
Definition: dx12.hpp:1276
DirectX12Queue(DirectX12Queue &&)=delete
DirectX12Queue(const DirectX12Queue &)=delete
Implements a DirectX 12 IRasterizer.
Definition: dx12.hpp:743
DirectX12Rasterizer(DirectX12Rasterizer &&) noexcept=delete
Implements a DirectX 12 render pass.
Definition: dx12.hpp:1065
DirectX12RenderPass(DirectX12RenderPass &&)=delete
virtual ~DirectX12RenderPass() noexcept
DirectX12RenderPass(const DirectX12RenderPass &)=delete
Implements a DirectX 12 RenderPipeline.
Definition: dx12.hpp:859
DirectX12RenderPipeline(DirectX12RenderPipeline &&) noexcept=delete
Implements a DirectX 12 IShaderModule.
Definition: dx12.hpp:220
DirectX12ShaderModule(DirectX12ShaderModule &&) noexcept=delete
DirectX12ShaderModule(const DirectX12ShaderModule &) noexcept=delete
Implements a DirectX 12 ShaderProgram.
Definition: dx12.hpp:263
DirectX12ShaderProgram(DirectX12ShaderProgram &&) noexcept=delete
Implements a DirectX12 ISurface.
Definition: dx12_api.hpp:251
Implements a DirectX 12 swap chain.
Definition: dx12.hpp:1220
DirectX12SwapChain(DirectX12SwapChain &&)=delete
virtual ~DirectX12SwapChain() noexcept
DirectX12SwapChain(const DirectX12SwapChain &)=delete
Implements a DirectX 12 vertex buffer layout.
Definition: dx12.hpp:18
DirectX12VertexBufferLayout(DirectX12VertexBufferLayout &&)=delete
DirectX12VertexBufferLayout(const DirectX12VertexBufferLayout &)=delete
virtual ~DirectX12VertexBufferLayout() noexcept
Represents the base interface for a DirectX 12 buffer implementation.
Definition: dx12.hpp:92
virtual ~IDirectX12Buffer() noexcept=default
Represents a DirectX 12 sampled image or the base interface for a texture.
Definition: dx12.hpp:130
virtual ~IDirectX12Image() noexcept=default
Represents a DirectX 12 index buffer.
Definition: dx12.hpp:115
virtual ~IDirectX12IndexBuffer() noexcept=default
Represents a DirectX 12 sampler.
Definition: dx12.hpp:142
virtual ~IDirectX12Sampler() noexcept=default
Represents a DirectX 12 vertex buffer.
Definition: dx12.hpp:102
virtual ~IDirectX12VertexBuffer() noexcept=default
A barrier that transitions a set of resources backed by IDeviceMemory into different ResourceState.
Definition: rendering.hpp:19
Stores meta data about a buffer attribute, i.e. a member or field of a descriptor or buffer.
Definition: rendering_api.hpp:2461
Represents a command buffer, that buffers commands that should be submitted to a CommandQueue.
Definition: rendering.hpp:488
Represents a command queue.
Definition: rendering.hpp:874
Represents a compute Pipeline.
Definition: rendering.hpp:664
Stores the depth/stencil state of a see IRasterizer.
Definition: rendering_api.hpp:2066
Defines a set of descriptors.
Definition: rendering.hpp:169
Describes the layout of a descriptor set.
Definition: rendering.hpp:224
A class that can be used to manage the state of a IGraphicsDevice.
Definition: rendering_api.hpp:1489
Stores the images for the output attachments for a back buffer of a RenderPass, as well as a CommandB...
Definition: rendering.hpp:676
Represents the graphics device that a rendering back-end is doing work on.
Definition: rendering.hpp:1078
Describes a factory that creates objects for a GraphicsDevice.
Definition: rendering.hpp:930
Base interface for buffer objects.
Definition: rendering_api.hpp:2774
Describes a the layout of a single descriptor within a DescriptorSet.
Definition: rendering_api.hpp:2613
Describes a generic image.
Definition: rendering_api.hpp:2789
Describes a index buffer layout.
Definition: rendering_api.hpp:2579
The interface for a pipeline layout.
Definition: rendering_api.hpp:3410
Describes a range within a IPushConstantsLayout.
Definition: rendering_api.hpp:3282
Describes a texture sampler.
Definition: rendering_api.hpp:2872
The interface of a scissor.
Definition: rendering_api.hpp:2415
Represents a single shader module, i.e. a part of a IShaderProgram.
Definition: rendering_api.hpp:1827
Describes a vertex buffer layout.
Definition: rendering_api.hpp:2563
Interface for a viewport.
Definition: rendering_api.hpp:2331
Describes an index buffer.
Definition: rendering.hpp:396
Represents a pipeline state.
Definition: rendering.hpp:451
Represents a the layout of a RenderPipeline or a ComputePipeline.
Definition: rendering.hpp:347
Describes the layout of the pipelines push constant ranges.
Definition: rendering.hpp:296
Implements a IRasterizer.
Definition: rendering_api.hpp:2287
Defines a back-end, that provides a device instance for a certain surface and graphics adapter.
Definition: rendering.hpp:1224
Represents a render pass.
Definition: rendering.hpp:787
Represents a graphics Pipeline.
Definition: rendering.hpp:632
Implements a render target.
Definition: rendering_api.hpp:1994
Represents a shader program, consisting of multiple IShaderModules.
Definition: rendering.hpp:321
Represents a swap chain, i.e. a chain of multiple IImage instances, that can be presented to a ISurfa...
Definition: rendering.hpp:838
Describes a vertex buffer.
Definition: rendering.hpp:378
Implements the IResource interface.
Definition: containers.hpp:371
uint32_t UInt32
Definition: math.hpp:37
float_t Float
Definition: math.hpp:40
uint64_t UInt64
Definition: math.hpp:39
int32_t Int32
Definition: math.hpp:36
Resource< ComPtr< THandle > > ComResource
A resource that is hold by a ComPtr.
Definition: dx12_api.hpp:94
std::string String
Definition: string.hpp:19
std::vector< T > Array
Represents a dynamic array.
Definition: containers.hpp:58
std::span< T > Span
Represents a view of an array.
Definition: containers.hpp:72
std::shared_ptr< T > SharedPtr
Represents a shared pointer, that expresses non-exclusive ownership.
Definition: containers.hpp:94
std::unique_ptr< T, TDeleter > UniquePtr
Represents a unique pointer, that expresses exclusive ownership.
Definition: containers.hpp:87
std::optional< T > Optional
Represents an optional value.
Definition: containers.hpp:79