Bonjour à tous.
Voila j’ai deux petits problèmes avec OpenGL.
Pour le premier, je voudrais, au milieu d’un programme, affiché mon image et qu’ensuite le programme continu.
J’utilise ce code (test est la structure ou toutes les info sont stockées):
[U]Main:[/U]
/************************************* Initialization OpenGL ***************************************/
/* Initialize GLUT state - glut will take any command line arguments
that pertain to it or X Windows */
glutInit(&argc, argv);
/* Select type of Display mode: Single buffer, RGB color*/
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
/***************************************************************************************************/
Chargement de l'image
/******************* Display the image thanks to OpenGL *************************/
glutInitWindowSize(test.Largeur(), test.Hauteur());
/* the window starts at the upper left corner of the screen */
glutInitWindowPosition(0,0);
/* Open a window */
window1 = glutCreateWindow(test.GetNom());
/* Initialize our window. */
InitGL();
/* Register the function to do all our OpenGL drawing. */
glutDisplayFunc(&DrawScene);
/* Start Event Processing Engine */
glutMainLoop();
/***************************************************************************/
[U]Fonction drawscene:[/U]
/* The main drawing function. */
void DrawScene(){
// Clear The Screen
glClear(GL_COLOR_BUFFER_BIT);
glDrawPixels( test.Hauteur(), test.Largeur(), GL_LUMINANCE, GL_UNSIGNED_BYTE, test.GetImage() );
/* don't wait! start processing buffered OpenGL routines */
glFlush ();
}
Mon problème est que le programme s’arrête quand il exécute glutMainLoop().
Je pense que c’est normal, le problème c’est que si je le met à la fin, mon programme affiche les images qu’a la fin.
Et j’aimerais qu’elle s’affiche au fur et à mesure (En faite j’ai plusieurs images à afficher au fur et a mesure).
Est-ce qu’il y a une fonction pour afficher l’image et continuer le programme après ??
Comme mettre l’image en fond en faite.
Mon second problème est l’image affichée. Elle n’est bonne.
Voici ce que ca donne:
http://osiris.ubishops.ca/~achollet/Affichage/Image_Deforme.JPG
Comme vous pouvez le voir elle est toute étirée !!
l’image originale est Lena.pgm, en P2.
La je pense que j’ai un souci avec ma fonction d’affichage:
glDrawPixels( test.Hauteur(), test.Largeur(), GL_LUMINANCE, GL_UNSIGNED_BYTE, test.GetImage() );
Est-ce que vous sauriez résoudre ca?
(J’ai essayé en inversant Hauteur et Largeur mais ca n’a rien changé ou en mettant GL_BYTE mais la ca m’a sorti une exception à l’éxécution)
Comme matrice je lui envoi la matrice de l’image et elle est sous forme de byte*.
Merci beaucoup pour votre aide !!!