在处理涉及OpenGL的项目时,我很快遇到了GLAD,这是一个库,它加载了更高版本(例如3.3)中使用的所有OpenGL函数定义和常量(因为操作系统不再需要)。如果向下滚动到底部,在“选项”标题下,您将找到一个名为“忽略KHR”的选项。我发现的唯一的OpenGL教程只是说要确保已选中它,但我想知道它在做什么。快速查看源代码似乎表明它为诸如整数之类的东西加载了平台一致的定义,但这是正确的吗?这是它的链接:khrplatform.h

诚然,这实际上是针对GLFW的,但是如果您要从GLAD甚至从Khronos Group本身下载它,它们应该是相同的。

最佳答案

Khronos组维护着几种行业标准的API:https://www.khronos.org/registry/

为简化起见,Khronos维护khrplatform头供Khronos维护的其他头使用,定义常见的数据类型,令牌和调用约定宏。然而:

采纳者可以修改此文件以适合其平台。采用者是
鼓励向Khronos提交平台特定的修改
组,以便可以将其包含在此文件的将来版本中。
请通过在EGL上提出拉取请求或问题来提交更改
上面链接的注册表存储库。

具有讽刺意味的是,由于同一系统中可能有许多API和供应商(或“采用者”),因此集成起来要稍微复杂一些。这些修改将如何合并?如何使多个标头在同一系统中共存?如果某些供应商完全像原始规范那样依赖标题,该怎么办?因此,提供和不依赖khrplatform标头的选项是有意义的。你不同意吗?

08-04 22:19