public override bool Sync() { IsChanged = FAutoValidate ? FNodeIn.PinIsChanged : FNodeIn.Validate(); if (IsChanged) { Length = FNodeIn.SliceCount; using (var writer = GetWriter()) { object usI; FNodeIn.GetUpstreamInterface(out usI); var upstreamInterface = usI as IGenericIO; for (int i = 0; i < Length; i++) { int usS; T result = new T(); if (upstreamInterface != null) { FNodeIn.GetUpsreamSlice(i, out usS); IDX11ResourceDataProvider res = (IDX11ResourceDataProvider)upstreamInterface.GetSlice(usS); if (result == null) { res = new T(); } result.Assign(res); } writer.Write(result); } } } return(base.Sync()); }
public void Assign(IDX11ResourceDataProvider original) { if (original != null) { this.resources = original.Data; } else { this.resources = null; } }