X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fcoral.c;h=8ace44d2c1e6787baa00bdca88b0448b4facf269;hb=0bd2eabab3e404c6769fe8f59b639275e960c415;hp=eddde276d3bfb29ab93ea6bd68b0d8a6df51cca4;hpb=186b0b9f1638444c650c9273df38085e0db71e4a;p=xscreensaver diff --git a/hacks/coral.c b/hacks/coral.c index eddde276..8ace44d2 100644 --- a/hacks/coral.c +++ b/hacks/coral.c @@ -11,8 +11,9 @@ #include "screenhack.h" #include "colors.h" +#include "erase.h" -static GC draw_gc; +static GC draw_gc, erase_gc; static unsigned int default_fg_pixel; #define NCOLORSMAX 200 static XColor colors[NCOLORSMAX]; @@ -55,8 +56,17 @@ init_coral(Display *dpy, Window window) } gcv.foreground = default_fg_pixel = get_pixel_resource("foreground", "Foreground", dpy, cmap); draw_gc = XCreateGC(dpy, window, GCForeground, &gcv); + gcv.foreground = get_pixel_resource ("background", "Background",dpy, cmap); + erase_gc = XCreateGC (dpy, window, GCForeground, &gcv); ncolors = NCOLORSMAX; make_uniform_colormap(dpy, xgwa.visual, cmap, colors, &ncolors, True, &writeable, False); + if (ncolors <= 0) { + ncolors = 2; + colors[0].red = colors[0].green = colors[0].blue = 0; + colors[1].red = colors[1].green = colors[1].blue = 0xFFFF; + XAllocColor(dpy, cmap, &colors[0]); + XAllocColor(dpy, cmap, &colors[1]); + } colorindex = random()%ncolors; density = get_integer_resource("density", "Integer"); @@ -215,13 +225,13 @@ coral(Display *dpy, Window window) char *progclass = "Coral"; char *defaults[] = { - "Coral.background: black", - "Coral.foreground: white", - "*density: 25", - "*seeds: 20", /* too many for 640x480, too few for 1280x1024 */ - "*delay: 5", - "*delay2: 1000", - 0 + ".background: black", + ".foreground: white", + "*density: 25", + "*seeds: 20", /* too many for 640x480, too few for 1280x1024 */ + "*delay: 5", + "*delay2: 1000", + 0 }; XrmOptionDescRec options[] = { @@ -238,10 +248,10 @@ Display *dpy; Window window; { int delay = get_integer_resource ("delay", "Integer"); - while( 1 ) { init_coral(dpy, window); coral(dpy, window); if( delay ) sleep(delay); + erase_full_window(dpy, window); } }