CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::TRendererObjectManager< SelfType, ObjectType, BaseType > Class Template Reference

Template class to help implement sub-classes of RendererObjectManager. More...

#include <CeresEngine/Renderer/RendererObject.hpp>

Inheritance diagram for CeresEngine::TRendererObjectManager< SelfType, ObjectType, BaseType >:
CeresEngine::RendererObjectManager CeresEngine::TRendererSceneObjectManager< RendererCameraManager, RendererCamera > CeresEngine::TRendererSceneObjectManager< RendererLightManager, RendererLight > CeresEngine::TRendererSceneObjectManager< RendererRenderableManager, RendererRenderable > CeresEngine::TRendererSceneObjectManager< RendererTerrainManager, RendererTerrain > CeresEngine::TRendererSceneObjectManager< SelfType, ObjectType, BaseType > CeresEngine::RendererCameraManager CeresEngine::RendererLightManager CeresEngine::RendererRenderableManager CeresEngine::RendererTerrainManager

Public Member Functions

template<typename... Args>
 TRendererObjectManager (Vector< UPtr< ObjectType > > &objects, Args &&... args)
 Creates a new TRendererObjectManager instance.
 
template<typename... Args>
ObjectTypecreate (Args &&... args)
 Creates a new renderer object by calling it's constructor.
 
void destroy (ObjectType &object)
 Destroys an existing renderer object by calling it's destructor and releasing it's memory.
 
- Public Member Functions inherited from CeresEngine::RendererObjectManager
 RendererObjectManager (Renderer &renderer) noexcept
 Creates a new RendererObjectManager instance.
 
virtual ~RendererObjectManager () noexcept=default
 Destroys an existing instance of RendererObjectManager.
 
RenderergetRenderer () const noexcept
 The renderer that owns this manager instance.
 

Private Attributes

friend ObjectType
 
friend RendererObject
 
Vector< UPtr< ObjectType > > & mObjects
 A vector that owns all managed objects.
 

Additional Inherited Members

- Protected Member Functions inherited from CeresEngine::RendererObjectManager
void notifyChangeID (RendererObject &object, const RendererObjectID newID) noexcept
 Method called whenever the RendererObject ID changes.
 
- Protected Attributes inherited from CeresEngine::RendererObjectManager
RenderermRenderer
 The renderer that owns this manager instance.
 

Detailed Description

template<typename SelfType, typename ObjectType, typename BaseType = RendererObjectManager>
class CeresEngine::TRendererObjectManager< SelfType, ObjectType, BaseType >

Template class to help implement sub-classes of RendererObjectManager.

Template Parameters
SelfTypeThe type of renderer object manager.
ObjectTypeThe type of renderer object managed by this manager.
BaseTypeThe type to sub-class from. RendererObjectManager by default.

Constructor & Destructor Documentation

◆ TRendererObjectManager()

template<typename SelfType , typename ObjectType , typename BaseType = RendererObjectManager>
template<typename... Args>
CeresEngine::TRendererObjectManager< SelfType, ObjectType, BaseType >::TRendererObjectManager ( Vector< UPtr< ObjectType > > &  objects,
Args &&...  args 
)
inlineexplicit

Creates a new TRendererObjectManager instance.

Template Parameters
ArgsThe argument types to forward to the base class constructor.
Parameters
objectsA vector that owns all managed objects.
argsThe arguments to forward to the base class constructor.

Member Function Documentation

◆ create()

template<typename SelfType , typename ObjectType , typename BaseType = RendererObjectManager>
template<typename... Args>
ObjectType & CeresEngine::TRendererObjectManager< SelfType, ObjectType, BaseType >::create ( Args &&...  args)
inline

Creates a new renderer object by calling it's constructor.

with args.

Template Parameters
ArgsThe argument types to be passed to the object constructor.
Parameters
argsThe arguments to be passed to the object constructor.
Returns
A reference to the newly created object. Must be destroyed by calling destroy on the object.

◆ destroy()

template<typename SelfType , typename ObjectType , typename BaseType = RendererObjectManager>
void CeresEngine::TRendererObjectManager< SelfType, ObjectType, BaseType >::destroy ( ObjectType object)
inline

Destroys an existing renderer object by calling it's destructor and releasing it's memory.

Parameters
objectThe renderer object to be destroyed.

Member Data Documentation

◆ mObjects

A vector that owns all managed objects.

◆ ObjectType

template<typename SelfType , typename ObjectType , typename BaseType = RendererObjectManager>
friend CeresEngine::TRendererObjectManager< SelfType, ObjectType, BaseType >::ObjectType
private

◆ RendererObject

template<typename SelfType , typename ObjectType , typename BaseType = RendererObjectManager>
friend CeresEngine::TRendererObjectManager< SelfType, ObjectType, BaseType >::RendererObject
private

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