qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 0/4] Support external GUIs
Date: Sun, 16 Jul 2006 13:11:24 -0500	[thread overview]
Message-ID: <44BA814C.8000703@codemonkey.ws> (raw)

The following set of patches implement support for building efficient 
external GUIs for QEMU.

The current methods of writing an external GUI include trying to use 
SDL_WINDOWID, VNC, or forking QEMU.

SDL_WINDOWID is problematic because keyboard/mouse events do not get 
transmitted properly.  One can use the monitor's sendkey interface but 
this interface doesn't support every possible key sequence and until 
recently did not support mouse movement.  Also, it's not possible to do 
interesting things like software scaling since you never have access to 
the actual pixel data.  Resizing your host widget properly is also 
impossible without modifying QEMU.

VNC is a bit better since you have proper access to the pixel data.  
However, there's a considerable CPU overhead when using VNC.  This is 
fine when interacting over the network but on localhost it makes QEMU 
seem less speedy than it actually is.

This patch series introduces a new display mechanism.  This display 
mechanism writes the VGA data to a shared memory segment.  The shared 
memory information is transmitted over a character device that's 
specified on the command line.

The initial results are very promising.  My win2k guest seems to perform 
equally well with my sample GUI as it does with SDL.

Included in this series is the actual patch to QEMU, a couple fixes for 
problems I encountered along the way, and an example external GUI 
written in GTK.  To show how flexible this really is, I actually wrote 
most of the GUI in Python.  The sample GUI is essentially a clone of the 
SDL GUI.

This mechanism is really fast for X-Windows and at least reasonable for 
OS X and Win32 (although the code may need some tweaking to use the 
proper calls).

Comments are appreciated.  I hope the first three patches can be applied 
in the near future.

Regards,

Anthony Liguori

                 reply	other threads:[~2006-07-16 18:16 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=44BA814C.8000703@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --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).