Go to file
halcanary 0a61270f4b SkPDF: cache metrics once.
Motivation: drawText can look up unicode mapping at draw time to see
if ActualText should be used after crrev.com/2084533004 lands.

For each SkTypeface, only call getAdvancedTypefaceMetrics() once per
document.  Cache the result in the SkPDFCanon, indexed by SkFontID.
Also cache PDF FontDescriptors in the canon, also indexed by SkFontID
(Type1 fonts only).

Simplify PDF font lookup, map SkFontID+SkGlyphID into a uint64_t.  Map
that uint64_t to SkPDFFonts.  Remove SkPDFCanon::findFont(),
SkPDFCanon::addFont(), SkPDFFont::IsMatch(), and enum SkPDFFont::Match.

SkPDFFont no longer holds on to ref of SkAdvancedTypefaceMetrics.
Instead, SkPDFFont::GetFontResource() and SkPDFFont::getFontSubset()
get metrics from canon.

SkPDFFont multybite bool is now a function of type.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2253993002

Review-Url: https://codereview.chromium.org/2253993002
2016-08-17 14:21:42 -07:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench Optimize color xforms when src and dst are matching 2016-08-15 08:10:44 -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 Only test SVG DM sources against direct raster/gpu sinks. 2016-08-16 14:23:29 -07:00
example Get Mac viewer working with SDL 2016-08-04 12:30:31 -07:00
experimental [SVGDom] Add <line> support 2016-08-17 08:38:15 -07:00
fuzz Create gradient fuzzers 2016-08-12 06:26:03 -07:00
gm Add alphaType() to SkImage 2016-08-17 14:01:05 -07:00
gn GN: make current_cpu work 2016-08-16 18:28:43 -07:00
gyp Implement difference clip rects with window rectangles 2016-08-17 10:00:22 -07:00
include Add alphaType() to SkImage 2016-08-17 14:01:05 -07:00
infra Add gerrit config lines to cq.cfg 2016-08-17 07:51:57 -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 Revert of Add regression test (patchset #2 id:20001 of https://codereview.chromium.org/2243143002/ ) 2016-08-16 04:54:19 -07:00
samplecode Fix SampleAndroidShadows warnings 2016-08-17 11:33:29 -07:00
site Documentation: Important things on front page 2016-08-15 06:56:18 -07:00
src SkPDF: cache metrics once. 2016-08-17 14:21:42 -07:00
tests Add alphaType() to SkImage 2016-08-17 14:01:05 -07:00
third_party Get Mac viewer working with SDL 2016-08-04 12:30:31 -07:00
tools Add mssa configs for vulkan, and simple bug fix 2016-08-17 06:26:16 -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 Fix BUILD.gn for arch other then x86 and x64 2016-08-17 13:57:26 -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.