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

Side by Side Diff: tests/ImageFilterTest.cpp

Issue 1842243002: Update SkImageSource to sk_sp (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: clean up 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
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 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 "SkBitmap.h" 8 #include "SkBitmap.h"
9 #include "SkBitmapDevice.h" 9 #include "SkBitmapDevice.h"
10 #include "SkBlurImageFilter.h" 10 #include "SkBlurImageFilter.h"
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 SkScalar kernel[9] = { 111 SkScalar kernel[9] = {
112 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1), 112 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1),
113 SkIntToScalar( 1), SkIntToScalar(-7), SkIntToScalar( 1), 113 SkIntToScalar( 1), SkIntToScalar(-7), SkIntToScalar( 1),
114 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1), 114 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1),
115 }; 115 };
116 const SkISize kernelSize = SkISize::Make(3, 3); 116 const SkISize kernelSize = SkISize::Make(3, 3);
117 const SkScalar gain = SK_Scalar1, bias = 0; 117 const SkScalar gain = SK_Scalar1, bias = 0;
118 const SkScalar five = SkIntToScalar(5); 118 const SkScalar five = SkIntToScalar(5);
119 119
120 sk_sp<SkImage> gradientImage(SkImage::MakeFromBitmap(make_gradient_circl e(64, 64))); 120 sk_sp<SkImage> gradientImage(SkImage::MakeFromBitmap(make_gradient_circl e(64, 64)));
121 SkAutoTUnref<SkImageFilter> gradientSource(SkImageSource::Create(gradien tImage.get())); 121 sk_sp<SkImageFilter> gradientSource(SkImageSource::Make(std::move(gradie ntImage)));
122 SkAutoTUnref<SkImageFilter> blur(SkBlurImageFilter::Create(five, five, i nput)); 122 sk_sp<SkImageFilter> blur(SkBlurImageFilter::Create(five, five, input));
123 SkMatrix matrix; 123 SkMatrix matrix;
124 124
125 matrix.setTranslate(SK_Scalar1, SK_Scalar1); 125 matrix.setTranslate(SK_Scalar1, SK_Scalar1);
126 matrix.postRotate(SkIntToScalar(45), SK_Scalar1, SK_Scalar1); 126 matrix.postRotate(SkIntToScalar(45), SK_Scalar1, SK_Scalar1);
127 127
128 SkRTreeFactory factory; 128 SkRTreeFactory factory;
129 SkPictureRecorder recorder; 129 SkPictureRecorder recorder;
130 SkCanvas* recordingCanvas = recorder.beginRecording(64, 64, &factory, 0) ; 130 SkCanvas* recordingCanvas = recorder.beginRecording(64, 64, &factory, 0) ;
131 131
132 SkPaint greenPaint; 132 SkPaint greenPaint;
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 420
421 { 421 {
422 // This tests for : 422 // This tests for :
423 // 1 ) location at (0,0,1) 423 // 1 ) location at (0,0,1)
424 SkPoint3 location = SkPoint3::Make(0, 0, SK_Scalar1); 424 SkPoint3 location = SkPoint3::Make(0, 0, SK_Scalar1);
425 // 2 ) location and target at same value 425 // 2 ) location and target at same value
426 SkPoint3 target = SkPoint3::Make(location.fX, location.fY, location. fZ); 426 SkPoint3 target = SkPoint3::Make(location.fX, location.fY, location. fZ);
427 // 3 ) large negative specular exponent value 427 // 3 ) large negative specular exponent value
428 SkScalar specularExponent = -1000; 428 SkScalar specularExponent = -1000;
429 429
430 SkAutoTUnref<SkImageFilter> bmSrc(SkImageSource::Create(image.get()) ); 430 sk_sp<SkImageFilter> bmSrc(SkImageSource::Make(std::move(image)));
431 SkPaint paint; 431 SkPaint paint;
432 paint.setImageFilter(SkLightingImageFilter::CreateSpotLitSpecular( 432 paint.setImageFilter(SkLightingImageFilter::CreateSpotLitSpecular(
433 location, target, specularExponent, 180, 433 location, target, specularExponent, 180,
434 0xFFFFFFFF, SK_Scalar1, SK_Scalar1, SK_Scalar1, 434 0xFFFFFFFF, SK_Scalar1, SK_Scalar1, SK_Scalar1,
435 bmSrc))->unref(); 435 bmSrc.get()))->unref();
436 SkCanvas canvas(result); 436 SkCanvas canvas(result);
437 SkRect r = SkRect::MakeWH(SkIntToScalar(kBitmapSize), 437 SkRect r = SkRect::MakeWH(SkIntToScalar(kBitmapSize),
438 SkIntToScalar(kBitmapSize)); 438 SkIntToScalar(kBitmapSize));
439 canvas.drawRect(r, paint); 439 canvas.drawRect(r, paint);
440 } 440 }
441 } 441 }
442 } 442 }
443 443
444 static void test_crop_rects(SkImageFilter::Proxy* proxy, 444 static void test_crop_rects(SkImageFilter::Proxy* proxy,
445 skiatest::Reporter* reporter, 445 skiatest::Reporter* reporter,
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 } 819 }
820 } 820 }
821 821
822 static void test_imagefilter_merge_result_size(SkImageFilter::Proxy* proxy, 822 static void test_imagefilter_merge_result_size(SkImageFilter::Proxy* proxy,
823 skiatest::Reporter* reporter, 823 skiatest::Reporter* reporter,
824 GrContext* context) { 824 GrContext* context) {
825 SkBitmap greenBM; 825 SkBitmap greenBM;
826 greenBM.allocN32Pixels(20, 20); 826 greenBM.allocN32Pixels(20, 20);
827 greenBM.eraseColor(SK_ColorGREEN); 827 greenBM.eraseColor(SK_ColorGREEN);
828 sk_sp<SkImage> greenImage(SkImage::MakeFromBitmap(greenBM)); 828 sk_sp<SkImage> greenImage(SkImage::MakeFromBitmap(greenBM));
829 sk_sp<SkImageFilter> source(SkImageSource::Create(greenImage.get())); 829 sk_sp<SkImageFilter> source(SkImageSource::Make(std::move(greenImage)));
830 sk_sp<SkImageFilter> merge(SkMergeImageFilter::Make(source, source)); 830 sk_sp<SkImageFilter> merge(SkMergeImageFilter::Make(source, source));
831 831
832 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, proxy, 1)); 832 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, proxy, 1));
833 833
834 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);
835 SkIPoint offset; 835 SkIPoint offset;
836 836
837 sk_sp<SkSpecialImage> resultImg(merge->filterImage(srcImg.get(), ctx, &offse t)); 837 sk_sp<SkSpecialImage> resultImg(merge->filterImage(srcImg.get(), ctx, &offse t));
838 REPORTER_ASSERT(reporter, resultImg); 838 REPORTER_ASSERT(reporter, resultImg);
839 839
(...skipping 645 matching lines...) Expand 10 before | Expand all | Expand 10 after
1485 SkAutoTUnref<SkImageFilter> forceOpaque(SkColorFilterImageFilter::Create(for ceOpaqueCF.get())); 1485 SkAutoTUnref<SkImageFilter> forceOpaque(SkColorFilterImageFilter::Create(for ceOpaqueCF.get()));
1486 REPORTER_ASSERT(reporter, forceOpaqueCF->affectsTransparentBlack()); 1486 REPORTER_ASSERT(reporter, forceOpaqueCF->affectsTransparentBlack());
1487 REPORTER_ASSERT(reporter, !forceOpaque->canComputeFastBounds()); 1487 REPORTER_ASSERT(reporter, !forceOpaque->canComputeFastBounds());
1488 } 1488 }
1489 1489
1490 // Verify that SkImageSource survives serialization 1490 // Verify that SkImageSource survives serialization
1491 DEF_TEST(ImageFilterImageSourceSerialization, reporter) { 1491 DEF_TEST(ImageFilterImageSourceSerialization, reporter) {
1492 auto surface(SkSurface::MakeRasterN32Premul(10, 10)); 1492 auto surface(SkSurface::MakeRasterN32Premul(10, 10));
1493 surface->getCanvas()->clear(SK_ColorGREEN); 1493 surface->getCanvas()->clear(SK_ColorGREEN);
1494 sk_sp<SkImage> image(surface->makeImageSnapshot()); 1494 sk_sp<SkImage> image(surface->makeImageSnapshot());
1495 SkAutoTUnref<SkImageFilter> filter(SkImageSource::Create(image.get())); 1495 sk_sp<SkImageFilter> filter(SkImageSource::Make(std::move(image)));
1496 1496
1497 SkAutoTUnref<SkData> data(SkValidatingSerializeFlattenable(filter)); 1497 sk_sp<SkData> data(SkValidatingSerializeFlattenable(filter.get()));
1498 SkAutoTUnref<SkFlattenable> flattenable(SkValidatingDeserializeFlattenable( 1498 sk_sp<SkFlattenable> flattenable(SkValidatingDeserializeFlattenable(
1499 data->data(), data->size(), SkImageFilter::GetFlattenableType())); 1499 data->data(), data->size(), SkImageFilter::GetFlattenableType()));
1500 SkImageFilter* unflattenedFilter = static_cast<SkImageFilter*>(flattenable.g et()); 1500 SkImageFilter* unflattenedFilter = static_cast<SkImageFilter*>(flattenable.g et());
1501 REPORTER_ASSERT(reporter, unflattenedFilter); 1501 REPORTER_ASSERT(reporter, unflattenedFilter);
1502 1502
1503 SkBitmap bm; 1503 SkBitmap bm;
1504 bm.allocN32Pixels(10, 10); 1504 bm.allocN32Pixels(10, 10);
1505 bm.eraseColor(SK_ColorBLUE); 1505 bm.eraseColor(SK_ColorBLUE);
1506 SkPaint paint; 1506 SkPaint paint;
1507 paint.setColor(SK_ColorRED); 1507 paint.setColor(SK_ColorRED);
1508 paint.setImageFilter(unflattenedFilter); 1508 paint.setImageFilter(unflattenedFilter);
(...skipping 20 matching lines...) Expand all
1529 ERRORF(reporter, "Failed to allocate large bmp."); 1529 ERRORF(reporter, "Failed to allocate large bmp.");
1530 return; 1530 return;
1531 } 1531 }
1532 1532
1533 sk_sp<SkImage> largeImage(SkImage::MakeFromBitmap(largeBmp)); 1533 sk_sp<SkImage> largeImage(SkImage::MakeFromBitmap(largeBmp));
1534 if (!largeImage) { 1534 if (!largeImage) {
1535 ERRORF(reporter, "Failed to create large image."); 1535 ERRORF(reporter, "Failed to create large image.");
1536 return; 1536 return;
1537 } 1537 }
1538 1538
1539 SkAutoTUnref<SkImageFilter> largeSource(SkImageSource::Create(largeImage.get ())); 1539 sk_sp<SkImageFilter> largeSource(SkImageSource::Make(std::move(largeImage))) ;
1540 if (!largeSource) { 1540 if (!largeSource) {
1541 ERRORF(reporter, "Failed to create large SkImageSource."); 1541 ERRORF(reporter, "Failed to create large SkImageSource.");
1542 return; 1542 return;
1543 } 1543 }
1544 1544
1545 SkAutoTUnref<SkImageFilter> blur(SkBlurImageFilter::Create(10.f, 10.f, large Source)); 1545 sk_sp<SkImageFilter> blur(SkBlurImageFilter::Create(10.f, 10.f, largeSource. get()));
1546 if (!blur) { 1546 if (!blur) {
1547 ERRORF(reporter, "Failed to create SkBlurImageFilter."); 1547 ERRORF(reporter, "Failed to create SkBlurImageFilter.");
1548 return; 1548 return;
1549 } 1549 }
1550 1550
1551 SkPaint paint; 1551 SkPaint paint;
1552 paint.setImageFilter(blur); 1552 paint.setImageFilter(std::move(blur));
1553 1553
1554 // This should not crash (http://crbug.com/570479). 1554 // This should not crash (http://crbug.com/570479).
1555 canvas->drawRect(SkRect::MakeIWH(largeW, largeH), paint); 1555 canvas->drawRect(SkRect::MakeIWH(largeW, largeH), paint);
1556 } 1556 }
1557 1557
1558 DEF_TEST(BlurLargeImage, reporter) { 1558 DEF_TEST(BlurLargeImage, reporter) {
1559 auto surface(SkSurface::MakeRaster(SkImageInfo::MakeN32Premul(100, 100))); 1559 auto surface(SkSurface::MakeRaster(SkImageInfo::MakeN32Premul(100, 100)));
1560 test_large_blur_input(reporter, surface->getCanvas()); 1560 test_large_blur_input(reporter, surface->getCanvas());
1561 } 1561 }
1562 1562
(...skipping 26 matching lines...) Expand all
1589 1589
1590 test_xfermode_cropped_input(&canvas, reporter); 1590 test_xfermode_cropped_input(&canvas, reporter);
1591 } 1591 }
1592 1592
1593 DEF_GPUTEST_FOR_ALL_CONTEXTS(BlurLargeImage_Gpu, reporter, context) { 1593 DEF_GPUTEST_FOR_ALL_CONTEXTS(BlurLargeImage_Gpu, reporter, context) {
1594 auto surface(SkSurface::MakeRenderTarget(context, SkBudgeted::kYes, 1594 auto surface(SkSurface::MakeRenderTarget(context, SkBudgeted::kYes,
1595 SkImageInfo::MakeN32Premul(100, 100 ))); 1595 SkImageInfo::MakeN32Premul(100, 100 )));
1596 test_large_blur_input(reporter, surface->getCanvas()); 1596 test_large_blur_input(reporter, surface->getCanvas());
1597 } 1597 }
1598 #endif 1598 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698