Go to file
Stephen White 36e4f06368 GrTessellator: speed up linearized quadratic Beziers.
Linerization of quadratic Beziers was using recursive midpoint 
subdivision, which can exceed the number of required points by
up to 2X if the second-last recursion level is just over the flatness
threshold. (This is particularly bad for circular arcs, since all
segments have a similar midpoint distance.)

Instead, compute the points of maximum curvature, and progressively 
increase the number of segments until the flatness
metric is satisfied at the points of maximum curvature.

This is good for a 15-20% boost on MotionMark Fill Paths, and makes the
performance on Canvas Arcs with the verb limit removed competitive
with the software+upload path renderer.

NOTE: this cause minor pixel diffs in a number of path-related GMs.

BUG=skia:

Change-Id: Ia2c22e00e45acec538b15a23c6edcb7a7d4566b7
Reviewed-on: https://skia-review.googlesource.com/9956
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-03-28 12:13:52 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench Find cubic KLM functionals directly 2017-03-23 21:05:45 +00:00
bin bin/fetch-clang-format 2017-03-08 16:43:49 +00:00
debugger Get Debugger app compiling again 2017-01-06 16:18:27 +00:00
dm Delete SkColorSpace::ColorSpaceFlags 2017-03-24 17:11:26 +00:00
example Add the ability to enable/disable GPU path renderers 2017-02-22 20:29:56 +00:00
experimental Change SkMemory to the more accurately named SkMalloc. 2017-03-27 18:13:07 +00:00
fuzz Change SkMemory to the more accurately named SkMalloc. 2017-03-27 18:13:07 +00:00
gm Revert "Revert "Create new inset algorithm for spot shadows"" 2017-03-24 16:07:27 +00:00
gn Add a simple tool for isolating a path from an SKP 2017-03-27 19:19:19 +00:00
include Add height function to shadow tessellators. 2017-03-27 19:06:59 +00:00
infra Manually roll recipes (trivial) 2017-03-28 11:51:16 +00:00
platform_tools One-liner fix that allows Viewer to switch between Raster and OpenGL 2017-02-23 22:33:36 +00:00
resources Set a limit on the size for BMP images 2017-02-24 21:25:44 +00:00
samplecode Add a simple tool for isolating a path from an SKP 2017-03-27 19:19:19 +00:00
site Add docs for iOS simulator build. 2017-03-21 17:12:46 +00:00
src GrTessellator: speed up linearized quadratic Beziers. 2017-03-28 12:13:52 +00:00
tests Minor fix to VkWrapTest 2017-03-27 20:48:00 +00:00
third_party Turn on x86-specific code when building zlib. 2017-03-23 13:36:31 +00:00
tools ok, make tests really work 2017-03-28 00:26:52 +00:00
.clang-format Mark flatennable macros as block beginning/ending in .clang-format 2017-01-09 15:31:36 +00:00
.gitignore bin/fetch-clang-format 2017-03-08 16:43:49 +00:00
.gn Basic standalone GN configs. 2016-07-21 12:25:45 -07:00
AUTHORS Added support for building for tvOS 2017-03-14 22:55:04 +00:00
BUILD.gn ok: add basic unit test support 2017-03-27 19:33:31 +00:00
codereview.settings Make uploading to Gerrit the default for Skia 2016-11-09 19:07:56 +00:00
CONTRIBUTING Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
CQ_COMMITTERS Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
DEPS Update build tools to newer gn. 2017-03-17 17:38:58 +00:00
Doxyfile Make the housekeeper upload doxygen to a newer bucket 2016-10-04 13:23:57 -07:00
LICENSE BUG=skia:5602 2016-09-02 11:19:34 -07:00
PRESUBMIT.py Clean up more references to GYP. 2017-02-06 17:55:35 +00:00
public.bzl remove SK_SUPPORT_LEGACY_DRAWVERTICES_VIRTUAL flag 2017-03-21 10:11:35 +00:00
README Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
README.chromium Update README.chromium. 2015-06-11 13:19:24 -07:00
whitespace.txt Skia Gerrit 10k! 2017-03-22 14:37:06 +00:00

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

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