On 05/01/2013 02:16 AM, John Kåre Alsaker wrote:
On Tue, Apr 30, 2013 at 10:49 PM, Jason Ekstrand <ja...@jlekstrand.net
<mailto:ja...@jlekstrand.net>> wrote:

    On Tue, Apr 30, 2013 at 2:29 PM, Bill Spitzak <spit...@gmail.com
    <mailto:spit...@gmail.com>> wrote:

        I'm not clear on why Wayland's design requires adding 2 dummy
        objects to the api (in this case the "wl_scalar" factory and the
        per-surface "wl_surface_scalar") rather than just adding new
        methods to the wl_surface object.

        It seems wasteful for clients and servers to track this whole
        constellations of id's for the same wl_surface. It also looks
        too much like X where I had to keep the window, visual, visual
        id, screen, colormap, gc, and I forget what else, because all
        the X functions required different arguments types for no
        discernible reason when they could all be derived from the
        window id.

        I'm guessing there is a good reason for compatibility but it
        seems that just adding more message numbers after the
        already-used ones would work. To avoid collisions between
        multiple extensions the server could instead send an event
        saying "the scalar messages to wl_surface start at N" and this
        single number, rather than an per-surface extra object id, is
        all the client needs to remember.


    I agree that keeping piles of extra objects around may not be the
    best solution.  However, we cannot simply have "the scaler messages
    to wl_surface start at N" type message.  This would require
    substantially altering the wire protocol along with libwayland.

I think adding that would be mostly additions to
libwayland/wayland-scanner and wouldn't require modifying the wire
protocol at all.

The protocol allows us to add new requests to a new version of an interface. For instance, the set_buffer_transform request was added to version 2 of the wl_surface interface.

I believe the scaled video use case is reason enough to add this straight to wl_surface.

Cheers,
Ander

    Even if we did make those changes, I think we would end up right
    back where we are now having to manage extension proxies so we
    wouldn't save anything.

We would only have to manage an extension object per connection
client-side and only one object for all connections server-side, which
would be a huge improvement over the current state.

    Besides, I'm pretty sure one of Kristian's main ideas in the core
    wayland protocol is "everything's an extension" so this IS the
    extension system.

It's more like you can add new object types which may or may not be
extensions of others, not so much an extension system as a way of doing
extensions.

We should probably split off any plots for libwayland changes elsewhere...




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


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

Reply via email to