Browse Source

[SKIA] Properly dispose intermediate bitmaps

pull/1195/head
Nikita Tsukanov 9 years ago
parent
commit
1993942e9e
  1. 7
      src/Skia/Avalonia.Skia/DrawingContextImpl.cs

7
src/Skia/Avalonia.Skia/DrawingContextImpl.cs

@ -112,6 +112,7 @@ namespace Avalonia.Skia
public readonly SKPaint Paint;
private IDisposable _disposable1;
private IDisposable _disposable2;
public IDisposable ApplyTo(SKPaint paint)
{
@ -127,6 +128,8 @@ namespace Avalonia.Skia
{
if (_disposable1 == null)
_disposable1 = disposable;
else if (_disposable2 == null)
_disposable2 = disposable;
else
throw new InvalidOperationException();
}
@ -135,12 +138,14 @@ namespace Avalonia.Skia
{
Paint = paint;
_disposable1 = null;
_disposable2 = null;
}
public void Dispose()
{
Paint?.Dispose();
_disposable1?.Dispose();
_disposable2?.Dispose();
}
}
@ -221,8 +226,8 @@ namespace Avalonia.Skia
_visualBrushRenderer.RenderVisualBrush(ctx, visualBrush);
}
rv.AddDisposable(tileBrushImage);
tileBrushImage = intermediate;
rv.AddDisposable(tileBrushImage);
}
}
else

Loading…
Cancel
Save