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

Side by Side Diff: tests/ImageFilterTest.cpp

Issue 2357273002: Add output format properties to SkImageFilter::Context (Closed)
Patch Set: Spelling Created 4 years, 3 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 | « src/pdf/SkPDFDevice.cpp ('k') | no next file » | 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 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 "SkBlurImageFilter.h" 9 #include "SkBlurImageFilter.h"
10 #include "SkCanvas.h" 10 #include "SkCanvas.h"
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 531
532 SkImageFilter::CropRect inputCropRect(SkRect::MakeXYWH(8, 13, 80, 80)); 532 SkImageFilter::CropRect inputCropRect(SkRect::MakeXYWH(8, 13, 80, 80));
533 SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(20, 30, 60, 60)); 533 SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(20, 30, 60, 60));
534 sk_sp<SkImageFilter> input(make_grayscale(nullptr, &inputCropRect)); 534 sk_sp<SkImageFilter> input(make_grayscale(nullptr, &inputCropRect));
535 535
536 FilterList filters(input, &cropRect); 536 FilterList filters(input, &cropRect);
537 537
538 for (int i = 0; i < filters.count(); ++i) { 538 for (int i = 0; i < filters.count(); ++i) {
539 SkImageFilter* filter = filters.getFilter(i); 539 SkImageFilter* filter = filters.getFilter(i);
540 SkIPoint offset; 540 SkIPoint offset;
541 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(100, 100), nul lptr); 541 SkImageFilter::OutputProperties noColorSpace(nullptr);
542 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(100, 100), nul lptr, noColorSpace);
542 sk_sp<SkSpecialImage> resultImg(filter->filterImage(srcImg.get(), ctx, & offset)); 543 sk_sp<SkSpecialImage> resultImg(filter->filterImage(srcImg.get(), ctx, & offset));
543 REPORTER_ASSERT_MESSAGE(reporter, resultImg, filters.getName(i)); 544 REPORTER_ASSERT_MESSAGE(reporter, resultImg, filters.getName(i));
544 REPORTER_ASSERT_MESSAGE(reporter, offset.fX == 20 && offset.fY == 30, fi lters.getName(i)); 545 REPORTER_ASSERT_MESSAGE(reporter, offset.fX == 20 && offset.fY == 30, fi lters.getName(i));
545 } 546 }
546 } 547 }
547 548
548 static void test_negative_blur_sigma(skiatest::Reporter* reporter, 549 static void test_negative_blur_sigma(skiatest::Reporter* reporter,
549 GrContext* context) { 550 GrContext* context) {
550 // Check that SkBlurImageFilter will accept a negative sigma, either in 551 // Check that SkBlurImageFilter will accept a negative sigma, either in
551 // the given arguments or after CTM application. 552 // the given arguments or after CTM application.
552 const int width = 32, height = 32; 553 const int width = 32, height = 32;
553 const SkScalar five = SkIntToScalar(5); 554 const SkScalar five = SkIntToScalar(5);
554 555
555 sk_sp<SkImageFilter> positiveFilter(SkBlurImageFilter::Make(five, five, null ptr)); 556 sk_sp<SkImageFilter> positiveFilter(SkBlurImageFilter::Make(five, five, null ptr));
556 sk_sp<SkImageFilter> negativeFilter(SkBlurImageFilter::Make(-five, five, nul lptr)); 557 sk_sp<SkImageFilter> negativeFilter(SkBlurImageFilter::Make(-five, five, nul lptr));
557 558
558 SkBitmap gradient = make_gradient_circle(width, height); 559 SkBitmap gradient = make_gradient_circle(width, height);
559 sk_sp<SkSpecialImage> imgSrc(SkSpecialImage::MakeFromRaster(SkIRect::MakeWH( width, height), 560 sk_sp<SkSpecialImage> imgSrc(SkSpecialImage::MakeFromRaster(SkIRect::MakeWH( width, height),
560 gradient)); 561 gradient));
561 562
562 SkIPoint offset; 563 SkIPoint offset;
563 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(32, 32), nullptr); 564 SkImageFilter::OutputProperties noColorSpace(nullptr);
565 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(32, 32), nullptr, noColorSpace);
564 566
565 sk_sp<SkSpecialImage> positiveResult1(positiveFilter->filterImage(imgSrc.get (), ctx, &offset)); 567 sk_sp<SkSpecialImage> positiveResult1(positiveFilter->filterImage(imgSrc.get (), ctx, &offset));
566 REPORTER_ASSERT(reporter, positiveResult1); 568 REPORTER_ASSERT(reporter, positiveResult1);
567 569
568 sk_sp<SkSpecialImage> negativeResult1(negativeFilter->filterImage(imgSrc.get (), ctx, &offset)); 570 sk_sp<SkSpecialImage> negativeResult1(negativeFilter->filterImage(imgSrc.get (), ctx, &offset));
569 REPORTER_ASSERT(reporter, negativeResult1); 571 REPORTER_ASSERT(reporter, negativeResult1);
570 572
571 SkMatrix negativeScale; 573 SkMatrix negativeScale;
572 negativeScale.setScale(-SK_Scalar1, SK_Scalar1); 574 negativeScale.setScale(-SK_Scalar1, SK_Scalar1);
573 SkImageFilter::Context negativeCTX(negativeScale, SkIRect::MakeWH(32, 32), n ullptr); 575 SkImageFilter::Context negativeCTX(negativeScale, SkIRect::MakeWH(32, 32), n ullptr,
576 noColorSpace);
574 577
575 sk_sp<SkSpecialImage> negativeResult2(positiveFilter->filterImage(imgSrc.get (), 578 sk_sp<SkSpecialImage> negativeResult2(positiveFilter->filterImage(imgSrc.get (),
576 negativeCT X, 579 negativeCT X,
577 &offset)); 580 &offset));
578 REPORTER_ASSERT(reporter, negativeResult2); 581 REPORTER_ASSERT(reporter, negativeResult2);
579 582
580 sk_sp<SkSpecialImage> positiveResult2(negativeFilter->filterImage(imgSrc.get (), 583 sk_sp<SkSpecialImage> positiveResult2(negativeFilter->filterImage(imgSrc.get (),
581 negativeCT X, 584 negativeCT X,
582 &offset)); 585 &offset));
583 REPORTER_ASSERT(reporter, positiveResult2); 586 REPORTER_ASSERT(reporter, positiveResult2);
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
634 // Check that SkBlurImageFilter with a zero sigma and a non-zero srcOffset w orks correctly. 637 // Check that SkBlurImageFilter with a zero sigma and a non-zero srcOffset w orks correctly.
635 SkImageFilter::CropRect cropRect(SkRect::Make(SkIRect::MakeXYWH(5, 0, 5, 10) )); 638 SkImageFilter::CropRect cropRect(SkRect::Make(SkIRect::MakeXYWH(5, 0, 5, 10) ));
636 sk_sp<SkImageFilter> input(SkOffsetImageFilter::Make(0, 0, nullptr, &cropRec t)); 639 sk_sp<SkImageFilter> input(SkOffsetImageFilter::Make(0, 0, nullptr, &cropRec t));
637 sk_sp<SkImageFilter> filter(SkBlurImageFilter::Make(0, 0, std::move(input), &cropRect)); 640 sk_sp<SkImageFilter> filter(SkBlurImageFilter::Make(0, 0, std::move(input), &cropRect));
638 641
639 sk_sp<SkSpecialSurface> surf(create_empty_special_surface(context, 10)); 642 sk_sp<SkSpecialSurface> surf(create_empty_special_surface(context, 10));
640 surf->getCanvas()->clear(SK_ColorGREEN); 643 surf->getCanvas()->clear(SK_ColorGREEN);
641 sk_sp<SkSpecialImage> image(surf->makeImageSnapshot()); 644 sk_sp<SkSpecialImage> image(surf->makeImageSnapshot());
642 645
643 SkIPoint offset; 646 SkIPoint offset;
644 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(32, 32), nullptr); 647 SkImageFilter::OutputProperties noColorSpace(nullptr);
648 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(32, 32), nullptr, noColorSpace);
645 649
646 sk_sp<SkSpecialImage> result(filter->filterImage(image.get(), ctx, &offset)) ; 650 sk_sp<SkSpecialImage> result(filter->filterImage(image.get(), ctx, &offset)) ;
647 REPORTER_ASSERT(reporter, offset.fX == 5 && offset.fY == 0); 651 REPORTER_ASSERT(reporter, offset.fX == 5 && offset.fY == 0);
648 REPORTER_ASSERT(reporter, result); 652 REPORTER_ASSERT(reporter, result);
649 REPORTER_ASSERT(reporter, result->width() == 5 && result->height() == 10); 653 REPORTER_ASSERT(reporter, result->width() == 5 && result->height() == 10);
650 654
651 SkBitmap resultBM; 655 SkBitmap resultBM;
652 656
653 REPORTER_ASSERT(reporter, result->getROPixels(&resultBM)); 657 REPORTER_ASSERT(reporter, result->getROPixels(&resultBM));
654 658
(...skipping 18 matching lines...) Expand all
673 test_zero_blur_sigma(reporter, ctxInfo.grContext()); 677 test_zero_blur_sigma(reporter, ctxInfo.grContext());
674 } 678 }
675 #endif 679 #endif
676 680
677 681
678 // Tests that, even when an upstream filter has returned null (due to failure or clipping), a 682 // Tests that, even when an upstream filter has returned null (due to failure or clipping), a
679 // downstream filter that affects transparent black still does so even with a nu llptr input. 683 // downstream filter that affects transparent black still does so even with a nu llptr input.
680 static void test_fail_affects_transparent_black(skiatest::Reporter* reporter, Gr Context* context) { 684 static void test_fail_affects_transparent_black(skiatest::Reporter* reporter, Gr Context* context) {
681 sk_sp<FailImageFilter> failFilter(new FailImageFilter()); 685 sk_sp<FailImageFilter> failFilter(new FailImageFilter());
682 sk_sp<SkSpecialImage> source(create_empty_special_image(context, 5)); 686 sk_sp<SkSpecialImage> source(create_empty_special_image(context, 5));
683 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeXYWH(0, 0, 1, 1), nul lptr); 687 SkImageFilter::OutputProperties noColorSpace(nullptr);
688 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeXYWH(0, 0, 1, 1), nul lptr, noColorSpace);
684 sk_sp<SkColorFilter> green(SkColorFilter::MakeModeFilter(SK_ColorGREEN, SkXf ermode::kSrc_Mode)); 689 sk_sp<SkColorFilter> green(SkColorFilter::MakeModeFilter(SK_ColorGREEN, SkXf ermode::kSrc_Mode));
685 SkASSERT(green->affectsTransparentBlack()); 690 SkASSERT(green->affectsTransparentBlack());
686 sk_sp<SkImageFilter> greenFilter(SkColorFilterImageFilter::Make(std::move(gr een), 691 sk_sp<SkImageFilter> greenFilter(SkColorFilterImageFilter::Make(std::move(gr een),
687 std::move(fa ilFilter))); 692 std::move(fa ilFilter)));
688 SkIPoint offset; 693 SkIPoint offset;
689 sk_sp<SkSpecialImage> result(greenFilter->filterImage(source.get(), ctx, &of fset)); 694 sk_sp<SkSpecialImage> result(greenFilter->filterImage(source.get(), ctx, &of fset));
690 REPORTER_ASSERT(reporter, nullptr != result.get()); 695 REPORTER_ASSERT(reporter, nullptr != result.get());
691 if (result.get()) { 696 if (result.get()) {
692 SkBitmap resultBM; 697 SkBitmap resultBM;
693 REPORTER_ASSERT(reporter, result->getROPixels(&resultBM)); 698 REPORTER_ASSERT(reporter, result->getROPixels(&resultBM));
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
952 static void test_imagefilter_merge_result_size(skiatest::Reporter* reporter, GrC ontext* context) { 957 static void test_imagefilter_merge_result_size(skiatest::Reporter* reporter, GrC ontext* context) {
953 SkBitmap greenBM; 958 SkBitmap greenBM;
954 greenBM.allocN32Pixels(20, 20); 959 greenBM.allocN32Pixels(20, 20);
955 greenBM.eraseColor(SK_ColorGREEN); 960 greenBM.eraseColor(SK_ColorGREEN);
956 sk_sp<SkImage> greenImage(SkImage::MakeFromBitmap(greenBM)); 961 sk_sp<SkImage> greenImage(SkImage::MakeFromBitmap(greenBM));
957 sk_sp<SkImageFilter> source(SkImageSource::Make(std::move(greenImage))); 962 sk_sp<SkImageFilter> source(SkImageSource::Make(std::move(greenImage)));
958 sk_sp<SkImageFilter> merge(SkMergeImageFilter::Make(source, source)); 963 sk_sp<SkImageFilter> merge(SkMergeImageFilter::Make(source, source));
959 964
960 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, 1)); 965 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, 1));
961 966
962 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeXYWH(0, 0, 100, 100), nullptr); 967 SkImageFilter::OutputProperties noColorSpace(nullptr);
968 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeXYWH(0, 0, 100, 100), nullptr,
969 noColorSpace);
963 SkIPoint offset; 970 SkIPoint offset;
964 971
965 sk_sp<SkSpecialImage> resultImg(merge->filterImage(srcImg.get(), ctx, &offse t)); 972 sk_sp<SkSpecialImage> resultImg(merge->filterImage(srcImg.get(), ctx, &offse t));
966 REPORTER_ASSERT(reporter, resultImg); 973 REPORTER_ASSERT(reporter, resultImg);
967 974
968 REPORTER_ASSERT(reporter, resultImg->width() == 20 && resultImg->height() == 20); 975 REPORTER_ASSERT(reporter, resultImg->width() == 20 && resultImg->height() == 20);
969 } 976 }
970 977
971 DEF_TEST(ImageFilterMergeResultSize, reporter) { 978 DEF_TEST(ImageFilterMergeResultSize, reporter) {
972 test_imagefilter_merge_result_size(reporter, nullptr); 979 test_imagefilter_merge_result_size(reporter, nullptr);
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
1121 1128
1122 sk_sp<SkImageFilter> filter(SkMatrixConvolutionImageFilter::Make( 1129 sk_sp<SkImageFilter> filter(SkMatrixConvolutionImageFilter::Make(
1123 kernelSize, identityKernel, gain, bias, kernelOffset, 1130 kernelSize, identityKernel, gain, bias, kernelOffset,
1124 SkMatrixConvolutionImageFilter::kClamp_T ileMode, 1131 SkMatrixConvolutionImageFilter::kClamp_T ileMode,
1125 true, nullptr)); 1132 true, nullptr));
1126 1133
1127 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, 100)); 1134 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, 100));
1128 SkASSERT(srcImg); 1135 SkASSERT(srcImg);
1129 1136
1130 SkIPoint offset; 1137 SkIPoint offset;
1131 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(100, 100), nullptr ); 1138 SkImageFilter::OutputProperties noColorSpace(nullptr);
1139 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(100, 100), nullptr , noColorSpace);
1132 sk_sp<SkSpecialImage> resultImg(filter->filterImage(srcImg.get(), ctx, &offs et)); 1140 sk_sp<SkSpecialImage> resultImg(filter->filterImage(srcImg.get(), ctx, &offs et));
1133 REPORTER_ASSERT(reporter, resultImg); 1141 REPORTER_ASSERT(reporter, resultImg);
1134 REPORTER_ASSERT(reporter, SkToBool(context) == resultImg->isTextureBacked()) ; 1142 REPORTER_ASSERT(reporter, SkToBool(context) == resultImg->isTextureBacked()) ;
1135 REPORTER_ASSERT(reporter, resultImg->width() == 100 && resultImg->height() = = 100); 1143 REPORTER_ASSERT(reporter, resultImg->width() == 100 && resultImg->height() = = 100);
1136 REPORTER_ASSERT(reporter, offset.fX == 0 && offset.fY == 0); 1144 REPORTER_ASSERT(reporter, offset.fX == 0 && offset.fY == 0);
1137 } 1145 }
1138 1146
1139 DEF_TEST(ImageFilterMatrixConvolutionBigKernel, reporter) { 1147 DEF_TEST(ImageFilterMatrixConvolutionBigKernel, reporter) {
1140 test_big_kernel(reporter, nullptr); 1148 test_big_kernel(reporter, nullptr);
1141 } 1149 }
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
1255 greenPaint.setColor(SK_ColorGREEN); 1263 greenPaint.setColor(SK_ColorGREEN);
1256 recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(1, 1)), greenPain t); 1264 recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(1, 1)), greenPain t);
1257 picture = recorder.finishRecordingAsPicture(); 1265 picture = recorder.finishRecordingAsPicture();
1258 } 1266 }
1259 1267
1260 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, 2)); 1268 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, 2));
1261 1269
1262 sk_sp<SkImageFilter> imageFilter(SkPictureImageFilter::Make(picture)); 1270 sk_sp<SkImageFilter> imageFilter(SkPictureImageFilter::Make(picture));
1263 1271
1264 SkIPoint offset; 1272 SkIPoint offset;
1265 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeXYWH(1, 1, 1, 1), nul lptr); 1273 SkImageFilter::OutputProperties noColorSpace(nullptr);
1274 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeXYWH(1, 1, 1, 1), nul lptr, noColorSpace);
1266 1275
1267 sk_sp<SkSpecialImage> resultImage(imageFilter->filterImage(srcImg.get(), ctx , &offset)); 1276 sk_sp<SkSpecialImage> resultImage(imageFilter->filterImage(srcImg.get(), ctx , &offset));
1268 REPORTER_ASSERT(reporter, !resultImage); 1277 REPORTER_ASSERT(reporter, !resultImage);
1269 } 1278 }
1270 1279
1271 DEF_TEST(ImageFilterClippedPictureImageFilter, reporter) { 1280 DEF_TEST(ImageFilterClippedPictureImageFilter, reporter) {
1272 test_clipped_picture_imagefilter(reporter, nullptr); 1281 test_clipped_picture_imagefilter(reporter, nullptr);
1273 } 1282 }
1274 1283
1275 #if SK_SUPPORT_GPU 1284 #if SK_SUPPORT_GPU
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
1511 static void test_composed_imagefilter_offset(skiatest::Reporter* reporter, GrCon text* context) { 1520 static void test_composed_imagefilter_offset(skiatest::Reporter* reporter, GrCon text* context) {
1512 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, 100)); 1521 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, 100));
1513 1522
1514 SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(1, 0, 20, 20)); 1523 SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(1, 0, 20, 20));
1515 sk_sp<SkImageFilter> offsetFilter(SkOffsetImageFilter::Make(0, 0, nullptr, & cropRect)); 1524 sk_sp<SkImageFilter> offsetFilter(SkOffsetImageFilter::Make(0, 0, nullptr, & cropRect));
1516 sk_sp<SkImageFilter> blurFilter(SkBlurImageFilter::Make(SK_Scalar1, SK_Scala r1, 1525 sk_sp<SkImageFilter> blurFilter(SkBlurImageFilter::Make(SK_Scalar1, SK_Scala r1,
1517 nullptr, &cropRect)) ; 1526 nullptr, &cropRect)) ;
1518 sk_sp<SkImageFilter> composedFilter(SkComposeImageFilter::Make(std::move(blu rFilter), 1527 sk_sp<SkImageFilter> composedFilter(SkComposeImageFilter::Make(std::move(blu rFilter),
1519 std::move(off setFilter))); 1528 std::move(off setFilter)));
1520 SkIPoint offset; 1529 SkIPoint offset;
1521 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(100, 100), nullptr ); 1530 SkImageFilter::OutputProperties noColorSpace(nullptr);
1531 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(100, 100), nullptr , noColorSpace);
1522 1532
1523 sk_sp<SkSpecialImage> resultImg(composedFilter->filterImage(srcImg.get(), ct x, &offset)); 1533 sk_sp<SkSpecialImage> resultImg(composedFilter->filterImage(srcImg.get(), ct x, &offset));
1524 REPORTER_ASSERT(reporter, resultImg); 1534 REPORTER_ASSERT(reporter, resultImg);
1525 REPORTER_ASSERT(reporter, offset.fX == 1 && offset.fY == 0); 1535 REPORTER_ASSERT(reporter, offset.fX == 1 && offset.fY == 0);
1526 } 1536 }
1527 1537
1528 DEF_TEST(ComposedImageFilterOffset, reporter) { 1538 DEF_TEST(ComposedImageFilterOffset, reporter) {
1529 test_composed_imagefilter_offset(reporter, nullptr); 1539 test_composed_imagefilter_offset(reporter, nullptr);
1530 } 1540 }
1531 1541
(...skipping 15 matching lines...) Expand all
1547 recordingCanvas->clipRect(SkRect::MakeXYWH(100, 0, 100, 100)); 1557 recordingCanvas->clipRect(SkRect::MakeXYWH(100, 0, 100, 100));
1548 recordingCanvas->clear(SK_ColorGREEN); 1558 recordingCanvas->clear(SK_ColorGREEN);
1549 sk_sp<SkPicture> picture(recorder.finishRecordingAsPicture()); 1559 sk_sp<SkPicture> picture(recorder.finishRecordingAsPicture());
1550 sk_sp<SkImageFilter> pictureFilter(SkPictureImageFilter::Make(picture)); 1560 sk_sp<SkImageFilter> pictureFilter(SkPictureImageFilter::Make(picture));
1551 SkImageFilter::CropRect cropRect(SkRect::MakeWH(100, 100)); 1561 SkImageFilter::CropRect cropRect(SkRect::MakeWH(100, 100));
1552 sk_sp<SkImageFilter> offsetFilter(SkOffsetImageFilter::Make(-100, 0, nullptr , &cropRect)); 1562 sk_sp<SkImageFilter> offsetFilter(SkOffsetImageFilter::Make(-100, 0, nullptr , &cropRect));
1553 sk_sp<SkImageFilter> composedFilter(SkComposeImageFilter::Make(std::move(off setFilter), 1563 sk_sp<SkImageFilter> composedFilter(SkComposeImageFilter::Make(std::move(off setFilter),
1554 std::move(pic tureFilter))); 1564 std::move(pic tureFilter)));
1555 1565
1556 sk_sp<SkSpecialImage> sourceImage(create_empty_special_image(context, 100)); 1566 sk_sp<SkSpecialImage> sourceImage(create_empty_special_image(context, 100));
1557 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(100, 100), nullptr ); 1567 SkImageFilter::OutputProperties noColorSpace(nullptr);
1568 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(100, 100), nullptr , noColorSpace);
1558 SkIPoint offset; 1569 SkIPoint offset;
1559 sk_sp<SkSpecialImage> result(composedFilter->filterImage(sourceImage.get(), ctx, &offset)); 1570 sk_sp<SkSpecialImage> result(composedFilter->filterImage(sourceImage.get(), ctx, &offset));
1560 REPORTER_ASSERT(reporter, offset.isZero()); 1571 REPORTER_ASSERT(reporter, offset.isZero());
1561 REPORTER_ASSERT(reporter, result); 1572 REPORTER_ASSERT(reporter, result);
1562 REPORTER_ASSERT(reporter, result->subset().size() == SkISize::Make(100, 100) ); 1573 REPORTER_ASSERT(reporter, result->subset().size() == SkISize::Make(100, 100) );
1563 1574
1564 SkBitmap resultBM; 1575 SkBitmap resultBM;
1565 REPORTER_ASSERT(reporter, result->getROPixels(&resultBM)); 1576 REPORTER_ASSERT(reporter, result->getROPixels(&resultBM));
1566 SkAutoLockPixels lock(resultBM); 1577 SkAutoLockPixels lock(resultBM);
1567 REPORTER_ASSERT(reporter, resultBM.getColor(50, 50) == SK_ColorGREEN); 1578 REPORTER_ASSERT(reporter, resultBM.getColor(50, 50) == SK_ColorGREEN);
1568 } 1579 }
1569 1580
1570 DEF_TEST(ComposedImageFilterBounds, reporter) { 1581 DEF_TEST(ComposedImageFilterBounds, reporter) {
1571 test_composed_imagefilter_bounds(reporter, nullptr); 1582 test_composed_imagefilter_bounds(reporter, nullptr);
1572 } 1583 }
1573 1584
1574 #if SK_SUPPORT_GPU 1585 #if SK_SUPPORT_GPU
1575 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ComposedImageFilterBounds_Gpu, reporter, ctxI nfo) { 1586 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ComposedImageFilterBounds_Gpu, reporter, ctxI nfo) {
1576 test_composed_imagefilter_bounds(reporter, ctxInfo.grContext()); 1587 test_composed_imagefilter_bounds(reporter, ctxInfo.grContext());
1577 } 1588 }
1578 #endif 1589 #endif
1579 1590
1580 static void test_partial_crop_rect(skiatest::Reporter* reporter, GrContext* cont ext) { 1591 static void test_partial_crop_rect(skiatest::Reporter* reporter, GrContext* cont ext) {
1581 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, 100)); 1592 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, 100));
1582 1593
1583 SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(100, 0, 20, 30), 1594 SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(100, 0, 20, 30),
1584 SkImageFilter::CropRect::kHasWidth_CropEdge | SkImageFilter::CropRect::k HasHeight_CropEdge); 1595 SkImageFilter::CropRect::kHasWidth_CropEdge | SkImageFilter::CropRect::k HasHeight_CropEdge);
1585 sk_sp<SkImageFilter> filter(make_grayscale(nullptr, &cropRect)); 1596 sk_sp<SkImageFilter> filter(make_grayscale(nullptr, &cropRect));
1586 SkIPoint offset; 1597 SkIPoint offset;
1587 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(100, 100), nullptr ); 1598 SkImageFilter::OutputProperties noColorSpace(nullptr);
1599 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeWH(100, 100), nullptr , noColorSpace);
1588 1600
1589 sk_sp<SkSpecialImage> resultImg(filter->filterImage(srcImg.get(), ctx, &offs et)); 1601 sk_sp<SkSpecialImage> resultImg(filter->filterImage(srcImg.get(), ctx, &offs et));
1590 REPORTER_ASSERT(reporter, resultImg); 1602 REPORTER_ASSERT(reporter, resultImg);
1591 1603
1592 REPORTER_ASSERT(reporter, offset.fX == 0); 1604 REPORTER_ASSERT(reporter, offset.fX == 0);
1593 REPORTER_ASSERT(reporter, offset.fY == 0); 1605 REPORTER_ASSERT(reporter, offset.fY == 0);
1594 REPORTER_ASSERT(reporter, resultImg->width() == 20); 1606 REPORTER_ASSERT(reporter, resultImg->width() == 20);
1595 REPORTER_ASSERT(reporter, resultImg->height() == 30); 1607 REPORTER_ASSERT(reporter, resultImg->height() == 30);
1596 } 1608 }
1597 1609
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
1854 { SkColorFilterImageFilter::Make(cf, blif), false }, 1866 { SkColorFilterImageFilter::Make(cf, blif), false },
1855 { SkMergeImageFilter::Make(cfif, blif), false }, 1867 { SkMergeImageFilter::Make(cfif, blif), false },
1856 { SkComposeImageFilter::Make(blif, cfif), false }, 1868 { SkComposeImageFilter::Make(blif, cfif), false },
1857 }; 1869 };
1858 1870
1859 for (const auto& rec : recs) { 1871 for (const auto& rec : recs) {
1860 const bool canHandle = rec.fFilter->canHandleComplexCTM(); 1872 const bool canHandle = rec.fFilter->canHandleComplexCTM();
1861 REPORTER_ASSERT(reporter, canHandle == rec.fExpectCanHandle); 1873 REPORTER_ASSERT(reporter, canHandle == rec.fExpectCanHandle);
1862 } 1874 }
1863 } 1875 }
OLDNEW
« no previous file with comments | « src/pdf/SkPDFDevice.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698