aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/ImageFilterTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ImageFilterTest.cpp')
-rw-r--r--tests/ImageFilterTest.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/ImageFilterTest.cpp b/tests/ImageFilterTest.cpp
index c39cc2ee83..59f0f2853b 100644
--- a/tests/ImageFilterTest.cpp
+++ b/tests/ImageFilterTest.cpp
@@ -1998,6 +1998,21 @@ DEF_TEST(XfermodeImageFilterBounds, reporter) {
REPORTER_ASSERT(reporter, bounds.isEmpty());
}
+DEF_TEST(OffsetImageFilterBounds, reporter) {
+ SkIRect src = SkIRect::MakeXYWH(0, 0, 100, 100);
+ sk_sp<SkImageFilter> offset(SkOffsetImageFilter::Make(-50.5f, -50.5f, nullptr));
+
+ SkIRect expectedForward = SkIRect::MakeXYWH(-50, -50, 100, 100);
+ SkIRect boundsForward = offset->filterBounds(src, SkMatrix::I(),
+ SkImageFilter::kForward_MapDirection);
+ REPORTER_ASSERT(reporter, boundsForward == expectedForward);
+
+ SkIRect expectedReverse = SkIRect::MakeXYWH(50, 50, 100, 100);
+ SkIRect boundsReverse = offset->filterBounds(src, SkMatrix::I(),
+ SkImageFilter::kReverse_MapDirection);
+ REPORTER_ASSERT(reporter, boundsReverse == expectedReverse);
+}
+
static void test_arithmetic_bounds(skiatest::Reporter* reporter, float k1, float k2, float k3,
float k4, sk_sp<SkImageFilter> background,
sk_sp<SkImageFilter> foreground,