summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorJonathon Jongsma <jjongsma@redhat.com>2015-11-13 10:29:11 -0600
committerFrediano Ziglio <fziglio@redhat.com>2015-11-16 12:44:32 +0000
commite49072492a9f08d2aa07e103fc8f77a8bb13a64f (patch)
tree0357e99a2e6fab2a6fe157691da1a31fc1b4e3d1 /server
parent37763930cdc3c9d62e1cfe2384e841260948505e (diff)
downloadspice-e49072492a9f08d2aa07e103fc8f77a8bb13a64f.tar.gz
spice-e49072492a9f08d2aa07e103fc8f77a8bb13a64f.tar.xz
spice-e49072492a9f08d2aa07e103fc8f77a8bb13a64f.zip
Move dcc_push_stream_agent_clip() to display channel
rename to dcc_add_stream_agent_clip() Acked-by: Pavel Grunt <pgrunt@redhat.com>
Diffstat (limited to 'server')
-rw-r--r--server/display-channel.c15
-rw-r--r--server/display-channel.h2
-rw-r--r--server/red_worker.c22
3 files changed, 20 insertions, 19 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++;
diff --git a/server/display-channel.h b/server/display-channel.h
index a9ae40a4..d33f72cf 100644
--- a/server/display-channel.h
+++ b/server/display-channel.h
@@ -246,6 +246,8 @@ DisplayChannelClient* dcc_new (DisplayCha
void dcc_push_monitors_config (DisplayChannelClient *dcc);
void dcc_push_destroy_surface (DisplayChannelClient *dcc,
uint32_t surface_id);
+void dcc_add_stream_agent_clip (DisplayChannelClient* dcc,
+ StreamAgent *agent);
typedef struct DrawablePipeItem {
RingItem base; /* link for a list of pipe items held by Drawable */
diff --git a/server/red_worker.c b/server/red_worker.c
index 165e4c04..3d067c84 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -393,22 +393,6 @@ static void display_stream_clip_unref(DisplayChannel *display, StreamClipItem *i
free(item);
}
-static void dcc_push_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);
-}
-
-
void attach_stream(DisplayChannel *display, Drawable *drawable, Stream *stream)
{
DisplayChannelClient *dcc;
@@ -445,7 +429,7 @@ void attach_stream(DisplayChannel *display, Drawable *drawable, Stream *stream)
if (!region_is_equal(&clip_in_draw_dest, &drawable->tree_item.base.rgn)) {
region_remove(&agent->clip, &drawable->red_drawable->bbox);
region_or(&agent->clip, &drawable->tree_item.base.rgn);
- dcc_push_stream_agent_clip(dcc, agent);
+ dcc_add_stream_agent_clip(dcc, agent);
}
#ifdef STREAM_STATS
agent->stats.num_input_frames++;
@@ -1388,7 +1372,7 @@ static void dcc_detach_stream_gracefully(DisplayChannelClient *dcc,
/* stopping the client from playing older frames at once*/
region_clear(&agent->clip);
- dcc_push_stream_agent_clip(dcc, agent);
+ dcc_add_stream_agent_clip(dcc, agent);
if (region_is_empty(&agent->vis_region)) {
spice_debug("stream %d: vis region empty", stream_id);
@@ -1537,7 +1521,7 @@ static void streams_update_visible_region(DisplayChannel *display, Drawable *dra
if (region_intersects(&agent->vis_region, &drawable->tree_item.base.rgn)) {
region_exclude(&agent->vis_region, &drawable->tree_item.base.rgn);
region_exclude(&agent->clip, &drawable->tree_item.base.rgn);
- dcc_push_stream_agent_clip(dcc, agent);
+ dcc_add_stream_agent_clip(dcc, agent);
}
}
}