X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Fglx%2Fcage.c;h=3590f8600f3221b80be4b302d91135d637581fb2;hp=268d0830c604255b979221fc5d699c54fb3d1ed4;hb=4361b69d3178d7fc98d0388f9a223af6c2651aba;hpb=d6b0217f2417bd19187f0ebc389d6c5c2233b11c diff --git a/hacks/glx/cage.c b/hacks/glx/cage.c index 268d0830..3590f860 100644 --- a/hacks/glx/cage.c +++ b/hacks/glx/cage.c @@ -83,6 +83,7 @@ static const char sccsid[] = "@(#)cage.c 5.01 2001/03/01 xlockmore"; "*suppressRotationAnimation: True\n" \ # define refresh_cage 0 +# define release_cage 0 # define cage_handle_event 0 # include "xlockmore.h" /* from the xscreensaver distribution */ #else /* !STANDALONE */ @@ -103,7 +104,7 @@ ENTRYPOINT ModeSpecOpt cage_opts = #ifdef USE_MODULES ModStruct cage_description = -{"cage", "init_cage", "draw_cage", "release_cage", +{"cage", "init_cage", "draw_cage", NULL, "draw_cage", "change_cage", (char *) NULL, &cage_opts, 25000, 1, 1, 1, 1.0, 4, "", "Shows the Impossible Cage, an Escher-like GL scene", 0, NULL}; @@ -381,35 +382,12 @@ pinit(ModeInfo *mi) glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, front_specular); } -ENTRYPOINT void -release_cage (ModeInfo * mi) -{ - if (cage != NULL) { - int screen; - - for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++) { - cagestruct *cp = &cage[screen]; - - if (cp->glx_context) { - cp->glx_context = (GLXContext *) NULL; - } - } - (void) free((void *) cage); - cage = (cagestruct *) NULL; - } - FreeAllGL(mi); -} - ENTRYPOINT void init_cage (ModeInfo * mi) { cagestruct *cp; - if (cage == NULL) { - if ((cage = (cagestruct *) calloc(MI_NUM_SCREENS(mi), - sizeof (cagestruct))) == NULL) - return; - } + MI_INIT (mi, cage, NULL); cp = &cage[MI_SCREEN(mi)]; cp->step = NRAND(90); @@ -469,7 +447,7 @@ draw_cage (ModeInfo * mi) glRotatef(25 + cos(cp->step * 5) * 6, 1, 0, 0); glRotatef(204.5 - sin(cp->step * 5) * 8, 0, 1, 0); if (!draw_impossiblecage(mi, cp, MI_IS_WIREFRAME(mi))) { - release_cage(mi); + MI_ABORT(mi); return; }