public void Dispose()
{
// force the engine to shutdown
this.Shutdown();
if ( CompositorManager.Instance != null )
{
CompositorManager.Instance.Dispose();
}
if ( OverlayManager.Instance != null )
{
OverlayManager.Instance.Dispose();
}
if ( OverlayElementManager.Instance != null )
{
OverlayElementManager.Instance.Dispose();
}
if ( FontManager.Instance != null )
{
FontManager.Instance.Dispose();
}
if ( ArchiveManager.Instance != null )
{
ArchiveManager.Instance.Dispose();
}
if ( SkeletonManager.Instance != null )
{
SkeletonManager.Instance.Dispose();
}
if ( MeshManager.Instance != null )
{
MeshManager.Instance.Dispose();
}
if ( MaterialManager.Instance != null )
{
MaterialManager.Instance.Dispose();
}
if ( ParticleSystemManager.Instance != null )
{
ParticleSystemManager.Instance.Dispose();
}
if ( ControllerManager.Instance != null )
{
ControllerManager.Instance.Dispose();
}
if ( HighLevelGpuProgramManager.Instance != null )
{
HighLevelGpuProgramManager.Instance.Dispose();
}
if ( PluginManager.Instance != null )
{
PluginManager.Instance.Dispose();
}
Pass.ProcessPendingUpdates();
if ( ResourceGroupManager.Instance != null )
{
ResourceGroupManager.Instance.Dispose();
}
if (CodecManager.Instance != null)
{
if (!CodecManager.Instance.IsDisposed)
CodecManager.Instance.Dispose();
}
#if !XBOX360
if ( PlatformManager.Instance != null )
{
PlatformManager.Instance.Dispose();
}
#endif
this.activeRenderSystem = null;
if ( WindowEventMonitor.Instance != null )
{
WindowEventMonitor.Instance.Dispose();
}
if ( ObjectManager.Instance != null )
{
ObjectManager.Instance.Dispose();
}
if ( LogManager.Instance != null )
{
LogManager.Instance.Dispose();
}
instance = null;
}