GLFW 是否设计为在没有 LWJGL 的情况下使用(在 java 中)?

Is GLFW designed to use without LWJGL (in java)?

我知道 LWJGL 只是 OpenGL 的包装器。这是一个 java 库,旨在使用 java 语言中的低级 OpenGL 函数。

据我现在的理解,GLFW 只是一个库,可以创建更好的 windows 来显示图形。所以 GLFW 只是一个以比 LWJGL 以前更好的方式创建 windows 的库。

GLFW真的不是用来做图的,只是用来做展示的吗? 而且GLFW不是单独使用的,你还是应该只使用LWJGL库来访问OpenGL函数来创建图形?

谁能解释一下我为什么要使用 GLFW? 而且LWJGL3和GLFW好像有关系,但是有什么关系呢?

Is it true that GLFW is not for creating graphics, but just for creating displays? And GLFW is not for using alone, you still should just use the LWJGL library to have access to the OpenGL functions to create graphics?

是的。

Can someone explain why I would use GLFW? And it seems there is a relation between LWJGL3 and GLFW, but what has it to do with each other?

主要原因是很难*让 Java 的窗口 API[-s] 与 OpenGL 互操作。甚至当您确实让它们一起行动时,这样做通常也会导致严重的性能损失。

另一方面,GLFW 只不过是您环境的原生窗口 API 的包装器,无论是 Windows、MacOS 还是 Linux。表面上这就是 Java 的 AWT API 应该是的,但同样:AWT 和 Swing 有性能问题,而 GLFW 没有。

LWJGL 是 GLFW 的包装器,也是更广泛的 OpenGL API 的包装器,包括您通常必须在 C/C++ 中手动加载的功能(通常通过所谓的 GLEW ,或 OpenGL Extension wrangler)。它们之间不一定有关系,除了 GLFW 必须加载一些特定的 OpenGL 函数以确保它可以正确设置帧缓冲区并从 OpenGL 获取输入(并且在与各种 OpenGL 扩展接口时也能正确运行) ,但除此之外,两者本质上是独立的。