…as predicted. But this is what happens when cracks get fewer, far between and a bit tight :
Ah, the moon’s too bright The chain’s too tight The beast won’t go to sleep I’ve been running through these promises to you That I made and I could not keep (Leonard Cohen)
What's wrong with this? It's a very subtle problem. I'll give you a moment to think about it, and a video to see if you notice the problem. Make sure you don't cheat. (demonstrating removal of flicker in QML) Back already? Have you figured it out? That's right, it flickers. Horrifically. So what causes this? By default, QWidgets are drawn parent first, with parents drawing children. When a widget is drawn, first, it draws its background, then it draws the actual content. That background proves to be a problem, in this case. If we add the following lines to the above example, the flicker goes away, and my eyes no longer want to bleed: view.setAttribute(Qt::WA_OpaquePaintEvent); view.setAttribute(Qt::WA_NoSystemBackground); view.viewport()->setAttribute(Qt::WA_OpaquePaintEvent); view.viewport()->setAttribute(Qt::WA_NoSystemBackground);
NB: I'm not completely sure that adding it to both the view, and the viewport is completely necessary, but it can't harm at least. Make sure to re-set it if you change viewports. For completeness, here's the full, fixed example: int main(int argc, char **argv) { QApplication application(argc, argv); QDeclarativeView view; view.setSource(QUrl("qrc:/qml/main.qml")); view.setAttribute(Qt::WA_OpaquePaintEvent);
(If you're curious, Qt::WA_OpaquePaintEvent basically implies that you'll repaint everything as necessary yourself (which QML is well behaved with), and Qt::WA_NoSystemBackground tells Qt to nicely not paint the background.)
NB: on Harmattan (and Nemo Mobile) at least, make sure you always use QWidget::showFullScreen(). The compositor in use there unredirects fullscreen windows (meaning no compositor in the way), so you get faster drawing performance, and every frame counts.
(obligatory thanks to Daniel Stone of X and Collabora fame, for telling me to stop blaming X, and start blaming the crappy toolkits ☺)
For device manufacturers, and those targeting device manufacturers like us in the Mer¹ and Nemo Mobile².communities, we need a performant base, and Qt's default configuration on Linux is ..not really that performant. It uses what is known as the 'native' graphics system, which uses X (and XRender) to do a lot of the grunt work. Unfortunately, XRender isn't exactly what you'd call speedy in many cases, and making loads of round trips to ask X to draw things probably doesn't help either.
The Openismus employees who worked on the N9′s Harmattan project received their free Nokia N9 phones from the company yesterday. It was expensive but its the right thing to do.
I am back from my honeymoon and I’m starting to organize my life again!
Meanwhile, we finally released a game that I’m really proud that is called “Incredible Circus”. It’s the kind of game that is really addictive :). In three weeks we achieved 200k downloads on Nokia Store and today is available for the N9. It’s also a really good showcase for Qt. If you have a Symbian^3 or MeeGo device, just follow the link to try the game.
You can also check it out on the video below.
Apart from that, I’m updating my machine and as soon as I have a developer environment again I’ll start hacking on Plasma again. Probably fixing some bugs, right Aaron?
This is a multi-touch game for two persons, so go out into the big blue room and ask somebody to have a game of Plonk with you :) As you probably already know, this game has been developed at the MeeGo Conference in collaboration with Cornelius Hald and Tim Samoff - sounds have been recorded directly at the hacker lounge by Erik Stein, and Randall Arnold came up with the new name. A real collaborative project, and the source is available from Gitorious! One challenge with Harmattan was disabling Swipe, we solved that with a nifty little class called SwipeControl - it's open source if you want to use it in your game, too :)
New MeeGo 1.2 Harmattan bug tracker for Nokia N9 and N950
Nokia has, with efforts reaching back to Summer 2010, put together a bug tracker for Harmattan: "We have now prepared a new Bugzilla instance for any Nokia N9 or N950 related bugs at harmattan-bugs.nokia.com. This will help the N9 team ineract with the community and further improve the N9 software quality. We have cloned all open N9 bugs from the old Nokia Developer Bugzilla to the new Bugzilla. If you want to follow a currently open bug, add yourself in the CC field of the bug." As Neil MacLeod points out, there are a number of problems those of us familiar with the maemo.org tracker will remember fondly, like self-signed certificates, default voting limits, and strange component selection. This new tracker is indicative of positive progress, though.