【发布时间】:2011-04-12 09:23:20
【问题描述】:
我正在使用 VS2010 在 Windows 7 机器上创建 OpenGL 游戏。此外,还使用了 SDL、QtCore、QtXML 和 FbxSdk 来辅助开发。在调试模式外运行时,我遇到了 glGenTextures 的一个非常特殊的问题。让我解释一下。
当我在调试模式下编译和运行应用程序时,模型被纹理化并正确显示。一旦我调试应用程序或使用发布模式编译和运行应用程序,纹理就不再应用于模型。
我已经找到 glGenTextures 没有给我一个有效名称的问题。它也没有给我任何错误。我加载所有内容的方式如下:
模型通过 FbxSdk 加载为 FBX,加载模型时加载所需的纹理。所有模型都加载到另一个线程中,我确保在该线程加载模型时不会在任何地方调用 OpenGL 函数。如果我不在另一个线程中加载模型,一切正常。我尝试了所有我能想到的方法,包括在加载模型时暂停主线程,以保证在加载模型时不会发生其他任何事情。都不行。
同样,除了编译为调试工作之外,这不会那么奇怪。发布和调试应用程序不起作用。有什么想法吗?
【问题讨论】:
-
在调试模式下,一些未初始化的变量可能被设置为 0。由于 0 在大多数 OpenGL 函数调用中具有特殊含义,这可能是错误的来源。查找未初始化的变量,或向我们展示
glGetTextures周围的代码 -
我同意,但在调试模式下调试应用程序不起作用。
标签: multithreading visual-studio-2010 opengl windows-7