xabila
Messages postés28Date d'inscriptionlundi 14 février 2005StatutMembreDernière intervention 2 septembre 2005
-
25 févr. 2005 à 13:32
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 2007
-
4 mars 2005 à 10:07
bonjour,
voilà j'ai passé un de mes codes glut OpenGL sous QT et en fait je
n'arrive pass à convetir mon calcule des fps qui était ultra simple.
Cad j'avais dans ma fonction display, un compteur qui évaluait
combien de fois, mon prog appelait mon display par secondes...
Donc la au lieu de me servir de glutGet(GLUT_ELAPSED_TIME) je me sers
des primitives de windows donc un bete GetTickCount().
Mais c clair que c'est pas ca le probleme, la ou ca foire c'est que je
fais mon calcule dans le paintGL() traditonnel d'un QGLWidget.
Et je me rends compte qu'en fait il ne rentre ici uniquement lorsque la fenetre est cachée.
D'ailleurs ca m'interroge sur le Ou vont mes informations de draw...
Et la ca ne peut venir que du moc...
Anyway qq'un saurait comment donc calculer mes FPS vu que cette methode ne marche pas?
j'ai bien essayé de supprimer le autoSwap, de tenter de redefinir le
updateGL, et j'ai pas tenté le glDraw car ya ecrit dans la doc que ca
appelle le paintGL...
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 26 févr. 2005 à 10:29
arg. glut. encore et toujours glut.
bon un bon conseil: fous-le a la poubelle.
(bon apparament c'est ce que t'as fait...)
va sur le site de Digiben (www.gametutorials.com), -> tutos->openGL->page2->time based movement.
t'as une fonction qu fait ca quelque part, la seule chose que t'as a
changer c'est le SDL_getTicks qu'il faut modifier par la fonction
correspondante de windows ou de QT
xabila
Messages postés28Date d'inscriptionlundi 14 février 2005StatutMembreDernière intervention 2 septembre 2005 26 févr. 2005 à 17:07
donc comme je m'en doutais, y 'avait pas de solution miracle fait par gametutorial...
Je ne demandais pas comment calculer les FPS...
Mon probleme c'est qu'il n'y a pas de fonction de rendu appelé à chaque
frame accéssible par l'API de QT. le paintGL est redéfini... enfin je
crois mais c'est ce que me dit ma console....
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 20072 3 mars 2005 à 20:28
Avec Qt pour calculer le FPS, tu peux te servir des QTimer, voire aussi pour rafraichir ton paintGL.
Explication :
Pour rafraichir automatiquement : dans initializeGL() tu fait
connect(&qTimerRedraw, SIGNAL(timeout()), this, SLOT(timerRedraw()));
qTimerRedraw.start(10);
-> le slot timerRedraw :
void TA_CLASSE::timerRedraw()
{
updateGL();
}
Pour calculer le FPS : tu creer (par exemple) un int cptPaintGL que tu initialise a 0 dans initializeGL(), puis toujours dans initializeGL() tu balance un timer :
connect(&qTimerFPS, SIGNAL(timeout()), this, SLOT(timerFPS()));
qTimerFPS.start(1000);
-> le slot timerFPS :
void TA_CLASSE::timerFPS()
{
//ici tu as ton nombre de FPS dans cptPaintGL
//que tu peut relancer dans un signal par exemple pour l'envoyer sur un QLabel
//puis faire cptPaintGL=0;
}
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 20072 4 mars 2005 à 10:07
J'ai aussi oublié de dire que dans la doc de Qt ils disent que tu peut faire un autoSwapBuffer et meme un autoRefresfh mais jamais ni l'un ni l'autre n'a marché chez moi (alors que par défaut ils disent que ces modes sont enable).