OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2003, 2006, 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2003, 2006, 2009 Apple Inc. All rights reserved. |
3 * 2006 Rob Buis <buis@kde.org> | 3 * 2006 Rob Buis <buis@kde.org> |
4 * Copyright (C) 2007-2008 Torch Mobile, Inc. | 4 * Copyright (C) 2007-2008 Torch Mobile, Inc. |
5 * Copyright (C) 2013 Google Inc. All rights reserved. | 5 * Copyright (C) 2013 Google Inc. All rights reserved. |
6 * | 6 * |
7 * Redistribution and use in source and binary forms, with or without | 7 * Redistribution and use in source and binary forms, with or without |
8 * modification, are permitted provided that the following conditions | 8 * modification, are permitted provided that the following conditions |
9 * are met: | 9 * are met: |
10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 | 66 |
67 typedef void (*PathApplierFunction)(void* info, const PathElement*); | 67 typedef void (*PathApplierFunction)(void* info, const PathElement*); |
68 | 68 |
69 class PLATFORM_EXPORT Path { | 69 class PLATFORM_EXPORT Path { |
70 WTF_MAKE_FAST_ALLOCATED; | 70 WTF_MAKE_FAST_ALLOCATED; |
71 public: | 71 public: |
72 Path(); | 72 Path(); |
73 ~Path(); | 73 ~Path(); |
74 | 74 |
75 Path(const Path&); | 75 Path(const Path&); |
| 76 Path(const SkPath&); |
76 Path& operator=(const Path&); | 77 Path& operator=(const Path&); |
77 bool operator==(const Path&) const; | 78 bool operator==(const Path&) const; |
78 | 79 |
79 bool contains(const FloatPoint&, WindRule = RULE_NONZERO) const; | 80 bool contains(const FloatPoint&, WindRule = RULE_NONZERO) const; |
80 bool strokeContains(const FloatPoint&, const StrokeData&) const; | 81 bool strokeContains(const FloatPoint&, const StrokeData&) const; |
81 FloatRect boundingRect() const; | 82 FloatRect boundingRect() const; |
82 FloatRect strokeBoundingRect(const StrokeData&) const; | 83 FloatRect strokeBoundingRect(const StrokeData&) const; |
83 | 84 |
84 float length() const; | 85 float length() const; |
85 FloatPoint pointAtLength(float length, bool& ok) const; | 86 FloatPoint pointAtLength(float length, bool& ok) const; |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 void translate(const FloatSize&); | 137 void translate(const FloatSize&); |
137 | 138 |
138 const SkPath& skPath() const { return m_path; } | 139 const SkPath& skPath() const { return m_path; } |
139 | 140 |
140 void apply(void* info, PathApplierFunction) const; | 141 void apply(void* info, PathApplierFunction) const; |
141 void transform(const AffineTransform&); | 142 void transform(const AffineTransform&); |
142 | 143 |
143 void addPathForRoundedRect(const FloatRect&, const FloatSize& topLeftRadius,
const FloatSize& topRightRadius, const FloatSize& bottomLeftRadius, const Float
Size& bottomRightRadius); | 144 void addPathForRoundedRect(const FloatRect&, const FloatSize& topLeftRadius,
const FloatSize& topRightRadius, const FloatSize& bottomLeftRadius, const Float
Size& bottomRightRadius); |
144 void addBeziersForRoundedRect(const FloatRect&, const FloatSize& topLeftRadi
us, const FloatSize& topRightRadius, const FloatSize& bottomLeftRadius, const Fl
oatSize& bottomRightRadius); | 145 void addBeziersForRoundedRect(const FloatRect&, const FloatSize& topLeftRadi
us, const FloatSize& topRightRadius, const FloatSize& bottomLeftRadius, const Fl
oatSize& bottomRightRadius); |
145 | 146 |
| 147 bool subtractPath(const Path&); |
| 148 bool intersectPath(const Path&); |
| 149 |
146 // Updates the path to the union (inclusive-or) of itself with the given arg
ument. | 150 // Updates the path to the union (inclusive-or) of itself with the given arg
ument. |
147 bool unionPath(const Path& other); | 151 bool unionPath(const Path& other); |
148 | 152 |
149 private: | 153 private: |
150 void addEllipse(const FloatPoint&, float radiusX, float radiusY, float start
Angle, float endAngle, bool anticlockwise); | 154 void addEllipse(const FloatPoint&, float radiusX, float radiusY, float start
Angle, float endAngle, bool anticlockwise); |
151 | 155 |
152 SkPath m_path; | 156 SkPath m_path; |
153 }; | 157 }; |
154 | 158 |
155 #if !ASSERT_DISABLED | 159 #if !ASSERT_DISABLED |
156 PLATFORM_EXPORT bool ellipseIsRenderable(float startAngle, float endAngle); | 160 PLATFORM_EXPORT bool ellipseIsRenderable(float startAngle, float endAngle); |
157 #endif | 161 #endif |
158 | 162 |
159 } | 163 } |
160 | 164 |
161 #endif | 165 #endif |
OLD | NEW |