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.
|
Inherits AZ::RHI::ImagePoolBase.
Inherited by AZ::DX12::StreamingImagePool, AZ::Metal::StreamingImagePool, AZ::Null::StreamingImagePool, and AZ::Vulkan::StreamingImagePool.
Public Types | |
using | LowMemoryCallback = AZStd::function< bool(size_t targetMemoryUsage)> |
Public Member Functions | |
AZ_RTTI (StreamingImagePool, "{C9F1E40E-D852-4515-ADCC-E2D3AB4B56AB}", ImagePoolBase) | |
ResultCode | Init (Device &device, const StreamingImagePoolDescriptor &descriptor) |
Initializes the pool. The pool must be initialized before images can be registered with it. | |
ResultCode | InitImage (const StreamingImageInitRequest &request) |
Initializes the backing resources of an image. | |
ResultCode | ExpandImage (const StreamingImageExpandRequest &request) |
ResultCode | TrimImage (Image &image, uint32_t targetMipLevel) |
const StreamingImagePoolDescriptor & | GetDescriptor () const override final |
Returns the resource pool descriptor. | |
void | SetLowMemoryCallback (LowMemoryCallback callback) |
bool | SetMemoryBudget (size_t newBudget) |
bool | SupportTiledImage () const |
Return if it supports tiled image feature. | |
Public Member Functions inherited from AZ::RHI::ImagePoolBase | |
AZ_RTTI (ImagePoolBase, "{6353E390-C5D2-42FF-8AA9-9AFCD1F2F1B5}", ResourcePool) | |
Public Member Functions inherited from AZ::RHI::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. | |
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. | |
Device & | GetDevice () 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. | |
Static Public Attributes | |
static const uint64_t | ImagePoolMininumSizeInBytes = 16ul * 1024 * 1024 |
Protected Attributes | |
LowMemoryCallback | m_memoryReleaseCallback = nullptr |
Protected Attributes inherited from AZ::RHI::ResourcePool | |
PoolMemoryUsage | m_memoryUsage |
Protected Attributes inherited from AZ::RHI::Object | |
AZStd::atomic_int | m_useCount = 0 |
Additional Inherited Members | |
Protected Types inherited from AZ::RHI::ResourcePool | |
using | PlatformMethod = AZStd::function< RHI::ResultCode()> |
A simple functor that returns a result code. | |
Protected Member Functions inherited from AZ::RHI::ImagePoolBase | |
ResultCode | InitImage (Image *image, const ImageDescriptor &descriptor, PlatformMethod platformInitResourceMethod) |
Protected Member Functions inherited from AZ::RHI::ResourcePool | |
void | OnFrameBegin () override |
void | OnFrameCompile () override |
void | OnFrameEnd () override |
void | SetResolver (AZStd::unique_ptr< ResourcePoolResolver > &&resolvePolicy) |
virtual void | ComputeFragmentation () const =0 |
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. | |
Protected Member Functions inherited from AZ::RHI::DeviceObject | |
void | Init (Device &device) |
The derived class should call this method to assign the device. | |
Protected Member Functions inherited from AZ::RHI::Object | |
void | add_ref () const |
void | release () const |
using AZ::RHI::StreamingImagePool::LowMemoryCallback = AZStd::function<bool(size_t targetMemoryUsage)> |
Set a callback function that is called when the pool is out of memory for new allocations User could provide such a callback function which releases some resources from the pool If some resources are released, the function may return true. If nothing is released, the function should return false.
ResultCode AZ::RHI::StreamingImagePool::ExpandImage | ( | const StreamingImageExpandRequest & | request | ) |
Expands a streaming image with new mip chain data. The expansion can be performed asynchronously or synchronously depends on @m_waitForUpload in @StreamingImageExpandRequest. Upon completion, the views will be invalidated and map to the newly streamed mip levels.
bool AZ::RHI::StreamingImagePool::SetMemoryBudget | ( | size_t | newBudget | ) |
Set memory budget Return true if the pool was set to new memory budget successfully
ResultCode AZ::RHI::StreamingImagePool::TrimImage | ( | Image & | image, |
uint32_t | targetMipLevel | ||
) |
Trims a streaming image down to (and including) the target mip level. This occurs immediately. The newly evicted mip levels are no longer accessible by image views and the contents are considered undefined.