added needClear flag to take care of initial window clear and window resize clears
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@204 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
parent
a3b3a309dd
commit
29a1cf87af
@ -50,6 +50,9 @@ float scale_factor = 1.0 ;
|
|||||||
/* The current point */
|
/* The current point */
|
||||||
float current_x = 0.0, current_y = 0.0 ;
|
float current_x = 0.0, current_y = 0.0 ;
|
||||||
|
|
||||||
|
/* Signals when a glClear is needed */
|
||||||
|
static GLboolean needClear = GL_TRUE;
|
||||||
|
|
||||||
static void draw_level ( int num, double m00, double m01, double m10, double m11, double n0, double n1 )
|
static void draw_level ( int num, double m00, double m01, double m10, double m11, double n0, double n1 )
|
||||||
{
|
{
|
||||||
/* Draw a fractal transformed by "M", "N" as passed in */
|
/* Draw a fractal transformed by "M", "N" as passed in */
|
||||||
@ -70,6 +73,11 @@ static void draw_level ( int num, double m00, double m01, double m10, double m11
|
|||||||
static void
|
static void
|
||||||
Display(void)
|
Display(void)
|
||||||
{
|
{
|
||||||
|
if (needClear) {
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
needClear = GL_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
/* the curve */
|
/* the curve */
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glScalef(2.5, 2.5, 2.5);
|
glScalef(2.5, 2.5, 2.5);
|
||||||
@ -99,6 +107,7 @@ Reshape(int width, int height)
|
|||||||
xwin = -1.0 ;
|
xwin = -1.0 ;
|
||||||
ywin = 0.0 ;
|
ywin = 0.0 ;
|
||||||
glTranslatef(xwin, ywin, -5.0);
|
glTranslatef(xwin, ywin, -5.0);
|
||||||
|
needClear = GL_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -119,7 +128,7 @@ Key(unsigned char key, int x, int y)
|
|||||||
break ;
|
break ;
|
||||||
}
|
}
|
||||||
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
needClear = GL_TRUE;
|
||||||
|
|
||||||
glutPostRedisplay();
|
glutPostRedisplay();
|
||||||
}
|
}
|
||||||
@ -169,7 +178,7 @@ Special(int key, int x, int y)
|
|||||||
break ;
|
break ;
|
||||||
}
|
}
|
||||||
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
needClear = GL_TRUE;
|
||||||
|
|
||||||
glutPostRedisplay();
|
glutPostRedisplay();
|
||||||
}
|
}
|
||||||
@ -256,8 +265,6 @@ main(int argc, char *argv[])
|
|||||||
|
|
||||||
glClearColor(1.0, 1.0, 1.0, 1.0);
|
glClearColor(1.0, 1.0, 1.0, 1.0);
|
||||||
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
glutReshapeFunc(Reshape);
|
||||||
glutKeyboardFunc(Key);
|
glutKeyboardFunc(Key);
|
||||||
glutSpecialFunc(Special);
|
glutSpecialFunc(Special);
|
||||||
|
Reference in New Issue
Block a user