OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright 2015 Google Inc. | |
3 * | |
4 * Use of this source code is governed by a BSD-style license that can be | |
5 * found in the LICENSE file. | |
6 */ | |
7 | |
8 #ifndef SkXfermode_opts_arm_neon_DEFINED | |
9 #define SkXfermode_opts_arm_neon_DEFINED | |
10 | |
11 #include "SkXfermode_proccoeff.h" | |
12 | |
13 class SkNEONProcCoeffXfermode : public SkProcCoeffXfermode { | |
14 public: | |
15 SkNEONProcCoeffXfermode(const ProcCoeff& rec, SkXfermode::Mode mode, | |
16 void* procSIMD) | |
17 : INHERITED(rec, mode), fProcSIMD(procSIMD) {} | |
18 | |
19 void xfer32(SkPMColor dst[], const SkPMColor src[], int count, | |
20 const SkAlpha aa[]) const override; | |
21 void xfer16(uint16_t* SK_RESTRICT dst, const SkPMColor* SK_RESTRICT src, | |
22 int count, const SkAlpha* SK_RESTRICT aa) const override; | |
23 | |
24 SK_TO_STRING_OVERRIDE() | |
25 | |
26 private: | |
27 // void* is used to avoid pulling arm_neon.h in the core and having to build | |
28 // it with -mfpu=neon. | |
29 void* fProcSIMD; | |
30 typedef SkProcCoeffXfermode INHERITED; | |
31 }; | |
32 | |
33 extern SkPMColor srcatop_modeproc_neon(SkPMColor src, SkPMColor dst); | |
34 extern SkPMColor dstatop_modeproc_neon(SkPMColor src, SkPMColor dst); | |
35 extern SkPMColor xor_modeproc_neon(SkPMColor src, SkPMColor dst); | |
36 extern SkPMColor plus_modeproc_neon(SkPMColor src, SkPMColor dst); | |
37 extern SkPMColor modulate_modeproc_neon(SkPMColor src, SkPMColor dst); | |
38 | |
39 #endif //#ifdef SkXfermode_opts_arm_neon_DEFINED | |
OLD | NEW |