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
|
| | 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
|
| |
| | 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::String & | GetClassName () const |
| | get the class name
|
| |
| Util::FourCC | GetClassFourCC () const |
| | get the class FourCC code
|
| |