From: Gerd Hoffmann <kraxel@redhat.com>
To: qemu-devel@nongnu.org
Cc: Anthony Liguori <aliguori@us.ibm.com>, Gerd Hoffmann <kraxel@redhat.com>
Subject: [Qemu-devel] [PATCH 13/23] console: zap g_width + g_height
Date: Wed, 20 Mar 2013 10:43:35 +0100 [thread overview]
Message-ID: <1363772625-9182-14-git-send-email-kraxel@redhat.com> (raw)
In-Reply-To: <1363772625-9182-1-git-send-email-kraxel@redhat.com>
We have a surface per QemuConsole now, so there is no need to keep
track of the QemuConsole size any more as we can query the surface
size directly at any time.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
ui/console.c | 32 +++++++++-----------------------
1 file changed, 9 insertions(+), 23 deletions(-)
diff --git a/ui/console.c b/ui/console.c
index 241720b..771f155 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -123,7 +123,6 @@ struct QemuConsole {
graphic_hw_invalidate_ptr hw_invalidate;
graphic_hw_text_update_ptr hw_text_update;
void *hw;
- int g_width, g_height;
/* Text console state */
int width;
@@ -384,8 +383,8 @@ static void text_console_resize(QemuConsole *s)
int w1, x, y, last_width;
last_width = s->width;
- s->width = s->g_width / FONT_WIDTH;
- s->height = s->g_height / FONT_HEIGHT;
+ s->width = surface_width(s->surface) / FONT_WIDTH;
+ s->height = surface_height(s->surface) / FONT_HEIGHT;
w1 = last_width;
if (s->width < w1)
@@ -946,18 +945,12 @@ static void console_putchar(QemuConsole *s, int ch)
void console_select(unsigned int index)
{
- DisplaySurface *surface;
QemuConsole *s;
if (index >= MAX_CONSOLES)
return;
trace_console_select(index);
- if (active_console) {
- surface = qemu_console_surface(active_console);
- active_console->g_width = surface_width(surface);
- active_console->g_height = surface_height(surface);
- }
s = consoles[index];
if (s) {
DisplayState *ds = s->ds;
@@ -1084,11 +1077,8 @@ void kbd_put_keysym(int keysym)
static void text_console_invalidate(void *opaque)
{
QemuConsole *s = (QemuConsole *) opaque;
- DisplaySurface *surface = qemu_console_surface(s);
if (s->ds->have_text && s->console_type == TEXT_CONSOLE) {
- s->g_width = surface_width(surface);
- s->g_height = surface_height(surface);
text_console_resize(s);
}
console_refresh(s);
@@ -1492,6 +1482,8 @@ static void text_console_update_cursor(void *opaque)
static void text_console_do_init(CharDriverState *chr, DisplayState *ds)
{
QemuConsole *s;
+ int g_width = 80 * FONT_WIDTH;
+ int g_height = 24 * FONT_HEIGHT;
s = chr->opaque;
@@ -1507,16 +1499,13 @@ static void text_console_do_init(CharDriverState *chr, DisplayState *ds)
s->total_height = DEFAULT_BACKSCROLL;
s->x = 0;
s->y = 0;
- if (s->console_type == TEXT_CONSOLE) {
+ if (!s->surface) {
if (active_console && active_console->surface) {
- s->g_width = surface_width(active_console->surface);
- s->g_height = surface_height(active_console->surface);
- } else {
- s->g_width = 80 * FONT_WIDTH;
- s->g_height = 24 * FONT_HEIGHT;
+ g_width = surface_width(active_console->surface);
+ g_height = surface_height(active_console->surface);
}
+ s->surface = qemu_create_displaysurface(g_width, g_height);
}
- s->surface = qemu_create_displaysurface(s->g_width, s->g_height);
s->cursor_timer =
qemu_new_timer_ms(rt_clock, text_console_update_cursor, s);
@@ -1578,6 +1567,7 @@ static CharDriverState *text_console_init(ChardevVC *vc)
s = new_console(NULL, TEXT_CONSOLE);
} else {
s = new_console(NULL, TEXT_CONSOLE_FIXED_SIZE);
+ s->surface = qemu_create_displaysurface(width, height);
}
if (!s) {
@@ -1586,8 +1576,6 @@ static CharDriverState *text_console_init(ChardevVC *vc)
}
s->chr = chr;
- s->g_width = width;
- s->g_height = height;
chr->opaque = s;
chr->chr_set_echo = text_console_set_echo;
@@ -1614,8 +1602,6 @@ void qemu_console_resize(QemuConsole *s, int width, int height)
DisplaySurface *surface;
assert(s->console_type == GRAPHIC_CONSOLE);
- s->g_width = width;
- s->g_height = height;
surface = qemu_create_displaysurface(width, height);
dpy_gfx_replace_surface(s, surface);
}
--
1.7.9.7
next prev parent reply other threads:[~2013-03-20 9:44 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-20 9:43 [Qemu-devel] [PATCH v2 00/23] console: overhaul continued Gerd Hoffmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 01/23] exynos4210_fimd.c: fix display resize bug introduced after console revamp Gerd Hoffmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 02/23] hw/vmware_vga.c: fix screen " Gerd Hoffmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 03/23] pixman: add qemu_pixman_color() Gerd Hoffmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 04/23] pixman: render vgafont glyphs into pixman images Gerd Hoffmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 05/23] console: use pixman for fill+blit Gerd Hoffmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 06/23] console: use pixman for font rendering Gerd Hoffmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 07/23] console: switch color_table_rgb to pixman_color_t Gerd Hoffmann
[not found] ` <514A01CD.1020106@gmail.com>
2013-03-20 19:25 ` Igor Mitsyanko
2013-03-21 4:49 ` Søren Sandmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 08/23] console: add trace events Gerd Hoffmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 09/23] console: displaystate init revamp Gerd Hoffmann
[not found] ` <514A0478.3090908@gmail.com>
2013-03-20 19:27 ` Igor Mitsyanko
2013-03-21 7:42 ` Gerd Hoffmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 10/23] console: rename vga_hw_*, add QemuConsole param Gerd Hoffmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 11/23] console: give each QemuConsole its own DisplaySurface Gerd Hoffmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 12/23] console: simplify screendump Gerd Hoffmann
[not found] ` <514A08C4.9040103@gmail.com>
2013-03-20 19:28 ` Igor Mitsyanko
2013-03-20 9:43 ` Gerd Hoffmann [this message]
2013-03-20 9:43 ` [Qemu-devel] [PATCH 14/23] console: move gui_update+gui_setup_refresh from vl.c into console.c Gerd Hoffmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 15/23] console: make DisplayState private to console.c Gerd Hoffmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 16/23] console: add GraphicHwOps Gerd Hoffmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 17/23] console: gui timer fixes Gerd Hoffmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 18/23] xen: re-enable refresh interval reporting for xenfb Gerd Hoffmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 19/23] console: add qemu_console_is_* Gerd Hoffmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 20/23] console: allow pinning displaychangelisteners to consoles Gerd Hoffmann
2013-03-20 9:43 ` [Qemu-devel] [PATCH 21/23] gtk: custom cursor support Gerd Hoffmann
2013-03-20 12:59 ` Anthony Liguori
2013-03-20 15:15 ` Gerd Hoffmann
2013-03-20 17:13 ` Anthony Liguori
2013-03-20 9:43 ` [Qemu-devel] [PATCH 22/23] gtk: show a window for each graphical QemuConsole Gerd Hoffmann
2013-03-20 13:04 ` Anthony Liguori
2013-03-20 15:22 ` Gerd Hoffmann
[not found] ` <514A0C75.4070802@gmail.com>
2013-03-20 19:29 ` Igor Mitsyanko
2013-03-20 20:06 ` Peter Maydell
2013-03-21 7:52 ` Gerd Hoffmann
2013-03-21 8:51 ` Gerd Hoffmann
2013-03-21 10:55 ` Peter Maydell
2013-03-21 14:43 ` Gerd Hoffmann
2013-03-21 18:25 ` Anthony Liguori
2013-03-22 11:19 ` Peter Maydell
2013-03-20 9:43 ` [Qemu-devel] [PATCH 23/23] qxl: register QemuConsole for secondary cards 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=1363772625-9182-14-git-send-email-kraxel@redhat.com \
--to=kraxel@redhat.com \
--cc=aliguori@us.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).