http://slackware.bholcomb.com/slackware/slackware-11.0/source/xap/xscreensaver/xscree...
[xscreensaver] / hacks / bouboule.c
index 4f6e8ecbd2cc4fa839575ad9ee6fe6bab8616ccd..143354b3d74d4a759d7c7098e14c03180f90a930 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- Mode: C; tab-width: 4 -*-
    Ported from xlockmore 4.03a12 to be a standalone program and thus usable
-   with xscreensaver by Jamie Zawinski <jwz@netscape.com> on 15-May-97.
+   with xscreensaver by Jamie Zawinski <jwz@jwz.org> on 15-May-97.
 
    Original copyright notice from xlock.c:
 
@@ -19,9 +19,8 @@
     * other special, indirect and consequential damages.
  */
 
-#if !defined( lint ) && !defined( SABER )
+#if 0
 static const char sccsid[] = "@(#)bouboule.c   4.00 97/01/01 xlockmore";
-
 #endif
 
 /*-
@@ -32,12 +31,12 @@ static const char sccsid[] = "@(#)bouboule.c        4.00 97/01/01 xlockmore";
  * I only scale the sort of sphere you see to the whole sky and clip the stars
  * to the camera screen.
  *
- *   Code Copyright 1996 by Jeremie PETIT (petit@eurecom.fr, jpetit@essi.fr)
+ *   Code Copyright 1996 by Jeremie PETIT (jeremie_petit@geocities.com)
  *
  *   Use: batchcount is the number of stars.
  *        cycles is the maximum size for a star
  *
- * 15-May-97: jwz@netscape.com: turned into a standalone program.
+ * 15-May-97: jwz@jwz.org: turned into a standalone program.
  * 04-Sep-96: Added 3d support (Henrik Theiling, theiling@coli-uni-sb.de)
  * 20-Feb-96: Added tests so that already malloced objects are not
  *            malloced twice, thanks to the report from <mccomb@interport.net>
@@ -75,13 +74,9 @@ static const char sccsid[] = "@(#)bouboule.c 4.00 97/01/01 xlockmore";
  */
 
 #ifdef STANDALONE
-# define PROGCLASS                                     "Bouboule"
-# define HACK_INIT                                     init_bouboule
-# define HACK_DRAW                                     draw_bouboule
-# define bouboule_opts                         xlockmore_opts
 # define DEFAULTS      "*count:                100     \n"                     \
                                        "*size:                 15      \n"                     \
-                                       "*delay:                5000    \n"                     \
+                                       "*delay:                20000   \n"                     \
                                        "*ncolors:              64      \n"                     \
                                        "*use3d:                False   \n"                     \
                                        "*delta3d:              1.5             \n"                     \
@@ -91,12 +86,15 @@ static const char sccsid[] = "@(#)bouboule.c        4.00 97/01/01 xlockmore";
                                        "*none3d:               black   \n"
 
 # define SMOOTH_COLORS
+# define reshape_bouboule 0
+# define bouboule_handle_event 0
 # include "xlockmore.h"                                /* from the xscreensaver distribution */
 #else  /* !STANDALONE */
 # include "xlock.h"                                    /* from the xlockmore distribution */
+# define ENTRYPOINT /**/
 #endif /* !STANDALONE */
 
-ModeSpecOpt bouboule_opts = {
+ENTRYPOINT ModeSpecOpt bouboule_opts = {
   0, NULL, 0, NULL, NULL };
 
 #define USEOLDXARCS  1         /* If 1, we use old xarcs list for erasing.
@@ -298,8 +296,9 @@ sinfree(SinVariable * point)
        }
 }
 
+
 /***************/
-void
+ENTRYPOINT void
 init_bouboule(ModeInfo * mi)
 /***************/
 
@@ -529,7 +528,7 @@ init_bouboule(ModeInfo * mi)
 }
 
 /****************/
-void
+ENTRYPOINT void
 draw_bouboule(ModeInfo * mi)
 /****************/
 
@@ -543,6 +542,10 @@ draw_bouboule(ModeInfo * mi)
        Star       *star;
        XArc       *arc = NULL, *arcleft = NULL;
 
+#ifdef HAVE_COCOA      /* Don't second-guess Quartz's double-buffering */
+    XClearWindow(MI_DISPLAY(mi), MI_WINDOW(mi));
+#endif
+
 #if (ADAPT_ERASE == 1)
        struct timeval tv1;
        struct timeval tv2;
@@ -799,7 +802,7 @@ draw_bouboule(ModeInfo * mi)
        }
 }
 
-void
+ENTRYPOINT void
 release_bouboule(ModeInfo * mi)
 {
        if (starfield != NULL) {
@@ -834,8 +837,10 @@ release_bouboule(ModeInfo * mi)
        }
 }
 
-void
+ENTRYPOINT void
 refresh_bouboule(ModeInfo * mi)
 {
        /* Do nothing, it will refresh by itself */
 }
+
+XSCREENSAVER_MODULE ("Bouboule", bouboule)