Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: src/core/SkModeColorFilter.cpp

Issue 1827433002: Reland of [2] of "switch colorfilters to sk_sp (patchset #11 id:200001 of https://codereview.chromium.o… (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/core/SkModeColorFilter.h ('k') | src/core/SkPaint.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 } 73 }
74 74
75 void SkModeColorFilter::updateCache() { 75 void SkModeColorFilter::updateCache() {
76 fPMColor = SkPreMultiplyColor(fColor); 76 fPMColor = SkPreMultiplyColor(fColor);
77 fProc = SkXfermode::GetProc(fMode); 77 fProc = SkXfermode::GetProc(fMode);
78 } 78 }
79 79
80 SkFlattenable* SkModeColorFilter::CreateProc(SkReadBuffer& buffer) { 80 SkFlattenable* SkModeColorFilter::CreateProc(SkReadBuffer& buffer) {
81 SkColor color = buffer.readColor(); 81 SkColor color = buffer.readColor();
82 SkXfermode::Mode mode = (SkXfermode::Mode)buffer.readUInt(); 82 SkXfermode::Mode mode = (SkXfermode::Mode)buffer.readUInt();
83 return SkColorFilter::CreateModeFilter(color, mode); 83 return SkColorFilter::MakeModeFilter(color, mode).release();
84 } 84 }
85 85
86 /////////////////////////////////////////////////////////////////////////////// 86 ///////////////////////////////////////////////////////////////////////////////
87 #if SK_SUPPORT_GPU 87 #if SK_SUPPORT_GPU
88 #include "GrBlend.h" 88 #include "GrBlend.h"
89 #include "GrInvariantOutput.h" 89 #include "GrInvariantOutput.h"
90 #include "effects/GrXfermodeFragmentProcessor.h" 90 #include "effects/GrXfermodeFragmentProcessor.h"
91 #include "effects/GrConstColorProcessor.h" 91 #include "effects/GrConstColorProcessor.h"
92 #include "SkGr.h" 92 #include "SkGr.h"
93 93
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 void filterSpan(const SkPMColor shader[], int count, SkPMColor result[]) con st override { 141 void filterSpan(const SkPMColor shader[], int count, SkPMColor result[]) con st override {
142 SkBlitRow::Color32(result, shader, count, this->getPMColor()); 142 SkBlitRow::Color32(result, shader, count, this->getPMColor());
143 } 143 }
144 144
145 private: 145 private:
146 typedef SkModeColorFilter INHERITED; 146 typedef SkModeColorFilter INHERITED;
147 }; 147 };
148 148
149 /////////////////////////////////////////////////////////////////////////////// 149 ///////////////////////////////////////////////////////////////////////////////
150 150
151 SkColorFilter* SkColorFilter::CreateModeFilter(SkColor color, SkXfermode::Mode m ode) { 151 sk_sp<SkColorFilter> SkColorFilter::MakeModeFilter(SkColor color, SkXfermode::Mo de mode) {
152 if (!SkIsValidMode(mode)) { 152 if (!SkIsValidMode(mode)) {
153 return nullptr; 153 return nullptr;
154 } 154 }
155 155
156 unsigned alpha = SkColorGetA(color); 156 unsigned alpha = SkColorGetA(color);
157 157
158 // first collaps some modes if possible 158 // first collaps some modes if possible
159 159
160 if (SkXfermode::kClear_Mode == mode) { 160 if (SkXfermode::kClear_Mode == mode) {
161 color = 0; 161 color = 0;
(...skipping 14 matching lines...) Expand all
176 SkXfermode::kDstOut_Mode == mode || 176 SkXfermode::kDstOut_Mode == mode ||
177 SkXfermode::kSrcATop_Mode == mode || 177 SkXfermode::kSrcATop_Mode == mode ||
178 SkXfermode::kXor_Mode == mode || 178 SkXfermode::kXor_Mode == mode ||
179 SkXfermode::kDarken_Mode == mode)) || 179 SkXfermode::kDarken_Mode == mode)) ||
180 (0xFF == alpha && SkXfermode::kDstIn_Mode == mode)) { 180 (0xFF == alpha && SkXfermode::kDstIn_Mode == mode)) {
181 return nullptr; 181 return nullptr;
182 } 182 }
183 183
184 switch (mode) { 184 switch (mode) {
185 case SkXfermode::kSrc_Mode: 185 case SkXfermode::kSrc_Mode:
186 return new Src_SkModeColorFilter(color); 186 return sk_make_sp<Src_SkModeColorFilter>(color);
187 case SkXfermode::kSrcOver_Mode: 187 case SkXfermode::kSrcOver_Mode:
188 return new SrcOver_SkModeColorFilter(color); 188 return sk_make_sp<SrcOver_SkModeColorFilter>(color);
189 default: 189 default:
190 return SkModeColorFilter::Create(color, mode); 190 return SkModeColorFilter::Make(color, mode);
191 } 191 }
192 } 192 }
OLDNEW
« no previous file with comments | « src/core/SkModeColorFilter.h ('k') | src/core/SkPaint.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698