diff --git a/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs b/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs
index 27b29c6e1e..428087ac56 100644
--- a/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs
+++ b/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs
@@ -109,10 +109,16 @@ namespace Avalonia.Skia
///
public void Draw(DrawingContextImpl context, SKRect sourceRect, SKRect destRect, SKPaint paint)
{
- using (var image = SnapshotImage())
+ if (sourceRect.Left == 0 && sourceRect.Top == 0 && sourceRect.Size == destRect.Size)
{
- context.Canvas.DrawImage(image, sourceRect, destRect, paint);
+ _surface.Canvas.Flush();
+ _surface.Draw(context.Canvas, destRect.Left, destRect.Top, paint);
}
+ else
+ using (var image = SnapshotImage())
+ {
+ context.Canvas.DrawImage(image, sourceRect, destRect, paint);
+ }
}
///