From 34c2b9b450c0f5c695a699ba4ae3f93470057ccb Mon Sep 17 00:00:00 2001 From: ladevieq Date: Thu, 28 Jan 2021 23:54:50 +0100 Subject: Convert renderer ressources creation to api calls --- include/vk-api.hpp | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) (limited to 'include/vk-api.hpp') diff --git a/include/vk-api.hpp b/include/vk-api.hpp index 690b91f..52ebef6 100644 --- a/include/vk-api.hpp +++ b/include/vk-api.hpp @@ -1,6 +1,8 @@ #ifndef __VK_API_HPP_ #define __VK_API_HPP_ +#include + #include "vk-context.hpp" struct Buffer { @@ -9,16 +11,47 @@ struct Buffer { void* mapped_ptr; }; +struct ComputePipeline { + VkShaderModule shader_module; + VkDescriptorSetLayout descriptor_set_layout; + VkPipelineLayout layout; + VkPipeline vkpipeline; +}; + class vkapi { public: - vkapi() = default; + vkapi(); + ~vkapi(); Buffer create_buffer(size_t data_size, VkBufferUsageFlags buffer_usage, VmaMemoryUsage mem_usage); void destroy_buffer(Buffer& buffer); + VkFence create_fence(); + void destroy_fence(VkFence fence); + std::vector create_fences(size_t fences_count); + void destroy_fences(std::vector fences); + + VkSemaphore create_semaphore(); + void destroy_semaphore(VkSemaphore semaphore); + std::vector create_semaphores(size_t semaphores_count); + void destroy_semaphores(std::vector &semaphores); + + std::vector create_command_buffers(size_t command_buffers_count); + void destroy_command_buffers(std::vector command_buffers); + + ComputePipeline create_compute_pipeline(const char* shader_path, std::vector bindings); + void destroy_compute_pipeline(ComputePipeline &pipeline); + + std::vector create_descriptor_sets(VkDescriptorSetLayout descriptor_sets_layout, size_t descriptor_sets_count); + void destroy_descriptor_sets(std::vector descriptor_sets); + + // private: - vkcontext context; + vkcontext context; + + VkCommandPool command_pool; + VkDescriptorPool descriptor_pool; }; -- cgit v1.3