Go to file
msarett fbfa258027 Optimized implementation of quickReject()
Impl Overview
(1) Keep the device clip bounds up to date.  This
    requires minimal additional work in a few places
    throughout canvas.
(2) Keep track of if the ctm isScaleTranslate.  Yes,
    there's a function that does this, but it's slow
    to call.
(3) Perform the src->device transform in quick reject,
    then check intersection/nan.

Other Notes:
(1) NaN and intersection checks are performed
    simultaneously.
(2) We no longer quick reject infinity.
(3) Affine and perspective are both handled in the slow
    case.
(4) SkRasterClip::isEmpty() is handled by the intersection
    check.

Performance on Nexus 6P:
93.2ms -> 59.8ms

Overall Android Jank Tests Performance Impact:
Should gain us a ms or two on some tests.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2225393002

Committed: https://skia.googlesource.com/skia/+/d22a817ff57986407facd16af36320fc86ce02da
Review-Url: https://codereview.chromium.org/2225393002
2016-08-12 08:29:08 -07:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench Optimized implementation of quickReject() 2016-08-12 08:29:08 -07:00
bin Pick the right download tool for windows. 2016-08-01 12:26:51 -07:00
build_overrides GN 2016-06-23 10:29:30 -07:00
cmake Use sse4.2 CRC32 instructions to hash when available. 2016-08-08 09:06:28 -07:00
debugger Remove some ancillary users of SkSurface::MakeRenderTargetDirect 2016-08-01 05:53:23 -07:00
dm finish SkLiteDL 2016-08-07 13:35:47 -07:00
example Get Mac viewer working with SDL 2016-08-04 12:30:31 -07:00
experimental [SVGDom] Add more presentation attributes. 2016-08-11 09:16:29 -07:00
fuzz Create gradient fuzzers 2016-08-12 06:26:03 -07:00
gm Implement GPU occluded blur mask filter 2016-08-10 16:25:25 -07:00
gn Roll GN: gn format is --in-place by default 2016-08-10 07:30:58 -07:00
gyp add legacy flag 2016-08-11 05:21:41 -07:00
include Optimized implementation of quickReject() 2016-08-12 08:29:08 -07:00
infra Turn on SVGs for all Test bots 2016-08-12 07:25:53 -07:00
platform_tools Revert of Cleanup use of legacy SkSurface creation methods a bit (patchset #2 id:20001 of https://codereview.chromium.org/2223023002/ ) 2016-08-08 09:17:20 -07:00
resources Fix various SkColorSpace bugs 2016-07-29 08:58:33 -07:00
samplecode moved code into onDrawShadowedPic, only renders into shadow maps if needed 2016-08-09 09:32:09 -07:00
site SkRTConf: eliminate 2016-08-04 10:47:16 -07:00
src Optimized implementation of quickReject() 2016-08-12 08:29:08 -07:00
tests Optimized implementation of quickReject() 2016-08-12 08:29:08 -07:00
third_party Get Mac viewer working with SDL 2016-08-04 12:30:31 -07:00
tools Only open X Display once for all test GLX contexts 2016-08-11 14:58:34 -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 SkPDF: Use type 2/3 shading for gradient shaders 2016-06-17 12:38:54 -07:00
BUILD.gn Use sse4.2 CRC32 instructions to hash when available. 2016-08-08 09:06:28 -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: gn format is --in-place by default 2016-08-10 07:30:58 -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 Roll GN: gn format is --in-place by default 2016-08-10 07:30:58 -07:00
public.bzl add legacy flag for google3 2016-08-11 05:04:52 -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-08 08:45:40 -04:00

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

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