aboutsummaryrefslogtreecommitdiff
path: root/vnc.h
diff options
context:
space:
mode:
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>2009-08-03 10:54:32 +0100
committerAnthony Liguori <aliguori@us.ibm.com>2009-08-10 13:05:30 -0500
commit1fc624122fb923c7fc4c1f426541d953e7df13c9 (patch)
tree0d9e60f4767b97fb547374e11da831be04d21d86 /vnc.h
parent703bc68ff569ac06905fa91d6db02364374522e8 (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.h17
1 files changed, 9 insertions, 8 deletions
diff --git a/vnc.h b/vnc.h
index a35b3786ab..5c903dec75 100644
--- a/vnc.h
+++ b/vnc.h
@@ -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;