aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkModeColorFilter.cpp
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@chromium.org>2017-05-04 12:42:52 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-05-08 15:24:01 +0000
commitbb33833ed25c30007e4ea3cd3de6df728407f94e (patch)
treef4d3df11e408b8131c9472a7499dcc6de6c12801 /src/core/SkModeColorFilter.cpp
parent05814de6ba5087ad71f189d6413246ef1d518e4b (diff)
jumper, finish blend modes
I've decided to ignore our existing CPU implementations and start from scratch, mostly referencing the GL ES 3.2 spec and w3 spec. This implementation ought to look a lot like the reference implementation I've written in gm/hsl.cpp, with the addition of handling alpha: unpremul, blend, re-premul with a simple SrcOver alpha. Change-Id: I38cf6be2dc66a6f46d7b18b91847f6933d2fab62 Reviewed-on: https://skia-review.googlesource.com/15316 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'src/core/SkModeColorFilter.cpp')
-rw-r--r--src/core/SkModeColorFilter.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/core/SkModeColorFilter.cpp b/src/core/SkModeColorFilter.cpp
index a5ec5e08ac..33d7977592 100644
--- a/src/core/SkModeColorFilter.cpp
+++ b/src/core/SkModeColorFilter.cpp
@@ -98,10 +98,10 @@ bool SkModeColorFilter::onAppendStages(SkRasterPipeline* p,
p->append(SkRasterPipeline::move_src_dst);
p->append(SkRasterPipeline::constant_color, color);
auto mode = (SkBlendMode)fMode;
- if (!SkBlendMode_AppendStages(mode, p)) {
- return false;
+ SkBlendMode_AppendStages(mode, p);
+ if (SkBlendMode_CanOverflow(mode)) {
+ p->append(SkRasterPipeline::clamp_a);
}
- if (SkBlendMode_CanOverflow(mode)) { p->append(SkRasterPipeline::clamp_a); }
return true;
}