X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Fglx%2Fstonerview-view.c;h=6964d07425e9b9b66865cee86c55ed85afade31c;hp=a72478123ca94141925b6f61379603dfb3ab3f6c;hb=3d9140a05b5272fed0883a0af0a71e30ef44d47f;hpb=ebc241816cc8e3eec7270a594bb1a607df32bcd6 diff --git a/hacks/glx/stonerview-view.c b/hacks/glx/stonerview-view.c index a7247812..6964d074 100644 --- a/hacks/glx/stonerview-view.c +++ b/hacks/glx/stonerview-view.c @@ -125,6 +125,8 @@ int init_view(int *argc, char *argv[]) XSizeHints hints; GLXContext glx_context = 0; + progname = argv[0]; + memset (&hints, 0, sizeof(hints)); for (ix=1; ix<*argc; ix++) @@ -359,6 +361,7 @@ void win_draw(void) { int ix; static GLfloat white[] = { 1.0, 1.0, 1.0, 1.0 }; + static GLfloat gray[] = { 0.6, 0.6, 0.6, 1.0 }; glDrawBuffer(GL_BACK); @@ -370,29 +373,32 @@ void win_draw(void) glRotatef(view_roty, 0.0, 1.0, 0.0); glRotatef(view_rotz, 0.0, 0.0, 1.0); + glShadeModel(GL_FLAT); + for (ix=0; ixcol)); - glShadeModel(GL_FLAT); - glBegin(wireframe ? GL_LINE_LOOP : GL_QUADS); - glNormal3f(0.0, 0.0, 1.0); - glVertex3f(el->pos[0] - el->vervec[0], el->pos[1] - el->vervec[1], - el->pos[2]); - glVertex3f(el->pos[0] + el->vervec[1], el->pos[1] - el->vervec[0], - el->pos[2]); - glVertex3f(el->pos[0] + el->vervec[0], el->pos[1] + el->vervec[1], - el->pos[2]); - glVertex3f(el->pos[0] - el->vervec[1], el->pos[1] + el->vervec[0], - el->pos[2]); + /* outline the square */ + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, (wireframe ? white : gray)); + glBegin(GL_LINE_LOOP); + glVertex3f(el->pos[0]-el->vervec[0], el->pos[1]-el->vervec[1], el->pos[2]); + glVertex3f(el->pos[0]+el->vervec[1], el->pos[1]-el->vervec[0], el->pos[2]); + glVertex3f(el->pos[0]+el->vervec[0], el->pos[1]+el->vervec[1], el->pos[2]); + glVertex3f(el->pos[0]-el->vervec[1], el->pos[1]+el->vervec[0], el->pos[2]); glEnd(); - glPopMatrix(); + if (wireframe) continue; + + /* fill the square */ + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, el->col); + glBegin(GL_QUADS); + glVertex3f(el->pos[0]-el->vervec[0], el->pos[1]-el->vervec[1], el->pos[2]); + glVertex3f(el->pos[0]+el->vervec[1], el->pos[1]-el->vervec[0], el->pos[2]); + glVertex3f(el->pos[0]+el->vervec[0], el->pos[1]+el->vervec[1], el->pos[2]); + glVertex3f(el->pos[0]-el->vervec[1], el->pos[1]+el->vervec[0], el->pos[2]); + glEnd(); } glPopMatrix();