CSEngine
Loading...
Searching...
No Matches
SdfRenderGroup.h
1#pragma once
2
3#include "../../Util/Render/SRenderGroup.h"
4
5namespace CSE {
6
7 class STexture;
8 class GLProgramHandle;
9 class SFrameBuffer;
10 class LightMgr;
11
13 public:
14 explicit SdfRenderGroup(const RenderMgr& renderMgr);
15
16 ~SdfRenderGroup() override;
17
18 void RegisterObject(SIRender* object) override;
19
20 void RemoveObjects(SIRender* object) override;
21
22 void RenderAll(const CameraBase& camera) const override;
23
24 void Exterminate() override;
25
26 void BindShaderUniforms(const GLProgramHandle& handle) const;
27
28 int BindShaderMap(const GLProgramHandle& handle, int textureLayout) const;
29
30 private:
31 int m_envSize = 16;
32 vec3 m_nodeSize = vec3{ 7.f, 3.f, 7.f };
33 vec2 m_mapSize = vec2{ -1, -1 };
34 vec2 m_cellSize = vec2{ -1, -1 };
35 float m_nodeSpace = 0.5f;
36 mutable int m_frameCount = 0;
37
38 SFrameBuffer* m_sdfMapBuffer = nullptr;
39 STexture* m_mapTexture = nullptr;
40
41 LightMgr* m_lightMgr = nullptr;
42
43 //For Implement Only (must remove!)
44 STexture* m_testTexture = nullptr;
45 unsigned int m_testTextureId = 0;
46 GLProgramHandle* m_sdfHandle = nullptr;
47 };
48
49}
Class for managing rendering operations.
Definition RenderMgr.h:24