http://ftp.ksu.edu.tw/FTP/FreeBSD/distfiles/xscreensaver-4.23.tar.gz
[xscreensaver] / hacks / xlyap.c
index b180fc43341828a85e6225e2fcb788491b2b6ad1..3af8850725c2fa655225f6d943fd857461aa2f08 100644 (file)
@@ -39,7 +39,6 @@
 #include "screenhack.h"
 #include "yarandom.h"
 #include "hsv.h"
-#include "vroot.h"
 
 #include <X11/cursorfont.h> 
 #include <X11/Xutil.h> 
@@ -218,7 +217,7 @@ static double  minexp, maxexp, prob=0.5;
 static int     expind[MAXFRAMES]={0}, resized[MAXFRAMES]={0};
 static int     numwheels=MAXWHEELS, force=0, Force=0, negative=1;
 static int     rgb_max=65000, nostart=1, stripe_interval=7;
-static int     save=1, show=0, useprod=1, spinlength=256, savefile=0;
+static int     save=1, show=0, useprod=1, spinlength=256/*, savefile=0*/;
 static int     maxframe=0, frame=0, dorecalc=0, mapindex=0, run=1;
 static char    *outname="lyap.out";
 
@@ -247,7 +246,7 @@ static void main_event(void);
 static int complyap(void);
 static void Getkey(XKeyEvent *event);
 static int sendpoint(double expo);
-static void save_to_file(void);
+/*static void save_to_file(void);*/
 static void setforcing(void);
 static void check_params(int mapnum, int parnum);
 static void usage(void);
@@ -534,17 +533,13 @@ screenhack (Display *d, Window window)
   canvas = window;
   init_canvas();
 
-  if (window != DefaultRootWindow(dpy))
-    XSelectInput(dpy,canvas,KeyPressMask|ButtonPressMask|ButtonMotionMask|
-                ButtonReleaseMask|ExposureMask|StructureNotifyMask);
   if (displayplanes > 1) {
     init_color();
   } else {
     XQueryColors(dpy, DefaultColormap(dpy, DefaultScreen(dpy)),
        Colors, numcolors);
   }
-  pixmap = XCreatePixmap(dpy, DefaultRootWindow(dpy),
-                        width, height, DefaultDepth(dpy, screen));
+  pixmap = XCreatePixmap(dpy, window, width, height, xgwa.depth);
   rubber_data.band_cursor = XCreateFontCursor(dpy, XC_hand2);
   CreateXorGC();
   Clear();
@@ -599,25 +594,26 @@ main_event(void)
 static int
 complyap(void)
 {
-  register i, bindex;
+  int i, bindex;
   double total, prod, x, dx, r;
 
   if (!run)
     return TRUE;
   a += a_inc;
-  if (a >= max_a)
+  if (a >= max_a) {
     if (sendpoint(lyapunov) == TRUE)
       return FALSE;
     else {
       FlushBuffer();
-      if (savefile)
-       save_to_file();
+/*      if (savefile)
+       save_to_file(); */
       return TRUE;
     }
+  }
   if (b >= max_b) {
     FlushBuffer();
-    if (savefile)
-      save_to_file();
+/*    if (savefile)
+      save_to_file();*/
     return TRUE;
   }
   prod = 1.0;
@@ -709,8 +705,8 @@ complyap(void)
     return FALSE;
   else {
     FlushBuffer();
-    if (savefile)
-      save_to_file();
+/*    if (savefile)
+      save_to_file();*/
     return TRUE;
   }
 }
@@ -815,7 +811,7 @@ init_canvas(void)
   * create default, writable, graphics contexts for the canvas.
   */
        for (i=0; i<maxcolor; i++) {
-           Data_GC[i] = XCreateGC(dpy, DefaultRootWindow(dpy),
+           Data_GC[i] = XCreateGC(dpy, canvas,
                (unsigned long) NULL, (XGCValues *) NULL);
            /* set the background to black */
            XSetBackground(dpy,Data_GC[i],BlackPixel(dpy,XDefaultScreen(dpy)));
@@ -1320,7 +1316,7 @@ Getkey(XKeyEvent *event)
       redraw(exponents[frame], expind[frame], 1);
       break;
   case 'f':
-  case 'F': save_to_file(); break;
+/*  case 'F': save_to_file(); break;*/
   case 'i': if (stripe_interval > 0) {
       stripe_interval--;
        if (displayplanes > 1) {
@@ -1511,8 +1507,7 @@ resize(void)
   XClearWindow(dpy, canvas);
   if (pixmap)
     XFreePixmap(dpy, pixmap);
-  pixmap = XCreatePixmap(dpy, DefaultRootWindow(dpy),
-      width, height, DefaultDepth(dpy, screen));
+  pixmap = XCreatePixmap(dpy, canvas, width, height, d);
   a_inc = a_range / (double)width;
   b_inc = b_range / (double)height;
   point.x = -1;
@@ -1573,6 +1568,7 @@ Redraw(void)
   resized[frame] = 0;
 }
 
+#if 0
 /* Store color pics in PPM format and monochrome in PGM */
 static void
 save_to_file(void)
@@ -1648,6 +1644,7 @@ save_to_file(void)
       }
   fclose(outfile);
 }
+#endif
 
 static void
 recalc(void)
@@ -1693,7 +1690,7 @@ CreateXorGC(void)
   values.foreground = foreground;
   values.line_style = LineSolid;
   values.function = GXxor;
-  RubberGC = XCreateGC(dpy, DefaultRootWindow(dpy),
+  RubberGC = XCreateGC(dpy, canvas,
        GCForeground | GCBackground | GCFunction | GCLineStyle, &values);
 }