/// <summary> /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. /// </summary> public void Dispose() { if (frameClearManager != null) { frameClearManager.Dispose(); } if (medicalScene != null) { unloadSceneAndResources(); } if (eventManager != null) { eventManager.Dispose(); } if (inputHandler != null) { inputHandler.Dispose(); } if (systemTimer != null) { systemTimer.Dispose(); } if (performanceMetricTimer != null) { PerformanceMonitor.destroyEnabledState(); performanceMetricTimer.Dispose(); } if (pluginManager != null) { //This is the main engine plugin manager, it should be last unless subsystems need to be shutdown before any additional disposing pluginManager.Dispose(); } Log.Info("Medical Controller Shutdown"); logListener.Dispose(); }
/// <summary> /// Dispose of this controller and cleanup. /// </summary> public void Dispose() { //Save UI var activeWindow = sceneViewController.ActiveWindow; if (activeWindow != null) { AnomalyConfig.CameraConfig.MainCameraPosition = activeWindow.Translation; AnomalyConfig.CameraConfig.MainCameraLookAt = activeWindow.LookAt; } if (guiManager != null && AnomalyConfig.WindowsFile != null) { ConfigFile configFile = new ConfigFile(AnomalyConfig.WindowsFile); guiManager.saveUI(configFile, GetType().Assembly.GetName().Version); configFile.writeConfigFile(); } //Clear resources resourceController.clearResources(); resourceController.applyToScene(); if (virtualTextureLink != null) { virtualTextureLink.Dispose(); } //Dispose if (consoleWindow != null) { Log.Default.removeLogListener(consoleWindow); consoleWindow.Dispose(); } if (splashScreen != null) { splashScreen.Dispose(); } if (mainObjectEditor != null) { mainObjectEditor.Dispose(); } if (debugVisualizer != null) { debugVisualizer.Dispose(); } if (mainForm != null) { mainForm.Dispose(); } if (mdiLayout != null) { mdiLayout.Dispose(); } if (selectionMovementTools != null) { selectionMovementTools.Dispose(); } if (guiManager != null) { guiManager.Dispose(); } if (sceneViewController != null) { sceneViewController.Dispose(); } if (eventManager != null) { eventManager.Dispose(); } if (inputHandler != null) { inputHandler.Dispose(); } if (systemTimer != null) { systemTimer.Dispose(); } if (lightManager != null) { pluginManager.RendererPlugin.destroySceneViewLightManager(lightManager); } if (frameClearManager != null) { frameClearManager.Dispose(); } if (pluginManager != null) { pluginManager.Dispose(); } if (mainWindow != null) { mainWindow.Dispose(); } AnomalyConfig.save(); logListener.Dispose(); }
public void Dispose() { liveResourceManager.changeResourcesToMatch(emptyResourceManager); liveResourceManager.initializeResources(); var activeWindow = sceneViewController.ActiveWindow; if (activeWindow != null) { OgreModelEditorConfig.CameraConfig.MainCameraPosition = activeWindow.Translation; OgreModelEditorConfig.CameraConfig.MainCameraLookAt = activeWindow.LookAt; } IDisposableUtil.DisposeIfNotNull(virtualTextureDebugger); IDisposableUtil.DisposeIfNotNull(materialEditor); if (textureCompiler != null) { OgreModelEditorConfig.LastTextureCompilerSourceDirectory = textureCompiler.CurrentSrc; textureCompiler.Dispose(); } if (consoleWindow != null) { Log.Default.removeLogListener(consoleWindow); consoleWindow.Dispose(); } if (splashScreen != null) { splashScreen.Dispose(); } if (objectMover != null) { objectMover.Dispose(); } if (guiManager != null) { guiManager.Dispose(); } if (sceneViewController != null) { sceneViewController.Dispose(); } if (mdiLayout != null) { mdiLayout.Dispose(); } if (virtualTextureLink != null) { virtualTextureLink.Dispose(); } if (modelController != null) { modelController.Dispose(); } if (eventManager != null) { eventManager.Dispose(); } if (inputHandler != null) { inputHandler.Dispose(); } if (systemTimer != null) { systemTimer.Dispose(); } if (lightManager != null) { pluginManager.RendererPlugin.destroySceneViewLightManager(lightManager); } if (frameClearManager != null) { frameClearManager.Dispose(); } if (mainWindow != null) { mainWindow.Dispose(); } if (pluginManager != null) { pluginManager.Dispose(); } OgreModelEditorConfig.save(); logListener.Dispose(); }