X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Flightning.c;h=027bc7521781ec85f592f705f228f96078ecea7f;hb=39809ded547bdbb08207d3e514950425215b4410;hp=deb37411de1e621b4a9560098fc5be1c33493ea5;hpb=a94197e76a5dea5cb60542840809d6c20d0abbf3;p=xscreensaver diff --git a/hacks/lightning.c b/hacks/lightning.c index deb37411..027bc752 100644 --- a/hacks/lightning.c +++ b/hacks/lightning.c @@ -1,9 +1,8 @@ /* -*- Mode: C; tab-width: 4 -*- */ /* lightning --- fractal lightning bolds */ -#if !defined( lint ) && !defined( SABER ) +#if 0 static const char sccsid[] = "@(#)lightning.c 5.00 2000/11/01 xlockmore"; - #endif /*- @@ -29,26 +28,28 @@ static const char sccsid[] = "@(#)lightning.c 5.00 2000/11/01 xlockmore"; */ #ifdef STANDALONE -#define MODE_lightning -#define PROGCLASS "Lightning" -#define HACK_INIT init_lightning -#define HACK_DRAW draw_lightning -#define lightning_opts xlockmore_opts -#define DEFAULTS "*delay: 10000 \n" -#define BRIGHT_COLORS -#include "xlockmore.h" /* in xscreensaver distribution */ +# define MODE_lightning +# define DEFAULTS "*delay: 10000 \n" \ + "*ncolors: 64 \n" + +# define BRIGHT_COLORS +# define free_lightning 0 +# define release_lightning 0 +# define reshape_lightning 0 +# define lightning_handle_event 0 +# include "xlockmore.h" /* in xscreensaver distribution */ #else /* STANDALONE */ -#include "xlock.h" /* in xlockmore distribution */ +# include "xlock.h" /* in xlockmore distribution */ #endif /* STANDALONE */ #ifdef MODE_lightning -ModeSpecOpt lightning_opts = +ENTRYPOINT ModeSpecOpt lightning_opts = {0, (XrmOptionDescRec *) NULL, 0, (argtype *) NULL, (OptionStruct *) NULL}; #ifdef USE_MODULES ModStruct lightning_description = -{"lightning", "init_lightning", "draw_lightning", "release_lightning", +{"lightning", "init_lightning", "draw_lightning", (char *) NULL, "refresh_lightning", "init_lightning", (char *) NULL, &lightning_opts, 10000, 1, 1, 1, 64, 0.6, "", "Shows Keith's fractal lightning bolts", 0, NULL}; @@ -514,16 +515,12 @@ wiggle_line(XPoint * p, int number, int amount) /*------------------------------------------------------------------------*/ -void -init_lightning(ModeInfo * mi) +ENTRYPOINT void +init_lightning (ModeInfo * mi) { Storm *st; - if (Helga == NULL) { - if ((Helga = (Storm *) calloc(MI_NUM_SCREENS(mi), - sizeof (Storm))) == NULL) - return; - } + MI_INIT (mi, Helga); st = &Helga[MI_SCREEN(mi)]; st->scr_width = MI_WIDTH(mi); @@ -536,8 +533,8 @@ init_lightning(ModeInfo * mi) /*------------------------------------------------------------------------*/ -void -draw_lightning(ModeInfo * mi) +ENTRYPOINT void +draw_lightning (ModeInfo * mi) { int i; Storm *st; @@ -548,9 +545,7 @@ draw_lightning(ModeInfo * mi) MI_IS_DRAWN(mi) = True; switch (st->stage) { case 0: - MI_IS_DRAWN(mi) = False; - MI_CLEARWINDOW(mi); - MI_IS_DRAWN(mi) = True; + XClearWindow(MI_DISPLAY(mi), MI_WINDOW(mi)); st->color = NRAND(MI_NPIXELS(mi)); st->draw_time = 0; @@ -576,9 +571,7 @@ draw_lightning(ModeInfo * mi) } break; case 3: - MI_IS_DRAWN(mi) = False; - MI_CLEARWINDOW(mi); - MI_IS_DRAWN(mi) = True; + XClearWindow(MI_DISPLAY(mi), MI_WINDOW(mi)); if (storm_active(st)) st->stage = 1; @@ -594,19 +587,15 @@ draw_lightning(ModeInfo * mi) } } -void -release_lightning(ModeInfo * mi) -{ - if (Helga != NULL) { - (void) free((void *) Helga); - Helga = (Storm *) NULL; - } -} - -void +#ifndef STANDALONE +ENTRYPOINT void refresh_lightning(ModeInfo * mi) { /* Do nothing, it will refresh by itself */ } +#endif + +XSCREENSAVER_MODULE ("Lightning", lightning) + #endif /* MODE_lightning */