XII Release 0.1.0
Loading...
Searching...
No Matches
xiiTargetPass Class Reference

A render pipeline pass that presents rendered output to a target such as a swap chain. More...

#include <TargetPass.h>

Inheritance diagram for xiiTargetPass:
[legend]

Public Member Functions

 xiiTargetPass (xiiStringView sName="TargetPass")
 Constructs a new target pass.
 
 ~xiiTargetPass ()
 Destructor.
 
virtual xiiResult GetResourceDescriptions (const xiiView &view, const xiiArrayPtr< xiiRenderPipelinePassResource *const > pInputs, xiiArrayPtr< xiiRenderPipelinePassResource > pOutputs) override
 Provides descriptions of the resources this pass will produce.
 
virtual xiiSharedPtr< xiiGALDeviceObjectQueryResourceProvider (const xiiRenderPipelineNodePin *pPin, const xiiRenderPipelineResourceRequest &request) override
 Queries the provider for a resource connected to a specific pin.
 
virtual void Execute (const xiiRenderViewContext &renderViewContext, const xiiArrayPtr< xiiRenderPipelinePassConnection *const > pInputs, const xiiArrayPtr< xiiRenderPipelinePassConnection *const > pOutputs) override
 Executes this pass for the given view context.
 
- Public Member Functions inherited from xiiPresentPipelinePass
 xiiPresentPipelinePass (xiiStringView sName, xiiBitflags< xiiRenderPipelinePassCapabilityFlags > capabilityFlags=xiiRenderPipelinePassCapabilityFlags::StereoAware)
 
- Public Member Functions inherited from xiiRenderPipelinePassBase
 xiiRenderPipelinePassBase (xiiStringView sName, xiiBitflags< xiiRenderPipelinePassCapabilityFlags > capabilityFlags)
 Constructor to define a named render pass with required capability flags.
 
virtual ~xiiRenderPipelinePassBase ()
 Virtual destructor.
 
void SetName (xiiStringView sName)
 Assigns the user-visible name of the pass.
 
void SetPassFlags (xiiBitflags< xiiRenderPipelinePassFlags > flags)
 Sets additional flags that describe how the pass behaves or should be scheduled.
 
void SetPassConcurrencyHint (xiiEnum< xiiRenderPipelinePassConcurrencyHint > concurrencyHint)
 Provides a hint to the graph scheduler regarding parallel execution potential.
 
virtual xiiResult Serialize (xiiStreamWriter &inout_stream) const
 Serializes the internal pass configuration (not resource or runtime state).
 
virtual xiiResult Deserialize (xiiStreamReader &inout_stream)
 Restores the internal pass configuration from serialized data.
 
virtual xiiResult InitializeRenderPipelinePass (const xiiView &view, const xiiArrayPtr< xiiRenderPipelinePassConnection *const > pInputs, const xiiArrayPtr< xiiRenderPipelinePassConnection *const > pOutputs)
 Called once before the first execution to allow the pass to initialize itself based on the graph and view context.
 
virtual void ExecuteInactive (const xiiRenderViewContext &renderViewContext, const xiiArrayPtr< xiiRenderPipelinePassConnection *const > pInputs, const xiiArrayPtr< xiiRenderPipelinePassConnection *const > pOutputs)
 Called instead of Execute() if the pass is inactive (e.g., temporarily disabled or culled).
 
virtual void ReadBackProperties (xiiView *pView)
 Allows the pass to update scene or view properties after rendering (e.g., exposure, feedback).
 
XII_ALWAYS_INLINE xiiStringView GetName () const
 Returns the name of this render-pipeline pass.
 
XII_ALWAYS_INLINE xiiBitflags< xiiRenderPipelinePassCapabilityFlagsGetCapabilityFlags () const
 Retrieves the render pipeline pass capability flags.
 
XII_ALWAYS_INLINE xiiBitflags< xiiRenderPipelinePassFlagsGetPassFlags () const
 Returns the bitmask of flags describing this render-pipeline pass.
 
XII_ALWAYS_INLINE xiiEnum< xiiRenderPipelinePassConcurrencyHintGetPassConcurrencyHint () const
 Retrieves the concurrency hint for scheduling this render-pipeline pass.
 
XII_ALWAYS_INLINE bool IsStereoAware () const
 Determines whether this pass correctly handles stereo/XR rendering.
 
XII_ALWAYS_INLINE xiiRenderPipelineGetPipeline ()
 Retrieves the owning render pipeline for this pass.
 
XII_ALWAYS_INLINE const xiiRenderPipelineGetPipeline () const
 Retrieves the owning render pipeline for this pass (const overload).
 
- Public Member Functions inherited from xiiRenderPipelineNode
void InitializePins ()
 Populates the internal arrays of input and output pins.
 
xiiHashedString GetPinName (const xiiRenderPipelineNodePin *pPin) const
 Returns the hashed name associated with a given pin.
 
const xiiRenderPipelineNodePinGetPinByName (xiiStringView sName) const
 Finds a pin by its string name.
 
const xiiRenderPipelineNodePinGetPinByName (xiiHashedString sName) const
 Finds a pin by its hashed name.
 
XII_ALWAYS_INLINE const xiiArrayPtr< const xiiRenderPipelineNodePin *const > GetInputPins () const
 Retrieves all input pins of this node.
 
XII_ALWAYS_INLINE const xiiArrayPtr< const xiiRenderPipelineNodePin *const > GetOutputPins () const
 Retrieves all output pins of this node.
 
- Public Member Functions inherited from xiiReflectedClass
virtual const xiiRTTIGetDynamicRTTI () const
 
bool IsInstanceOf (const xiiRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
 
template<typename T>
XII_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
 

Protected Attributes

xiiRenderPipelineNodeInputDepthAttachmentProviderPin m_PinDepthStencil
 Depth/Stencil attachment input pin.
 
xiiGALSwapChainm_pSwapChain = nullptr
 Pointer to the swap chain associated with this pass (if any).
 
xiiRenderTargets m_RenderTargets
 Cached render targets used during execution.
 
Colour Attachment Pins
xiiRenderPipelineNodeInputColourAttachmentProviderPin m_PinColour0
 First colour attachment input.
 
xiiRenderPipelineNodeInputColourAttachmentProviderPin m_PinColour1
 Second colour attachment input.
 
xiiRenderPipelineNodeInputColourAttachmentProviderPin m_PinColour2
 Third colour attachment input.
 
xiiRenderPipelineNodeInputColourAttachmentProviderPin m_PinColour3
 Fourth colour attachment input.
 
xiiRenderPipelineNodeInputColourAttachmentProviderPin m_PinColour4
 Fifth colour attachment input.
 
xiiRenderPipelineNodeInputColourAttachmentProviderPin m_PinColour5
 Sixth colour attachment input.
 
xiiRenderPipelineNodeInputColourAttachmentProviderPin m_PinColour6
 Seventh colour attachment input.
 
xiiRenderPipelineNodeInputColourAttachmentProviderPin m_PinColour7
 Eighth colour attachment input.
 

Additional Inherited Members

- Static Public Member Functions inherited from xiiNoBase
static const xiiRTTIGetStaticRTTI ()
 

Detailed Description

A render pipeline pass that presents rendered output to a target such as a swap chain.

The xiiTargetPass class is responsible for binding colour and depth attachments, acquiring the necessary GPU resources from the pipeline, and executing the final presentation step in the rendering pipeline.

It extends xiiPresentPipelinePass to support multiple colour attachments and an optional depth/stencil target.

Constructor & Destructor Documentation

◆ xiiTargetPass()

xiiTargetPass::xiiTargetPass ( xiiStringView sName = "TargetPass")

Constructs a new target pass.

Parameters
sNameOptional name for this pass (defaults to "TargetPass").

Member Function Documentation

◆ Execute()

void xiiTargetPass::Execute ( const xiiRenderViewContext & renderViewContext,
const xiiArrayPtr< xiiRenderPipelinePassConnection *const > pInputs,
const xiiArrayPtr< xiiRenderPipelinePassConnection *const > pOutputs )
overridevirtual

Executes this pass for the given view context.

Binds render targets, applies any final operations, and presents the result to the target (such as the screen or an off-screen buffer).

Parameters
renderViewContext- The current view context for rendering.
pInputs- Array of pointers to input pass connections.
pOutputs- Array of pointers to output pass connections.

Implements xiiRenderPipelinePassBase.

◆ GetResourceDescriptions()

xiiResult xiiTargetPass::GetResourceDescriptions ( const xiiView & view,
const xiiArrayPtr< xiiRenderPipelinePassResource *const > pInputs,
xiiArrayPtr< xiiRenderPipelinePassResource > pOutputs )
overridevirtual

Provides descriptions of the resources this pass will produce.

This includes any colour and depth attachments used as outputs by the pass.

Parameters
view- The view for which resources are being described.
pInputs- Array of pointers to input resources.
pOutputs- Array where output resource descriptions will be written.
Returns
Success or failure result.

Implements xiiRenderPipelinePassBase.

◆ QueryResourceProvider()

xiiSharedPtr< xiiGALDeviceObject > xiiTargetPass::QueryResourceProvider ( const xiiRenderPipelineNodePin * pPin,
const xiiRenderPipelineResourceRequest & request )
overridevirtual

Queries the provider for a resource connected to a specific pin.

This can be used to dynamically supply GPU resources (such as textures or buffers) based on the pipeline's runtime requests.

Parameters
pPin- The node pin requesting the resource.
request- Details about the requested resource.
Returns
Shared pointer to the provided GPU resource object, or nullptr if unavailable.

Reimplemented from xiiRenderPipelinePassBase.


The documentation for this class was generated from the following files: