You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
719 B
23 lines
719 B
#pragma once
|
|
|
|
#include <vulkan/vulkan_core.h>
|
|
#include <stdexcept>
|
|
#include "vertex.hpp"
|
|
#include "vk_mem_alloc.h"
|
|
|
|
class Buffer {
|
|
public:
|
|
explicit Buffer(VkDeviceSize size, VkBufferUsageFlags bufferUsage,
|
|
VmaMemoryUsage memoryUsage, VmaAllocationCreateFlags flags);
|
|
explicit Buffer(VkDeviceSize size, void* data, VkDeviceSize dataSize, VkBufferUsageFlags bufferUsage,
|
|
VmaMemoryUsage memoryUsage, VmaAllocationCreateFlags flags);
|
|
~Buffer();
|
|
VkBuffer handle = VK_NULL_HANDLE;
|
|
VmaAllocation allocation = VK_NULL_HANDLE;
|
|
VmaAllocationInfo allocationInfo {};
|
|
VkDeviceSize size;
|
|
Buffer(const Buffer& other) = delete;
|
|
Buffer& operator =(const Buffer& other) = delete;
|
|
private:
|
|
void copyTo(Buffer* dst);
|
|
}; |