9d6049a96f
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> |
||
---|---|---|
.. | ||
android | ||
bookmaker | ||
calmbench | ||
copyright | ||
debugger | ||
fiddle | ||
flags | ||
fonts | ||
gdb | ||
gpu | ||
lottiecap | ||
lua | ||
mdbviz | ||
rebaseline | ||
sk_app | ||
skdiff | ||
skiaserve | ||
skp | ||
skpbench | ||
skqp | ||
svg | ||
timer | ||
trace | ||
viewer | ||
__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 | ||
check-headers-self-sufficient | ||
chrome_fuzz.cpp | ||
clang-tidy.sh | ||
compare_codereview.py | ||
CrashHandler.cpp | ||
CrashHandler.h | ||
DDLPromiseImageHelper.cpp | ||
DDLPromiseImageHelper.h | ||
DDLTileHelper.cpp | ||
DDLTileHelper.h | ||
doxygen_footer.txt | ||
dump_record.cpp | ||
DumpRecord.cpp | ||
DumpRecord.h | ||
embed_resources.py | ||
find_run_binary.py | ||
fix_pythonpath.py | ||
gcov_shim | ||
get_current_monitor_profile.cpp | ||
get_images_from_skps.cpp | ||
git-sync-deps | ||
gyp | ||
hello-opencl.cpp | ||
imgcvt.cpp | ||
install_dependencies.sh | ||
ios_utils.h | ||
ios_utils.m | ||
jsondiff.py | ||
list_gms.cpp | ||
list_gpu_unit_tests.cpp | ||
LsanSuppressions.cpp | ||
merge_static_libs.py | ||
milestone.py | ||
mirror-dev.sh | ||
misc_utils.py | ||
OverwriteLine.h | ||
parse_llvm_coverage.py | ||
pathops_sorter.htm | ||
pathops_visualizer.htm | ||
ProcStats.cpp | ||
ProcStats.h | ||
public_headers_warnings_check.cpp | ||
random_parse_path.cpp | ||
random_parse_path.h | ||
reformat-json.py | ||
Registry.h | ||
remote_demo.cpp | ||
ResourceFactory.h | ||
Resources.cpp | ||
Resources.h | ||
retrieve_from_googlesource.py | ||
sanitize_source_files.py | ||
sk_pixel_iter.h | ||
sk_tool_utils.cpp | ||
sk_tool_utils.h | ||
skhello.cpp | ||
SkJSONCPP.h | ||
skp_parser.cpp | ||
skpinfo.cpp | ||
Stats.h | ||
test_all.py | ||
test_pdfs.py | ||
UrlDataManager.cpp | ||
UrlDataManager.h | ||
using_skia_and_harfbuzz.cpp | ||
valgrind.supp | ||
whitelist_typefaces.cpp | ||
win_dbghelp.cpp | ||
win_dbghelp.h | ||
win_lcid.cpp | ||
xsan.blacklist |