PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
Pipeline.hpp
1#pragma once
2
3#include "PixelBullet/Graphics/Commands/CommandBuffer.hpp"
4#include "PixelBullet/Graphics/Pipelines/Shader.hpp"
5
6namespace PixelBullet
7{
12 {
13 public:
17 using Stage = std::pair<uint32_t, uint32_t>;
18
19 Pipeline() = default;
20 virtual ~Pipeline() = default;
21
22 void BindPipeline(const CommandBuffer& commandBuffer) const
23 {
24 vkCmdBindPipeline(commandBuffer, GetPipelineBindPoint(), GetPipeline());
25 }
26
27 virtual const Shader* GetShader() const = 0;
28 virtual bool IsPushDescriptors() const = 0;
29 virtual const VkDescriptorSetLayout& GetDescriptorSetLayout() const = 0;
30 virtual const VkDescriptorPool& GetDescriptorPool() const = 0;
31 virtual const VkPipeline& GetPipeline() const = 0;
32 virtual const VkPipelineLayout& GetPipelineLayout() const = 0;
33 virtual const VkPipelineBindPoint& GetPipelineBindPoint() const = 0;
34 };
35} // namespace PixelBullet
Class that represents a command buffer.
Definition CommandBuffer.hpp:15
Class that is used to represent a pipeline.
Definition Pipeline.hpp:12
std::pair< uint32_t, uint32_t > Stage
Definition Pipeline.hpp:17
Class that loads and processes a shader, and provides reflection.
Definition Shader.hpp:22