| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2016 Google Inc. | 2 * Copyright 2016 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #ifndef GrStyle_DEFINED | 8 #ifndef GrStyle_DEFINED |
| 9 #define GrStyle_DEFINED | 9 #define GrStyle_DEFINED |
| 10 | 10 |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 * been overwritten. Scale controls geometric approximations made by the pat
h effect and | 160 * been overwritten. Scale controls geometric approximations made by the pat
h effect and |
| 161 * stroker. It is typically computed from the view matrix. | 161 * stroker. It is typically computed from the view matrix. |
| 162 */ | 162 */ |
| 163 bool SK_WARN_UNUSED_RESULT applyToPath(SkPath* dst, SkStrokeRec::InitStyle*
fillOrHairline, | 163 bool SK_WARN_UNUSED_RESULT applyToPath(SkPath* dst, SkStrokeRec::InitStyle*
fillOrHairline, |
| 164 const SkPath& src, SkScalar scale) co
nst; | 164 const SkPath& src, SkScalar scale) co
nst; |
| 165 | 165 |
| 166 /** Given bounds of a path compute the bounds of path with the style applied
. */ | 166 /** Given bounds of a path compute the bounds of path with the style applied
. */ |
| 167 void adjustBounds(SkRect* dst, const SkRect& src) const { | 167 void adjustBounds(SkRect* dst, const SkRect& src) const { |
| 168 if (this->pathEffect()) { | 168 if (this->pathEffect()) { |
| 169 this->pathEffect()->computeFastBounds(dst, src); | 169 this->pathEffect()->computeFastBounds(dst, src); |
| 170 // This may not be the correct SkStrokeRec to use. skbug.com/5299 |
| 171 // It happens to work for dashing. |
| 172 SkScalar radius = fStrokeRec.getInflationRadius(); |
| 173 dst->outset(radius, radius); |
| 170 } else { | 174 } else { |
| 171 SkScalar radius = fStrokeRec.getInflationRadius(); | 175 SkScalar radius = fStrokeRec.getInflationRadius(); |
| 172 *dst = src.makeOutset(radius, radius); | 176 *dst = src.makeOutset(radius, radius); |
| 173 } | 177 } |
| 174 } | 178 } |
| 175 | 179 |
| 176 private: | 180 private: |
| 177 void initPathEffect(SkPathEffect* pe); | 181 void initPathEffect(SkPathEffect* pe); |
| 178 | 182 |
| 179 struct DashInfo { | 183 struct DashInfo { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 194 SkScalar fPhase; | 198 SkScalar fPhase; |
| 195 SkAutoSTArray<4, SkScalar> fIntervals; | 199 SkAutoSTArray<4, SkScalar> fIntervals; |
| 196 }; | 200 }; |
| 197 | 201 |
| 198 SkStrokeRec fStrokeRec; | 202 SkStrokeRec fStrokeRec; |
| 199 sk_sp<SkPathEffect> fPathEffect; | 203 sk_sp<SkPathEffect> fPathEffect; |
| 200 DashInfo fDashInfo; | 204 DashInfo fDashInfo; |
| 201 }; | 205 }; |
| 202 | 206 |
| 203 #endif | 207 #endif |
| OLD | NEW |