从固定管道转向现代 OpenGL

发布于 2024-11-30 21:07:23 字数 301 浏览 2 评论 0原文

我已经完成了一些简单的 OpenGL(旧的固定管道,没有着色器等),并且想要开始一些严肃的“现代”OpenGL 编程。 (应该在 Windows 和 Linux 上编译)

我有几个问题。

1) 在 Windows 中,“gl.h”没有声明 OpenGL2.0+ 相关的 API 调用。(例如 glShaderSource() )。我如何访问这些 API 调用? 我不想安装显卡特定的标头,因为我想在其他机器上编译此应用程序。

2) 在 Linux 中,如果我安装 Mesa 库,我可以访问以上 OpenGL2+ API 函数吗?

I have done some simple OpenGL (old fixed pipeline ,without shaders ..etc) and want to start some serious "modern" OpenGL programming. (Should compile on Windows and Linux)

I have few questions.

1) In Windows , the "gl.h" doesnt have OpenGL2.0+ related API calls declared .(eg. glShaderSource() ) . How can I access these API calls?
I dont want to install graphics-card specific headers since, I want to compile this application in other machines.

2) In Linux ,If I install Mesa library can I access above OpenGL2+ APIs functions ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

镜花水月 2024-12-07 21:07:23

一些人长期以来一直相信(由于 90 年代末/00 年代初 GL 版本更新缓慢),获取核心 OpenGL 调用的方法就是只包含标头和库。手动加载函数指针是您为扩展、“显卡特定”功能所做的事情。事实并非如此。

您应该始终使用扩展加载库来访问 OpenGL 函数,无论是核心还是扩展。 GLEW 是一个相当不错的,如果你能忍受它的局限性(仅限 3.0 核心或更好),GL3W 也不错。

There has been a long-held belief among some (due to the slowness of GL version updates in the late 90s/early 00s) that the way to get core OpenGL calls was to just include a header and a library. That loading function pointers manually was something you did for extensions, for "graphics-card specific" function. That isn't the case.

You should always use an extension loading library to get access to OpenGL functions, whether core or extension. GLEW is a pretty good one, and GL3W is decent if you can live with its limitations (3.0 core or better only).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文