380adf5bf0
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> |
||
---|---|---|
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.