![]() |
XII Release 0.1.0
|
A render pipeline pass that presents rendered output to a target such as a swap chain. More...
#include <TargetPass.h>
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< xiiGALDeviceObject > | QueryResourceProvider (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< xiiRenderPipelinePassCapabilityFlags > | GetCapabilityFlags () const |
| Retrieves the render pipeline pass capability flags. | |
| XII_ALWAYS_INLINE xiiBitflags< xiiRenderPipelinePassFlags > | GetPassFlags () const |
| Returns the bitmask of flags describing this render-pipeline pass. | |
| XII_ALWAYS_INLINE xiiEnum< xiiRenderPipelinePassConcurrencyHint > | GetPassConcurrencyHint () 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 xiiRenderPipeline * | GetPipeline () |
| Retrieves the owning render pipeline for this pass. | |
| XII_ALWAYS_INLINE const xiiRenderPipeline * | GetPipeline () 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 xiiRenderPipelineNodePin * | GetPinByName (xiiStringView sName) const |
| Finds a pin by its string name. | |
| const xiiRenderPipelineNodePin * | GetPinByName (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 xiiRTTI * | GetDynamicRTTI () 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. | |
| xiiGALSwapChain * | m_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 xiiRTTI * | GetStaticRTTI () |
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.
| xiiTargetPass::xiiTargetPass | ( | xiiStringView | sName = "TargetPass" | ) |
Constructs a new target pass.
| sName | Optional name for this pass (defaults to "TargetPass"). |
|
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).
| 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.
|
overridevirtual |
Provides descriptions of the resources this pass will produce.
This includes any colour and depth attachments used as outputs by the pass.
| 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. |
Implements xiiRenderPipelinePassBase.
|
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.
| pPin | - The node pin requesting the resource. |
| request | - Details about the requested resource. |
Reimplemented from xiiRenderPipelinePassBase.