diff options
author | Stefano Stabellini <stefano.stabellini@eu.citrix.com> | 2009-08-03 10:54:32 +0100 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-08-10 13:05:30 -0500 |
commit | 1fc624122fb923c7fc4c1f426541d953e7df13c9 (patch) | |
tree | 0d9e60f4767b97fb547374e11da831be04d21d86 /vnc.h | |
parent | 703bc68ff569ac06905fa91d6db02364374522e8 (diff) |
single vnc server surface
This patch removes the server surface from VncState and adds a single
server surface to VncDisplay for all the possible clients connected.
Each client maintains a different dirty bitmap in VncState.
The guest surface is moved to VncDisplay as well because we don't need
to track guest updates in more than one place.
This patch has been updated to handle CopyRect correctly and efficiently.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Message-Id:
Diffstat (limited to 'vnc.h')
-rw-r--r-- | vnc.h | 17 |
1 files changed, 9 insertions, 8 deletions
@@ -84,6 +84,11 @@ typedef struct VncDisplay VncDisplay; #include "vnc-auth-sasl.h" #endif +struct VncSurface +{ + uint32_t dirty[VNC_MAX_HEIGHT][VNC_DIRTY_WORDS]; + DisplaySurface *ds; +}; struct VncDisplay { @@ -93,6 +98,9 @@ struct VncDisplay VncState *clients; kbd_layout_t *kbd_layout; + struct VncSurface guest; /* guest visible surface (aka ds->surface) */ + DisplaySurface *server; /* vnc server surface */ + char *display; char *password; int auth; @@ -105,19 +113,12 @@ struct VncDisplay #endif }; -struct VncSurface -{ - uint32_t dirty[VNC_MAX_HEIGHT][VNC_DIRTY_WORDS]; - DisplaySurface *ds; -}; - struct VncState { int csock; DisplayState *ds; - struct VncSurface guest; /* guest visible surface (aka ds->surface) */ - struct VncSurface server; /* vnc server surface */ + uint32_t dirty[VNC_MAX_HEIGHT][VNC_DIRTY_WORDS]; VncDisplay *vd; int need_update; |