Open 3D Engine Atom Gem API Reference  22.10.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 | Protected Member Functions | Friends | List of all members
AZ::RHI::Resource Class Referenceabstract

#include <Resource.h>

Inherits AZ::RHI::DeviceObject.

Inherited by AZ::RHI::Buffer, AZ::RHI::Image, AZ::RHI::Query, and AZ::RHI::ShaderResourceGroup.

Public Member Functions

 AZ_RTTI (Resource, "{9D02CDAC-80EB-4B77-8E62-849AC6E69206}", DeviceObject)
 
bool IsAttachment () const
 Returns whether the resource is currently an attachment on a frame graph.
 
void Shutdown () override final
 Shuts down the buffer by detaching it from its parent pool.
 
const ResourcePoolGetPool () const
 
ResourcePoolGetPool ()
 
uint32_t GetVersion () const
 
virtual void ReportMemoryUsage (MemoryStatisticsBuilder &builder) const =0
 Reports memory usage of this image to the memory statistics builder.
 
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
 Removes the provided ResourceView from the cache.
 
- Public Member Functions inherited from AZ::RHI::DeviceObject
 AZ_RTTI (DeviceObject, "{17D34F71-944C-4AF5-9823-627474C4C0A6}", Object)
 
bool IsInitialized () const
 Returns whether the device object is initialized.
 
DeviceGetDevice () const
 
- Public Member Functions inherited from AZ::RHI::Object
 AZ_RTTI (Object, "{E43378F1-2331-4173-94B8-990ED20E6003}")
 
void SetName (const Name &name)
 
const Name & GetName () const
 

Protected Member Functions

Ptr< ImageViewGetResourceView (const ImageViewDescriptor &imageViewDescriptor) const
 Returns view based on the descriptor.
 
Ptr< BufferViewGetResourceView (const BufferViewDescriptor &bufferViewDescriptor) const
 
- Protected Member Functions inherited from AZ::RHI::DeviceObject
void Init (Device &device)
 The derived class should call this method to assign the device.
 

Friends

class FrameAttachment
 
class ResourcePool
 

Detailed Description

ResourceBase is a base class for pooled RHI resources (Image / Buffer / ShaderResourceGroup, etc). It provides some common lifecycle management semantics. Resource creation is separate from initialization. Resources are created separate from any pool, but its backing platform data is associated at initialization time on a specific pool.

Member Function Documentation

◆ GetPool()

const ResourcePool* AZ::RHI::Resource::GetPool ( ) const

Returns the parent pool this resource is registered on. Since resource creation is separate from initialization, this will be null until the resource is registered on a pool.

◆ GetVersion()

uint32_t AZ::RHI::Resource::GetVersion ( ) const

Returns the version number. This number is monotonically increased anytime new platform memory is assigned to the resource. Any dependent resource is valid so long as the version numbers match.

◆ InvalidateViews()

void AZ::RHI::Resource::InvalidateViews ( )

Invalidates all views referencing this resource. Invalidation is handled implicitly on a Shutdown / Init cycle from the pool. For example, it is safe to create a resource, create a view to that resource, and then Shutdown / Re-Init the resource. InvalidateViews is called to synchronize views (and shader resource groups which hold them) to the new data.

Platform back-ends which invalidate GPU-specific data on the resource without an explicit shutdown / re-initialization will need to call this method explicitly.


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