vsg  1.1.0
VulkanSceneGraph library
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
vsg::MemorySlots Class Reference

#include <MemorySlots.h>

Public Types

using OptionalOffset = std::pair< bool, size_t >

Public Member Functions

 MemorySlots (size_t availableMemorySize, int in_memoryTracking=MEMORY_TRACKING_DEFAULT)
OptionalOffset reserve (size_t size, size_t alignment)
bool release (size_t offset, size_t size)
bool full () const
bool empty () const
size_t maximumAvailableSpace () const
size_t totalAvailableSize () const
size_t totalReservedSize () const
size_t totalMemorySize () const
void report (std::ostream &out) const
bool check () const

Public Attributes

int memoryTracking = MEMORY_TRACKING_DEFAULT

Protected Member Functions

void insertAvailableSlot (size_t offset, size_t size)
void removeAvailableSlot (size_t offset, size_t size)

Protected Attributes

std::multimap< size_t, size_t > _availableMemory
std::map< size_t, size_t > _offsetSizes
std::map< size_t, size_t > _reservedMemory
size_t _totalMemorySize

Detailed Description

class used internally by vsg::Allocator, vsg::DeviceMemory and vsg::Buffer to manage suballocation within a block of CPU or GPU memory.

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