1 #include "waveform/renderers/qtvsynctestrenderer.h"
2
3 #include "track/track.h"
4 #include "util/painterscope.h"
5 #include "util/performancetimer.h"
6 #include "waveform/renderers/waveformwidgetrenderer.h"
7 #include "waveform/waveform.h"
8 #include "waveform/waveformwidgetfactory.h"
9
QtVSyncTestRenderer(WaveformWidgetRenderer * waveformWidgetRenderer)10 QtVSyncTestRenderer::QtVSyncTestRenderer(
11 WaveformWidgetRenderer* waveformWidgetRenderer)
12 : WaveformRendererSignalBase(waveformWidgetRenderer),
13 m_drawcount(0) {
14 }
15
~QtVSyncTestRenderer()16 QtVSyncTestRenderer::~QtVSyncTestRenderer() {
17 }
18
onSetup(const QDomNode & node)19 void QtVSyncTestRenderer::onSetup(const QDomNode& node) {
20 Q_UNUSED(node);
21 }
22
setPoint(QPointF & point,qreal x,qreal y)23 inline void setPoint(QPointF& point, qreal x, qreal y) {
24 point.setX(x);
25 point.setY(y);
26 }
27
draw(QPainter * pPainter,QPaintEvent *)28 void QtVSyncTestRenderer::draw(QPainter* pPainter, QPaintEvent* /*event*/) {
29
30 PerformanceTimer timer;
31 //mixxx::Duration t5, t6, t7, t8, t9, t10, t11, t12, t13;
32
33
34 timer.start();
35
36 TrackPointer pTrack = m_waveformRenderer->getTrackInfo();
37 if (!pTrack) {
38 return;
39 }
40
41 ConstWaveformPointer waveform = pTrack->getWaveform();
42 if (waveform.isNull()) {
43 return;
44 }
45
46 const int dataSize = waveform->getDataSize();
47 if (dataSize <= 1) {
48 return;
49 }
50
51 const WaveformData* data = waveform->data();
52 if (data == nullptr) {
53 return;
54 }
55
56 PainterScope PainterScope(pPainter);
57
58 auto brush = QBrush(Qt::SolidPattern);
59 if (++m_drawcount & 1) {
60 brush.setColor(QColor(255, 255, 255));
61 } else {
62 brush.setColor(QColor(255, 0, 0));
63 }
64
65 pPainter->setBrush(brush);
66
67 pPainter->drawRect(0, 0, m_waveformRenderer->getWidth(),
68 m_waveformRenderer->getHeight());
69 }
70