Go to the documentation of this file.
28 #ifndef __CompositorChain_H__
29 #define __CompositorChain_H__
62 static const size_t LAST = (size_t)-1;
64 static const size_t BEST = 0;
205 RQListener() : mOperation(0), mSceneManager(0), mRenderSystem(0), mViewport(0) {}
227 CompositorInstance::RenderSystemOpPairs::iterator currentOp,
lastOp;
250 #endif // __CompositorChain_H__
CompositorInstance::TargetOperation mOutputOperation
vector< CompositorInstance * >::type Instances
Data types.
void _removeInstance(CompositorInstance *i)
Remove a compositor by pointer.
CompositorInstance * getPreviousInstance(CompositorInstance *curr, bool activeOnly=true)
Get the previous instance in this chain to the one specified.
Defines the functionality of a 3D API.
virtual void postRenderTargetUpdate(const RenderTargetEvent &evt)
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
void destroyResources(void)
destroy internal resources
void notifyViewport(Viewport *vp)
Notify current destination viewport.
A viewpoint from which the scene will be rendered.
void _compile()
Compile this Composition chain into a series of RenderTarget operations.
Chain of compositor effects applying to one viewport.
CompositorInstance::CompiledState mCompiledState
Compiled state (updated with _compile)
Concrete IteratorWrapper for nonconst access to the underlying container.
void removeCompositor(size_t position=LAST)
Remove a compositor.
Abstract interface which classes must implement if they wish to receive events from the render queue.
void clearCompiledState()
Clear compiled state.
void createOriginalScene()
Instances mInstances
Postfilter instances in this chain.
virtual ~CompositorChain()
Another gcc warning here, which is no problem because RenderTargetListener is never used to delete an...
CompositorInstance::TargetOperation * mOperation
Listener interface so you can be notified of Viewport changes.
bool mAnyCompositorsEnabled
Any compositors enabled?
Operation setup for a RenderTarget (collected).
String mOldMaterialScheme
Store old viewport material scheme.
CompositorInstance * getNextInstance(CompositorInstance *curr, bool activeOnly=true)
Get the next instance in this chain to the one specified.
size_t getNumCompositors()
Get the number of compositors.
CompositorChain(Viewport *vp)
virtual void renderQueueStarted(uint8 queueGroupId, const String &invocation, bool &skipThisInvocation)
Event raised before a queue group is rendered.
virtual void renderQueueEnded(uint8 queueGroupId, const String &invocation, bool &repeatThisInvocation)
Event raised after a queue group is rendered.
String mOriginalSceneScheme
A interface class defining a listener which can be used to receive notifications of RenderTarget even...
static const String BLANK
Constant blank string, useful for returning by ref where local does not exist.
virtual void preViewportUpdate(const RenderTargetViewportEvent &evt)
Manages the organisation and rendering of a 'scene' i.e.
An abstraction of a viewport, i.e.
void setCompositorEnabled(size_t position, bool state)
Enable or disable a compositor, by position.
Struct containing information about a RenderTarget event.
void flushUpTo(uint8 id)
Flush remaining render system operations.
uint32 mOldVisibilityMask
Store old scene visibility mask.
InstanceIterator getCompositors()
Get an iterator over the compositor instances.
void _queuedOperation(CompositorInstance::RenderSystemOperation *op)
Internal method for registering a queued operation for deletion later.
CompositorInstance * _getOriginalSceneCompositor(void)
Get the original scene compositor instance for this chain (internal use).
bool mOldShadowsEnabled
Store old shadows enabled flag.
virtual void viewportDestroyed(Viewport *viewport)
Viewport * getViewport()
Get viewport that is the target of this chain.
CompositorInstance * mOriginalScene
Plainly renders the scene; implicit first compositor in the chain.
void destroyOriginalScene()
Specific render system operation.
RenderSystem * mRenderSystem
bool mDirty
State needs recompile.
float mOldLodBias
Store old camera LOD bias.
Reference-counted shared pointer, used for objects where implicit destruction is required.
virtual void viewportDimensionsChanged(Viewport *viewport)
virtual void postViewportUpdate(const RenderTargetViewportEvent &evt)
void _markDirty()
Mark state as dirty, and to be recompiled next frame.
CompositorInstance * getCompositor(const String &name)
Get compositor instance by name.
void removeAllCompositors()
Remove all compositors.
vector< TargetOperation >::type CompiledState
SceneManager * mSceneManager
vector< CompositorInstance::RenderSystemOperation * >::type RenderSystemOperations
Render System operations queued by last compile, these are created by this instance thus managed and ...
unsigned int mOldClearEveryFrameBuffers
Old viewport settings.
Struct containing information about a RenderTarget Viewport-specific event.
An instance of a Compositor object for one Viewport.
CompositorInstance::RenderSystemOpPairs::iterator lastOp
void postTargetOperation(CompositorInstance::TargetOperation &op, Viewport *vp, Camera *cam)
Restore a viewport, the camera and the scene after a rendering operation.
Render queue listener used to set up rendering events.
Viewport * mViewport
Viewport affected by this CompositorChain.
void preTargetOperation(CompositorInstance::TargetOperation &op, Viewport *vp, Camera *cam)
Prepare a viewport, the camera and the scene for a rendering operation.
RenderSystemOperations mRenderSystemOperations
VectorIterator< Instances > InstanceIterator
virtual void preRenderTargetUpdate(const RenderTargetEvent &evt)
virtual void viewportCameraChanged(Viewport *viewport)
void setOperation(CompositorInstance::TargetOperation *op, SceneManager *sm, RenderSystem *rs)
Set current operation and target.
bool mOldFindVisibleObjects
Store old find visible objects.
CompositorInstance * addCompositor(CompositorPtr filter, size_t addPosition=LAST, const String &scheme=StringUtil::BLANK)
Apply a compositor.
CompositorInstance * getCompositor(size_t index)
Get compositor instance by position.
Copyright © 2012 Torus Knot Software Ltd

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.