vsg 1.1.3
VulkanSceneGraph library
|
#include <Allocator.h>
Classes | |
struct | MemoryBlock |
struct | MemoryBlocks |
Public Member Functions | |
Allocator (std::unique_ptr< Allocator > in_nestedAllocator={}) | |
virtual void * | allocate (std::size_t size, AllocatorAffinity allocatorAffinity=ALLOCATOR_AFFINITY_OBJECTS) |
allocate from the pool of memory blocks, or allocate from a new memory block | |
virtual bool | deallocate (void *ptr, std::size_t size) |
deallocate, returning data to pool. | |
virtual size_t | deleteEmptyMemoryBlocks () |
delete any MemoryBlock that are empty | |
virtual size_t | totalAvailableSize () const |
return the total available size of allocated MemoryBlocks | |
virtual size_t | totalReservedSize () const |
return the total reserved size of allocated MemoryBlocks | |
virtual size_t | totalMemorySize () const |
return the total memory size of allocated MemoryBlocks | |
virtual void | report (std::ostream &out) const |
report stats about blocks of memory allocated. | |
void | setMemoryTracking (int mt) |
set the MemoryTracking member of the vsg::Allocator and all the MemoryBlocks that it manages. | |
MemoryBlocks * | getMemoryBlocks (AllocatorAffinity allocatorAffinity) |
MemoryBlocks * | getOrCreateMemoryBlocks (AllocatorAffinity allocatorAffinity, const std::string &name, size_t blockSize) |
void | setBlockSize (AllocatorAffinity allocatorAffinity, size_t blockSize) |
Static Public Member Functions | |
static std::unique_ptr< Allocator > & | instance () |
Allocator singleton. | |
Public Attributes | |
AllocatorType | allocatorType = ALLOCATOR_TYPE_VSG_ALLOCATOR |
AllocatorType | memoryBlocksAllocatorType = ALLOCATOR_TYPE_NEW_DELETE |
int | memoryTracking = MEMORY_TRACKING_DEFAULT |
std::mutex | mutex |
double | allocationTime = 0.0 |
double | deallocationTime = 0.0 |
Protected Attributes | |
std::unique_ptr< Allocator > | nestedAllocator |
std::vector< std::unique_ptr< MemoryBlocks > > | allocatorMemoryBlocks |
extensible Allocator that handles allocation and deallocation of scene graph CPU memory,