3#include "spark/base/Macros.h"
4#include "spark/render/RenderPipeilne.h"
5#include "spark/render/vk/Export.h"
6#include "spark/render/vk/VulkanInputAssembler.h"
7#include "spark/render/vk/VulkanPipeline.h"
8#include "spark/render/vk/VulkanRasterizer.h"
10namespace spark::render::vk
12 class VulkanShaderProgram;
13 class VulkanPipelineLayout;
14 class VulkanRenderPass;
15 class VulkanDescriptorSet;
18 SPARK_DISABLE_MSVC_WARNING(4250)
38 std::shared_ptr<VulkanShaderProgram> shader_program,
39 std::shared_ptr<VulkanPipelineLayout> layout,
40 std::shared_ptr<VulkanInputAssembler> input_assembler,
41 std::shared_ptr<VulkanRasterizer> rasterizer,
42 bool enable_alpha_to_coverage =
false,
43 const std::string& name =
"");
52 [[nodiscard]] std::shared_ptr<const VulkanShaderProgram> program()
const noexcept override;
55 [[nodiscard]] std::shared_ptr<VulkanPipelineLayout> layout()
const noexcept override;
58 [[nodiscard]]
bool alphaToCoverage()
const noexcept override;
61 [[nodiscard]] std::shared_ptr<VulkanInputAssembler> inputAssembler()
const noexcept override;
64 [[nodiscard]] std::shared_ptr<VulkanRasterizer> rasterizer()
const noexcept override;
74 std::unique_ptr<Impl> m_impl;
Represents a graphics IPipeline.
Definition RenderPipeilne.h:57
Vulkan implementation of ICommandBuffer.
Definition VulkanCommandBuffer.h:29
Vulkan implementation of IDescriptorSet.
Definition VulkanDescriptorSet.h:24
Vulkan implementation of IPipelineLayout.
Definition VulkanPipelineLayout.h:22
Vulkan implementation of IPipeline.
Definition VulkanPipeline.h:20
Vulkan implementation of IRasterizer.
Definition VulkanRasterizer.h:12
Vulkan implementation of IRenderPass.
Definition VulkanRenderPass.h:27
Vulkan implementation of IRenderPipeline.
Definition VulkanRenderPipeline.h:25
Vulkan implementation of a ShaderProgram.
Definition VulkanShaderProgram.h:13
Definition VulkanRenderPipeline.cpp:21