我正在奇怪的问题,坠机发生在随机时间,比如我设法使用3D应用了一会儿没有崩溃,那么大多数时候它总是崩溃时,我突然同时渲染很多对象。OpenGL的:在随机的OpenGL函数调用崩溃
我最近注意到,改变这个ATI卡上的巨大纹理表面使用巨大的纹理尺寸和他们中的很多在一帧从一个切换到另一个时会崩溃我的整个计算机。所以这是一种可能性,我打破了ATI卡或只是一辆越野车。但是由于我最近添加了一些代码,现在我第一次注意到这个崩溃,所以它是不可信的。我没有使用任何特殊的opengl调用,只是良好的旧glbegin()glend()glcolor()等...
如果我注释掉它之前崩溃的行,例如glBegin(GL_QUADS)... glEnd ()然后下一次,我碰到不同的openGL函数调用,在我的代码的不同位置,例如glColor4f(),然后我发表评论,然后我在glClear()完全不同的部分渲染代码!
什么引起这些?我使用ATI卡,我知道一些opengl调用可能会导致程序崩溃,如果他们使用不正确的值,就像glLineWidth(4)会使一些ATI卡崩溃在一个随机的openGL代码行上,因为最大行宽是3!
编辑:
当我与ApplicationVerifier调试模式下运行程序时,它抛出我这一行:
if(!(PixelFormat = ChoosePixelFormat(hDC, &pfd))){
我不明白,怎么可能是错的呢?
PFD:
static PIXELFORMATDESCRIPTOR pfd = {
// *correct amount of elements*
};
最好的办法是用另一个GPU在计算机上试试你的程序,看它是否也崩溃 – Tomaka17 2010-08-12 17:30:48