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());
|
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!"));
|
||||||
|
@@ -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
|
||||||
|
@@ -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;
|
||||||
|
Reference in New Issue
Block a user