Monday, February 09, 2015

QtDeclarative on platforms without GLES (Quick2)

We ,Prevas (http://www.prevas.com), have been working on a yet to be released project. Our goal is to have a Quick2 compatible Qt Declarative framework for targets without GLES enabled GPU's. The basic design is:

* The application is a standard Quick2 QML application that can be created with QtCreator.
* The QML code runs inside the standard unaltered QML engine.
* A QML application can be described as a tree of QQuickItems. In the GLES QtDeclarative those are tied to GLES shaders. Within this implementation we have replaced the shaders with Qt 2d drawing methods.
When a QQuickItem is shown on the screen it renders itself directly to the QPA back buffer. In this way we can skip a lot of abstraction layers compared to using widgets.

The result is that we can run many of the Quick2 examples and demos on small ARM targets at a decent speed and with a relatively small cpu usage. The performance can be compared to running Quick2 software rendered on a PC.

This implementation will be , in case of release, pushed to gitorious.org probably with the LGPL license. If someone at Digia "The Qt Company" reads this and have any questions and or objections about the license, just contact me.

If you are interested to get this project come out of our drawers, leave a comment here and I will contact you. We can help you to adopt this to your hardware and possibly also tune QPA backends for different GPU configurations and even to GPU less targets.