XII Release 0.1.0
Loading...
Searching...
No Matches
xiiRenderPipelinePassResource Struct Reference

Represents a strongly typed resource instance produced by a render pipeline pass, including its creation parameters and resolved runtime handle. More...

#include <RenderPipelinePass.h>

Public Member Functions

 xiiRenderPipelinePassResource (xiiRenderPipelineNodePinResourceType::Enum resourceType, const xiiGALBufferCreationDescription &description, const xiiSharedPtr< xiiGALBuffer > &pBuffer={})
 
 xiiRenderPipelinePassResource (xiiRenderPipelineNodePinResourceType::Enum resourceType, const xiiGALTextureCreationDescription &description, const xiiSharedPtr< xiiGALTexture > &pTexture={})
 
 xiiRenderPipelinePassResource (xiiRenderPipelineNodePinResourceType::Enum resourceType, const xiiGALSamplerCreationDescription &description, const xiiSharedPtr< xiiGALSampler > &pSampler={})
 
 xiiRenderPipelinePassResource (const xiiRenderPipelinePassResource &other)
 
xiiRenderPipelinePassResourceoperator= (const xiiRenderPipelinePassResource &other)
 
xiiUInt32 CalculateDescriptorHash () const
 
XII_ALWAYS_INLINE constexpr bool IsBuffer () const
 Returns true if this resource is a buffer.
 
XII_ALWAYS_INLINE constexpr bool IsTexture () const
 Returns true if this resource is a texture.
 
XII_ALWAYS_INLINE constexpr bool IsSampler () const
 Returns true if this resource is a sampler.
 
XII_ALWAYS_INLINE constexpr bool IsAccelerationStructure () const
 Returns true if this resource is an acceleration structure.
 

Public Attributes

xiiEnum< xiiRenderPipelineNodePinResourceTypem_Type
 Indicates which union field is valid.
 
union { 
 
   struct { 
 
      xiiGALTextureCreationDescription   m_Description 
 Describes the texture format, usage, size, etc.
 
      xiiSharedPtr< xiiGALTexture >   m_pTexture 
 The actual resolved GPU texture.
 
   }   m_Texture 
 
   struct { 
 
      xiiGALBufferCreationDescription   m_Description 
 Buffer configuration (element size, usage, etc.).
 
      xiiSharedPtr< xiiGALBuffer >   m_pBuffer 
 The runtime buffer handle.
 
   }   m_Buffer 
 
   struct { 
 
      xiiGALSamplerCreationDescription   m_Description 
 Sampler filtering, addressing, and LOD parameters.
 
      xiiSharedPtr< xiiGALSampler >   m_pSampler 
 The compiled sampler object used in shaders.
 
   }   m_Sampler 
 
};  
 

Detailed Description

Represents a strongly typed resource instance produced by a render pipeline pass, including its creation parameters and resolved runtime handle.

This structure is typically embedded in a xiiRenderPipelinePassConnection to describe the output produced by a specific output pin. It acts as a type-safe union containing exactly one valid resource type (Texture, Buffer, Sampler, or Acceleration Structure), along with its associated descriptor and GPU handle.

The active resource variant is indicated by m_Type. Accessing an inactive variant is undefined behavior.

See also
xiiRenderPipelineNodePinResourceType

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