[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/4.5/kdeedu/marble/src/lib
From: Jens-Michael Hoffmann <jensmh () gmx ! de>
Date: 2010-06-03 12:36:24
Message-ID: 20100603123625.00ED1AC8CE () svn ! kde ! org
[Download RAW message or body]
SVN commit 1134103 by jmhoffmann:
Partially fix for blending: Make sure the result tile is converted to
ARGB32_Premultiplied if we have more than one active texture layer.
Backport of commit 1129534.
M +11 -3 StackedTile.cpp
M +2 -1 StackedTile_p.h
--- branches/KDE/4.5/kdeedu/marble/src/lib/StackedTile.cpp #1134102:1134103
@@ -206,10 +206,15 @@
return topLeftValue;
}
-inline void StackedTilePrivate::mergeCopyToResult( QSharedPointer<TextureTile> const \
& other ) +inline void StackedTilePrivate::setResultTile( QSharedPointer<TextureTile> \
const & tile, + bool const \
withConversion ) {
- m_resultTile = other->image()->copy();
+ if ( withConversion ) {
+ m_resultTile = tile->image()->convertToFormat( \
QImage::Format_ARGB32_Premultiplied ); + } else {
+ m_resultTile = tile->image()->copy();
}
+}
void StackedTilePrivate::calcByteCount()
{
@@ -364,6 +369,9 @@
void StackedTile::initResultTile()
{
Q_ASSERT( hasTiles() );
+ // if there are more than one active texture layers, we have to convert the
+ // result tile into QImage::Format_ARGB32_Premultiplied to make blending \
possible + const bool withConversion = d->m_tiles.count() > 1;
QVector<QSharedPointer<TextureTile> >::const_iterator pos = \
d->m_tiles.constBegin();
QVector<QSharedPointer<TextureTile> >::const_iterator const end = \
d->m_tiles.constEnd(); for (; pos != end; ++pos )
@@ -375,7 +383,7 @@
}
else {
mDebug() << "StackedTile::initResultTile: no blending defined => \
copying top over bottom image";
- d->mergeCopyToResult( *pos );
+ d->setResultTile( *pos, withConversion );
}
}
--- branches/KDE/4.5/kdeedu/marble/src/lib/StackedTile_p.h #1134102:1134103
@@ -48,7 +48,8 @@
inline uint pixel( int x, int y ) const;
inline uint pixelF( qreal x, qreal y, const QRgb& pixel ) const;
- void mergeCopyToResult( QSharedPointer<TextureTile> const & tile );
+ void setResultTile( QSharedPointer<TextureTile> const & tile,
+ const bool withConversion = true );
void calcByteCount();
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic