summaryrefslogtreecommitdiffstats
path: root/src/Runtime/api/studio3dqml
diff options
context:
space:
mode:
Diffstat (limited to 'src/Runtime/api/studio3dqml')
-rw-r--r--src/Runtime/api/studio3dqml/q3dsrenderer.cpp33
-rw-r--r--src/Runtime/api/studio3dqml/q3dsrenderer.h4
-rw-r--r--src/Runtime/api/studio3dqml/q3dsstudio3d.cpp8
-rw-r--r--src/Runtime/api/studio3dqml/q3dsstudio3d.h2
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;