8 static unsigned int sdr_foo;
9 static unsigned int tex_logo;
13 if(init_opengl() == -1) {
17 if(!(sdr_foo = get_sdrprog("sdr/foo.v.glsl", "sdr/foo.p.glsl"))) {
20 if(!(tex_logo = get_tex2d("data/ml_logo_old.png"))) {
23 glBindTexture(GL_TEXTURE_2D, tex_logo);
24 glUseProgram(sdr_foo);
37 if(dsys_init("data/demoscript") == -1) {
41 struct demoscreen *scr = dsys_find_screen(opt.scrname);
45 fprintf(stderr, "ignoring screen option, no such screen: %s\n", opt.scrname);
52 void demo_cleanup(void)
57 void demo_display(void)
61 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
64 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
66 glBindTexture(GL_TEXTURE_2D, tex_logo);
67 glUseProgram(sdr_foo);
69 gl_color4f(1, 1, 1, dsys_value("flashlogo"));
84 void demo_reshape(int x, int y)
88 glViewport(0, 0, x, y);
90 for(i=0; i<dsys.num_screens; i++) {
91 if(dsys.screens[i]->reshape) {
92 dsys.screens[i]->reshape(x, y);
97 void demo_keyboard(int key, int pressed)
115 if(key >= '0' && key <= '9') {
116 dsys_seek_rel((float)(key - '0') / 9.0f);
118 } else if(key >= KEY_F1 && key <= KEY_F12) {
119 int idx = key - KEY_F1;
120 if(idx < dsys.num_screens) {
121 dsys_run_screen(dsys.screens[idx]);
127 if(dsys.scr_override && dsys.scr_override->keyboard) {
128 dsys.scr_override->keyboard(key, pressed);
132 for(i=0; i<dsys.num_act; i++) {
133 struct demoscreen *scr = dsys.act[i];
134 if(scr->keyboard) scr->keyboard(key, pressed);
140 void demo_mouse(int bn, int pressed, int x, int y)
144 if(dsys.scr_override && dsys.scr_override->mouse) {
145 dsys.scr_override->mouse(bn, pressed, x, y);
149 for(i=0; i<dsys.num_act; i++) {
150 struct demoscreen *scr = dsys.act[i];
151 if(scr->mouse) scr->mouse(bn, pressed, x, y);
155 void demo_motion(int x, int y)
159 if(dsys.scr_override && dsys.scr_override->motion) {
160 dsys.scr_override->motion(x, y);
163 for(i=0; i<dsys.num_act; i++) {
164 struct demoscreen *scr = dsys.act[i];
165 if(scr->motion) scr->motion(x, y);