Skip to content

Commit 5643afc

Browse files
committed
Merge branch 'implement_using_canvas'
2 parents 7dc0c15 + a74f060 commit 5643afc

File tree

7 files changed

+37
-36
lines changed

7 files changed

+37
-36
lines changed

libs/jfx-1.4.0.jar

7.01 KB
Binary file not shown.

src/com/ss/editor/JFXApplication.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ public void buildScene() {
180180

181181
final Editor editor = Editor.getInstance();
182182
final EditorThreadExecutor executor = EditorThreadExecutor.getInstance();
183-
executor.addToExecute(() -> bind(editor, scene.getImageView(), editor.getViewPort()));
183+
executor.addToExecute(() -> bind(editor, scene.getCanvas(), editor.getViewPort()));
184184

185185
JMEFilePreviewManager.getInstance();
186186

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import com.jme3.scene.control.AbstractControl;
1919
import com.jme3.scene.shape.Box;
2020
import com.jme3.util.SkyFactory;
21-
import com.jme3x.jfx.injfx.SceneProcessorCopyToImageView;
21+
import com.jme3x.jfx.injfx.processor.FrameTransferSceneProcessor;
2222
import com.ss.editor.Editor;
2323
import com.ss.editor.FileExtensions;
2424
import com.ss.editor.JFXApplication;
@@ -113,7 +113,7 @@ public void done(final LightProbe result) {
113113
/**
114114
* THe copy processor.
115115
*/
116-
private volatile SceneProcessorCopyToImageView processor;
116+
private volatile FrameTransferSceneProcessor processor;
117117

118118
/**
119119
* The count of frames.
@@ -226,7 +226,7 @@ public ImageView getImageView() {
226226
}
227227

228228
@NotNull
229-
protected SceneProcessorCopyToImageView prepareScene() {
229+
protected FrameTransferSceneProcessor prepareScene() {
230230

231231
final AssetManager assetManager = EDITOR.getAssetManager();
232232
final Spatial sky = SkyFactory.createSky(assetManager, "graphics/textures/sky/studio.hdr", SkyFactory.EnvMapType.EquirectMap);

src/com/ss/editor/ui/builder/EditorFXSceneBuilder.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import javafx.collections.ObservableList;
1818
import javafx.geometry.Insets;
1919
import javafx.scene.Group;
20-
import javafx.scene.image.ImageView;
20+
import javafx.scene.canvas.Canvas;
2121
import javafx.scene.layout.StackPane;
2222
import javafx.stage.Stage;
2323
import rlib.ui.util.FXUtils;
@@ -79,11 +79,11 @@ public static EditorFXScene build(final Stage stage) {
7979

8080
private static void build(final EditorFXScene scene, final StackPane container, final Stage stage) {
8181

82-
final ImageView imageView = scene.getImageView();
82+
final Canvas canvas = scene.getCanvas();
8383
final EditorBarComponent barComponent = new EditorBarComponent();
8484
final EditorAreaComponent editorAreaComponent = new EditorAreaComponent();
8585

86-
new EventRedirector(editorAreaComponent, imageView, stage);
86+
new EventRedirector(editorAreaComponent, canvas, stage);
8787

8888
final GlobalToolSplitPane splitContainer = new GlobalToolSplitPane(scene);
8989
splitContainer.setId(CSSIds.MAIN_SPLIT_PANEL);

src/com/ss/editor/ui/component/split/pane/TabToolSplitPane.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,8 @@ private void handleToolChanged(@NotNull final Number newValue) {
123123
saveCollapsed(collapsed);
124124

125125
if (!isCollapsed()) {
126-
this.width = newValue.intValue();
126+
int abs = Math.abs(width - newValue.intValue());
127+
width = abs > 2 ? newValue.intValue() : width;
127128
saveWidth(width);
128129
}
129130

src/com/ss/editor/ui/event/EventRedirector.java

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import javafx.event.Event;
77
import javafx.event.EventTarget;
8-
import javafx.scene.image.ImageView;
8+
import javafx.scene.Node;
99
import javafx.scene.input.KeyEvent;
1010
import javafx.scene.input.MouseButton;
1111
import javafx.scene.input.MouseEvent;
@@ -25,9 +25,9 @@ public class EventRedirector {
2525
private final EditorAreaComponent editorAreaComponent;
2626

2727
/**
28-
* The image view for showing 3D.
28+
* The view for showing 3D.
2929
*/
30-
private final ImageView imageView;
30+
private final Node destination;
3131

3232
/**
3333
* The stage.
@@ -49,9 +49,9 @@ public class EventRedirector {
4949
*/
5050
private double sceneY;
5151

52-
public EventRedirector(final EditorAreaComponent editorAreaComponent, final ImageView imageView, final Stage stage) {
52+
public EventRedirector(final EditorAreaComponent editorAreaComponent, final Node destination, final Stage stage) {
5353
this.editorAreaComponent = editorAreaComponent;
54-
this.imageView = imageView;
54+
this.destination = destination;
5555
this.stage = stage;
5656
this.mousePressed = new boolean[MouseButton.values().length];
5757
init();
@@ -64,7 +64,7 @@ private void init() {
6464
stage.addEventFilter(MouseEvent.MOUSE_RELEASED, event -> {
6565

6666
final EventTarget target = event.getTarget();
67-
if (target == imageView) return;
67+
if (target == destination) return;
6868

6969
final FileEditor currentEditor = editorAreaComponent.getCurrentEditor();
7070
if (currentEditor == null) return;
@@ -75,13 +75,13 @@ private void init() {
7575

7676
setMousePressed(event.getButton(), false);
7777

78-
Event.fireEvent(imageView, event.copyFor(event.getSource(), imageView));
78+
Event.fireEvent(destination, event.copyFor(event.getSource(), destination));
7979
});
8080

8181
stage.addEventFilter(MouseEvent.MOUSE_PRESSED, event -> {
8282

8383
final EventTarget target = event.getTarget();
84-
if (target == imageView) return;
84+
if (target == destination) return;
8585

8686
final FileEditor currentEditor = editorAreaComponent.getCurrentEditor();
8787
if (currentEditor == null || !currentEditor.isInside(event.getSceneX(), event.getSceneY())) {
@@ -90,13 +90,13 @@ private void init() {
9090

9191
setMousePressed(event.getButton(), true);
9292

93-
Event.fireEvent(imageView, event.copyFor(event.getSource(), imageView));
93+
Event.fireEvent(destination, event.copyFor(event.getSource(), destination));
9494
});
9595

9696
stage.addEventFilter(MouseEvent.MOUSE_MOVED, event -> {
9797

9898
final EventTarget target = event.getTarget();
99-
if (target == imageView) return;
99+
if (target == destination) return;
100100

101101
updateCoords(event);
102102

@@ -105,13 +105,13 @@ private void init() {
105105
return;
106106
}
107107

108-
Event.fireEvent(imageView, event.copyFor(event.getSource(), imageView));
108+
Event.fireEvent(destination, event.copyFor(event.getSource(), destination));
109109
});
110110

111111
stage.addEventFilter(MouseEvent.MOUSE_DRAGGED, event -> {
112112

113113
final EventTarget target = event.getTarget();
114-
if (target == imageView) return;
114+
if (target == destination) return;
115115

116116
updateCoords(event);
117117

@@ -122,46 +122,46 @@ private void init() {
122122
return;
123123
}
124124

125-
Event.fireEvent(imageView, event.copyFor(event.getSource(), imageView));
125+
Event.fireEvent(destination, event.copyFor(event.getSource(), destination));
126126
});
127127

128128
stage.addEventHandler(ScrollEvent.ANY, event -> {
129129

130130
final EventTarget target = event.getTarget();
131-
if (target == imageView) return;
131+
if (target == destination) return;
132132

133133
final FileEditor currentEditor = editorAreaComponent.getCurrentEditor();
134134
if (currentEditor == null || !currentEditor.isInside(event.getSceneX(), event.getSceneY())) {
135135
return;
136136
}
137137

138-
Event.fireEvent(imageView, event.copyFor(event.getSource(), imageView));
138+
Event.fireEvent(destination, event.copyFor(event.getSource(), destination));
139139
});
140140

141141
stage.addEventHandler(KeyEvent.KEY_PRESSED, event -> {
142142

143143
final EventTarget target = event.getTarget();
144-
if (target == imageView) return;
144+
if (target == destination) return;
145145

146146
final FileEditor currentEditor = editorAreaComponent.getCurrentEditor();
147147
if (currentEditor == null || !currentEditor.isInside(getSceneX(), getSceneY())) {
148148
return;
149149
}
150150

151-
Event.fireEvent(imageView, event.copyFor(event.getSource(), imageView));
151+
Event.fireEvent(destination, event.copyFor(event.getSource(), destination));
152152
});
153153

154154
stage.addEventHandler(KeyEvent.KEY_RELEASED, event -> {
155155

156156
final EventTarget target = event.getTarget();
157-
if (target == imageView) return;
157+
if (target == destination) return;
158158

159159
final FileEditor currentEditor = editorAreaComponent.getCurrentEditor();
160160
if (currentEditor == null || !currentEditor.isInside(getSceneX(), getSceneY())) {
161161
return;
162162
}
163163

164-
Event.fireEvent(imageView, event.copyFor(event.getSource(), imageView));
164+
Event.fireEvent(destination, event.copyFor(event.getSource(), destination));
165165
});
166166
}
167167

src/com/ss/editor/ui/scene/EditorFXScene.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313

1414
import javafx.scene.Group;
1515
import javafx.scene.Scene;
16+
import javafx.scene.canvas.Canvas;
1617
import javafx.scene.control.ProgressIndicator;
17-
import javafx.scene.image.ImageView;
1818
import javafx.scene.layout.StackPane;
1919
import javafx.scene.layout.VBox;
2020
import rlib.ui.util.FXUtils;
@@ -37,7 +37,7 @@ public class EditorFXScene extends Scene {
3737
/**
3838
* The view for drawing JME.
3939
*/
40-
private final ImageView imageView;
40+
private final Canvas canvas;
4141

4242
/**
4343
* The container of this scene.
@@ -67,7 +67,7 @@ public class EditorFXScene extends Scene {
6767
public EditorFXScene(final Group root) {
6868
super(root);
6969

70-
this.imageView = new ImageView();
70+
this.canvas = new Canvas();
7171
this.loadingCount = new AtomicInteger();
7272
this.components = ArrayFactory.newArraySet(ScreenComponent.class);
7373
this.container = new StackPane();
@@ -78,11 +78,11 @@ public EditorFXScene(final Group root) {
7878
this.loadingLayer.setId(CSSIds.EDITOR_LOADING_LAYER);
7979
this.loadingLayer.setVisible(false);
8080

81-
root.getChildren().addAll(hideLayer, imageView, container, loadingLayer);
81+
root.getChildren().addAll(hideLayer, canvas, container, loadingLayer);
8282

83-
imageView.setPickOnBounds(true);
84-
imageView.fitHeightProperty().bind(heightProperty());
85-
imageView.fitWidthProperty().bind(widthProperty());
83+
canvas.setPickOnBounds(true);
84+
canvas.heightProperty().bind(heightProperty());
85+
canvas.widthProperty().bind(widthProperty());
8686

8787
FXUtils.bindFixedWidth(hideLayer, widthProperty());
8888
FXUtils.bindFixedHeight(hideLayer, heightProperty());
@@ -96,8 +96,8 @@ public EditorFXScene(final Group root) {
9696
* @return the view for drawing JME.
9797
*/
9898
@NotNull
99-
public ImageView getImageView() {
100-
return imageView;
99+
public Canvas getCanvas() {
100+
return canvas;
101101
}
102102

103103
/**

0 commit comments

Comments
 (0)