skia2/tools
Cary Clark 9d6049a96f fix pathops bug 8380
Paths to intersect have two nearly coincident cubics. Where they
cross, the intersection error makes the curves start at slightly
different points. To sort the intersection, one curve is translated
to the start of the opposite point, moving it from one side to the
other, introducing a winding error.

The fix looks for that error in a very tiny range (enlarging that
range causes other tests that now pass to fail). This fix is very
fragile and points to the need for a better approach than sorting
angles to find winding values, as documented in the bug.

Also renamed some angle functions to show that they operate only
on lines and not general curves.

All tests pass with this fix:
./out/release/pathops_unittest -V -x
./out/debug/pathops_unittest -V -x

TBR=reed@google.com
Bug: skia:8380
Change-Id: I04e53d4c6a96035f661a4c9f31a17055ce13e3eb
Reviewed-on: https://skia-review.googlesource.com/c/179241
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Cary Clark <caryclark@skia.org>
2018-12-21 19:15:54 +00:00
..
android
bookmaker fix bookmaker 2018-12-12 19:03:18 +00:00
calmbench Remove gclient sync from calmbench 2018-08-24 19:18:56 +00:00
copyright Fix pylint check in presubmit 2018-06-22 14:38:28 +00:00
debugger remove overrides of (dead) onDrawTextRSXform 2018-12-20 22:52:35 +00:00
fiddle Revert "Move some Gr headers from include/gpu to include/private and src/gpu." 2018-12-11 19:01:41 +00:00
flags added SPIR-V persistent cache support for Vulkan 2018-12-19 18:42:18 +00:00
fonts start removing legacy paint calls 2018-12-12 21:21:42 +00:00
gdb Update gdb bitmap viewer. 2018-06-20 21:24:27 +00:00
gpu Remove superfluous budgeted params and member related to SkImage_GpuBase 2018-12-20 15:58:55 +00:00
lottiecap [LottieWeb] Fix frames 2018-08-29 17:58:42 +00:00
lua Remove picture_utils 2018-08-09 14:14:17 +00:00
mdbviz
rebaseline
sk_app Manual ANGLE roll to ffda3e2985f18f4ff6e3778af8b9715109b21ad0 2018-12-19 21:16:02 +00:00
skdiff Revert "SkStream: remove some WStream functions from public api" 2018-09-06 12:22:41 +00:00
skiaserve Remove SkPM4fPriv.h includes, then IWYU 2018-09-28 15:17:04 +00:00
skp Omit "espn" from key_mobile_sites_smooth in RecreateSKPs bot 2018-05-20 14:53:16 +00:00
skpbench test,tools: whitespace changes for clang-format 2018-09-19 17:50:51 +00:00
skqp SkQP: experimental docker script cleanup, try 2 2018-12-19 03:25:42 +00:00
svg
timer remove DM timestamps 2018-10-02 14:49:23 +00:00
trace Align trace event allocations to avoid alignment issues on 32-bit ARM 2018-10-24 17:52:08 +00:00
viewer Try out clang-tidy, starting with bugprone-use-after-move 2018-12-11 17:28:19 +00:00
__init__.py
add_codereview_message.py
AndroidSkDebugToStdOut.cpp
BigPathBench.inc
bisect_roll
bisect_roll.bat
bisect_roll.go
build_command_buffer.py
BUILD_simulator.py
build_workaround_header.py Add CheckGeneratedFiles recipe check for gpu workarounds 2018-04-25 19:26:27 +00:00
check-headers-self-sufficient Move vulkan headers from third_party to include/third_party. 2018-12-12 14:16:43 +00:00
chrome_fuzz.cpp
clang-tidy.sh run clang-tidy on headers too 2018-12-12 15:26:22 +00:00
compare_codereview.py
CrashHandler.cpp
CrashHandler.h
DDLPromiseImageHelper.cpp Reduce the number of backend->pixelconfig GrCaps virtuals. 2018-12-14 17:12:36 +00:00
DDLPromiseImageHelper.h Reduce the number of backend->pixelconfig GrCaps virtuals. 2018-12-14 17:12:36 +00:00
DDLTileHelper.cpp Connect up YUVA images for testing. 2018-10-12 19:31:08 +00:00
DDLTileHelper.h Revert "Fix bug in GM's DDL drawing mode" 2018-09-26 21:18:28 +00:00
doxygen_footer.txt
dump_record.cpp test,tools: whitespace changes for clang-format 2018-09-19 17:50:51 +00:00
DumpRecord.cpp Fix occurrences of "-Wextra-semi-stmt" 2018-11-30 23:23:09 +00:00
DumpRecord.h
embed_resources.py [canvaskit] Allow users to load their own fonts 2018-12-12 15:40:08 +00:00
find_run_binary.py
fix_pythonpath.py
gcov_shim
get_current_monitor_profile.cpp
get_images_from_skps.cpp Use SkJSONWriter for get_images_from_skps stats reporting 2018-06-19 20:06:36 +00:00
git-sync-deps tools/git-sync-deps: fix 2018-06-20 14:38:34 +00:00
gyp
hello-opencl.cpp add hello-opencl 2018-06-20 21:50:47 +00:00
imgcvt.cpp add a few more ways to convert images to imgcvt 2018-10-23 17:57:18 +00:00
install_dependencies.sh Add header file installation tips for building skia 2018-02-14 13:07:27 +00:00
ios_utils.h
ios_utils.m
jsondiff.py Fix pylint check in presubmit 2018-06-22 14:38:28 +00:00
list_gms.cpp sk_tool::Registry: make an iterator. 2018-08-01 16:59:19 +00:00
list_gpu_unit_tests.cpp sk_tool::Registry: make an iterator. 2018-08-01 16:59:19 +00:00
LsanSuppressions.cpp Add another NVIDIA LSAN suppression. 2018-12-14 19:48:38 +00:00
merge_static_libs.py
milestone.py
mirror-dev.sh
misc_utils.py
OverwriteLine.h
parse_llvm_coverage.py
pathops_sorter.htm fix pathops bug 8380 2018-12-21 19:15:54 +00:00
pathops_visualizer.htm fix pathops bug 8380 2018-12-21 19:15:54 +00:00
ProcStats.cpp
ProcStats.h
public_headers_warnings_check.cpp
random_parse_path.cpp
random_parse_path.h
reformat-json.py
Registry.h sk_tool::Registry: make an iterator. 2018-08-01 16:59:19 +00:00
remote_demo.cpp fonts: Reland push font remoting. 2018-05-02 18:39:31 +00:00
ResourceFactory.h
Resources.cpp Remove unused Options parameter from SkImageGenerator::getPixels 2018-10-04 18:22:12 +00:00
Resources.h Change SkTypeface::MakeFromStream to take unique_ptr 2018-09-04 15:24:12 +00:00
retrieve_from_googlesource.py
sanitize_source_files.py
sk_pixel_iter.h
sk_tool_utils.cpp use font for measuring/paths 2018-12-21 17:36:02 +00:00
sk_tool_utils.h use font for measuring/paths 2018-12-21 17:36:02 +00:00
skhello.cpp SkDocument: Factories now located in SkPDFDocument.h and SkXPSDocument.h 2018-09-20 18:21:07 +00:00
SkJSONCPP.h
skp_parser.cpp test,tools: whitespace changes for clang-format 2018-09-19 17:50:51 +00:00
skpinfo.cpp Revert "Revert "SkTypes: extract SkTo"" 2018-06-14 14:55:17 +00:00
Stats.h make float divide-by-zero fatal 2018-11-06 21:56:27 +00:00
test_all.py
test_pdfs.py
UrlDataManager.cpp
UrlDataManager.h
using_skia_and_harfbuzz.cpp SkShaper per-line callback 2018-12-12 17:54:12 +00:00
valgrind.supp Add valgrind suppression for leak in libGLX_nvidia when caching program binaries 2018-07-18 16:43:51 +00:00
whitelist_typefaces.cpp
win_dbghelp.cpp test,tools: whitespace changes for clang-format 2018-09-19 17:50:51 +00:00
win_dbghelp.h
win_lcid.cpp
xsan.blacklist turn on alignment sanitizer 2018-08-09 21:13:15 +00:00