diff options
author | Graham Linden <graham@lindenlab.com> | 2019-06-28 08:45:07 -0700 |
---|---|---|
committer | Graham Linden <graham@lindenlab.com> | 2019-06-28 08:45:07 -0700 |
commit | b659e5596e6612d83ce41dd6ce44228103851875 (patch) | |
tree | b8f773b30798037fbb6cf18eace38b9287881b3b /indra | |
parent | 7c651f84234813eb0ceb2c72e0c19acf2bb15f55 (diff) |
SL-11514
Convince Geenzo code to get a little DeMorgan in it.
Trophy Unlocked: make all alpha textures partcipate in picking.
Diffstat (limited to 'indra')
-rw-r--r-- | indra/llrender/llimagegl.cpp | 4 | ||||
-rw-r--r-- | indra/newview/lltoolpie.cpp | 20 | ||||
-rw-r--r-- | indra/newview/llvovolume.cpp | 8 |
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) |