当我们为 OpenGL 编程时,我们通常使用 Glut。我想知道为什么 Glut 可以独立于操作系统。
不同的操作系统使用完全不同的 Windows 系统。
好吧,对于 GLUT 支持的每个操作系统,都有一个特定的代码路径实现,它将操作系统特定的 API 调用包装到呈现给 GLUT 用户的通用 API 中。如果您有兴趣,请查看 FreeGLUT 的源代码。有几个子目录,每个子目录对应一个特定的环境,包含实际的实现。
实际呈现与特定于平台的窗口 API 分离并绑定到其中。
http://www.cs.uregina.ca/Links/class-info/315/WWW/Lab1/#GL_ARCH