CSEngine
Loading...
Searching...
No Matches
DeferredRenderGroup.h
1#pragma once
2
3#include <unordered_map>
4#include "../../Util/Render/SRenderGroup.h"
5
6namespace CSE {
7
8 class SGBuffer;
9 class LightMgr;
10 class SShaderGroup;
11
16 private:
17 typedef std::unordered_map<SShaderGroup*, SGBuffer*> GBufferLayer;
18
19 public:
24 explicit DeferredRenderGroup(const RenderMgr& renderMgr);
25
26 ~DeferredRenderGroup() override;
27
32 void RegisterObject(SIRender* object) override;
33
38 void RemoveObjects(SIRender* object) override;
39
44 void RenderAll(const CameraBase& camera) const override;
45
51 void RenderGbuffer(const CameraBase& camera, const SGBuffer& gbuffer, const SShaderGroup& shaders) const;
52
56 void SetViewport();
57
61 void Exterminate() override;
62
63 private:
64 GBufferLayer m_gbufferLayer;
65
66 unsigned int* m_width = nullptr;
67 unsigned int* m_height = nullptr;
68
69 LightMgr* m_lightMgr = nullptr;
70 };
71}
void RenderGbuffer(const CameraBase &camera, const SGBuffer &gbuffer, const SShaderGroup &shaders) const
void RegisterObject(SIRender *object) override
void RemoveObjects(SIRender *object) override
void RenderAll(const CameraBase &camera) const override
Class for managing rendering operations.
Definition RenderMgr.h:21