gpt4 book ai didi

c++ - C++ 的 OpenGL 实现列表

转载 作者:太空狗 更新时间:2023-10-29 21:49:11 25 4
gpt4 key购买 nike

我只是将我的项目从 Visual Studio 迁移到 Eclipse,这样我就可以为 Linux 构建它们,但是我遇到了 OpenGl 库文件的问题。 Visual Studio 带有微软的库和头文件,用于在项目中包含 OpenGL,但 Eclipse 不是这样。我不知道那些 Microsoft 的文件使用什么许可,所以我不想只是从他们的 SDK 中“窃取”它们,但我找不到任何替代方法。我只找到了 MESA。它应该类似于 OpenGL,但我不确定有什么区别。那么,如果不包含 Microsoft 的选项,我有哪些选择?

编辑:我已经阅读了一些 MESA,我可以说这不是一个选项。他们声明他们的 GLSL 编译器仅支持 1.2 版。那是非常旧的。我的项目至少需要 GLSL 1.5。

最佳答案

OpenGL 不是某个库,而是一个 API。安装的图形驱动程序实现 OpenGL,您的程序从驱动程序加载 OpenGL。 Mesa3D 是一套开源驱动程序和 OpenGL API for Linux 的实现。但是,如果您安装了 NVidia 或 AMD/ATI 专有驱动程序,那么它将是那些在您的系统上实现 OpenGL 的驱动程序。

对于开发,唯一需要知道的是,您的程序应动态链接到 libGL.so (Linux) 或 opengl32.dll (Windows),并且任何超出 OpenGL-1.1 的功能都是通过所谓的扩展系统提供,最容易通过像 GLEW (http://glew.sf.net) 这样的库使用。

没有您需要安装或链接到程序中的库!

一个系统的 OpenGL 实现当然是一个库,但是所有 OpenGL 实现都实现相同的 API,并且您使用的就是这个 API。

对于 Windows 下的开发,编译器应该提供正确的 header (MinGW、Cygwin 和 Microsoft 的 SDK 随附),以及一个名为 opengl32.lib 的链接器信息库 stub 。

在用于开发的 Linux 下,您安装 Mesa3D 开发库,它为您提供最小的头文件和一个 stub libGL.so,为链接器提供信息以将正确的导入表构建到可执行文件中。

您的程序不需要包含某些 OpenGL,而是希望它安装在系统上——做出一个非常安全的假设。即使是 Windows Vista 和 7 也附带了一些 OpenGL 实现,而在 Linux 中它是一个普遍安装的东西。在 MacOS X 上,它始终存在,因为整个 OS X GUI 都建立在 OpenGL 之上。

关于c++ - C++ 的 OpenGL 实现列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8865437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com