aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorladevieq <ladevie.quentin@gmail.com>2021-02-19 23:23:41 +0100
committerladevieq <ladevie.quentin@gmail.com>2021-02-19 23:23:41 +0100
commit45783d96ec6f84893c85789ff5e5e2243e7f3db9 (patch)
tree28d10972594a325d3cdd9171b3533bc921dd2fba /include
parent14a79645579d6f4a9e541915017976619f24ecfb (diff)
Attempt at rendering imgui content
Diffstat (limited to 'include')
-rw-r--r--include/vk-api.hpp10
-rw-r--r--include/vk-renderer.hpp13
2 files changed, 20 insertions, 3 deletions
diff --git a/include/vk-api.hpp b/include/vk-api.hpp
index 999b59e..4353064 100644
--- a/include/vk-api.hpp
+++ b/include/vk-api.hpp
@@ -69,12 +69,18 @@ class vkapi {
std::vector<VkCommandBuffer> create_command_buffers(size_t command_buffers_count);
void destroy_command_buffers(std::vector<VkCommandBuffer> &command_buffers);
- VkRenderPass create_render_pass(std::vector<VkFormat>& attachments_format);
+ VkRenderPass create_render_pass(std::vector<VkFormat>& color_attachments_format);
+ VkRenderPass create_render_pass(std::vector<VkFormat>& color_attachments_format, VkFormat depth_attachement_format);
void destroy_renderpass(VkRenderPass render_pass);
+ VkFramebuffer create_framebuffer(VkRenderPass render_pass, std::vector<Image>& images, VkExtent2D size);
+ std::vector<VkFramebuffer> create_framebuffers(VkRenderPass render_pass, std::vector<Image>& images, VkExtent2D size, uint32_t framebuffer_count);
+ void destroy_framebuffer(VkFramebuffer framebuffer);
+ void destroy_framebuffers(std::vector<VkFramebuffer>& framebuffers);
+
Pipeline create_compute_pipeline(const char* shader_name, std::vector<VkDescriptorSetLayoutBinding> bindings);
- Pipeline create_graphics_pipeline(const char* shader_name, VkShaderStageFlagBits shader_stages, std::vector<VkDescriptorSetLayoutBinding> bindings, VkRenderPass render_pass, uint32_t subpass);
+ Pipeline create_graphics_pipeline(const char* shader_name, std::vector<VkDescriptorSetLayoutBinding> bindings, VkShaderStageFlagBits shader_stages, VkRenderPass render_pass);
void destroy_pipeline(Pipeline &pipeline);
diff --git a/include/vk-renderer.hpp b/include/vk-renderer.hpp
index acbf0c9..a0edf39 100644
--- a/include/vk-renderer.hpp
+++ b/include/vk-renderer.hpp
@@ -15,10 +15,14 @@ class vkrenderer {
~vkrenderer();
+ void begin_frame();
+
void ui();
void compute(uint32_t width, uint32_t height, bool clear);
+ void finish_frame();
+
void recreate_swapchain();
Buffer compute_shader_buffer;
@@ -30,15 +34,22 @@ class vkrenderer {
vkapi api;
uint64_t frame_index = 0;
+ uint32_t swapchain_image_index = 0;
std::vector<Image> accumulation_images;
std::vector<VkCommandBuffer> command_buffers;
std::vector<VkDescriptorSet> compute_shader_sets;
-
Pipeline compute_pipeline;
+ std::vector<Buffer> ui_vertex_buffers;
+ std::vector<Buffer> ui_index_buffers;
+ std::vector<VkDescriptorSet> ui_sets;
+ Pipeline ui_pipeline;
+ VkRenderPass render_pass;
+ std::vector<VkFramebuffer> framebuffers;
+
std::vector<VkFence> submission_fences;
std::vector<VkSemaphore> execution_semaphores;
std::vector<VkSemaphore> acquire_semaphores;