From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:60557) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S0gNV-0006O6-4Z for qemu-devel@nongnu.org; Thu, 23 Feb 2012 16:39:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S0gNT-0005xe-K1 for qemu-devel@nongnu.org; Thu, 23 Feb 2012 16:39:05 -0500 Received: from smtp1-g21.free.fr ([212.27.42.1]:43421) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S0gNS-0005xS-Vh for qemu-devel@nongnu.org; Thu, 23 Feb 2012 16:39:03 -0500 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Thu, 23 Feb 2012 22:39:19 +0100 Message-Id: <1330033159-15860-2-git-send-email-hpoussin@reactos.org> In-Reply-To: <1330033159-15860-1-git-send-email-hpoussin@reactos.org> References: <1330033159-15860-1-git-send-email-hpoussin@reactos.org> Subject: [Qemu-devel] [RFC] sdl: initialize all graphic consoles List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Anthony Liguori , =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Stefano Stabellini MIPS Jazz emulation registers two graphical consoles, but second one stays black. This patch repairs it. Other display methods (cocoa, vnc...) also probably require the same kind of fix. --- console.c | 3 +++ vl.c | 30 +++++++++++++++++++++--------- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/console.c b/console.c index 135394f..2c413a7 100644 --- a/console.c +++ b/console.c @@ -1376,6 +1376,9 @@ DisplayState *get_displaystate(void) if (!display_state) { dumb_display_init (); } + if (active_console && active_console->ds) { + return active_console->ds; + } return display_state; } diff --git a/vl.c b/vl.c index 7a8cc08..98e0091 100644 --- a/vl.c +++ b/vl.c @@ -3451,8 +3451,14 @@ int main(int argc, char **argv, char **envp) #endif #if defined(CONFIG_SDL) case DT_SDL: - sdl_display_init(ds, full_screen, no_frame); + { + DisplayState *ds2 = ds; + while (ds2) { + sdl_display_init(ds2, full_screen, no_frame); + ds2 = ds2->next; + } break; + } #elif defined(CONFIG_COCOA) case DT_SDL: cocoa_display_init(ds, full_screen); @@ -3484,15 +3490,21 @@ int main(int argc, char **argv, char **envp) #endif /* display setup */ - dpy_resize(ds); - dcl = ds->listeners; - while (dcl != NULL) { - if (dcl->dpy_refresh != NULL) { - ds->gui_timer = qemu_new_timer_ms(rt_clock, gui_update, ds); - qemu_mod_timer(ds->gui_timer, qemu_get_clock_ms(rt_clock)); - break; + { + DisplayState *ds2 = ds; + while (ds2 != NULL) { + dpy_resize(ds2); + dcl = ds2->listeners; + while (dcl != NULL) { + if (dcl->dpy_refresh != NULL) { + ds2->gui_timer = qemu_new_timer_ms(rt_clock, gui_update, ds2); + qemu_mod_timer(ds2->gui_timer, qemu_get_clock_ms(rt_clock)); + break; + } + dcl = dcl->next; + } + ds2 = ds2->next; } - dcl = dcl->next; } text_consoles_set_display(ds); -- 1.7.9