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