|
|
|
@ -434,10 +434,16 @@ namespace Avalonia.Direct2D1.Media |
|
|
|
|
|
|
|
if (intermediateSize.Width >= 1 && intermediateSize.Height >= 1) |
|
|
|
{ |
|
|
|
// We need to ensure the size we're requesting is an integer pixel size, otherwise
|
|
|
|
// D2D alters the DPI of the render target, which messes stuff up. PixelSize.FromSize
|
|
|
|
// will do the rounding for us.
|
|
|
|
var dpi = new Vector(_deviceContext.DotsPerInch.Width, _deviceContext.DotsPerInch.Height); |
|
|
|
var pixelSize = PixelSize.FromSize(intermediateSize, dpi); |
|
|
|
|
|
|
|
using (var intermediate = new BitmapRenderTarget( |
|
|
|
_deviceContext, |
|
|
|
CompatibleRenderTargetOptions.None, |
|
|
|
intermediateSize.ToSharpDX())) |
|
|
|
pixelSize.ToSize(dpi).ToSharpDX())) |
|
|
|
{ |
|
|
|
using (var ctx = new RenderTarget(intermediate).CreateDrawingContext(_visualBrushRenderer)) |
|
|
|
{ |
|
|
|
|