Bonsoir,
petite présentation du problème.
Je tente de me coder un petit moteur de collision 2d en testant quelques algorithmes trouvés sur internet, j'utilise codeblock sous windows xp 64/MinGW et l'api glut affin de m'afficher une fenetre et des polygones.
Le code se compile bien, se link bien, 0 erreur, 0 warning, mais un segment fault au moment de lancer l'application. Aprés debuggage, code block indique que l'erreur se situe au niveau de la fonction glutDisplayFunc() puis m'indique glut32.dll.
voici la fonction main: (la ligne qui pose problème est indiquée en rouge)In glutDisplayFunc () (C:\Documents and Settings\****\glut32.dll)
puis la fonction de callback Display :int main(int argc, char** argv)
{
glutInit( &argc, argv );
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
glutInitWindowSize (width, height);
glutInitWindowPosition (0, 0);
glPointSize(3.0f);
glEnable (GL_BLEND);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDisable (GL_DEPTH_TEST);
glDisable (GL_LIGHTING);
---> glutDisplayFunc (Display);
glutReshapeFunc (Reshape);
glutTimerFunc (0, Timer, (int)(100.0f / 60.0f));
glutPassiveMotionFunc (PassiveMotion);
glutMouseFunc (Mouse);
glutMotionFunc (Motion);
glutKeyboardFunc (Keyboard);
glutSpecialFunc (ExtKeyboard);
Init ();
glutMainLoop ();
return 0;
}
j'ai fais des test avec d'autre programme utilisant glut et donc glut32.dl et tout fonctionne,void Display(void)
{
glClearColor(0.2f, 0.2f, 0.2f, 0.2f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
float aspect = width / (float) height;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, dbg_world_size * aspect, 0, dbg_world_size, -100, 100);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
float fx = ( (mouse_x / (float) width )) * dbg_world_size;
float fy = (1.0f - (mouse_y / (float) height)) * dbg_world_size;
GameMouse(fx, fy, mouse_b);
GameUpdate(1.0f / 60.0f);
GameRender();
glutSwapBuffers();
}
Quelqu'un pourrait-il me lancer sur une piste?
Partager