示例#1
0
        public void Execute()
        {
            var pixelMapper = _pixelMapper.Snapshot();

            (int width, int height) = (pixelMapper.ViewPortWidth, pixelMapper.ViewPortHeight);
            using var bitmap        = new SKBitmap(width, height, SKImageInfo.PlatformColorType, SKAlphaType.Premul);
            using var skCanvas      = new SKCanvas(bitmap);
            using (ICanvas canvas = new SKCanvasWrapper(skCanvas))
            {
                foreach (var renderer in _renderers)
                {
                    if (!renderer.Enabled)
                    {
                        continue;
                    }
                    using var _ = canvas.Scope();
                    renderer.Render(canvas, width, height, pixelMapper);
                }
            }
            Clipboard.SetImage(bitmap.ToWriteableBitmap());
        }