protected override void dispose( bool disposeManagedResources )
{
if ( !IsDisposed )
{
if ( disposeManagedResources )
{
// Dispose managed resources.
// dispose of our back buffer if need be
if ( this._renderSurface != null )
{
if ( !this._renderSurface.IsDisposed )
this._renderSurface.Dispose();
this._renderSurface = null;
}
// dispose of our stencil buffer if need be
//if ( this._stencilBuffer != null )
//{
// if ( !this._stencilBuffer.IsDisposed )
// this._stencilBuffer.Dispose();
// this._stencilBuffer = null;
//}
#if !(XBOX || XBOX360 || SILVERLIGHT)
WindowEventMonitor.Instance.UnregisterWindow( this );
DefaultForm winForm = (DefaultForm)SWF.Control.FromHandle( _windowHandle );
if ( !winForm.IsDisposed )
winForm.Dispose();
#endif
this._windowHandle = IntPtr.Zero;
// Dispose Other resources
#if !(XBOX || XBOX360)
if ( _windowHandle != IntPtr.Zero && !_isExternal && SWF.Control.FromHandle( _windowHandle ) != null )
#else
if (_windowHandle != IntPtr.Zero && !_isExternal )
#endif
{
WindowEventMonitor.Instance.UnregisterWindow( this );
#if !(XBOX || XBOX360)
SWF.Control.FromHandle( _windowHandle ).Dispose();
#endif
}
}
// make sure this window is no longer active
_windowHandle = IntPtr.Zero;
IsActive = false;
_isClosed = true;
// There are no unmanaged resources to release, but
// if we add them, they need to be released here.
}
// If it is available, make the call to the
// base class's Dispose(Boolean) method
base.dispose( disposeManagedResources );
}