Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

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, MaterialPtrQuadMaterialMap
typedef std::pair< int, RenderSystemOperation * > RenderSystemOpPair
typedef std::vector< RenderSystemOpPairRenderSystemOpPairs
typedef std::vector< TargetOperationCompiledState

Public Member Functions

 CompositorInstance (Compositor *filter, CompositionTechnique *technique, CompositorChain *chain)
virtual ~CompositorInstance ()
void setEnabled (bool value)
 Set enabled flag.

bool getEnabled ()
 Get enabled flag.

virtual void _prepareForCompilation ()
 Prepare this instance for re-compilation.

virtual void _compileTargetOperations (CompiledState &compiledState)
 Recursively collect target states (except for final Pass).

virtual void _compileOutputOperation (TargetOperation &finalState)
 Compile the final (output) operation.

CompositorgetCompositor ()
 Get Compositor of which this is an instance.

CompositionTechniquegetTechnique ()
 Get CompositionTechnique used by this instance.

CompositorChaingetChain ()
 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< RenderSystemOperation * > RenderSystemOperations
 Render System operations queued by last compile, these are created by this instance thus managed and deleted by it.

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.

void clearCompilationState ()
 Destroy locally queued RenderTarget operations.

RenderTargetgetTargetForTex (const String &name)
 Get RenderTarget for a named local texture.

const StringgetSourceForTex (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

CompositormCompositor
 Compositor of which this is an instance.

CompositionTechniquemTechnique
 Composition technique used by this instance.

CompositorChainmChain
 Composition chain of which this instance is part.

bool mEnabled
 Is this instance enabled?

LocalTextureMap mLocalTextures
RenderSystemOperations mRenderSystemOperations
Listeners mListeners
CompositorInstancemPreviousInstance
 Previous instance (set by chain).


Friends

class CompositorChain


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 215 of file OgreCompositorInstance.h.

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

Map from name->local texture.

Definition at line 205 of file OgreCompositorInstance.h.

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

Definition at line 83 of file OgreCompositorInstance.h.

typedef std::vector<RenderSystemOperation*> Ogre::CompositorInstance::RenderSystemOperations [private]
 

Render System operations queued by last compile, these are created by this instance thus managed and deleted by it.

The list is cleared with clearCompilationState()

Definition at line 211 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.

virtual void Ogre::CompositorInstance::_prepareForCompilation  )  [virtual]
 

Prepare this instance for re-compilation.

Clear all state that has been set by the last compile.

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

void Ogre::CompositorInstance::clearCompilationState  )  [private]
 

Destroy locally queued RenderTarget operations.

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.

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 257 of file OgreCompositorInstance.h.


Member Data Documentation

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

Composition chain of which this instance is part.

Definition at line 201 of file OgreCompositorInstance.h.

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

Compositor of which this is an instance.

Definition at line 197 of file OgreCompositorInstance.h.

bool Ogre::CompositorInstance::mEnabled [private]
 

Is this instance enabled?

Definition at line 203 of file OgreCompositorInstance.h.

Listeners Ogre::CompositorInstance::mListeners [private]
 

Definition at line 216 of file OgreCompositorInstance.h.

LocalTextureMap Ogre::CompositorInstance::mLocalTextures [private]
 

Definition at line 206 of file OgreCompositorInstance.h.

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

Previous instance (set by chain).

Definition at line 219 of file OgreCompositorInstance.h.

RenderSystemOperations Ogre::CompositorInstance::mRenderSystemOperations [private]
 

Definition at line 212 of file OgreCompositorInstance.h.

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

Composition technique used by this instance.

Definition at line 199 of file OgreCompositorInstance.h.


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

Copyright © 2000-2005 by The OGRE Team
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Mar 12 14:38:30 2006