Hi all!
As part of the User Platform team's exploration of non X11-based graphical environments I have started experimenting with the QWS variant of the Qt library (also known as Qt/Embedded).
Qt/QWS offers the ability to render graphics directly on a Linux framebuffer without the need for X11 or any other windowing system. It provides its own simple windowing system, which is (unsurprisingly) called the Qt Windowing System (QWS).
The Qt/QWS variant is mostly API compatible with Qt/X11, except for some X11 specific functions and some missing libraries (eg QtOpenGL). Most Qt programs should build without problems with Qt/QWS. Note, however, that Qt/QWS is *not* ABI compatible with Qt/X11.
Qt/QWS has been tested successfully on the x86 architecture under both X11 (using the QVFB virtual framebuffer) and the Linux framebuffer. Tests for the ARM architecture are under way. If you test the libraries on ARM please let us know how it went!
You can find installation and usage instructions at:
https://wiki.ubuntu.com/Specs/M/ARMQtonEmbedded/Guide
You can also find some screenshots at:
http://people.canonical.com/~afrantzis/qt4-qws-screenshots/
If you have any issues or questions don't hesitate to contact me!
As a side note, the next generation of Embedded Qt, called (for now) project Lighthouse, is planned for Q1 2011 and is going to improve on QWS by offering support for hardware acceleration and a plugin architecture for windowing systems (instead of just a built-in one). We are keeping an eye on that and are planning to eventually provide experimental packages for Lighthouse.
Thanks, Alexandros
This is awesome, thanks for working on this!
Is there a X11 server which can run (perhaps windowed) under QWS? This would be great for compatibility with X apps. Something like Xephyr/Xnest perhaps?
Thanks
On Sun, Jun 27, 2010 at 11:34:21AM +0200, Loïc Minier wrote:
Is there a X11 server which can run (perhaps windowed) under QWS? This would be great for compatibility with X apps. Something like Xephyr/Xnest perhaps?
The GUI part of all applications that run under QWS must be written in pure Qt. Unfortunately, I don't know of such an X11 server.
The whole Qt/QWS environment is really targeted for special purpose systems with strict memory constraints that run dedicated UIs. It is not designed to be able to interact with other GUI toolkits and applications.
There is a very old (but still relevant) discussion about this issue:
http://lists.trolltech.com/qt-embedded-interest/2002-10/msg00117.html
The bottom line is that if there is a need for both Qt and general X11 support in a resource-constrained environment, the only feasible way is to use Qt/X11 over a lightweight X11 server (eg KDrive).
Thanks, Alexandros
Alexandros, I suspect that the interesting question is how QT interacts with Clutter / OpenGL(ES) not how it interacts with X. I see a swing away from X, not an integration with it, in all the upcoming dominant platforms. That said, a native embedded QT stack is an interesting 'head' and, providing good test cases etc.
Dave
On 28 June 2010 08:44, Alexandros Frantzis alexandros.frantzis@linaro.orgwrote:
On Sun, Jun 27, 2010 at 11:34:21AM +0200, Loïc Minier wrote:
Is there a X11 server which can run (perhaps windowed) under QWS? This would be great for compatibility with X apps. Something like Xephyr/Xnest perhaps?
The GUI part of all applications that run under QWS must be written in pure Qt. Unfortunately, I don't know of such an X11 server.
The whole Qt/QWS environment is really targeted for special purpose systems with strict memory constraints that run dedicated UIs. It is not designed to be able to interact with other GUI toolkits and applications.
There is a very old (but still relevant) discussion about this issue:
http://lists.trolltech.com/qt-embedded-interest/2002-10/msg00117.html
The bottom line is that if there is a need for both Qt and general X11 support in a resource-constrained environment, the only feasible way is to use Qt/X11 over a lightweight X11 server (eg KDrive).
Thanks, Alexandros
Linaro-dev mailing list Linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
Hi,
On Mon, Jun 28, 2010 at 2:53 PM, David Rusling david.rusling@linaro.org wrote:
Alexandros, I suspect that the interesting question is how QT interacts with Clutter / OpenGL(ES) not how it interacts with X.
There is a Clutter-Qt port which embed the default ClutterStage into a parent QtWidget. It has a dependency on X11 though. http://git.clutter-project.org/clutter-qt/
Qt itself provides a good support for OpenGL-ES 1.1/2.0 and OpenVG 1.0/1.1 painting profiles.
I see a swing away from X, not an integration with it, in all the upcoming dominant platforms. That said, a native embedded QT stack is an interesting 'head' and, providing good test cases etc. Dave
regards, Amit Pundir
On 28 June 2010 08:44, Alexandros Frantzis alexandros.frantzis@linaro.org wrote:
On Sun, Jun 27, 2010 at 11:34:21AM +0200, Loïc Minier wrote:
Is there a X11 server which can run (perhaps windowed) under QWS? This would be great for compatibility with X apps. Something like Xephyr/Xnest perhaps?
The GUI part of all applications that run under QWS must be written in pure Qt. Unfortunately, I don't know of such an X11 server.
The whole Qt/QWS environment is really targeted for special purpose systems with strict memory constraints that run dedicated UIs. It is not designed to be able to interact with other GUI toolkits and applications.
There is a very old (but still relevant) discussion about this issue:
http://lists.trolltech.com/qt-embedded-interest/2002-10/msg00117.html
The bottom line is that if there is a need for both Qt and general X11 support in a resource-constrained environment, the only feasible way is to use Qt/X11 over a lightweight X11 server (eg KDrive).
Thanks, Alexandros
Linaro-dev mailing list Linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
-- David A Rusling CTO, Linaro
Linaro-dev mailing list Linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
On Mon, Jun 28, 2010 at 05:29:15PM +0530, Amit Pundir wrote:
Hi,
On Mon, Jun 28, 2010 at 2:53 PM, David Rusling david.rusling@linaro.org wrote:
Alexandros, I suspect that the interesting question is how QT interacts with Clutter / OpenGL(ES) not how it interacts with X.
There is a Clutter-Qt port which embed the default ClutterStage into a parent QtWidget. It has a dependency on X11 though. http://git.clutter-project.org/clutter-qt/
Qt itself provides a good support for OpenGL-ES 1.1/2.0 and OpenVG 1.0/1.1 painting profiles.
...but, as far as I know, not when using QWS.
I suspect project Lighthouse will be much better in this respect. It has various windowing backends, including OpenKODE, which is an umbrella specification than includes (among others) OpenGL ES and OpenVG.
On Mon, Jun 28, 2010 at 6:03 PM, Alexandros Frantzis alexandros.frantzis@linaro.org wrote:
On Mon, Jun 28, 2010 at 05:29:15PM +0530, Amit Pundir wrote:
Hi,
On Mon, Jun 28, 2010 at 2:53 PM, David Rusling david.rusling@linaro.org wrote:
Alexandros, I suspect that the interesting question is how QT interacts with Clutter / OpenGL(ES) not how it interacts with X.
There is a Clutter-Qt port which embed the default ClutterStage into a parent QtWidget. It has a dependency on X11 though. http://git.clutter-project.org/clutter-qt/
Qt itself provides a good support for OpenGL-ES 1.1/2.0 and OpenVG 1.0/1.1 painting profiles.
...but, as far as I know, not when using QWS.
QWS can be used with either of OpenGL-ES profiles subject to the availability of Qt graphics driver plugin for your OpenGL Es implementation.
This plugin, in most cases, is specific to the OpenGLES implementation. For example, Qt comes with a driver plugin for OMAP3 OpenGL ES implementation.
For that you have to configure Qt with "-opengl es X" option and build that driver plugin.
I suspect project Lighthouse will be much better in this respect. It has various windowing backends, including OpenKODE, which is an umbrella specification than includes (among others) OpenGL ES and OpenVG.
Yes.. as per trolls Lighthouse is the future of Qt windowing systems.
regards, Amit Pundir
-- Alexandros
Linaro-dev mailing list Linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
On Mon, Jun 28, 2010 at 06:25:03PM +0530, Amit Pundir wrote:
Qt itself provides a good support for OpenGL-ES 1.1/2.0 and OpenVG 1.0/1.1 painting profiles.
...but, as far as I know, not when using QWS.
It seems I didn't know far enough :) Thanks!
QWS can be used with either of OpenGL-ES profiles subject to the availability of Qt graphics driver plugin for your OpenGL Es implementation.
This plugin, in most cases, is specific to the OpenGLES implementation. For example, Qt comes with a driver plugin for OMAP3 OpenGL ES implementation.
Yes, that is indeed correct. Hopefully in Lighthouse (which has been officially named QPA, by the way) it will be easier to use acceleration without any special porting, through better integration of existing accelerated APIs (eg OpenKODE) in the Qt/QPA architecture.
Dnia poniedziałek, 28 czerwca 2010 o 10:58:32 Yuri Bushmelev napisał(a):
Is there a X11 server which can run (perhaps windowed) under QWS? This would be great for compatibility with X apps. Something like Xephyr/Xnest perhaps?
There was Xqt and Xqt2 but they are based on Opie (QT/E 1.5-2.0 iirc).
OPIE was based on Qt/E 2.3 version. 1.5-2.2 were Qtopia versions from which OPIE took lot of code.
Regards,