summaryrefslogtreecommitdiffstats
path: root/src/runtime/q3dsuippresentation.cpp
diff options
context:
space:
mode:
authorJere Tuliniemi <jere.tuliniemi@qt.io>2019-01-10 15:58:37 +0200
committerJere Tuliniemi <jere.tuliniemi@qt.io>2019-01-15 12:14:12 +0000
commit5e9a1798cc697136aae4125a157e654d7e49530a (patch)
treea3dd42c0f4e84197547c7a786a4c7be406661698 /src/runtime/q3dsuippresentation.cpp
parent0cf63f1de93635c85fc3120cdfce3410a59edc9b (diff)
Support custom materials created from a QByteArray
Allow a QByteArray to be used to create a custom material instead reading it from a file. Task-number: QT3DS-2906 Change-Id: I2718240186b62c0ff2bf36e5313bed6754472066 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io>
Diffstat (limited to 'src/runtime/q3dsuippresentation.cpp')
-rw-r--r--src/runtime/q3dsuippresentation.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/runtime/q3dsuippresentation.cpp b/src/runtime/q3dsuippresentation.cpp
index bafb313..260f4c4 100644
--- a/src/runtime/q3dsuippresentation.cpp
+++ b/src/runtime/q3dsuippresentation.cpp
@@ -4279,6 +4279,19 @@ Q3DSCustomMaterial Q3DSUipPresentation::customMaterial(const QString &idOrFilena
return d->customMaterials.value(key);
}
+Q3DSCustomMaterial Q3DSUipPresentation::customMaterial(const QByteArray &id, const QByteArray &data)
+{
+ Q3DSCustomMaterialParser p;
+ bool ok = false;
+ Q3DSCustomMaterial mat = p.parse(data, &ok);
+ if (!ok) {
+ qWarning("Failed to parse metadata %s", id.constData());
+ return Q3DSCustomMaterial();
+ }
+ d->customMaterials.insert(id, mat);
+ return mat;
+}
+
bool Q3DSUipPresentation::loadEffect(const QByteArray &id, const QString &assetFilename)
{
return loadMeta<Q3DSEffect, Q3DSEffectParser>(id, assetFilename, &d->effects);