#pragma once #include "vulkan/basalt_device.h" // TODO: Support adding dependencies to the RenderPass // TODO: Support all attachment types (input, resolve, depth stencil, preserve) namespace basalt { class RenderPass { public: RenderPass(basalt::Device& device, VkRenderPass pass); ~RenderPass(); basalt::Device& device; VkRenderPass render_pass; }; class RenderPassBuilder { public: RenderPassBuilder(basalt::Device& device); RenderPassBuilder& add_subpass(VkPipelineBindPoint bind_point, const basalt::darray& attachments); RenderPassBuilder& add_attachment(VkAttachmentDescription desc); RenderPassBuilder& add_subpass_dependency(VkSubpassDependency dep); RenderPass build(void); VkRenderPassCreateInfo ci; basalt::darray attachments; basalt::darray> subpass_indicies; basalt::darray subpasses; basalt::darray dependencies; basalt::Device& device; }; }