[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src/traverso/songcanvas AudioClipView.cpp
From: |
Remon Sijrier |
Subject: |
[Traverso-commit] traverso/src/traverso/songcanvas AudioClipView.cpp |
Date: |
Fri, 19 Oct 2007 15:42:27 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Remon Sijrier <r_sijrier> 07/10/19 15:42:27
Modified files:
src/traverso/songcanvas: AudioClipView.cpp
Log message:
* paint waveform classical in 2 passes, a path for top and one for
bottom.
@ Ben && Nic, does this solve your paint problems ?
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/AudioClipView.cpp?cvsroot=traverso&r1=1.110&r2=1.111
Patches:
Index: AudioClipView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/AudioClipView.cpp,v
retrieving revision 1.110
retrieving revision 1.111
diff -u -b -r1.110 -r1.111
--- AudioClipView.cpp 18 Oct 2007 17:48:41 -0000 1.110
+++ AudioClipView.cpp 19 Oct 2007 15:42:27 -0000 1.111
@@ -472,24 +472,31 @@
}
}
- QPainterPath path;
- // in rectified view, we add an additional point, hence
+ 1
+ // we add one start/stop point so reserve some more...
m_polygontop.clear();
- m_polygontop.reserve(pixelcount + 1);
+ m_polygontop.reserve(pixelcount + 3);
int bufferpos = 0;
if (m_classicView) {
+ QPainterPath pathtop;
+ QPainterPath pathbottom;
+
m_polygonbottom.clear();
- m_polygonbottom.reserve(pixelcount);
+ m_polygonbottom.reserve(pixelcount + 3);
+
+ m_polygontop.append(QPointF(0, 0));
+ m_polygonbottom.append(QPointF(0, 0));
for (int x = 0; x < pixelcount; x+=2) {
m_polygontop.append( QPointF(x,
scaleFactor * pixeldata[chan][bufferpos++]) );
m_polygonbottom.append( QPointF(x,
-scaleFactor * pixeldata[chan][bufferpos++]) );
}
- path.addPolygon(m_polygontop);
- path.lineTo(m_polygonbottom.last());
- path.addPolygon(m_polygonbottom);
+ m_polygontop.append(QPointF(pixelcount, 0));
+ m_polygonbottom.append(QPointF(pixelcount, 0));
+
+ pathtop.addPolygon(m_polygontop);
+ pathbottom.addPolygon(m_polygonbottom);
if (m_mergedView) {
ytrans = (height / 2) * channels;
@@ -497,7 +504,14 @@
ytrans = (height / 2) + (chan * height);
}
+ p->setMatrix(matrix().translate(xstart +
adjustforevenpixel, ytrans), true);
+
+ p->drawPath(pathtop);
+ p->drawPath(pathbottom);
+
} else {
+ QPainterPath path;
+
scaleFactor = (float) height * 0.95 *
m_clip->get_gain() / Peak::MAX_DB_VALUE * curveDefaultValue;
ytrans = height + (chan * height);
@@ -515,12 +529,12 @@
path.addPolygon(m_polygontop);
path.lineTo(0, 0);
- }
-
p->setMatrix(matrix().translate(xstart +
adjustforevenpixel, ytrans), true);
p->drawPath(path);
}
+ }
+
p->restore();