aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Matt Sarett <msarett@google.com>2017-04-12 15:50:08 +0000
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-04-12 15:53:47 +0000
commit719528ab4788affcd3c5a712d4f0b67a2c1c5e07 (patch)
tree3ff33da1fd7189f52ad9e704428eb5c700d330e5 /src
parente5fec217878e954483e023098e044cbe11ef0175 (diff)
Revert "Revert "SkColorSpaceXformer: Preserve local matrix on shaders""
This reverts commit a50a11c17ed9037d3e60d8319727583dba803cec. Reason for revert: <INSERT REASONING HERE> Original change's description: > Revert "SkColorSpaceXformer: Preserve local matrix on shaders" > > This reverts commit 5d884b562828ceb13ccacb71bc4581d2020e62bb. > > Reason for revert: Wrong thing to revert > > Original change's description: > > SkColorSpaceXformer: Preserve local matrix on shaders > > > > Also, do not drop unknown shaders. > > > > Fixes cts tests. > > > > b/37161109 > > b/37237678 > > > > Bug: skia: > > Change-Id: I0fd817a4d6461ede0ccdcb8f3cccb255b646b864 > > Reviewed-on: https://skia-review.googlesource.com/13246 > > Commit-Queue: Matt Sarett <msarett@google.com> > > Commit-Queue: Mike Klein <mtklein@chromium.org> > > Reviewed-by: Mike Klein <mtklein@chromium.org> > > > > TBR=mtklein@chromium.org,mtklein@google.com,msarett@google.com,reviews@skia.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > > Change-Id: I34e02785ac43a04f8452c458680ea1d6518818a6 > Reviewed-on: https://skia-review.googlesource.com/13258 > Reviewed-by: Matt Sarett <msarett@google.com> > Commit-Queue: Matt Sarett <msarett@google.com> > TBR=mtklein@chromium.org,mtklein@google.com,msarett@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I2dfac7d41caf0e32d3bb5f3f330fff4970c0545e Reviewed-on: https://skia-review.googlesource.com/13260 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/core/SkColorSpaceXformer.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/core/SkColorSpaceXformer.cpp b/src/core/SkColorSpaceXformer.cpp
index 38e717de0d..fe66e74c79 100644
--- a/src/core/SkColorSpaceXformer.cpp
+++ b/src/core/SkColorSpaceXformer.cpp
@@ -71,7 +71,8 @@ SkColor SkColorSpaceXformer::apply(SkColor srgb) {
sk_sp<SkShader> SkColorSpaceXformer::apply(const SkShader* shader) {
SkColor color;
if (shader->isConstant() && shader->asLuminanceColor(&color)) {
- return SkShader::MakeColorShader(this->apply(color));
+ return SkShader::MakeColorShader(this->apply(color))
+ ->makeWithLocalMatrix(shader->getLocalMatrix());
}
SkShader::TileMode xy[2];
@@ -85,7 +86,8 @@ sk_sp<SkShader> SkColorSpaceXformer::apply(const SkShader* shader) {
auto A = this->apply(compose.fShaderA),
B = this->apply(compose.fShaderB);
if (A && B) {
- return SkShader::MakeComposeShader(std::move(A), std::move(B), compose.fBlendMode);
+ return SkShader::MakeComposeShader(std::move(A), std::move(B), compose.fBlendMode)
+ ->makeWithLocalMatrix(shader->getLocalMatrix());
}
}
@@ -147,7 +149,7 @@ sk_sp<SkShader> SkColorSpaceXformer::apply(const SkShader* shader) {
}
}
- return nullptr;
+ return sk_ref_sp(const_cast<SkShader*>(shader));
}
const SkPaint& SkColorSpaceXformer::apply(const SkPaint& src) {