LiteFX 0.3.1.2022
Computer Graphics Engine
|
The interface for a graphics device that. More...
#include <rendering_api.hpp>
Inherited by LiteFX::Rendering::GraphicsDevice< DirectX12GraphicsFactory, DirectX12Surface, DirectX12GraphicsAdapter, DirectX12SwapChain, DirectX12Queue, DirectX12RenderPass, DirectX12ComputePipeline, DirectX12Barrier >, LiteFX::Rendering::GraphicsDevice< VulkanGraphicsFactory, VulkanSurface, VulkanGraphicsAdapter, VulkanSwapChain, VulkanQueue, VulkanRenderPass, VulkanComputePipeline, VulkanBarrier >, and LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >.
Public Member Functions | |
virtual | ~IGraphicsDevice () noexcept=default |
virtual DeviceState & | state () const noexcept=0 |
Returns the device state that can be used to manage resources. More... | |
virtual const ISurface & | surface () const noexcept=0 |
Returns the surface, the device draws to. More... | |
virtual const IGraphicsAdapter & | adapter () const noexcept=0 |
Returns the graphics adapter, the device uses for drawing. More... | |
virtual const ISwapChain & | swapChain () const noexcept=0 |
Returns the swap chain, that contains the back and front buffers used for presentation. More... | |
virtual ISwapChain & | swapChain () noexcept=0 |
Returns the swap chain, that contains the back and front buffers used for presentation. More... | |
virtual const IGraphicsFactory & | factory () const noexcept=0 |
Returns the factory instance, used to create instances from the device. More... | |
virtual const ICommandQueue & | graphicsQueue () const noexcept=0 |
Returns the instance of the queue, used to process draw calls. More... | |
virtual const ICommandQueue & | transferQueue () const noexcept=0 |
Returns the instance of the queue used for device-device transfers (e.g. between render-passes). More... | |
virtual const ICommandQueue & | bufferQueue () const noexcept=0 |
Returns the instance of the queue used for host-device transfers. More... | |
virtual const ICommandQueue & | computeQueue () const noexcept=0 |
Returns the instance of the queue used for compute calls. More... | |
UniquePtr< IBarrier > | makeBarrier () const noexcept |
Creates a memory barrier instance. More... | |
virtual MultiSamplingLevel | maximumMultiSamplingLevel (const Format &format) const noexcept=0 |
Queries the device for the maximum supported number of multi-sampling levels. More... | |
virtual void | wait () const =0 |
Waits until the device is idle. More... | |
The interface for a graphics device that.
|
virtualdefaultnoexcept |
|
pure virtualnoexcept |
Returns the graphics adapter, the device uses for drawing.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, LiteFX::Rendering::Backends::VulkanDevice, LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >, LiteFX::Rendering::GraphicsDevice< DirectX12GraphicsFactory, DirectX12Surface, DirectX12GraphicsAdapter, DirectX12SwapChain, DirectX12Queue, DirectX12RenderPass, DirectX12ComputePipeline, DirectX12Barrier >, and LiteFX::Rendering::GraphicsDevice< VulkanGraphicsFactory, VulkanSurface, VulkanGraphicsAdapter, VulkanSwapChain, VulkanQueue, VulkanRenderPass, VulkanComputePipeline, VulkanBarrier >.
|
pure virtualnoexcept |
Returns the instance of the queue used for host-device transfers.
Note that this can be the same as graphicsQueue, if no dedicated transfer queues are supported on the device.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, LiteFX::Rendering::Backends::VulkanDevice, LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >, LiteFX::Rendering::GraphicsDevice< DirectX12GraphicsFactory, DirectX12Surface, DirectX12GraphicsAdapter, DirectX12SwapChain, DirectX12Queue, DirectX12RenderPass, DirectX12ComputePipeline, DirectX12Barrier >, and LiteFX::Rendering::GraphicsDevice< VulkanGraphicsFactory, VulkanSurface, VulkanGraphicsAdapter, VulkanSwapChain, VulkanQueue, VulkanRenderPass, VulkanComputePipeline, VulkanBarrier >.
|
pure virtualnoexcept |
Returns the instance of the queue used for compute calls.
Note that this can be the same as graphicsQueue, if no dedicated compute queues are supported on the device.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, LiteFX::Rendering::Backends::VulkanDevice, LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >, LiteFX::Rendering::GraphicsDevice< DirectX12GraphicsFactory, DirectX12Surface, DirectX12GraphicsAdapter, DirectX12SwapChain, DirectX12Queue, DirectX12RenderPass, DirectX12ComputePipeline, DirectX12Barrier >, and LiteFX::Rendering::GraphicsDevice< VulkanGraphicsFactory, VulkanSurface, VulkanGraphicsAdapter, VulkanSwapChain, VulkanQueue, VulkanRenderPass, VulkanComputePipeline, VulkanBarrier >.
|
pure virtualnoexcept |
Returns the factory instance, used to create instances from the device.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, LiteFX::Rendering::Backends::VulkanDevice, LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >, LiteFX::Rendering::GraphicsDevice< DirectX12GraphicsFactory, DirectX12Surface, DirectX12GraphicsAdapter, DirectX12SwapChain, DirectX12Queue, DirectX12RenderPass, DirectX12ComputePipeline, DirectX12Barrier >, and LiteFX::Rendering::GraphicsDevice< VulkanGraphicsFactory, VulkanSurface, VulkanGraphicsAdapter, VulkanSwapChain, VulkanQueue, VulkanRenderPass, VulkanComputePipeline, VulkanBarrier >.
|
pure virtualnoexcept |
Returns the instance of the queue, used to process draw calls.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, LiteFX::Rendering::Backends::VulkanDevice, LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >, LiteFX::Rendering::GraphicsDevice< DirectX12GraphicsFactory, DirectX12Surface, DirectX12GraphicsAdapter, DirectX12SwapChain, DirectX12Queue, DirectX12RenderPass, DirectX12ComputePipeline, DirectX12Barrier >, and LiteFX::Rendering::GraphicsDevice< VulkanGraphicsFactory, VulkanSurface, VulkanGraphicsAdapter, VulkanSwapChain, VulkanQueue, VulkanRenderPass, VulkanComputePipeline, VulkanBarrier >.
Creates a memory barrier instance.
|
pure virtualnoexcept |
Queries the device for the maximum supported number of multi-sampling levels.
This method returns the maximum supported multi-sampling level for a certain format. Typically you want to pass a back-buffer format for your swap-chain here. All lower multi-sampling levels are implicitly supported for this format.
format | The target (i.e. back-buffer) format. |
Implemented in LiteFX::Rendering::Backends::DirectX12Device, and LiteFX::Rendering::Backends::VulkanDevice.
|
pure virtualnoexcept |
Returns the device state that can be used to manage resources.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, and LiteFX::Rendering::Backends::VulkanDevice.
|
pure virtualnoexcept |
Returns the surface, the device draws to.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, LiteFX::Rendering::Backends::VulkanDevice, LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >, LiteFX::Rendering::GraphicsDevice< DirectX12GraphicsFactory, DirectX12Surface, DirectX12GraphicsAdapter, DirectX12SwapChain, DirectX12Queue, DirectX12RenderPass, DirectX12ComputePipeline, DirectX12Barrier >, and LiteFX::Rendering::GraphicsDevice< VulkanGraphicsFactory, VulkanSurface, VulkanGraphicsAdapter, VulkanSwapChain, VulkanQueue, VulkanRenderPass, VulkanComputePipeline, VulkanBarrier >.
|
pure virtualnoexcept |
Returns the swap chain, that contains the back and front buffers used for presentation.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, LiteFX::Rendering::Backends::VulkanDevice, LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >, LiteFX::Rendering::GraphicsDevice< DirectX12GraphicsFactory, DirectX12Surface, DirectX12GraphicsAdapter, DirectX12SwapChain, DirectX12Queue, DirectX12RenderPass, DirectX12ComputePipeline, DirectX12Barrier >, and LiteFX::Rendering::GraphicsDevice< VulkanGraphicsFactory, VulkanSurface, VulkanGraphicsAdapter, VulkanSwapChain, VulkanQueue, VulkanRenderPass, VulkanComputePipeline, VulkanBarrier >.
|
pure virtualnoexcept |
Returns the swap chain, that contains the back and front buffers used for presentation.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, LiteFX::Rendering::Backends::VulkanDevice, LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >, LiteFX::Rendering::GraphicsDevice< DirectX12GraphicsFactory, DirectX12Surface, DirectX12GraphicsAdapter, DirectX12SwapChain, DirectX12Queue, DirectX12RenderPass, DirectX12ComputePipeline, DirectX12Barrier >, and LiteFX::Rendering::GraphicsDevice< VulkanGraphicsFactory, VulkanSurface, VulkanGraphicsAdapter, VulkanSwapChain, VulkanQueue, VulkanRenderPass, VulkanComputePipeline, VulkanBarrier >.
|
pure virtualnoexcept |
Returns the instance of the queue used for device-device transfers (e.g. between render-passes).
Note that this can be the same as graphicsQueue, if no dedicated transfer queues are supported on the device.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, LiteFX::Rendering::Backends::VulkanDevice, LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >, LiteFX::Rendering::GraphicsDevice< DirectX12GraphicsFactory, DirectX12Surface, DirectX12GraphicsAdapter, DirectX12SwapChain, DirectX12Queue, DirectX12RenderPass, DirectX12ComputePipeline, DirectX12Barrier >, and LiteFX::Rendering::GraphicsDevice< VulkanGraphicsFactory, VulkanSurface, VulkanGraphicsAdapter, VulkanSwapChain, VulkanQueue, VulkanRenderPass, VulkanComputePipeline, VulkanBarrier >.
|
pure virtual |
Waits until the device is idle.
The complexity of this operation may depend on the graphics API that implements this method. Calling this method guarantees, that the device resources are in an unused state and may safely be released.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, and LiteFX::Rendering::Backends::VulkanDevice.