summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraham Linden <graham@lindenlab.com>2019-06-28 08:45:07 -0700
committerGraham Linden <graham@lindenlab.com>2019-06-28 08:45:07 -0700
commitb659e5596e6612d83ce41dd6ce44228103851875 (patch)
treeb8f773b30798037fbb6cf18eace38b9287881b3b
parent7c651f84234813eb0ceb2c72e0c19acf2bb15f55 (diff)
SL-11514
Convince Geenzo code to get a little DeMorgan in it. Trophy Unlocked: make all alpha textures partcipate in picking.
-rw-r--r--indra/llrender/llimagegl.cpp4
-rw-r--r--indra/newview/lltoolpie.cpp20
-rw-r--r--indra/newview/llvovolume.cpp8
3 files changed, 5 insertions, 27 deletions
diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp
index 790ba25112..ff74380217 100644
--- a/indra/llrender/llimagegl.cpp
+++ b/indra/llrender/llimagegl.cpp
@@ -2049,8 +2049,8 @@ void LLImageGL::updatePickMask(S32 width, S32 height, const U8* data_in)
freePickMask();
if (mFormatType != GL_UNSIGNED_BYTE ||
- mFormatPrimary != GL_RGBA ||
- mFormatPrimary != GL_SRGB_ALPHA)
+ ((mFormatPrimary != GL_RGBA)
+ && (mFormatPrimary != GL_SRGB_ALPHA)))
{
//cannot generate a pick mask for this texture
return;
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index d5ffdef4c9..f184b22ccb 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -112,26 +112,6 @@ BOOL LLToolPie::handleMouseDown(S32 x, S32 y, MASK mask)
mMouseDownX = x;
mMouseDownY = y;
-#if 0
- LLTimer pick_timer;
- BOOL pick_rigged = false; //gSavedSettings.getBOOL("AnimatedObjectsAllowLeftClick");
- mPick = gViewerWindow->pickImmediate(x, y, FALSE, pick_rigged);
- LLViewerObject *object = mPick.getObject();
- LLViewerObject *parent = object ? object->getRootEdit() : NULL;
- if (!object
- || object->isAttachment()
- || object->getClickAction() == CLICK_ACTION_DISABLED
- || (!useClickAction(mask, object, parent) && !object->flagHandleTouch() && !(parent && parent->flagHandleTouch())))
- {
- // Unless we are hovering over actionable visible object
- // left mouse down always picks transparent (but see handleMouseUp).
- // Also see LLToolPie::handleHover() - priorities are a bit different there.
- // Todo: we need a more consistent set of rules to work with
- mPick = gViewerWindow->pickImmediate(x, y, TRUE /*transparent*/, pick_rigged);
- }
- LL_INFOS() << "pick_rigged is " << (S32) pick_rigged << " pick time elapsed " << pick_timer.getElapsedTimeF32() << LL_ENDL;
-#endif
-
//left mouse down always picks transparent (but see handleMouseUp)
mPick = gViewerWindow->pickImmediate(x, y, TRUE, FALSE);
mPick.mKeyMask = mask;
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 3866045b1d..dcefa22e75 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -4579,12 +4579,10 @@ BOOL LLVOVolume::lineSegmentIntersect(const LLVector4a& start, const LLVector4a&
}
}
+ BOOL no_texture = !face->getTexture() || !face->getTexture()->hasGLTexture();
+ BOOL mask = no_texture ? FALSE : face->getTexture()->getMask(face->surfaceToTexture(tc, p, n));
if (face &&
- (ignore_alpha ||
- pick_transparent ||
- !face->getTexture() ||
- !face->getTexture()->hasGLTexture() ||
- face->getTexture()->getMask(face->surfaceToTexture(tc, p, n))))
+ (ignore_alpha || pick_transparent || no_texture || mask))
{
local_end = p;
if (face_hitp != NULL)