Weston SDK

Kristian Høgsberg hoegsberg at gmail.com
Thu Feb 14 08:27:22 PST 2013


Hi,

I made a little experiment last night:

  http://cgit.freedesktop.org/~krh/overlay-plugin

It's an out-of-tree weston plugin.  It's just a silly little overlay
that you can pop up with mod-space, but the interesting part here is
that it's building outside weston [1].  Current, that works by copying
the header files that defines the weston <-> plugins API, but I'd like
to start thinking about how to formalize this process.  I don't think
it should be a big problem, it more or less boils down to:

 - Interface version in headers and at runtime

 - Header files installed in /usr/include/weston

 - pkg-config file

Now, I don't want this to slow down what we can do with weston
internals, so this won't be stable API across major releases for the
forseeable future.  But for a stable branch we should be able to avoid
breaking the plugin API.  For 1.0 for example, we haven't changed the
API or ABI at all.  

Another caveat is that this doesn't imply that the exported API is
particular useful or coherent.  I think what we have is fairly decent
though, it's just that we never developed it with an eye to be an
external, self-contained API.  So we may be exposing too little or too
much or there may be broken or inconsitent stuff in there.  But I
think the first step towards working this out is to try to expose the
API and just be careful about not promising too much in
terms of usefulness or stability initially.

Kristian

[1] Ok, there's another interesting thing in there.  As the overlay
    client code is building out-of-tree too, we don't have toytoolkit
    available.  Instead I've used GTK+ to create an overlay client.
    This requires GTK+ master with the wayland backend enabled, of
    course, but it also need a gtk+ patch to allow the application to
    override the default wl_shell integration.  Normally GTK+ will set
    up all windows as wl_shell_surfaces, but in this case we want to
    pass the underlying wl_surface to the overlay extension provided
    by the plugin.  For this to work, GTK+ needs this patch

      http://people.freedesktop.org/~krh/gtk-set-custom.patch

    to allow the application to disable the wl_shell integration.  The
    overlay client is just a simple example, of course, but this
    approach could be used for writing something like the
    desktop-shell client with a real toolkit.


More information about the wayland-devel mailing list