[PATCH weston 4/4] Handle wl_output.release
Jason Ekstrand
jason at jlekstrand.net
Mon May 19 13:16:13 PDT 2014
Looks good to me.
Reviewed-By: Jason Ekstrand <jason at jlekstrand.net>
On Mon, May 19, 2014 at 12:27 PM, Neil Roberts <neil at linux.intel.com> wrote:
> The wl_output.release request is now handled. It just causes the
> resource to be destroyed. This is also set as the destructor when
> zombifying the resource.
> ---
> src/compositor.c | 23 +++++++++++++++++++----
> 1 file changed, 19 insertions(+), 4 deletions(-)
>
> diff --git a/src/compositor.c b/src/compositor.c
> index ea0c9b4..f9bd25b 100644
> --- a/src/compositor.c
> +++ b/src/compositor.c
> @@ -3038,6 +3038,18 @@ weston_compositor_stack_plane(struct
> weston_compositor *ec,
> wl_list_insert(&ec->plane_list, &plane->link);
> }
>
> +static void
> +output_release(struct wl_client *client,
> + struct wl_resource *resource)
> +{
> + wl_resource_destroy(resource);
> +}
> +
> +static struct wl_output_interface
> +output_interface = {
> + output_release
> +};
> +
> static void unbind_resource(struct wl_resource *resource)
> {
> wl_list_remove(wl_resource_get_link(resource));
> @@ -3052,14 +3064,15 @@ bind_output(struct wl_client *client,
> struct wl_resource *resource;
>
> resource = wl_resource_create(client, &wl_output_interface,
> - MIN(version, 2), id);
> + MIN(version, 3), id);
> if (resource == NULL) {
> wl_client_post_no_memory(client);
> return;
> }
>
> wl_list_insert(&output->resource_list,
> wl_resource_get_link(resource));
> - wl_resource_set_implementation(resource, NULL, data,
> unbind_resource);
> + wl_resource_set_implementation(resource, &output_interface,
> + data, unbind_resource);
>
> wl_output_send_geometry(resource,
> output->x,
> @@ -3159,7 +3172,9 @@ weston_output_destroy(struct weston_output *output)
> wl_global_destroy(output->global);
>
> wl_resource_for_each_safe(resource, tmp, &output->resource_list)
> - weston_resource_zombify(resource, ~0);
> + weston_resource_zombify(resource,
> +
> WL_REQUEST_OPCODE(wl_output_interface,
> + release));
> }
>
> static void
> @@ -3357,7 +3372,7 @@ weston_output_init(struct weston_output *output,
> struct weston_compositor *c,
> output->compositor->output_id_pool |= 1 << output->id;
>
> output->global =
> - wl_global_create(c->wl_display, &wl_output_interface, 2,
> + wl_global_create(c->wl_display, &wl_output_interface, 3,
> output, bind_output);
> wl_signal_emit(&c->output_created_signal, output);
> }
> --
> 1.9.0
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20140519/ddd9114d/attachment.html>
More information about the wayland-devel
mailing list