Prechádzať zdrojové kódy

Fixed crash on quit in entity editor

Ivan Safrin 11 rokov pred
rodič
commit
e3d4ca2c66

+ 3 - 3
Core/Contents/Source/PolyCocoaCore.mm

@@ -608,8 +608,7 @@ vector<String> CocoaCore::openFilePicker(vector<CoreFileExtension> extensions, b
 }
 
 void CocoaCore::Render() {
-	lockMutex(CoreServices::getRenderMutex());	
-	checkEvents();
+	lockMutex(CoreServices::getRenderMutex());
 	
 	if(!paused) {	
 		renderer->BeginRender();
@@ -635,7 +634,8 @@ bool CocoaCore::Update() {
 		modeChangeInfo.needResolutionChange = false;
 	}
 							
-	updateCore();		
+	updateCore();
+	checkEvents();
 	return running;
 }
 

+ 7 - 3
IDE/Contents/Source/PolycodeEntityEditor.cpp

@@ -286,7 +286,7 @@ void CameraPreviewWindow::handleEvent(Event *event) {
 }
 
 CameraPreviewWindow::~CameraPreviewWindow() {
-    
+    delete renderTexture;
 }
 
 void CameraPreviewWindow::setCamera(Scene *scene, Camera *camera) {
@@ -325,6 +325,9 @@ EntityEditorMainView::EntityEditorMainView(PolycodeEditor *editor) {
     this->editor = editor;
 	mainScene = new Scene(Scene::SCENE_3D, true);
     
+//    mainScene->getDefaultCamera()->frustumCulling = false;
+//    mainScene->doVisibilityChecking(false);
+    
 	renderTexture = new SceneRenderTexture(mainScene, mainScene->getDefaultCamera(), 512, 512);
 	mainScene->clearColor.setColor(0.2, 0.2, 0.2, 1.0);	
 	mainScene->useClearColor = true;
@@ -574,12 +577,12 @@ void EntityEditorMainView::setEditorMode(int newMode) {
         grid->setGridMode(EditorGrid::GRID_MODE_3D);
         transformGizmo->setGizmoMode(TransformGizmo::GIZMO_MODE_3D);
         mainScene->getDefaultCamera()->setOrthoMode(false);
-        mainScene->getDefaultCamera()->setClippingPlanes(1, 1000);
+        mainScene->getDefaultCamera()->setClippingPlanes(0.1, 1000);
         trackballCamera->disableRotation(false);
     } else {
         mainScene->setSceneType(Scene::SCENE_2D);
         mainScene->getDefaultCamera()->setOrthoMode(true);
-        mainScene->getDefaultCamera()->setClippingPlanes(-1, 10000);
+        mainScene->getDefaultCamera()->setClippingPlanes(-100, 100);
         trackballCamera->setCameraPosition(trackballCamera->getOribitingCenter()+Vector3(0.0, 0.0, trackballCamera->getCameraDistance()));
         grid->setGridMode(EditorGrid::GRID_MODE_2D);
         transformGizmo->setGizmoMode(TransformGizmo::GIZMO_MODE_2D);
@@ -1425,6 +1428,7 @@ void EntityEditorMainView::setObjectRoot(SceneEntityInstance *entity) {
 }
 
 EntityEditorMainView::~EntityEditorMainView() {
+    mainScene->rootEntity.setOwnsChildrenRecursive(true);
     delete mainScene;
     delete renderTexture;
 //    delete transformGizmo;