1 #include "glrgbwaveformwidget.h" 2 3 #include "moc_glrgbwaveformwidget.cpp" 4 #include "util/performancetimer.h" 5 #include "waveform/renderers/glwaveformrendererrgb.h" 6 #include "waveform/renderers/waveformrenderbackground.h" 7 #include "waveform/renderers/waveformrenderbeat.h" 8 #include "waveform/renderers/waveformrendererendoftrack.h" 9 #include "waveform/renderers/waveformrendererpreroll.h" 10 #include "waveform/renderers/waveformrendermark.h" 11 #include "waveform/renderers/waveformrendermarkrange.h" 12 #include "waveform/renderers/waveformwidgetrenderer.h" 13 #include "waveform/sharedglcontext.h" 14 GLRGBWaveformWidget(const QString & group,QWidget * parent)15GLRGBWaveformWidget::GLRGBWaveformWidget(const QString& group, QWidget* parent) 16 : GLWaveformWidgetAbstract(group, parent) { 17 qDebug() << "Created QGLWidget. Context" 18 << "Valid:" << context()->isValid() 19 << "Sharing:" << context()->isSharing(); 20 21 addRenderer<WaveformRenderBackground>(); 22 addRenderer<WaveformRendererEndOfTrack>(); 23 addRenderer<WaveformRendererPreroll>(); 24 addRenderer<WaveformRenderMarkRange>(); 25 #if !defined(QT_NO_OPENGL) && !defined(QT_OPENGL_ES_2) 26 m_pGlRenderer = addRenderer<GLWaveformRendererRGB>(); 27 #endif // !defined(QT_NO_OPENGL) && !defined(QT_OPENGL_ES_2) 28 addRenderer<WaveformRenderBeat>(); 29 addRenderer<WaveformRenderMark>(); 30 31 setAttribute(Qt::WA_NoSystemBackground); 32 setAttribute(Qt::WA_OpaquePaintEvent); 33 34 setAutoBufferSwap(false); 35 36 m_initSuccess = init(); 37 } 38 ~GLRGBWaveformWidget()39GLRGBWaveformWidget::~GLRGBWaveformWidget() { 40 41 } 42 castToQWidget()43void GLRGBWaveformWidget::castToQWidget() { 44 m_widget = this; 45 } 46 paintEvent(QPaintEvent * event)47void GLRGBWaveformWidget::paintEvent(QPaintEvent* event) { 48 Q_UNUSED(event); 49 } 50 render()51mixxx::Duration GLRGBWaveformWidget::render() { 52 PerformanceTimer timer; 53 mixxx::Duration t1; 54 //mixxx::Duration t2, t3; 55 timer.start(); 56 // QPainter makes QGLContext::currentContext() == context() 57 // this may delayed until previous buffer swap finished 58 QPainter painter(this); 59 t1 = timer.restart(); 60 draw(&painter, nullptr); 61 //t2 = timer.restart(); 62 //qDebug() << "GLRGBWaveformWidget" << t1 << t2; 63 return t1; // return timer for painter setup 64 } 65