"*size: -6 \n" \
"*ncolors: 200 \n" \
"*fpsSolid: true \n" \
+ "*lowrez: True \n" \
# define SMOOTH_COLORS
+# define release_rotor 0
# define reshape_rotor 0
# define rotor_handle_event 0
# include "xlockmore.h" /* in xscreensaver distribution */
#ifdef USE_MODULES
ModStruct rotor_description =
-{"rotor", "init_rotor", "draw_rotor", "release_rotor",
- "refresh_rotor", "init_rotor", (char *) NULL, &rotor_opts,
+{"rotor", "init_rotor", "draw_rotor", (char *) NULL,
+ "refresh_rotor", "init_rotor", "free_rotor", &rotor_opts,
100, 4, 100, -6, 64, 0.3, "",
"Shows Tom's Roto-Rooter", 0, NULL};
static rotorstruct *rotors = (rotorstruct *) NULL;
-static void
-free_rotor(rotorstruct *rp)
+ENTRYPOINT void
+free_rotor(ModeInfo * mi)
{
+ rotorstruct *rp = &rotors[MI_SCREEN(mi)];
if (rp->elements != NULL) {
(void) free((void *) rp->elements);
rp->elements = (elem *) NULL;
unsigned char wasiconified;
rotorstruct *rp;
- MI_INIT (mi, rotors, 0);
+ MI_INIT (mi, rotors);
rp = &rotors[MI_SCREEN(mi)];
#ifdef HAVE_JWXYZ
if (rp->elements == NULL)
if ((rp->elements = (elem *) calloc(rp->num,
sizeof (elem))) == NULL) {
- free_rotor(rp);
+ free_rotor(mi);
return;
}
rp->nsave = MI_CYCLES(mi);
if (rp->save == NULL)
if ((rp->save = (XPoint *) malloc(rp->nsave *
sizeof (XPoint))) == NULL) {
- free_rotor(rp);
+ free_rotor(mi);
return;
}
for (x = 0; x < rp->nsave; x++) {
LineSolid, CapButt, JoinMiter);
}
-ENTRYPOINT void
-release_rotor (ModeInfo * mi)
-{
- if (rotors != NULL) {
- int screen;
-
- for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++)
- free_rotor(&rotors[screen]);
- (void) free((void *) rotors);
- rotors = (rotorstruct *) NULL;
- }
-}
-
+#ifndef STANDALONE
ENTRYPOINT void
refresh_rotor (ModeInfo * mi)
{
rp->redrawing = 1;
rp->redrawpos = 1;
}
+#endif
XSCREENSAVER_MODULE ("Rotor", rotor)