public void destroyWindow(SceneViewWindow window)
        {
            if (WindowDestroyed != null)
            {
                WindowDestroyed.Invoke(window);
            }
            if (camerasCreated)
            {
                window.destroySceneView();
            }
            if (window == cloneWindow)
            {
                cloneWindow = null;
            }
            else if (mdiWindows.Remove(window as MDISceneViewWindow))
            {
                //On the last window, disable closing it.
                if (mdiWindows.Count == 1)
                {
                    mdiWindows[0].AllowClose = false;
                }
            }
            else
            {
                textureWindows.Remove(window as TextureSceneView);
            }

            if (window == activeWindow)
            {
                ActiveWindow = mdiWindows.FirstOrDefault();
            }

            window.Dispose();
        }
 public void createCloneWindow(NativeOSWindow parentWindow, WindowInfo windowInfo, bool floatOnParent)
 {
     if (cloneWindow == null)
     {
         CloneCamera cloneCamera = new CloneCamera(this, mainTimer);
         cloneWindow         = new SingleViewCloneWindow(parentWindow, windowInfo, this, cloneCamera, "Clone", background, 0, floatOnParent);
         cloneWindow.Closed += new EventHandler(cloneWindow_Closed);
         if (WindowCreated != null)
         {
             WindowCreated.Invoke(cloneWindow);
         }
         if (camerasCreated)
         {
             cloneWindow.createSceneView(currentScene);
         }
     }
 }
 void cloneWindow_Closed(object sender, EventArgs e)
 {
     cloneWindow = null;
 }