Creation de menu en open gl [code en c] [gcc]

Contenu du snippet

Bon bah voila maintenant un petit exemple de creation d'un menu en OpenGL

Source / Exemple :


#include <GL/glut.h>

void menu(unsigned char key, int x, int y)
{
    //Bon bah ici je pense que vous aurez compris
    switch(key)
    {
        case 'q':
	     exit(0);
	     break;
    }
}

void gere_menu(int value)
{
      menu(value, 0, 0);
      //Envoie la valeur recu a la fonction menu
      //si par exemple en suivant notre exemple l'item 'Quitter' a ete cliquer
      //la valeur qui sera envoyr a la fonction menu sera ?
      //q biensur ;-)
}

int main(int argc, char **argv)
{
      glutInit(&argc, argv);
     /*ouverture de la fenetre avec tampon de profondeur (Z-Buffer) => GLUT_DEPTH */
     glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
     glutInitWindowSize(500, 500); 
     glutCreateWindow("Fenetre OpenGL pour tester les menus");
      
      //Cette fonction est un peu comme glutKeyboarFunc(); ou glutMouseFunc();
      //elle permet de choisir la fonction qui gerera le menu
      glutCreateMenu(gere_menu); 
      //Cela ajoute un Item au menu, avec l'intituler 'Quitter' et la valeur 'q'
      //en fait cela a pour effet d'envoyer le signal q a la fonction gere_menu(); 
      //lorque le click sur l'Item Quitter aura ete detecter
      glutAddMenuEntry("Quitter", 'q');
      //La fonction glutAttachMenu(); indique d'ou doit etre appeller le menu, dans notre exemple
      //j'ai choisi d'appeller le menu depuis le bouton droit de la souris, mais vous pouvez aussi
      //faire ca avec une touhe de fonction du clavier (voir plus haut touches du claver)
      glutAttachMenu(GLUT_RIGHT_BUTTON);
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.