OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 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 #include "SkBuffer.h" | 8 #include "SkBuffer.h" |
9 #include "SkOncePtr.h" | 9 #include "SkOncePtr.h" |
10 #include "SkPath.h" | 10 #include "SkPath.h" |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 if (!fBoundsIsDirty) { | 292 if (!fBoundsIsDirty) { |
293 fBounds = ref.fBounds; | 293 fBounds = ref.fBounds; |
294 fIsFinite = ref.fIsFinite; | 294 fIsFinite = ref.fIsFinite; |
295 } | 295 } |
296 fSegmentMask = ref.fSegmentMask; | 296 fSegmentMask = ref.fSegmentMask; |
297 fIsOval = ref.fIsOval; | 297 fIsOval = ref.fIsOval; |
298 fIsRRect = ref.fIsRRect; | 298 fIsRRect = ref.fIsRRect; |
299 SkDEBUGCODE(this->validate();) | 299 SkDEBUGCODE(this->validate();) |
300 } | 300 } |
301 | 301 |
| 302 |
| 303 void SkPathRef::interpolate(const SkPathRef& ending, SkScalar weight, SkPathRef*
out) const { |
| 304 const SkScalar* inValues = &ending.getPoints()->fX; |
| 305 SkScalar* outValues = &out->getPoints()->fX; |
| 306 int count = out->countPoints() * 2; |
| 307 for (int index = 0; index < count; ++index) { |
| 308 outValues[index] = outValues[index] * weight + inValues[index] * (1 - we
ight); |
| 309 } |
| 310 out->fBoundsIsDirty = true; |
| 311 out->fIsOval = false; |
| 312 out->fIsRRect = false; |
| 313 } |
| 314 |
302 SkPoint* SkPathRef::growForRepeatedVerb(int /*SkPath::Verb*/ verb, | 315 SkPoint* SkPathRef::growForRepeatedVerb(int /*SkPath::Verb*/ verb, |
303 int numVbs, | 316 int numVbs, |
304 SkScalar** weights) { | 317 SkScalar** weights) { |
305 // This value is just made-up for now. When count is 4, calling memset was m
uch | 318 // This value is just made-up for now. When count is 4, calling memset was m
uch |
306 // slower than just writing the loop. This seems odd, and hopefully in the | 319 // slower than just writing the loop. This seems odd, and hopefully in the |
307 // future this will appear to have been a fluke... | 320 // future this will appear to have been a fluke... |
308 static const unsigned int kMIN_COUNT_FOR_MEMSET_TO_BE_FAST = 16; | 321 static const unsigned int kMIN_COUNT_FOR_MEMSET_TO_BE_FAST = 16; |
309 | 322 |
310 SkDEBUGCODE(this->validate();) | 323 SkDEBUGCODE(this->validate();) |
311 int pCnt; | 324 int pCnt; |
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
654 break; | 667 break; |
655 default: | 668 default: |
656 SkDEBUGFAIL("Unknown Verb"); | 669 SkDEBUGFAIL("Unknown Verb"); |
657 break; | 670 break; |
658 } | 671 } |
659 } | 672 } |
660 SkASSERT(mask == fSegmentMask); | 673 SkASSERT(mask == fSegmentMask); |
661 #endif // SK_DEBUG_PATH | 674 #endif // SK_DEBUG_PATH |
662 } | 675 } |
663 #endif | 676 #endif |
OLD | NEW |