directfb2.github.io

DirectFB2 is a fork of DirectFB whose purpose is to preserve and maintain the DirectFB graphics backend, particularly for use on embedded systems.

Contents

Getting started

Components running on DirectFB graphics backend are based on libdirectfb.so library. Compositing windowing system is performed by the default libdirectfb.so window manager module with libdirectfbwm_default.so plugin. Cooperation between various process is achieved through the fusion.ko kernel module.

The following graphics driver interface can be used by libdirectfb.so library for the display:

But depending on the platform, it’s possible to use specific graphics driver interfaces based on the libdirectfb.so system module architecture. If available on the platform, hardware accelerated graphic rendering can also be achieved based on the libdirectfb.so gfxdriver module architecture.

Image

The following input interface can be used by libdirectfb.so library for managing the keyboard:

and for managing the mouse:

But depending on the input peripheral, it’s possible to use specific input driver interfaces based on the libdirectfb.so inputdriver module architecture.

DFBTerm

dfbterm is a terminal emulator runnning on DirectFB graphics backend. System informations about DirectFB settings can be get with dfbinfo.

Image

Back to Top

DirectFB-examples

Programs running on DirectFB graphics backend are available as examples, tests or benchmarks.

Image

Back to Top

DirectFB toolkits

Simple graphical user interfaces can rely on LiTE (Lightweight Toolkit Enabler) or on the ilixi toolkit. LiTE interfaces are provided by liblite.so library and ilixi interfaces are provided by libilixi.so library.

Image

LiTE-examples programs are available as examples.

Image

ilixi-apps programs are available as examples.

Image

Back to Top

Vulkan rendering

For display rendering with DirectFB graphics backend, Vulkan implementation in libvulkan.so library (loading library from Vulkan-Loader) and its ICD (Installable Client Driver) relies on DirectFB WSI interface.

DirectFB WSI interfaces (Window System Integration for DirectFB) are used with an ICD like the one proposed by SwiftShader.

But depending on the platform, specific ICD can be used.

Image

Vulkan-Tools, Vulkan-Examples, vkcube2 and yagears2 programs are available as examples, tests or benchmarks.

Image

Back to Top

OpenGL rendering

For display rendering with DirectFB graphics backend, OpenGL implementation in libGL.so library, but also OpenGL ES 1.1 CM implementation in libGLESv1_CM.so library and OpenGL ES 2.0 implementation in libGLESv2.so library, rely on DirectFBGL or EGL for DirectFB interfaces.

Loading libraries can be used:

DirectFBGL

DirectFBGL interfaces (OpenGL extension for DirectFB) are used with an implementation like the one proposed by Mesa.

But depending on the platform, specific implementation can be used.

Image

mesa-demos and yagears programs are available as examples, tests or benchmarks.

Image

Back to Top

EGL for DirectFB

EGL for DirectFB interfaces are used with an implementation like the one proposed by Mesa.

But depending on the platform, specific implementation can be used.

Image

mesa-demos and yagears programs are available as examples, tests or benchmarks.

Image

Back to Top

Drawing libraries

Cairo

Cairo interfaces for DirectFB graphics backend are provided by libcairo.so library.

Image

cairo-demos programs are available as examples, tests or benchmarks.

Image

Back to Top

Evas

Evas interfaces for DirectFB graphics backend are provided by libevas.so library.

Image

expedite program is available as examples, tests or benchmarks.

Image

Back to Top

Multimedia frameworks

FFmpeg

FFmpeg interfaces for DirectFB graphics backend are provided by libavformat.so, libavcodec.so, libswscale.so libraries and rely on libavdevice.so library for output.

ffmpeg program is available as example.

Image

Back to Top

GStreamer

GStreamer interfaces for DirectFB graphics backend are provided by:

and rely on libgstdfbvideosink.so plugin for output.

gst-launch-0.10 program is available as example on GStreamer 0.10.

Image

gst-launch-1.0 program is available as example on GStreamer 1.

Image

Back to Top

Xine

Xine interfaces for DirectFB graphics backend are provided by libxine.so library and rely on xineplug_vo_out_directfb.so plugin for output.

xine-ui program is available as example.

Image

Back to Top

DirectFB-media

DirectFBImageProvider and DirectFBVideoProvider interfaces are provided.

df_image_sample program is available as example.

Image

df_video_sample program is available as example.

Image

Back to Top

Tools

DFBView

Image

Projektor

Image

Image

DFBSee, ilixi_player, MPlayer

Image

Back to Top

Graphics abstraction layers

GLUT

GLUT (openGL Utility Toolkit) interfaces running on DirectFB graphics backend are provided by libglut.so library coming from MesaGLUT or TinyGLUT implementations.

Image

For OpenGL rendering, note that EGL for DirectFB interfaces can also be used internally by GLUT implementations instead of DirectFBGL interfaces.

mesa-demos and yagears programs are available as examples, tests or benchmarks.

Image

Back to Top

SDL

SDL (Simple Directmedia Layer) interfaces running on DirectFB graphics backend are provided by:

Image

For OpenGL rendering, note that EGL for DirectFB interfaces can also be used internally by SDL instead of DirectFBGL interfaces.

SDL-test and yagears programs are available as examples, tests or benchmarks on SDL 1.

Image

SDL2-test and yagears2 programs are available as examples, tests or benchmarks on SDL 2.

Image

Back to Top

User interface toolkits

GTK+

Graphical user interfaces can rely on GTK+ (Gimp ToolKit) using the port for DirectFB graphics backend. Web rendering can then rely on WebKitGTK+, a port of the WebKit browser engine for GTK+.

GTK+ interfaces running on DirectFB graphics backend are provided by:

Image

For OpenGL rendering, note that EGL for DirectFB interfaces can also be used internally by GTK+ instead of DirectFBGL interfaces.

gtk-demo, gtk-tests, gtkperf and yagears programs are available as examples, tests or benchmarks.

Image

WebKitGTK+ interfaces for GTK+ with DirectFB graphics backend are provided by:

Image

For WebGL rendering, note that EGL for DirectFB interfaces can also be used instead of DirectFBGL interfaces.

GtkLauncher program is available as example.

Image

Back to Top

Qt

Graphical user interfaces can rely on Qt (Q toolKit) using the port for DirectFB graphics backend. Web rendering can then rely on QtWebKit, a port of the WebKit browser engine for Qt.

Qt interfaces running on DirectFB graphics backend are provided by:

Image

For OpenGL rendering, note that EGL for DirectFB interfaces can also be used internally by Qt instead of DirectFBGL interfaces.

qtdemo, qt-examples, qtperf and yagears programs are available as examples, tests or benchmarks.

Image

QtWebKit interfaces for Qt with DirectFB graphics backend are provided by:

Image

For WebGL rendering, note that EGL for DirectFB interfaces can also be used instead of DirectFBGL interfaces.

QtTestBrowser program is available as example.

Image

Back to Top

EFL

Graphical user interfaces can rely on EFL (Enlightenment Foundation Libraries) with Elementary using the port for DirectFB graphics backend.

EFL with Elementary interfaces running on DirectFB graphics backend are provided by libelementary.so library.

Image

For OpenGL rendering, note that EGL for DirectFB interfaces can also be used internally by EFL with Elementary instead of DirectFBGL interfaces.

elementary-test, elementary-examples and yagears programs are available as examples, tests or benchmarks.

Back to Top

FLTK

Graphical user interfaces can rely on FLTK (Fast Light Tool Kit) using the port for DirectFB graphics backend.

FLTK interfaces running on DirectFB graphics backend are provided by libfltk.so and libfltk_gl.so libraries.

Image

For OpenGL rendering, note that EGL for DirectFB interfaces can also be used internally by FLTK instead of DirectFBGL interfaces.

fltk-test and yagears programs are available as examples, tests or benchmarks.

Image

Back to Top

Applications

   
Image ffplay multimedia player

Image

   
Image qemu machine emulator

Image

   
Image midori web browser

Image

   
Image qupzilla web browser

Image

   
Image BillardGL, gtktetris, pinball games

Image

Back to Top