1 /*
2  * Copyright 2014 ARM Ltd.
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 #include "SkMorphology_opts.h"
9 #include "SkMorphology_opts_neon.h"
10 #include "SkUtilsArm.h"
11 
SkMorphologyGetPlatformProc(SkMorphologyProcType type)12 SkMorphologyImageFilter::Proc SkMorphologyGetPlatformProc(SkMorphologyProcType type) {
13 #if SK_ARM_NEON_IS_NONE
14     return NULL;
15 #else
16 #if SK_ARM_NEON_IS_DYNAMIC
17     if (!sk_cpu_arm_has_neon()) {
18         return NULL;
19     }
20 #endif
21     switch (type) {
22         case kDilateX_SkMorphologyProcType:
23             return SkDilateX_neon;
24         case kDilateY_SkMorphologyProcType:
25             return SkDilateY_neon;
26         case kErodeX_SkMorphologyProcType:
27             return SkErodeX_neon;
28         case kErodeY_SkMorphologyProcType:
29             return SkErodeY_neon;
30         default:
31             return NULL;
32     }
33 #endif
34 }
35