summaryrefslogtreecommitdiff
path: root/Source/DirectFB/README
diff options
context:
space:
mode:
Diffstat (limited to 'Source/DirectFB/README')
-rwxr-xr-xSource/DirectFB/README437
1 files changed, 437 insertions, 0 deletions
diff --git a/Source/DirectFB/README b/Source/DirectFB/README
new file mode 100755
index 0000000..261a1b3
--- /dev/null
+++ b/Source/DirectFB/README
@@ -0,0 +1,437 @@
+DirectFB README
+---------------
+
+ DirectFB is a graphics library which was designed with embedded
+ systems in mind. It offers maximum hardware accelerated performance
+ at a minimum of resource usage and overhead.
+
+ Check http://www.directfb.org/ for more and up to date infos.
+
+
+Supported Operating Systems
+---------------------------
+
+ - GNU/Linux
+
+ Using SDL (without acceleration support), DirectFB also supports
+ the following operating systems:
+
+ - FreeBSD (last tested: DirectFB 0.9.21 on FreeBSD 5.2)
+ - NetBSD (tested on NetBSD 1.6)
+ - OpenBSD (tested on OpenBSD 3.2)
+ (If you have problems, try ./configure --disable-mmx)
+
+ Please note that SDL support is experimental and incomplete. It is
+ intended for developers to allow development of DirectFB applications
+ in various environments.
+
+ Native (non SDL) support for the following operating systems is in progress:
+
+ - Mac OS X (tested on Mac OS X 10.3.5)
+
+ We do not have the resources to ensure that every release of
+ DirectFB works on all supported platforms. If you are a user of one
+ of the operating system listed above, and have the time to test the
+ CVS or GIT version regularly, your help is greatly appreciated.
+
+
+Build Requirements
+------------------
+
+ Mandatory are
+ - libc
+ - libpthread
+ - libm
+ - libdl
+
+ For regenerating autofoo (./autogen.sh or autoreconf)
+ - autoconf
+ - automake
+ - libtool
+ - pkg-config
+
+ Optionally, depending on the configuration you want:
+
+ FBDev
+ - Linux kernel 2.2.x or newer with working frame buffer device
+ (check /proc/fb) for the fbdev system.
+
+ SDL
+ - libSDL (Simple Direct Media Layer) for the sdl system.
+
+ X11
+ - libX11 (X11 client library) for the X11 system (libx11-dev and libxext-dev packages).
+
+ The following libraries are optional, but important (Debian package names):
+
+ Fonts
+ - libfreetype6-dev for TrueType and other fonts
+
+ Images
+ - libjpeg-dev for Joint Picture Expert Group images
+ - libpng-dev for Portable Network Graphics
+
+ Extra
+ - zlib1g-dev for compressed screenshot support (also needed by libpng)
+
+ The multi application core also requires <linux/fusion.h>, see the
+ section "Running multiple DirectFB applications" for more details.
+
+ The build of the image and font providers can be disabled but we
+ strongly suggest that you don't do this since the code examples and
+ a lot of DirectFB applications depend on the functionality provided
+ by them.
+
+ The libmpeg3 video provider requires the libmpeg3 library which is
+ not commonly installed. We provide this package on our web-site at
+ http://www.directfb.org/download/contrib/.
+
+ The avifile and flash video providers that used to be shipped with
+ DirectFB have been moved to the DirectFB-extra package.
+
+ We suggest you also install pkg-config available from
+ http://www.freedesktop.org/software/pkgconfig/. It will help you
+ to compile applications based on DirectFB.
+
+
+Usage Requirements
+------------------
+
+ Depending on the DirectFB application you want to run, you need some
+ or all of these:
+
+ - A working frame buffer device (check the output of 'fbset -i').
+ - A keyboard (if it works on the console, everything should be fine).
+ - A PS/2 or serial mouse for windowing. USB and ADB mice do also work
+ via PS/2 emulation.
+
+ Using the single application core you always need access to /dev/tty0,
+ /dev/fb0 and the mouse device (/dev/psaux, /dev/mouse).
+ You can either run all DirectFB applications as root or allow users
+ to access these devices. A reasonable way to do this is to add users
+ to the group tty (or some other group) and allow this group to read
+ and write the files in /dev:
+
+ crw-rw---- 1 root tty 29, 0 /dev/fb0
+ crw-rw---- 1 root tty 10, 1 /dev/psaux
+ crw-r----- 1 root tty 4, 0 /dev/tty0
+
+ If you are using the multi application core, only the master process needs
+ access to all of these devices. Additional processes (slaves) just need
+ access to /dev/fb0 and:
+
+ crw-rw---- 1 root fusion 29, 0 /dev/fusion/0
+
+ Note that the master creates a shared memory file, probably
+ in '/dev/shm/fusion.0'. It's read/writeable for anyone matching
+ the master process' user or group.
+
+
+ Some applications from the DirectFB-examples package have additional
+ requirements:
+
+ - A video card supported by video4linux for df_video.
+ - A joystick for df_joystick.
+
+
+Running multiple DirectFB applications at the same time
+-------------------------------------------------------
+
+ With the default build of the DirectFB library, only one DirectFB
+ application may be running. However you have the option to use the
+ multi application core of DirectFB which allows multiple DirectFB
+ applications to run at the same time within a session.
+
+ DirectFB applications communicate through a layer we call "Fusion".
+ This layer was previously implemented completely in user space using
+ semaphores and message queues. But since 0.9.15 the Fusion Kernel
+ Device is required which implements critical parts of Fusion and thus
+ lead to better performance and decent stability. To install this kernel
+ module (only available for Linux yet), find the linux-fusion
+ module in our CVS or GIT repository or on the DirectFB website.
+ For DirectFB 1.4.x releases you should use linux-fusion 8.1.1 or newer.
+
+ Compile DirectFB with multi-application core enabled:
+
+ ./configure --enable-multi
+
+ Make sure your Linux kernel supports tmpfs. This is explained in
+ the kernel sources in Documentation/filesystems/tmpfs.txt.
+ Mount a tmpfs filesystem as /dev/shm:
+
+ mount tmpfs /dev/shm -ttmpfs
+
+ Optionally a mount point can be specified via the "tmpfs" option,
+ see directfbrc(5). The option has to be the same for all processes.
+
+ A good way to test the multi-application core is to install the lite
+ toolkit and DFBTerm, a DirectFB terminal (both available in the
+ DirectFB CVS/GIT repository). You can then start DirectFB applications
+ from dfbterm.
+
+
+Recommendations
+---------------
+
+ To take full advantage of hardware acceleration,
+ a Matrox G200/G400/G450/G550 graphics card is recommend for this
+ version of DirectFB. The drivers for ATI128, Voodoo 3/4/5/Banshee,
+ NeoMagic and S3 Savage cards included with this release are work in
+ progress and only yet support a subset of the possible accelerations.
+
+
+Installation
+------------
+
+ 1) In the DirectFB directory type:
+
+ ./configure <options>
+ make
+ make install (as superuser)
+
+ Use './configure --help' to get a list of possible configure options.
+
+ Imported options include:
+ --enable-multi Enables the Multi Application Core
+ --enable-debug Enables many debug messages and assertions
+ --enable-trace Enables run time stack trace information
+
+ Debugging and especially stack trace support are a performance
+ impact. It may be noticably slower in some areas, e.g. text drawing.
+
+ You may use the options "no-debug" and "no-trace" by default, e.g.
+ in '<prefix>/etc/directfbrc', and use "--dfb:debug,trace" on the command
+ line if needed.
+
+ 2) Make sure that "<prefix>/lib" is listed in your /etc/ld.so.conf.
+ The default prefix is "/usr/local". After adding it you have to
+ run 'ldconfig' as superuser.
+
+ Alternatively, you can add the path to the environment
+ variable LD_LIBRARY_PATH. This is useful for temporarily
+ switching to another installed version.
+
+ 3) You might want to copy fb.modes to /etc or merge it with your
+ existing /etc/fb.modes file. The first entry will be used by
+ default - copy other entries you may need.
+
+ 4) If you want to use a serial mouse, create a link called /dev/mouse
+ that points to serial device (e.g. /dev/ttyS0). Then add a line
+ describing your mouse-protocol to /etc/directfbrc or ~/.directfbrc:
+ "mouse-protocol=[ms|ms3|mouseman|mousesystems]".
+
+ 5) If you are cross compiling and have installed the required libraries
+ someplace other than /usr/local/lib be sure to add the bin directory
+ for those libraries to the front of your 'PATH'.
+
+ For instance if you configured using:
+ --prefix=/dfb/usr/local
+ then be sure to
+ export PATH=/dfb/usr/local/bin:$PATH
+ before compiling and installing.
+
+
+Configuring DirectFB
+--------------------
+
+ There are lots of things that can be configured. We try to ship DirectFB
+ with reasonable defaults but you might have to tweak things. There are
+ several ways to do this. You may edit the system-wide configuration
+ file <prefix>/etc/directfbrc or the user-specific $HOME/.directfbrc.
+ There's a manual page called directfbrc(5) that documents all the settings.
+ The same manual page also explains how DirectFB application can be
+ configured via the command-line.
+
+
+Configuring the Linux frame buffer device
+-----------------------------------------
+
+ DirectFB's prefered way-of-working needs a Linux kernel
+ with frame buffer support. Check the documentation in the kernel tree
+ (/usr/src/linux/Documentation/fb/) on how to enable the frame buffer device
+ for your graphics card.
+
+ The generic VESA frame buffer device does not support mode switching
+ and you will not get hardware acceleration. To make DirectFB work with
+ veasfb, you should add the following lines to /etc/lilo.conf:
+
+ append="video=vesa:ywrap,mtrr"
+
+ 'ywrap' enables panning with wraparound.
+ 'mtrr' enables setting caching type for the frame buffer to write-combining.
+
+ vga=791
+
+ This sets the mode on startup. 791 means 1024x768@16, 788 means 800x600@16.
+
+ All VESA Video Modes:
+
+ Bits 640x480 800x600 1024x768 1280x1024 1600x1200
+ 8 769 771 773 775 796
+ 16 785 788 791 794 798
+ 32 786 789 792 795 799
+
+ Other frame buffer devices support mode switching. DirectFB will only
+ support modes listed in your /etc/fb.modes file. By default the first
+ entry found is used.
+
+ If you have a Matrox card you may want to try the vsync patch found in
+ the patches directory that enables applications to "idle wait" for the
+ vertical retrace.
+
+
+Using the builtin "window manager"
+----------------------------------
+
+ Since DirectFB lacks a real window manager, we added a hack to the
+ window stack to allow for basic window management. While pressing
+ the <Meta> (or Windows) key or alternatively <Caps-Lock> you can do
+ the following:
+
+ - Drag your mouse to move the focused window.
+ - Drag and press <Ctrl> to resize the focused window.
+ - Drag and press <Alt> to change the opacity of the focused window.
+ - Press C to close the focused window.
+ - Press A to lower the focused window to the bottom.
+ - Press X to cycle the focus through the windows.
+ - Press S to raise the lowest window to the top.
+ - Press P to enable and show the mouse cursor.
+ - Press R to rotate the focused window by 90 degree.
+ - Press E to focus the window currently under the mouse cursor,
+ useful in conjunction with 'X'.
+ - Press Escape to return from fullscreen mode to the desktop.
+ (currently not advisable if the fullscreen app is still flipping)
+ - Press F12 to redraw the whole window stack.
+
+ You might want to use the "capslock-meta" option (see directfbrc(5))
+ if you don't have a <Meta> key.
+
+
+Documentation
+-------------
+
+ A complete API reference documentation in HTML format is created during
+ the build in the docs directory. You may also access the API reference
+ as well as a concepts overview, tutorials and the FAQ online at
+ http://www.directfb.org/documentation/.
+
+
+Thanks to
+---------
+
+ Johannes Zellner <johannes@zellner.org>
+ Till Adam <till@adam-lilienthal.de>
+ Joachim Steiger <roh@hyte.de>
+ Felix von Leitner <leitner@fefe.de>
+ Johannes Stezenbach <js@convergence.de>
+ Michael Natterer <mitch@convergence.de>
+ Holger Waechtler <holger@convergence.de>
+ Kim JeongHoe <king@mizi.com>
+ Jason Gaiser <jasno@san.rr.com>
+ W. Michael Petullo <mike@flyn.org>
+ Jiri Svoboda <Jiri.Svoboda@seznam.cz>
+ Hallvar Helleseth <hallvar@ii.uib.no>
+ Topi Kanerva <topi.kanerva@eke.fi>
+ Daniel Mack <daniel@convergence.de>
+ Ara Hacopian <ahacop@anthrotronix.com>
+ Mike Haertel <mike@albert.ai.mit.edu>
+ Enno Brehm <enno@convergence.de>
+ Martin Mueller <mm@convergence.de>
+ Sebastian Klemke <packet@convergence.de>
+ Fredrik Hallenberg <hallon@lysator.liu.se>
+ Antonino Daplas <adaplas@users.sourceforge.net>
+ Scott A McConnell <samcconn@cotw.com>
+ Alex SONG <zzaleson@uqconnect.net>
+ Ville Syrjälä <syrjala@sci.fi>
+ Brian J. Murrell <a40e8119bbddbe7b3d281db117f19b32@interlinx.bc.ca>
+ Tim Janik <timj@gtk.org>
+ Billy Biggs <vektor@dumbterm.net>
+ Andreas Oberritter <obi@tuxbox.org>
+ Simon Ueng <simon@ftech.com.tw>
+ Scott Brumbaugh <scottb.lists@verizon.net>
+ Sebastian Ley <sebastian.ley@mmweg.rwth-aachen.de>
+ James Su <suzhe@turbolinux.com.cn>
+ Sarma Kolluru <Sarma.Kolluru@nsc.com>
+ Oliver Schwartz <Oliver.Schwartz@gmx.de>
+ Florian <florian.fernandez2@wanadoo.fr>
+ J.P. Delport <jpdelport@csir.co.za>
+ Michel Dänzer <michel@daenzer.net>
+ Maurizio Monge <monge@sns.it>
+ Tim Wright <tim.wright@iosystems.co.uk>
+ Liam Girdwood <liam.girdwood@wolfsonmicro.com>
+ Andreas Robinson <andro134 at student.liu.se>
+ Michael Hunold <hunold@convergence.de>
+ Brandon M. Reynolds <breynolds@comtime.com>
+ Micha Nelissen <micha@neli.hopto.org>
+ Vadim Catana <vcatana@registru.md>
+ Henning Glawe <glaweh@physik.fu-berlin.de>
+ Ed Millard <emillard@direcway.com>
+ Claudio Ciccani <klan82@cheapnet.it>
+ Tom Bridgwater <genuss@gmail.com>
+ Oskar Liljeblad <oskar@osk.mine.nu>
+ Bryce Nichols <bryce@bnichols.org>
+ Stefan Lucke <stefan@lucke.in-berlin.de>
+ Mws <mws@twisted-brains.org>
+ Ivan Daniluk <ivan@shvydko.ua>
+ Mark Salter <msalter@redhat.com>
+ Martin Lütken <nitram@lutken.dk>
+ Sylvain Meyer <sylvain.meyer@worldonline.fr>
+ Mark Adams <mark147m@gmail.com>
+ Damian Kowalewski <damian.kowalewski@mail.mcgill.ca>
+ Jakub Bogusz <qboosh@pld-linux.org>
+ Nathanael D. Noblet <nathanael@gnat.ca>
+ Ryan Burns <rburns@mvista.com>
+ Colin Watson <cjwatson@debian.org>
+ Guillem Jover <guillem@debian.org>
+ Jeff Bailey <jbailey@ubuntu.com>
+ Andreas Jochens <aj@andaco.de>
+ Daniel J Laird <daniel.j.laird@nxp.com>
+ Marko Mäkelä <marko.makela@hut.fi>
+ Nils Magnus Larsgard <nmlarsgaard@atmel.no>
+ Pär Degerman <parde@ikp.liu.se>
+ Michel van Noorloos <michel.van.noorloos@sioux.nl>
+ Gery <gxkahn@gmail.com>
+ Shane <shanevolpe@gmail.com>
+ Paul Mackerras <paulus@samba.org>
+ Attilio Fiandrotti <attilio.fiandrotti@gmail.com>
+ Vaclav Slavik <vslavik@fastmail.fm>
+ Philip Jägenstedt <philipj@opera.com>
+ sridewa <sridewa@gmail.com>
+ Eugene Everson <eugene@tranzas.co.jp>
+ Mike Crowe <mac@mcrowe.com>
+ Kieran Bingham <kbingham@mpc-data.co.uk>
+ Luis Mondesi +lemsx1 +gmail,com
+ Keith Mok <ek9852@gmail.com>
+ GARDET Guillaume <ggardet@adeneo.adetelgroup.com>
+ Phil Endecott <spam_from_directfb_dev@chezphil.org>
+ Brian Austin <brian.austin@cirrus.com>
+ Keith Mok <ek9852@gmail.com>
+ Young Hoon <jcybha@hanmail.net>
+
+Special thanks to Ville Syrjala for his great work on the
+Matrox TV-Out support and for his several patches including
+fixes and enhancements for the whole library. He also did
+several ports like UAE or mplayer for DirectFB. Check out his
+site at 'http://www.sci.fi/~syrjala/'.
+
+
+Legal stuff
+-----------
+
+ (c) Copyright 2001-2009 The DirectFB Organization (directfb.org)
+ (c) Copyright 2000-2004 Convergence (integrated media) GmbH
+
+ All rights reserved.
+
+ Written by Denis Oliver Kropp <dok@directfb.org>,
+ Andreas Hundt <andi@fischlustig.de>,
+ Sven Neumann <neo@directfb.org>,
+ Ville Syrjälä <syrjala@sci.fi> and
+ Claudio Ciccani <klan@users.sf.net>.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ The complete text of the license is found in the file COPYING.