3#include "PixelBullet/Graphics/RenderStage.hpp"
4#include "PixelBullet/Graphics/SubrenderHolder.hpp"
40 return m_SubrenderHolder.Has<T>();
51 return m_SubrenderHolder.Get<T>();
61 template <
typename T,
typename... Args>
64 return m_SubrenderHolder.Add<T>(pipelineStage,
65 std::make_unique<T>(pipelineStage, std::forward<Args>(args)...));
75 m_SubrenderHolder.Remove<T>();
83 m_SubrenderHolder.Clear();
88 if (m_RenderStages.empty() || m_RenderStages.size() < index)
93 return m_RenderStages.at(index).get();
96 void AddRenderStage(std::unique_ptr<RenderStage>&& renderStage)
98 m_RenderStages.emplace_back(std::move(renderStage));
102 bool m_Started =
false;
103 std::vector<std::unique_ptr<RenderStage>> m_RenderStages;
104 SubrenderHolder m_SubrenderHolder;
Module that manages the Vulkan m_Instance, Surface, Window and the renderpass structure.
Definition Graphics.hpp:32
std::pair< uint32_t, uint32_t > Stage
Definition Pipeline.hpp:17
Definition RenderStage.hpp:205
Class used to manage Subrender objects to create a list of render pass.
Definition Renderer.hpp:12
T * AddSubrender(const Pipeline::Stage &pipelineStage, Args &&... args)
Definition Renderer.hpp:62
T * GetSubrender() const
Definition Renderer.hpp:49
bool HasSubrender() const
Definition Renderer.hpp:38
void ClearSubrenders()
Definition Renderer.hpp:81
void RemoveSubrender()
Definition Renderer.hpp:73