diff options
Diffstat (limited to 'src/Runtime/api/studio3dqml')
-rw-r--r-- | src/Runtime/api/studio3dqml/q3dsrenderer.cpp | 33 | ||||
-rw-r--r-- | src/Runtime/api/studio3dqml/q3dsrenderer.h | 4 | ||||
-rw-r--r-- | src/Runtime/api/studio3dqml/q3dsstudio3d.cpp | 8 | ||||
-rw-r--r-- | src/Runtime/api/studio3dqml/q3dsstudio3d.h | 2 |
4 files changed, 28 insertions, 19 deletions
diff --git a/src/Runtime/api/studio3dqml/q3dsrenderer.cpp b/src/Runtime/api/studio3dqml/q3dsrenderer.cpp index 7e063ab4..591cc37a 100644 --- a/src/Runtime/api/studio3dqml/q3dsrenderer.cpp +++ b/src/Runtime/api/studio3dqml/q3dsrenderer.cpp @@ -211,10 +211,10 @@ bool Q3DSRenderer::initializeRuntime(QOpenGLFramebufferObject *inFbo) this, &Q3DSRenderer::exitSlide); connect(m_runtime, &Q3DSViewer::Q3DSViewerApp::SigCustomSignal, this, &Q3DSRenderer::customSignalEmitted); - connect(m_runtime, &Q3DSViewer::Q3DSViewerApp::SigElementCreated, - this, &Q3DSRenderer::elementCreated); - connect(m_runtime, &Q3DSViewer::Q3DSViewerApp::SigMaterialCreated, - this, &Q3DSRenderer::materialCreated); + connect(m_runtime, &Q3DSViewer::Q3DSViewerApp::SigElementsCreated, + this, &Q3DSRenderer::elementsCreated); + connect(m_runtime, &Q3DSViewer::Q3DSViewerApp::SigMaterialsCreated, + this, &Q3DSRenderer::materialsCreated); return true; } @@ -337,21 +337,30 @@ void Q3DSRenderer::processCommands() cmd.m_stringValue, cmd.m_variantValue, static_cast<qt3ds::runtime::DataInputValueRole>(cmd.m_intValues[0])); break; - case CommandType_CreateElement: { - m_runtime->createElement(cmd.m_elementPath, cmd.m_stringValue, - *static_cast<QHash<QString, QVariant> *>(cmd.m_data)); + case CommandType_CreateElements: { + m_runtime->createElements( + cmd.m_elementPath, cmd.m_stringValue, + *static_cast<QVector<QHash<QString, QVariant>> *>(cmd.m_data)); // Runtime makes copy of the data in its own format, so we can delete it now auto &command = m_commands.commandAt(i); - delete reinterpret_cast<QHash<QString, QVariant> *>(command.m_data); + delete reinterpret_cast<QVector<QHash<QString, QVariant>> *>(command.m_data); command.m_data = nullptr; break; } - case CommandType_DeleteElement: { - m_runtime->deleteElement(cmd.m_elementPath); + case CommandType_DeleteElements: { + m_runtime->deleteElements(*static_cast<QStringList *>(cmd.m_data)); + // Runtime makes copy of the data in its own format, so we can delete it now + auto &command = m_commands.commandAt(i); + delete reinterpret_cast<QStringList *>(command.m_data); + command.m_data = nullptr; break; } - case CommandType_CreateMaterial: { - m_runtime->createMaterial(cmd.m_elementPath, cmd.m_stringValue); + case CommandType_CreateMaterials: { + m_runtime->createMaterials(cmd.m_elementPath, *static_cast<QStringList *>(cmd.m_data)); + // Runtime makes copy of the data in its own format, so we can delete it now + auto &command = m_commands.commandAt(i); + delete reinterpret_cast<QStringList *>(command.m_data); + command.m_data = nullptr; break; } case CommandType_RequestSlideInfo: { diff --git a/src/Runtime/api/studio3dqml/q3dsrenderer.h b/src/Runtime/api/studio3dqml/q3dsrenderer.h index 12f98aef..757ec4af 100644 --- a/src/Runtime/api/studio3dqml/q3dsrenderer.h +++ b/src/Runtime/api/studio3dqml/q3dsrenderer.h @@ -63,8 +63,8 @@ Q_SIGNALS: void presentationReady(); void presentationLoaded(); void customSignalEmitted(const QString &elNmentPath, const QString &name); - void elementCreated(const QString &elementName, const QString &error); - void materialCreated(const QString &name, const QString &error); + void elementsCreated(const QStringList &elementPaths, const QString &error); + void materialsCreated(const QStringList &materialNames, const QString &error); protected: static void onInitHandler(void *userData); diff --git a/src/Runtime/api/studio3dqml/q3dsstudio3d.cpp b/src/Runtime/api/studio3dqml/q3dsstudio3d.cpp index 2a6c7be2..75633a09 100644 --- a/src/Runtime/api/studio3dqml/q3dsstudio3d.cpp +++ b/src/Runtime/api/studio3dqml/q3dsstudio3d.cpp @@ -207,10 +207,10 @@ QQuickFramebufferObject::Renderer *Q3DSStudio3D::createRenderer() const m_presentation, &Q3DSPresentation::slideExited); connect(renderer, &Q3DSRenderer::customSignalEmitted, m_presentation, &Q3DSPresentation::customSignalEmitted); - connect(renderer, &Q3DSRenderer::elementCreated, - m_presentation, &Q3DSPresentation::elementCreated); - connect(renderer, &Q3DSRenderer::materialCreated, - m_presentation, &Q3DSPresentation::materialCreated); + connect(renderer, &Q3DSRenderer::elementsCreated, + m_presentation, &Q3DSPresentation::elementsCreated); + connect(renderer, &Q3DSRenderer::materialsCreated, + m_presentation, &Q3DSPresentation::materialsCreated); connect(renderer, &Q3DSRenderer::requestResponse, this, &Q3DSStudio3D::requestResponseHandler); connect(renderer, &Q3DSRenderer::presentationLoaded, diff --git a/src/Runtime/api/studio3dqml/q3dsstudio3d.h b/src/Runtime/api/studio3dqml/q3dsstudio3d.h index 484e9f65..f27dbf17 100644 --- a/src/Runtime/api/studio3dqml/q3dsstudio3d.h +++ b/src/Runtime/api/studio3dqml/q3dsstudio3d.h @@ -51,7 +51,7 @@ class Q3DSStudio3D : public QQuickFramebufferObject public: Q3DSStudio3D(); - virtual ~Q3DSStudio3D(); + ~Q3DSStudio3D() override; QQuickFramebufferObject::Renderer *createRenderer() const override; |