public CompileTargetOperations ( List |
||
compiledState | List |
This vector will contain a list of TargetOperation objects |
리턴 | void |
public void CompileTargetOperations( List<CompositeTargetOperation> compiledState )
{
// Collect targets of previous state
if ( previousInstance != null )
{
previousInstance.CompileTargetOperations( compiledState );
}
// Texture targets
foreach ( CompositionTargetPass target in technique.TargetPasses )
{
CompositeTargetOperation ts = new CompositeTargetOperation( GetTextureInstance( target.OutputName ).GetBuffer().GetRenderTarget() );
// Set "only initial" flag, visibilityMask and lodBias according to CompositionTargetPass.
ts.OnlyInitial = target.OnlyInitial;
ts.VisibilityMask = target.VisibilityMask;
ts.LodBias = target.LodBias;
ts.ShadowsEnabled = target.ShadowsEnabled;
// Check for input mode previous
if ( target.InputMode == CompositorInputMode.Previous && previousInstance != null )
{
// Collect target state for previous compositor
// The TargetOperation for the final target is collected seperately as it is merged
// with later operations
previousInstance.CompileOutputOperation( ts );
}
// Collect passes of our own target
CollectPasses( ts, target );
compiledState.Add( ts );
}
}
///<summary> /// Recursively collect target states (except for final Pass). ///</summary> ///<param name="compiledState">This vector will contain a list of TargetOperation objects</param> public void CompileTargetOperations(List <CompositorTargetOperation> compiledState) { /// Collect targets of previous state if (previousInstance != null) { previousInstance.CompileTargetOperations(compiledState); } /// Texture targets foreach (CompositionTargetPass target in technique.TargetPasses) { CompositorTargetOperation ts = new CompositorTargetOperation(GetTargetForTex(target.OutputName)); /// Set "only initial" flag, visibilityMask and lodBias according to CompositionTargetPass. ts.OnlyInitial = target.OnlyInitial; ts.VisibilityMask = target.VisibilityMask; ts.LodBias = target.LodBias; /// Check for input mode previous if (target.InputMode == CompositorInputMode.Previous) { /// Collect target state for previous compositor /// The TargetOperation for the final target is collected seperately as it is merged /// with later operations previousInstance.CompileOutputOperation(ts); } /// Collect passes of our own target CollectPasses(ts, target); compiledState.Add(ts); } }