11 static int logo_width, logo_height;
12 static long start_time;
16 if(!(logo = img_load_pixels("data/msglogo.jpg", &logo_width, &logo_height, IMG_FMT_RGB24))) {
17 fprintf(stderr, "failed to load logo image\n");
23 void intro_cleanup(void)
25 img_free_pixels(logo);
28 void intro_start(void)
31 key_event = intro_keyb;
33 start_time = time_msec;
45 unsigned char *src = logo;
46 uint16_t *dest = fb_pixels;
48 tm = time_msec - start_time;
50 fade = tm * 256 / FADE_DUR;
51 } else if(tm < FADE_DUR * 2) {
53 } else if(tm < FADE_DUR * 3) {
54 fade = 256 - (tm - 2 * FADE_DUR) * 256 / FADE_DUR;
60 for(i=0; i<fb_height; i++) {
61 for(j=0; j<fb_width; j++) {
62 uint16_t r = (uint16_t)*src++ * fade / 256;
63 uint16_t g = (uint16_t)*src++ * fade / 256;
64 uint16_t b = (uint16_t)*src++ * fade / 256;
65 *dest++ = PACK_RGB16(r, g, b);
69 blit_frame(fb_pixels, 1);
72 void intro_keyb(int key, int pressed)