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 725 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
736 | 736 |
737 return ret; | 737 return ret; |
738 } | 738 } |
739 | 739 |
740 //////////////////////////////////////////////////////////////////////////////// | 740 //////////////////////////////////////////////////////////////////////////////// |
741 | 741 |
742 typedef uint8x8x4_t (*SkXfermodeProcSIMD)(uint8x8x4_t src, uint8x8x4_t dst); | 742 typedef uint8x8x4_t (*SkXfermodeProcSIMD)(uint8x8x4_t src, uint8x8x4_t dst); |
743 | 743 |
744 extern SkXfermodeProcSIMD gNEONXfermodeProcs[]; | 744 extern SkXfermodeProcSIMD gNEONXfermodeProcs[]; |
745 | 745 |
746 SkNEONProcCoeffXfermode::SkNEONProcCoeffXfermode(SkReadBuffer& buffer) | 746 #ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING |
747 : INHERITED(buffer) { | 747 SkNEONProcCoeffXfermode::SkNEONProcCoeffXfermode(SkReadBuffer& buffer) : INHERIT
ED(buffer) { |
748 fProcSIMD = reinterpret_cast<void*>(gNEONXfermodeProcs[this->getMode()]); | 748 fProcSIMD = reinterpret_cast<void*>(gNEONXfermodeProcs[this->getMode()]); |
749 } | 749 } |
| 750 #endif |
750 | 751 |
751 void SkNEONProcCoeffXfermode::xfer32(SkPMColor* SK_RESTRICT dst, | 752 void SkNEONProcCoeffXfermode::xfer32(SkPMColor* SK_RESTRICT dst, |
752 const SkPMColor* SK_RESTRICT src, int count
, | 753 const SkPMColor* SK_RESTRICT src, int count
, |
753 const SkAlpha* SK_RESTRICT aa) const { | 754 const SkAlpha* SK_RESTRICT aa) const { |
754 SkASSERT(dst && src && count >= 0); | 755 SkASSERT(dst && src && count >= 0); |
755 | 756 |
756 SkXfermodeProc proc = this->getProc(); | 757 SkXfermodeProc proc = this->getProc(); |
757 SkXfermodeProcSIMD procSIMD = reinterpret_cast<SkXfermodeProcSIMD>(fProcSIMD
); | 758 SkXfermodeProcSIMD procSIMD = reinterpret_cast<SkXfermodeProcSIMD>(fProcSIMD
); |
758 SkASSERT(procSIMD != NULL); | 759 SkASSERT(procSIMD != NULL); |
759 | 760 |
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1019 | 1020 |
1020 if (procSIMD != NULL) { | 1021 if (procSIMD != NULL) { |
1021 return SkNEW_ARGS(SkNEONProcCoeffXfermode, (rec, mode, procSIMD)); | 1022 return SkNEW_ARGS(SkNEONProcCoeffXfermode, (rec, mode, procSIMD)); |
1022 } | 1023 } |
1023 return NULL; | 1024 return NULL; |
1024 } | 1025 } |
1025 | 1026 |
1026 SkXfermodeProc SkPlatformXfermodeProcFactory_impl_neon(SkXfermode::Mode mode) { | 1027 SkXfermodeProc SkPlatformXfermodeProcFactory_impl_neon(SkXfermode::Mode mode) { |
1027 return gNEONXfermodeProcs1[mode]; | 1028 return gNEONXfermodeProcs1[mode]; |
1028 } | 1029 } |
OLD | NEW |