SL-17405 (Part 2): Fix viewer not requesting land impact when a non-root prim in a link set gets a GLTF material ID update

master
Cosmic Linden 2023-06-28 09:40:26 -07:00
parent f0dc9ea3fd
commit f7134beb40
2 changed files with 20 additions and 3 deletions

View File

@ -1269,7 +1269,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
LL_INFOS() << "Full:" << getID() << LL_ENDL;
#endif
//clear cost and linkset cost
mCostStale = true;
setObjectCostStale();
if (isSelected())
{
gFloaterTools->dirty();
@ -1825,7 +1825,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
#ifdef DEBUG_UPDATE_TYPE
LL_INFOS() << "CompFull:" << getID() << LL_ENDL;
#endif
mCostStale = true;
setObjectCostStale();
if (isSelected())
{
@ -3779,6 +3779,16 @@ void LLViewerObject::setScale(const LLVector3 &scale, BOOL damped)
}
}
void LLViewerObject::setObjectCostStale()
{
mCostStale = true;
// *NOTE: This is harmlessly redundant for Blinn-Phong material updates, as
// the root prim currently gets set stale anyway due to other property
// updates. But it is needed for GLTF material ID updates.
// -Cosmic,2023-06-27
getRootEdit()->mCostStale = true;
}
void LLViewerObject::setObjectCost(F32 cost)
{
mObjectCost = cost;
@ -6796,7 +6806,7 @@ void LLViewerObject::setPhysicsShapeType(U8 type)
if (type != mPhysicsShapeType)
{
mPhysicsShapeType = type;
mCostStale = true;
setObjectCostStale();
}
}
@ -7303,6 +7313,12 @@ void LLViewerObject::setRenderMaterialID(S32 te_in, const LLUUID& id, bool updat
LLGLTFMaterialList::queueApply(this, te, id);
}
}
if (!update_server)
{
// Land impact may have changed
setObjectCostStale();
}
}
void LLViewerObject::setRenderMaterialIDs(const LLUUID& id)

View File

@ -637,6 +637,7 @@ public:
std::vector<LLVector3> mUnselectedChildrenPositions ;
private:
void setObjectCostStale();
bool isAssetInInventory(LLViewerInventoryItem* item);
ExtraParameter* createNewParameterEntry(U16 param_type);