![]() |
OGRE-Next 3.0.0
Object-Oriented Graphics Rendering Engine
|
Interface to abstract all types of pass definitions (see CompositorPassType): More...
#include <OgreCompositorPassDef.h>
Classes | |
struct | UavDependency |
struct | ViewportRect |
Public Types | |
typedef vector< UavDependency >::type | UavDependencyVec |
Public Member Functions | |
CompositorPassDef (CompositorPassType passType, CompositorTargetDef *parentTargetDef) | |
virtual | ~CompositorPassDef () |
const CompositorTargetDef * | getParentTargetDef () const |
uint32 | getRtIndex () const |
CompositorPassType | getType () const |
void | setAllClearColours (const ColourValue &clearValue) |
void | setAllLoadActions (LoadAction::LoadAction loadAction) |
void | setAllStoreActions (StoreAction::StoreAction storeAction) |
Public Attributes | |
ColourValue | mClearColour [OGRE_MAX_MULTIPLE_RENDER_TARGETS] |
float | mClearDepth |
uint32 | mClearStencil |
bool | mColourWrite |
When false will not really bind the RenderTarget for rendering and use a null colour buffer instead. | |
uint8 | mExecutionMask |
IdStringVec | mExposedTextures |
bool | mFlushCommandBuffers |
Whether to flush the command buffer at the end of the pass. | |
uint32 | mIdentifier |
Custom value in case there's a listener attached (to identify the pass) | |
bool | mIncludeOverlays |
TODO: Refactor OgreOverlay to remove this design atrocity. | |
LoadAction::LoadAction | mLoadActionColour [OGRE_MAX_MULTIPLE_RENDER_TARGETS] |
LoadAction::LoadAction | mLoadActionDepth |
LoadAction::LoadAction | mLoadActionStencil |
uint32 | mNumInitialPasses |
Number of times to perform the pass before stopping. -1 to never stop. | |
uint32 | mNumViewports |
String | mProfilingId |
bool | mReadOnlyDepth |
bool | mReadOnlyStencil |
bool | mShadowMapFullViewport |
Only used if mShadowMapIdx is valid (if pass is owned by Shadow Nodes). | |
uint32 | mShadowMapIdx |
Shadow map index it belongs to (only filled in passes owned by Shadow Nodes) | |
bool | mSkipLoadStoreSemantics |
Ignore mLoadAction*/mStoreAction*. | |
StoreAction::StoreAction | mStoreActionColour [OGRE_MAX_MULTIPLE_RENDER_TARGETS] |
StoreAction::StoreAction | mStoreActionDepth |
StoreAction::StoreAction | mStoreActionStencil |
UavDependencyVec | mUavDependencies |
uint8 | mViewportModifierMask |
ViewportRect | mVpRect [16] |
Viewport's region to draw. | |
bool | mWarnIfRtvWasFlushed |
Will issue a warning (by raising an exception) if Ogre is forced to flush the RenderTarget, which is very bad for performance on mobile, and can cause serious performance problems in Desktop if using MSAA, and also cause correctness problems (i.e. | |
Interface to abstract all types of pass definitions (see CompositorPassType):
This class doesn't do much on its own. See the derived types for more information A definition is shared by all pass instantiations (i.e. Five CompositorPassScene can share the same CompositorPassSceneDef) and are assumed to remain const throughout their lifetime.
typedef vector<UavDependency>::type Ogre::CompositorPassDef::UavDependencyVec |
|
inline |
References Ogre::ColourValue::Black, Ogre::LoadAction::Load, mClearColour, mClearDepth, mClearStencil, mColourWrite, mExecutionMask, mFlushCommandBuffers, mIdentifier, mIncludeOverlays, mLoadActionColour, mLoadActionDepth, mLoadActionStencil, mNumInitialPasses, mNumViewports, mReadOnlyDepth, mReadOnlyStencil, mShadowMapFullViewport, mShadowMapIdx, mSkipLoadStoreSemantics, mStoreActionColour, mStoreActionDepth, mStoreActionStencil, mViewportModifierMask, mWarnIfRtvWasFlushed, OGRE_MAX_MULTIPLE_RENDER_TARGETS, and Ogre::StoreAction::StoreOrResolve.
Referenced by Ogre::CompositorPassClearDef::CompositorPassClearDef(), Ogre::CompositorPassComputeDef::CompositorPassComputeDef(), Ogre::CompositorPassDepthCopyDef::CompositorPassDepthCopyDef(), Ogre::CompositorPassIblSpecularDef::CompositorPassIblSpecularDef(), Ogre::CompositorPassMipmapDef::CompositorPassMipmapDef(), Ogre::CompositorPassQuadDef::CompositorPassQuadDef(), Ogre::CompositorPassSceneDef::CompositorPassSceneDef(), Ogre::CompositorPassUavDef::CompositorPassUavDef(), and Ogre::CompositorPassWarmUpDef::CompositorPassWarmUpDef().
|
virtual |
const CompositorTargetDef * Ogre::CompositorPassDef::getParentTargetDef | ( | ) | const |
uint32 Ogre::CompositorPassDef::getRtIndex | ( | ) | const |
|
inline |
void Ogre::CompositorPassDef::setAllClearColours | ( | const ColourValue & | clearValue | ) |
void Ogre::CompositorPassDef::setAllLoadActions | ( | LoadAction::LoadAction | loadAction | ) |
Referenced by Ogre::CompositorPassWarmUpDef::CompositorPassWarmUpDef().
void Ogre::CompositorPassDef::setAllStoreActions | ( | StoreAction::StoreAction | storeAction | ) |
ColourValue Ogre::CompositorPassDef::mClearColour[OGRE_MAX_MULTIPLE_RENDER_TARGETS] |
Referenced by CompositorPassDef().
float Ogre::CompositorPassDef::mClearDepth |
Referenced by CompositorPassDef().
uint32 Ogre::CompositorPassDef::mClearStencil |
Referenced by CompositorPassDef().
bool Ogre::CompositorPassDef::mColourWrite |
When false will not really bind the RenderTarget for rendering and use a null colour buffer instead.
Useful for depth prepass, or if the RTT is actually an UAV. Some passes may ignore this setting (e.g. Clear passes)
Referenced by CompositorPassDef().
uint8 Ogre::CompositorPassDef::mExecutionMask |
Referenced by Ogre::CompositorPassClearDef::CompositorPassClearDef(), and CompositorPassDef().
IdStringVec Ogre::CompositorPassDef::mExposedTextures |
bool Ogre::CompositorPassDef::mFlushCommandBuffers |
Whether to flush the command buffer at the end of the pass.
This can incur in a performance overhead (see OpenGL's glFlush and D3D11' ID3D11DeviceContext::Flush) for info. Usually you want to leave this off. However for VR applications that must meet VSync, profiling may show your workload benefits from submitting earlier so the GPU can start right away executing rendering commands.
The main reason to use this is in CPU-bound scenarios where the GPU starts too late after sitting idle.
Referenced by CompositorPassDef().
uint32 Ogre::CompositorPassDef::mIdentifier |
Custom value in case there's a listener attached (to identify the pass)
Referenced by CompositorPassDef().
bool Ogre::CompositorPassDef::mIncludeOverlays |
TODO: Refactor OgreOverlay to remove this design atrocity.
A custom overlay pass is a better alternative (or just use their own RQ)
Referenced by CompositorPassDef(), and Ogre::CompositorPassSceneDef::CompositorPassSceneDef().
LoadAction::LoadAction Ogre::CompositorPassDef::mLoadActionColour[OGRE_MAX_MULTIPLE_RENDER_TARGETS] |
LoadAction::LoadAction Ogre::CompositorPassDef::mLoadActionDepth |
LoadAction::LoadAction Ogre::CompositorPassDef::mLoadActionStencil |
uint32 Ogre::CompositorPassDef::mNumInitialPasses |
Number of times to perform the pass before stopping. -1 to never stop.
Referenced by CompositorPassDef().
uint32 Ogre::CompositorPassDef::mNumViewports |
Referenced by CompositorPassDef().
String Ogre::CompositorPassDef::mProfilingId |
bool Ogre::CompositorPassDef::mReadOnlyDepth |
bool Ogre::CompositorPassDef::mReadOnlyStencil |
bool Ogre::CompositorPassDef::mShadowMapFullViewport |
Only used if mShadowMapIdx is valid (if pass is owned by Shadow Nodes).
If true, we won't force the viewport to fit the region of the UV atlas on the texture, and respect mVp* settings instead.
Referenced by CompositorPassDef().
uint32 Ogre::CompositorPassDef::mShadowMapIdx |
Shadow map index it belongs to (only filled in passes owned by Shadow Nodes)
Referenced by CompositorPassDef().
bool Ogre::CompositorPassDef::mSkipLoadStoreSemantics |
Ignore mLoadAction*/mStoreAction*.
Useful when doing multiple passes and you want to continue using the same pass semantics opened by a previous pass
Be careful with this setting. It can silently break a lot of stuff
Only valid for PASS_QUAD and PASS_SCENE
Referenced by CompositorPassDef().
StoreAction::StoreAction Ogre::CompositorPassDef::mStoreActionColour[OGRE_MAX_MULTIPLE_RENDER_TARGETS] |
Referenced by CompositorPassDef().
StoreAction::StoreAction Ogre::CompositorPassDef::mStoreActionDepth |
Referenced by CompositorPassDef().
StoreAction::StoreAction Ogre::CompositorPassDef::mStoreActionStencil |
Referenced by CompositorPassDef().
UavDependencyVec Ogre::CompositorPassDef::mUavDependencies |
uint8 Ogre::CompositorPassDef::mViewportModifierMask |
Referenced by Ogre::CompositorPassClearDef::CompositorPassClearDef(), and CompositorPassDef().
ViewportRect Ogre::CompositorPassDef::mVpRect[16] |
Viewport's region to draw.
bool Ogre::CompositorPassDef::mWarnIfRtvWasFlushed |
Will issue a warning (by raising an exception) if Ogre is forced to flush the RenderTarget, which is very bad for performance on mobile, and can cause serious performance problems in Desktop if using MSAA, and also cause correctness problems (i.e.
bad rendering) if store action is StoreAction::Resolve.
Referenced by CompositorPassDef().