我已经使用cygwin和OpenGL编写了一些3D应用程序几个月了。现在我想尝试使用像顶点缓冲对象这样的一些稍微高级的技术。但是,我注意到遇到了一个障碍:当我在程序中使用
我使用以下标志编译程序:
我有一台新的桌面电脑,配备了ATI FirePro V4800(FireGL)显卡,可以支持OpenGL 4.1。我安装了最新的驱动程序,并通过程序提供的测试(OpenGL扩展查看器)测试通过。此外,该程序显示,所有扩展都可用于我的图形卡,包括4.1。
在这里的最后一个答案下简要提到,cygwin可能希望使用旧的dll(不支持着色器等)。这是cygwin的问题吗?cygwin是否只能识别我的最新驱动程序并为我提供OpenGL 4.1中的酷炫功能?还是我没有链接到正确的库?
更新:
了解了Cygwin的X Server工作方式后,我想我应该切换到freeglut的本地Windows库。我获取了在这里找到的预编译二进制文件,并将文件放置在适当的目录中以链接它们。重新编译后,我能够使用我的图形卡允许的所有OpenGL选项(4.1)。
glGetString(GL_VERSION)
时,它输出1.4。我使用以下标志编译程序:
-lGL -lglut -lGLU -lGLEW
,并包含以下头文件:freeglut.h glew.h
。我选择链接X11库而不是Windows库,如这里所解释的那样。我的当前OpenGL程序可以构建并运行(因为直到现在,我一直使用旧功能——OpenGL 1.4之前的功能)。我有一台新的桌面电脑,配备了ATI FirePro V4800(FireGL)显卡,可以支持OpenGL 4.1。我安装了最新的驱动程序,并通过程序提供的测试(OpenGL扩展查看器)测试通过。此外,该程序显示,所有扩展都可用于我的图形卡,包括4.1。
在这里的最后一个答案下简要提到,cygwin可能希望使用旧的dll(不支持着色器等)。这是cygwin的问题吗?cygwin是否只能识别我的最新驱动程序并为我提供OpenGL 4.1中的酷炫功能?还是我没有链接到正确的库?
更新:
了解了Cygwin的X Server工作方式后,我想我应该切换到freeglut的本地Windows库。我获取了在这里找到的预编译二进制文件,并将文件放置在适当的目录中以链接它们。重新编译后,我能够使用我的图形卡允许的所有OpenGL选项(4.1)。