J'utilise Dev-C++ 4.9.9.2 (ne demandez pas pourquoi) et SDL 1.2.8.Le programme SDL GL se termine immédiatement
Suivant J'ai créé un nouveau projet: SDL & GL. Ce projet contient déjà du code:
#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);
}
Ensuite, j'ai compilé le projet et essayé de l'exécuter. Après l'exécution, le programme affiche pendant moins de 1 seconde et se termine immédiatement. Débogueur renvoie l'erreur suivante: "Une violation d'accès (erreur de segmentation) soulevée dans votre programme". J'utilise Windows 2003 et Radeon x1950 PRO avec les derniers pilotes.
J'ai testé un programme sur un ordinateur portable avec Windows XP et cela fonctionne parfaitement. Pourquoi ce programme ne fonctionne pas sur mon ordinateur?
Je le prends en vérifiant les retours d'erreur sur tous vos appels SDL et GL n'était pas instructif? – genpfault
Oui, ce n'était pas informatif, car il renvoie l'erreur suivante: "Une violation d'accès (erreur de segmentation) soulevée dans votre programme". – GTD