From: Jonathon Jongsma <jjongsma@xxxxxxxxxx> rename to dcc_add_stream_agent_clip() --- server/display-channel.c | 15 +++++++++++++++ server/display-channel.h | 2 ++ 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 824f601..1d5d8d3 100644 --- a/server/display-channel.c +++ b/server/display-channel.c @@ -148,6 +148,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 f2c46e0..2fdcd97 100644 --- a/server/display-channel.h +++ b/server/display-channel.h @@ -250,6 +250,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 e376be7..bffe517 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -326,22 +326,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; @@ -378,7 +362,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++; @@ -1234,7 +1218,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); @@ -1383,7 +1367,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); } } } -- 2.4.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel