"*cycles: 400 \n" \
"*ncolors: 64 \n" \
"*fpsSolid: true \n" \
+ "*ignoreRotation: True \n" \
+ "*lowrez: True \n" \
# define BRIGHT_COLORS
+# define release_thornbird 0
# define reshape_thornbird 0
# define thornbird_handle_event 0
# include "xlockmore.h" /* in xscreensaver distribution */
#ifdef USE_MODULES
ModStruct thornbird_description =
-{"thornbird", "init_thornbird", "draw_thornbird", "release_thornbird",
- "refresh_thornbird", "init_thornbird", (char *) NULL, þbird_opts,
+{"thornbird", "init_thornbird", "draw_thornbird", (char *) NULL,
+ "refresh_thornbird", "init_thornbird", "free_thornbird", þbird_opts,
1000, 800, 16, 1, 64, 1.0, "",
"Shows an animated Bird in a Thorn Bush fractal map", 0, NULL};
static thornbirdstruct *thornbirds = (thornbirdstruct *) NULL;
-static void
-free_thornbird(thornbirdstruct *hp)
+ENTRYPOINT void
+free_thornbird(ModeInfo * mi)
{
+ thornbirdstruct *hp = þbirds[MI_SCREEN(mi)];
if (hp->pointBuffer != NULL) {
int buffer;
{
thornbirdstruct *hp;
- if (thornbirds == NULL) {
- if ((thornbirds =
- (thornbirdstruct *) calloc(MI_NUM_SCREENS(mi),
- sizeof (thornbirdstruct))) == NULL)
- return;
- }
+ MI_INIT (mi, thornbirds);
hp = þbirds[MI_SCREEN(mi)];
if (hp->pointBuffer == NULL)
if ((hp->pointBuffer = (XPoint **) calloc(MI_CYCLES(mi),
sizeof (XPoint *))) == NULL) {
- free_thornbird(hp);
+ free_thornbird(mi);
return;
}
if (hp->pointBuffer[0] == NULL)
if ((hp->pointBuffer[0] = (XPoint *) malloc(MI_COUNT(mi) *
sizeof (XPoint))) == NULL) {
- free_thornbird(hp);
+ free_thornbird(mi);
return;
}
MI_IS_DRAWN(mi) = True;
+ if (MI_COUNT(mi) < 1) MI_COUNT(mi) = 1;
if (hp->pointBuffer[erase] == NULL) {
if ((hp->pointBuffer[erase] = (XPoint *) malloc(MI_COUNT(mi) *
sizeof (XPoint))) == NULL) {
- free_thornbird(hp);
+ free_thornbird(mi);
return;
}
} else {
hp->inc++;
}
-ENTRYPOINT void
-release_thornbird(ModeInfo * mi)
-{
- if (thornbirds != NULL) {
- int screen;
-
- for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++)
- free_thornbird(þbirds[screen]);
- (void) free((void *) thornbirds);
- thornbirds = (thornbirdstruct *) NULL;
- }
-}
-
+#ifndef STANDALONE
ENTRYPOINT void
refresh_thornbird (ModeInfo * mi)
{
MI_CLEARWINDOW(mi);
}
+#endif
XSCREENSAVER_MODULE ("Thornbird", thornbird)