6 int opaque; /* if 0, the next screen is visible, so keep update/drawing it */
8 struct game_screen *next;
11 void (*cleanup)(void);
16 void (*update)(float dt);
18 void (*reshape)(int, int);
19 /* these functions return 1 if they handled the event, or 0
20 * if it should propagate to the next screen in the stack */
21 int (*keyboard)(int, int);
22 int (*mouse)(int, int, int, int);
23 int (*motion)(int, int);
24 int (*wheel)(int dir);
27 /* this always points to the top screen on the stack
28 * there's always at least one screen, this will never be null
30 struct game_screen *screen;
32 int init_screens(void);
33 void cleanup_screens(void);
34 void reshape_screens(int x, int y);
36 void push_screen(struct game_screen *s);
39 #endif /* SCREEN_H_ */