| Index: tests/ImageFilterTest.cpp
|
| diff --git a/tests/ImageFilterTest.cpp b/tests/ImageFilterTest.cpp
|
| index 20bf0aa6d3a0aded8843c45cb5a04e571578d9da..63e3aaa6f0e120c401dcfd32ea1f692c6d60a299 100644
|
| --- a/tests/ImageFilterTest.cpp
|
| +++ b/tests/ImageFilterTest.cpp
|
| @@ -264,14 +264,13 @@ DEF_TEST(ImageFilter, reporter) {
|
| }
|
| }
|
|
|
| -static void test_crop_rects(SkBaseDevice* device, skiatest::Reporter* reporter) {
|
| +static void test_crop_rects(SkImageFilter::Proxy* proxy, skiatest::Reporter* reporter) {
|
| // Check that all filters offset to their absolute crop rect,
|
| // unaffected by the input crop rect.
|
| // Tests pass by not asserting.
|
| SkBitmap bitmap;
|
| bitmap.allocN32Pixels(100, 100);
|
| bitmap.eraseARGB(0, 0, 0, 0);
|
| - SkImageFilter::Proxy proxy(device, SkSurfaceProps(SkSurfaceProps::kLegacyFontHost_InitType));
|
|
|
| SkImageFilter::CropRect inputCropRect(SkRect::MakeXYWH(8, 13, 80, 80));
|
| SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(20, 30, 60, 60));
|
| @@ -316,7 +315,7 @@ static void test_crop_rects(SkBaseDevice* device, skiatest::Reporter* reporter)
|
| SkString str;
|
| str.printf("filter %d", static_cast<int>(i));
|
| SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeLargest(), NULL);
|
| - REPORTER_ASSERT_MESSAGE(reporter, filter->filterImage(&proxy, bitmap, ctx,
|
| + REPORTER_ASSERT_MESSAGE(reporter, filter->filterImage(proxy, bitmap, ctx,
|
| &result, &offset), str.c_str());
|
| REPORTER_ASSERT_MESSAGE(reporter, offset.fX == 20 && offset.fY == 30, str.c_str());
|
| }
|
| @@ -347,11 +346,10 @@ static SkBitmap make_gradient_circle(int width, int height) {
|
| return bitmap;
|
| }
|
|
|
| -static void test_negative_blur_sigma(SkBaseDevice* device, skiatest::Reporter* reporter) {
|
| +static void test_negative_blur_sigma(SkImageFilter::Proxy* proxy, skiatest::Reporter* reporter) {
|
| // Check that SkBlurImageFilter will accept a negative sigma, either in
|
| // the given arguments or after CTM application.
|
| int width = 32, height = 32;
|
| - SkImageFilter::Proxy proxy(device, SkSurfaceProps(SkSurfaceProps::kLegacyFontHost_InitType));
|
| SkScalar five = SkIntToScalar(5);
|
|
|
| SkAutoTUnref<SkBlurImageFilter> positiveFilter(
|
| @@ -367,13 +365,13 @@ static void test_negative_blur_sigma(SkBaseDevice* device, skiatest::Reporter* r
|
| SkBitmap positiveResult2, negativeResult2;
|
| SkIPoint offset;
|
| SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeLargest(), NULL);
|
| - positiveFilter->filterImage(&proxy, gradient, ctx, &positiveResult1, &offset);
|
| - negativeFilter->filterImage(&proxy, gradient, ctx, &negativeResult1, &offset);
|
| + positiveFilter->filterImage(proxy, gradient, ctx, &positiveResult1, &offset);
|
| + negativeFilter->filterImage(proxy, gradient, ctx, &negativeResult1, &offset);
|
| SkMatrix negativeScale;
|
| negativeScale.setScale(-SK_Scalar1, SK_Scalar1);
|
| SkImageFilter::Context negativeCTX(negativeScale, SkIRect::MakeLargest(), NULL);
|
| - positiveFilter->filterImage(&proxy, gradient, negativeCTX, &negativeResult2, &offset);
|
| - negativeFilter->filterImage(&proxy, gradient, negativeCTX, &positiveResult2, &offset);
|
| + positiveFilter->filterImage(proxy, gradient, negativeCTX, &negativeResult2, &offset);
|
| + negativeFilter->filterImage(proxy, gradient, negativeCTX, &positiveResult2, &offset);
|
| SkAutoLockPixels lockP1(positiveResult1);
|
| SkAutoLockPixels lockP2(positiveResult2);
|
| SkAutoLockPixels lockN1(negativeResult1);
|
| @@ -398,10 +396,13 @@ static void test_negative_blur_sigma(SkBaseDevice* device, skiatest::Reporter* r
|
| }
|
|
|
| DEF_TEST(TestNegativeBlurSigma, reporter) {
|
| - SkBitmap temp;
|
| - temp.allocN32Pixels(100, 100);
|
| - SkBitmapDevice device(temp);
|
| - test_negative_blur_sigma(&device, reporter);
|
| + const SkImageInfo info = SkImageInfo::MakeN32Premul(100, 100);
|
| + const SkSurfaceProps props(SkSurfaceProps::kLegacyFontHost_InitType);
|
| +
|
| + SkAutoTUnref<SkBaseDevice> device(SkBitmapDevice::Create(info, props));
|
| + SkImageFilter::Proxy proxy(device, props);
|
| +
|
| + test_negative_blur_sigma(&proxy, reporter);
|
| }
|
|
|
| DEF_TEST(ImageFilterDrawTiled, reporter) {
|
| @@ -768,17 +769,19 @@ DEF_TEST(ImageFilterMatrixConvolutionBorder, reporter) {
|
| }
|
|
|
| DEF_TEST(ImageFilterCropRect, reporter) {
|
| - SkBitmap temp;
|
| - temp.allocN32Pixels(100, 100);
|
| - SkBitmapDevice device(temp);
|
| - test_crop_rects(&device, reporter);
|
| + const SkImageInfo info = SkImageInfo::MakeN32Premul(100, 100);
|
| + const SkSurfaceProps props(SkSurfaceProps::kLegacyFontHost_InitType);
|
| +
|
| + SkAutoTUnref<SkBaseDevice> device(SkBitmapDevice::Create(info, props));
|
| + SkImageFilter::Proxy proxy(device, props);
|
| +
|
| + test_crop_rects(&proxy, reporter);
|
| }
|
|
|
| DEF_TEST(ImageFilterMatrix, reporter) {
|
| SkBitmap temp;
|
| temp.allocN32Pixels(100, 100);
|
| - SkBitmapDevice device(temp);
|
| - SkCanvas canvas(&device);
|
| + SkCanvas canvas(temp);
|
| canvas.scale(SkIntToScalar(2), SkIntToScalar(2));
|
|
|
| SkMatrix expectedMatrix = canvas.getTotalMatrix();
|
| @@ -833,8 +836,7 @@ DEF_TEST(ImageFilterCrossProcessPictureImageFilter, reporter) {
|
|
|
| SkBitmap bitmap;
|
| bitmap.allocN32Pixels(1, 1);
|
| - SkBitmapDevice device(bitmap);
|
| - SkCanvas canvas(&device);
|
| + SkCanvas canvas(bitmap);
|
|
|
| // The result here should be green, since the filter replaces the primitive's red interior.
|
| canvas.clear(0x0);
|
| @@ -876,15 +878,14 @@ DEF_TEST(ImageFilterClippedPictureImageFilter, reporter) {
|
| recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(1, 1)), greenPaint);
|
| SkAutoTUnref<SkPicture> picture(recorder.endRecording());
|
|
|
| - SkAutoTUnref<SkImageFilter> imageFilter(
|
| - SkPictureImageFilter::Create(picture.get()));
|
| + SkAutoTUnref<SkImageFilter> imageFilter(SkPictureImageFilter::Create(picture.get()));
|
|
|
| SkBitmap result;
|
| SkIPoint offset;
|
| SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeXYWH(1, 1, 1, 1), NULL);
|
| SkBitmap bitmap;
|
| bitmap.allocN32Pixels(2, 2);
|
| - SkBitmapDevice device(bitmap);
|
| + SkBitmapDevice device(bitmap, SkSurfaceProps(SkSurfaceProps::kLegacyFontHost_InitType));
|
| SkImageFilter::Proxy proxy(&device, SkSurfaceProps(SkSurfaceProps::kLegacyFontHost_InitType));
|
| REPORTER_ASSERT(reporter, !imageFilter->filterImage(&proxy, bitmap, ctx, &result, &offset));
|
| }
|
| @@ -895,8 +896,7 @@ DEF_TEST(ImageFilterEmptySaveLayer, reporter) {
|
|
|
| SkBitmap bitmap;
|
| bitmap.allocN32Pixels(10, 10);
|
| - SkBitmapDevice device(bitmap);
|
| - SkCanvas canvas(&device);
|
| + SkCanvas canvas(bitmap);
|
|
|
| SkRTreeFactory factory;
|
| SkPictureRecorder recorder;
|
| @@ -943,9 +943,7 @@ DEF_TEST(ImageFilterEmptySaveLayer, reporter) {
|
| REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN);
|
| }
|
|
|
| -static void test_huge_blur(SkBaseDevice* device, skiatest::Reporter* reporter) {
|
| - SkCanvas canvas(device);
|
| -
|
| +static void test_huge_blur(SkCanvas* canvas, skiatest::Reporter* reporter) {
|
| SkBitmap bitmap;
|
| bitmap.allocN32Pixels(100, 100);
|
| bitmap.eraseARGB(0, 0, 0, 0);
|
| @@ -955,14 +953,14 @@ static void test_huge_blur(SkBaseDevice* device, skiatest::Reporter* reporter) {
|
|
|
| SkPaint paint;
|
| paint.setImageFilter(blur);
|
| - canvas.drawSprite(bitmap, 0, 0, &paint);
|
| + canvas->drawSprite(bitmap, 0, 0, &paint);
|
| }
|
|
|
| DEF_TEST(HugeBlurImageFilter, reporter) {
|
| SkBitmap temp;
|
| temp.allocN32Pixels(100, 100);
|
| - SkBitmapDevice device(temp);
|
| - test_huge_blur(&device, reporter);
|
| + SkCanvas canvas(temp);
|
| + test_huge_blur(&canvas, reporter);
|
| }
|
|
|
| DEF_TEST(MatrixConvolutionSanityTest, reporter) {
|
| @@ -1019,9 +1017,8 @@ DEF_TEST(MatrixConvolutionSanityTest, reporter) {
|
| REPORTER_ASSERT(reporter, NULL == conv.get());
|
| }
|
|
|
| -static void test_xfermode_cropped_input(SkBaseDevice* device, skiatest::Reporter* reporter) {
|
| - SkCanvas canvas(device);
|
| - canvas.clear(0);
|
| +static void test_xfermode_cropped_input(SkCanvas* canvas, skiatest::Reporter* reporter) {
|
| + canvas->clear(0);
|
|
|
| SkBitmap bitmap;
|
| bitmap.allocN32Pixels(1, 1);
|
| @@ -1047,29 +1044,28 @@ static void test_xfermode_cropped_input(SkBaseDevice* device, skiatest::Reporter
|
|
|
| SkPaint paint;
|
| paint.setImageFilter(xfermodeNoFg);
|
| - canvas.drawSprite(bitmap, 0, 0, &paint);
|
| + canvas->drawSprite(bitmap, 0, 0, &paint);
|
|
|
| uint32_t pixel;
|
| SkImageInfo info = SkImageInfo::Make(1, 1, kBGRA_8888_SkColorType, kUnpremul_SkAlphaType);
|
| - canvas.readPixels(info, &pixel, 4, 0, 0);
|
| + canvas->readPixels(info, &pixel, 4, 0, 0);
|
| REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN);
|
|
|
| paint.setImageFilter(xfermodeNoBg);
|
| - canvas.drawSprite(bitmap, 0, 0, &paint);
|
| - canvas.readPixels(info, &pixel, 4, 0, 0);
|
| + canvas->drawSprite(bitmap, 0, 0, &paint);
|
| + canvas->readPixels(info, &pixel, 4, 0, 0);
|
| REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN);
|
|
|
| paint.setImageFilter(xfermodeNoFgNoBg);
|
| - canvas.drawSprite(bitmap, 0, 0, &paint);
|
| - canvas.readPixels(info, &pixel, 4, 0, 0);
|
| + canvas->drawSprite(bitmap, 0, 0, &paint);
|
| + canvas->readPixels(info, &pixel, 4, 0, 0);
|
| REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN);
|
| }
|
|
|
| DEF_TEST(ImageFilterNestedSaveLayer, reporter) {
|
| SkBitmap temp;
|
| temp.allocN32Pixels(50, 50);
|
| - SkBitmapDevice device(temp);
|
| - SkCanvas canvas(&device);
|
| + SkCanvas canvas(temp);
|
| canvas.clear(0x0);
|
|
|
| SkBitmap bitmap;
|
| @@ -1119,15 +1115,15 @@ DEF_TEST(ImageFilterNestedSaveLayer, reporter) {
|
| DEF_TEST(XfermodeImageFilterCroppedInput, reporter) {
|
| SkBitmap temp;
|
| temp.allocN32Pixels(100, 100);
|
| - SkBitmapDevice device(temp);
|
| - test_xfermode_cropped_input(&device, reporter);
|
| + SkCanvas canvas(temp);
|
| + test_xfermode_cropped_input(&canvas, reporter);
|
| }
|
|
|
| DEF_TEST(ComposedImageFilterOffset, reporter) {
|
| SkBitmap bitmap;
|
| bitmap.allocN32Pixels(100, 100);
|
| bitmap.eraseARGB(0, 0, 0, 0);
|
| - SkBitmapDevice device(bitmap);
|
| + SkBitmapDevice device(bitmap, SkSurfaceProps(SkSurfaceProps::kLegacyFontHost_InitType));
|
| SkImageFilter::Proxy proxy(&device, SkSurfaceProps(SkSurfaceProps::kLegacyFontHost_InitType));
|
|
|
| SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(1, 0, 20, 20));
|
| @@ -1154,7 +1150,9 @@ DEF_GPUTEST(ImageFilterCropRectGPU, reporter, factory) {
|
| SkImageInfo::MakeN32Premul(100, 100),
|
| 0,
|
| &gProps));
|
| - test_crop_rects(device, reporter);
|
| + SkImageFilter::Proxy proxy(device, gProps);
|
| +
|
| + test_crop_rects(&proxy, reporter);
|
| }
|
|
|
| DEF_GPUTEST(HugeBlurImageFilterGPU, reporter, factory) {
|
| @@ -1167,7 +1165,9 @@ DEF_GPUTEST(HugeBlurImageFilterGPU, reporter, factory) {
|
| SkImageInfo::MakeN32Premul(100, 100),
|
| 0,
|
| &gProps));
|
| - test_huge_blur(device, reporter);
|
| + SkCanvas canvas(device);
|
| +
|
| + test_huge_blur(&canvas, reporter);
|
| }
|
|
|
| DEF_GPUTEST(XfermodeImageFilterCroppedInputGPU, reporter, factory) {
|
| @@ -1180,7 +1180,9 @@ DEF_GPUTEST(XfermodeImageFilterCroppedInputGPU, reporter, factory) {
|
| SkImageInfo::MakeN32Premul(1, 1),
|
| 0,
|
| &gProps));
|
| - test_xfermode_cropped_input(device, reporter);
|
| + SkCanvas canvas(device);
|
| +
|
| + test_xfermode_cropped_input(&canvas, reporter);
|
| }
|
|
|
| DEF_GPUTEST(TestNegativeBlurSigmaGPU, reporter, factory) {
|
| @@ -1193,6 +1195,8 @@ DEF_GPUTEST(TestNegativeBlurSigmaGPU, reporter, factory) {
|
| SkImageInfo::MakeN32Premul(1, 1),
|
| 0,
|
| &gProps));
|
| - test_negative_blur_sigma(device, reporter);
|
| + SkImageFilter::Proxy proxy(device, gProps);
|
| +
|
| + test_negative_blur_sigma(&proxy, reporter);
|
| }
|
| #endif
|
|
|