From 054eef2b5ca84bf5b03e5ddba0c30055f5e474cc Mon Sep 17 00:00:00 2001 From: reed Date: Fri, 10 Apr 2015 20:39:19 -0700 Subject: change hairline procs to take SkPoint by value, more efficient on SSE and NEON precursor for https://codereview.chromium.org/1074313002/ BUG=skia: TBR= Review URL: https://codereview.chromium.org/1084433002 --- src/core/SkDraw.cpp | 3 +-- src/core/SkScan.h | 12 ++++-------- src/core/SkScan_Antihair.cpp | 3 +-- src/core/SkScan_Hairline.cpp | 22 ++++++++-------------- 4 files changed, 14 insertions(+), 26 deletions(-) diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp index c4c1bc5ddd..636eaa6f61 100644 --- a/src/core/SkDraw.cpp +++ b/src/core/SkDraw.cpp @@ -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; diff --git a/src/core/SkScan.h b/src/core/SkScan.h index 46a81073ea..96c58c5f37 100644 --- a/src/core/SkScan.h +++ b/src/core/SkScan.h @@ -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 diff --git a/src/core/SkScan_Antihair.cpp b/src/core/SkScan_Antihair.cpp index 97bb6d2198..c48ad2c3f4 100644 --- a/src/core/SkScan_Antihair.cpp +++ b/src/core/SkScan_Antihair.cpp @@ -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; } diff --git a/src/core/SkScan_Hairline.cpp b/src/core/SkScan_Hairline.cpp index bd597b3d68..8cce57b8c9 100644 --- a/src/core/SkScan_Hairline.cpp +++ b/src/core/SkScan_Hairline.cpp @@ -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 { -- cgit v1.2.3