Open 3D Engine Atom Gem API Reference 26.05.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::Render::ShaderStreamBufferViewsInterface Class Referenceabstract

Public Member Functions

 AZ_RTTI (AZ::Render::ShaderStreamBufferViewsInterface, "{3A80C85C-DD3A-4A1D-B564-291EB463CD0B}")
 
virtual const AZ::RHI::Ptr< AZ::RHI::BufferView > & GetVertexIndicesBufferView () const =0
 
virtual const AZ::RHI::IndexBufferView & GetVertexIndicesIndexBufferView () const =0
 
virtual uint32_t GetVertexIndicesBindlessReadIndex (int deviceIndex) const =0
 
virtual AZStd::unordered_map< int, uint32_t > GetVertexIndicesBindlessReadIndex () const =0
 
virtual const AZ::RHI::Ptr< AZ::RHI::BufferView > & GetBufferView (const AZ::RHI::ShaderSemantic &shaderSemantic) const =0
 Returns the Shader-bindable RHI::BufferView for a Vertex Stream, identifiable by @shaderSemantic, from a particular mesh.
 
virtual const AZ::RHI::Ptr< AZ::RHI::BufferView > & GetBufferView (const char *semanticName) const =0
 Same as above, but provides the convenience of finding the vertex stream by name, like "POSITION" or "UV1", etc.
 
virtual const AZ::RHI::StreamBufferView * GetStreamBufferView (const AZ::RHI::ShaderSemantic &shaderSemantic) const =0
 
virtual const AZ::RHI::StreamBufferView * GetStreamBufferView (const char *semanticName) const =0
 Same as above, but provides the convenience of finding the vertex stream by name, like "POSITION" or "UV1", etc.
 
virtual uint32_t GetStreamBufferViewBindlessReadIndex (int deviceIndex, const AZ::RHI::ShaderSemantic &shaderSemantic) const =0
 
virtual uint32_t GetStreamBufferViewBindlessReadIndex (int deviceIndex, const char *semanticName) const =0
 
virtual AZStd::unordered_map< int, uint32_t > GetStreamBufferViewBindlessReadIndex (const AZ::RHI::ShaderSemantic &shaderSemantic) const =0
 
virtual AZStd::unordered_map< int, uint32_t > GetStreamBufferViewBindlessReadIndex (const char *semanticName) const =0
 
virtual uint32_t GetLodIndex () const =0
 For informational purposes. Returns the LOD Index of the Mesh.
 
virtual uint32_t GetMeshIndex () const =0
 

Member Function Documentation

◆ GetStreamBufferView()

virtual const AZ::RHI::StreamBufferView * AZ::Render::ShaderStreamBufferViewsInterface::GetStreamBufferView ( const AZ::RHI::ShaderSemantic shaderSemantic) const
pure virtual

Returns the StreamBufferView for a Vertex Stream, identifiable by @shaderSemantic, from a particular mesh. This is useful to know the actual byte offset, byte count, etc related to the sub mesh(Mesh Index). if the semantic is not fund, it returns nullptr.

◆ GetStreamBufferViewBindlessReadIndex() [1/2]

virtual AZStd::unordered_map< int, uint32_t > AZ::Render::ShaderStreamBufferViewsInterface::GetStreamBufferViewBindlessReadIndex ( const AZ::RHI::ShaderSemantic shaderSemantic) const
pure virtual

Same as above, but conveniently returns all the indices across all available devices in an unordered_map.

◆ GetStreamBufferViewBindlessReadIndex() [2/2]

virtual uint32_t AZ::Render::ShaderStreamBufferViewsInterface::GetStreamBufferViewBindlessReadIndex ( int  deviceIndex,
const AZ::RHI::ShaderSemantic shaderSemantic 
) const
pure virtual

A shortcut to get the Read Index from the BindlessSrg for a particular BufferView identifiable by its shader semantic. Alternatively, you could get the same index by getting it directly from the AZ::RHI::BufferView returned by GetBufferView().

◆ GetVertexIndicesBindlessReadIndex() [1/2]

virtual AZStd::unordered_map< int, uint32_t > AZ::Render::ShaderStreamBufferViewsInterface::GetVertexIndicesBindlessReadIndex ( ) const
pure virtual

Same as above, but conveniently returns all the indices across all available devices in an unordered_map.

◆ GetVertexIndicesBindlessReadIndex() [2/2]

virtual uint32_t AZ::Render::ShaderStreamBufferViewsInterface::GetVertexIndicesBindlessReadIndex ( int  deviceIndex) const
pure virtual

A shortcut to get the Read Index from the BindlessSrg for the IndexBufferView. Alternatively, you could get the same index by getting it directly from the AZ::RHI::BufferView returned by GetIndexBufferView()

◆ GetVertexIndicesBufferView()

virtual const AZ::RHI::Ptr< AZ::RHI::BufferView > & AZ::Render::ShaderStreamBufferViewsInterface::GetVertexIndicesBufferView ( ) const
pure virtual

Returns the Shader-bindable RHI::BufferView for the Vertex Indices from a particular mesh. REMARK: If the BindlessSrg is enabled, which typically is, this buffer view is already bound as a ByteAddressBuffer

◆ GetVertexIndicesIndexBufferView()

virtual const AZ::RHI::IndexBufferView & AZ::Render::ShaderStreamBufferViewsInterface::GetVertexIndicesIndexBufferView ( ) const
pure virtual

Returns the IndexBufferView from the Vertex Indices, which is useful to know the actual byte offset, byte count, etc related to the sub mesh(Mesh Index).


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