现代 OpenGL (>1.2) 函数必须在运行时加载。具体如何完成此操作取决于平台,但它似乎总是涉及调用“get-function”,该函数返回指向您请求的函数的指针。两个问题:
让我们以 Linux 和 Mesa3D 为例。
我现在的理解是 Mesa3D 通过 libgl.so 和 gl.h 提供 get-function,并且它仅在用户空间中运行。也是Mesa3D实现了get函数返回的函数的用户空间端,内核端由GPU驱动程序实现。它是否正确?
这是否意味着(在本例中)像glad/glew/gl3w 这样的加载库直接位于 Mesa3D 之上,并且除了 Mesa3D 之外不与任何人通信?