#ifndef __VK_RENDERER_HPP_ #define __VK_RENDERER_HPP_ #include #include "vk-api.hpp" #include "vulkan-loader.hpp" class input_data; class window; class vkrenderer { public: vkrenderer(window& wnd, const input_data& inputs); ~vkrenderer(); void ui(); void compute(uint32_t width, uint32_t height, bool clear); void recreate_swapchain(); Buffer compute_shader_buffer; private: void handle_swapchain_result(VkResult function_result); vkapi api; uint64_t frame_index = 0; std::vector accumulation_images; std::vector command_buffers; std::vector compute_shader_sets; ComputePipeline compute_pipeline; std::vector submission_fences; std::vector execution_semaphores; std::vector acquire_semaphores; VkSurfaceKHR platform_surface; Swapchain swapchain; const uint32_t min_swapchain_image_count = 3; }; #endif // !__VK_RENDERER_HPP_