| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2006 The Android Open Source Project | 2 * Copyright 2006 The Android Open Source Project |
| 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 "SkDashPathEffect.h" | 8 #include "SkDashPathEffect.h" |
| 9 | 9 |
| 10 #include "SkDashPathPriv.h" | 10 #include "SkDashPathPriv.h" |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 if (dx) { | 87 if (dx) { |
| 88 SkASSERT(dx && !dy); | 88 SkASSERT(dx && !dy); |
| 89 SkScalar minX = pts[0].fX; | 89 SkScalar minX = pts[0].fX; |
| 90 SkScalar maxX = pts[1].fX; | 90 SkScalar maxX = pts[1].fX; |
| 91 | 91 |
| 92 if (dx < 0) { | 92 if (dx < 0) { |
| 93 SkTSwap(minX, maxX); | 93 SkTSwap(minX, maxX); |
| 94 } | 94 } |
| 95 | 95 |
| 96 SkASSERT(minX < maxX); | 96 SkASSERT(minX < maxX); |
| 97 if (maxX < bounds.fLeft || minX > bounds.fRight) { | 97 if (maxX <= bounds.fLeft || minX >= bounds.fRight) { |
| 98 return false; | 98 return false; |
| 99 } | 99 } |
| 100 | 100 |
| 101 // Now we actually perform the chop, removing the excess to the left and | 101 // Now we actually perform the chop, removing the excess to the left and |
| 102 // right of the bounds (keeping our new line "in phase" with the dash, | 102 // right of the bounds (keeping our new line "in phase" with the dash, |
| 103 // hence the (mod intervalLength). | 103 // hence the (mod intervalLength). |
| 104 | 104 |
| 105 if (minX < bounds.fLeft) { | 105 if (minX < bounds.fLeft) { |
| 106 minX = bounds.fLeft - SkScalarMod(bounds.fLeft - minX, intervalLengt
h); | 106 minX = bounds.fLeft - SkScalarMod(bounds.fLeft - minX, intervalLengt
h); |
| 107 } | 107 } |
| (...skipping 10 matching lines...) Expand all Loading... |
| 118 } else { | 118 } else { |
| 119 SkASSERT(dy && !dx); | 119 SkASSERT(dy && !dx); |
| 120 SkScalar minY = pts[0].fY; | 120 SkScalar minY = pts[0].fY; |
| 121 SkScalar maxY = pts[1].fY; | 121 SkScalar maxY = pts[1].fY; |
| 122 | 122 |
| 123 if (dy < 0) { | 123 if (dy < 0) { |
| 124 SkTSwap(minY, maxY); | 124 SkTSwap(minY, maxY); |
| 125 } | 125 } |
| 126 | 126 |
| 127 SkASSERT(minY < maxY); | 127 SkASSERT(minY < maxY); |
| 128 if (maxY < bounds.fTop || minY > bounds.fBottom) { | 128 if (maxY <= bounds.fTop || minY >= bounds.fBottom) { |
| 129 return false; | 129 return false; |
| 130 } | 130 } |
| 131 | 131 |
| 132 // Now we actually perform the chop, removing the excess to the top and | 132 // Now we actually perform the chop, removing the excess to the top and |
| 133 // bottom of the bounds (keeping our new line "in phase" with the dash, | 133 // bottom of the bounds (keeping our new line "in phase" with the dash, |
| 134 // hence the (mod intervalLength). | 134 // hence the (mod intervalLength). |
| 135 | 135 |
| 136 if (minY < bounds.fTop) { | 136 if (minY < bounds.fTop) { |
| 137 minY = bounds.fTop - SkScalarMod(bounds.fTop - minY, intervalLength)
; | 137 minY = bounds.fTop - SkScalarMod(bounds.fTop - minY, intervalLength)
; |
| 138 } | 138 } |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 | 362 |
| 363 SkFlattenable* SkDashPathEffect::CreateProc(SkReadBuffer& buffer) { | 363 SkFlattenable* SkDashPathEffect::CreateProc(SkReadBuffer& buffer) { |
| 364 const SkScalar phase = buffer.readScalar(); | 364 const SkScalar phase = buffer.readScalar(); |
| 365 uint32_t count = buffer.getArrayCount(); | 365 uint32_t count = buffer.getArrayCount(); |
| 366 SkAutoSTArray<32, SkScalar> intervals(count); | 366 SkAutoSTArray<32, SkScalar> intervals(count); |
| 367 if (buffer.readScalarArray(intervals.get(), count)) { | 367 if (buffer.readScalarArray(intervals.get(), count)) { |
| 368 return Create(intervals.get(), SkToInt(count), phase); | 368 return Create(intervals.get(), SkToInt(count), phase); |
| 369 } | 369 } |
| 370 return NULL; | 370 return NULL; |
| 371 } | 371 } |
| OLD | NEW |