QGraphicsView is a Hummer, Plasma is the luxury version…

Published Tuesday October 27th, 2009
10 Comments on QGraphicsView is a Hummer, Plasma is the luxury version…
Posted in Graphics, Graphics Items, Graphics View, KDE, Kinetic, Performance

Do you know the main advantage of a Hummer? It can go pretty much everywhere, that’s why many armies are using it. If I talk about a Hummer it is because QGraphicsView can go pretty much everywhere too. Recently I was lucky enough to get a N900 (generously given by Jesper, don’t know for how long though) so I decided to test Qt on it. I mainly work on QGraphicsView here at Qt Development Frameworks so it was a way to test the speed of my toy (:p). Since I’ve also been a KDE user and developer for quite a bit, I thought I could try KDE on it and more precisely Plasma.

So I downloaded the Maemo 5 SDK and started building KDE and Qt with it.

First thing you have to know is that scratchbox is not easy to set-up because you always face problems and compiling inside scratchbox is really slow. The link step is a bit broken and you have to specify manually where are the libs you link with (apparently it’s expected to be like that). It seems odd… Anyways, after a couple of hours I had Qt 4.6 (Fremantle branch) up and running. I was quite happy to see that it performs well (if you are using the right things). Animated tiles are running smoothly and painting demos as well (using opengl es2 graphicssystem).

After this initial success I tried KDE. This was more painful than I originally thought. Broken packages (mysql-server), out-dated packages (shared-mime-info for instance) and the worst : CMake crashed during the configure step. I solved that by downloading the 2.8 RC version that I built myself. But after a couple of hours of fighting and debugging I got this:

Link to youtube video

As you can see Plasma is running fine on this device. Of course a lot of work is needed to make it “finger” enabled (the actual applet handles are not really appropriate) but it’s a good start and Plasma is flexible enough to allow that. I have created a separate “shell” called plasma-mobile (Plasma already has the desktop and netbook shell) and I pushed that on the KDE playground. It also needs a lot of work to integrate well with the device (battery, network, profiles and so on) but the goal is to invite people to contribute to Plasma in order to offer a real alternative to the hildon-desktop. Plasma already has many many features/applets that we can just use on the N900. This also comes with a global effort to bring KDE technologies to the device as Kevin said in his blog. You can also participate in discussions on the KDE mailing-list for Maemo.

So yes Plasma is also a hummer, it runs everywhere but it’s the luxury version.

Do you like this? Share it
Share on LinkedInGoogle+Share on FacebookTweet about this on Twitter

Posted in Graphics, Graphics Items, Graphics View, KDE, Kinetic, Performance

10 comments

Harald Fernengel says:

In case you wonder about linking errors – for some reason, /usr/lib is not in the library search path for resolving. You can fix it by adding the following option to CMake:

-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath-link,/usr/lib

alexis.menard says:

I know it, but it seems odd. That’s what i did, modifying all CMakeFiles is not a good solution :D.

cristids says:

Thank you, it looks great. Any chance you can give some details on how we can compile qt 4.6 for Freemantle inside scratchbox?

Pasi says:

Can you clarify what is the difference with running application with -graphicssystem opengl|opengles vs. QGraphicsView::setViewport(new QGLWidget()) ?

David says:

I think scratch box is a rather difficult environment to work in. I hope future versions of Maemo will embrace Qtopia’s SDK philosophy which was to run native on the host computer and display in a skinned frame buffer. It was simply a matter of cross compiling for the target computer

castano says:

That’s an unfortunate comparison. Hummer is probably the most hated car in the world, and people who driver Hummers are usually not very well regarded.

sroedal says:

Pasi: with -graphicssystem opengl all Qt windows will by default use OpenGL for rendering, and QPixmap will also be backed by an OpenGL texture. Also, QGLWidget doesn’t support partial updates (you always have to re-render the whole widget) whereas QWidget does. Note that the OpenGL graphicssystem is still considered to be in an experimental state, as the rendering quality is not on par with the raster / native engines for style painting etc.

panzi says:

The headline implied (to me) QGraphicsView wastes resources, Plasma even more so.

NuShrike says:

Agreed, QGraphicsView is so float-hummer-fat that it’s amazing it renders with any speed on microdevices where integer operations are much faster.

Remember the blazing days of fixed-point rendering in Descent and other PC games? There was a reason there.

Commenting closed.

Get started today with Qt Download now