diff options
author | Florin Malita <fmalita@chromium.org> | 2018-04-11 15:33:40 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-04-11 20:13:22 +0000 |
commit | c6c5eade823a399efc1671c2c7f1bc278273d2d5 (patch) | |
tree | 6119d0ae93da1120e3d6077b4d8494458bfec365 /src/shaders/SkImageShader.cpp | |
parent | f70b22ec36177034b76d21b00c1f14ba72e99f0b (diff) |
Reland "Fix handling of MaskFilter matrices"
This reverts commit c64ee20e135a336ed775ccb6dec8a87efd19ec02.
Reason for revert: initial failures should be fixed in https://skia.googlesource.com/skia.git/+/8eaf64ae12696d4189d3cea9f023658494cf82b8
Original change's description:
> Revert "Fix handling of MaskFilter matrices"
>
> This reverts commit 2097fd03ffea48bd904c48c93348b2350600870e.
>
> Reason for revert: This is breaking a lot of Windows bots (esp. on the shadermaskfilter_localmatrix)
>
> Original change's description:
> > Fix handling of MaskFilter matrices
> >
> > 1) extend GrFPArgs to track pre/post local matrices, add helpers for
> > creating pre/post wrapper args
> >
> > 2) add a SkShaderBase helper (totalLocalMatrix) to centralize the LM
> > sandwich logic.
> >
> > 3) update call sites to use the above
> >
> > 4) rename SkMatrixFilter::makeWithLocalMatrix -> makeWithMatrix, to
> > disambiguate vs. SkShader::makeWithLocalMatrix.
> >
> > BUG=skia:7744
> >
> > Change-Id: Ib2b7b007e6924979b00649dde7c94ef4b34771f1
> > Reviewed-on: https://skia-review.googlesource.com/119330
> > Commit-Queue: Florin Malita <fmalita@chromium.org>
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
>
> TBR=bsalomon@google.com,robertphillips@google.com,fmalita@chromium.org,reed@google.com
>
> Change-Id: I918dbb95bf00b3122e6699b84566ec82dbb5fc5c
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:7744
> Reviewed-on: https://skia-review.googlesource.com/120340
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
TBR=bsalomon@google.com,robertphillips@google.com,fmalita@chromium.org,reed@google.com
Change-Id: If194862a928d1abe22ed8fa968436c725d19a8fc
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:7744
Reviewed-on: https://skia-review.googlesource.com/120480
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'src/shaders/SkImageShader.cpp')
-rw-r--r-- | src/shaders/SkImageShader.cpp | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/src/shaders/SkImageShader.cpp b/src/shaders/SkImageShader.cpp index 265f7e6013..1838e9e498 100644 --- a/src/shaders/SkImageShader.cpp +++ b/src/shaders/SkImageShader.cpp @@ -213,19 +213,11 @@ static GrSamplerState::WrapMode tile_mode_to_wrap_mode(const SkShader::TileMode std::unique_ptr<GrFragmentProcessor> SkImageShader::asFragmentProcessor( const GrFPArgs& args) const { - SkMatrix lm = this->getLocalMatrix(); + const auto lm = this->totalLocalMatrix(args.fPreLocalMatrix, args.fPostLocalMatrix); SkMatrix lmInverse; - if (!lm.invert(&lmInverse)) { + if (!lm->invert(&lmInverse)) { return nullptr; } - if (args.fLocalMatrix) { - SkMatrix inv; - if (!args.fLocalMatrix->invert(&inv)) { - return nullptr; - } - lmInverse.postConcat(inv); - lm.preConcat(*args.fLocalMatrix); - } GrSamplerState::WrapMode wrapModes[] = {tile_mode_to_wrap_mode(fTileModeX), tile_mode_to_wrap_mode(fTileModeY)}; @@ -236,7 +228,7 @@ std::unique_ptr<GrFragmentProcessor> SkImageShader::asFragmentProcessor( // are provided by the caller. bool doBicubic; GrSamplerState::Filter textureFilterMode = GrSkFilterQualityToGrFilterMode( - args.fFilterQuality, *args.fViewMatrix, lm, + args.fFilterQuality, *args.fViewMatrix, *lm, args.fContext->contextPriv().sharpenMipmappedTextures(), &doBicubic); GrSamplerState samplerState(wrapModes, textureFilterMode); sk_sp<SkColorSpace> texColorSpace; |