我知道 GLFW 可以帮助为 OpenGL、OpenGL ES 和 Vulkan 创建上下文并管理窗口/...;
还了解到,在Android中,我们使用EGL + OpenGL ES;
所以我的问题是,EGL 是 GLFW 的一部分吗(就像 OpenGL ES 是 OpenGL 的一部分一样)?
或者它们是独立的东西,EGL 只能在 Android 上使用,而 GLFW 只能在 Windows、Linux 和 Mac 上使用?
OpenGL 没有定义它自己和主机操作系统之间的绑定,所以例如您可以使用 GLX 在 X11 中显示 OpenGL 内容,在 Windows 上使用 WGL,在 OS X 上使用 CGL 等等。
EGL 最初是 Kronos 集中倡导的解决方案,用于将 OpenGL ES 绑定到嵌入式设备上的本机窗口系统,并且 Android 可在各种希望它们是 Android 的设备上使用:Tizen、BlackBerry 等。如今,它已经超越了 OpenGL ES,但仍然仅专注于创建和销毁上下文和缓冲区以及屏幕上和屏幕外渲染目标的内容。
GLFW 是一个适用于具有标准窗口系统的桌面操作系统的第三方工具包,提供了用于创建窗口并从常用桌面类型设备(键盘、鼠标和操纵杆)接收输入的通用界面。
所以,直接回答:
EGL 不是 GLFW 的一部分,并且与 OpenGL ES 与 OpenGL 的关系不同;这是来自单独团队的单独项目,尽管目标有些重叠。