|
|
@ -11,8 +11,7 @@ namespace Avalonia.Skia |
|
|
{ |
|
|
{ |
|
|
internal class DrawingContextImpl : IDrawingContextImpl |
|
|
internal class DrawingContextImpl : IDrawingContextImpl |
|
|
{ |
|
|
{ |
|
|
private readonly double _dpiX; |
|
|
private readonly Vector _dpi; |
|
|
private readonly double _dpiY; |
|
|
|
|
|
private readonly Matrix? _postTransform; |
|
|
private readonly Matrix? _postTransform; |
|
|
private readonly IDisposable[] _disposables; |
|
|
private readonly IDisposable[] _disposables; |
|
|
private readonly IVisualBrushRenderer _visualBrushRenderer; |
|
|
private readonly IVisualBrushRenderer _visualBrushRenderer; |
|
|
@ -22,16 +21,13 @@ namespace Avalonia.Skia |
|
|
|
|
|
|
|
|
public DrawingContextImpl( |
|
|
public DrawingContextImpl( |
|
|
SKCanvas canvas, |
|
|
SKCanvas canvas, |
|
|
double dpiX, |
|
|
Vector dpi, |
|
|
double dpiY, |
|
|
|
|
|
IVisualBrushRenderer visualBrushRenderer, |
|
|
IVisualBrushRenderer visualBrushRenderer, |
|
|
params IDisposable[] disposables) |
|
|
params IDisposable[] disposables) |
|
|
{ |
|
|
{ |
|
|
_dpiX = dpiX; |
|
|
_dpi = dpi; |
|
|
_dpiY = dpiY; |
|
|
if (dpi.X != 96 || dpi.Y != 96) |
|
|
|
|
|
_postTransform = Matrix.CreateScale(dpi.X / 96, dpi.Y / 96); |
|
|
if (dpiX != 96 || dpiY != 96) |
|
|
|
|
|
_postTransform = Matrix.CreateScale(dpiX / 96, dpiY / 96); |
|
|
|
|
|
_visualBrushRenderer = visualBrushRenderer; |
|
|
_visualBrushRenderer = visualBrushRenderer; |
|
|
_disposables = disposables; |
|
|
_disposables = disposables; |
|
|
Canvas = canvas; |
|
|
Canvas = canvas; |
|
|
@ -217,7 +213,7 @@ namespace Avalonia.Skia |
|
|
|
|
|
|
|
|
if (intermediateSize.Width >= 1 && intermediateSize.Height >= 1) |
|
|
if (intermediateSize.Width >= 1 && intermediateSize.Height >= 1) |
|
|
{ |
|
|
{ |
|
|
var intermediate = new BitmapImpl((int)intermediateSize.Width, (int)intermediateSize.Height, _dpiX, _dpiY); |
|
|
var intermediate = new BitmapImpl((int)intermediateSize.Width, (int)intermediateSize.Height, _dpi); |
|
|
|
|
|
|
|
|
using (var ctx = intermediate.CreateDrawingContext(_visualBrushRenderer)) |
|
|
using (var ctx = intermediate.CreateDrawingContext(_visualBrushRenderer)) |
|
|
{ |
|
|
{ |
|
|
@ -242,7 +238,7 @@ namespace Avalonia.Skia |
|
|
if (tileBrush != null && tileBrushImage != null) |
|
|
if (tileBrush != null && tileBrushImage != null) |
|
|
{ |
|
|
{ |
|
|
var calc = new TileBrushCalculator(tileBrush, new Size(tileBrushImage.PixelWidth, tileBrushImage.PixelHeight), targetSize); |
|
|
var calc = new TileBrushCalculator(tileBrush, new Size(tileBrushImage.PixelWidth, tileBrushImage.PixelHeight), targetSize); |
|
|
var bitmap = new BitmapImpl((int)calc.IntermediateSize.Width, (int)calc.IntermediateSize.Height, _dpiX, _dpiY); |
|
|
var bitmap = new BitmapImpl((int)calc.IntermediateSize.Width, (int)calc.IntermediateSize.Height, _dpi); |
|
|
rv.AddDisposable(bitmap); |
|
|
rv.AddDisposable(bitmap); |
|
|
using (var context = bitmap.CreateDrawingContext(null)) |
|
|
using (var context = bitmap.CreateDrawingContext(null)) |
|
|
{ |
|
|
{ |
|
|
|