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 "SkBlitRow.h" | 8 #include "SkBlitRow.h" |
9 #include "SkColorFilter.h" | 9 #include "SkColorFilter.h" |
10 #include "SkColorPriv.h" | 10 #include "SkColorPriv.h" |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 virtual GrFragmentProcessor* asFragmentProcessor(GrContext*) const SK_OVERRI
DE; | 77 virtual GrFragmentProcessor* asFragmentProcessor(GrContext*) const SK_OVERRI
DE; |
78 #endif | 78 #endif |
79 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkModeColorFilter) | 79 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkModeColorFilter) |
80 | 80 |
81 protected: | 81 protected: |
82 virtual void flatten(SkWriteBuffer& buffer) const SK_OVERRIDE { | 82 virtual void flatten(SkWriteBuffer& buffer) const SK_OVERRIDE { |
83 buffer.writeColor(fColor); | 83 buffer.writeColor(fColor); |
84 buffer.writeUInt(fMode); | 84 buffer.writeUInt(fMode); |
85 } | 85 } |
86 | 86 |
| 87 #ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING |
| 88 SkModeColorFilter(SkReadBuffer& buffer) { |
| 89 fColor = buffer.readColor(); |
| 90 fMode = (SkXfermode::Mode)buffer.readUInt(); |
| 91 if (buffer.isValid()) { |
| 92 this->updateCache(); |
| 93 buffer.validate(SkIsValidMode(fMode)); |
| 94 } |
| 95 } |
| 96 #endif |
| 97 |
87 private: | 98 private: |
88 SkColor fColor; | 99 SkColor fColor; |
89 SkXfermode::Mode fMode; | 100 SkXfermode::Mode fMode; |
90 // cache | 101 // cache |
91 SkPMColor fPMColor; | 102 SkPMColor fPMColor; |
92 SkXfermodeProc fProc; | 103 SkXfermodeProc fProc; |
93 SkXfermodeProc16 fProc16; | 104 SkXfermodeProc16 fProc16; |
94 | 105 |
95 void updateCache() { | 106 void updateCache() { |
96 fPMColor = SkPreMultiplyColor(fColor); | 107 fPMColor = SkPreMultiplyColor(fColor); |
(...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
539 matrix.postTranslate(SkIntToScalar(SkColorGetR(add)), | 550 matrix.postTranslate(SkIntToScalar(SkColorGetR(add)), |
540 SkIntToScalar(SkColorGetG(add)), | 551 SkIntToScalar(SkColorGetG(add)), |
541 SkIntToScalar(SkColorGetB(add)), | 552 SkIntToScalar(SkColorGetB(add)), |
542 0); | 553 0); |
543 return SkColorMatrixFilter::Create(matrix); | 554 return SkColorMatrixFilter::Create(matrix); |
544 } | 555 } |
545 | 556 |
546 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkColorFilter) | 557 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkColorFilter) |
547 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkModeColorFilter) | 558 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkModeColorFilter) |
548 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END | 559 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END |
OLD | NEW |