-# define PROGCLASS "Sierpinski"
-# define HACK_INIT init_tri
-# define HACK_DRAW draw_tri
-# define tri_opts xlockmore_opts
-# define DEFAULTS "*count: 2000 \n" \
- "*cycles: 100 \n" \
- "*delay: 400000 \n" \
- "*ncolors: 64 \n"
-# include "xlockmore.h" /* from the xscreensaver distribution */
-#else /* !STANDALONE */
-# include "xlock.h" /* from the xlockmore distribution */
-#endif /* !STANDALONE */
-
-ModeSpecOpt tri_opts = {
- 0, NULL, 0, NULL, NULL };
+# define MODE_sierpinski
+# define DEFAULTS "*delay: 400000 \n" \
+ "*count: 2000 \n" \
+ "*cycles: 100 \n" \
+ "*ncolors: 64 \n" \
+ "*fpsSolid: true \n" \
+ "*ignoreRotation: True \n" \
+
+# define BRIGHT_COLORS
+# define release_sierpinski 0
+# define sierpinski_handle_event 0
+# include "xlockmore.h" /* in xscreensaver distribution */
+#else /* STANDALONE */
+# include "xlock.h" /* in xlockmore distribution */
+#endif /* STANDALONE */
+
+#ifdef MODE_sierpinski
+
+ENTRYPOINT ModeSpecOpt sierpinski_opts =
+{0, (XrmOptionDescRec *) NULL, 0, (argtype *) NULL, (OptionStruct *) NULL};
+
+#ifdef USE_MODULES
+ModStruct sierpinski_description =
+{"sierpinski", "init_sierpinski", "draw_sierpinski", (char *) NULL,
+ "refresh_sierpinski", "init_sierpinski", (char *) NULL, &sierpinski_opts,
+ 400000, 2000, 100, 1, 64, 1.0, "",
+ "Shows Sierpinski's triangle", 0, NULL};
+
+#endif
+
+#define MAXCORNERS 4