summaryrefslogtreecommitdiffstats
path: root/src/waveform/renderers/glwaveformrenderersimplesignal.cpp
diff options
context:
space:
mode:
authorRJ Ryan <rryan@mixxx.org>2014-04-04 00:13:00 -0400
committerRJ Ryan <rryan@mixxx.org>2014-04-04 00:13:00 -0400
commit4b6473dbb5815c5cb61531dee2ed8b28f7831a76 (patch)
tree421d35d74ad6d83a766578de690602142052872f /src/waveform/renderers/glwaveformrenderersimplesignal.cpp
parent7fa05bece112caa150084cd24aea63f1a5f0e453 (diff)
Fix some hotspots that showed up while profiling the waveform renderers.
* When no signal colors are provided, 3% of waveform rendering time was spent converting HSL to RGB over and over. QColor::redF/greenF/blueF are the devil. * Don't set the pen on every beat in WaveformRenderBeat -- all Qt performance articles talk about minimizing calls to setPen. * Fix some repetition (hoist some values out of loops, try to get better inlining, etc.).
Diffstat (limited to 'src/waveform/renderers/glwaveformrenderersimplesignal.cpp')
-rw-r--r--src/waveform/renderers/glwaveformrenderersimplesignal.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/waveform/renderers/glwaveformrenderersimplesignal.cpp b/src/waveform/renderers/glwaveformrenderersimplesignal.cpp
index d60bc01c3f..b4d0e2f048 100644
--- a/src/waveform/renderers/glwaveformrenderersimplesignal.cpp
+++ b/src/waveform/renderers/glwaveformrenderersimplesignal.cpp
@@ -62,8 +62,6 @@ void GLWaveformRendererSimpleSignal::draw(QPainter* painter, QPaintEvent* /*even
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- const QColor& color = m_pColors->getSignalColor();
-
WaveformWidgetFactory* factory = WaveformWidgetFactory::instance();
const double visualGain = factory->getVisualGain(::WaveformWidgetFactory::All);
@@ -86,7 +84,8 @@ void GLWaveformRendererSimpleSignal::draw(QPainter* painter, QPaintEvent* /*even
//draw reference line
glBegin(GL_LINES); {
- glColor4f(m_axesColor.redF(),m_axesColor.greenF(),m_axesColor.blueF(),m_axesColor.alphaF());
+ glColor4f(m_axesColor_r, m_axesColor_g,
+ m_axesColor_b, m_axesColor_a);
glVertex2f(firstVisualIndex,0);
glVertex2f(lastVisualIndex,0);
}
@@ -108,7 +107,7 @@ void GLWaveformRendererSimpleSignal::draw(QPainter* painter, QPaintEvent* /*even
maxAll[0] = (float)data[visualIndex].filtered.all;
maxAll[1] = (float)data[visualIndex+1].filtered.all;
- glColor4f(color.redF(),color.greenF(),color.blueF(),0.9);
+ glColor4f(m_signalColor_r, m_signalColor_g, m_signalColor_b, 0.9);
glVertex2f(visualIndex,maxAll[0]);
glVertex2f(visualIndex,-1.f*maxAll[1]);
}
@@ -145,7 +144,7 @@ void GLWaveformRendererSimpleSignal::draw(QPainter* painter, QPaintEvent* /*even
maxAll[0] = (float)data[visualIndex].filtered.all;
maxAll[1] = (float)data[visualIndex+1].filtered.all;
- glColor4f(color.redF(),color.greenF(),color.blueF(),0.8);
+ glColor4f(m_signalColor_r, m_signalColor_g, m_signalColor_b, 0.8);
glVertex2f(float(visualIndex),0.f);
glVertex2f(float(visualIndex),math_max(maxAll[0],maxAll[1]));
}