是否有针对MS Windows的开源OpenGL实现?

时间:2014-04-18 08:49:29

标签: windows opengl

正如标题所示,

是否有针对MS Windows的开源OpenGL实现?

不是使用opengl的示例代码,而是构建后给出opengl32.dll的代码。

2 个答案:

答案 0 :(得分:5)

首先,您必须了解OpenGL 不是库,而是API规范。库可以实现此API。但通常OpenGL是由GPU设备驱动程序实现的。

opengl32.dll作为Windows的一部分提供。自WindowsNT-4和Windows95-B以来的所有Windows版本都附带opengl32.dll作为基本安装的一部分。它充当了利用OpenGL与实际实现它的GPU驱动程序通信的程序的管道。 OpenGL魔法不会发生在opengl32.dll中,而是发生在GPU驱动程序中!有一种称为OpenGL ICD的机制,GPU驱动程序使用它来将其OpenGL内容挂钩到DLL。

  

是否有针对MS Windows的开源OpenGL实现?

嗯,是的,Mesa3D也可以为Windows构建,但生成的DLL将无法与GPU驱动程序通信,而只是通过软件渲染器实现所有OpenGL功能。在Linux中,Mesa3D还为许多GPU实现了设备驱动程序,但这些驱动程序需要特定于Linux的内核接口并且不可移植(但是像FreeBSD这样的其他开源操作系统采用了Mesa3D使用的Linux内核API,所以它也适用于那里)。

答案 1 :(得分:2)

与您提出的问题略有不同 - 如果您对OpenGL ES2没问题,一个不错的解决方案就是设置ANGLE。这是Windows平台上OpenGL ES2.0的开源实现,但它在内部使用DirectX API映射到GL调用。使用完整的调试支持相当容易,如此处所述(http://gpupowered.org/node/29),并且此处支持GLFW(http://gpupowered.org/node/33)。