20 , m_Buffer(VK_NULL_HANDLE)
21 , m_BufferMemory(VK_NULL_HANDLE)
23 , m_MappedMem(
nullptr)
39 const VkDeviceSize& t_Size,
40 const VkBufferUsageFlags& t_Usage,
41 const VkMemoryPropertyFlags& t_Properties,
42 const void* t_Data =
nullptr 50 bool operator==(
const Buffer& other)
const;
51 bool operator!=(
const Buffer& other)
const;
53 FORCEINLINE
const VkBuffer&
GetVkBuffer()
const {
return m_Buffer; }
57 FORCEINLINE
const VkDeviceSize&
GetSize()
const {
return m_Size; }
59 FORCEINLINE VkDescriptorBufferInfo&
GetDescriptor() {
return m_Descriptor; }
68 static void CopyBuffer(
Buffer* t_SrcBuffer,
Buffer* t_DstBuffer, VkDeviceSize t_Size);
81 bool IsUsed()
const {
return m_BufferMemory != VK_NULL_HANDLE && m_Buffer != VK_NULL_HANDLE && m_Size; }
88 VkResult MapMemory(VkDeviceSize t_Size = VK_WHOLE_SIZE, VkDeviceSize t_Offset = 0);
105 const VkDeviceSize& t_size,
106 const VkBufferUsageFlags& t_Usage,
107 const VkMemoryPropertyFlags& t_Properties,
109 const void* t_Data =
nullptr);
117 void Flush(VkDeviceSize t_size, VkDeviceSize t_offset);
119 void* m_MappedMem =
nullptr;
136 VkDeviceSize m_Offset = 0;
FORCEINLINE const VkDeviceSize & GetSize() const
Definition: Buffer.h:57
VkDescriptorBufferInfo m_Descriptor
The descriptor stores info about the offset, buffer, and; size of this.
Definition: Buffer.h:133
VkDeviceMemory m_BufferMemory
Pointer to the physical device memory for this buffer.
Definition: Buffer.h:130
void CreateBuffer(VkDevice t_Device, VkPhysicalDevice t_PhysicalDevice, VkDeviceSize t_Size, VkBufferUsageFlags t_Usage, VkMemoryPropertyFlags t_Properties, VkBuffer &t_Buffer, VkDeviceMemory &t_BuffMemory)
Definition: GraphicsHelpers.cpp:30
FORCEINLINE const VkDeviceMemory & GetVkDeviceMemory() const
Definition: Buffer.h:55
VkDeviceSize m_Size
The size of this buffer in bytes.
Definition: Buffer.h:124
FORCEINLINE VkDescriptorBufferInfo & GetDescriptor()
Definition: Buffer.h:59
bool IsUsed() const
Check if this buffer's Vulkan assets are used.
Definition: Buffer.h:81
VkBuffer m_Buffer
Vulkan logical buffer object.
Definition: Buffer.h:127
A Buffer represents a Vulkan buffer with a size, buffer pointer, and buffer memory.
Definition: Buffer.h:11
FORCEINLINE const VkBuffer & GetVkBuffer() const
Definition: Buffer.h:53
Buffer()
Default Ctor for a buffer.
Definition: Buffer.h:18