diff options
author | Oz Linden <oz@lindenlab.com> | 2013-07-08 12:06:28 -0400 |
---|---|---|
committer | Oz Linden <oz@lindenlab.com> | 2013-07-08 12:06:28 -0400 |
commit | c2817b0d532af0c6af2b2b62084fd5c5cbab8140 (patch) | |
tree | e9f4fea1de2a30e22d644c43f865c6230bde9cfb /indra/newview/llvovolume.cpp | |
parent | 6c440d1b51fcd73d56e96ceb8a285282a6a242ef (diff) | |
parent | b8e67899650b487f3e716366624eb74dc5f490b2 (diff) |
merge up to integration repo
Diffstat (limited to 'indra/newview/llvovolume.cpp')
-rwxr-xr-x | indra/newview/llvovolume.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index d890548710..b545e99a32 100755 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -3724,8 +3724,30 @@ BOOL LLVOVolume::lineSegmentIntersect(const LLVector4a& start, const LLVector4a& { LLFace* face = mDrawable->getFace(face_hit); + bool ignore_alpha = false; + + const LLTextureEntry* te = face->getTextureEntry(); + if (te) + { + LLMaterial* mat = te->getMaterialParams(); + if (mat) + { + U8 mode = mat->getDiffuseAlphaMode(); + + if (mode == LLMaterial::DIFFUSE_ALPHA_MODE_EMISSIVE || + mode == LLMaterial::DIFFUSE_ALPHA_MODE_NONE) + { + ignore_alpha = true; + } + } + } + if (face && - (pick_transparent || !face->getTexture() || !face->getTexture()->hasGLTexture() || face->getTexture()->getMask(face->surfaceToTexture(tc, p, n)))) + (ignore_alpha || + pick_transparent || + !face->getTexture() || + !face->getTexture()->hasGLTexture() || + face->getTexture()->getMask(face->surfaceToTexture(tc, p, n)))) { local_end = p; if (face_hitp != NULL) |