diff options
| author | ladevieq <ladevie.quentin@gmail.com> | 2022-02-07 21:53:14 +0100 |
|---|---|---|
| committer | ladevieq <ladevie.quentin@gmail.com> | 2022-02-07 21:53:14 +0100 |
| commit | 4ae9a520d97dcaf69f4a0cd044a4fc3fe689924d (patch) | |
| tree | b2bdcef4ff0bda3dca80b11da42c597ccc596a0b /include/vk-renderer.hpp | |
| parent | ab39ab82b4dc60e4a181140dc91ee046e5daa6ea (diff) | |
Compute shader render pass api
Diffstat (limited to 'include/vk-renderer.hpp')
| -rw-r--r-- | include/vk-renderer.hpp | 27 |
1 files changed, 15 insertions, 12 deletions
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<Renderpass*> renderpasses; private: @@ -48,14 +54,11 @@ class vkrenderer { uint32_t virtual_frame_index = 0; uint32_t swapchain_image_index = 0; - std::vector<image> accumulation_images; sampler ui_texture_sampler; image ui_texture; std::vector<VkCommandBuffer> command_buffers; - pipeline compute_pipeline; - buffer staging_buffer; |
