diff options
author | 2014-10-01 07:21:23 -0700 | |
---|---|---|
committer | 2014-10-01 07:21:23 -0700 | |
commit | d9c42f71c391baa23c5ed5934444077e96a68638 (patch) | |
tree | 9abd8904b80b7da44e76ae5fe1d116ba6042a3af /include/core/SkPoint.h | |
parent | 24e430ff321bcd07c736e9bc70d06c444ab5a9ca (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.h | 11 |
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); |