summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--progs/demos/reflect.c24
1 files changed, 19 insertions, 5 deletions
diff --git a/progs/demos/reflect.c b/progs/demos/reflect.c
index ce0239211ff..0bec0663bc2 100644
--- a/progs/demos/reflect.c
+++ b/progs/demos/reflect.c
@@ -302,11 +302,21 @@ DrawWindow(void)
GLfloat dist = 20.0;
GLfloat eyex, eyey, eyez;
- glDrawBuffer(w->drawBuffer);
- glReadBuffer(w->drawBuffer);
+ if (w->drawBuffer == GL_NONE) {
+ glDrawBuffer(GL_BACK);
+ glReadBuffer(GL_BACK);
+ }
+ else {
+ glDrawBuffer(w->drawBuffer);
+ glReadBuffer(w->drawBuffer);
+ }
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
+ if (w->drawBuffer == GL_NONE) {
+ glDrawBuffer(GL_NONE);
+ }
+
eyex = dist * cos(w->yrot * DEG2RAD) * cos(w->xrot * DEG2RAD);
eyez = dist * sin(w->yrot * DEG2RAD) * cos(w->xrot * DEG2RAD);
eyey = dist * sin(w->xrot * DEG2RAD);
@@ -376,10 +386,10 @@ DrawWindow(void)
ShowAlphaBuffer(w->width, w->height);
}
- if (w->drawBuffer == GL_BACK)
- glutSwapBuffers();
- else
+ if (w->drawBuffer == GL_FRONT)
glFinish();
+ else
+ glutSwapBuffers();
/* calc/show frame rate */
{
@@ -460,6 +470,10 @@ Key(unsigned char key, int x, int y)
w->drawBuffer = GL_FRONT;
glutPostRedisplay();
break;
+ case '0':
+ w->drawBuffer = GL_NONE;
+ glutPostRedisplay();
+ break;
case ' ':
w->anim = !w->anim;
w->t0 = -1;