Add GM to verify that drawX == (path.addX, drawPath)
authorBrian Osman <brianosman@google.com>
Wed, 17 May 2017 17:31:44 +0000 (13:31 -0400)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Wed, 17 May 2017 17:59:47 +0000 (17:59 +0000)
commit78d1b428a8e8a0b76e88e9266d2893136acd5906
tree092297c2d2ac4b1d2b2aded720597e90e4eca8a7
parentb3d0f7c793471765a1c140833cac8b5ede8e3193
Add GM to verify that drawX == (path.addX, drawPath)

This demonstrates a new kind of hybrid unit test/GM.
It creates a grid of cells. In each cell, we do two
renders that are expected to produce the same result.
For each cell, we render the two results overlaid,
and highlight any differing pixels in red. Assuming
there is a diff, the area around the largest diff
is drawn zoomed in from both images.

Matching cells are outlined in green, failing cells
are outlined in red. Triaging this GM just involves
answering the question: "Are there any red boxes?"

"Good" example: https://screenshot.googleplex.com/909P3tvS55f.png
"Bad" example: https://screenshot.googleplex.com/oXBWbEKw5ur.png

To get more tests to pass, (and fix an assert
in Ganesh), I've gone ahead and enforced that user
supplied rects (in drawRect and drawOval) are
always sorted once they hit the canvas virtuals.
Currently, drawArc rejects empty ovals, but I added
the same assert to onDrawArc, if we decide to change
the strategy there.

Bug: skia:
Change-Id: I021a18c85e234298e1d29f333662683d996dd42c
Reviewed-on: https://skia-review.googlesource.com/16983
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
gm/shapes_as_paths.cpp [new file with mode: 0644]
gn/gm.gni
src/core/SkCanvas.cpp