CSEngine
Loading...
Searching...
No Matches
RenderMgr.h
1#pragma once
2#include "../../MacroDef.h"
3#include "RenderContainer.h"
4#include "../CoreBufferContainer.h"
5#include "../Base/RenderCoreBase.h"
6
7
8namespace CSE {
9
10 class CameraBase;
11 class SGBuffer;
12 class GLProgramHandle;
13 class CameraMgr;
14 class LightMgr;
15
24 class RenderMgr : public RenderContainer, public CoreBufferContainer, public CoreBase, public RenderCoreBase {
25 public:
29 explicit RenderMgr();
30 ~RenderMgr() override;
31
32 public:
36 void Init() override;
42 void SetViewport();
46 void Render() const override;
47
53 unsigned int* GetWidth() const {
54 return m_width;
55 }
56
62 unsigned int* GetHeight() const {
63 return m_height;
64 }
65
66 void BindSdfMapUniforms(const GLProgramHandle& handle) const;
67 int BindSdfMapTextures(const GLProgramHandle& handle, int textureLayout) const;
68
69 protected:
73 void Exterminate() override;
74
75 private:
81 void ResetBuffer(const CameraBase& camera) const;
82
86 void RenderShadows() const;
90 void RenderSubCameras() const;
94 void RenderMainCamera() const;
95
99 void RenderSdfMap() const;
100
101 void RenderAllGroup(const CameraBase& camera) const;
102
103 private:
104 CameraMgr* m_cameraMgr = nullptr;
105 LightMgr* m_lightMgr = nullptr;
106 };
107}
Class for managing rendering operations.
Definition RenderMgr.h:24
void Init() override
Initialization of resources required for rendering.
Definition RenderMgr.cpp:28
unsigned int * GetWidth() const
Get the width of the screen.
Definition RenderMgr.h:53
void SetViewport()
Modify the framebuffer to fit the modified screen size.
Definition RenderMgr.cpp:51
RenderMgr()
Constructor for RenderMgr.
void Exterminate() override
Destroy all resources used for rendering.
unsigned int * GetHeight() const
Get the height of the screen.
Definition RenderMgr.h:62
void Render() const override
Rendering all stuffs.
Definition RenderMgr.cpp:59