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

如何在cygwin中使用当前版本的opengl?,opengl,cygwin,Opengl,Cygwin,几个月来,我一直在使用OpenGL和cygwin来编写一些3d应用程序。我现在想尝试使用顶点缓冲区对象之类的东西编写一些稍微高级一些的技术。然而,我注意到我遇到了一个障碍:当我在我的程序中使用glGetString(GL_版本)时,它会吐出1.4 我用这些标志编译我的程序:-lGL-lglut-lGLU-lGLEW,并且包含了这些标题:freeglut.h glew.h。如前所述,我选择了针对X11库和windows库进行链接。我当前的OpenGL程序可以构建并运行(因为到目前为止,我使用的是旧

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

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

我有一台新的台式计算机,带有ATI FirePro V4800(FireGL)图形卡,最多支持OpenGL 4.1。我已经安装了最新的驱动程序,它通过了OpenGL Extensions Viewer程序提供的测试。此外,该程序显示,我的图形卡可以使用4.1及以下的所有扩展

最后一个答案中有一个简短的提示,说cygwin可能希望使用较旧的DLL(不支持着色器的DLL,等等)。这是cygwin的问题吗?cygwin会不会认不出我最新的驱动程序,不给我提供OpenGL4.1中的酷东西?或者我没有链接到正确的库

更新


在了解了Cygwin的X服务器的工作原理后,我想我应该转向freeglut的原生windows库。我抓取找到的预编译二进制文件,并将这些文件放在适当的目录中,以链接到它们。重新编译后,我可以使用OpenGL中的所有选项,只要我的图形卡允许(4.1)。

当使用Cygwin的X-server时,用-wgl选项启动它(当前版本会自动这样做),然后

在我发帖的机器上,我得到:

$ 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
[...]

是什么让你认为这和Cygwin有什么关系(Cygwin只不过是一个外壳)?它更可能是您的代码,而不是Cygwin.OK。也许我不明白cygwin是如何与我的系统驱动程序交互的。我尝试了一个在上面找到的示例程序,收到一个错误,说
glXCreateContextAttribsARB not found
@nicolabolas:他正在通过Cygwin X服务器使用OpenGL。该服务器的GLX实现只支持OpenGL-1.4ah,谢谢……这就是我要找的信息。@chembrad您如何回答自己的问题?您知道,它被标记为已应答…我按照这些说明(X-wgl,export LIBGL_USE_wgl=1)操作,但是glxinfo仍然报告VMWare/Gallium作为后端。在RTFM()之后,我通过运行X-wgl-multiwindow使它工作。由于我不知道的原因,间接渲染(+iglx)在这里不起作用。
$ 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
[...]