X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Fdrift.c;h=e24a40ee04e8a69e859491c52664b9aadce96adb;hp=2fab3cc80f1f1878679c96e7a65d0cf5bd39f815;hb=4361b69d3178d7fc98d0388f9a223af6c2651aba;hpb=d6b0217f2417bd19187f0ebc389d6c5c2233b11c diff --git a/hacks/drift.c b/hacks/drift.c index 2fab3cc8..e24a40ee 100644 --- a/hacks/drift.c +++ b/hacks/drift.c @@ -39,6 +39,7 @@ static const char sccsid[] = "@(#)drift.c 5.00 2000/11/01 xlockmore"; "*ignoreRotation: True \n" \ # define SMOOTH_COLORS +# define release_drift 0 # include "xlockmore.h" /* in xscreensaver distribution */ # include "erase.h" #else /* STANDALONE */ @@ -81,7 +82,7 @@ ENTRYPOINT ModeSpecOpt drift_opts = #ifdef USE_MODULES ModStruct drift_description = -{"drift", "init_drift", "draw_drift", "release_drift", +{"drift", "init_drift", "draw_drift", (char *) NULL, "refresh_drift", "init_drift", (char *) NULL, &drift_opts, 10000, 30, 1, 1, 64, 1.0, "", "Shows cosmic drifting flame fractals", 0, NULL}; @@ -269,8 +270,9 @@ pick_df_coefs(ModeInfo * mi) } static void -free_drift(driftstruct *dp) +free_drift(ModeInfo * mi) { + driftstruct *dp = &drifts[MI_SCREEN(mi)]; if (dp->ncpoints != NULL) { (void) free((void *) dp->ncpoints); dp->ncpoints = (int *) NULL; @@ -295,14 +297,14 @@ initfractal(ModeInfo * mi) if (!dp->ncpoints) { if ((dp->ncpoints = (int *) malloc(sizeof (int) * MI_NCOLORS(mi))) == NULL) { - free_drift(dp); + free_drift(mi); return; } } if (!dp->cpts) { if ((dp->cpts = (XPoint *) malloc(MAXBATCH2 * sizeof (XPoint) * MI_NCOLORS(mi))) == NULL) { - free_drift(dp); + free_drift(mi); return; } } @@ -348,11 +350,7 @@ init_drift(ModeInfo * mi) { driftstruct *dp; - if (drifts == NULL) { - if ((drifts = (driftstruct *) calloc(MI_NUM_SCREENS(mi), - sizeof (driftstruct))) == NULL) - return; - } + MI_INIT (mi, drifts, free_drift); dp = &drifts[MI_SCREEN(mi)]; dp->width = MI_WIDTH(mi); @@ -670,19 +668,6 @@ draw_drift(ModeInfo * mi) } } -ENTRYPOINT void -release_drift(ModeInfo * mi) -{ - if (drifts != NULL) { - int screen; - - for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++) - free_drift(&drifts[screen]); - (void) free((void *) drifts); - drifts = (driftstruct *) NULL; - } -} - ENTRYPOINT void reshape_drift(ModeInfo * mi, int width, int height) {