PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
Subrender.hpp
1#pragma once
2
3#include "PixelBullet/Filesystem/Resources/TypeInfo.hpp"
4#include "PixelBullet/Graphics/Commands/CommandBuffer.hpp"
5#include "PixelBullet/Graphics/Pipelines/Pipeline.hpp"
6
7namespace PixelBullet
8{
13 {
14 public:
19 explicit Subrender(Pipeline::Stage stage)
20 : m_Stage(std::move(stage))
21 {
22 }
23
24 virtual ~Subrender() = default;
25
26 Subrender(const Subrender&) = delete;
27 Subrender& operator=(const Subrender&) = delete;
28 Subrender(Subrender&&) noexcept = default;
29 Subrender& operator=(Subrender&&) noexcept = default;
30
35 virtual void Render(const CommandBuffer& commandBuffer) = 0;
36
37 const Pipeline::Stage& GetStage() const
38 {
39 return m_Stage;
40 }
41
42 bool IsEnabled() const
43 {
44 return m_Enabled;
45 }
46 void SetEnabled(bool enable)
47 {
48 this->m_Enabled = enable;
49 }
50
51 private:
52 bool m_Enabled = true;
53 Pipeline::Stage m_Stage;
54 };
55
56 template class TypeInfo<Subrender>;
57} // 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
Represents a render pipeline that is used to render a type of pipeline.
Definition Subrender.hpp:13
Subrender(Pipeline::Stage stage)
Definition Subrender.hpp:19
virtual void Render(const CommandBuffer &commandBuffer)=0