|
| CompositorNodeDef (const String &name, CompositorManager2 *compositorManager) |
|
virtual | ~CompositorNodeDef () |
|
CompositorTargetDef * | addTargetPass (const String &renderTargetName, uint32 rtIndex=0) |
| Adds a new Target pass. More...
|
|
size_t | calculateNumPasses () const |
| Calculates the total number of passes in this node. More...
|
|
CompositorManager2 * | getCompositorManager () const |
|
IdString | getName () const |
|
String | getNameStr () const |
|
size_t | getNumOutputChannels () const |
| Returns the number of output channels. More...
|
|
size_t | getNumTargetPasses () const |
| Gets the number of target passes in this node. More...
|
|
size_t | getPassNumber (const CompositorPassDef *passDef) const |
| Returns the pass # of the given pass definition in this node. More...
|
|
bool | getStartEnabled () const |
|
CompositorTargetDef * | getTargetPass (size_t passIndex) |
| Retrieves an existing pass by it's given index. More...
|
|
const CompositorTargetDef * | getTargetPass (size_t passIndex) const |
|
void | getTextureSource (IdString name, size_t &index, TextureSource &textureSource) const |
| See http://www.research.att.com/~bs/bs_faq2.html#overloadderived. More...
|
|
void | getTextureSource (size_t outputChannel, size_t &index, TextureSource &textureSource) const |
| Retrieves in which container to look for when wanting to know the output texture using the mappings from input/local texture -> output. More...
|
|
void | mapOutputBufferChannel (size_t outChannel, IdString bufferName) |
| Maps the output channel to the given buffer name which can be either a local buffer or a reference to an input channel. More...
|
|
void | mapOutputChannel (size_t outChannel, IdString textureName) |
| Maps the output channel to the given texture name, which can be either a local texture or a reference to an input channel. More...
|
|
virtual void | postInitializePassDef (CompositorPassDef *passDef) |
| Called right after we create a pass definition. More...
|
|
void | removeTexture (IdString name) override |
| WARNING: Be very careful with this function. More...
|
|
void | setNumOutputBufferChannels (size_t numOuts) |
| Reserves enough memory for all output channel mappings (efficient allocation, better than using linked lists or other containers with two level of indirections) More...
|
|
void | setNumOutputChannels (size_t numOuts) |
| Reserves enough memory for all output channel mappings (efficient allocation, better than using linked lists or other containers with two level of indirections) More...
|
|
void | setNumTargetPass (size_t numPasses) |
| Reserves enough memory for all passes. More...
|
|
void | setStartEnabled (bool enabled) |
| Whether the node should be start as enabled when instantiated. More...
|
|
| TextureDefinitionBase (TextureSource defaultSource) |
|
TextureDefinition * | _addTextureDefinition (const IdString hashedName) |
| For internal use. Don't call this directly. More...
|
|
void | _addTextureSourceName (const IdString hashedName, size_t index, TextureSource textureSource) |
| For internal use. Don't call this directly. More...
|
|
void | addBufferDefinition (IdString name, size_t numElements, uint32 bytesPerElement, uint32 bindFlags, float widthFactor, float heightFactor) |
| Creates an UAV buffer. More...
|
|
virtual void | addBufferInput (size_t inputChannel, IdString name) |
| Buffers. More...
|
|
RenderTargetViewDef * | addRenderTextureView (IdString name) |
|
TextureDefinition * | addTextureDefinition (const String &name) |
| Creates a TextureDefinition with a given name, must be unique. More...
|
|
virtual IdString | addTextureSourceName (const String &name, size_t index, TextureSource textureSource) |
| Adds a texture name, whether a real one or an alias, and where to grab it from. More...
|
|
const BufferDefinitionVec & | getLocalBufferDefinitions () const |
|
BufferDefinitionVec & | getLocalBufferDefinitionsNonConst () |
| Returns the local buffer definitions. More...
|
|
const TextureDefinitionVec & | getLocalTextureDefinitions () const |
|
TextureDefinitionVec & | getLocalTextureDefinitionsNonConst () |
| Returns the local texture definitions. More...
|
|
const NameToChannelMap & | getNameToChannelMap () const |
|
size_t | getNumInputBufferChannels () const |
|
size_t | getNumInputChannels () const |
| This has O(N) complexity! (not cached, we look in mNameToChannelMap) More...
|
|
const RenderTargetViewDef * | getRenderTargetViewDef (IdString name) const |
|
RenderTargetViewDef * | getRenderTargetViewDefNonConstNoThrow (IdString name) |
|
void | getTextureSource (IdString name, size_t &index, TextureSource &textureSource) const |
| Retrieves in which container to look for when looking to which texture is a given name associated with. More...
|
|
void | removeAllRenderTextureViews () |
|
virtual void | removeBuffer (IdString name) |
| Remove a buffer. Buffer can come from an input channel, or a locally defined one. More...
|
|
void | removeRenderTextureView (IdString name) |
|
void | renameBuffer (IdString oldName, const String &newName) |
| Changes the name of a buffer. More...
|
|
void | renameTexture (IdString oldName, const String &newName) |
| Changes the name of a texture. More...
|
|
void | setNumLocalBufferDefinitions (size_t numTDs) |
| Reserves enough memory for all texture definitions. More...
|
|
void | setNumLocalTextureDefinitions (size_t numTDs) |
| Reserves enough memory for all texture definitions. More...
|
|
|
typedef vector< BufferDefinition >::type | BufferDefinitionVec |
|
typedef map< IdString, uint32 >::type | NameToChannelMap |
|
typedef vector< PixelFormatGpu >::type | PixelFormatGpuVec |
|
typedef vector< TextureDefinition >::type | TextureDefinitionVec |
|
enum | TextureSource { TEXTURE_INPUT
, TEXTURE_LOCAL
, TEXTURE_GLOBAL
, NUM_TEXTURES_SOURCES
} |
|
static UavBufferPacked * | createBuffer (const BufferDefinition &bufferDef, const TextureGpu *finalTarget, VaoManager *vaoManager) |
|
static void | createBuffers (const BufferDefinitionVec &bufferDefs, CompositorNamedBufferVec &inOutBufContainer, const TextureGpu *finalTarget, RenderSystem *renderSys) |
| Utility function to create the buffers based on a given set of buffer definitions and put them in a container. More...
|
|
static CompositorChannel | createTexture (const TextureDefinition &textureDef, const String &texName, const TextureGpu *finalTarget, RenderSystem *renderSys) |
|
static void | createTextures (const TextureDefinitionVec &textureDefs, CompositorChannelVec &inOutTexContainer, IdType id, const TextureGpu *finalTarget, RenderSystem *renderSys) |
| Utility function to create the textures based on a given set of texture definitions and put them in a container. More...
|
|
static void | decodeTexSource (uint32 encodedVal, size_t &outIdx, TextureSource &outTexSource) |
|
static void | destroyBuffers (const BufferDefinitionVec &bufferDefs, CompositorNamedBufferVec &inOutBufContainer, RenderSystem *renderSys) |
|
static void | destroyTextures (CompositorChannelVec &inOutTexContainer, RenderSystem *renderSys) |
|
static void | recreateResizableBuffers (const BufferDefinitionVec &bufferDefs, CompositorNamedBufferVec &inOutBufContainer, const TextureGpu *finalTarget, RenderSystem *renderSys, const CompositorNodeVec &connectedNodes, const CompositorPassVec *passes) |
| Destroys & recreates only the buffers that depend on the main RT (i.e. More...
|
|
static void | recreateResizableTextures01 (const TextureDefinitionVec &textureDefs, CompositorChannelVec &inOutTexContainer, const TextureGpu *finalTarget) |
| Destroys & recreates only the textures that depend on the main RT (e.g. More...
|
|
static void | recreateResizableTextures02 (const TextureDefinitionVec &textureDefs, CompositorChannelVec &inOutTexContainer, const CompositorNodeVec &connectedNodes, const CompositorPassVec *passes) |
| See recreateResizableTextures01 Updates involved RenderPassDescriptors. More...
|
|
static void | setupTexture (TextureGpu *tex, const TextureDefinition &textureDef, const TextureGpu *finalTarget) |
|
Compositor nodes are the core subject of compositing.
- They can define local textures and pass them to other nodes within the same workspace through their output channels. They can also receive textures through their input channels and send them through a different output channel to the next node(s). They can access global textures defined by the Workspace they belong to, but can't pass them to the output channels.
- How nodes input and output channels are wired together depends on the Workspace (See CompositorWorkspace and CompositorWorkspaceDef) A node cannot receive input from two nodes in the same channel, but it can send output to more than one node using the same output channel.
- A node whose workspace didn't connect all of its input channels cannot be executed, and unless it is disabled, the Compositor will be unable to render.
- The other core feature of nodes (besides textures and channels) is that they perform passes on RTs. A pass is the basic way to render: it can be a PASS_SCENE, PASS_QUAD, PASS_CLEAR, PASS_STENCIL, PASS_RESOLVE
- This is the definition. For the instantiation,
- See also
- CompositorNode
- Author
- Matias N. Goldberg
- Version
- 1.1