X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fxroger-hack.c;h=f4fa11640811d6cd6d1ee2bf24798de6fe01b4a2;hb=de041722414a2e31c1c04caa10aaec9d6952e9b4;hp=72bd2d3c76283cf9f12ee202733818ea637d8a2f;hpb=6edc84f12f15860a71430c45e8392a5e4ef8203c;p=xscreensaver diff --git a/hacks/xroger-hack.c b/hacks/xroger-hack.c index 72bd2d3c..f4fa1164 100644 --- a/hacks/xroger-hack.c +++ b/hacks/xroger-hack.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1991-1994 Jamie Zawinski +/* xscreensaver, Copyright (c) 1991-1994 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 @@ -14,20 +14,18 @@ char *progclass = "XRoger"; char *defaults [] = { - "XRoger.background: black", - "XRoger.foreground: red", + ".background: black", + ".foreground: red", "*delay: 5", 0 }; XrmOptionDescRec options [] = { - { "-delay", ".delay", XrmoptionSepArg, 0 } + { "-delay", ".delay", XrmoptionSepArg, 0 }, + { 0, 0, 0, 0 } }; -int options_size = (sizeof (options) / sizeof (options[0])); -#if __STDC__ extern void skull (Display *, Window, GC, GC, int, int, int, int); -#endif void screenhack (dpy, window) @@ -59,7 +57,6 @@ screenhack (dpy, window) { int w, h, ww, hh, x, y; time_t start_time; - XWindowAttributes xgwa; XGetWindowAttributes (dpy, window, &xgwa); w = xgwa.width; h = xgwa.height; @@ -73,22 +70,25 @@ screenhack (dpy, window) x = random () % (w - ww); y = random () % (h - hh); XClearWindow (dpy, window); + + skull (dpy, window, draw_gc, erase_gc, x, y, ww, hh); - XSync (dpy, True); + XSync (dpy, False); + screenhack_handle_events (dpy); start_time = time ((time_t *) 0); if (mono_p) sleep (delay); else while (start_time + delay > time ((time_t *) 0)) { - int h; - double s, v; + int H; + double S, V; color2 = color; - rgb_to_hsv (color2.red, color2.green, color2.blue, &h, &s, &v); - v += delta; - if (v >= 1.0) v = 1.0, delta = -delta; - if (v <= 0.7) v = 0.7, delta = -delta; - hsv_to_rgb (h, s, v, &color2.red, &color2.green, &color2.blue); + rgb_to_hsv (color2.red, color2.green, color2.blue, &H, &S, &V); + V += delta; + if (V >= 1.0) V = 1.0, delta = -delta; + if (V <= 0.6) V = 0.7, delta = -delta; + hsv_to_rgb (H, S, V, &color2.red, &color2.green, &color2.blue); color3 = color2; if (XAllocColor (dpy, cmap, &color3)) {