diff options
author | 2018-02-13 12:48:57 -0500 | |
---|---|---|
committer | 2018-02-13 18:14:20 +0000 | |
commit | 655bf8f022a31b8a8624838d267b0e9cab0d8ef8 (patch) | |
tree | 51dadae4ad48b7dc3ab605342989ab70aaf103ac /src/effects/SkDisplacementMapEffect.cpp | |
parent | 0c6ea6c77ad39042759d781e65e3474ebc4ff7ee (diff) |
saturate IPoint math, handle NaN in isEmpty
Bug: skia:7507
Change-Id: Ibdb40584effdea70e6499eab1bb64bb4b2260d06
Reviewed-on: https://skia-review.googlesource.com/106972
Commit-Queue: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'src/effects/SkDisplacementMapEffect.cpp')
-rw-r--r-- | src/effects/SkDisplacementMapEffect.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/effects/SkDisplacementMapEffect.cpp b/src/effects/SkDisplacementMapEffect.cpp index 1b055b69a3..ce7fe34ea4 100644 --- a/src/effects/SkDisplacementMapEffect.cpp +++ b/src/effects/SkDisplacementMapEffect.cpp @@ -88,8 +88,8 @@ void computeDisplacement(Extractor ex, const SkVector& scale, SkBitmap* dst, SkScalar displX = scaleForColor.fX * ex.getX(c) + scaleAdj.fX; SkScalar displY = scaleForColor.fY * ex.getY(c) + scaleAdj.fY; // Truncate the displacement values - const int srcX = x + SkScalarTruncToInt(displX); - const int srcY = y + SkScalarTruncToInt(displY); + const int32_t srcX = Sk32_sat_add(x, SkScalarTruncToInt(displX)); + const int32_t srcY = Sk32_sat_add(y, SkScalarTruncToInt(displY)); *dstPtr++ = ((srcX < 0) || (srcX >= srcW) || (srcY < 0) || (srcY >= srcH)) ? 0 : *(src.getAddr32(srcX, srcY)); } |