forked from qt-creator/qt-creator
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:
@@ -34,7 +34,7 @@ void BakeLightsConnectionManager::dispatchCommand(const QVariant &command,
|
||||
m_progressCallback(cmd.data().toString());
|
||||
break;
|
||||
case PuppetToCreatorCommand::BakeLightsAborted:
|
||||
m_finishedCallback(tr("Baking aborted!"));
|
||||
m_finishedCallback(tr("Baking aborted: %1").arg(cmd.data().toString()));
|
||||
break;
|
||||
case PuppetToCreatorCommand::BakeLightsFinished:
|
||||
m_finishedCallback(tr("Baking finished!"));
|
||||
|
@@ -93,6 +93,7 @@ void Qt5BakeLightsNodeInstanceServer::bakeLights()
|
||||
|
||||
QQuick3DLightmapBaker::Callback callback = [this](QQuick3DLightmapBaker::BakingStatus status,
|
||||
std::optional<QString> msg, QQuick3DLightmapBaker::BakingControl *) {
|
||||
m_callbackReceived = true;
|
||||
switch (status) {
|
||||
case QQuick3DLightmapBaker::BakingStatus::Progress:
|
||||
case QQuick3DLightmapBaker::BakingStatus::Warning:
|
||||
@@ -224,8 +225,11 @@ void Qt5BakeLightsNodeInstanceServer::render()
|
||||
} else {
|
||||
rootNodeInstance().updateDirtyNodeRecursive();
|
||||
renderWindow();
|
||||
if (m_bakingStarted)
|
||||
if (m_bakingStarted) {
|
||||
slowDownRenderTimer(); // No more renders needed
|
||||
if (!m_callbackReceived)
|
||||
abort(tr("No bakeable models detected."));
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@@ -45,6 +45,7 @@ private:
|
||||
|
||||
QQuick3DViewport *m_view3D = nullptr;
|
||||
bool m_bakingStarted = false;
|
||||
bool m_callbackReceived = false;
|
||||
int m_renderCount = 0;
|
||||
QProcess *m_denoiser = nullptr;
|
||||
QTemporaryDir m_workingDir;
|
||||
|
Reference in New Issue
Block a user