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

#include <Buffer.h>

Inherits AZ::RHI::Resource.

Public Member Functions

 AZ_CLASS_ALLOCATOR (Buffer, AZ::SystemAllocator, 0)
 
 AZ_RTTI (Buffer, "{8B8A544D-7819-4677-9C47-943B821DE619}", Resource)
 
 AZ_RHI_MULTI_DEVICE_OBJECT_GETTER (Buffer)
 
const BufferDescriptorGetDescriptor () const
 
const BufferFrameAttachmentGetFrameAttachment () const
 Returns the buffer frame attachment if the buffer is currently attached.
 
Ptr< BufferViewGetBufferView (const BufferViewDescriptor &bufferViewDescriptor)
 
const HashValue64 GetHash () const
 Get the hash associated with the Buffer.
 
void Shutdown () override final
 Shuts down the resource by detaching it from its parent pool.
 
- Public Member Functions inherited from AZ::RHI::Resource
 AZ_RTTI (Resource, "{613AED98-48FD-4453-98F8-6956D2133489}", MultiDeviceObject)
 
 AZ_RHI_MULTI_DEVICE_OBJECT_GETTER (Resource)
 
bool IsAttachment () const
 Returns whether the resource is currently an attachment on a frame graph.
 
const ResourcePoolGetPool () const
 
ResourcePoolGetPool ()
 
uint32_t GetVersion () const
 
const FrameAttachmentGetFrameAttachment () const
 Returns the frame attachment associated with this image (if it exists).
 
void InvalidateViews ()
 
bool IsInResourceCache (const ImageViewDescriptor &imageViewDescriptor)
 Returns true if the ResourceView is in the cache.
 
bool IsInResourceCache (const BufferViewDescriptor &bufferViewDescriptor)
 
void EraseResourceView (ResourceView *resourceView) const
 
- Public Member Functions inherited from AZ::RHI::MultiDeviceObject
 AZ_RTTI (MultiDeviceObject, "{17D34F71-944C-4AF5-9823-627474C4C0A6}", Object)
 
bool IsInitialized () const
 Returns whether the device object is initialized.
 
AZ_FORCE_INLINE bool IsDeviceSet (int deviceIndex) const
 
MultiDevice::DeviceMask GetDeviceMask () const
 
- Public Member Functions inherited from AZ::RHI::Object
 AZ_RTTI (Object, "{E43378F1-2331-4173-94B8-990ED20E6003}")
 
void SetName (const Name &name)
 Sets the name of the object.
 
const Name & GetName () const
 Returns the name set on the object by SetName.
 
uint32_t use_count ()
 Returns the current use count of the object.
 

Protected Member Functions

void SetDescriptor (const BufferDescriptor &descriptor)
 
- Protected Member Functions inherited from AZ::RHI::Resource
Ptr< ImageViewGetResourceView (const ImageViewDescriptor &imageViewDescriptor) const
 Returns view based on the descriptor and keeps a raw pointer in a local cache.
 
Ptr< BufferViewGetResourceView (const BufferViewDescriptor &bufferViewDescriptor) const
 
- Protected Member Functions inherited from AZ::RHI::MultiDeviceObject
void Init (MultiDevice::DeviceMask deviceMask)
 The derived class should call this method to assign the device.
 
template<typename T >
AZ_FORCE_INLINE void IterateDevices (T callback)
 Helper method that will iterate over all selected devices and call the provided callback.
 
template<typename T , typename U >
AZ_FORCE_INLINE decltype(auto) IterateObjects (U callback)
 
template<typename T , typename U >
AZ_FORCE_INLINE decltype(auto) IterateObjects (U callback) const
 
template<typename T >
AZ_FORCE_INLINE Ptr< T > GetDeviceObject (int deviceIndex) const
 
- Protected Member Functions inherited from AZ::RHI::Object
void add_ref () const
 
void release () const
 

Friends

class BufferPoolBase
 
class BufferPool
 
class RayTracingTlas
 
class TransientAttachmentPool
 

Additional Inherited Members

- Static Public Member Functions inherited from AZ::RHI::MultiDeviceObject
template<typename T >
static AZ_FORCE_INLINE void IterateDevices (MultiDevice::DeviceMask deviceMask, T callback)
 
- Protected Attributes inherited from AZ::RHI::MultiDeviceObject
AZStd::unordered_map< int, Ptr< DeviceObject > > m_deviceObjects
 A map of all device-specific objects, indexed by the device index.
 
- Protected Attributes inherited from AZ::RHI::Object
AZStd::atomic_int m_useCount = 0
 

Detailed Description

A Buffer holds all Buffers across multiple devices. The buffer descriptor will be shared across all the buffers. The user manages the lifecycle of a Buffer through a BufferPool

Member Function Documentation

◆ Shutdown()

void AZ::RHI::Buffer::Shutdown ( )
finaloverridevirtual

Shuts down the resource by detaching it from its parent pool.

Implements AZ::RHI::Resource.


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