diff options
author | Scott Lobdell <slobdell@google.com> | 2021-03-29 16:12:49 +0000 |
---|---|---|
committer | Scott Lobdell <slobdell@google.com> | 2021-04-02 22:35:29 +0000 |
commit | 21cdef883cc867db55340b25d5c95e19b12ab383 (patch) | |
tree | 93d1444ebe783f53f5f0ae2647592723b27b3fb8 /libs/hwui/effects/StretchEffect.cpp | |
parent | 7deab3736bb5f3a92be8ac820096926dce2366ad (diff) | |
parent | d1d45f856fdf68835f5b42eacecab44e6dfa8545 (diff) |
Merge SP1A.210329.001
Change-Id: I1e21c5890b5b2e2f2855f09960bc8eec8aa922bf
Diffstat (limited to 'libs/hwui/effects/StretchEffect.cpp')
-rw-r--r-- | libs/hwui/effects/StretchEffect.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/libs/hwui/effects/StretchEffect.cpp b/libs/hwui/effects/StretchEffect.cpp index d4fd1053b17f..9e4fb8fc9b35 100644 --- a/libs/hwui/effects/StretchEffect.cpp +++ b/libs/hwui/effects/StretchEffect.cpp @@ -33,7 +33,8 @@ static const SkString stretchShader = SkString(R"( uniform float uMaxStretchIntensity; // Maximum percentage to stretch beyond bounds of target - uniform float uStretchAffectedDist; + uniform float uStretchAffectedDistX; + uniform float uStretchAffectedDistY; // Distance stretched as a function of the normalized overscroll times // scale intensity @@ -138,7 +139,7 @@ static const SkString stretchShader = SkString(R"( outU, inU, uOverscrollX, - uStretchAffectedDist, + uStretchAffectedDistX, uDistanceStretchedX, uDistDiffX ); @@ -146,7 +147,7 @@ static const SkString stretchShader = SkString(R"( outV, inV, uOverscrollY, - uStretchAffectedDist, + uStretchAffectedDistY, uDistanceStretchedY, uDistDiffY ); @@ -166,16 +167,14 @@ sk_sp<SkImageFilter> StretchEffect::getImageFilter(const sk_sp<SkImage>& snapsho return mStretchFilter; } - float distanceNotStretchedX = maxStretchAmount / stretchArea.width(); - float distanceNotStretchedY = maxStretchAmount / stretchArea.height(); - float normOverScrollDistX = mStretchDirection.x(); - float normOverScrollDistY = mStretchDirection.y(); - float distanceStretchedX = maxStretchAmount / (1 + abs(normOverScrollDistX)); - float distanceStretchedY = maxStretchAmount / (1 + abs(normOverScrollDistY)); - float diffX = distanceStretchedX - distanceNotStretchedX; - float diffY = distanceStretchedY - distanceNotStretchedY; float viewportWidth = stretchArea.width(); float viewportHeight = stretchArea.height(); + float normOverScrollDistX = mStretchDirection.x(); + float normOverScrollDistY = mStretchDirection.y(); + float distanceStretchedX = maxStretchAmountX / (1 + abs(normOverScrollDistX)); + float distanceStretchedY = maxStretchAmountY / (1 + abs(normOverScrollDistY)); + float diffX = distanceStretchedX; + float diffY = distanceStretchedY; if (mBuilder == nullptr) { mBuilder = std::make_unique<SkRuntimeShaderBuilder>(getStretchEffect()); @@ -183,7 +182,8 @@ sk_sp<SkImageFilter> StretchEffect::getImageFilter(const sk_sp<SkImage>& snapsho mBuilder->child("uContentTexture") = snapshotImage->makeShader( SkTileMode::kClamp, SkTileMode::kClamp, SkSamplingOptions(SkFilterMode::kLinear)); - mBuilder->uniform("uStretchAffectedDist").set(&maxStretchAmount, 1); + mBuilder->uniform("uStretchAffectedDistX").set(&maxStretchAmountX, 1); + mBuilder->uniform("uStretchAffectedDistY").set(&maxStretchAmountY, 1); mBuilder->uniform("uDistanceStretchedX").set(&distanceStretchedX, 1); mBuilder->uniform("uDistanceStretchedY").set(&distanceStretchedY, 1); mBuilder->uniform("uDistDiffX").set(&diffX, 1); |