2017-03-05 36 views
-2

我正在用LWJGL學習Java中的OpenGL,並且想用它來模擬物理模型,因此想要有一組顯示和控件,如按鈕,滑塊,文本標籤等。我有經驗在AWT中創建這些類型的東西,因此我認爲在AWT窗口中嵌入GLFW窗口似乎是合乎邏輯的,以便僅使用openGL上下文來呈現需要呈現的東西。然而,我在網上找到的所有東西似乎都希望我在openGL窗口內創建自己的HUD,並且在JPanel之類的其他現有內容中找不到有關嵌入式GLFW的任何有用信息?我對這個主題還是比較陌生的,所以很高興指向正確的方向。如何避免用LWJGL表單/文本元素重新創建輪子

+0

你必須使你的GUI到屏幕外圖像然後使用opengl渲染它,或者只是搜索一個lwjgl gui庫 – Mehdi

+0

我相信LWJGL只允許你爲整個窗口創建一個OpenGL上下文。您可能能夠找到一個庫,讓您創建一個作爲AWT/Swing控件。例如,我知道你可以用SWT做到這一點(但SWT非常大,你可能會找到一個更小的庫,只是這樣做) – immibis

回答

0

將GUI組件與LWJGL3集成在一起(如果它是你正在使用的)是非常困難的,特別是如果你不想自己編寫它的話。然而,在這裏,你能想到的一些解決方案:

  • 使用LWJGL 2(仍然保持,但舊的),這被稱爲是能夠融入AWT/Swing組件(但有一些麻煩)
  • 使用一個庫,例如lwjglx,它提供了LWJGL 2之間的兼容性層,並將其與LWJGL 2的GUI庫一起使用(我認爲LWJGL 3沒有GUI庫,但這很可能已經改變)

如果您選擇第一個解決方案,您可以在開始之前參考以下問題:

要放LWJGL 2顯示在java.awt.Canvas,你可以做這樣的事情:

try { 
    Display.setDisplayMode(new DisplayMode(width, height)); 
    Display.setParent(canvas); 
    Display.create(); 
} catch (LWJGLException e) { 
    e.printStackTrace(); 
    System.exit(0); 
} 
相關問題