| OLD | NEW |
| 1 #include "SkXfermode.h" | 1 #include "SkXfermode.h" |
| 2 #include "SkXfermode_proccoeff.h" | 2 #include "SkXfermode_proccoeff.h" |
| 3 #include "SkColorPriv.h" | 3 #include "SkColorPriv.h" |
| 4 | 4 |
| 5 #include <arm_neon.h> | 5 #include <arm_neon.h> |
| 6 #include "SkColor_opts_neon.h" | 6 #include "SkColor_opts_neon.h" |
| 7 #include "SkXfermode_opts_arm_neon.h" | 7 #include "SkXfermode_opts_arm_neon.h" |
| 8 | 8 |
| 9 #define SkAlphaMulAlpha(a, b) SkMulDiv255Round(a, b) | 9 #define SkAlphaMulAlpha(a, b) SkMulDiv255Round(a, b) |
| 10 | 10 |
| (...skipping 672 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 683 | 683 |
| 684 return ret; | 684 return ret; |
| 685 } | 685 } |
| 686 | 686 |
| 687 //////////////////////////////////////////////////////////////////////////////// | 687 //////////////////////////////////////////////////////////////////////////////// |
| 688 | 688 |
| 689 typedef uint8x8x4_t (*SkXfermodeProcSIMD)(uint8x8x4_t src, uint8x8x4_t dst); | 689 typedef uint8x8x4_t (*SkXfermodeProcSIMD)(uint8x8x4_t src, uint8x8x4_t dst); |
| 690 | 690 |
| 691 extern SkXfermodeProcSIMD gNEONXfermodeProcs[]; | 691 extern SkXfermodeProcSIMD gNEONXfermodeProcs[]; |
| 692 | 692 |
| 693 SkNEONProcCoeffXfermode::SkNEONProcCoeffXfermode(SkFlattenableReadBuffer& buffer
) | 693 SkNEONProcCoeffXfermode::SkNEONProcCoeffXfermode(SkReadBuffer& buffer) |
| 694 : INHERITED(buffer) { | 694 : INHERITED(buffer) { |
| 695 fProcSIMD = reinterpret_cast<void*>(gNEONXfermodeProcs[this->getMode()]); | 695 fProcSIMD = reinterpret_cast<void*>(gNEONXfermodeProcs[this->getMode()]); |
| 696 } | 696 } |
| 697 | 697 |
| 698 void SkNEONProcCoeffXfermode::xfer32(SkPMColor dst[], const SkPMColor src[], | 698 void SkNEONProcCoeffXfermode::xfer32(SkPMColor dst[], const SkPMColor src[], |
| 699 int count, const SkAlpha aa[]) const { | 699 int count, const SkAlpha aa[]) const { |
| 700 SkASSERT(dst && src && count >= 0); | 700 SkASSERT(dst && src && count >= 0); |
| 701 | 701 |
| 702 SkXfermodeProc proc = this->getProc(); | 702 SkXfermodeProc proc = this->getProc(); |
| 703 SkXfermodeProcSIMD procSIMD = reinterpret_cast<SkXfermodeProcSIMD>(fProcSIMD
); | 703 SkXfermodeProcSIMD procSIMD = reinterpret_cast<SkXfermodeProcSIMD>(fProcSIMD
); |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 928 | 928 |
| 929 if (procSIMD != NULL) { | 929 if (procSIMD != NULL) { |
| 930 return SkNEW_ARGS(SkNEONProcCoeffXfermode, (rec, mode, procSIMD)); | 930 return SkNEW_ARGS(SkNEONProcCoeffXfermode, (rec, mode, procSIMD)); |
| 931 } | 931 } |
| 932 return NULL; | 932 return NULL; |
| 933 } | 933 } |
| 934 | 934 |
| 935 SkXfermodeProc SkPlatformXfermodeProcFactory_impl_neon(SkXfermode::Mode mode) { | 935 SkXfermodeProc SkPlatformXfermodeProcFactory_impl_neon(SkXfermode::Mode mode) { |
| 936 return gNEONXfermodeProcs1[mode]; | 936 return gNEONXfermodeProcs1[mode]; |
| 937 } | 937 } |
| OLD | NEW |