mirror of
https://github.com/SFML/SFML.git
synced 2024-11-25 12:51: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) :
|
internal Image(IntPtr thisPtr) :
|
||||||
base(thisPtr)
|
base(thisPtr)
|
||||||
{
|
{
|
||||||
|
myExternal = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
@ -384,15 +385,20 @@ namespace SFML
|
|||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
protected override void Destroy(bool disposing)
|
protected override void Destroy(bool disposing)
|
||||||
{
|
{
|
||||||
if (!disposing)
|
if (!myExternal)
|
||||||
Context.Global.SetActive(true);
|
{
|
||||||
|
if (!disposing)
|
||||||
|
Context.Global.SetActive(true);
|
||||||
|
|
||||||
sfImage_Destroy(This);
|
sfImage_Destroy(This);
|
||||||
|
|
||||||
if (!disposing)
|
if (!disposing)
|
||||||
Context.Global.SetActive(false);
|
Context.Global.SetActive(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool myExternal = false;
|
||||||
|
|
||||||
#region Imports
|
#region Imports
|
||||||
[DllImport("csfml-graphics-2", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
|
[DllImport("csfml-graphics-2", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
|
||||||
static extern IntPtr sfImage_CreateFromColor(uint Width, uint Height, Color Col);
|
static extern IntPtr sfImage_CreateFromColor(uint Width, uint Height, Color Col);
|
||||||
|
@ -173,6 +173,7 @@ namespace SFML
|
|||||||
internal View(IntPtr thisPtr) :
|
internal View(IntPtr thisPtr) :
|
||||||
base(thisPtr)
|
base(thisPtr)
|
||||||
{
|
{
|
||||||
|
myExternal = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
@ -183,9 +184,11 @@ namespace SFML
|
|||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
protected override void Destroy(bool disposing)
|
protected override void Destroy(bool disposing)
|
||||||
{
|
{
|
||||||
sfView_Destroy(This);
|
if (!myExternal)
|
||||||
|
sfView_Destroy(This);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool myExternal = false;
|
||||||
#region Imports
|
#region Imports
|
||||||
[DllImport("csfml-graphics-2", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
|
[DllImport("csfml-graphics-2", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
|
||||||
static extern IntPtr sfView_Create();
|
static extern IntPtr sfView_Create();
|
||||||
|
Loading…
Reference in New Issue
Block a user