2

Virtualbox 和 VMware 让我在尝试学习 OpenGL 时遇到了困难。我有一个 Linux 虚拟机(Lubuntu 12.10),这是我在运行程序时得到的错误:

虚拟机:

Unable to create OpenGL context

虚拟盒子:

OpenGL Warning: glFlushVertexArrayRangeNV not found in mesa table
OpenGL Warning: glVertexArrayRangeNV not found in mesa table
OpenGL Warning: glCombinerInputNV not found in mesa table
OpenGL Warning: glCombinerOutputNV not found in mesa table
OpenGL Warning: glCombinerParameterfNV not found in mesa table
OpenGL Warning: glCombinerParameterfvNV not found in mesa table
OpenGL Warning: glCombinerParameteriNV not found in mesa table
OpenGL Warning: glCombinerParameterivNV not found in mesa table
OpenGL Warning: glFinalCombinerInputNV not found in mesa table
OpenGL Warning: glGetCombinerInputParameterfvNV not found in mesa table
OpenGL Warning: glGetCombinerInputParameterivNV not found in mesa table
OpenGL Warning: glGetCombinerOutputParameterfvNV not found in mesa table
OpenGL Warning: glGetCombinerOutputParameterivNV not found in mesa table
OpenGL Warning: glGetFinalCombinerInputParameterfvNV not found in mesa table
OpenGL Warning: glGetFinalCombinerInputParameterivNV not found in mesa table
OpenGL Warning: glDeleteFencesNV not found in mesa table
OpenGL Warning: glFinishFenceNV not found in mesa table
OpenGL Warning: glGenFencesNV not found in mesa table
OpenGL Warning: glGetFenceivNV not found in mesa table
OpenGL Warning: glIsFenceNV not found in mesa table
OpenGL Warning: glSetFenceNV not found in mesa table
OpenGL Warning: glTestFenceNV not found in mesa table

两个 VM 都安装了相应的来宾添加,并启用了 3D 加速。glxgears 适用于两台机器:/

我的代码与此处相同:http: //open.gl/context

我想问题可能是给定示例中的 OpenGL 版本是 3.2,所以我尝试将其更改为 2.1,此时 VMware 不再给出任何错误,但窗口仍然不显示。

谢谢!

4

1 回答 1

0

如果您是菜鸟,那么我认为从在任何类型的 VM 上运行 MESA 开始并不是一个好主意。MESA 设置通常非常复杂。MESA OpenGL 也已过时。它最多支持 3.2 版本的 atm。如果你想要以正确和干净的方式开始使用 OpenGL,您应该更好地使用 GLUT 或GLFW等库设置上下文,并使用GLEW加载 GL 扩展(还有更多)。

此外,网上有很多关于如何开始使用 OpenGL 的教程。其中最好的可能就是这个

并且不要使用VM,它会大大降低性能。

更新:

正如 Datenwolf 在这里正确指出的那样,MESA 的实现并不是“过时的”,而是落后于当前 4.4 的最新 OpenGL 规范

于 2013-07-31T10:29:52.330 回答