Am 15.09.2011 15:33, schrieb Paul Davis:
On Thu, Sep 15, 2011 at 9:19 AM, Sebastian H.
<vand2(a)gmx.de> wrote:
QasMixer version 0.14.0 is now available.
QasMixer is an ALSA mixer with a customized Qt GUI.
Changes:
* Cairo painting replaced with native Qt painting
what was the reason for this change?
That's a longe story...
In Qt 4.6.3, which is what I used with Debian/Squeeze,
it wasn't safe to paint in parallel threads even if it was
for totally separate offscreen images. It's a known/fixed bug
https://bugreports.qt.nokia.com/browse/QTBUG-14614
I liked to go for multithreading for the next version and that's why the
switch to Cairo was done in QasMixer 0.13.0.
Cairo was thread safe in version 1.8 (Debian/Squeeze) but
oddly enough it wasn't thread safe in version 1.10 anymore
(Debian/Wheezy). But I've discovered that when the switch to Cairo was
already done. A solution to this was to blacklisted Cairo 1.10 from
using multithreading for QasMixer 0.13.0.
But after taking the blacklist way anyway it seemed better to stay with
Qt's painting engine in the first place and rather go and blacklist Qt
4.6.3 from using multithreading.
After all QasMixer is a Qt application and using Cairo pulled in a tail
of dependencies that could be avoided.
It was a nice excursion to Cairo though. In a way I like the painting
model better than model of Qt where it is easy to forget to set/unset
the QPen or the QBrush. The automatic memory handling in C++ destructors
on the other hand makes Qt painting a bit more readable.