begin process at 2012 05 30 00:30:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

OpenGL figé


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

OpenGL figé

mardi 5 avril 2005 à 22:47:50 | OpenGL figé

keselbingo

Bonsoir à tous,

Je viens de lire les dix pages de sujets sur OpenGL du forum, et je n'ai rien trouvé qui ressemble à ce que j'ai, je soumets donc mon problème ici.

J'ai fait un programme OpenGL GLUT tout bête (un point qui traverse l'écran), mais lorsque je stoppe l'exécution (fermeture du .exe) et que je le relance une seconde fois, le point reste figé au même endroit que là où il s'est arrêté lors de la première exécution.
D'où ma question : y'a-t-il besoin d'une commande pour signaler l'arrêt d'un graphique OpenGL (sachant que j'utilise déjà un glEnd) ? Si oui, où dois-je placer cette commande ?


Merci d'avance...


mardi 5 avril 2005 à 22:54:35 | Re : OpenGL figé

keselbingo

J'ai oublié de préciser que le point se déplace à travers l'écran à l'aide d'un timer.

Et si ça peut aider, voici en gros mon code :

int main(int argc, char *argv[])
{

 glutInit(&argc, argv);
 glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);

 glutInitWindowSize(640, 480);
 glutInitWindowPosition(200, 200);
 glutCreateWindow("Test");

 glutDisplayFunc(Display);
 glutReshapeFunc(Reshape);
 glutTimerFunc(10,Timer,0);

cx = 0
cy = 0

 glutMainLoop();

 return 0;

}

void Timer(int value)
{
 
 if (cx < 640 && cy < 480)
 {
  cx = cx + 1;
  cy = cy + 1;

  glBegin(GL_POINTS);
  glColor3f(0, 0, 1);
  glVertex2i(cx, cy);

  glutSwapBuffers();
  glutPostRedisplay();
 }

 else
 {
  glEnd();
  glFlush();
  Display();
  cx = 0;
  cy = 0;
 }

 glutTimerFunc(10, Timer, 0);

}


mercredi 6 avril 2005 à 22:30:34 | Re : OpenGL figé

Arnaud16022

Membre Club
ouie
heu...
ne me dis pas que tu as trouvé ce code tout fait je ne te croirais pas (c'est pas plus mal remarque, pour une fois quon ne fait pas de copier coller)

le main a l'air correct
mais le Timer...

void Timer(int value)
{
 
 if (cx < 640 && cy < 480)
 {
// changer le cx en cx++ ou cx+=1 ou mieux cx+= delta-temps;
  cx = cx + 1;
  cy = cy + 1;
// la tu m'apprends qqch, je connaissais pas le define GL_POINTS :o
  glBegin(GL_POINTS);
  glColor3f(0, 0, 1);
  glVertex2i(cx, cy);

  glutSwapBuffers();
// pas les deux ensemble
  // glutPostRedisplay(); a virer
 }

 else  // je cale pas trop ... ca c'est quand le prog se termine? ???!! de toute facon ca va pas
 {

  glEnd();// se met apres un glBegin. si ce glGegin est celui qui est au dessus, ENLEVE CA, il faut que ce soit dans la meme boucle;

  glFlush(); // se met tout a la fin, quand on a fini d'afficher
  Display();// ...
  cx = 0; // ??.. enfin bon
  cy = 0;
 }

 glutTimerFunc(10, Timer, 0);  // hé ho une fois suffit, tu as déja déclaré ton timer dans main, enleve ca

}

bon je dis pas que ca va marcher mais ca peut que etrte mieux
++
ad

_______________________
Omnia vincit labor improbus
jeudi 7 avril 2005 à 00:16:38 | Re : OpenGL figé

keselbingo

Non en fait c'est bon, j'ai fini par me dépatouiller tout seul :)
Merci beaucoup quand-même, c'est sympa d'avoir pris le temps de m'aider !
Et en effet, j'ai fait le code comme je le sentais, je me suis juste basé sur les tutos du site web de Funto...
Et pour toutes les spécificités de l'OpenGL, je te renvoie à : http://www.cppfrance.com/code.aspx?ID=11013 , il est très complet et bien fait.

Merci encore, et @plus.


jeudi 7 avril 2005 à 19:03:21 | Re : OpenGL figé

Arnaud16022

Membre Club
oui je l'ai seulement les points en openGL c'est pas ce qu'il y a de plus courant. (et puis de toute facon sur openGL j'ai plus grand chose a apprendre)
c'est quoi qui allait pas alors?

_______________________
Omnia vincit labor improbus
jeudi 7 avril 2005 à 21:00:47 | Re : OpenGL figé

keselbingo

Ah, désolé d'avoir fait double emploi pour le tutorial ^^

Sinon le plus gros problème était qu'il fallait terminer le dessin par glEnd() à chaque fois que j'avais fait un point, et non attendre que tous les points soient tracés pour faire un glEnd()... Plus quelques autres anomalies de code minimes que j'ai pu réparer.

Donc voilà, pour ça c'est réglé, mais je tombe sur un nouvel os (un peu plus volumineux me semble-t-il), si tu as le temps de te pencher sur mon cas, http://www.cppfrance.com/forum.v2.aspx?ID=428588

Merci encore pour ton aide :)




Cette discussion est classée dans : commande, opengl, exécution, figé


Répondre à ce message

Sujets en rapport avec ce message

déplacement fenetre opengl -> animation figé ? [ par zwei ] bonjour !voila mon problème :j'ai fait une application qui, lorsque je click sur un bouton, me me lance une animation faite en opengl dans une fenetre Cube rotatif sur commande en OpenGL [ par Yoshiji ] Bonjour, Tout d'abord, je suis sous windows Seven 64, codant sous Code::Blocks. J'ai un projet à faire dans le cadre de mes études : Un cube en C en Récupération de la Profondeur des Objets OpenGL [ par shorzy ] Salut J'ai un Probleme sur les Selections-Picking. J'ai une Face (Rectangle) dessiner à une Profondeur de -5 (par Ex.) Comment savoir quand je pose m communication avec automate siemens s7 200 [ par zeom ] pour communiqué avec un automate siemens il faut connaitre le liste de commande pour ces automates envoyé dans le trame de donnée .est c qu'il y a que Débuter avec OpenGL [ par mohdaef ] Bonjour à tous J'ai commencé à programmer sous OpenGL 2.6 il y a quelque temps et je souhaiterai passer à la version 3.1 ou bien 3.2, cependant je me probleme nombre de caractères maximum d'une ligne de commande [ par ar1du62 ] Bonjour, Voila mon probleme, dans mon programme en C je souhait éxécuter cette commande [code=cpp] system("tiffcp -c g4 ./entree/001.tif ./entree/002 Commande mysqldump [ par antoinepii ] Bonjour, je doit sauvegarder toute ma base de données via mon application C++ J'ai trouvé la commande système "mysqldump" Mon serveur se situe a l'a Paramètre ligne de commande [ par aforpien ] Bonjour à tous, J'essai de récupérer les paramètres de ligne de commande en C++. J'y arrive, mais je n'arrive pas à les parser, c'est à dire que je s comment créé un racourcie en langage C [ par thejrem ] bonjour je suis sous windows xp et je devloppe avec visual studio en lanage c et c++ et j'aimerai créé un raccourci de mon prgramme dans %USERPROFILE% Tuer programme récalcitrant avec Taskkill [ par balthazariv ] Bonjour, J'ai un programme qui reste actif car inexistence d'une commande quitter ou de la fameuse croix rouge que l'on connait bien. Ma seule soluti


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales