skia2/include/core
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
..
SkAnnotation.h remove unneeded flag for annotations 2016-03-05 06:00:12 -08:00
SkBBHFactory.h Revert of Add non-inline SkRTreeFactory constructor to fix clang-cl (patchset #2 id:20001 of https://codereview.chromium.org/1676833002/ ) 2016-02-26 16:31:12 -08:00
SkBitmap.h remove/deprecate SkBitmap::getTexture, as it now always returns false 2016-07-25 08:29:10 -07:00
SkBitmapDevice.h store info in basedevice, change getter to non-virtual const& 2016-08-20 07:59:19 -07:00
SkBlitRow.h Port SkBlitRow::Color32 to SkOpts. 2015-09-10 10:38:02 -07:00
SkBlurTypes.h move common blur types into central header 2014-04-28 16:25:35 +00:00
SkCanvas.h drawRegion() cleanups 2016-08-26 06:37:45 -07:00
SkChunkAlloc.h MIPS32r2: Fix Chromium runtime crash 2016-06-05 13:14:21 -07:00
SkClipStack.h Converts a drawPaint through a rrect clip to a drawRRect in GrDrawContext. 2016-08-26 10:48:19 -07:00
SkColor.h Added SkColor4f::FromColor3f(SkColor3f, float a) 2016-08-19 11:23:15 -07:00
SkColorFilter.h Add SkRasterPipeline blitter. 2016-07-22 11:05:04 -07:00
SkColorPriv.h SkBlendARGB32 and S32[A]_Blend_BlitRow32 are currently formulated as: SkAlphaMulQ(src, src_scale) + SkAlphaMulQ(dst, dst_scale), which boils down to ((src*src_scale)>>8) + ((dst*dst_scale)>>8). In particular, note that the intermediate precision is discarded before the two parts are added together, causing the final result to possibly inaccurate. 2016-08-05 11:48:45 -07:00
SkColorSpace.h New helper for creating a color space from another, with linear gamma 2016-08-24 05:11:20 -07:00
SkColorTable.h Ensure that SkColorTable->fCount is set properly after decodes 2016-05-17 08:52:11 -07:00
SkData.h Use SkNVRefCnt for a couple common types. 2016-08-09 12:20:04 -07:00
SkDataTable.h Move to SkDataTable::MakeXXX and sk_sp. 2016-08-05 06:51:50 -07:00
SkDeque.h This CL addresses "SkCanvas::save flags are not respected by GPU backend" (https://code.google.com/p/skia/issues/detail?id=1503). 2013-08-16 00:53:34 +00:00
SkDevice.h Add drawRegion() API to SkCanvas 2016-08-25 13:54:30 -07:00
SkDocument.h SkPDF: allow overriding Producer metadata 2016-06-30 08:22:04 -07:00
SkDraw.h SkPixmap::setColorSpace 2016-06-09 11:03:45 -07:00
SkDrawable.h Make SkDrawable an SkFlattenable 2016-04-25 06:40:26 -07:00
SkDrawFilter.h SkPaintFilterCanvas cleanup 2016-01-12 12:14:10 -08:00
SkDrawLooper.h Revert of Delete SkFlattenable::Type (patchset #2 id:20001 of https://codereview.chromium.org/1834303003/ ) 2016-04-04 14:57:19 -07:00
SkError.h Sanitizing source files in Housekeeper-Nightly 2013-09-05 07:01:19 +00:00
SkFilterQuality.h Skia Filter Quality and Scaling Metrics 2016-04-18 09:14:00 -07:00
SkFlattenable.h SkLightingShader normal vector CPU computation refactor. 2016-06-27 11:40:45 -07:00
SkFlattenableSerialization.h Revert of Delete SkFlattenable::Type (part 1) (patchset #1 id:1 of https://codereview.chromium.org/1861013002/ ) 2016-04-05 12:00:49 -07:00
SkFont.h typedef uint16_t SkGlyphID 2016-07-25 07:18:12 -07:00
SkFontLCDConfig.h Add SK_API to SkFontLCDConfig. 2016-05-03 11:56:03 -07:00
SkFontStyle.h Remove 'Ulta' width. 2016-08-02 10:43:29 -07:00
SkGraphics.h add SkGraphics::PurageAllCaches 2016-02-22 06:19:54 -08:00
SkImage.h Add alphaType() to SkImage 2016-08-17 14:01:05 -07:00
SkImageDeserializer.h Deserialize pictures with custom image-deserializer 2016-08-11 03:55:15 -07:00
SkImageEncoder.h GN: guard tools (except fiddle) by skia_enable_tools. 2016-08-24 12:23:52 -07:00
SkImageFilter.h Moving SkBlurImageFilter into core 2016-08-23 11:13:14 -07:00
SkImageGenerator.h Enable generating SkImage with the same uniqueID in SkImageGenerator subclass 2016-05-02 01:43:38 -07:00
SkImageInfo.h Add SkColorSpace::Equals() API 2016-08-01 09:43:08 -07:00
SkLights.h Added distance attenuation and diffuse shading to PointLights 2016-08-26 08:49:46 -07:00
SkMallocPixelRef.h For non-opaque SkBitmapDevices, replace malloc-then-zero with calloc. 2015-11-05 09:46:23 -08:00
SkMask.h Add default ctor to SkMask 2015-12-17 11:33:12 -08:00
SkMaskFilter.h Implement GPU occluded blur mask filter 2016-08-10 16:25:25 -07:00
SkMath.h SkLiteDL: remove freelisting, add reset() and SKLITEDL_PAGE knob. 2016-08-16 09:36:18 -07:00
SkMatrix44.h SkMatrix44 clarifications and clean-ups 2016-06-23 12:42:29 -07:00
SkMatrix.h add SkMatrixPriv for specialized helpers 2016-08-22 06:39:49 -07:00
SkMetaData.h "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
SkMilestone.h Update Skia milestone to 55 2016-08-25 06:19:31 -07:00
SkMultiPictureDraw.h Move SkTDArray to private. 2016-02-18 08:53:33 -08:00
SkOSFile.h add fsync to try to get complete skps from webpage picture capture 2015-12-16 13:41:23 -08:00
SkPaint.h SkPaint intercept API for SkTextBlob and horizontal text 2016-07-28 09:47:24 -07:00
SkPath.h Avoid warnings on GCC 4.8.4 2016-07-26 14:10:17 -07:00
SkPathEffect.h Add constructor to DashInfo to enable initializer lists 2016-08-10 16:36:11 -07:00
SkPathMeasure.h Move seg_to to a new header, define SkSegType enum there 2016-08-09 09:38:30 -07:00
SkPathRef.h Use SkNVRefCnt for a couple common types. 2016-08-09 12:20:04 -07:00
SkPicture.h Deserialize pictures with custom image-deserializer 2016-08-11 03:55:15 -07:00
SkPictureAnalyzer.h SkPictureAnalyzer: expose the number of slow GPU commands. 2016-06-09 12:43:30 -07:00
SkPictureRecorder.h Revert of add parallel public API for recording SkLiteDL. (patchset #1 id:1 of https://codereview.chromium.org/2246893002/ ) 2016-08-15 12:56:00 -07:00
SkPixelRef.h Remove SkPixelRef::getTexture() 2016-08-23 14:02:54 -07:00
SkPixelSerializer.h SkPixelSerializer: remove deprecated virtual 2015-12-10 09:30:57 -08:00
SkPixmap.h SkPixmap::setColorSpace 2016-06-09 11:03:45 -07:00
SkPngChunkReader.h Delete SkImageDecoder 2016-03-24 10:41:47 -07:00
SkPoint3.h Update SkLightingShader to support rotation 2015-08-20 05:15:07 -07:00
SkPoint.h handle large conic weights 2016-07-13 10:56:53 -07:00
SkPostConfig.h SkPDF: Glyph validation change 2016-08-26 13:17:44 -07:00
SkPreConfig.h update Android auto-detection. 2016-08-25 08:44:49 -07:00
SkRasterizer.h Revert of Delete SkFlattenable::Type (patchset #2 id:20001 of https://codereview.chromium.org/1834303003/ ) 2016-04-04 14:57:19 -07:00
SkRect.h In GrShape detect that stroked axis-aligned lines are rrects. 2016-07-18 07:31:13 -07:00
SkRefCnt.h SkLite* 2016-08-06 12:51:51 -07:00
SkRegion.h inline very common intersect+rect_rgn 2016-06-30 07:47:34 -07:00
SkRRect.h Attempt to throw away rrect clips of rrects. 2016-08-15 14:49:10 -07:00
SkRSXform.h add helper to create RSXform w/ anchorPt 2015-07-30 05:46:05 -07:00
SkRWBuffer.h Fixes for SkRWBuffer 2016-04-22 06:59:01 -07:00
SkScalar.h Swap SkGpuBlurUtils over to using SkIRects 2016-05-13 05:06:19 -07:00
SkShader.h Always return ImageShader, even from SkShader::MakeBitmapShader 2016-08-02 06:12:06 -07:00
SkSize.h deprecate SkScalarRound (and its ilk), use SkScalarRound[ToInt,ToScalar]. #define SK_SUPPORT_DEPRECATED_SCALARROUND for legacy clients 2013-12-17 19:22:07 +00:00
SkStream.h SkWStream::writeText inlined. 2016-04-11 19:41:48 -07:00
SkString.h Reverse dependency between SkScalar.h and SkFixed.h. 2016-04-07 08:49:31 -07:00
SkStrokeRec.h Unify implementations of stroking radius calculationsns 2016-04-29 07:07:03 -07:00
SkSurface.h Remove SkSurface::MakeRenderTargetDirect 2016-08-04 08:45:02 -07:00
SkSurfaceProps.h remove disable aa/dither flags from Props -- never used 2016-08-18 09:30:44 -07:00
SkSwizzle.h Add missing SK_API to SkSwizzle.h 2016-03-24 07:50:14 -07:00
SkTextBlob.h update textblob api to use sk_sp 2016-08-10 14:16:41 -07:00
SkTime.h Make SkTime SK_API so that SkTime::GetDateTime() is visible to the clients. 2016-05-02 15:04:46 -07:00
SkTLazy.h Fix SkTLazy(const T*) initialization 2016-08-24 11:03:24 -07:00
SkTraceMemoryDump.h Add support for light dumps in SkTraceMemoryDump interface. 2015-09-30 04:31:23 -07:00
SkTRegistry.h Rewrite SkTRegistry to take any trivially-copyable type. 2013-09-04 17:20:18 +00:00
SkTypeface.h SkPDF: SkPDFFont class changes 2016-08-16 09:36:23 -07:00
SkTypes.h Defined SkDEBUGFAILF on Release builds 2016-08-15 15:26:31 -07:00
SkUnPreMultiply.h Factor out UnPreMultiplyPreservingByteOrder 2014-01-15 22:24:58 +00:00
SkWriteBuffer.h Prototype code that turns any/every flattenable into JSON 2016-05-04 11:06:28 -07:00
SkWriter32.h Remove SkWriter32::contiguousArray(). 2016-04-29 14:45:36 -07:00
SkXfermode.h Add SkRasterPipeline blitter. 2016-07-22 11:05:04 -07:00
SkYUVSizeInfo.h Update Skia's YUV API 2016-03-10 05:44:43 -08:00