OGRE-Next  2.3
Object-Oriented Graphics Rendering Engine
Ogre::CompositorPassShadows Class Reference

CompositorPassShadows This class enables force-updating multiple shadow nodes in batch in its own pass. More...

#include <OgreCompositorPassShadows.h>

+ Inheritance diagram for Ogre::CompositorPassShadows:

Public Member Functions

 CompositorPassShadows (const CompositorPassShadowsDef *definition, Camera *defaultCamera, CompositorNode *parentNode, const RenderTargetViewDef *rtv)
 
 ~CompositorPassShadows () override
 
ResourceTransitionArray_getResourceTransitionsNonConst ()
 
virtual void analyzeBarriers (const bool bClearBarriers=true)
 Bakes all of the memory barriers / resource transition that will be needed before executing a GPU command like rendering, copying/blit or compute. More...
 
void execute (const Camera *lodCamera) override
 
Vector2 getActualDimensions () const
 
CameragetCullCamera () const
 
const CompositorPassDefgetDefinition () const
 
const CompositorNodegetParentNode () const
 
RenderPassDescriptorgetRenderPassDesc () const
 
const ResourceTransitionArraygetResourceTransitions () const
 
const FastArray< CompositorShadowNode * > & getShadowNodes () const
 
const CompositorTextureVecgetTextureDependencies () const
 
CompositorPassType getType () const
 
virtual void notifyCleared ()
 @See CompositorNode::_notifyCleared More...
 
virtual void notifyDestroyed (const UavBufferPacked *buffer)
 
virtual void notifyDestroyed (TextureGpu *channel)
 @See CompositorNode::notifyDestroyed More...
 
virtual bool notifyRecreated (const TextureGpu *channel)
 @See CompositorNode::notifyRecreated More...
 
virtual void notifyRecreated (const UavBufferPacked *oldBuffer, UavBufferPacked *newBuffer)
 
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 More...
 
void * operator new (size_t sz, void *ptr)
 placement operator new More...
 
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 More...
 
void profilingBegin ()
 
void profilingEnd ()
 
virtual void resetNumPassesLeft ()
 

Detailed Description

CompositorPassShadows This class enables force-updating multiple shadow nodes in batch in its own pass.

This is useful because shadow nodes may "break" a render pass in 3:

- Normal rendering to RT
- Shadow node update
- Continue Normal rendering to the same RT

This is an unnecessary performance hit on mobile (TBDR) thus executing them earlier allows for a smooth:

- Shadow node update (all of them? Up to you)
- Normal rendering to RT

Don't forget to set shadow nodes to reuse in the pass scene passes or else you may overwrite them unnecessarily

Author
Matias N. Goldberg
Version
1.0

Constructor & Destructor Documentation

◆ CompositorPassShadows()

Ogre::CompositorPassShadows::CompositorPassShadows ( const CompositorPassShadowsDef definition,
Camera defaultCamera,
CompositorNode parentNode,
const RenderTargetViewDef rtv 
)

◆ ~CompositorPassShadows()

Ogre::CompositorPassShadows::~CompositorPassShadows ( )
override

Member Function Documentation

◆ _getResourceTransitionsNonConst()

ResourceTransitionArray& Ogre::CompositorPass::_getResourceTransitionsNonConst ( )
inlineinherited

◆ analyzeBarriers()

virtual void Ogre::CompositorPass::analyzeBarriers ( const bool  bClearBarriers = true)
virtualinherited

Bakes all of the memory barriers / resource transition that will be needed before executing a GPU command like rendering, copying/blit or compute.

Parameters
bClearBarriersTrue to do mResourceTransitions.clear();

◆ execute()

void Ogre::CompositorPassShadows::execute ( const Camera lodCamera)
overridevirtual

Implements Ogre::CompositorPass.

◆ getActualDimensions()

Vector2 Ogre::CompositorPass::getActualDimensions ( ) const
inherited

◆ getCullCamera()

Camera* Ogre::CompositorPassShadows::getCullCamera ( ) const
inline

◆ getDefinition()

const CompositorPassDef* Ogre::CompositorPass::getDefinition ( ) const
inlineinherited

◆ getParentNode()

const CompositorNode* Ogre::CompositorPass::getParentNode ( ) const
inlineinherited

◆ getRenderPassDesc()

RenderPassDescriptor* Ogre::CompositorPass::getRenderPassDesc ( ) const
inlineinherited

◆ getResourceTransitions()

const ResourceTransitionArray& Ogre::CompositorPass::getResourceTransitions ( ) const
inlineinherited

◆ getShadowNodes()

const FastArray<CompositorShadowNode *>& Ogre::CompositorPassShadows::getShadowNodes ( ) const
inline

◆ getTextureDependencies()

const CompositorTextureVec& Ogre::CompositorPass::getTextureDependencies ( ) const
inlineinherited

◆ getType()

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

◆ notifyCleared()

virtual void Ogre::CompositorPass::notifyCleared ( )
virtualinherited

◆ notifyDestroyed() [1/2]

virtual void Ogre::CompositorPass::notifyDestroyed ( const UavBufferPacked buffer)
virtualinherited

◆ notifyDestroyed() [2/2]

virtual void Ogre::CompositorPass::notifyDestroyed ( TextureGpu channel)
virtualinherited

◆ notifyRecreated() [1/2]

virtual bool Ogre::CompositorPass::notifyRecreated ( const TextureGpu channel)
virtualinherited

◆ notifyRecreated() [2/2]

virtual void Ogre::CompositorPass::notifyRecreated ( const UavBufferPacked oldBuffer,
UavBufferPacked newBuffer 
)
virtualinherited

Reimplemented in Ogre::CompositorPassUav.

◆ operator delete() [1/3]

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr)
inlineinherited

◆ operator delete() [2/3]

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

◆ operator delete() [3/3]

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr,
void *   
)
inlineinherited

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

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete[] ( void *  ptr)
inlineinherited

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

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

◆ operator new() [1/3]

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new ( size_t  sz)
inlineinherited

◆ operator new() [2/3]

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

operator new, with debug line info

◆ operator new() [3/3]

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

placement operator new

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

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

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

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

array operator new, with debug line info

◆ profilingBegin()

void Ogre::CompositorPass::profilingBegin ( )
inherited

◆ profilingEnd()

void Ogre::CompositorPass::profilingEnd ( )
inherited

◆ resetNumPassesLeft()

virtual void Ogre::CompositorPass::resetNumPassesLeft ( )
virtualinherited

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