DirectFBAndQt: Difference between revisions
No edit summary |
No edit summary |
||
Line 5: | Line 5: | ||
== Paint Engines == | == Paint Engines == | ||
There are two paint engines for DirectFB right now. There is the DirectFB ( | 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 | The "blittable" engine can only accelerate blits (drawing of pixmaps) and filling of rects. The interface can be seen in the "QBlittable":http://qt.gitorious.org/qt/qtbase/blobs/master/src/gui/painting/qblittable_p.h#line77| header file. The "blittable| paintengine will track the state of the painter and decide if it can use the simple blittable interface. | ||
== Plugins == | == Plugins == | ||
Line 13: | Line 13: | ||
=== QWS Plugin === | === 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 | 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 ==== | ==== Known issues ==== | ||
Line 22: | Line 22: | ||
=== QPA Plugin === | === 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 [[Devices/Broadcom97425| Broadcom 97425]] platform. This plugin is using the | QPA is experimental in Qt 4.8 and is the base technology of Qt5. The DirectFB plugin has been validated only on the [[Devices/Broadcom97425| 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 ==== | ==== OpenGL ==== | ||
DirectFB 1.4 has one interface for OpenGL called | DirectFB 1.4 has one interface for OpenGL called "IDirectFBGL":http://directfb.org/docs/DirectFB_Reference_1_4/IDirectFBGL.html|, DirectFB 1.5 (in development) adds the "IDirectFBGL2":http://directfb.org/docs/DirectFB_Reference_1_5/IDirectFBGL2.html| 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 ==== | ==== Known Issues ==== | ||
Line 45: | Line 45: | ||
== Devices/Platforms supported == | == Devices/Platforms supported == | ||
'''Supported Devices''' | '''Supported Devices''' | ||
|''. Vendor |''. Qt Version |''. Plugin |''. OpenGL | | |||
| [[Devices/Broadcom97425| Broadcom 97425]] | 4.8 | QWS | No OpenGL | | |||
| [[Devices/Broadcom97425| Broadcom 97425]] | 4.8 | QPA | No OpenGL | | |||
| [[Devices/Broadcom97425| Broadcom 97425]] | 5.0 | QPA | DirectFB/EGL | | |||
''Please keep the first column sorted alphabetically by vendor name.. apply the same for the | ''Please keep the first column sorted alphabetically by vendor name.. apply the same for the | ||
other columns.'' |
Revision as of 09:30, 25 February 2015
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":http://qt.gitorious.org/qt/qtbase/blobs/master/src/gui/painting/qblittable_p.h#line77%7C 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":http://directfb.org/docs/DirectFB_Reference_1_4/IDirectFBGL.html%7C, DirectFB 1.5 (in development) adds the "IDirectFBGL2":http://directfb.org/docs/DirectFB_Reference_1_5/IDirectFBGL2.html%7C 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.