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

Ogre::CompositorChain Class Reference

Chain of compositor effects applying to one viewport. More...

#include <OgreCompositorChain.h>

Inheritance diagram for Ogre::CompositorChain:

Ogre::RenderTargetListener List of all members.

Public Types

typedef std::vector< CompositorInstance * > Instances
 Data types.

typedef VectorIterator< InstancesInstanceIterator

Public Member Functions

 CompositorChain (Viewport *vp)
virtual ~CompositorChain ()
 Another gcc warning here, which is no problem because RenderTargetListener is never used to delete an object.

CompositorInstanceaddCompositor (CompositorPtr filter, size_t addPosition=LAST, size_t technique=BEST)
 Apply a compositor.

void removeCompositor (size_t position=LAST)
 Remove a compositor.

size_t getNumCompositors ()
 Get the number of compositors.

void removeAllCompositors ()
 Remove all compositors.

CompositorInstancegetCompositor (size_t index)
 Get compositor instance by position.

CompositorInstance_getOriginalSceneCompositor (void)
 Get the original scene compositor instance for this chain (internal use).

InstanceIterator getCompositors ()
 Get an iterator over the compositor instances.

void setCompositorEnabled (size_t position, bool state)
 Enable or disable a compositor, by position.

virtual void preRenderTargetUpdate (const RenderTargetEvent &evt)
virtual void preViewportUpdate (const RenderTargetViewportEvent &evt)
virtual void postViewportUpdate (const RenderTargetViewportEvent &evt)
virtual void viewportRemoved (const RenderTargetViewportEvent &evt)
void _markDirty ()
 Mark state as dirty, and to be recompiled next frame.

ViewportgetViewport ()
 Get viewport that is the target of this chain.

void _removeInstance (CompositorInstance *i)
 Remove a compositor by pointer.

virtual void postRenderTargetUpdate (const RenderTargetEvent &evt)
 Called just after a RenderTarget has been rendered to.

virtual void viewportAdded (const RenderTargetViewportEvent &evt)
 Called to notify listener that a Viewport has been added to the target in question.


Static Public Attributes

const size_t LAST = (size_t)-1
 Identifier for "last" compositor in chain.

const size_t BEST = 0
 Identifier for best technique.


Protected Member Functions

void _compile ()
 Compile this Composition chain into a series of RenderTarget operations.

void preTargetOperation (CompositorInstance::TargetOperation &op, Viewport *vp, Camera *cam)
 Prepare a viewport, the camera and the scene for a rendering operation.

void postTargetOperation (CompositorInstance::TargetOperation &op, Viewport *vp, Camera *cam)
 Restore a viewport, the camera and the scene after a rendering operation.

void destroyResources (void)
 destroy internal resources


Protected Attributes

ViewportmViewport
 Viewport affected by this CompositorChain.

CompositorInstancemOriginalScene
 Plainly renders the scene; implicit first compositor in the chain.

Instances mInstances
 Postfilter instances in this chain.

bool mDirty
 State needs recompile.

bool mAnyCompositorsEnabled
 Any compositors enabled?

CompositorInstance::CompiledState mCompiledState
 Compiled state (updated with _compile).

CompositorInstance::TargetOperation mOutputOperation
RQListener mOurListener
unsigned int mOldClearEveryFrameBuffers
 Old viewport settings.

uint32 mOldVisibilityMask
 Store old scene visibility mask.

bool mOldFindVisibleObjects
 Store old find visible objects.

float mOldLodBias
 Store old camera LOD bias.

String mOldMaterialScheme
 Store old viewport material scheme.


Detailed Description

Chain of compositor effects applying to one viewport.

Definition at line 37 of file OgreCompositorChain.h.


Member Typedef Documentation

typedef VectorIterator<Instances> Ogre::CompositorChain::InstanceIterator
 

Definition at line 49 of file OgreCompositorChain.h.

typedef std::vector<CompositorInstance*> Ogre::CompositorChain::Instances
 

Data types.

Definition at line 48 of file OgreCompositorChain.h.


Constructor & Destructor Documentation

Ogre::CompositorChain::CompositorChain Viewport vp  ) 
 

virtual Ogre::CompositorChain::~CompositorChain  )  [virtual]
 

Another gcc warning here, which is no problem because RenderTargetListener is never used to delete an object.

warning: `class Ogre::CompositorChain' has virtual functions but non-virtual destructor


Member Function Documentation

void Ogre::CompositorChain::_compile  )  [protected]
 

Compile this Composition chain into a series of RenderTarget operations.

CompositorInstance* Ogre::CompositorChain::_getOriginalSceneCompositor void   ) 
 

Get the original scene compositor instance for this chain (internal use).

Definition at line 83 of file OgreCompositorChain.h.

void Ogre::CompositorChain::_markDirty  ) 
 

Mark state as dirty, and to be recompiled next frame.

void Ogre::CompositorChain::_removeInstance CompositorInstance i  ) 
 

Remove a compositor by pointer.

This is internally used by CompositionTechnique to "weak" remove any instanced of a deleted technique.

CompositorInstance* Ogre::CompositorChain::addCompositor CompositorPtr  filter,
size_t  addPosition = LAST,
size_t  technique = BEST
 

Apply a compositor.

Initially, the filter is enabled.

Parameters:
filter Filter to apply
addPosition Position in filter chain to insert this filter at; defaults to the end (last applied filter)
technique Technique to use; CompositorChain::BEST (default) chooses to the best one available (first technique supported)

void Ogre::CompositorChain::destroyResources void   )  [protected]
 

destroy internal resources

CompositorInstance* Ogre::CompositorChain::getCompositor size_t  index  ) 
 

Get compositor instance by position.

InstanceIterator Ogre::CompositorChain::getCompositors  ) 
 

Get an iterator over the compositor instances.

The first compositor in this list is applied first, the last one is applied last.

size_t Ogre::CompositorChain::getNumCompositors  ) 
 

Get the number of compositors.

Viewport* Ogre::CompositorChain::getViewport  ) 
 

Get viewport that is the target of this chain.

virtual void Ogre::RenderTargetListener::postRenderTargetUpdate const RenderTargetEvent evt  )  [virtual, inherited]
 

Called just after a RenderTarget has been rendered to.

Remarks:
This event is called just after all the viewports attached to the target in question have been rendered to. You can perform your own manual rendering commands in this event handler if you like, these will be composited with the contents of the target already there (depending on the material settings you use etc).

Definition at line 100 of file OgreRenderTargetListener.h.

void Ogre::CompositorChain::postTargetOperation CompositorInstance::TargetOperation op,
Viewport vp,
Camera cam
[protected]
 

Restore a viewport, the camera and the scene after a rendering operation.

virtual void Ogre::CompositorChain::postViewportUpdate const RenderTargetViewportEvent evt  )  [virtual]
 

See also:
RenderTargetListener::postViewportUpdate

Reimplemented from Ogre::RenderTargetListener.

virtual void Ogre::CompositorChain::preRenderTargetUpdate const RenderTargetEvent evt  )  [virtual]
 

See also:
RenderTargetListener::preRenderTargetUpdate

Reimplemented from Ogre::RenderTargetListener.

void Ogre::CompositorChain::preTargetOperation CompositorInstance::TargetOperation op,
Viewport vp,
Camera cam
[protected]
 

Prepare a viewport, the camera and the scene for a rendering operation.

virtual void Ogre::CompositorChain::preViewportUpdate const RenderTargetViewportEvent evt  )  [virtual]
 

See also:
RenderTargetListener::preViewportUpdate

Reimplemented from Ogre::RenderTargetListener.

void Ogre::CompositorChain::removeAllCompositors  ) 
 

Remove all compositors.

void Ogre::CompositorChain::removeCompositor size_t  position = LAST  ) 
 

Remove a compositor.

Parameters:
position Position in filter chain of filter to remove; defaults to the end (last applied filter)

void Ogre::CompositorChain::setCompositorEnabled size_t  position,
bool  state
 

Enable or disable a compositor, by position.

Disabling a compositor stops it from rendering but does not free any resources. This can be more efficient than using removeCompositor and addCompositor in cases the filter is switched on and off a lot.

Parameters:
position Position in filter chain of filter

virtual void Ogre::RenderTargetListener::viewportAdded const RenderTargetViewportEvent evt  )  [virtual, inherited]
 

Called to notify listener that a Viewport has been added to the target in question.

Definition at line 120 of file OgreRenderTargetListener.h.

virtual void Ogre::CompositorChain::viewportRemoved const RenderTargetViewportEvent evt  )  [virtual]
 

See also:
RenderTargetListener::viewportRemoved

Reimplemented from Ogre::RenderTargetListener.


Member Data Documentation

const size_t Ogre::CompositorChain::BEST = 0 [static]
 

Identifier for best technique.

Definition at line 54 of file OgreCompositorChain.h.

const size_t Ogre::CompositorChain::LAST = (size_t)-1 [static]
 

Identifier for "last" compositor in chain.

Definition at line 52 of file OgreCompositorChain.h.

bool Ogre::CompositorChain::mAnyCompositorsEnabled [protected]
 

Any compositors enabled?

Definition at line 131 of file OgreCompositorChain.h.

CompositorInstance::CompiledState Ogre::CompositorChain::mCompiledState [protected]
 

Compiled state (updated with _compile).

Definition at line 134 of file OgreCompositorChain.h.

bool Ogre::CompositorChain::mDirty [protected]
 

State needs recompile.

Definition at line 129 of file OgreCompositorChain.h.

Instances Ogre::CompositorChain::mInstances [protected]
 

Postfilter instances in this chain.

Definition at line 126 of file OgreCompositorChain.h.

unsigned int Ogre::CompositorChain::mOldClearEveryFrameBuffers [protected]
 

Old viewport settings.

Definition at line 176 of file OgreCompositorChain.h.

bool Ogre::CompositorChain::mOldFindVisibleObjects [protected]
 

Store old find visible objects.

Definition at line 180 of file OgreCompositorChain.h.

float Ogre::CompositorChain::mOldLodBias [protected]
 

Store old camera LOD bias.

Definition at line 182 of file OgreCompositorChain.h.

String Ogre::CompositorChain::mOldMaterialScheme [protected]
 

Store old viewport material scheme.

Definition at line 184 of file OgreCompositorChain.h.

uint32 Ogre::CompositorChain::mOldVisibilityMask [protected]
 

Store old scene visibility mask.

Definition at line 178 of file OgreCompositorChain.h.

CompositorInstance* Ogre::CompositorChain::mOriginalScene [protected]
 

Plainly renders the scene; implicit first compositor in the chain.

Definition at line 123 of file OgreCompositorChain.h.

RQListener Ogre::CompositorChain::mOurListener [protected]
 

Definition at line 174 of file OgreCompositorChain.h.

CompositorInstance::TargetOperation Ogre::CompositorChain::mOutputOperation [protected]
 

Definition at line 135 of file OgreCompositorChain.h.

Viewport* Ogre::CompositorChain::mViewport [protected]
 

Viewport affected by this CompositorChain.

Definition at line 119 of file OgreCompositorChain.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:29 2006