int main(int argc, char *argv[]) { emul_init(&argc, argv); lcd_init(); coord_t x = 0, y = LCD_WIDTH / 2; coord_t xdir = +1, ydir = -1; Bitmap *bm = &lcd_bitmap; for(;;) { gfx_bitmapClear(bm); gfx_setClipRect(bm, 0, 0, bm->width, bm->height); gfx_rectDraw(bm, 10, 10, bm->width-10, bm->height-10); gfx_setClipRect(bm, 11, 11, bm->width-11, bm->height-11); magic(bm, x, y); x += xdir; y += ydir; if (x >= bm->width) xdir = -1; if (x <= -50) xdir = +1; if (y >= bm->height) ydir = -1; if (y <= -50) ydir = +1; lcd_blit_bitmap(bm); emul_idle(); usleep(10000); } emul_cleanup(); return 0; }
static void screen_saver(Bitmap *bm) { int x1, y1, x2, y2; int i; for (i = 0; ; i++) { x1 = i % LCD_WIDTH; y1 = i % LCD_HEIGHT; x2 = LCD_WIDTH - i % LCD_WIDTH; y2 = LCD_HEIGHT - i % LCD_HEIGHT; gfx_bitmapClear(bm); gfx_rectDraw(bm, x1, y1, x2, y2); lcd_ili9225_blitBitmap(bm); if (kbd_peek() & KEY_MASK) break; } }