>QtCentre – Providing Answers for Two Years

>Two years ago the QtCentre site was launched. The goal was to provide the leading forum on the internet, encouraging the exchange of experience and to provide a meeting point to the Qt community. The response to this has been beyond our wildest expectations – all thanks to all our visitors and contributors.

As a part of QtCentre’s ambition to be the meeting point of the QtCommunity a Qt programming contest was held last year. The result was fenomenal with a great list of high quality entries and a matching list of prices. The participants came from all of the earth, reflecting the wealth of the community available at QtCentre.

A forum is good for exchanging experience and providing answers. For the more in-depth information QtCentre provides a wiki filled with articles. These articles touch the peculiarities of Qt, provide helpful tips and tricks as well as providing useful general knowledge about Qt.

The QtCentre team would like to thank all visitors and contributors. Thanks to you, the centre has succeeded beyond our wildest expectations. We hope to see you all in 2008 and make that an even greater year!

QtCentre is the leading independent Qt forum. In addition, it hosts a wiki filled with in-depth Qt articles. The goal is to provide the Qt community with answers and information.

The QtCentre is based on the vibrant community surrounding Qt. The centre is one of the few sites actively used by both the open source community and the propritary users of Qt.

>Badger – again

>

Getting Qtopia up and running on the BADGER board was really just a matter of compilation. However, Qtopia’s built-in framebuffer driver automatically assumed that 16 bits per pixel was a 5/6/5 format. This resulted in some rather funny looking colours as it works with a 4/4/4 setup – but at least the framebuffer works as expected.

Even if BADGER works with 4/4/4 right now, it can easily be reconfigured and synthesized for pretty much any other conceivable pixel formats. However, the standard reference design uses 4/4/4 right now, so I’ll work with that.

Spending a few more hours, an unaccelerated driver operating directly on the screen was created. The driver simply provides a screen class initializing the hardware, a dummy surface and a paint device simply returning a paint engine inheriting the QRasterPaintEngine. By implementing the drawBufferSpan and drawColorSpans we get something on the screen.

And, hey, the drawColorSpans is a simple draw-horizontal-line-function so we can accelerate it right away. The drawBufferSpan is also accelerated – we simply plot the data to a buffer in the video memory and then use the blitting capabilites of BADGE to have it handle the alpha blending – neat :-)

>Badger

>Recently I’ve been working with Qtopia for Bitsim. The plan is to support acceleration through Qtopia on Linux when using their graphics controller BADGE. For those of you interested in hardware, BADGE is an IP-block that can be implemented in both FPGAs and ASICs. It offers a basic framebuffer as well as acceleration of basic shapes such as lines, rectangles and text (!). It can also be used for blitting and such. You might know it from an apperance at LinuxDevices.

Anyway, the correct work is being made using the BADGER reference board. It offers a 180 MHz ARM9 CPU and an FPGA holding BADGE operating at 100 MHz. These are interconnected using a 60MHz data bus. Not too much power or bandwidth, so it will be interesting to see what kind of performance we can get from it. The screen used is an 800×600 pixels TFT – quite a few pixels per megahertz compared to other reference boards I’ve seen. The BADGE hardware can be tuned to support different bit-depths, but right now I’m working with a 4/4/4/4 configuration (four bits per color and four alpha bits).


The BADGE GPU can be reached through a library and a custom Linux framebuffer driver. The idea is to have Qtopia use this library through a custom QScreen class. I’ll also have to come up with a custom QWSWindowSurface, a QPaintDevice and a QPaintEngine.

>2008

>First if all – happy new year to all of you! 2008 will be a great year with lots of exiting Qt and KDE news. The biggest will probably be Qt 4.4 and KDE 4.0 – two milestones.

For my part 2007 was the year when working with Qt became a reality. My book, the Foundations of Qt Development, was printed, I visited DevDays, I started laying out slides for training based on the book, I had the opportunity to work within a Qt project as well as an adviser to a Qtopia project. All in all great fun!

2007 was also a year when I ran out of time. This is a rather nasty experience – finding that you have more to do than you can do in 24h/day. Reaching the conclusion that it isn’t you (or in this case me) but the amount of work is really hard – but having that revelation really helps. For example, I still have not posted any pictures from DevDays here. Luckily, I’ve had the chance to delegate things both workwise and in the community – but it is really though releasing a pet project and letting some one else in, but it is all for the better. In December ’06 I made the decision to step down as maintainer for SpeedCrunch – and during 2007 Helder Correia has really turned up the development pace and revitalized this project. Great work!

So, for 2008, there are lots of exiting news. First of all, our family will have a new member, going from two to three. It will be very exiting. My employer, Bitsim, will start demonstrating Qtopia with our own graphics controller. I will try to run a few Qt training sessions based on my book (interested? – contact me! my personal goal is three sessions next year). I will also try to blow some life into my mouse-gesture-recognition package.

Let’s see what I actually can find time for. Some life-changing events are approaching, so it is really hard to say what the outcome will be – other than exiting and great fun. The sum of all this – I’m convinced 2008 will be a great year!

>Qt 4.4 on ArsTechnical

>ArsTechnica’s Ryan Paul had a look at the preview release of Qt 4.4. The article is a nice read, but I really must quote the ending paragraph:

GTK is my toolkit of choice for the vast majority of my Linux desktop application development, so my perspective on Qt is that of an outsider looking in at a very different kind development platform. Despite my limited familiarity with the toolkit, I’m very impressed with the new functionality in Qt 4.4, and I’m looking forward to seeing how the KDE community and other Qt users leverage the features.

It is really nice to reach such a positive review!

Update! I was informed that calling Ryan “a GTK guy” was taking it too far – anyway – he seems to like Qt 4.4.

>WorkingDir

>As you might know, I create the Windows installer for SpeedCrunch. The installer is based on Inno Setup, which is a great tool. However, the short-cuts created from the wizard does not specify the WorkingDir parameter. This means that you run into trouble when looking for translations and other external resources. By adding the argument WorkingDir "{app}" to all icons this is resolved.

>Know your spelling

>Picking such a title for a blog entry means that I need to be on edge. :-)

By not spelling cout properly, Diederik van der Boor was able to get the following gem out of GCC:

invalid operands of types ‘<unresolved overloaded function type>’ and ‘const char [15]’ to binary ‘operator<<’

Quite charming if you ask me :-) The error and solution have been added to my list of GCC errors.

>SpeedCrunch

> Or, SnabbKross, as the name would have been if I’d translated that as well. Ariya mentioned a Windows installer. That, and a Swedish translation, was my contribution to the 0.9 release. If you ever wanted to get into F/OSS I can recommend translating. An hour in Linguist is all that it takes.