]> git.sesse.net Git - kdenlive/commitdiff
Waveform: Skip rows instead of columns when realtime enabled. Avoids horizontal gaps.
authorSimon A. Eugster <simon.eu@gmail.com>
Sun, 5 Sep 2010 13:33:24 +0000 (13:33 +0000)
committerSimon A. Eugster <simon.eu@gmail.com>
Sun, 5 Sep 2010 13:33:24 +0000 (13:33 +0000)
svn path=/trunk/kdenlive/; revision=4845

src/colorcorrection/waveformgenerator.cpp

index 05d278d1d571c934ef4b96ead4a7c6375049c710..21d4b9cc25a9d3282a2cbccfffd09c1ac2a685c0 100644 (file)
@@ -77,9 +77,11 @@ QImage WaveformGenerator::calculateWaveform(const QSize &waveformSize, const QIm
         const float wPrediv = (float)(ww-1)/(iw-1);
 
         const uchar *bits = image.bits();
-        const uint stepsize = 4*accelFactor;
+        const uchar *bitsStart = bits;
 
-        for (uint i = 0, x = 0; i < byteCount; i += stepsize) {
+        for (uint i = 0, x = 0; i < byteCount; i += 4) {
+
+            Q_ASSERT(bits < bitsStart + byteCount);
 
             col = (QRgb *)bits;
 
@@ -96,9 +98,15 @@ QImage WaveformGenerator::calculateWaveform(const QSize &waveformSize, const QIm
             dx = x*wPrediv;
             waveValues[(int)dx][(int)dy]++;
 
-            bits += stepsize;
-            x += stepsize;
-            x %= iw; // Modulo image width, to represent the current x position in the image
+            bits += 4;
+            x += 4;
+            if (x > iw) {
+                x -= iw;
+                if (accelFactor > 1) {
+                    bits += 4*iw*(accelFactor-1);
+                    i += 4*iw*(accelFactor-1);
+                }
+            }
         }
 
         switch (paintMode) {