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

Side by Side Diff: gm/imagefiltersclipped.cpp

Issue 1869763002: Update LightingImageFilter to sk_sp (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Address code review comments 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 | « fuzz/FilterFuzz.cpp ('k') | gm/imagefilterscropexpand.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 2014 Google Inc. 2 * Copyright 2014 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 "sk_tool_utils.h" 8 #include "sk_tool_utils.h"
9 #include "SkBlurImageFilter.h" 9 #include "SkBlurImageFilter.h"
10 #include "SkColor.h" 10 #include "SkColor.h"
(...skipping 25 matching lines...) Expand all
36 SkColor colors[2]; 36 SkColor colors[2];
37 colors[0] = SK_ColorWHITE; 37 colors[0] = SK_ColorWHITE;
38 colors[1] = SK_ColorBLACK; 38 colors[1] = SK_ColorBLACK;
39 SkPaint paint; 39 SkPaint paint;
40 paint.setShader(SkGradientShader::MakeRadial(SkPoint::Make(x, y), radius, co lors, nullptr, 40 paint.setShader(SkGradientShader::MakeRadial(SkPoint::Make(x, y), radius, co lors, nullptr,
41 2, SkShader::kClamp_TileMode)); 41 2, SkShader::kClamp_TileMode));
42 canvas->drawCircle(x, y, radius, paint); 42 canvas->drawCircle(x, y, radius, paint);
43 return surface->makeImageSnapshot(); 43 return surface->makeImageSnapshot();
44 } 44 }
45 45
46 static void draw_clipped_filter(SkCanvas* canvas, SkImageFilter* filter, size_t i, 46 static void draw_clipped_filter(SkCanvas* canvas, sk_sp<SkImageFilter> filter, s ize_t i,
47 const SkRect& primBounds, const SkRect& clipBoun ds) { 47 const SkRect& primBounds, const SkRect& clipBoun ds) {
48 SkPaint paint; 48 SkPaint paint;
49 paint.setColor(SK_ColorWHITE); 49 paint.setColor(SK_ColorWHITE);
50 paint.setImageFilter(filter); 50 paint.setImageFilter(std::move(filter));
51 paint.setAntiAlias(true); 51 paint.setAntiAlias(true);
52 canvas->save(); 52 canvas->save();
53 canvas->clipRect(clipBounds); 53 canvas->clipRect(clipBounds);
54 if (5 == i) { 54 if (5 == i) {
55 canvas->translate(SkIntToScalar(16), SkIntToScalar(-32)); 55 canvas->translate(SkIntToScalar(16), SkIntToScalar(-32));
56 } else if (6 == i) { 56 } else if (6 == i) {
57 canvas->scale(SkScalarInvert(RESIZE_FACTOR_X), SkScalarInvert(RESIZE_FAC TOR_Y)); 57 canvas->scale(SkScalarInvert(RESIZE_FACTOR_X), SkScalarInvert(RESIZE_FAC TOR_Y));
58 } 58 }
59 canvas->drawCircle(primBounds.centerX(), primBounds.centerY(), 59 canvas->drawCircle(primBounds.centerX(), primBounds.centerY(),
60 primBounds.width() * 2 / 5, paint); 60 primBounds.width() * 2 / 5, paint);
(...skipping 25 matching lines...) Expand all
86 86
87 void onDraw(SkCanvas* canvas) override { 87 void onDraw(SkCanvas* canvas) override {
88 canvas->clear(SK_ColorBLACK); 88 canvas->clear(SK_ColorBLACK);
89 89
90 sk_sp<SkImageFilter> gradient(SkImageSource::Make(fGradientCircle)); 90 sk_sp<SkImageFilter> gradient(SkImageSource::Make(fGradientCircle));
91 sk_sp<SkImageFilter> checkerboard(SkImageSource::Make(fCheckerboard)); 91 sk_sp<SkImageFilter> checkerboard(SkImageSource::Make(fCheckerboard));
92 SkMatrix resizeMatrix; 92 SkMatrix resizeMatrix;
93 resizeMatrix.setScale(RESIZE_FACTOR_X, RESIZE_FACTOR_Y); 93 resizeMatrix.setScale(RESIZE_FACTOR_X, RESIZE_FACTOR_Y);
94 SkPoint3 pointLocation = SkPoint3::Make(32, 32, SkIntToScalar(10)); 94 SkPoint3 pointLocation = SkPoint3::Make(32, 32, SkIntToScalar(10));
95 95
96 SkImageFilter* filters[] = { 96 sk_sp<SkImageFilter> filters[] = {
97 SkBlurImageFilter::Make(SkIntToScalar(12), SkIntToScalar(12), nullpt r).release(), 97 SkBlurImageFilter::Make(SkIntToScalar(12), SkIntToScalar(12), nullpt r),
98 SkDropShadowImageFilter::Make(SkIntToScalar(10), SkIntToScalar(10), 98 SkDropShadowImageFilter::Make(
99 SkIntToScalar(3), SkIntToScalar(3), SK_ColorGREEN, 99 SkIntToScalar(10), SkIntToScalar(10),
100 SkDropShadowImageFilter::kDrawShadowAndForeground_ShadowMode, 100 SkIntToScalar(3), SkIntToScalar(3), SK_Color GREEN,
101 nullptr).release(), 101 SkDropShadowImageFilter::kDrawShadowAndForeg round_ShadowMode,
102 SkDisplacementMapEffect::Create(SkDisplacementMapEffect::kR_ChannelS electorType, 102 nullptr),
103 sk_sp<SkImageFilter>(SkDisplacementMapEffect::Create(
104 SkDisplacementMapEffect::kR_ChannelS electorType,
103 SkDisplacementMapEffect::kR_ChannelS electorType, 105 SkDisplacementMapEffect::kR_ChannelS electorType,
104 SkIntToScalar(12), 106 SkIntToScalar(12),
105 gradient.get(), 107 gradient.get(),
106 checkerboard.get()), 108 checkerboard.get())),
107 SkDilateImageFilter::Make(2, 2, checkerboard).release(), 109 SkDilateImageFilter::Make(2, 2, checkerboard),
108 SkErodeImageFilter::Make(2, 2, checkerboard).release(), 110 SkErodeImageFilter::Make(2, 2, checkerboard),
109 SkOffsetImageFilter::Make(SkIntToScalar(-16), SkIntToScalar(32), nul lptr).release(), 111 SkOffsetImageFilter::Make(SkIntToScalar(-16), SkIntToScalar(32), nul lptr),
110 SkImageFilter::MakeMatrixFilter(resizeMatrix, kNone_SkFilterQuality, nullptr).release(), 112 SkImageFilter::MakeMatrixFilter(resizeMatrix, kNone_SkFilterQuality, nullptr),
111 SkLightingImageFilter::CreatePointLitDiffuse(pointLocation, SK_Color WHITE, SK_Scalar1, 113 SkLightingImageFilter::MakePointLitDiffuse(pointLocation, SK_ColorWH ITE, SK_Scalar1,
112 SkIntToScalar(2), check erboard.get()), 114 SkIntToScalar(2), checker board),
113 115
114 }; 116 };
115 117
116 SkRect r = SkRect::MakeWH(SkIntToScalar(64), SkIntToScalar(64)); 118 SkRect r = SkRect::MakeWH(SkIntToScalar(64), SkIntToScalar(64));
117 SkScalar margin = SkIntToScalar(16); 119 SkScalar margin = SkIntToScalar(16);
118 SkRect bounds = r; 120 SkRect bounds = r;
119 bounds.outset(margin, margin); 121 bounds.outset(margin, margin);
120 122
121 canvas->save(); 123 canvas->save();
122 for (int xOffset = 0; xOffset < 80; xOffset += 16) { 124 for (int xOffset = 0; xOffset < 80; xOffset += 16) {
123 canvas->save(); 125 canvas->save();
124 bounds.fLeft = SkIntToScalar(xOffset); 126 bounds.fLeft = SkIntToScalar(xOffset);
125 for (size_t i = 0; i < SK_ARRAY_COUNT(filters); ++i) { 127 for (size_t i = 0; i < SK_ARRAY_COUNT(filters); ++i) {
126 draw_clipped_filter(canvas, filters[i], i, r, bounds); 128 draw_clipped_filter(canvas, filters[i], i, r, bounds);
127 canvas->translate(r.width() + margin, 0); 129 canvas->translate(r.width() + margin, 0);
128 } 130 }
129 canvas->restore(); 131 canvas->restore();
130 canvas->translate(0, r.height() + margin); 132 canvas->translate(0, r.height() + margin);
131 } 133 }
132 canvas->restore(); 134 canvas->restore();
133 135
134 for (size_t i = 0; i < SK_ARRAY_COUNT(filters); ++i) {
135 SkSafeUnref(filters[i]);
136 }
137
138 SkPaint noisePaint; 136 SkPaint noisePaint;
139 noisePaint.setShader(SkPerlinNoiseShader::MakeFractalNoise(0.1f, 0.05f, 1, 0)); 137 noisePaint.setShader(SkPerlinNoiseShader::MakeFractalNoise(0.1f, 0.05f, 1, 0));
140 138
141 sk_sp<SkImageFilter> rectFilter(SkPaintImageFilter::Make(noisePaint)); 139 sk_sp<SkImageFilter> rectFilter(SkPaintImageFilter::Make(noisePaint));
142 canvas->translate(SK_ARRAY_COUNT(filters)*(r.width() + margin), 0); 140 canvas->translate(SK_ARRAY_COUNT(filters)*(r.width() + margin), 0);
143 for (int xOffset = 0; xOffset < 80; xOffset += 16) { 141 for (int xOffset = 0; xOffset < 80; xOffset += 16) {
144 bounds.fLeft = SkIntToScalar(xOffset); 142 bounds.fLeft = SkIntToScalar(xOffset);
145 draw_clipped_filter(canvas, rectFilter.get(), 0, r, bounds); 143 draw_clipped_filter(canvas, rectFilter, 0, r, bounds);
146 canvas->translate(0, r.height() + margin); 144 canvas->translate(0, r.height() + margin);
147 } 145 }
148 } 146 }
149 147
150 private: 148 private:
151 sk_sp<SkImage> fCheckerboard, fGradientCircle; 149 sk_sp<SkImage> fCheckerboard, fGradientCircle;
152 150
153 typedef GM INHERITED; 151 typedef GM INHERITED;
154 }; 152 };
155 153
156 ////////////////////////////////////////////////////////////////////////////// 154 //////////////////////////////////////////////////////////////////////////////
157 155
158 DEF_GM(return new ImageFiltersClippedGM;) 156 DEF_GM(return new ImageFiltersClippedGM;)
159 } 157 }
OLDNEW
« no previous file with comments | « fuzz/FilterFuzz.cpp ('k') | gm/imagefilterscropexpand.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698