[Spice-devel] [PATCH 06/19] display: Simplify display_channel_create_surface
Fabiano Fidêncio
fidencio at redhat.com
Wed Nov 25 08:55:56 PST 2015
On Wed, Nov 25, 2015 at 4:27 PM, Frediano Ziglio <fziglio at redhat.com> wrote:
> From: Marc-André Lureau <marcandre.lureau at gmail.com>
>
> ---
> server/display-channel.c | 32 +++++++++++++-------------------
> 1 file changed, 13 insertions(+), 19 deletions(-)
>
> diff --git a/server/display-channel.c b/server/display-channel.c
> index b8d5a81..4a533db 100644
> --- a/server/display-channel.c
> +++ b/server/display-channel.c
> @@ -1543,7 +1543,6 @@ void display_channel_create_surface(DisplayChannel *display, uint32_t surface_id
> void *line_0, int data_is_valid, int send_client)
> {
> RedSurface *surface = &display->surfaces[surface_id];
> - uint32_t i;
>
> spice_warn_if(surface->context.canvas);
>
> @@ -1567,28 +1566,23 @@ void display_channel_create_surface(DisplayChannel *display, uint32_t surface_id
> ring_init(&surface->depend_on_me);
> region_init(&surface->draw_dirty_region);
> surface->refs = 1;
> - if (display->renderer != RED_RENDERER_INVALID) {
> - surface->context.canvas = create_canvas_for_surface(display, surface, display->renderer);
> - if (!surface->context.canvas) {
> - spice_critical("drawing canvas creating failed - can`t create same type canvas");
> - }
> -
> - if (send_client)
> - send_create_surface(display, surface_id, data_is_valid);
> - return;
> - }
>
> - for (i = 0; i < display->num_renderers; i++) {
> - surface->context.canvas = create_canvas_for_surface(display, surface, display->renderers[i]);
> - if (surface->context.canvas) { //no need canvas check
> - display->renderer = display->renderers[i];
> - if (send_client)
> - send_create_surface(display, surface_id, data_is_valid);
> - return;
> + if (display->renderer == RED_RENDERER_INVALID) {
> + int i;
> + for (i = 0; i < display->num_renderers; i++) {
> + surface->context.canvas = create_canvas_for_surface(display, surface, display->renderers[i]);
> + if (surface->context.canvas) {
> + display->renderer = display->renderers[i];
> + break;
> + }
> }
> + } else {
> + surface->context.canvas = create_canvas_for_surface(display, surface, display->renderer);
> }
>
> - spice_critical("unable to create drawing canvas");
> + spice_return_if_fail(surface->context.canvas);
> + if (send_client)
> + send_create_surface(display, surface_id, data_is_valid);
> }
>
> static void on_disconnect(RedChannelClient *rcc)
> --
> 2.4.3
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
Acked-by: Fabiano Fidêncio <fidencio at redhat.com>
More information about the Spice-devel
mailing list