diff --git a/build/depends.py b/build/depends.py index 56b0da50f99f..d5336ded1f7a 100644 --- a/build/depends.py +++ b/build/depends.py @@ -1074,7 +1074,6 @@ def sources(self, build): "widget/wwaveformviewer.cpp", - "waveform/sharedglcontext.cpp", "waveform/waveform.cpp", "waveform/waveformfactory.cpp", "waveform/waveformwidgetfactory.cpp", diff --git a/src/mixxx.cpp b/src/mixxx.cpp index 3f8ce55bb7da..7e44750898e1 100644 --- a/src/mixxx.cpp +++ b/src/mixxx.cpp @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include @@ -50,7 +50,6 @@ #include "sources/soundsourceproxy.h" #include "track/track.h" #include "waveform/waveformwidgetfactory.h" -#include "waveform/sharedglcontext.h" #include "database/mixxxdb.h" #include "util/debug.h" #include "util/statsmanager.h" @@ -377,14 +376,6 @@ void MixxxMainWindow::initialize(QApplication* pApp, const CmdlineArgs& args) { // and emit newSkinLoaded. connectMenuBar(); - // Before creating the first skin we need to create a QGLWidget so that all - // the QGLWidget's we create can use it as a shared QGLContext. - if (!CmdlineArgs::Instance().getSafeMode()) { - QGLWidget* pContextWidget = new QGLWidget(this); - pContextWidget->hide(); - SharedGLContext::setWidget(pContextWidget); - } - launchProgress(63); QWidget* oldWidget = m_pWidgetParent; diff --git a/src/waveform/sharedglcontext.cpp b/src/waveform/sharedglcontext.cpp deleted file mode 100644 index 5667316cbec3..000000000000 --- a/src/waveform/sharedglcontext.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include "waveform/sharedglcontext.h" - -#include -#include -#include -#include - -const QGLWidget* SharedGLContext::s_pSharedGLWidget = NULL; - -// static -void SharedGLContext::setWidget(const QGLWidget* pWidget) { - s_pSharedGLWidget = pWidget; - qDebug() << "Set root GL Context widget valid:" - << pWidget << (pWidget && pWidget->isValid()); - const QGLContext* pContext = pWidget->context(); - qDebug() << "Created root GL Context valid:" << pContext - << (pContext && pContext->isValid()); - if (pWidget) { - QGLFormat format = pWidget->format(); - qDebug() << "Root GL Context format:"; - qDebug() << "Double Buffering:" << format.doubleBuffer(); - qDebug() << "Swap interval:" << format.swapInterval(); - qDebug() << "Depth buffer:" << format.depth(); - qDebug() << "Direct rendering:" << format.directRendering(); - qDebug() << "Has overlay:" << format.hasOverlay(); - qDebug() << "RGBA:" << format.rgba(); - qDebug() << "Sample buffers:" << format.sampleBuffers(); - qDebug() << "Samples:" << format.samples(); - qDebug() << "Stencil buffers:" << format.stencil(); - qDebug() << "Stereo:" << format.stereo(); - } -} - -// static -const QGLWidget* SharedGLContext::getWidget() { - return s_pSharedGLWidget; -} diff --git a/src/waveform/sharedglcontext.h b/src/waveform/sharedglcontext.h deleted file mode 100644 index ca1bf44b1f70..000000000000 --- a/src/waveform/sharedglcontext.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef WAVEFORM_SHAREDGLCONTEXT_H -#define WAVEFORM_SHAREDGLCONTEXT_H - -class QGLWidget; - -// Creating a QGLContext on its own doesn't work. We've tried that. You can't -// create a context on your own. It has to be associated with a real paint -// device. Source: -// http://lists.trolltech.com/qt-interest/2008-08/thread00046-0.html -class SharedGLContext { - public: - static const QGLWidget* getWidget(); - static void setWidget(const QGLWidget* pWidget); - private: - SharedGLContext() { } - static const QGLWidget* s_pSharedGLWidget; -}; - -#endif /* WAVEFORM_SHAREDGLCONTEXT_H */ diff --git a/src/waveform/vsyncthread.cpp b/src/waveform/vsyncthread.cpp index cde7a01686a4..2b1d91630fc5 100644 --- a/src/waveform/vsyncthread.cpp +++ b/src/waveform/vsyncthread.cpp @@ -121,26 +121,9 @@ void VSyncThread::run() { // static -void VSyncThread::swapGl(QGLWidget* glw, int index) { +void VSyncThread::swapGl(QOpenGLWidget* glw, int index) { Q_UNUSED(index); - // No need for glw->makeCurrent() here. - //qDebug() << "swapGl" << m_timer.elapsed().formatNanosWithUnit(); -#if defined(__APPLE__) - glw->swapBuffers(); -#elif defined(__WINDOWS__) - glw->swapBuffers(); -#else -#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) -#ifdef QT_OPENGL_ES_2 - glw->swapBuffers(); -#else - const QX11Info *xinfo = qt_x11Info(glw); - glXSwapBuffers(xinfo->display(), glw->winId()); -#endif -#else - glw->swapBuffers(); -#endif // QT_VERSION < QT_VERSION_CHECK(5, 0, 0) -#endif + // TODO: glw->swapBuffers() used to be called here, but it is not offered by the QOpenGLWidget } int VSyncThread::elapsed() { diff --git a/src/waveform/vsyncthread.h b/src/waveform/vsyncthread.h index 2f55bb3d1c16..4fef2f030fdd 100644 --- a/src/waveform/vsyncthread.h +++ b/src/waveform/vsyncthread.h @@ -5,7 +5,7 @@ #include #include #include -#include +#include #if defined(__APPLE__) @@ -42,7 +42,7 @@ class VSyncThread : public QThread { ST_COUNT // Dummy Type at last, counting possible types }; - static void swapGl(QGLWidget* glw, int index); + static void swapGl(QOpenGLWidget* glw, int index); VSyncThread(QObject* pParent, GuiTick* pGuiTick); ~VSyncThread(); @@ -50,18 +50,14 @@ class VSyncThread : public QThread { void run(); void stop(); - bool waitForVideoSync(QGLWidget* glw); int elapsed(); int toNextSyncMicros(); void setSyncIntervalTimeMicros(int usSyncTimer); void setVSyncType(int mode); int droppedFrames(); - void setSwapWait(int sw); int fromTimerToNextSyncMicros(const PerformanceTimer& timer); void vsyncSlotFinished(); void getAvailableVSyncTypes(QList >* list); - void setupSync(QGLWidget* glw, int index); - void waitUntilSwap(QGLWidget* glw); signals: void vsyncRender(); @@ -69,14 +65,12 @@ class VSyncThread : public QThread { private: bool m_bDoRendering; - //QGLWidget *m_glw; #if defined(__APPLE__) #elif defined(__WINDOWS__) #else - void initGlxext(QGLWidget* glw); //bool glXExtensionSupported(Display *dpy, int screen, const char *extension); /* Currently unused, but probably part of later a hardware sync solution diff --git a/src/waveform/waveformwidgetfactory.cpp b/src/waveform/waveformwidgetfactory.cpp index 725fa0f41f06..3371e76e1f01 100644 --- a/src/waveform/waveformwidgetfactory.cpp +++ b/src/waveform/waveformwidgetfactory.cpp @@ -4,9 +4,10 @@ #include #include #include -#include +#include #include #include +#include #include "waveform/waveformwidgetfactory.h" @@ -170,12 +171,12 @@ WaveformWidgetFactory::WaveformWidgetFactory() : m_openGLAvailable = true; - QGLWidget* glWidget = new QGLWidget(); // create paint device + QOpenGLWidget* glWidget = new QOpenGLWidget(); // create paint device // QGLShaderProgram::hasOpenGLShaderPrograms(); valgind error // Without a makeCurrent, hasOpenGLShaderPrograms returns false on Qt 5. - glWidget->context()->makeCurrent(); + glWidget->makeCurrent(); m_openGLShaderAvailable = - QGLShaderProgram::hasOpenGLShaderPrograms(glWidget->context()); + QOpenGLShaderProgram::hasOpenGLShaderPrograms(glWidget->context()); delete glWidget; } @@ -565,7 +566,7 @@ void WaveformWidgetFactory::swap() { for (int i = 0; i < m_waveformWidgetHolders.size(); i++) { WaveformWidgetAbstract* pWaveformWidget = m_waveformWidgetHolders[i].m_waveformWidget; if (pWaveformWidget->getWidth() > 0) { - QGLWidget* glw = dynamic_cast(pWaveformWidget->getWidget()); + QOpenGLWidget* glw = dynamic_cast(pWaveformWidget->getWidget()); // Don't swap invalid / invisible widgets or widgets with an // unexposed window. Prevents continuous log spew of // "QOpenGLContext::swapBuffers() called with non-exposed diff --git a/src/waveform/widgets/glrgbwaveformwidget.cpp b/src/waveform/widgets/glrgbwaveformwidget.cpp index 6c7aff166cb4..c2ac4db7a7f0 100644 --- a/src/waveform/widgets/glrgbwaveformwidget.cpp +++ b/src/waveform/widgets/glrgbwaveformwidget.cpp @@ -1,6 +1,5 @@ #include "glrgbwaveformwidget.h" -#include "waveform/sharedglcontext.h" #include "waveform/renderers/waveformwidgetrenderer.h" #include "waveform/renderers/waveformrenderbackground.h" #include "waveform/renderers/glwaveformrendererrgb.h" @@ -12,8 +11,10 @@ #include "util/performancetimer.h" +#include + GLRGBWaveformWidget::GLRGBWaveformWidget(const char* group, QWidget* parent) - : QGLWidget(parent, SharedGLContext::getWidget()), + : QOpenGLWidget(parent), WaveformWidgetAbstract(group) { addRenderer(); @@ -27,12 +28,7 @@ GLRGBWaveformWidget::GLRGBWaveformWidget(const char* group, QWidget* parent) setAttribute(Qt::WA_NoSystemBackground); setAttribute(Qt::WA_OpaquePaintEvent); - setAutoBufferSwap(false); - - qDebug() << "Created QGLWidget. Context" - << "Valid:" << context()->isValid() - << "Sharing:" << context()->isSharing(); - if (QGLContext::currentContext() != context()) { + if (QOpenGLContext::currentContext() != context()) { makeCurrent(); } m_initSuccess = init(); @@ -43,7 +39,7 @@ GLRGBWaveformWidget::~GLRGBWaveformWidget() { } void GLRGBWaveformWidget::castToQWidget() { - m_widget = static_cast(static_cast(this)); + m_widget = static_cast(static_cast(this)); } void GLRGBWaveformWidget::paintEvent(QPaintEvent* event) { @@ -55,7 +51,7 @@ mixxx::Duration GLRGBWaveformWidget::render() { mixxx::Duration t1; //mixxx::Duration t2, t3; timer.start(); - // QPainter makes QGLContext::currentContext() == context() + // QPainter makes QOpenGLContext::currentContext() == context() // this may delayed until previous buffer swap finished QPainter painter(this); t1 = timer.restart(); diff --git a/src/waveform/widgets/glrgbwaveformwidget.h b/src/waveform/widgets/glrgbwaveformwidget.h index e2b19308589e..272f21dae656 100644 --- a/src/waveform/widgets/glrgbwaveformwidget.h +++ b/src/waveform/widgets/glrgbwaveformwidget.h @@ -1,11 +1,11 @@ #ifndef GLRGBWAVEFORMWIDGET_H #define GLRGBWAVEFORMWIDGET_H -#include +#include #include "waveformwidgetabstract.h" -class GLRGBWaveformWidget : public QGLWidget, public WaveformWidgetAbstract { +class GLRGBWaveformWidget : public QOpenGLWidget, public WaveformWidgetAbstract { Q_OBJECT public: GLRGBWaveformWidget(const char* group, QWidget* parent); diff --git a/src/waveform/widgets/glsimplewaveformwidget.cpp b/src/waveform/widgets/glsimplewaveformwidget.cpp index 8be76fe33b21..6040fb9b2baf 100644 --- a/src/waveform/widgets/glsimplewaveformwidget.cpp +++ b/src/waveform/widgets/glsimplewaveformwidget.cpp @@ -2,8 +2,8 @@ #include #include +#include -#include "waveform/sharedglcontext.h" #include "waveform/renderers/waveformwidgetrenderer.h" #include "waveform/renderers/waveformrenderbackground.h" #include "waveform/renderers/glwaveformrenderersimplesignal.h" @@ -16,7 +16,7 @@ #include "util/performancetimer.h" GLSimpleWaveformWidget::GLSimpleWaveformWidget(const char* group, QWidget* parent) - : QGLWidget(parent, SharedGLContext::getWidget()), + : QOpenGLWidget(parent), WaveformWidgetAbstract(group) { addRenderer(); addRenderer(); @@ -29,25 +29,20 @@ GLSimpleWaveformWidget::GLSimpleWaveformWidget(const char* group, QWidget* paren setAttribute(Qt::WA_NoSystemBackground); setAttribute(Qt::WA_OpaquePaintEvent); - setAutoBufferSwap(false); - - qDebug() << "Created QGLWidget. Context" - << "Valid:" << context()->isValid() - << "Sharing:" << context()->isSharing(); - if (QGLContext::currentContext() != context()) { + if (QOpenGLContext::currentContext() != context()) { makeCurrent(); } m_initSuccess = init(); } GLSimpleWaveformWidget::~GLSimpleWaveformWidget() { - if (QGLContext::currentContext() != context()) { + if (QOpenGLContext::currentContext() != context()) { makeCurrent(); } } void GLSimpleWaveformWidget::castToQWidget() { - m_widget = static_cast(static_cast(this)); + m_widget = static_cast(static_cast(this)); } void GLSimpleWaveformWidget::paintEvent(QPaintEvent* event) { @@ -59,7 +54,7 @@ mixxx::Duration GLSimpleWaveformWidget::render() { mixxx::Duration t1; //mixxx::Duration t2, t3; timer.start(); - // QPainter makes QGLContext::currentContext() == context() + // QPainter makes QOpenGLContext::currentContext() == context() // this may delayed until previous buffer swap finished QPainter painter(this); t1 = timer.restart(); diff --git a/src/waveform/widgets/glsimplewaveformwidget.h b/src/waveform/widgets/glsimplewaveformwidget.h index 0bf0b024aab3..4ff9d7e75491 100644 --- a/src/waveform/widgets/glsimplewaveformwidget.h +++ b/src/waveform/widgets/glsimplewaveformwidget.h @@ -1,11 +1,11 @@ #ifndef GLSIMPLEWAVEFORMWIDGET_H #define GLSIMPLEWAVEFORMWIDGET_H -#include +#include #include "waveformwidgetabstract.h" -class GLSimpleWaveformWidget : public QGLWidget, public WaveformWidgetAbstract { +class GLSimpleWaveformWidget : public QOpenGLWidget, public WaveformWidgetAbstract { Q_OBJECT public: GLSimpleWaveformWidget(const char* group, QWidget* parent); diff --git a/src/waveform/widgets/glslwaveformwidget.cpp b/src/waveform/widgets/glslwaveformwidget.cpp index ae2d3d7ea192..715af86ac4e9 100644 --- a/src/waveform/widgets/glslwaveformwidget.cpp +++ b/src/waveform/widgets/glslwaveformwidget.cpp @@ -2,6 +2,7 @@ #include #include +#include #include "waveform/renderers/waveformwidgetrenderer.h" #include "waveform/renderers/waveformrenderbackground.h" @@ -11,7 +12,6 @@ #include "waveform/renderers/waveformrendermarkrange.h" #include "waveform/renderers/waveformrendererendoftrack.h" #include "waveform/renderers/waveformrenderbeat.h" -#include "waveform/sharedglcontext.h" #include "util/performancetimer.h" @@ -26,7 +26,7 @@ GLSLRGBWaveformWidget::GLSLRGBWaveformWidget(const char* group, QWidget* parent) GLSLWaveformWidget::GLSLWaveformWidget(const char* group, QWidget* parent, bool rgbRenderer) - : QGLWidget(parent, SharedGLContext::getWidget()), + : QOpenGLWidget(parent), WaveformWidgetAbstract(group) { addRenderer(); addRenderer(); @@ -43,14 +43,8 @@ GLSLWaveformWidget::GLSLWaveformWidget(const char* group, QWidget* parent, setAttribute(Qt::WA_NoSystemBackground); setAttribute(Qt::WA_OpaquePaintEvent); - setAutoBufferSwap(false); - - qDebug() << "Created QGLWidget. Context" - << "Valid:" << context()->isValid() - << "Sharing:" << context()->isSharing(); - // Initialization requires activating our context. - if (QGLContext::currentContext() != context()) { + if (QOpenGLContext::currentContext() != context()) { makeCurrent(); } m_initSuccess = init(); @@ -61,7 +55,7 @@ GLSLWaveformWidget::~GLSLWaveformWidget() { } void GLSLWaveformWidget::castToQWidget() { - m_widget = static_cast(static_cast(this)); + m_widget = static_cast(static_cast(this)); } void GLSLWaveformWidget::paintEvent(QPaintEvent* event) { @@ -73,7 +67,7 @@ mixxx::Duration GLSLWaveformWidget::render() { mixxx::Duration t1; //mixxx::Duration t2, t3; timer.start(); - // QPainter makes QGLContext::currentContext() == context() + // QPainter makes QOpenGLContext::currentContext() == context() // this may delayed until previous buffer swap finished QPainter painter(this); t1 = timer.restart(); diff --git a/src/waveform/widgets/glslwaveformwidget.h b/src/waveform/widgets/glslwaveformwidget.h index 915c1a56abcb..a446210f5647 100644 --- a/src/waveform/widgets/glslwaveformwidget.h +++ b/src/waveform/widgets/glslwaveformwidget.h @@ -1,13 +1,13 @@ #ifndef GLWAVEFORMWIDGETSHADER_H #define GLWAVEFORMWIDGETSHADER_H -#include +#include #include "waveformwidgetabstract.h" class GLSLWaveformRendererSignal; -class GLSLWaveformWidget : public QGLWidget, public WaveformWidgetAbstract { +class GLSLWaveformWidget : public QOpenGLWidget, public WaveformWidgetAbstract { Q_OBJECT public: GLSLWaveformWidget(const char* group, QWidget* parent, diff --git a/src/waveform/widgets/glvsynctestwidget.cpp b/src/waveform/widgets/glvsynctestwidget.cpp index 33a3277d367a..34d2d6eddfe3 100644 --- a/src/waveform/widgets/glvsynctestwidget.cpp +++ b/src/waveform/widgets/glvsynctestwidget.cpp @@ -1,8 +1,8 @@ #include "glvsynctestwidget.h" #include +#include -#include "waveform/sharedglcontext.h" #include "waveform/renderers/waveformwidgetrenderer.h" #include "waveform/renderers/waveformrenderbackground.h" #include "waveform/renderers/glwaveformrenderersimplesignal.h" @@ -16,7 +16,7 @@ #include "util/performancetimer.h" GLVSyncTestWidget::GLVSyncTestWidget(const char* group, QWidget* parent) - : QGLWidget(parent, SharedGLContext::getWidget()), + : QOpenGLWidget(parent), WaveformWidgetAbstract(group) { // addRenderer(); // 172 µs @@ -30,23 +30,20 @@ GLVSyncTestWidget::GLVSyncTestWidget(const char* group, QWidget* parent) setAttribute(Qt::WA_NoSystemBackground); setAttribute(Qt::WA_OpaquePaintEvent); - setAutoBufferSwap(false); - - if (QGLContext::currentContext() != context()) { + if (QOpenGLContext::currentContext() != context()) { makeCurrent(); } m_initSuccess = init(); - qDebug() << "GLVSyncTestWidget.isSharing() =" << isSharing(); } GLVSyncTestWidget::~GLVSyncTestWidget() { - if (QGLContext::currentContext() != context()) { + if (QOpenGLContext::currentContext() != context()) { makeCurrent(); } } void GLVSyncTestWidget::castToQWidget() { - m_widget = static_cast(static_cast(this)); + m_widget = static_cast(static_cast(this)); } void GLVSyncTestWidget::paintEvent(QPaintEvent* event) { @@ -58,7 +55,7 @@ mixxx::Duration GLVSyncTestWidget::render() { mixxx::Duration t1; //mixxx::Duration t2, t3; timer.start(); - // QPainter makes QGLContext::currentContext() == context() + // QPainter makes QOpenGLContext::currentContext() == context() // this may delayed until previous buffer swap finished QPainter painter(this); t1 = timer.restart(); diff --git a/src/waveform/widgets/glvsynctestwidget.h b/src/waveform/widgets/glvsynctestwidget.h index 21d89846ed36..4e49f8a0a0dc 100644 --- a/src/waveform/widgets/glvsynctestwidget.h +++ b/src/waveform/widgets/glvsynctestwidget.h @@ -1,11 +1,11 @@ #ifndef GLVSYNCTESTWIDGET_H #define GLVSYNCTESTWIDGET_H -#include +#include #include "waveformwidgetabstract.h" -class GLVSyncTestWidget : public QGLWidget, public WaveformWidgetAbstract { +class GLVSyncTestWidget : public QOpenGLWidget, public WaveformWidgetAbstract { Q_OBJECT public: GLVSyncTestWidget(const char* group, QWidget* parent); diff --git a/src/waveform/widgets/glwaveformwidget.cpp b/src/waveform/widgets/glwaveformwidget.cpp index b9cd81e1e51e..a01bc0296125 100644 --- a/src/waveform/widgets/glwaveformwidget.cpp +++ b/src/waveform/widgets/glwaveformwidget.cpp @@ -1,5 +1,5 @@ #include -#include +#include #include #include "waveform/widgets/glwaveformwidget.h" @@ -12,11 +12,10 @@ #include "waveform/renderers/waveformrendermarkrange.h" #include "waveform/renderers/waveformrendererendoftrack.h" #include "waveform/renderers/waveformrenderbeat.h" -#include "waveform/sharedglcontext.h" #include "util/performancetimer.h" GLWaveformWidget::GLWaveformWidget(const char* group, QWidget* parent) - : QGLWidget(parent, SharedGLContext::getWidget()), + : QOpenGLWidget(parent), WaveformWidgetAbstract(group) { addRenderer(); @@ -30,12 +29,7 @@ GLWaveformWidget::GLWaveformWidget(const char* group, QWidget* parent) setAttribute(Qt::WA_NoSystemBackground); setAttribute(Qt::WA_OpaquePaintEvent); - setAutoBufferSwap(false); - - qDebug() << "Created QGLWidget. Context" - << "Valid:" << context()->isValid() - << "Sharing:" << context()->isSharing(); - if (QGLContext::currentContext() != context()) { + if (QOpenGLContext::currentContext() != context()) { makeCurrent(); } m_initSuccess = init(); @@ -45,7 +39,7 @@ GLWaveformWidget::~GLWaveformWidget() { } void GLWaveformWidget::castToQWidget() { - m_widget = static_cast(static_cast(this)); + m_widget = static_cast(static_cast(this)); } void GLWaveformWidget::paintEvent(QPaintEvent* event) { @@ -57,7 +51,7 @@ mixxx::Duration GLWaveformWidget::render() { mixxx::Duration t1; //mixxx::Duration t2, t3; timer.start(); - // QPainter makes QGLContext::currentContext() == context() + // QPainter makes QOpenGLContext::currentContext() == context() // this may delayed until previous buffer swap finished QPainter painter(this); t1 = timer.restart(); diff --git a/src/waveform/widgets/glwaveformwidget.h b/src/waveform/widgets/glwaveformwidget.h index cc3dbd9c5846..9d51560ab1b0 100644 --- a/src/waveform/widgets/glwaveformwidget.h +++ b/src/waveform/widgets/glwaveformwidget.h @@ -1,11 +1,11 @@ #ifndef GLWAVEFORMWIDGET_H #define GLWAVEFORMWIDGET_H -#include +#include #include "waveformwidgetabstract.h" -class GLWaveformWidget : public QGLWidget, public WaveformWidgetAbstract { +class GLWaveformWidget : public QOpenGLWidget, public WaveformWidgetAbstract { Q_OBJECT public: GLWaveformWidget(const char* group, QWidget* parent); diff --git a/src/waveform/widgets/hsvwaveformwidget.cpp b/src/waveform/widgets/hsvwaveformwidget.cpp index 14d7ec1670f9..c4c920d1e2c1 100644 --- a/src/waveform/widgets/hsvwaveformwidget.cpp +++ b/src/waveform/widgets/hsvwaveformwidget.cpp @@ -1,6 +1,7 @@ #include "hsvwaveformwidget.h" #include +#include #include "waveform/renderers/waveformwidgetrenderer.h" #include "waveform/renderers/waveformrenderbackground.h" diff --git a/src/waveform/widgets/qtsimplewaveformwidget.cpp b/src/waveform/widgets/qtsimplewaveformwidget.cpp index 5de3acc81d40..9e1397ac6dbf 100644 --- a/src/waveform/widgets/qtsimplewaveformwidget.cpp +++ b/src/waveform/widgets/qtsimplewaveformwidget.cpp @@ -2,8 +2,8 @@ #include #include +#include -#include "waveform/sharedglcontext.h" #include "waveform/renderers/waveformwidgetrenderer.h" #include "waveform/renderers/waveformrenderbackground.h" #include "waveform/renderers/qtwaveformrenderersimplesignal.h" @@ -16,7 +16,7 @@ #include "util/performancetimer.h" QtSimpleWaveformWidget::QtSimpleWaveformWidget(const char* group, QWidget* parent) - : QGLWidget(parent, SharedGLContext::getWidget()), + : QOpenGLWidget(parent), WaveformWidgetAbstract(group) { addRenderer(); addRenderer(); @@ -29,25 +29,20 @@ QtSimpleWaveformWidget::QtSimpleWaveformWidget(const char* group, QWidget* paren setAttribute(Qt::WA_NoSystemBackground); setAttribute(Qt::WA_OpaquePaintEvent); - setAutoBufferSwap(false); - - qDebug() << "Created QGLWidget. Context" - << "Valid:" << context()->isValid() - << "Sharing:" << context()->isSharing(); - if (QGLContext::currentContext() != context()) { + if (QOpenGLContext::currentContext() != context()) { makeCurrent(); } m_initSuccess = init(); } QtSimpleWaveformWidget::~QtSimpleWaveformWidget() { - if (QGLContext::currentContext() != context()) { + if (QOpenGLContext::currentContext() != context()) { makeCurrent(); } } void QtSimpleWaveformWidget::castToQWidget() { - m_widget = static_cast(static_cast(this)); + m_widget = static_cast(static_cast(this)); } void QtSimpleWaveformWidget::paintEvent(QPaintEvent* event) { @@ -59,7 +54,7 @@ mixxx::Duration QtSimpleWaveformWidget::render() { mixxx::Duration t1; //mixxx::Duration t2, t3; timer.start(); - // QPainter makes QGLContext::currentContext() == context() + // QPainter makes QOpenGLContext::currentContext() == context() // this may delayed until previous buffer swap finished QPainter painter(this); t1 = timer.restart(); diff --git a/src/waveform/widgets/qtsimplewaveformwidget.h b/src/waveform/widgets/qtsimplewaveformwidget.h index 2b87555f9ed6..fc5ca316b947 100644 --- a/src/waveform/widgets/qtsimplewaveformwidget.h +++ b/src/waveform/widgets/qtsimplewaveformwidget.h @@ -1,11 +1,11 @@ #ifndef QTSIMPLEWAVEFORMWIDGET_H #define QTSIMPLEWAVEFORMWIDGET_H -#include +#include #include "waveformwidgetabstract.h" -class QtSimpleWaveformWidget : public QGLWidget, public WaveformWidgetAbstract { +class QtSimpleWaveformWidget : public QOpenGLWidget, public WaveformWidgetAbstract { Q_OBJECT public: QtSimpleWaveformWidget(const char* group, QWidget* parent); diff --git a/src/waveform/widgets/qtwaveformwidget.cpp b/src/waveform/widgets/qtwaveformwidget.cpp index bede3c690c40..ee6a8ca497e1 100644 --- a/src/waveform/widgets/qtwaveformwidget.cpp +++ b/src/waveform/widgets/qtwaveformwidget.cpp @@ -1,5 +1,5 @@ #include -#include +#include #include #include "waveform/widgets/qtwaveformwidget.h" @@ -12,12 +12,11 @@ #include "waveform/renderers/waveformrendermarkrange.h" #include "waveform/renderers/waveformrendererendoftrack.h" #include "waveform/renderers/waveformrenderbeat.h" -#include "waveform/sharedglcontext.h" #include "util/performancetimer.h" QtWaveformWidget::QtWaveformWidget(const char* group, QWidget* parent) - : QGLWidget(parent, SharedGLContext::getWidget()), + : QOpenGLWidget(parent), WaveformWidgetAbstract(group) { addRenderer(); addRenderer(); @@ -30,12 +29,7 @@ QtWaveformWidget::QtWaveformWidget(const char* group, QWidget* parent) setAttribute(Qt::WA_NoSystemBackground); setAttribute(Qt::WA_OpaquePaintEvent); - setAutoBufferSwap(false); - - qDebug() << "Created QGLWidget. Context" - << "Valid:" << context()->isValid() - << "Sharing:" << context()->isSharing(); - if (QGLContext::currentContext() != context()) { + if (QOpenGLContext::currentContext() != context()) { makeCurrent(); } m_initSuccess = init(); @@ -45,7 +39,7 @@ QtWaveformWidget::~QtWaveformWidget() { } void QtWaveformWidget::castToQWidget() { - m_widget = static_cast(static_cast(this)); + m_widget = static_cast(static_cast(this)); } void QtWaveformWidget::paintEvent(QPaintEvent* event) { @@ -57,7 +51,7 @@ mixxx::Duration QtWaveformWidget::render() { mixxx::Duration t1; //mixxx::Duration t2, t3; timer.start(); - // QPainter makes QGLContext::currentContext() == context() + // QPainter makes QOpenGLContext::currentContext() == context() // this may delayed until previous buffer swap finished QPainter painter(this); t1 = timer.restart(); diff --git a/src/waveform/widgets/qtwaveformwidget.h b/src/waveform/widgets/qtwaveformwidget.h index 7ab1d88d5f28..5121357571ff 100644 --- a/src/waveform/widgets/qtwaveformwidget.h +++ b/src/waveform/widgets/qtwaveformwidget.h @@ -1,11 +1,11 @@ #ifndef QTWAVEFORMWIDGET_H #define QTWAVEFORMWIDGET_H -#include +#include #include "waveformwidgetabstract.h" -class QtWaveformWidget : public QGLWidget, public WaveformWidgetAbstract { +class QtWaveformWidget : public QOpenGLWidget, public WaveformWidgetAbstract { Q_OBJECT public: QtWaveformWidget(const char* group, QWidget* parent); diff --git a/src/waveform/widgets/waveformwidgetabstract.h b/src/waveform/widgets/waveformwidgetabstract.h index 5d294bb02432..4c5707149146 100644 --- a/src/waveform/widgets/waveformwidgetabstract.h +++ b/src/waveform/widgets/waveformwidgetabstract.h @@ -13,7 +13,7 @@ class VSyncThread; // NOTE(vRince) This class represent objects the waveformwidgetfactory can // holds, IMPORTANT all WaveformWidgetAbstract MUST inherist QWidget too !! we -// can't do it here because QWidget and QGLWidget are both QWidgets so they +// can't do it here because QWidget and QOpenGLWidget are both QWidgets so they // already have a common QWidget base class (ambiguous polymorphism) class WaveformWidgetAbstract : public WaveformWidgetRenderer { diff --git a/src/widget/wspinny.cpp b/src/widget/wspinny.cpp index 88aa46fd2ab1..3722a3d314d1 100644 --- a/src/widget/wspinny.cpp +++ b/src/widget/wspinny.cpp @@ -8,7 +8,6 @@ #include "control/controlproxy.h" #include "library/coverartcache.h" #include "util/dnd.h" -#include "waveform/sharedglcontext.h" #include "util/math.h" #include "waveform/visualplayposition.h" #include "vinylcontrol/vinylcontrol.h" @@ -21,7 +20,7 @@ WSpinny::WSpinny(QWidget* parent, const QString& group, UserSettingsPointer pConfig, VinylControlManager* pVCMan, BaseTrackPlayer* pPlayer) - : QGLWidget(QGLFormat(QGL::SampleBuffers), parent, SharedGLContext::getWidget()), + : QOpenGLWidget(parent), WBaseWidget(this), m_group(group), m_pConfig(pConfig), @@ -65,9 +64,6 @@ WSpinny::WSpinny(QWidget* parent, const QString& group, #endif //Drag and drop setAcceptDrops(true); - qDebug() << "WSpinny(): Created QGLWidget, Context" - << "Valid:" << context()->isValid() - << "Sharing:" << context()->isSharing(); CoverArtCache* pCache = CoverArtCache::instance(); if (pCache != nullptr) { @@ -657,7 +653,7 @@ bool WSpinny::event(QEvent* pEvent) { if (pEvent->type() == QEvent::ToolTip) { updateTooltip(); } - return QGLWidget::event(pEvent); + return QOpenGLWidget::event(pEvent); } void WSpinny::dragEnterEvent(QDragEnterEvent* event) { diff --git a/src/widget/wspinny.h b/src/widget/wspinny.h index 64efe28239e8..43dcb2c8f3c5 100644 --- a/src/widget/wspinny.h +++ b/src/widget/wspinny.h @@ -2,7 +2,7 @@ #ifndef _WSPINNY_H #define _WSPINNY_H -#include +#include #include #include #include @@ -21,7 +21,7 @@ class ControlProxy; class VisualPlayPosition; class VinylControlManager; -class WSpinny : public QGLWidget, public WBaseWidget, public VinylSignalQualityListener { +class WSpinny : public QOpenGLWidget, public WBaseWidget, public VinylSignalQualityListener { Q_OBJECT public: WSpinny(QWidget* parent, const QString& group,