Go to file
halcanary 4871f22777 SkPDF: Glyph validation change
Instead of mapping invaid glyphIDs to zero or maxGlyphID,
don't draw them at all.

Validate glyphs when glyph is written, not ahead of time.

Don't allocate array to copy user-provided glyphs.

Easy early exit from SkPDFDevice::internalDrawText()
    GlyphPositioner::flush() called ~GlyphPositioner()
    SkScopeExit class now exists.

Assume SkTypeface* pointers are now never null in more
places.

precalculate alignmentFactor to clean up code.

SkPDFDevice::updateFont must be called with validated
glyphID.  Skip bad glyphs to make this true.

SkPDFDevice::updateFont always succeeds.

SkPDFFont::GetFontResource always succeeds (preconditions are
asserted).  If GetMetrics fails, don't call GetFontResource.

SkPDFFont::glyphsToPDFFontEncodingCount() becomes
SkPDFFont::countStretch() and is inlined.

SkPDFFont::glyphsToPDFFontEncoding now works one Glyph at a
time and is inlined.

SkPDFFont::noteGlyphUsage() operates one glyph at a time.

Add SkScopeExit.h; also a unit test for it.

SkPostConfig: Fix SK_UNUSED for Win32.

No public API changes.
TBR=reed@google.com

BUG=625995

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

Review-Url: https://codereview.chromium.org/2278703002
2016-08-26 13:17:44 -07:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench Batched implementation of drawLattice() for GPU 2016-08-18 15:46:03 -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 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 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 Reland: Experimental parsing expression grammar (PEG) template library 2016-08-25 08:44:35 -07:00
fuzz Create gradient fuzzers 2016-08-12 06:26:03 -07:00
gm drawBitmapRect() should not touch the CTM when mask filters are present 2016-08-26 13:04:14 -07:00
gn GN: mac host and armv7 target 2016-08-26 08:13:04 -07:00
gyp Fix angle build on Ubuntu 2016-08-26 12:33:58 -07:00
include SkPDF: Glyph validation change 2016-08-26 13:17:44 -07:00
infra Add Mac NDK asset, and fetch NDK on Android compile bots. 2016-08-26 11:22:54 -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 Added distance attenuation and diffuse shading to PointLights 2016-08-26 08:49:46 -07:00
site Add trooper documentation for CT bots and for iOS "the service is invalid" 2016-08-22 12:54:54 -07:00
src SkPDF: Glyph validation change 2016-08-26 13:17:44 -07:00
tests SkPDF: Glyph validation change 2016-08-26 13:17:44 -07:00
third_party GN: mac host and armv7 target 2016-08-26 08:13:04 -07:00
tools Update ANGLE to latest as of August 25, 2016 2016-08-26 10:37:57 -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: mac host and armv7 target 2016-08-26 08:13:04 -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 Update ANGLE to latest as of August 25, 2016 2016-08-26 10:37:57 -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 SkPDF: Stop #include PREPROCESSOR_DEFINE pattern 2016-08-25 09:07:02 -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.