public void Process(Pieces pieces, [NotNull] Stream stream) { if (stream == null) { throw new ArgumentNullException(nameof(stream)); } #if DEBUG AcToolsLogging.Write(pieces.CentralPiece); #endif var array = pieces.ToArray(); try { var textures = array.Select(LoadTexture).ToArray(); _effect.FxInputMaps.SetResourceArray(textures); _effect.FxTexMultiplier.Set(new Vector2(1f / _padding)); _effect.FxPaddingSize.Set(new Vector2(2f / (_padding - 1f))); Draw(); Texture2D.ToStream(DeviceContext, RenderBuffer, ImageFileFormat.Png, stream); } finally { foreach (var texture in array) { UnlockTexture(texture); } } }
public void Process(Pieces pieces, [NotNull] Stream stream) { if (stream == null) { throw new ArgumentNullException(nameof(stream)); } var textures = pieces.ToArray().Select(LoadTexture).ToArray(); _effect.FxInputMaps.SetResourceArray(textures); _effect.FxTexMultiplier.Set(new Vector2(1f / _padding)); _effect.FxPaddingSize.Set(new Vector2(2f / (_padding - 1f))); Draw(); Texture2D.ToStream(DeviceContext, RenderBuffer, ImageFileFormat.Png, stream); }