- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我几个月来一直在 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/
我是一名优秀的程序员,十分优秀!