diff options
author | Mahmoud Badri <mahmoud.badri@qt.io> | 2018-09-14 15:59:18 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@qt.io> | 2018-09-19 04:14:16 +0000 |
commit | 6a3e45211f0153457f93a7e524a2891f23654aaa (patch) | |
tree | 11daf0fc5160dbe870366e85e533ff6de1dec8ca | |
parent | 1e7e79f2703d20ff5314aabe3d9ed13c7d6e2da4 (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.cpp | 13 |
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); |