diff options
author | David 'Digit' Turner <digit@android.com> | 2011-01-20 02:46:33 +0100 |
---|---|---|
committer | David 'Digit' Turner <digit@android.com> | 2011-01-20 02:46:33 +0100 |
commit | 94702b0dc4a9729b234c6f0265a9e43c72ef79ad (patch) | |
tree | f0a51ef09af88cbb95899a90057bd5f53e4e5bb6 /vl-android.c | |
parent | a9edc435e6592fcc001e21e150391a84bde114a6 (diff) | |
download | external_qemu-94702b0dc4a9729b234c6f0265a9e43c72ef79ad.zip external_qemu-94702b0dc4a9729b234c6f0265a9e43c72ef79ad.tar.gz external_qemu-94702b0dc4a9729b234c6f0265a9e43c72ef79ad.tar.bz2 |
Fix ui/core display depth mismatch.
This patch fixes a problem where the core's framebuffer was
incorrectly initialized to a pitch of width*4 by default
(instead of width*2 when using a 16-bit framebuffer).
The reason for this was complex, but essentially, when the
machine initialization was moved before the display one in
vl-android.c, this changed the way the DisplayState was
initialized.
Also get rid of the useless and confusing "display_state"
global in vl-android.c (not the same than "display_state" in
console.c)
Change-Id: If8e2b8baf7ccaeedcb66da0174cc529521d67a60
Diffstat (limited to 'vl-android.c')
-rw-r--r-- | vl-android.c | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/vl-android.c b/vl-android.c index 75b1bce..af17c33 100644 --- a/vl-android.c +++ b/vl-android.c @@ -243,7 +243,6 @@ DriveInfo drives_table[MAX_DRIVES+1]; int nb_drives; #endif enum vga_retrace_method vga_retrace_method = VGA_RETRACE_DUMB; -static DisplayState *display_state; DisplayType display_type = DT_DEFAULT; const char* keyboard_layout = NULL; int64_t ticks_per_sec; @@ -5191,22 +5190,17 @@ int main(int argc, char **argv, char **envp) } /* just use the first displaystate for the moment */ - ds = display_state = get_displaystate(); - - if (!display_state) { - if (android_op_gui) { - /* Initialize display from the command line parameters. */ - android_display_init_from(android_display_width, - android_display_height, 0, - android_display_bpp); - } else { - ds = get_displaystate(); /* this forces a dumb display init */ - } - } else if (android_op_gui) { - /* Resize display from the command line parameters. */ - display_state->surface = qemu_resize_displaysurface(display_state, - android_display_width, - android_display_height); + ds = get_displaystate(); + + if (android_op_gui) { + /* Initialize display from the command line parameters. */ + android_display_reset(ds, + android_display_width, + android_display_height, + android_display_bpp); + } else { + /* By default, use 320x480x16 */ + android_display_reset(ds, 320, 480, 16); } if (display_type == DT_DEFAULT) { @@ -5270,7 +5264,7 @@ int main(int argc, char **argv, char **envp) qemu_mod_timer(nographic_timer, qemu_get_clock(rt_clock)); } - text_consoles_set_display(display_state); + text_consoles_set_display(ds); qemu_chr_initial_reset(); if (monitor_device && monitor_hd) |