OGRE: Ogre::CompositorPass Class Reference

| OGRE 2.2.4 Object-Oriented Graphics Rendering Engine

Public Member Functions | List of all members
Ogre::CompositorPass Class Referenceabstract
Core » Effects

Abstract class for compositor passes. More...

`#include <OgreCompositorPass.h>`

Inheritance diagram for Ogre::CompositorPass:
[legend]

## Public Member Functions
| CompositorPass (const CompositorPassDef *definition, CompositorNode *parentNode)
virtual | ~CompositorPass ()
virtual void | _placeBarriersAndEmulateUavExecution (BoundUav boundUavs[64], ResourceAccessMap &uavsAccess, ResourceLayoutMap &resourcesLayout)
| Emulates the execution of a UAV to understand memory dependencies, and adds a memory barrier / resource transition if we need to. More...
void | _removeAllBarriers (void)
void | addResourceTransition (ResourceLayoutMap::iterator currentLayout, ResourceLayout::Layout newLayout, uint32 readBarrierBits)
virtual void | execute (const Camera *lodCameraconst)=0
Vector2 | getActualDimensions (void) const
const CompositorPassDef * | getDefinition (void) const
const CompositorNode * | getParentNode (void) const
RenderPassDescriptor * | getRenderPassDesc (void) const
const CompositorTextureVec & | getTextureDependencies (void) const
CompositorPassType | getType () const
virtual void | notifyCleared (void)
| @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)
void | profilingEnd (void)
virtual void | resetNumPassesLeft (void)

## Detailed Description

Abstract class for compositor passes.

A pass can be a fullscreen quad, a scene rendering, a clear. etc. Derived classes are responsible for performing an actual job. Note that passes do not own RenderTargets, therefore we're not responsible for destroying it.

Author
  Matias N. Goldberg

Version
  1.0

## Constructor & Destructor Documentation

## ◆ CompositorPass()

Ogre::CompositorPass::CompositorPass | ( | const CompositorPassDef * | definition,
|  | CompositorNode * | parentNode
| ) |  |

## ◆ ~CompositorPass()

virtual Ogre::CompositorPass::~CompositorPass | ( |  | ) |
| virtual

## Member Function Documentation

## ◆ _placeBarriersAndEmulateUavExecution()

virtual void Ogre::CompositorPass::_placeBarriersAndEmulateUavExecution | ( | BoundUav | boundUavs[64],
|  | ResourceAccessMap & | uavsAccess,
|  | ResourceLayoutMap & | resourcesLayout
| ) |  |
| virtual

Emulates the execution of a UAV to understand memory dependencies, and adds a memory barrier / resource transition if we need to.

Remarks
  Note that an UAV->UAV resource transition is just a memory barrier.

Parameters

  boundUavs | [in/out] An array of the currently bound UAVs by slot. The derived class CompositorPassUav will write to them as part of the emulation. The base implementation reads from this value.
  uavsAccess | [in/out] A map with the last access flag used for each RenderTarget. We need it to identify RaR situations, which are the only ones that don't need a barrier (and also WaW hazards, when explicitly allowed by the pass). Note: We will set the access to ResourceAccess::Undefined to signal other passes that the UAV hazard already has a barrier (just in case there was one already created).
  resourcesLayout | [in/out] A map with the current layout of every RenderTarget used so far. Needed to identify if we need to change the resource layout to an UAV.

Reimplemented in Ogre::CompositorPassUav, Ogre::CompositorPassScene, Ogre::CompositorPassMipmap, Ogre::CompositorPassIblSpecular, Ogre::CompositorPassDepthCopy, Ogre::CompositorPassCompute, and Ogre::CompositorPassClear.

## ◆ _removeAllBarriers()

void Ogre::CompositorPass::_removeAllBarriers | ( | void |  | ) |

## ◆ addResourceTransition()

void Ogre::CompositorPass::addResourceTransition | ( | ResourceLayoutMap::iterator | currentLayout,
|  | ResourceLayout::Layout | newLayout,
|  | uint32 | readBarrierBits
| ) |  |

## ◆ execute()

virtual void Ogre::CompositorPass::execute | ( | const Camera * | lodCameraconst | ) |
| pure virtual

Implemented in Ogre::CompositorPassUav, Ogre::CompositorPassStencil, Ogre::CompositorPassScene, Ogre::CompositorPassQuad, Ogre::CompositorPassMipmap, Ogre::CompositorPassIblSpecular, Ogre::CompositorPassDepthCopy, Ogre::CompositorPassCompute, and Ogre::CompositorPassClear.

## ◆ getActualDimensions()

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

## ◆ getDefinition()

const CompositorPassDef* Ogre::CompositorPass::getDefinition | ( | void |  | ) | const
| inline

## ◆ getParentNode()

const CompositorNode* Ogre::CompositorPass::getParentNode | ( | void |  | ) | const
| inline

## ◆ getRenderPassDesc()

RenderPassDescriptor* Ogre::CompositorPass::getRenderPassDesc | ( | void |  | ) | const
| inline

## ◆ getTextureDependencies()

const CompositorTextureVec& Ogre::CompositorPass::getTextureDependencies | ( | void |  | ) | const
| inline

## ◆ getType()

CompositorPassType Ogre::CompositorPass::getType | ( | void |  | ) | const
| inline

## ◆ notifyCleared()

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

@See CompositorNode::_notifyCleared

Reimplemented in Ogre::CompositorPassScene.

## ◆ notifyDestroyed() [1/2]

virtual void Ogre::CompositorPass::notifyDestroyed | ( | const UavBufferPacked * | buffer | ) |
| virtual

## ◆ notifyDestroyed() [2/2]

virtual void Ogre::CompositorPass::notifyDestroyed | ( | TextureGpu * | channel | ) |
| virtual

@See CompositorNode::notifyDestroyed

## ◆ notifyRecreated() [1/2]

virtual bool Ogre::CompositorPass::notifyRecreated | ( | const TextureGpu * | channel | ) |
| virtual

@See CompositorNode::notifyRecreated

Reimplemented in Ogre::CompositorPassMipmap, and Ogre::CompositorPassIblSpecular.

## ◆ notifyRecreated() [2/2]

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

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

## ◆ profilingEnd()

void Ogre::CompositorPass::profilingEnd | ( | void |  | ) |

## ◆ resetNumPassesLeft()

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

Reimplemented in Ogre::CompositorPassIblSpecular.

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

- OgreCompositorPass.h