Newer
Older
ForwardPlusRenderer / include / RenderPass.h
#pragma once
#include <stdafx.h>
namespace fpr
{
struct RenderPassOptions
{
  std::vector<vk::AttachmentDescription> attachments;
  std::vector<vk::AttachmentReference>   color_attachment_refs;
  vk::AttachmentReference                depth_attachment_ref;
  std::vector<vk::SubpassDependency>     dependencies;
};

class Device;
class RenderPass
{
  vk::UniqueRenderPass m_render_pass;
public:
  vk::RenderPass& GetvkRenderPass() FPR_NOEXCEPT;

  static RenderPassOptions MakeDefaultRenderPass(vk::Format swapchain_format, vk::Format depth_format);
  static RenderPassOptions MakeDefaultDepthPass(vk::Format depth_format);

  RenderPass(const RenderPassOptions& options, fpr::Device* device);
  RenderPass(const RenderPass& other)  = delete;
  RenderPass(const RenderPass&& other) = delete;
  RenderPass operator=(const RenderPass& other) = delete;
  RenderPass operator=(const RenderPass&& other) = delete;
};
} // namespace fpr