Browse Source

Clear intermediate render target in VisualBrush.

Steven Kirk 10 years ago
parent
commit
5a5aaa4300
1 changed files with 3 additions and 42 deletions
  1. 3 42
      src/Windows/Perspex.Direct2D1/Media/VisualBrushImpl.cs

+ 3 - 42
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;
-            //}
         }
     }
 }