Exemplo n.º 1
0
        private IRenderTargetBitmapImpl GetOverlay(Size size, double scaling)
        {
            size = new Size(size.Width * scaling, size.Height * scaling);

            if (_overlay == null ||
                _overlay.PixelWidth != size.Width ||
                _overlay.PixelHeight != size.Height)
            {
                _overlay?.Dispose();
                _overlay = _layerFactory.CreateLayer(null, size, 96 * scaling, 96 * scaling);
            }

            return(_overlay);
        }
Exemplo n.º 2
0
        private IRenderTargetBitmapImpl GetOverlay(
            IDrawingContextImpl parentContext,
            Size size,
            double scaling)
        {
            var pixelSize = size * scaling;

            if (_overlay == null ||
                _overlay.PixelWidth != pixelSize.Width ||
                _overlay.PixelHeight != pixelSize.Height)
            {
                _overlay?.Dispose();
                _overlay = parentContext.CreateLayer(size);
            }

            return(_overlay);
        }
Exemplo n.º 3
0
        private void RenderOverlay(Scene scene)
        {
            if (DrawDirtyRects)
            {
                var overlay = GetOverlay(scene.Size, scene.Scaling);

                using (var context = overlay.CreateDrawingContext(this))
                {
                    context.Clear(Colors.Transparent);
                    RenderDirtyRects(context);
                }
            }
            else
            {
                _overlay?.Dispose();
                _overlay = null;
            }
        }