diff options
Diffstat (limited to 'examples/qml-compositor/main.cpp')
-rw-r--r-- | examples/qml-compositor/main.cpp | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/examples/qml-compositor/main.cpp b/examples/qml-compositor/main.cpp index 066cfee..fdf27b3 100644 --- a/examples/qml-compositor/main.cpp +++ b/examples/qml-compositor/main.cpp @@ -57,14 +57,13 @@ class QmlCompositor : public QSGView, public WaylandCompositor { Q_OBJECT public: - QmlCompositor() : WaylandCompositor(this) { - setMouseTracking(true); + QmlCompositor() : WaylandCompositor(this, const_cast<QOpenGLContext *>(QOpenGLContext::currentContext())) { + //setMouseTracking(true); setSource(QUrl(QLatin1String("qrc:qml/QmlCompositor/main.qml"))); setResizeMode(QSGView::SizeRootObjectToView); winId(); - if (platformWindow()) { - platformWindow()->glContext(); - } + + connect(this, SIGNAL(frameSwapped()), this, SLOT(frameSwappedSlot())); } signals: @@ -103,17 +102,15 @@ private slots: emit windowDestroyed(QVariant::fromValue(static_cast<QSGItem *>(item))); } + void frameSwappedSlot() { + frameFinished(); + } + protected: void surfaceCreated(WaylandSurface *surface) { connect(surface, SIGNAL(mapped(const QSize &)), this, SLOT(surfaceMapped(const QSize &))); } - void paintEvent(QPaintEvent *event) { - QSGView::paintEvent(event); - frameFinished(); - glFinish(); - } - private: QMap<QObject *, WaylandSurfaceItem *> m_windowMap; }; @@ -133,7 +130,6 @@ int main(int argc, char *argv[]) QObject::connect(&compositor, SIGNAL(windowResized(QVariant)), compositor.rootObject(), SLOT(windowResized(QVariant))); return app.exec(); - } #include "main.moc" |