DirectFB - Home of the pragmatist


2010-12-15   Broadcom SoCs for 3DTV with DirectFB

"... The SoCs support a variety of development environments, including Adobe Flash Platform for TV, Webkit HTML 5.0, Java, Qt, DLNA 1.5, and DirectFB application libraries. 'This gives operators more flexibility to change the user interface,' Gleiter said..."

Here's the full article.

New APIs for stereoscopic displays and OpenGL ES integration will appear in DirectFB 1.5 in the coming few months.


2010-12-14   Renesas SH7724 support

To let you know, since DirectFB 1.4.7 the Renesas SH7724 is officially supported. The news for DirectFB 1.4.7 did not include a summary of changes.


2010-11-24   PythonWebKit-DFB

The FSF PythonWebkit Project, has a new experimental runtime: Webkit-DFB. PythonWebkit brings direct python bindings to the DOM, providing access to all the W3C HTML5 capabilities normally associated only with javascript (getElementsByTagName, appendChild etc.). The ability to PythonWebkit on DirectFB results in an incredibly lightweight and fast browser engine that can be controlled with Python. Startup times on 2ghz x86 hardware, running the GNU/Linux OS, are under 1/4 second, including loading python and the webkit module. Preliminary tests have also shown a startup time on a 400mhz ARM926 of around 1 (one) second, compared to over 4 seconds for EFL (Enlightenment) on X11, over 8 seconds for GTK using DirectFB and over 20 seconds for QtWebKit using DirectFB on the same 400mhz ARM926 embedded CPU.


2010-11-21   WebKitDFB clone up

There's a new repository for WebKitDFB development.

Check out branch webkitdfb_2010-11-18.


Check out the README.DirectFB for further instructions.


2010-11-15   DirectFB 1.4.11

Fix for broken multi application support and other fixes or enhancements.

For detailed info click on the news title

API | IDirectFBSurface

  • Add FillTrapezoids() with new type DFBTrapezoid.

Runtime Option

  • Added option "server-single=" that allows to enable the single client feature that was accidentally committed without a run time option for it.


  • Fix deadlock in DirectGetInterface() for static builds.


  • Fix broken join due to new root page file.


  • Add parameter to choose between fork/thread to voodoo_server_create().
  • Add addr and port parameter to voodoo_server_create().

Graphics Core

  • Add FillTrapezoid() to GraphicsDeviceFuncs.
  • Add dfb_gfxcard_fill_trapezoids() with software and hardware fallback to rectangles, matrix operations supported.
  • No more preclipping if matrix is set in DrawRectangle().


  • Add simple Voodoo client/server test programs.


  • Add -lm flag to Libs.private when needed.

You can find the releases in the "Core" and "Extras" tab on the "Downloads" page.


2010-11-03   DirectFB and SaWMan 1.4.10

Minor but important fixes for buffer displacement and a build fix in SaWMan.

For detailed info click on the news title


  • refactor backup_allocation()
  • fix buffer passed to backup_allocation()
  • fix reset of 'read' allocation pointer


  • fix DIRECTFB_BUILD_PURE_VOODOO checks, thanks to Lionel Landwerlin

You can find the releases in the "Core" and "Extras" tab on the "Downloads" page.


2010-11-02   DirectFB 1.4.9

Major Voodoo improvements in this release!

For detailed info click on the news title

Configure Options

  • Add "--enable-pure-voodoo" to build a client only library.
  • Add "--without-setsockopt" to disable usage of setsockopt() call.
  • Generate directfb_build.h with Voodoo options.
  • When Voodoo is enabled, add library dependency to pkg-config file and pass runtime options to libvoodoo.

Runtime Options

  • Add "[no-]server-fork" choosing between fork() and thread based connection handling.
  • Add "player-name=", "player-vendor=", "player-model=", "player-uuid=" to set Voodoo Player information.
  • Add "proxy-memory-max=" to set maximum amount of memory per connection.
  • Add "proxy-surface-max=" to set maximum amount of memory per surface.
  • Add "proxy-layer-mask" to limit the set of layers to be used by clients.
  • Add "proxy-stacking-mask" to limit the stacking classes to be used clients.
  • Add "proxy-resource-id" to make all surfaces system only except those with the specified resource ID.


  • Reuse connections when same server is used.
  • Lookup remote player if no host has been specified.
  • Implement multi response adding voodoo_manager_next_response() call.
  • Add flush parameter to voodoo_manager_respond() to allow efficient transmission of multi response.
  • Add voodoo_manager_unregister_local() which should have been there since the beginning *sigh*
  • Add voodoo_manager_check_allocation() looking at VmRSS if "proxy-memory-max" option is used.


  • Add implementation for IDirectFBDisplayLayer::GetWindow() and GetWindowByResourceID().
  • Add implementation for IDirectFBWindow::EnableEvents(), GetProperty() and SendEvent().
  • Add implementation for IDirectFBSurface::Read().
  • Add Release calls to IDirectFBSurface and IDirectFBWindow.
  • Cache pixel format in IDirectFBSurface::GetPixelFormat().

Voodoo Play

  • Introduce discovery and transport implementation, stay tuned...

You can find the release in the "Core" tab on the "Downloads" page.


2010-11-01   SaWMan 1.4.8

This release mainly implements the new cursor APIs and adds some options along with some fixes and other enhancements.

For detailed info click on the news title


  • Add GetUpdates() which returns updates done on screen (blocking until updated since last call).

Runtime Options

  • Enable support for remote session via Voodoo (when remote option is set).
  • Add option "resolution=<width>x<height>" to set a virtual SaWMan resolution, e.g. to be used across all input devices (absolute positioning on screen, or unified relative motion/sensitivity). Default resolution is either "mode" option from DirectFB if set or queried on first screen.
  • Add option "hw-cursor=<layer-id>" to use a hardware layer for the cursor shape.


  • Implement new cursor APIs of DirectFB.
  • Implement sending DWET_UPDATE events.
  • Different fixes and minor enhancements.

You can find the release in the "Extras" tab on the "Downloads" page.


2010-10-31   DirectFB 1.4.8

This release adds font rotation, advanced cursor APIs and surface buffer displacement in FBDev pool along with some fixes and other enhancements.

For detailed info click on the news title

API | IDirectFBDisplayLayer

  • Add GetWindowByResourceID().

API | IDirectFBFont

  • Add DFDESC_ROTATION to DFBFontDescriptionFlags.
  • Add rotation to DFBFontDescription.
  • Add DFB_DEGREES and DFB_RADIANS convenience macros.
  • Add GetLineSpacingVector() and GetGlyphExtentsXY().

API | IDirectFBInputDevice

  • Extend custom key definitions from 100 to 255.

API | IDirectFBWindow

  • Add SendEvent() to send a window event via a window.
  • Add DFBWindowCursorFlags (per window) with the following definitions:
    • DWCF_RELATIVE receive relative coordinates instead of absolute
    • DWCF_EXPLICIT if window has focus it's also the pointer window
    • DWCF_UNCLIPPED pointer is not clipped against stack boundaries
    • DWCF_TRAPPED pointer is clipped against the window boundaries
    • DWCF_FIXED pointer does not move at all, but still may send relative motion
    • DWCF_INVISIBLE cursor opacity is zero when this window is pointer window
  • Add DWEF_RELATIVE to DFBWindowEventFlags to indicate x/y are relative coordinates.
  • Add SetCursorFlags() to set the per window DFBWindowCursorFlags.
  • Add SetCursorResolution() to define per window coordinate space, e.g. SetCursorResolution( 100, 300 ) will always send 50,150 in the middle of the window.
  • Add SetCursorPosition() to warp the pointer relative to the window based on the per window coordinate space if set.
  • Add DWET_UPDATE for sending update events (upon Flip).


  • Add max-axis-rate to limit the amount of input axis events.


  • Try to mmap the font file before loading all of its contents via data buffer.


  • Add cursor_flags and cursor_resolution to CoreWindowConfig.
  • Add dfb_wm_set_cursor_position() called by IDirectFBWindow::SetCursorPosition().
  • Add SetCursorPosition() to WMFuncs.
  • Add wm_set_cursor_position() to wm module header and set it for SetCursorPosition().
  • Remove setting of cx and cy from dfb_window_post_event(), instead this is done in window manager modules now.

Default WM

  • Fix wm_window_lookup to return DFB_IDNOTFOUND when window with specified ID wasn't found.
  • Set cx and cy of window events.
  • Add unimplemented wm_set_cursor_position() to default window manager module.
  • Send DWET_UPDATE events when the application does a Flip on the window surface.

LinoType Font

  • Add new font module using LinoType library.

FBDev System

  • Add MuckOut implementation for surfaces in fbdev pool using surface manager displace.

You can find the release in the "Core" tab on the "Downloads" page.


2010-10-27   WebKitDFB preliminary release

WebKitDFB is WebKit on top of DirectFB without using GTK+ or Qt.

WebKitDFB I've decided to make an initial release of WebKitDFB based on the old port done back in December 2009 while I'm working on the upgrade to the latest code base.

It's provided as is. Mainly forms and vector graphics are not supported, but fallbacks using Cairo are planned. Currently Cairo is not a dependency!

All rendering is done via DirectFB only!

The full archive (based on WebKit svn revision 51967) is in the Libs section in the download area.

Check out the CONFIG file for an example of how to configure it for building. I had to build glib, libsoup, libenchant myself to make it happy... After install you can run WebKitDFB, e.g. in /opt/webkit/bin. There's also a test program without LiTE which just renders a web page onto a DirectFB Surface, called testdfb.

The latest version should be ready during next month!


2010-10-25   DirectFB 1.4.7 released

Important bug fixes! Check out the new release in the Download menu.


2010-10-08   DirectFB 1.4.6 and linux-fusion 8.1.2 released

Check out the new release in the Download menu.


2010-09-22   JavaScript binding (initial release)

JavaScript DirectFB application code A new project has been added to the repositories. It's a JavaScript binding that allows to write DirectFB applications using JavaScript code!

The binding uses the V8 engine. There's a test program called dfbshell that has an interactive mode, but also allows running scripts from file.

The wrapper code is generated from header files, using a Perl script, derived from the script that generates the API documentation.

This is in a very early stage, but you can already render most things, load images etc. Event processing is one of the next tasks to work on.

Everyone is invited to help writing the wrapper generator, improving the shell, coming up with ideas for event processing for example or maybe even most important write some very cool JavaScript based demo applications, or port some of the very old ones... thinking about df_dok.js and df_andi.js :-D

There's also a WebKit port on top of DirectFB (no GTK, no Qt) with a sample application using LiTE (web view widget), which I will release within the next few weeks.

The JavaScript binding could be integrated as a plugin to have some kind of "DirectFB Canvas" in the DOM tree that the JavaScript can render into... 8-)


2010-08-19   Disko and DirectFB ported to STi71xx SoC

ST Logo We're proud to announce that another port of Disko has been done.

Special thanks to the STMicroelectronics US region Field Application Engineers. They've modified mmsmedia to use their AV drivers / player instead of Xine or Gstreamer.

Based on STLinux, Disko in combination with DirectFB was successfully ported to STi71xx SoC with full hardware acceleration. The testing was done using the Disko demo application.

The documentation of STLinux might be a good starting point for anyone interested in testing this device.

Read more about it on Disko homepage


2010-08-19   DirectFB and SaWMan 1.4.5 released

Check out the new releases in the Download menu.


2010-08-18   DirectFB and SaWMan 1.4.4 released

Check out the new releases in the Download menu.


2010-06-12   JointSPACE Remote Applications are becoming a reality!

Philips TV firmware upgrade is now officially released!

JointSPACE uses DirectFB Voodoo technologies to expose TV capabilities to a remote system.

  • 2k9 9000 range is now fully supported.
  • 2k9 8000 range and 2k10 will follow soon.

This enables the development of new kind of applications for TVs.

Multiple development platforms and systems are currently supported: Linux, Cygwin, MacOS, I-Phone, NDS...

The Open source SDK invites to support new platforms in the future.

The jointSPACE web site can be found here.

2k9 9000 range TV firmware can be found here (V 26.076, USB upgrade only).

Samples of remote applications and SDK can be found here (featuring games, emulators and utilities).

A step-by-step tutorial to develop your own Remote Applications can be found here.


2010-06-01   Disko 1.7 released

Disko on Archos 5Beside the usual bunch of bug fixes and performance improvements coming with the new version 1.7, we're exceedingly proud of the released new functions like gesture recognition.

You can give the new gesture recognition and graphics capabilities a try with the new Demo. The Demo is available precompiled for Ubuntu and Archos 5 in addition to the source code.

To speed up the development of Disko as one of the very few up-to-date and really free GUI frameworks for embedded Linux, we want to open ourselves broader towards the community. Therefore we've setup a new mailing list. We will, at first by way of trial, be at your beck and call for questions, suggestions, or criticism via IRC on channel #disko at We would be especially happy about all kinds of contribution and articles concerning products using Disko.

Read more about it on Disko homepage


2010-02-23   Improved DirectFB support in Qt 4.6

Anders Bakken has written an article about the recent improvements in Qt regarding DirectFB support.

dok / Main / News