aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkColorSpaceXformer.h
Commit message (Collapse)AuthorAge
* [Reland] More SkColorSpaceXformer cachingGravatar Florin Malita2017-07-10
| | | | | | | | | | | | * apply(SkColorFilter*) * apply(SkImage*) Also add purge logic to minimize caching scope. Change-Id: I295d20f760f8be0c3746858d6f9c73e351f10a36 Reviewed-on: https://skia-review.googlesource.com/22030 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Reed <reed@google.com>
* Revert "More SkColorSpaceXformer caching"Gravatar Florin Malita2017-07-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8d1fc16ba6161afc1174e29e30bae4fc9939264f. Reason for revert: looks like it broke a couple of Chrome unit tests - https://uberchromegw.corp.google.com/i/chromium.win/builders/Win%207%20Tests%20x64%20%281%29/builds/26292 Original change's description: > More SkColorSpaceXformer caching > > * apply(SkColorFilter*) > * apply(SkImage*) > > Change-Id: I9b55632edd73dbbc5edb8b5ca9bb5bead1131260 > Reviewed-on: https://skia-review.googlesource.com/21736 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Florin Malita <fmalita@chromium.org> TBR=mtklein@google.com,herb@google.com,fmalita@chromium.org,reed@google.com Change-Id: I86bc61fca370796125b66419ad89bfe3610b996f No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/21980 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* More SkColorSpaceXformer cachingGravatar Florin Malita2017-07-08
| | | | | | | | | | * apply(SkColorFilter*) * apply(SkImage*) Change-Id: I9b55632edd73dbbc5edb8b5ca9bb5bead1131260 Reviewed-on: https://skia-review.googlesource.com/21736 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Minor SkColorSpaceXformer cleanupGravatar Florin Malita2017-07-06
| | | | | | | | | Instead of plugging private fields from the factory, pass to ctor. Change-Id: Iea186e394182bddb6a569de1a05f2e40d6815c80 Reviewed-on: https://skia-review.googlesource.com/21734 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Add an SkColorSpaceXformer image filter cacheGravatar Florin Malita2017-07-06
| | | | | | | | | | | | The cache is scoped with the SkColorSpaceXformer object. This ensures we're not transforming nodes with a degree > 1 multiple times, and preserves the DAG topology. Change-Id: I0b072cdac95f9f1c34e0565ed4f258aba986e1ae Reviewed-on: https://skia-review.googlesource.com/21726 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Reed <reed@google.com>
* only create new instance if needed for colorspacexformerGravatar Mike Reed2017-07-06
| | | | | | | | | | just an experiment to address performance when imagefilters are cached. Bug: skia: Change-Id: Ic1033c897d0a569b46a339fb3ae7f8f961882953 Reviewed-on: https://skia-review.googlesource.com/21395 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* clean up SkShader friendsGravatar Mike Klein2017-05-10
| | | | | | | | | | | | | | | Many SkShader subclasses are only friends to use makeColorSpace(). Our usual solution to this is to add a method on SkColorSpaceXformer that calls makeColorSpace() for us, so that only SkColorSpaceXformer needs to be a friend. Just a refactor. No image diffs. Change-Id: Icf952b739edf45f2fb8c0c35e353ef2866f4c5cc Reviewed-on: https://skia-review.googlesource.com/16370 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Make SkColorSpaceXformer::apply(SkPaint) safe to call recursivelyGravatar Matt Sarett2017-04-25
| | | | | | | | | | | | | Before, we would stomp on the original paint in the recursive call. This fixes 4 gbr-8888 gms. Currently, this only affects loopers and SkPaintImageFilter. Bug: skia:6516 Change-Id: Ic47d637a912370c0a1ae8ef3282ad7d15d9902e3 Reviewed-on: https://skia-review.googlesource.com/14182 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* xform saveLayer() backdropGravatar Mike Klein2017-04-25
| | | | | | | | | | | | | Just noticed this TODO is easy now. This doesn't seem to change any GMs, and definitely isn't used by Chrome or Android... this is just for completeness. It's also definitely correct to unfurl pictures. Change-Id: Ida6e43788d1de7a9452dad47aea8a5fbe41a1f46 Reviewed-on: https://skia-review.googlesource.com/14276 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Matt Sarett <msarett@google.com>
* SkColorSpaceXformer: Add SkShader::makeColorSpace()Gravatar Matt Sarett2017-04-19
| | | | | | | | | | | | | | | Just a refactor - reimplements the shader xforms with makeColorSpace(). 11 gms have diffs. Some are down to floating precision. The old implementation would go float->fixed->float in some cases. Others are due to improvements with gradient shaders inside local matrix shaders. Bug: skia:6516 Change-Id: I424406990c5c58a47833cf4c9ef146cd3ea6c37e Reviewed-on: https://skia-review.googlesource.com/13769 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Matt Sarett <msarett@google.com>
* SkPictureImageFilter::onMakeColorSpace()Gravatar Matt Sarett2017-04-15
| | | | | | | | | | | Improves gm/recordopts. Does not break gm/pictureimagefilter or gm/fastfilterbounds. Bug: skia: Change-Id: I67c8f02a9548bf751350dfa3c7029dd59b8a2d1d Reviewed-on: https://skia-review.googlesource.com/13276 Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Mike Klein <mtklein@google.com>
* SkImageFilter::onMakeColorSpace() - more overridesGravatar Matt Sarett2017-04-10
| | | | | | | | | | | Fills out most of the simple implementations. Improves 22 gms in gbr-8888. Bug: skia: Change-Id: I881ade140993568263de75be51aed240d2de8cc6 Reviewed-on: https://skia-review.googlesource.com/13126 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Avoid extra bitmap copies in SkColorSpaceXformCanvasGravatar Matt Sarett2017-04-03
| | | | | | | | | | | | | | | | | | Before: ColorCanvasDrawBitmap_sRGB_to_sRGB 5.09us ColorCanvasDrawBitmap_AdobeRGB_to_sRGB 50.7us After: ColorCanvasDrawBitmap_sRGB_to_sRGB 2.43us ColorCanvasDrawBitmap_AdobeRGB_to_sRGB 37.1us BUG=skia:6456 Change-Id: Ie382936c36fd347b59485882cf8f27f315a5d35f Change-Id: Ie382936c36fd347b59485882cf8f27f315a5d35f Reviewed-on: https://skia-review.googlesource.com/11040 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Matt Sarett <msarett@google.com>
* Make xformer class for SkCSXCanvas, use for draw loopersGravatar Matt Sarett2017-03-30
Fixes draw looper gms in gbr-8888 config. Bug: skia: Change-Id: I0a9306cc0523c82f2ad9516752d79c1d86b1e295 Reviewed-on: https://skia-review.googlesource.com/10644 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>