我知道lwjgl只是opengl的 Package 器。它是一个java库,旨在使用java语言中较低级别的opengl函数。
据我所知,glfw只是一个库,它可以创建更好的窗口来显示图形。因此,glfw只是一个库,用于以比lwjgl更好的方式创建窗口。
glfw不是用来创建图形的,只是用来创建显示的,这是真的吗?而且glfw不是单独使用的,你还应该使用lwjgl库来访问opengl函数来创建图形吗?
有人能解释一下我为什么要用glfw吗?而且lwjgl3和glfw之间似乎有关系,但这两者之间又有什么关系呢?
1条答案
按热度按时间vyu0f0g11#
glfw不是用来创建图形的,只是用来创建显示的,这是真的吗?而且glfw不是单独使用的,你还应该使用lwjgl库来访问opengl函数来创建图形吗?
对。
有人能解释一下我为什么要用glfw吗?而且lwjgl3和glfw之间似乎有关系,但这两者之间又有什么关系呢?
主要原因是很难让java的窗口api[-s]与opengl互操作。即使你真的让他们一起行动,这样做也会带来严重的性能损失。
另一方面,glfw只不过是环境的本机窗口api的 Package 器,不管它是windows、macos还是linux。从表面上看,这就是java的awtapi应该是的,但是再一次:awt和swing有性能问题,glfw没有。
lwjgl是glfw的 Package 器,也是更广泛的openglapi的 Package 器,包括通常必须在c/c++中手动加载的函数(通常通过所谓的glew或opengl扩展 Package 器)。除了glfw必须加载一些特定的opengl函数以确保它可以正确设置帧缓冲区并从opengl获取输入(并且在与各种opengl扩展接口时也可以正确操作)之外,它们之间不一定有关系,但除此之外,两者本质上是独立的。