summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMahmoud Badri <mahmoud.badri@qt.io>2018-09-14 15:59:18 +0300
committerTomi Korpipää <tomi.korpipaa@qt.io>2018-09-19 04:14:16 +0000
commit6a3e45211f0153457f93a7e524a2891f23654aaa (patch)
tree11daf0fc5160dbe870366e85e533ff6de1dec8ca
parent1e7e79f2703d20ff5314aabe3d9ed13c7d6e2da4 (diff)
Fix setting sub-presentation to a material's IBL Override
Now setting a sub-presentation to a material's IBL Override renders correctly in the viewer. Task-number: QT3DS-2336 Change-Id: I93ac38978b0ea0e8c956f39ee299be573dc7c07d Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
-rw-r--r--src/runtime/q3dsscenemanager.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/runtime/q3dsscenemanager.cpp b/src/runtime/q3dsscenemanager.cpp
index 7ff9d21..9b6fcda 100644
--- a/src/runtime/q3dsscenemanager.cpp
+++ b/src/runtime/q3dsscenemanager.cpp
@@ -5539,9 +5539,16 @@ void Q3DSSceneManager::updateDefaultMaterial(Q3DSDefaultMaterial *m, Q3DSReferen
// IBL
if (iblOverride) {
// also sets min/mag and generates mipmaps
- Q3DSImageManager::instance().setSource(data->lightProbeOverrideTexture,
- QUrl::fromLocalFile(iblOverride->sourcePath()));
- data->lightProbeSampler->setValue(QVariant::fromValue(data->lightProbeOverrideTexture));
+ if (!iblOverride->subPresentation().isEmpty()) {
+ if (m_subPresentations.isEmpty())
+ m_pendingSubPresImages.append(qMakePair(data->lightProbeSampler, iblOverride));
+ else
+ setImageTextureFromSubPresentation(data->lightProbeSampler, iblOverride);
+ } else {
+ Q3DSImageManager::instance().setSource(data->lightProbeOverrideTexture,
+ QUrl::fromLocalFile(iblOverride->sourcePath()));
+ data->lightProbeSampler->setValue(QVariant::fromValue(data->lightProbeOverrideTexture));
+ }
Qt3DRender::QTextureWrapMode wrapMode;
wrapMode.setX(Qt3DRender::QTextureWrapMode::Repeat);