Nebula
Loading...
Searching...
No Matches
RenderModules::RTPlugin Class Reference

#include <rtplugin.h>

Detailed Description

Standard interface to add new functionality to the render thread.

Adding functionality to the render thread usually requires the following steps:

  • implement a set of classes which implement the render-thread functionality
  • implement proxy classes which act as a frontend in the main thread
  • implement a message protocol
  • implement a message handler
  • derive a new class from RenderThreadPlugin, setup an instance and call GraphicsInterface::Instance()->RegisterRenderThreadPlugin()

Please note that the RenderThreadPlugin object lives completely on the render thread side! Define a clear separation line between main-thread and render-thread code and use messages to communicate between the two!

NOTE: all "On*" methods are called from the RenderThread!

(C) 2009 Radon Labs GmbH (C) 2013-2018 Individual contributors, see AUTHORS file

Inherits Core::RefCounted.

Inherited by Dynui::ImguiRTPlugin.

Public Member Functions

 RTPlugin ()
 constructor
 
virtual ~RTPlugin ()
 destructor
 
virtual void OnRegister ()
 called when plugin is registered on the render-thread side
 
virtual void OnUnregister ()
 called when plugin is unregistered on the render-thread side
 
virtual void OnStageCreated (const Ptr< Graphics::Stage > &stage)
 called when a new stage has been created
 
virtual void OnDiscardStage (const Ptr< Graphics::Stage > &stage)
 called when a stage is discarded
 
virtual void OnViewCreated (const Ptr< Graphics::View > &view)
 called when a new view has been created
 
virtual void OnDiscardView (const Ptr< Graphics::View > &view)
 called when a view is being discarded
 
virtual void OnAttachEntity (const Ptr< Graphics::GraphicsEntity > &entity)
 called when a graphics entity has been attached to a stage
 
virtual void OnRemoveEntity (const Ptr< Graphics::GraphicsEntity > &entity)
 called when a graphics entity is being removed from a stage
 
virtual void OnUpdateBefore (IndexT frameId, Timing::Time time)
 called before updating entities
 
virtual void OnUpdateAfter (IndexT frameId, Timing::Time time)
 called after updating entities
 
virtual void OnRenderBefore (IndexT frameId, Timing::Time time)
 called before rendering entities
 
virtual void OnRenderAfter (IndexT frameId, Timing::Time time)
 called after rendering entities
 
virtual void OnRender (const Util::StringAtom &filter)
 called when rendering a specific subset of plugins
 
virtual void OnFrameBefore (IndexT frameId, Timing::Time time)
 called at the beginning of frame
 
virtual void OnFrameAfter (IndexT frameId, Timing::Time time)
 called at the end of frame
 
virtual void OnRenderFrame ()
 called when rendering from special frame tag
 
virtual void OnRenderWithoutView (IndexT frameId, Timing::Time time)
 called if no view exists, and no default camera is set in view
 
virtual void OnWindowResized (IndexT windowId, SizeT width, SizeT height)
 called if the window size has changed
 
- Public Member Functions inherited from Core::RefCounted
 RefCounted ()
 constructor
 
int GetRefCount () const
 get the current refcount
 
void AddRef ()
 increment refcount by one
 
void Release ()
 decrement refcount and destroy object if refcount is zero
 
bool IsInstanceOf (const Rtti &rtti) const
 return true if this object is instance of given class
 
bool IsInstanceOf (const Util::String &className) const
 return true if this object is instance of given class by string
 
bool IsInstanceOf (const Util::FourCC &classFourCC) const
 return true if this object is instance of given class by fourcc
 
bool IsA (const Rtti &rtti) const
 return true if this object is instance of given class, or a derived class
 
bool IsA (const Util::String &rttiName) const
 return true if this object is instance of given class, or a derived class, by string
 
bool IsA (const Util::FourCC &rttiFourCC) const
 return true if this object is instance of given class, or a derived class, by fourcc
 
const Util::StringGetClassName () const
 get the class name
 
Util::FourCC GetClassFourCC () const
 get the class FourCC code
 

Private Member Functions

 __DeclareClass (RTPlugin)
 

Additional Inherited Members

- Static Public Member Functions inherited from Core::RefCounted
static void DumpRefCountingLeaks ()
 dump refcounting leaks, call at end of application (NEBULA_DEBUG builds only!)
 
- Protected Member Functions inherited from Core::RefCounted
virtual ~RefCounted ()
 destructor (called when refcount reaches zero)
 

Constructor & Destructor Documentation

◆ RTPlugin()

RenderModules::RTPlugin::RTPlugin ( )

constructor

◆ ~RTPlugin()

RenderModules::RTPlugin::~RTPlugin ( )
virtual

destructor

Member Function Documentation

◆ __DeclareClass()

RenderModules::RTPlugin::__DeclareClass ( RTPlugin )
private

◆ OnAttachEntity()

void RenderModules::RTPlugin::OnAttachEntity ( const Ptr< Graphics::GraphicsEntity > & entity)
virtual

called when a graphics entity has been attached to a stage

◆ OnDiscardStage()

void RenderModules::RTPlugin::OnDiscardStage ( const Ptr< Graphics::Stage > & stage)
virtual

called when a stage is discarded

◆ OnDiscardView()

void RenderModules::RTPlugin::OnDiscardView ( const Ptr< Graphics::View > & view)
virtual

called when a view is being discarded

◆ OnFrameAfter()

void RenderModules::RTPlugin::OnFrameAfter ( IndexT frameId,
Timing::Time time )
virtual

called at the end of frame

◆ OnFrameBefore()

void RenderModules::RTPlugin::OnFrameBefore ( IndexT frameId,
Timing::Time time )
virtual

called at the beginning of frame

◆ OnRegister()

void RenderModules::RTPlugin::OnRegister ( )
virtual

called when plugin is registered on the render-thread side

Reimplemented in Dynui::ImguiRTPlugin.

◆ OnRemoveEntity()

void RenderModules::RTPlugin::OnRemoveEntity ( const Ptr< Graphics::GraphicsEntity > & entity)
virtual

called when a graphics entity is being removed from a stage

◆ OnRender()

void RenderModules::RTPlugin::OnRender ( const Util::StringAtom & filter)
virtual

called when rendering a specific subset of plugins

◆ OnRenderAfter()

void RenderModules::RTPlugin::OnRenderAfter ( IndexT frameId,
Timing::Time time )
virtual

called after rendering entities

◆ OnRenderBefore()

void RenderModules::RTPlugin::OnRenderBefore ( IndexT frameId,
Timing::Time time )
virtual

called before rendering entities

◆ OnRenderFrame()

void RenderModules::RTPlugin::OnRenderFrame ( )
virtual

called when rendering from special frame tag

◆ OnRenderWithoutView()

void RenderModules::RTPlugin::OnRenderWithoutView ( IndexT frameId,
Timing::Time time )
virtual

called if no view exists, and no default camera is set in view

◆ OnStageCreated()

void RenderModules::RTPlugin::OnStageCreated ( const Ptr< Graphics::Stage > & stage)
virtual

called when a new stage has been created

◆ OnUnregister()

void RenderModules::RTPlugin::OnUnregister ( )
virtual

called when plugin is unregistered on the render-thread side

Reimplemented in Dynui::ImguiRTPlugin.

◆ OnUpdateAfter()

void RenderModules::RTPlugin::OnUpdateAfter ( IndexT frameId,
Timing::Time time )
virtual

called after updating entities

◆ OnUpdateBefore()

void RenderModules::RTPlugin::OnUpdateBefore ( IndexT frameId,
Timing::Time time )
virtual

called before updating entities

◆ OnViewCreated()

void RenderModules::RTPlugin::OnViewCreated ( const Ptr< Graphics::View > & view)
virtual

called when a new view has been created

◆ OnWindowResized()

void RenderModules::RTPlugin::OnWindowResized ( IndexT windowId,
SizeT width,
SizeT height )
virtual

called if the window size has changed

Reimplemented in Dynui::ImguiRTPlugin.


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