SPARK  0.1.0
A general purpose game engine written in C++.
Loading...
Searching...
No Matches
VulkanPipeline.h
1#pragma once
2
3#include "spark/render/Resource.h"
4#include "spark/render/vk/Export.h"
5#include "spark/render/vk/Helpers.h"
6#include "spark/render/vk/VulkanDescriptorSet.h"
7#include "spark/render/vk/VulkanPipelineLayout.h"
8#include "spark/render/vk/VulkanShaderProgram.h"
9
10SPARK_FWD_DECLARE_VK_HANDLE(VkPipeline)
11
12namespace spark::render::vk
13{
14 class VulkanCommandBuffer;
15
19 class SPARK_RENDER_VK_EXPORT VulkanPipelineState : public virtual Pipeline<VulkanPipelineLayout, VulkanShaderProgram>, public Resource<VkPipeline>
20 {
21 public:
22 using Resource::Resource;
23
28 virtual void use(const VulkanCommandBuffer& command_buffer) const noexcept = 0;
29
35 virtual void bind(const VulkanCommandBuffer& command_buffer, const VulkanDescriptorSet& descriptor_set) const noexcept = 0;
36 };
37}
Represents a pipeline state.
Definition Pipeline.h:113
Definition Resource.h:34
Vulkan implementation of ICommandBuffer.
Definition VulkanCommandBuffer.h:29
Vulkan implementation of IDescriptorSet.
Definition VulkanDescriptorSet.h:24
Vulkan implementation of IPipeline.
Definition VulkanPipeline.h:20
virtual void use(const VulkanCommandBuffer &command_buffer) const noexcept=0
Sets the current pipeline state on the ICommandBuffer.
virtual void bind(const VulkanCommandBuffer &command_buffer, const VulkanDescriptorSet &descriptor_set) const noexcept=0
Binds a descriptor set on a ICommandBuffer.