summaryrefslogtreecommitdiff
path: root/indra/newview/llface.cpp
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2022-03-01 13:21:16 +0200
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2022-03-01 13:41:42 +0200
commit97a103255e433629f13e2156aa307ca329cdcfc6 (patch)
treebf5de1cef5930647c4ab87a0cff7f88f0007832d /indra/newview/llface.cpp
parent92c302d6fba687f0921544b278e22b698d058646 (diff)
parent6ca09a94554ec01f5c94ec60fffd01d7e33f3546 (diff)
Merge branch 'master' (DRTVWR-557) into DRTVWR-546
# Conflicts: # autobuild.xml # doc/contributions.txt # indra/cmake/GLOD.cmake # indra/llcommon/tests/llprocess_test.cpp # indra/newview/VIEWER_VERSION.txt # indra/newview/lldrawpoolavatar.cpp # indra/newview/llfloatermodelpreview.cpp # indra/newview/llmodelpreview.cpp # indra/newview/llviewertexturelist.cpp # indra/newview/llvovolume.cpp # indra/newview/viewer_manifest.py
Diffstat (limited to 'indra/newview/llface.cpp')
-rw-r--r--indra/newview/llface.cpp31
1 files changed, 19 insertions, 12 deletions
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp
index b54c2105dd..b328dd2962 100644
--- a/indra/newview/llface.cpp
+++ b/indra/newview/llface.cpp
@@ -1081,6 +1081,13 @@ bool LLFace::calcAlignedPlanarTE(const LLFace* align_to, LLVector2* res_st_offs
F32 map_rot = 0.f, map_scaleS = 0.f, map_scaleT = 0.f, map_offsS = 0.f, map_offsT = 0.f;
+ LLMaterial* mat = orig_tep->getMaterialParams();
+ if (!mat && map != LLRender::DIFFUSE_MAP)
+ {
+ LL_WARNS_ONCE("llface") << "Face is set to use specular or normal map but has no material, defaulting to diffuse" << LL_ENDL;
+ map = LLRender::DIFFUSE_MAP;
+ }
+
switch (map)
{
case LLRender::DIFFUSE_MAP:
@@ -1091,26 +1098,26 @@ bool LLFace::calcAlignedPlanarTE(const LLFace* align_to, LLVector2* res_st_offs
map_offsT = orig_tep->mOffsetT;
break;
case LLRender::NORMAL_MAP:
- if (orig_tep->getMaterialParams()->getNormalID().isNull())
+ if (mat->getNormalID().isNull())
{
return false;
}
- map_rot = orig_tep->getMaterialParams()->getNormalRotation();
- map_scaleS = orig_tep->getMaterialParams()->getNormalRepeatX();
- map_scaleT = orig_tep->getMaterialParams()->getNormalRepeatY();
- map_offsS = orig_tep->getMaterialParams()->getNormalOffsetX();
- map_offsT = orig_tep->getMaterialParams()->getNormalOffsetY();
+ map_rot = mat->getNormalRotation();
+ map_scaleS = mat->getNormalRepeatX();
+ map_scaleT = mat->getNormalRepeatY();
+ map_offsS = mat->getNormalOffsetX();
+ map_offsT = mat->getNormalOffsetY();
break;
case LLRender::SPECULAR_MAP:
- if (orig_tep->getMaterialParams()->getSpecularID().isNull())
+ if (mat->getSpecularID().isNull())
{
return false;
}
- map_rot = orig_tep->getMaterialParams()->getSpecularRotation();
- map_scaleS = orig_tep->getMaterialParams()->getSpecularRepeatX();
- map_scaleT = orig_tep->getMaterialParams()->getSpecularRepeatY();
- map_offsS = orig_tep->getMaterialParams()->getSpecularOffsetX();
- map_offsT = orig_tep->getMaterialParams()->getSpecularOffsetY();
+ map_rot = mat->getSpecularRotation();
+ map_scaleS = mat->getSpecularRepeatX();
+ map_scaleT = mat->getSpecularRepeatY();
+ map_offsS = mat->getSpecularOffsetX();
+ map_offsT = mat->getSpecularOffsetY();
break;
default: /*make compiler happy*/
break;