#pragma once #include "vulkan/basalt_pipeline.h" namespace basalt { class Buffer { public: Buffer(basalt::Device& device, u64 num_bytes, VkBufferUsageFlagBits usage_flags, VkMemoryPropertyFlags props= VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, VkSharingMode sharing_mode = VK_SHARING_MODE_EXCLUSIVE); ~Buffer(); void* map (); void unmap (); void* mapped_ptr; VkBuffer buffer; VkDeviceMemory memory; basalt::Device* device; size_t size = 0; }; }