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

Unified Diff: samplecode/SampleFilterFuzz.cpp

Issue 1842793002: Switch SkLocalMatrixImageFilter and SkPaintImageFilter over to sk_sp (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: clean up 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 side-by-side diff with in-line comments
Download patch
Index: samplecode/SampleFilterFuzz.cpp
diff --git a/samplecode/SampleFilterFuzz.cpp b/samplecode/SampleFilterFuzz.cpp
index 0602e2bcbbf926b82884b4f744c472c6e45493ba..59e6663ca19d0ec62b4161c57debf9d7944df694 100644
--- a/samplecode/SampleFilterFuzz.cpp
+++ b/samplecode/SampleFilterFuzz.cpp
@@ -487,7 +487,7 @@ static SkMaskFilter* make_mask_filter() {
return maskFilter;
}
-static SkImageFilter* make_image_filter(bool canBeNull = true);
+static sk_sp<SkImageFilter> make_image_filter(bool canBeNull = true);
static SkPaint make_paint() {
SkPaint paint;
@@ -540,11 +540,13 @@ static SkPaint make_paint() {
return paint;
}
-static SkImageFilter* make_image_filter(bool canBeNull) {
- SkImageFilter* filter = 0;
+static sk_sp<SkImageFilter> make_image_filter(bool canBeNull) {
+ sk_sp<SkImageFilter> filter;
// Add a 1 in 3 chance to get a nullptr input
- if (canBeNull && (R(3) == 1)) { return filter; }
+ if (canBeNull && (R(3) == 1)) {
+ return filter;
+ }
enum { ALPHA_THRESHOLD, MERGE, COLOR, LUT3D, BLUR, MAGNIFIER,
DOWN_SAMPLE, XFERMODE, OFFSET, MATRIX, MATRIX_CONVOLUTION, COMPOSE,
@@ -553,50 +555,60 @@ static SkImageFilter* make_image_filter(bool canBeNull) {
switch (R(NUM_FILTERS)) {
case ALPHA_THRESHOLD:
- filter = SkAlphaThresholdFilter::Create(make_region(), make_scalar(), make_scalar());
+ filter = sk_sp<SkImageFilter>(SkAlphaThresholdFilter::Create(make_region(),
+ make_scalar(),
+ make_scalar()));
break;
case MERGE:
- filter = SkMergeImageFilter::Create(make_image_filter(), make_image_filter(), make_xfermode());
+ filter = sk_sp<SkImageFilter>(SkMergeImageFilter::Create(make_image_filter().release(),
f(malita) 2016/03/29 18:10:06 Hmm... Mixing old-style Create methods with sk_sp
robertphillips 2016/03/29 19:31:40 Done.
+ make_image_filter().release(),
+ make_xfermode()));
break;
- case COLOR:
- {
+ case COLOR: {
sk_sp<SkColorFilter> cf(make_color_filter());
- filter = cf ? SkColorFilterImageFilter::Create(cf.get(), make_image_filter()) : 0;
- }
+ filter = cf ? sk_sp<SkImageFilter>(SkColorFilterImageFilter::Create(cf.get(),
+ make_image_filter().release()))
+ : nullptr;
break;
- case LUT3D:
- {
+ }
+ case LUT3D: {
int cubeDimension;
sk_sp<SkData> lut3D(make_3Dlut(&cubeDimension, (R(2) == 1), (R(2) == 1), (R(2) == 1)));
sk_sp<SkColorFilter> cf(SkColorCubeFilter::Make(lut3D, cubeDimension));
- filter = cf ? SkColorFilterImageFilter::Create(cf.get(), make_image_filter()) : 0;
- }
+ filter = cf ? sk_sp<SkImageFilter>(SkColorFilterImageFilter::Create(cf.get(),
+ make_image_filter().release()))
+ : nullptr;
break;
+ }
case BLUR:
- filter = SkBlurImageFilter::Create(make_scalar(true), make_scalar(true), make_image_filter());
+ filter = sk_sp<SkImageFilter>(SkBlurImageFilter::Create(make_scalar(true),
+ make_scalar(true),
+ make_image_filter().release()));
break;
case MAGNIFIER:
- filter = SkMagnifierImageFilter::Create(make_rect(), make_scalar(true));
+ filter = sk_sp<SkImageFilter>(SkMagnifierImageFilter::Create(make_rect(),
+ make_scalar(true)));
break;
case DOWN_SAMPLE:
- filter = SkDownSampleImageFilter::Create(make_scalar());
+ filter = sk_sp<SkImageFilter>(SkDownSampleImageFilter::Create(make_scalar()));
break;
- case XFERMODE:
- {
+ case XFERMODE: {
SkAutoTUnref<SkXfermode> mode(SkXfermode::Create(make_xfermode()));
- filter = SkXfermodeImageFilter::Create(mode, make_image_filter(), make_image_filter());
- }
+ filter = sk_sp<SkImageFilter>(SkXfermodeImageFilter::Create(mode,
+ make_image_filter().release(),
+ make_image_filter().release()));
break;
+ }
case OFFSET:
- filter = SkOffsetImageFilter::Create(make_scalar(), make_scalar(), make_image_filter());
+ filter = sk_sp<SkImageFilter>(SkOffsetImageFilter::Create(make_scalar(), make_scalar(),
+ make_image_filter().release()));
break;
case MATRIX:
- filter = SkImageFilter::CreateMatrixFilter(make_matrix(),
- (SkFilterQuality)R(4),
- make_image_filter());
+ filter = sk_sp<SkImageFilter>(SkImageFilter::CreateMatrixFilter(make_matrix(),
+ (SkFilterQuality)R(4),
+ make_image_filter().release()));
break;
- case MATRIX_CONVOLUTION:
- {
+ case MATRIX_CONVOLUTION: {
SkImageFilter::CropRect cropR(SkRect::MakeWH(SkIntToScalar(kBitmapSize),
SkIntToScalar(kBitmapSize)));
SkISize size = SkISize::Make(R(10)+1, R(10)+1);
@@ -607,47 +619,54 @@ static SkImageFilter* make_image_filter(bool canBeNull) {
}
SkIPoint kernelOffset = SkIPoint::Make(R(SkIntToScalar(size.width())),
R(SkIntToScalar(size.height())));
- filter = SkMatrixConvolutionImageFilter::Create(size,
+ filter = sk_sp<SkImageFilter>(SkMatrixConvolutionImageFilter::Create(
+ size,
kernel.begin(),
make_scalar(),
make_scalar(),
kernelOffset,
(SkMatrixConvolutionImageFilter::TileMode)R(3),
R(2) == 1,
- make_image_filter(),
- &cropR);
- }
+ make_image_filter().release(),
+ &cropR));
break;
+ }
case COMPOSE:
- filter = SkComposeImageFilter::Create(make_image_filter(), make_image_filter());
+ filter = sk_sp<SkImageFilter>(SkComposeImageFilter::Create(make_image_filter().release(),
+ make_image_filter().release()));
break;
case DISTANT_LIGHT:
- filter = (R(2) == 1) ?
- SkLightingImageFilter::CreateDistantLitDiffuse(make_point(),
- make_color(), make_scalar(), make_scalar(), make_image_filter()) :
- SkLightingImageFilter::CreateDistantLitSpecular(make_point(),
- make_color(), make_scalar(), make_scalar(), SkIntToScalar(R(10)),
- make_image_filter());
+ filter = (R(2) == 1)
+ ? sk_sp<SkImageFilter>(SkLightingImageFilter::CreateDistantLitDiffuse(make_point(),
+ make_color(), make_scalar(), make_scalar(),
+ make_image_filter().release()))
+ : sk_sp<SkImageFilter>(SkLightingImageFilter::CreateDistantLitSpecular(make_point(),
+ make_color(), make_scalar(),
+ make_scalar(), SkIntToScalar(R(10)),
+ make_image_filter().release()));
break;
case POINT_LIGHT:
- filter = (R(2) == 1) ?
- SkLightingImageFilter::CreatePointLitDiffuse(make_point(),
- make_color(), make_scalar(), make_scalar(), make_image_filter()) :
- SkLightingImageFilter::CreatePointLitSpecular(make_point(),
- make_color(), make_scalar(), make_scalar(), SkIntToScalar(R(10)),
- make_image_filter());
+ filter = (R(2) == 1)
+ ? sk_sp<SkImageFilter>(SkLightingImageFilter::CreatePointLitDiffuse(make_point(),
+ make_color(), make_scalar(), make_scalar(),
+ make_image_filter().release()))
+ : sk_sp<SkImageFilter>(SkLightingImageFilter::CreatePointLitSpecular(make_point(),
+ make_color(), make_scalar(), make_scalar(),
+ SkIntToScalar(R(10)),
+ make_image_filter().release()));
break;
case SPOT_LIGHT:
- filter = (R(2) == 1) ?
- SkLightingImageFilter::CreateSpotLitDiffuse(SkPoint3::Make(0, 0, 0),
- make_point(), make_scalar(), make_scalar(), make_color(),
- make_scalar(), make_scalar(), make_image_filter()) :
- SkLightingImageFilter::CreateSpotLitSpecular(SkPoint3::Make(0, 0, 0),
- make_point(), make_scalar(), make_scalar(), make_color(),
- make_scalar(), make_scalar(), SkIntToScalar(R(10)), make_image_filter());
+ filter = (R(2) == 1)
+ ? sk_sp<SkImageFilter>(SkLightingImageFilter::CreateSpotLitDiffuse(SkPoint3::Make(0, 0, 0),
+ make_point(), make_scalar(), make_scalar(),
+ make_color(), make_scalar(), make_scalar(),
+ make_image_filter().release()))
+ : sk_sp<SkImageFilter>(SkLightingImageFilter::CreateSpotLitSpecular(SkPoint3::Make(0, 0, 0),
+ make_point(), make_scalar(), make_scalar(),
+ make_color(), make_scalar(), make_scalar(),
+ SkIntToScalar(R(10)), make_image_filter().release()));
break;
- case NOISE:
- {
+ case NOISE: {
sk_sp<SkShader> shader((R(2) == 1) ?
SkPerlinNoiseShader::MakeFractalNoise(
make_scalar(true), make_scalar(true), R(10.0f), make_scalar()) :
@@ -657,43 +676,55 @@ static SkImageFilter* make_image_filter(bool canBeNull) {
paint.setShader(shader);
SkImageFilter::CropRect cropR(SkRect::MakeWH(SkIntToScalar(kBitmapSize),
SkIntToScalar(kBitmapSize)));
- filter = SkPaintImageFilter::Create(paint, &cropR);
- }
+ filter = SkPaintImageFilter::Make(paint, &cropR);
break;
+ }
case DROP_SHADOW:
- filter = SkDropShadowImageFilter::Create(make_scalar(), make_scalar(), make_scalar(true),
- make_scalar(true), make_color(), make_shadow_mode(), make_image_filter(),
- nullptr);
+ filter = sk_sp<SkImageFilter>(SkDropShadowImageFilter::Create(make_scalar(),
+ make_scalar(),
+ make_scalar(true),
+ make_scalar(true),
+ make_color(),
+ make_shadow_mode(),
+ make_image_filter().release(),
+ nullptr));
break;
case MORPHOLOGY:
if (R(2) == 1) {
- filter = SkDilateImageFilter::Create(R(static_cast<float>(kBitmapSize)),
- R(static_cast<float>(kBitmapSize)), make_image_filter());
+ filter = sk_sp<SkImageFilter>(SkDilateImageFilter::Create(R(static_cast<float>(kBitmapSize)),
+ R(static_cast<float>(kBitmapSize)),
+ make_image_filter().release()));
} else {
- filter = SkErodeImageFilter::Create(R(static_cast<float>(kBitmapSize)),
- R(static_cast<float>(kBitmapSize)), make_image_filter());
+ filter = sk_sp<SkImageFilter>(SkErodeImageFilter::Create(R(static_cast<float>(kBitmapSize)),
+ R(static_cast<float>(kBitmapSize)),
+ make_image_filter().release()));
}
break;
- case BITMAP:
- {
+ case BITMAP: {
sk_sp<SkImage> image(SkImage::MakeFromBitmap(make_bitmap()));
if (R(2) == 1) {
- filter = SkImageSource::Create(image.get(), make_rect(), make_rect(), kHigh_SkFilterQuality);
+ filter = sk_sp<SkImageFilter>(SkImageSource::Create(image.get(),
+ make_rect(),
+ make_rect(),
+ kHigh_SkFilterQuality));
} else {
- filter = SkImageSource::Create(image.get());
+ filter = sk_sp<SkImageFilter>(SkImageSource::Create(image.get()));
}
- }
break;
+ }
case DISPLACE:
- filter = SkDisplacementMapEffect::Create(make_channel_selector_type(),
- make_channel_selector_type(), make_scalar(),
- make_image_filter(false), make_image_filter());
+ filter = sk_sp<SkImageFilter>(SkDisplacementMapEffect::Create(make_channel_selector_type(),
+ make_channel_selector_type(),
+ make_scalar(),
+ make_image_filter(false).release(),
+ make_image_filter().release()));
break;
case TILE:
- filter = SkTileImageFilter::Create(make_rect(), make_rect(), make_image_filter(false));
+ filter = sk_sp<SkImageFilter>(SkTileImageFilter::Create(make_rect(),
+ make_rect(),
+ make_image_filter(false).release()));
break;
- case PICTURE:
- {
+ case PICTURE: {
SkRTreeFactory factory;
SkPictureRecorder recorder;
SkCanvas* recordingCanvas = recorder.beginRecording(SkIntToScalar(kBitmapSize),
@@ -701,13 +732,13 @@ static SkImageFilter* make_image_filter(bool canBeNull) {
&factory, 0);
drawSomething(recordingCanvas);
sk_sp<SkPicture> pict(recorder.finishRecordingAsPicture());
- filter = SkPictureImageFilter::Make(pict, make_rect()).release();
- }
+ filter = SkPictureImageFilter::Make(pict, make_rect());
break;
- case PAINT:
- {
+ }
+ case PAINT: {
SkImageFilter::CropRect cropR(make_rect());
- filter = SkPaintImageFilter::Create(make_paint(), &cropR);
+ filter = SkPaintImageFilter::Make(make_paint(), &cropR);
+ break;
}
default:
break;
@@ -716,8 +747,8 @@ static SkImageFilter* make_image_filter(bool canBeNull) {
}
static SkImageFilter* make_serialized_image_filter() {
- SkAutoTUnref<SkImageFilter> filter(make_image_filter(false));
- SkAutoTUnref<SkData> data(SkValidatingSerializeFlattenable(filter));
+ sk_sp<SkImageFilter> filter(make_image_filter(false));
+ SkAutoTUnref<SkData> data(SkValidatingSerializeFlattenable(filter.get()));
const unsigned char* ptr = static_cast<const unsigned char*>(data->data());
size_t len = data->size();
#ifdef SK_ADD_RANDOM_BIT_FLIPS

Powered by Google App Engine
This is Rietveld 408576698