aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkColorSpaceXformSteps.cpp
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@chromium.org>2018-05-24 15:54:59 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-05-24 20:37:18 +0000
commit4a0ad501e4919e06bcf7a7ef4adec8f28818946b (patch)
tree975dfc8409a711048acd94d73469451f88143cb1 /src/core/SkColorSpaceXformSteps.cpp
parent77418559ca0921a944007d084852408ee76273e5 (diff)
skip unpremul...premul with only linear ops between
Change-Id: I26ed83bb613a83a0fd73f2f8b868b775be1ce968 Reviewed-on: https://skia-review.googlesource.com/130121 Commit-Queue: Mike Klein <mtklein@chromium.org> Auto-Submit: Mike Klein <mtklein@chromium.org> Reviewed-by: Brian Osman <brianosman@google.com>
Diffstat (limited to 'src/core/SkColorSpaceXformSteps.cpp')
-rw-r--r--src/core/SkColorSpaceXformSteps.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/core/SkColorSpaceXformSteps.cpp b/src/core/SkColorSpaceXformSteps.cpp
index 08a59fc672..e4b465e6cf 100644
--- a/src/core/SkColorSpaceXformSteps.cpp
+++ b/src/core/SkColorSpaceXformSteps.cpp
@@ -102,4 +102,22 @@ SkColorSpaceXformSteps::SkColorSpaceXformSteps(SkColorSpace* src, SkAlphaType sr
this->linearize_src = false;
this->early_encode = false;
}
+
+ // Skip unpremul...premul if there are no non-linear operations between.
+ if ( this->early_unpremul &&
+ !this->linearize_src &&
+ !this->early_encode &&
+ this->premul)
+ {
+ this->early_unpremul = false;
+ this->premul = false;
+ }
+
+ if ( this->late_unpremul &&
+ !this->early_encode &&
+ this->premul)
+ {
+ this->late_unpremul = false;
+ this->premul = false;
+ }
}