Go to file
caryclark 624637cc8e Path ops formerly found the topmost unprocessed edge and determined its angle sort order to initialize the winding. This never worked correctly with cubics and was flaky with paths consisting mostly of vertical edges.
This replacement shoots axis-aligned rays through all intersecting edges to find the outermost one either horizontally or vertically. The resulting code is smaller and twice as fast.

To support this, most of the horizontal / vertical intersection code was rewritten and standardized, and old code supporting the top-directed winding was deleted.

Contours were pointed to by an SkTDArray. Instead, put them in a linked list, and designate the list head with its own class to ensure that methods that take lists of contours start at the top. This change removed a large percentage of memory allocations used by path ops.

TBR=reed@google.com
BUG=skia:3588

Review URL: https://codereview.chromium.org/1111333002
2015-05-11 07:21:28 -07:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench Add a control benchmark. 2015-05-06 12:42:04 -07:00
bin sync-and-gyp script: fix to work in MSYS shell 2015-04-24 14:33:06 -07:00
debugger Get debugger compiling again 2015-05-04 10:42:05 -07:00
dm DM: use SkFunction to make required argument type clearer. 2015-05-07 10:53:34 -07:00
docs Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
example C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla} 2015-03-25 18:17:32 -07:00
experimental Cleanup: Remove unnecessary double-semicolons. 2015-04-27 07:01:45 -07:00
forth Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
gm Fix convex-lineonly-paths GM so it plays nice with SampleApp 2015-05-08 07:08:13 -07:00
gyp Path ops formerly found the topmost unprocessed edge and determined its angle sort order to initialize the winding. This never worked correctly with cubics and was flaky with paths consisting mostly of vertical edges. 2015-05-11 07:21:28 -07:00
include Only discard for XP dstCopies if we have a coverage value. 2015-05-10 08:45:18 -07:00
platform_tools Add android_launch_app script to allow command line options to be passed to the sampleApp when starting. 2015-05-11 08:54:19 -04:00
resources Trim whitespace from parsed filename in Android v21. 2015-05-08 08:31:54 -07:00
samplecode add DeferredCanvas mode to SampleApp 2015-05-05 12:14:45 -07:00
site Add android_launch_app script to allow command line options to be passed to the sampleApp when starting. 2015-05-11 08:54:19 -04:00
src Path ops formerly found the topmost unprocessed edge and determined its angle sort order to initialize the winding. This never worked correctly with cubics and was flaky with paths consisting mostly of vertical edges. 2015-05-11 07:21:28 -07:00
tests Path ops formerly found the topmost unprocessed edge and determined its angle sort order to initialize the winding. This never worked correctly with cubics and was flaky with paths consisting mostly of vertical edges. 2015-05-11 07:21:28 -07:00
third_party Enable both static and dynamically linked libpng 2015-04-03 12:35:27 -07:00
tools Path ops formerly found the topmost unprocessed edge and determined its angle sort order to initialize the winding. This never worked correctly with cubics and was flaky with paths consisting mostly of vertical edges. 2015-05-11 07:21:28 -07:00
.gitignore git: add skps to .gitignore 2015-02-13 18:57:33 -08:00
AUTHORS Return cropBitmap 2015-04-15 05:48:54 -07:00
codereview.settings Automatically add a docs preview link and NOTRY=true when there are only docs changes. 2015-02-26 10:16:13 -08:00
CONTRIBUTING Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
CQ_COMMITTERS add new Skia team member to committers list 2015-02-03 11:10:57 -08:00
DEPS Update our libjpeg to the version used by Chromium. 2015-04-20 06:58:49 -07:00
Doxyfile C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla} 2015-03-25 18:17:32 -07:00
gyp_skia Support SKIA_OUT on Mac and ChromeOS 2015-05-04 08:04:28 -07:00
gyp_skia.py Roll gyp deps from 1765 to 1796. 2013-11-21 18:11:14 +00:00
HASHTAGS Fix cr SKPs naming 2015-03-31 08:03:02 -07:00
LICENSE Manually update copyright notices in files that defied the automated process 2011-07-28 14:24:55 +00:00
make.bat Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
make.py Run gyp on Win with --no-parallel -G config=$(BUILDTYPE), fix pylint 2015-03-03 13:15:38 -05:00
Makefile Run gyp with --no-parallel -G config=$(BUILDTYPE) 2015-03-03 06:05:56 -08:00
OWNERS add root files from chrome 2013-08-13 19:11:15 +00:00
PRESUBMIT.py Add presubmit to run {dm,nanobench}_flags.py test when changed. 2015-05-05 10:28:44 -07:00
README Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
README.chromium add root files from chrome 2013-08-13 19:11:15 +00:00
skia.gyp Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
SKP_VERSION Update SKP version 2015-05-10 01:14:36 -07:00
whitespace.txt whitespace change (testing flaky bots) 2015-05-08 11:39:26 -07:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at https://skia.org.