diff options
| author | TommyTheTerrible <81168766+TommyTheTerrible@users.noreply.github.com> | 2024-07-13 17:39:09 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-14 00:39:09 +0300 | 
| commit | 27a2531c5bf375ed208d8fd5764a8797f08ce831 (patch) | |
| tree | c441ab958d766ba4fd7951d2d93da6cfcb206ccc | |
| parent | 4bc5c806c7c48a20d31a39e631601fdd04a51dfe (diff) | |
Fix: Stop textures from being set as inactive if still on a face. (#2017)
Textures were being set to Inactive even if still in scene, causing them to be deleted and re-decoded in a loop.
| -rw-r--r-- | indra/newview/llviewertexturelist.cpp | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index e486449b4d..d31c53d000 100644 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -926,6 +926,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag      }      LL_PROFILE_ZONE_SCOPED_CATEGORY_TEXTURE; +    bool onFace = false;      for (U32 i = 0; i < LLRender::NUM_TEXTURE_CHANNELS; ++i)      {          for (S32 fi = 0; fi < imagep->getNumFaces(i); ++fi) @@ -934,6 +935,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag              if (face && face->getViewerObject())              { +                onFace = true;                  F32 radius;                  F32 cos_angle_to_view_dir;                  bool in_frustum = face->calcPixelArea(cos_angle_to_view_dir, radius); @@ -1031,7 +1033,8 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag              imagep->getLastReferencedTimer()->reset();              //reset texture state. -            imagep->setInactive(); +            if(!onFace) +                imagep->setInactive();          }      }  | 
