"*ignoreRotation: True \n" \
# define SMOOTH_COLORS
+# define release_drift 0
# include "xlockmore.h" /* in xscreensaver distribution */
# include "erase.h"
#else /* STANDALONE */
#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};
}
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;
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;
}
}
{
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);
}
}
-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)
{