Lugdunum  0.1.0
Public Member Functions | Protected Attributes | Private Member Functions | List of all members
lug::Graphics::Vulkan::Render::BufferPool::BufferPool< subBufferPerChunk, subBufferSize > Class Template Reference

#include <BufferPool.hpp>

Inheritance diagram for lug::Graphics::Vulkan::Render::BufferPool::BufferPool< subBufferPerChunk, subBufferSize >:
[legend]
Collaboration diagram for lug::Graphics::Vulkan::Render::BufferPool::BufferPool< subBufferPerChunk, subBufferSize >:
[legend]

Public Member Functions

 BufferPool (Renderer &renderer, std::set< uint32_t > queueFamilyIndices)
 
 BufferPool (const BufferPool &)=delete
 
 BufferPool (BufferPool &&)=delete
 
BufferPooloperator= (const BufferPool &)=delete
 
BufferPooloperator= (BufferPool &&)=delete
 
 ~BufferPool ()=default
 
std::tuple< bool, const SubBuffer * > allocate (size_t hash, bool dirty)
 
void free (const SubBuffer *buffer)
 

Protected Attributes

Renderer_renderer
 
std::set< uint32_t > _queueFamilyIndices
 
std::list< Chunk< subBufferPerChunk, subBufferSize > > _chunks
 
std::map< size_t, SubBuffer * > _subBuffersInUse
 

Private Member Functions

SubBufferallocateNewBuffer ()
 

Detailed Description

template<size_t subBufferPerChunk, size_t subBufferSize>
class lug::Graphics::Vulkan::Render::BufferPool::BufferPool< subBufferPerChunk, subBufferSize >

Definition at line 20 of file BufferPool.hpp.

Constructor & Destructor Documentation

◆ BufferPool() [1/3]

template<size_t subBufferPerChunk, size_t subBufferSize>
BufferPool::BufferPool ( Renderer renderer,
std::set< uint32_t >  queueFamilyIndices 
)
inline

Definition at line 2 of file BufferPool.inl.

◆ BufferPool() [2/3]

template<size_t subBufferPerChunk, size_t subBufferSize>
lug::Graphics::Vulkan::Render::BufferPool::BufferPool< subBufferPerChunk, subBufferSize >::BufferPool ( const BufferPool< subBufferPerChunk, subBufferSize > &  )
delete

◆ BufferPool() [3/3]

template<size_t subBufferPerChunk, size_t subBufferSize>
lug::Graphics::Vulkan::Render::BufferPool::BufferPool< subBufferPerChunk, subBufferSize >::BufferPool ( BufferPool< subBufferPerChunk, subBufferSize > &&  )
delete

◆ ~BufferPool()

template<size_t subBufferPerChunk, size_t subBufferSize>
lug::Graphics::Vulkan::Render::BufferPool::BufferPool< subBufferPerChunk, subBufferSize >::~BufferPool ( )
default

Member Function Documentation

◆ operator=() [1/2]

template<size_t subBufferPerChunk, size_t subBufferSize>
BufferPool& lug::Graphics::Vulkan::Render::BufferPool::BufferPool< subBufferPerChunk, subBufferSize >::operator= ( const BufferPool< subBufferPerChunk, subBufferSize > &  )
delete

◆ operator=() [2/2]

template<size_t subBufferPerChunk, size_t subBufferSize>
BufferPool& lug::Graphics::Vulkan::Render::BufferPool::BufferPool< subBufferPerChunk, subBufferSize >::operator= ( BufferPool< subBufferPerChunk, subBufferSize > &&  )
delete

◆ allocate()

template<size_t subBufferPerChunk, size_t subBufferSize>
std::tuple< bool, const SubBuffer * > BufferPool::allocate ( size_t  hash,
bool  dirty 
)
inline

Definition at line 7 of file BufferPool.inl.

◆ free()

template<size_t subBufferPerChunk, size_t subBufferSize>
void BufferPool::free ( const SubBuffer buffer)
inline

Definition at line 27 of file BufferPool.inl.

◆ allocateNewBuffer()

template<size_t subBufferPerChunk, size_t subBufferSize>
SubBuffer * BufferPool::allocateNewBuffer ( )
inlineprivate

Definition at line 41 of file BufferPool.inl.

Member Data Documentation

◆ _renderer

template<size_t subBufferPerChunk, size_t subBufferSize>
Renderer& lug::Graphics::Vulkan::Render::BufferPool::BufferPool< subBufferPerChunk, subBufferSize >::_renderer
protected

Definition at line 39 of file BufferPool.hpp.

◆ _queueFamilyIndices

template<size_t subBufferPerChunk, size_t subBufferSize>
std::set<uint32_t> lug::Graphics::Vulkan::Render::BufferPool::BufferPool< subBufferPerChunk, subBufferSize >::_queueFamilyIndices
protected

Definition at line 40 of file BufferPool.hpp.

◆ _chunks

template<size_t subBufferPerChunk, size_t subBufferSize>
std::list<Chunk<subBufferPerChunk, subBufferSize> > lug::Graphics::Vulkan::Render::BufferPool::BufferPool< subBufferPerChunk, subBufferSize >::_chunks
protected

Definition at line 42 of file BufferPool.hpp.

◆ _subBuffersInUse

template<size_t subBufferPerChunk, size_t subBufferSize>
std::map<size_t, SubBuffer*> lug::Graphics::Vulkan::Render::BufferPool::BufferPool< subBufferPerChunk, subBufferSize >::_subBuffersInUse
protected

Definition at line 43 of file BufferPool.hpp.


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