X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fvines.c;h=7f519b4b57b0049531be88ba89d06bd4a8f34626;hb=39809ded547bdbb08207d3e514950425215b4410;hp=a816d736a405f86bdd6391754aa8736518289f13;hpb=96a411663168b0ba5432b407a83be55f3df0c802;p=xscreensaver diff --git a/hacks/vines.c b/hacks/vines.c index a816d736..7f519b4b 100644 --- a/hacks/vines.c +++ b/hacks/vines.c @@ -44,28 +44,30 @@ static const char sccsid[] = "@(#)vines.c 5.00 2000/11/01 xlockmore"; */ #ifdef STANDALONE -#define MODE_vines -#define PROGCLASS "Vines" -#define HACK_INIT init_vines -#define HACK_DRAW draw_vines -#define vines_opts xlockmore_opts -#define DEFAULTS "*delay: 200000 \n" \ - "*count: 0 \n" \ - "*ncolors: 64 \n" -#include "xlockmore.h" /* in xscreensaver distribution */ -#include "erase.h" +# define MODE_vines +# define DEFAULTS "*delay: 200000 \n" \ + "*count: 0 \n" \ + "*ncolors: 64 \n" \ + "*fpsSolid: true \n" \ + "*lowrez: True \n" \ + +# include "xlockmore.h" /* in xscreensaver distribution */ +# define free_vines 0 +# define release_vines 0 +# define reshape_vines 0 +# define vines_handle_event 0 #else /* STANDALONE */ -#include "xlock.h" /* in xlockmore distribution */ +# include "xlock.h" /* in xlockmore distribution */ #endif /* STANDALONE */ #ifdef MODE_vines -ModeSpecOpt vines_opts = +ENTRYPOINT ModeSpecOpt vines_opts = {0, (XrmOptionDescRec *) NULL, 0, (argtype *) NULL, (OptionStruct *) NULL}; #ifdef USE_MODULES ModStruct vines_description = -{"vines", "init_vines", "draw_vines", "release_vines", +{"vines", "init_vines", "draw_vines", (char *) NULL, "refresh_vines", "init_vines", (char *) NULL, &vines_opts, 200000, 0, 1, 1, 64, 1.0, "", "Shows fractals", 0, NULL}; @@ -89,23 +91,20 @@ typedef struct { static vinestruct *vines = (vinestruct *) NULL; -void +#ifndef STANDALONE +ENTRYPOINT void refresh_vines(ModeInfo * mi) { MI_CLEARWINDOW(mi); } /* refresh_vines */ +#endif -void +ENTRYPOINT void init_vines(ModeInfo * mi) { vinestruct *fp; - if (vines == NULL) { - if ((vines = (vinestruct *) calloc(MI_NUM_SCREENS(mi), - sizeof (vinestruct))) == NULL) { - return; - } - } + MI_INIT (mi, vines); fp = &vines[MI_SCREEN(mi)]; fp->i = 0; @@ -115,7 +114,7 @@ init_vines(ModeInfo * mi) MI_CLEARWINDOW(mi); } /* init_vines */ -void +ENTRYPOINT void draw_vines(ModeInfo * mi) { Display *display = MI_DISPLAY(mi); @@ -127,13 +126,11 @@ draw_vines(ModeInfo * mi) return; fp = &vines[MI_SCREEN(mi)]; - /* MI_IS_DRAWN(mi) = True; */ + MI_IS_DRAWN(mi) = True; if (fp->i >= fp->length) { if (--(fp->iterations) == 0) { -#ifdef STANDALONE - erase_full_window(MI_DISPLAY(mi), MI_WINDOW(mi)); -#endif /* STANDALONE */ init_vines(mi); + return; } fp->centerx = NRAND(MI_WIDTH(mi)); fp->centery = NRAND(MI_HEIGHT(mi)); @@ -176,13 +173,7 @@ draw_vines(ModeInfo * mi) } } /* draw_vines */ -void -release_vines(ModeInfo * mi) -{ - if (vines != NULL) { - (void) free((void *) vines); - vines = (vinestruct *) NULL; - } -} /* release_vines */ + +XSCREENSAVER_MODULE ("Vines", vines) #endif /* MODE_vines */