change hairline procs to take SkPoint by value, more efficient on SSE and NEON
authorreed <reed@chromium.org>
Sat, 11 Apr 2015 03:39:19 +0000 (20:39 -0700)
committerCommit bot <commit-bot@chromium.org>
Sat, 11 Apr 2015 03:39:19 +0000 (20:39 -0700)
precursor for https://codereview.chromium.org/1074313002/

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1084433002

src/core/SkDraw.cpp
src/core/SkScan.h
src/core/SkScan_Antihair.cpp
src/core/SkScan_Hairline.cpp

index c4c1bc5..636eaa6 100644 (file)
@@ -1876,8 +1876,7 @@ void SkDraw::drawPosText(const char text[], size_t byteLength,
 
 ///////////////////////////////////////////////////////////////////////////////
 
-typedef void (*HairProc)(const SkPoint&, const SkPoint&, const SkRasterClip&,
-                         SkBlitter*);
+typedef void (*HairProc)(SkPoint, SkPoint, const SkRasterClip&, SkBlitter*);
 
 static HairProc ChooseHairProc(bool doAntiAlias) {
     return doAntiAlias ? SkScan::AntiHairLine : SkScan::HairLine;
index 46a8107..96c58c5 100644 (file)
@@ -41,10 +41,8 @@ public:
     static void AntiFrameRect(const SkRect&, const SkPoint& strokeSize,
                               const SkRasterClip&, SkBlitter*);
     static void FillTriangle(const SkPoint pts[], const SkRasterClip&, SkBlitter*);
-    static void HairLine(const SkPoint&, const SkPoint&, const SkRasterClip&,
-                         SkBlitter*);
-    static void AntiHairLine(const SkPoint&, const SkPoint&, const SkRasterClip&,
-                             SkBlitter*);
+    static void HairLine(SkPoint, SkPoint, const SkRasterClip&, SkBlitter*);
+    static void AntiHairLine(SkPoint, SkPoint, const SkRasterClip&, SkBlitter*);
     static void HairRect(const SkRect&, const SkRasterClip&, SkBlitter*);
     static void AntiHairRect(const SkRect&, const SkRasterClip&, SkBlitter*);
     static void HairPath(const SkPath&, const SkRasterClip&, SkBlitter*);
@@ -66,10 +64,8 @@ private:
 
     static void AntiFrameRect(const SkRect&, const SkPoint& strokeSize,
                               const SkRegion*, SkBlitter*);
-    static void HairLineRgn(const SkPoint&, const SkPoint&, const SkRegion*,
-                         SkBlitter*);
-    static void AntiHairLineRgn(const SkPoint&, const SkPoint&, const SkRegion*,
-                             SkBlitter*);
+    static void HairLineRgn(SkPoint, SkPoint, const SkRegion*, SkBlitter*);
+    static void AntiHairLineRgn(SkPoint, SkPoint, const SkRegion*, SkBlitter*);
 };
 
 /** Assign an SkXRect from a SkIRect, by promoting the src rect's coordinates
index 97bb6d2..c48ad2c 100644 (file)
@@ -588,8 +588,7 @@ static void do_anti_hairline(SkFDot6 x0, SkFDot6 y0, SkFDot6 x1, SkFDot6 y1,
     }
 }
 
-void SkScan::AntiHairLineRgn(const SkPoint& pt0, const SkPoint& pt1,
-                             const SkRegion* clip, SkBlitter* blitter) {
+void SkScan::AntiHairLineRgn(SkPoint pt0, SkPoint pt1, const SkRegion* clip, SkBlitter* blitter) {
     if (clip && clip->isEmpty()) {
         return;
     }
index bd597b3..8cce57b 100644 (file)
@@ -40,8 +40,7 @@ static bool canConvertFDot6ToFixed(SkFDot6 x) {
 }
 #endif
 
-void SkScan::HairLineRgn(const SkPoint& pt0, const SkPoint& pt1,
-                         const SkRegion* clip, SkBlitter* blitter) {
+void SkScan::HairLineRgn(SkPoint pt0, SkPoint pt1, const SkRegion* clip, SkBlitter* blitter) {
     SkBlitterClipper    clipper;
     SkRect  r;
     SkIRect clipR, ptsR;
@@ -210,8 +209,7 @@ static int compute_int_quad_dist(const SkPoint pts[3]) {
     }
 }
 
-typedef void (*LineProc)(const SkPoint&, const SkPoint&, const SkRegion*,
-                         SkBlitter*);
+typedef void (*LineProc)(SkPoint, SkPoint, const SkRegion*, SkBlitter*);
 
 static void hairquad(const SkPoint pts[3], const SkRegion* clip,
                      SkBlitter* blitter, int level, LineProc lineproc) {
@@ -257,8 +255,8 @@ static int compute_quad_level(const SkPoint pts[3]) {
     return level;
 }
 
-static void hair_path(const SkPath& path, const SkRasterClip& rclip,
-                      SkBlitter* blitter, LineProc lineproc) {
+static void hair_path(const SkPath& path, const SkRasterClip& rclip, SkBlitter* blitter,
+                      LineProc lineproc) {
     if (path.isEmpty()) {
         return;
     }
@@ -321,13 +319,11 @@ static void hair_path(const SkPath& path, const SkRasterClip& rclip,
     }
 }
 
-void SkScan::HairPath(const SkPath& path, const SkRasterClip& clip,
-                      SkBlitter* blitter) {
+void SkScan::HairPath(const SkPath& path, const SkRasterClip& clip, SkBlitter* blitter) {
     hair_path(path, clip, blitter, SkScan::HairLineRgn);
 }
 
-void SkScan::AntiHairPath(const SkPath& path, const SkRasterClip& clip,
-                          SkBlitter* blitter) {
+void SkScan::AntiHairPath(const SkPath& path, const SkRasterClip& clip, SkBlitter* blitter) {
     hair_path(path, clip, blitter, SkScan::AntiHairLineRgn);
 }
 
@@ -368,8 +364,7 @@ void SkScan::FrameRect(const SkRect& r, const SkPoint& strokeSize,
     SkScan::FillRect(tmp, clip, blitter);
 }
 
-void SkScan::HairLine(const SkPoint& p0, const SkPoint& p1,
-                      const SkRasterClip& clip, SkBlitter* blitter) {
+void SkScan::HairLine(SkPoint p0, SkPoint p1, const SkRasterClip& clip, SkBlitter* blitter) {
     if (clip.isBW()) {
         HairLineRgn(p0, p1, &clip.bwRgn(), blitter);
     } else {
@@ -389,8 +384,7 @@ void SkScan::HairLine(const SkPoint& p0, const SkPoint& p1,
     }
 }
 
-void SkScan::AntiHairLine(const SkPoint& p0, const SkPoint& p1,
-                          const SkRasterClip& clip, SkBlitter* blitter) {
+void SkScan::AntiHairLine(SkPoint p0, SkPoint p1, const SkRasterClip& clip, SkBlitter* blitter) {
     if (clip.isBW()) {
         AntiHairLineRgn(p0, p1, &clip.bwRgn(), blitter);
     } else {