skia2/gn
Brian Osman 6e3ce40bd9 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>
2017-05-17 19:45:10 +00:00
..
__init__.py Make gn directory importable in python 2017-03-20 17:40:30 +00:00
android_framework_defines.gni Add SK_LEGACY_SWEEP_GRADIENT on Android 2017-05-16 12:07:06 +00:00
ar.py GN: quiet alink spam on Mac 2016-11-07 14:19:32 +00:00
bench.gni Reland "Add a clip mask bench" 2017-05-02 15:33:06 +00:00
BUILD.gn Describe GCC-like asm steps as "assemble ..." 2017-04-26 14:59:55 +00:00
BUILDCONFIG.gn Added support for building for tvOS 2017-03-14 22:55:04 +00:00
core.gni move files out of private, and fix up callers to IWYU 2017-05-16 21:29:03 +00:00
cp.py GN: get Angle compiling on Windows. 2016-10-17 16:16:16 +00:00
effects.gni Implement SkBlurDrawLooper with SkLayerDrawLooper 2017-03-28 19:29:00 +00:00
find_headers.py Check-in vulkan.h into third_party and use that instead of local sdk vulkan.h 2017-04-20 13:09:27 +00:00
find_ios_sysroot.py Add iOS simulator support in GN. 2017-03-13 17:21:43 +00:00
gm.gni Add GM to verify that drawX == (path.addX, drawPath) 2017-05-17 19:45:10 +00:00
gn_helpers.py Basic standalone GN configs. 2016-07-21 12:25:45 -07:00
gn_meta_sln.py Move, rename, and document Visual Studio GN helper script 2016-12-14 16:41:52 +00:00
gn_to_bp.py remove unused etc logic 2017-05-03 12:55:43 +00:00
gn_to_cmake.py Add support for lib_dirs to gn_to_cmake.py. 2016-10-28 15:07:10 +00:00
gpu.gni Attempt to work around iOS varying limit in GLPrograms test 2017-05-15 15:41:01 +00:00
gypi_to_gn.py Add executable bit and shebang to python files 2016-08-18 04:36:25 -07:00
is_clang.py GN: match shell behavior for cc and cxx in is_clang.py 2016-09-27 09:29:24 -07:00
opts.gni remove MIPS DSP optimizations 2016-12-21 03:55:00 +00:00
package_ios.py Automate more parts of gn/package_ios.py. 2017-01-31 17:41:16 +00:00
pdf.gni Start inverting GN reading .gypis to GYP reading .gnis. 2016-10-26 17:47:00 +00:00
push_to_android.py skia_android_serial = "auto" 2017-01-12 16:30:17 +00:00
samples.gni Add ShadowUtils sample. 2017-05-04 18:37:55 +00:00
shared_sources.gni remove MIPS DSP optimizations 2016-12-21 03:55:00 +00:00
sksl.gni skslc can now be compiled with no Skia dependencies, in preparation for its eventual 2017-03-31 18:49:51 +00:00
tests.gni Attempt to work around iOS varying limit in GLPrograms test 2017-05-15 15:41:01 +00:00
utils.gni Remove EXPERIMENTAL_SHADOWING, Part 1 2017-05-02 17:22:44 +00:00
xps.gni SkXPS: new document API. 2017-02-06 19:00:28 +00:00