我有一个理论,根据这个理论,我遇到的错误是由于使用了 glPushMatrix 而没有匹配的 glPopMatrix 造成的。我的项目相当大,所以我希望能够轻松找到这些缺失的 glPopMatrix()。我想过使用正则表达式进行搜索,但似乎找不到如何找到我想要的东西(另外,Visual Studio 中的正则表达式与我习惯的(php)不完全相同,所以我有点迷茫。无论如何,有什么关于如何做到这一点的想法吗?
编辑:我正在使用 C++
答案1
修改代码来为您进行检查可能会更简单。
glPushMatrix
创建设置glPopMatrix
和取消设置标志的新版本。然后,如果您的新glPushMatrix
版本在标志仍然设置的情况下被调用,您就知道您找到了调用后你的罪魁祸首。
通过适当记录调用堆栈等,您应该能够找到罪魁祸首。
我做这种编程已经有一段时间了,你也没有说你使用的是什么语言,所以我不知道你是否能够直接覆盖这些方法,或者必须做一些巧妙的手段才能让它工作。