|
| xiiHistorySourcePass (xiiStringView sName="HistorySourcePass") |
|
virtual bool | GetRenderTargetDescriptions (const xiiView &view, const xiiArrayPtr< xiiGALTextureCreationDescription *const > inputs, xiiArrayPtr< xiiGALTextureCreationDescription > outputs) override |
| For a given input pin configuration, provide the output configuration of this node. Outputs is already resized to the number of output pins.
|
|
virtual xiiSharedPtr< xiiGALTextureView > | QueryTextureProvider (const xiiRenderPipelineNodePin *pPin, const xiiGALTextureCreationDescription &desc) override |
|
virtual void | Execute (const xiiRenderViewContext &renderViewContext, const xiiArrayPtr< xiiRenderPipelinePassConnection *const > inputs, const xiiArrayPtr< xiiRenderPipelinePassConnection *const > outputs) override |
| Render into outputs. Both inputs and outputs are passed in with actual texture handles. Disconnected pins have a nullptr value in the passed in arrays. You can now create views and render target setups on the fly and fill the output targets with data.
|
|
virtual xiiResult | Serialize (xiiStreamWriter &inout_stream) const override |
|
virtual xiiResult | Deserialize (xiiStreamReader &inout_stream) override |
|
void | FreeCachedRenderPasses () |
|
| xiiRenderPipelinePass (xiiStringView sName, xiiBitflags< xiiRenderPipelinePassFlags > flags, xiiEnum< xiiRenderPipelinePassConcurrencyHint > concurrencyHint) |
|
void | SetName (xiiStringView sName) |
| Sets the name of the pass.
|
|
void | SetPassFlags (xiiBitflags< xiiRenderPipelinePassFlags > flags) |
|
void | SetPassConcurrencyHint (xiiEnum< xiiRenderPipelinePassConcurrencyHint > concurrencyHint) |
|
virtual void | InitializeRenderPipelinePass (const xiiArrayPtr< xiiRenderPipelinePassConnection *const > pInputs, const xiiArrayPtr< xiiRenderPipelinePassConnection *const > pOutputs) |
| After GetRenderTargetDescriptions was called successfully for each pass, this function is called with the inputs and outputs for review. Disconnected pins have a nullptr value in the passed in arrays. This is the time to create additional resources that are not covered by the pins automatically, e.g. a picking texture or eye adaptation buffer.
|
|
virtual void | ExecuteInactive (const xiiRenderViewContext &renderViewContext, const xiiArrayPtr< xiiRenderPipelinePassConnection *const > pInputs, const xiiArrayPtr< xiiRenderPipelinePassConnection *const > pOutputs) |
|
virtual void | ReadBackProperties (xiiView *pView) |
| Allows for the pass to write data back using xiiView::SetRenderPassReadBackProperty. E.g. picking results etc.
|
|
void | RenderDataWithCategory (const xiiRenderViewContext &renderViewContext, xiiSharedPtr< xiiGALCommandList > pCommandList, xiiRenderData::Category category, xiiRenderDataBatch::Filter filter=xiiRenderDataBatch::Filter()) |
|
XII_ALWAYS_INLINE xiiStringView | GetName () const |
| Returns the name of this render-pipeline pass.
|
|
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).
|
|
virtual | ~xiiRenderPipelineNode ()=default |
| Virtual destructor.
|
|
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.
|
|
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.
|
|
Allows to access data from a previous frame. Always comes in a pair with a xiiHistoryTargetPass. To preserve textures across the next frame you need to create this node to define the type of texture and initial state. This node's output pin will give access to the previous frame's content. Next, create a xiiHistoryTargetPass. It's input pin exposes the same texture as provided by the source node but allows you to write to by connecting the input pin to another pass that produces the image that you want to carry to the next frame. To connect a xiiHistoryTargetPass to its counterpart you need to set it's "SourcePassName" property to the name of the xiiHistorySourcePass you want to match. As both nodes expose the same texture, special care has to be taken that it's not used as input and output of another pass at the same time. In those cases, add a xiiCopyTexturePass to break up invalid state.