1#include "RenderContainer.h" 
    2#include "../../Util/Render/SFrameBuffer.h" 
    3#include "../../Util/Render/SMaterial.h" 
    4#include "../../Util/Render/SGBuffer.h" 
    5#include "../../Util/Settings.h" 
    9RenderContainer::RenderContainer() {}
 
   12RenderContainer::~RenderContainer() {}
 
   14void RenderContainer::Register(
SIRender* 
object, RenderGroupMode groupMode) {
 
   18#ifndef CSE_SETTINGS_RENDER_FORWARD_SUPPORT 
   19            group = m_deferredRenderGroup;
 
   21            group->RegisterObject(
object);
 
   26#ifndef CSE_SETTINGS_RENDER_DEFERRED_SUPPORT 
   27            group = m_forwardRenderGroup;
 
   29            group->RegisterObject(
object);
 
   33            m_depthOnlyRenderGroup->RegisterObject(
object);
 
   35#ifdef CSE_SETTINGS_RENDER_SDFGI_SUPPORT 
   37            m_sdfRenderGroup->RegisterObject(
object);
 
   43void RenderContainer::Remove(
SIRender* 
object, RenderContainer::RenderGroupMode groupFlag) {
 
   47#ifndef CSE_SETTINGS_RENDER_FORWARD_SUPPORT 
   48            group = m_deferredRenderGroup;
 
   50            group->RemoveObjects(
object);
 
   55#ifndef CSE_SETTINGS_RENDER_DEFERRED_SUPPORT 
   56            group = m_forwardRenderGroup;
 
   58            group->RemoveObjects(
object);
 
   62            m_depthOnlyRenderGroup->RemoveObjects(
object);
 
   64#ifdef CSE_SETTINGS_RENDER_SDFGI_SUPPORT 
   66            m_sdfRenderGroup->RemoveObjects(
object);
 
   72void RenderContainer::Exterminate() {
 
   73    if (m_forwardRenderGroup != 
nullptr) {
 
   74        m_forwardRenderGroup->Exterminate();
 
   75        delete m_forwardRenderGroup;
 
   76        m_forwardRenderGroup = 
nullptr;
 
   78    if (m_deferredRenderGroup != 
nullptr) {
 
   79        m_deferredRenderGroup->Exterminate();
 
   80        delete m_deferredRenderGroup;
 
   81        m_deferredRenderGroup = 
nullptr;
 
   83    if (m_depthOnlyRenderGroup != 
nullptr) {
 
   84        m_depthOnlyRenderGroup->Exterminate();
 
   85        delete m_depthOnlyRenderGroup;
 
   86        m_depthOnlyRenderGroup = 
nullptr;
 
   88    if (m_sdfRenderGroup != 
nullptr) {
 
   89        m_sdfRenderGroup->Exterminate();
 
   90        delete m_sdfRenderGroup;
 
   91        m_sdfRenderGroup = 
nullptr;