X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Fglx%2Fcage.c;h=564a8139be5d8dc4f1a0b00df97bb6b0468f086d;hp=7b14c72c1fea24b940ceb50c0b5387248511cbdd;hb=3f438031d610c7e15fd33876a879b97e290e05fb;hpb=447db08c956099b3b183886729108bf5b364c4b8 diff --git a/hacks/glx/cage.c b/hacks/glx/cage.c index 7b14c72c..564a8139 100644 --- a/hacks/glx/cage.c +++ b/hacks/glx/cage.c @@ -156,9 +156,9 @@ static cagestruct *cage = (cagestruct *) NULL; #define PlankThickness 0.15 static Bool -draw_woodplank(cagestruct * cp) +draw_woodplank(cagestruct * cp, int wire) { - glBegin(GL_QUADS); + glBegin(wire ? GL_LINES : GL_QUADS); glNormal3f(0, 0, 1); glTexCoord2f(0, 0); glVertex3f(-PlankWidth, -PlankHeight, PlankThickness); @@ -219,74 +219,74 @@ draw_woodplank(cagestruct * cp) } static Bool -draw_impossiblecage(cagestruct * cp) +draw_impossiblecage(cagestruct * cp, int wire) { glPushMatrix(); glRotatef(90, 0, 1, 0); glTranslatef(0.0, PlankHeight - PlankWidth, -PlankThickness - PlankWidth); - if (!draw_woodplank(cp)) + if (!draw_woodplank(cp, wire)) return False; glPopMatrix(); glPushMatrix(); glRotatef(90, 0, 0, 1); glTranslatef(0.0, PlankHeight - PlankWidth, PlankWidth - PlankThickness); - if (!draw_woodplank(cp)) + if (!draw_woodplank(cp, wire)) return False; glPopMatrix(); glPushMatrix(); glRotatef(90, 0, 1, 0); glTranslatef(0.0, PlankWidth - PlankHeight, -PlankThickness - PlankWidth); - if (!draw_woodplank(cp)) + if (!draw_woodplank(cp, wire)) return False; glPopMatrix(); glPushMatrix(); glTranslatef(0.0, PlankWidth - PlankHeight, 3 * PlankThickness - PlankWidth); - if (!draw_woodplank(cp)) + if (!draw_woodplank(cp, wire)) return False; glPopMatrix(); glPushMatrix(); glRotatef(90, 0, 0, 1); glTranslatef(0.0, PlankWidth - PlankHeight, PlankWidth - PlankThickness); - if (!draw_woodplank(cp)) + if (!draw_woodplank(cp, wire)) return False; glPopMatrix(); glPushMatrix(); glTranslatef(0.0, PlankWidth - PlankHeight, PlankWidth - 3 * PlankThickness); - if (!draw_woodplank(cp)) + if (!draw_woodplank(cp, wire)) return False; glPopMatrix(); glPushMatrix(); glTranslatef(0.0, PlankHeight - PlankWidth, 3 * PlankThickness - PlankWidth); - if (!draw_woodplank(cp)) + if (!draw_woodplank(cp, wire)) return False; glPopMatrix(); glPushMatrix(); glRotatef(90, 0, 0, 1); glTranslatef(0.0, PlankHeight - PlankWidth, PlankThickness - PlankWidth); - if (!draw_woodplank(cp)) + if (!draw_woodplank(cp, wire)) return False; glPopMatrix(); glPushMatrix(); glTranslatef(0.0, PlankHeight - PlankWidth, PlankWidth - 3 * PlankThickness); - if (!draw_woodplank(cp)) + if (!draw_woodplank(cp, wire)) return False; glPopMatrix(); glPushMatrix(); glRotatef(90, 0, 1, 0); glTranslatef(0.0, PlankHeight - PlankWidth, PlankWidth + PlankThickness); - if (!draw_woodplank(cp)) + if (!draw_woodplank(cp, wire)) return False; glPopMatrix(); glPushMatrix(); glRotatef(90, 0, 0, 1); glTranslatef(0.0, PlankWidth - PlankHeight, PlankThickness - PlankWidth); - if (!draw_woodplank(cp)) + if (!draw_woodplank(cp, wire)) return False; glPopMatrix(); glPushMatrix(); glRotatef(90, 0, 1, 0); glTranslatef(0.0, PlankWidth - PlankHeight, PlankWidth + PlankThickness); - if (!draw_woodplank(cp)) + if (!draw_woodplank(cp, wire)) return False; glPopMatrix(); return True; @@ -312,9 +312,13 @@ static void pinit(ModeInfo *mi) { int status; + glClearDepth(1.0); glClearColor(0.0, 0.0, 0.0, 1.0); + if (MI_IS_WIREFRAME(mi)) + return; + glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); glLightfv(GL_LIGHT0, GL_POSITION, position0); @@ -440,7 +444,7 @@ draw_cage(ModeInfo * mi) glRotatef(cp->step * 100, 0, 0, 1); glRotatef(25 + cos(cp->step * 5) * 6, 1, 0, 0); glRotatef(204.5 - sin(cp->step * 5) * 8, 0, 1, 0); - if (!draw_impossiblecage(cp)) { + if (!draw_impossiblecage(cp, MI_IS_WIREFRAME(mi))) { release_cage(mi); return; }