我在我的应用程序中使用GLEE,并且在普通Windows上一切正常。检查所有使用的OpenGL扩展
但是,在虚拟化环境下运行时,我的应用程序无法正常工作。要么是崩溃,要么就是呈现黑色。这可能是由于缺少一些OpenGL扩展。我试图找出所有使用的扩展名,并在程序启动时检查它,以便警告用户。这在碰撞事件中已经解决了。但是,在渲染黑色的情况下,我没有得到任何扩展名缺失警告。我怀疑这是因为我错过了一些延期检查。所以我的问题是。
是否有任何好方法可以识别全部在应用程序中使用的OpenGL扩展,以便人们可以为它们添加检查?
这将工作只为引进新的程序扩展。像GL_ARB_cubemap这样的扩展只能引入新的标记,不会用这个来覆盖。 – datenwolf 2011-02-28 09:55:46
没错,我没有想到仅仅引入新的常量(或者GLSL指令,如texgrad)的扩展。尽管我无法想象如何在程序上发现是否在不知不觉中使用了其中之一。那么,可以编写一个解析器来遍历整个源代码,并提取所有以GL_或gl开头的标记(以及可能的wgl和glx)。事实上,我猜想有一定程度的sed-fu的人可能会这样做,而无需为它编写程序。那么剩下的就是与xml规范的匹配。 – Damon 2011-02-28 12:18:09