diff options
author | reed <reed@google.com> | 2016-07-11 13:17:35 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-07-11 13:17:35 -0700 |
commit | b42b785d1cbc98bd34aceae338060831b974f9c5 (patch) | |
tree | 91f84ddd2f3cecf85c8c0dad4a5cfc48e2140c10 /tests/RectTest.cpp | |
parent | 7e602c2c6cb2fbeb70a3978e2148844b673a8a4c (diff) |
try to speed-up maprect + round2i + contains
We call roundOut in a few places. If we can get SkNx::Ceil we could efficiently implement that as well.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2133413002
CQ_INCLUDE_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Review-Url: https://codereview.chromium.org/2133413002
Diffstat (limited to 'tests/RectTest.cpp')
-rw-r--r-- | tests/RectTest.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/RectTest.cpp b/tests/RectTest.cpp index 820586c3c6..719b5b9ae7 100644 --- a/tests/RectTest.cpp +++ b/tests/RectTest.cpp @@ -88,3 +88,35 @@ DEF_TEST(Rect, reporter) { test_stroke_width_clipping(reporter); test_skbug4406(reporter); } + +DEF_TEST(Rect_round, reporter) { + SkRandom rand; + + for (int i = 0; i < 100000; ++i) { + SkRect src = SkRect::MakeXYWH(rand.nextSScalar1() * 1000, + rand.nextSScalar1() * 1000, + rand.nextUScalar1() * 1000, + rand.nextUScalar1() * 1000); + SkRect rd0 = { + SkScalarRoundToScalar(src.fLeft), + SkScalarRoundToScalar(src.fTop), + SkScalarRoundToScalar(src.fRight), + SkScalarRoundToScalar(src.fBottom) + }; + SkRect rd1 = src.round2s(); + + REPORTER_ASSERT(reporter, rd0 == rd1); + + SkIRect ir0 = { + SkScalarRoundToInt(src.fLeft), + SkScalarRoundToInt(src.fTop), + SkScalarRoundToInt(src.fRight), + SkScalarRoundToInt(src.fBottom) + }; + SkIRect ir1 = src.round(); + SkIRect ir2 = src.round2i(); + + REPORTER_ASSERT(reporter, ir0 == ir1); + REPORTER_ASSERT(reporter, ir0 == ir2); + } +} |