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

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

#include <CeresEngine/Renderer/RendererObject.hpp>

Inheritance diagram for CeresEngine::TRendererObject< SelfType, BaseType >:
CeresEngine::RendererObject CeresEngine::TRendererSceneObject< RendererCamera > CeresEngine::TRendererSceneObject< RendererEnvironment > CeresEngine::TRendererSceneObject< RendererLight > CeresEngine::TRendererSceneObject< RendererRenderable > CeresEngine::TRendererSceneObject< RendererTerrain > CeresEngine::TRendererSceneObject< SelfType, BaseType > CeresEngine::RendererCamera CeresEngine::RendererEnvironment CeresEngine::RendererLight CeresEngine::RendererRenderable CeresEngine::RendererTerrain CeresEngine::RendererSkyboxEnvironment

Public Member Functions

template<typename... Args>
 TRendererObject (ManagerType &manager, Args &&... args)
 Creates a new TRendererObject instance.
 
void destroy () noexcept override
 Destroys the RendererObject.
 
ManagerTypegetManager () const noexcept
 The owning object manager.
 
- Public Member Functions inherited from CeresEngine::RendererObject
 RendererObject ()=default
 Creates a new RendererObject instance.
 
virtual ~RendererObject () noexcept=default
 Destroys an existing RendererObject instance.
 
RendererObjectID getID () const noexcept
 An identifier that uniquely identifies this object in the renderer.
 

Protected Attributes

ManagerTypemManager
 The owning object manager.
 
- Protected Attributes inherited from CeresEngine::RendererObject
RendererObjectID mID
 An identifier that uniquely identifies this object in the renderer.
 

Private Types

using ManagerType = RendererObjectManagerType< SelfType >
 

Private Attributes

friend ManagerType
 

Additional Inherited Members

- Public Attributes inherited from CeresEngine::RendererObject
Event< void(RendererObjectID newID)> willChangeID
 An event called whenever the object is about to change it's ID.
 
Event< void(RendererObjectID oldID)> didChangeID
 An event called whenever the object changes it's ID.
 

Detailed Description

template<typename SelfType, typename BaseType = RendererObject>
class CeresEngine::TRendererObject< SelfType, BaseType >

Template class to help implement sub-classes of RendererObject.

Template Parameters
SelfTypeThe type of renderer object.
BaseTypeThe type to sub-class from. RendererObject by default.

Member Typedef Documentation

◆ ManagerType

Constructor & Destructor Documentation

◆ TRendererObject()

template<typename SelfType , typename BaseType = RendererObject>
template<typename... Args>
CeresEngine::TRendererObject< SelfType, BaseType >::TRendererObject ( ManagerType manager,
Args &&...  args 
)
inlineexplicit

Creates a new TRendererObject instance.

Template Parameters
ArgsThe argument types to forward to the base class constructor.
Parameters
managerThe manager instance that owns this object.
argsThe arguments to forward to the base class constructor.

Member Function Documentation

◆ destroy()

template<typename SelfType , typename BaseType = RendererObject>
void CeresEngine::TRendererObject< SelfType, BaseType >::destroy ( )
inlineoverridevirtualnoexcept

Destroys the RendererObject.

Will deallocate memory from the owning manager.

Implements CeresEngine::RendererObject.

◆ getManager()

template<typename SelfType , typename BaseType = RendererObject>
ManagerType & CeresEngine::TRendererObject< SelfType, BaseType >::getManager ( ) const
inlinenoexcept

The owning object manager.

Member Data Documentation

◆ ManagerType

template<typename SelfType , typename BaseType = RendererObject>
friend CeresEngine::TRendererObject< SelfType, BaseType >::ManagerType
private

◆ mManager

template<typename SelfType , typename BaseType = RendererObject>
ManagerType& CeresEngine::TRendererObject< SelfType, BaseType >::mManager
protected

The owning object manager.


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