GLEW 只是扩展库还是包含 OpenGL ES 2.0 实现?

GLEW is just and extension library or it contains OpenGL ES 2.0 implementation as well?

GLEW 只是扩展库还是包含 OpenGL ES 2.0 实现?

The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform. OpenGL core and extension functionality is exposed in a single header file.

我很困惑,因为我在 glew.h 中发现以下内容:

#define glLinkProgram GLEW_GET_FUN(__glewLinkProgram)

其中 __glewLinkProgram

GLEW_FUN_EXPORT PFNGLLINKPROGRAMPROC __glewLinkProgram;
我猜

其中 PFNGLLINKPROGRAMPROC 是从 libdll 获得的。我到处都找不到。

你引用的第一行说明了 GLEW 是什么:

The OpenGL Extension Wrangler Library (GLEW) is a ... extension loading library.

它从 OpenGL 实现(通常由 GPU 驱动程序提供)加载 OpenGL 扩展函数。它不会自己实现它们。

那些 PFN... 类型定义由 glext.h 提供并且是函数指针类型。 GLEW 简单地定义了一些变量来保存函数指针,并使用 wglGetProcAddressglXGetProcAddress 函数加载它们。

glew正式版完全不支持OpenGL ES,只支持桌面版OpenGL。然而,一些非官方的 glew 改编/分支如雨后春笋般涌现,例如 Linaro 的 glew-es,它确实支持 OpenGL ES。