Find a file
Pekka Paalanen 380adf5bf0 compositor: add weston_view_set_mask() API and state
Add API for setting a clip ('scissor' in the code) rectangle per view,
in surface coordinates. Ivi-shell requires this feature to be able to
implement the IVI Layer Manager API, which includes clipping of
surfaces.

The names weston_view_set_mask() and weston_view_set_mask_infinite()
mirror the existing weston_layer_set_mask*() functions.

This view clipping complements the weston_layer clipping, because view
clipping is defined in surface local coordinates, while layer
mask/clipping is defined in global coordinates.

View clipping requires explicit support from the renderers. Therefore a
new Weston capability bit is added: WESTON_CAP_VIEW_CLIP_MASK. Shells
(and all users) of this new API are required to check the capability bit
is set before using the API. Otherwise the rendering will not be what
they expect.

View clips are inherited through the transformation inheritance
mechanism. However, there are restrictions. The clip rectangle can be
set only on the root view of a transformation inheritance tree. The
additional transformations in child views must not rotate the coordinate
axes. These restrictions avoid corner cases in clip inheritance, and
keep the renderer implementations as simple as they are right now.
Renderers only need to do an additional intersection with the clip
rectangle which is always aligned to the surface coordinate system.

For more details, see the API documentation in the patch.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Tested-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-By: Derek Foreman <derekf@osg.samsung.com>
2015-03-04 11:55:25 +02:00
clients xdg-shell: Bump unstable version 2015-02-27 14:59:43 +02:00
data data: add reference image files for weston-ivi-shell-user-interface 2014-12-04 17:24:54 +02:00
desktop-shell compositor,shell: move debug key code to core 2015-03-02 16:56:01 +02:00
fullscreen-shell compositor: Refactor weston_output_mode_switch() 2014-11-05 13:15:13 +02:00
ivi-shell ivi-shell: add exit binding 2015-03-02 16:56:02 +02:00
m4 weston-build: Fix aclocal error during autogen.sh 2014-06-21 10:33:21 -07:00
man man: explain idle-time=0 in weston.ini 2014-11-21 16:11:44 +02:00
protocol xdg-shell: Bump unstable version 2015-02-27 14:59:43 +02:00
shared shared: add file_create_dated() helper 2015-02-25 14:47:50 +02:00
src compositor: add weston_view_set_mask() API and state 2015-03-04 11:55:25 +02:00
tests surface-screenshot: a new manual test module 2015-02-25 14:48:02 +02:00
wcap wcap: Check for mmap and malloc return value in wcap decode module 2014-05-06 15:21:27 -07:00
xwayland xwm: remove the create surface listener in weston_wm_destroy 2015-02-06 17:31:24 -08:00
.gitignore Update .gitignore 2015-02-05 14:40:30 -08:00
autogen.sh Update autotools configuration 2010-11-06 21:04:03 -04:00
configure.ac configure.ac: make use of wayland-scanner.pc 2015-02-23 18:01:46 -08:00
COPYING Add COPYING 2012-04-25 10:17:42 -04:00
Makefile.am surface-screenshot: a new manual test module 2015-02-25 14:48:02 +02:00
notes.txt Add informal notes file 2012-10-25 15:00:42 -04:00
README README: Fix typo; add link to testing docs 2014-02-05 17:20:24 -08:00
releasing.txt releasing: Note that Xwayland installation required only for Weston releases 2015-02-13 20:46:41 -08:00
weston.ini.in libinput: Add tap configuration to weston.ini 2014-08-15 15:33:55 +03:00

Weston

Weston is the reference implementation of a Wayland compositor, and a
useful compositor in its own right.  Weston has various backends that
lets it run on Linux kernel modesetting and evdev input as well as
under X11.  Weston ships with a few example clients, from simple
clients that demonstrate certain aspects of the protocol to more
complete clients and a simplistic toolkit.  There is also a quite
capable terminal emulator (weston-terminal) and an toy/example desktop
shell.  Finally, weston also provides integration with the Xorg server
and can pull X clients into the Wayland desktop and act as a X window
manager.

Refer to http://wayland.freedesktop.org/building.html for building
weston and its dependencies.

The test suite can be invoked via `make check`; see
http://wayland.freedesktop.org/testing.html for additional details.