diff options
author | 2018-04-11 12:38:41 +0000 | |
---|---|---|
committer | 2018-04-11 12:38:47 +0000 | |
commit | c64ee20e135a336ed775ccb6dec8a87efd19ec02 (patch) | |
tree | 661c8d0d3ee64ff31b45548758e3c1dfe4abc81d /src/shaders/SkShader.cpp | |
parent | 90f09e7853f506808b7dad5c50b60376887277a4 (diff) |
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>
Diffstat (limited to 'src/shaders/SkShader.cpp')
-rw-r--r-- | src/shaders/SkShader.cpp | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/src/shaders/SkShader.cpp b/src/shaders/SkShader.cpp index f3ffd26ef4..265f22beaa 100644 --- a/src/shaders/SkShader.cpp +++ b/src/shaders/SkShader.cpp @@ -67,26 +67,15 @@ void SkShaderBase::flatten(SkWriteBuffer& buffer) const { } } -SkTCopyOnFirstWrite<SkMatrix> -SkShaderBase::totalLocalMatrix(const SkMatrix* preLocalMatrix, - const SkMatrix* postLocalMatrix) const { - SkTCopyOnFirstWrite<SkMatrix> m(fLocalMatrix); - - if (preLocalMatrix) { - m.writable()->preConcat(*preLocalMatrix); - } - - if (postLocalMatrix) { - m.writable()->postConcat(*postLocalMatrix); - } - - return m; -} - bool SkShaderBase::computeTotalInverse(const SkMatrix& ctm, const SkMatrix* outerLocalMatrix, SkMatrix* totalInverse) const { - return SkMatrix::Concat(ctm, *this->totalLocalMatrix(outerLocalMatrix)).invert(totalInverse); + SkMatrix total = SkMatrix::Concat(ctm, fLocalMatrix); + if (outerLocalMatrix) { + total.preConcat(*outerLocalMatrix); + } + + return total.invert(totalInverse); } bool SkShaderBase::asLuminanceColor(SkColor* colorPtr) const { |