skia2/include/core
caryclark 0449bcfb2f add helper to create fancy underlines
Add a couple of utility functions to SkPaint that return the bounds
of glyphs between a pair of lines.

The common use case envisioned generates the edges of descenders
between the top and bottom bounds of an underline to allow computing
a stroke that skips those descenders.

The implementation stores a linked list in each glyph containing
the bounds of the lines parallel to the advance and the outermost
intersections within those bounds.

When the glyph cache is constructed, the glyph path is intersected
with the bounds and the extreme min and max values within the bounds
is added to an intercept.

Share the text to path iter to construct the data.

Make a half-hearted attempt to support vertical text; while the
vertical implementation is complete; surrounding code (e.g. paint
align) has short-comings with vertical.

R=fmalita@chromium.org, reed@google.com

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

Review URL: https://codereview.chromium.org/1654883003
2016-02-09 13:25:45 -08:00
..
SkAnnotation.h Style Change: SkNEW->new; SkDELETE->delete 2015-08-26 13:07:49 -07:00
SkBBHFactory.h Add non-inline SkRTreeFactory constructor to fix clang-cl 2016-02-06 12:40:56 -08:00
SkBitmap.h SkBitmap move 2015-12-14 10:19:17 -08:00
SkBitmapDevice.h IWYU: 'core' target, files starting A-C. 2015-08-05 13:57:49 -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 Remove deferred clear from SkGpuDevice 2016-02-05 07:17:34 -08:00
SkChunkAlloc.h Add rewind capability to SkChunkAlloc 2015-02-27 08:31:57 -08:00
SkClipStack.h Clean up clipping code a bit 2015-02-10 08:16:55 -08:00
SkColor.h extend modecolorfilter to 4f 2016-02-08 12:56:57 -08:00
SkColorFilter.h extend compose-colorfilter to 4f 2016-02-04 11:35:27 -08:00
SkColorPriv.h Revert[2] of float color components 2016-01-22 01:04:29 -08:00
SkColorTable.h use allocator (if present) when we allocate our cache bitmap 2015-09-17 13:35:19 -07:00
SkComposeShader.h Bye bye processor data manager. 2015-10-06 08:40:51 -07:00
SkData.h Eliminate SkFILE: it always is the same as FILE. 2015-11-20 13:47:49 -08:00
SkDataTable.h remove SkInstCnt 2015-06-26 11:45:03 -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 try adding flag to allow lcd text even in a layer 2015-12-10 13:44:45 -08:00
SkDocument.h SkDocument::setDCTEncoder() for old versions of webkit 2015-12-10 08:59:43 -08:00
SkDraw.h resolution dependent path measure 2016-01-21 07:07:02 -08:00
SkDrawable.h add matrix options to drawDrawable 2015-07-07 10:22:31 -07:00
SkDrawFilter.h SkPaintFilterCanvas cleanup 2016-01-12 12:14:10 -08:00
SkDrawLooper.h remove SkInstCnt 2015-06-26 11:45:03 -07:00
SkError.h Sanitizing source files in Housekeeper-Nightly 2013-09-05 07:01:19 +00:00
SkFilterQuality.h add newImage API 2015-01-23 05:58:07 -08:00
SkFixed.h clamp fixed divide to 32 bits 2016-01-12 07:21:19 -08:00
SkFlattenable.h reorg global initialization, separating core from optional 2016-01-13 08:47:54 -08:00
SkFlattenableSerialization.h Removed unnecessary define 2013-11-08 15:24:12 +00:00
SkFont.h Treat embedded bitmaps as a hinting method. 2014-08-19 13:18:58 -07:00
SkFontHost.h Remove a layer of indirection and code from SkFontHost. 2014-09-10 15:49:48 -07:00
SkFontLCDConfig.h Sanitizing source files in Skia_Periodic_House_Keeping 2013-03-13 07:01:04 +00:00
SkFontStyle.h Replace SkTypeface::Style with SkFontStyle. 2014-10-20 13:33:19 -07:00
SkGraphics.h Make SkGraphics::Term a no-op, stop calling it. 2015-09-09 07:35:42 -07:00
SkImage.h Make SkImage::readYUV8Planes const 2016-02-03 17:09:00 -05:00
SkImageDecoder.h Remove staging for SkImageDecoder::Peeker 2015-12-08 18:48:38 -08:00
SkImageEncoder.h default SkPixelSerializer 2015-12-10 12:40:23 -08:00
SkImageFilter.h Replace the id<-->key hashmap in SkImageFilter by a SkTArray 2016-02-01 05:27:16 -08:00
SkImageGenerator.h take gr-context parameter to refEncoded, indicating a desire for only gpu-specific formats 2016-01-05 09:16:19 -08:00
SkImageInfo.h add kRGBA_F16_SkColorType 2016-02-05 11:18:39 -08: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 Add default ctor to SkMask 2015-12-17 11:33:12 -08:00
SkMath.h The compiler can generate smulbb perfectly well nowadays. 2015-08-07 08:48:12 -07:00
SkMatrix.h Make SkMatrix::get*Scale[s]() fail on NaN 2015-12-17 15:33:13 -08:00
SkMetaData.h "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
SkMultiPictureDraw.h Add sk_parallel_for() 2015-06-17 15:26:15 -07:00
SkOSFile.h add fsync to try to get complete skps from webpage picture capture 2015-12-16 13:41:23 -08:00
SkPackBits.h Remove unused PackBits methods and fix length checks 2015-06-04 15:10:37 -07:00
SkPaint.h add helper to create fancy underlines 2016-02-09 13:25:45 -08:00
SkPath.h Add svg path arcto 2016-01-23 05:07:04 -08:00
SkPathEffect.h Forward declare SkStrokeRec in SkPathEffect 2015-09-15 12:53:07 -07:00
SkPathMeasure.h remove legacy defines 2016-01-25 06:33:02 -08:00
SkPathRef.h add support for capped hairlines 2015-12-09 14:04:46 -08:00
SkPicture.h Remove SkBitmapSource 2015-09-25 09:15:55 -07:00
SkPictureRecorder.h Respect SkPictureRecorder::kPlaybackDrawPicture_RecordFlag for SkDrawables 2015-11-17 06:18:31 -08:00
SkPixelRef.h Add SkSpecialImage & SkSpecialSurface classes 2016-02-04 10:52:42 -08:00
SkPixelSerializer.h SkPixelSerializer: remove deprecated virtual 2015-12-10 09:30:57 -08:00
SkPixmap.h add kRGBA_F16_SkColorType 2016-02-05 11:18:39 -08:00
SkPngChunkReader.h Add SkPngChunkReader. 2015-11-23 08:14:40 -08:00
SkPoint3.h Update SkLightingShader to support rotation 2015-08-20 05:15:07 -07:00
SkPoint.h Revert of Revert of stop calling SkScalarDiv (patchset #1 id:1 of https://codereview.chromium.org/1138263002/) 2015-05-12 10:37:34 -07:00
SkPostConfig.h Add Histogram Macros to Skia 2016-02-05 15:32:36 -08:00
SkPreConfig.h check for both __ARM_NEON__ and __ARM_NEON 2016-01-26 07:34:51 -08:00
SkRasterizer.h remove SkInstCnt 2015-06-26 11:45:03 -07:00
SkRect.h handle halfway case in scan converter 2016-01-04 14:17:47 -08:00
SkRefCnt.h Revert of skstd -> std for unique_ptr (patchset #24 id:460001 of https://codereview.chromium.org/1436033003/ ) 2016-01-24 19:49:24 -08:00
SkRegion.h Remove useless SkASSERT in SkRect.h and SkRegion.h 2015-04-28 12:47:48 -07:00
SkRRect.h Split big rrect aa effect up into separate images 2015-12-09 10:17:35 -08:00
SkRSXform.h add helper to create RSXform w/ anchorPt 2015-07-30 05:46:05 -07:00
SkScalar.h Remove SkLerpXfermode 2016-01-25 14:19:56 -08:00
SkShader.h Revert[2] of expand unitests for color4f 2016-01-23 19:37:56 -08: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 add fsync to try to get complete skps from webpage picture capture 2015-12-16 13:41:23 -08:00
SkString.h Make SkString movable. 2016-02-07 18:42:54 -08:00
SkStrokeRec.h resolution dependent path measure 2016-01-21 07:07:02 -08:00
SkSurface.h Revert of skia: Add support for CHROMIUM_image backed textures. (patchset #17 id:340001 of https://codereview.chromium.org/1623653002/ ) 2016-02-05 17:56:39 -08:00
SkSurfaceProps.h Rename flag from "distance field" to "device independent." 2015-08-31 12:39:41 -07:00
SkTArray.h Remove SkNEW_APPEND_TO_TARRAY. 2016-02-09 11:32:56 -08:00
SkTDArray.h Add sk_careful_memcpy to catch undefined behavior in memcpy. 2015-12-08 11:55:17 -08:00
SkTDStack.h Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
SkTextBlob.h Make SkTextBlob::RunIterator public. 2015-10-27 14:01:05 -07:00
SkTime.h SkTime: Stop using POSIX entensions to time.h for timezone 2016-01-12 11:55:29 -08:00
SkTInternalLList.h "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
SkTLazy.h SkTCopyOnFirstWrite-based SkPaintFilterCanvas API 2016-01-12 07:21:11 -08: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 Port uses of SkLazyPtr to SkOncePtr. 2015-09-09 09:09:53 -07:00
SkTypes.h Move Google3-specific stack limitation logic to template classes. 2016-02-05 07:02:38 -08:00
SkUnPreMultiply.h Factor out UnPreMultiplyPreservingByteOrder 2014-01-15 22:24:58 +00:00
SkUtils.h update memset16/32 inlining heuristics 2015-09-29 10:38:59 -07:00
SkWriteBuffer.h change old picture serialization to really handle images 2015-06-22 12:48:26 -07:00
SkWriter32.h yet another memcpy -> sk_careful_memcpy 2015-12-10 14:34:23 -08:00
SkXfermode.h start experimenting with 64bit frame-buffers 2016-02-09 09:14:59 -08:00