1. 10 3月, 2014 1 次提交
  2. 18 3月, 2013 1 次提交
  3. 19 12月, 2012 1 次提交
  4. 02 11月, 2012 1 次提交
  5. 01 11月, 2012 1 次提交
    • G
      pixman/vnc: use pixman images in vnc. · 9f64916d
      Gerd Hoffmann 提交于
      The vnc code uses *three* DisplaySurfaces:
      
      First is the surface of the actual QemuConsole, usually the guest
      screen, but could also be a text console (monitor/serial reachable via
      Ctrl-Alt-<nr> keys).  This is left as-is.
      
      Second is the current server's view of the screen content.  The vnc code
      uses this to figure which parts of the guest screen did _really_ change
      to reduce the amount of updates sent to the vnc clients.  It is also
      used as data source when sending out the updates to the clients.  This
      surface gets replaced by a pixman image.  The format changes too,
      instead of using the guest screen format we'll use fixed 32bit rgb
      framebuffer and convert the pixels on the fly when comparing and
      updating the server framebuffer.
      
      Third surface carries the format expected by the vnc client.  That isn't
      used to store image data.  This surface is switched to PixelFormat and a
      boolean for bigendian byte order.
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      9f64916d
  6. 19 10月, 2012 1 次提交
  7. 28 6月, 2012 1 次提交
  8. 15 3月, 2012 1 次提交
    • C
      vnc: don't mess up with iohandlers in the vnc thread · 175b2a6e
      Corentin Chary 提交于
      The threaded VNC servers messed up with QEMU fd handlers without
      any kind of locking, and that can cause some nasty race conditions.
      
      Using qemu_mutex_lock_iothread() won't work because vnc_dpy_cpy(),
      which will wait for the current job queue to finish, can be called with
      the iothread lock held.
      
      Instead, we now store the data in a temporary buffer, and use a bottom
      half to notify the main thread that new data is available.
      
      vnc_[un]lock_ouput() is still needed to access VncState members like
      abort, csock or jobs_buffer.
      Signed-off-by: NCorentin Chary <corentin.chary@gmail.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      175b2a6e
  9. 13 12月, 2011 1 次提交
  10. 21 8月, 2011 1 次提交
  11. 13 3月, 2011 1 次提交
  12. 26 2月, 2011 1 次提交
  13. 24 2月, 2011 2 次提交
  14. 04 2月, 2011 1 次提交
  15. 27 7月, 2010 1 次提交
    • C
      vnc: threaded VNC server · bd023f95
      Corentin Chary 提交于
      Implement a threaded VNC server using the producer-consumer model.
      The main thread will push encoding jobs (a list a rectangles to update)
      in a queue, and the VNC worker thread will consume that queue and send
      framebuffer updates to the output buffer.
      
      The threaded VNC server can be enabled with ./configure --enable-vnc-thread.
      
      If you don't want it, just use ./configure --disable-vnc-thread and a syncrhonous
      queue of job will be used (which as exactly the same behavior as the old queue).
      If you disable the VNC thread, all thread related code will not be built and there will
      be no overhead.
      Signed-off-by: NCorentin Chary <corentincj@iksaif.net>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      bd023f95