#ifdef STANDALONE
# define MODE_moebius
# define refresh_moebius 0
+# define release_moebius 0
# define DEFAULTS "*delay: 20000 \n" \
"*showFPS: False \n" \
"*suppressRotationAnimation: True\n" \
#ifdef USE_MODULES
ModStruct moebius_description =
-{"moebius", "init_moebius", "draw_moebius", "release_moebius",
+{"moebius", "init_moebius", "draw_moebius", (char *) NULL,
"draw_moebius", "change_moebius", (char *) NULL, &moebius_opts,
1000, 1, 1, 1, 4, 1.0, "",
"Shows Moebius Strip II, an Escher-like GL scene with ants", 0, NULL};
}
-
-ENTRYPOINT void
-release_moebius (ModeInfo * mi)
-{
- if (moebius != NULL) {
- (void) free((void *) moebius);
- moebius = (moebiusstruct *) NULL;
- }
- FreeAllGL(mi);
-}
-
ENTRYPOINT Bool
moebius_handle_event (ModeInfo *mi, XEvent *event)
{
{
moebiusstruct *mp;
- if (moebius == NULL) {
- if ((moebius = (moebiusstruct *) calloc(MI_NUM_SCREENS(mi),
- sizeof (moebiusstruct))) == NULL)
- return;
- }
+ MI_INIT (mi, moebius, NULL);
mp = &moebius[MI_SCREEN(mi)];
mp->step = NRAND(90);
mp->ant_position = NRAND(90);
/* moebius */
if (!draw_moebius_strip(mi)) {
- release_moebius(mi);
+ MI_ABORT(mi);
return;
}