LiteFX 0.3.1.2022
Computer Graphics Engine
|
Represents the graphics device that a rendering back-end is doing work on. More...
#include <rendering.hpp>
Inherits LiteFX::Rendering::IGraphicsDevice.
Public Types | |
using | surface_type = TSurface |
using | adapter_type = TGraphicsAdapter |
using | swap_chain_type = TSwapChain |
using | command_queue_type = TCommandQueue |
using | command_buffer_type = command_queue_type::command_buffer_type |
using | factory_type = TFactory |
using | barrier_type = TBarrier |
using | descriptor_layout_type = factory_type::descriptor_layout_type |
using | vertex_buffer_type = factory_type::vertex_buffer_type |
using | index_buffer_type = factory_type::index_buffer_type |
using | buffer_type = factory_type::buffer_type |
using | image_type = factory_type::image_type |
using | sampler_type = factory_type::sampler_type |
using | render_pass_type = TRenderPass |
using | frame_buffer_type = render_pass_type::frame_buffer_type |
using | render_pipeline_type = render_pass_type::render_pipeline_type |
using | compute_pipeline_type = TComputePipeline |
using | pipeline_layout_type = render_pipeline_type::pipeline_layout_type |
using | shader_program_type = render_pipeline_type::shader_program_type |
using | input_assembler_type = render_pipeline_type::input_assembler_type |
using | rasterizer_type = render_pipeline_type::rasterizer_type |
using | shader_program_type = render_pipeline_type::shader_program_type |
Public Member Functions | |
virtual | ~GraphicsDevice () noexcept=default |
virtual const surface_type & | surface () const noexcept=0 |
Returns the surface, the device draws to. More... | |
virtual const adapter_type & | adapter () const noexcept=0 |
Returns the graphics adapter, the device uses for drawing. More... | |
virtual const swap_chain_type & | swapChain () const noexcept=0 |
Returns the swap chain, that contains the back and front buffers used for presentation. More... | |
virtual swap_chain_type & | swapChain () noexcept=0 |
Returns the swap chain, that contains the back and front buffers used for presentation. More... | |
virtual const factory_type & | factory () const noexcept=0 |
Returns the factory instance, used to create instances from the device. More... | |
virtual const command_queue_type & | graphicsQueue () const noexcept=0 |
Returns the instance of the queue, used to process draw calls. More... | |
virtual const command_queue_type & | transferQueue () const noexcept=0 |
Returns the instance of the queue used for device-device transfers (e.g. between render-passes). More... | |
virtual const command_queue_type & | bufferQueue () const noexcept=0 |
Returns the instance of the queue used for host-device transfers. More... | |
virtual const command_queue_type & | computeQueue () const noexcept=0 |
Returns the instance of the queue used for compute calls. More... | |
virtual UniquePtr< barrier_type > | makeBarrier () const noexcept=0 |
Public Member Functions inherited from LiteFX::Rendering::IGraphicsDevice | |
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... | |
Represents the graphics device that a rendering back-end is doing work on.
The graphics device is the central instance of a renderer. It has two major roles. First, it maintains the GraphicsFactory instance, that is used to facilitate common objects. Second, it owns the device state, which contains objects required for communication between your application and the graphics driver. Most notably, those objects contain the SwapChain instance and the CommandQueue instances used for data and command transfer.
TFactory | The type of the graphics factory. Must implement GraphicsFactory. |
TSurface | The type of the surface. Must implement ISurface. |
TGraphicsAdapter | The type of the graphics adapter. Must implement IGraphicsAdapter. |
TSwapChain | The type of the swap chain. Must implement SwapChain. |
TCommandQueue | The type of the command queue. Must implement CommandQueue. |
TRenderPass | The type of the render pass. Must implement RenderPass. |
TComputePipeline | The type of the compute pipeline. Must implement ComputePipeline. |
TBarrier | The type of the memory barrier. Must implement Barrier. |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::adapter_type = TGraphicsAdapter |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::barrier_type = TBarrier |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::buffer_type = factory_type::buffer_type |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::command_buffer_type = command_queue_type::command_buffer_type |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::command_queue_type = TCommandQueue |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::compute_pipeline_type = TComputePipeline |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::descriptor_layout_type = factory_type::descriptor_layout_type |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::factory_type = TFactory |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::frame_buffer_type = render_pass_type::frame_buffer_type |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::image_type = factory_type::image_type |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::index_buffer_type = factory_type::index_buffer_type |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::input_assembler_type = render_pipeline_type::input_assembler_type |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::pipeline_layout_type = render_pipeline_type::pipeline_layout_type |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::rasterizer_type = render_pipeline_type::rasterizer_type |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::render_pass_type = TRenderPass |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::render_pipeline_type = render_pass_type::render_pipeline_type |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::sampler_type = factory_type::sampler_type |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::shader_program_type = render_pipeline_type::shader_program_type |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::shader_program_type = render_pipeline_type::shader_program_type |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::surface_type = TSurface |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::swap_chain_type = TSwapChain |
using LiteFX::Rendering::GraphicsDevice< TFactory, TSurface, TGraphicsAdapter, TSwapChain, TCommandQueue, TRenderPass, TComputePipeline, TBarrier >::vertex_buffer_type = factory_type::vertex_buffer_type |
|
virtualdefaultnoexcept |
|
pure virtualnoexcept |
Returns the graphics adapter, the device uses for drawing.
Implements LiteFX::Rendering::IGraphicsDevice.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, and LiteFX::Rendering::Backends::VulkanDevice.
|
pure virtualnoexcept |
Returns the instance of the queue used for host-device transfers.
Implements LiteFX::Rendering::IGraphicsDevice.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, and LiteFX::Rendering::Backends::VulkanDevice.
|
pure virtualnoexcept |
Returns the instance of the queue used for compute calls.
Implements LiteFX::Rendering::IGraphicsDevice.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, and LiteFX::Rendering::Backends::VulkanDevice.
|
pure virtualnoexcept |
Returns the factory instance, used to create instances from the device.
Implements LiteFX::Rendering::IGraphicsDevice.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, and LiteFX::Rendering::Backends::VulkanDevice.
|
pure virtualnoexcept |
Returns the instance of the queue, used to process draw calls.
Implements LiteFX::Rendering::IGraphicsDevice.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, and LiteFX::Rendering::Backends::VulkanDevice.
|
pure virtualnoexcept |
Implemented in LiteFX::Rendering::Backends::DirectX12Device, and LiteFX::Rendering::Backends::VulkanDevice.
|
pure virtualnoexcept |
Returns the surface, the device draws to.
Implements LiteFX::Rendering::IGraphicsDevice.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, and LiteFX::Rendering::Backends::VulkanDevice.
|
pure virtualnoexcept |
Returns the swap chain, that contains the back and front buffers used for presentation.
Implements LiteFX::Rendering::IGraphicsDevice.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, and LiteFX::Rendering::Backends::VulkanDevice.
|
pure virtualnoexcept |
Returns the swap chain, that contains the back and front buffers used for presentation.
Implements LiteFX::Rendering::IGraphicsDevice.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, and LiteFX::Rendering::Backends::VulkanDevice.
|
pure virtualnoexcept |
Returns the instance of the queue used for device-device transfers (e.g. between render-passes).
Implements LiteFX::Rendering::IGraphicsDevice.
Implemented in LiteFX::Rendering::Backends::DirectX12Device, and LiteFX::Rendering::Backends::VulkanDevice.