clear recovery framebuffers on allocation; display icon right after ui_init

Make ui_init() clear the framebuffer memory it maps in so the user
isn't treated to a visible flash of random bits on recovery startup.
Call ui_set_background() (to show the installing icon) right after
ui_init() to display something while device_recovery_start() is
working (which can take a second or two on some devices).

Bug: 3145331
Change-Id: I11e7859fab5847370ea4f4932c3fb1558af26c5d
This commit is contained in:
Doug Zongker 2010-11-01 10:19:12 -07:00
parent 2c3539e4d8
commit 51266d1397
2 changed files with 3 additions and 1 deletions

View File

@ -88,6 +88,7 @@ static int get_framebuffer(GGLSurface *fb)
fb->stride = vi.xres;
fb->data = bits;
fb->format = GGL_PIXEL_FORMAT_RGB_565;
memset(fb->data, 0, vi.yres * vi.xres * 2);
fb++;
@ -97,6 +98,7 @@ static int get_framebuffer(GGLSurface *fb)
fb->stride = vi.xres;
fb->data = (void*) (((unsigned) bits) + vi.yres * vi.xres * 2);
fb->format = GGL_PIXEL_FORMAT_RGB_565;
memset(fb->data, 0, vi.yres * vi.xres * 2);
return fd;
}
@ -277,7 +279,6 @@ int gr_init(void)
set_active_framebuffer(0);
gl->colorBuffer(gl, &gr_mem_surface);
gl->activeTexture(gl, 0);
gl->enable(gl, GGL_BLEND);
gl->blendFunc(gl, GGL_SRC_ALPHA, GGL_ONE_MINUS_SRC_ALPHA);

View File

@ -701,6 +701,7 @@ main(int argc, char **argv) {
printf("Starting recovery on %s", ctime(&start));
ui_init();
ui_set_background(BACKGROUND_ICON_INSTALLING);
load_volume_table();
get_args(&argc, &argv);