CSEngine
Loading...
Searching...
No Matches
CSE::RenderMgr Class Reference

Class for managing rendering operations. More...

#include <RenderMgr.h>

Inheritance diagram for CSE::RenderMgr:
CSE::RenderContainer CSE::CoreBufferContainer CSE::CoreBase CSE::RenderCoreBase

Public Member Functions

 RenderMgr ()
 Constructor for RenderMgr.
 
void Init () override
 Initialization of resources required for rendering.
 
void SetViewport ()
 Modify the framebuffer to fit the modified screen size.
 
void Render () const override
 Rendering all stuffs.
 
unsigned int * GetWidth () const
 Get the width of the screen.
 
unsigned int * GetHeight () const
 Get the height of the screen.
 
void BindSdfMapUniforms (const GLProgramHandle &handle) const
 
int BindSdfMapTextures (const GLProgramHandle &handle, int textureLayout) const
 
- Public Member Functions inherited from CSE::RenderContainer
void Register (SIRender *object, RenderGroupMode groupMode)
 
void Remove (SIRender *object, RenderGroupMode groupFlag)
 
- Public Member Functions inherited from CSE::CoreBufferContainer
SFrameBufferGetMainBuffer () const
 
void SetDeviceBuffer (unsigned int id)
 
- Public Member Functions inherited from CSE::CoreBase
virtual void Update (float elapsedTime)
 
- Public Member Functions inherited from CSE::RenderCoreBase

Protected Member Functions

void Exterminate () override
 Destroy all resources used for rendering.
 
- Protected Member Functions inherited from CSE::RenderContainer
- Protected Member Functions inherited from CSE::CoreBufferContainer
void InitBuffers (int width, int height)
 
void ResizeBuffers (int width, int height)
 

Additional Inherited Members

- Public Types inherited from CSE::RenderContainer
enum  RenderGroupMode { FORWARD = 0 , DEFERRED = 1 , DEPTH_ONLY = 2 , SDF = 3 }
 
- Protected Attributes inherited from CSE::RenderContainer
SRenderGroupm_forwardRenderGroup = nullptr
 
SRenderGroupm_deferredRenderGroup = nullptr
 
SRenderGroupm_depthOnlyRenderGroup = nullptr
 
SRenderGroupm_sdfRenderGroup = nullptr
 
unsigned int * m_width = nullptr
 
unsigned int * m_height = nullptr
 
- Protected Attributes inherited from CSE::CoreBufferContainer
unsigned int m_deviceBuffer = 0
 

Detailed Description

Class for managing rendering operations.

This class is responsible for managing all elements involved in the rendering operation, including cameras, buffers, etc.

Definition at line 24 of file RenderMgr.h.

Constructor & Destructor Documentation

◆ ~RenderMgr()

RenderMgr::~RenderMgr ( )
override

Definition at line 24 of file RenderMgr.cpp.

24 {
26}
void Exterminate() override
Destroy all resources used for rendering.

Member Function Documentation

◆ BindSdfMapTextures()

int RenderMgr::BindSdfMapTextures ( const GLProgramHandle & handle,
int textureLayout ) const

Definition at line 133 of file RenderMgr.cpp.

133 {
134 return static_cast<SdfRenderGroup*>(m_sdfRenderGroup)->BindShaderMap(handle, textureLayout);
135}

◆ BindSdfMapUniforms()

void RenderMgr::BindSdfMapUniforms ( const GLProgramHandle & handle) const

Definition at line 129 of file RenderMgr.cpp.

129 {
130 static_cast<SdfRenderGroup*>(m_sdfRenderGroup)->BindShaderUniforms(handle);
131}

◆ Exterminate()

void RenderMgr::Exterminate ( )
overrideprotectedvirtual

Destroy all resources used for rendering.

Reimplemented from CSE::RenderContainer.

Definition at line 116 of file RenderMgr.cpp.

116 {
117 RenderContainer::Exterminate();
118}

◆ GetHeight()

unsigned int * CSE::RenderMgr::GetHeight ( ) const
inline

Get the height of the screen.

Returns
Pointer to the height of the screen.

Definition at line 62 of file RenderMgr.h.

62 {
63 return m_height;
64 }

Referenced by CSE::DeferredRenderGroup::DeferredRenderGroup().

◆ GetWidth()

unsigned int * CSE::RenderMgr::GetWidth ( ) const
inline

Get the width of the screen.

Returns
Pointer to the width of the screen.

Definition at line 53 of file RenderMgr.h.

53 {
54 return m_width;
55 }

Referenced by CSE::DeferredRenderGroup::DeferredRenderGroup().

◆ Init()

void RenderMgr::Init ( )
overridevirtual

Initialization of resources required for rendering.

Implements CSE::CoreBase.

Definition at line 28 of file RenderMgr.cpp.

28 {
29 m_cameraMgr = CORE->GetCore(CameraMgr);
30 m_lightMgr = CORE->GetCore(LightMgr);
31
32 m_width = SEnvironmentMgr::GetPointerWidth();
33 m_height = SEnvironmentMgr::GetPointerHeight();
34
35 InitBuffers((int) *m_width, (int) *m_height);
36#ifdef CSE_SETTINGS_RENDER_FORWARD_SUPPORT
37 m_forwardRenderGroup = new ForwardRenderGroup(*this);
38#endif
39#ifdef CSE_SETTINGS_RENDER_DEFERRED_SUPPORT
40 m_deferredRenderGroup = new DeferredRenderGroup(*this);
41#endif
42 m_depthOnlyRenderGroup = new DepthOnlyRenderGroup(*this);
43#ifdef CSE_SETTINGS_RENDER_SDFGI_SUPPORT
44 m_sdfRenderGroup = new SdfRenderGroup(*this);
45#endif
46
47 //TODO: 포스트 프로세싱 테스트용 코드 반드시 제거 요망!
48// postHandle = SResource::Create<GLProgramHandle>("File:Shader/Post/dof.post");
49}

◆ Render()

void RenderMgr::Render ( ) const
overridevirtual

Rendering all stuffs.

Implements CSE::RenderCoreBase.

Definition at line 59 of file RenderMgr.cpp.

59 {
60 // 0. Render depth buffer for shadows.
61 RenderShadows();
62
63#ifdef CSE_SETTINGS_RENDER_SDFGI_SUPPORT
64 // 1. Render SDF Map.
65 RenderSdfMap();
66#endif
67
68 // 2. Render active sub cameras.
69 RenderSubCameras();
70
71 // 3. Main Render Buffer
72 RenderMainCamera();
73}

◆ SetViewport()

void RenderMgr::SetViewport ( )

Modify the framebuffer to fit the modified screen size.

Attention
This is a function that can have a big impact on performance.

Definition at line 51 of file RenderMgr.cpp.

51 {
52#ifdef CSE_SETTINGS_RENDER_DEFERRED_SUPPORT
53 if (m_deferredRenderGroup != nullptr)
54 static_cast<DeferredRenderGroup*>(m_deferredRenderGroup)->SetViewport();
55#endif
56 ResizeBuffers((int) *m_width, (int) *m_height);
57}
void SetViewport()
Modify the framebuffer to fit the modified screen size.
Definition RenderMgr.cpp:51

References SetViewport().

Referenced by SetViewport().


The documentation for this class was generated from the following files: