Ejemplo n.º 1
0
        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);
                    }
                }
            }
        }