OGRE
2.2.4
Object-Oriented Graphics Rendering Engine
|
Abstract class for compositor passes. More...
#include <OgreCompositorPass.h>
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) |
CompositorNode::_notifyCleared More... | |
virtual void | notifyDestroyed (TextureGpu *channel) |
CompositorNode::notifyDestroyed More... | |
virtual void | notifyDestroyed (const UavBufferPacked *buffer) |
virtual bool | notifyRecreated (const TextureGpu *channel) |
CompositorNode::notifyRecreated More... | |
virtual void | notifyRecreated (const UavBufferPacked *oldBuffer, UavBufferPacked *newBuffer) |
void | operator delete (void *ptr) |
void | operator delete (void *ptr, void *) |
void | operator delete (void *ptr, const char *, int, const char *) |
void | operator delete[] (void *ptr) |
void | operator delete[] (void *ptr, const char *, int, const char *) |
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 * | operator new (size_t sz, void *ptr) |
placement operator new More... | |
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
array operator new, with debug line info More... | |
void * | operator new[] (size_t sz) |
void | profilingBegin (void) |
void | profilingEnd (void) |
virtual void | resetNumPassesLeft (void) |
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.
Ogre::CompositorPass::CompositorPass | ( | const CompositorPassDef * | definition, |
CompositorNode * | parentNode | ||
) |
|
virtual |
|
virtual |
Emulates the execution of a UAV to understand memory dependencies, and adds a memory barrier / resource transition if we need to.
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::CompositorPassCompute, Ogre::CompositorPassScene, Ogre::CompositorPassIblSpecular, Ogre::CompositorPassMipmap, Ogre::CompositorPassUav, Ogre::CompositorPassClear, and Ogre::CompositorPassDepthCopy.
void Ogre::CompositorPass::_removeAllBarriers | ( | void | ) |
void Ogre::CompositorPass::addResourceTransition | ( | ResourceLayoutMap::iterator | currentLayout, |
ResourceLayout::Layout | newLayout, | ||
uint32 | readBarrierBits | ||
) |
|
pure virtual |
Vector2 Ogre::CompositorPass::getActualDimensions | ( | void | ) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
virtual |
CompositorNode::_notifyCleared
Reimplemented in Ogre::CompositorPassScene.
|
virtual |
|
virtual |
|
virtual |
CompositorNode::notifyRecreated
Reimplemented in Ogre::CompositorPassIblSpecular, and Ogre::CompositorPassMipmap.
|
virtual |
Reimplemented in Ogre::CompositorPassUav.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
operator new, with debug line info
|
inlineinherited |
|
inlineinherited |
placement operator new
|
inlineinherited |
array operator new, with debug line info
|
inlineinherited |
void Ogre::CompositorPass::profilingBegin | ( | void | ) |
void Ogre::CompositorPass::profilingEnd | ( | void | ) |
|
virtual |
Reimplemented in Ogre::CompositorPassIblSpecular.