Open 3D Engine Atom Gem API Reference
24.09
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
|
#include <ImagePool.h>
Inherits AZ::RHI::ImagePoolBase.
Inherited by AZ::DX12::ImagePool, AZ::Metal::ImagePool, AZ::Null::ImagePool, and AZ::Vulkan::ImagePool.
Public Member Functions | |
AZ_RTTI (ImagePool, "{A5563DF9-191E-4DF7-86BA-CFF39BE07BDD}", ImagePoolBase) | |
ResultCode | Init (Device &device, const ImagePoolDescriptor &descriptor) |
Initializes the pool. The pool must be initialized before images can be registered with it. | |
ResultCode | InitImage (const ImageInitRequest &request) |
Initializes an image onto the pool. The pool provides backing GPU resources to the image. | |
ResultCode | UpdateImageContents (const ImageUpdateRequest &request) |
Updates image content from the CPU. | |
const ImagePoolDescriptor & | GetDescriptor () const override final |
Returns the descriptor used to initialize the pool. | |
void | ComputeFragmentation () const override |
Returns the fragmentation produced by this pool. | |
![]() | |
AZ_RTTI (ImagePoolBase, "{6353E390-C5D2-42FF-8AA9-9AFCD1F2F1B5}", ResourcePool) | |
![]() | |
AZ_RTTI (ResourcePool, "{757EB674-25DC-4D00-9808-D3DAF33A4EFE}", DeviceObject) | |
void | Shutdown () override final |
Shuts down the pool. This method will shutdown all resources associated with the pool. | |
template<typename ResourceType > | |
void | ForEach (AZStd::function< void(ResourceType &)> callback) |
template<typename ResourceType > | |
void | ForEach (AZStd::function< void(const ResourceType &)> callback) const |
uint32_t | GetResourceCount () const |
Returns the number of resources in the pool. | |
ResourcePoolResolver * | GetResolver () |
Returns the resolver for this pool. | |
const ResourcePoolResolver * | GetResolver () const |
const HeapMemoryUsage & | GetHeapMemoryUsage (HeapMemoryLevel heapMemoryLevel) const |
Returns the memory used by this pool for a specific heap type. | |
const PoolMemoryUsage & | GetMemoryUsage () const |
Returns the memory used by this pool. | |
![]() | |
AZ_RTTI (DeviceObject, "{17D34F71-944C-4AF5-9823-627474C4C0A6}", Object) | |
bool | IsInitialized () const |
Returns whether the device object is initialized. | |
Device & | GetDevice () const |
![]() | |
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. | |
Additional Inherited Members | |
![]() | |
using | PlatformMethod = AZStd::function< RHI::ResultCode()> |
A simple functor that returns a result code. | |
![]() | |
ResultCode | InitImage (Image *image, const ImageDescriptor &descriptor, PlatformMethod platformInitResourceMethod) |
![]() | |
void | OnFrameBegin () override |
void | OnFrameCompile () override |
void | OnFrameEnd () override |
void | SetResolver (AZStd::unique_ptr< ResourcePoolResolver > &&resolvePolicy) |
ResultCode | Init (Device &device, const ResourcePoolDescriptor &descriptor, const PlatformMethod &initMethod) |
ResultCode | InitResource (Resource *resource, const PlatformMethod &initResourceMethod) |
bool | ValidateIsRegistered (const Resource *resource) const |
bool | ValidateIsUnregistered (const Resource *resource) const |
bool | ValidateIsInitialized () const |
Validates that the resource pool is initialized and ready to service requests. | |
bool | ValidateNotProcessingFrame () const |
Validates that we are not in the frame processing phase. | |
![]() | |
void | Init (Device &device) |
The derived class should call this method to assign the device. | |
![]() | |
void | add_ref () const |
void | release () const |
![]() | |
PoolMemoryUsage | m_memoryUsage |
![]() | |
AZStd::atomic_int | m_useCount = 0 |
ImagePool is a pool of images that will be bound as attachments to the frame scheduler. As a result, they are intended to be produced and consumed by the GPU. Persistent Color / Depth Stencil / Image attachments should be created from this pool. This pool is not designed for intra-frame aliasing. If transient images are required, they can be created from the frame scheduler itself.