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); }
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); }
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; } }