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:
brianp 2003-09-23 14:17:13 +00:00
parent a3b3a309dd
commit 29a1cf87af

View File

@ -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);