Go to file
senorblanco 84cd621670 Implement caching of filled paths in the tessellated path renderer.
Paths are cached as tessellated triangle meshes in vertex buffers on the GPU. Stroked paths are not (yet) cached.

Paths containing no curved segments (linear paths) are reused at all scales. Paths containing curved segments are reused within a scale tolerance threshold.

In order to invalidate the cache when an SkPath is changed or deleted,
this required implementing genID change notification in SkPath. This is
modelled almost exactly on SkPixelRef::GenIDChangeListener.
However, It does not currently implement the check for unique genIDs,
so notifiers will fire when the first instance of an SkPathRef
using a given genID is destroyed.

Another caveat is that you cannot successfully add a change notifier
to an empty path, since it uses the "canonical" empty path which is
never modified or destroyed. For this reason, we prevent adding
listeners to it.

BUG=skia:4121,skia:4122, 497403
DOCS_PREVIEW= https://skia.org/?cl=1114353004

Committed: https://skia.googlesource.com/skia/+/468dfa72eb6694145487be17876804dfca3b7adb

Review URL: https://codereview.chromium.org/1114353004
2015-08-04 10:01:58 -07:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench Create a scanline decoder without creating a codec 2015-08-04 09:24:45 -07:00
bin Change to use mean and to use stderr. 2015-07-09 10:50:24 -07:00
debugger Fix no-gpu debugger. 2015-07-31 15:46:03 -07:00
dm Create a scanline decoder without creating a codec 2015-08-04 09:24:45 -07:00
example Propagate SkSurfaceProps to more call sites 2015-06-23 06:26:08 -07:00
experimental Update NulCanvas so everything builds. 2015-08-03 07:56:16 -07:00
forth Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
gm Added registerChild; transforms, textures, glKey automatically handled. 2015-08-04 07:59:37 -07:00
gyp Create a scanline decoder without creating a codec 2015-08-04 09:24:45 -07:00
include Implement caching of filled paths in the tessellated path renderer. 2015-08-04 10:01:58 -07:00
infra Build buckets: tryjob access 2015-07-30 10:32:27 -07:00
platform_tools Update Android Testing apps to support release mode 2015-07-31 10:25:17 -07:00
resources Use the upstream version of libwebp, v0.4.3. 2015-07-10 09:32:09 -07:00
samplecode Address some SkLightingShader TODOs 2015-07-31 05:17:24 -07:00
site Add cheat sheet to wrangler doc 2015-08-04 09:24:30 -07:00
src Implement caching of filled paths in the tessellated path renderer. 2015-08-04 10:01:58 -07:00
tests Implement caching of filled paths in the tessellated path renderer. 2015-08-04 10:01:58 -07:00
third_party Reenable yasm for Android x86 and x86-64 on Linux host 2015-07-21 12:01:48 -07:00
tools buildbot_spec: Add configuration, do_*_steps, upload_*_results, more env 2015-07-30 07:09:20 -07:00
.gitignore Update Android Apps to use gradle 2015-07-24 13:15:59 -07:00
AUTHORS Optimize RGB16 blitV functions with NEON for ARM platform. 2015-07-15 07:07:30 -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 benjaminwagner@ to CQ_COMMITTERS. 2015-06-08 10:22:34 -07:00
DEPS Skia: ANGLE Roll 2015-07-23 11:56:40 -07:00
Doxyfile Documentation: SkCanvas API 2015-05-19 10:21:29 -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 Add lua scripts for generating n-grams from SKPs 2015-06-25 07:47:41 -07:00
OWNERS add root files from chrome 2013-08-13 19:11:15 +00:00
PRESUBMIT.py update presubmit to know about include/private 2015-07-28 08:54:12 -07: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
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-07-19 00:19:11 -07:00
whitespace.txt Revert of Whitespace change to test Skia's new bugdroid configuration (patchset #1 id:1 of https://codereview.chromium.org/1237653002/) 2015-07-13 07:09: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.