Skip to content

Commit 4b6c902

Browse files
committed
улучшено лагирование и добавлена чистка воркспейса от открытыз файлов в случае краша рендера
1 parent 3f5a3a1 commit 4b6c902

File tree

4 files changed

+25
-14
lines changed

4 files changed

+25
-14
lines changed

src/com/ss/editor/Editor.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.jme3.post.filters.FXAAFilter;
1919
import com.jme3.post.filters.ToneMapFilter;
2020
import com.jme3.renderer.Camera;
21+
import com.jme3.renderer.RendererException;
2122
import com.jme3.scene.Node;
2223
import com.jme3.system.AppSettings;
2324
import com.jme3x.jfx.JmeFxContainer;
@@ -356,6 +357,12 @@ public void update() {
356357
final WorkspaceManager workspaceManager = WorkspaceManager.getInstance();
357358
workspaceManager.save();
358359
System.exit(1);
360+
} catch (final RendererException e) {
361+
LOGGER.warning(e);
362+
final WorkspaceManager workspaceManager = WorkspaceManager.getInstance();
363+
workspaceManager.clear();
364+
workspaceManager.save();
365+
System.exit(1);
359366
} finally {
360367
syncUnlock(stamp);
361368
}

src/com/ss/editor/manager/WorkspaceManager.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,14 @@ public synchronized Workspace getWorkspace(final Path assetFolder) {
9191
return workspace;
9292
}
9393

94+
/**
95+
* Очистить воркспейсы.
96+
*/
97+
public synchronized void clear() {
98+
final ObjectDictionary<Path, Workspace> workspaces = getWorkspaces();
99+
workspaces.forEach(Workspace::save);
100+
}
101+
94102
/**
95103
* Сохранить воркспейсы.
96104
*/

src/com/ss/editor/model/workspace/Workspace.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,14 +194,18 @@ private void incrementChanges() {
194194
changes.incrementAndGet();
195195
}
196196

197+
/**
198+
* Очистка воркспейса.
199+
*/
200+
public void clear() {
201+
getOpenedFiles().clear();
202+
}
203+
197204
/**
198205
* Сохранение состояния в файл.
199206
*/
200207
public void save() {
201-
202-
if (changes.get() == 0) {
203-
return;
204-
}
208+
if (changes.get() == 0) return;
205209

206210
final Path assetFolder = getAssetFolder();
207211
final Path workspaceFile = assetFolder.resolve(WorkspaceManager.FOLDER_EDITOR).resolve(WorkspaceManager.FILE_WORKSPACE);

src/com/ss/editor/ui/component/editor/impl/material/MaterialFileEditor.java

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,6 @@ protected void createToolbar(final HBox container) {
500500
* Обработка смны Bucket типа.
501501
*/
502502
private void changeBucketType(final RenderQueue.Bucket newValue) {
503-
504503
final MaterialEditorState editorState = getEditorState();
505504
editorState.changeBucketType(newValue);
506505
}
@@ -509,11 +508,7 @@ private void changeBucketType(final RenderQueue.Bucket newValue) {
509508
* Обработка смены типа материала.
510509
*/
511510
private void changeType(final String newType) {
512-
513-
if (isIgnoreListeners()) {
514-
return;
515-
}
516-
511+
if (isIgnoreListeners()) return;
517512
processChangeTypeImpl(newType);
518513
}
519514

@@ -570,10 +565,7 @@ private ToggleButton getSphereButton() {
570565
* Обработка смены режима модели.
571566
*/
572567
private void changeModelType(final ToggleButton button, final Boolean newValue) {
573-
574-
if (newValue == Boolean.FALSE) {
575-
return;
576-
}
568+
if (newValue == Boolean.FALSE) return;
577569

578570
final MaterialEditorState editorState = getEditorState();
579571

0 commit comments

Comments
 (0)