Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        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);
        }