OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2006 The Android Open Source Project | 3 * Copyright 2006 The Android Open Source Project |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 | 9 |
10 #include "SkXfermode.h" | 10 #include "SkXfermode.h" |
(...skipping 1089 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1100 buffer.write32(fMode); | 1100 buffer.write32(fMode); |
1101 } | 1101 } |
1102 | 1102 |
1103 private: | 1103 private: |
1104 Mode fMode; | 1104 Mode fMode; |
1105 Coeff fSrcCoeff, fDstCoeff; | 1105 Coeff fSrcCoeff, fDstCoeff; |
1106 | 1106 |
1107 typedef SkProcXfermode INHERITED; | 1107 typedef SkProcXfermode INHERITED; |
1108 }; | 1108 }; |
1109 | 1109 |
| 1110 const char* SkXfermode::ModeName(Mode mode) { |
| 1111 SkASSERT((unsigned) mode <= (unsigned)kLastMode); |
| 1112 const char* gModeStrings[] = { |
| 1113 "Clear", "Src", "Dst", "SrcOver", "DstOver", "SrcIn", "DstIn", |
| 1114 "SrcOut", "DstOut", "SrcATop", "DstATop", "Xor", "Plus", |
| 1115 "Modulate", "Screen", "Overlay", "Darken", "Lighten", "ColorDodge", |
| 1116 "ColorBurn", "HardLight", "SoftLight", "Difference", "Exclusion", |
| 1117 "Multiply", "Hue", "Saturation", "Color", "Luminosity" |
| 1118 }; |
| 1119 return gModeStrings[mode]; |
| 1120 SK_COMPILE_ASSERT(SK_ARRAY_COUNT(gModeStrings) == kLastMode + 1, mode_count)
; |
| 1121 } |
| 1122 |
1110 #ifdef SK_DEVELOPER | 1123 #ifdef SK_DEVELOPER |
1111 void SkProcCoeffXfermode::toString(SkString* str) const { | 1124 void SkProcCoeffXfermode::toString(SkString* str) const { |
1112 str->append("SkProcCoeffXfermode: "); | 1125 str->append("SkProcCoeffXfermode: "); |
1113 | 1126 |
1114 const char *gModeStrings[kLastMode+1] = { | |
1115 "Clear", "Src", "Dst", "SrcOver", "DstOver", "SrcIn", "DstIn", | |
1116 "SrcOut", "DstOut", "SrcATop", "DstATop", "Xor", "Plus", | |
1117 "Modulate", "Screen", "Overlay", "Darken", "Lighten", "ColorDodge", | |
1118 "ColorBurn", "HardLight", "SoftLight", "Difference", "Exclusion" | |
1119 }; | |
1120 | |
1121 str->append("mode: "); | 1127 str->append("mode: "); |
1122 str->append(gModeStrings[fMode]); | 1128 str->append(ModeName(fMode)); |
1123 | 1129 |
1124 static const char* gCoeffStrings[kCoeffCount] = { | 1130 static const char* gCoeffStrings[kCoeffCount] = { |
1125 "Zero", "One", "SC", "ISC", "DC", "IDC", "SA", "ISA", "DA", "IDA" | 1131 "Zero", "One", "SC", "ISC", "DC", "IDC", "SA", "ISA", "DA", "IDA" |
1126 }; | 1132 }; |
1127 | 1133 |
1128 str->append(" src: "); | 1134 str->append(" src: "); |
1129 if (CANNOT_USE_COEFF == fSrcCoeff) { | 1135 if (CANNOT_USE_COEFF == fSrcCoeff) { |
1130 str->append("can't use"); | 1136 str->append("can't use"); |
1131 } else { | 1137 } else { |
1132 str->append(gCoeffStrings[fSrcCoeff]); | 1138 str->append(gCoeffStrings[fSrcCoeff]); |
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1612 return proc16; | 1618 return proc16; |
1613 } | 1619 } |
1614 | 1620 |
1615 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkXfermode) | 1621 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkXfermode) |
1616 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkProcCoeffXfermode) | 1622 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkProcCoeffXfermode) |
1617 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkClearXfermode) | 1623 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkClearXfermode) |
1618 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSrcXfermode) | 1624 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSrcXfermode) |
1619 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDstInXfermode) | 1625 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDstInXfermode) |
1620 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDstOutXfermode) | 1626 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDstOutXfermode) |
1621 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END | 1627 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END |
OLD | NEW |