Chromium Code Reviews| Index: src/core/SkXfermode4f.cpp |
| diff --git a/src/core/SkXfermode4f.cpp b/src/core/SkXfermode4f.cpp |
| index 1bf66a2b6998afed75158e842f3ac6b7445783a3..a892ee4c3e25e5e423dc60fffd236e995edbdaef 100644 |
| --- a/src/core/SkXfermode4f.cpp |
| +++ b/src/core/SkXfermode4f.cpp |
| @@ -39,10 +39,6 @@ template <DstType D> uint32_t store_dst(const Sk4f& x4) { |
| return (D == kSRGB_Dst) ? Sk4f_toS32(x4) : Sk4f_toL32(x4); |
| } |
| -static uint32_t linear_unit_to_srgb_32(const Sk4f& l4) { |
| - return Sk4f_toL32(l4); |
| -} |
| - |
| static Sk4f linear_unit_to_srgb_255f(const Sk4f& l4) { |
| return linear_to_srgb(l4) * Sk4f(255) + Sk4f(0.5f); |
| } |
| @@ -280,8 +276,8 @@ static void srcover_linear_dst_1(const SkXfermode::PM4fState& state, uint32_t ds |
| Sk4f d4 = Sk4f_fromL32(dst[i]); |
| Sk4f r4; |
| if (a != 0xFF) { |
| - s4 = scale_by_coverage(s4, a); |
| - r4 = s4 + d4 * Sk4f(1 - get_alpha(s4)); |
| + Sk4f s4_aa = scale_by_coverage(s4, a); |
|
mtklein
2016/02/03 01:32:55
Ah! Let's make s4 and dst_scale const?
I guarant
reed1
2016/02/03 03:19:49
ok
|
| + r4 = s4_aa + d4 * Sk4f(1 - get_alpha(s4_aa)); |
| } else { |
| r4 = s4 + d4 * dst_scale; |
| } |
| @@ -323,12 +319,12 @@ static void srcover_srgb_dst_1(const SkXfermode::PM4fState& state, uint32_t dst[ |
| Sk4f d4 = srgb_4b_to_linear_unit(dst[i]); |
| Sk4f r4; |
| if (a != 0xFF) { |
| - s4 = scale_by_coverage(s4, a); |
| - r4 = s4 + d4 * Sk4f(1 - get_alpha(s4)); |
| + Sk4f s4_aa = scale_by_coverage(s4, a); |
| + r4 = s4_aa + d4 * Sk4f(1 - get_alpha(s4_aa)); |
| } else { |
| r4 = s4 + d4 * dst_scale; |
| } |
| - dst[i] = linear_unit_to_srgb_32(r4); |
| + dst[i] = to_4b(linear_unit_to_srgb_255f(r4)); |
| } |
| } else { |
| while (count >= 4) { |