Axiom.Framework.Game.dispose C# (CSharp) Method

dispose() protected method

Class level dispose method
When implementing this method in an inherited class the following template should be used; protected override void dispose( bool disposeManagedResources ) { if ( !IsDisposed ) { if ( disposeManagedResources ) { // Dispose managed resources. } // If there are unmanaged resources to release, // they need to be released here. } // If it is available, make the call to the // base class's Dispose(Boolean) method base.dispose( disposeManagedResources ); }
protected dispose ( bool disposeManagedResources ) : void
disposeManagedResources bool True if Unmanaged resources should be released.
return void
		protected virtual void dispose( bool disposeManagedResources )
		{
			if ( !IsDisposed )
			{
				if ( disposeManagedResources )
				{
					if ( Engine != null )
					{
						// remove event handlers
						Engine.FrameStarted -= Engine_FrameRenderingQueued;
					}
					if ( SceneManager != null )
					{
						SceneManager.RemoveAllCameras();
					}
					Camera = null;
					if ( Root.Instance != null )
					{
						Root.Instance.RenderSystem.DetachRenderTarget( Window );
					}
					if ( Window != null )
					{
						WindowEventMonitor.Instance.UnregisterWindow( Window );
						Window.Dispose();
					}
					if ( Engine != null )
					{
						Engine.Dispose();
					}
				}

				// There are no unmanaged resources to release, but
				// if we add them, they need to be released here.
			}
			IsDisposed = true;
		}