diff options
Diffstat (limited to 'src/Runtime/api/studio3d')
-rw-r--r-- | src/Runtime/api/studio3d/q3dssurfaceviewer.cpp | 15 | ||||
-rw-r--r-- | src/Runtime/api/studio3d/q3dssurfaceviewer.h | 4 | ||||
-rw-r--r-- | src/Runtime/api/studio3d/q3dssurfaceviewer_p.h | 2 |
3 files changed, 21 insertions, 0 deletions
diff --git a/src/Runtime/api/studio3d/q3dssurfaceviewer.cpp b/src/Runtime/api/studio3d/q3dssurfaceviewer.cpp index fc90e341..7fe2bfa9 100644 --- a/src/Runtime/api/studio3d/q3dssurfaceviewer.cpp +++ b/src/Runtime/api/studio3d/q3dssurfaceviewer.cpp @@ -341,6 +341,18 @@ QImage Q3DSSurfaceViewerPrivate::grab(const QRect &rect) return image; } +QQmlEngine *Q3DSSurfaceViewer::qmlEngine() const +{ + Q_D(const Q3DSSurfaceViewer); + return d->qmlEngine; +} + +void Q3DSSurfaceViewer::setQmlEngine(QQmlEngine *qmlEngine) +{ + Q_D(Q3DSSurfaceViewer); + d->qmlEngine = qmlEngine; +} + bool Q3DSSurfaceViewerPrivate::eventFilter(QObject *obj, QEvent *e) { if (m_surface && e->type() == QEvent::PlatformSurface) { @@ -371,6 +383,9 @@ bool Q3DSSurfaceViewerPrivate::initializeRuntime() if (m_autoSize) m_size = m_surface->size(); + if (nullptr != qmlEngine) + m_presentation->d_ptr->streamProxy()->setEngine(qmlEngine); + if (!m_viewerApp->InitializeApp(int(m_size.width() * m_pixelRatio), int(m_size.height() * m_pixelRatio), m_context->format(), m_fboId, localSource, diff --git a/src/Runtime/api/studio3d/q3dssurfaceviewer.h b/src/Runtime/api/studio3d/q3dssurfaceviewer.h index 90d25aa1..7ac6bda2 100644 --- a/src/Runtime/api/studio3d/q3dssurfaceviewer.h +++ b/src/Runtime/api/studio3d/q3dssurfaceviewer.h @@ -44,6 +44,7 @@ class QSurface; class QOpenGLContext; class Q3DSViewerSettings; class Q3DSPresentation; +class QQmlEngine; class Q_STUDIO3D_EXPORT Q3DSSurfaceViewer : public QObject { @@ -63,6 +64,9 @@ public: QImage grab(const QRect &rect = QRect()); + QQmlEngine *qmlEngine() const; + void setQmlEngine(QQmlEngine *qmlEngine); + // Property accessors QSize size() const; bool autoSize() const; diff --git a/src/Runtime/api/studio3d/q3dssurfaceviewer_p.h b/src/Runtime/api/studio3d/q3dssurfaceviewer_p.h index 9c56c1b5..656d139c 100644 --- a/src/Runtime/api/studio3d/q3dssurfaceviewer_p.h +++ b/src/Runtime/api/studio3d/q3dssurfaceviewer_p.h @@ -52,6 +52,7 @@ class QSurface; class QOpenGLContext; class Q3DSViewerSettings; class Q3DSPresentation; +class QQmlEngine; class Q_STUDIO3D_EXPORT Q3DSSurfaceViewerPrivate : public QObject { @@ -96,6 +97,7 @@ private: Q3DSPresentation *m_presentation; QString m_id; QElapsedTimer m_startupTimer; + QQmlEngine *qmlEngine = nullptr; }; QT_END_NAMESPACE |