Index: src/opts/SkXfermode_opts_arm_neon.cpp |
diff --git a/src/opts/SkXfermode_opts_arm_neon.cpp b/src/opts/SkXfermode_opts_arm_neon.cpp |
index 12c2f57d4fb72cf68274151fe7ba10bcbe2c6d44..1759429c574364b2fb0b78a933ff7799f026ea1a 100644 |
--- a/src/opts/SkXfermode_opts_arm_neon.cpp |
+++ b/src/opts/SkXfermode_opts_arm_neon.cpp |
@@ -1,3 +1,5 @@ |
+// Copyright 2013 unknown |
+ |
#include "SkXfermode.h" |
#include "SkXfermode_proccoeff.h" |
#include "SkColorPriv.h" |
@@ -5,6 +7,7 @@ |
#include <arm_neon.h> |
#include "SkColor_opts_neon.h" |
#include "SkXfermode_opts_arm_neon.h" |
+#include "Sk4pxXfermode.h" |
#define SkAlphaMulAlpha(a, b) SkMulDiv255Round(a, b) |
@@ -1010,11 +1013,11 @@ SK_COMPILE_ASSERT( |
SkProcCoeffXfermode* SkPlatformXfermodeFactory_impl_neon(const ProcCoeff& rec, |
SkXfermode::Mode mode) { |
- |
- void* procSIMD = reinterpret_cast<void*>(gNEONXfermodeProcs[mode]); |
- |
- if (procSIMD != NULL) { |
- return SkNEW_ARGS(SkNEONProcCoeffXfermode, (rec, mode, procSIMD)); |
+ if (auto xfermode = SkCreate4pxXfermode(rec, mode)) { |
+ return xfermode; |
+ } |
+ if (auto proc = gNEONXfermodeProcs[mode]) { |
+ return SkNEW_ARGS(SkNEONProcCoeffXfermode, (rec, mode, (void*)proc)); |
} |
return NULL; |
} |