Index: src/core/SkLinearBitmapPipeline.cpp |
diff --git a/src/core/SkLinearBitmapPipeline.cpp b/src/core/SkLinearBitmapPipeline.cpp |
index 2090a1e436764f2c581b40d6b6f1444ec5d75fd7..347803cd300584f45956c33a6e770cde32210fb4 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; |
mtklein_C
2016/02/29 20:19:45
Xs = Xs + dx
herb_g
2016/02/29 20:57:40
Acknowledged.
|
+ count -= 1; |
+ } |
} |
private: |