aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorladevieq <ladevie.quentin@gmail.com>2021-01-16 22:56:25 +0100
committerladevieq <ladevie.quentin@gmail.com>2021-01-16 22:56:25 +0100
commit1a0aba5a41c7af5715a4b6d1405af12944a55c87 (patch)
treed6129931c004e68f7b7f18e47ae972e600e0a433 /include
parent2a0326f893e0bd6874fdc3a938a9bdb2c6b4cc8f (diff)
Rendering loop
Diffstat (limited to 'include')
-rw-r--r--include/vk-renderer.hpp59
1 files changed, 30 insertions, 29 deletions
diff --git a/include/vk-renderer.hpp b/include/vk-renderer.hpp
index c2344c9..580ca72 100644
--- a/include/vk-renderer.hpp
+++ b/include/vk-renderer.hpp
@@ -32,9 +32,9 @@ struct input_data {
class vkrenderer {
public:
- vkrenderer(window& wnd);
+ vkrenderer(window& wnd, const input_data& inputs);
- void compute(const input_data& inputs, size_t width, size_t height);
+ void compute(size_t width, size_t height);
private:
void create_instance();
@@ -51,11 +51,11 @@ class vkrenderer {
void create_memory_allocator();
- void create_command_buffer();
+ void create_command_buffers();
void create_descriptor_set();
- void create_fence();
+ void create_fences();
void create_semaphores();
@@ -63,39 +63,40 @@ class vkrenderer {
void select_compute_queue();
- void fill_descriptor_set(const input_data& data);
+ void update_sets(const input_data& data);
- uint32_t compute_queue_index;
+ uint32_t compute_queue_index;
+ uint64_t frame_index = 0;
- VkInstance instance;
- VkPhysicalDevice physical_device;
- VkDevice device;
- VkQueue compute_queue;
+ VkInstance instance;
+ VkPhysicalDevice physical_device;
+ VkDevice device;
+ VkQueue compute_queue;
- VmaAllocator allocator;
- VkBuffer compute_shader_buffer;
+ VmaAllocator allocator;
+ VkBuffer compute_shader_buffer;
- VkCommandPool command_pool;
- VkCommandBuffer command_buffer;
+ VkCommandPool command_pool;
+ std::vector<VkCommandBuffer> command_buffers;
- VkDescriptorPool descriptor_pool;
- VkDescriptorSet compute_shader_set;
+ VkDescriptorPool descriptor_pool;
+ std::vector<VkDescriptorSet> compute_shader_sets;
- VkDescriptorSetLayout compute_shader_layout;
- VkPipelineLayout compute_pipeline_layout;
- VkPipeline compute_pipeline;
+ VkDescriptorSetLayout compute_shader_layout;
+ VkPipelineLayout compute_pipeline_layout;
+ VkPipeline compute_pipeline;
- VkFence submission_fence;
- VkSemaphore execution_semaphore;
- VkSemaphore acquire_semaphore;
+ std::vector<VkFence> submission_fences;
+ std::vector<VkSemaphore> execution_semaphores;
+ std::vector<VkSemaphore> acquire_semaphores;
- VkSurfaceFormatKHR surface_format;
- VkSurfaceKHR platform_surface;
- VkSwapchainKHR swapchain;
- size_t swapchain_images_count = 3;
- std::vector<VkImage> swapchain_images;
- std::vector<VkImageView>swapchain_images_views;
- uint32_t current_image_index;
+ VkSurfaceFormatKHR surface_format;
+ VkSurfaceKHR platform_surface;
+ VkSwapchainKHR swapchain;
+ size_t swapchain_images_count = 3;
+ std::vector<VkImage> swapchain_images;
+ std::vector<VkImageView> swapchain_images_views;
+ uint32_t current_image_index;
struct input_data* mapped_data;
};