Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
Divide::ResourcePool< T > Struct Template Referencefinal
+ Inheritance diagram for Divide::ResourcePool< T >:

Classes

struct  Entry
 

Public Member Functions

 ResourcePool (RenderAPI api)
 
void resize (size_t size)
 
void queueDeletion (Handle< T > &handle)
 
void processDeletionQueue () override
 
ResourcePtr< T > get (Handle< T > handle)
 
Handle< T > retrieveHandleLocked (const size_t descriptorHash)
 
void deallocate (Handle< T > &handle)
 
Handle< T > allocate (size_t descriptorHash)
 
void commitLocked (Handle< T > handle, ResourcePtr< T > ptr)
 
void printResources (bool error) final
 
void deallocateInternal (ResourcePtr< T > ptr)
 
Handle< T > allocateLocked (size_t descriptorHash)
 
void deallocateInternal (ResourcePtr< Texture > ptr)
 
void deallocateInternal (ResourcePtr< ShaderProgram > ptr)
 
- Public Member Functions inherited from Divide::ResourcePoolBase
 ResourcePoolBase (RenderAPI api)
 
virtual ~ResourcePoolBase ()
 
virtual void printResources (bool error)=0
 
virtual void processDeletionQueue ()=0
 

Public Attributes

SharedMutex _lock
 
eastl::fixed_vector< std::pair< bool, U8 >, ResourcePoolSize, true > _freeList
 
eastl::fixed_vector< Entry, ResourcePoolSize, true > _resPool
 

Static Public Attributes

static constexpr size_t ResourcePoolSize = 512u
 

Private Attributes

moodycamel::ConcurrentQueue< Handle< T > > _deletionQueue
 

Additional Inherited Members

- Protected Attributes inherited from Divide::ResourcePoolBase
const RenderAPI _api
 

Detailed Description

template<typename T>
struct Divide::ResourcePool< T >

Definition at line 60 of file ResourceCache.inl.

Constructor & Destructor Documentation

◆ ResourcePool()

template<typename T >
Divide::ResourcePool< T >::ResourcePool ( RenderAPI  api)
explicit

Definition at line 189 of file ResourceCache.inl.

Member Function Documentation

◆ allocate()

template<typename T >
Handle< T > Divide::ResourcePool< T >::allocate ( size_t  descriptorHash)

Definition at line 229 of file ResourceCache.inl.

◆ allocateLocked()

template<typename T >
Handle< T > Divide::ResourcePool< T >::allocateLocked ( size_t  descriptorHash)

Definition at line 204 of file ResourceCache.inl.

◆ commitLocked()

template<typename T >
void Divide::ResourcePool< T >::commitLocked ( Handle< T >  handle,
ResourcePtr< T >  ptr 
)

Definition at line 351 of file ResourceCache.inl.

◆ deallocate()

template<typename T >
void Divide::ResourcePool< T >::deallocate ( Handle< T > &  handle)

Definition at line 266 of file ResourceCache.inl.

◆ deallocateInternal() [1/3]

void Divide::ResourcePool< ShaderProgram >::deallocateInternal ( ResourcePtr< ShaderProgram ptr)
inline

Definition at line 254 of file ResourceCache.inl.

◆ deallocateInternal() [2/3]

template<typename T >
void Divide::ResourcePool< T >::deallocateInternal ( ResourcePtr< T >  ptr)

Definition at line 236 of file ResourceCache.inl.

◆ deallocateInternal() [3/3]

void Divide::ResourcePool< Texture >::deallocateInternal ( ResourcePtr< Texture ptr)
inline

Definition at line 242 of file ResourceCache.inl.

◆ get()

template<typename T >
ResourcePtr< T > Divide::ResourcePool< T >::get ( Handle< T >  handle)

Definition at line 178 of file ResourceCache.inl.

◆ printResources()

template<typename T >
void Divide::ResourcePool< T >::printResources ( bool  error)
finalvirtual

Implements Divide::ResourcePoolBase.

Definition at line 140 of file ResourceCache.inl.

◆ processDeletionQueue()

template<typename T >
void Divide::ResourcePool< T >::processDeletionQueue
overridevirtual

Implements Divide::ResourcePoolBase.

Definition at line 130 of file ResourceCache.inl.

◆ queueDeletion()

template<typename T >
void Divide::ResourcePool< T >::queueDeletion ( Handle< T > &  handle)

Definition at line 120 of file ResourceCache.inl.

◆ resize()

template<typename T >
void Divide::ResourcePool< T >::resize ( size_t  size)

Definition at line 197 of file ResourceCache.inl.

◆ retrieveHandleLocked()

template<typename T >
Handle< T > Divide::ResourcePool< T >::retrieveHandleLocked ( const size_t  descriptorHash)

Definition at line 326 of file ResourceCache.inl.

Member Data Documentation

◆ _deletionQueue

template<typename T >
moodycamel::ConcurrentQueue<Handle<T> > Divide::ResourcePool< T >::_deletionQueue
private

Definition at line 98 of file ResourceCache.inl.

◆ _freeList

template<typename T >
eastl::fixed_vector<std::pair<bool, U8>, ResourcePoolSize, true> Divide::ResourcePool< T >::_freeList

Definition at line 91 of file ResourceCache.inl.

◆ _lock

template<typename T >
SharedMutex Divide::ResourcePool< T >::_lock

Definition at line 90 of file ResourceCache.inl.

◆ _resPool

template<typename T >
eastl::fixed_vector<Entry, ResourcePoolSize, true> Divide::ResourcePool< T >::_resPool

Definition at line 92 of file ResourceCache.inl.

◆ ResourcePoolSize

template<typename T >
constexpr size_t Divide::ResourcePool< T >::ResourcePoolSize = 512u
staticconstexpr

Definition at line 69 of file ResourceCache.inl.


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