2017-03-05 67 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); 
} 
相关问题