OGRE-Next: Ogre::CompositorPassProvider Class Reference

| OGRE-Next 3.0.0 Object-Oriented Graphics Rendering Engine

Loading...
Searching...
No Matches
Ogre::CompositorPassProvider Class Referenceabstract
Core | Component » Scene

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:
[legend]

## Public Member Functions
virtual | ~CompositorPassProvider ()
virtual CompositorPass * | addPass (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'.
virtual CompositorPassDef * | addPassDef (CompositorPassType passType, IdString customId, CompositorTargetDef *parentTargetDef, CompositorNodeDef *parentNodeDef)=0
| Called from CompositorTargetDef::addPass when adding a Compositor Pass of type 'custom'.
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.

## 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 |
  customId | Arbitrary 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

References translateCustomPass().

## ◆ 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

  node | The AST node for this pass
  customPassDef | The CompositorPassDef returned in CompositorPassProvider::addPassDef

References translateCustomPass().

Referenced by translateCustomPass(), and translateCustomPass().

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

- OgreCompositorPassProvider.h