OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef SkColorCubeFilter_opts_DEFINED | 5 #ifndef SkColorCubeFilter_opts_DEFINED |
6 #define SkColorCubeFilter_opts_DEFINED | 6 #define SkColorCubeFilter_opts_DEFINED |
7 | 7 |
8 #include "SkColor.h" | 8 #include "SkColor.h" |
9 #include "SkNx.h" | 9 #include "SkNx.h" |
10 #include "SkUnPreMultiply.h" | 10 #include "SkUnPreMultiply.h" |
11 | 11 |
12 namespace SK_OPTS_NS { | 12 namespace SK_OPTS_NS { |
13 | 13 |
14 void color_cube_filter_span(const SkPMColor src[], | 14 static void color_cube_filter_span(const SkPMColor src[], |
15 int count, | 15 int count, |
16 SkPMColor dst[], | 16 SkPMColor dst[], |
17 const int* colorToIndex[2], | 17 const int* colorToIndex[2], |
18 const SkScalar* colorToFactors[2], | 18 const SkScalar* colorToFactors[2], |
19 int dim, | 19 int dim, |
20 const SkColor* colorCube) { | 20 const SkColor* colorCube) { |
21 uint8_t r, g, b, a; | 21 uint8_t r, g, b, a; |
22 | 22 |
23 for (int i = 0; i < count; ++i) { | 23 for (int i = 0; i < count; ++i) { |
24 const SkPMColor input = src[i]; | 24 const SkPMColor input = src[i]; |
25 a = input >> SK_A32_SHIFT; | 25 a = input >> SK_A32_SHIFT; |
26 | 26 |
27 if (a != 255) { | 27 if (a != 255) { |
28 const SkColor source = SkUnPreMultiply::PMColorToColor(input); | 28 const SkColor source = SkUnPreMultiply::PMColorToColor(input); |
29 r = SkColorGetR(source); | 29 r = SkColorGetR(source); |
30 g = SkColorGetG(source); | 30 g = SkColorGetG(source); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 #endif | 75 #endif |
76 uint8_t* dstBytes = (uint8_t*)(dst+i); | 76 uint8_t* dstBytes = (uint8_t*)(dst+i); |
77 SkNx_cast<uint8_t>(color).store(dstBytes); | 77 SkNx_cast<uint8_t>(color).store(dstBytes); |
78 dstBytes[SK_A32_SHIFT/8] = a; | 78 dstBytes[SK_A32_SHIFT/8] = a; |
79 } | 79 } |
80 } | 80 } |
81 | 81 |
82 } // namespace SK_OPTS NS | 82 } // namespace SK_OPTS NS |
83 | 83 |
84 #endif // SkColorCubeFilter_opts_DEFINED | 84 #endif // SkColorCubeFilter_opts_DEFINED |
OLD | NEW |