Skip to content

LiteFX::Rendering::Backends::DirectX12Device

Implements a DirectX 12 graphics device.

Synopsis

Declared in <litefx/backends/dx12.hpp>

class [[dllimport, dllexport]] DirectX12Device final
    : public GraphicsDevice<DirectX12GraphicsFactory, DirectX12Surface, DirectX12GraphicsAdapter, DirectX12SwapChain, DirectX12Queue, DirectX12RenderPass, DirectX12RenderPipeline, DirectX12ComputePipeline, DirectX12RayTracingPipeline, DirectX12Barrier>
    , public ComResource<ID3D12Device10>

Base Classes

Type Aliases

Member Functions

NameDescription
~DirectX12Device [destructor] [virtual]Destructor
adapter [virtual]Returns the graphics adapter, the device uses for drawing.
allocateGlobalDescriptors Allocates a descriptors on the descriptor heap indicated by <paramref name=heapType" /> for use with external clients.
allocateGlobalDescriptors [virtual]Allocates a range of descriptors in the global descriptor heaps for the provided descriptorSet.
allocateGlobalDescriptors [virtual]Allocates a range of descriptors in the global descriptor heaps for the provided descriptorSet.
bindDescriptorSet [virtual]Binds the descriptors of the descriptor set to the global descriptor heaps.
bindDescriptorSet [virtual]Binds the descriptors of the descriptor set to the global descriptor heaps.
bindGlobalDescriptorHeaps [virtual]Binds the global descriptor heap.
bindGlobalDescriptorHeaps [virtual]Binds the global descriptor heap.
buildBarrier [virtual]Returns a builder for a Barrier.
buildComputePipeline [virtual]Returns a builder for a ComputePipeline.
buildInputAssembler [virtual]Returns a builder for a InputAssembler.
buildPipelineLayout [virtual]Returns a builder for a PipelineLayout.
buildRasterizer [virtual]Returns a builder for a Rasterizer.
buildRayTracingPipeline [virtual]Returns a builder for a RayTracingPipeline.
buildRayTracingPipeline [virtual]Returns a builder for a RayTracingPipeline.
buildRenderPass [virtual]Returns a builder for a RenderPass.
buildRenderPass [virtual]Returns a builder for a RenderPass.
buildRenderPipeline [virtual]Returns a builder for a RenderPipeline.
buildRenderPipeline [virtual]Returns a builder for a RenderPipeline.
buildShaderProgram [virtual]Returns a builder for a ShaderProgram.
computeAccelerationStructureSizes [virtual]Computes the required amount of device memory for an IBottomLevelAccelerationStructure.
computeAccelerationStructureSizes [virtual]Computes the required amount of device memory for an ITopLevelAccelerationStructure.
computeAccelerationStructureSizes [virtual]Computes the required amount of device memory for an IBottomLevelAccelerationStructure.
computeAccelerationStructureSizes [virtual]Computes the required amount of device memory for an ITopLevelAccelerationStructure.
createQueue [virtual]Attempts to create a new queue that supports the combination of queue types specified by the type parameter.
createQueue [virtual]Attempts to create a new queue that supports the combination of queue types specified by the type parameter.
defaultQueue [virtual]Returns the instance of the default ICommandQueue that supports the combination of queue types specified by the type parameter.
factory [virtual]Returns the factory instance, used to create instances from the device.
globalBufferHeap Returns the global descriptor heap.
globalSamplerHeap Returns the global sampler heap.
handle [virtual]Returns the resource managed by the class.
indirectDrawSignatures Returns the command signatures for indirect dispatch and draw calls.
makeBarrier [virtual]Creates a memory barrier instance.
makeFrameBuffer Creates a new frame buffer instance.
makeFrameBuffer [virtual]Creates a new frame buffer instance.
makeFrameBuffer Creates a new frame buffer instance.
makeFrameBuffer [virtual]Creates a new frame buffer instance.
makeFrameBuffer [virtual]Creates a new frame buffer instance.
maximumMultiSamplingLevel [virtual]Queries the device for the maximum supported number of multi-sampling levels.
releaseGlobalDescriptors [virtual]Releases a range of descriptors from the global descriptor heaps.
releaseGlobalDescriptors [virtual]Releases a range of descriptors from the global descriptor heaps.
releaseGlobalDescriptors Releases a manually allocated descriptor range from the descriptor heap indicated by heapType.
state [virtual]Returns the device state that can be used to manage resources.
surface [virtual]Returns the surface, the device draws to.
swapChain [virtual]Returns the swap chain, that contains the back and front buffers used for presentation.
swapChain [virtual]Returns the swap chain, that contains the back and front buffers used for presentation.
ticksPerMillisecond [virtual]Returns the number of GPU ticks per milliseconds.
updateGlobalDescriptors [virtual]Updates a range of descriptors in the global buffer descriptor heap with the descriptors from descriptorSet.
updateGlobalDescriptors [virtual]Updates a range of descriptors in the global buffer descriptor heap with the descriptors from descriptorSet.
wait [virtual]Waits until all queues allocated from the device have finished the work issued prior to this point.

Static Member Functions

NameDescription
create Initializes the device instance.
create Initializes the device instance.

Protected Member Functions

NameDescription
operator= Assignment operator
operator= [deleted]Assignment operator
operator= Assignment operator
operator= Assignment operator
handle [virtual]Returns the resource managed by the class.

Friends

NameDescription
LiteFX::Rendering::Backends::DirectX12BackendImplements the DirectX 12 RenderBackend.
LiteFX::SharedObject::AllocatorAn allocator used to allocate the shared object.
LiteFX::Rendering::Backends::DirectX12Device::DirectX12DeviceImpl
LiteFX::PimplPtrA smart pointer that manages an implementation instance for a public interface class.