我使用的是Dev-C++ 4.9.9.2(不問爲什麼)和SDL 1.2.8。SDL GL程序立即終止
接下來我創建了一個新項目:SDL & GL。此項目已包含一些代碼:
#include <SDL/SDL.h>
#include <gl/gl.h>
int main(int argc, char *argv[]){
SDL_Event event;
float theta = 0.0f;
SDL_Init(SDL_INIT_VIDEO);
SDL_SetVideoMode(600, 300, 0, SDL_OPENGL | SDL_HWSURFACE | SDL_NOFRAME);
glViewport(0, 0, 600, 300);
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClearDepth(1.0);
glDepthFunc(GL_LESS);
glEnable(GL_DEPTH_TEST);
glShadeModel(GL_SMOOTH);
glMatrixMode(GL_PROJECTION);
glMatrixMode(GL_MODELVIEW);
int done;
for(done = 0; !done;){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0.0f,0.0f,0.0f);
glRotatef(theta, 0.0f, 0.0f, 1.0f);
glBegin(GL_TRIANGLES);
glColor3f(1.0f, 0.0f, 0.0f);
glVertex2f(0.0f, 1.0f);
glColor3f(0.0f, 1.0f, 0.0f);
glVertex2f(0.87f, -0.5f);
glColor3f(0.0f, 0.0f, 1.0f);
glVertex2f(-0.87f, -0.5f);
glEnd();
theta += .5f;
SDL_GL_SwapBuffers();
SDL_PollEvent(&event);
if(event.key.keysym.sym == SDLK_ESCAPE)
done = 1;
}
SDL_Quit();
return(0);
}
接下來我編譯項目並嘗試運行它。運行後程序顯示少於1秒,並立即終止。調試器返回以下錯誤:「程序中引發的訪問衝突(分段錯誤)」。
我使用的Windows 2003和Radeon x1950 PRO與最新的驅動程序。
我已經測試過與Windows XP的筆記本電腦上的程序,它完美的作品。爲什麼這個程序在我的電腦上不起作用?
我認爲它檢查所有您的SDL和GL調用的錯誤返回是不是信息? – genpfault 2009-10-23 16:26:38
是的,它沒有提供信息,因爲它返回以下錯誤:「在程序中引發訪問衝突(分段錯誤)」。 – GTD 2009-10-26 11:48:32