LiteFX 0.4.1.2025
Computer Graphics Engine
|
Represents a render pass. More...
#include <rendering.hpp>
Inherits LiteFX::Rendering::StateResource, and LiteFX::Rendering::IRenderPass.
Public Types | |
using | command_queue_type = TCommandQueue |
using | command_buffer_type = TCommandQueue::command_buffer_type |
using | frame_buffer_type = TFrameBuffer |
Public Member Functions | |
~RenderPass () noexcept override=default | |
virtual SharedPtr< const frame_buffer_type > | activeFrameBuffer () const noexcept=0 |
virtual Enumerable< SharedPtr< const command_buffer_type > > | commandBuffers () const =0 |
virtual const command_queue_type & | commandQueue () const noexcept=0 |
virtual SharedPtr< const command_buffer_type > | commandBuffer (UInt32 index) const =0 |
virtual void | begin (const frame_buffer_type &frameBuffer) const =0 |
![]() | |
~StateResource () noexcept override | |
Releases the state resource instance. | |
const String & | name () const noexcept override |
Returns the name of the resource.
| |
![]() | |
virtual | ~IStateResource () noexcept=default |
Releases the state resource instance. | |
![]() | |
~IRenderPass () noexcept override=default | |
SharedPtr< const IFrameBuffer > | activeFrameBuffer () const noexcept |
Returns the current frame buffer from of the render pass. | |
const ICommandQueue & | commandQueue () const noexcept |
Returns the command queue, the render pass is executing on or nullptr , if the queue has already been released. | |
Enumerable< SharedPtr< const ICommandBuffer > > | commandBuffers () const |
Returns all command buffers, that can be currently used for recording multi-threaded commands in the render pass. | |
SharedPtr< const ICommandBuffer > | commandBuffer (UInt32 index) const |
Returns a command buffer that can be currently used for recording multi-threaded commands in the render pass. | |
virtual UInt32 | secondaryCommandBuffers () const noexcept=0 |
Returns the number of secondary command buffers the render pass stores for multi-threaded command recording. | |
virtual const Array< RenderTarget > & | renderTargets () const noexcept=0 |
Returns the list of render targets, the render pass renders into. | |
virtual const RenderTarget & | renderTarget (UInt32 location) const =0 |
Returns the render target mapped to the location provided by location . | |
virtual bool | hasPresentTarget () const noexcept=0 |
Returns true , if one of the render targets is used for presentation on a swap chain. | |
virtual const Array< RenderPassDependency > & | inputAttachments () const noexcept=0 |
Returns the input attachment the render pass is consuming. | |
virtual const RenderPassDependency & | inputAttachment (UInt32 location) const =0 |
Returns the input attachment at a location . | |
virtual const Optional< DescriptorBindingPoint > & | inputAttachmentSamplerBinding () const noexcept=0 |
Returns the binding point for input attachment samplers. | |
void | begin (const IFrameBuffer &frameBuffer) const |
Begins the render pass. | |
virtual UInt64 | end () const =0 |
Ends the render pass. | |
![]() | |
virtual | ~SharedObject () noexcept=default |
Destroys the shared object. | |
template<typename TSelf > | |
auto | shared_from_this (this TSelf &&self) noexcept |
Returns a shared pointer to the current object instance. | |
template<typename TSelf > | |
auto | weak_from_this (this TSelf &&self) noexcept -> WeakPtr< std::remove_reference_t< TSelf > > |
Returns a weak pointer to the current object instance. | |
Protected Member Functions | |
RenderPass () noexcept=default | |
RenderPass (RenderPass &&) noexcept=default | |
RenderPass (const RenderPass &)=default | |
RenderPass & | operator= (RenderPass &&) noexcept=default |
RenderPass & | operator= (const RenderPass &)=default |
![]() | |
StateResource () | |
Initializes a new state resource instance with a default name. | |
StateResource (StringView name) | |
Initializes a new state resource instance. | |
StateResource (StateResource &&) noexcept | |
StateResource & | operator= (StateResource &&) noexcept |
StateResource (const StateResource &)=delete | |
StateResource & | operator= (const StateResource &)=delete |
String & | name () noexcept |
![]() | |
IStateResource () noexcept=default | |
IStateResource (const IStateResource &)=delete | |
IStateResource (IStateResource &&) noexcept=default | |
IStateResource & | operator= (const IStateResource &)=delete |
IStateResource & | operator= (IStateResource &&) noexcept=default |
![]() | |
IRenderPass () noexcept=default | |
IRenderPass (IRenderPass &&) noexcept=default | |
IRenderPass (const IRenderPass &)=delete | |
IRenderPass & | operator= (IRenderPass &&) noexcept=default |
IRenderPass & | operator= (const IRenderPass &)=delete |
![]() | |
SharedObject () noexcept=default | |
Initializes a new shared object. | |
SharedObject (SharedObject &&) noexcept=default | |
SharedObject (const SharedObject &)=default | |
SharedObject & | operator= (SharedObject &&) noexcept=default |
SharedObject & | operator= (const SharedObject &)=default |
Additional Inherited Members | |
![]() | |
Event< BeginEventArgs > | beginning |
Invoked, when the render pass is beginning. | |
Event< EventArgs > | ending |
Invoked, when the render pass is ending. | |
![]() | |
template<typename T , typename... TArgs> | |
static auto | create (TArgs &&... args) -> SharedPtr< T > |
Generic factory method used to create instances of the shared object. | |
Represents a render pass.
A render pass is a conceptual layer, that may not have any logical representation within the actual implementation. It is a high-level view on a specific workload on the GPU, that processes data using different RenderPipelines and stores the outputs in the IRenderTargets of a FrameBuffer.
TRenderPipeline | The type of the render pipeline. Must implement RenderPipeline. |
TCommandQueue | The type of the command queue. Must implement CommandQueue. |
TFrameBuffer | The type of the frame buffer. Must implement FrameBuffer. |
using LiteFX::Rendering::RenderPass< TCommandQueue, TFrameBuffer >::command_buffer_type = TCommandQueue::command_buffer_type |
using LiteFX::Rendering::RenderPass< TCommandQueue, TFrameBuffer >::command_queue_type = TCommandQueue |
using LiteFX::Rendering::RenderPass< TCommandQueue, TFrameBuffer >::frame_buffer_type = TFrameBuffer |
|
protecteddefaultnoexcept |
|
protecteddefaultnoexcept |
|
protecteddefault |
|
overridedefaultnoexcept |
|
pure virtualnoexcept |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtualnoexcept |
|
protecteddefault |
|
protecteddefaultnoexcept |