d7ca6b0bbe
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> |
||
---|---|---|
clients | ||
data | ||
desktop-shell | ||
fullscreen-shell | ||
ivi-shell | ||
m4 | ||
man | ||
protocol | ||
shared | ||
src | ||
tests | ||
wcap | ||
xwayland | ||
.gitignore | ||
autogen.sh | ||
configure.ac | ||
COPYING | ||
Makefile.am | ||
notes.txt | ||
README | ||
releasing.txt | ||
weston.ini.in |
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.