http://www.jwz.org/xscreensaver/xscreensaver-5.10.tar.gz
authorZygo Blaxell <zblaxell@faye.furryterror.org>
Fri, 11 Sep 2009 03:29:20 +0000 (23:29 -0400)
committerZygo Blaxell <zblaxell@faye.furryterror.org>
Fri, 8 Feb 2013 17:54:58 +0000 (12:54 -0500)
-rw-r--r-- 1 zblaxell zblaxell 5561162 Sep  8 00:55 xscreensaver-5.10.tar.gz
d8379928de2e6e86cc7b17d75150daafe57e93c4  xscreensaver-5.10.tar.gz

77 files changed:
OSX/._SaverTester.m [deleted file]
OSX/._XScreenSaverView.m [deleted file]
OSX/._osxgrabscreen.m [deleted file]
OSX/SaverTester.plist
OSX/XScreenSaver.plist
OSX/XScreenSaverView.m
OSX/bindist.rtf
OSX/jwxyz.h
OSX/jwxyz.m
OSX/osxgrabscreen.m
README
README.hacking
driver/Makefile.in
driver/XScreenSaver.ad.in
driver/XScreenSaver_ad.h
hacks/._fps.c [deleted file]
hacks/Makefile.in
hacks/abstractile.c
hacks/ant.man [new file with mode: 0644]
hacks/bubbles.man [new file with mode: 0644]
hacks/check-configs.pl
hacks/config/README
hacks/config/ant.xml
hacks/config/bubbles.xml
hacks/config/critical.xml
hacks/config/flag.xml
hacks/config/forest.xml
hacks/config/glforestfire.xml
hacks/config/hyperball.xml
hacks/config/hypercube.xml
hacks/config/hypertorus.xml
hacks/config/juggle.xml
hacks/config/laser.xml
hacks/config/lightning.xml
hacks/config/lisa.xml
hacks/config/lissie.xml
hacks/config/lmorph.xml
hacks/config/mismunch.xml [new file with mode: 0644]
hacks/config/polytopes.xml
hacks/config/rotor.xml
hacks/config/sphere.xml
hacks/config/spiral.xml
hacks/config/t3d.xml
hacks/config/vines.xml
hacks/config/whirlygig.xml
hacks/config/worm.xml
hacks/critical.man [new file with mode: 0644]
hacks/flag.man [new file with mode: 0644]
hacks/forest.man [new file with mode: 0644]
hacks/glx/Makefile.in
hacks/glx/glforestfire.man [new file with mode: 0644]
hacks/glx/hypertorus.c
hacks/glx/juggler3d.c
hacks/glx/polytopes.c
hacks/glx/polytopes.man
hacks/juggle.man [new file with mode: 0644]
hacks/laser.man [new file with mode: 0644]
hacks/lightning.man [new file with mode: 0644]
hacks/lisa.man [new file with mode: 0644]
hacks/lissie.man [new file with mode: 0644]
hacks/lmorph.man [new file with mode: 0644]
hacks/maze.c
hacks/munge-ad.pl
hacks/rotor.man [new file with mode: 0644]
hacks/sphere.man [new file with mode: 0644]
hacks/spiral.man [new file with mode: 0644]
hacks/t3d.man [new file with mode: 0644]
hacks/vines.man [new file with mode: 0644]
hacks/whirlygig.man [new file with mode: 0644]
hacks/worm.man [new file with mode: 0644]
hacks/xsublim.man [new file with mode: 0644]
po/POTFILES.in
po/de.po
setup.com
utils/version.h
xscreensaver.spec
xscreensaver.xcodeproj/project.pbxproj

diff --git a/OSX/._SaverTester.m b/OSX/._SaverTester.m
deleted file mode 100644 (file)
index dae644c..0000000
Binary files a/OSX/._SaverTester.m and /dev/null differ
diff --git a/OSX/._XScreenSaverView.m b/OSX/._XScreenSaverView.m
deleted file mode 100644 (file)
index 5e2d01f..0000000
Binary files a/OSX/._XScreenSaverView.m and /dev/null differ
diff --git a/OSX/._osxgrabscreen.m b/OSX/._osxgrabscreen.m
deleted file mode 100644 (file)
index bf488b2..0000000
Binary files a/OSX/._osxgrabscreen.m and /dev/null differ
index edcbb3583219bfff058557bd0e33b4c4f2fa6d25..65058e6ef1c490b4267046b7f2130cabe2fac2ac 100644 (file)
        <key>CFBundlePackageType</key>
        <string>APPL</string>
        <key>CFBundleShortVersionString</key>
-       <string>5.09</string>
+       <string>5.10</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>5.09</string>
+       <string>5.10</string>
        <key>LSMinimumSystemVersion</key>
        <string>10.4</string>
        <key>NSMainNibFile</key>
index c3f76020cc4348a8a466abc0ab9013810f5ada0c..d78b9c623fecf79a353835dfb220fccf87584d77 100644 (file)
        <key>CFBundlePackageType</key>
        <string>BNDL</string>
        <key>CFBundleShortVersionString</key>
-       <string>5.09</string>
+       <string>5.10</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>5.09</string>
+       <string>5.10</string>
        <key>LSMinimumSystemVersion</key>
        <string>10.4</string>
        <key>NSMainNibFile</key>
index 528c4f6c5b0a36e3032445aea201d4a230a35957..d483c8885ce70cd5de654ca2d7abd98143aea8c4 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2006, 2007 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2006-2009 Jamie Zawinski <jwz@jwz.org>
 *
 * Permission to use, copy, modify, distribute, and sell this software and its
 * documentation for any purpose is hereby granted without fee, provided that
@@ -81,7 +81,8 @@ int mono_p = 0;
     perror ("putenv");
     abort();
   }
-//  free (npath);   // Oops, don't free this! putenv() does not copy it!
+
+  /* Don't free (npath) -- MacOS's putenv() does not copy it. */
 }
 
 
@@ -101,7 +102,7 @@ int mono_p = 0;
     perror ("putenv");
     abort();
   }
-  free (env);
+  /* Don't free (env) -- MacOS's putenv() does not copy it. */
 }
 
 
index df0a92098637c27ec1325ef7ba146b6735f47735..05e5323e52de0caddb6b81189e7a90d281c40ee3 100644 (file)
@@ -15,7 +15,7 @@ XScreenSaver
 \f1\b0 \
 by Jamie Zawinski \uc0\u8232 and many others\
 \
-version 5.09 \uc0\u8232 03-Sep-2009\
+version 5.10 \uc0\u8232 07-Sep-2009\
 \
 {\field{\*\fldinst{HYPERLINK "http://www.jwz.org/xscreensaver/"}}{\fldrslt \cf2 \ul \ulc2 http://www.jwz.org/xscreensaver/}}\
 \pard\pardeftab720\li720
index 966a40fae58bc44ef749a5fce8d9ee10c1d91681..e12e3a2848009853263df25e03bc7441be99e3f9 100644 (file)
@@ -357,8 +357,10 @@ extern Pixmap XCreatePixmapFromBitmapData (Display *, Drawable,
                                            unsigned int depth);
 extern XPixmapFormatValues *XListPixmapFormats (Display *, int *count_ret);
 
-extern void jwxyz_draw_NSImage (Display *, Drawable, void *NSImage_arg,
-                                XRectangle *geom_ret, int exif_rotation);
+extern void jwxyz_draw_NSImage_or_CGImage (Display *, Drawable, 
+                                           Bool nsimg_p, void *NSImage_arg,
+                                           XRectangle *geom_ret, 
+                                           int exif_rotation);
 
 extern int XSetGraphicsExposures (Display *, GC, Bool);
 extern Bool XTranslateCoordinates (Display *, Window src_w, Window dest_w,
index 37290ecf8c9ed9454b50a081de010d907aa915ba..724ac5fe3586ea7ea1deecd590c37688202eee02 100644 (file)
@@ -113,6 +113,7 @@ jwxyz_make_display (void *nsview_arg)
   // w->cgc = [[[view window] graphicsContext] graphicsPort];
   w->cgc = 0;
   w->window.view = view;
+  CFRetain (w->window.view);   // needed for garbage collection?
   w->window.background = BlackPixel(0,0);
 
   d->main_window = w;
@@ -1629,6 +1630,7 @@ XGetImage (Display *dpy, Drawable d, int x, int y,
 
   if (d->type == PIXMAP) {
     depth = d->pixmap.depth;
+    alpha_first_p = 1; // we created it with kCGImageAlphaNoneSkipFirst.
     ibpp = CGBitmapContextGetBitsPerPixel (d->cgc);
     ibpl = CGBitmapContextGetBytesPerRow (d->cgc);
     data = CGBitmapContextGetData (d->cgc);
@@ -1785,22 +1787,35 @@ exif_rotate (int rot, CGSize rect)
 
 
 void
-jwxyz_draw_NSImage (Display *dpy, Drawable d, void *nsimg_arg,
-                    XRectangle *geom_ret, int exif_rotation)
+jwxyz_draw_NSImage_or_CGImage (Display *dpy, Drawable d, 
+                                Bool nsimg_p, void *img_arg,
+                               XRectangle *geom_ret, int exif_rotation)
 {
-  NSImage *nsimg = (NSImage *) nsimg_arg;
+  CGImageRef cgi;
+  CGImageSourceRef cgsrc;
+  NSSize imgr;
+
+  if (nsimg_p) {
+
+    NSImage *nsimg = (NSImage *) img_arg;
+    imgr = [nsimg size];
+
+    // convert the NSImage to a CGImage via the toll-free-bridging 
+    // of NSData and CFData...
+    //
+    NSData *nsdata = [NSBitmapImageRep
+                       TIFFRepresentationOfImageRepsInArray:
+                         [nsimg representations]];
+    CFDataRef cfdata = (CFDataRef) nsdata;
+    cgsrc = CGImageSourceCreateWithData (cfdata, NULL);
+    cgi = CGImageSourceCreateImageAtIndex (cgsrc, 0, NULL);
+
+  } else {
+    cgi = (CGImageRef) img_arg;
+    imgr.width  = CGImageGetWidth (cgi);
+    imgr.height = CGImageGetHeight (cgi);
+  }
 
-  // convert the NSImage to a CGImage via the toll-free-bridging 
-  // of NSData and CFData...
-  //
-  NSData *nsdata = [NSBitmapImageRep
-                        TIFFRepresentationOfImageRepsInArray:
-                          [nsimg representations]];
-  CFDataRef cfdata = (CFDataRef) nsdata;
-  CGImageSourceRef cgsrc = CGImageSourceCreateWithData (cfdata, NULL);
-  CGImageRef cgi = CGImageSourceCreateImageAtIndex (cgsrc, 0, NULL);
-
-  NSSize imgr = [nsimg size];
   Bool rot_p = (exif_rotation >= 5);
 
   if (rot_p)
@@ -1846,8 +1861,10 @@ jwxyz_draw_NSImage (Display *dpy, Drawable d, void *nsimg_arg,
   CGContextDrawImage (d->cgc, dst2, cgi);
   CGContextRestoreGState (d->cgc);
 
-  CFRelease (cgsrc);
-  CGImageRelease (cgi);
+  if (nsimg_p) {
+    CFRelease (cgsrc);
+    CGImageRelease (cgi);
+  }
 
   if (geom_ret) {
     geom_ret->x = dst.origin.x;
@@ -2013,6 +2030,14 @@ query_font (Font fid)
       NSTextStorage *ts = [[NSTextStorage alloc] initWithString:nsstr];
       [ts setFont:fid->nsfont];
       NSLayoutManager *lm = [[NSLayoutManager alloc] init];
+
+      /* Without this, the layout manager ends up on a queue somewhere and is
+         referenced again after we return to the command loop.  Since we don't
+         use this layout manager again, by that time it may have been garbage
+         collected, and we crash.  Setting this seems to cause `lm' to no 
+         longer be referenced once we exit this block. */
+      [lm setBackgroundLayoutEnabled:NO];
+
       NSTextContainer *tc = [[NSTextContainer alloc] init];
       [lm addTextContainer:tc];
       [tc release];    // lm retains tc
@@ -2341,6 +2366,7 @@ XLoadFont (Display *dpy, const char *name)
     NSLog(@"no NSFont for \"%s\"", name);
     abort();
   }
+  CFRetain (fid->nsfont);   // needed for garbage collection?
 
   //NSLog(@"parsed \"%s\" to %s %.1f", name, fid->ps_name, fid->size);
 
@@ -2369,6 +2395,7 @@ XUnloadFont (Display *dpy, Font fid)
   //      They're probably not very big...
   //
   //  [fid->nsfont release];
+  //  CFRelease (fid->nsfont);
 
   free (fid);
   return 0;
@@ -2409,6 +2436,7 @@ XSetFont (Display *dpy, GC gc, Font fid)
     XUnloadFont (dpy, gc->gcv.font);
   gc->gcv.font = copy_font (fid);
   [gc->gcv.font->nsfont retain];
+  CFRetain (gc->gcv.font->nsfont);   // needed for garbage collection?
   return 0;
 }
 
@@ -2458,6 +2486,7 @@ set_font (CGContextRef cgc, GC gc)
     font = XLoadFont (0, 0);
     gc->gcv.font = font;
     [gc->gcv.font->nsfont retain];
+    CFRetain (gc->gcv.font->nsfont);   // needed for garbage collection?
   }
   CGContextSelectFont (cgc, font->ps_name, font->size, kCGEncodingMacRoman);
   CGContextSetTextMatrix (cgc, CGAffineTransformIdentity);
index c636754d88560e1c8bf0904c33d75f7fb38cdbfc..2c7fc8b998c173651c152a33963ba20eb2cacfaa 100644 (file)
 #import "usleep.h"
 
 
+#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5
+
+     /* 10.4 code.
+
+        This version of the code works on 10.4, but is flaky.  There is
+        a better way to do it on 10.5 and newer, but taking this path,
+        then we are being compiled against the 10.4 SDK instead of the
+        10.5 SDK, and the newer API is not available to us.
+      */
+
 static void
 copy_framebuffer_to_ximage (CGDirectDisplayID cgdpy, XImage *xim,
                             int window_x, int window_y)
@@ -117,18 +127,18 @@ void
 osx_grab_desktop_image (Screen *screen, Window xwindow, Drawable drawable)
 {
   Display *dpy = DisplayOfScreen (screen);
-  XWindowAttributes xgwa;
   NSView *nsview = jwxyz_window_view (xwindow);
   NSWindow *nswindow = [nsview window];
+  XWindowAttributes xgwa;
   int window_x, window_y;
   Window unused;
 
-  // figure out where this window is on the screen
+  // Figure out where this window is on the screen.
   //
   XGetWindowAttributes (dpy, xwindow, &xgwa);
   XTranslateCoordinates (dpy, xwindow, RootWindowOfScreen (screen), 0, 0, 
                          &window_x, &window_y, &unused);
-  
+
   // Use the size of the Drawable, not the Window.
   {
     Window r;
@@ -208,6 +218,60 @@ osx_grab_desktop_image (Screen *screen, Window xwindow, Drawable drawable)
 }
 
 
+#else /* MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
+
+         10.5+ code.
+
+         This version of the code is simpler and more reliable, but
+         uses an API that only exist on 10.5 and newer, so we can only
+         use it if when being compiled against the 10.5 SDK or later.
+       */
+
+/* Loads an image into the Drawable, returning once the image is loaded.
+ */
+void
+osx_grab_desktop_image (Screen *screen, Window xwindow, Drawable drawable)
+{
+  Display *dpy = DisplayOfScreen (screen);
+  NSView *nsview = jwxyz_window_view (xwindow);
+  XWindowAttributes xgwa;
+  int window_x, window_y;
+  Window unused;
+
+  // Figure out where this window is on the screen.
+  //
+  XGetWindowAttributes (dpy, xwindow, &xgwa);
+  XTranslateCoordinates (dpy, xwindow, RootWindowOfScreen (screen), 0, 0, 
+                         &window_x, &window_y, &unused);
+
+  // Grab only the rectangle of the screen underlying this window.
+  //
+  CGRect cgrect;
+  cgrect.origin.x    = window_x;
+  cgrect.origin.y    = window_y;
+  cgrect.size.width  = xgwa.width;
+  cgrect.size.height = xgwa.height;
+
+  // Grab a screen shot of those windows below this one
+  // (hey, X11 can't do that!)
+  //
+  CGImageRef img = 
+    CGWindowListCreateImage (cgrect,
+                             kCGWindowListOptionOnScreenBelowWindow,
+                             [[nsview window] windowNumber],
+                             kCGWindowImageDefault);
+
+  // Render the grabbed CGImage into the Drawable.
+  if (img) {
+    jwxyz_draw_NSImage_or_CGImage (DisplayOfScreen (screen), drawable, 
+                                   False, img, NULL, 0);
+    CGImageRelease (img);
+  }
+}
+
+#endif /* 10.5+ code */
+
+
 /* Returns the EXIF rotation property of the image, if any.
  */
 static int
@@ -250,8 +314,9 @@ osx_load_image_file (Screen *screen, Window xwindow, Drawable drawable,
   if (!img)
     return False;
 
-  jwxyz_draw_NSImage (DisplayOfScreen (screen), drawable, img, geom_ret,
-                      exif_rotation (filename));
+  jwxyz_draw_NSImage_or_CGImage (DisplayOfScreen (screen), drawable, 
+                                 True, img, geom_ret, 
+                                 exif_rotation (filename));
   [img release];
   return True;
 }
diff --git a/README b/README
index 82edc8092554672ea49d0c489382e5e74b2b6128..a322d8336e3bfd8113d3b917990ba914894a9d5c 100644 (file)
--- a/README
+++ b/README
@@ -25,7 +25,7 @@ To compile on a Unix system with X11:
 
 To compile on MacOS X:
 
-    Use the included XCode project.  Requires XCode 2.4 and MacOS X 10.4.0
+    Use the included XCode project.  Requires XCode 3.1 and MacOS X 10.4.0
     or newer.
 
 Interested in writing a new screen saver?
@@ -38,6 +38,9 @@ XScreenSaver has an extensive manual -- please read it!
 
 ===============================================================================
 
+Changes since 5.09:   * Fixed some crashes and color problems on MacOS 10.6.
+                      * Retired `hypercube' and `hyperball', which are
+                        redundant with `polytopes'.
 Changes since 5.08:   * Ported to MacOS 10.6, including various 64-bit fixes.
                       * New hack, `rubikblocks'.
                       * Fixed another potential RANDR crash.
index 72489a2d5504c065180a4ba2bfd5858e1bd829d8..9be7b88d697d780a58af705553dd3d897dec66ed 100644 (file)
@@ -161,7 +161,7 @@ The MacOS X Port
 
   To compile on MacOS, use the XCode project included in the source
   distribution.  You shouldn't need to have X11 installed, and shouldn't
-  need to run "configure" first.  MacOS 10.4.0 and XCode 2.5 or newer are
+  need to run "configure" first.  MacOS 10.4.0 and XCode 3.1 or newer are
   required.
 
 ==========================================================================
index a6348f1c4439e4d6c62a28dcad55864491f5405a..19ed46737f3e73bf4b866c3ba84f53ebdbec8b3e 100644 (file)
@@ -797,6 +797,8 @@ xscreensaver-demo-Gtk: $(DEMO_OBJS) $(GTK_OBJS)
 
 demo-Gtk.o: XScreenSaver_ad.h
 demo-Xm.o:  XScreenSaver_Xm_ad.h
+xscreensaver.o: XScreenSaver_ad.h
+xscreensaver-getimage.o: XScreenSaver_ad.h
 
 xscreensaver-getimage: $(GETIMG_OBJS)
        $(CC) $(LDFLAGS) -o $@ $(GETIMG_OBJS) $(GETIMG_LIBS) -lm
index 12ca54f22749e76e172575a5b809dac5bc8818d9..ec6dfdc6fa1213cc4753668a343f42288371fccb 100644 (file)
@@ -4,8 +4,8 @@
 !            a screen saver and locker for the X window system
 !                            by Jamie Zawinski
 !
-!                              version 5.09
-!                              03-Sep-2009
+!                              version 5.10
+!                              07-Sep-2009
 !
 ! See "man xscreensaver" for more info.  The latest version is always
 ! available at http://www.jwz.org/xscreensaver/
@@ -158,7 +158,6 @@ GetViewPortIsFullOfLies: False
                                greynetic -root                             \n\
                                helix -root                                 \n\
                                hopalong -root                              \n\
--                              hypercube -root                             \n\
                                imsmap -root                                \n\
 -                              noseguy -root                               \n\
 -                              pyro -root                                  \n\
@@ -242,7 +241,6 @@ GetViewPortIsFullOfLies: False
                                xflame -root                                \n\
                                xmatrix -root                               \n\
 @GL_KLUDGE@ GL:                                gflux -root                                 \n\
--                              hyperball -root                             \n\
 -                              nerverot -root                              \n\
                                xrayswarm -root                             \n\
                                xspirograph -root                           \n\
index d08c1816714258333e6fab0a510c1a4b790a0bde..2c3c2537abdceff9a08df5ded91e348ef6be2d33 100644 (file)
@@ -57,7 +57,6 @@
                                greynetic -root                             \\n\
                                helix -root                                 \\n\
                                hopalong -root                              \\n\
--                              hypercube -root                             \\n\
                                imsmap -root                                \\n\
 -                              noseguy -root                               \\n\
 -                              pyro -root                                  \\n\
                                xflame -root                                \\n\
                                xmatrix -root                               \\n\
   GL:                          gflux -root                                 \\n\
--                              hyperball -root                             \\n\
 -                              nerverot -root                              \\n\
                                xrayswarm -root                             \\n\
                                xspirograph -root                           \\n\
diff --git a/hacks/._fps.c b/hacks/._fps.c
deleted file mode 100644 (file)
index ebffbac..0000000
Binary files a/hacks/._fps.c and /dev/null differ
index cf9b74118e01e114666d68f3e693da96193d9856..59da01dcb4ade6b2d473abc1b60829b589e06e9c 100644 (file)
@@ -154,7 +154,7 @@ OBJS                = attraction.o blitspin.o bouboule.o braid.o bubbles.o \
 
 EXES           = attraction blitspin bouboule braid decayscreen deco \
                  drift flame galaxy grav greynetic halo \
-                 helix hopalong hypercube ifs imsmap julia kaleidescope \
+                 helix hopalong ifs imsmap julia kaleidescope \
                  maze moire noseguy pedal \
                  penrose pyro qix rocks rorschach sierpinski slidescreen \
                  slip strange swirl goop starfish munch \
@@ -164,7 +164,7 @@ EXES                = attraction blitspin bouboule braid decayscreen deco \
                  demon loop penetrate deluxe compass squiral xflame \
                  wander spotlight phosphor xmatrix petri shadebobs \
                  ccurve blaster bumps ripples xspirograph \
-                 nerverot xrayswarm hyperball zoom whirlwindwarp rotzoomer \
+                 nerverot xrayswarm zoom whirlwindwarp rotzoomer \
                  speedmine vermiculate twang apollonian euler2d \
                  polyominoes thornbird  fluidballs anemone halftone \
                  metaballs eruption popsquares barcode piecewise cloudlife \
@@ -175,9 +175,9 @@ EXES                = attraction blitspin bouboule braid decayscreen deco \
                  @JPEG_EXES@
 JPEG_EXES      = webcollage-helper
 
-RETIRED_EXES   = ant bubbles critical flag forest laser lightning lisa \
-                 lissie lmorph rotor sphere spiral t3d vines whirlygig \
-                 worm xsublim juggle
+RETIRED_EXES   = ant bubbles critical flag forest hyperball hypercube laser \
+                 lightning lisa lissie lmorph rotor sphere spiral t3d vines \
+                 whirlygig worm xsublim juggle
 
 HACK_OBJS_1    = fps.o $(UTILS_BIN)/resources.o $(UTILS_BIN)/visual.o \
                  $(UTILS_BIN)/usleep.o $(UTILS_BIN)/yarandom.o @XMU_OBJS@
@@ -200,7 +200,7 @@ MEN         = anemone.man apollonian.man attraction.man \
                  drift.man epicycle.man euler2d.man fadeplot.man \
                  flame.man flow.man fluidballs.man galaxy.man \
                  goop.man grav.man greynetic.man halo.man helix.man \
-                 hopalong.man hyperball.man hypercube.man ifs.man imsmap.man \
+                 hopalong.man ifs.man imsmap.man \
                  interference.man julia.man \
                  kaleidescope.man kumppa.man \
                  loop.man maze.man moire.man \
@@ -228,7 +228,8 @@ MEN         = anemone.man apollonian.man attraction.man \
 RETIRED_MEN    = ant.man bubbles.man critical.man flag.man forest.man \
                  laser.man lightning.man lisa.man lissie.man lmorph.man \
                  rotor.man sphere.man spiral.man t3d.man vines.man \
-                 whirlygig.man worm.man xsublim.man juggle.man
+                 whirlygig.man worm.man xsublim.man juggle.man \
+                 hypercube.man hyperball.man
 
 STAR           = *
 EXTRAS         = README Makefile.in xml2man.pl m6502.sh .gdbinit \
@@ -250,7 +251,8 @@ EXTRAS              = README Makefile.in xml2man.pl m6502.sh .gdbinit \
 VMSFILES       = compile_axp.com compile_decc.com link_axp.com link_decc.com \
                  vms_axp.opt vms_axp_12.opt vms_decc.opt vms_decc_12.opt
 
-TARFILES       = $(SRCS) $(HDRS) $(SCRIPTS) $(MEN) $(EXTRAS) $(VMSFILES)
+TARFILES       = $(SRCS) $(HDRS) $(SCRIPTS) $(MEN) $(RETIRED_MEN) \
+                 $(EXTRAS) $(VMSFILES)
 
 
 default: all
@@ -825,6 +827,7 @@ m6502.h:
        UTILS_SRC="$(UTILS_SRC)" \
        $(srcdir)/m6502.sh m6502.h $(srcdir)/images/m6502/*.asm
 
+m6502.o:       m6502.h
 m6502:         m6502.o         asm6502.o $(HACK_OBJS) $(ATV)
        $(CC_HACK) -o $@ $@.o   asm6502.o $(HACK_OBJS) $(ATV) $(HACK_LIBS)
 
index 56d42dfe7c9a2c63d63846aaeeb2b246066cb133..9d7e968c74cf036e0fb5984e7342e63311be235c 100644 (file)
@@ -1,5 +1,5 @@
 /* 
- * Copyright (c) 2004, 2007 Steve Sundstrom
+ * Copyright (c) 2004-2009 Steve Sundstrom
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -1104,6 +1104,7 @@ _create_screen(struct state *st)
   values tuned for it draw the screen in a blink on Linux.  Therefore we
   draw 1/200th of the screen with each update and sleep, if necessary */
   st->lpu = (st->dialog) ? st->li/50 : st->li/200;   
+  if (!st->lpu) st->lpu = 1;
   st->bi=1;
   st->mode=MODE_ERASE;
 }
@@ -1521,7 +1522,10 @@ abstractile_draw (Display *dpy, Window window, void *closure)
   int mse, usleep;
  
   gettimeofday(&st->time, NULL);
-  switch (st->mode) {
+
+  /* If the window is too small, do nothing, sorry! */
+  if (st->xgwa.width > 20 && st->xgwa.height > 20) {
+    switch (st->mode) {
     case MODE_CREATE:
       _init_screen(st);
       _create_screen(st);
@@ -1532,6 +1536,7 @@ abstractile_draw (Display *dpy, Window window, void *closure)
     case MODE_DRAW:
       _draw_lines(st);
       break;
+    }
   }
   mse=_mselapsed(st);
   usleep = ((!st->ii) && (st->mode==MODE_CREATE)) ?  0 :
diff --git a/hacks/ant.man b/hacks/ant.man
new file mode 100644 (file)
index 0000000..fb71d57
--- /dev/null
@@ -0,0 +1,96 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+ant - cellular automaton.
+.SH SYNOPSIS
+.B ant
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-install]
+[\-noinstall]
+[\-root]
+[\-eyes]
+[\-no-eyes]
+[\-truchet]
+[\-no-truchet]
+[\-sharpturn]
+[\-no-sharpturn]
+[\-delay \fInumber\fP]
+[\-cycles \fInumber\fP]
+[\-count \fInumber\fP]
+[\-size \fInumber\fP]
+[\-neighbors 3]
+[\-neighbors 4]
+[\-neighbors 6]
+[\-neighbors 9]
+[\-neighbors 12]
+[\-ncolors \fInumber\fP]
+[\-fps]
+.SH DESCRIPTION
+A cellular automaton that is really a two-dimensional Turing machine: as
+the heads ("ants") walk along the screen, they change pixel values in
+their path. Then, as they pass over changed pixels, their behavior is
+influenced.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-sharpturns | \-no-sharpturns
+Whether to do sharp turns.
+.TP 8
+.B \-truchet | \-no-truchet
+Whether to use truchet lines.
+.TP 8
+.B \-eyes | \-no-eyes
+Whether to draw eyes on the ants.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds.  Default: 1000 (0.0001 seconds.).
+.TP 8
+.B \-cycles \fInumber\fP
+How long to wait until resetting.  0 - 800000.  Default: 40000.
+.TP 8
+.B \-count \fInumber\fP
+Ants Count.  -20 - 20. Default: -3.
+.TP 8
+.B \-size \fInumber\fP
+Ant Size.  -18 - 18.  Default: -12.
+.TP 8
+.B \-neighbors \fIN\fP
+How many neighbors each cell has.  Legal values are 3, 4, 6, 9, and 12.
+.TP 8
+.B \-ncolors \fInumber\fP
+Number of colors.  Default: 64.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by David Bagley.  Permission to use, copy, modify, 
+distribute, and sell this software and its documentation for any purpose is 
+hereby granted without fee, provided that the above copyright notice appear 
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation.  No representations are made about the 
+suitability of this software for any purpose.  It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+David Bagley.
diff --git a/hacks/bubbles.man b/hacks/bubbles.man
new file mode 100644 (file)
index 0000000..f9b892e
--- /dev/null
@@ -0,0 +1,140 @@
+.de EX         \"Begin example
+.ne 5
+.if n .sp 1
+.if t .sp .5
+.nf
+.in +.5i
+..
+.de EE
+.fi
+.in -.5i
+.if n .sp 1
+.if t .sp .5
+..
+.TH XScreenSaver 1 "14-Dec-95" "X Version 11"
+.SH NAME
+bubbles - frying pan / soft drink simulation
+.SH SYNOPSIS
+.B bubbles
+[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-simple] [\-broken] [\-3D] [\-rise|\-drop] [-trails]
+[\-fps]
+.SH DESCRIPTION
+\fIBubbles\fP sprays lots of little random bubbles all over the window which
+then grow until they reach their maximum size and go pop.  The inspiration
+for this was watching little globules of oil on the bottom of a frying pan
+and it also looks a little like bubbles in fizzy soft drink.  The default
+mode uses fancy ray-traced bubbles but there is also a mode which just draws 
+circles in case the default mode is too taxing on your hardware.
+.SH OPTIONS
+Depending on how your
+.I bubbles
+was compiled, it accepts the following options:
+.TP 8
+.B \-foreground
+Colour of circles if \fI\-simple\fP mode is selected.
+.TP 8
+.B \-background
+Colour of window background.
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-mono 
+If on a color display, pretend we're on a monochrome display.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-delay microseconds
+How much of a delay should be introduced between steps of the animation.
+Default 800, or about 800 microsecond.  Actually, this is the delay between each
+group of 15 new bubbles since such a delay between each step results in a
+very slow animation rate.
+.TP 8
+.B \-nodelay
+Same as \fI\-delay 0\fP.
+.TP 8
+.B \-simple
+Don't use the default fancy pixmap bubbles.  Just draw circles instead.
+This may give more bearable performance if your hardware wasn't made for
+this sort of thing.
+.TP 8
+.B \-broken
+Don't hide bubbles when they pop.  This was a bug during development
+but the results were actually quite attractive.
+.TP 8
+.B \-3D
+Normally, the simulation is done completely in two dimensions.  When a
+bubble swallows up another bubble, the areas of each are added to get
+the area of the resulting bubble.  This option changes the algorithm
+to instead add volume (imagining each to be a sphere in 3D space).  The
+whole thing looks more realistic but I find it attracts attention to
+the flickering of each bubble as they are move and are redrawn.  Your
+mileage may vary.
+.TP 8
+.B \-quiet
+Don't print messages explaining why one or several command line options
+were ignored.  This is disabled by default.
+.TP 8
+.B \-rise | \-drop 
+.TP 8
+.B \-trails
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.SH NOTES
+If you find the pace of things too slow, remember that there is a delay
+even though you specify no \fI\-delay\fP option.  Try using \fI\-nodelay\fP
+although beware of the effects of irritation of other users if you're on a 
+shared system as you bleed their CPU time away.
+
+Some tools to assist in creation of new bubbles are included in the source
+distribution.  These can either be loaded with the \fI\-file\fP or
+\fI\-directory\fP options (if available) or they can be used in place
+of the distributed default bubble (bubble_default.c).
+You might like to copy these scripts to a permanent location and
+use them.  Read bubbles.README.
+
+Rendered bubbles are not supported on monochrome displays.  I'm not
+convinced that small bubbles, even dithered properly are going to look
+like anything more than a jumble of random dots.
+.SH BUGS
+There is a delay before something appears on the screen when using
+rendered bubbles.  The XPM library seems to take a \fBlong\fP time to make
+pixmaps out of raw data.  This can be irritating on slower systems.
+
+The movement of the bubbles looks jerky if an incomplete set of bubbles
+is used.  
+
+The hide/display algorithm could do with some work to avoid flickering
+when \fI\-nodelay\fP is set.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH DISTRIBUTION POLICY
+This work is Copyright \(co 1995, 1996 by James Macnicol.  Permission
+to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided
+that the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.  No representations are made about the suitability of
+this software for any purpose.  It is provided "as is" without express
+or implied warranty.
+.SH AUTHOR
+James Macnicol <james.macnicol@mailexcite.com>
index 28beb6f245c33e9ff8639f33bba3b93ad4df4760..9d06bd2f2b48661dc7300a436c5d25e2eb7154c9 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/perl -w
-# Copyright Â© 2008 Jamie Zawinski <jwz@jwz.org>
+# Copyright Â© 2008, 2009 Jamie Zawinski <jwz@jwz.org>
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
@@ -19,7 +19,7 @@ use diagnostics;
 use strict;
 
 my $progname = $0; $progname =~ s@.*/@@g;
-my $version = q{ $Revision: 1.2 $ }; $version =~ s/^[^\d]+([\d.]+).*/$1/;
+my $version = q{ $Revision: 1.3 $ }; $version =~ s/^[^\d]+([\d.]+).*/$1/;
 
 my $verbose = 0;
 
@@ -265,7 +265,7 @@ sub check_config($) {
   my ($saver) = @_;
 
   # kludge
-  return 0 if ($saver =~ m/(-helper|hypertorus|polytopes)$/);
+  return 0 if ($saver =~ m/(-helper)$/);
 
   my ($src_opts, $switchmap) = parse_src ($saver);
   my (@xml_opts) = parse_xml ($saver, $switchmap);
index 1a131f87eecdcf0cf5a8037184821aa82fa43cc8..e93e93628035e305fc6a84928989ff17e7272847 100644 (file)
@@ -4,8 +4,8 @@
             a screen saver and locker for the X window system
                             by Jamie Zawinski
 
-                              version 5.09
-                               03-Sep-2009
+                              version 5.10
+                               07-Sep-2009
 
                      http://www.jwz.org/xscreensaver/
 
index b2a59928985a96bb17e67795df78a5ae59b52312..76fc447504ab616ff2879c2f4b6bb274657fe66b 100644 (file)
@@ -47,6 +47,9 @@
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 4.22.
+
 A cellular automaton that is really a two-dimensional Turing machine:
 as the heads ("ants") walk along the screen, they change pixel
 values in their path.  Then, as they pass over changed pixels, their
index d11935d61d42e592551b324168407e8acae76396..bf6755469a6f6cc58bf9c7c65eba407b3a6cab44 100644 (file)
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.08.
+
 This simulates the kind of bubble formation that happens when water
-boils:small bubbles appear, and as they get closer to each other,
+boils: small bubbles appear, and as they get closer to each other,
 they combine to form larger bubbles, which eventually pop.
 
 Written by James Macnicol; 1996.
index 55e092eecb1cd8ed1abb957061df9753bc681f1b..ceef83260685baa94bcb31a46e2440528438bb3a 100644 (file)
@@ -16,6 +16,9 @@
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.08.
+
 Draws a system of self-organizing lines.  It starts out as random
 squiggles, but after a few iterations, order begins to appear.
 
index cbce18b9fda8f5f573a72d2895e833529230a2a2..93155fb2d61f35249b5a78f66a0ac08540677179 100644 (file)
@@ -24,6 +24,9 @@
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.08.
+
 This draws a waving colored flag, that undulates its way around the
 screen.  The flag can contain arbitrary text and images.  By default,
 it displays either the current system name and OS type, or a picture
index 4bce9055eb959cfa68edc3a7cb80d0a70d166b1d..2b8d64e99596f8f6b7adbeaa74d0462d75166009 100644 (file)
@@ -16,6 +16,9 @@
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.08.
+
 Fractal trees.  
 
 Written by Peter Baumung; 1997.
index 844db120518ce3dc6dca15dc5629f6a4ff21e7b5..cf46bd5c4933dcb7323c4d34524265d0e35e0150 100644 (file)
@@ -31,6 +31,9 @@
   </hgroup>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.08.
+
 Draws an animation of sprinkling fire-like 3D triangles in a landscape
 filled with trees.  
 
index b8ecd2c79323a20f8e8099a00c5afa95984b0849..5d80bd911fae7123f16757adc50bc27120e931dd 100644 (file)
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.10.  It has been replaced by the more general "Polytopes"
+screen saver, which can display this object as well as others.  The
+Polytopes "120-cell" object corresponds to this one.
+
 Hyperball is to hypercube as dodecahedron is to cube: this displays
 a 2D projection of the sequence of 3D objects which are the projections
 of the 4D analog to the dodecahedron.  Technically, it is a "120 cell
 polytope".
 
-See also "polytopes" for a more general version of this using OpenGL.
-
 http://en.wikipedia.org/wiki/Hypercube
 http://en.wikipedia.org/wiki/Regular_polytope
 
index 178cd433bf034e068534d241d2149a2dd1ef67d9..e52232e2b63830e8e9c9ee66a842aacde9a2bf87 100644 (file)
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.10.  It has been replaced by the more general "Polytopes"
+screen saver, which can display this object as well as others.
+
 This displays 2D projections of the sequence of 3D objects which are
 the projections of the 4D analog to the cube: as a square is composed
 of four lines, each touching two others; and a cube is composed of
@@ -58,8 +62,6 @@ eight cubes, each touching six others.  To make it easier to
 visualize the rotation, it uses a different color for the edges of
 each face.  Don't think about it too long, or your brain will melt.
 
-See also "polytopes" for a more general version of this using OpenGL.
-
 http://en.wikipedia.org/wiki/Hypercube
 http://en.wikipedia.org/wiki/Regular_polytope
 
index f32b240453360b1f4a123bd57ad3107e4c30b4f0..cd3838711d97fafb978b5bcbdf622687a7d2afd7 100644 (file)
 
   <hgroup>
     <select id="display-mode">
-      <option id="wire"        _label="Wireframe mesh" arg-set="-mode 0"/>
-      <option id="surface"     _label="Solid surface"  arg-set="-mode 1"/>
-      <option id="transparent" _label="Transparent surface"/>
+      <option id="wire"        _label="Wireframe mesh"
+              arg-set="-mode wireframe"/>
+      <option id="surface"     _label="Solid surface"/>
+      <option id="transparent" _label="Transparent surface"
+              arg-set="-mode transparent"/>
     </select>
 
     <select id="appearance">
       <option id="solid" _label="Solid object"
-              arg-set="-appearance 0"/>
+              arg-set="-appearance solid"/>
       <option id="bands" _label="See-through bands"/>
       <option id="bands" _label="See-through spirals (1 spiral)"
-              arg-set="-appearance 3"/>
+              arg-set="-appearance spirals-1"/>
       <option id="bands" _label="See-through spirals (2 spirals)"
-              arg-set="-appearance 4"/>
+              arg-set="-appearance spirals-2"/>
       <option id="bands" _label="See-through spirals (4 spirals)"
-              arg-set="-appearance 5"/>
+              arg-set="-appearance spirals-4"/>
       <option id="bands" _label="See-through spirals (8 spirals)"
-              arg-set="-appearance 6"/>
+              arg-set="-appearance spirals-8"/>
       <option id="bands" _label="See-through spirals (16 spirals)"
-              arg-set="-appearance 7"/>
+              arg-set="-appearance spirals-16"/>
     </select>
   </hgroup>
 
   <hgroup>
     <select id="colors">
-      <option id="twosided" _label="Two-sided"/>
-      <option id="colorwheel" _label="Color wheel" arg-set="-colorwheel"/>
+      <option id="twosided" _label="Two-sided" arg-set="-twosided"/>
+      <option id="colorwheel" _label="Color wheel"/>
     </select>
 
     <select id="projection3d">
   </hgroup>
 
   <_description>
-
 This shows a rotating Clifford Torus: a torus lying on the
 "surface" of a 4D hypersphere.  Inspired by Thomas Banchoff's book
 "Beyond the Third Dimension: Geometry, Computer Graphics, and Higher
index f5f9a6022ff050730374fac335ece26dd01064be..070827914faa65808d17b594bc3b96a1970fcccb 100644 (file)
@@ -48,7 +48,8 @@
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
-Draws a juggling stick-man.  See also "Juggler3D".
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.09.  It has been replaced by the "Juggler3D" screen saver.
 
 http://en.wikipedia.org/wiki/Siteswap
 
index 37e33d3aa4cc6cb6eedc16e566c6f472baadba0e..5ef6eecd93644465c41f3decb075bffac6559ef1 100644 (file)
@@ -23,6 +23,9 @@
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.08.
+
 Moving radiating lines, that look vaguely like scanning laser beams.
 (Frankie say relax.)
 
index 3c932322a5dfca87bea2de151ee02d60ce6c7917..9633a617f0f19748f3b064dc23546a9510828e7e 100644 (file)
@@ -16,6 +16,9 @@
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.08.
+
 Crackling fractal lightning bolts.
 
 Written by Keith Romberg; 1997.
index e4ac8d0d2beddc386b4aa11c0a68f264efa99147..8d3d35f1c7578d05af9cb118b8407fc0d90f12be 100644 (file)
@@ -28,6 +28,9 @@
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.08.
+
 Lissajous loops.
 
 http://en.wikipedia.org/wiki/Lissajous_curve
index fe5b0eb2c22636e5b7d6ad758ca363cf0c5cce31..18ad4d222252f465ef0d1eadba9de6d5c591c8b6 100644 (file)
@@ -27,6 +27,9 @@
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.08.
+
 Lissajous loops.  This one draws the progress of circular shapes along a path.
 
 http://en.wikipedia.org/wiki/Lissajous_curve
index f1be07048ca7a32598da980a2e28a6f43b621bdd..1fa654de24932f2d05e3cb09914a3ccf457945a5 100644 (file)
@@ -30,6 +30,9 @@
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.08.
+
 This generates random spline-ish line drawings and morphs between
 them.  
 
diff --git a/hacks/config/mismunch.xml b/hacks/config/mismunch.xml
new file mode 100644 (file)
index 0000000..dd47c0f
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<screensaver name="mismunch" _label="Mismunch">
+
+  <command arg="-root"/>
+
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
+          convert="invert"/>
+
+  <number id="duration" type="slider" arg="-clear %"
+          _label="Duration" _low-label="Short" _high-label="Long"
+          low="1" high="200" default="65"/>
+
+  <number id="simultaneous" type="slider" arg="-simul %"
+          _label="Simultaneous squares" _low-label="One" _high-label="Many"
+          low="1" high="20" default="5"/>
+
+  <select id="mode">
+    <option id="xor"   _label="XOR"/>
+    <option id="solid" _label="Solid" arg-set="-no-xor"/>
+  </select>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
+  <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.08.  It was merged with the "Munch" screen saver.
+
+Munching errors!  This is a creatively broken misimplementation of the
+classic munching squares graphics hack.  See the "Munch" screen saver
+for the original.
+
+http://en.wikipedia.org/wiki/HAKMEM
+http://en.wikipedia.org/wiki/Munching_square
+
+Written by Steven Hazel; 2004.
+  </_description>
+</screensaver>
index 258a81d0a74436e8f8b82c190e9b528dc76be5f3..3f24a07cd71a7d335ce8a36b3424239587684b3e 100644 (file)
@@ -6,32 +6,33 @@
 
  <hgroup>
   <select id="display-mode">
-   <option id="wire" _label="Wireframe mesh"   arg-set="-mode 0"/>
-   <option id="surface" _label="Solid surface" arg-set="-mode 1"/>
+   <option id="wire" _label="Wireframe mesh"
+           arg-set="-mode wireframe"/>
+   <option id="surface" _label="Solid surface"
+           arg-set="-mode surface"/>
    <option id="transparent" _label="Transparent surface"/>
   </select>
 
   <select id="polytope">
    <option id="random" _label="Random object"/>
    <option id="cell-5" _label="5-cell (hyper-tetrahedron)"
-           arg-set="-polytope 0"/>
+           arg-set="-polytope 5-cell"/>
    <option id="cell-8" _label="8-cell (hypercube / tesseract)"
-           arg-set="-polytope 1"/>
+           arg-set="-polytope 8-cell"/>
    <option id="cell-16" _label="16-cell (hyper-octahedron)"
-           arg-set="-polytope 2"/>
+           arg-set="-polytope 16-cell"/>
    <option id="cell-24" _label="24-cell"
-           arg-set="-polytope 3"/>
+           arg-set="-polytope 24-cell"/>
    <option id="cell-120" _label="120-cell"
-           arg-set="-polytope 4"/>
+           arg-set="-polytope 120-cell"/>
    <option id="cell-600" _label="600-cell"
-           arg-set="-polytope 5"/>
+           arg-set="-polytope 600-cell"/>
   </select>
 </hgroup>
 
 <hgroup>
   <select id="colors">
-   <option id="single" _label="Single color"
-           arg-set="-single-color"/>
+   <option id="single" _label="Single color" arg-set="-single-color"/>
    <option id="depth" _label="Colors By 4D Depth"/>
   </select>
 
index 35f7e17114e012cd3f0e489c0ca2d0d13eecae22..b3c3e5d381dbeb8f39c3977f93752312594d035a 100644 (file)
@@ -26,6 +26,9 @@
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.08.
+
 Draws a line segment moving along a complex spiraling curve.
 
 Written by Tom Lawrence; 1997.
index bc02b2936f4e1e7aaa45e45b098de1cc049f36f3..a48ca2fb52d88460af949e465d4af67dc1235574 100644 (file)
@@ -16,6 +16,9 @@
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.08.
+
 Draws shaded spheres in multiple colors.
 
 Written by Tom Duff and Jamie Zawinski; 1982, 1997.
index f9378f95a6c177ed9ffa62061ad46b54a4600d6c..f43a6eadc592f8322a48be04bc59727a901ac88e 100644 (file)
@@ -24,6 +24,9 @@
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.08.
+
 Moving circular moire patterns.
 
 Written by Peter Schmitzberger; 1997.
index 9f67e921cf822e09e696f134817ac2a9471d8981..abf8534375bd8d3651de8f954920f3ca1fa1e4eb 100644 (file)
@@ -39,6 +39,9 @@
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.08.
+
 Draws a working analog clock composed of floating, throbbing bubbles.
 
 Written by Bernd Paysan; 1999.
index e75db6a81134c020d43b467e372a64b76d1f7c8b..6e1605d2f4b2a79944101f027a0360f10ee7255b 100644 (file)
@@ -16,6 +16,9 @@
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.08.
+
 Generates a continuous sequence of small, curvy geometric patterns.
 
 Written by Tracy Camp and David Hansen; 1997.
index e821dc5f2e22919ca21de3153142d2ef49a1ddb8..3ca0dce2fb031988c951c780b79ae85639719ca7 100644 (file)
@@ -76,6 +76,9 @@
   </hgroup>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.08.
+
 Draws zooming chains of sinusoidal spots.
 
 Written by Ashton Trey Belew; 2001.
index 084c27c3090b6dcd4c20720308d6c77967f93055..6cf221b6d75dc16e88704f8c0172726e813cdf33 100644 (file)
@@ -25,6 +25,9 @@
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
+This screen saver was removed from the XScreenSaver distribution as of
+version 5.08.
+
 Draws multicolored worms that crawl around the screen.
 
 Written by Brad Taylor, Dave Lemke, Boris Putanec, and Henrik Theiling; 1991.
diff --git a/hacks/critical.man b/hacks/critical.man
new file mode 100644 (file)
index 0000000..324c116
--- /dev/null
@@ -0,0 +1,94 @@
+.TH XScreenSaver 1 "08 Feb 2000" "X Version 11"
+.SH NAME
+critical - Draw a system showing self-organizing criticality
+.SH SYNOPSIS
+.B critical
+[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-delay \fIseconds\fP] [\-random \fIboolean\fP] [\-ncolors \fIint\fP] [\-offset \fIint\fP] 
+[\-fps]
+.SH DESCRIPTION
+The \fIcritical\fP program displays a self-organizing critical system
+that gradually emerges from chaos.
+
+\fIcritical\fP performs a simulation on a two-dimensional array of
+integers.  The array is initialized to random values.  On each
+iteration, it draws a line to the array position with the greatest
+value.  It then replaces that location and the eight neighboring
+locations with randomly-selected values.
+
+The lines are initially random, but over time a chaotic
+self-organizing system evolves: areas of the screen which happen to
+have lower values are less likely to be updated to new values, and so
+the line tends to avoid those areas.  Eventually, the histogram of
+changes approaches the power-law curve typical of such systems.
+
+The simplest documented self-organizing system is the one-dimensional
+equivalent of \fIcritical\fP.
+
+I heard about this algorithm second-hand: apparently there was an
+article in \fIScientific American\fP describing it sometime in 1997.
+.SH OPTIONS
+.I critical
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-mono 
+If on a color display, pretend we're on a monochrome display.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-delay \fIusecs\fP
+Number of microseconds to wait after drawing each line.
+.TP 8
+.B \-random \fIboolean\fP
+Whether to use randomly selected colours rather than a cycle around
+the colour wheel.
+.TP 8
+.B \-offset \fIinteger\fP
+The maximum random radius increment to use.
+.TP 8
+.B \-ncolors \fIinteger\fP
+How many colors should be allocated in the color ramp (note that this
+value interacts with \fIoffset\fP.)
+.TP 8
+.B \-trail \fIinteger\fP
+Length of the trail: between 5 and 100 is nice.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.BR xscreensaver-command (1)
+.BR xscreensaver-demo (1)
+.SH COPYRIGHT
+Copyright \(co 1998 by Martin Pool.
+
+Permission to use, copy, modify, distribute, and sell this software
+and its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation.  No representations are made about the
+suitability of this software for any purpose.  It is provided "as is"
+without express or implied warranty.
+.SH AUTHOR
+Martin Pool <mbp@humbug.org.au>, 1998-2000.  Based in part on the
+XScreenSaver code by Jamie Zawinski <jwz@jwz.org>.
diff --git a/hacks/flag.man b/hacks/flag.man
new file mode 100644 (file)
index 0000000..dcf93f7
--- /dev/null
@@ -0,0 +1,92 @@
+.TH XScreenSaver 1 "24-May-97" "X Version 11"
+.SH NAME
+flag - draws a waving flag, containing text or an image
+.SH SYNOPSIS
+.B flag
+[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-cycles \fIinteger\fP] [\-size \fIinteger\fP] [\-text \fIstring\fP] [\-font \fIfont\fP] [\-bitmap \fIxbm-file\fP]
+
+[\-fps]
+.SH DESCRIPTION
+The \fIflag\fP program draws a waving flag that contains text or a bitmap.
+.SH OPTIONS
+.I flag
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-mono 
+If on a color display, pretend we're on a monochrome display.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-ncolors \fIinteger\fP
+How many colors should be used (if possible).  Default 200.
+.TP 8
+.B \-cycles \fIinteger\fP
+
+.TP 8
+.B \-count \fIinteger\fP
+
+.TP 8
+.B \-size \fIinteger\fP
+How large the pixels in the flag should be, from 1 to 8.
+If this is a negative number, the pixel size is chosen randomly
+from the range 1 to -size.  Default -7.
+.TP 8
+.B \-text \fItext\fP
+The text to display in the flag.  Multiple lines of text are allowed;
+the lines will be displayed centered atop one another.  Default: none.
+If the text is the magic string \fI"(default)"\fP, then the text used 
+will be the local machine name; a newline; and the local OS version.
+.TP 8
+.B \-bitmap \fIxbm-file\fP
+The bitmap to display in the flag; this must be an XBM file (color XPMs
+are not allowed.)  Default: none.  If the bitmap is the magic 
+string \fI"(default)"\fP, then the bitmap used will be a charming 
+little picture of J. R. "Bob" Dobbs.
+
+If neither \fI\-text\fP nor \fI\-bitmap\fP are specified, then either
+the builtin text or the builtin bitmap will be chosen randomly.
+.TP 8
+.B \-font \fIfont\fP
+The font in which to draw the text; the default is
+"-*-helvetica-bold-r-*-240-*".
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1),
+.BR xlock (1)
+.SH COPYRIGHT
+Copyright \(co 1996 Charles Vidal.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. 
+
+.SH AUTHOR
+Charles Vidal <vidalc@univ-mlv.fr>, 1996.
+
+Ability to run standalone or with \fIxscreensaver\fP, and the \-text
+and \-bitmap options, added by Jamie Zawinski <jwz@jwz.org>, 24-May-97.
diff --git a/hacks/forest.man b/hacks/forest.man
new file mode 100644 (file)
index 0000000..4447221
--- /dev/null
@@ -0,0 +1,62 @@
+.TH XScreenSaver 1 "27-May-97" "X Version 11"
+.SH NAME
+forest - draws a fractal forest
+.SH SYNOPSIS
+.B forest
+[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP]
+
+[\-fps]
+.SH DESCRIPTION
+The \fIforest\fP program draws a fractal forest.
+.SH OPTIONS
+.I forest
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-mono 
+If on a color display, pretend we're on a monochrome display.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-ncolors \fIinteger\fP
+How many colors should be used (if possible).  Default 20.
+
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1),
+.BR xlock (1)
+.SH COPYRIGHT
+Copyright \(co 1995 by Pascal Pensa.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. 
+.SH AUTHOR
+Pascal Pensa <pensa@aurora.unice.fr>, 1995.
+
+Ability to run standalone or with \fIxscreensaver\fP added by 
+Jamie Zawinski <jwz@jwz.org>, 27-May-97.
index 23dde73b467fe7416bd9d3be3731290af53c8a53..cb61b98aa7c3f2bbe4b698d1dd3e560026a36929 100644 (file)
@@ -214,7 +214,7 @@ MEN         = @GL_MEN@
 RETIRED_MEN    = glforestfire.man
 EXTRAS         = README Makefile.in dxf2gl.pl molecules.sh starwars.txt
 
-TARFILES       = $(SRCS) $(HDRS) $(MEN) $(EXTRAS)
+TARFILES       = $(SRCS) $(HDRS) $(MEN) $(RETIRED_MEN) $(EXTRAS)
 
 
 default: all
@@ -670,6 +670,7 @@ molecules.h:
        $(srcdir)/molecules.sh molecules.h $(HACK_SRC)/images/molecules/*.pdb
 
 MOLECULE_OBJS=sphere.o tube.o $(HACK_TRACK_OBJS)
+molecule.o:    molecules.h
 molecule:      molecule.o      $(MOLECULE_OBJS)
        $(CC_HACK) -o $@ $@.o   $(MOLECULE_OBJS) $(HACK_LIBS)
 
diff --git a/hacks/glx/glforestfire.man b/hacks/glx/glforestfire.man
new file mode 100644 (file)
index 0000000..aae3a25
--- /dev/null
@@ -0,0 +1,130 @@
+.de EX         \"Begin example
+.ne 5
+.if n .sp 1
+.if t .sp .5
+.nf
+.in +.5i
+..
+.de EE
+.fi
+.in -.5i
+.if n .sp 1
+.if t .sp .5
+..
+.TH XScreenSaver 1 "03-Oct-01" "X Version 11"
+.SH NAME
+glforestfire - draws a GL animation of sprinkling fire-like 3D triangles
+.SH SYNOPSIS
+.B glforestfire
+[\-display \fIhost:display.screen\fP] [\-window] [\-root]
+[\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP]
+[\-count \fInumber_of_particles\fP] 
+[\-trees \fInumber_of_trees\fP] 
+[\-size \fIviewport_size\fP] 
+[\-texture] [\-no-texture]
+[\-shadows] [\-no-shadows]
+[\-fog] [\-no-fog]
+[\-wireframe] [\-no-wireframe]
+[\-wander] [\-no-wander]
+[\-trackmouse] [\-no-trackmouse]
+[\-fps]
+.SH DESCRIPTION
+The \fIglforestfire\fP program draws an animation of sprinkling fire-like 3D triangles in
+a landscape filled with trees.
+.SH OPTIONS
+.I glforestfire
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-trees \fInumber_of_trees\fP\fP
+Specify how much trees are drawn in the landscape. 
+.TP 8
+.B \-count \fInumber_of_particles\fP\fP
+Specify how much fire particles are drawn. A very special case is 0
+wich means that you get
+.B rain
+!
+.TP 8
+.B \-size \fIviewport_size\fP\fP
+Viewport of GL scene is specified size if greater than 32 and less than screensize. Default value is 0, meaning full screensize.
+.TP 8
+.B \-texture
+Show a textured ground and the trees. This is the default.
+.TP 8
+.B \-no\-texture
+Disables texturing the landscape. This implies that no trees are drawn.
+.TP 8
+.B \-shadows
+Show a shadow for each particle on the ground. This is the default.
+.TP 8
+.B \-no\-shadows
+Disables the drawing of the shadows.
+.TP 8
+.B \-fog
+Show a fog in the distance.
+.TP 8
+.B \-no\-fog
+Disables the fog. This is the default.
+.TP 8
+.B \-wander
+Move the observer around the landscape. This is the default.
+.TP 8
+.B \-no\-wander
+Keep the fire centered on the screen.
+.TP 8
+.B \-trackmouse
+Let the mouse be a joystick to change the view of the landscape.
+This implies 
+.I \-no\-wander.
+.TP 8
+.B \-no\-trackmouse
+Disables mouse tracking. This is the default.
+.TP 8
+.B \-wire
+Draw a wireframe rendition of the fire: this will consist only of
+single-pixel lines for the triangles.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2001 by Eric Lassauge.
+Permission to use, copy, modify, distribute, and sell this software and
+its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation.  No representations are made about the
+suitability of this software for any purpose.  It is provided "as is"
+without express or implied warranty.
+
+The original code for this hack was written by David Bucciarelli 
+(tech.hmw@plus.it) and could be found in the demo package 
+of Mesa (Mesa-3.2/3Dfx/demos/). This hack is the result of the merge of
+two of the David's demos (fire and rain).
+
+.SH AUTHOR
+David Bucciarelli <tech.hmw@plus.it>
+Eric Lassauge <lassauge@mail.dotcom.fr>
index 17f948f144a0d8a3cef3b56122b1402428cbad8b..a7d3ed950a77673a62de69bbdd29e910a3f8cd4c 100644 (file)
@@ -4,7 +4,7 @@
 static const char sccsid[] = "@(#)hypertorus.c  1.2 05/09/28 xlockmore";
 #endif
 
-/* Copyright (c) 2003-2007 Carsten Steger <carsten@mirsanmir.org>. */
+/* Copyright (c) 2003-2009 Carsten Steger <carsten@mirsanmir.org>. */
 
 /*
  * Permission to use, copy, modify, and distribute this software and its
@@ -24,6 +24,7 @@ static const char sccsid[] = "@(#)hypertorus.c  1.2 05/09/28 xlockmore";
  * C. Steger - 05/09/28: Added the spirals appearance mode
  *                       and trackball support
  * C. Steger - 07/01/23: Improved 4d trackball support
+ * C. Steger - 09/08/22: Removed check-config.pl warnings
  */
 
 /*
@@ -55,68 +56,33 @@ static const char sccsid[] = "@(#)hypertorus.c  1.2 05/09/28 xlockmore";
 #endif
 
 #define DISP_WIREFRAME             0
-#define DISP_WIREFRAME_STR        "0"
 #define DISP_SURFACE               1
-#define DISP_SURFACE_STR          "1"
 #define DISP_TRANSPARENT           2
-#define DISP_TRANSPARENT_STR      "2"
 
 #define APPEARANCE_SOLID           0
-#define APPEARANCE_SOLID_STR      "0"
 #define APPEARANCE_BANDS           1
-#define APPEARANCE_BANDS_STR      "1"
 #define APPEARANCE_SPIRALS         2
-#define APPEARANCE_SPIRALS_STR    "2"
-#define APPEARANCE_SPIRALS_1       3
-#define APPEARANCE_SPIRALS_1_STR  "3"
-#define APPEARANCE_SPIRALS_2       4
-#define APPEARANCE_SPIRALS_2_STR  "4"
-#define APPEARANCE_SPIRALS_4       5
-#define APPEARANCE_SPIRALS_4_STR  "5"
-#define APPEARANCE_SPIRALS_8       6
-#define APPEARANCE_SPIRALS_8_STR  "6"
-#define APPEARANCE_SPIRALS_16      7
-#define APPEARANCE_SPIRALS_16_STR "7"
 
 #define COLORS_TWOSIDED            0
-#define COLORS_TWOSIDED_STR       "0"
 #define COLORS_COLORWHEEL          1
-#define COLORS_COLORWHEEL_STR     "1"
 
 #define DISP_3D_PERSPECTIVE        0
-#define DISP_3D_PERSPECTIVE_STR   "0"
 #define DISP_3D_ORTHOGRAPHIC       1
-#define DISP_3D_ORTHOGRAPHIC_STR  "1"
 
 #define DISP_4D_PERSPECTIVE        0
-#define DISP_4D_PERSPECTIVE_STR   "0"
 #define DISP_4D_ORTHOGRAPHIC       1
-#define DISP_4D_ORTHOGRAPHIC_STR  "1"
-
-#define DALPHA                     1.1
-#define DALPHA_STR                "1.1"
-#define DBETA                      1.3
-#define DBETA_STR                 "1.3"
-#define DDELTA                     1.5
-#define DDELTA_STR                "1.5"
-#define DZETA                      1.7
-#define DZETA_STR                 "1.7"
-#define DETA                       1.9
-#define DETA_STR                  "1.9"
-#define DTHETA                     2.1
-#define DTHETA_STR                "2.1"
-
-#define DEF_DISPLAY_MODE           DISP_TRANSPARENT_STR
-#define DEF_APPEARANCE             APPEARANCE_BANDS_STR
-#define DEF_COLORS                 COLORS_COLORWHEEL_STR
-#define DEF_3D_PROJECTION          DISP_3D_PERSPECTIVE_STR
-#define DEF_4D_PROJECTION          DISP_4D_PERSPECTIVE_STR
-#define DEF_DALPHA                 DALPHA_STR
-#define DEF_DBETA                  DBETA_STR
-#define DEF_DDELTA                 DDELTA_STR
-#define DEF_DZETA                  DZETA_STR
-#define DEF_DETA                   DETA_STR
-#define DEF_DTHETA                 DTHETA_STR
+
+#define DEF_DISPLAY_MODE           "surface"
+#define DEF_APPEARANCE             "bands"
+#define DEF_COLORS                 "colorwheel"
+#define DEF_PROJECTION_3D          "perspective"
+#define DEF_PROJECTION_4D          "perspective"
+#define DEF_SPEEDWX                "1.1"
+#define DEF_SPEEDWY                "1.3"
+#define DEF_SPEEDWZ                "1.5"
+#define DEF_SPEEDXY                "1.7"
+#define DEF_SPEEDXZ                "1.9"
+#define DEF_SPEEDYZ                "2.1"
 
 #ifdef STANDALONE
 # define DEFAULTS           "*delay:      25000 \n" \
@@ -145,11 +111,16 @@ ModStruct   hypertorus_description =
 #endif
 
 
+static char *mode;
 static int display_mode;
+static char *appear;
 static int appearance;
 static int num_spirals;
+static char *color_mode;
 static int colors;
+static char *proj_3d;
 static int projection_3d;
+static char *proj_4d;
 static int projection_4d;
 static float speed_wx;
 static float speed_wy;
@@ -164,73 +135,45 @@ static const float offset3d[4] = {  0.0,  0.0, -2.0,  0.0 };
 
 static XrmOptionDescRec opts[] =
 {
-  {"-mode",            ".hypertorus.displayMode",  XrmoptionSepArg, 0 },
-  {"-wireframe",       ".hypertorus.displayMode",  XrmoptionNoArg,
-                       DISP_WIREFRAME_STR },
-  {"-surface",         ".hypertorus.displayMode",  XrmoptionNoArg,
-                       DISP_SURFACE_STR },
-  {"-transparent",     ".hypertorus.displayMode",  XrmoptionNoArg,
-                       DISP_TRANSPARENT_STR },
-
-  {"-appearance",      ".hypertorus.appearance",   XrmoptionSepArg, 0 },
-  {"-solid",           ".hypertorus.appearance",   XrmoptionNoArg,
-                       APPEARANCE_SOLID_STR },
-  {"-bands",           ".hypertorus.appearance",   XrmoptionNoArg,
-                       APPEARANCE_BANDS_STR },
-  {"-spirals-1",       ".hypertorus.appearance",   XrmoptionNoArg,
-                       APPEARANCE_SPIRALS_1_STR },
-  {"-spirals-2",       ".hypertorus.appearance",   XrmoptionNoArg,
-                       APPEARANCE_SPIRALS_2_STR },
-  {"-spirals-4",       ".hypertorus.appearance",   XrmoptionNoArg,
-                       APPEARANCE_SPIRALS_4_STR },
-  {"-spirals-8",       ".hypertorus.appearance",   XrmoptionNoArg,
-                       APPEARANCE_SPIRALS_8_STR },
-  {"-spirals-16",      ".hypertorus.appearance",   XrmoptionNoArg,
-                       APPEARANCE_SPIRALS_16_STR },
-  {"-twosided",        ".hypertorus.colors",       XrmoptionNoArg,
-                       COLORS_TWOSIDED_STR },
-  {"-colorwheel",      ".hypertorus.colors",       XrmoptionNoArg,
-                       COLORS_COLORWHEEL_STR },
-  {"-perspective-3d",  ".hypertorus.projection3d", XrmoptionNoArg,
-                       DISP_3D_PERSPECTIVE_STR },
-  {"-orthographic-3d", ".hypertorus.projection3d", XrmoptionNoArg,
-                       DISP_3D_ORTHOGRAPHIC_STR },
-  {"-perspective-4d",  ".hypertorus.projection4d", XrmoptionNoArg,
-                       DISP_4D_PERSPECTIVE_STR },
-  {"-orthographic-4d", ".hypertorus.projection4d", XrmoptionNoArg,
-                       DISP_4D_ORTHOGRAPHIC_STR },
-  {"-speed-wx",        ".hypertorus.speedwx",      XrmoptionSepArg, 0 },
-  {"-speed-wy",        ".hypertorus.speedwy",      XrmoptionSepArg, 0 },
-  {"-speed-wz",        ".hypertorus.speedwz",      XrmoptionSepArg, 0 },
-  {"-speed-xy",        ".hypertorus.speedxy",      XrmoptionSepArg, 0 },
-  {"-speed-xz",        ".hypertorus.speedxz",      XrmoptionSepArg, 0 },
-  {"-speed-yz",        ".hypertorus.speedyz",      XrmoptionSepArg, 0 }
+  {"-mode",            ".displayMode",  XrmoptionSepArg, 0 },
+  {"-wireframe",       ".displayMode",  XrmoptionNoArg,  "wireframe" },
+  {"-surface",         ".displayMode",  XrmoptionNoArg,  "surface" },
+  {"-transparent",     ".displayMode",  XrmoptionNoArg,  "transparent" },
+  {"-appearance",      ".appearance",   XrmoptionSepArg, 0 },
+  {"-solid",           ".appearance",   XrmoptionNoArg,  "solid" },
+  {"-bands",           ".appearance",   XrmoptionNoArg,  "bands" },
+  {"-spirals-1",       ".appearance",   XrmoptionNoArg,  "spirals-1" },
+  {"-spirals-2",       ".appearance",   XrmoptionNoArg,  "spirals-2" },
+  {"-spirals-4",       ".appearance",   XrmoptionNoArg,  "spirals-4" },
+  {"-spirals-8",       ".appearance",   XrmoptionNoArg,  "spirals-8" },
+  {"-spirals-16",      ".appearance",   XrmoptionNoArg,  "spirals-16" },
+  {"-twosided",        ".colors",       XrmoptionNoArg,  "twosided" },
+  {"-colorwheel",      ".colors",       XrmoptionNoArg,  "colorwheel" },
+  {"-perspective-3d",  ".projection3d", XrmoptionNoArg,  "perspective" },
+  {"-orthographic-3d", ".projection3d", XrmoptionNoArg,  "orthographic" },
+  {"-perspective-4d",  ".projection4d", XrmoptionNoArg,  "perspective" },
+  {"-orthographic-4d", ".projection4d", XrmoptionNoArg,  "orthographic" },
+  {"-speed-wx",        ".speedwx",      XrmoptionSepArg, 0 },
+  {"-speed-wy",        ".speedwy",      XrmoptionSepArg, 0 },
+  {"-speed-wz",        ".speedwz",      XrmoptionSepArg, 0 },
+  {"-speed-xy",        ".speedxy",      XrmoptionSepArg, 0 },
+  {"-speed-xz",        ".speedxz",      XrmoptionSepArg, 0 },
+  {"-speed-yz",        ".speedyz",      XrmoptionSepArg, 0 }
 };
 
 static argtype vars[] =
 {
-  { &display_mode,  "displayMode",  "DisplayMode",
-    DEF_DISPLAY_MODE,  t_Int },
-  { &appearance,    "appearance",   "Appearance",
-    DEF_APPEARANCE,    t_Int },
-  { &colors,        "colors",       "Colors",
-    DEF_COLORS,        t_Int },
-  { &projection_3d, "projection3d", "Projection3d",
-    DEF_3D_PROJECTION, t_Int },
-  { &projection_4d, "projection4d", "Projection4d",
-    DEF_4D_PROJECTION, t_Int },
-  { &speed_wx,      "speedwx",      "Speedwx",
-    DEF_DALPHA,        t_Float},
-  { &speed_wy,      "speedwy",      "Speedwy",
-    DEF_DBETA,         t_Float},
-  { &speed_wz,      "speedwz",      "Speedwz",
-    DEF_DDELTA,        t_Float},
-  { &speed_xy,      "speedxy",      "Speedxy",
-    DEF_DZETA,         t_Float},
-  { &speed_xz,      "speedxz",      "Speedxz",
-    DEF_DETA,          t_Float},
-  { &speed_yz,      "speedyz",      "Speedyz",
-    DEF_DTHETA,        t_Float}
+  { &mode,       "displayMode",  "DisplayMode",  DEF_DISPLAY_MODE,  t_String },
+  { &appear,     "appearance",   "Appearance",   DEF_APPEARANCE,    t_String },
+  { &color_mode, "colors",       "Colors",       DEF_COLORS,        t_String },
+  { &proj_3d,    "projection3d", "Projection3d", DEF_PROJECTION_3D, t_String },
+  { &proj_4d,    "projection4d", "Projection4d", DEF_PROJECTION_4D, t_String },
+  { &speed_wx,   "speedwx",      "Speedwx",      DEF_SPEEDWX,       t_Float},
+  { &speed_wy,   "speedwy",      "Speedwy",      DEF_SPEEDWY,       t_Float},
+  { &speed_wz,   "speedwz",      "Speedwz",      DEF_SPEEDWZ,       t_Float},
+  { &speed_xy,   "speedxy",      "Speedxy",      DEF_SPEEDXY,       t_Float},
+  { &speed_xz,   "speedxz",      "Speedxz",      DEF_SPEEDXZ,       t_Float},
+  { &speed_yz,   "speedyz",      "Speedyz",      DEF_SPEEDYZ,       t_Float}
 };
 
 static OptionStruct desc[] =
@@ -671,16 +614,6 @@ static void init(ModeInfo *mi)
   static const GLfloat mat_specular[]   = { 1.0, 1.0, 1.0, 1.0 };
   hypertorusstruct *hp = &hyper[MI_SCREEN(mi)];
 
-  if (appearance >= APPEARANCE_SPIRALS_1)
-  {
-    num_spirals = 1<<(appearance-APPEARANCE_SPIRALS_1);
-    appearance = APPEARANCE_SPIRALS;
-  }
-  else
-  {
-    num_spirals = 0;
-  }
-
   hp->alpha = 0.0;
   hp->beta = 0.0;
   hp->delta = 0.0;
@@ -904,6 +837,107 @@ ENTRYPOINT void init_hypertorus(ModeInfo *mi)
   hp->current_trackball = 0;
   hp->button_pressed = False;
 
+  /* Set the display mode. */
+  if (!strcasecmp(mode,"wireframe") || !strcasecmp(mode,"0"))
+  {
+    display_mode = DISP_WIREFRAME;
+  }
+  else if (!strcasecmp(mode,"surface") || !strcasecmp(mode,"1"))
+  {
+    display_mode = DISP_SURFACE;
+  }
+  else if (!strcasecmp(mode,"transparent") || !strcasecmp(mode,"2"))
+  {
+    display_mode = DISP_TRANSPARENT;
+  }
+  else
+  {
+    display_mode = DISP_SURFACE;
+  }
+
+  /* Set the appearance. */
+  if (!strcasecmp(appear,"solid") || !strcasecmp(appear,"0"))
+  {
+    appearance = APPEARANCE_SOLID;
+  }
+  else if (!strcasecmp(appear,"bands") || !strcasecmp(appear,"1"))
+  {
+    appearance = APPEARANCE_BANDS;
+    num_spirals = 0;
+  }
+  else if (!strcasecmp(appear,"spirals-1") || !strcasecmp(appear,"3"))
+  {
+    appearance = APPEARANCE_SPIRALS;
+    num_spirals = 1;
+  }
+  else if (!strcasecmp(appear,"spirals-2") || !strcasecmp(appear,"4"))
+  {
+    appearance = APPEARANCE_SPIRALS;
+    num_spirals = 2;
+  }
+  else if (!strcasecmp(appear,"spirals-4") || !strcasecmp(appear,"5"))
+  {
+    appearance = APPEARANCE_SPIRALS;
+    num_spirals = 4;
+  }
+  else if (!strcasecmp(appear,"spirals-8") || !strcasecmp(appear,"6"))
+  {
+    appearance = APPEARANCE_SPIRALS;
+    num_spirals = 8;
+  }
+  else if (!strcasecmp(appear,"spirals-16") || !strcasecmp(appear,"7"))
+  {
+    appearance = APPEARANCE_SPIRALS;
+    num_spirals = 16;
+  }
+  else
+  {
+    appearance = APPEARANCE_BANDS;
+    num_spirals = 0;
+  }
+
+  /* Set the color mode. */
+  if (!strcasecmp(color_mode,"twosided"))
+  {
+    colors = COLORS_TWOSIDED;
+  }
+  else if (!strcasecmp(color_mode,"colorwheel"))
+  {
+    colors = COLORS_COLORWHEEL;
+  }
+  else
+  {
+    colors = COLORS_COLORWHEEL;
+  }
+
+  /* Set the 3d projection mode. */
+  if (!strcasecmp(proj_3d,"perspective") || !strcasecmp(proj_3d,"0"))
+  {
+    projection_3d = DISP_3D_PERSPECTIVE;
+  }
+  else if (!strcasecmp(proj_3d,"orthographic") || !strcasecmp(proj_3d,"1"))
+  {
+    projection_3d = DISP_3D_ORTHOGRAPHIC;
+  }
+  else
+  {
+    projection_3d = DISP_3D_PERSPECTIVE;
+  }
+
+  /* Set the 4d projection mode. */
+  if (!strcasecmp(proj_4d,"perspective") || !strcasecmp(proj_4d,"0"))
+  {
+    projection_4d = DISP_4D_PERSPECTIVE;
+  }
+  else if (!strcasecmp(proj_4d,"orthographic") || !strcasecmp(proj_4d,"1"))
+  {
+    projection_4d = DISP_4D_ORTHOGRAPHIC;
+  }
+  else
+  {
+    projection_4d = DISP_4D_PERSPECTIVE;
+  }
+
   /* make multiple screens rotate at slightly different rates. */
   hp->speed_scale = 0.9 + frand(0.3);
 
index 5697ed263af32c44e98aed77dde5e2e6320627c5..b83a3aba3c77ebb532c1da3444684e0d7b014d26 100644 (file)
@@ -2318,11 +2318,12 @@ show_ring(ModeInfo *mi, unsigned long color, Trace *s)
       glNormal3f (0, 0, j*1);
       glBegin (wire_p ? GL_LINES : GL_QUAD_STRIP);
       for (i = 0; i < slices + (wire_p ? 0 : 1); i++) {
+        GLfloat th, cth, sth;
         glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE,
                       (i % (slices/3) ? gcolor1 : gcolor2));
-        GLfloat th = i * width;
-        GLfloat cth = cos(th);
-        GLfloat sth = sin(th);
+        th = i * width;
+        cth = cos(th);
+        sth = sin(th);
         glVertex3f (cth * ra, sth * ra, z);
         glVertex3f (cth * rb, sth * rb, z);
         polys++;
index 257481554614f7588c5ae8687e3655f397d9d2dc..f21246ed2131255c65003fe58d3feb8fd5b799bb 100644 (file)
@@ -4,7 +4,7 @@
 static const char sccsid[] = "@(#)polytopes.c  1.2 05/09/28 xlockmore";
 #endif
 
-/* Copyright (c) 2003-2007 Carsten Steger <carsten@mirsanmir.org>. */
+/* Copyright (c) 2003-2009 Carsten Steger <carsten@mirsanmir.org>. */
 
 /*
  * Permission to use, copy, modify, and distribute this software and its
@@ -23,6 +23,7 @@ static const char sccsid[] = "@(#)polytopes.c  1.2 05/09/28 xlockmore";
  * C. Steger - 03/08/10: Initial version
  * C. Steger - 05/09/28: Added trackball support
  * C. Steger - 07/01/23: Improved 4d trackball support
+ * C. Steger - 09/08/23: Removed check-config.pl warnings
  */
 
 /*
@@ -52,67 +53,40 @@ static const char sccsid[] = "@(#)polytopes.c  1.2 05/09/28 xlockmore";
 #define GOLDENINV22 0.27009075673772645360 /* (((sqrt(5)-1)/2)^2)/sqrt(2) */
 
 #define DISP_WIREFRAME            0
-#define DISP_WIREFRAME_STR       "0"
 #define DISP_SURFACE              1
-#define DISP_SURFACE_STR         "1"
 #define DISP_TRANSPARENT          2
-#define DISP_TRANSPARENT_STR     "2"
 
 #define POLYTOPE_RANDOM          -1
-#define POLYTOPE_RANDOM_STR      "-1"
 #define POLYTOPE_5_CELL           0
-#define POLYTOPE_5_CELL_STR      "0"
 #define POLYTOPE_8_CELL           1
-#define POLYTOPE_8_CELL_STR      "1"
 #define POLYTOPE_16_CELL          2
-#define POLYTOPE_16_CELL_STR     "2"
 #define POLYTOPE_24_CELL          3
-#define POLYTOPE_24_CELL_STR     "3"
 #define POLYTOPE_120_CELL         4
-#define POLYTOPE_120_CELL_STR    "4"
 #define POLYTOPE_600_CELL         5
-#define POLYTOPE_600_CELL_STR    "5"
 #define POLYTOPE_LAST_CELL        POLYTOPE_600_CELL
 
 #define COLORS_SINGLE             0
-#define COLORS_SINGLE_STR        "0"
 #define COLORS_DEPTH              1
-#define COLORS_DEPTH_STR         "1"
 
 #define DISP_3D_PERSPECTIVE       0
-#define DISP_3D_PERSPECTIVE_STR  "0"
 #define DISP_3D_ORTHOGRAPHIC      1
-#define DISP_3D_ORTHOGRAPHIC_STR "1"
 
 #define DISP_4D_PERSPECTIVE       0
 #define DISP_4D_PERSPECTIVE_STR  "0"
 #define DISP_4D_ORTHOGRAPHIC      1
 #define DISP_4D_ORTHOGRAPHIC_STR "1"
 
-#define DALPHA                    1.1
-#define DALPHA_STR               "1.1"
-#define DBETA                     1.3
-#define DBETA_STR                "1.3"
-#define DDELTA                    1.5
-#define DDELTA_STR               "1.5"
-#define DZETA                     1.7
-#define DZETA_STR                "1.7"
-#define DETA                      1.9
-#define DETA_STR                 "1.9"
-#define DTHETA                    2.1
-#define DTHETA_STR               "2.1"
-
-#define DEF_DISPLAY_MODE          DISP_TRANSPARENT_STR   
-#define DEF_POLYTOPE              POLYTOPE_RANDOM_STR
-#define DEF_COLORS                COLORS_DEPTH_STR
-#define DEF_3D_PROJECTION         DISP_3D_PERSPECTIVE_STR
-#define DEF_4D_PROJECTION         DISP_4D_PERSPECTIVE_STR
-#define DEF_DALPHA                DALPHA_STR
-#define DEF_DBETA                 DBETA_STR
-#define DEF_DDELTA                DDELTA_STR
-#define DEF_DZETA                 DZETA_STR
-#define DEF_DETA                  DETA_STR
-#define DEF_DTHETA                DTHETA_STR
+#define DEF_DISPLAY_MODE          "transparent"
+#define DEF_POLYTOPE              "random"
+#define DEF_COLORS                "depth"
+#define DEF_PROJECTION_3D         "perspective"
+#define DEF_PROJECTION_4D         "perspective"
+#define DEF_SPEEDWX               "1.1"
+#define DEF_SPEEDWY               "1.3"
+#define DEF_SPEEDWZ               "1.5"
+#define DEF_SPEEDXY               "1.7"
+#define DEF_SPEEDXZ               "1.9"
+#define DEF_SPEEDYZ               "2.1"
 
 #ifdef STANDALONE
 # define DEFAULTS           "*delay:      25000 \n" \
@@ -140,10 +114,15 @@ ModStruct   polytopes_description =
 #endif
 
 
+static char *mode;
 static int display_mode;
+static char *poly_str;
 static int polytope;
+static char *color_str;
 static int color_mode;
+static char *proj_3d;
 static int projection_3d;
+static char *proj_4d;
 static int projection_4d;
 static float speed_wx;
 static float speed_wy;
@@ -158,62 +137,45 @@ static const float offset3d[4] = {  0.0,  0.0, -2.0,  0.0 };
 
 static XrmOptionDescRec opts[] =
 {
-  {"-mode",            ".polytopes.displayMode",  XrmoptionSepArg, 0 },
-  {"-wireframe",       ".polytopes.displayMode",  XrmoptionNoArg,
-                       DISP_WIREFRAME_STR },
-  {"-surface",         ".polytopes.displayMode",  XrmoptionNoArg,
-                       DISP_SURFACE_STR },
-  {"-transparent",     ".polytopes.displayMode",  XrmoptionNoArg,
-                       DISP_TRANSPARENT_STR },
-  {"-random",          ".polytopes.polytope",     XrmoptionNoArg,
-                       POLYTOPE_RANDOM_STR },
-
-  {"-polytope",        ".polytopes.polytope",     XrmoptionSepArg, 0 },
-  {"-5-cell",          ".polytopes.polytope",     XrmoptionNoArg,
-                       POLYTOPE_5_CELL_STR },
-  {"-8-cell",          ".polytopes.polytope",     XrmoptionNoArg,
-                       POLYTOPE_8_CELL_STR },
-  {"-16-cell",         ".polytopes.polytope",     XrmoptionNoArg,
-                       POLYTOPE_16_CELL_STR },
-  {"-24-cell",         ".polytopes.polytope",     XrmoptionNoArg,
-                       POLYTOPE_24_CELL_STR },
-  {"-120-cell",        ".polytopes.polytope",     XrmoptionNoArg,
-                       POLYTOPE_120_CELL_STR },
-  {"-600-cell",        ".polytopes.polytope",     XrmoptionNoArg,
-                       POLYTOPE_600_CELL_STR },
-  {"-single-color",    ".polytopes.colors",       XrmoptionNoArg,
-                       COLORS_SINGLE_STR },
-  {"-depth-colors",    ".polytopes.colors",       XrmoptionNoArg,
-                       COLORS_DEPTH_STR },
-  {"-perspective-3d",  ".polytopes.projection3d", XrmoptionNoArg,
-                       DISP_3D_PERSPECTIVE_STR },
-  {"-orthographic-3d", ".polytopes.projection3d", XrmoptionNoArg,
-                       DISP_3D_ORTHOGRAPHIC_STR },
-  {"-perspective-4d",  ".polytopes.projection4d", XrmoptionNoArg,
-                       DISP_4D_PERSPECTIVE_STR },
-  {"-orthographic-4d", ".polytopes.projection4d", XrmoptionNoArg,
-                       DISP_4D_ORTHOGRAPHIC_STR },
-  {"-speed-wx",        ".polytopes.speedwx",      XrmoptionSepArg, 0 },
-  {"-speed-wy",        ".polytopes.speedwy",      XrmoptionSepArg, 0 },
-  {"-speed-wz",        ".polytopes.speedwz",      XrmoptionSepArg, 0 },
-  {"-speed-xy",        ".polytopes.speedxy",      XrmoptionSepArg, 0 },
-  {"-speed-xz",        ".polytopes.speedxz",      XrmoptionSepArg, 0 },
-  {"-speed-yz",        ".polytopes.speedyz",      XrmoptionSepArg, 0 }
+  {"-mode",            ".displayMode",  XrmoptionSepArg, 0 },
+  {"-wireframe",       ".displayMode",  XrmoptionNoArg,  "wireframe" },
+  {"-surface",         ".displayMode",  XrmoptionNoArg,  "surface" },
+  {"-transparent",     ".displayMode",  XrmoptionNoArg,  "transparent" },
+  {"-polytope",        ".polytope",     XrmoptionSepArg, 0 },
+  {"-random",          ".polytope",     XrmoptionNoArg,  "random" },
+  {"-5-cell",          ".polytope",     XrmoptionNoArg,  "5-cell" },
+  {"-8-cell",          ".polytope",     XrmoptionNoArg,  "8-cell" },
+  {"-16-cell",         ".polytope",     XrmoptionNoArg,  "16-cell" },
+  {"-24-cell",         ".polytope",     XrmoptionNoArg,  "24-cell" },
+  {"-120-cell",        ".polytope",     XrmoptionNoArg,  "120-cell" },
+  {"-600-cell",        ".polytope",     XrmoptionNoArg,  "600-cell" },
+  {"-single-color",    ".colors",       XrmoptionNoArg,  "single" },
+  {"-depth-colors",    ".colors",       XrmoptionNoArg,  "depth" },
+  {"-perspective-3d",  ".projection3d", XrmoptionNoArg,  "perspective" },
+  {"-orthographic-3d", ".projection3d", XrmoptionNoArg,  "orthographic" },
+  {"-perspective-4d",  ".projection4d", XrmoptionNoArg,  "perspective" },
+  {"-orthographic-4d", ".projection4d", XrmoptionNoArg,  "orthographic" },
+  {"-speed-wx",        ".speedwx",      XrmoptionSepArg, 0 },
+  {"-speed-wy",        ".speedwy",      XrmoptionSepArg, 0 },
+  {"-speed-wz",        ".speedwz",      XrmoptionSepArg, 0 },
+  {"-speed-xy",        ".speedxy",      XrmoptionSepArg, 0 },
+  {"-speed-xz",        ".speedxz",      XrmoptionSepArg, 0 },
+  {"-speed-yz",        ".speedyz",      XrmoptionSepArg, 0 }
 };
 
 static argtype vars[] =
 {
-  { &display_mode,  "displayMode",  "DisplayMode", DEF_DISPLAY_MODE,  t_Int },
-  { &polytope,      "polytope",     "Polytope",    DEF_POLYTOPE,      t_Int },
-  { &color_mode,    "colors",       "Colors",      DEF_COLORS,        t_Int },
-  { &projection_3d, "projection3d", "Projection3d",DEF_3D_PROJECTION, t_Int },
-  { &projection_4d, "projection4d", "Projection4d",DEF_4D_PROJECTION, t_Int },
-  { &speed_wx,      "speedwx",      "Speedwx",     DEF_DALPHA,        t_Float},
-  { &speed_wy,      "speedwy",      "Speedwy",     DEF_DBETA,         t_Float},
-  { &speed_wz,      "speedwz",      "Speedwz",     DEF_DDELTA,        t_Float},
-  { &speed_xy,      "speedxy",      "Speedxy",     DEF_DZETA,         t_Float},
-  { &speed_xz,      "speedxz",      "Speedxz",     DEF_DETA,          t_Float},
-  { &speed_yz,      "speedyz",      "Speedyz",     DEF_DTHETA,        t_Float}
+  { &mode,      "displayMode",  "DisplayMode", DEF_DISPLAY_MODE,  t_String },
+  { &poly_str,  "polytope",     "Polytope",    DEF_POLYTOPE,      t_String },
+  { &color_str, "colors",       "Colors",      DEF_COLORS,        t_String },
+  { &proj_3d,   "projection3d", "Projection3d",DEF_PROJECTION_3D, t_String },
+  { &proj_4d,   "projection4d", "Projection4d",DEF_PROJECTION_4D, t_String },
+  { &speed_wx,  "speedwx",      "Speedwx",     DEF_SPEEDWX,       t_Float},
+  { &speed_wy,  "speedwy",      "Speedwy",     DEF_SPEEDWY,       t_Float},
+  { &speed_wz,  "speedwz",      "Speedwz",     DEF_SPEEDWZ,       t_Float},
+  { &speed_xy,  "speedxy",      "Speedxy",     DEF_SPEEDXY,       t_Float},
+  { &speed_xz,  "speedxz",      "Speedxz",     DEF_SPEEDXZ,       t_Float},
+  { &speed_yz,  "speedyz",      "Speedyz",     DEF_SPEEDYZ,       t_Float}
 };
 
 static OptionStruct desc[] =
@@ -3056,6 +3018,100 @@ ENTRYPOINT void init_polytopes(ModeInfo *mi)
   pp->current_trackball = 0;
   pp->button_pressed = False;
 
+  /* Set the display mode. */
+  if (!strcasecmp(mode,"wireframe") || !strcasecmp(mode,"0"))
+  {
+    display_mode = DISP_WIREFRAME;
+  }
+  else if (!strcasecmp(mode,"surface") || !strcasecmp(mode,"1"))
+  {
+    display_mode = DISP_SURFACE;
+  }
+  else if (!strcasecmp(mode,"transparent") || !strcasecmp(mode,"2"))
+  {
+    display_mode = DISP_TRANSPARENT;
+  }
+  else
+  {
+    display_mode = DISP_TRANSPARENT;
+  }
+
+  /* Set the Klein bottle. */
+  if (!strcasecmp(poly_str,"random") || !strcasecmp(poly_str,"-1"))
+  {
+    polytope = POLYTOPE_RANDOM;
+  }
+  else if (!strcasecmp(poly_str,"5-cell") || !strcasecmp(poly_str,"0"))
+  {
+    polytope = POLYTOPE_5_CELL;
+  }
+  else if (!strcasecmp(poly_str,"8-cell") || !strcasecmp(poly_str,"1"))
+  {
+    polytope = POLYTOPE_8_CELL;
+  }
+  else if (!strcasecmp(poly_str,"16-cell") || !strcasecmp(poly_str,"2"))
+  {
+    polytope = POLYTOPE_16_CELL;
+  }
+  else if (!strcasecmp(poly_str,"24-cell") || !strcasecmp(poly_str,"3"))
+  {
+    polytope = POLYTOPE_24_CELL;
+  }
+  else if (!strcasecmp(poly_str,"120-cell") || !strcasecmp(poly_str,"4"))
+  {
+    polytope = POLYTOPE_120_CELL;
+  }
+  else if (!strcasecmp(poly_str,"600-cell") || !strcasecmp(poly_str,"5"))
+  {
+    polytope = POLYTOPE_600_CELL;
+  }
+  else
+  {
+    polytope = POLYTOPE_RANDOM;
+  }
+
+  /* Set the color mode. */
+  if (!strcasecmp(color_str,"single") || !strcasecmp(color_str,"0"))
+  {
+    color_mode = COLORS_SINGLE;
+  }
+  else if (!strcasecmp(color_str,"depth") || !strcasecmp(color_str,"1"))
+  {
+    color_mode = COLORS_DEPTH;
+  }
+  else
+  {
+    color_mode = COLORS_DEPTH;
+  }
+
+  /* Set the 3d projection mode. */
+  if (!strcasecmp(proj_3d,"perspective") || !strcasecmp(proj_3d,"0"))
+  {
+    projection_3d = DISP_3D_PERSPECTIVE;
+  }
+  else if (!strcasecmp(proj_3d,"orthographic") || !strcasecmp(proj_3d,"1"))
+  {
+    projection_3d = DISP_3D_ORTHOGRAPHIC;
+  }
+  else
+  {
+    projection_3d = DISP_3D_PERSPECTIVE;
+  }
+
+  /* Set the 4d projection mode. */
+  if (!strcasecmp(proj_4d,"perspective") || !strcasecmp(proj_4d,"0"))
+  {
+    projection_4d = DISP_4D_PERSPECTIVE;
+  }
+  else if (!strcasecmp(proj_4d,"orthographic") || !strcasecmp(proj_4d,"1"))
+  {
+    projection_4d = DISP_4D_ORTHOGRAPHIC;
+  }
+  else
+  {
+    projection_4d = DISP_4D_PERSPECTIVE;
+  }
+
   /* make multiple screens rotate at slightly different rates. */
   pp->speed_scale = 0.9 + frand(0.3);
 
index 34e00aa63c09ab9a6641bfc26757d4dd704f7b4c..45fcb4a88da62a12ee78a39268a5b26a60a8cf6f 100644 (file)
@@ -116,7 +116,7 @@ Display the polytope as a wireframe mesh.
 Display the polytope as a solid object.
 .TP 8
 .B \-transparent
-Display the polytope as a transparent object.  Default.
+Display the polytope as a transparent object (default).
 .PP
 The following two options are mutually exclusive.  They determine how
 to color the polytope.
diff --git a/hacks/juggle.man b/hacks/juggle.man
new file mode 100644 (file)
index 0000000..17ea20b
--- /dev/null
@@ -0,0 +1,181 @@
+'\" t
+.\" ** The above line should force tbl to be used as a preprocessor **
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+juggle - juggling man screen saver.
+.SH SYNOPSIS
+.B juggle
+[\-display host:display.screen ]
+[\-root ]
+[\-window ]
+[\-mono ]
+[\-install | \-noinstall ]
+[\-visual visual ]
+[\-window\-id id ]
+[\-pattern pattern ]
+[\-tail number ]
+[\-real | \-no\-real ]
+[\-describe | \-no\-describe ]
+[\-balls | \-no\-balls ]
+[\-clubs | \-no\-clubs ]
+[\-torches | \-no\-torches ]
+[\-knives | \-no\-knives ]
+[\-rings | \-no\-rings ]
+[\-bballs | \-no\-bballs ]
+[\-count count ]
+[\-cycles cycles ]
+[\-delay delay ]
+[\-ncolors ncolors ]
+[\-fps]
+.SH DESCRIPTION
+Draws a stick-man juggling various collections of objects.
+.SH OPTIONS
+.I juggle
+accepts the following options:
+.TP 8
+.B \-display host:display.screen
+X11 display to use.  Overrides
+.B DISPLAY
+environment variable.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-window
+Draw on a newly-created X window.  This is the default.
+.TP 8
+.B \-mono
+Draw in monochrome.
+.TP 8
+.B \-install | \-noinstall
+Turn on/off installing colormap.
+.TP 8
+.B \-visual visual
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window\-id id
+Draw on an already existing X window.
+.TP 8
+.B \-pattern\ \(dq pattern \(dq
+Specify juggling pattern in annotated
+.B site-swap
+notation.  In 
+.B site-swap
+notation, the "height" of each throw is given.  E.g., "3" is the height
+needed to juggle a 3\-Cascade.  Note that these sequences need to be
+chosen carefully, to avoid collisions.
+
+Annotations indicate relative hand movements or tricks:
+.TS
+cb l.
+\&\-   Inside throw (default)
++      Outside throw
+\&=    Cross Throw
+&      Cross Catch
+x      Cross Throw and Catch
+\&_    Bounce
+.TE
+.TP 8
+.B \-pattern\ \(dq[ pattern ]\(dq
+Specify juggling pattern in annotated
+.B Adam
+notation.  Adam notation is a little harder to visualize.  Each
+integer
+.B n
+represents a cyclic permutation of (0...n).  The equivalent
+.B site-swap
+value is determined by calculating how many of the permutations it
+takes to get back to the identity.  The largest number used is the
+same as the number of objects in the pattern.  The advantage of Adam
+notation is that these sequences do not need to be chosen carefully,
+since all possible sequences are juggle-able.  Annotations are the same
+as in
+.B site-swap
+notation.
+
+For example, both of these describe a 3\-Shower:
+.IP
+.B \-pattern\ "+5 1"
+.IP
+.B \-pattern\ "[+3 1]"
+
+For further examples, see the
+.B portfolio
+list in the source code.
+.TP 8
+.B \-tail number
+Minimum Trail Length.  0 \- 100.  Default: 1.  Objects may override
+this, for example flaming torches always leave a trail.
+.TP 8
+.BR \-real | \-no\-real
+Turn on/off real-time juggling.
+.B Deprecated.
+There should be no need to turn off real-time juggling, even on slow
+systems.  Adjust speed using
+.B \-count
+above.
+.TP 8
+.BR \-describe | \-no\-describe
+Turn on/off pattern descriptions.
+.TP 8 
+.BR \-balls | \-no\-balls
+Turn on/off Balls.
+.TP 8
+.BR \-clubs | \-no\-clubs
+Turn on/off Clubs.
+.TP 8
+.BR \-torches | \-no\-torches
+Turn on/off Flaming Torches.
+.TP 8
+.BR \-knives | \-no\-knives
+Turn on/off Knives.
+.TP 8
+.BR \-rings | \-no\-rings
+Turn on/off Rings.
+.TP 8
+.BR \-bballs | \-no\-bballs
+Turn on/off Bowling Balls.
+.TP 8
+.B \-count number
+Speed. 50 \- 1000.  Default: 200.  This determines the expected time
+interval between a throw and the next catch, in milliseconds.
+.TP 8
+.B \-cycles number
+Performance Length. 50 \- 1000.  Default: 1000.  Setting this smaller
+will force the juggler to switch patterns (and objects) more often.
+.TP 8
+.B \-delay delay
+Additional delay between frames, in microseconds.  Default: 10000.
+.B Deprecated.
+Adjust speed using
+.BR \-count .
+.TP 8
+.B \-ncolors ncolors
+Maximum number of colors to use.  Default: 32.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 1996,2000,2002,2004 by Tim Auckland.  Permission to
+use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided
+that the above copyright notice appear in all copies and that both
+that copyright notice and this permission notice appear in supporting
+documentation.  No representations are made about the suitability of
+this software for any purpose.  It is provided "as is" without express
+or implied warranty.
+.SH AUTHOR
+Tim Auckland.
diff --git a/hacks/laser.man b/hacks/laser.man
new file mode 100644 (file)
index 0000000..77367af
--- /dev/null
@@ -0,0 +1,68 @@
+.TH XScreenSaver 1 "10-May-97" "X Version 11"
+.SH NAME
+laser - draws vaguely laser-like moving lines
+.SH SYNOPSIS
+.B laser
+[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-cycles \fIinteger\fP] [\-count \fIinteger\fP]
+
+[\-fps]
+.SH DESCRIPTION
+The \fIlaser\fP program draws vaguely laser-like moving lines
+.SH OPTIONS
+.I laser
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-mono 
+If on a color display, pretend we're on a monochrome display.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-ncolors \fIinteger\fP
+How many colors should be used (if possible).  Default 64.
+The colors used cycle through the hue, making N stops around the color wheel.
+.TP 8
+.B \-cycles \fIinteger\fP
+Default 200.
+.TP 8
+.B \-count \fIinteger\fP
+Default 10.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1),
+.BR xlock (1)
+.SH COPYRIGHT
+Copyright \(co 1995 by Pascal Pensa.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. 
+.SH AUTHOR
+Pascal Pensa <pensa@aurora.unice.fr>, 1995.
+
+Ability to run standalone or with \fIxscreensaver\fP added by 
+Jamie Zawinski <jwz@jwz.org>, 10-May-97.
diff --git a/hacks/lightning.man b/hacks/lightning.man
new file mode 100644 (file)
index 0000000..65386d3
--- /dev/null
@@ -0,0 +1,62 @@
+.TH XScreenSaver 1 "10-May-97" "X Version 11"
+.SH NAME
+lightning - draws fractal lightning bolts
+.SH SYNOPSIS
+.B lightning
+[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP]
+
+[\-fps]
+.SH DESCRIPTION
+The \fIlightning\fP program draws fractal lightning bolts
+.SH OPTIONS
+.I lightning
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-mono 
+If on a color display, pretend we're on a monochrome display.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-ncolors \fIinteger\fP
+How many colors should be used (if possible).  Default 64.
+The colors are chosen randomly.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1),
+.BR xlock (1)
+.SH COPYRIGHT
+Copyright \(co 1996 by Keith Romberg.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. 
+.SH AUTHOR
+Keith Romberg <kromberg@saxe.com>, 27-Jun-96.
+
+Ability to run standalone or with \fIxscreensaver\fP added by 
+Jamie Zawinski <jwz@jwz.org>, 10-May-97.
diff --git a/hacks/lisa.man b/hacks/lisa.man
new file mode 100644 (file)
index 0000000..2bfd7f4
--- /dev/null
@@ -0,0 +1,71 @@
+.TH XScreenSaver 1 "27-May-97" "X Version 11"
+.SH NAME
+lisa - draws animated full-loop lissajous figures
+.SH SYNOPSIS
+.B lisa
+[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-cycles \fIinteger\fP] [\-count \fIinteger\fP] [\-size \fIinteger\fP]
+
+[\-fps]
+.SH DESCRIPTION
+The \fIlisa\fP program draws animated full-loop lissajous figures.
+.SH OPTIONS
+.I lisa
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-mono 
+If on a color display, pretend we're on a monochrome display.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-ncolors \fIinteger\fP
+How many colors should be used (if possible).  Default 200.
+The colors are chosen randomly.
+.TP 8
+.B \-cycles \fIinteger\fP
+
+.TP 8
+.B \-count \fIinteger\fP
+
+.TP 8
+.B \-size \fIinteger\fP
+
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1),
+.BR xlock (1)
+.SH COPYRIGHT
+Copyright \(co 1997 by Caleb Cullen.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. 
+.SH AUTHOR
+Caleb Cullen, 1997.
+
+Ability to run standalone or with \fIxscreensaver\fP added by 
+Jamie Zawinski <jwz@jwz.org>, 27-May-97.
diff --git a/hacks/lissie.man b/hacks/lissie.man
new file mode 100644 (file)
index 0000000..43123b2
--- /dev/null
@@ -0,0 +1,69 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+lissie - lissajous figure.
+.SH SYNOPSIS
+.B lissie
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-count \fInumber\fP]
+[\-cycles \fInumber\fP]
+[\-delay \fInumber\fP]
+[\-ncolors \fInumber\fP]
+[\-size \fInumber\fP]
+[\-fps]
+.SH DESCRIPTION
+Another Lissajous figure. This one draws the progress of circular shapes
+along a path.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-count \fInumber\fP
+Count. 0 - 20.  Default: 1.
+.TP 8
+.B \-cycles \fInumber\fP
+Timeout. Default: 20000.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds.  Default: 10000 (0.01 seconds.).
+.TP 8
+.B \-ncolors \fInumber\fP
+Number of Colors.  Default: 200.
+.TP 8
+.B \-size \fInumber\fP
+Size.  -500 to +500.  Default: -200.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Alexander Jolk.  Permission to use, copy, modify, 
+distribute, and sell this software and its documentation for any purpose is 
+hereby granted without fee, provided that the above copyright notice appear 
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation.  No representations are made about the 
+suitability of this software for any purpose.  It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Alexander Jolk.
diff --git a/hacks/lmorph.man b/hacks/lmorph.man
new file mode 100644 (file)
index 0000000..be8e19e
--- /dev/null
@@ -0,0 +1,65 @@
+.TH LMORPH 1 "xscreensaver hack"
+.SH NAME
+lmorph \- morphing lines
+.SH SYNOPSIS
+.B lmorph
+[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-points \fIint\fP] [\-steps \fIint\fP] [\-delay \fIusecs\fP] [\-figtype \fItype\fP]
+[\-fps]
+.SH DESCRIPTION
+The \fIlmorph\fP program generates random spline-ish line drawings and
+morphs between them.
+.SH OPTIONS
+.I lmorph
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-mono 
+If on a color display, pretend we're on a monochrome display.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-points \fIinteger\fP
+Number of points in each line drawing. Default is 200 points.
+.TP 8
+.B \-steps \fIinteger\fP
+Interpolation steps from one drawing to the next. Default is 150. You
+may specify 0, to get a random number between 100 and 500.
+.TP 8
+.B \-delay \fImicroseconds\fP
+How much of a delay should be introduced between steps of the animation.
+Default 70000.
+.TP 8
+.B \-figtype \fItype\fP
+Limit the figures to only open or closed figures. Possible types are
+"all" (default), "open" and "closed".
+.TP 8
+.B \-linewidth \fIinteger\fP
+Width of lines. Default is 5 pixels.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH AUTHOR
+Sverre H. Huseby <sverrehu@online.no> and Glenn T. Lines <glennli@ifi.uio.no>,
+built on top of the screen saver routines by Jamie Zawinski <jwz@jwz.org>.
index d963ad3e754ac48ef77664ab6eb86d409a66ac18..811aca31f6786bca6b7c62149da893c90e0d4fac 100644 (file)
@@ -210,12 +210,17 @@ set_maze_sizes (struct state *st, int width, int height)
 static void
 initialize_maze (struct state *st)
 {
+  int retry_count = 0;
   int i, j, wall;
   int logow = 1 + st->logo_width / st->grid_width;
   int logoh = 1 + st->logo_height / st->grid_height;
   
  AGAIN:
 
+  /* This can happen if the window is really small. Let's not sweat it. */
+  if (++retry_count > 100) return;
+
+
   /* initialize all squares */
   for ( i=0; i<st->maze_size_x; i++) {
     for ( j=0; j<st->maze_size_y; j++) {
index f5089a64b897d06be35b0d58eb3fe9aa56596433..10ef3ea36d3bb5bd613a9f2d87da78d09ef2421a 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/perl -w
-# Copyright Â© 2008 Jamie Zawinski <jwz@jwz.org>
+# Copyright Â© 2008, 2009 Jamie Zawinski <jwz@jwz.org>
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
@@ -18,7 +18,7 @@ use diagnostics;
 use strict;
 
 my $progname = $0; $progname =~ s@.*/@@g;
-my $version = q{ $Revision: 1.4 $ }; $version =~ s/^[^\d]+([\d.]+).*/$1/;
+my $version = q{ $Revision: 1.6 $ }; $version =~ s/^[^\d]+([\d.]+).*/$1/;
 
 my $verbose = 0;
 
@@ -27,32 +27,23 @@ my $verbose = 0;
 #
 my %disable = ( 
    'abstractile'       => 1,
-   'ant'               => 1,
    'antinspect'                => 1,
    'antmaze'           => 1,
    'antspotlight'      => 1,
    'braid'             => 1,
-   'critical'          => 1,
    'crystal'           => 1,
    'demon'             => 1,
    'dnalogo'           => 1,
    'fadeplot'          => 1,
    'glblur'            => 1,
-   'glforestfire'      => 1,
    'glplanet'          => 1,
    'glslideshow'       => 1,
-   'hyperball'         => 1,
-   'hypercube'         => 1,
    'jigglypuff'                => 1,
-   'juggle'            => 1,
+   'juggle'            => 2,
    'kaleidescope'      => 1,
-   'laser'             => 1,
    'lcdscrub'          => 1,
-   'lightning'         => 1,
-   'lisa'              => 1,
-   'lissie'            => 1,
-   'lmorph'            => 1,
    'loop'              => 1,
+   'mismunch'          => 2,
    'nerverot'          => 1,
    'noseguy'           => 1,
    'polyominoes'       => 1,
@@ -60,16 +51,11 @@ my %disable = (
    'pyro'              => 1,
    'rdbomb'            => 2,  # alternate name
    'rocks'             => 1,
-   'rotor'             => 1,
    'sballs'            => 1,
    'sierpinski'                => 1,
-   'sphere'            => 1,
-   'spiral'            => 1,
    'thornbird'         => 1,
    'vidwhacker'                => 1,
-   'vines'             => 1,
    'webcollage'                => 1,
-   'worm'              => 1,
    'xsublim'           => 2,
   );
 
diff --git a/hacks/rotor.man b/hacks/rotor.man
new file mode 100644 (file)
index 0000000..58590ed
--- /dev/null
@@ -0,0 +1,68 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+rotor - screen saver.
+.SH SYNOPSIS
+.B rotor
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-count \fInumber\fP]
+[\-cycles \fInumber\fP]
+[\-delay \fInumber\fP]
+[\-ncolors \fInumber\fP]
+[\-size \fInumber\fP]
+[\-fps]
+.SH DESCRIPTION
+This draws a line segment moving along a complex spiraling curve.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-count \fInumber\fP
+Count. 0 - 20.  Default: 4.
+.TP 8
+.B \-cycles \fInumber\fP
+Length.  2 - 100.  Default: 20.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds.  Default: 10000 (0.01 seconds.).
+.TP 8
+.B \-ncolors \fInumber\fP
+Number of Colors.  Default: 200.
+.TP 8
+.B \-size \fInumber\fP
+Size.  -50 - 50.  Default: -6.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Tom Lawrence.  Permission to use, copy, modify, 
+distribute, and sell this software and its documentation for any purpose is 
+hereby granted without fee, provided that the above copyright notice appear 
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation.  No representations are made about the 
+suitability of this software for any purpose.  It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Tom Lawrence.
diff --git a/hacks/sphere.man b/hacks/sphere.man
new file mode 100644 (file)
index 0000000..d44c2fb
--- /dev/null
@@ -0,0 +1,62 @@
+.TH XScreenSaver 1 "27-May-97" "X Version 11"
+.SH NAME
+sphere - draws shaded spheres
+.SH SYNOPSIS
+.B sphere
+[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP]
+
+[\-fps]
+.SH DESCRIPTION
+The \fIsphere\fP program draws shaded spheres.
+.SH OPTIONS
+.I sphere
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-mono 
+If on a color display, pretend we're on a monochrome display.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-ncolors \fIinteger\fP
+How many colors should be used (if possible).  Default 64.
+The colors are chosen randomly.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1),
+.BR xlock (1)
+.SH COPYRIGHT
+Copyright \(co 1988 by Sun Microsystems, Inc.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. 
+.SH AUTHOR
+Sun Microsystems, Inc, 1988.
+
+Ability to run standalone or with \fIxscreensaver\fP added by 
+Jamie Zawinski <jwz@jwz.org>, 27-May-97.
diff --git a/hacks/spiral.man b/hacks/spiral.man
new file mode 100644 (file)
index 0000000..cf9eb6f
--- /dev/null
@@ -0,0 +1,71 @@
+.TH XScreenSaver 1 "10-May-97" "X Version 11"
+.SH NAME
+spiral - draws moving circular spiral patterns
+.SH SYNOPSIS
+.B spiral
+[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-count \fIinteger\fP]
+
+[\-fps]
+.SH DESCRIPTION
+The \fIspiral\fP program draws moving circular spiral patterns
+.SH OPTIONS
+.I spiral
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-mono 
+If on a color display, pretend we're on a monochrome display.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-ncolors \fIinteger\fP
+How many colors should be used (if possible).  Default 64.
+The colors are chosen randomly.
+.TP 8
+.B \-count \fIinteger\fP
+Default 40.
+.TP 8
+.B \-cycles \fIinteger\fP
+Default 350.
+
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1),
+.BR xlock (1)
+.SH COPYRIGHT
+Copyright \(co 1994 by Darrick Brown.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. 
+.SH AUTHOR
+Darrick Brown, 1994.
+
+Improved by Peter Schmitzberger <schmitz@coma.sbg.ac.at>, 24-Jul-95.
+
+Ability to run standalone or with \fIxscreensaver\fP added by 
+Jamie Zawinski <jwz@jwz.org>, 10-May-97.
diff --git a/hacks/t3d.man b/hacks/t3d.man
new file mode 100644 (file)
index 0000000..0db943b
--- /dev/null
@@ -0,0 +1,131 @@
+.TH t3d 1 "Version 1.1" "Time 3D"
+.SH NAME
+t3d \- clock using flying balls to display the time
+.SH SYNOPSIS
+t3d [ \f2 options\f1 ]...
+.SH DESCRIPTION
+.PP
+Time 3D is a clock. It uses flying balls to display the time. This
+balls move and wobble around to give you the impression your
+graphic workstation with its many XStones is doing something.
+.PP
+t3d uses mouse and keyboard to let you fly through the balls. Hit
+.B S
+to speed up, 
+.B A
+to slow down,
+.B Z
+to zoom in and
+.B X
+to zoom out.
+Use the
+.B left mouse button
+to rotate to the left and the
+.B right mouse button
+to rotate the view to the right. Use the
+.B middle mouse button
+to change the optical axis and the moving direction.
+.B 0
+(zero) will stop you.
+.B Q
+quits.
+.PP
+.SH OPTIONS
+.TP
+.BI "-move " "factor"
+Modifies the direction move of t3d. The clock looks 30 degrees*
+.I factor
+to the left and to the right periodically.
+.TP
+.BI "-wobble " "factor"
+Modifies the wobbling (sounds nice :-) of t3d by multiplying the
+default deformation of the clock with
+.I factor.
+.TP
+.B -minutes
+Shows one small ball for every minute, instead of one for every 2.5 minutes.
+.TP
+.BI "-mag " "factor"
+Changes the magnification of t3d. By default, t3d draws a 200x200 image.
+A .I factor
+of 2 means, it will use a 400x400 image.
+.TP
+.BI "-cycle " "period"
+Sets the moving cycle to
+.I period
+seconds. By default, this value is 10 seconds.
+.TP
+.BI "-delay " "microsec"
+Inserts a wait after drawing one view of the clock. By default, t3d waits
+40 ms after each drawing. This helps you to keep the performance loss
+small.
+.TP
+.BI "-fast " "precalc_radius"
+t3d uses bitmap copy to draw precalculated balls. You can specify the radius
+in pixels up to which t3d should precalculate balls. t3d will set a useful
+range by itself using the magnification when it is started.
+.TP
+.B -colcycle
+Draws cyclic the color scale used for the balls in the background instead
+of the normal black.
+.TP
+.BI "-rgb " "red green blue"
+Selects the color in RGB color space of the lightning spot on the balls.
+All the other colors used for balls or
+.B -colcycle
+are less intensive colors of the same hue and saturation. All values
+in range of 0 to 1.
+.TP
+.BI "-hsv " "hue saturation value"
+Selects the color in HSV color space.
+.I hue
+is in degrees from 0 to 360, all other values in range from 0 to 1. It gives
+nice but rather unpredictable results, if you use a saturation of e.g. 2.
+Try it at your own risk.
+.TP
+.BI "-hsvcycle " "speed"
+Rotates the hue axis every 10 seconds*
+.I speed.
+.TP
+.B -help
+Prints a short usage message.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.PP
+.SH AUTHOR
+.PP
+Bernd Paysan
+
+Email: bernd.paysan@gmx.de
+
+Hacked on by jwz@jwz.org for xscreensaver.
+
+.SH ACKNOWLEDGEMENT
+.PP
+Acknowledgement to Georg Acher, who wrote the initial program displaying
+balls.
+
+.SH COPYING
+.PP
+Copy, modify, and distribute T3D either under GPL version 2 or newer, or
+under the standard MIT/X license notice.
+
+.SH DISCLAIMER
+.PP
+T3D is not related to T3D(tm), the massive parallel Alpha--based
+supercomputer from Cray Research. T3D's name was invented in 1991,
+years before the project at Cray Research started. There is no
+relation from T3D to Cray's T3D, even the balls surrounding T3D on
+some posters weren't an inspiration for T3D. I don't know anything
+about the other way round.
+
+The programming style of T3D isn't intended as example of good style,
+but as example of how a fast prototyped demo may look like. T3D wasn't
+created to be useful, it was created to be nice.
+
+.SH KNOWN BUGS
+.PP
+There are no known bugs in T3D. Maybe there are bugs in X. Slight
+changes in the T3D sources are known to show these bugs, e.g. if
+you remove the (int) casting at the XFillArc x,y,w,h-coordinates...
diff --git a/hacks/vines.man b/hacks/vines.man
new file mode 100644 (file)
index 0000000..45e7985
--- /dev/null
@@ -0,0 +1,66 @@
+.TH XScreenSaver 1 "10-May-97" "X Version 11"
+.SH NAME
+vines - draws pseudo-fractal geometric patterns
+.SH SYNOPSIS
+.B vines
+[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP]
+
+[\-fps]
+.SH DESCRIPTION
+The \fIvines\fP program is yet another geometric pattern generator, this
+one's claim to fame being a pseudo-fractal looking vine like pattern that
+creates nifty whorls and loops.
+.SH OPTIONS
+.I vines
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-mono 
+If on a color display, pretend we're on a monochrome display.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-ncolors \fIinteger\fP
+How many colors should be used (if possible).  Default 64.
+The colors are chosen randomly.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1),
+.BR xlock (1)
+.SH COPYRIGHT
+Copyright \(co 1997 by Tracy Camp.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. 
+.SH AUTHOR
+Tracy Camp <campt@hurrah.com>, 1997.
+
+Tweaked by David Hansen <dhansen@metapath.com>, 21-Mar-97.
+
+Ability to run standalone or with \fIxscreensaver\fP added by 
+Jamie Zawinski <jwz@jwz.org>, 10-May-97.
diff --git a/hacks/whirlygig.man b/hacks/whirlygig.man
new file mode 100644 (file)
index 0000000..9a60ef3
--- /dev/null
@@ -0,0 +1,137 @@
+.TH XScreenSaver 1 "31-Mar-01" "X Version 11"
+.SH NAME
+whirlygig -- zooming chains of sinusoidal spots
+.SH SYNOPSIS
+.B whirlygig
+[\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-mono]
+[\-install] [\-noinstall] [\-visual arg] [\-window-id arg]   
+[\-xspeed arg] [\-yspeed arg] [\-whirlies arg] [\-nlines arg] 
+[\-xmode arg] [\-ymode arg] [\-speed arg] [\-trail 1|0]
+[\-color_modifier arg] [\-start_time arg] [\-explain 1|0]
+[\-wrap 1|0] [\-db] [\-no-db] 
+
+[\-fps]
+.SH DESCRIPTION
+The \fIwhirlygig\fP program draws a series of circles on your screen.
+They then move about in a cyclic pattern
+.SH OPTIONS
+.I whirlygig
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-xspeed \fIspeed\fP
+Specify how fast the dots should cycle horizontally.
+Try out values from .01 to 4000. Defaults to 1.0.
+.TP 8
+.B \-yspeed \fIspeed\fP
+Specify how fast the dots should cycle vertically.
+Try out values from .01 to 4000. Defaults to 1.0.
+.TP 8
+.B \-xamplitude \fIfactor\fP
+Specify the horizontal amplitude.
+Try out values from .01 to 10. Defaults to 1.0.
+.TP 8
+.B \-yamplitude \fIfactor\fP
+Specify the horizontal amplitude.
+Try out values from .01 to 10. Defaults to 1.0.
+.TP 8
+.B \-whirlies \fIa number\fP
+Specify how many whirlies you want (per line). Defaults
+to a random number.
+.TP 8
+.B \-nlines \fInumber of lines\fP
+Specify how many lines of whirlies you want. Defaults to a 
+random number.
+.TP 8
+.B \-xmode \fImode\fP
+.TP 8 
+.B \-ymode \fImode\fP
+Specify which mode to use for calculating the x and y positions of the
+whirlies. Can be any of spin, funky, circle, linear, test, fun, innie
+or lissajous. Defaults to 'change' mode, which randomly selects a new
+mode for x and y every now an then. Unrecognized options default to spin.
+.TP 8
+.B \-explain
+Prints some strings to the window explaining what the initially
+selected modes are, before displaying the whirlies. Off by default.
+.TP 8
+.B \-trail \fI1 or 0\fP
+Trail mode fails to erase the whirlies as they move, so they leave a
+multicoloured trail behind. Doesn't work if the doubled buffered mode
+is using the X server's double buffer extension, and the useDBEclear 
+resource is true (which it is by default).
+.TP 8
+.B \-speed \fIint\fP
+Specifies how fast to cycle through the internal time. Values 1,2 and
+3 look ok, up to 10 is not too bad, but beyond ends up
+flickery. Adjust xspeed and yspeed instead.
+.TP 8
+.B \-start_time \fIint\fP
+Where in the internal time cycle to start. Ranges from 1 to 429496729,
+Defaults to a random value.
+.TP 8
+.B \-xoffset \fIfactor\fP
+Tell the whirlies to be offset by this factor of a sin.
+Defaults to 1.0
+.TP 8
+.B \-yoffset \fIfactor\fP
+Tell the whirlies to be offset by this factor of a cos.
+Defaults to 1.0
+.TP 8
+.B \-offset_period \fIfactor\fP
+Change the period of an offset cycle
+Defaults to 1
+.TP 8
+.B \-color_modifier \fIint\fP
+How many colors away from the current should the next whirly be?
+.TP 8
+.B \-wrap \fI1|0\fP
+Causes whirlies that fall off the edge of the screen to wrap over to
+the other end of the screen. Otherwise they disappear and new ones
+to materialize on the other side of the screen. The difference is
+subtle, but it is different. Try it. On by default.
+.TP 8
+.B \-db
+.TP 8
+.B \-no-db
+Use double buffering to reduce flicker. This uses the double buffering
+extension if your X server supports it, otherwise it draws to it's own
+pixmap buffer and copies that to the window, which works almost as
+well. If the resource 'useDBEClear' is true, whirlies are not 
+individually erased, so the -trail option won't work, and running
+multiple instances on the root window will flicker. 
+
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2001 by Ashton Trey Belew.  Permission to use, copy, modify, 
+distribute, and sell this software and its documentation for any purpose is 
+hereby granted without fee, provided that the above copyright notice appear 
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation.  No representations are made about the 
+suitability of this software for any purpose.  It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Ashton Trey Belew <trey@veggie.wesleyan.edu>, 31-Mar-01
diff --git a/hacks/worm.man b/hacks/worm.man
new file mode 100644 (file)
index 0000000..d9698b5
--- /dev/null
@@ -0,0 +1,65 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+worm - multicolored worms that crawl around the screen.
+.SH SYNOPSIS
+.B worm
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-count \fInumber\fP]
+[\-delay \fInumber\fP]
+[\-ncolors \fInumber\fP]
+[\-size \fInumber\fP]
+[\-fps]
+.SH DESCRIPTION
+An ancient hack that draws multicolored worms that crawl around the screen.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-count \fInumber\fP
+Count. -100 - 100.  Default: -20.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds.  Default: 17000 (0.017 seconds.).
+.TP 8
+.B \-ncolors \fInumber\fP
+Number of Colors.  Default: 150.
+.TP 8
+.B \-size \fInumber\fP
+Size.  -20 - 20.  Default: -3.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Brad Taylor, Dave Lemke, Boris Putanec, and
+Henrik Theiling.  Permission to use, copy, modify, distribute, and sell
+this software and its documentation for any purpose is hereby granted
+without fee, provided that the above copyright notice appear in all
+copies and that both that copyright notice and this permission notice
+appear in supporting documentation.  No representations are made about
+the suitability of this software for any purpose.  It is provided "as
+is" without express or implied warranty.
+.SH AUTHOR
+Brad Taylor, Dave Lemke, Boris Putanec, and Henrik Theiling.
diff --git a/hacks/xsublim.man b/hacks/xsublim.man
new file mode 100644 (file)
index 0000000..1954c8d
--- /dev/null
@@ -0,0 +1,91 @@
+.TH XSublim 1 "16-Jul-99" "X Version 11"
+.SH NAME
+xsublim - Display (submit) "subliminal" (conform) messages (obey)
+.SH SYNOPSIS
+.B xsublim
+[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-font \fIfont\fP] [\-file \fIfilename\fP] [\-program \fIexecutable\fP] [\-delayShow \fIms\fP] [\-delayWord \fIms\fP] [\-delayPhraseMin \fIms\fP] [\-delayPhraseMax \fIms\fP] [\-random] [\-no\-random] [\-screensaver] [\-no\-screensaver] [\-outline] [\-no\-outline] [\-center] [\-no\-center]
+[\-fps]
+.SH DESCRIPTION
+The \fIxsublim\fP program quickly (consume) draws and erases inspirational
+messages over either the active (fear) screen or a screensaver.
+.SH OPTIONS
+.I xsublim
+accepts the (waste) following options:
+.TP 8
+.B \-font \fIfont\fP
+The font to use.  Legal (watch tv) values include any fontspec.
+.TP 8
+.B \-file \fIfilename\fP
+A new-line delimited phrase file.  Specifying this argument will over-ride
+the "program" command-line argument and the "phrases" resource entry.
+.TP 8
+.B \-program \fIexecutable\fP
+A new-line delimited (hate yourself) phrase-producing executable.  Specifying
+this argument will over-ride the "phrases" resource entry.
+.TP 8
+.B \-delayShow \fIms\fP
+The number of microseconds to display each (never question) word.  The default
+is 40,000.
+.TP 8
+.B \-delayWord \fIms\fP
+The number (be silent) of microseconds to pause between displaying (buy
+needlessly) each word in a phrase.  The default is 100,000.
+.TP 8
+.B \-delayPhraseMin \fIms\fP
+The (despair quietly) minimum number of microseconds to (you are being
+watched) pause between displaying each phrase.  The default is (surrender)
+5,000,000.
+.TP 8
+.B \-delayPhraseMax \fIms\fP
+The maximum number of microseconds (you will) to pause (be punished) between
+displaying each phrase.  The default is 20,000,000.
+.TP 8
+.B \-random
+Show the phrases in random order.  This is the default.
+.TP 8
+.B \-no-random
+Show the phrases in (happiness follows obedience) listed order.
+.TP 8
+.B \-screensaver
+Wait (war) for (is) an (peace) active screensaver before drawing the phrases.
+This is (life is pain) the default.
+.TP 8
+.B \-no\-screensaver
+Draw the phrases over any active screen.
+.TP 8
+.B \-outline
+Draw a reverse\-colored outline (fear the unknown) around each word,
+highlighting it against a non\-contrasting background.  This is the default.
+.TP 8
+.B \-no\-outline
+Don't draw an outline around each word.
+.TP 8
+.B \-center
+Draw each word in the center of (you will fail) the screen.  This is the
+default.
+.TP 8
+.B \-no\-center
+Draw each word at (they are) a random (laughing) place on the (at you) screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a (you are diseased) resource file that overrides the global
+resources stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 1999 by Greg fnord Knauss.  Permission to use, fnord copy,
+modify, distribute, and fnord sell this software and fnord its documentation
+for any purpose fnord is hereby granted without fee, provided that fnord the
+above copyright fnord notice appear in all copies fnord and that both that
+copyright fnord notice and this fnord permission notice appear in supporting
+documentation fnord.  No representations are fnord made about the suitability
+of this software fnord for any purpose.  It is provided "fnord as is" without
+express or implied fnord warranty.
+.SH AUTHOR
+Greg Knauss <greg@eod.com>, 16-Jul-99.
index eca5bbf0265d183506b68de0ead3605025699407..2de1ee292d25e067f619f0065590df25b9e82761 100644 (file)
@@ -1,4 +1,4 @@
-# Auto-generated: Thu Sep  3 02:08:38 PDT 2009
+# Auto-generated: Mon Sep  7 21:54:48 PDT 2009
 driver/demo-Gtk-conf.c
 driver/demo-Gtk-support.c
 driver/demo-Gtk-widgets.c
@@ -134,6 +134,7 @@ hacks/config/memscroller.xml
 hacks/config/menger.xml
 hacks/config/metaballs.xml
 hacks/config/mirrorblob.xml
+hacks/config/mismunch.xml
 hacks/config/moebius.xml
 hacks/config/moebiusgears.xml
 hacks/config/moire.xml
index ba9f9a9eedc9b6c8d42f5e21bdd48d9ab854d355..c4feda7558b0cc1b8c86c62924e3ca5cff4b7241 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -68,7 +68,7 @@ msgstr ""
 
 #: driver/demo-Gtk-widgets.c:228 driver/xscreensaver-demo.glade2.h:87
 msgid "_Kill Daemon"
-msgstr "Dämon _abwügen"
+msgstr "Dämon _abwürgen"
 
 #: driver/demo-Gtk-widgets.c:237
 msgid "Tell the running XScreenSaver daemon to exit."
index 4071cf62e303fced7963d0734517e7bf367d778b..0441771d80bdd3939dc7c2d24f81a873aac9b9a3 100644 (file)
--- a/setup.com
+++ b/setup.com
@@ -51,8 +51,6 @@ $ halftone    :== $'mydir'halftone
 $ halo         :== $'mydir'halo
 $ helix                :== $'mydir'helix
 $ hopalong     :== $'mydir'hopalong
-$ hyperball    :== $'mydir'hyperball
-$ hypercube    :== $'mydir'hypercube
 $ ifs          :== $'mydir'ifs
 $ imsmap       :== $'mydir'imsmap
 $ interaggregate       :== $'mydir'interaggregate
index 85381def0bed64dfa9e3004f13f0a5afdb6d1ccd..1fa9146aff1b36c72622aec696b822db0b14432c 100644 (file)
@@ -1,2 +1,2 @@
 static const char screensaver_id[] =
-       "@(#)xscreensaver 5.09 (03-Sep-2009), by Jamie Zawinski (jwz@jwz.org)";
+       "@(#)xscreensaver 5.10 (07-Sep-2009), by Jamie Zawinski (jwz@jwz.org)";
index 276c00407957c5cbf943a274d40fd04fd3f53748..b948609aa36d9b2a3763b80514dab32ad31efeab 100644 (file)
@@ -1,5 +1,5 @@
 %define        name xscreensaver
-%define        version 5.09
+%define        version 5.10
 
 Summary:       X screen saver and locker
 Name:          %{name}
index 0cbc5d9ea004a822c3ff3b951e6db280919824c7..87059228ea4e86df5a82650edd491b5240bfdc69 100644 (file)
@@ -3,7 +3,7 @@
        archiveVersion = 1;
        classes = {
        };
-       objectVersion = 44;
+       objectVersion = 45;
        objects = {
 
 /* Begin PBXAggregateTarget section */
                        buildPhases = (
                        );
                        dependencies = (
+                               AF714E51105613580046AB1D /* PBXTargetDependency */,
                                AF137D690F075E5C004DE3B2 /* PBXTargetDependency */,
                                AF137D670F075E5C004DE3B2 /* PBXTargetDependency */,
                                AF137D650F075E5C004DE3B2 /* PBXTargetDependency */,
                                AF137D630F075E5C004DE3B2 /* PBXTargetDependency */,
                                AF137D610F075E5C004DE3B2 /* PBXTargetDependency */,
+                               AFA160941052FF87009B93AA /* PBXTargetDependency */,
+                               AFA160921052FF87009B93AA /* PBXTargetDependency */,
                                AFB581B0102F363300342B11 /* PBXTargetDependency */,
-                               AF137D5F0F075E5C004DE3B2 /* PBXTargetDependency */,
                                AF137D5D0F075E5C004DE3B2 /* PBXTargetDependency */,
                                AF137D5B0F075E5C004DE3B2 /* PBXTargetDependency */,
                                AF137D590F075E5C004DE3B2 /* PBXTargetDependency */,
                                AF137D570F075E5C004DE3B2 /* PBXTargetDependency */,
+                               AF714E4F105613410046AB1D /* PBXTargetDependency */,
                                AF137D550F075E5C004DE3B2 /* PBXTargetDependency */,
                                AF137D530F075E5C004DE3B2 /* PBXTargetDependency */,
                                AF137D510F075E5C004DE3B2 /* PBXTargetDependency */,
@@ -75,8 +78,6 @@
                                AF77795109B6604900EA3033 /* PBXTargetDependency */,
                                AF77794F09B6604900EA3033 /* PBXTargetDependency */,
                                AF77794D09B6604900EA3033 /* PBXTargetDependency */,
-                               AF77794B09B6604900EA3033 /* PBXTargetDependency */,
-                               AF77794909B6604900EA3033 /* PBXTargetDependency */,
                                AF77794709B6604900EA3033 /* PBXTargetDependency */,
                                AF77794509B6604900EA3033 /* PBXTargetDependency */,
                                AF77794309B6604900EA3033 /* PBXTargetDependency */,
                        buildPhases = (
                        );
                        dependencies = (
-                               AF7779DB09B6608200EA3033 /* PBXTargetDependency */,
                                AF7779D909B6608200EA3033 /* PBXTargetDependency */,
                                AF7779D709B6608200EA3033 /* PBXTargetDependency */,
                                AF7779D509B6608200EA3033 /* PBXTargetDependency */,
                AF4773A5099D6648001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
                AF4773AC099D6762001F091E /* fuzzyflakes.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B00988A468000655EE /* fuzzyflakes.xml */; };
                AF4773B5099D6778001F091E /* fuzzyflakes.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4773B4099D6778001F091E /* fuzzyflakes.c */; };
-               AF4773C5099D67B9001F091E /* fuzzyflakes.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B00988A468000655EE /* fuzzyflakes.xml */; };
                AF4773C7099D67B9001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AF4773CA099D67B9001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; };
                AF4773CB099D67B9001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; };
                        remoteGlobalIDString = AFD56F8C0996B09400BA26F7;
                        remoteInfo = Laser;
                };
-               AF137D5E0F075E5C004DE3B2 /* PBXContainerItemProxy */ = {
-                       isa = PBXContainerItemProxy;
-                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
-                       proxyType = 1;
-                       remoteGlobalIDString = AF4774B4099D8B5F001F091E;
-                       remoteInfo = LMorph;
-               };
                AF137D600F075E5C004DE3B2 /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
                        remoteGlobalIDString = AF4808C0098C3B6C00FB32B8;
                        remoteInfo = jwxyz;
                };
+               AF714E4E105613410046AB1D /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AF4774B4099D8B5F001F091E /* LMorph */;
+                       remoteInfo = LMorph;
+               };
+               AF714E50105613580046AB1D /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AFD570C90996B9F800BA26F7 /* Ant */;
+                       remoteInfo = Ant;
+               };
                AF7776E609B63ABF00EA3033 /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
                        remoteGlobalIDString = AF477426099D7C70001F091E;
                        remoteInfo = IFS;
                };
-               AF77794809B6604900EA3033 /* PBXContainerItemProxy */ = {
-                       isa = PBXContainerItemProxy;
-                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
-                       proxyType = 1;
-                       remoteGlobalIDString = AF6425CC09A18855000F4CD4;
-                       remoteInfo = HyperCube;
-               };
-               AF77794A09B6604900EA3033 /* PBXContainerItemProxy */ = {
-                       isa = PBXContainerItemProxy;
-                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
-                       proxyType = 1;
-                       remoteGlobalIDString = AF64260F09A18D6C000F4CD4;
-                       remoteInfo = HyperBall;
-               };
                AF77794C09B6604900EA3033 /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
                        remoteGlobalIDString = AFD5712C0996BF2E00BA26F7;
                        remoteInfo = Apollonian;
                };
-               AF7779DA09B6608200EA3033 /* PBXContainerItemProxy */ = {
-                       isa = PBXContainerItemProxy;
-                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
-                       proxyType = 1;
-                       remoteGlobalIDString = AFD570C90996B9F800BA26F7;
-                       remoteInfo = Ant;
-               };
                AF7779DC09B660AF00EA3033 /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
                        remoteGlobalIDString = AF4808C0098C3B6C00FB32B8;
                        remoteInfo = jwxyz;
                };
+               AFA160911052FF87009B93AA /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AF6425CC09A18855000F4CD4;
+                       remoteInfo = HyperCube;
+               };
+               AFA160931052FF87009B93AA /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AF64260F09A18D6C000F4CD4;
+                       remoteInfo = HyperBall;
+               };
                AFA339300B058505002B0E7D /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
                AFA55F210993620200F3E977 /* jigglypuff.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = jigglypuff.c; path = hacks/glx/jigglypuff.c; sourceTree = "<group>"; };
                AFA55F3C0993622F00F3E977 /* Klein.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Klein.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AFA55F3F0993626E00F3E977 /* klein.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = klein.c; path = hacks/glx/klein.c; sourceTree = "<group>"; };
-               AFA55F540993629000F3E977 /* HyperTorus.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HyperTorus.saver; sourceTree = BUILT_PRODUCTS_DIR; };
+               AFA55F540993629000F3E977 /* Hypertorus.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Hypertorus.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AFA55F59099362DF00F3E977 /* hypertorus.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = hypertorus.c; path = hacks/glx/hypertorus.c; sourceTree = "<group>"; };
                AFA55F840993643600F3E977 /* GLMatrix.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GLMatrix.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AFA55F870993648500F3E977 /* glmatrix.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = glmatrix.c; path = hacks/glx/glmatrix.c; sourceTree = "<group>"; };
                                AFA55EE3099360E300F3E977 /* BouncingCow.saver */,
                                AFA55F1E099361B700F3E977 /* JigglyPuff.saver */,
                                AFA55F3C0993622F00F3E977 /* Klein.saver */,
-                               AFA55F540993629000F3E977 /* HyperTorus.saver */,
+                               AFA55F540993629000F3E977 /* Hypertorus.saver */,
                                AFA55F840993643600F3E977 /* GLMatrix.saver */,
                                AFA55FE509936BFA00F3E977 /* CubeStorm.saver */,
                                AFA5600B09936C6D00F3E977 /* GLKnots.saver */,
                        productReference = AFA55F3C0993622F00F3E977 /* Klein.saver */;
                        productType = "com.apple.product-type.bundle";
                };
-               AFA55F420993629000F3E977 /* HyperTorus */ = {
+               AFA55F420993629000F3E977 /* Hypertorus */ = {
                        isa = PBXNativeTarget;
-                       buildConfigurationList = AFA55F510993629000F3E977 /* Build configuration list for PBXNativeTarget "HyperTorus" */;
+                       buildConfigurationList = AFA55F510993629000F3E977 /* Build configuration list for PBXNativeTarget "Hypertorus" */;
                        buildPhases = (
                                AFA55F450993629000F3E977 /* Resources */,
                                AFA55F470993629000F3E977 /* Sources */,
                        dependencies = (
                                AFA55F430993629000F3E977 /* PBXTargetDependency */,
                        );
-                       name = HyperTorus;
+                       name = Hypertorus;
                        productName = HyperTorus;
-                       productReference = AFA55F540993629000F3E977 /* HyperTorus.saver */;
+                       productReference = AFA55F540993629000F3E977 /* Hypertorus.saver */;
                        productType = "com.apple.product-type.bundle";
                };
                AFA55F720993643600F3E977 /* GLMatrix */ = {
                29B97313FDCFA39411CA2CEA /* Project object */ = {
                        isa = PBXProject;
                        buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "xscreensaver" */;
-                       compatibilityVersion = "Xcode 3.0";
+                       compatibilityVersion = "Xcode 3.1";
                        hasScannedForEncodings = 1;
                        mainGroup = 29B97314FDCFA39411CA2CEA /* xscreensaver */;
                        projectDirPath = "";
                                AF477253099D5717001F091E /* Halftone */,
                                AF975C12099C8C1500B05160 /* Halo */,
                                AF480C49098E301400FB32B8 /* Helix */,
-                               AF64260F09A18D6C000F4CD4 /* HyperBall */,
-                               AF6425CC09A18855000F4CD4 /* HyperCube */,
                                AF477426099D7C70001F091E /* IFS */,
                                AF97572D099C317000B05160 /* IMSMap */,
                                AF477752099DB61E001F091E /* Interaggregate */,
                                AF4776AA099DABDD001F091E /* XSpirograph */,
                                AF9D475F09B53166006E59CF /* Zoom */,
                                AF480D58098EED3D00FB32B8 /* All Savers (XLockmore) */,
-                               AFD570C90996B9F800BA26F7 /* Ant */,
                                AFD5712C0996BF2E00BA26F7 /* Apollonian */,
                                AFD572A50996F99600BA26F7 /* Bouboule */,
                                AFD56EAE0996A72600BA26F7 /* Braid */,
                                AF7777D009B64C6B00EA3033 /* GLSlideshow */,
                                AFA55C77099349A600F3E977 /* GLSnake */,
                                AFD56DF10996A03800BA26F7 /* GLText */,
-                               AFA55F420993629000F3E977 /* HyperTorus */,
+                               AFA55F420993629000F3E977 /* Hypertorus */,
                                AF3C71450D624BF50030CC0D /* Hypnowheel */,
                                AFA55F06099361B700F3E977 /* JigglyPuff */,
                                AF35E88A0E63823600691F2F /* Jigsaw */,
                                AFA56379099397B300F3E977 /* TimeTunnel */,
                                AF998EDA0A083DB30051049D /* TopBlock */,
                                AF0DCA420C4CBB0D00D76972 /* Voronoi */,
+                               AF137D410F075C9B004DE3B2 /* Obsolete */,
+                               AFD570C90996B9F800BA26F7 /* Ant */,
                                AF6427A809A2DE36000F4CD4 /* Bubbles */,
                                AF47765A099DA78E001F091E /* Critical */,
                                AF477909099DE379001F091E /* Flag */,
                                AFD56EDA0996A95700BA26F7 /* Forest */,
                                AFA55CCC09934CE400F3E977 /* GLForestFire */,
+                               AF64260F09A18D6C000F4CD4 /* HyperBall */,
+                               AF6425CC09A18855000F4CD4 /* HyperCube */,
                                AFD571B50996D9DC00BA26F7 /* Juggle */,
-                               AF4774B4099D8B5F001F091E /* LMorph */,
                                AFD56F8C0996B09400BA26F7 /* Laser */,
                                AFD56FA30996B10F00BA26F7 /* Lightning */,
                                AFD56FB90996B18F00BA26F7 /* Lisa */,
                                AFD56FCF0996B20900BA26F7 /* Lissie */,
+                               AF4774B4099D8B5F001F091E /* LMorph */,
                                AFD570B10996B93000BA26F7 /* Rotor */,
                                AFD570260996B56D00BA26F7 /* Sphere */,
                                AFD570430996B61600BA26F7 /* Spiral */,
                                AFD56F0B0996AAFA00BA26F7 /* Vines */,
                                AF477208099D4EE8001F091E /* Whirlygig */,
                                AFD5709B0996B88E00BA26F7 /* Worm */,
-                               AF137D410F075C9B004DE3B2 /* Obsolete */,
                                AF9771D60989DC4A001F8B92 /* SaverTester */,
                        );
                };
                        isa = PBXResourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
-                               AF4773C5099D67B9001F091E /* fuzzyflakes.xml in Resources */,
                                AF4773D3099D6804001F091E /* anemotaxis.xml in Resources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                        target = AFD56F8C0996B09400BA26F7 /* Laser */;
                        targetProxy = AF137D5C0F075E5C004DE3B2 /* PBXContainerItemProxy */;
                };
-               AF137D5F0F075E5C004DE3B2 /* PBXTargetDependency */ = {
-                       isa = PBXTargetDependency;
-                       target = AF4774B4099D8B5F001F091E /* LMorph */;
-                       targetProxy = AF137D5E0F075E5C004DE3B2 /* PBXContainerItemProxy */;
-               };
                AF137D610F075E5C004DE3B2 /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = AFA55CCC09934CE400F3E977 /* GLForestFire */;
                        target = AF4808C0098C3B6C00FB32B8 /* jwxyz */;
                        targetProxy = AF6427AA09A2DE36000F4CD4 /* PBXContainerItemProxy */;
                };
+               AF714E4F105613410046AB1D /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AF4774B4099D8B5F001F091E /* LMorph */;
+                       targetProxy = AF714E4E105613410046AB1D /* PBXContainerItemProxy */;
+               };
+               AF714E51105613580046AB1D /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AFD570C90996B9F800BA26F7 /* Ant */;
+                       targetProxy = AF714E50105613580046AB1D /* PBXContainerItemProxy */;
+               };
                AF7776E509B63ABF00EA3033 /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = AF4808C0098C3B6C00FB32B8 /* jwxyz */;
                        target = AF477426099D7C70001F091E /* IFS */;
                        targetProxy = AF77794609B6604900EA3033 /* PBXContainerItemProxy */;
                };
-               AF77794909B6604900EA3033 /* PBXTargetDependency */ = {
-                       isa = PBXTargetDependency;
-                       target = AF6425CC09A18855000F4CD4 /* HyperCube */;
-                       targetProxy = AF77794809B6604900EA3033 /* PBXContainerItemProxy */;
-               };
-               AF77794B09B6604900EA3033 /* PBXTargetDependency */ = {
-                       isa = PBXTargetDependency;
-                       target = AF64260F09A18D6C000F4CD4 /* HyperBall */;
-                       targetProxy = AF77794A09B6604900EA3033 /* PBXContainerItemProxy */;
-               };
                AF77794D09B6604900EA3033 /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = AF480C49098E301400FB32B8 /* Helix */;
                        target = AFD5712C0996BF2E00BA26F7 /* Apollonian */;
                        targetProxy = AF7779D809B6608200EA3033 /* PBXContainerItemProxy */;
                };
-               AF7779DB09B6608200EA3033 /* PBXTargetDependency */ = {
-                       isa = PBXTargetDependency;
-                       target = AFD570C90996B9F800BA26F7 /* Ant */;
-                       targetProxy = AF7779DA09B6608200EA3033 /* PBXContainerItemProxy */;
-               };
                AF7779DD09B660AF00EA3033 /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = AFA56379099397B300F3E977 /* TimeTunnel */;
                };
                AF777A1709B660B300EA3033 /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
-                       target = AFA55F420993629000F3E977 /* HyperTorus */;
+                       target = AFA55F420993629000F3E977 /* Hypertorus */;
                        targetProxy = AF777A1609B660B300EA3033 /* PBXContainerItemProxy */;
                };
                AF777A1909B660B300EA3033 /* PBXTargetDependency */ = {
                        target = AF4808C0098C3B6C00FB32B8 /* jwxyz */;
                        targetProxy = AF9D4DEE09B5BB19006E59CF /* PBXContainerItemProxy */;
                };
+               AFA160921052FF87009B93AA /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AF6425CC09A18855000F4CD4 /* HyperCube */;
+                       targetProxy = AFA160911052FF87009B93AA /* PBXContainerItemProxy */;
+               };
+               AFA160941052FF87009B93AA /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AF64260F09A18D6C000F4CD4 /* HyperBall */;
+                       targetProxy = AFA160931052FF87009B93AA /* PBXContainerItemProxy */;
+               };
                AFA3392F0B058505002B0E7D /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = AF4808C0098C3B6C00FB32B8 /* jwxyz */;
                                        "CLASS=XScreenSaver${EXECUTABLE_NAME}View",
                                        "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)",
                                );
-                               GCC_VERSION = 4.0;
+                               "GCC_VERSION[sdk=macosx10.4][arch=*]" = 4.0;
                                GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
                                GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
                                GCC_WARN_ABOUT_RETURN_TYPE = YES;
                                );
                                PREBINDING = NO;
                                PRODUCT_NAME = "$(TARGET_NAME)";
-                               SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk";
+                               SDKROOT = macosx10.4;
                                "SDKROOT[arch=x86_64]" = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk";
                                USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR) $(USER_HEADER_SEARCH_PATHS)";
                                WARNING_CFLAGS = "-Wimplicit";
                C01FCF5008A954540054247B /* Release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
-                               ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)";
-                               ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc";
+                               ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
                                GCC_ENABLE_OBJC_GC = supported;
                                GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
                                GCC_PRECOMPILE_PREFIX_HEADER = YES;
                                        "CLASS=XScreenSaver${EXECUTABLE_NAME}View",
                                        "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)",
                                );
-                               GCC_VERSION = 4.0;
+                               "GCC_VERSION[sdk=macosx10.4][arch=*]" = 4.0;
                                GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
                                GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
                                GCC_WARN_ABOUT_RETURN_TYPE = YES;
                                );
                                PREBINDING = NO;
                                PRODUCT_NAME = "$(TARGET_NAME)";
-                               SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk";
+                               SDKROOT = macosx10.4;
                                "SDKROOT[arch=x86_64]" = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk";
                                USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR) $(USER_HEADER_SEARCH_PATHS)";
                                WARNING_CFLAGS = "-Wimplicit";
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
-               AFA55F510993629000F3E977 /* Build configuration list for PBXNativeTarget "HyperTorus" */ = {
+               AFA55F510993629000F3E977 /* Build configuration list for PBXNativeTarget "Hypertorus" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                AFA55F520993629000F3E977 /* Debug */,