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

Allocates a structured or raw buffer to be consumed by compute or graphics passes. More...

#include <CreateBufferPass.h>

Inheritance diagram for xiiCreateBufferPass:
[legend]

Public Member Functions

 xiiCreateBufferPass (xiiStringView sName="CreateBufferPass")
 
virtual xiiResult Serialize (xiiStreamWriter &inout_stream) const override
 Serializes the internal pass configuration (not resource or runtime state).
 
virtual xiiResult Deserialize (xiiStreamReader &inout_stream) override
 Restores the internal pass configuration from serialized data.
 
virtual xiiResult GetResourceDescriptions (const xiiView &view, const xiiArrayPtr< xiiRenderPipelinePassResource *const > pInputs, xiiArrayPtr< xiiRenderPipelinePassResource > pOutputs) override
 Must be implemented by each pass to describe the GPU resources it requires on its output pins.
 
virtual void Execute (const xiiRenderViewContext &renderViewContext, const xiiArrayPtr< xiiRenderPipelinePassConnection *const > pInputs, const xiiArrayPtr< xiiRenderPipelinePassConnection *const > pOutputs) override
 Must be implemented by derived classes to perform the pass's actual rendering or processing logic.
 
XII_ALWAYS_INLINE xiiUInt64 GetSize () const
 Returns the total buffer size in bytes.
 
XII_ALWAYS_INLINE void SetSize (xiiUInt64 uiSize)
 Sets the total buffer size in bytes.
 
XII_ALWAYS_INLINE xiiUInt32 GetElementByteStride () const
 Returns the stride in bytes for each buffer element.
 
XII_ALWAYS_INLINE void SetElementByteStride (xiiUInt32 uiStride)
 Sets the stride in bytes for each buffer element.
 
XII_ALWAYS_INLINE xiiBitflags< xiiGALBindFlagsGetBindFlags () const
 Returns the bind flags used for buffer creation.
 
XII_ALWAYS_INLINE void SetBindFlags (xiiBitflags< xiiGALBindFlags > bindFlags)
 Sets the bind flags used for buffer creation.
 
XII_ALWAYS_INLINE xiiEnum< xiiGALResourceUsageGetUsage () const
 Returns the resource usage type.
 
XII_ALWAYS_INLINE void SetUsage (xiiEnum< xiiGALResourceUsage > usage)
 Sets the resource usage type.
 
XII_ALWAYS_INLINE xiiBitflags< xiiGALCPUAccessFlagGetAccessFlags () const
 Returns the CPU access flags.
 
XII_ALWAYS_INLINE void SetAccessFlags (xiiBitflags< xiiGALCPUAccessFlag > accessFlags)
 Sets the CPU access flags.
 
XII_ALWAYS_INLINE xiiEnum< xiiGALBufferModeGetMode () const
 Returns the buffer mode (e.g., structured, raw).
 
XII_ALWAYS_INLINE void SetMode (xiiEnum< xiiGALBufferMode > mode)
 Sets the buffer mode (e.g., structured, raw).
 
XII_ALWAYS_INLINE xiiBitflags< xiiGALMiscBufferFlagsGetMiscFlags () const
 Returns miscellaneous buffer flags.
 
XII_ALWAYS_INLINE void SetMiscFlags (xiiBitflags< xiiGALMiscBufferFlags > miscFlags)
 Sets miscellaneous buffer flags.
 
- Public Member Functions inherited from xiiUtilityPipelinePass
 xiiUtilityPipelinePass (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 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 xiiSharedPtr< xiiGALDeviceObjectQueryResourceProvider (const xiiRenderPipelineNodePin *pPin, const xiiRenderPipelineResourceRequest &request)
 Allows a pass to override resource creation for one of its outputs, typically to reuse or share GPU resources.
 
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.
 

Additional Inherited Members

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

Detailed Description

Allocates a structured or raw buffer to be consumed by compute or graphics passes.

Member Function Documentation

◆ Deserialize()

xiiResult xiiCreateBufferPass::Deserialize ( xiiStreamReader & inout_stream)
overridevirtual

Restores the internal pass configuration from serialized data.

Reimplemented from xiiRenderPipelinePassBase.

◆ Execute()

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

Must be implemented by derived classes to perform the pass's actual rendering or processing logic.

Called once per frame (and per view, if applicable).

Inputs and outputs are guaranteed to be valid and resolved GPU handles.

Implements xiiRenderPipelinePassBase.

◆ GetResourceDescriptions()

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

Must be implemented by each pass to describe the GPU resources it requires on its output pins.

The graph compiler uses this to allocate or pool GPU resources like textures, samplers, and buffers. Derived passes should populate each entry in pOutputs with the corresponding resource description.

Implements xiiRenderPipelinePassBase.

Reimplemented in xiiHistoryBufferSourcePass.

◆ Serialize()

xiiResult xiiCreateBufferPass::Serialize ( xiiStreamWriter & inout_stream) const
overridevirtual

Serializes the internal pass configuration (not resource or runtime state).

Reimplemented from xiiRenderPipelinePassBase.


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