X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Frorschach.c;h=430fa9dfb3373464428651dd90fd56ddef1da39e;hb=f65151994eba80ecabcdac6eef6fa0dde7e2d45b;hp=eab1388743c82d4885cc38ed18309aa648ba7bdf;hpb=f3e0240915ed9f9b3a61781f5c7002d587563fe0;p=xscreensaver diff --git a/hacks/rorschach.c b/hacks/rorschach.c index eab13887..430fa9df 100644 --- a/hacks/rorschach.c +++ b/hacks/rorschach.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1992, 1996 Jamie Zawinski +/* xscreensaver, Copyright (c) 1992, 1996, 1998 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -7,14 +7,19 @@ * documentation. No representations are made about the suitability of this * software for any purpose. It is provided "as is" without express or * implied warranty. + * + * 19971004: Johannes Keukelaar : Use helix screen + * eraser. */ #include "screenhack.h" +#include "erase.h" static GC draw_gc, erase_gc; static unsigned int default_fg_pixel; static int iterations, offset; static Bool xsym, ysym; +static int sleep_time; static void init_rorschach (Display *dpy, Window window) @@ -87,20 +92,17 @@ hurm (Display *dpy, Window window) j++; } XDrawPoints (dpy, window, draw_gc, points, j, CoordModeOrigin); - XSync (dpy, True); - } - sleep (5); - for (i = 0; i < (ylim >> 1); i++) - { - y = (random () % ylim); - XDrawLine (dpy, window, erase_gc, 0, y, xlim, y); - XFlush (dpy); - if ((i % 50) == 0) - usleep (10000); + XSync (dpy, False); + screenhack_handle_events (dpy); } + sleep ( sleep_time ); + + erase_full_window(dpy, window); + XClearWindow (dpy, window); if (got_color) XFreeColors (dpy, cmap, &color.pixel, 1, 0); - XSync (dpy, True); + XSync (dpy, False); + screenhack_handle_events (dpy); sleep (1); } @@ -108,12 +110,13 @@ hurm (Display *dpy, Window window) char *progclass = "Rorschach"; char *defaults [] = { - "Rorschach.background: black", /* to placate SGI */ - "Rorschach.foreground: white", + ".background: black", + ".foreground: white", "*xsymmetry: true", "*ysymmetry: false", "*iterations: 4000", "*offset: 4", + "*delay: 5", 0 }; @@ -122,12 +125,15 @@ XrmOptionDescRec options [] = { { "-offset", ".offset", XrmoptionSepArg, 0 }, { "-xsymmetry", ".xsymmetry", XrmoptionNoArg, "true" }, { "-ysymmetry", ".ysymmetry", XrmoptionNoArg, "true" }, + { "-erase-speed", ".eraseSpeed", XrmoptionSepArg, 0 }, + { "-delay", ".delay", XrmoptionSepArg, 0 }, { 0, 0, 0, 0 } }; void screenhack (Display *dpy, Window window) { + sleep_time = get_integer_resource("delay", "Integer"); init_rorschach (dpy, window); while (1) hurm (dpy, window);