From 9444bdd32b4a3dcd1c5ac4099adade1b5ba167b7 Mon Sep 17 00:00:00 2001 From: Mike Reed Date: Fri, 5 May 2017 12:23:42 -0400 Subject: composecolorfilter can now append stages Bug: skia: Change-Id: I46b54e5fd09de16b467142a5501b226273182d52 Reviewed-on: https://skia-review.googlesource.com/15615 Reviewed-by: Mike Klein Commit-Queue: Mike Reed --- src/core/SkColorFilter.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src') diff --git a/src/core/SkColorFilter.cpp b/src/core/SkColorFilter.cpp index 166d772668..6dcee068ea 100644 --- a/src/core/SkColorFilter.cpp +++ b/src/core/SkColorFilter.cpp @@ -102,6 +102,16 @@ public: } #endif + bool onAppendStages(SkRasterPipeline* p, SkColorSpace* dst, SkArenaAlloc* scratch, + bool shaderIsOpaque) const override { + bool innerIsOpaque = shaderIsOpaque; + if (!(fInner->getFlags() & kAlphaUnchanged_Flag)) { + innerIsOpaque = false; + } + return fInner->appendStages(p, dst, scratch, shaderIsOpaque) && + fOuter->appendStages(p, dst, scratch, innerIsOpaque); + } + #if SK_SUPPORT_GPU sk_sp asFragmentProcessor(GrContext* context, SkColorSpace* dstColorSpace) const override { -- cgit v1.2.3