A Buffer represents a Vulkan buffer with a size, buffer pointer, and buffer memory.
More...
#include <Buffer.h>
|
| | Buffer () |
| | Default Ctor for a buffer. More...
|
| |
| | Buffer (const Buffer &t_Other) |
| | copy constructor. More...
|
| |
| | Buffer (const VkDeviceSize &t_Size, const VkBufferUsageFlags &t_Usage, const VkMemoryPropertyFlags &t_Properties, const void *t_Data=nullptr) |
| | Construct a new Buffer object. More...
|
| |
| | ~Buffer () |
| | Destroy the Buffer object, frees Vk memory and destroys buffer. More...
|
| |
| bool | operator== (const Buffer &other) const |
| |
| bool | operator!= (const Buffer &other) const |
| |
| FORCEINLINE const VkBuffer & | GetVkBuffer () const |
| |
| FORCEINLINE const VkDeviceMemory & | GetVkDeviceMemory () const |
| |
| FORCEINLINE const VkDeviceSize & | GetSize () const |
| |
| FORCEINLINE VkDescriptorBufferInfo & | GetDescriptor () |
| |
| void | Release () |
| | Destroy the VK buffer object, frees vk memory. More...
|
| |
| bool | IsUsed () const |
| | Check if this buffer's Vulkan assets are used. More...
|
| |
| VkResult | MapMemory (VkDeviceSize t_Size=VK_WHOLE_SIZE, VkDeviceSize t_Offset=0) |
| | Map the memory of this buffer to the given data. More...
|
| |
| void | UnmapMemory () |
| | Unmap this buffers memory from the Vulkan device. More...
|
| |
| void | CreateBuffer (const VkDeviceSize &t_size, const VkBufferUsageFlags &t_Usage, const VkMemoryPropertyFlags &t_Properties, bool t_unmapBuffer, const void *t_Data=nullptr) |
| | Create a Buffer object. More...
|
| |
| void | Flush (VkDeviceSize t_size, VkDeviceSize t_offset) |
| | Flush memory range to device. More...
|
| |
|
| static void | CopyBuffer (Buffer *t_SrcBuffer, Buffer *t_DstBuffer, VkDeviceSize t_Size) |
| | Copy the contents of the source buffer to the destination buffer using a single command. More...
|
| |
A Buffer represents a Vulkan buffer with a size, buffer pointer, and buffer memory.
◆ Buffer() [1/3]
| Fling::Buffer::Buffer |
( |
| ) |
|
|
inline |
Default Ctor for a buffer.
Buffer is initialized to 0
◆ Buffer() [2/3]
| Fling::Buffer::Buffer |
( |
const Buffer & |
t_Other | ) |
|
◆ Buffer() [3/3]
| Fling::Buffer::Buffer |
( |
const VkDeviceSize & |
t_Size, |
|
|
const VkBufferUsageFlags & |
t_Usage, |
|
|
const VkMemoryPropertyFlags & |
t_Properties, |
|
|
const void * |
t_Data = nullptr |
|
) |
| |
Construct a new Buffer object.
- Parameters
-
| t_Size | Size of this buffer in bytes |
| t_Usage | Vk usage flags for this buffer |
| t_Properties | Vk props of this buffer, used to find the memory type |
| t_Data | Pointer to data that this buffer should map to, e.g. a staging buffer (Default = nullptr) |
◆ ~Buffer()
| Fling::Buffer::~Buffer |
( |
| ) |
|
Destroy the Buffer object, frees Vk memory and destroys buffer.
◆ CopyBuffer()
| void Fling::Buffer::CopyBuffer |
( |
Buffer * |
t_SrcBuffer, |
|
|
Buffer * |
t_DstBuffer, |
|
|
VkDeviceSize |
t_Size |
|
) |
| |
|
static |
Copy the contents of the source buffer to the destination buffer using a single command.
- Parameters
-
| t_SrcBuffer | Source buffer data |
| t_DstBuffer | Destination buffer data |
| t_Size | Size of the data to copy |
◆ CreateBuffer()
| void Fling::Buffer::CreateBuffer |
( |
const VkDeviceSize & |
t_size, |
|
|
const VkBufferUsageFlags & |
t_Usage, |
|
|
const VkMemoryPropertyFlags & |
t_Properties, |
|
|
bool |
t_unmapBuffer, |
|
|
const void * |
t_Data = nullptr |
|
) |
| |
Create a Buffer object.
- Parameters
-
| t_size | device size |
| t_Usage | buffer usage flag |
| t_Properties | memory properties |
| t_unmapBuffer | flag to unmap buffer |
| t_Data | data to map to buffer |
◆ Flush()
| void Fling::Buffer::Flush |
( |
VkDeviceSize |
t_size, |
|
|
VkDeviceSize |
t_offset |
|
) |
| |
Flush memory range to device.
- Parameters
-
| t_size | Size of the memory range to flush to |
| t_offset | offset from the beginning |
◆ GetDescriptor()
| FORCEINLINE VkDescriptorBufferInfo& Fling::Buffer::GetDescriptor |
( |
| ) |
|
|
inline |
◆ GetSize()
| FORCEINLINE const VkDeviceSize& Fling::Buffer::GetSize |
( |
| ) |
const |
|
inline |
◆ GetVkBuffer()
| FORCEINLINE const VkBuffer& Fling::Buffer::GetVkBuffer |
( |
| ) |
const |
|
inline |
◆ GetVkDeviceMemory()
| FORCEINLINE const VkDeviceMemory& Fling::Buffer::GetVkDeviceMemory |
( |
| ) |
const |
|
inline |
◆ IsUsed()
| bool Fling::Buffer::IsUsed |
( |
| ) |
const |
|
inline |
Check if this buffer's Vulkan assets are used.
- Returns
- true memory is not null and the size is greater than 0
◆ MapMemory()
| VkResult Fling::Buffer::MapMemory |
( |
VkDeviceSize |
t_Size = VK_WHOLE_SIZE, |
|
|
VkDeviceSize |
t_Offset = 0 |
|
) |
| |
Map the memory of this buffer to the given data.
- Parameters
-
| t_Data | Where to map this buffer's data to |
◆ operator!=()
| bool Fling::Buffer::operator!= |
( |
const Buffer & |
other | ) |
const |
◆ operator==()
| bool Fling::Buffer::operator== |
( |
const Buffer & |
other | ) |
const |
◆ Release()
| void Fling::Buffer::Release |
( |
| ) |
|
Destroy the VK buffer object, frees vk memory.
◆ UnmapMemory()
| void Fling::Buffer::UnmapMemory |
( |
| ) |
|
Unmap this buffers memory from the Vulkan device.
◆ m_Buffer
| VkBuffer Fling::Buffer::m_Buffer |
|
private |
Vulkan logical buffer object.
◆ m_BufferMemory
| VkDeviceMemory Fling::Buffer::m_BufferMemory |
|
private |
Pointer to the physical device memory for this buffer.
◆ m_Descriptor
| VkDescriptorBufferInfo Fling::Buffer::m_Descriptor |
|
private |
The descriptor stores info about the offset, buffer, and; size of this.
◆ m_MappedMem
| void* Fling::Buffer::m_MappedMem = nullptr |
◆ m_Offset
| VkDeviceSize Fling::Buffer::m_Offset = 0 |
|
private |
◆ m_Size
| VkDeviceSize Fling::Buffer::m_Size |
|
private |
The size of this buffer in bytes.
The documentation for this class was generated from the following files: