QmlDesigner: Abort lights baking if no response from quick3d side

Fixes: QDS-9666
Change-Id: I8721e1076bda7113dca9afde9998548e232a2186
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
This commit is contained in:
Miikka Heikkinen
2023-04-21 17:28:43 +03:00
parent 7af8c225d1
commit c95ade272b
3 changed files with 7 additions and 2 deletions

View File

@@ -34,7 +34,7 @@ void BakeLightsConnectionManager::dispatchCommand(const QVariant &command,
m_progressCallback(cmd.data().toString()); m_progressCallback(cmd.data().toString());
break; break;
case PuppetToCreatorCommand::BakeLightsAborted: case PuppetToCreatorCommand::BakeLightsAborted:
m_finishedCallback(tr("Baking aborted!")); m_finishedCallback(tr("Baking aborted: %1").arg(cmd.data().toString()));
break; break;
case PuppetToCreatorCommand::BakeLightsFinished: case PuppetToCreatorCommand::BakeLightsFinished:
m_finishedCallback(tr("Baking finished!")); m_finishedCallback(tr("Baking finished!"));

View File

@@ -93,6 +93,7 @@ void Qt5BakeLightsNodeInstanceServer::bakeLights()
QQuick3DLightmapBaker::Callback callback = [this](QQuick3DLightmapBaker::BakingStatus status, QQuick3DLightmapBaker::Callback callback = [this](QQuick3DLightmapBaker::BakingStatus status,
std::optional<QString> msg, QQuick3DLightmapBaker::BakingControl *) { std::optional<QString> msg, QQuick3DLightmapBaker::BakingControl *) {
m_callbackReceived = true;
switch (status) { switch (status) {
case QQuick3DLightmapBaker::BakingStatus::Progress: case QQuick3DLightmapBaker::BakingStatus::Progress:
case QQuick3DLightmapBaker::BakingStatus::Warning: case QQuick3DLightmapBaker::BakingStatus::Warning:
@@ -224,8 +225,11 @@ void Qt5BakeLightsNodeInstanceServer::render()
} else { } else {
rootNodeInstance().updateDirtyNodeRecursive(); rootNodeInstance().updateDirtyNodeRecursive();
renderWindow(); renderWindow();
if (m_bakingStarted) if (m_bakingStarted) {
slowDownRenderTimer(); // No more renders needed slowDownRenderTimer(); // No more renders needed
if (!m_callbackReceived)
abort(tr("No bakeable models detected."));
}
} }
} }
#endif #endif

View File

@@ -45,6 +45,7 @@ private:
QQuick3DViewport *m_view3D = nullptr; QQuick3DViewport *m_view3D = nullptr;
bool m_bakingStarted = false; bool m_bakingStarted = false;
bool m_callbackReceived = false;
int m_renderCount = 0; int m_renderCount = 0;
QProcess *m_denoiser = nullptr; QProcess *m_denoiser = nullptr;
QTemporaryDir m_workingDir; QTemporaryDir m_workingDir;