OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2006 The Android Open Source Project | 3 * Copyright 2006 The Android Open Source Project |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 | 9 |
10 #include "SkBlitRow.h" | 10 #include "SkBlitRow.h" |
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
385 unsigned maskRB = mask.fRowBytes - width; | 385 unsigned maskRB = mask.fRowBytes - width; |
386 uint32_t expanded32 = fExpandedRaw16; | 386 uint32_t expanded32 = fExpandedRaw16; |
387 | 387 |
388 #ifdef SK_USE_NEON | 388 #ifdef SK_USE_NEON |
389 #define UNROLL 8 | 389 #define UNROLL 8 |
390 do { | 390 do { |
391 int w = width; | 391 int w = width; |
392 if (w >= UNROLL) { | 392 if (w >= UNROLL) { |
393 uint32x4_t color; /* can use same one */ | 393 uint32x4_t color; /* can use same one */ |
394 uint32x4_t dev_lo, dev_hi; | 394 uint32x4_t dev_lo, dev_hi; |
395 uint32x4_t t1, t2; | 395 uint32x4_t t1; |
396 uint32x4_t wn1, wn2; | 396 uint32x4_t wn1, wn2; |
397 uint16x4_t odev_lo, odev_hi; | 397 uint16x4_t odev_lo, odev_hi; |
398 uint16x4_t alpha_lo, alpha_hi; | 398 uint16x4_t alpha_lo, alpha_hi; |
399 uint16x8_t alpha_full; | 399 uint16x8_t alpha_full; |
400 | 400 |
401 color = vdupq_n_u32(expanded32); | 401 color = vdupq_n_u32(expanded32); |
402 | 402 |
403 do { | 403 do { |
404 /* alpha is 8x8, widen and split to get pair of 16x4's */ | 404 /* alpha is 8x8, widen and split to get pair of 16x4's */ |
405 alpha_full = vmovl_u8(vld1_u8(alpha)); | 405 alpha_full = vmovl_u8(vld1_u8(alpha)); |
(...skipping 650 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1056 SK_PLACEMENT_NEW_ARGS(blitter, SkRGB16_Opaque_Blitter, storage, | 1056 SK_PLACEMENT_NEW_ARGS(blitter, SkRGB16_Opaque_Blitter, storage, |
1057 storageSize, (device, paint)); | 1057 storageSize, (device, paint)); |
1058 } else { | 1058 } else { |
1059 SK_PLACEMENT_NEW_ARGS(blitter, SkRGB16_Blitter, storage, | 1059 SK_PLACEMENT_NEW_ARGS(blitter, SkRGB16_Blitter, storage, |
1060 storageSize, (device, paint)); | 1060 storageSize, (device, paint)); |
1061 } | 1061 } |
1062 } | 1062 } |
1063 | 1063 |
1064 return blitter; | 1064 return blitter; |
1065 } | 1065 } |
OLD | NEW |