diff options
author | fmalita <fmalita@chromium.org> | 2016-02-23 13:26:28 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-02-23 13:26:28 -0800 |
commit | 55430a620762e882c2b3018c57f9a7d51cf16071 (patch) | |
tree | 09ffdf9f327bbd1faf0237a98ab3203243a01440 /tests | |
parent | ccb74b824a16d0009f7f9ebcf2a03fb53451af9a (diff) |
Update 4f linear gradient selection heuristic
Use the 4f context when
* dest type is 4f
* there's no perpective
Keeping the define and testing flag overrides for now.
R=reed@google.com,herb@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1725793003
Review URL: https://codereview.chromium.org/1725793003
Diffstat (limited to 'tests')
-rw-r--r-- | tests/SkColor4fTest.cpp | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/tests/SkColor4fTest.cpp b/tests/SkColor4fTest.cpp index 00581cc1e6..ea9a80f134 100644 --- a/tests/SkColor4fTest.cpp +++ b/tests/SkColor4fTest.cpp @@ -125,23 +125,26 @@ static SkShader* make_cf_sh() { } static void compare_spans(const SkPM4f span4f[], const SkPMColor span4b[], int count, - skiatest::Reporter* reporter) { + skiatest::Reporter* reporter, float tolerance = 1.0f/255) { for (int i = 0; i < count; ++i) { SkPM4f c0 = SkPM4f::FromPMColor(span4b[i]); SkPM4f c1 = span4f[i]; - REPORTER_ASSERT(reporter, nearly_equal(c0, c1, 1.0f/255)); + REPORTER_ASSERT(reporter, nearly_equal(c0, c1, tolerance)); } } DEF_TEST(Color4f_shader, reporter) { struct { - SkShader* (*fFact)(); - bool fSupports4f; + SkShader* (*fFact)(); + bool fSupports4f; + float fTolerance; } recs[] = { - { make_color_sh, true }, - { make_grad_sh, false }, - { make_image_sh, false }, - { make_cf_sh, true }, + { make_color_sh, true, 1.0f/255 }, + // PMColor 4f gradients are interpolated in 255-multiplied values, so we need a + // slightly relaxed tolerance to accommodate the cumulative precision deviation. + { make_grad_sh, true, 1.001f/255 }, + { make_image_sh, false, 1.0f/255 }, + { make_cf_sh, true, 1.0f/255 }, }; SkPaint paint; @@ -161,7 +164,7 @@ DEF_TEST(Color4f_shader, reporter) { ctx->shadeSpan4f(0, 0, buffer4f, N); SkPMColor buffer4b[N]; ctx->shadeSpan(0, 0, buffer4b, N); - compare_spans(buffer4f, buffer4b, N, reporter); + compare_spans(buffer4f, buffer4b, N, reporter, rec.fTolerance); } ctx->~Context(); } |