Merge branch 'DRTVWR-559' of ssh://bitbucket.org/lindenlab/viewer into DRTVWR-559

meow-7.2.2
Dave Parks 2022-09-20 19:10:13 -05:00
commit 709bf22084
2 changed files with 32 additions and 0 deletions

View File

@ -6236,6 +6236,14 @@ void LLViewerObject::parameterChanged(U16 param_type, LLNetworkData* data, BOOL
LL_WARNS() << "Failed to send object extra parameters: " << param_type << LL_ENDL;
}
}
else
{
if (param_type == LLNetworkData::PARAMS_RENDER_MATERIAL)
{
const LLRenderMaterialParams* params = in_use ? (LLRenderMaterialParams*)getParameterEntry(LLNetworkData::PARAMS_RENDER_MATERIAL) : nullptr;
setRenderMaterialIDs(params, local_origin);
}
}
}
void LLViewerObject::setDrawableState(U32 state, BOOL recursive)
@ -7103,6 +7111,29 @@ void LLViewerObject::setRenderMaterialID(U8 te, const LLUUID& id)
}
}
void LLViewerObject::setRenderMaterialIDs(const LLRenderMaterialParams* material_params, bool local_origin)
{
if (!local_origin)
{
const S32 num_tes = llmin((S32)getNumTEs(), (S32)getNumFaces()); // avatars have TEs but no faces
for (S32 te = 0; te < num_tes; ++te)
{
const LLUUID& id = material_params ? material_params->getMaterial(te) : LLUUID::null;
if (id.notNull())
{
getTE(te)->setGLTFMaterial(gGLTFMaterialList.getMaterial(id));
setHasRenderMaterialParams(true);
}
else
{
getTE(te)->setGLTFMaterial(nullptr);
}
}
faceMappingChanged();
gPipeline.markTextured(mDrawable);
}
}
class ObjectPhysicsProperties : public LLHTTPNode
{
public:

View File

@ -185,6 +185,7 @@ public:
const LLUUID& getRenderMaterialID(U8 te) const;
void setRenderMaterialID(U8 te, const LLUUID& id);
void setRenderMaterialIDs(const LLRenderMaterialParams* material_params, bool local_origin);
virtual BOOL isHUDAttachment() const { return FALSE; }
virtual BOOL isTempAttachment() const;