From: Anthony Liguori <aliguori@us.ibm.com>
To: Gerd Hoffmann <kraxel@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] console: nicer initial screen
Date: Thu, 06 Jun 2013 14:34:54 -0500 [thread overview]
Message-ID: <87k3m7ghi9.fsf@codemonkey.ws> (raw)
In-Reply-To: <1370532997-19092-1-git-send-email-kraxel@redhat.com>
Gerd Hoffmann <kraxel@redhat.com> writes:
> Now that we have a function to create a fancy DisplaySurface with a
> message for the user, to handle non-existing graphics hardware, we
> can make it more generic and use it for other things too.
>
> This patch adds a text line to the in initial DisplaySurface, notifying
> the user that the display isn't initialized yet by the guest.
>
> You can see this in action when starting qemu with '-S'. Also when
> booting ovmf in qemu (which needs a few moments to initialize itself
> before it initializes the vga).
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Dunno if I said this in the previous posting, but what about just
blitting an image? This text isn't internationalized.
Regards,
Anthony Liguori
> ---
> ui/console.c | 19 +++++++++++--------
> 1 file changed, 11 insertions(+), 8 deletions(-)
>
> diff --git a/ui/console.c b/ui/console.c
> index b30853f..05f0b4a 100644
> --- a/ui/console.c
> +++ b/ui/console.c
> @@ -1300,19 +1300,18 @@ DisplaySurface *qemu_create_displaysurface_from(int width, int height, int bpp,
> return surface;
> }
>
> -static DisplaySurface *qemu_create_dummy_surface(void)
> +static DisplaySurface *qemu_create_message_surface(int w, int h,
> + const char *msg)
> {
> - static const char msg[] =
> - "This VM has no graphic display device.";
> - DisplaySurface *surface = qemu_create_displaysurface(640, 480);
> + DisplaySurface *surface = qemu_create_displaysurface(w, h);
> pixman_color_t bg = color_table_rgb[0][COLOR_BLACK];
> pixman_color_t fg = color_table_rgb[0][COLOR_WHITE];
> pixman_image_t *glyph;
> int len, x, y, i;
>
> len = strlen(msg);
> - x = (640/FONT_WIDTH - len) / 2;
> - y = (480/FONT_HEIGHT - 1) / 2;
> + x = (w / FONT_WIDTH - len) / 2;
> + y = (h / FONT_HEIGHT - 1) / 2;
> for (i = 0; i < len; i++) {
> glyph = qemu_pixman_glyph_from_vgafont(FONT_HEIGHT, vgafont16, msg[i]);
> qemu_pixman_glyph_render(glyph, surface->image, &fg, &bg,
> @@ -1334,6 +1333,8 @@ void qemu_free_displaysurface(DisplaySurface *surface)
>
> void register_displaychangelistener(DisplayChangeListener *dcl)
> {
> + static const char nodev[] =
> + "This VM has no graphic display device.";
> static DisplaySurface *dummy;
> QemuConsole *con;
>
> @@ -1352,7 +1353,7 @@ void register_displaychangelistener(DisplayChangeListener *dcl)
> dcl->ops->dpy_gfx_switch(dcl, con->surface);
> } else {
> if (!dummy) {
> - dummy = qemu_create_dummy_surface();
> + dummy = qemu_create_message_surface(640, 480, nodev);
> }
> dcl->ops->dpy_gfx_switch(dcl, dummy);
> }
> @@ -1600,6 +1601,8 @@ QemuConsole *graphic_console_init(DeviceState *dev,
> const GraphicHwOps *hw_ops,
> void *opaque)
> {
> + static const char noinit[] =
> + "Guest has not initialized the display (yet).";
> Error *local_err = NULL;
> int width = 640;
> int height = 480;
> @@ -1616,7 +1619,7 @@ QemuConsole *graphic_console_init(DeviceState *dev,
> "device", &local_err);
> }
>
> - s->surface = qemu_create_displaysurface(width, height);
> + s->surface = qemu_create_message_surface(width, height, noinit);
> return s;
> }
>
> --
> 1.7.9.7
next prev parent reply other threads:[~2013-06-06 19:35 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-06 15:36 [Qemu-devel] [PATCH] console: nicer initial screen Gerd Hoffmann
2013-06-06 19:34 ` Anthony Liguori [this message]
2013-06-11 6:04 ` Gerd Hoffmann
-- strict thread matches above, loose matches on Subject: below --
2014-05-21 9:56 Gerd Hoffmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87k3m7ghi9.fsf@codemonkey.ws \
--to=aliguori@us.ibm.com \
--cc=kraxel@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.