mirror of
https://github.com/overte-org/overte.git
synced 2025-04-15 20:58:30 +02:00
Model: fix for crash when displaying collision mesh.
This was due to a default constructed PayloadPointer being sent to the scene via resetItem. The fix is to A) not do that anymore, B) make resetItem more robust and not crash if this happens.
This commit is contained in:
parent
699b3a9dd7
commit
103257493c
2 changed files with 8 additions and 3 deletions
|
@ -536,7 +536,7 @@ void Model::setVisibleInScene(bool newValue, std::shared_ptr<render::Scene> scen
|
|||
pendingChanges.resetItem(item, _modelMeshRenderItems[item]);
|
||||
}
|
||||
foreach (auto item, _collisionRenderItems.keys()) {
|
||||
pendingChanges.resetItem(item, _modelMeshRenderItems[item]);
|
||||
pendingChanges.resetItem(item, _collisionRenderItems[item]);
|
||||
}
|
||||
scene->enqueuePendingChanges(pendingChanges);
|
||||
}
|
||||
|
|
|
@ -16,8 +16,13 @@
|
|||
using namespace render;
|
||||
|
||||
void PendingChanges::resetItem(ItemID id, const PayloadPointer& payload) {
|
||||
_resetItems.push_back(id);
|
||||
_resetPayloads.push_back(payload);
|
||||
if (payload) {
|
||||
_resetItems.push_back(id);
|
||||
_resetPayloads.push_back(payload);
|
||||
} else {
|
||||
qDebug() << "WARNING: PendingChanges::resetItem with a null payload!";
|
||||
removeItem(id);
|
||||
}
|
||||
}
|
||||
|
||||
void PendingChanges::removeItem(ItemID id) {
|
||||
|
|
Loading…
Reference in a new issue