On 08/21/2014 04:30 PM, Jasper St. Pierre wrote:

How do you create more than one copy of the role object in the first place?

I thought you could create any number of wl_shell_surface objects for the same wl_surface.

    May also be really nasty if a former object-less role is updated
    with a new api that returns a role object. Now all users of that
    role have to be updated to store this object they didn't use to need
    so it won't get deleted...

Methods don't return parameters. Clients allocate new object IDs and
then pass those to the server. You cannot add new API that returns a
role object without breaking API in the first place, since it's
modifying the number of parameters of the method.

I am adding a new global object. Lets say that new api is added to cursors. To support this add a new wl_cursor global object that you use to create wl_cursor_surface api objects from wl_surfaces.

Right now a client that uses a surface as a cursor only has to store the wl_surface (and the wl_pointer that it calls set_cursor on).

But as soon as any part of the client wants to use the new wl_cursor_surface api, it creates an object that must remain in existence (and thus stored somewhere) until the wl_surface is destroyed, otherwise it will "lose the cursor role". This may require considerable rewriting of existing client code since it currently does not store this object. It would be much easier if the client could throw away the api object after using it, the same way I throw away the result of dynamic_cast after using it. In particular if it is only going to call the api once.

    A client subroutine that uses a role the caller does not know about
    will have to use a static map to look up cached role objects by
    wl_surface id. And some scheme has to be figured out to delete them
    when the wl_surface is deleted.

That doesn't make any sense. What kind of client subroutine are you
talking about?

One that knows about xdg_shell or ivi_shell while the caller only knows about wl_shell or wl_surface. Or knows about this new wl_cursor_surface api.

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to