From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35954) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VeRvQ-0004B8-R1 for qemu-devel@nongnu.org; Thu, 07 Nov 2013 10:55:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VeRvK-0002Ft-Qx for qemu-devel@nongnu.org; Thu, 07 Nov 2013 10:55:16 -0500 Received: from maverick.spineless.org ([71.174.98.242]:47418 helo=spineless.org) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VeRvK-0002Fn-MK for qemu-devel@nongnu.org; Thu, 07 Nov 2013 10:55:10 -0500 Message-ID: <527BB7D2.6070503@spineless.org> Date: Thu, 07 Nov 2013 10:54:58 -0500 From: John Baboval MIME-Version: 1.0 References: <52795824.3090105@citrix.com> <1383735351.1739.57.camel@nilsson.home.kraxel.org> <527A62BD.2010401@spineless.org> <1383831984.3511.78.camel@nilsson.home.kraxel.org> In-Reply-To: <1383831984.3511.78.camel@nilsson.home.kraxel.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] Multi-head support RFC List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: qemu-devel@nongnu.org On 11/7/2013 8:46 AM, Gerd Hoffmann wrote: > Hi, > >> As far as the EDID is concerned, there can only be one EDID for a >> display+hw pair, or the guest won't know what to do. In my use-case, I >> simply pass real EDIDs through, and create a full-screen window for each >> real monitor. > Ok, makes sense. > >> If you wanted to have two UIs displaying the same >> DisplaySurface, the EDID would have to come from one of them, and the >> other would have to clip, or scale. > Yes. > >>> Why not? That is exactly my plan. Just have the virtual graphic card >>> call graphic_console_init() multiple times, once for each display >>> connector it has. >>> >>> Do you see fundamental issues with that approach? >> Currently only one QemuConsole is active at a time, so that would have >> to change.... > That isn't mandatory any more. It is still the default behavior of a > DisplayChangeListener to follow the active_console, for compatibility > reasons. SDL and VNC still behave that way. > > You can explicitly bind a DisplayChangeListener to a QemuConsole though, > by setting DisplayChangeListener->con before calling > register_displaychangelistener(). > > gtk binds to QemuConsole #0. > > spice creates a display channel per (graphical) console. Each display > channel has a DisplayChangeListener instance, and each > DisplayChangeListener is linked to a different QemuConsole. > > For your UI you probably want follow the spice model. Have a > DisplayChangeListener for each physical monitor of the host, have a > fixed QemuConsole bound to each DisplayChangeListener. > DisplayChangeListeners can come and go at runtime just fine, so you > should be able to create/destroy them on monitor plug/unplug events on > the host. I think the best thing for me to do at this point is to just start implementing with multiple QemuConsole, then, and post again when I have a better idea of what it ends up looking like. I'll keep you posted. > > cheers, > Gerd > >