OGRE-Next  4.0.0unstable
Object-Oriented Graphics Rendering Engine
Ogre::CompositorPassProvider Class Referenceabstract

Base class that users can derive from in order to implement custom passes for the compositor. More...

#include <OgreCompositorPassProvider.h>

+ Inheritance diagram for Ogre::CompositorPassProvider:

Public Member Functions

virtual ~CompositorPassProvider ()
 
virtual CompositorPassaddPass (const CompositorPassDef *definition, Camera *defaultCamera, CompositorNode *parentNode, const RenderTargetViewDef *rtvDef, SceneManager *sceneManager)=0
 Creates a CompositorPass from a CompositorPassDef for Compositor Pass of type 'custom'. More...
 
virtual CompositorPassDefaddPassDef (CompositorPassType passType, IdString customId, CompositorTargetDef *parentTargetDef, CompositorNodeDef *parentNodeDef)=0
 Called from CompositorTargetDef::addPass when adding a Compositor Pass of type 'custom'. More...
 
virtual void translateCustomPass (const AbstractNodePtr &node, CompositorPassDef *customPassDef)
 
virtual void translateCustomPass (ScriptCompiler *compiler, const AbstractNodePtr &node, IdString customId, CompositorPassDef *customPassDef)
 Optional override which allows users to define custom properties in the compositor scripts for custom passes. More...
 

Detailed Description

Base class that users can derive from in order to implement custom passes for the compositor.

How to implement one: You need to derive three classes:
  1. CompositorPassProvider
  2. CompositorPassDef
  3. CompositorPass

The first one is this class. You need to overload the two public virtuals. i.e. CompositorPassDef* MyProvider::addPassDef( ... ) { return OGRE_NEW MyPassDef( ... ); }

CompositorPass* MyProvider::addPass( ... ) { return OGRE_NEW MyPass( ... ); }

The second and third one are the implementations.

See also
CompositorPassScene and
CompositorPassSceneDef,
CompositorPassQuad and
CompositorPassQuadDef,
CompositorPassClear and
CompositorPassClearDef for examples on how to implement your own pass. For example, you could literally copy the code from CompositorPassClear & CompositorPassClearDef and implement your own custom pass that clears the render target.

Constructor & Destructor Documentation

◆ ~CompositorPassProvider()

virtual Ogre::CompositorPassProvider::~CompositorPassProvider ( )
virtual

Member Function Documentation

◆ addPass()

virtual CompositorPass* Ogre::CompositorPassProvider::addPass ( const CompositorPassDef definition,
Camera defaultCamera,
CompositorNode parentNode,
const RenderTargetViewDef rtvDef,
SceneManager sceneManager 
)
pure virtual

Creates a CompositorPass from a CompositorPassDef for Compositor Pass of type 'custom'.

Remarks
If you have multiple custom pass types then you will need to use dynamic_cast<>() on the CompositorPassDef to determine what custom pass it is.

◆ addPassDef()

virtual CompositorPassDef* Ogre::CompositorPassProvider::addPassDef ( CompositorPassType  passType,
IdString  customId,
CompositorTargetDef parentTargetDef,
CompositorNodeDef parentNodeDef 
)
pure virtual

Called from CompositorTargetDef::addPass when adding a Compositor Pass of type 'custom'.

Parameters
passType
customIdArbitrary ID in case there is more than one type of custom pass you want to implement. Defaults to IdString()
parentTargetDef
parentNodeDef
Returns

◆ translateCustomPass() [1/2]

virtual void Ogre::CompositorPassProvider::translateCustomPass ( const AbstractNodePtr node,
CompositorPassDef customPassDef 
)
inlinevirtual
Deprecated:
Use the other overload which has access to a lot more information

◆ translateCustomPass() [2/2]

virtual void Ogre::CompositorPassProvider::translateCustomPass ( ScriptCompiler compiler,
const AbstractNodePtr node,
IdString  customId,
CompositorPassDef customPassDef 
)
inlinevirtual

Optional override which allows users to define custom properties in the compositor scripts for custom passes.

Remarks
Please note this is called after CompositorPassProvider::addPassDef and similar to addPass you will need to dynamic_cast<>() to determine custom pass type.
Parameters
nodeThe AST node for this pass
customPassDefThe CompositorPassDef returned in CompositorPassProvider::addPassDef

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