aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core/SkPoint.h
diff options
context:
space:
mode:
authorGravatar reed <reed@chromium.org>2014-10-01 07:21:23 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-10-01 07:21:23 -0700
commitd9c42f71c391baa23c5ed5934444077e96a68638 (patch)
tree9abd8904b80b7da44e76ae5fe1d116ba6042a3af /include/core/SkPoint.h
parent24e430ff321bcd07c736e9bc70d06c444ab5a9ca (diff)
optimize setRectFan and join -- from profiling drawText
BUG=skia: NOTREECHECKS=True NOTRY=True Review URL: https://codereview.chromium.org/615993003
Diffstat (limited to 'include/core/SkPoint.h')
-rw-r--r--include/core/SkPoint.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/include/core/SkPoint.h b/include/core/SkPoint.h
index 6f32d98c75..18b371f2ca 100644
--- a/include/core/SkPoint.h
+++ b/include/core/SkPoint.h
@@ -212,7 +212,16 @@ struct SK_API SkPoint {
v[2].set(r, b);
v[3].set(r, t);
}
- void setRectFan(SkScalar l, SkScalar t, SkScalar r, SkScalar b, size_t stride);
+
+ void setRectFan(SkScalar l, SkScalar t, SkScalar r, SkScalar b, size_t stride) {
+ SkASSERT(stride >= sizeof(SkPoint));
+
+ ((SkPoint*)((intptr_t)this + 0 * stride))->set(l, t);
+ ((SkPoint*)((intptr_t)this + 1 * stride))->set(l, b);
+ ((SkPoint*)((intptr_t)this + 2 * stride))->set(r, b);
+ ((SkPoint*)((intptr_t)this + 3 * stride))->set(r, t);
+ }
+
static void Offset(SkPoint points[], int count, const SkPoint& offset) {
Offset(points, count, offset.fX, offset.fY);