DirectFBAndQt

From Qt Wiki
Revision as of 08:20, 4 March 2015 by AutoSpider (talk | contribs) (Convert ExpressionEngine links)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

DirectFB and Qt

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 Broadcom 97425 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 | | Broadcom 97425 | 4.8 | QWS | No OpenGL | | Broadcom 97425 | 4.8 | QPA | No OpenGL | | Broadcom 97425 | 5.0 | QPA | DirectFB/EGL |

Please keep the first column sorted alphabetically by vendor name.. apply the same for the other columns.