OLD | NEW |
1 #ifndef Sk4x_DEFINED | 1 #ifndef Sk4x_DEFINED |
2 #define Sk4x_DEFINED | 2 #define Sk4x_DEFINED |
3 | 3 |
4 #include "SkTypes.h" | 4 #include "SkTypes.h" |
5 | 5 |
6 #define SK4X_PREAMBLE 1 | 6 #define SK4X_PREAMBLE 1 |
7 #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2 | 7 #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2 |
8 #include "Sk4x_sse.h" | 8 #include "../opts/Sk4x_sse.h" |
9 #elif defined(SK_ARM_HAS_NEON) | 9 #elif defined(SK_ARM_HAS_NEON) |
10 #include "Sk4x_neon.h" | 10 #include "../opts/Sk4x_neon.h" |
11 #else | 11 #else |
12 #include "Sk4x_portable.h" | 12 #include "../opts/Sk4x_none.h" |
13 #endif | 13 #endif |
14 #undef SK4X_PREAMBLE | 14 #undef SK4X_PREAMBLE |
15 | 15 |
16 template <typename T> class Sk4x; | 16 template <typename T> class Sk4x; |
17 typedef Sk4x<float> Sk4f; | 17 typedef Sk4x<float> Sk4f; |
18 typedef Sk4x<int32_t> Sk4i; | 18 typedef Sk4x<int32_t> Sk4i; |
19 | 19 |
20 // Some Sk4x methods are implemented only for Sk4f or Sk4i. | 20 // Some Sk4x methods are implemented only for Sk4f or Sk4i. |
21 // They might be unavailable, really slow, or just a bad idea. | 21 // They might be unavailable, really slow, or just a bad idea. |
22 // Talk to mtklein if you find yourself unable to link and | 22 // Talk to mtklein if you find yourself unable to link and |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 // TODO: these are particularly efficient in SSE. Useful? Also efficient i
n NEON? | 87 // TODO: these are particularly efficient in SSE. Useful? Also efficient i
n NEON? |
88 // static Sk4x XAYB(const Sk4x& xyzw, const Sk4x& abcd); | 88 // static Sk4x XAYB(const Sk4x& xyzw, const Sk4x& abcd); |
89 // static Sk4x ZCWD(const Sk4x& xyzw, const Sk4x& abcd); | 89 // static Sk4x ZCWD(const Sk4x& xyzw, const Sk4x& abcd); |
90 | 90 |
91 private: | 91 private: |
92 // It's handy to have Sk4f and Sk4i be mutual friends. | 92 // It's handy to have Sk4f and Sk4i be mutual friends. |
93 template <typename S> friend class Sk4x; | 93 template <typename S> friend class Sk4x; |
94 | 94 |
95 #define SK4X_PRIVATE 1 | 95 #define SK4X_PRIVATE 1 |
96 #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2 | 96 #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2 |
97 #include "Sk4x_sse.h" | 97 #include "../opts/Sk4x_sse.h" |
98 #elif defined(SK_ARM_HAS_NEON) | 98 #elif defined(SK_ARM_HAS_NEON) |
99 #include "Sk4x_neon.h" | 99 #include "../opts/Sk4x_neon.h" |
100 #else | 100 #else |
101 #include "Sk4x_portable.h" | 101 #include "../opts/Sk4x_none.h" |
102 #endif | 102 #endif |
103 #undef SK4X_PRIVATE | 103 #undef SK4X_PRIVATE |
104 }; | 104 }; |
105 | 105 |
106 #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2 | 106 #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2 |
107 #include "Sk4x_sse.h" | 107 #include "../opts/Sk4x_sse.h" |
108 #elif defined(SK_ARM_HAS_NEON) | 108 #elif defined(SK_ARM_HAS_NEON) |
109 #include "Sk4x_neon.h" | 109 #include "../opts/Sk4x_neon.h" |
110 #else | 110 #else |
111 #include "Sk4x_portable.h" | 111 #include "../opts/Sk4x_none.h" |
112 #endif | 112 #endif |
113 | 113 |
114 #endif//Sk4x_DEFINED | 114 #endif//Sk4x_DEFINED |
OLD | NEW |