CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::RenderingSystem Class Referencefinal

A system that connects the rendering system to the CeresEngine renderer. More...

#include <CeresEngine/Renderer/RenderingSystem.hpp>

Inheritance diagram for CeresEngine::RenderingSystem:
CeresEngine::System< RenderingSystem, RenderingSystemEntitySet >

Public Member Functions

 RenderingSystem (Renderer &renderer)
 Creates a new rendering system instance.
 
 RenderingSystem (const RenderingSystem &)=delete
 
RenderingSystemoperator= (const RenderingSystem &)=delete
 
 ~RenderingSystem () final
 Destroys the rendering system instance.
 
void attached (EntityManager &entityManager, SystemManager &systemManager) override
 A method called by the system manager once the system has been attached to the manager.
 
void detached (EntityManager &entityManager, SystemManager &systemManager) override
 A method called by the system manager once the system has been detached from the manager.
 
void update (double time) override
 Updates the system.
 
SystemOrder getOrder () const noexcept final
 
RenderergetRenderer () const noexcept
 The currently active renderer instance.
 
ScenegetScene () const noexcept
 The scene that owns the rendering system.
 
RendererScenegetRendererScene () const noexcept
 The renderer scene, created from the regular scene.
 

Private Types

template<typename Entity , typename RendererObject >
using EntityMap = HashMap< Entity, RendererObject *, std::hash< Entity > >
 A map that stores a renderer-specific object pointer indexed by an entity.
 

Private Member Functions

void didAdd (const Camera &entity) noexcept final
 
void didRemove (const Camera &entity) noexcept final
 
void didChange (const Camera &entity, const EntityChangeSet &changeSet) noexcept final
 
void didAdd (const Light &entity) noexcept final
 
void didRemove (const Light &entity) noexcept final
 
void didChange (const Light &entity, const EntityChangeSet &changeSet) noexcept final
 
void didAdd (const Renderable &entity) noexcept final
 
void didRemove (const Renderable &entity) noexcept final
 
void didChange (const Renderable &entity, const EntityChangeSet &changeSet) noexcept final
 
void didAdd (const TerrainRenderable &entity) noexcept final
 
void didRemove (const TerrainRenderable &entity) noexcept final
 
void didChange (const TerrainRenderable &entity, const EntityChangeSet &changeSet) noexcept final
 
void didAdd (const Environment &entity) noexcept final
 
void didRemove (const Environment &entity) noexcept final
 
void didChange (const Environment &entity, const EntityChangeSet &changeSet) noexcept final
 

Private Attributes

RenderermRenderer
 The currently active renderer instance.
 
ScenemScene
 The scene that owns the rendering system.
 
RendererScenemRendererScene
 The renderer scene, created from the regular scene.
 
EntityMap< Camera, RendererCameramCameras
 A list of cameras currently registered with the renderer.
 
EntityMap< Light, RendererLightmLights
 A list of lights currently registered with the renderer.
 
EntityMap< Renderable, RendererRenderablemRenderables
 A list of renderables currently registered with the renderer.
 
EntityMap< TerrainRenderable, RendererTerrainmTerrains
 A list of terrains currently registered with the renderer.
 
EntityMap< Environment, RendererEnvironmentmEnvironments
 A list of environments currently registered with the renderer.
 

Detailed Description

A system that connects the rendering system to the CeresEngine renderer.

Member Typedef Documentation

◆ EntityMap

A map that stores a renderer-specific object pointer indexed by an entity.

Constructor & Destructor Documentation

◆ RenderingSystem() [1/2]

CeresEngine::RenderingSystem::RenderingSystem ( Renderer renderer)
explicit

Creates a new rendering system instance.

◆ RenderingSystem() [2/2]

CeresEngine::RenderingSystem::RenderingSystem ( const RenderingSystem )
delete

◆ ~RenderingSystem()

CeresEngine::RenderingSystem::~RenderingSystem ( )
final

Destroys the rendering system instance.

Member Function Documentation

◆ attached()

void CeresEngine::RenderingSystem::attached ( EntityManager entityManager,
SystemManager systemManager 
)
override

A method called by the system manager once the system has been attached to the manager.

Parameters
entityManagerThe entity manager the system is attaching
systemManagerThe system manager the system is attaching

◆ detached()

void CeresEngine::RenderingSystem::detached ( EntityManager entityManager,
SystemManager systemManager 
)
override

A method called by the system manager once the system has been detached from the manager.

Parameters
entityManagerThe entity manager the system is attaching
systemManagerThe system manager the system is attaching

◆ didAdd() [1/5]

void CeresEngine::RenderingSystem::didAdd ( const Camera entity)
finalprivatenoexcept

◆ didAdd() [2/5]

void CeresEngine::RenderingSystem::didAdd ( const Environment entity)
finalprivatenoexcept

◆ didAdd() [3/5]

void CeresEngine::RenderingSystem::didAdd ( const Light entity)
finalprivatenoexcept

◆ didAdd() [4/5]

void CeresEngine::RenderingSystem::didAdd ( const Renderable entity)
finalprivatenoexcept

◆ didAdd() [5/5]

void CeresEngine::RenderingSystem::didAdd ( const TerrainRenderable entity)
finalprivatenoexcept

◆ didChange() [1/5]

void CeresEngine::RenderingSystem::didChange ( const Camera entity,
const EntityChangeSet changeSet 
)
finalprivatenoexcept

◆ didChange() [2/5]

void CeresEngine::RenderingSystem::didChange ( const Environment entity,
const EntityChangeSet changeSet 
)
finalprivatenoexcept

◆ didChange() [3/5]

void CeresEngine::RenderingSystem::didChange ( const Light entity,
const EntityChangeSet changeSet 
)
finalprivatenoexcept

◆ didChange() [4/5]

void CeresEngine::RenderingSystem::didChange ( const Renderable entity,
const EntityChangeSet changeSet 
)
finalprivatenoexcept

◆ didChange() [5/5]

void CeresEngine::RenderingSystem::didChange ( const TerrainRenderable entity,
const EntityChangeSet changeSet 
)
finalprivatenoexcept

◆ didRemove() [1/5]

void CeresEngine::RenderingSystem::didRemove ( const Camera entity)
finalprivatenoexcept

◆ didRemove() [2/5]

void CeresEngine::RenderingSystem::didRemove ( const Environment entity)
finalprivatenoexcept

◆ didRemove() [3/5]

void CeresEngine::RenderingSystem::didRemove ( const Light entity)
finalprivatenoexcept

◆ didRemove() [4/5]

void CeresEngine::RenderingSystem::didRemove ( const Renderable entity)
finalprivatenoexcept

◆ didRemove() [5/5]

void CeresEngine::RenderingSystem::didRemove ( const TerrainRenderable entity)
finalprivatenoexcept

◆ getOrder()

SystemOrder CeresEngine::RenderingSystem::getOrder ( ) const
inlinefinalnoexcept

Returns
The order in which the system should be updated.

◆ getRenderer()

Renderer & CeresEngine::RenderingSystem::getRenderer ( ) const
inlinenoexcept

The currently active renderer instance.

◆ getRendererScene()

RendererScene * CeresEngine::RenderingSystem::getRendererScene ( ) const
inlinenoexcept

The renderer scene, created from the regular scene.

◆ getScene()

Scene * CeresEngine::RenderingSystem::getScene ( ) const
inlinenoexcept

The scene that owns the rendering system.

◆ operator=()

RenderingSystem & CeresEngine::RenderingSystem::operator= ( const RenderingSystem )
delete

◆ update()

void CeresEngine::RenderingSystem::update ( double  time)
override

Updates the system.

Parameters
timeThe amount of time elapsed since the last update

Member Data Documentation

◆ mCameras

EntityMap<Camera, RendererCamera> CeresEngine::RenderingSystem::mCameras
private

A list of cameras currently registered with the renderer.

◆ mEnvironments

EntityMap<Environment, RendererEnvironment> CeresEngine::RenderingSystem::mEnvironments
private

A list of environments currently registered with the renderer.

◆ mLights

EntityMap<Light, RendererLight> CeresEngine::RenderingSystem::mLights
private

A list of lights currently registered with the renderer.

◆ mRenderables

EntityMap<Renderable, RendererRenderable> CeresEngine::RenderingSystem::mRenderables
private

A list of renderables currently registered with the renderer.

◆ mRenderer

Renderer& CeresEngine::RenderingSystem::mRenderer
private

The currently active renderer instance.

◆ mRendererScene

RendererScene* CeresEngine::RenderingSystem::mRendererScene
private

The renderer scene, created from the regular scene.

◆ mScene

Scene* CeresEngine::RenderingSystem::mScene
private

The scene that owns the rendering system.

◆ mTerrains

EntityMap<TerrainRenderable, RendererTerrain> CeresEngine::RenderingSystem::mTerrains
private

A list of terrains currently registered with the renderer.


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