aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
Commit message (Collapse)AuthorAge
* detect overflow for morphologyGravatar Mike Reed2018-05-13
| | | | | | | | Bug: oss-fuzz:8236 Change-Id: Iae911d995cbfed77c5d332f615da1a8d9b487c21 Reviewed-on: https://skia-review.googlesource.com/127703 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Revert "reject large paths to avoid potential float overflows""Gravatar Mike Reed2018-05-11
| | | | | | | | | | | | | This reverts commit b8f0709aac43cfdefdbf3a307f8c2ecfc0c55d27. Attempted fix: update the iData before we return. Bug: oss-fuzz:8131 Change-Id: If60b8b45df4dcb1deecc18f58cb09644aaa3231d Reviewed-on: https://skia-review.googlesource.com/127501 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Don't limit glyph mask format for path effect.Gravatar Ben Wagner2018-05-11
| | | | | | | | | | | This removes code which sets the mask format of a scaler context to a8 in the presence of a path effect. This is overly limiting as both a1 and lcd16 are supported. Change-Id: I2a9ae88eac6a80ba1307dbac3d903041a9a93bf2 Reviewed-on: https://skia-review.googlesource.com/127398 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Ben Wagner <bungeman@google.com>
* Roll clang for Windows to chromium's current.Gravatar Ben Wagner2018-05-11
| | | | | | | | | | This is mostly to pick up new warnings before chromium complains about them. Change-Id: I69a0c3da63398f98d3f45b0993ed3325c0edae27 Reviewed-on: https://skia-review.googlesource.com/127395 Reviewed-by: Ben Wagner <benjaminwagner@google.com> Commit-Queue: Ben Wagner <benjaminwagner@google.com>
* Revert "reject large paths to avoid potential float overflows"Gravatar Mike Reed2018-05-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit b35002d323134e2a441ce2f912a305cd9b3bd321. Reason for revert: crashing in threadedraster, may need to clean up the initonce payload if I early exit Original change's description: > reject large paths to avoid potential float overflows > > I think this change can catch a host of potential fuzzer issues up-front, > rather than adding finite tests in lots and lots of places down-stream. > > Bug: oss-fuzz:8131 > Change-Id: I421aa72c6ca3df57b40dd32b805d6c847d8e8d29 > Reviewed-on: https://skia-review.googlesource.com/127388 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Mike Reed <reed@google.com> TBR=mtklein@google.com,jvanverth@google.com,bsalomon@google.com,caryclark@google.com,csmartdalton@google.com,fmalita@chromium.org,liyuqian@google.com,reed@google.com Change-Id: I12ff8664113ba5a36ee91cbe2000d7d445d4bc7e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: oss-fuzz:8131 Reviewed-on: https://skia-review.googlesource.com/127580 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Avoid possible memory leak with inner blurs.Gravatar Ben Wagner2018-05-11
| | | | | | | | | | | | | | | If the inner blur dst is too big, SkBlurMask::BoxBlur can return without freeing the intermediate blur mask. Fix this by using SkAutoMaskFreeImage. Use SkAutoMaskFreeImage instead of custom SkAutoTCallVProc in SkBlurMask::BlurGroundTruth. Make SkAutoMaskFreeImage a special kind of std::unique_ptr. Change-Id: I93dc54265416ca69254633b00f14be75009d990f Reviewed-on: https://skia-review.googlesource.com/127402 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Ben Wagner <bungeman@google.com>
* reject large paths to avoid potential float overflowsGravatar Mike Reed2018-05-11
| | | | | | | | | | | I think this change can catch a host of potential fuzzer issues up-front, rather than adding finite tests in lots and lots of places down-stream. Bug: oss-fuzz:8131 Change-Id: I421aa72c6ca3df57b40dd32b805d6c847d8e8d29 Reviewed-on: https://skia-review.googlesource.com/127388 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Shadow fixes to avoid popping.Gravatar Jim Van Verth2018-05-11
| | | | | | | | | | | * Make geometric shadow generation more tolerant of nearly-convex paths. * Ensure analytic and geometric shadow positions match with large blurs. Bug: skia: Change-Id: I8d3ba43b90d1520cb20f89de9f0b13d11a1a08c3 Reviewed-on: https://skia-review.googlesource.com/127045 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Make GrCaps and GrShaderCaps private.Gravatar Brian Salomon2018-05-11
| | | | | | | | | Moves getCaps() from GrContext to GrContextPriv and removes unused refCaps(). Change-Id: Ic6a8951b656c0d1b2773eae73bff8e88af819866 Reviewed-on: https://skia-review.googlesource.com/127389 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Non-normal blur styles to work with non-a8.Gravatar Ben Wagner2018-05-10
| | | | | | | | | BUG=skia:7941 Change-Id: I500561c2fec1bcab324fd9519f1d20d356afdfb5 Reviewed-on: https://skia-review.googlesource.com/127500 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Herb Derby <herb@google.com>
* Fix unchecked allocation in kImageFilter::Common::unflatten()Gravatar Florin Malita2018-05-10
| | | | | | | | | | | | | | | | | | | The bad news is we don't have a good way to validate the count against the available data size. The good news is we don't have to: most filters only use two inputs, which will fit in the stack-reserved storage; for those who don't, growing the input vector during deserialization should not be problematic. The CL drops the prea-allocation, and instead appends inputs iteratively. Also switches the storage to SkSTArray for append/push_back() support. Bug: oss-fuzz:8219 Change-Id: Ic6bf6e435e6e18b9e026aeb393612210c9e6e57a Reviewed-on: https://skia-review.googlesource.com/127306 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Reed <reed@google.com>
* Revert "strip down SkICC.cpp"Gravatar Mike Klein2018-05-10
| | | | | | | | | | | | This reverts commit eab50eb9c6117c2a9d0e5648f89cebbb4dbd9d30 and this tiny bit of e61b969a07ba3ebe9e47e61381ad16c5d2c549a2: https://skia-review.googlesource.com/c/skia/+/127122/3/tests/ICCTest.cpp Change-Id: I4306e5118a4e5eb88c05078186a28bd443fd76f7 Reviewed-on: https://skia-review.googlesource.com/127305 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Add SkColorSpace::toProfileGravatar Brian Osman2018-05-10
| | | | | | | | | | | | | | Now that A2B parsing is at least as strict as skcms_Parse, this can never fail, so switch to void. Also use the new programmatic profile helpers, which also ensures the data and profile space fields are set correctly. Bug: skia: Change-Id: Ifc4d89a919ca178c484839bdf88dae8a162c3e4f Reviewed-on: https://skia-review.googlesource.com/127336 Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com>
* Add GrContextThreadSafeProxy and remove most friends of GrContextThreadSafeProxyGravatar Brian Salomon2018-05-10
| | | | | | | | | | | A step towards removing GrCaps from GrContext.h Also adds operator== to GrContextThreadSafeProxy. Change-Id: Ic0bae12299dfb0ac8817d9f1c56a1219d6df97d9 Reviewed-on: https://skia-review.googlesource.com/127329 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* non-linear blending first stepsGravatar Mike Klein2018-05-10
| | | | | | | | | | | | | | | | | | | | | | | Code: - Add a non-linear blending bit and makeNonlinearBlending() to SkColorSpace - remove enough F16=linear checks to make it possible to create surfaces and encode pngs with nonlinear F16 Testing: - add "esrgb" software config to DM, run it - add "srgbnl" software config, run it - deemphasize importance of "srgb" config on bots - update unit tests to reflect relaxed F16 constraints - add a new unit test file with _really_ basic tests, and a new unit test that's not working yet Bug: skia:7942 Change-Id: I8ac042bdf9f3d791765393b68fd9256375184d83 Reviewed-on: https://skia-review.googlesource.com/127325 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* rm SkColorSpace_NewGravatar Mike Klein2018-05-10
| | | | | | | | | | We think we can evolve SkColorSpace_XYZ into the One True SkColorSpace. Change-Id: If93493145d78b388f3a0739cc7ccd6e232380733 Reviewed-on: https://skia-review.googlesource.com/127326 Auto-Submit: Mike Klein <mtklein@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Validate readByteArrayAsData sizeGravatar Florin Malita2018-05-10
| | | | | | | | | | | | Check that the reader has enough data before attempting to allocate the buffer. Also update to return nullptr on read failures. Change-Id: Ia1ea8f611bad95cf3a4493b12582ac3fa7c2b00f Reviewed-on: https://skia-review.googlesource.com/127129 Reviewed-by: Kevin Lubick <kjlubick@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Revert "Revert "Don't use GrRRectBlurEffect for large rects when highp is ↵Gravatar Brian Salomon2018-05-10
| | | | | | | | | | | | | not full float"" This reverts commit 729715298c8af1d2ecc4cbe887eeeb9a1c17c595. Changed std::abs() to SkScalarAbs() and #include "SkScalar.h" Change-Id: I9a02ca1a63eef748f9a11d324e8bb89e14571bc9 Reviewed-on: https://skia-review.googlesource.com/127320 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Fix clipping of SkMatrixImageFilter input (take 2)Gravatar Robert Phillips2018-05-10
| | | | | | | | | | This cannot land before the Chrome CL https://chromium-review.googlesource.com/c/chromium/src/+/1052850 (Add a flag to ignore an upcoming Skia bug fix that changes layout and unit tests) Bug: skia:7931 Change-Id: I2951a727bd3f61aeda0e1e322cd76e48f677f75f Reviewed-on: https://skia-review.googlesource.com/127125 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Revert "Don't use GrRRectBlurEffect for large rects when highp is not full ↵Gravatar Brian Salomon2018-05-09
| | | | | | | | | | | | | | | | | | | | | | | | | | float" This reverts commit e0dc9432d8836ec34a3ef90eabc39eadc3d1db90. Reason for revert: compile breakage Original change's description: > Don't use GrRRectBlurEffect for large rects when highp is not full float > > Change-Id: Idf12e0a1fba2d9bd2fab8100bd9319c6ec6115b9 > Reviewed-on: https://skia-review.googlesource.com/127049 > Commit-Queue: Brian Salomon <bsalomon@google.com> > Reviewed-by: Robert Phillips <robertphillips@google.com> TBR=bsalomon@google.com,robertphillips@google.com Change-Id: Ibbf8abfd4089d963d2457db4710207d1c91faf35 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/127180 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Support C++11 range-for loops in SkTInternalLListGravatar Chris Dalton2018-05-09
| | | | | | | | Bug: skia: Change-Id: Iad5e06fac95c5b805f3735c106103e5a07975b5d Reviewed-on: https://skia-review.googlesource.com/127106 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Don't use GrRRectBlurEffect for large rects when highp is not full floatGravatar Brian Salomon2018-05-09
| | | | | | | Change-Id: Idf12e0a1fba2d9bd2fab8100bd9319c6ec6115b9 Reviewed-on: https://skia-review.googlesource.com/127049 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* SkColorSpace::Make(const skcms_ICCProfile&)Gravatar Mike Klein2018-05-09
| | | | | | | | Change-Id: Ib12208d6c148f143fdd0b54538d852b97616a72d Reviewed-on: https://skia-review.googlesource.com/127122 Commit-Queue: Mike Klein <mtklein@chromium.org> Auto-Submit: Mike Klein <mtklein@chromium.org> Reviewed-by: Brian Osman <brianosman@google.com>
* strip down SkICC.cppGravatar Mike Klein2018-05-09
| | | | | | | | | | | | | | | | Most of SkICC{.h,.cpp} is unused and gone. I've renamed the part that's left to SkWriteICCProfile() and tweaked its API just a little, leaving SkICC:WriteToICC() a wrapper around it. Most of the tests in ICCTest.cpp are moot and deleted, but a few looked somewhat valuable so I've kept them with a little modification. Change-Id: Ia1bb4c772af679885e17dac53d213c315ad0828c Reviewed-on: https://skia-review.googlesource.com/127022 Auto-Submit: Mike Klein <mtklein@chromium.org> Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert "Fix clipping of SkMatrixImageFilter input"Gravatar Robert Phillips2018-05-09
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit cb8b5d1101d0a1bf7c78f3d1fec73afbe470994c. Reason for revert: Chrome layout tests Original change's description: > Fix clipping of SkMatrixImageFilter input > > Bug: skia:7931 > Change-Id: I3e424dcd5c0b04542976f4f59a5836e7c3079d06 > Reviewed-on: https://skia-review.googlesource.com/127020 > Reviewed-by: Greg Daniel <egdaniel@google.com> > Commit-Queue: Robert Phillips <robertphillips@google.com> TBR=egdaniel@google.com,robertphillips@google.com Change-Id: I6b871071e180c45016038dcf2b01d2c96e93911c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:7931 Reviewed-on: https://skia-review.googlesource.com/127160 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Revert "Revert "SkAdvancedTypefaceMetrics: factor out GlyphToUnicode""Gravatar Hal Canary2018-05-09
| | | | | | | | | This reverts commit 97c1108607584b6050a6880d6ce22846e4913a92. Change-Id: Ic3c6addc64ced39766bbee3e10b4d88faf61ba2f Reviewed-on: https://skia-review.googlesource.com/127021 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Fix clipping of SkMatrixImageFilter inputGravatar Robert Phillips2018-05-09
| | | | | | | | Bug: skia:7931 Change-Id: I3e424dcd5c0b04542976f4f59a5836e7c3079d06 Reviewed-on: https://skia-review.googlesource.com/127020 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Remove SK_IGNORE_MASK_FILTER_GLYPH_FIX.Gravatar Ben Wagner2018-05-09
| | | | | | | | | | | This removes the SK_IGNORE_MASK_FILTER_GLYPH_FIX flag check and the code it guards. This flag existed for rebaselining and the rebaselines have been done. Change-Id: Ic2d6850051a7f4dcbf2e31c6174db1248ce9367a Reviewed-on: https://skia-review.googlesource.com/126925 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Revert "SkAdvancedTypefaceMetrics: factor out GlyphToUnicode"Gravatar Greg Daniel2018-05-09
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 1c2bcd8b14e029a70e88b1e81acd29553cab0d1c. Reason for revert: breaking chrome roll Original change's description: > SkAdvancedTypefaceMetrics: factor out GlyphToUnicode > > Change-Id: Iedce8c1ea2c405d5ab64ccac353970d5cd2b9d63 > Reviewed-on: https://skia-review.googlesource.com/126507 > Commit-Queue: Hal Canary <halcanary@google.com> > Reviewed-by: Ben Wagner <bungeman@google.com> TBR=halcanary@google.com,bungeman@google.com,reed@google.com Change-Id: Ib1ff8484ffd09cdb88d461ac00745aa32c191124 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/127000 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Cleanup SK_IGNORE_BLUR_IMAGE_FILTER_FIX (since Chrome no longer uses it)Gravatar Robert Phillips2018-05-09
| | | | | | | Change-Id: I3eebd6233d6f6a8b43ce0d865ffafd85d58f0c16 Reviewed-on: https://skia-review.googlesource.com/126926 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* When validating transfer fns, allow D > 1Gravatar Brian Osman2018-05-09
| | | | | | | | | | | | | | This matches behavior in skcms. Previously, we could get a profile with a large D value, skcms would decide it was okay, but then we'd be unable to create an SkColorSpace from it. Bug: chromium:841110 Change-Id: I2418a0b770172bff62a14d2d4d0fc7ba70f33e0b Reviewed-on: https://skia-review.googlesource.com/126920 Commit-Queue: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Mike Klein <mtklein@google.com> Auto-Submit: Brian Osman <brianosman@google.com>
* SkAdvancedTypefaceMetrics: factor out GlyphToUnicodeGravatar Hal Canary2018-05-09
| | | | | | | Change-Id: Iedce8c1ea2c405d5ab64ccac353970d5cd2b9d63 Reviewed-on: https://skia-review.googlesource.com/126507 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* fonts: Fix a trace name in SkRemoteGlyphCacheGravatar Khushal2018-05-09
| | | | | | | | | TBR=herb@google.com Change-Id: I5df4295a94d9af93e29ebf64b06f5259dc54ce90 Reviewed-on: https://skia-review.googlesource.com/126842 Reviewed-by: Khusal Sagar <khushalsagar@chromium.org> Commit-Queue: Khusal Sagar <khushalsagar@chromium.org>
* fonts: Fix subpixel position mismatch in font remotingGravatar Khushal2018-05-08
| | | | | | | | | | R=herb@google.com Bug: skia:7786 Change-Id: Icb52be92d193eb17ac20734bfa7cb00370c6ea21 Reviewed-on: https://skia-review.googlesource.com/126664 Commit-Queue: Khusal Sagar <khushalsagar@chromium.org> Reviewed-by: Herb Derby <herb@google.com>
* Treat SkFILEStream's fOriginalOffset as the startGravatar Leon Scroggins III2018-05-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug: b/78866720 ::rewind() rewinds to fOriginalOffset ::seek(position) seeks to position + fOriginalOffset ::move(offset) will not move < fOriginalOffset ::getPosition() returns position relative to fOriginalOffset ::getLength() returns full size minus fOriginalOffset ::duplicate() and ::fork() pass on fOriginalOffset Android may create an SkFILEStream using a file descriptor whose offset is at the beginning of the data that Android cares about. Treat all positions in SkFILEStream as relative to that original offset. This allows AnimatedImageDrawable to read directly from the SkFILEStream, rather than using an SkFrontBufferedStream and forcing SkGifCodec to cache data for later use. This fixes a TODO that was introduced in https://skia-review.googlesource.com/c/skia/+/9498 and takes it a step further. In that CL, bungeman@ and I discussed the change and decided to "leave this alone for now to avoid changing behavior". Doing a code search today, the only two callers want the new behavior. Change-Id: I9211394d5b730adf528fac0df0af7a664b1295be Reviewed-on: https://skia-review.googlesource.com/126511 Reviewed-by: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Leon Scroggins <scroggo@google.com>
* SkBlurMask to blur all the things.Gravatar Ben Wagner2018-05-08
| | | | | | | | | | | | | | | SkBlurMask used to handle only A8 as input, and was recently extended to ARGB as input. This adds LCD16 and A1 as inputs as well, allowing SkScalerContext to no longer force all requests with a mask filter to A8. This also fixes the shadows for LCD16 and A1 glyphs, which at small sigma were quite obviously wrong since they were generated from an A8 version. Change-Id: I151cdbf5556d18c2938da990ecee5bcd8ee31be8 Reviewed-on: https://skia-review.googlesource.com/126615 Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Use device and key descriptorsGravatar Herb Derby2018-05-08
| | | | | | | Change-Id: I2ac13303376f3d1464dd1e259637374a9c5ef237 Reviewed-on: https://skia-review.googlesource.com/125823 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Khushal Sagar <khushalsagar@google.com>
* Fix a bug in SkGpuBlurUtils::GaussianBlur (take 3)Gravatar Robert Phillips2018-05-08
| | | | | | | | | | | | | This fixes the remaining imageblurclampmode bug and a preexisting un-reported error in the imageblurrepeatmode GM. This relies on https://chromium-review.googlesource.com/c/chromium/src/+/1044113 (Add a flag to disable a blur imagefilter bug fix in Skia) landing in Chrome first. Bug: skia:7765 Change-Id: I66e27384541002829b2bd4b42d9cbda837aa7c3d Reviewed-on: https://skia-review.googlesource.com/125961 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-on: https://skia-review.googlesource.com/126220
* text-blob: Fix OOM issues during blob deserialization.Gravatar Khushal2018-05-07
| | | | | | | | | | | | Limit the number of glyphs allowed during blob deserialization. Allocating for an arbitrary number can lead to OOM issues. Bug: 840096 Change-Id: I1673fd312438b99ff76dadcfdc9f9427acdca13b R=bsalomon@chromium.org Reviewed-on: https://skia-review.googlesource.com/126603 Commit-Queue: Khusal Sagar <khushalsagar@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* SkAdvancedTypefaceMetrics: simplify moreGravatar Hal Canary2018-05-07
| | | | | | | Change-Id: I80c28c50aa96c28181d2fef13daad4a80ec91a12 Reviewed-on: https://skia-review.googlesource.com/120160 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* make SkColorSpace::MakeICC strict as skcmsGravatar Mike Klein2018-05-07
| | | | | | | | | | | | | | | We do this somewhat trivially by calling skcms_Parse() and failing if it fails. This will help keep us sane while we work to remove SkColorSpace::MakeICC(). Change-Id: Icb1bc1a088083e181f46465dbb3a530f0e004193 Reviewed-on: https://skia-review.googlesource.com/126510 Commit-Queue: Mike Klein <mtklein@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com> Auto-Submit: Mike Klein <mtklein@chromium.org> Reviewed-by: Brian Osman <brianosman@google.com>
* Handle failure to create SkColorSpaceXform in SkConvertPixelsGravatar Brian Osman2018-05-07
| | | | | | | | | | | | For now, this will just fallback to the pipeline code. Eventually, we may need to support more color spaces in skcms, (or put in a simpler fallback that just does type conversion and ignores color space)? Bug: chromium:838115 Change-Id: Id71eec6a72202683957c884620ee3fe90df6c776 Reviewed-on: https://skia-review.googlesource.com/126201 Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Mike Klein <mtklein@google.com>
* Make sure the ScalerContextRec is denseGravatar Herb Derby2018-05-07
| | | | | | | | | | | Make sure that the Rec structure is dense because the SkDescriptor code takes checksums of this structure. Change-Id: Id384ed49e17f4613647da538c810f09a066efd90 Reviewed-on: https://skia-review.googlesource.com/126503 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@google.com>
* Remove android specific code - v2Gravatar Herb Derby2018-05-07
| | | | | | | Change-Id: I2010b168f1a1f3bc48b86a075b0398eaf46ea328 Reviewed-on: https://skia-review.googlesource.com/126480 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Reland "Avoid drawing BW clipped color glyphs many times."Gravatar Ben Wagner2018-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8a95244f626c2f7d4b66c8ca18266c2b0640bebb. Reason for revert: Didn't actually break anything. Original change's description: > Revert "Avoid drawing BW clipped color glyphs many times." > > This reverts commit bba38ee80e4140908ac0c351dc18a2f1224e5f0a. > > Reason for revert: possibly breaking chrome text > > Original change's description: > > Avoid drawing BW clipped color glyphs many times. > > > > Prior to this change if a color glyph is drawn through the raster device > > with an aliased clip the glyph is drawn once for each rectangular region > > in the aliased clip. In addition, even when the glyph was not a color > > glyph in this situation, the mask was checked for being a color glyph > > once for each rectangular region of the aliased clip. This change hoists > > the test for the color format out of the loop to ensure that the mask > > format is checked once and the mask is drawn once. > > > > This issue was discovered by rotating the coloremoji_blendmodes gm. > > > > Change-Id: I18b6b546356780e0b00948fff7b65783219f5c92 > > Reviewed-on: https://skia-review.googlesource.com/125868 > > Reviewed-by: Mike Reed <reed@google.com> > > Commit-Queue: Ben Wagner <bungeman@google.com> > > TBR=mtklein@google.com,bungeman@google.com,reed@google.com > > # Not skipping CQ checks because original CL landed > 1 day ago. > > Change-Id: Ife6d7255f9cb88b6f9d7a3c5800e88cc065e475b > Reviewed-on: https://skia-review.googlesource.com/126401 > Reviewed-by: Greg Daniel <egdaniel@google.com> > Commit-Queue: Greg Daniel <egdaniel@google.com> TBR=egdaniel@google.com,mtklein@google.com,bungeman@google.com,reed@google.com Change-Id: I7fc4c1f901bcee482f6b118b192caee14c112e43 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/126540 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Respect SkBitmapDeviceFilteredSurfaceProps in SkThreadedBMPDeviceGravatar Yuqian Li2018-05-07
| | | | | | | | | | | | Bug: skia:7909 Change-Id: I13ccfbdc883f764f60701383b90537d3175a8126 Reviewed-on: https://skia-review.googlesource.com/126100 Commit-Queue: Ben Wagner <bungeman@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com> Reviewed-by: Ben Wagner <bungeman@google.com> Auto-Submit: Yuqian Li <liyuqian@google.com> Reviewed-on: https://skia-review.googlesource.com/126463 Reviewed-by: Greg Daniel <egdaniel@google.com>
* track bounds of top-level control opsGravatar Mike Klein2018-05-07
| | | | | | | | | | | | | | | | We don't need an explicit save-restore block to determine the bounds of top-level control operations... the implicit save-restore that all picutres have should logically work the same way. The commented test failed before this and passes now. Bug: skia:7735 Change-Id: Ibd31a3a9b0b48042ab3869a6bb57bc8d8bb78c09 Reviewed-on: https://skia-review.googlesource.com/126460 Commit-Queue: Mike Klein <mtklein@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com> Auto-Submit: Mike Klein <mtklein@chromium.org> Reviewed-by: Brian Osman <brianosman@google.com>
* SkRecorder: templates are better than macrosGravatar Hal Canary2018-05-07
| | | | | | | Change-Id: I594da617a0fc8970a01c2165e41cdd803173ffc5 Reviewed-on: https://skia-review.googlesource.com/126420 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Revert "Avoid drawing BW clipped color glyphs many times."Gravatar Greg Daniel2018-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit bba38ee80e4140908ac0c351dc18a2f1224e5f0a. Reason for revert: possibly breaking chrome text Original change's description: > Avoid drawing BW clipped color glyphs many times. > > Prior to this change if a color glyph is drawn through the raster device > with an aliased clip the glyph is drawn once for each rectangular region > in the aliased clip. In addition, even when the glyph was not a color > glyph in this situation, the mask was checked for being a color glyph > once for each rectangular region of the aliased clip. This change hoists > the test for the color format out of the loop to ensure that the mask > format is checked once and the mask is drawn once. > > This issue was discovered by rotating the coloremoji_blendmodes gm. > > Change-Id: I18b6b546356780e0b00948fff7b65783219f5c92 > Reviewed-on: https://skia-review.googlesource.com/125868 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Ben Wagner <bungeman@google.com> TBR=mtklein@google.com,bungeman@google.com,reed@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: Ife6d7255f9cb88b6f9d7a3c5800e88cc065e475b Reviewed-on: https://skia-review.googlesource.com/126401 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Revert "Remove android specific code"Gravatar Greg Daniel2018-05-07
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 5570ea0c2549722f4069add1875743e6c44fc50b. Reason for revert: Possibly breaking chrome Original change's description: > Remove android specific code > > Change-Id: Ib9b1f936d1aee920ba7064a9eccffaca6696812f > Reviewed-on: https://skia-review.googlesource.com/125341 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Mike Reed <reed@google.com> > Auto-Submit: Herb Derby <herb@google.com> TBR=herb@google.com,reed@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I95578d720fc4d5924296245522f880dc15624be9 Reviewed-on: https://skia-review.googlesource.com/126360 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>