[PATCH weston v3 00/13] Sub-surfaces v3
ppaalanen at gmail.com
Thu Apr 25 03:57:40 PDT 2013
this is the v3 of the sub-surfaces patch series, and it is no longer
an RFC. This means that I consider this series ready for merging into
Weston. The server side sub-surface protocol implementation is feature
complete. Once the protocol is deemed stable, we will move it into
Wayland core. Until then, you need to copy protocol/subsurface.xml if
you want to use it in other projects.
The previous series, v2, was announced in
Personally, I believe that all the previously open issues are now
sufficiently explored, that there should not be any big surprises.
The major changes in v3 are:
- Improved protocol object destruction rules: wl_subsurface simply
becomes inert, if the corresponding wl_surface is destroyed.
- Added support for nested sub-surfaces. You can now have
sub-sub-surfaces, and so on.
- Renamed the commit modes, and adjusted their behaviour to support
nested sub-surfaces better. If a sub-surface is synchronized, all
its children will act synchronized, too.
- Completed the server side protocol implementation with sub-surface
nesting support, and double-buffered sub-surface z-order updates.
And of course bug fixes, and a rebase on top of the current upstream
The following changes since commit 2e437207435a1b8720b5c623ccfc773e171ccf68:
window: Add a log handler for window.c clients (2013-04-16 20:46:59 -0400)
are available in the git repository at:
for you to fetch changes up to 098b2911ead4ad0d9726d1bc192a87ca8ad9295d:
window: add DBG code for leaf management and redraws (2013-04-25 12:10:18 +0300)
Giulio Camuffo (2):
shell: enable moving and resizing of a surface when clicking on a
shell: account for the subsurfaces when going fullscreen or maximizing
Pekka Paalanen (11):
protocol: add sub-surfaces
compositor: introduce sub-surfaces
tests: add sub-surface protocol tests
shell: keyboard focus and restacking fixes for sub-surfaces
window: implement shm triple-buffering
window: create sub-surfaces
window: implement per-surface redraws
clients: add subsurfaces demo
window: prevent EGL sub-surface deadlock
window: throttle resizing to the main surface
window: add DBG code for leaf management and redraws
clients/.gitignore | 3 +
clients/Makefile.am | 12 +
clients/subsurfaces.c | 792 ++++++++++++++++++++++++++++++++++++++++++++++++
clients/window.c | 460 ++++++++++++++++++++++++----
clients/window.h | 19 ++
configure.ac | 3 +
protocol/subsurface.xml | 236 +++++++++++++++
src/.gitignore | 3 +
src/Makefile.am | 4 +
src/compositor.c | 747 ++++++++++++++++++++++++++++++++++++++++++++-
src/compositor.h | 58 ++++
src/shell.c | 172 ++++++++---
tests/.gitignore | 3 +
tests/Makefile.am | 9 +-
tests/subsurface-test.c | 325 ++++++++++++++++++++
15 files changed, 2732 insertions(+), 114 deletions(-)
create mode 100644 clients/subsurfaces.c
create mode 100644 protocol/subsurface.xml
create mode 100644 tests/subsurface-test.c
This patch series applies on top of the current upstream master branch
without any additional patches. The series is browsable in cgit:
To do (free to take, not necessarily me):
- A Weston demo client with window decorations stitched from 4
sub-surfaces, handling input in all sub-surface. (Giulio already has
an example in Qt.)
- Nested sub-surface tests and a demo. Nesting is currently untested.
- Fix full-surface alpha for windows that have sub-surfaces.
- Investigate if the shell "black surfaces" could be implemented as
server-side sub-surfaces more easily than they are now.
I have not forgotten about the clipping & scaling protocol extension,
and I have some ideas for it, but it is free for taking, too. If
you're interested in taking a shot at any of these items, let me know
so we can avoid overlapping work.
When you build this series, remember --with-cairo-glesv2, or the
subsurfaces demo application may not get built.
More information about the wayland-devel