CSEngine
Loading...
Searching...
No Matches
CSE::RenderContainer Class Reference
Inheritance diagram for CSE::RenderContainer:
CSE::RenderMgr

Public Types

enum  RenderGroupMode { FORWARD = 0 , DEFERRED = 1 , DEPTH_ONLY = 2 , SDF = 3 }
 

Public Member Functions

void Register (SIRender *object, RenderGroupMode groupMode)
 
void Remove (SIRender *object, RenderGroupMode groupFlag)
 

Protected Member Functions

virtual void Exterminate ()
 

Protected Attributes

SRenderGroupm_forwardRenderGroup = nullptr
 
SRenderGroupm_deferredRenderGroup = nullptr
 
SRenderGroupm_depthOnlyRenderGroup = nullptr
 
SRenderGroupm_sdfRenderGroup = nullptr
 
unsigned int * m_width = nullptr
 
unsigned int * m_height = nullptr
 

Detailed Description

Definition at line 14 of file RenderContainer.h.

Member Enumeration Documentation

◆ RenderGroupMode

enum CSE::RenderContainer::RenderGroupMode

Definition at line 16 of file RenderContainer.h.

16 {
17 FORWARD = 0,
18 DEFERRED = 1,
19 DEPTH_ONLY = 2,
20 SDF = 3,
21 };

Constructor & Destructor Documentation

◆ RenderContainer()

RenderContainer::RenderContainer ( )

Definition at line 9 of file RenderContainer.cpp.

9{}

◆ ~RenderContainer()

RenderContainer::~RenderContainer ( )

Definition at line 12 of file RenderContainer.cpp.

12{}

Member Function Documentation

◆ Exterminate()

void RenderContainer::Exterminate ( )
protectedvirtual

Reimplemented in CSE::RenderMgr.

Definition at line 72 of file RenderContainer.cpp.

72 {
73 if (m_forwardRenderGroup != nullptr) {
74 m_forwardRenderGroup->Exterminate();
75 delete m_forwardRenderGroup;
76 m_forwardRenderGroup = nullptr;
77 }
78 if (m_deferredRenderGroup != nullptr) {
79 m_deferredRenderGroup->Exterminate();
80 delete m_deferredRenderGroup;
81 m_deferredRenderGroup = nullptr;
82 }
83 if (m_depthOnlyRenderGroup != nullptr) {
84 m_depthOnlyRenderGroup->Exterminate();
85 delete m_depthOnlyRenderGroup;
86 m_depthOnlyRenderGroup = nullptr;
87 }
88 if (m_sdfRenderGroup != nullptr) {
89 m_sdfRenderGroup->Exterminate();
90 delete m_sdfRenderGroup;
91 m_sdfRenderGroup = nullptr;
92 }
93}

◆ Register()

void RenderContainer::Register ( SIRender * object,
RenderGroupMode groupMode )

Definition at line 14 of file RenderContainer.cpp.

14 {
15 switch (groupMode) {
16 case FORWARD: {
17 SRenderGroup* group = m_forwardRenderGroup;
18#ifndef CSE_SETTINGS_RENDER_FORWARD_SUPPORT
19 group = m_deferredRenderGroup;
20#endif
21 group->RegisterObject(object);
22 break;
23 }
24 case DEFERRED: {
25 SRenderGroup* group = m_deferredRenderGroup;
26#ifndef CSE_SETTINGS_RENDER_DEFERRED_SUPPORT
27 group = m_forwardRenderGroup;
28#endif
29 group->RegisterObject(object);
30 break;
31 }
32 case DEPTH_ONLY:
33 m_depthOnlyRenderGroup->RegisterObject(object);
34 break;
35#ifdef CSE_SETTINGS_RENDER_SDFGI_SUPPORT
36 case SDF:
37 m_sdfRenderGroup->RegisterObject(object);
38 break;
39#endif
40 }
41}

◆ Remove()

void RenderContainer::Remove ( SIRender * object,
RenderContainer::RenderGroupMode groupFlag )

Definition at line 43 of file RenderContainer.cpp.

43 {
44 switch (groupFlag) {
45 case FORWARD: {
46 SRenderGroup* group = m_forwardRenderGroup;
47#ifndef CSE_SETTINGS_RENDER_FORWARD_SUPPORT
48 group = m_deferredRenderGroup;
49#endif
50 group->RemoveObjects(object);
51 break;
52 }
53 case DEFERRED: {
54 SRenderGroup* group = m_deferredRenderGroup;
55#ifndef CSE_SETTINGS_RENDER_DEFERRED_SUPPORT
56 group = m_forwardRenderGroup;
57#endif
58 group->RemoveObjects(object);
59 break;
60 }
61 case DEPTH_ONLY:
62 m_depthOnlyRenderGroup->RemoveObjects(object);
63 break;
64#ifdef CSE_SETTINGS_RENDER_SDFGI_SUPPORT
65 case SDF:
66 m_sdfRenderGroup->RemoveObjects(object);
67 break;
68#endif
69 }
70}

Member Data Documentation

◆ m_deferredRenderGroup

SRenderGroup* CSE::RenderContainer::m_deferredRenderGroup = nullptr
protected

Definition at line 36 of file RenderContainer.h.

◆ m_depthOnlyRenderGroup

SRenderGroup* CSE::RenderContainer::m_depthOnlyRenderGroup = nullptr
protected

Definition at line 37 of file RenderContainer.h.

◆ m_forwardRenderGroup

SRenderGroup* CSE::RenderContainer::m_forwardRenderGroup = nullptr
protected

Definition at line 35 of file RenderContainer.h.

◆ m_height

unsigned int* CSE::RenderContainer::m_height = nullptr
protected

Definition at line 41 of file RenderContainer.h.

◆ m_sdfRenderGroup

SRenderGroup* CSE::RenderContainer::m_sdfRenderGroup = nullptr
protected

Definition at line 38 of file RenderContainer.h.

◆ m_width

unsigned int* CSE::RenderContainer::m_width = nullptr
protected

Definition at line 40 of file RenderContainer.h.


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