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