Jogl 和 JavaFX
Jogl and JavaFX
我听说可以使用 NewtCanvasJFX 将 Jogl 集成到 JavaFX 中,但我无法让它工作。
我试过类似的东西。
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
primaryStage.setTitle("JavaFX Jogl");
primaryStage.setScene(new Scene(root, 300, 275));
primaryStage.show();
//init Canvas
final GLProfile glProfile = GLProfile.getDefault();
final GLCapabilities capabilities = new GLCapabilities(glProfile);
GLWindow glWindow = GLWindow.create(capabilities);
NewtCanvasJFX glPanel = new NewtCanvasJFX(glWindow);
glPanel.setWidth(300);
glPanel.setHeight(300);
StackPane openGLPane = new StackPane();
openGLPane.getChildren().add(glPanel);
glWindow.addGLEventListener(this);
}
我只需要让 jogl 和 Javafx 一起为一个大学项目工作,所以如果有人有其他解决方案,我将非常感激。
我无法让它与 NewtCanvasJFX 一起工作,但我使用 gljpanel 来组合 jogl 和 javafx。
重要的是所有与 jogl 相关的东西都在里面 SwingUtilities.invokeLater 否则什么都不会呈现。您可以只使用 canvas 添加一个 gleventlistener。
@Override
public void start(Stage primaryStage) throws Exception{
root = new StackPane();
final GLProfile glProfile = GLProfile.getDefault();
final GLCapabilities capabilities = new GLCapabilities(glProfile);
canvas = new GLJPanel(capabilities);
swingNode = new SwingNode();
root.getChildren().add(swingNode);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
swingNode.setContent(canvas);
//jogl stuff here
}
});
primaryStage.setTitle("JavaFX OpenGL");
primaryStage.setScene(new Scene(root, 1920, 1080));
primaryStage.show();
}
我听说可以使用 NewtCanvasJFX 将 Jogl 集成到 JavaFX 中,但我无法让它工作。 我试过类似的东西。
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
primaryStage.setTitle("JavaFX Jogl");
primaryStage.setScene(new Scene(root, 300, 275));
primaryStage.show();
//init Canvas
final GLProfile glProfile = GLProfile.getDefault();
final GLCapabilities capabilities = new GLCapabilities(glProfile);
GLWindow glWindow = GLWindow.create(capabilities);
NewtCanvasJFX glPanel = new NewtCanvasJFX(glWindow);
glPanel.setWidth(300);
glPanel.setHeight(300);
StackPane openGLPane = new StackPane();
openGLPane.getChildren().add(glPanel);
glWindow.addGLEventListener(this);
}
我只需要让 jogl 和 Javafx 一起为一个大学项目工作,所以如果有人有其他解决方案,我将非常感激。
我无法让它与 NewtCanvasJFX 一起工作,但我使用 gljpanel 来组合 jogl 和 javafx。
重要的是所有与 jogl 相关的东西都在里面 SwingUtilities.invokeLater 否则什么都不会呈现。您可以只使用 canvas 添加一个 gleventlistener。
@Override
public void start(Stage primaryStage) throws Exception{
root = new StackPane();
final GLProfile glProfile = GLProfile.getDefault();
final GLCapabilities capabilities = new GLCapabilities(glProfile);
canvas = new GLJPanel(capabilities);
swingNode = new SwingNode();
root.getChildren().add(swingNode);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
swingNode.setContent(canvas);
//jogl stuff here
}
});
primaryStage.setTitle("JavaFX OpenGL");
primaryStage.setScene(new Scene(root, 1920, 1080));
primaryStage.show();
}