From http://www.jwz.org/xscreensaver/xscreensaver-5.38.tar.gz
[xscreensaver] / hacks / glx / tronbit.c
index 2571964ff82e2159cd749027ba3b3045b1105b3d..b79309cd85f19d975b0815c128e1ba12cd6f010b 100644 (file)
@@ -14,7 +14,7 @@
                        "*showFPS:      False       \n" \
                        "*wireframe:    False       \n"
 
-# define refresh_bit 0
+# define free_bit 0
 # define release_bit 0
 #undef countof
 #define countof(x) (sizeof((x))/sizeof((*x)))
@@ -407,14 +407,7 @@ init_bit (ModeInfo *mi)
   bit_configuration *bp;
   int i;
 
-  if (!bps) {
-    bps = (bit_configuration *)
-      calloc (MI_NUM_SCREENS(mi), sizeof (bit_configuration));
-    if (!bps) {
-      fprintf(stderr, "%s: out of memory\n", progname);
-      exit(1);
-    }
-  }
+  MI_INIT (mi, bps);
 
   bp = &bps[MI_SCREEN(mi)];
 
@@ -522,6 +515,11 @@ draw_bit (ModeInfo *mi)
     double ratio = 1 - ((bp->last_time + bp->frequency) - now) / bp->frequency;
     if (ratio > 1) ratio = 1;
     mi->polygon_count += draw_histogram (mi, ratio);
+
+    if (MI_WIDTH(mi) > MI_HEIGHT(mi) * 5) {   /* wide window: scale up */
+      glScalef (8, 8, 8);
+    }
+
     mi->polygon_count += animate_bits (mi, omodel, nmodel, ratio);
     tick_bit (mi, now);
   }