mirror of
https://github.com/SFML/SFML.git
synced 2024-11-29 06:41:05 +08:00
Fixed crash after disposing RenderWindow or RenderImage instances, in SFML.Net
git-svn-id: https://sfml.svn.sourceforge.net/svnroot/sfml/branches/sfml2@1637 4e206d99-4929-0410-ac5d-dfc041789085
This commit is contained in:
parent
5421f1c42f
commit
d69903765b
@ -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);
|
||||
|
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user