http://svn.poeml.de/viewvc/ppc/src-unpacked/xscreensaver/xscreensaver-4.12.tar.bz2...
[xscreensaver] / hacks / greynetic.c
index b2ddec4c0593764330629609035ae0cf70004035..0f0747d17035ea1975115d1f25fb2c317968ee55 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1992, 1995, 1996, 1997
+/* xscreensaver, Copyright (c) 1992, 1995, 1996, 1997, 1998, 2003
  *  Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
 
 #define NBITS 12
 
-#ifndef VMS
-# include <X11/bitmaps/stipple>
-# include <X11/bitmaps/cross_weave>
-# include <X11/bitmaps/dimple1>
-# include <X11/bitmaps/dimple3>
-# include <X11/bitmaps/flipped_gray>
-# include <X11/bitmaps/gray1>
-# include <X11/bitmaps/gray3>
-# include <X11/bitmaps/hlines2>
-# include <X11/bitmaps/light_gray>
-# include <X11/bitmaps/root_weave>
-# include <X11/bitmaps/vlines2>
-# include <X11/bitmaps/vlines3>
-#else /* VMS */
-# include "sys$common:[decw$include.bitmaps]stipple.xbm"
-# include "sys$common:[decw$include.bitmaps]cross_weave.xbm"
-# include "sys$common:[decw$include.bitmaps]dimple1.xbm"
-# include "sys$common:[decw$include.bitmaps]dimple3.xbm"
-# include "sys$common:[decw$include.bitmaps]flipped_gray.xbm"
-# include "sys$common:[decw$include.bitmaps]gray1.xbm"
-# include "sys$common:[decw$include.bitmaps]gray3.xbm"
-# include "sys$common:[decw$include.bitmaps]hlines2.xbm"
-# include "sys$common:[decw$include.bitmaps]light_gray.xbm"
-# include "sys$common:[decw$include.bitmaps]root_weave.xbm"
-# include "sys$common:[decw$include.bitmaps]vlines2.xbm"
-# include "sys$common:[decw$include.bitmaps]vlines3.xbm"
-#endif /* VMS */
+/* On some systems (notably MacOS X) these files are messed up.
+ * They're tiny, so we might as well just inline them here.
+ *
+ * # include <X11/bitmaps/stipple>
+ * # include <X11/bitmaps/cross_weave>
+ * # include <X11/bitmaps/dimple1>
+ * # include <X11/bitmaps/dimple3>
+ * # include <X11/bitmaps/flipped_gray>
+ * # include <X11/bitmaps/gray1>
+ * # include <X11/bitmaps/gray3>
+ * # include <X11/bitmaps/hlines2>
+ * # include <X11/bitmaps/light_gray>
+ * # include <X11/bitmaps/root_weave>
+ * # include <X11/bitmaps/vlines2>
+ * # include <X11/bitmaps/vlines3>
+*/
+
+#define stipple_width  16
+#define stipple_height 4
+static unsigned char stipple_bits[] = {
+  0x55, 0x55, 0xee, 0xee, 0x55, 0x55, 0xba, 0xbb};
+
+#define cross_weave_width  16
+#define cross_weave_height 16
+static unsigned char cross_weave_bits[] = {
+   0x55, 0x55, 0x88, 0x88, 0x55, 0x55, 0x22, 0x22, 0x55, 0x55, 0x88, 0x88,
+   0x55, 0x55, 0x22, 0x22, 0x55, 0x55, 0x88, 0x88, 0x55, 0x55, 0x22, 0x22,
+   0x55, 0x55, 0x88, 0x88, 0x55, 0x55, 0x22, 0x22};
+
+#define dimple1_width 16
+#define dimple1_height 16
+static unsigned char dimple1_bits[] = {
+   0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00,
+   0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00,
+   0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00};
+
+#define dimple3_width 16
+#define dimple3_height 16
+static unsigned char dimple3_bits[] = {
+   0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+
+#define flipped_gray_width  4
+#define flipped_gray_height 2
+static char flipped_gray_bits[] = { 0x07, 0x0d};
+#define gray1_width  2
+#define gray1_height 2
+static char gray1_bits[] = { 0x01, 0x02};
+#define gray3_width  4
+#define gray3_height 4
+static char gray3_bits[] = { 0x01, 0x00, 0x04, 0x00};
+#define hlines2_width  1
+#define hlines2_height 2
+static char hlines2_bits[] = { 0x01, 0x00};
+#define light_gray_width  4
+#define light_gray_height 2
+static char light_gray_bits[] = { 0x08, 0x02};
+#define root_weave_width  4
+#define root_weave_height 4
+static char root_weave_bits[] = { 0x07, 0x0d, 0x0b, 0x0e};
+#define vlines2_width  2
+#define vlines2_height 1
+static char vlines2_bits[] = { 0x01};
+#define vlines3_width  3
+#define vlines3_height 1
+static char vlines3_bits[] = { 0x02};
+
+
+
 
 static Pixmap pixmaps [NBITS];
 static GC gc;
@@ -68,7 +111,8 @@ init_greynetic (Display *dpy, Window window)
 
   i = 0;
 #define BITS(n,w,h) \
-  pixmaps [i++] = XCreatePixmapFromBitmapData (dpy, window, n, w, h, 1, 0, 1)
+  pixmaps [i++] = \
+    XCreatePixmapFromBitmapData (dpy, window, (char *) n, w, h, 1, 0, 1)
 
   BITS (stipple_bits, stipple_width, stipple_height);
   BITS (cross_weave_bits, cross_weave_width, cross_weave_height);
@@ -89,7 +133,7 @@ greynetic (Display *dpy, Window window)
 {
   static int tick = 500, xlim, ylim;
   static Colormap cmap;
-  int x, y, w, h, i;
+  int x, y, w=0, h=0, i;
   XGCValues gcv;
   if (tick++ == 500)
     {
@@ -152,7 +196,7 @@ greynetic (Display *dpy, Window window)
     }
   XChangeGC (dpy, gc, GCStipple|GCForeground|GCBackground, &gcv);
   XFillRectangle (dpy, window, gc, x, y, w, h);
-  XSync (dpy, True);
+  XSync (dpy, False);
 }
 
 \f
@@ -161,7 +205,7 @@ char *progclass = "Greynetic";
 char *defaults [] = {
   ".background:        black",
   ".foreground:        white",
-  "*delay:     0",
+  "*delay:     10000",
   0
 };
 
@@ -177,6 +221,7 @@ screenhack (Display *dpy, Window window)
   while (1)
     {
       greynetic (dpy, window);
+      screenhack_handle_events (dpy);
       if (delay) usleep (delay);
     }
 }