CSEngine
Loading...
Searching...
No Matches
ForwardRenderGroup.h
1#pragma once
2
3#include <unordered_map>
4#include <map>
5#include "../../Util/Render/SRenderGroup.h"
6
7namespace CSE {
8
9 class LightMgr;
10 class SShaderGroup;
11
17 private:
18 typedef std::vector<SIRender*> RenderInterfaces;
19 typedef std::unordered_map<SShaderGroup*, RenderInterfaces> ProgramRenderLayer;
20 typedef std::map<short, ProgramRenderLayer> OrderRenderLayer;
21
22 public:
27 explicit ForwardRenderGroup(const RenderMgr& renderMgr);
28
33
38 void RegisterObject(SIRender* object) override;
39
44 void RemoveObjects(SIRender* object) override;
45
50 void RenderAll(const CameraBase& camera) const override;
51
55 void Exterminate() override;
56
57 private:
58 OrderRenderLayer m_rendersLayer;
59 LightMgr* m_lightMgr = nullptr;
60 };
61
62}
void RenderAll(const CameraBase &camera) const override
~ForwardRenderGroup() override
void RegisterObject(SIRender *object) override
void RemoveObjects(SIRender *object) override
Class for managing rendering operations.
Definition RenderMgr.h:21