X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;ds=sidebyside;f=progs%2Fdemos%2Freflect.c;h=0bec0663bc2835d9162110e0c569f4d7253dad54;hb=c25adeae18a2cbd2c504210dff289af4764ecaf1;hp=1a4504175fd5686b3d8d7482165f9c43d144a124;hpb=1ad3b7e28b726fdafed459b3c9a6adf6e314b391;p=mesa.git diff --git a/progs/demos/reflect.c b/progs/demos/reflect.c index 1a4504175fd..0bec0663bc2 100644 --- a/progs/demos/reflect.c +++ b/progs/demos/reflect.c @@ -42,6 +42,9 @@ #define INIT_WIDTH 400 #define INIT_HEIGHT 300 +#ifdef _WIN32 +#undef CreateWindowA +#endif struct window { int id; /* returned by glutCreateWindow() */ @@ -299,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); @@ -373,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 */ { @@ -457,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;