From http://www.jwz.org/xscreensaver/xscreensaver-5.38.tar.gz
[xscreensaver] / hacks / metaballs.c
index a7a0591d0e32c9109bb896b7857fa0deb6a7c2e1..3a2ae73ede3b31d37739c6f318d247226ca50072 100644 (file)
@@ -62,7 +62,7 @@ static void init_blob(struct state *st, BLOB *blob)
 
 static void Execute( struct state *st )
 {
-       unsigned int i, j, k;
+       int i, j, k;
 
        /* clear st->blub array */
        for (i = 0; i < st->iWinHeight; ++i)
@@ -200,7 +200,7 @@ static void Initialize( struct state *st )
 {
        XGCValues gcValues;
        XWindowAttributes XWinAttribs;
-       int iBitsPerPixel, i, j;
+       int /*iBitsPerPixel,*/ i, j;
        unsigned int distance_squared;
        float fraction;
 
@@ -208,6 +208,7 @@ static void Initialize( struct state *st )
        XGetWindowAttributes( st->dpy, st->window, &XWinAttribs );
 
        /* Find the preferred bits-per-pixel. (jwz) */
+#if 0
        {
                int pfvc = 0;
                XPixmapFormatValues *pfv = XListPixmapFormats( st->dpy, &pfvc );
@@ -220,6 +221,7 @@ static void Initialize( struct state *st )
                if( pfv )
                        XFree (pfv);
        }
+#endif
 
        /*  Create the GC. */
        st->gc = XCreateGC( st->dpy, st->window, 0, &gcValues );
@@ -252,6 +254,10 @@ static void Initialize( struct state *st )
         if (st->radius >= 128) /* should use UCHAR_MAX? */
           st->radius = 127; /* st->dradius should fit in u_char */
 
+        if (st->iWinWidth < 100 || st->iWinHeight < 100) /* tiny window */
+          if (st->radius < 20)
+            st->radius = 20;
+
        st->dradius = st->radius * 2;
        st->sradius = st->radius * st->radius;
 
@@ -406,6 +412,9 @@ static const char *metaballs_defaults [] = {
   "*delay:    10000",
   "*radius:   100",
   "*delta:   3",
+#ifdef HAVE_MOBILE
+  "*ignoreRotation: True",
+#endif
   0
 };