DirectFBAndQt: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
=DirectFB and Qt=
[[Category:Devices]]


==Paint Engines==
= DirectFB and Qt =


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 <span class="caps">QWS</span>/QPA selection. It is generally possible to port the full paintengine to be used with the <span class="caps">QPA</span> plugin.
== Paint Engines ==


The “blittable” engine can only accelerate blits (drawing of pixmaps) and filling of rects. The interface can be seen in the [http://qt.gitorious.org/qt/qtbase/blobs/master/src/gui/painting/qblittable_p.h#line77 QBlittable] ''[qt.gitorious.org]''| header file. The “blittable| paintengine will track the state of the painter and decide if it can use the simple blittable interface.
There are two paint engines for DirectFB right now. There is the DirectFB (&quot;full&amp;quot;) 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 &quot;blittable&amp;quot; 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.


==Plugins==
The &quot;blittable&amp;quot; engine can only accelerate blits (drawing of pixmaps) and filling of rects. The interface can be seen in the &quot;QBlittable&amp;quot;:http://qt.gitorious.org/qt/qtbase/blobs/master/src/gui/painting/qblittable_p.h#line77| header file. The &quot;blittable| paintengine will track the state of the painter and decide if it can use the simple blittable interface.


===<span class="caps">QWS</span> Plugin===
== Plugins ==


The <span class="caps">QWS</span> 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.
=== QWS Plugin ===


====Known issues====
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 &quot;full&amp;quot; paintengine and provides various ways to fine tune for specific DirectFB behavior.
 
==== Known issues ====


* Was never tested against Qt autotests
* Was never tested against Qt autotests
* QPixmap autotests are failing
* QPixmap autotests are failing


===<span class="caps">QPA</span> Plugin===
=== QPA Plugin ===


<span class="caps">QPA</span> is experimental in Qt 4.8 and is the base technology of Qt5. The DirectFB plugin has been validated only on the [[DevicesBroadcom97425|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.
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 &quot;blittable&amp;quot; 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 [http://directfb.org/docs/DirectFB_Reference_1_4/IDirectFBGL.html IDirectFBGL] ''[directfb.org]''|, DirectFB 1.5 (in development) adds the [http://directfb.org/docs/DirectFB_Reference_1_5/IDirectFBGL2.html IDirectFBGL2] ''[directfb.org]''| interface modeled after <span class="caps">EGL</span>. 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 <span class="caps">EGL</span> and DirectFB together. This is currently done in the qdirectfb_egl.cpp and requires the addition of vendor init code.
DirectFB 1.4 has one interface for OpenGL called &quot;IDirectFBGL&amp;quot;:http://directfb.org/docs/DirectFB_Reference_1_4/IDirectFBGL.html|, DirectFB 1.5 (in development) adds the &quot;IDirectFBGL2&amp;quot;: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 ====


* Input and Focus handling not fully tested
* Input and Focus handling not fully tested
* Does not run Qt unit tests
* Does not run Qt unit tests


==Status 4.8/5.0==
== Status 4.8/5.0 ==


===<span class="caps">QPA</span> Plugin===
=== QPA Plugin ===


* All blittable bugfixes have been applied to Qt5 and Qt4.8.x
* All blittable bugfixes have been applied to Qt5 and Qt4.8.x
Line 41: Line 43:
** ::fromFile pixmap loading fix (8f6ee81ee97bd89df9bbc6d4353df05542c3ac64)
** ::fromFile pixmap loading fix (8f6ee81ee97bd89df9bbc6d4353df05542c3ac64)


==Devices/Platforms supported==
== Devices/Platforms supported ==
 
'''Supported Devices'''
 
{| class="infotable line"
! Vendor
! Qt Version
! Plugin
! OpenGL
|-
|
[[DevicesBroadcom97425|Broadcom 97425]]
| 4.8
| <span class="caps">QWS</span>
| No OpenGL
|-
|
[[DevicesBroadcom97425|Broadcom 97425]]
| 4.8
| <span class="caps">QPA</span>
| No OpenGL
|-
|
[[DevicesBroadcom97425|Broadcom 97425]]
| 5.0
| <span class="caps">QPA</span>
| DirectFB/EGL
|}
 
_Please keep the first column sorted alphabetically by vendor name.. apply the same for the<br /> other columns._


===Categories:===
'''Supported Devices'''<br />|''. Vendor |''. Qt Version |''. Plugin |''. OpenGL |<br />| [[Devices/Broadcom97425| Broadcom 97425]] | 4.8 | QWS | No OpenGL |<br />| [[Devices/Broadcom97425| Broadcom 97425]] | 4.8 | QPA | No OpenGL |<br />| [[Devices/Broadcom97425| Broadcom 97425]] | 5.0 | QPA | DirectFB/EGL |


* [[:Category:Devices|Devices]]
''Please keep the first column sorted alphabetically by vendor name.. apply the same for the<br />other columns.''

Revision as of 09:00, 24 February 2015


DirectFB and Qt

Paint Engines

There are two paint engines for DirectFB right now. There is the DirectFB ("full&quot;) 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&quot; 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&quot; engine can only accelerate blits (drawing of pixmaps) and filling of rects. The interface can be seen in the "QBlittable&quot;: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&quot; 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&quot; 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&quot;:http://directfb.org/docs/DirectFB_Reference_1_4/IDirectFBGL.html%7C, DirectFB 1.5 (in development) adds the "IDirectFBGL2&quot;: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.