Files
basalt/include/vulkan/basalt_render_pass.h
Riley King-Saunders 4d797e1170 Created render_pass object
Some TODO's to handle regarding exposing access to vulkan functionallity
2025-07-07 22:54:59 +10:00

38 lines
1.0 KiB
C++

#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<VkAttachmentReference>& attachments);
RenderPassBuilder& add_attachment(VkAttachmentDescription desc);
RenderPassBuilder& add_subpass_dependency(VkSubpassDependency dep);
RenderPass build(void);
VkRenderPassCreateInfo ci;
basalt::darray<VkAttachmentDescription> attachments;
basalt::darray<basalt::darray<VkAttachmentReference>> subpass_indicies;
basalt::darray<VkSubpassDescription> subpasses;
basalt::darray<VkSubpassDependency> dependencies;
basalt::Device& device;
};
}