summaryrefslogtreecommitdiffstats
path: root/server/display-channel.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/display-channel.c')
-rw-r--r--server/display-channel.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/server/display-channel.c b/server/display-channel.c
index 51302bdc..63d56b46 100644
--- a/server/display-channel.c
+++ b/server/display-channel.c
@@ -141,6 +141,21 @@ DisplayChannelClient *dcc_new(DisplayChannel *display,
return dcc;
}
+void dcc_add_stream_agent_clip(DisplayChannelClient* dcc, StreamAgent *agent)
+{
+ StreamClipItem *item = stream_clip_item_new(dcc, agent);
+ int n_rects;
+
+ item->clip_type = SPICE_CLIP_TYPE_RECTS;
+
+ n_rects = pixman_region32_n_rects(&agent->clip);
+ item->rects = spice_malloc_n_m(n_rects, sizeof(SpiceRect), sizeof(SpiceClipRects));
+ item->rects->num_rects = n_rects;
+ region_ret_rects(&agent->clip, item->rects->rects, n_rects);
+
+ red_channel_client_pipe_add(RED_CHANNEL_CLIENT(dcc), (PipeItem *)item);
+}
+
MonitorsConfig* monitors_config_ref(MonitorsConfig *monitors_config)
{
monitors_config->refs++;