Browse Source

Allow GC to collect reused framebuffer, that's better than AccessViolationException from render thread

pull/2117/head
Nikita Tsukanov 7 years ago
parent
commit
4f049cf155
  1. 7
      src/Windows/Avalonia.Win32/FramebufferManager.cs
  2. 3
      src/Windows/Avalonia.Win32/WindowImpl.cs

7
src/Windows/Avalonia.Win32/FramebufferManager.cs

@ -5,7 +5,7 @@ using Avalonia.Win32.Interop;
namespace Avalonia.Win32
{
class FramebufferManager : IFramebufferPlatformSurface, IDisposable
class FramebufferManager : IFramebufferPlatformSurface
{
private readonly IntPtr _hwnd;
private WindowFramebuffer _fb;
@ -29,10 +29,5 @@ namespace Avalonia.Win32
}
return _fb;
}
public void Dispose()
{
_fb?.Deallocate();
}
}
}

3
src/Windows/Avalonia.Win32/WindowImpl.cs

@ -13,6 +13,7 @@ using Avalonia.Input.Raw;
using Avalonia.OpenGL;
using Avalonia.Platform;
using Avalonia.Rendering;
using Avalonia.Threading;
using Avalonia.Win32.Input;
using Avalonia.Win32.Interop;
using static Avalonia.Win32.Interop.UnmanagedMethods;
@ -234,8 +235,6 @@ namespace Avalonia.Win32
public void Dispose()
{
_framebuffer?.Dispose();
_framebuffer = null;
if (_hwnd != IntPtr.Zero)
{
UnmanagedMethods.DestroyWindow(_hwnd);

Loading…
Cancel
Save