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)
 
void readBuffer (const BufferHandle &handle, vk::CommandBuffer cmdBuffer, void *data)
 

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().

Referenced by readBuffer().

Here is the call graph for this function:
Here is the caller 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:

◆ readBuffer()

void vkcv::BufferManager::readBuffer ( const BufferHandle handle,
vk::CommandBuffer  cmdBuffer,
void *  data 
)

Reads buffer data from GPU for a given buffer handle and writes it to data pointer. Uses cmdBuffer to create neccessary memory barriers.

Parameters
handleBuffer handle to read
cmdBuffercommandbuffer to execute memory barriers
datadata pointer to which result will be written

References getBufferSize(), and 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: