From 5a5aaa4300e1cb005887bcac6a5ccfe61eb11387 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Wed, 14 Oct 2015 13:23:39 +0200 Subject: [PATCH] Clear intermediate render target in VisualBrush. --- .../Media/VisualBrushImpl.cs | 45 ++----------------- 1 file changed, 3 insertions(+), 42 deletions(-) diff --git a/src/Windows/Perspex.Direct2D1/Media/VisualBrushImpl.cs b/src/Windows/Perspex.Direct2D1/Media/VisualBrushImpl.cs index 74377b67e6..b3eaa81b50 100644 --- a/src/Windows/Perspex.Direct2D1/Media/VisualBrushImpl.cs +++ b/src/Windows/Perspex.Direct2D1/Media/VisualBrushImpl.cs @@ -5,6 +5,7 @@ using System; using Perspex.Layout; using Perspex.Media; using Perspex.Rendering; +using SharpDX; using SharpDX.Direct2D1; namespace Perspex.Direct2D1.Media @@ -57,56 +58,16 @@ namespace Perspex.Direct2D1.Media using (ctx.PushClip(drawRect)) using (ctx.PushPostTransform(transform)) { + intermediate.Clear(new Color4(0)); ctx.Render(visual); } + this.PlatformBrush = new BitmapBrush( target, intermediate.Bitmap, GetBitmapBrushProperties(brush), GetBrushProperties(brush, destinationRect)); } - - //var sourceRect = brush.SourceRect.ToPixels(layoutable.Bounds.Size); - //var destinationRect = brush.DestinationRect.ToPixels(targetSize); - //var bitmapSize = brush.TileMode == TileMode.None ? targetSize : destinationRect.Size; - //var scale = brush.Stretch.CalculateScaling(destinationRect.Size, sourceRect.Size); - //var translate = CalculateTranslate(brush, sourceRect, destinationRect, scale); - //var options = CompatibleRenderTargetOptions.None; - - //using (var brt = new BitmapRenderTarget(target, options, bitmapSize.ToSharpDX())) - //{ - // var renderer = new Renderer(brt); - // var transform = Matrix.CreateTranslation(-sourceRect.Position) * - // Matrix.CreateScale(scale) * - // Matrix.CreateTranslation(translate); - - // Rect drawRect; - - // if (brush.TileMode == TileMode.None) - // { - // drawRect = destinationRect; - // transform *= Matrix.CreateTranslation(destinationRect.Position); - // } - // else - // { - // drawRect = new Rect(0, 0, destinationRect.Width, destinationRect.Height); - // } - - // renderer.Render(visual, null, transform, drawRect); - - // var result = new BitmapBrush(brt, brt.Bitmap); - // result.ExtendModeX = GetExtendModeX(brush.TileMode); - // result.ExtendModeY = GetExtendModeY(brush.TileMode); - - // if (brush.TileMode != TileMode.None) - // { - // result.Transform = SharpDX.Matrix3x2.Translation( - // (float)destinationRect.X, - // (float)destinationRect.Y); - // } - - // PlatformBrush = result; - //} } } }