VulkanEngine 0.1
Graphics engine using Vulkan
Loading...
Searching...
No Matches
VulkanEngine::Buffer Class Reference

Class which represents a single buffer using vk::Buffer. More...

#include <Buffer.h>

Inheritance diagram for VulkanEngine::Buffer:
VulkanEngine::StagedBufferDestination VulkanEngine::BufferBase VulkanEngine::SingleUsageCommandBuffer VulkanEngine::StagedBuffer< Buffer > VulkanEngine::UniformBuffer< T > VulkanEngine::Attribute VulkanEngine::IndexAttribute< T > VulkanEngine::VertexAttribute< T >

Public Member Functions

 Buffer (size_t _data_size, vk::BufferUsageFlags usage_flags, vk::MemoryPropertyFlags memory_property_flags, VmaMemoryUsage vma_memory_usage)
 
 ~Buffer ()
 Destructor.
 
const vk::Buffer getVkBuffer () const
 
virtual void insertTransferCommand (const vk::CommandBuffer &command_buffer, const vk::Buffer &source_buffer)
 
virtual size_t getStagingBufferSize () const
 
- Public Member Functions inherited from VulkanEngine::BufferBase
virtual void updateBuffer (const void *_data, size_t _data_size)
 

Protected Attributes

size_t data_size
 The size of the data.
 
- Protected Attributes inherited from VulkanEngine::BufferBase
VmaAllocation vma_allocation
 
- Protected Attributes inherited from VulkanEngine::SingleUsageCommandBuffer
vk::CommandBuffer single_use_command_buffer
 The single use command buffer.
 

Additional Inherited Members

- Protected Member Functions inherited from VulkanEngine::SingleUsageCommandBuffer
void beginSingleUsageCommandBuffer ()
 Creates and starts recording the command buffer.
 
void endSingleUsageCommandBuffer ()
 Stops recording and submits the command buffer.
 

Detailed Description

Class which represents a single buffer using vk::Buffer.

Constructor & Destructor Documentation

◆ Buffer()

VulkanEngine::Buffer::Buffer ( size_t  _data_size,
vk::BufferUsageFlags  usage_flags,
vk::MemoryPropertyFlags  memory_property_flags,
VmaMemoryUsage  vma_memory_usage 
)

Constructor. Creates the buffer given the parameters.

Parameters
_data_sizeThe total size of the data in the buffer.
usage_flagsvk::BufferUsageFlags for this buffer.
memory_property_flagsvk::MemoryPropertyFlags for this buffer.
vma_memory_usageVmaMemoryUsage flags to use when allocating.

Member Function Documentation

◆ getStagingBufferSize()

size_t VulkanEngine::Buffer::getStagingBufferSize ( ) const
virtual

Override to return the required data size of the staging buffer in order to transfer all data to this buffer.

Returns
The data size for the staging buffer.

Implements VulkanEngine::StagedBufferDestination.

◆ getVkBuffer()

const vk::Buffer VulkanEngine::Buffer::getVkBuffer ( ) const
Returns
The vk::Buffer instance of this Attribute.

◆ insertTransferCommand()

void VulkanEngine::Buffer::insertTransferCommand ( const vk::CommandBuffer &  command_buffer,
const vk::Buffer &  source_buffer 
)
virtual

Overriden to handle tranferring data from a StagedBuffer to this buffer.

Parameters
command_buffersThe command buffer to insert the command into.
source_bufferThe source vk::Buffer in the StagedBuffer.

Implements VulkanEngine::StagedBufferDestination.


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