DirectFB - Home of the pragmatist

Other (older) Documents


  • Fusion documentation at a very early stage (.pdf)
  • Very old features and concepts overview V0.2 (.pdf)

A new Linux graphics standard

For the special requirements of embedded devices we developed a small, powerful, flexible and easy to use technology for accelerated and enhanced graphics support: DirectFB.

DirectFB is a thin library that provides developers with hardware graphics acceleration, input device handling and abstraction, integrated windowing system with support for translucent windows and multiple display layers on top of the Linux Framebuffer Device. It is a complete hardware abstraction layer with software fallbacks for every graphics operation that is not supported by the underlying hardware. DirectFB adds graphical power to embedded systems and sets a new standard for graphics under Linux.

Hardware accelerated graphics

DirectFB provides the following graphics operations:

  • Rectangle filling/drawing
  • Triangle filling/drawing
  • Line drawing
  • Flat shaded triangles
  • Simple blitting
  • Stretched blitting
  • Textured triangles (perspective correct)
  • Blending with an alphachannel (per pixel alpha)
  • Blending with an alpha factor (alpha modulation)
  • Nine source and destination blend functions
  • Porter/Duff rules are supported
  • Premultiplied alpha supported
  • Colorized blitting (color modulation)
  • Source color keying
  • Destination color keying


DirectFB has its own resource management for video memory. Resources like display layers or input devices can be locked for exclusive access, e.g. for fullscreen games. DirectFB provides abstraction for the different graphics targets like display layers, windows and any general purpose surfaces. The programming effort for switching from windowed to fullscreen and back is minimized to setting the desired cooperative level.

DirectFB Modules

The API and structure of DirectFB is designed to provide an easy way of implementing the following parts:

  • Graphics acceleration (currently Matrox G200/G400/G450/G550, ATI128, Voodoo 3, NeoMagic, Savage and CyberPro)
  • Input devices (currently keyboard, serial and PS/2 mice, joysticks)
  • Image Provider (currently PNG, GIF and JPEG)
  • Video Provider (currently Video4Linux, AVI (using avifile), MPEG1/2 (using libmpeg3), macromedia flash (using libflash))
  • Font Provider (currently DirectFB bitmap font, TrueType via FreeType 2) / Documentation / Other Documents