aboutsummaryrefslogtreecommitdiff
path: root/vl.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2012-09-28 15:02:08 +0200
committerGerd Hoffmann <kraxel@redhat.com>2012-11-01 13:10:06 +0100
commita93a4a226a2afba147ba5df688b85d844f537c68 (patch)
tree3d4a55446430268a6d17d3d4146354b0dd57b936 /vl.c
parent76ffb0b4d048aac18b54f8555c60b6d3b0e2bc37 (diff)
console: untangle gfx & txt updates
Stop abusing displaysurface fields for text mode displays. (bpp = 0, width = cols, height = lines). Add flags to displaystate indicating whenever text mode display (curses) or gfx mode displays (sdl, vnc, ...) are present. Add separate displaychangelistener callbacks for text / gfx mode resize & updates. This allows to enable gfx and txt diplays at the same time and also paves the way for more cleanups in the future. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'vl.c')
-rw-r--r--vl.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/vl.c b/vl.c
index 4c45b02f05..8716fc0a6c 100644
--- a/vl.c
+++ b/vl.c
@@ -1375,11 +1375,18 @@ void gui_setup_refresh(DisplayState *ds)
{
DisplayChangeListener *dcl;
bool need_timer = false;
+ bool have_gfx = false;
+ bool have_text = false;
QLIST_FOREACH(dcl, &ds->listeners, next) {
if (dcl->dpy_refresh != NULL) {
need_timer = true;
- break;
+ }
+ if (dcl->dpy_gfx_update != NULL) {
+ have_gfx = true;
+ }
+ if (dcl->dpy_text_update != NULL) {
+ have_text = true;
}
}
@@ -1392,6 +1399,9 @@ void gui_setup_refresh(DisplayState *ds)
qemu_free_timer(ds->gui_timer);
ds->gui_timer = NULL;
}
+
+ ds->have_gfx = have_gfx;
+ ds->have_text = have_text;
}
struct vm_change_state_entry {
@@ -3866,7 +3876,7 @@ int main(int argc, char **argv, char **envp)
#endif
/* display setup */
- dpy_resize(ds);
+ dpy_gfx_resize(ds);
text_consoles_set_display(ds);
if (foreach_device_config(DEV_GDB, gdbserver_start) < 0) {