fbdev: Add an fbdev compositor backend using pixman and evdev
authorPhilip Withnall <philip@tecnocode.co.uk>
Sat, 2 Feb 2013 12:02:32 +0000 (12:02 +0000)
committerKristian Høgsberg <krh@bitplanet.net>
Fri, 8 Feb 2013 01:49:22 +0000 (20:49 -0500)
commit4f49917ec5a3e212d85b15c96a580116c3ef5a15
treed0170fae3c19b026d913efee0b8b3b19498e4b1a
parent4174791d9eceab6d7db29abaecc59f3716b55a11
fbdev: Add an fbdev compositor backend using pixman and evdev

Add a frame buffer backend using pixman to render to fbdev.
This has been tested against nouveaufb but nothing else. Much of the code
came straight from the rpi backend (and copyright has been attributed
accordingly).

The behaviour of this backend on less modern frame buffers has yet to be
tested.

The refresh rate is calculated from the frame buffer's metadata. Every frame
is finished in synchrony with the refresh rate.

Frame buffer devices are currently specified on the command line (or using
the default of /dev/fb0); udev could be used in future to enumerate them.

pixman is used for compositing, and a suitable pixman format is built from
the frame buffer's metadata. This doesn't support the full range of
frame buffer formats, but does support varying BPPs of RGBA and ARGB. That
should be enough for now.

The following are not currently supported:
 • FOURCC
 • Non-packed formats (interleaved, planes, etc.)
 • Non-true-colour formats (monochrome, greyscale, etc.)
 • Big-endian formats (with component MSBs on the right)
 • Non-RGBA and non-ARGB formats

Signed-off-by: Philip Withnall <philip@tecnocode.co.uk>
configure.ac
src/Makefile.am
src/compositor-fbdev.c [new file with mode: 0644]