pixman-renderer: Add repaint debugging feature

Add 'R' as a debug shortcut that highlights repainted regions.
pixman-renderer: Move shadow buffer into renderer

The X11 backend uses a shadow buffer to be able to support transformed
outputs. However, this belongs in the renderer, since otherwise this
code would have to be copied into every backend that uses the pixman
renderer and supports transformed outputs.
compositor-drm: Split kms initialization out of init_egl()
compositor-drm: Put logic of destroy/releasing bo's in its own function

We have this duplicated in a few places.
compositor-drm: Support creating drm_fb backed by dumb buffers
compositor-drm: Add support for using the pixman renderer

If --use-pixman is passed as command line option to weston, the drm
backend will use the pixman renderer instead of the gl one.
pixman-renderer: Don't unreference NULL hw_buffer image

If the buffer for an output was never set, or was reset to NULL at some
point, destroying the renderer output private would cause a crash.
terminal: Handle the window close event

There may be multiple windows open, so destroy the terminal instead of exiting.

Signed-off-by: Dima Ryazanov <dima@gmail.com>
clients: Make libtoytoolkit a libtool library

This way libtool will remember the libtoytoolkit LIBADD libraries.
We can drop the toolkit_libs hack and just link to libtoytoolkit.la and
libtool will add the dependencies.
Add new shared/image-loader.h to separate include dependencies

Before, cairo-util.h would combine pixman and cairo includes.  X11 and
Wayland compositors uses this to load an image as a pixman_image_t but are
forced to include cairo headers.  Clients use load_cairo_surface to
load images as cairo_surface_t's, but are forced to include pixman.h.

We move the load_image pixman prototype to its own header, so compositors
can get at the pixman prototype without including cairo.h and clients
can include the cairo based function without including pixman.h.
toytoolkit: Remove left-over pixman dependency

toytoolkit doesn't use pixman.  Remove the pixman.h include and the
LDADD.

https://bugs.freedesktop.org/show_bug.cgi?id=57812
matrix: track transform type

Introduce several matrix transform types and track type for matrix.
Could be usefull for activating some fastpath that depends on some
transform type.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
pixman-renderer: handle surface transform matrix properly

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
pixman renderer: respect output position

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
shell: Whitespaces cleanup

Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
weston-launch: Clear environment and set it up from scratch

With recent systemd[1] XDG_VTNR will leak through to pam, which ends up
setting a vtnr pam argument with the wrong value.  The fix is to clear
XDG_VTNR first, but what we should have been doing all along is resetting
the environment.

Thanks to Ray Strode for helping debug this.

[1] http://cgit.freedesktop.org/systemd/systemd/commit/?id=a8573ccc35a4efe8900be5d48c6c803670540c2b
compositor-drm: Use matrix type to test for drm plane compatibility

The drm planes (sprites) only support translation and scaling.  Now that
we have matrix.type, we can just look there to see if the transform is
compatible with kms.
Add --version option
configure.ac: Bump git master version to 1.0.90

We use 1.0.90 as the version number for the git master code.  This way it's
always newer than any stable version.
text: add pre-edit styling support to protocol

Also add a separate preedit-cursor event and add a commit argument to
preedit-string to allow to support commit on reset. Fix editor and
keyboard example to adapt to the protocol changes.