From http://www.jwz.org/xscreensaver/xscreensaver-5.22.tar.gz
[xscreensaver] / hacks / demon.c
index d48ce7274e06383a5ca3b1f95d2c5b5d6ccb5b0f..947134841ec64482f0c09ccb891418bd9085f842 100644 (file)
@@ -58,8 +58,8 @@ static const char sccsid[] = "@(#)demon.c     5.00 2000/11/01 xlockmore";
                                        "*size:    -7    \n" \
                                        "*ncolors: 64    \n" \
                                        "*fpsSolid: true    \n" \
+                                   "*ignoreRotation: True  \n" \
 
-# define reshape_demon 0
 # define demon_handle_event 0
 # define UNIFORM_COLORS
 # include "xlockmore.h"                /* in xscreensaver distribution */
@@ -166,7 +166,6 @@ drawcell(ModeInfo * mi, int col, int row, unsigned char state)
                gc = MI_GC(mi);
        } else {
                XGCValues   gcv;
-
 #ifdef DO_STIPPLE
                gcv.stipple = dp->pixmaps[(state - 1) % (NUMSTIPPLES - 1)];
 #endif /* DO_STIPPLE */
@@ -467,6 +466,10 @@ init_demon (ModeInfo * mi)
 #endif /* DO_STIPPLE */
        free_struct(dp);
 
+#ifdef HAVE_COCOA
+    jwxyz_XSetAntiAliasing (MI_DISPLAY(mi), MI_GC(mi), False);
+#endif
+
        for (nk = 0; nk < NEIGHBORKINDS; nk++) {
                if (neighbors == plots[0][nk]) {
                        dp->neighbors = plots[0][nk];
@@ -695,7 +698,7 @@ draw_demon (ModeInfo * mi)
                                                dp->newcell[i + mj] = dp->oldcell[k + ml];
                                        /* W */
                                        k = (!i) ? dp->ncols - 1 : i - 1;
-                                       l = j;
+                                       /*l = j;*/
                                        ml = mj;
                                        if (dp->oldcell[k + ml] ==
                                            (int) (dp->oldcell[i + mj] + 1) % dp->states)
@@ -865,7 +868,7 @@ draw_demon (ModeInfo * mi)
                                                                        dp->newcell[i + mj] = dp->oldcell[k + ml];
                                                                /* EE */
                                                                k = (i + 1 == dp->ncols) ? 0 : i + 1;
-                                                               l = j;
+                                                               /*l = j;*/
                                                                ml = mj;
                                                                if (dp->oldcell[k + ml] ==
                                                                    (int) (dp->oldcell[i + mj] + 1) % dp->states)
@@ -897,7 +900,7 @@ draw_demon (ModeInfo * mi)
                                                                        dp->newcell[i + mj] = dp->oldcell[k + ml];
                                                                /* WW */
                                                                k = (!i) ? dp->ncols - 1 : i - 1;
-                                                               l = j;
+                                                               /*l = j;*/
                                                                ml = mj;
                                                                if (dp->oldcell[k + ml] ==
                                                                    (int) (dp->oldcell[i + mj] + 1) % dp->states)
@@ -947,6 +950,14 @@ draw_demon (ModeInfo * mi)
 }
 
 
+ENTRYPOINT void
+reshape_demon(ModeInfo * mi, int width, int height)
+{
+  XClearWindow (MI_DISPLAY (mi), MI_WINDOW(mi));
+  init_demon (mi);
+}
+
+
 ENTRYPOINT void
 release_demon (ModeInfo * mi)
 {