aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core
Commit message (Collapse)AuthorAge
...
* Add a GM to test out odd matrix drawsGravatar Robert Phillips2017-10-31
| | | | | | | | Bug: skia:7075 Change-Id: I90c15bf019161abc5dab78e0af20ef15ff1395d9 Reviewed-on: https://skia-review.googlesource.com/64761 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* generated include refreshGravatar Cary Clark2017-10-30
| | | | | | | | | | | | The latest, minor changes on includes already generated, plus four new ones. TBR=reed@google.com Bug: skia:6898 Change-Id: If06ae9b9aaa3a0a9fae570aa7a6698ff340c43b8 Reviewed-on: https://skia-review.googlesource.com/62862 Commit-Queue: Cary Clark <caryclark@skia.org> Reviewed-by: Cary Clark <caryclark@skia.org>
* add Type enum to SkColorSpaceGravatar Mike Reed2017-10-27
| | | | | | | | Bug: 727128 Change-Id: I116de4efd6e64504a4e1892f431f528533b1173a Reviewed-on: https://skia-review.googlesource.com/64261 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com>
* Pass GrRenderTargetContext's GrColorSpaceInfo to SkShader and SkColorFilter.Gravatar Brian Salomon2017-10-25
| | | | | | | | | | | | | | Also to SkColorTo(Premul|Unpremul)GrColor4f. This can avoid cache lookups to find GrColorSpaceXforms as the xform pointer is stored in GrColorSpaceInfo after the first lookup. Also uses GrColorSpaceInfo to construct GrTextUtils::Paint. Bug: skia: Change-Id: Idf19d512a60d2269e6921c7fb54d93aee499a70d Reviewed-on: https://skia-review.googlesource.com/63660 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Add hint to SkSurface::MakeRenderTarget that we will use mipsGravatar Greg Daniel2017-10-23
| | | | | | | | | | | Additionally this changed triggered a cascade of plumbing GrMipMapped down throughout Ganesh. Bug: skia: Change-Id: I4181f44d9046d66139bb491c7abf86703305aaeb Reviewed-on: https://skia-review.googlesource.com/63000 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* make matrix serialization privateGravatar Cary Clark2017-10-20
| | | | | | | | | | | | | | | | | | Moves readFromMemory, writeToMemory to private section. No sign that these are called from google3, android, chromium, but function names are common enough that it's hard to know for sure. These are used inside templates internally and for testing, so it is not quite as simple as adding alternate entry points in SkMatrixPriv. R=reed@google.com Bug: skia:6898 Change-Id: I1fac142f4bf0f38608ea93438c46f39147606c4d Reviewed-on: https://skia-review.googlesource.com/62361 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* make skmatrix getmapproc privateGravatar Cary Clark2017-10-20
| | | | | | | | | | | | | | Make SkMatrix MapXYProc MapPtsProc and friends private. Code search turned up no clients in chromium, google3, android. Fingers crossed. R:reed@google.com Bug: skia:6898 Change-Id: Iee20fe5150499215a09f67cc6f117b685f38f455 Reviewed-on: https://skia-review.googlesource.com/62140 Commit-Queue: Cary Clark <caryclark@google.com> Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Avoid 2PtConical gradient flippingGravatar Florin Malita2017-10-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, when startRadius > endRadius conical gradients are inverting their data (start/end points and radii, colors and positions) to guarantee r0 < r1 at raster time. But the radii ordering is only mildly interesting to the impl: it controls which of the two quadratic solutions we select for the inside case, but doesn't fundamentally change the algorithm. Furthermore, for the "outside" case, inverting the order is already inconvenient and needs to be taken into account (both CPU/GPU impls are already tracking this bit of info). Instead of transforming the gradient definition, we can detect the inverted case and adjust the quadratic solution selector. In practice this means: * |edge| case - no change, the equation is linear * |inside| case - select the smaller root instead of largest * |outside| case - [gpu-only] invert the clamp/limiting function Change-Id: Ie3106464e39a4dd3848dc43671d973f7e1958e63 Reviewed-on: https://skia-review.googlesource.com/61660 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* convert mapHomogeneousPoints to SkPoint3Gravatar Cary Clark2017-10-18
| | | | | | | | | | | | | | | SkMatrix::mapHomogeneousPoints takes an array of SkScalar, but expects essentially SkPoint3, so make it so. R: robertphillips@google.com, reed@google.com Bug: skia:6898 Change-Id: Ibaf8b05c08b7df16c67d6a77d914667ace9a70da Reviewed-on: https://skia-review.googlesource.com/58380 Commit-Queue: Cary Clark <caryclark@skia.org> Commit-Queue: Cary Clark <caryclark@google.com> Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Revert "Revert "Make GPU backend triangulate rects such that they are ↵Gravatar Brian Salomon2017-10-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rendered as tri strips rather than tri fans."" This reverts commit 62563deb6b4dbb0b1db7f29f35e07dcef043af31. Reason for revert: change that affected similar set of GMs reverted, relanding now that this is more easily triagable. Original change's description: > Revert "Make GPU backend triangulate rects such that they are rendered as tri strips rather than tri fans." > > This reverts commit fa2d604a7ded95a3ace905519b476129cd0fffcb. > > Reason for revert: <INSERT REASONING HERE> > > Original change's description: > > Make GPU backend triangulate rects such that they are rendered as tri strips rather than tri fans. > > > > Right now when we turn rects into quads we use a vertex order compatible with a tri fan rather than a tri strip. > > > > I wanted it to be the case that the same code could be used to generate a non-indexed mesh for a single rect or indexed using the quad index buffer when batching. Triangle fanning is not available in all APIS (e.g. is emulated in ANGLE and not supported in Metal) so it seems better to use a triangle strip over a fan in the single rect case. > > > > > > Change-Id: I31eebd794e7328f4b39e3ec3377bf2ec556360ca > > Reviewed-on: https://skia-review.googlesource.com/60081 > > Commit-Queue: Brian Salomon <bsalomon@google.com> > > Reviewed-by: Robert Phillips <robertphillips@google.com> > > TBR=bsalomon@google.com,robertphillips@google.com > > Change-Id: I7c4c23aa418da09c9708b28cce64ab58e282dd3a > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://skia-review.googlesource.com/60683 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Brian Salomon <bsalomon@google.com> TBR=bsalomon@google.com,robertphillips@google.com Change-Id: Iefcd16676a7617d32e89fc84206cd4e88e9a06e1 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/61160 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Make SkTFitsIn and SkTo constexpr.Gravatar Ben Wagner2017-10-17
| | | | | | | | | | Because what can be better than marking things that can be constexpr as constexpr. Also, I have a change where this would be nice to have. Change-Id: Ie313b19d1930b98ddcd60cc17a320971625f18e3 Reviewed-on: https://skia-review.googlesource.com/60862 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Revert "Make GPU backend triangulate rects such that they are rendered as ↵Gravatar Brian Salomon2017-10-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tri strips rather than tri fans." This reverts commit fa2d604a7ded95a3ace905519b476129cd0fffcb. Reason for revert: <INSERT REASONING HERE> Original change's description: > Make GPU backend triangulate rects such that they are rendered as tri strips rather than tri fans. > > Right now when we turn rects into quads we use a vertex order compatible with a tri fan rather than a tri strip. > > I wanted it to be the case that the same code could be used to generate a non-indexed mesh for a single rect or indexed using the quad index buffer when batching. Triangle fanning is not available in all APIS (e.g. is emulated in ANGLE and not supported in Metal) so it seems better to use a triangle strip over a fan in the single rect case. > > > Change-Id: I31eebd794e7328f4b39e3ec3377bf2ec556360ca > Reviewed-on: https://skia-review.googlesource.com/60081 > Commit-Queue: Brian Salomon <bsalomon@google.com> > Reviewed-by: Robert Phillips <robertphillips@google.com> TBR=bsalomon@google.com,robertphillips@google.com Change-Id: I7c4c23aa418da09c9708b28cce64ab58e282dd3a No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/60683 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Make GPU backend triangulate rects such that they are rendered as tri strips ↵Gravatar Brian Salomon2017-10-17
| | | | | | | | | | | | | | rather than tri fans. Right now when we turn rects into quads we use a vertex order compatible with a tri fan rather than a tri strip. I wanted it to be the case that the same code could be used to generate a non-indexed mesh for a single rect or indexed using the quad index buffer when batching. Triangle fanning is not available in all APIS (e.g. is emulated in ANGLE and not supported in Metal) so it seems better to use a triangle strip over a fan in the single rect case. Change-Id: I31eebd794e7328f4b39e3ec3377bf2ec556360ca Reviewed-on: https://skia-review.googlesource.com/60081 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Cleanup references to AHardwareBuffer to match NDK declarations.Gravatar Derek Sollenberger2017-10-16
| | | | | | | Change-Id: Iaf796be04a5ac04873d420960238ea06294518f7 Reviewed-on: https://skia-review.googlesource.com/60240 Reviewed-by: Stan Iliev <stani@google.com> Commit-Queue: Derek Sollenberger <djsollen@google.com>
* remove unused SkMatrix setIDivGravatar Cary Clark2017-10-16
| | | | | | | | | | | | Unused setIDiv, untested internally. Unused by google3, android, chromium. R: reed@google.com Bug: skia: 6898 Change-Id: I57101b147272ed198746afc298cc0f5a6434abe0 Reviewed-on: https://skia-review.googlesource.com/59960 Commit-Queue: Cary Clark <caryclark@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Make SkTypeface::Style and FromOldStyle private.Gravatar Ben Wagner2017-10-13
| | | | | | | | | These are no longer used outside of Skia, so make them private. Change-Id: I735bb39c10553885cc6051aebddeff150ba4caa9 Reviewed-on: https://skia-review.googlesource.com/59180 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* remove dead code for getSize, getSafeSize, etc.Gravatar Mike Reed2017-10-13
| | | | | | | | Bug: skia: Change-Id: I7dcdfaa539040b95e5b62174ccd22a94212980e0 Reviewed-on: https://skia-review.googlesource.com/59442 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "move SkMatrix anonymous affine enum to private"Gravatar Mike Reed2017-10-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 708ec81d7a9bba12cd7e574b5c5ae80b2ad77919. Reason for revert: broke android frameworks/base/core/jni/android/graphics/pdf/PdfEditor.cpp frameworks/base/core/jni/android/graphics/pdf/PdfEditor.cpp:153:54: error: no member named 'kAScaleX' in 'SkMatrix'; did you mean 'kMScaleX'? FS_MATRIX transform = {transformValues[SkMatrix::kAScaleX], transformValues[SkMatrix::kASkewY], ~~~~~~~~~~^~~~~~~~ Original change's description: > move SkMatrix anonymous affine enum to private > > enum members aren't used by SkMatrix.h or by > clients outside of Skia. > > R: reed@google.com, bungeman@google.com > Bug: skia:6898 > Change-Id: I6873b4106e5ffe354caf5ec18cc613910304fa13 > Reviewed-on: https://skia-review.googlesource.com/59160 > Reviewed-by: Mike Reed <reed@google.com> > Reviewed-by: Ben Wagner <bungeman@google.com> > Commit-Queue: Cary Clark <caryclark@skia.org> TBR=bungeman@google.com,reed@google.com,caryclark@skia.org Change-Id: I7fe80879e8b851c9036fc910a314129c299d82d2 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:6898 Reviewed-on: https://skia-review.googlesource.com/59460 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* MakeBackendTextureFromSkImageGravatar Eric Karl2017-10-12
| | | | | | | | | | | | Creates a static function on SkImage which converts the SkImage to a GrBackendTexture. The texture is unowned by Skia, and must be deleted by the caller. Allows for a no-copy / no-conversion fast path if the provided image is unowned (unique()) and texture backed. Change-Id: I8a48f9cc39de792725cd72057d98cd1c4594daab Reviewed-on: https://skia-review.googlesource.com/52440 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Eric Karl <ericrk@chromium.org>
* move SkMatrix anonymous affine enum to privateGravatar Cary Clark2017-10-12
| | | | | | | | | | | | | enum members aren't used by SkMatrix.h or by clients outside of Skia. R: reed@google.com, bungeman@google.com Bug: skia:6898 Change-Id: I6873b4106e5ffe354caf5ec18cc613910304fa13 Reviewed-on: https://skia-review.googlesource.com/59160 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Cary Clark <caryclark@skia.org>
* remove dead flagGravatar Mike Reed2017-10-12
| | | | | | | | | | no client still defines this Bug: skia: Change-Id: If55dade4207108241bbb1e3d6f7515ad12d36acc Reviewed-on: https://skia-review.googlesource.com/59083 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* abort SkRRect::transform() before dst->scaleRadii() assertsGravatar Mike Klein2017-10-12
| | | | | | | | | | | | | | | | If we've got a crazy matrix, we can make dst arbitrarily crazy. This should fix several of Kevin's fuzzes, e.g. Bug: skia:7090 I don't see any uses of SkRRect::transform() that care about the output rrect in case of failure, so I've just removed the guarantee that we don't modify it when failing. Change-Id: I4c81af59a093a984f0a02a0d3dc4bbbb1fb935f2 Reviewed-on: https://skia-review.googlesource.com/58620 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Update Skia milestone to 64Gravatar Heather Miller2017-10-12
| | | | | | | | Bug: skia: Change-Id: I381323606f92a5388b3fd76c232e35c492a23dc4 Reviewed-on: https://skia-review.googlesource.com/58840 Reviewed-by: Heather Miller <hcm@google.com> Commit-Queue: Heather Miller <hcm@google.com>
* Add api for passing mipped hint into ImageGenerator onGenerateTextureGravatar Greg Daniel2017-10-11
| | | | | | | | | | | | This does not actually add any additional functionality to the generators. Once this lands I will enable the generators one at a time to more easily monitor the effects of each one. Bug: skia: Change-Id: I382a1acfaebcbf9ad44c9873b87cdbbe02a13602 Reviewed-on: https://skia-review.googlesource.com/57083 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* remove dead code for returning 0 on overflowGravatar Mike Reed2017-10-11
| | | | | | | | Bug: skia: Change-Id: I6e7aae1b09cf3a1c9728bdaaa4dbf4df4b2ec16d Reviewed-on: https://skia-review.googlesource.com/58341 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Revert "Fix a couple float-cast-overflow in SkScan*.""Gravatar Ben Wagner2017-10-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit b6abb9b4e088abee8b8dfcce9c9f7eb759518198. Reason for revert: It doesn't make sense that this CL would affect the tests implicated in the perf regression in skia:7143, and the revert had no effect on the perf of those tests. Seems like the perf alert was either noise or due to a different CL. Original change's description: > Revert "Fix a couple float-cast-overflow in SkScan*." > > This reverts commit 3cd0bef0fd9d062bbcc313c329b4f31925e8ded7. > > Reason for revert: https://bugs.chromium.org/p/skia/issues/detail?id=7143 > > Original change's description: > > Fix a couple float-cast-overflow in SkScan*. > > > > Bug: skia:5060 > > Change-Id: I60a48993c77631aaad9354bb86b13204dc618bf4 > > Reviewed-on: https://skia-review.googlesource.com/47422 > > Commit-Queue: Ben Wagner <benjaminwagner@google.com> > > Reviewed-by: Mike Reed <reed@google.com> > > TBR=benjaminwagner@google.com,reed@google.com > > # Not skipping CQ checks because original CL landed > 1 day ago. > > Bug: skia:7143 > Change-Id: I0f19720a7d8344789a375bbb6b9e28bf4f4e55ae > Reviewed-on: https://skia-review.googlesource.com/57240 > Commit-Queue: Ben Wagner <benjaminwagner@google.com> > Reviewed-by: Ben Wagner <benjaminwagner@google.com> TBR=benjaminwagner@google.com,reed@google.com Change-Id: I29ac47d6665e2e52ee2a6500488dc407c8d2af1c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:7143 Reviewed-on: https://skia-review.googlesource.com/57440 Reviewed-by: Ben Wagner <benjaminwagner@google.com> Commit-Queue: Ben Wagner <benjaminwagner@google.com>
* Remove trailing whitespace.Gravatar Ben Wagner2017-10-09
| | | | | | | | | | | Also adds a presubmit to prevent adding trailing whitespace to source code in the future. Change-Id: I41a4df81487f6f00aa19b188f0cac6a3377efde6 Reviewed-on: https://skia-review.googlesource.com/57380 Reviewed-by: Ravi Mistry <rmistry@google.com> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Revert "Fix a couple float-cast-overflow in SkScan*."Gravatar Ben Wagner2017-10-09
| | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 3cd0bef0fd9d062bbcc313c329b4f31925e8ded7. Reason for revert: https://bugs.chromium.org/p/skia/issues/detail?id=7143 Original change's description: > Fix a couple float-cast-overflow in SkScan*. > > Bug: skia:5060 > Change-Id: I60a48993c77631aaad9354bb86b13204dc618bf4 > Reviewed-on: https://skia-review.googlesource.com/47422 > Commit-Queue: Ben Wagner <benjaminwagner@google.com> > Reviewed-by: Mike Reed <reed@google.com> TBR=benjaminwagner@google.com,reed@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: skia:7143 Change-Id: I0f19720a7d8344789a375bbb6b9e28bf4f4e55ae Reviewed-on: https://skia-review.googlesource.com/57240 Commit-Queue: Ben Wagner <benjaminwagner@google.com> Reviewed-by: Ben Wagner <benjaminwagner@google.com>
* Revert "Revert "change computeByteSize to return max_size_t on overflow""Gravatar Mike Reed2017-10-09
| | | | | | | | | | | This reverts commit 384f0a7d6626026f21313e85e51890d747171ee8. Bug: skia: Change-Id: I392ef5c1a5172181caf81ae270befeba6e778241 Reviewed-on: https://skia-review.googlesource.com/57084 Commit-Queue: Mike Reed <reed@google.com> Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* add helper to check for overflowGravatar Mike Reed2017-10-09
| | | | | | | | | | pre-CL to aid in changing the convention for when we overflow Bug: skia: Change-Id: I1e34a18fefb80187787a1c0c8ed7ee3516744d24 Reviewed-on: https://skia-review.googlesource.com/57103 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Remove SkTypeface::Style use in API.Gravatar Ben Wagner2017-10-09
| | | | | | | | | | | | | All known callers of SkTypeface::MakeDefault call it with kNormal and the only users specifying kNormal explicitly are in Skia, so remove the parameter. There appear to be no users of SkTypeface::MakeFromTypeface, so remove it. The current alternative is SkFontMgr::matchFaceStyle which can do a better job anyway. Change-Id: I89d94c77f9593407b0a319786848a8b823fcbae4 Reviewed-on: https://skia-review.googlesource.com/56762 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Fix a couple float-cast-overflow in SkScan*.Gravatar Ben Wagner2017-10-07
| | | | | | | | Bug: skia:5060 Change-Id: I60a48993c77631aaad9354bb86b13204dc618bf4 Reviewed-on: https://skia-review.googlesource.com/47422 Commit-Queue: Ben Wagner <benjaminwagner@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Revert "change computeByteSize to return max_size_t on overflow"Gravatar Mike Reed2017-10-06
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 24295462722fd5a298d108a80b0aacbb0964da53. Reason for revert: broke running dm on google3 Original change's description: > change computeByteSize to return max_size_t on overflow > > Bug: skia:7132 > Change-Id: I41045640ee62b2c988a84370ead5034bbccc6daf > Reviewed-on: https://skia-review.googlesource.com/56620 > Reviewed-by: Ben Wagner <bungeman@google.com> > Commit-Queue: Mike Reed <reed@google.com> TBR=bungeman@google.com,herb@google.com,reed@google.com Change-Id: I5f58ec37241d2fae3ebdb7a3d6b41f9fd6d3c2ee No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:7132 Reviewed-on: https://skia-review.googlesource.com/56880 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* change computeByteSize to return max_size_t on overflowGravatar Mike Reed2017-10-06
| | | | | | | | Bug: skia:7132 Change-Id: I41045640ee62b2c988a84370ead5034bbccc6daf Reviewed-on: https://skia-review.googlesource.com/56620 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Clean up SkString reference counting a bit.Gravatar Ben Wagner2017-10-05
| | | | | | | | | | | This reverts commit 01f8e41c1368bfd60d3f011cb5aa9cc478799e63, and then works around whatever issues were seen on Ubuntu 14 by continuing the clean up. Change-Id: I3523b12c83e4efef01a8142c00cde4e3e12189fa Reviewed-on: https://skia-review.googlesource.com/55761 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* add constexpr to SkRect, SkIRect Make functionsGravatar Cary Clark2017-10-05
| | | | | | | | | | | | | Also, doing so exposed a couple of unused variables in tests. R: bsalomon@google.com Bug: skia: 6898 Change-Id: I7b065e26a838fe55a1d772bcefaef5325e1baa61 Reviewed-on: https://skia-review.googlesource.com/55680 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Cary Clark <caryclark@skia.org>
* Revert "Clean up SkString reference counting a bit."Gravatar Robert Phillips2017-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit a910c847e9d04e183e9e610902cbd363c8488196. Reason for revert: Compilation failure on Ubuntu14 bots ../../../../../work/skia/src/core/SkString.cpp:200:55: error: could not convert ‘{0, {0}, 0}’ from ‘<brace-enclosed initializer list>’ to ‘const SkString::Rec’ const SkString::Rec SkString::gEmptyRec = { 0, {0}, 0 }; Original change's description: > Clean up SkString reference counting a bit. > > BUG=skia:7107 > > Change-Id: I47072bf31b902c79dbb850179ff6d35940de3e63 > Reviewed-on: https://skia-review.googlesource.com/54720 > Reviewed-by: Ben Wagner <bungeman@google.com> > Commit-Queue: Ben Wagner <bungeman@google.com> TBR=mtklein@google.com,bungeman@google.com,reed@google.com Change-Id: I6ec327511e8e1c1fd7e4c1bd5839c0547d4ab609 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:7107 Reviewed-on: https://skia-review.googlesource.com/55640 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Clean up SkString reference counting a bit.Gravatar Ben Wagner2017-10-04
| | | | | | | | | BUG=skia:7107 Change-Id: I47072bf31b902c79dbb850179ff6d35940de3e63 Reviewed-on: https://skia-review.googlesource.com/54720 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* add missing paramsGravatar Cary Clark2017-10-04
| | | | | | | | | | | | | | | SkBitmap is missing a couple of parameter names. Parameter names make doxygen easier. Also qualify hasHardwareMipMap and setHasHardwareMipMap to Android framework. R=djsollen@google.com Bug: skia:6898 Change-Id: I502da35dc5761d73195b6a21dd4310cb001a6924 Reviewed-on: https://skia-review.googlesource.com/55161 Commit-Queue: Cary Clark <caryclark@google.com> Reviewed-by: Derek Sollenberger <djsollen@google.com>
* Revert[4] "guard old apis for querying byte-size of a bitmap/imageinfo/pixmap"Gravatar Mike Reed2017-10-03
| | | | | | | | | | This reverts commit 5a2e50edc51006ce91366e177a9d21a16775d7fd. Bug: skia: Change-Id: I8d28b5c07d90130e5a1653923740eaf189ecb954 Reviewed-on: https://skia-review.googlesource.com/53900 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Make SkString reference counting thread/TSAN safe.Gravatar Ben Wagner2017-10-03
| | | | | | | | | BUG=skia:7107 Change-Id: I8ead98f7694faaed8e6f6f29b1fcd88501d36b66 Reviewed-on: https://skia-review.googlesource.com/54400 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Revert "Revert "Revert "guard old apis for querying byte-size of a ↵Gravatar Mike Reed2017-10-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bitmap/imageinfo/pixmap""" This reverts commit cd284c532376d16fcc4ed75baf3da65c3e4a2e95. Reason for revert: assert fired in SkMallocPixelRef.cpp:61: fatal error: "assert(info.computeByteSize(rowBytes) == info.getSafeSize(rowBytes))" google3 thinks it was from surface_rowbytes Original change's description: > Revert "Revert "guard old apis for querying byte-size of a bitmap/imageinfo/pixmap"" > > This reverts commit 809cbedd4b252be221b2ac3b4269d312fd8f53a0. > > Bug: skia: > Change-Id: I680d8daeeeeb15526b44c1305d8fb0c6bfa38e1d > Reviewed-on: https://skia-review.googlesource.com/52665 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Florin Malita <fmalita@chromium.org> TBR=fmalita@chromium.org,reed@google.com Change-Id: I41e3f7a3f791cc8183291847e783ed8a53bc91d2 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/53802 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Revert "guard old apis for querying byte-size of a ↵Gravatar Mike Reed2017-10-02
| | | | | | | | | | | | bitmap/imageinfo/pixmap"" This reverts commit 809cbedd4b252be221b2ac3b4269d312fd8f53a0. Bug: skia: Change-Id: I680d8daeeeeb15526b44c1305d8fb0c6bfa38e1d Reviewed-on: https://skia-review.googlesource.com/52665 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Just add new safe size apisGravatar Mike Reed2017-09-29
| | | | | | | | | | | Update skia (and then hide the older versions) to come later Inspired by https://skia-review.googlesource.com/c/skia/+/52665 Bug: skia: Change-Id: I15c7395557fb49c4163cb3b323b5428abd2c752d Reviewed-on: https://skia-review.googlesource.com/53520 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Make SkASSERT and co. constexpr compatible.Gravatar Mike Klein2017-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One of the nice bits of constexpr is that an expression is constexpr if there exists any set of argument values that make it constant. It doesn't have to be constant for _all_ argument values. This means that this expression is constexpr: condition ? constexpr_value : []{ arbitrary non-constexpr code; }(); ... it's constant when condition is true. We can use this to rewrite SkASSERT(condition) as ( (condition) ? (void)0 : []{ SK_ABORT(#condition); }() ) Both sides of the ?: are void, and when condition is true at compile time the right hand side disappears completely. In C++11 constexpr functions we just have to use the comma operator to jam SkASSERT() into the order of evaluation: constexpr uint32_t foo(int x, int y) { return SkASSERT(x > y), x - y; } Change-Id: I21878d14fb2af76d93591d2ae229460ee825cfde Reviewed-on: https://skia-review.googlesource.com/52663 Reviewed-by: Ben Wagner <bungeman@google.com> Reviewed-by: Trent Apted <tapted@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* make SkPath::fConvexity atomicGravatar Mike Klein2017-09-28
| | | | | | | | | | | | | | | | | The TSAN bots fail regularly with races on fConvexity. Very annoying. We used to have this very same problem with SkPath::fFirstDirection until we made it atomic. This does the same to fConvexity. This makes the field as lightly atomic as possible, with all operations using a relaxed memory order. The value of fConvexity isn't guarding any other non-atomic memory or implying any other writes have happened so I don't think we need anything beyond relaxed here. Change-Id: I0da1f892dc2b7072d692ce8b460fb1862aebef77 Reviewed-on: https://skia-review.googlesource.com/52180 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert "guard old apis for querying byte-size of a bitmap/imageinfo/pixmap"Gravatar Jim Van Verth2017-09-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 88757dacd4f532a0f647c02ae0ee596d31ab5c68. Reason for revert: Still seems to be failing Chromium "telemetry_perf_unittests (with patch) on Android" on android_n5x_swarming_rel. Original change's description: > guard old apis for querying byte-size of a bitmap/imageinfo/pixmap > > Now with legacy behavior for allocpixels > > This was reverted, so the current CL is a "fix" on top of ... > https://skia-review.googlesource.com/c/skia/+/50980 > > Related update to Chrome (in preparation for this change) > https://chromium-review.googlesource.com/c/chromium/src/+/685719 > > Bug: skia: > Change-Id: I4b370ee7e95083ab27421f008132219c9c7b86e9 > Reviewed-on: https://skia-review.googlesource.com/51341 > Reviewed-by: Florin Malita <fmalita@chromium.org> > Commit-Queue: Mike Reed <reed@google.com> TBR=fmalita@chromium.org,reed@google.com Change-Id: I827a0ca1d1e3909e648fde3342cdb8601d34da8d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/52381 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* guard old apis for querying byte-size of a bitmap/imageinfo/pixmapGravatar Mike Reed2017-09-27
| | | | | | | | | | | | | | | | Now with legacy behavior for allocpixels This was reverted, so the current CL is a "fix" on top of ... https://skia-review.googlesource.com/c/skia/+/50980 Related update to Chrome (in preparation for this change) https://chromium-review.googlesource.com/c/chromium/src/+/685719 Bug: skia: Change-Id: I4b370ee7e95083ab27421f008132219c9c7b86e9 Reviewed-on: https://skia-review.googlesource.com/51341 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Revert "guard old apis for querying byte-size of a bitmap/imageinfo/pixmap"Gravatar Greg Daniel2017-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 98a6216b18b57c2f7a0d58f542c60503686aed69. Reason for revert: breaking the chrome roll. Looks like they may be writing data to create an image across all the row bytes and thus writing to unalloced data on the last row. Link to example failing bot: https://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/539960 Original change's description: > guard old apis for querying byte-size of a bitmap/imageinfo/pixmap > > Previously we had size_t and uint64_t variations. > > The new (simpler) API always.. > - returns size_t, or 0 if the calculation overflowed > - returns the trimmed size (does not include rowBytes padding for the last row) > > Bug: skia: > Change-Id: I05173e877918327c7b207d2f7f1ab0db36892e2e > Reviewed-on: https://skia-review.googlesource.com/50980 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Florin Malita <fmalita@chromium.org> > Reviewed-by: Leon Scroggins <scroggo@google.com> TBR=mtklein@google.com,herb@google.com,scroggo@google.com,fmalita@chromium.org,reed@google.com Change-Id: I726f6ab1b36b14979ba6f37105e0a469b3f0dbc0 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/51262 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* guard old apis for querying byte-size of a bitmap/imageinfo/pixmapGravatar Mike Reed2017-09-26
| | | | | | | | | | | | | | | Previously we had size_t and uint64_t variations. The new (simpler) API always.. - returns size_t, or 0 if the calculation overflowed - returns the trimmed size (does not include rowBytes padding for the last row) Bug: skia: Change-Id: I05173e877918327c7b207d2f7f1ab0db36892e2e Reviewed-on: https://skia-review.googlesource.com/50980 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Leon Scroggins <scroggo@google.com>