|
|
9ae3a8 |
From 38debd5362a680a90db572263f7b49ecbde24ac1 Mon Sep 17 00:00:00 2001
|
|
|
9ae3a8 |
From: "Daniel P. Berrange" <berrange@redhat.com>
|
|
|
9ae3a8 |
Date: Thu, 8 Feb 2018 17:50:26 +0100
|
|
|
9ae3a8 |
Subject: [PATCH 12/27] vnc: use vnc_{width, height} in vnc_set_area_dirty
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
RH-Author: Daniel P. Berrange <berrange@redhat.com>
|
|
|
9ae3a8 |
Message-id: <20180208175041.5634-13-berrange@redhat.com>
|
|
|
9ae3a8 |
Patchwork-id: 78945
|
|
|
9ae3a8 |
O-Subject: [RHEL-7.5 qemu-kvm PATCH v1 12/27] vnc: use vnc_{width, height} in vnc_set_area_dirty
|
|
|
9ae3a8 |
Bugzilla: 1527405
|
|
|
9ae3a8 |
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
|
|
9ae3a8 |
RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
|
9ae3a8 |
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
From: Gerd Hoffmann <kraxel@redhat.com>
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
vnc: use vnc_{width,height} in vnc_set_area_dirty
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
|
9ae3a8 |
Reviewed-by: Peter Lieven <pl@kamp.de>
|
|
|
9ae3a8 |
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
|
|
|
9ae3a8 |
Message-id: 1446203414-4013-14-git-send-email-kraxel@redhat.com
|
|
|
9ae3a8 |
(cherry picked from commit f7b3d68c95bc4f8915a3d084360aa07c7f4e4717)
|
|
|
9ae3a8 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
9ae3a8 |
---
|
|
|
9ae3a8 |
ui/vnc.c | 21 ++++++++++-----------
|
|
|
9ae3a8 |
1 file changed, 10 insertions(+), 11 deletions(-)
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
diff --git a/ui/vnc.c b/ui/vnc.c
|
|
|
9ae3a8 |
index 38e0f1a..df081a5 100644
|
|
|
9ae3a8 |
--- a/ui/vnc.c
|
|
|
9ae3a8 |
+++ b/ui/vnc.c
|
|
|
9ae3a8 |
@@ -439,8 +439,12 @@ static int vnc_height(VncDisplay *vd)
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
static void vnc_set_area_dirty(DECLARE_BITMAP(dirty[VNC_MAX_HEIGHT],
|
|
|
9ae3a8 |
VNC_MAX_WIDTH / VNC_DIRTY_PIXELS_PER_BIT),
|
|
|
9ae3a8 |
- int width, int height,
|
|
|
9ae3a8 |
- int x, int y, int w, int h) {
|
|
|
9ae3a8 |
+ VncDisplay *vd,
|
|
|
9ae3a8 |
+ int x, int y, int w, int h)
|
|
|
9ae3a8 |
+{
|
|
|
9ae3a8 |
+ int width = vnc_width(vd);
|
|
|
9ae3a8 |
+ int height = vnc_height(vd);
|
|
|
9ae3a8 |
+
|
|
|
9ae3a8 |
/* this is needed this to ensure we updated all affected
|
|
|
9ae3a8 |
* blocks if x % VNC_DIRTY_PIXELS_PER_BIT != 0 */
|
|
|
9ae3a8 |
w += (x % VNC_DIRTY_PIXELS_PER_BIT);
|
|
|
9ae3a8 |
@@ -462,10 +466,8 @@ static void vnc_dpy_update(DisplayChangeListener *dcl,
|
|
|
9ae3a8 |
{
|
|
|
9ae3a8 |
VncDisplay *vd = container_of(dcl, VncDisplay, dcl);
|
|
|
9ae3a8 |
struct VncSurface *s = &vd->guest;
|
|
|
9ae3a8 |
- int width = pixman_image_get_width(vd->server);
|
|
|
9ae3a8 |
- int height = pixman_image_get_height(vd->server);
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
- vnc_set_area_dirty(s->dirty, width, height, x, y, w, h);
|
|
|
9ae3a8 |
+ vnc_set_area_dirty(s->dirty, vd, x, y, w, h);
|
|
|
9ae3a8 |
}
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
void vnc_framebuffer_update(VncState *vs, int x, int y, int w, int h,
|
|
|
9ae3a8 |
@@ -644,7 +646,7 @@ static void vnc_dpy_switch(DisplayChangeListener *dcl,
|
|
|
9ae3a8 |
width = vnc_width(vd);
|
|
|
9ae3a8 |
height = vnc_height(vd);
|
|
|
9ae3a8 |
memset(vd->guest.dirty, 0x00, sizeof(vd->guest.dirty));
|
|
|
9ae3a8 |
- vnc_set_area_dirty(vd->guest.dirty, width, height, 0, 0,
|
|
|
9ae3a8 |
+ vnc_set_area_dirty(vd->guest.dirty, vd, 0, 0,
|
|
|
9ae3a8 |
width, height);
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
QTAILQ_FOREACH(vs, &vd->clients, next) {
|
|
|
9ae3a8 |
@@ -654,7 +656,7 @@ static void vnc_dpy_switch(DisplayChangeListener *dcl,
|
|
|
9ae3a8 |
vnc_cursor_define(vs);
|
|
|
9ae3a8 |
}
|
|
|
9ae3a8 |
memset(vs->dirty, 0x00, sizeof(vs->dirty));
|
|
|
9ae3a8 |
- vnc_set_area_dirty(vs->dirty, width, height, 0, 0,
|
|
|
9ae3a8 |
+ vnc_set_area_dirty(vs->dirty, vd, 0, 0,
|
|
|
9ae3a8 |
width, height);
|
|
|
9ae3a8 |
}
|
|
|
9ae3a8 |
}
|
|
|
9ae3a8 |
@@ -1816,9 +1818,6 @@ static void ext_key_event(VncState *vs, int down,
|
|
|
9ae3a8 |
static void framebuffer_update_request(VncState *vs, int incremental,
|
|
|
9ae3a8 |
int x, int y, int w, int h)
|
|
|
9ae3a8 |
{
|
|
|
9ae3a8 |
- int width = pixman_image_get_width(vs->vd->server);
|
|
|
9ae3a8 |
- int height = pixman_image_get_height(vs->vd->server);
|
|
|
9ae3a8 |
-
|
|
|
9ae3a8 |
vs->need_update = 1;
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
if (incremental) {
|
|
|
9ae3a8 |
@@ -1826,7 +1825,7 @@ static void framebuffer_update_request(VncState *vs, int incremental,
|
|
|
9ae3a8 |
}
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
vs->force_update = 1;
|
|
|
9ae3a8 |
- vnc_set_area_dirty(vs->dirty, width, height, x, y, w, h);
|
|
|
9ae3a8 |
+ vnc_set_area_dirty(vs->dirty, vs->vd, x, y, w, h);
|
|
|
9ae3a8 |
}
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
static void send_ext_key_event_ack(VncState *vs)
|
|
|
9ae3a8 |
--
|
|
|
9ae3a8 |
1.8.3.1
|
|
|
9ae3a8 |
|