OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 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 "gm.h" | 8 #include "gm.h" |
9 #include "SkBlurMask.h" | 9 #include "SkBlurMask.h" |
10 #include "SkBlurMaskFilter.h" | 10 #include "SkBlurMaskFilter.h" |
(...skipping 15 matching lines...) Expand all Loading... |
26 public: | 26 public: |
27 bool filter(SkPaint* p, Type) override { | 27 bool filter(SkPaint* p, Type) override { |
28 p->setColor(SK_ColorRED); | 28 p->setColor(SK_ColorRED); |
29 p->setMaskFilter(nullptr); | 29 p->setMaskFilter(nullptr); |
30 return true; | 30 return true; |
31 } | 31 } |
32 }; | 32 }; |
33 } | 33 } |
34 | 34 |
35 class DrawFilterGM : public skiagm::GM { | 35 class DrawFilterGM : public skiagm::GM { |
36 SkAutoTUnref<SkMaskFilter> fBlur; | 36 sk_sp<SkMaskFilter> fBlur; |
37 | 37 |
38 protected: | 38 protected: |
39 SkISize onISize() override { | 39 SkISize onISize() override { |
40 return SkISize::Make(320, 240); | 40 return SkISize::Make(320, 240); |
41 } | 41 } |
42 | 42 |
43 SkString onShortName() override { | 43 SkString onShortName() override { |
44 return SkString("drawfilter"); | 44 return SkString("drawfilter"); |
45 } | 45 } |
46 | 46 |
47 void onOnceBeforeDraw() override { | 47 void onOnceBeforeDraw() override { |
48 fBlur.reset(SkBlurMaskFilter::Create(kNormal_SkBlurStyle, | 48 fBlur = SkBlurMaskFilter::Make(kNormal_SkBlurStyle, |
49 SkBlurMask::ConvertRadiusToSigma(10.0f), | 49 SkBlurMask::ConvertRadiusToSigma(10.0f), |
50 kLow_SkBlurQuality)); | 50 kLow_SkBlurQuality); |
51 } | 51 } |
52 | 52 |
53 void onDraw(SkCanvas* canvas) override { | 53 void onDraw(SkCanvas* canvas) override { |
54 SkPaint p; | 54 SkPaint p; |
55 p.setColor(SK_ColorBLUE); | 55 p.setColor(SK_ColorBLUE); |
56 p.setMaskFilter(fBlur.get()); | 56 p.setMaskFilter(fBlur); |
57 SkRect r = { 20, 20, 100, 100 }; | 57 SkRect r = { 20, 20, 100, 100 }; |
58 canvas->setDrawFilter(nullptr); | 58 canvas->setDrawFilter(nullptr); |
59 canvas->drawRect(r, p); | 59 canvas->drawRect(r, p); |
60 TestFilter redNoBlur; | 60 TestFilter redNoBlur; |
61 canvas->setDrawFilter(&redNoBlur); | 61 canvas->setDrawFilter(&redNoBlur); |
62 canvas->translate(120.0f, 40.0f); | 62 canvas->translate(120.0f, 40.0f); |
63 canvas->drawRect(r, p); | 63 canvas->drawRect(r, p); |
64 | 64 |
65 // Must unset if the DrawFilter is from the stack to avoid refcount erro
rs! | 65 // Must unset if the DrawFilter is from the stack to avoid refcount erro
rs! |
66 canvas->setDrawFilter(nullptr); | 66 canvas->setDrawFilter(nullptr); |
67 } | 67 } |
68 | 68 |
69 private: | 69 private: |
70 typedef GM INHERITED; | 70 typedef GM INHERITED; |
71 }; | 71 }; |
72 | 72 |
73 DEF_GM( return new DrawFilterGM; ) | 73 DEF_GM( return new DrawFilterGM; ) |
74 | 74 |
75 #endif | 75 #endif |
OLD | NEW |