3#include <vulkan/vulkan.hpp>
9 vk::SampleCountFlagBits
samples { vk::SampleCountFlagBits::e1 };
10 vk::AttachmentLoadOp
load_op { vk::AttachmentLoadOp::eClear };
11 vk::AttachmentStoreOp
store_op { vk::AttachmentStoreOp::eStore };
19 vk::PipelineBindPoint
bind_point { vk::PipelineBindPoint::eGraphics };
31 vk::PipelineStageFlags
src_stage_mask { vk::PipelineStageFlagBits::eColorAttachmentOutput };
32 vk::PipelineStageFlags
dst_stage_mask { vk::PipelineStageFlagBits::eColorAttachmentOutput };
59 bool create(vk::Device device, vk::Format color_format);
73 void cleanup(vk::Device device);
vk::RenderPass get() const
Get the underlying Vulkan Render Pass handle.
const std::vector< AttachmentDescription > & get_attachments() const
Get the attachment descriptions used in the render pass.
bool create(vk::Device device, vk::Format color_format)
Create a simple render pass with a single color attachment.
vk::RenderPass m_render_pass
static RenderPassCreateInfo create_default_color_depth(vk::Format color_format, vk::Format depth_format)
static RenderPassCreateInfo create_offscreen_color(vk::Format color_format, vk::ImageLayout final_layout=vk::ImageLayout::eShaderReadOnlyOptimal)
static RenderPassCreateInfo create_default_color_only(vk::Format color_format)
void cleanup(vk::Device device)
Clean up the render pass resources.
std::vector< AttachmentDescription > m_attachments
A wrapper class for Vulkan Render Pass.
vk::SampleCountFlagBits samples
vk::AttachmentStoreOp store_op
vk::AttachmentLoadOp stencil_load_op
vk::ImageLayout final_layout
vk::ImageLayout initial_layout
vk::AttachmentLoadOp load_op
vk::AttachmentStoreOp stencil_store_op
std::vector< AttachmentDescription > attachments
std::vector< SubpassDependency > dependencies
std::vector< SubpassDescription > subpasses
vk::AccessFlags src_access_mask
vk::PipelineStageFlags src_stage_mask
vk::PipelineStageFlags dst_stage_mask
vk::AccessFlags dst_access_mask
std::vector< uint32_t > preserve_attachments
std::vector< vk::AttachmentReference > input_attachments
std::vector< vk::AttachmentReference > resolve_attachments
std::optional< vk::AttachmentReference > depth_stencil_attachment
std::vector< vk::AttachmentReference > color_attachments
vk::PipelineBindPoint bind_point