我无法使用我想要使用的 OpenGL 版本(我认为是 2.1)让 GLFW 在 Linux 和 Windows 上工作。它只提供来自系统头文件的 gl 定义,这些定义要么用于 OpenGL 1.x,要么用于 GL/gl3.h,但似乎不再可用。我从glfw的文档中推断它会自动加载gl函数本身,但似乎我错了?
我想编写一个便携式游戏,它在 Android 上使用 OpenGL ES 2.0,在 Linux 和 Windows 上使用 OpenGL 2.x 的兼容子集。我的开发平台是 Linux,我还没有尝试在 Windows 上编译或测试任何东西。SDL 有线程问题,它的 OpenGL 辅助函数不适合 OpenGL 2.x,所以我选择了 glfw3。
GLFW 还支持 OpenGL ES 2.0,而 Mesa 确实提供了 GLES/gl2.h,所以这可能会起作用。但我不确定 Windows 和所有 Linux 驱动程序是否支持 ES,尤其是 NVidia,因为它不使用 Mesa;我担心它可能会迫使 Linux 在某些硬件上使用软件渲染,或者完全失败,即使它支持 OpenGL 2.0(非 ES)或更高版本。