7 long in_time; /* transition overlap with previous part */
10 void (*destroy)(void);
15 /* tm is the time from the start of this part in milliseconds */
16 void (*draw)(long tm);
18 /* optional: transition draw functions. if null, the regular draw will be
19 * called for the duration of the transition instead
21 void (*draw_in)(long tm, float t);
22 void (*draw_out)(long tm, float t);
24 /* optional, will be called only when active */
25 void (*reshape)(int x, int y);
26 void (*keyboard)(int key, int st);
27 void (*mbutton)(int bn, int st, int x, int y);
28 void (*mmotion)(int x, int y);
31 #define MAX_DEMO_PARTS 64
32 extern struct demo_part *parts[MAX_DEMO_PARTS];
35 extern struct demo_part *cur_part, *prev_part;
37 void add_part(struct demo_part *part);
38 void switch_part(struct demo_part *part);
40 struct demo_part *find_part(const char *name);