Hello,

Le titre est peut-être pas très clair, je m'explique. J'utilise le code de base de NeHe.
J'ai un objet ligne de classe RandomLine avec une fonction draw() que j'appelle dans ma boucle principale DrawGLScene(GLvoid) (avec ligne->draw() )

fonction draw() de la classe (c'est une spirale déformée) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
temps = temps + 1 ;
 
float sample = 0;
 
float x,y;
float ang;
 
float time = temps/20.0;
 
glColor3f(1.0,1.0,1.0);
 
glBegin(GL_LINE_STRIP);
 
for (int i = 0; i<100; i++)
 
	{
		sample = sample+0.01;
 
	x = 3.14*0.1*sample*cos(2*6.28*sample+2*time);
	y = 3.14*0.1*sample*sin(6.28*sample+time);
 
	glVertex2f(x,y);
	}
 
glEnd();
Là je dois avoir 1 image toutes les 2s ???!!!

par contre, si à la place de
float time = temps/20.0;
je mets
int time = temps;
puis que je remplace time par time/20.0 dans mon calcul de x et y, là c'est normalement fluide...

Enfin, si je laisse tomber la classe et que je mets directement dans DrawGLScene(GLvoid) ce qui était dans ma fonction draw(), là les deux solutions donnent un framerate normal...

Voilà, donc j'y comprends vraiment rien, c'est peut-être plus un problème de c++ que d'open gl, mais si qqn a une explication, je lui serai très reconnaissant avant que je me lance dans un moteur 3d complètement déficient.