Browse Source

Clear intermediate render target in VisualBrush.

pull/278/head
Steven Kirk 11 years ago
parent
commit
5a5aaa4300
  1. 45
      src/Windows/Perspex.Direct2D1/Media/VisualBrushImpl.cs

45
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;
//}
}
}
}

Loading…
Cancel
Save