public void Evaluate(int SpreadMax) { if (FProcessor == null) { FProcessor = new ProcessDestination <AsTextureDX11Instance>(FPinInImage); } bool needsInit = FProcessor.CheckInputSize(); if (needsInit) { foreach (var textureOut in FTextureOutput) { if (textureOut != null) { textureOut.Dispose(); } } FTextureOutput.SliceCount = FProcessor.SliceCount; for (int i = 0; i < FProcessor.SliceCount; i++) { var textureSlice = new DX11Resource <DX11DynamicTexture2D>(); FProcessor[i].OutputSlice = textureSlice; FTextureOutput[i] = textureSlice; } } }
//called when data for any output pin is requested public void Evaluate(int SpreadMax) { if (FProcessor == null) FProcessor = new ProcessDestination<AsTextureInstance>(FPinInImage); bool needsInit = FProcessor.CheckInputSize(); for (int i = 0; i < FProcessor.SliceCount; i++) needsInit |= FProcessor[i].NeedsTexture; if (needsInit) { foreach (var processor in FProcessor) processor.Logger = this.FLogger; Reinitialize(); } SetSliceCount(FProcessor.SliceCount); Update(); }