diff options
author | Mike Klein <mtklein@chromium.org> | 2017-05-04 12:42:52 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-05-08 15:24:01 +0000 |
commit | bb33833ed25c30007e4ea3cd3de6df728407f94e (patch) | |
tree | f4d3df11e408b8131c9472a7499dcc6de6c12801 /src/core/SkModeColorFilter.cpp | |
parent | 05814de6ba5087ad71f189d6413246ef1d518e4b (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.cpp | 6 |
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; } |