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 }
 

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
 
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 };

Constructor & Destructor Documentation

◆ RenderContainer()

RenderContainer::RenderContainer ( )

Definition at line 8 of file RenderContainer.cpp.

8{}

◆ ~RenderContainer()

RenderContainer::~RenderContainer ( )

Definition at line 11 of file RenderContainer.cpp.

11{}

Member Function Documentation

◆ Exterminate()

void RenderContainer::Exterminate ( )
protectedvirtual

Reimplemented in CSE::RenderMgr.

Definition at line 41 of file RenderContainer.cpp.

41 {
42 m_forwardRenderGroup->Exterminate();
43 SAFE_DELETE(m_forwardRenderGroup);
44 m_deferredRenderGroup->Exterminate();
45 SAFE_DELETE(m_deferredRenderGroup);
46 m_depthOnlyRenderGroup->Exterminate();
47 SAFE_DELETE(m_depthOnlyRenderGroup);
48}

◆ Register()

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

Definition at line 13 of file RenderContainer.cpp.

13 {
14 switch (groupMode) {
15 case FORWARD:
16 m_forwardRenderGroup->RegisterObject(object);
17 break;
18 case DEFERRED:
19 m_deferredRenderGroup->RegisterObject(object);
20 break;
21 case DEPTH_ONLY:
22 m_depthOnlyRenderGroup->RegisterObject(object);
23 break;
24 }
25}

◆ Remove()

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

Definition at line 27 of file RenderContainer.cpp.

27 {
28 switch (groupFlag) {
29 case FORWARD:
30 m_forwardRenderGroup->RemoveObjects(object);
31 break;
32 case DEFERRED:
33 m_deferredRenderGroup->RemoveObjects(object);
34 break;
35 case DEPTH_ONLY:
36 m_depthOnlyRenderGroup->RegisterObject(object);
37 break;
38 }
39}

Member Data Documentation

◆ m_deferredRenderGroup

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

Definition at line 35 of file RenderContainer.h.

◆ m_depthOnlyRenderGroup

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

Definition at line 36 of file RenderContainer.h.

◆ m_forwardRenderGroup

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

Definition at line 34 of file RenderContainer.h.

◆ m_height

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

Definition at line 39 of file RenderContainer.h.

◆ m_width

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

Definition at line 38 of file RenderContainer.h.


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