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