如何避免使用LWJGL表单/文本元素重新发明轮子

时间:2017-03-05 20:10:36

标签: java opengl awt lwjgl glfw

我正在用LWJGL学习Java中的OpenGL,并希望用它来模拟物理模型,因此希望有一组显示和控件,如按钮,滑块,文本标签等。我有创建这些类型的经验在AWT中的东西,所以在我看来,在一个AWT窗口中嵌入一个GLFW窗口似乎是合乎逻辑的,以便只使用openGL上下文来渲染需要渲染的东西。然而,我在网上找到的所有内容似乎都希望我在openGL窗口中创建自己的HUD,而我无法在其他现有的东西(如JPanel等)中找到有关嵌入式GLFW的任何有用信息?我仍然对这个主题很陌生,所以我希望能指出正确的方向。

1 个答案:

答案 0 :(得分: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);
}