DirectFBAndQt
Paint Engines
There are two paint engines for DirectFB right now. There is the DirectFB ("full") paintengine that tries to forward as much as possible to DirectFB and possible accelerate all of these methods in hardware and then there is the "blittable" approach that will only forward various kinds of blit to DirectFB. As of March 2012 the used paintengine depends on the QWS/QPA selection. It is generally possible to port the full paintengine to be used with the QPA plugin.
The "blittable" engine can only accelerate blits (drawing of pixmaps) and filling of rects. The interface can be seen in the QBlittable header file. The "blittable| paintengine will track the state of the painter and decide if it can use the simple blittable interface.
Plugins
QWS Plugin
The QWS DirectFB Plugin is the current/classic DirectFB support and works best on Qt 4.7.4. The plugin supports a great range of DirectFB versions and has been validated on multiple devices. This plugin is using the "full" paintengine and provides various ways to fine tune for specific DirectFB behavior.
Known issues
- Was never tested against Qt autotests
- QPixmap autotests are failing
QPA Plugin
QPA is experimental in Qt 4.8 and is the base technology of Qt5. The DirectFB plugin has been validated only on the Broadcom97425 platform. This plugin is using the "blittable" paintengine and has been tested against the DirectFB 1.4.x and DirectFB 1.5.x releases.
OpenGL
DirectFB 1.4 has one interface for OpenGL called IDirectFBGL, DirectFB 1.5 (in development) adds the IDirectFBGL2 interface modeled after EGL. The current DirectFB plugin does not use any of the two interfaces to integrate OpenGL. Depending on the hardware vendor there might be support to bind EGL and DirectFB together. This is currently done in the qdirectfb_egl.cpp and requires the addition of vendor init code.
Known Issues
- Input and Focus handling not fully tested
- Does not run Qt unit tests
Status 4.8/5.0
QPA Plugin
- All blittable bugfixes have been applied to Qt5 and Qt4.8.x
- Last backport occured January 23. Pending backports include:
- Broadcom/EGL support.
- Make windows at least QSize(1,1) (43696a9e4230ae1952fa9d8d6ef400d7df0f1c6e)
- ::fromFile pixmap loading fix (8f6ee81ee97bd89df9bbc6d4353df05542c3ac64)
Devices/Platforms supported
Supported Devices
Vendor | Qt Version | Plugin | OpenGL |
---|---|---|---|
Broadcom97425 | 4.8 | QWS | No OpenGL |
Broadcom97425 | 4.8 | QPA | No OpenGL |
Broadcom97425 | 5.0 | QPA | DirectFB/EGL |
Please keep the first column sorted alphabetically by vendor name.. apply the same for the other columns.