aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects
Commit message (Collapse)AuthorAge
...
* Fix SkDashImpl::CreateProc OOM on garbage inputGravatar Adrienne Walker2018-04-25
| | | | | | | | | | | | Verify that there's enough data to read from before allocating gigantic blocks of memory. This was caught by a fuzzer. Bug: chromium:835418 Change-Id: I43fb1d11ec13726aacb62fe6aeb9f137424fb783 Reviewed-on: https://skia-review.googlesource.com/123538 Commit-Queue: Mike Klein <mtklein@google.com> Auto-Submit: Adrienne Walker <enne@chromium.org> Reviewed-by: Mike Klein <mtklein@google.com>
* prepare to remove obsolete macrosGravatar Cary Clark2018-04-24
| | | | | | | | | | | | | | SkColorSetARGBMacro and SkColorSetARGBInline are macros which will be deleted. Replace them with a standard equivalent. R=scroggo@google.com Bug: skia:6898 Change-Id: I16e010776e991c19a375d0686ecd1b1cc4c59a9b Reviewed-on: https://skia-review.googlesource.com/123501 Auto-Submit: Cary Clark <caryclark@skia.org> Commit-Queue: Leon Scroggins <scroggo@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com>
* rm SkRRectsGaussianEdgeMaskFilterGravatar Robert Phillips2018-04-19
| | | | | | | | | Neat but unused. Change-Id: I1b2d160df274b05cfb5582a5385085cc2db89f7d Reviewed-on: https://skia-review.googlesource.com/121960 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Fix alpha threshold image filter GPU implementationGravatar Robert Phillips2018-04-11
| | | | | | | | BUG=skia:7760 Change-Id: I674d705ce637c405361ecf45ea8604d1606f7af7 Reviewed-on: https://skia-review.googlesource.com/120203 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* detect if makeOffset failedGravatar Mike Reed2018-04-06
| | | | | | | | | | | If we don't detect this, this imagefilter might not write to all of the pixels it claims it will, resulting in uninitialized memory. Bug: oss-fuzz:7209 Change-Id: I6c53757046b4d6051da1b317310c89b8ec4752ca Reviewed-on: https://skia-review.googlesource.com/119145 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Make generated effects from sksl fp files not need SK_SUPPORT_GPUGravatar Greg Daniel2018-04-06
| | | | | | | | Bug: skia: Change-Id: I42a5c7fe7dc35a23290c8daa754c9fcce07f76fb Reviewed-on: https://skia-review.googlesource.com/119010 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Remove SK_SUPPORT_LEGACY_BLURMASKFILTERGravatar Brian Osman2018-04-06
| | | | | | | Change-Id: I1d99d9bb83d8a612d1c1fd298c1f7ed706a2277b Reviewed-on: https://skia-review.googlesource.com/118990 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* remove SK_IGNORE_TO_STRINGGravatar Cary Clark2018-04-05
| | | | | | | | | | | | | | | | | | | SK_IGNORE_TO_STRING is not defined anywhere. The same effect can be had by using a modern linker. Removing it simplifies bookmaker and makes our includes easier to understand. R=robertphillips@google.com TBR=reed@google.com Bug: skia:6898 Change-Id: Ib716f5ef1b42a7fbda0df43ece212d1b7c40289f Reviewed-on: https://skia-review.googlesource.com/118963 Reviewed-by: Robert Phillips <robertphillips@google.com> Reviewed-by: Cary Clark <caryclark@skia.org> Commit-Queue: Cary Clark <caryclark@skia.org>
* Fixing build with SK_IGNORE_TO_STRING defined.Gravatar Kaloyan Donev2018-03-29
| | | | | | | Change-Id: Id7238e427e490338d1f610255774c2069cfd4879 Reviewed-on: https://skia-review.googlesource.com/117060 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
* Remove copy of TableColorFilter data when GPU renderingGravatar Robert Phillips2018-03-26
| | | | | | | Change-Id: I8cb6059a175e0ef6bd766e3ad2254c893c11bed3 Reviewed-on: https://skia-review.googlesource.com/116522 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* limit discrete path effect iterationsGravatar Cary Clark2018-03-21
| | | | | | | | | R=fmalita@google.com, reed@google.com Bug: skia:7737 Change-Id: I339548f7a39618d7559182487e8969d591953b89 Reviewed-on: https://skia-review.googlesource.com/115659 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Cary Clark <caryclark@skia.org>
* Fix GrTextureStripAtlasManager cleanup order bugGravatar Robert Phillips2018-03-19
| | | | | | | | Bug: 820703 Change-Id: I6f1a895ceb213d38361bc03a472cf2a48e4720a5 Reviewed-on: https://skia-review.googlesource.com/115001 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* hide SkBlurMaskFilter and SkBlurQualityGravatar Mike Reed2018-03-14
| | | | | | | | | | SK_SUPPORT_LEGACY_BLURMASKFILTER Bug: skia: Change-Id: Ic3e27e08e6e3cd2ffc1cd13b044e197bebc96236 Reviewed-on: https://skia-review.googlesource.com/113940 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* move blur impl into coreGravatar Mike Reed2018-03-12
| | | | | | | | | | | | | | | | Ever since we added drawShadow to the public api, blurs have necessarily part of the core. This CL just formalizes that. This should also allow us to have builds that exclude all of /effects (for code size) and still be valid. Will follow-up with a change to deprecate SkBlurMaskFilter and SkBlurQuality (both no longer needed). Bug: skia: Change-Id: Ifbbd8b47a30a0386d215726b67bcf1e8b84fb8f5 Reviewed-on: https://skia-review.googlesource.com/113713 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Extend SkTrimPathEffect semanticsGravatar Florin Malita2018-03-12
| | | | | | | | | | Add support for multiple contours, and an explicit "inverted" mode. Bug: skia: Change-Id: Iafadbbe9d4692f2467a4ef8585f7fcd9cee9566a Reviewed-on: https://skia-review.googlesource.com/113270 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* remove unused ConvertRadiusToSigma from SkBlurMaskFilterGravatar Mike Reed2018-03-12
| | | | | | | | Bug: skia: Change-Id: I1726f22fc40ad61b1b0485bcda6d383614da1fdb Reviewed-on: https://skia-review.googlesource.com/113463 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Make GrTextureStripAtlas DDL friendlyGravatar Robert Phillips2018-03-09
| | | | | | | Change-Id: If8fdd7a1c027bc2b2791cfe1af13f99c2561d93d Reviewed-on: https://skia-review.googlesource.com/113268 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Use kLow_SkFilterQuality when generating shader masksGravatar Florin Malita2018-03-08
| | | | | | | | | This prevents edge aliasing for kDecal tiling. Change-Id: I3a66e49ec1900bbe19c6700ec2f766122af4a3ce Reviewed-on: https://skia-review.googlesource.com/113124 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Additional DDL playback cleanupGravatar Robert Phillips2018-03-08
| | | | | | | | | | This operates in tandem with https://skia-review.googlesource.com/c/skia/+/112702 ( Remove GrRestrictedAtlasManager) to get DDL playback working. Change-Id: I6c2178fde760677bf79f2cf0a2dee8b5990aa5bc Reviewed-on: https://skia-review.googlesource.com/113121 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* add TrimPathEffectGravatar Mike Reed2018-03-07
| | | | | | | | Bug: skia: Change-Id: I453fb81ded4435b33567e9c8a6f3abe9535d687f Reviewed-on: https://skia-review.googlesource.com/112820 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Initial texture data is never flipped when uploaded.Gravatar Brian Salomon2018-03-07
| | | | | | | | | The first bytes of the data always refer to the pixel accessed by texture coord (0, 0). Change-Id: I708702d90f35b3bc896a48c3c3fd6a0be73f505a Reviewed-on: https://skia-review.googlesource.com/112261 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* make compute helper for blurs privateGravatar Mike Reed2018-03-06
| | | | | | | | | | | Precursor for moving blurmaskfilter into core, since it is referenced by core code for drawShadow. Bug: skia: Change-Id: I900c6e10523115c75f45d2c410eb6a5ca56a6e4d Reviewed-on: https://skia-review.googlesource.com/112301 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Move internal calls from GrContext to GrContextPrivGravatar Robert Phillips2018-03-06
| | | | | | | | | | A mechanical bulk move just to get these out of the public API. TBR=bsalomon@google.com Change-Id: I813efbd54a09dd448275697c0e50947753a5cfd3 Reviewed-on: https://skia-review.googlesource.com/112262 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Remove GrSurfaceOrigin from GrSurfaceDesc.Gravatar Brian Salomon2018-03-05
| | | | | | | | | | | | This field has no interpretation at the GrTexture/GrGpu as the orientation is handled at the GrSurfaceProxy level. This change requires GrGpu to accept a GrSurfaceOrigin when creating a texture with initial data. The origin refers to the texel data to be uploaded. Longer term the plan is to remove this and require the data to be kTopLeft. Additionally, kBottomLeft will only be allowed for wrapped texture/RTs as this evolves. Change-Id: I7d25b0199aafd9bf3b74c39b2cae451acadcd772 Reviewed-on: https://skia-review.googlesource.com/111806 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* limit crash small steps in 1dpatheffectGravatar Mike Reed2018-02-27
| | | | | | | | Bug: oss-fuzz:6590 Change-Id: Ib7b6f4d25712e462ca45284cf6fc8fd73aa92880 Reviewed-on: https://skia-review.googlesource.com/110640 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* use SkIRect makeOffset to avoid overflowsGravatar Mike Reed2018-02-26
| | | | | | | | Bug: oss-fuzz:7657 Change-Id: I7917306cf0a158d2e1f36611e85ef26028da9954 Reviewed-on: https://skia-review.googlesource.com/110280 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* make 1dpatheffect more robust on deserialGravatar Mike Reed2018-02-24
| | | | | | | | Bug: skia: Change-Id: Ic7a38edaf1099a70b72fbea64c5e36f522bc363b Reviewed-on: https://skia-review.googlesource.com/110020 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* move some RRect methods into privGravatar Mike Reed2018-02-22
| | | | | | | | | | also, return radii by value instead of reference, in possible prep for changing underlying representation Bug: skia:7649 Change-Id: Iff42a49c53cc48171fc63462be366cc3500b2273 Reviewed-on: https://skia-review.googlesource.com/109385 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* detect bad radius in cornerpatheffectGravatar Mike Reed2018-02-22
| | | | | | | | Bug: skia: Change-Id: I88b0be68e3099bcf6df608ded0e875c7a60bb5d6 Reviewed-on: https://skia-review.googlesource.com/109381 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Add checks for failed SkImageInfo2GrPixelConfig callsGravatar Greg Daniel2018-02-21
| | | | | | | | Bug: skia:7645 Change-Id: I32b9326fb43490ef6a7a99527243b68d89184ae1 Reviewed-on: https://skia-review.googlesource.com/109083 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* hide virtual and rename to onMakeComposedGravatar Mike Reed2018-02-19
| | | | | | | | Bug: skia: Change-Id: Ic18ee2af3273f81ebec9c9031162e808186c0acd Reviewed-on: https://skia-review.googlesource.com/108300 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* abort blur if the sigma is too smallGravatar Mike Reed2018-02-15
| | | | | | | | Bug: oss-fuzz:6375 Change-Id: I8f21ea05b44f2ed6fdcdfe2573ac9415f238d833 Reviewed-on: https://skia-review.googlesource.com/107784 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Herb Derby <herb@google.com>
* DDL-ify GrRectBlurEffectGravatar Robert Phillips2018-02-14
| | | | | | | | | This allows the upload of the blur profile to be delayed until the draw is actually executed. Change-Id: I10a7e8fb0edc90ef509c418552740a867f1f3df2 Reviewed-on: https://skia-review.googlesource.com/107354 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* saturate IPoint math, handle NaN in isEmptyGravatar Mike Reed2018-02-13
| | | | | | | | | Bug: skia:7507 Change-Id: Ibdb40584effdea70e6499eab1bb64bb4b2260d06 Reviewed-on: https://skia-review.googlesource.com/106972 Commit-Queue: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* doh -- reverse check for finiteGravatar Mike Reed2018-02-13
| | | | | | | | Bug: skia: Change-Id: I7ea6e9bdf5c979dbbc61587edad5f799e9626639 Reviewed-on: https://skia-review.googlesource.com/106967 Reviewed-by: Stan Iliev <stani@google.com> Commit-Queue: Mike Reed <reed@google.com>
* begin to wrap all float dividesGravatar Mike Reed2018-02-12
| | | | | | | | Bug: skia:7607 skia:6134 Change-Id: Id126e92816bef1df1372bd531238cda9f3b36fab Reviewed-on: https://skia-review.googlesource.com/106261 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* check for failed snapshotGravatar Mike Reed2018-02-07
| | | | | | | | Bug: skia:7596 Change-Id: I4846cb0874c075244e5f53da8fc3210362172940 Reviewed-on: https://skia-review.googlesource.com/105361 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Revert "move GrColor.h to private, IWYU""Gravatar Mike Reed2018-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 63cc29304a65039feaf27842d587ed16de010b0d. Reason for revert: pdfium updated Original change's description: > Revert "move GrColor.h to private, IWYU" > > This reverts commit e602f395813aab8242afad356008b8e79911adbb. > > Reason for revert: Breaks PDFIUM > > Original change's description: > > move GrColor.h to private, IWYU > > > > Bug: skia: > > Change-Id: I0f0dabd7cc54cb7786f53bd6da0c0c012375037e > > Reviewed-on: https://skia-review.googlesource.com/104160 > > Commit-Queue: Mike Reed <reed@google.com> > > Reviewed-by: Brian Salomon <bsalomon@google.com> > > TBR=bsalomon@google.com,reed@google.com > > Change-Id: Ifaa50f8771fa1ca8bc152270efdb1fe27f7210f2 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia: > Reviewed-on: https://skia-review.googlesource.com/104440 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Brian Salomon <bsalomon@google.com> TBR=bsalomon@google.com,reed@google.com Change-Id: I22fa5c0e0628b5c1f3b5f13879c7d1a4528cc93a No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/104561 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "move GrColor.h to private, IWYU"Gravatar Brian Salomon2018-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit e602f395813aab8242afad356008b8e79911adbb. Reason for revert: Breaks PDFIUM Original change's description: > move GrColor.h to private, IWYU > > Bug: skia: > Change-Id: I0f0dabd7cc54cb7786f53bd6da0c0c012375037e > Reviewed-on: https://skia-review.googlesource.com/104160 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> TBR=bsalomon@google.com,reed@google.com Change-Id: Ifaa50f8771fa1ca8bc152270efdb1fe27f7210f2 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/104440 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* move GrColor.h to private, IWYUGravatar Mike Reed2018-02-06
| | | | | | | | Bug: skia: Change-Id: I0f0dabd7cc54cb7786f53bd6da0c0c012375037e Reviewed-on: https://skia-review.googlesource.com/104160 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Disable texture strip atlasing for DDLGravatar Robert Phillips2018-02-02
| | | | | | | | | | | | | Ultimately we will want to perform inline and ASAP uploads for the texture strip atlas. Unfortunately, that functionality relies on the existance of the flushState (which we don't have for the opList-based DDL implementation). For now we will punt and try storing the individual texture strips in their own image-based texture proxy for DDLs. Change-Id: Ic2ee0deb230172bda4a5d4b69cc802dbe84ad7ac Reviewed-on: https://skia-review.googlesource.com/102464 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* updated .fp file headersGravatar Ethan Nicholas2018-02-01
| | | | | | | | Bug: skia: Change-Id: I9c39622f34e803a706acd04372be569667380661 Reviewed-on: https://skia-review.googlesource.com/102204 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* add gpu impl for shadermaskfilterGravatar Mike Reed2018-02-01
| | | | | | | | | | | adds MulChildAlphaByInput renames MulOutputByInputAlpha --> MulChildByInputAlpha Bug: skia:7500 Change-Id: Ic0615d4d23a887fbee510901ed77a36f98a1b11d Reviewed-on: https://skia-review.googlesource.com/102440 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Reed <reed@google.com>
* saturate some irect ops for fuzzersGravatar Mike Reed2018-01-30
| | | | | | | | Bug: skia: Change-Id: I1c4f879a455048652abb619814841cd687a0474a Reviewed-on: https://skia-review.googlesource.com/101881 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Reed <reed@google.com>
* handle conics in 1D patheffectGravatar Mike Reed2018-01-29
| | | | | | | | Bug: skia::7507 Change-Id: Iab68d17c0950ffa2e5d5c20754b3f524f4b75a71 Reviewed-on: https://skia-review.googlesource.com/101442 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "hide picture virtuals (no public callers)"Gravatar Mike Klein2018-01-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8005bff7e631a269f0dfaae93ff9963dc0e5ff39. Reason for revert: hwui, flutter, and headless blink in G3 all still using these. Original change's description: > hide picture virtuals (no public callers) > > This prepares the way for a clean impl of a "placeholder" picture that never unrolls > > Bug: skia: > Change-Id: I3b5785c5c94432b54e9a7dc280b2a6e716592473 > Reviewed-on: https://skia-review.googlesource.com/100260 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Mike Klein <mtklein@chromium.org> TBR=mtklein@chromium.org,mtklein@google.com,reed@google.com Change-Id: I385789dd420588ea9a9390c8a44c6ecb96c7f358 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/100880 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
* hide picture virtuals (no public callers)Gravatar Mike Reed2018-01-27
| | | | | | | | | | This prepares the way for a clean impl of a "placeholder" picture that never unrolls Bug: skia: Change-Id: I3b5785c5c94432b54e9a7dc280b2a6e716592473 Reviewed-on: https://skia-review.googlesource.com/100260 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* move checkLE functionality directly onto readbufferGravatar Mike Reed2018-01-26
| | | | | | | | Bug: skia: Change-Id: I549717f04e2e4cafc41ccbe13009805f47943d5d Reviewed-on: https://skia-review.googlesource.com/99703 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* remove SkColorSpace_BaseGravatar Mike Klein2018-01-26
| | | | | | | | | | | | The type SkColorSpace_Base doesn't need to exist. Its one type() query can be answered instead by toXYZD50(). Now all that's left in the file is SkGammas, so rename it to SkGammas.h. Change-Id: Id60ddbfb342accfd5674ae89b37a24a6583ef7b8 Reviewed-on: https://skia-review.googlesource.com/99702 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Remove legacy mask blur code.Gravatar Herbert Derby2018-01-26
| | | | | | | | | | | | | This was flag flipped about last year in the chrome code, and flag flipped about three weeks ago in Android. All the *_LEGACY_*BLUR flags are gone. Change-Id: I046f3a040ccbf12ff3a810c41b02131095df3368 Reviewed-on: https://skia-review.googlesource.com/96001 Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Herb Derby <herb@google.com>