Fix sprite chopping
authorAlan Alpert <alan.alpert@nokia.com>
Fri, 16 Dec 2011 05:23:59 +0000 (15:23 +1000)
committerQt by Nokia <qt-info@nokia.com>
Tue, 20 Dec 2011 05:39:39 +0000 (06:39 +0100)
Had some rounding around the wrong way.

Change-Id: I90ea339c35074ca7287c069bdbdd106578b1501b
Reviewed-by: Martin Jones <martin.jones@nokia.com>
src/quick/items/qquickspriteengine.cpp

index c25ccf3..ddd667a 100644 (file)
@@ -234,14 +234,14 @@ QImage QQuickSpriteEngine::assembledImage()
             struct helper{
                 static int divRoundUp(int a, int b){return (a+b-1)/b;}
             };
-            int rowsNeeded = helper::divRoundUp(state->frames(), helper::divRoundUp(maxSize, state->frameWidth()));
+            int rowsNeeded = helper::divRoundUp(state->frames(), (maxSize / state->frameWidth()));
             if (rowsNeeded * state->frameHeight() > maxSize){
                 qWarning() << "SpriteEngine: Animation too large to fit in one texture..." << state->source().toLocalFile();
                 qWarning() << "SpriteEngine: Your texture max size today is " << maxSize;
             }
             state->m_generatedCount = rowsNeeded;
             h += state->frameHeight() * rowsNeeded;
-            w = qMax(w, helper::divRoundUp(maxSize, state->frameWidth()));
+            w = qMax(w, ((int)(maxSize / state->frameWidth())) * state->frameWidth());
             m_imageStateCount += rowsNeeded;
         }else{
             h += state->frameHeight();