什么是GLEW,它如何工作?


15

我正在寻找对初学者友好的解释。官方网站的解释太短,导致我提出的问题多于答案:


  • 什么是GLEW?

GLEW开发人员页面显示:

OpenGL扩展Wrangler库(GLEW)是跨平台的开源C / C ++ 扩展加载库。GLEW提供了有效的运行时机制,用于确定目标平台上支持哪些OpenGL扩展。


  • 但是什么是扩展加载库?

OpenGL的Wiki说

OpenGL加载库是在运行时加载指向OpenGL函数核心以及扩展的指针的库。


  • 加载指向OpenGL函数的指针是什么意思?

  • 什么是扩展名

  • 核心和扩展 ” 是什么意思?

Answers:


20

大多数编译器都为您提供了OpenGL标头,该标头提供了对OpenGL 1.1的支持,但是该版本OpenGL中提供的大多数功能早已被弃用,并且缺少诸如着色器和顶点缓冲对象之类的重要功能。GLEW基本上只是提供更新的OpenGL功能的标头(有一个源文件也必须编译,但您可以仅将其包含在项目中)。

扩展是什么意思?

这是OpenGL.org关于它们的链接。它们只是OpenGL的附加功能,不属于OpenGL。它们提供了可能有用的功能,但是您不能保证它们将在每台计算机上都能使用,因为它们不是核心OpenGL的一部分。

加载指向OpenGL函数的指针是什么意思?

OpenGL由图形驱动程序实现为根据规范实现的一堆功能,而不是独立的库,因此不能简单地链接到您的项目。

您必须调用一个函数(例如GetProcAddress,但这取决于您要开发的平台),以便在运行时从驱动程序获取每个OpenGL函数的函数指针。

之所以存在GLEW,是因为这样做很难。当您仅包含一个标头并在初始化过程中调用一个函数时,这要容易得多,这正是GLEW所做的。另外,GLEW是跨平台的。

“核心和扩展”是什么意思?

这意味着它提供OpenGL功能以及OpenGL扩展。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.