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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 22 695 fois - Téléchargée 40 fois

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

Ajouter un commentaire

Commentaires

cs_jeron
Messages postés
29
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
25 juillet 2014
2 -
SAlut il suffit d'inclure les bonnes librairies opengl.a dans devcpp/lib et glut.dll dans windows\system32

GLGLUT doit etre remplacer par #include "GL\Glut.h" sinon cela signifie que GLGLUT est dans le repertoire DEvcpp\include\ (c'est peut etre comme ca pour borland)
souf_
Messages postés
7
Date d'inscription
samedi 6 mai 2006
Statut
Membre
Dernière intervention
1 octobre 2006
-
salut a tous
j'ai un probleme aprés avoir impliber glut.lib j'ai fait ce petit programme sous builder6.0
//---------------------------------------------------------------------------

#include <windows.h>
#include <vcl.h>
#include <Gl\gl.h>
#include <Gl\glu.h>
#include <Gl\glut.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
glutInit(& argc, argv);

return 0;
}

mais j'ai eu le probleme suivant

[Linker Error] Unresolved external 'glutInit' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ

merci d'avance
cs_rainiou
Messages postés
6
Date d'inscription
lundi 31 octobre 2005
Statut
Membre
Dernière intervention
24 juin 2007
-
En tout cas, ARTooKit n'a pas l'air d'aimer! je vais essayer de deplacer le code, mais des qu'il me reconnait un pattern, et bien ca plante ;)
Ilsundal
Messages postés
80
Date d'inscription
lundi 23 décembre 2002
Statut
Membre
Dernière intervention
1 mars 2011
-
je travail sous DevC++, et quand je compile, ca me met la gome de message d'erreurs :

[Linker error] undefined reference to 'glutInitDisplayMode@4'

et ca me met ca pour tout les truc glutInit...
Quicky24
Messages postés
29
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
15 avril 2005
-
slt pour Dav6215: tu trouveras glut à
www.dil.univ-mrs.fr/~garetta/generique/autres/OGL/
enfin si tu es sur win
quicky24

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.