//----------------------------------------------------------------------- void CompositorInstance::_compileTargetOperations(CompiledState &compiledState) { /// Collect targets of previous state if(mPreviousInstance) mPreviousInstance->_compileTargetOperations(compiledState); /// Texture targets CompositionTechnique::TargetPassIterator it = mTechnique->getTargetPassIterator(); while(it.hasMoreElements()) { CompositionTargetPass *target = it.getNext(); TargetOperation ts(getTargetForTex(target->getOutputName())); /// Set "only initial" flag, visibilityMask and lodBias according to CompositionTargetPass. ts.onlyInitial = target->getOnlyInitial(); ts.visibilityMask = target->getVisibilityMask(); ts.lodBias = target->getLodBias(); /// Check for input mode previous if(target->getInputMode() == CompositionTargetPass::IM_PREVIOUS) { /// Collect target state for previous compositor /// The TargetOperation for the final target is collected seperately as it is merged /// with later operations mPreviousInstance->_compileOutputOperation(ts); } /// Collect passes of our own target collectPasses(ts, target); compiledState.push_back(ts); } }
//--------------------------------------------------------------------- RenderTarget* CompositorInstance::getRenderTarget(const String& name) { return getTargetForTex(name); }