diff options
author | Jere Tuliniemi <jere.tuliniemi@qt.io> | 2019-01-10 15:58:37 +0200 |
---|---|---|
committer | Jere Tuliniemi <jere.tuliniemi@qt.io> | 2019-01-15 12:14:12 +0000 |
commit | 5e9a1798cc697136aae4125a157e654d7e49530a (patch) | |
tree | a3dd42c0f4e84197547c7a786a4c7be406661698 /src/runtime/q3dsuippresentation.cpp | |
parent | 0cf63f1de93635c85fc3120cdfce3410a59edc9b (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.cpp | 13 |
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); |