Hi, This patch series continues the console & display code cleanups. It's RfC because it is (a) not complete yet and (b) most likely breaks the build (xen, cocoa). If someone wants help fill the gaps (especially cocoa) patches are very welcome.
The short-team goal I'm heading to is to make the DisplaySurface (and *only* the DisplaySurface) the central data structure for the display renderers in ui/. They get one, they render it, they are notified about updates, they are notified when the surface changes. Done, there is nothing else they need to know or care about. The longer-term goal building on top of this is to put the console internals upside down (without having to touch the ui renderers in the process). I want have one DisplaySurface per console, which then lives forever, and console switches (Ctrl-Alt-$number in vnc+sdl) become a simple surface switch. Alternative ways to handle consoles becomes alot easier to implement, in gtk we can probably simply put each DisplaySurface into one tab. The need to ask the vga emulation to redraw the screen on console switches goes away, vga_hw_invalidate can be zapped. We can stop hopping through loops for screendumps, we can just write out the DisplaySurface content. Oh, and this also paves the way to handle multihead in a reasonable way. cheers, Gerd Gerd Hoffmann (12): console: fix displaychangelisteners interface console: kill DisplayState->opaque spice: zap sdpy global qxl: zap qxl0 global qxl: better vga init in enter_vga_mode sdl: drop dead code console: rework DisplaySurface handling [vga emu side] console: rework DisplaySurface handling [dcl/ui side] console: add surface_*() getters gtk: stop using DisplayState vnc: stop using DisplayState sdl: stop using DisplayState hw/nseries.c | 7 -- hw/palm.c | 7 -- hw/qxl-render.c | 12 +-- hw/qxl.c | 51 ++++++---- hw/vga.c | 17 ++-- include/ui/console.h | 226 +++++++++++++++----------------------------- include/ui/spice-display.h | 4 +- trace-events | 7 +- ui/cocoa.m | 26 +++-- ui/console.c | 193 +++++++++++++++++++++++++++++++------ ui/curses.c | 32 +++++-- ui/gtk.c | 162 ++++++++++++++++++------------- ui/sdl.c | 123 ++++++++++++++---------- ui/spice-display.c | 51 ++++++---- ui/vnc-enc-tight.c | 7 +- ui/vnc-jobs.c | 1 - ui/vnc.c | 144 +++++++++++++++------------- ui/vnc.h | 4 +- vl.c | 6 +- 19 files changed, 611 insertions(+), 469 deletions(-) -- 1.7.9.7