2016-02-24 50 views
1

好吧,JOGL - Swing - JavaFX

我有一個工作JOGL應用程序。我在其中使用了許多OpenGL功能,包括紋理,VBO,Ray-Picking等。我喜歡直接使用OpenGL,並且不想使用任何其他3D圖形庫。

我想達到的目標是雙重的:

  1. 我希望能夠在更大的UI窗口的子窗口中嵌入這個JOGL應用。所以旁邊的JOGL窗口將是一個照片瀏覽器,文本框和可滾動列表。

  2. 我正在設計這個應用程序在Windows 10,多點觸控硬件上運行。

我迄今發現:

  1. Java的Swing工具包是我已經能夠嵌入JOGL窗口的唯一途徑。然而,Swing看上去過時了,過時了。

  2. 將多點觸摸結合到擺動可以完成,但確實需要大量的自定義手勢檢測。這很好,但也許存在不重新發明輪子的選項。

  3. JavaFX看起來不錯,我想使用它,但我沒有看到任何與JOGL配對的直接方式。

你們有沒有建議?有沒有人做過這個?

+1

我不知道它是否適合你的第一個摺疊,但你嘗試['newt'](http://jogamp.org/jogl/doc/NEWT-Overview.html)? – elect

+1

@elect NEWT僅在某些平臺下支持多點觸控,當然可以在Android下進行。 – gouessej

+0

嗯。去看看這個。從來沒有聽說過NEWT。似乎是一個很好的選擇性能。目前我正在使用Swing的GLJPanel – Fra

回答

2

您可以使用SwingNode將JOGL集成到JavaFX應用程序中。 https://docs.oracle.com/javase/8/javafx/api/javafx/embed/swing/SwingNode.html 相反(將一些JavaFX集成到Swing應用程序中)也是可能的,但我不會推薦它。

以這種方式進行JOGL集成不會像原生OpenGL窗口那樣高性能,但對於許多應用程序來說就足夠了。

+0

這是最簡單的方法。我建議你看看這個錯誤報告:https://jogamp.org/bugzilla/show_bug.cgi?id=607我試圖總結所有的嘗試,以支持OpenJFX/JavaFX和JOGL之間的某種互操作性。在使用它們打包應用程序時,要記住一些細微的事情,特別是如果您不使用Java 1.9。 – gouessej

+0

@mipa - 雅,我已經開始研究這個。看起來不管你使用Swing還是JavaFX,你都不會像本機OpenGL那樣獲得性能。兩者都有一定程度的抽象。現在我正在使用GLJPanel,速度非常快。我會研究更多,並在這裏恢復。 – Fra