Some TODO's to handle regarding exposing access to vulkan functionallity
38 lines
1.0 KiB
C++
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;
|
|
};
|
|
} |