Go to file
Pekka Paalanen 7fb46fbe95 rpi: Dispmanx elements as planes, completion callback
Dispmanx elements are like hardware overlays. Assign one weston_surface
to each overlay created, and the VideoCore will composite it on screen.
The maximum number of elements is configurable via the command line.
Specifying zero will disable the overlays (planes/elements) altogether,
and use only GLESv2 compositing.

You need an up-to-date Raspberry Pi firmware for:
- vc_dispmanx_resource_create(), that will also take stride. Otherwise
  surfaces ending up in elements may show up as corrupted.
- off-line compositing support. The on-line compositing of elements
  cannot handle too many elements. Look for the comments around
  DEFAULT_MAX_PLANES in the code.

Elements must be double-buffered to avoid tearing. Therefore two buffers
(Dispmanx resources) are allocated for each element. A command line
option is added to allow single-buffering instead to save memory, with
the risk of tearing.

The page flip timer is replaced with the Dispmanx update completion
callback. The callback is executed in a separate thread, therefore a
pipe is set up to integrate properly with Weston core.

If not disabled, usually all surfaces are assigned into planes, and
nothing is composited in GLESv2. Planes do not support surface
transformations though, so compositing will automatically switch the
necessary surfaces to GLESv2 compositing as needed. Switching between
GLESv2 and elements may cause transient visual glitches and jerks.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2012-11-08 16:56:26 -05:00
clients keyboard: Rename keyboard to weston-keyboard 2012-11-08 14:27:37 -05:00
data window.c: frame_button: Maximize, minimize, close, icon buttons in window frame 2012-05-10 16:19:33 -04:00
man build: make default backend configurable 2012-11-08 16:56:25 -05:00
protocol Fix spelling errors 2012-10-04 11:24:50 -04:00
shared toytoolkit: Don't draw shadows for maximized windows. 2012-10-10 11:23:41 -04:00
src rpi: Dispmanx elements as planes, completion callback 2012-11-08 16:56:26 -05:00
tests test-client: Make sure we process pending eevents before we verify state 2012-10-21 22:30:26 -04:00
wcap wcap: Fix typo in usage output. 2012-07-23 14:25:14 -04:00
.gitignore Add cscope.out to .gitignore 2012-07-09 17:57:55 -04:00
autogen.sh Update autotools configuration 2010-11-06 21:04:03 -04:00
configure.ac rpi: a backend for Raspberry Pi 2012-11-08 16:56:26 -05:00
COPYING Add COPYING 2012-04-25 10:17:42 -04:00
Makefile.am man: add man page for weston 2012-08-29 15:32:05 -04:00
notes.txt Add informal notes file 2012-10-25 15:00:42 -04:00
README Flesh out README a bit, link to building instructions 2012-07-20 12:26:23 -04:00
weston.ini Add sample configuration for workspaces to weston.ini 2012-08-31 19:50:59 -04: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 buiding
weston and its dependencies.