diff options
| author | Brad Kittenbrink <brad@lindenlab.com> | 2022-04-29 18:02:45 +0000 |
|---|---|---|
| committer | Euclid Linden <euclid@lindenlab.com> | 2022-04-29 18:02:45 +0000 |
| commit | 0e0c156bd00a01b38edee803e38b956d4f786701 (patch) | |
| tree | 41dabc7b9c53a17591c8c4d6da93207a52a1b793 /indra/llprimitive/llprimitive.cpp | |
| parent | b08742d0b3e0000430b8ae772c7c4d25cfe084fa (diff) | |
| parent | cc04903379c3a5dc094e0c9582cf41f022406ef5 (diff) | |
Merged in brad/SL-17116-material-messaging (pull request #958)
brad/SL-17116 material messaging
Approved-by: Euclid Linden
Diffstat (limited to 'indra/llprimitive/llprimitive.cpp')
| -rw-r--r-- | indra/llprimitive/llprimitive.cpp | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/indra/llprimitive/llprimitive.cpp b/indra/llprimitive/llprimitive.cpp index 67c225d25d..c46e5fb3c5 100644 --- a/indra/llprimitive/llprimitive.cpp +++ b/indra/llprimitive/llprimitive.cpp @@ -39,6 +39,7 @@ #include "llsdutil_math.h" #include "llprimtexturelist.h" #include "llmaterialid.h" +#include "llsdutil.h" /** * exported constants @@ -1690,6 +1691,8 @@ BOOL LLNetworkData::isValid(U16 param_type, U32 size) return (size == 28); case PARAMS_EXTENDED_MESH: return (size == 4); + case PARAMS_RENDER_MATERIAL: + return (size == 16); } return FALSE; @@ -2181,3 +2184,69 @@ bool LLExtendedMeshParams::fromLLSD(LLSD& sd) return false; } + +//============================================================================ + +LLRenderMaterialParams::LLRenderMaterialParams() +{ + mType = PARAMS_RENDER_MATERIAL; +} + +BOOL LLRenderMaterialParams::pack(LLDataPacker &dp) const +{ + return dp.packUUID(mMaterial, "material"); + +// return TRUE; +} + +BOOL LLRenderMaterialParams::unpack(LLDataPacker &dp) +{ + return dp.unpackUUID(mMaterial, "material"); + +// return TRUE; +} + +bool LLRenderMaterialParams::operator==(const LLNetworkData& data) const +{ + if (data.mType != PARAMS_RENDER_MATERIAL) + { + return false; + } + + const LLRenderMaterialParams ¶m = static_cast<const LLRenderMaterialParams&>(data); + + return param.mMaterial == mMaterial; +} + +void LLRenderMaterialParams::copy(const LLNetworkData& data) +{ + llassert_always(data.mType == PARAMS_RENDER_MATERIAL); + const LLRenderMaterialParams ¶m = static_cast<const LLRenderMaterialParams&>(data); + mMaterial = param.mMaterial; +} + +LLSD LLRenderMaterialParams::asLLSD() const +{ + return llsd::map("material", mMaterial); +} + +bool LLRenderMaterialParams::fromLLSD(LLSD& sd) +{ + if (sd.has("material")) + { + setMaterial(sd["material"]); + return true; + } + + return false; +} + +void LLRenderMaterialParams::setMaterial(const LLUUID & id) +{ + mMaterial = id; +} + +LLUUID LLRenderMaterialParams::getMaterial() const +{ + return mMaterial; +} |
