summaryrefslogtreecommitdiffstats
path: root/server/red_dispatcher.c
diff options
context:
space:
mode:
authorIzik Eidus <ieidus@redhat.com>2010-04-14 19:38:49 +0300
committerIzik Eidus <ieidus@redhat.com>2010-04-14 19:38:49 +0300
commit99341e058f378c1fbf940a065267802028418969 (patch)
treee7334e5d14cac1bf20f0167390e0a81f2016c9b4 /server/red_dispatcher.c
parentc97116aeb925dfa10420ca8baae1d445da23b73d (diff)
downloadspice-99341e058f378c1fbf940a065267802028418969.tar.gz
spice-99341e058f378c1fbf940a065267802028418969.tar.xz
spice-99341e058f378c1fbf940a065267802028418969.zip
spice: server: change update_area command
The new command return dirty area to be used by users that want spice to render localy or into some framebuffer (sdl / vnc) Signed-off-by: Izik Eidus <ieidus@redhat.com>
Diffstat (limited to 'server/red_dispatcher.c')
-rw-r--r--server/red_dispatcher.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/server/red_dispatcher.c b/server/red_dispatcher.c
index 2930dea4..5b719bd0 100644
--- a/server/red_dispatcher.c
+++ b/server/red_dispatcher.c
@@ -199,12 +199,19 @@ static void update_client_mouse_allowed()
}
}
-static void qxl_worker_update_area(QXLWorker *qxl_worker)
+static void qxl_worker_update_area(QXLWorker *qxl_worker, uint32_t surface_id,
+ SpiceRect *area, SpiceRect *dirty_rects,
+ uint32_t num_dirty_rects, uint32_t clear_dirty_region)
{
RedDispatcher *dispatcher = (RedDispatcher *)qxl_worker;
RedWorkeMessage message = RED_WORKER_MESSAGE_UPDATE;
write_message(dispatcher->channel, &message);
+ send_data(dispatcher->channel, &surface_id, sizeof(uint32_t));
+ send_data(dispatcher->channel, &area, sizeof(SpiceRect *));
+ send_data(dispatcher->channel, &dirty_rects, sizeof(SpiceRect *));
+ send_data(dispatcher->channel, &num_dirty_rects, sizeof(uint32_t));
+ send_data(dispatcher->channel, &clear_dirty_region, sizeof(uint32_t));
read_message(dispatcher->channel, &message);
ASSERT(message == RED_WORKER_MESSAGE_READY);
}