aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar herb <herb@google.com>2016-02-29 12:58:35 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-02-29 12:58:35 -0800
commit755539f0b1f3331359d1ea2b65b6bb93387b7821 (patch)
tree1bc9c012d339b4e33616c59754af049ef9d115ca
parent5d5207a39e294e4e810685b2cff1d7c770e21b9c (diff)
Fix overlooked bilerp fallback.
-rw-r--r--src/core/SkLinearBitmapPipeline.cpp14
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: