从固定管线到现代OpenGL的转变

3

我之前完成了一些简单的OpenGL项目(使用旧版固定管线,没有使用着色器等),现在想开始进行更加专业的“现代”OpenGL编程。(需要能够在Windows和Linux上编译运行)

我有几个问题:

1)在Windows平台上,“gl.h”文件中没有OpenGL2.0以上版本的API函数声明(例如glShaderSource())。我应该如何访问这些API函数?我不想安装特定于显卡的头文件,因为我希望在其他机器上编译这个应用程序。

2)在Linux平台上,如果我安装Mesa库,是否可以访问上述的OpenGL2+ API函数?

1个回答

7
有一种长期以来的观念认为(由于在90年代末/00年代初GL版本更新缓慢),获取核心OpenGL调用的方法是只需包含头文件和库。手动加载函数指针是你为扩展,为“显卡特定”功能所做的事情。但事实并非如此。
无论是核心还是扩展,您应该始终使用扩展加载库来获取对OpenGL函数的访问。 GLEW是一个相当不错的库,如果您能接受它的限制(仅支持3.0及更高版本核心),则GL3W也是不错的选择。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接