diff options
author | Jonathon Jongsma <jjongsma@redhat.com> | 2015-11-13 10:29:11 -0600 |
---|---|---|
committer | Frediano Ziglio <fziglio@redhat.com> | 2015-11-16 12:44:32 +0000 |
commit | e49072492a9f08d2aa07e103fc8f77a8bb13a64f (patch) | |
tree | 0357e99a2e6fab2a6fe157691da1a31fc1b4e3d1 /server | |
parent | 37763930cdc3c9d62e1cfe2384e841260948505e (diff) | |
download | spice-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.c | 15 | ||||
-rw-r--r-- | server/display-channel.h | 2 | ||||
-rw-r--r-- | server/red_worker.c | 22 |
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); } } } |