Created render_pass object

Some TODO's to handle regarding exposing access to vulkan functionallity
This commit is contained in:
2025-07-07 22:54:59 +10:00
parent 0598a89d0c
commit 4d797e1170
2 changed files with 107 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
#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;
};
}