#include <ImagePoolBase.h>
Inherits AZ::RHI::ResourcePool.
Inherited by AZ::RHI::ImagePool, AZ::RHI::StreamingImagePool, and AZ::RHI::SwapChain.
Public Member Functions | |
AZ_RTTI (ImagePoolBase, "{CAC2167A-D65A-493F-A450-FDE2B1A883B1}", ResourcePool) | |
![]() | |
AZ_RTTI (ResourcePool, "{BAE5442C-A312-4133-AE80-1200753A7C3E}", MultiDeviceObject) | |
virtual void | Shutdown () override=0 |
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. | |
virtual const ResourcePoolDescriptor & | GetDescriptor () const =0 |
Returns the resource pool descriptor. | |
![]() | |
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 |
![]() | |
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 | |
ResultCode | InitImage (Image *image, const ImageDescriptor &descriptor, PlatformMethod platformInitResourceMethod) |
![]() | |
ResultCode | Init (MultiDevice::DeviceMask deviceMask, 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. | |
![]() | |
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 |
![]() | |
void | add_ref () const |
void | release () const |
Additional Inherited Members | |
![]() | |
template<typename T > | |
static AZ_FORCE_INLINE void | IterateDevices (MultiDevice::DeviceMask deviceMask, T callback) |
![]() | |
using | PlatformMethod = AZStd::function< RHI::ResultCode()> |
//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!// | |
![]() | |
AZStd::unordered_map< int, Ptr< DeviceObject > > | m_deviceObjects |
A map of all device-specific objects, indexed by the device index. | |
![]() | |
AZStd::atomic_int | m_useCount = 0 |
A simple base class for multi-device image pools. This mainly exists so that various image pool implementations can have some type safety separate from other resource pool types.