[PATCH weston v3 00/13] Sub-surfaces v3

Pekka Paalanen ppaalanen at gmail.com
Thu Apr 25 03:57:40 PDT 2013

Hi all,

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
master branch.

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:

  git://git.collabora.co.uk/git/user/pq/weston.git subsurface-v3

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 mailing list