Go to file
Pekka Paalanen d7ca6b0bbe pixman-renderer: implement source clipping
Implement a way to do composition clipping with a region32 given in
source image space.

Pixman does not directly support this kind of operation at all. If you
pixman_image_set_clip_region32() on a source image, it will be ignored
unless you also
	pixman_image_set_source_clipping(image, 1);
	pixman_image_set_has_client_clip(image, 1);
but then it takes the region from source image and still uses it in the
destination coordinate space. For reference:
http://lists.freedesktop.org/archives/pixman/2015-March/003501.html
That is actually the intended behaviour in Pixman.

This patch implements source clipping by taking each rectangle of the
source clip region, wrapping that sub-rect of the source image in a new
pixman_image_t, and compositing it separately. This might be very heavy as
we are painting the whole damage the number of rectangles times, but
practically always the number of rectangles is one.

An alternative solution would be to use mask images of type PIXMAN_a1,
render the source clip region in it, and set the transformation. You'd
probably also want to cache those images. And because we use the mask to
apply view->alpha, you'd have to use PIXMAN_a8 in those cases.

v2: Fix a comment.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-By: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
2015-03-11 13:38:28 +02:00
clients window: Fix crash in input_set_pointer_image when cursor is special 2015-03-05 10:14:25 +02:00
data data: add reference image files for weston-ivi-shell-user-interface 2014-12-04 17:24:54 +02:00
desktop-shell shell,compositor-x11: Fix trivial memory leaks 2015-03-09 09:26:46 +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 pixman-renderer: implement source clipping 2015-03-11 13:38:28 +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 xwayland: wm: fix an invalid read 2015-03-11 11:58:53 +02: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.