summaryrefslogtreecommitdiffstats
path: root/src/Runtime/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/Runtime/api')
-rw-r--r--src/Runtime/api/studio3d/q3dssurfaceviewer.cpp15
-rw-r--r--src/Runtime/api/studio3d/q3dssurfaceviewer.h4
-rw-r--r--src/Runtime/api/studio3d/q3dssurfaceviewer_p.h2
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