public override void OnMasterNodeReplaced(MasterNode newMasterNode) { base.OnMasterNodeReplaced(newMasterNode); m_functionGraph.FireMasterNodeReplacedEvent(newMasterNode); StandardSurfaceOutputNode surface = newMasterNode as StandardSurfaceOutputNode; if (surface != null) { surface.AdditionalDirectives.AddShaderFunctionItems(Function.AdditionalDirectives.DirectivesList); } else { if (ContainerGraph.ParentWindow.OutsideGraph.MultiPassMasterNodes.Count > 0) { List <TemplateMultiPassMasterNode> nodes = ContainerGraph.ParentWindow.OutsideGraph.MultiPassMasterNodes.NodesList; int count = nodes.Count; for (int i = 0; i < count; i++) { nodes[i].PassModule.AdditionalDirectives.AddShaderFunctionItems(Function.AdditionalDirectives.DirectivesList); } } } }