OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2006 The Android Open Source Project | 2 * Copyright 2006 The Android Open Source Project |
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 #include "SkXfermode.h" | 8 #include "SkXfermode.h" |
9 #include "SkXfermode_proccoeff.h" | 9 #include "SkXfermode_proccoeff.h" |
10 #include "SkColorPriv.h" | 10 #include "SkColorPriv.h" |
(...skipping 931 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
942 for (int i = 0; i < 4; ++i) { | 942 for (int i = 0; i < 4; ++i) { |
943 SkASSERT(r.fVec[i] >= min && r.fVec[i] <= max); | 943 SkASSERT(r.fVec[i] >= min && r.fVec[i] <= max); |
944 } | 944 } |
945 #endif | 945 #endif |
946 } | 946 } |
947 | 947 |
948 template <Sk4f (blend)(const Sk4f&, const Sk4f&)> SkPM4f proc_4f(const SkPM4f& s
, const SkPM4f& d) { | 948 template <Sk4f (blend)(const Sk4f&, const Sk4f&)> SkPM4f proc_4f(const SkPM4f& s
, const SkPM4f& d) { |
949 assert_unit(s); | 949 assert_unit(s); |
950 assert_unit(d); | 950 assert_unit(d); |
951 SkPM4f r = as_pm4f(blend(as_4f(s), as_4f(d))); | 951 SkPM4f r = as_pm4f(blend(as_4f(s), as_4f(d))); |
952 assert_unit(r); | 952 // Turn this assert off for now because srgb conversions may end up in rgb >
a |
| 953 // assert_unit(r); |
953 return r; | 954 return r; |
954 } | 955 } |
955 | 956 |
956 const ProcCoeff gProcCoeffs[] = { | 957 const ProcCoeff gProcCoeffs[] = { |
957 { clear_modeproc, proc_4f<clear_4f>, SkXfermode::kZero_Coeff,
SkXfermode::kZero_Coeff }, | 958 { clear_modeproc, proc_4f<clear_4f>, SkXfermode::kZero_Coeff,
SkXfermode::kZero_Coeff }, |
958 { src_modeproc, proc_4f<src_4f>, SkXfermode::kOne_Coeff,
SkXfermode::kZero_Coeff }, | 959 { src_modeproc, proc_4f<src_4f>, SkXfermode::kOne_Coeff,
SkXfermode::kZero_Coeff }, |
959 { dst_modeproc, proc_4f<dst_4f>, SkXfermode::kZero_Coeff,
SkXfermode::kOne_Coeff }, | 960 { dst_modeproc, proc_4f<dst_4f>, SkXfermode::kZero_Coeff,
SkXfermode::kOne_Coeff }, |
960 { srcover_modeproc, proc_4f<srcover_4f>, SkXfermode::kOne_Coeff,
SkXfermode::kISA_Coeff }, | 961 { srcover_modeproc, proc_4f<srcover_4f>, SkXfermode::kOne_Coeff,
SkXfermode::kISA_Coeff }, |
961 { dstover_modeproc, proc_4f<dstover_4f>, SkXfermode::kIDA_Coeff,
SkXfermode::kOne_Coeff }, | 962 { dstover_modeproc, proc_4f<dstover_4f>, SkXfermode::kIDA_Coeff,
SkXfermode::kOne_Coeff }, |
962 { srcin_modeproc, proc_4f<srcin_4f>, SkXfermode::kDA_Coeff,
SkXfermode::kZero_Coeff }, | 963 { srcin_modeproc, proc_4f<srcin_4f>, SkXfermode::kDA_Coeff,
SkXfermode::kZero_Coeff }, |
(...skipping 559 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1522 case SkBlendMode::kHue: | 1523 case SkBlendMode::kHue: |
1523 case SkBlendMode::kSaturation: | 1524 case SkBlendMode::kSaturation: |
1524 case SkBlendMode::kColor: | 1525 case SkBlendMode::kColor: |
1525 case SkBlendMode::kLuminosity: return false; // TODO | 1526 case SkBlendMode::kLuminosity: return false; // TODO |
1526 } | 1527 } |
1527 if (p) { | 1528 if (p) { |
1528 p->append(stage); | 1529 p->append(stage); |
1529 } | 1530 } |
1530 return true; | 1531 return true; |
1531 } | 1532 } |
OLD | NEW |