X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fbraid.c;h=4bbd93a6d758977aa5a378d79d708bb0bd49ec11;hb=0bd2eabab3e404c6769fe8f59b639275e960c415;hp=e6d0cf30acb4fd849cb0f102eff4f80775149d98;hpb=f3e0240915ed9f9b3a61781f5c7002d587563fe0;p=xscreensaver diff --git a/hacks/braid.c b/hacks/braid.c index e6d0cf30..4bbd93a6 100644 --- a/hacks/braid.c +++ b/hacks/braid.c @@ -32,11 +32,13 @@ static const char sccsid[] = "@(#)braid.c 4.00 97/01/01 xlockmore"; # define HACK_DRAW draw_braid # define braid_opts xlockmore_opts # define DEFAULTS "*count: 15 \n" \ + "*size: -7 \n" \ "*cycles: 100 \n" \ "*delay: 1000 \n" \ "*ncolors: 64 \n" # define UNIFORM_COLORS # include "xlockmore.h" /* from the xscreensaver distribution */ +# include "erase.h" #else /* !STANDALONE */ # include "xlock.h" /* from the xlockmore distribution */ #endif /* !STANDALONE */ @@ -164,7 +166,6 @@ init_braid(ModeInfo * mi) /* jwz: go in the other direction sometimes. */ braid->color_direction = ((LRAND() & 1) ? 1 : -1); - XClearWindow(display, MI_WINDOW(mi)); min_length = (braid->center_x > braid->center_y) ? @@ -236,6 +237,21 @@ init_braid(ModeInfo * mi) } } while (count > 0); + { + int line_width = MI_SIZE(mi); + if (line_width == 0) + line_width = -8; + if (line_width < 0) + line_width = NRAND(-line_width)+1; + if (line_width == 1) + line_width = 0; + XSetLineAttributes(MI_DISPLAY(mi), MI_GC(mi), line_width, + LineSolid, + (line_width <= 3 ? CapButt : CapRound), + JoinMiter); + } + + for (i = 0; i < braid->nstrands; i++) if (!(braid->components[i] & 1)) braid->components[i] *= -1; @@ -394,8 +410,12 @@ draw_braid(ModeInfo * mi) } } - if (++braid->age > MI_CYCLES(mi)) - init_braid(mi); + if (++braid->age > MI_CYCLES(mi)) { +#ifdef STANDALONE + erase_full_window(MI_DISPLAY(mi), MI_WINDOW(mi)); +#endif + init_braid(mi); + } } void