OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 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 "SkLinearGradient.h" | 8 #include "SkLinearGradient.h" |
9 | 9 |
10 static inline int repeat_bits(int x, const int bits) { | 10 static inline int repeat_bits(int x, const int bits) { |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 SkPMColor dlerp = SkFastFourByteInterp(cache[index1], cache[index0], remaind
er); | 142 SkPMColor dlerp = SkFastFourByteInterp(cache[index1], cache[index0], remaind
er); |
143 sk_memset32_dither(dstC, lerp, dlerp, count); | 143 sk_memset32_dither(dstC, lerp, dlerp, count); |
144 } | 144 } |
145 | 145 |
146 void shadeSpan_linear_clamp(TileProc proc, SkGradFixed dx, SkGradFixed fx, | 146 void shadeSpan_linear_clamp(TileProc proc, SkGradFixed dx, SkGradFixed fx, |
147 SkPMColor* SK_RESTRICT dstC, | 147 SkPMColor* SK_RESTRICT dstC, |
148 const SkPMColor* SK_RESTRICT cache, | 148 const SkPMColor* SK_RESTRICT cache, |
149 int toggle, int count) { | 149 int toggle, int count) { |
150 SkClampRange range; | 150 SkClampRange range; |
151 range.init(fx, dx, count, 0, SkGradientShaderBase::kCache32Count - 1); | 151 range.init(fx, dx, count, 0, SkGradientShaderBase::kCache32Count - 1); |
| 152 range.validate(count); |
152 | 153 |
153 if ((count = range.fCount0) > 0) { | 154 if ((count = range.fCount0) > 0) { |
154 sk_memset32_dither(dstC, | 155 sk_memset32_dither(dstC, |
155 cache[toggle + range.fV0], | 156 cache[toggle + range.fV0], |
156 cache[next_dither_toggle(toggle) + range.fV0], | 157 cache[next_dither_toggle(toggle) + range.fV0], |
157 count); | 158 count); |
158 dstC += count; | 159 dstC += count; |
159 } | 160 } |
160 if ((count = range.fCount1) > 0) { | 161 if ((count = range.fCount1) > 0) { |
161 int unroll = count >> 3; | 162 int unroll = count >> 3; |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 dither_memset16(dstC, cache[toggle + fi], | 326 dither_memset16(dstC, cache[toggle + fi], |
326 cache[next_dither_toggle16(toggle) + fi], count); | 327 cache[next_dither_toggle16(toggle) + fi], count); |
327 } | 328 } |
328 | 329 |
329 void shadeSpan16_linear_clamp(TileProc proc, SkGradFixed dx, SkGradFixed fx, | 330 void shadeSpan16_linear_clamp(TileProc proc, SkGradFixed dx, SkGradFixed fx, |
330 uint16_t* SK_RESTRICT dstC, | 331 uint16_t* SK_RESTRICT dstC, |
331 const uint16_t* SK_RESTRICT cache, | 332 const uint16_t* SK_RESTRICT cache, |
332 int toggle, int count) { | 333 int toggle, int count) { |
333 SkClampRange range; | 334 SkClampRange range; |
334 range.init(fx, dx, count, 0, SkGradientShaderBase::kCache32Count - 1); | 335 range.init(fx, dx, count, 0, SkGradientShaderBase::kCache32Count - 1); |
| 336 range.validate(count); |
335 | 337 |
336 if ((count = range.fCount0) > 0) { | 338 if ((count = range.fCount0) > 0) { |
337 dither_memset16(dstC, | 339 dither_memset16(dstC, |
338 cache[toggle + range.fV0], | 340 cache[toggle + range.fV0], |
339 cache[next_dither_toggle16(toggle) + range.fV0], | 341 cache[next_dither_toggle16(toggle) + range.fV0], |
340 count); | 342 count); |
341 dstC += count; | 343 dstC += count; |
342 } | 344 } |
343 if ((count = range.fCount1) > 0) { | 345 if ((count = range.fCount1) > 0) { |
344 int unroll = count >> 3; | 346 int unroll = count >> 3; |
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
604 str->append("SkLinearGradient ("); | 606 str->append("SkLinearGradient ("); |
605 | 607 |
606 str->appendf("start: (%f, %f)", fStart.fX, fStart.fY); | 608 str->appendf("start: (%f, %f)", fStart.fX, fStart.fY); |
607 str->appendf(" end: (%f, %f) ", fEnd.fX, fEnd.fY); | 609 str->appendf(" end: (%f, %f) ", fEnd.fX, fEnd.fY); |
608 | 610 |
609 this->INHERITED::toString(str); | 611 this->INHERITED::toString(str); |
610 | 612 |
611 str->append(")"); | 613 str->append(")"); |
612 } | 614 } |
613 #endif | 615 #endif |
OLD | NEW |