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
 
RenderingSystem & operator= (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
 
Renderer & getRenderer () const noexcept
 The currently active renderer instance.
 
Scene * getScene () const noexcept
 The scene that owns the rendering system.
 
RendererScene * getRendererScene () 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

Renderer & mRenderer
 The currently active renderer instance.
 
Scene * mScene
 The scene that owns the rendering system.
 
RendererScene * mRendererScene
 The renderer scene, created from the regular scene.
 
EntityMap< Camera, RendererCamera > mCameras
 A list of cameras currently registered with the renderer.
 
EntityMap< Light, RendererLight > mLights
 A list of lights currently registered with the renderer.
 
EntityMap< Renderable, RendererRenderable > mRenderables
 A list of renderables currently registered with the renderer.
 
EntityMap< TerrainRenderable, RendererTerrain > mTerrains
 A list of terrains currently registered with the renderer.
 
EntityMap< Environment, RendererEnvironment > mEnvironments
 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: