VkCV Framework  0.0.1
CV Vulkan framework
vkcv::BufferManager Class Reference
Collaboration diagram for vkcv::BufferManager:

Classes

struct  Buffer
 

Public Member Functions

 BufferManager (BufferManager &&other)=delete
 
 BufferManager (const BufferManager &other)=delete
 
BufferManageroperator= (BufferManager &&other)=delete
 
BufferManageroperator= (const BufferManager &other)=delete
 
BufferHandle createBuffer (BufferType type, size_t size, BufferMemoryType memoryType, bool supportIndirect)
 
vk::Buffer getBuffer (const BufferHandle &handle) const
 
size_t getBufferSize (const BufferHandle &handle) const
 
vk::DeviceMemory getDeviceMemory (const BufferHandle &handle) const
 
void fillBuffer (const BufferHandle &handle, const void *data, size_t size, size_t offset)
 
void * mapBuffer (const BufferHandle &handle, size_t offset, size_t size)
 
void unmapBuffer (const BufferHandle &handle)
 
void recordBufferMemoryBarrier (const BufferHandle &handle, vk::CommandBuffer cmdBuffer)
 

Private Member Functions

void init ()
 
void destroyBufferById (uint64_t id)
 

Private Attributes

Corem_core
 
std::vector< Bufferm_buffers
 
BufferHandle m_stagingBuffer
 

Friends

class Core
 

Detailed Description

Member Function Documentation

◆ createBuffer()

BufferHandle vkcv::BufferManager::createBuffer ( BufferType  type,
size_t  size,
BufferMemoryType  memoryType,
bool  supportIndirect 
)

Creates and allocates a new buffer and returns its unique buffer handle.

Parameters
typeType of buffer
sizeSize of buffer in bytes
memoryTypeType of buffers memory
Returns
New buffer handle

◆ destroyBufferById()

void vkcv::BufferManager::destroyBufferById ( uint64_t  id)
private

Destroys and deallocates buffer represented by a given buffer handle id.

Parameters
idBuffer handle id

◆ fillBuffer()

void vkcv::BufferManager::fillBuffer ( const BufferHandle handle,
const void *  data,
size_t  size,
size_t  offset 
)

Fills a buffer represented by a given buffer handle with custom data.

Parameters
handleBuffer handle
dataPointer to data
sizeSize of data in bytes
offsetOffset to fill in data in bytes

References vkcv::copyFromStagingBuffer(), and vkcv::Handle::getId().

Here is the call graph for this function:

◆ getBuffer()

vk::Buffer vkcv::BufferManager::getBuffer ( const BufferHandle handle) const

Returns the Vulkan buffer handle of a buffer represented by a given buffer handle.

Parameters
handleBuffer handle
Returns
Vulkan buffer handle

References vkcv::Handle::getId().

Here is the call graph for this function:

◆ getBufferSize()

size_t vkcv::BufferManager::getBufferSize ( const BufferHandle handle) const

Returns the size of a buffer represented by a given buffer handle.

Parameters
handleBuffer handle
Returns
Size of the buffer

References vkcv::Handle::getId().

Here is the call graph for this function:

◆ getDeviceMemory()

vk::DeviceMemory vkcv::BufferManager::getDeviceMemory ( const BufferHandle handle) const

Returns the Vulkan device memory handle of a buffer represented by a given buffer handle id.

Parameters
handleBuffer handle
Returns
Vulkan device memory handle

References vkcv::Handle::getId().

Here is the call graph for this function:

◆ mapBuffer()

void * vkcv::BufferManager::mapBuffer ( const BufferHandle handle,
size_t  offset,
size_t  size 
)

Maps memory to a buffer represented by a given buffer handle and returns it.

Parameters
handleBuffer handle
offsetOffset of mapping in bytes
sizeSize of mapping in bytes
Returns
Pointer to mapped memory

References vkcv::Handle::getId().

Here is the call graph for this function:

◆ unmapBuffer()

void vkcv::BufferManager::unmapBuffer ( const BufferHandle handle)

Unmaps memory from a buffer represented by a given buffer handle.

Parameters
handleBuffer handle

References vkcv::Handle::getId().

Here is the call graph for this function:

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