Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(140)

Unified Diff: src/core/SkLinearBitmapPipeline.h

Issue 1711963003: Add point spans, but fall back for all cases. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Address comments. Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/core/SkLinearBitmapPipeline.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/core/SkLinearBitmapPipeline.h
diff --git a/src/core/SkLinearBitmapPipeline.h b/src/core/SkLinearBitmapPipeline.h
index 5f9da1ea4ca486e4b0a603a71eab1a6321c9f216..d9748df75061854968ef947b4b35599fb65f791b 100644
--- a/src/core/SkLinearBitmapPipeline.h
+++ b/src/core/SkLinearBitmapPipeline.h
@@ -22,6 +22,19 @@ public:
virtual ~PointProcessorInterface() { }
virtual void pointListFew(int n, Sk4fArg xs, Sk4fArg ys) = 0;
virtual void pointList4(Sk4fArg xs, Sk4fArg ys) = 0;
+
+ // The pointSpan method efficiently process horizontal spans of pixels.
+ // * start - the point where to start the span.
+ // * length - the number of pixels to traverse in source space.
+ // * count - the number of pixels to produce in destination space.
+ // Both start and length are mapped through the inversion matrix to produce values in source
+ // space. After the matrix operation, the tilers may break the spans up into smaller spans.
+ // The tilers can produce spans that seem nonsensical.
+ // * The clamp tiler can create spans with length of 0. This indicates to copy an edge pixel out
+ // to the edge of the destination scan.
+ // * The mirror tiler can produce spans with negative length. This indicates that the source
+ // should be traversed in the opposite direction to the destination pixels.
+ virtual void pointSpan(SkPoint start, SkScalar length, int count) = 0;
};
class BilerpProcessorInterface : public PointProcessorInterface {
« no previous file with comments | « no previous file | src/core/SkLinearBitmapPipeline.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698