Open 3D Engine Atom Gem API Reference 23.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::ResourcePoolDatabase Class Referencefinal

#include <ResourcePoolDatabase.h>

Public Member Functions

 ResourcePoolDatabase (const ResourcePoolDatabase &)=delete
 
template<typename Predicate >
void ForEachBufferPool (Predicate predicate) const
 
template<typename Predicate >
void ForEachBufferPool (Predicate predicate)
 
template<typename Predicate >
void ForEachImagePool (Predicate predicate) const
 
template<typename Predicate >
void ForEachImagePool (Predicate predicate)
 
template<typename Predicate >
void ForEachShaderResourceGroupPool (Predicate predicate) const
 
template<typename Predicate >
void ForEachShaderResourceGroupPool (Predicate predicate)
 
template<typename Predicate >
void ForEachPool (Predicate predicate) const
 
template<typename Predicate >
void ForEachPool (Predicate predicate)
 
template<typename Predicate >
void ForEachPoolResolver (Predicate predicate) const
 
template<typename Predicate >
void ForEachPoolResolver (Predicate predicate)
 

Friends

class ResourcePool
 

Detailed Description

This class is a simple database of active resource pools. Resource pools are attached and detached from the database when they initialize and shutdown, respectively. The database provides a way to iterate over active pools in a thread-safe way using a reader-writer lock.

ResourcePool is friended to the class in order to allow it to control attachment / detachment from the database.

Member Function Documentation

◆ ForEachBufferPool() [1/2]

template<typename Predicate >
void AZ::RHI::ResourcePoolDatabase::ForEachBufferPool ( Predicate  predicate)

Provides a read-locked loop over the set of buffer pools.

Parameters
predicateThe predicate to call for each instance. Expected signature: void(BufferPoolBase*).

◆ ForEachBufferPool() [2/2]

template<typename Predicate >
void AZ::RHI::ResourcePoolDatabase::ForEachBufferPool ( Predicate  predicate) const

Provides a read-locked loop over the set of buffer pools.

Parameters
predicateThe predicate to call for each instance. Expected signature: void(const BufferPoolBase*).

◆ ForEachImagePool() [1/2]

template<typename Predicate >
void AZ::RHI::ResourcePoolDatabase::ForEachImagePool ( Predicate  predicate)

Provides a read-locked loop over the set of image pools.

Parameters
predicateThe predicate to call for each instance. Expected signature: void(ImagePoolBase*).

◆ ForEachImagePool() [2/2]

template<typename Predicate >
void AZ::RHI::ResourcePoolDatabase::ForEachImagePool ( Predicate  predicate) const

Provides a read-locked loop over the set of image pools.

Parameters
predicateThe predicate to call for each instance. Expected signature: void(const ImagePoolBase*).

◆ ForEachPool() [1/2]

template<typename Predicate >
void AZ::RHI::ResourcePoolDatabase::ForEachPool ( Predicate  predicate)

Provides a read-locked loop over the set of resource pools.

Parameters
predicateThe predicate to call for each instance. Expected signature: void(ResourcePool*).

◆ ForEachPool() [2/2]

template<typename Predicate >
void AZ::RHI::ResourcePoolDatabase::ForEachPool ( Predicate  predicate) const

Provides a read-locked loop over the set resource pools.

Parameters
predicateThe predicate to call for each instance. Expected signature: void(const ResourcePool*).

◆ ForEachPoolResolver() [1/2]

template<typename Predicate >
void AZ::RHI::ResourcePoolDatabase::ForEachPoolResolver ( Predicate  predicate)

Provides a read-locked loop over the set of resource pool resolvers.

Parameters
predicateThe predicate to call for each instance. Expected signature: void(ResourcePoolResolver*).

◆ ForEachPoolResolver() [2/2]

template<typename Predicate >
void AZ::RHI::ResourcePoolDatabase::ForEachPoolResolver ( Predicate  predicate) const

Provides a read-locked loop over the set resource pool resolvers.

Parameters
predicateThe predicate to call for each instance. Expected signature: void(const ResourcePoolResolver*).

◆ ForEachShaderResourceGroupPool() [1/2]

template<typename Predicate >
void AZ::RHI::ResourcePoolDatabase::ForEachShaderResourceGroupPool ( Predicate  predicate)

Provides a read-locked loop over the set of shader resource group pools.

Parameters
predicateThe predicate to call for each instance. Expected signature: void(ShaderResourceGroupPool*).

◆ ForEachShaderResourceGroupPool() [2/2]

template<typename Predicate >
void AZ::RHI::ResourcePoolDatabase::ForEachShaderResourceGroupPool ( Predicate  predicate) const

Provides a read-locked loop over the set of shader resource group pools.

Parameters
predicateThe predicate to call for each instance. Expected signature: void(const ShaderResourceGroupPool*).

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