OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2013 Google Inc. | 3 * Copyright 2013 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 #include "SkBitmap.h" | 9 #include "SkBitmap.h" |
10 #include "SkBitmapDevice.h" | 10 #include "SkBitmapDevice.h" |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
151 SkAutoTUnref<SkColorFilter> filter(SkColorMatrixFilter::Create(matrix)); | 151 SkAutoTUnref<SkColorFilter> filter(SkColorMatrixFilter::Create(matrix)); |
152 return SkColorFilterImageFilter::Create(filter, input, cropRect); | 152 return SkColorFilterImageFilter::Create(filter, input, cropRect); |
153 } | 153 } |
154 | 154 |
155 static SkImageFilter* make_blue(SkImageFilter* input, const SkImageFilter::CropR
ect* cropRect) { | 155 static SkImageFilter* make_blue(SkImageFilter* input, const SkImageFilter::CropR
ect* cropRect) { |
156 SkAutoTUnref<SkColorFilter> filter(SkColorFilter::CreateModeFilter(SK_ColorB
LUE, | 156 SkAutoTUnref<SkColorFilter> filter(SkColorFilter::CreateModeFilter(SK_ColorB
LUE, |
157 SkXfermod
e::kSrcIn_Mode)); | 157 SkXfermod
e::kSrcIn_Mode)); |
158 return SkColorFilterImageFilter::Create(filter, input, cropRect); | 158 return SkColorFilterImageFilter::Create(filter, input, cropRect); |
159 } | 159 } |
160 | 160 |
161 static SkSpecialSurface* create_empty_special_surface(GrContext* context, | 161 static sk_sp<SkSpecialSurface> create_empty_special_surface(GrContext* context, |
162 SkImageFilter::Proxy* prox
y, | 162 SkImageFilter::Proxy
* proxy, |
163 int widthHeight) { | 163 int widthHeight) { |
164 if (context) { | 164 if (context) { |
165 GrSurfaceDesc desc; | 165 GrSurfaceDesc desc; |
166 desc.fConfig = kSkia8888_GrPixelConfig; | 166 desc.fConfig = kSkia8888_GrPixelConfig; |
167 desc.fFlags = kRenderTarget_GrSurfaceFlag; | 167 desc.fFlags = kRenderTarget_GrSurfaceFlag; |
168 desc.fWidth = widthHeight; | 168 desc.fWidth = widthHeight; |
169 desc.fHeight = widthHeight; | 169 desc.fHeight = widthHeight; |
170 return SkSpecialSurface::NewRenderTarget(proxy, context, desc); | 170 return SkSpecialSurface::MakeRenderTarget(proxy, context, desc); |
171 } else { | 171 } else { |
172 const SkImageInfo info = SkImageInfo::MakeN32(widthHeight, widthHeight, | 172 const SkImageInfo info = SkImageInfo::MakeN32(widthHeight, widthHeight, |
173 kOpaque_SkAlphaType); | 173 kOpaque_SkAlphaType); |
174 return SkSpecialSurface::NewRaster(proxy, info); | 174 return SkSpecialSurface::MakeRaster(proxy, info); |
175 } | 175 } |
176 } | 176 } |
177 | 177 |
178 static SkSpecialImage* create_empty_special_image(GrContext* context, | 178 static sk_sp<SkSpecialImage> create_empty_special_image(GrContext* context, |
179 SkImageFilter::Proxy* proxy, | 179 SkImageFilter::Proxy* pr
oxy, |
180 int widthHeight) { | 180 int widthHeight) { |
181 SkAutoTUnref<SkSpecialSurface> surf(create_empty_special_surface(context, pr
oxy, widthHeight)); | 181 sk_sp<SkSpecialSurface> surf(create_empty_special_surface(context, proxy, wi
dthHeight)); |
182 | 182 |
183 SkASSERT(surf); | 183 SkASSERT(surf); |
184 | 184 |
185 SkCanvas* canvas = surf->getCanvas(); | 185 SkCanvas* canvas = surf->getCanvas(); |
186 SkASSERT(canvas); | 186 SkASSERT(canvas); |
187 | 187 |
188 canvas->clear(0x0); | 188 canvas->clear(0x0); |
189 | 189 |
190 return surf->newImageSnapshot(); | 190 return surf->makeImageSnapshot(); |
191 } | 191 } |
192 | 192 |
193 | 193 |
194 DEF_TEST(ImageFilter, reporter) { | 194 DEF_TEST(ImageFilter, reporter) { |
195 { | 195 { |
196 // Check that two non-clipping color-matrice-filters concatenate into a
single filter. | 196 // Check that two non-clipping color-matrice-filters concatenate into a
single filter. |
197 SkAutoTUnref<SkImageFilter> halfBrightness(make_scale(0.5f)); | 197 SkAutoTUnref<SkImageFilter> halfBrightness(make_scale(0.5f)); |
198 SkAutoTUnref<SkImageFilter> quarterBrightness(make_scale(0.5f, halfBrigh
tness)); | 198 SkAutoTUnref<SkImageFilter> quarterBrightness(make_scale(0.5f, halfBrigh
tness)); |
199 REPORTER_ASSERT(reporter, nullptr == quarterBrightness->getInput(0)); | 199 REPORTER_ASSERT(reporter, nullptr == quarterBrightness->getInput(0)); |
200 SkColorFilter* cf; | 200 SkColorFilter* cf; |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 } | 306 } |
307 } | 307 } |
308 } | 308 } |
309 | 309 |
310 static void test_crop_rects(SkImageFilter::Proxy* proxy, | 310 static void test_crop_rects(SkImageFilter::Proxy* proxy, |
311 skiatest::Reporter* reporter, | 311 skiatest::Reporter* reporter, |
312 GrContext* context) { | 312 GrContext* context) { |
313 // Check that all filters offset to their absolute crop rect, | 313 // Check that all filters offset to their absolute crop rect, |
314 // unaffected by the input crop rect. | 314 // unaffected by the input crop rect. |
315 // Tests pass by not asserting. | 315 // Tests pass by not asserting. |
316 SkAutoTUnref<SkSpecialImage> srcImg(create_empty_special_image(context, prox
y, 100)); | 316 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, proxy, 100)
); |
317 SkASSERT(srcImg); | 317 SkASSERT(srcImg); |
318 | 318 |
319 SkImageFilter::CropRect inputCropRect(SkRect::MakeXYWH(8, 13, 80, 80)); | 319 SkImageFilter::CropRect inputCropRect(SkRect::MakeXYWH(8, 13, 80, 80)); |
320 SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(20, 30, 60, 60)); | 320 SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(20, 30, 60, 60)); |
321 SkAutoTUnref<SkImageFilter> input(make_grayscale(nullptr, &inputCropRect)); | 321 SkAutoTUnref<SkImageFilter> input(make_grayscale(nullptr, &inputCropRect)); |
322 | 322 |
323 SkAutoTUnref<SkColorFilter> cf(SkColorFilter::CreateModeFilter(SK_ColorRED,
SkXfermode::kSrcIn_Mode)); | 323 SkAutoTUnref<SkColorFilter> cf(SkColorFilter::CreateModeFilter(SK_ColorRED,
SkXfermode::kSrcIn_Mode)); |
324 SkPoint3 location = SkPoint3::Make(0, 0, SK_Scalar1); | 324 SkPoint3 location = SkPoint3::Make(0, 0, SK_Scalar1); |
325 SkScalar kernel[9] = { | 325 SkScalar kernel[9] = { |
326 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1), | 326 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1), |
(...skipping 23 matching lines...) Expand all Loading... |
350 SkTileImageFilter::Create(inputCropRect.rect(), cropRect.rect(), input.g
et()), | 350 SkTileImageFilter::Create(inputCropRect.rect(), cropRect.rect(), input.g
et()), |
351 SkXfermodeImageFilter::Create(SkXfermode::Create(SkXfermode::kSrcOver_Mo
de), input.get(), input.get(), &cropRect), | 351 SkXfermodeImageFilter::Create(SkXfermode::Create(SkXfermode::kSrcOver_Mo
de), input.get(), input.get(), &cropRect), |
352 }; | 352 }; |
353 | 353 |
354 for (size_t i = 0; i < SK_ARRAY_COUNT(filters); ++i) { | 354 for (size_t i = 0; i < SK_ARRAY_COUNT(filters); ++i) { |
355 SkImageFilter* filter = filters[i]; | 355 SkImageFilter* filter = filters[i]; |
356 SkIPoint offset; | 356 SkIPoint offset; |
357 SkString str; | 357 SkString str; |
358 str.printf("filter %d", static_cast<int>(i)); | 358 str.printf("filter %d", static_cast<int>(i)); |
359 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(100, 100), nul
lptr); | 359 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(100, 100), nul
lptr); |
360 SkAutoTUnref<SkSpecialImage> resultImg(filter->filterImage(srcImg, ctx,
&offset)); | 360 SkAutoTUnref<SkSpecialImage> resultImg(filter->filterImage(srcImg.get(),
ctx, &offset)); |
361 REPORTER_ASSERT_MESSAGE(reporter, resultImg, str.c_str()); | 361 REPORTER_ASSERT_MESSAGE(reporter, resultImg, str.c_str()); |
362 REPORTER_ASSERT_MESSAGE(reporter, offset.fX == 20 && offset.fY == 30, st
r.c_str()); | 362 REPORTER_ASSERT_MESSAGE(reporter, offset.fX == 20 && offset.fY == 30, st
r.c_str()); |
363 } | 363 } |
364 | 364 |
365 for (size_t i = 0; i < SK_ARRAY_COUNT(filters); ++i) { | 365 for (size_t i = 0; i < SK_ARRAY_COUNT(filters); ++i) { |
366 SkSafeUnref(filters[i]); | 366 SkSafeUnref(filters[i]); |
367 } | 367 } |
368 } | 368 } |
369 | 369 |
370 static SkBitmap make_gradient_circle(int width, int height) { | 370 static SkBitmap make_gradient_circle(int width, int height) { |
(...skipping 21 matching lines...) Expand all Loading... |
392 GrContext* context) { | 392 GrContext* context) { |
393 // Check that SkBlurImageFilter will accept a negative sigma, either in | 393 // Check that SkBlurImageFilter will accept a negative sigma, either in |
394 // the given arguments or after CTM application. | 394 // the given arguments or after CTM application. |
395 const int width = 32, height = 32; | 395 const int width = 32, height = 32; |
396 const SkScalar five = SkIntToScalar(5); | 396 const SkScalar five = SkIntToScalar(5); |
397 | 397 |
398 SkAutoTUnref<SkImageFilter> positiveFilter(SkBlurImageFilter::Create(five, f
ive)); | 398 SkAutoTUnref<SkImageFilter> positiveFilter(SkBlurImageFilter::Create(five, f
ive)); |
399 SkAutoTUnref<SkImageFilter> negativeFilter(SkBlurImageFilter::Create(-five,
five)); | 399 SkAutoTUnref<SkImageFilter> negativeFilter(SkBlurImageFilter::Create(-five,
five)); |
400 | 400 |
401 SkBitmap gradient = make_gradient_circle(width, height); | 401 SkBitmap gradient = make_gradient_circle(width, height); |
402 SkAutoTUnref<SkSpecialImage> imgSrc(SkSpecialImage::NewFromRaster(proxy, | 402 sk_sp<SkSpecialImage> imgSrc(SkSpecialImage::MakeFromRaster(proxy, |
403 SkIRect::M
akeWH(width, | 403 SkIRect::MakeWH(
width, height), |
404
height), | 404 gradient)); |
405 gradient))
; | |
406 | 405 |
407 SkIPoint offset; | 406 SkIPoint offset; |
408 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(32, 32), nullptr); | 407 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(32, 32), nullptr); |
409 | 408 |
410 SkAutoTUnref<SkSpecialImage> positiveResult1(positiveFilter->filterImage(img
Src, ctx, &offset)); | 409 SkAutoTUnref<SkSpecialImage> positiveResult1(positiveFilter->filterImage(img
Src.get(), |
| 410 ctx
, &offset)); |
411 REPORTER_ASSERT(reporter, positiveResult1); | 411 REPORTER_ASSERT(reporter, positiveResult1); |
412 | 412 |
413 SkAutoTUnref<SkSpecialImage> negativeResult1(negativeFilter->filterImage(img
Src, ctx, &offset)); | 413 SkAutoTUnref<SkSpecialImage> negativeResult1(negativeFilter->filterImage(img
Src.get(), |
| 414 ctx
, &offset)); |
414 REPORTER_ASSERT(reporter, negativeResult1); | 415 REPORTER_ASSERT(reporter, negativeResult1); |
415 | 416 |
416 SkMatrix negativeScale; | 417 SkMatrix negativeScale; |
417 negativeScale.setScale(-SK_Scalar1, SK_Scalar1); | 418 negativeScale.setScale(-SK_Scalar1, SK_Scalar1); |
418 SkImageFilter::Context negativeCTX(negativeScale, SkIRect::MakeWH(32, 32), n
ullptr); | 419 SkImageFilter::Context negativeCTX(negativeScale, SkIRect::MakeWH(32, 32), n
ullptr); |
419 | 420 |
420 SkAutoTUnref<SkSpecialImage> negativeResult2(positiveFilter->filterImage(img
Src, | 421 SkAutoTUnref<SkSpecialImage> negativeResult2(positiveFilter->filterImage(img
Src.get(), |
421 neg
ativeCTX, | 422 neg
ativeCTX, |
422 &of
fset)); | 423 &of
fset)); |
423 REPORTER_ASSERT(reporter, negativeResult2); | 424 REPORTER_ASSERT(reporter, negativeResult2); |
424 | 425 |
425 SkAutoTUnref<SkSpecialImage> positiveResult2(negativeFilter->filterImage(img
Src, | 426 SkAutoTUnref<SkSpecialImage> positiveResult2(negativeFilter->filterImage(img
Src.get(), |
426 neg
ativeCTX, | 427 neg
ativeCTX, |
427 &of
fset)); | 428 &of
fset)); |
428 REPORTER_ASSERT(reporter, positiveResult2); | 429 REPORTER_ASSERT(reporter, positiveResult2); |
429 | 430 |
430 | 431 |
431 SkBitmap positiveResultBM1, positiveResultBM2; | 432 SkBitmap positiveResultBM1, positiveResultBM2; |
432 SkBitmap negativeResultBM1, negativeResultBM2; | 433 SkBitmap negativeResultBM1, negativeResultBM2; |
433 | 434 |
434 TestingSpecialImageAccess::GetROPixels(positiveResult1, &positiveResultBM1); | 435 TestingSpecialImageAccess::GetROPixels(positiveResult1, &positiveResultBM1); |
435 TestingSpecialImageAccess::GetROPixels(positiveResult2, &positiveResultBM2); | 436 TestingSpecialImageAccess::GetROPixels(positiveResult2, &positiveResultBM2); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
513 #endif | 514 #endif |
514 | 515 |
515 static void test_zero_blur_sigma(SkImageFilter::Proxy* proxy, | 516 static void test_zero_blur_sigma(SkImageFilter::Proxy* proxy, |
516 skiatest::Reporter* reporter, | 517 skiatest::Reporter* reporter, |
517 GrContext* context) { | 518 GrContext* context) { |
518 // Check that SkBlurImageFilter with a zero sigma and a non-zero srcOffset w
orks correctly. | 519 // Check that SkBlurImageFilter with a zero sigma and a non-zero srcOffset w
orks correctly. |
519 SkImageFilter::CropRect cropRect(SkRect::Make(SkIRect::MakeXYWH(5, 0, 5, 10)
)); | 520 SkImageFilter::CropRect cropRect(SkRect::Make(SkIRect::MakeXYWH(5, 0, 5, 10)
)); |
520 SkAutoTUnref<SkImageFilter> input(SkOffsetImageFilter::Create(0, 0, nullptr,
&cropRect)); | 521 SkAutoTUnref<SkImageFilter> input(SkOffsetImageFilter::Create(0, 0, nullptr,
&cropRect)); |
521 SkAutoTUnref<SkImageFilter> filter(SkBlurImageFilter::Create(0, 0, input, &c
ropRect)); | 522 SkAutoTUnref<SkImageFilter> filter(SkBlurImageFilter::Create(0, 0, input, &c
ropRect)); |
522 | 523 |
523 SkAutoTUnref<SkSpecialSurface> surf(create_empty_special_surface(context, pr
oxy, 10)); | 524 sk_sp<SkSpecialSurface> surf(create_empty_special_surface(context, proxy, 10
)); |
524 surf->getCanvas()->clear(SK_ColorGREEN); | 525 surf->getCanvas()->clear(SK_ColorGREEN); |
525 SkAutoTUnref<SkSpecialImage> image(surf->newImageSnapshot()); | 526 sk_sp<SkSpecialImage> image(surf->makeImageSnapshot()); |
526 | 527 |
527 SkIPoint offset; | 528 SkIPoint offset; |
528 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(32, 32), nullptr); | 529 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(32, 32), nullptr); |
529 | 530 |
530 SkAutoTUnref<SkSpecialImage> result(filter->filterImage(image, ctx, &offset)
); | 531 SkAutoTUnref<SkSpecialImage> result(filter->filterImage(image.get(), ctx, &o
ffset)); |
531 REPORTER_ASSERT(reporter, offset.fX == 5 && offset.fY == 0); | 532 REPORTER_ASSERT(reporter, offset.fX == 5 && offset.fY == 0); |
532 REPORTER_ASSERT(reporter, result); | 533 REPORTER_ASSERT(reporter, result); |
533 REPORTER_ASSERT(reporter, result->width() == 5 && result->height() == 10); | 534 REPORTER_ASSERT(reporter, result->width() == 5 && result->height() == 10); |
534 | 535 |
535 SkBitmap resultBM; | 536 SkBitmap resultBM; |
536 | 537 |
537 TestingSpecialImageAccess::GetROPixels(result, &resultBM); | 538 TestingSpecialImageAccess::GetROPixels(result, &resultBM); |
538 | 539 |
539 SkAutoLockPixels lock(resultBM); | 540 SkAutoLockPixels lock(resultBM); |
540 for (int y = 0; y < resultBM.height(); y++) { | 541 for (int y = 0; y < resultBM.height(); y++) { |
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
821 static void test_imagefilter_merge_result_size(SkImageFilter::Proxy* proxy, | 822 static void test_imagefilter_merge_result_size(SkImageFilter::Proxy* proxy, |
822 skiatest::Reporter* reporter, | 823 skiatest::Reporter* reporter, |
823 GrContext* context) { | 824 GrContext* context) { |
824 SkBitmap greenBM; | 825 SkBitmap greenBM; |
825 greenBM.allocN32Pixels(20, 20); | 826 greenBM.allocN32Pixels(20, 20); |
826 greenBM.eraseColor(SK_ColorGREEN); | 827 greenBM.eraseColor(SK_ColorGREEN); |
827 sk_sp<SkImage> greenImage(SkImage::MakeFromBitmap(greenBM)); | 828 sk_sp<SkImage> greenImage(SkImage::MakeFromBitmap(greenBM)); |
828 SkAutoTUnref<SkImageFilter> source(SkImageSource::Create(greenImage.get())); | 829 SkAutoTUnref<SkImageFilter> source(SkImageSource::Create(greenImage.get())); |
829 SkAutoTUnref<SkImageFilter> merge(SkMergeImageFilter::Create(source.get(), s
ource.get())); | 830 SkAutoTUnref<SkImageFilter> merge(SkMergeImageFilter::Create(source.get(), s
ource.get())); |
830 | 831 |
831 SkAutoTUnref<SkSpecialImage> srcImg(create_empty_special_image(context, prox
y, 1)); | 832 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, proxy, 1)); |
832 | 833 |
833 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeXYWH(0, 0, 100, 100),
nullptr); | 834 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeXYWH(0, 0, 100, 100),
nullptr); |
834 SkIPoint offset; | 835 SkIPoint offset; |
835 | 836 |
836 SkAutoTUnref<SkSpecialImage> resultImg(merge->filterImage(srcImg, ctx, &offs
et)); | 837 SkAutoTUnref<SkSpecialImage> resultImg(merge->filterImage(srcImg.get(), ctx,
&offset)); |
837 REPORTER_ASSERT(reporter, resultImg); | 838 REPORTER_ASSERT(reporter, resultImg); |
838 | 839 |
839 REPORTER_ASSERT(reporter, resultImg->width() == 20 && resultImg->height() ==
20); | 840 REPORTER_ASSERT(reporter, resultImg->width() == 20 && resultImg->height() ==
20); |
840 } | 841 } |
841 | 842 |
842 DEF_TEST(ImageFilterMergeResultSize, reporter) { | 843 DEF_TEST(ImageFilterMergeResultSize, reporter) { |
843 run_raster_test(reporter, 100, test_imagefilter_merge_result_size); | 844 run_raster_test(reporter, 100, test_imagefilter_merge_result_size); |
844 } | 845 } |
845 | 846 |
846 #if SK_SUPPORT_GPU | 847 #if SK_SUPPORT_GPU |
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1084 SkPictureRecorder recorder; | 1085 SkPictureRecorder recorder; |
1085 SkCanvas* recordingCanvas = recorder.beginRecording(1, 1, &factory, 0); | 1086 SkCanvas* recordingCanvas = recorder.beginRecording(1, 1, &factory, 0); |
1086 | 1087 |
1087 // Create an SkPicture which simply draws a green 1x1 rectangle. | 1088 // Create an SkPicture which simply draws a green 1x1 rectangle. |
1088 SkPaint greenPaint; | 1089 SkPaint greenPaint; |
1089 greenPaint.setColor(SK_ColorGREEN); | 1090 greenPaint.setColor(SK_ColorGREEN); |
1090 recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(1, 1)), greenPain
t); | 1091 recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(1, 1)), greenPain
t); |
1091 picture.reset(recorder.endRecording()); | 1092 picture.reset(recorder.endRecording()); |
1092 } | 1093 } |
1093 | 1094 |
1094 SkAutoTUnref<SkSpecialImage> srcImg(create_empty_special_image(context, prox
y, 2)); | 1095 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, proxy, 2)); |
1095 | 1096 |
1096 SkAutoTUnref<SkImageFilter> imageFilter(SkPictureImageFilter::Create(picture
.get())); | 1097 SkAutoTUnref<SkImageFilter> imageFilter(SkPictureImageFilter::Create(picture
.get())); |
1097 | 1098 |
1098 SkIPoint offset; | 1099 SkIPoint offset; |
1099 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeXYWH(1, 1, 1, 1), nul
lptr); | 1100 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeXYWH(1, 1, 1, 1), nul
lptr); |
1100 | 1101 |
1101 SkAutoTUnref<SkSpecialImage> resultImage(imageFilter->filterImage(srcImg, ct
x, &offset)); | 1102 SkAutoTUnref<SkSpecialImage> resultImage(imageFilter->filterImage(srcImg.get
(), ctx, &offset)); |
1102 REPORTER_ASSERT(reporter, !resultImage); | 1103 REPORTER_ASSERT(reporter, !resultImage); |
1103 } | 1104 } |
1104 | 1105 |
1105 DEF_TEST(ImageFilterClippedPictureImageFilter, reporter) { | 1106 DEF_TEST(ImageFilterClippedPictureImageFilter, reporter) { |
1106 run_raster_test(reporter, 2, test_clipped_picture_imagefilter); | 1107 run_raster_test(reporter, 2, test_clipped_picture_imagefilter); |
1107 } | 1108 } |
1108 | 1109 |
1109 #if SK_SUPPORT_GPU | 1110 #if SK_SUPPORT_GPU |
1110 DEF_GPUTEST_FOR_NATIVE_CONTEXT(ImageFilterClippedPictureImageFilter_Gpu, reporte
r, context) { | 1111 DEF_GPUTEST_FOR_NATIVE_CONTEXT(ImageFilterClippedPictureImageFilter_Gpu, reporte
r, context) { |
1111 run_gpu_test(reporter, context, 2, test_clipped_picture_imagefilter); | 1112 run_gpu_test(reporter, context, 2, test_clipped_picture_imagefilter); |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1336 DEF_TEST(XfermodeImageFilterCroppedInput, reporter) { | 1337 DEF_TEST(XfermodeImageFilterCroppedInput, reporter) { |
1337 SkBitmap temp; | 1338 SkBitmap temp; |
1338 temp.allocN32Pixels(100, 100); | 1339 temp.allocN32Pixels(100, 100); |
1339 SkCanvas canvas(temp); | 1340 SkCanvas canvas(temp); |
1340 test_xfermode_cropped_input(&canvas, reporter); | 1341 test_xfermode_cropped_input(&canvas, reporter); |
1341 } | 1342 } |
1342 | 1343 |
1343 static void test_composed_imagefilter_offset(SkImageFilter::Proxy* proxy, | 1344 static void test_composed_imagefilter_offset(SkImageFilter::Proxy* proxy, |
1344 skiatest::Reporter* reporter, | 1345 skiatest::Reporter* reporter, |
1345 GrContext* context) { | 1346 GrContext* context) { |
1346 SkAutoTUnref<SkSpecialImage> srcImg(create_empty_special_image(context, prox
y, 100)); | 1347 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, proxy, 100)
); |
1347 | 1348 |
1348 SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(1, 0, 20, 20)); | 1349 SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(1, 0, 20, 20)); |
1349 SkAutoTUnref<SkImageFilter> offsetFilter(SkOffsetImageFilter::Create(0, 0, n
ullptr, &cropRect)); | 1350 SkAutoTUnref<SkImageFilter> offsetFilter(SkOffsetImageFilter::Create(0, 0, n
ullptr, &cropRect)); |
1350 SkAutoTUnref<SkImageFilter> blurFilter(SkBlurImageFilter::Create(SK_Scalar1,
SK_Scalar1, | 1351 SkAutoTUnref<SkImageFilter> blurFilter(SkBlurImageFilter::Create(SK_Scalar1,
SK_Scalar1, |
1351 nullptr, &c
ropRect)); | 1352 nullptr, &c
ropRect)); |
1352 SkAutoTUnref<SkImageFilter> composedFilter(SkComposeImageFilter::Create(blur
Filter, | 1353 SkAutoTUnref<SkImageFilter> composedFilter(SkComposeImageFilter::Create(blur
Filter, |
1353 offs
etFilter.get())); | 1354 offs
etFilter.get())); |
1354 SkIPoint offset; | 1355 SkIPoint offset; |
1355 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(100, 100), nullptr
); | 1356 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(100, 100), nullptr
); |
1356 | 1357 |
1357 SkAutoTUnref<SkSpecialImage> resultImg(composedFilter->filterImage(srcImg, c
tx, &offset)); | 1358 SkAutoTUnref<SkSpecialImage> resultImg(composedFilter->filterImage(srcImg.ge
t(), ctx, &offset)); |
1358 REPORTER_ASSERT(reporter, resultImg); | 1359 REPORTER_ASSERT(reporter, resultImg); |
1359 REPORTER_ASSERT(reporter, offset.fX == 1 && offset.fY == 0); | 1360 REPORTER_ASSERT(reporter, offset.fX == 1 && offset.fY == 0); |
1360 } | 1361 } |
1361 | 1362 |
1362 DEF_TEST(ComposedImageFilterOffset, reporter) { | 1363 DEF_TEST(ComposedImageFilterOffset, reporter) { |
1363 run_raster_test(reporter, 100, test_composed_imagefilter_offset); | 1364 run_raster_test(reporter, 100, test_composed_imagefilter_offset); |
1364 } | 1365 } |
1365 | 1366 |
1366 #if SK_SUPPORT_GPU | 1367 #if SK_SUPPORT_GPU |
1367 DEF_GPUTEST_FOR_NATIVE_CONTEXT(ComposedImageFilterOffset_Gpu, reporter, context)
{ | 1368 DEF_GPUTEST_FOR_NATIVE_CONTEXT(ComposedImageFilterOffset_Gpu, reporter, context)
{ |
1368 run_gpu_test(reporter, context, 100, test_composed_imagefilter_offset); | 1369 run_gpu_test(reporter, context, 100, test_composed_imagefilter_offset); |
1369 } | 1370 } |
1370 #endif | 1371 #endif |
1371 | 1372 |
1372 static void test_partial_crop_rect(SkImageFilter::Proxy* proxy, | 1373 static void test_partial_crop_rect(SkImageFilter::Proxy* proxy, |
1373 skiatest::Reporter* reporter, | 1374 skiatest::Reporter* reporter, |
1374 GrContext* context) { | 1375 GrContext* context) { |
1375 SkAutoTUnref<SkSpecialImage> srcImg(create_empty_special_image(context, prox
y, 100)); | 1376 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, proxy, 100)
); |
1376 | 1377 |
1377 SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(100, 0, 20, 30), | 1378 SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(100, 0, 20, 30), |
1378 SkImageFilter::CropRect::kHasWidth_CropEdge | SkImageFilter::CropRect::k
HasHeight_CropEdge); | 1379 SkImageFilter::CropRect::kHasWidth_CropEdge | SkImageFilter::CropRect::k
HasHeight_CropEdge); |
1379 SkAutoTUnref<SkImageFilter> filter(make_grayscale(nullptr, &cropRect)); | 1380 SkAutoTUnref<SkImageFilter> filter(make_grayscale(nullptr, &cropRect)); |
1380 SkIPoint offset; | 1381 SkIPoint offset; |
1381 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(100, 100), nullptr
); | 1382 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(100, 100), nullptr
); |
1382 | 1383 |
1383 SkAutoTUnref<SkSpecialImage> resultImg(filter->filterImage(srcImg, ctx, &off
set)); | 1384 SkAutoTUnref<SkSpecialImage> resultImg(filter->filterImage(srcImg.get(), ctx
, &offset)); |
1384 REPORTER_ASSERT(reporter, resultImg); | 1385 REPORTER_ASSERT(reporter, resultImg); |
1385 | 1386 |
1386 REPORTER_ASSERT(reporter, offset.fX == 0); | 1387 REPORTER_ASSERT(reporter, offset.fX == 0); |
1387 REPORTER_ASSERT(reporter, offset.fY == 0); | 1388 REPORTER_ASSERT(reporter, offset.fY == 0); |
1388 REPORTER_ASSERT(reporter, resultImg->width() == 20); | 1389 REPORTER_ASSERT(reporter, resultImg->width() == 20); |
1389 REPORTER_ASSERT(reporter, resultImg->height() == 30); | 1390 REPORTER_ASSERT(reporter, resultImg->height() == 30); |
1390 } | 1391 } |
1391 | 1392 |
1392 DEF_TEST(PartialCropRect, reporter) { | 1393 DEF_TEST(PartialCropRect, reporter) { |
1393 run_raster_test(reporter, 100, test_partial_crop_rect); | 1394 run_raster_test(reporter, 100, test_partial_crop_rect); |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1554 test_xfermode_cropped_input(&canvas, reporter); | 1555 test_xfermode_cropped_input(&canvas, reporter); |
1555 } | 1556 } |
1556 | 1557 |
1557 DEF_GPUTEST_FOR_ALL_CONTEXTS(BlurLargeImage_Gpu, reporter, context) { | 1558 DEF_GPUTEST_FOR_ALL_CONTEXTS(BlurLargeImage_Gpu, reporter, context) { |
1558 SkAutoTUnref<SkSurface> surface( | 1559 SkAutoTUnref<SkSurface> surface( |
1559 SkSurface::NewRenderTarget(context, SkBudgeted::kYes, | 1560 SkSurface::NewRenderTarget(context, SkBudgeted::kYes, |
1560 SkImageInfo::MakeN32Premul(100, 100))); | 1561 SkImageInfo::MakeN32Premul(100, 100))); |
1561 test_large_blur_input(reporter, surface->getCanvas()); | 1562 test_large_blur_input(reporter, surface->getCanvas()); |
1562 } | 1563 } |
1563 #endif | 1564 #endif |
OLD | NEW |