# Ogre::CompositorInstance Class Reference

An instance of a Compositor object for one Viewport. More...

`#include <OgreCompositorInstance.h>`

List of all members.

## Public Types

typedef std::map< int, MaterialPtr > | QuadMaterialMap
typedef std::pair< int, RenderSystemOperation * > | RenderSystemOpPair
typedef std::vector< RenderSystemOpPair > | RenderSystemOpPairs
typedef std::vector< TargetOperation > | CompiledState

## Public Member Functions

| CompositorInstance (Compositor *filter, CompositionTechnique *technique, CompositorChain *chain)
virtual | ~CompositorInstance ()
void | setEnabled (bool value)
| Set enabled flag.
bool | getEnabled ()
| Get enabled flag.
const String & | getTextureInstanceName (const String &name)
| Get the instance name for a local texture.
virtual void | _compileTargetOperations (CompiledState &compiledState)
| Recursively collect target states (except for final Pass).
virtual void | _compileOutputOperation (TargetOperation &finalState)
| Compile the final (output) operation.
Compositor * | getCompositor ()
| Get Compositor of which this is an instance.
CompositionTechnique * | getTechnique ()
| Get CompositionTechnique used by this instance.
CompositorChain * | getChain ()
| Get Chain that this instance is part of.
void | addListener (Listener *l)
| Add a listener.
void | removeListener (Listener *l)
| Remove a listener.
void | _fireNotifyMaterialSetup (uint32 pass_id, MaterialPtr &mat)
| Notify listeners of a material compilation.
void | _fireNotifyMaterialRender (uint32 pass_id, MaterialPtr &mat)
| Notify listeners of a material render.

## Private Types

typedef std::map< String, TexturePtr > | LocalTextureMap
| Map from name->local texture.
typedef std::vector< Listener * > | Listeners
| Vector of listeners.

## Private Member Functions

virtual void | collectPasses (TargetOperation &finalState, CompositionTargetPass *target)
| Collect rendering passes.
MaterialPtr | createLocalMaterial ()
| Create a local dummy material with one technique but no passes.
void | createResources ()
| Create local rendertextures and other resources.
void | freeResources ()
| Destroy local rendertextures and other resources.
RenderTarget * | getTargetForTex (const String &name)
| Get RenderTarget for a named local texture.
const String & | getSourceForTex (const String &name)
| Get source texture name for a named local texture.
void | queueRenderSystemOp (TargetOperation &finalState, RenderSystemOperation *op)
| Queue a render system operation.

## Private Attributes

Compositor * | mCompositor
| Compositor of which this is an instance.
CompositionTechnique * | mTechnique
| Composition technique used by this instance.
CompositorChain * | mChain
| Composition chain of which this instance is part.
bool | mEnabled
| Is this instance enabled?
LocalTextureMap | mLocalTextures
Listeners | mListeners
CompositorInstance * | mPreviousInstance
| Previous instance (set by chain).

## Friends

class | CompositorChain

## Classes

class | Listener
| Provides an interface to "listen in" to to render system operations executed by this CompositorInstance. More...
class | RenderSystemOperation
| Specific render system operation. More...
class | TargetOperation
| Operation setup for a RenderTarget (collected). More...

## Detailed Description

An instance of a Compositor object for one Viewport.

It is part of the CompositorChain for a Viewport.

Definition at line 38 of file OgreCompositorInstance.h.

## Member Typedef Documentation

typedef std::vector<TargetOperation> Ogre::CompositorInstance::CompiledState

| Definition at line 138 of file OgreCompositorInstance.h.

typedef std::vector<Listener*> Ogre::CompositorInstance::Listeners `[private]`

| Vector of listeners. Definition at line 216 of file OgreCompositorInstance.h.

typedef std::map<String,TexturePtr> Ogre::CompositorInstance::LocalTextureMap `[private]`

| Map from name->local texture. Definition at line 212 of file OgreCompositorInstance.h.

typedef std::map<int, MaterialPtr> Ogre::CompositorInstance::QuadMaterialMap

| Definition at line 83 of file OgreCompositorInstance.h.

typedef std::pair<int, RenderSystemOperation*> Ogre::CompositorInstance::RenderSystemOpPair

| Definition at line 84 of file OgreCompositorInstance.h.

typedef std::vector<RenderSystemOpPair> Ogre::CompositorInstance::RenderSystemOpPairs

| Definition at line 85 of file OgreCompositorInstance.h.

## Constructor & Destructor Documentation

Ogre::CompositorInstance::CompositorInstance | ( | Compositor * | filter,
|  | CompositionTechnique * | technique,
|  | CompositorChain * | chain
| ) |

virtual Ogre::CompositorInstance::~CompositorInstance | ( |  | ) | `[virtual]`

## Member Function Documentation

virtual void Ogre::CompositorInstance::_compileOutputOperation | ( | TargetOperation & | finalState | ) | `[virtual]`

| Compile the final (output) operation. This is done seperately because this is combined with the input in chained filters.

virtual void Ogre::CompositorInstance::_compileTargetOperations | ( | CompiledState & | compiledState | ) | `[virtual]`

Recursively collect target states (except for final Pass).

Parameters:

  | compiledState | This vector will contain a list of TargetOperation objects

void Ogre::CompositorInstance::_fireNotifyMaterialRender | ( | uint32 | pass_id,
|  | MaterialPtr & | mat
| ) |

| Notify listeners of a material render.

void Ogre::CompositorInstance::_fireNotifyMaterialSetup | ( | uint32 | pass_id,
|  | MaterialPtr & | mat
| ) |

| Notify listeners of a material compilation.

void Ogre::CompositorInstance::addListener | ( | Listener * | l | ) |

Add a listener.

Listeners provide an interface to "listen in" to to render system operations executed by this CompositorInstance so that materials can be programmatically set up.

See also:
  CompositorInstance::Listener

virtual void Ogre::CompositorInstance::collectPasses | ( | TargetOperation & | finalState,
|  | CompositionTargetPass * | target
| ) | `[private, virtual]`

| Collect rendering passes. Here, passes are converted into render target operations and queued with queueRenderSystemOp.

MaterialPtr Ogre::CompositorInstance::createLocalMaterial | ( |  | ) | `[private]`

| Create a local dummy material with one technique but no passes. The material is detached from the Material Manager to make sure it is destroyed when going out of scope.

void Ogre::CompositorInstance::createResources | ( |  | ) | `[private]`

| Create local rendertextures and other resources. Builds mLocalTextures.

void Ogre::CompositorInstance::freeResources | ( |  | ) | `[private]`

| Destroy local rendertextures and other resources.

CompositorChain* Ogre::CompositorInstance::getChain | ( |  | ) |

| Get Chain that this instance is part of.

Compositor* Ogre::CompositorInstance::getCompositor | ( |  | ) |

| Get Compositor of which this is an instance.

bool Ogre::CompositorInstance::getEnabled | ( |  | ) |

| Get enabled flag.

const String& Ogre::CompositorInstance::getSourceForTex | ( | const String & | name | ) | `[private]`

| Get source texture name for a named local texture.

RenderTarget* Ogre::CompositorInstance::getTargetForTex | ( | const String & | name | ) | `[private]`

| Get RenderTarget for a named local texture.

CompositionTechnique* Ogre::CompositorInstance::getTechnique | ( |  | ) |

| Get CompositionTechnique used by this instance.

const String& Ogre::CompositorInstance::getTextureInstanceName | ( | const String & | name | ) |

Get the instance name for a local texture.

Note:
  It is only valid to call this when local textures have been loaded, which in practice means that the compositor instance is active. Calling it at other times will cause an exception. Note that since textures are cleaned up aggressively, this name is not guaranteed to stay the same if you disable and renable the compositor instance.

Parameters:

  | name | The name of the texture in the original compositor definition

Returns:
  The instance name for the texture, corresponds to a real texture

void Ogre::CompositorInstance::queueRenderSystemOp | ( | TargetOperation & | finalState,
|  | RenderSystemOperation * | op
| ) | `[private]`

Queue a render system operation.

Returns:
  destination pass

void Ogre::CompositorInstance::removeListener | ( | Listener * | l | ) |

Remove a listener.

See also:
  CompositorInstance::Listener

void Ogre::CompositorInstance::setEnabled | ( | bool | value | ) |

| Set enabled flag. The compositor instance will only render if it is enabled, otherwise it is pass-through.

## Friends And Related Function Documentation

friend class CompositorChain `[friend]`

| Definition at line 254 of file OgreCompositorInstance.h.

## Member Data Documentation

CompositorChain* Ogre::CompositorInstance::mChain `[private]`

| Composition chain of which this instance is part. Definition at line 208 of file OgreCompositorInstance.h.

Compositor* Ogre::CompositorInstance::mCompositor `[private]`

| Compositor of which this is an instance. Definition at line 204 of file OgreCompositorInstance.h.

bool Ogre::CompositorInstance::mEnabled `[private]`

| Is this instance enabled? Definition at line 210 of file OgreCompositorInstance.h.

Listeners Ogre::CompositorInstance::mListeners `[private]`

| Definition at line 217 of file OgreCompositorInstance.h.

LocalTextureMap Ogre::CompositorInstance::mLocalTextures `[private]`

| Definition at line 213 of file OgreCompositorInstance.h.

CompositorInstance* Ogre::CompositorInstance::mPreviousInstance `[private]`

| Previous instance (set by chain). Definition at line 220 of file OgreCompositorInstance.h.

CompositionTechnique* Ogre::CompositorInstance::mTechnique `[private]`

| Composition technique used by this instance. Definition at line 206 of file OgreCompositorInstance.h.

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

- OgreCompositorInstance.h

Copyright © 2000-2005 by The OGRE Team
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Sep 17 15:39:33 2006