aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Rename GrAADistanceFieldPathRenderer to GrSmallPathRendererGravatar Jim Van Verth2017-03-16
| | | | | | | | | Also disables use of small distance fields in Android framework. Change-Id: I1ba40ce85aa34d067608587e1fbe1d42e8a42868 Reviewed-on: https://skia-review.googlesource.com/9731 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Chris Dalton <csmartdalton@google.com>
* More pre-emptive proxificationGravatar Robert Phillips2017-03-16
| | | | | | | | | These methods are not called yet. This CL is broken out of: https://skia-review.googlesource.com/c/8823/ (Remove GrFragmentProcessor-derived class' GrTexture-based ctors) Change-Id: I2bf38202750e91e66a8044a790ccfe34d59e08a7 Reviewed-on: https://skia-review.googlesource.com/9683 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Revert "Support pixel antialising in DirectWrite."Gravatar Mike Reed2017-03-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 34db1eee20ffea6e423284bb06824653efff645d. Reason for revert: breaks the chrome roll E:\b\c\b\win_clang\src\third_party\skia\src\ports\SkScalerContext_win_dw.cpp(287,49): error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces] GaspRange range{bitmapPPEM, bitmapPPEM, 0}; ^ {} E:\b\c\b\win_clang\src\third_party\skia\src\ports\SkScalerContext_win_dw.cpp(287,49): error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces] GaspRange range{bitmapPPEM, bitmapPPEM, 0}; ^ {} E:\b\c\b\win_clang\src\third_party\skia\src\ports\SkScalerContext_win_dw.cpp(290,59): error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces] range = GaspRange{bitmapPPEM, bitmapPPEM, 0}; ^ {} E:\b\c\b\win_clang\src\third_party\skia\src\ports\SkScalerContext_win_dw.cpp(290,59): error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces] range = GaspRange{bitmapPPEM, bitmapPPEM, 0}; ^ {} E:\b\c\b\win_clang\src\third_party\skia\src\ports\SkScalerContext_win_dw.cpp(338,39): error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces] GaspRange range = {0, 0xFFFF, 0}; ^ {} E:\b\c\b\win_clang\src\third_party\skia\src\ports\SkScalerContext_win_dw.cpp(338,39): error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces] GaspRange range = {0, 0xFFFF, 0}; ^ {} Original change's description: > Support pixel antialising in DirectWrite. > > DirectWrite2 supports pixel antialiasing and rendering without hinting. > > BUG=skia:5416 > > Change-Id: I215245b20dd403669dbccd37e34cb2fcd5e06431 > Reviewed-on: https://skia-review.googlesource.com/9145 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Ben Wagner <bungeman@google.com> > TBR=mtklein@google.com,bungeman@google.com,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:5416 Change-Id: Ic5f09abc3be8dd85d213a007780b3fe15fc11d92 Reviewed-on: https://skia-review.googlesource.com/9747 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Support pixel antialising in DirectWrite.Gravatar Ben Wagner2017-03-15
| | | | | | | | | | | DirectWrite2 supports pixel antialiasing and rendering without hinting. BUG=skia:5416 Change-Id: I215245b20dd403669dbccd37e34cb2fcd5e06431 Reviewed-on: https://skia-review.googlesource.com/9145 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Add color spin test for SkColorSpaceXformCanvasGravatar Matt Sarett2017-03-15
| | | | | | | | | | | | | | | Also changes behavior to treat nullptr srcs as sRGB. Testing locally, it looks like 353 gms have no diffs from 8888. There are 269 diffs - some are fine (gms that do color space stuff) and some are bugs. BUG=skia: Change-Id: I55c2825f4f4b857e0b0a0ec050c6db82ac881492 Reviewed-on: https://skia-review.googlesource.com/9738 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* SkDynamicMemoryWStream::detachAsStream() returns unique_ptrGravatar Hal Canary2017-03-15
| | | | | | | | https://crrev.com/2747183002 must land first. Change-Id: I65d1285a24d63c2c2f18662d511dea1c399511e1 Reviewed-on: https://skia-review.googlesource.com/9682 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* Revert "Add pre-Flush callback to GrDrawingManager"Gravatar Robert Phillips2017-03-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit d222ec492f5d0229986f529134d083e589bcc4a9. Reason for revert: TegraX1 Vulkan bot Original change's description: > Add pre-Flush callback to GrDrawingManager > > This will allow internal systems (e.g., fonts & path renderers) to create pre-flush atlases. > > Depends on: https://skia-review.googlesource.com/c/8988/ (Allow GrSurfaceProxy-derived classes to use flags when instantiating) > > Change-Id: I307796595d651cf376838bff1f9e4385c3753547 > Reviewed-on: https://skia-review.googlesource.com/8679 > Commit-Queue: Robert Phillips <robertphillips@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> > TBR=bsalomon@google.com,robertphillips@google.com,csmartdalton@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I852648adc12d2aa58cd09c57d961c340d657776c Reviewed-on: https://skia-review.googlesource.com/9735 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* SkColorSpaceXformCanvas: simple support for shadersGravatar Mike Klein2017-03-15
| | | | | | | | | | | | | | So far it looks like we can hit the major shader subclasses without needing to add new calls to SkShader. Not married to this approach, but it's a big head start. I've left out nonlinear gradient types just to keep this CL clear. Will follow up with them... they won't be interestingly different. Change-Id: I8711ff464f384d8be1671c139ba10a20502d9c0f Reviewed-on: https://skia-review.googlesource.com/9742 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert[2] "store vertices arrays inline with object""Gravatar Mike Reed2017-03-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 9e62df6ecd1000860ad19ab9425579dfb7002ba0. Reason for revert: behavior in reader32 fixed Fix is here: https://skia-review.googlesource.com/c/9729/ Original change's description: > Revert "store vertices arrays inline with object" > > This reverts commit eaaebb19a17d213355e7a70e0cfabe4ba61929d4. > > Reason for revert: may call SkReader32::read(null, 0) -- reader needs to handle this > > Original change's description: > > store vertices arrays inline with object > > > > Also unify some of naming (esp. around texCoords) > > > > BUG=skia:6366 > > > > Change-Id: I5a6793f029cccf0cd0a2c1d180b259ce4eab526f > > Reviewed-on: https://skia-review.googlesource.com/9705 > > Commit-Queue: Mike Reed <reed@google.com> > > Reviewed-by: Brian Salomon <bsalomon@google.com> > > > > TBR=bsalomon@google.com,reed@google.com,reviews@skia.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=skia:6366 > > Change-Id: Ie421654bcd74d74f8be6676291e3d6e16e2a7a16 > Reviewed-on: https://skia-review.googlesource.com/9727 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Mike Reed <reed@google.com> > TBR=bsalomon@google.com,reviews@skia.org,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:6366 Change-Id: I1f12108fff8f551d66455cfadd6d5dd9412e9aa8 Reviewed-on: https://skia-review.googlesource.com/9760 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Push setMipColorMode calls further down-stack & add to GrTextureProxyGravatar Robert Phillips2017-03-15
| | | | | | | | | setMipColorMode seems like an odd call. Change-Id: I24a1ac3883d52499f3be27282d006144d15b26f1 Reviewed-on: https://skia-review.googlesource.com/9725 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* must check for zero-length in reader32::read() before calling memcpyGravatar Mike Reed2017-03-15
| | | | | | | | | | | | | memcpy's behavior is undefined if the dst-ptr is null, but reader32 supports null as long as the size is 0, so it needs to check explicitly before calling memcpy. This is implemented (now) by calling sk_careful_memcpy. BUG=skia: Change-Id: I7033cc5e6d724f50f0aafd9808e297b953848aa7 Reviewed-on: https://skia-review.googlesource.com/9729 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Add pre-Flush callback to GrDrawingManagerGravatar Robert Phillips2017-03-15
| | | | | | | | | | | This will allow internal systems (e.g., fonts & path renderers) to create pre-flush atlases. Depends on: https://skia-review.googlesource.com/c/8988/ (Allow GrSurfaceProxy-derived classes to use flags when instantiating) Change-Id: I307796595d651cf376838bff1f9e4385c3753547 Reviewed-on: https://skia-review.googlesource.com/8679 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Fix warning in Clang 4.0 Mac build.Gravatar Mike Klein2017-03-15
| | | | | | | | | | | | | | | ../src/views/mac/SkNSView.mm:18:31: note: expanded from macro 'RETINA_API_AVAILABLE' #define RETINA_API_AVAILABLE (defined(MAC_OS_X_VERSION_10_7) && \ ^ ../src/views/mac/SkNSView.mm:404:5: error: macro expansion producing 'defined' has undefined behavior [-Werror,-Wexpansion-to-defined] #if RETINA_API_AVAILABLE After this change, Clang 4.0 builds everything on Mac without warning. Change-Id: I9c8f63e009eaa69366ba9361a811df46a1204c24 Reviewed-on: https://skia-review.googlesource.com/9741 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert "store vertices arrays inline with object"Gravatar Mike Reed2017-03-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit eaaebb19a17d213355e7a70e0cfabe4ba61929d4. Reason for revert: may call SkReader32::read(null, 0) -- reader needs to handle this Original change's description: > store vertices arrays inline with object > > Also unify some of naming (esp. around texCoords) > > BUG=skia:6366 > > Change-Id: I5a6793f029cccf0cd0a2c1d180b259ce4eab526f > Reviewed-on: https://skia-review.googlesource.com/9705 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> > TBR=bsalomon@google.com,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:6366 Change-Id: Ie421654bcd74d74f8be6676291e3d6e16e2a7a16 Reviewed-on: https://skia-review.googlesource.com/9727 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* store vertices arrays inline with objectGravatar Mike Reed2017-03-15
| | | | | | | | | | | Also unify some of naming (esp. around texCoords) BUG=skia:6366 Change-Id: I5a6793f029cccf0cd0a2c1d180b259ce4eab526f Reviewed-on: https://skia-review.googlesource.com/9705 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Emit dumpInfo string when processor opt test failsGravatar Brian Osman2017-03-15
| | | | | | | | | | | | Add missing implementation for ComposeTwo, and provide more information in ComposeOne. BUG=skia: Change-Id: Id2406bcb51a6419a763ff9e6e572f5c6c70c4c76 Reviewed-on: https://skia-review.googlesource.com/9699 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Retract GrContext from src/gpu/effectsGravatar Robert Phillips2017-03-15
| | | | | | | Change-Id: Iceb7263098286bafb2605ef17d1fe6bb25d71e97 Reviewed-on: https://skia-review.googlesource.com/9693 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Viewer's nonlinear blend mode uses SkColorSpaceXformCanvasGravatar Brian Osman2017-03-15
| | | | | | | | | | | Also avoid asserting when untagged images are being transformed. BUG=skia: Change-Id: If712f39b5f588b2bc3dc318a5b782badb7662ccf Reviewed-on: https://skia-review.googlesource.com/9695 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* SkDynamicMemoryWStream::detachAsData more memory efficentGravatar Hal Canary2017-03-15
| | | | | | | | | | I did some testing with very large datasets, and the difference in max RSS is measurable and significant. Change-Id: I6bb2f795d5b4f6ebdba42c3089dc85a278355d48 Reviewed-on: https://skia-review.googlesource.com/9686 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* GPU version of onMakeColorSpaceGravatar Brian Osman2017-03-15
| | | | | | | | | | | | | | New fragment processor that implements end-to-end color space conversion, with nonlinear blending. BUG=skia:6242 Change-Id: Ied86170fc28537a2bc209d57530d3ded48b467a9 Reviewed-on: https://skia-review.googlesource.com/9543 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Matt Sarett <msarett@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* add uniqueIDGravatar Mike Reed2017-03-15
| | | | | | | | | BUG=skia:6366 Change-Id: Ie3215a392040be645524a2294d824d953ba3a1b6 Reviewed-on: https://skia-review.googlesource.com/9703 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* SkJumper: update to Clang 4.0Gravatar Mike Klein2017-03-15
| | | | | | | | | | | | | This Clang makes some new decisions about what (not) to inline. Luckily, liberal use of the 'inline' keyword steers it back in the right direction. This new code draws the same, and generally looks improved. Change-Id: I0ab6e1c884e6b339d01ae46a08a848e36dcc535a Reviewed-on: https://skia-review.googlesource.com/9702 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* floor -> floor_, just like abs_Gravatar Mike Klein2017-03-15
| | | | | | | | | Should fix the MSAN bot. Change-Id: I9c7b9480ecd0576405468a2586ec6931f38b11a8 Reviewed-on: https://skia-review.googlesource.com/9701 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* SkJumper: more constants, _f and _i literals.Gravatar Mike Klein2017-03-14
| | | | | | | | | | | Generalize section types to avoid, adding another type (.rodata). I've kept K for iota only. Maybe one day... Change-Id: Ie5678a2ea00fefe550bc0e6dcab32f98c31d3fae Reviewed-on: https://skia-review.googlesource.com/9403 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com>
* Add GrRenderTargetContext::resourceProvider & GrResourceProvider::capsGravatar Robert Phillips2017-03-14
| | | | | | | | | and retract GrSurfaceContextPriv a bit Change-Id: Id47af1052f9bda4fe7c85b3ce46b3ebe37797524 Reviewed-on: https://skia-review.googlesource.com/9647 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Compute clipped draw bounds outside GrAppliedClip.Gravatar Brian Salomon2017-03-14
| | | | | | | | | | | | We will be storing GrAppliedClips alongside ops. The op already stores the clipped bounds. If GrAppliedClip has draw bounds then as ops combine the GrAppliedClip's bounds should be merged to be consistent. However, we won't actually ever use those bounds again so it would be wasteful to merge them. Change-Id: I4ef3010dc04761e256120a2e0e074bc3c6ff6ca1 Reviewed-on: https://skia-review.googlesource.com/9642 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Chris Dalton <csmartdalton@google.com>
* Begin implementation of SkImage_Base::makeColorSpaceGravatar Matt Sarett2017-03-14
| | | | | | | | | | | | | | Originally: https://skia-review.googlesource.com/9622 CQ_INCLUDE_TRYBOTS=skia.primary:Test-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release,Test-Android-Clang-PixelC-CPU-TegraX1-arm64-Debug-Android BUG=skia: Change-Id: I7ef1daaab32892399e3333e4b2fc75d70a1900e4 Reviewed-on: https://skia-review.googlesource.com/9651 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
* vertices to/from dataGravatar Mike Reed2017-03-14
| | | | | | | | | | | precursor to enabling serialization in pictures BUG=skia:6366 Change-Id: Iba89aa98f389b3281e7705d041e3337e89071f03 Reviewed-on: https://skia-review.googlesource.com/9680 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Generaly Fixes to gpu bezier codeGravatar Greg Daniel2017-03-14
| | | | | | | | | BUG=skia: Change-Id: I2246aa0b2bc3327df42ca30d35020a4b878a819b Reviewed-on: https://skia-review.googlesource.com/9555 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Chris Dalton <csmartdalton@google.com>
* add SkVertices::BuilderGravatar Mike Reed2017-03-14
| | | | | | | | | | | | | | | | | | Possible next iterations: - remove another allocation use the SkData trick to share the object and its (trailing) data - store a bit that tells use to free each pointer, allowing the builder to "adopt" some allocations instead of copy. Larger idea: - merge with drawPoints to have a single object for both. BUG=skia:6366 Change-Id: Iec33239aa2ad5d00b36469ca0b88934ddf6f22eb Reviewed-on: https://skia-review.googlesource.com/9604 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Begin implementation of SkImage_Base::makeColorSpace"Gravatar Mike Reed2017-03-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 98629efdde9236e444d7b3fa644eaab3a1301566. Reason for revert: unittest failures Failures: ../../../tests/ImageTest.cpp:1099 0x28 == SkGetPackedR32(*p3Bitmap.getAddr32(0, 0)) ../../../tests/ImageTest.cpp:1100 0x40 == SkGetPackedG32(*p3Bitmap.getAddr32(0, 0)) ../../../tests/ImageTest.cpp:1101 0x5E == SkGetPackedB32(*p3Bitmap.getAddr32(0, 0)) Original change's description: > Begin implementation of SkImage_Base::makeColorSpace > > BUG=skia: > > Change-Id: Idf946faa64dad32a28070a430926a8225dbf6e5a > Reviewed-on: https://skia-review.googlesource.com/9622 > Commit-Queue: Matt Sarett <msarett@google.com> > Reviewed-by: Brian Osman <brianosman@google.com> > TBR=mtklein@google.com,msarett@google.com,brianosman@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Change-Id: I6ce2a28ca581f7d01322588c2435133d8c6a2435 Reviewed-on: https://skia-review.googlesource.com/9649 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Expose SkColorSpaceTransferFn inversion functionGravatar Brian Osman2017-03-14
| | | | | | | | | | | Also adds tolerance to checks against zero BUG=skia: Change-Id: I2ad5737c6eef7e3ed52a685dceb347a434607336 Reviewed-on: https://skia-review.googlesource.com/9643 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
* Remove unused SkBitmap::RLEPixelsGravatar Leon Scroggins III2017-03-14
| | | | | | | | | | TBR=reed@google.com Change-Id: I14a75b7cad89aa7eb4b146a5d269856a4ad5d821 Reviewed-on: https://skia-review.googlesource.com/9646 Reviewed-by: Leon Scroggins <scroggo@google.com> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Leon Scroggins <scroggo@google.com>
* Add const to GrColorSpaceXform member argumentsGravatar Brian Osman2017-03-14
| | | | | | | | | BUG=skia: Change-Id: I643c486066a0cd48e9c985ab5f3ee453c2a533c5 Reviewed-on: https://skia-review.googlesource.com/9644 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Use SkTArray for mailbox pollingGravatar Florin Malita2017-03-14
| | | | | | | | | | The mailbox uses SkTArray internally, so swapping is optimal when dest has no preallocated storage. Change-Id: Ic295f3707d07c97b1881e775cac3a23a6b2fef71 Reviewed-on: https://skia-review.googlesource.com/9641 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Begin implementation of SkImage_Base::makeColorSpaceGravatar Matt Sarett2017-03-14
| | | | | | | | | BUG=skia: Change-Id: Idf946faa64dad32a28070a430926a8225dbf6e5a Reviewed-on: https://skia-review.googlesource.com/9622 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Consolidate Proxy caching code in GrResourceProviderGravatar Robert Phillips2017-03-14
| | | | | | | | | | | This doesn't implement the GrSurfaceProxy-based caching but just carves out a space for it. Split out of: https://skia-review.googlesource.com/c/8823/ (Remove GrFragmentProcessor-derived class' GrTexture-based ctors) Change-Id: Iec87b45e3264b349d7804f63e361e970b925e335 Reviewed-on: https://skia-review.googlesource.com/9626 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Purge GrTextBlobCache entries on SkTextBlob deletionGravatar Florin Malita2017-03-14
| | | | | | | | | Similar to the SkImage purge mechanism. Change-Id: I0b7fb1bad507a3c7f30a4f7514bedd894d1748ac Reviewed-on: https://skia-review.googlesource.com/9631 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Preparatory ProxificationGravatar Robert Phillips2017-03-14
| | | | | | | | | This is pulled out of: https://skia-review.googlesource.com/c/8823/ (Remove GrFragmentProcessor-derived class' GrTexture-based ctors) Change-Id: I93e233cd80d98c848d79272423cb58505d72ff3e Reviewed-on: https://skia-review.googlesource.com/9559 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Increase precision of equality checking for color space transfer fnsGravatar Matt Sarett2017-03-14
| | | | | | | | | BUG=skia: Change-Id: I7b921d34539c071e63a47fb7151dc1dcdaa08cb3 Reviewed-on: https://skia-review.googlesource.com/9636 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Move GrSurfaceContext.h and GrTextureContext.h to src/gpu from include/gpuGravatar Brian Salomon2017-03-14
| | | | | | | Change-Id: I5b68650d2417018e217a2fef2f852316ebd9de6f Reviewed-on: https://skia-review.googlesource.com/9637 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Remove GrClipsStackClip member from SkGpuDeviceGravatar Brian Salomon2017-03-13
| | | | | | | Change-Id: Ibfbfeda86e3d6a819bf198af5c36852744897fb8 Reviewed-on: https://skia-review.googlesource.com/9635 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Chris Dalton <csmartdalton@google.com>
* Remove origin from GrClipStackClip and GrWindowRectsState.Gravatar Brian Salomon2017-03-13
| | | | | | | Change-Id: I993f426fee0f21cf1f529f58d242de3017253678 Reviewed-on: https://skia-review.googlesource.com/9623 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Chris Dalton <csmartdalton@google.com>
* GrTessellator (AA): implement fast path for non-intersecting geometry.Gravatar Stephen White2017-03-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the common case, there are no intersections in the inner or outer meshes generated for edge-AA. In that case, we don't have to build connector edges, and we don't need to run the full simplify and tessellate path on the full combined mesh. In order to maintain the correspondence between inner and outer meshes, we can keep partner pointers between inner and outer vertices instead. So the new flow is: - stroke the original boundaries to generate inner & outer meshes - assign partner pointers to join inner & outer vertices - build Edges only for Inner and Outer contours - sort the two meshes independently - do a complexity check on both meshes (simplified Bentley-Ottmann that just aborts on the first found intersection) - if neither mesh is complex, use the fast path: - tessellate only the inner mesh - return the outer mesh, and use the partner pointers to generate the outer geometry triangles - otherwise, use the complex path (as before): - connect the inner & outer partners with Connector Edges - merge the inner & outer meshes via sorted_merge() - simplify and tessellate the resulting complete mesh On a 2012 Retina MBP (Intel), this yields: Canvas Arcs +6% Stroke Shapes +6% Fill Shapes +15% On a Z620 Ubuntu w/NVidia GTX 650: Canvas Arcs: +5.0% Stroke Shapes: +1.8% Fill Shapes: +17.6% Other changes: - implemented VertexList::append(VertexList), for use by sorted_merge() - renamed boundary_to_aa_mesh() to stroke_boundary(), and made it append inner & outer contours to inner & outer meshes - the connect() loop at the bottom of stroke_boundary() now uses open VertexLists, since it can then append them easily to the inner & outer meshes - sort_and_simplify() changed to sort_mesh(), with merging and simplification done explicitly by the callers - sorted_merge() factored out of merge_sort(), for use when zipping together the inner and outer meshes Change-Id: Ib00f9f12a375412eff35dd2bb78ccd787d9c37ce Reviewed-on: https://skia-review.googlesource.com/9600 Commit-Queue: Stephen White <senorblanco@chromium.org> Reviewed-by: Brian Salomon <bsalomon@google.com>
* More SkCSXformCanvas work.Gravatar Mike Klein2017-03-13
| | | | | | | | | | | | | | - handle color arrays in drawPatch(), drawVertices(), drawAtlas() - color filters Color filter support is a one-off for SkModeColorFilter. I don't know any other color filters that are parameterized by a color. If there are any/many, we may want to wire up something more comprehensive here. Change-Id: Ibc89574e3a32d38af3bc2443a7d4bac0bb52d493 Reviewed-on: https://skia-review.googlesource.com/9601 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Add query to GrXPFactory about coverage-as-alpha optimizationGravatar Brian Salomon2017-03-13
| | | | | | | | | This will be needed to have GrDrawOps that haven't yet built pipelines. Change-Id: If5292aaa5dc9f98dccbe27be98960b630332158d Reviewed-on: https://skia-review.googlesource.com/9480 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Restore deferred GPU resources in ChromeGravatar Robert Phillips2017-03-13
| | | | | | | Change-Id: Ib52668b46e7d077175dcba12a3ccc8abc1f0c7a9 Reviewed-on: https://skia-review.googlesource.com/9552 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* SkColorSpaceXformCanvasGravatar Mike Klein2017-03-13
| | | | | | | | | | | | | | | TODO: images shaders color filters image filters a couple stray color arrays Change-Id: Ib91639bb0a6a00af737dd5186180011fe5120860 Reviewed-on: https://skia-review.googlesource.com/9529 Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* use AutoRestore instead of making a copy of the clipstackGravatar Mike Reed2017-03-13
| | | | | | | | | BUG=skia: Change-Id: I86683156926f7c63c83790eaf313112ba5fab763 Reviewed-on: https://skia-review.googlesource.com/9532 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Remove SK_SUPPORT_LEGACY_BROKEN_LERP supportGravatar Florin Malita2017-03-13
| | | | | | | | | | | | | | Chromium change landed. BUG=chromium:696216 CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I3e67392b0fdad8c5a3ad256e4f190123dff6c846 Reviewed-on: https://skia-review.googlesource.com/9551 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>