3#include "spark/render/RenderPass.h"
4#include "spark/render/Resource.h"
5#include "spark/render/vk/Export.h"
6#include "spark/render/vk/Helpers.h"
7#include "spark/render/vk/VulkanFrameBuffer.h"
8#include "spark/render/vk/VulkanRenderPipeline.h"
9#include "spark/render/vk/VulkanInputAttachmentMapping.h"
13SPARK_FWD_DECLARE_VK_HANDLE(VkRenderPass)
15namespace spark::render::vk
17 class VulkanDescriptorSet;
21 SPARK_DISABLE_MSVC_WARNING(4250)
38 std::span<RenderTarget> render_targets,
39 unsigned command_buffers = 1,
40 MultiSamplingLevel samples = MultiSamplingLevel::X1,
41 std::span<VulkanInputAttachmentMapping> input_attachments = {});
53 const std::string& name,
54 std::span<RenderTarget> render_targets,
55 unsigned command_buffers = 1,
56 MultiSamplingLevel samples = MultiSamplingLevel::X1,
57 std::span<VulkanInputAttachmentMapping> input_attachments = {});
70 [[nodiscard]]
const VulkanDevice& device()
const noexcept;
73 void begin(
unsigned buffer)
override;
76 void end()
const override;
82 [[nodiscard]]
const VulkanFrameBuffer& frameBuffer(
unsigned buffer)
const override;
85 [[nodiscard]] std::vector<const VulkanFrameBuffer*> frameBuffers()
const noexcept override;
91 [[nodiscard]] std::vector<const VulkanRenderPipeline*> pipelines()
const noexcept override;
94 [[nodiscard]]
const RenderTarget& renderTarget(
unsigned location)
const override;
97 [[nodiscard]] std::span<const RenderTarget> renderTargets()
const noexcept override;
100 [[nodiscard]]
bool hasPresentRenderTarget()
const noexcept override;
103 [[nodiscard]] MultiSamplingLevel multiSamplingLevel()
const noexcept override;
106 [[nodiscard]] std::span<const VulkanInputAttachmentMapping> inputAttachments()
const noexcept override;
113 std::unique_ptr<Impl> m_impl;
A vector with two components.
Definition Vector2.h:13
Represents a render pass.
Definition RenderPass.h:114
Implements a IRenderTarget.
Definition RenderTarget.h:201
Vulkan implementation of IDescriptorSet.
Definition VulkanDescriptorSet.h:24
Vulkan implementation of IGraphicsDevice.
Definition VulkanDevice.h:25
Vulkan implementation of IFrameBuffer.
Definition VulkanFrameBuffer.h:21
Vulkan implementation of IRenderPass.
Definition VulkanRenderPass.h:27
Vulkan implementation of IRenderPipeline.
Definition VulkanRenderPipeline.h:25
Definition VulkanRenderPass.cpp:19