11 static int console_active;
13 int demo_init(int argc, char **argv)
18 if(load_config("demo.cfg") == -1) {
21 if((env = getenv("START_SCR"))) {
24 if(parse_args(argc, argv) == -1) {
28 glEnable(GL_DEPTH_TEST);
29 glEnable(GL_CULL_FACE);
31 if(scr_init() == -1) {
35 scr = scr_lookup(opt.start_scr);
40 if(!scr || scr_change(scr, 4000) == -1) {
41 fprintf(stderr, "screen %s not found\n", opt.start_scr ? opt.start_scr : "0");
48 void demo_cleanup(void)
59 void demo_reshape(int x, int y)
61 glViewport(0, 0, x, y);
63 glMatrixMode(GL_PROJECTION);
65 gluPerspective(50.0, win_aspect, 0.5, 500.0);
68 static void change_screen(int idx)
70 printf("change screen %d\n", idx);
71 scr_change(scr_screen(idx), 4000);
75 #define CBUF_MASK (CBUF_SIZE - 1)
76 void demo_keyboard(int key, int pressed)
78 static char cbuf[CBUF_SIZE];
80 char inp[CBUF_SIZE + 1], *dptr;
90 console_active = !console_active;
104 wr = (wr + CBUF_SIZE - 1) & CBUF_MASK;
116 rd = (rd + 1) & CBUF_MASK;
120 printf("\ntrying to match: %s\n", inp);
121 nscr = scr_num_screens();
122 for(i=0; i<nscr; i++) {
123 if(strstr(scr_screen(i)->name, inp)) {
135 if(key >= '1' && key <= '9' && key <= '1' + scr_num_screens()) {
136 change_screen(key - '1');
137 } else if(key == '0' && scr_num_screens() >= 10) {
142 if(key < 256 && isprint(key)) {
147 wr = (wr + 1) & CBUF_MASK;
148 if(wr == rd) { /* overflow */
149 rd = (rd + 1) & CBUF_MASK;
161 void demo_mbutton(int bn, int pressed, int x, int y)
165 void demo_mmotion(int x, int y)