OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #ifndef SkOpts_DEFINED | 8 #ifndef SkOpts_DEFINED |
9 #define SkOpts_DEFINED | 9 #define SkOpts_DEFINED |
10 | 10 |
11 #include "SkTypes.h" | 11 #include "SkTypes.h" |
| 12 #include "SkXfermode.h" |
| 13 |
| 14 struct ProcCoeff; |
12 | 15 |
13 namespace SkOpts { | 16 namespace SkOpts { |
14 // Call to replace pointers to portable functions with pointers to CPU-speci
fic functions. | 17 // Call to replace pointers to portable functions with pointers to CPU-speci
fic functions. |
15 // Thread-safe and idempotent. | 18 // Thread-safe and idempotent. |
16 // Called by SkGraphics::Init(), and automatically #if SK_ALLOW_STATIC_GLOBA
L_INITIALIZERS. | 19 // Called by SkGraphics::Init(), and automatically #if SK_ALLOW_STATIC_GLOBA
L_INITIALIZERS. |
17 void Init(); | 20 void Init(); |
18 | 21 |
19 // Declare function pointers here... | 22 // Declare function pointers here... |
20 | 23 |
21 // Returns a fast approximation of 1.0f/sqrtf(x). | 24 // Returns a fast approximation of 1.0f/sqrtf(x). |
22 extern float (*rsqrt)(float); | 25 extern float (*rsqrt)(float); |
23 | 26 |
24 // See SkUtils.h | 27 // See SkUtils.h |
25 extern void (*memset16)(uint16_t[], uint16_t, int); | 28 extern void (*memset16)(uint16_t[], uint16_t, int); |
26 extern void (*memset32)(uint32_t[], uint32_t, int); | 29 extern void (*memset32)(uint32_t[], uint32_t, int); |
| 30 |
| 31 // May return nullptr if we haven't specialized the given Mode. |
| 32 extern SkXfermode* (*create_xfermode)(const ProcCoeff&, SkXfermode::Mode); |
27 } | 33 } |
28 | 34 |
29 #endif//SkOpts_DEFINED | 35 #endif//SkOpts_DEFINED |
OLD | NEW |