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

Side by Side Diff: src/effects/SkAlphaThresholdFilter.cpp

Issue 1847053004: Update SkAlphaThresholdFilter to sk_sp (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Fix sample app Created 4 years, 8 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 | « samplecode/SampleFilterFuzz.cpp ('k') | tests/FlattenableFactoryToName.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 2013 Google Inc. 2 * Copyright 2013 Google Inc.
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 "SkAlphaThresholdFilter.h" 8 #include "SkAlphaThresholdFilter.h"
9
9 #include "SkBitmap.h" 10 #include "SkBitmap.h"
10 #include "SkDevice.h" 11 #include "SkDevice.h"
11 #include "SkReadBuffer.h" 12 #include "SkReadBuffer.h"
12 #include "SkWriteBuffer.h" 13 #include "SkWriteBuffer.h"
13 #include "SkRegion.h" 14 #include "SkRegion.h"
14 #if SK_SUPPORT_GPU 15 #if SK_SUPPORT_GPU
15 #include "GrDrawContext.h" 16 #include "GrDrawContext.h"
16 #endif 17 #endif
17 18
18 class SK_API SkAlphaThresholdFilterImpl : public SkImageFilter { 19 class SK_API SkAlphaThresholdFilterImpl : public SkImageFilter {
19 public: 20 public:
20 SkAlphaThresholdFilterImpl(const SkRegion& region, SkScalar innerThreshold, 21 SkAlphaThresholdFilterImpl(const SkRegion& region, SkScalar innerThreshold,
21 SkScalar outerThreshold, SkImageFilter* input); 22 SkScalar outerThreshold, sk_sp<SkImageFilter> inp ut);
22 23
23 SK_TO_STRING_OVERRIDE() 24 SK_TO_STRING_OVERRIDE()
24 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkAlphaThresholdFilterIm pl) 25 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkAlphaThresholdFilterIm pl)
25 friend void SkAlphaThresholdFilter::InitializeFlattenables(); 26 friend void SkAlphaThresholdFilter::InitializeFlattenables();
26 27
27 protected: 28 protected:
28 void flatten(SkWriteBuffer&) const override; 29 void flatten(SkWriteBuffer&) const override;
29 30
30 bool onFilterImageDeprecated(Proxy*, const SkBitmap& src, const Context&, 31 bool onFilterImageDeprecated(Proxy*, const SkBitmap& src, const Context&,
31 SkBitmap* result, SkIPoint* offset) const overr ide; 32 SkBitmap* result, SkIPoint* offset) const overr ide;
(...skipping 10 matching lines...) Expand all
42 }; 43 };
43 44
44 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkAlphaThresholdFilter) 45 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkAlphaThresholdFilter)
45 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkAlphaThresholdFilterImpl) 46 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkAlphaThresholdFilterImpl)
46 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END 47 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END
47 48
48 static SkScalar pin_0_1(SkScalar x) { 49 static SkScalar pin_0_1(SkScalar x) {
49 return SkMinScalar(SkMaxScalar(x, 0), 1); 50 return SkMinScalar(SkMaxScalar(x, 0), 1);
50 } 51 }
51 52
52 SkImageFilter* SkAlphaThresholdFilter::Create(const SkRegion& region, 53 sk_sp<SkImageFilter> SkAlphaThresholdFilter::Make(const SkRegion& region,
53 SkScalar innerThreshold, 54 SkScalar innerThreshold,
54 SkScalar outerThreshold, 55 SkScalar outerThreshold,
55 SkImageFilter* input) { 56 sk_sp<SkImageFilter> input) {
56 innerThreshold = pin_0_1(innerThreshold); 57 innerThreshold = pin_0_1(innerThreshold);
57 outerThreshold = pin_0_1(outerThreshold); 58 outerThreshold = pin_0_1(outerThreshold);
58 if (!SkScalarIsFinite(innerThreshold) || !SkScalarIsFinite(outerThreshold)) { 59 if (!SkScalarIsFinite(innerThreshold) || !SkScalarIsFinite(outerThreshold)) {
59 return nullptr; 60 return nullptr;
60 } 61 }
61 return new SkAlphaThresholdFilterImpl(region, innerThreshold, outerThreshold , input); 62 return sk_sp<SkImageFilter>(new SkAlphaThresholdFilterImpl(region, innerThre shold,
63 outerThreshold, s td::move(input)));
62 } 64 }
63 65
64 #if SK_SUPPORT_GPU 66 #if SK_SUPPORT_GPU
65 #include "GrContext.h" 67 #include "GrContext.h"
66 #include "GrCoordTransform.h" 68 #include "GrCoordTransform.h"
67 #include "GrFragmentProcessor.h" 69 #include "GrFragmentProcessor.h"
68 #include "GrInvariantOutput.h" 70 #include "GrInvariantOutput.h"
69 #include "GrTextureAccess.h" 71 #include "GrTextureAccess.h"
70 #include "effects/GrPorterDuffXferProcessor.h" 72 #include "effects/GrPorterDuffXferProcessor.h"
71 73
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 } 264 }
263 265
264 #endif 266 #endif
265 267
266 SkFlattenable* SkAlphaThresholdFilterImpl::CreateProc(SkReadBuffer& buffer) { 268 SkFlattenable* SkAlphaThresholdFilterImpl::CreateProc(SkReadBuffer& buffer) {
267 SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); 269 SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1);
268 SkScalar inner = buffer.readScalar(); 270 SkScalar inner = buffer.readScalar();
269 SkScalar outer = buffer.readScalar(); 271 SkScalar outer = buffer.readScalar();
270 SkRegion rgn; 272 SkRegion rgn;
271 buffer.readRegion(&rgn); 273 buffer.readRegion(&rgn);
272 return SkAlphaThresholdFilter::Create(rgn, inner, outer, common.getInput(0). get()); 274 return SkAlphaThresholdFilter::Make(rgn, inner, outer, common.getInput(0)).r elease();
273 } 275 }
274 276
275 SkAlphaThresholdFilterImpl::SkAlphaThresholdFilterImpl(const SkRegion& region, 277 SkAlphaThresholdFilterImpl::SkAlphaThresholdFilterImpl(const SkRegion& region,
276 SkScalar innerThreshold, 278 SkScalar innerThreshold,
277 SkScalar outerThreshold, 279 SkScalar outerThreshold,
278 SkImageFilter* input) 280 sk_sp<SkImageFilter> inpu t)
279 : INHERITED(1, &input) 281 : INHERITED(&input, 1, nullptr)
280 , fRegion(region) 282 , fRegion(region)
281 , fInnerThreshold(innerThreshold) 283 , fInnerThreshold(innerThreshold)
282 , fOuterThreshold(outerThreshold) { 284 , fOuterThreshold(outerThreshold) {
283 } 285 }
284 286
285 #if SK_SUPPORT_GPU 287 #if SK_SUPPORT_GPU
286 bool SkAlphaThresholdFilterImpl::asFragmentProcessor(GrFragmentProcessor** fp, 288 bool SkAlphaThresholdFilterImpl::asFragmentProcessor(GrFragmentProcessor** fp,
287 GrTexture* texture, 289 GrTexture* texture,
288 const SkMatrix& inMatrix, 290 const SkMatrix& inMatrix,
289 const SkIRect& bounds) cons t { 291 const SkIRect& bounds) cons t {
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 return true; 405 return true;
404 } 406 }
405 407
406 #ifndef SK_IGNORE_TO_STRING 408 #ifndef SK_IGNORE_TO_STRING
407 void SkAlphaThresholdFilterImpl::toString(SkString* str) const { 409 void SkAlphaThresholdFilterImpl::toString(SkString* str) const {
408 str->appendf("SkAlphaThresholdImageFilter: ("); 410 str->appendf("SkAlphaThresholdImageFilter: (");
409 str->appendf("inner: %f outer: %f", fInnerThreshold, fOuterThreshold); 411 str->appendf("inner: %f outer: %f", fInnerThreshold, fOuterThreshold);
410 str->append(")"); 412 str->append(")");
411 } 413 }
412 #endif 414 #endif
OLDNEW
« no previous file with comments | « samplecode/SampleFilterFuzz.cpp ('k') | tests/FlattenableFactoryToName.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698