/* do one iteration */ static void nerverot_update (struct nerverotstate *closure) { struct nerverotstate *st = (struct nerverotstate *) closure; /* switch segsToErase and segsToDraw */ LineSegment *temp = st->segsToDraw; st->segsToDraw = st->segsToErase; st->segsToErase = temp; /* update the model */ updateWithFeeling (st); /* render new segments */ renderSegs (st); }
/* do one iteration */ static unsigned long nerverot_draw (Display *dpy, Window win, void *closure) { struct state *st = (struct state *) closure; /* switch segsToErase and segsToDraw */ LineSegment *temp = st->segsToDraw; st->segsToDraw = st->segsToErase; st->segsToErase = temp; /* update the model */ updateWithFeeling (st); /* render new segments */ renderSegs (st); /* erase old segments and draw new ones */ eraseAndDraw (st); return st->delay; }