From 6271f5ce797bf12be64c710b66b1b9e93a239829 Mon Sep 17 00:00:00 2001 From: Chuyan Zhang Date: Thu, 10 Oct 2024 18:51:05 -0700 Subject: move to new resource abstraction --- src/vulkan_helper.h | 118 ---------------------------------------------------- 1 file changed, 118 deletions(-) delete mode 100644 src/vulkan_helper.h (limited to 'src/vulkan_helper.h') diff --git a/src/vulkan_helper.h b/src/vulkan_helper.h deleted file mode 100644 index 04fcead..0000000 --- a/src/vulkan_helper.h +++ /dev/null @@ -1,118 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include - -#include -#include -#include - -#define CHECK_VULKAN(result) \ - do { \ - VkResult res = result; \ - if (res != VK_SUCCESS) { \ - spdlog::error("Vulkan error: {}", string_VkResult(res)); \ - abort(); \ - } \ - } while (0) - -namespace iris { - -struct Buffer_t { - VkBuffer buffer; - VkDevice device; - VmaAllocator allocator; - VmaAllocation allocation; - VkBufferUsageFlags flags; - VkDeviceSize size; - void *mapped_data = nullptr; - - void* map(); - void unmap(); - void release(); - ~Buffer_t() { release(); } -}; - -typedef std::shared_ptr Buffer; - -struct Texture2D_t { - VkImage image; - VkDevice device; - VmaAllocator allocator; - VmaAllocation allocation; - VkImageView image_view; - VkImageLayout layout; - - VkImageUsageFlags flags; - VkExtent2D extent; - - void release(); - ~Texture2D_t() { release(); } -}; - -typedef std::shared_ptr Texture2D; - -// This is a really brute-force implementation, -// every command pool contains only 1 command buffer -struct CommandBuffer { - VkDevice device; - VkCommandPool pool; - VkCommandBuffer buffer; - VkFence fence; - VkQueue queue; - - CommandBuffer(VkDevice device, uint32_t queue_family_index, VkQueue queue); - void release(); - void begin(VkCommandBufferUsageFlags flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT); - void submit_sync(); - ~CommandBuffer() { release(); } -}; - -struct Device { - VkInstance instance; - VkPhysicalDevice physical_device; - VkDevice device; - uint32_t main_queue_family_index; - VkQueue graphics_queue; - VmaAllocator allocator; -#ifdef USE_VULKAN_VALIDATION_LAYERS - VkDebugReportCallbackEXT debugReportCallback; - VkDebugUtilsMessengerEXT debugUtilsMessenger; -#endif - - Device() = delete; - Device( - std::vector layers, - std::vector instance_extensions); - void destroy(); - - Buffer create_buffer( - VkDeviceSize size, - VkBufferUsageFlags usage, - VmaAllocationCreateInfo create_info = { - .usage = VMA_MEMORY_USAGE_AUTO, - }); - - Texture2D create_texture( - VkExtent2D extent, - VkFormat format, - VkImageUsageFlags usage, - VmaAllocationCreateInfo create_info = { - .usage = VMA_MEMORY_USAGE_AUTO, - }); - - Texture2D create_texture_from_image( - const char* filename, - VkFormat format, - VkImageUsageFlags usage, - VmaAllocationCreateInfo create_info = { - .usage = VMA_MEMORY_USAGE_AUTO, - }); - - CommandBuffer create_command_buffer(); -}; - -} // namespace iris \ No newline at end of file -- cgit v1.2.3-70-g09d2