diff options
Diffstat (limited to 'indra/llprimitive')
| -rw-r--r-- | indra/llprimitive/llgltfmaterial.h | 20 | ||||
| -rw-r--r-- | indra/llprimitive/llprimitive.cpp | 13 | ||||
| -rw-r--r-- | indra/llprimitive/llprimitive.h | 3 | ||||
| -rw-r--r-- | indra/llprimitive/lltextureentry.cpp | 1 | ||||
| -rw-r--r-- | indra/llprimitive/tests/llgltfmaterial_test.cpp | 14 | 
5 files changed, 39 insertions, 12 deletions
diff --git a/indra/llprimitive/llgltfmaterial.h b/indra/llprimitive/llgltfmaterial.h index c3fdc8d720..855cb58832 100644 --- a/indra/llprimitive/llgltfmaterial.h +++ b/indra/llprimitive/llgltfmaterial.h @@ -5,21 +5,21 @@   * $LicenseInfo:firstyear=2022&license=viewerlgpl$   * Second Life Viewer Source Code   * Copyright (C) 2022, Linden Research, Inc. - * + *    * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public   * License as published by the Free Software Foundation;   * version 2.1 of the License only. - * + *    * This library is distributed in the hope that it will be useful,   * but WITHOUT ANY WARRANTY; without even the implied warranty of   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   * Lesser General Public License for more details. - * + *    * You should have received a copy of the GNU Lesser General Public   * License along with this library; if not, write to the Free Software   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - * + *    * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA   * $/LicenseInfo$   */ @@ -130,6 +130,16 @@ public:      bool mOverrideDoubleSided = false;      bool mOverrideAlphaMode = false; +    // *TODO: If/when we implement additional GLTF extensions, they may not be +    // compatible with our GLTF terrain implementation. We may want to disallow +    // materials with some features from being set on terrain, if their +    // implementation on terrain is not compliant with the spec: +    //     - KHR_materials_transmission: Probably OK? +    //     - KHR_materials_ior: Probably OK? +    //     - KHR_materials_volume: Likely incompatible, as our terrain +    //       heightmaps cannot currently be described as finite enclosed +    //       volumes. +    // See also LLPanelRegionTerrainInfo::validateMaterials      // These fields are local to viewer and are a part of local bitmap support      typedef std::map<LLUUID, LLUUID> local_tex_map_t;      local_tex_map_t                  mTrackingIdToLocalTexture; @@ -204,7 +214,7 @@ public:      void writeToModel(tinygltf::Model& model, S32 mat_index) const;      virtual void applyOverride(const LLGLTFMaterial& override_mat); - +          // apply the given LLSD override data      void applyOverrideLLSD(const LLSD& data); diff --git a/indra/llprimitive/llprimitive.cpp b/indra/llprimitive/llprimitive.cpp index 6258a4dc1e..1657e9324e 100644 --- a/indra/llprimitive/llprimitive.cpp +++ b/indra/llprimitive/llprimitive.cpp @@ -1934,6 +1934,19 @@ void LLReflectionProbeParams::setIsDynamic(bool is_dynamic)      }  } + +void LLReflectionProbeParams::setIsMirror(bool is_mirror) +{ +    if (is_mirror) +    { +        mFlags |= FLAG_MIRROR; +    } +    else +    { +        mFlags &= ~FLAG_MIRROR; +    } +} +  //============================================================================  LLFlexibleObjectData::LLFlexibleObjectData()  { diff --git a/indra/llprimitive/llprimitive.h b/indra/llprimitive/llprimitive.h index bd435a001d..82881dce4e 100644 --- a/indra/llprimitive/llprimitive.h +++ b/indra/llprimitive/llprimitive.h @@ -186,6 +186,7 @@ public:      {          FLAG_BOX_VOLUME     = 0x01, // use a box influence volume          FLAG_DYNAMIC        = 0x02, // render dynamic objects (avatars) into this Reflection Probe +        FLAG_MIRROR         = 0x04, // This probe is used for reflections on realtime mirrors.      };  protected: @@ -209,11 +210,13 @@ public:      void setClipDistance(F32 distance) { mClipDistance = llclamp(distance, REFLECTION_PROBE_MIN_CLIP_DISTANCE, REFLECTION_PROBE_MAX_CLIP_DISTANCE); }      void setIsBox(bool is_box);      void setIsDynamic(bool is_dynamic); +    void setIsMirror(bool is_mirror);      F32 getAmbiance() const { return mAmbiance; }      F32 getClipDistance() const { return mClipDistance; }      bool getIsBox() const { return (mFlags & FLAG_BOX_VOLUME) != 0; }      bool getIsDynamic() const { return (mFlags & FLAG_DYNAMIC) != 0; } +    bool getIsMirror() const { return (mFlags & FLAG_MIRROR) != 0; }  };  //------------------------------------------------- diff --git a/indra/llprimitive/lltextureentry.cpp b/indra/llprimitive/lltextureentry.cpp index 684660e24a..2ed8f8c044 100644 --- a/indra/llprimitive/lltextureentry.cpp +++ b/indra/llprimitive/lltextureentry.cpp @@ -685,6 +685,7 @@ S32 LLTextureEntry::setMaterialParams(const LLMaterialPtr pMaterialParams)          mMaterialUpdatePending = true;      }      mMaterial = pMaterialParams; +      return TEM_CHANGE_TEXTURE;  } diff --git a/indra/llprimitive/tests/llgltfmaterial_test.cpp b/indra/llprimitive/tests/llgltfmaterial_test.cpp index 006ab7688d..b56c9ab4f5 100644 --- a/indra/llprimitive/tests/llgltfmaterial_test.cpp +++ b/indra/llprimitive/tests/llgltfmaterial_test.cpp @@ -1,26 +1,26 @@ -/** +/**    * @file llgltfmaterial_test.cpp   * - * $LicenseInfo:firstyear=2023&license=viewerlgpl$ + * $LicenseInfo:firstyear=2023&license=viewerlgpl$                                  * Second Life Viewer Source Code   * Copyright (C) 2023, Linden Research, Inc. - * + *    * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public   * License as published by the Free Software Foundation;   * version 2.1 of the License only. - * + *    * This library is distributed in the hope that it will be useful,   * but WITHOUT ANY WARRANTY; without even the implied warranty of   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   * Lesser General Public License for more details. - * + *    * You should have received a copy of the GNU Lesser General Public   * License along with this library; if not, write to the Free Software   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - * + *    * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ + * $/LicenseInfo$                                                                  */  #include "linden_common.h"  | 
