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