我正在奇怪的問題,墜機發生在隨機時間,比如我設法使用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