OGRE 2.3.3
Object-Oriented Graphics Rendering Engine
Loading...
Searching...
No Matches
Ogre::CompositorPassQuadDef Class Reference

#include <OgreCompositorPassQuadDef.h>

Inheritance diagram for Ogre::CompositorPassQuadDef:

Classes

struct  QuadTextureSource

Public Types

enum  FrustumCorners {
  NO_CORNERS , VIEW_SPACE_CORNERS , VIEW_SPACE_CORNERS_NORMALIZED , VIEW_SPACE_CORNERS_NORMALIZED_LH ,
  WORLD_SPACE_CORNERS , WORLD_SPACE_CORNERS_CENTERED , CAMERA_DIRECTION
}
typedef vector< QuadTextureSource >::type TextureSources
typedef vector< UavDependency >::type UavDependencyVec

Public Member Functions

 CompositorPassQuadDef (CompositorNodeDef *parentNodeDef, CompositorTargetDef *parentTargetDef)
void addQuadTextureSource (size_t texUnitIdx, const String &textureName)
 Indicates the pass to change the texture units to use the specified texture sources.
const CompositorTargetDefgetParentTargetDef (void) const
uint32 getRtIndex (void) const
const TextureSourcesgetTextureSources (void) const
CompositorPassType getType () const
void operator delete (void *ptr)
void operator delete (void *ptr, const char *, int, const char *)
void operator delete (void *ptr, void *)
void operator delete[] (void *ptr)
void operator delete[] (void *ptr, const char *, int, const char *)
void * operator new (size_t sz)
void * operator new (size_t sz, const char *file, int line, const char *func)
 operator new, with debug line info
void * operator new (size_t sz, void *ptr)
 placement operator new
void * operator new[] (size_t sz)
void * operator new[] (size_t sz, const char *file, int line, const char *func)
 array operator new, with debug line info
void setAllClearColours (const ColourValue &clearValue)
void setAllLoadActions (LoadAction::LoadAction loadAction)
void setAllStoreActions (StoreAction::StoreAction storeAction)

Public Attributes

bool mAnalyzeAllTextureLayouts
 When true, Ogre will check all bound textures in the material to see if they were properly transitioned to ResourceLayout::Texture, not just the textures referenced by the compositor.
bool mCameraCubemapReorient
 When true, the camera will be rotated 90°, -90° or 180° depending on the value of mRtIndex and then restored to its original rotation after we're done.
IdString mCameraName
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.
FrustumCorners mFrustumCorners
 Type of frustum corners to pass in the quad normals.
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.
bool mIsResolve
 When true, the user is telling Ogre this pass just performs a custom FSAA resolve filter.
LoadAction::LoadAction mLoadActionColour [OGRE_MAX_MULTIPLE_RENDER_TARGETS]
LoadAction::LoadAction mLoadActionDepth
LoadAction::LoadAction mLoadActionStencil
bool mMaterialIsHlms
String mMaterialName
 If true, mMaterialName is an Hlms material.
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
bool mUseQuad
 Whether to use a full screen quad or triangle.
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.

Member Typedef Documentation

◆ TextureSources

◆ UavDependencyVec

Member Enumeration Documentation

◆ FrustumCorners

Enumerator
NO_CORNERS 
VIEW_SPACE_CORNERS 
VIEW_SPACE_CORNERS_NORMALIZED 

When normalized, then the corner is divided by the far plane.

This causes vector.z to be always 1, but the length of the vector itself may not be unit-length.

VIEW_SPACE_CORNERS_NORMALIZED_LH 
WORLD_SPACE_CORNERS 

Left-handed.

WORLD_SPACE_CORNERS_CENTERED 
CAMERA_DIRECTION 

Constructor & Destructor Documentation

◆ CompositorPassQuadDef()

Ogre::CompositorPassQuadDef::CompositorPassQuadDef ( CompositorNodeDef * parentNodeDef,
CompositorTargetDef * parentTargetDef )
inline

Member Function Documentation

◆ addQuadTextureSource()

void Ogre::CompositorPassQuadDef::addQuadTextureSource ( size_t texUnitIdx,
const String & textureName )

Indicates the pass to change the texture units to use the specified texture sources.

@See QuadTextureSource for params

◆ getParentTargetDef()

const CompositorTargetDef * Ogre::CompositorPassDef::getParentTargetDef ( void ) const
inherited

◆ getRtIndex()

uint32 Ogre::CompositorPassDef::getRtIndex ( void ) const
inherited

◆ getTextureSources()

const TextureSources & Ogre::CompositorPassQuadDef::getTextureSources ( void ) const
inline

◆ getType()

CompositorPassType Ogre::CompositorPassDef::getType ( ) const
inlineinherited

◆ operator delete() [1/3]

void Ogre::AllocatedObject< ResourceAllocPolicy >::operator delete ( void * ptr)
inlineinherited

◆ operator delete() [2/3]

void Ogre::AllocatedObject< ResourceAllocPolicy >::operator delete ( void * ptr,
const char * ,
int ,
const char *  )
inlineinherited

◆ operator delete() [3/3]

void Ogre::AllocatedObject< ResourceAllocPolicy >::operator delete ( void * ptr,
void *  )
inlineinherited

◆ operator delete[]() [1/2]

void Ogre::AllocatedObject< ResourceAllocPolicy >::operator delete[] ( void * ptr)
inlineinherited

◆ operator delete[]() [2/2]

void Ogre::AllocatedObject< ResourceAllocPolicy >::operator delete[] ( void * ptr,
const char * ,
int ,
const char *  )
inlineinherited

◆ operator new() [1/3]

void * Ogre::AllocatedObject< ResourceAllocPolicy >::operator new ( size_t sz)
inlineinherited

◆ operator new() [2/3]

void * Ogre::AllocatedObject< ResourceAllocPolicy >::operator new ( size_t sz,
const char * file,
int line,
const char * func )
inlineinherited

operator new, with debug line info

◆ operator new() [3/3]

void * Ogre::AllocatedObject< ResourceAllocPolicy >::operator new ( size_t sz,
void * ptr )
inlineinherited

placement operator new

◆ operator new[]() [1/2]

void * Ogre::AllocatedObject< ResourceAllocPolicy >::operator new[] ( size_t sz)
inlineinherited

◆ operator new[]() [2/2]

void * Ogre::AllocatedObject< ResourceAllocPolicy >::operator new[] ( size_t sz,
const char * file,
int line,
const char * func )
inlineinherited

array operator new, with debug line info

◆ setAllClearColours()

void Ogre::CompositorPassDef::setAllClearColours ( const ColourValue & clearValue)
inherited

◆ setAllLoadActions()

void Ogre::CompositorPassDef::setAllLoadActions ( LoadAction::LoadAction loadAction)
inherited

◆ setAllStoreActions()

void Ogre::CompositorPassDef::setAllStoreActions ( StoreAction::StoreAction storeAction)
inherited

Member Data Documentation

◆ mAnalyzeAllTextureLayouts

bool Ogre::CompositorPassQuadDef::mAnalyzeAllTextureLayouts

When true, Ogre will check all bound textures in the material to see if they were properly transitioned to ResourceLayout::Texture, not just the textures referenced by the compositor.

Referenced by CompositorPassQuadDef().

◆ mCameraCubemapReorient

bool Ogre::CompositorPassQuadDef::mCameraCubemapReorient

When true, the camera will be rotated 90°, -90° or 180° depending on the value of mRtIndex and then restored to its original rotation after we're done.

Referenced by CompositorPassQuadDef().

◆ mCameraName

IdString Ogre::CompositorPassQuadDef::mCameraName

◆ mClearColour

ColourValue Ogre::CompositorPassDef::mClearColour[OGRE_MAX_MULTIPLE_RENDER_TARGETS]
inherited

Referenced by CompositorPassDef().

◆ mClearDepth

float Ogre::CompositorPassDef::mClearDepth
inherited

Referenced by CompositorPassDef().

◆ mClearStencil

uint32 Ogre::CompositorPassDef::mClearStencil
inherited

Referenced by CompositorPassDef().

◆ mColourWrite

bool Ogre::CompositorPassDef::mColourWrite
inherited

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().

◆ mExecutionMask

uint8 Ogre::CompositorPassDef::mExecutionMask
inherited

◆ mExposedTextures

IdStringVec Ogre::CompositorPassDef::mExposedTextures
inherited

◆ mFlushCommandBuffers

bool Ogre::CompositorPassDef::mFlushCommandBuffers
inherited

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().

◆ mFrustumCorners

FrustumCorners Ogre::CompositorPassQuadDef::mFrustumCorners

Type of frustum corners to pass in the quad normals.

mCameraName contains which camera's frustum to pass

Referenced by CompositorPassQuadDef().

◆ mIdentifier

uint32 Ogre::CompositorPassDef::mIdentifier
inherited

Custom value in case there's a listener attached (to identify the pass).

Referenced by CompositorPassDef().

◆ mIncludeOverlays

bool Ogre::CompositorPassDef::mIncludeOverlays
inherited

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().

◆ mIsResolve

bool Ogre::CompositorPassQuadDef::mIsResolve

When true, the user is telling Ogre this pass just performs a custom FSAA resolve filter.

Hence we should skip this pass for those APIs that don't support explicit resolving TODO: Not really implemented yet!!!

Remarks
@See TextureDefinitionBase::TextureDefinition::fsaaExplicitResolve

Referenced by CompositorPassQuadDef().

◆ mLoadActionColour

◆ mLoadActionDepth

◆ mLoadActionStencil

◆ mMaterialIsHlms

bool Ogre::CompositorPassQuadDef::mMaterialIsHlms

Referenced by CompositorPassQuadDef().

◆ mMaterialName

String Ogre::CompositorPassQuadDef::mMaterialName

If true, mMaterialName is an Hlms material.

◆ mNumInitialPasses

uint32 Ogre::CompositorPassDef::mNumInitialPasses
inherited

Number of times to perform the pass before stopping. -1 to never stop.

Referenced by CompositorPassDef().

◆ mNumViewports

uint32 Ogre::CompositorPassDef::mNumViewports
inherited

Referenced by CompositorPassDef().

◆ mProfilingId

String Ogre::CompositorPassDef::mProfilingId
inherited

◆ mReadOnlyDepth

bool Ogre::CompositorPassDef::mReadOnlyDepth
inherited

◆ mReadOnlyStencil

bool Ogre::CompositorPassDef::mReadOnlyStencil
inherited

◆ mShadowMapFullViewport

bool Ogre::CompositorPassDef::mShadowMapFullViewport
inherited

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().

◆ mShadowMapIdx

uint32 Ogre::CompositorPassDef::mShadowMapIdx
inherited

Shadow map index it belongs to (only filled in passes owned by Shadow Nodes).

Referenced by CompositorPassDef().

◆ mSkipLoadStoreSemantics

bool Ogre::CompositorPassDef::mSkipLoadStoreSemantics
inherited

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().

◆ mStoreActionColour

StoreAction::StoreAction Ogre::CompositorPassDef::mStoreActionColour[OGRE_MAX_MULTIPLE_RENDER_TARGETS]
inherited

Referenced by CompositorPassDef().

◆ mStoreActionDepth

StoreAction::StoreAction Ogre::CompositorPassDef::mStoreActionDepth
inherited

Referenced by CompositorPassDef().

◆ mStoreActionStencil

StoreAction::StoreAction Ogre::CompositorPassDef::mStoreActionStencil
inherited

Referenced by CompositorPassDef().

◆ mUavDependencies

UavDependencyVec Ogre::CompositorPassDef::mUavDependencies
inherited

◆ mUseQuad

bool Ogre::CompositorPassQuadDef::mUseQuad

Whether to use a full screen quad or triangle.

(default: false). Note that you may not always get the triangle (for example, if you ask for WORLD_SPACE_CORNERS)

Referenced by CompositorPassQuadDef().

◆ mViewportModifierMask

uint8 Ogre::CompositorPassDef::mViewportModifierMask
inherited

◆ mVpRect

ViewportRect Ogre::CompositorPassDef::mVpRect[16]
inherited

Viewport's region to draw.

◆ mWarnIfRtvWasFlushed

bool Ogre::CompositorPassDef::mWarnIfRtvWasFlushed
inherited

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.

Remarks
Flushes are caused by splitting rendering to the same RenderTarget in multiple passes while rendering to a different RenderTarget in the middle. It's not always possible to avoid it, but if so, consider doing it.
No warning will be issued if the RenderTargets getting flushed have their LoadAction set to LoadAction::Clear (or LoadAction::ClearOnTilers on tilers).

Referenced by CompositorPassDef().


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