From 4ae9a520d97dcaf69f4a0cd044a4fc3fe689924d Mon Sep 17 00:00:00 2001 From: ladevieq Date: Mon, 7 Feb 2022 21:53:14 +0100 Subject: Compute shader render pass api --- include/vk-renderer.hpp | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) (limited to 'include/vk-renderer.hpp') diff --git a/include/vk-renderer.hpp b/include/vk-renderer.hpp index 2ec9ef8..2666b64 100644 --- a/include/vk-renderer.hpp +++ b/include/vk-renderer.hpp @@ -6,9 +6,17 @@ #include "vk-api.hpp" #include "vulkan-loader.hpp" +#include "compute-renderpass.hpp" + class scene; class window; +class Texture { + public: + + image device_image; +}; + class vkrenderer { public: vkrenderer(window& wnd); @@ -17,8 +25,6 @@ class vkrenderer { void begin_frame(); - void reset_accumulation(); - void ui(); void compute(uint32_t width, uint32_t height); @@ -29,15 +35,15 @@ class vkrenderer { void update_image(image img, void* data, size_t size); + Texture* create_2d_texture(size_t width, size_t height); + + void new_renderpass(Renderpass* renderpass); + + void render(); + vkapi api; - VkDeviceAddress scene_buffer_addr; - VkDeviceAddress indices_buffer_addr; - VkDeviceAddress positions_buffer_addr; - VkDeviceAddress normals_buffer_addr; - VkDeviceAddress uvs_buffer_addr; - VkDeviceAddress bvh_buffer_addr; - VkDeviceAddress materials_buffer_addr; + std::vector renderpasses; private: @@ -48,14 +54,11 @@ class vkrenderer { uint32_t virtual_frame_index = 0; uint32_t swapchain_image_index = 0; - std::vector accumulation_images; sampler ui_texture_sampler; image ui_texture; std::vector command_buffers; - pipeline compute_pipeline; - buffer staging_buffer; -- cgit v1.3