| OLD | NEW |
| 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 897 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 908 REPORTER_ASSERT(reporter, resultImg); | 908 REPORTER_ASSERT(reporter, resultImg); |
| 909 | 909 |
| 910 REPORTER_ASSERT(reporter, resultImg->width() == 20 && resultImg->height() ==
20); | 910 REPORTER_ASSERT(reporter, resultImg->width() == 20 && resultImg->height() ==
20); |
| 911 } | 911 } |
| 912 | 912 |
| 913 DEF_TEST(ImageFilterMergeResultSize, reporter) { | 913 DEF_TEST(ImageFilterMergeResultSize, reporter) { |
| 914 test_imagefilter_merge_result_size(reporter, nullptr); | 914 test_imagefilter_merge_result_size(reporter, nullptr); |
| 915 } | 915 } |
| 916 | 916 |
| 917 #if SK_SUPPORT_GPU | 917 #if SK_SUPPORT_GPU |
| 918 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(ImageFilterMergeResultSize_Gpu, reporter,
ctxInfo) { | 918 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ImageFilterMergeResultSize_Gpu, reporter, ctx
Info) { |
| 919 test_imagefilter_merge_result_size(reporter, ctxInfo.grContext()); | 919 test_imagefilter_merge_result_size(reporter, ctxInfo.grContext()); |
| 920 } | 920 } |
| 921 #endif | 921 #endif |
| 922 | 922 |
| 923 static void draw_blurred_rect(SkCanvas* canvas) { | 923 static void draw_blurred_rect(SkCanvas* canvas) { |
| 924 SkPaint filterPaint; | 924 SkPaint filterPaint; |
| 925 filterPaint.setColor(SK_ColorWHITE); | 925 filterPaint.setColor(SK_ColorWHITE); |
| 926 filterPaint.setImageFilter(SkBlurImageFilter::Make(SkIntToScalar(8), 0, null
ptr)); | 926 filterPaint.setImageFilter(SkBlurImageFilter::Make(SkIntToScalar(8), 0, null
ptr)); |
| 927 canvas->saveLayer(nullptr, &filterPaint); | 927 canvas->saveLayer(nullptr, &filterPaint); |
| 928 SkPaint whitePaint; | 928 SkPaint whitePaint; |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1076 REPORTER_ASSERT(reporter, SkToBool(context) == resultImg->isTextureBacked())
; | 1076 REPORTER_ASSERT(reporter, SkToBool(context) == resultImg->isTextureBacked())
; |
| 1077 REPORTER_ASSERT(reporter, resultImg->width() == 100 && resultImg->height() =
= 100); | 1077 REPORTER_ASSERT(reporter, resultImg->width() == 100 && resultImg->height() =
= 100); |
| 1078 REPORTER_ASSERT(reporter, offset.fX == 0 && offset.fY == 0); | 1078 REPORTER_ASSERT(reporter, offset.fX == 0 && offset.fY == 0); |
| 1079 } | 1079 } |
| 1080 | 1080 |
| 1081 DEF_TEST(ImageFilterMatrixConvolutionBigKernel, reporter) { | 1081 DEF_TEST(ImageFilterMatrixConvolutionBigKernel, reporter) { |
| 1082 test_big_kernel(reporter, nullptr); | 1082 test_big_kernel(reporter, nullptr); |
| 1083 } | 1083 } |
| 1084 | 1084 |
| 1085 #if SK_SUPPORT_GPU | 1085 #if SK_SUPPORT_GPU |
| 1086 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(ImageFilterMatrixConvolutionBigKernel_Gpu, | 1086 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ImageFilterMatrixConvolutionBigKernel_Gpu, |
| 1087 reporter, ctxInfo) { | 1087 reporter, ctxInfo) { |
| 1088 test_big_kernel(reporter, ctxInfo.grContext()); | 1088 test_big_kernel(reporter, ctxInfo.grContext()); |
| 1089 } | 1089 } |
| 1090 #endif | 1090 #endif |
| 1091 | 1091 |
| 1092 DEF_TEST(ImageFilterCropRect, reporter) { | 1092 DEF_TEST(ImageFilterCropRect, reporter) { |
| 1093 test_crop_rects(reporter, nullptr); | 1093 test_crop_rects(reporter, nullptr); |
| 1094 } | 1094 } |
| 1095 | 1095 |
| 1096 #if SK_SUPPORT_GPU | 1096 #if SK_SUPPORT_GPU |
| 1097 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ImageFilterCropRect_Gpu, reporter, ctxInfo) { | 1097 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ImageFilterCropRect_Gpu, reporter, ctxInfo) { |
| (...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1507 REPORTER_ASSERT(reporter, result->getROPixels(&resultBM)); | 1507 REPORTER_ASSERT(reporter, result->getROPixels(&resultBM)); |
| 1508 SkAutoLockPixels lock(resultBM); | 1508 SkAutoLockPixels lock(resultBM); |
| 1509 REPORTER_ASSERT(reporter, resultBM.getColor(50, 50) == SK_ColorGREEN); | 1509 REPORTER_ASSERT(reporter, resultBM.getColor(50, 50) == SK_ColorGREEN); |
| 1510 } | 1510 } |
| 1511 | 1511 |
| 1512 DEF_TEST(ComposedImageFilterBounds, reporter) { | 1512 DEF_TEST(ComposedImageFilterBounds, reporter) { |
| 1513 test_composed_imagefilter_bounds(reporter, nullptr); | 1513 test_composed_imagefilter_bounds(reporter, nullptr); |
| 1514 } | 1514 } |
| 1515 | 1515 |
| 1516 #if SK_SUPPORT_GPU | 1516 #if SK_SUPPORT_GPU |
| 1517 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(ComposedImageFilterBounds_Gpu, reporter, c
txInfo) { | 1517 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ComposedImageFilterBounds_Gpu, reporter, ctxI
nfo) { |
| 1518 test_composed_imagefilter_bounds(reporter, ctxInfo.grContext()); | 1518 test_composed_imagefilter_bounds(reporter, ctxInfo.grContext()); |
| 1519 } | 1519 } |
| 1520 #endif | 1520 #endif |
| 1521 | 1521 |
| 1522 static void test_partial_crop_rect(skiatest::Reporter* reporter, GrContext* cont
ext) { | 1522 static void test_partial_crop_rect(skiatest::Reporter* reporter, GrContext* cont
ext) { |
| 1523 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, 100)); | 1523 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, 100)); |
| 1524 | 1524 |
| 1525 SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(100, 0, 20, 30), | 1525 SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(100, 0, 20, 30), |
| 1526 SkImageFilter::CropRect::kHasWidth_CropEdge | SkImageFilter::CropRect::k
HasHeight_CropEdge); | 1526 SkImageFilter::CropRect::kHasWidth_CropEdge | SkImageFilter::CropRect::k
HasHeight_CropEdge); |
| 1527 sk_sp<SkImageFilter> filter(make_grayscale(nullptr, &cropRect)); | 1527 sk_sp<SkImageFilter> filter(make_grayscale(nullptr, &cropRect)); |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1746 sk_sp<SkSurface> surf(SkSurface::MakeRenderTarget(ctxInfo.grContext(), | 1746 sk_sp<SkSurface> surf(SkSurface::MakeRenderTarget(ctxInfo.grContext(), |
| 1747 SkBudgeted::kNo, | 1747 SkBudgeted::kNo, |
| 1748 SkImageInfo::MakeN32Premul
(100, 100))); | 1748 SkImageInfo::MakeN32Premul
(100, 100))); |
| 1749 | 1749 |
| 1750 | 1750 |
| 1751 SkCanvas* canvas = surf->getCanvas(); | 1751 SkCanvas* canvas = surf->getCanvas(); |
| 1752 | 1752 |
| 1753 test_huge_blur(canvas, reporter); | 1753 test_huge_blur(canvas, reporter); |
| 1754 } | 1754 } |
| 1755 | 1755 |
| 1756 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(XfermodeImageFilterCroppedInput_Gpu, repor
ter, ctxInfo) { | 1756 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(XfermodeImageFilterCroppedInput_Gpu, reporter
, ctxInfo) { |
| 1757 | 1757 |
| 1758 sk_sp<SkSurface> surf(SkSurface::MakeRenderTarget(ctxInfo.grContext(), | 1758 sk_sp<SkSurface> surf(SkSurface::MakeRenderTarget(ctxInfo.grContext(), |
| 1759 SkBudgeted::kNo, | 1759 SkBudgeted::kNo, |
| 1760 SkImageInfo::MakeN32Premul
(1, 1))); | 1760 SkImageInfo::MakeN32Premul
(1, 1))); |
| 1761 | 1761 |
| 1762 | 1762 |
| 1763 SkCanvas* canvas = surf->getCanvas(); | 1763 SkCanvas* canvas = surf->getCanvas(); |
| 1764 | 1764 |
| 1765 test_xfermode_cropped_input(canvas, reporter); | 1765 test_xfermode_cropped_input(canvas, reporter); |
| 1766 } | 1766 } |
| 1767 | 1767 |
| 1768 DEF_GPUTEST_FOR_ALL_GL_CONTEXTS(ImageFilterBlurLargeImage_Gpu, reporter, ctxInfo
) { | 1768 DEF_GPUTEST_FOR_ALL_CONTEXTS(ImageFilterBlurLargeImage_Gpu, reporter, ctxInfo) { |
| 1769 auto surface(SkSurface::MakeRenderTarget(ctxInfo.grContext(), SkBudgeted::kY
es, | 1769 auto surface(SkSurface::MakeRenderTarget(ctxInfo.grContext(), SkBudgeted::kY
es, |
| 1770 SkImageInfo::MakeN32Premul(100, 100
))); | 1770 SkImageInfo::MakeN32Premul(100, 100
))); |
| 1771 test_large_blur_input(reporter, surface->getCanvas()); | 1771 test_large_blur_input(reporter, surface->getCanvas()); |
| 1772 } | 1772 } |
| 1773 #endif | 1773 #endif |
| 1774 | 1774 |
| 1775 /* | 1775 /* |
| 1776 * Test that colorfilterimagefilter does not require its CTM to be decomposed w
hen it has more | 1776 * Test that colorfilterimagefilter does not require its CTM to be decomposed w
hen it has more |
| 1777 * than just scale/translate, but that other filters do. | 1777 * than just scale/translate, but that other filters do. |
| 1778 */ | 1778 */ |
| (...skipping 17 matching lines...) Expand all Loading... |
| 1796 { SkColorFilterImageFilter::Make(cf, blif), false }, | 1796 { SkColorFilterImageFilter::Make(cf, blif), false }, |
| 1797 { SkMergeImageFilter::Make(cfif, blif), false }, | 1797 { SkMergeImageFilter::Make(cfif, blif), false }, |
| 1798 { SkComposeImageFilter::Make(blif, cfif), false }, | 1798 { SkComposeImageFilter::Make(blif, cfif), false }, |
| 1799 }; | 1799 }; |
| 1800 | 1800 |
| 1801 for (const auto& rec : recs) { | 1801 for (const auto& rec : recs) { |
| 1802 const bool canHandle = rec.fFilter->canHandleComplexCTM(); | 1802 const bool canHandle = rec.fFilter->canHandleComplexCTM(); |
| 1803 REPORTER_ASSERT(reporter, canHandle == rec.fExpectCanHandle); | 1803 REPORTER_ASSERT(reporter, canHandle == rec.fExpectCanHandle); |
| 1804 } | 1804 } |
| 1805 } | 1805 } |
| OLD | NEW |