From 1f919606b425bba4dcf1231c256c6603750c8e1d Mon Sep 17 00:00:00 2001 From: Color_yr <402067010@qq.com> Date: Fri, 1 Dec 2023 17:13:56 +0800 Subject: [PATCH] release Context (#13788) * release Context try fix #13571 * await it * change --- src/Avalonia.OpenGL/Controls/OpenGlControlResources.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.OpenGL/Controls/OpenGlControlResources.cs b/src/Avalonia.OpenGL/Controls/OpenGlControlResources.cs index 3b0b3bd028..be862a3c52 100644 --- a/src/Avalonia.OpenGL/Controls/OpenGlControlResources.cs +++ b/src/Avalonia.OpenGL/Controls/OpenGlControlResources.cs @@ -16,7 +16,7 @@ internal class OpenGlControlBaseResources : IAsyncDisposable public CompositionDrawingSurface Surface { get; } private readonly CompositionOpenGlSwapchain _swapchain; public IGlContext Context { get; private set; } - + public static OpenGlControlBaseResources? TryCreate(CompositionDrawingSurface surface, ICompositionGpuInterop interop, IOpenGlTextureSharingRenderInterfaceContextFeature feature) @@ -54,7 +54,7 @@ internal class OpenGlControlBaseResources : IAsyncDisposable return new OpenGlControlBaseResources(context, surface, interop, null, externalObjects); } - public OpenGlControlBaseResources(IGlContext context, + private OpenGlControlBaseResources(IGlContext context, CompositionDrawingSurface surface, ICompositionGpuInterop interop, IOpenGlTextureSharingRenderInterfaceContextFeature? feature, @@ -161,7 +161,9 @@ internal class OpenGlControlBaseResources : IAsyncDisposable } Surface.Dispose(); + await _swapchain.DisposeAsync(); + Context.Dispose(); Context = null!; }