diff --git a/bindings/dotnet/src/Graphics/Image.cs b/bindings/dotnet/src/Graphics/Image.cs index 745395db6..1d16320ea 100644 --- a/bindings/dotnet/src/Graphics/Image.cs +++ b/bindings/dotnet/src/Graphics/Image.cs @@ -374,6 +374,7 @@ namespace SFML internal Image(IntPtr thisPtr) : base(thisPtr) { + myExternal = true; } //////////////////////////////////////////////////////////// @@ -384,15 +385,20 @@ namespace SFML //////////////////////////////////////////////////////////// protected override void Destroy(bool disposing) { - if (!disposing) - Context.Global.SetActive(true); + if (!myExternal) + { + if (!disposing) + Context.Global.SetActive(true); - sfImage_Destroy(This); + sfImage_Destroy(This); - if (!disposing) - Context.Global.SetActive(false); + if (!disposing) + Context.Global.SetActive(false); + } } + bool myExternal = false; + #region Imports [DllImport("csfml-graphics-2", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] static extern IntPtr sfImage_CreateFromColor(uint Width, uint Height, Color Col); diff --git a/bindings/dotnet/src/Graphics/View.cs b/bindings/dotnet/src/Graphics/View.cs index 77f4147a8..1b7ab5237 100644 --- a/bindings/dotnet/src/Graphics/View.cs +++ b/bindings/dotnet/src/Graphics/View.cs @@ -173,6 +173,7 @@ namespace SFML internal View(IntPtr thisPtr) : base(thisPtr) { + myExternal = true; } //////////////////////////////////////////////////////////// @@ -183,9 +184,11 @@ namespace SFML //////////////////////////////////////////////////////////// protected override void Destroy(bool disposing) { - sfView_Destroy(This); + if (!myExternal) + sfView_Destroy(This); } + private bool myExternal = false; #region Imports [DllImport("csfml-graphics-2", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] static extern IntPtr sfView_Create();