From e4180902265c36744a770e932bb0a3f204d58b28 Mon Sep 17 00:00:00 2001 From: ladevieq Date: Wed, 27 Jan 2021 22:28:53 +0100 Subject: Convert buffer creation function to an api one --- src/vk-api.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/vk-api.cpp (limited to 'src/vk-api.cpp') diff --git a/src/vk-api.cpp b/src/vk-api.cpp new file mode 100644 index 0000000..a8897dd --- /dev/null +++ b/src/vk-api.cpp @@ -0,0 +1,30 @@ +#include +#include + +#include "vk-api.hpp" + +#define VKRESULT(result) assert(result == VK_SUCCESS); + + +Buffer vkapi::create_buffer(size_t data_size, VkBufferUsageFlags buffer_usage, VmaMemoryUsage mem_usage) { + Buffer buffer = {}; + + VkBufferCreateInfo buffer_info = { }; + buffer_info.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO; + buffer_info.size = data_size; + buffer_info.usage = buffer_usage; + + VmaAllocationCreateInfo alloc_create_info = {}; + alloc_create_info.usage = mem_usage; + + vmaCreateBuffer(context.allocator, &buffer_info, &alloc_create_info, &buffer.vkbuffer, &buffer.alloc, nullptr); + + vmaMapMemory(context.allocator, buffer.alloc, (void**) &buffer.mapped_ptr); + + return std::move(buffer); +} + +void vkapi::destroy_buffer(Buffer& buffer) { + vmaUnmapMemory(context.allocator, buffer.alloc); + vmaDestroyBuffer(context.allocator, buffer.vkbuffer, buffer.alloc); +} -- cgit v1.3