mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2026-08-06 16:25:31 +00:00
Pass surface directly calling display_channel_current_flush
Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Victor Toso <victortoso@redhat.com>
This commit is contained in:
parent
58a612a039
commit
5a5d1e21b5
@ -272,7 +272,7 @@ static void add_drawable_surface_images(DisplayChannelClient *dcc, Drawable *dra
|
||||
continue;
|
||||
}
|
||||
dcc_create_surface(dcc, surface_id);
|
||||
display_channel_current_flush(display, surface_id);
|
||||
display_channel_current_flush(display, surface);
|
||||
dcc_push_surface_image(dcc, surface_id);
|
||||
}
|
||||
}
|
||||
@ -282,7 +282,7 @@ static void add_drawable_surface_images(DisplayChannelClient *dcc, Drawable *dra
|
||||
}
|
||||
|
||||
dcc_create_surface(dcc, drawable->surface->id);
|
||||
display_channel_current_flush(display, drawable->surface->id);
|
||||
display_channel_current_flush(display, drawable->surface);
|
||||
dcc_push_surface_image(dcc, drawable->surface->id);
|
||||
}
|
||||
|
||||
@ -414,7 +414,7 @@ void dcc_start(DisplayChannelClient *dcc)
|
||||
red::shared_ptr<DisplayChannelClient> self(dcc);
|
||||
dcc->ack_zero_messages_window();
|
||||
if (display->priv->surfaces[0].context.canvas) {
|
||||
display_channel_current_flush(display, 0);
|
||||
display_channel_current_flush(display, &display->priv->surfaces[0]);
|
||||
dcc->pipe_add_type(RED_PIPE_ITEM_TYPE_INVAL_PALETTE_CACHE);
|
||||
dcc_create_surface(dcc, 0);
|
||||
dcc_push_surface_image(dcc, 0);
|
||||
|
||||
@ -177,7 +177,7 @@ void display_channel_draw_until(DisplayChannel *display,
|
||||
GArray* display_channel_get_video_codecs(DisplayChannel *display);
|
||||
int display_channel_get_stream_video(DisplayChannel *display);
|
||||
void display_channel_current_flush(DisplayChannel *display,
|
||||
int surface_id);
|
||||
RedSurface *surface);
|
||||
uint32_t display_channel_generate_uid(DisplayChannel *display);
|
||||
|
||||
int display_channel_get_video_stream_id(DisplayChannel *display, VideoStream *stream);
|
||||
|
||||
@ -1424,7 +1424,7 @@ void display_channel_flush_all_surfaces(DisplayChannel *display)
|
||||
|
||||
for (x = 0; x < NUM_SURFACES; ++x) {
|
||||
if (display->priv->surfaces[x].context.canvas) {
|
||||
display_channel_current_flush(display, x);
|
||||
display_channel_current_flush(display, &display->priv->surfaces[x]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1473,12 +1473,12 @@ static bool free_one_drawable(DisplayChannel *display, int force_glz_free)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void display_channel_current_flush(DisplayChannel *display, int surface_id)
|
||||
void display_channel_current_flush(DisplayChannel *display, RedSurface *surface)
|
||||
{
|
||||
while (!ring_is_empty(&display->priv->surfaces[surface_id].current_list)) {
|
||||
while (!ring_is_empty(&surface->current_list)) {
|
||||
free_one_drawable(display, FALSE);
|
||||
}
|
||||
current_remove_all(display, &display->priv->surfaces[surface_id]);
|
||||
current_remove_all(display, surface);
|
||||
}
|
||||
|
||||
void display_channel_free_some(DisplayChannel *display)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user