RenderModules::RTPlugin Class Reference
#include <rtplugin.h>
Inheritance diagram for RenderModules::RTPlugin:
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
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< InternalGraphics::InternalStage > &stage) |
called when a new stage has been created | |
virtual void | OnDiscardStage (const Ptr< InternalGraphics::InternalStage > &stage) |
called when a stage is discarded | |
virtual void | OnViewCreated (const Ptr< InternalGraphics::InternalView > &view) |
called when a new view has been created | |
virtual void | OnDiscardView (const Ptr< InternalGraphics::InternalView > &view) |
called when a view is being discarded | |
virtual void | OnAttachEntity (const Ptr< InternalGraphics::InternalGraphicsEntity > &entity) |
called when a graphics entity has been attached to a stage | |
virtual void | OnRemoveEntity (const Ptr< InternalGraphics::InternalGraphicsEntity > &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 | OnRenderFrameBatch (const Ptr< Frame::FrameBatch > &frameBatch) |
called when rendering a frame batch | |
virtual void | OnRenderWithoutView (IndexT frameId, Timing::Time time) |
called if no view exists, and no default camera is set in view | |
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::String & | GetClassName () const |
get the class name | |
Util::FourCC | GetClassFourCC () const |
get the class FourCC code | |
Static Public Member Functions | |
static void | DumpRefCountingLeaks () |
dump refcounting leaks, call at end of application (NEBULA3_DEBUG builds only!) |
Member Function Documentation
int Core::RefCounted::GetRefCount | ( | ) | const [inline, inherited] |
get the current refcount
Return the current refcount of the object.
void Core::RefCounted::AddRef | ( | ) | [inline, inherited] |
increment refcount by one
Increment the refcount of the object.
void Core::RefCounted::Release | ( | ) | [inline, inherited] |
decrement refcount and destroy object if refcount is zero
Decrement the refcount and destroy object if refcount is zero.
const Util::String & Core::RefCounted::GetClassName | ( | ) | const [inline, inherited] |
get the class name
Get the class name of the object.
Util::FourCC Core::RefCounted::GetClassFourCC | ( | ) | const [inline, inherited] |
get the class FourCC code
Get the class FourCC of the object.
void Core::RefCounted::DumpRefCountingLeaks | ( | ) | [static, inherited] |
dump refcounting leaks, call at end of application (NEBULA3_DEBUG builds only!)
This method should be called as the very last before an application exits.