Open 3D Engine Atom Gem API Reference  2205.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
AZ::RPI::PassSlot Struct Reference

#include <PassAttachmentReflect.h>

Public Member Functions

 AZ_TYPE_INFO (PassSlot, "{35150886-D1E4-40CB-AF7B-C607E893CD03}")
 
RHI::ScopeAttachmentAccess GetAttachmentAccess () const
 Returns the corresponding ScopeAttachmentAccess for this slot.
 

Static Public Member Functions

static void Reflect (AZ::ReflectContext *context)
 

Public Attributes

Name m_name
 Name of the slot.
 
Name m_shaderInputName = Name("AutoBind")
 
Name m_shaderImageDimensionsName
 
uint16_t m_shaderInputArrayIndex = 0
 
PassSlotType m_slotType = PassSlotType::Uninitialized
 Whether slot is an input, output or inputOutput.
 
RHI::ScopeAttachmentUsage m_scopeAttachmentUsage = RHI::ScopeAttachmentUsage::Uninitialized
 ScopeAttachmentUsage used when binding the slot's attachment with the RHI.
 
AZStd::shared_ptr< RHI::ImageViewDescriptorm_imageViewDesc = nullptr
 
AZStd::shared_ptr< RHI::BufferViewDescriptorm_bufferViewDesc = nullptr
 
RHI::AttachmentLoadStoreAction m_loadStoreAction
 Load store action for the attachment used by this slot.
 
AZStd::vector< RHI::Format > m_formatFallbacks
 List of formats to fallback to if the format specified in the view descriptor is not supported by the device.
 

Detailed Description

A slot for a PassAttachment to be bound to a Pass. Specifies what kind of PassAttachments can be bound as well as how the Pass will use the attachment. PassSlots and PassConnections are used to initialize PassAttachmentBindings.

Member Data Documentation

◆ m_bufferViewDesc

AZStd::shared_ptr<RHI::BufferViewDescriptor> AZ::RPI::PassSlot::m_bufferViewDesc = nullptr

Optional buffer view descriptor to be applied to the slot. Note a PassSlot should have only a buffer or image view descriptor (or none at all, in which case a default is generated), but not both. If the user specifies both, the image descriptor will take precedence. If none is specified, we apply a default image or buffer view descriptor depending on attachment type.

◆ m_imageViewDesc

AZStd::shared_ptr<RHI::ImageViewDescriptor> AZ::RPI::PassSlot::m_imageViewDesc = nullptr

Optional image view descriptor to be applied to the slot. Note a PassSlot should have only a buffer or image view descriptor (or none at all, in which case a default is generated), but not both. If the user specifies both, the image descriptor will take precedence. If none is specified, we apply a default image or buffer view descriptor depending on attachment type.

◆ m_shaderImageDimensionsName

Name AZ::RPI::PassSlot::m_shaderImageDimensionsName

Name of the shader resource group constant (must be float4) to which the pass can automatically bind the following: X component = image width Y component = image height Z component = 1 / image width W component = 1 / image height

◆ m_shaderInputArrayIndex

uint16_t AZ::RPI::PassSlot::m_shaderInputArrayIndex = 0

This is to specify an array index if the shader input is an array. e.g. Texture2DMS<float4> m_color[4];

◆ m_shaderInputName

Name AZ::RPI::PassSlot::m_shaderInputName = Name("AutoBind")

Name of the shader resource group member this slot binds to. The keyword "AutoBind" (default value) means buffer and image indices will be auto calculated based on the order of the slots (note: for this to work the slot order must match the order of the ShaderResourceGroup members) The keyword "NoBind" means the slot will not bind it's attachment to the SRG


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