OGRE 2.3.3
Object-Oriented Graphics Rendering Engine
Loading...
Searching...
No Matches
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)
 
virtual ~CompositorPassShadows ()
 
ResourceTransitionArray_getResourceTransitionsNonConst (void)
 
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.
 
virtual void execute (const Camera *lodCamera)
 
Vector2 getActualDimensions (void) const
 
CameragetCullCamera () const
 
const CompositorPassDefgetDefinition (void) const
 
const CompositorNodegetParentNode (void) const
 
RenderPassDescriptorgetRenderPassDesc (void) const
 
const ResourceTransitionArraygetResourceTransitions (void) const
 
const FastArray< CompositorShadowNode * > & getShadowNodes () const
 
const CompositorTextureVecgetTextureDependencies (void) const
 
CompositorPassType getType () const
 
virtual void notifyCleared (void)
 @See CompositorNode::_notifyCleared
 
virtual void notifyDestroyed (const UavBufferPacked *buffer)
 
virtual void notifyDestroyed (TextureGpu *channel)
 @See CompositorNode::notifyDestroyed
 
virtual bool notifyRecreated (const TextureGpu *channel)
 @See CompositorNode::notifyRecreated
 
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 *)
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, const char *file, int line, const char *func)
 operator new, with debug line info
 
voidoperator new (size_t sz, void *ptr)
 placement operator new
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, const char *file, int line, const char *func)
 array operator new, with debug line info
 
void profilingBegin (void)
 
void profilingEnd (void)
 
virtual void resetNumPassesLeft (void)
 

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

virtual Ogre::CompositorPassShadows::~CompositorPassShadows ( )
virtual

Member Function Documentation

◆ _getResourceTransitionsNonConst()

ResourceTransitionArray & Ogre::CompositorPass::_getResourceTransitionsNonConst ( void  )
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()

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

Implements Ogre::CompositorPass.

◆ getActualDimensions()

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

◆ getCullCamera()

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

◆ getDefinition()

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

◆ getParentNode()

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

◆ getRenderPassDesc()

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

◆ getResourceTransitions()

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

◆ getShadowNodes()

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

◆ getTextureDependencies()

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

◆ getType()

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

◆ notifyCleared()

virtual void Ogre::CompositorPass::notifyCleared ( void  )
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 ( void  )
inherited

◆ profilingEnd()

void Ogre::CompositorPass::profilingEnd ( void  )
inherited

◆ resetNumPassesLeft()

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

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