aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/shaders/SkShader.cpp
diff options
context:
space:
mode:
authorGravatar Robert Phillips <robertphillips@google.com>2018-04-11 12:38:41 +0000
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-04-11 12:38:47 +0000
commitc64ee20e135a336ed775ccb6dec8a87efd19ec02 (patch)
tree661c8d0d3ee64ff31b45548758e3c1dfe4abc81d /src/shaders/SkShader.cpp
parent90f09e7853f506808b7dad5c50b60376887277a4 (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.cpp23
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 {