diff options
author | herb <herb@google.com> | 2016-02-29 12:58:35 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-02-29 12:58:35 -0800 |
commit | 755539f0b1f3331359d1ea2b65b6bb93387b7821 (patch) | |
tree | 1bc9c012d339b4e33616c59754af049ef9d115ca /src | |
parent | 5d5207a39e294e4e810685b2cff1d7c770e21b9c (diff) |
Fix overlooked bilerp fallback.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1746093002
Review URL: https://codereview.chromium.org/1746093002
Diffstat (limited to 'src')
-rw-r--r-- | src/core/SkLinearBitmapPipeline.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/core/SkLinearBitmapPipeline.cpp b/src/core/SkLinearBitmapPipeline.cpp index 2090a1e436..347803cd30 100644 --- a/src/core/SkLinearBitmapPipeline.cpp +++ b/src/core/SkLinearBitmapPipeline.cpp @@ -423,7 +423,19 @@ public: void pointSpan(Span span) override { SkASSERT(!span.isEmpty()); - span_fallback(span, fNext); + SkPoint start; SkScalar length; int count; + std::tie(start, length, count) = span; + float dx = length / (count - 1); + + Sk4f Xs = Sk4f{X(start)} + Sk4f{-0.5f, 0.5f, -0.5f, 0.5f}; + Sk4f Ys = Sk4f{Y(start)} + Sk4f{-0.5f, -0.5f, 0.5f, 0.5f}; + + Sk4f dXs{dx}; + while (count > 0) { + fNext->bilerpList(Xs, Ys); + Xs = Xs + dXs; + count -= 1; + } } private: |