From 91d0f53d07425910bf70f7803e14480bb0e3e54c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Rodr=C3=ADguez?= Date: Sat, 19 Jul 2025 15:00:03 -0600 Subject: [PATCH 1/2] Update OpenTK This update makes it easier to clear memory leaks. --- .../SkiaSharp.Views.WPF/SkiaSharp.Views.WPF.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/SkiaSharp.Views/SkiaSharp.Views.WPF/SkiaSharp.Views.WPF.csproj b/source/SkiaSharp.Views/SkiaSharp.Views.WPF/SkiaSharp.Views.WPF.csproj index abbe34d934..b0bc7e9479 100644 --- a/source/SkiaSharp.Views/SkiaSharp.Views.WPF/SkiaSharp.Views.WPF.csproj +++ b/source/SkiaSharp.Views/SkiaSharp.Views.WPF/SkiaSharp.Views.WPF.csproj @@ -15,8 +15,8 @@ - - + + From cc7256b242f85eac9802669dc49bcddbbb7e31e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Rodr=C3=ADguez?= Date: Sat, 19 Jul 2025 15:00:16 -0600 Subject: [PATCH 2/2] Dispose GLWpfControl when SKGLElement is disposed --- .../SkiaSharp.Views/SkiaSharp.Views.WPF/SKGLElement.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/source/SkiaSharp.Views/SkiaSharp.Views.WPF/SKGLElement.cs b/source/SkiaSharp.Views/SkiaSharp.Views.WPF/SKGLElement.cs index 00993eab5d..cc461301b8 100644 --- a/source/SkiaSharp.Views/SkiaSharp.Views.WPF/SKGLElement.cs +++ b/source/SkiaSharp.Views/SkiaSharp.Views.WPF/SKGLElement.cs @@ -215,6 +215,15 @@ private void Release() public void Dispose() { Dispose(true); + +#if NET6_0_OR_GREATER + base.Dispose(); +#else + // Older version of OpenTK do not implement IDisposable + // And there is also a possible memory leak in the base class + // https://github.com/opentk/GLWpfControl/issues/126 + // ToDo: Update OpenTK? manually dispose the base class? +#endif } }