mirror of
https://github.com/overte-org/overte.git
synced 2025-04-25 17:35:45 +02:00
Fixing overlay crashes, for real
This commit is contained in:
parent
0374d24b15
commit
e22a3c6af9
1 changed files with 10 additions and 15 deletions
|
@ -307,6 +307,7 @@ void Overlays::deleteOverlay(OverlayID id) {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
_overlaysToDelete.push_back(overlayToDelete);
|
_overlaysToDelete.push_back(overlayToDelete);
|
||||||
emit overlayDeleted(id);
|
emit overlayDeleted(id);
|
||||||
}
|
}
|
||||||
|
@ -606,22 +607,16 @@ QSizeF Overlays::textSize(OverlayID id, const QString& text) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
Overlay::Pointer thisOverlay;
|
Overlay::Pointer thisOverlay = getOverlay(id);
|
||||||
{
|
|
||||||
QMutexLocker locker(&_mutex);
|
|
||||||
thisOverlay = _overlaysHUD[id];
|
|
||||||
}
|
|
||||||
if (thisOverlay) {
|
if (thisOverlay) {
|
||||||
if (auto textOverlay = std::dynamic_pointer_cast<TextOverlay>(thisOverlay)) {
|
if (thisOverlay->is3D()) {
|
||||||
return textOverlay->textSize(text);
|
if (auto text3dOverlay = std::dynamic_pointer_cast<Text3DOverlay>(thisOverlay)) {
|
||||||
}
|
return text3dOverlay->textSize(text);
|
||||||
} else {
|
}
|
||||||
{
|
} else {
|
||||||
QMutexLocker locker(&_mutex);
|
if (auto textOverlay = std::dynamic_pointer_cast<TextOverlay>(thisOverlay)) {
|
||||||
thisOverlay = _overlaysWorld[id];
|
return textOverlay->textSize(text);
|
||||||
}
|
}
|
||||||
if (auto text3dOverlay = std::dynamic_pointer_cast<Text3DOverlay>(thisOverlay)) {
|
|
||||||
return text3dOverlay->textSize(text);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return QSizeF(0.0f, 0.0f);
|
return QSizeF(0.0f, 0.0f);
|
||||||
|
|
Loading…
Reference in a new issue