"*size: -7 \n" \
"*ncolors: 64 \n" \
"*fpsSolid: true \n" \
+ "*ignoreRotation: True" \
# define UNIFORM_COLORS
+# define free_braid 0
+# define release_braid 0
# define reshape_braid 0
# define braid_handle_event 0
# include "xlockmore.h"
-# include "erase.h"
#else /* STANDALONE */
# include "xlock.h"
# define ENTRYPOINT /**/
#ifdef USE_MODULES
ModStruct braid_description =
-{"braid", "init_braid", "draw_braid", "release_braid",
+{"braid", "init_braid", "draw_braid", (char *) NULL,
"refresh_braid", "init_braid", (char *) NULL, &braid_opts,
1000, 15, 100, 1, 64, 1.0, "",
"Shows random braids and knots", 0, NULL};
float top, bottom, left, right;
int age;
int color_direction;
-#ifdef STANDALONE
- eraser_state *eraser;
-#endif
} braidtype;
static braidtype *braids = (braidtype *) NULL;
int i, count, comp, c;
float min_length;
- if (braids == NULL) {
- if ((braids = (braidtype *) calloc(MI_NUM_SCREENS(mi),
- sizeof (braidtype))) == NULL)
- return;
- }
+ MI_INIT (mi, braids);
braid = &braids[MI_SCREEN(mi)];
braid->center_x = MI_WIDTH(mi) / 2;
/* jwz: go in the other direction sometimes. */
braid->color_direction = ((LRAND() & 1) ? 1 : -1);
-#ifndef STANDALONE
MI_CLEARWINDOW(mi);
-#endif
min_length = (braid->center_x > braid->center_y) ?
braid->center_y : braid->center_x;
braid->nstrands = INTRAND(MINSTRANDS,
MAX(MIN(MIN(MAXSTRANDS, MI_COUNT(mi)),
(int) ((braid->max_radius - braid->min_radius) / 5.0)), MINSTRANDS));
- braid->braidlength = INTRAND(MINLENGTH, MIN(MAXLENGTH, braid->nstrands * 6));
+ braid->braidlength = INTRAND(MINLENGTH, MIN(MAXLENGTH -1, braid->nstrands * 6));
for (i = 0; i < braid->braidlength; i++) {
braid->braidword[i] =
return;
braid = &braids[MI_SCREEN(mi)];
-#ifdef STANDALONE
- if (braid->eraser) {
- braid->eraser = erase_window (MI_DISPLAY(mi), MI_WINDOW(mi), braid->eraser);
- return;
- }
-#endif
-
MI_IS_DRAWN(mi) = True;
XSetLineAttributes(display, MI_GC(mi), braid->linewidth,
LineSolid,
XSetLineAttributes(display, MI_GC(mi), 1, LineSolid, CapNotLast, JoinRound);
if (++braid->age > MI_CYCLES(mi)) {
-#ifdef STANDALONE
- braid->eraser = erase_window (MI_DISPLAY(mi), MI_WINDOW(mi), braid->eraser);
-#endif
init_braid(mi);
}
}
-ENTRYPOINT void
-release_braid(ModeInfo * mi)
-{
- if (braids != NULL) {
- (void) free((void *) braids);
- braids = (braidtype *) NULL;
- }
-}
-
+#ifndef STANDALONE
ENTRYPOINT void
refresh_braid(ModeInfo * mi)
{
MI_CLEARWINDOW(mi);
}
+#endif
XSCREENSAVER_MODULE ("Braid", braid)