diff options
| author | ladevieq <ladevie.quentin@gmail.com> | 2021-01-19 19:54:51 +0100 |
|---|---|---|
| committer | ladevieq <ladevie.quentin@gmail.com> | 2021-01-19 19:54:51 +0100 |
| commit | 293ba47eeb804e9cb0f392c0411fcce56c37bfc9 (patch) | |
| tree | e6391ccc4233f375c3e811f2cf38b381df472399 /include | |
| parent | aa96b2c7b6b5675871f8432dd71af6a6d79c65d2 (diff) | |
Handle window close on windows & free vulkan ressources
Diffstat (limited to 'include')
| -rw-r--r-- | include/vk-renderer.hpp | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/include/vk-renderer.hpp b/include/vk-renderer.hpp index aa51383..5f70718 100644 --- a/include/vk-renderer.hpp +++ b/include/vk-renderer.hpp @@ -14,6 +14,8 @@ class vkrenderer { public: vkrenderer(window& wnd, const input_data& inputs); + ~vkrenderer(); + void compute(); void recreate_swapchain(); @@ -37,7 +39,7 @@ class vkrenderer { void create_command_buffers(); - void create_descriptor_set(); + void create_descriptor_sets(); void create_fences(); @@ -45,8 +47,32 @@ class vkrenderer { void create_input_buffer(const input_data& inputs); + void destroy_instance(); + + void destroy_debugger(); + + void destroy_surface(); + + void destroy_device(); + + void destroy_swapchain(); + void destroy_swapchain_images(); + void destroy_pipeline(); + + void destroy_command_buffers(); + + void destroy_allocator(); + + void destroy_descriptor_sets(); + + void destroy_fences(); + + void destroy_semaphores(); + + void destroy_input_buffer(); + void select_physical_device(); void select_compute_queue(); @@ -61,11 +87,15 @@ class vkrenderer { uint64_t frame_index = 0; VkInstance instance; + + VkDebugUtilsMessengerEXT debugMessenger; + VkPhysicalDevice physical_device; VkDevice device; VkQueue compute_queue; VmaAllocator allocator; + VmaAllocation allocation; VkBuffer compute_shader_buffer; VkCommandPool command_pool; @@ -74,6 +104,7 @@ class vkrenderer { VkDescriptorPool descriptor_pool; std::vector<VkDescriptorSet> compute_shader_sets; + VkShaderModule compute_shader_module; VkDescriptorSetLayout compute_shader_layout; VkPipelineLayout compute_pipeline_layout; VkPipeline compute_pipeline; |
