Add GM to verify that drawX == (path.addX, drawPath)
authorBrian Osman <brianosman@google.com>
Wed, 17 May 2017 19:10:18 +0000 (15:10 -0400)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Wed, 17 May 2017 19:45:10 +0000 (19:45 +0000)
commit6e3ce40bd93e5de16b0086cb70320ff3283e72cf
tree46e0a7ef4081c445b31a6d1d32579622d900b108
parente37fad000382c037dddf75f5414c2b8c13882b51
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.

Re-land of: https://skia-review.googlesource.com/c/16983/

Bug: skia:
Change-Id: I48f85de5f2bcb7fdc9558c2fd80cb1f20800b244
Reviewed-on: https://skia-review.googlesource.com/17270
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
gm/shapes_as_paths.cpp [new file with mode: 0644]
gn/gm.gni
src/core/SkCanvas.cpp