gpt4 book ai didi

opengl - 如何在 cygwin 中使用当前版本的 opengl?

转载 作者:行者123 更新时间:2023-12-04 12:42:37 24 4
gpt4 key购买 nike

我几个月来一直在 cygwin 中使用 OpenGL 来编写一些 3d 应用程序。我现在想尝试使用诸如顶点缓冲区对象之类的东西来编写一些更高级的技术。但是,我注意到我遇到了一个障碍:当我使用 glGetString(GL_VERSION) 时在我的程序中它吐出 1.4。

我用这些标志编译我的程序:-lGL -lglut -lGLU -lGLEW并包含这些标题:freeglut.h glew.h .我选择链接 X11 库与 Windows 库,如 here 所述.我当前的 OpenGL 程序构建并能够运行(因为到目前为止,我使用的是较旧的功能——OpenGL 1.4 之前的版本)。

我有一台带有 ATI FirePro V4800 (FireGL) 显卡的新台式电脑,最高可支持 OpenGL 4.1。我已经安装了最新的驱动程序并且它通过了程序提供的测试:OpenGL 扩展查看器。此外,该程序显示我的显卡可以使用包括 4.1 在内的所有扩展。

简单提一下here在最后一个答案中说 cygwin 可能想要使用较旧的 dll(不支持着色器等的 dll)。这是cygwin的问题吗? cygwin 会不会识别我最新的驱动程序并为我提供 OpenGL 4.1 中很酷的东西?还是我没有链接到正确的库?

更新

在了解了 Cygwin 的 X Server 的工作原理后,我想我应该切换到 freeglut 的 native Windows 库。我抓取了找到的预编译二进制文件 here并将文件放在适当的目录中以链接它们。重新编译后,我可以在显卡允许的情况下使用 OpenGL 中的所有选项 (4.1)。

最佳答案

使用 Cygwin 的 X-server 时,使用 -wgl 选项启动它(当前版本会自动执行此操作)然后

export LIBGL_USE_WGL=1

在我发布的机器上,我得到:
$ glxinfo | grep OpenGL
OpenGL vendor string: Intel
OpenGL renderer string: Intel(R) HD Graphics 2500
OpenGL version string: 4.0.0 - Build 9.17.10.3062
OpenGL shading language version string: 4.00 - Build 9.17.10.3062
[...]

取消设置环境变量:
$ glxinfo | grep OpenGL
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.4, 256 bits)
OpenGL version string: 3.0 Mesa 10.3.5
OpenGL shading language version string: 1.30
[...]

关于opengl - 如何在 cygwin 中使用当前版本的 opengl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9915353/

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