Go to file
senorblanco f57372daf0 Screenspace AA tessellated GPU path rendering.
This is an approach to antialiased concave path rendering
on the GPU without using MSAA. It uses GrTessellator to
extract boundary contours from the given path, then
inflates by half a pixel in screen space each direction,
then renders the result with zero alpha on the outer
contour and one alpha on in the inner contour. This
requires two passes through the tessellation code: one
to extract the boundaries, then one to tessellate the
result.

This gives approximately a 3X improvement on the IE
chalkboard demo in non-MSAA mode, a 30-40% improvement
on MotionMark's "Fill Paths", and a ~3X improvement on
MotionMark's "canvas arcTo segments".

It works best for large, simple paths, so there's currently
a limit of 10 verbs in the onCanDrawPath() check. This
dovetails nicely with the distance field path renderer's
support for small, detailed (and cached) paths.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1152733009

NOTRY=true

Review-Url: https://codereview.chromium.org/1152733009
2016-08-31 10:36:19 -07:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench Some tests around surface creation and snapshotting with color space 2016-08-30 07:07:59 -07:00
bin cleanup dead nanomsg and build_overrides 2016-08-27 06:50:11 -07:00
cmake CMake: require libjpeg-turbo, not libjpeg 2016-08-23 11:01:33 -07:00
debugger Remove some ancillary users of SkSurface::MakeRenderTargetDirect 2016-08-01 05:53:23 -07:00
dm Some tests around surface creation and snapshotting with color space 2016-08-30 07:07:59 -07:00
example Get Mac viewer working with SDL 2016-08-04 12:30:31 -07:00
experimental [SVGDom] Don't truncate opacity scalars 2016-08-29 05:54:42 -07:00
fuzz Create gradient fuzzers 2016-08-12 06:26:03 -07:00
gm Store mipmap levels in deferred texture image 2016-08-30 12:09:23 -07:00
gn GN: release -> -O3, to match GYP 2016-08-29 10:23:15 -07:00
gyp Detect TSAN instead of relying on #ifdef THREAD_SANITIZER. 2016-08-30 10:45:17 -07:00
include Remove SkBitmap::getTexture() 2016-08-30 12:52:49 -07:00
infra switch CQ over to GN_Android compile bots 2016-08-31 08:42:06 -07:00
platform_tools Cleanup use of legacy SkSurface creation methods a bit 2016-08-23 06:39:35 -07:00
resources Parse ICC profiles from webps 2016-08-24 07:36:06 -07:00
samplecode Some tests around surface creation and snapshotting with color space 2016-08-30 07:07:59 -07:00
site Add docs for GN/Android 2016-08-29 10:27:16 -07:00
src Screenspace AA tessellated GPU path rendering. 2016-08-31 10:36:19 -07:00
tests Store mipmap levels in deferred texture image 2016-08-30 12:09:23 -07:00
third_party GN: mac host and armv7 target 2016-08-26 08:13:04 -07:00
tools Add some copy support for vulkan msaa 2016-08-31 07:37:31 -07:00
.gitignore Move Skia recipes from build repo 2016-07-26 11:52:17 -07:00
.gn Basic standalone GN configs. 2016-07-21 12:25:45 -07:00
AUTHORS Prevent overflows when using gamma_alloc_size 2016-08-14 02:12:40 -07:00
BUILD.gn GN: add sources_when_disabled to optional 2016-08-31 04:58:19 -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 Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
DEPS Roll GN 2016-08-29 07:14:28 -07:00
Doxyfile Documentation: SkCanvas API 2015-05-19 10:21:29 -07:00
gyp_skia Make Win runtime DLLs writeable before overwriting 2016-03-18 08:33:38 -07:00
gyp_skia.py Roll gyp deps from 1765 to 1796. 2013-11-21 18:11:14 +00:00
LICENSE Include resources directory in google3 sync. 2015-10-20 13:00:48 -07:00
make.bat Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
make.py GYP: remove stale skia_scalar gyp variable 2015-11-10 13:25:12 -05:00
Makefile Add visualbench as valid target to Makefile 2015-12-18 08:05:06 -08:00
OWNERS add root files from chrome 2013-08-13 19:11:15 +00:00
PRESUBMIT.py Add Gerrit API support to Skia's PRESUBMIT.py 2016-08-29 08:13:29 -07:00
public.bzl Remove SkBitmap::getTexture() 2016-08-30 12:52:49 -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
whitespace.txt Whitespace change 2016-08-30 13:51:10 -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.