From ArchWiki
Revision as of 03:17, 1 April 2012 by Spaesani (talk | contribs)
Jump to: navigation, search

DirectFB Overview

DirectFB stands for Direct Frame Buffer. It is a software library for GNU/Linux/Unix-based operating systems with a small memory footprint that provides graphics acceleration, input device handling and abstraction layer, and integrated windowing system with support for translucent windows and multiple display layers on top of the Linux framebuffer without requiring any kernel modifications.[2] DirectFB is free software licensed under the terms of the GNU Lesser General Public License (LGPL).

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 along with linux-fusion which allows multiple DirectFB applications to run at the same time within a session.

DirectFB somewhat lacks frameworks for building apps on top of it. It lacks of a real Window Manager (WM). The recently released WM SaWMan and its "testman" could be a good starting point, although it's not fully functional. see

DirectFB 2.0: Universal Framework Support (future work/direction) The main goal of the new universal framework is to make the core of DirectFB an api agnostic library. Sort of a OS kernel for the gpu. To reach this goal some code will be moved out of the core into modules and the internal core api will be exposed as a system programming api for library writers. see

disko (this shows a lot of promise and can use directfb or fbdev directly)


Build Requirements

  Mandatory are
    - libc
    - libpthread
    - libm
    - libdl
  For regenerating autofoo (./ or autoreconf)
    - autoconf
    - automake
    - libtool
    - pkg-config
  Optionally, depending on the configuration you want:
  FBDev (when using the kernel frame buffer backend (somewhat the goal of at least the initial directfb) the fbdev install/setup needs explaining, eg: /dev/fb0 .. )
    - Linux kernel 2.2.x or newer with working frame buffer device
      (check /proc/fb) for the fbdev system.
    - libSDL (Simple Direct Media Layer) for the sdl system.
    - libX11 (X11 client library) for the X11 system (libx11-dev and libxext-dev packages).
  The following libraries are optional, but important (Debian package names):
    - libfreetype6-dev for TrueType and other fonts
    - libjpeg-dev for Joint Picture Expert Group images
    - libpng-dev for Portable Network Graphics
    - zlib1g-dev for compressed screenshot support (also needed by libpng)

If you are planning to run multiple DirectFB applications simultaneously, you need to build the linux-fusion kernel module.

You can now also build and install DirectFB-examples which contain some example applications and some benchmarks.