diff options
author | Mike Klein <mtklein@chromium.org> | 2017-05-09 11:52:35 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-05-09 17:46:29 +0000 |
commit | 6dfcecad33c949e775a3fd0a58637721ab5e295e (patch) | |
tree | 79c46a7a355ff9fd7ebc91dd4423e56a055c208f /include/core/SkColorFilter.h | |
parent | 2a55c8ef495b5fd501a3dee7c199c9064ab7e6bc (diff) |
Make SkColorFilter::appendStages() not fail.
This makes SkColorFilter::appendStages() first try onAppendStages(),
and if it's unimplemented or fails, fall back to filterSpan4f().
This also makes onAppendStages() private to try to ensure that
appendStages() is now its only caller, ensuring everyone goes
through this fallback path.
The fallback uses the color filter transformed into the dst colorspace
using our new SkColorSpaceXformer... that seem ok Matt?
Change-Id: I4751a6859596fa4f7e844e69ef0d986f005b52c7
Reviewed-on: https://skia-review.googlesource.com/16031
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'include/core/SkColorFilter.h')
-rw-r--r-- | include/core/SkColorFilter.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/include/core/SkColorFilter.h b/include/core/SkColorFilter.h index 5845573c42..16375499e5 100644 --- a/include/core/SkColorFilter.h +++ b/include/core/SkColorFilter.h @@ -74,8 +74,7 @@ public: virtual void filterSpan4f(const SkPM4f src[], int count, SkPM4f result[]) const = 0; - bool appendStages(SkRasterPipeline*, SkColorSpace*, SkArenaAlloc*, - bool shaderIsOpaque) const; + void appendStages(SkRasterPipeline*, SkColorSpace*, SkArenaAlloc*, bool shaderIsOpaque) const; enum Flags { /** If set the filter methods will not change the alpha channel of the colors. @@ -161,9 +160,6 @@ public: protected: SkColorFilter() {} - virtual bool onAppendStages(SkRasterPipeline*, SkColorSpace*, SkArenaAlloc*, - bool shaderIsOpaque) const; - sk_sp<SkColorFilter> makeColorSpace(SkColorSpaceXformer* xformer) const { return this->onMakeColorSpace(xformer); } @@ -189,6 +185,10 @@ private: return false; } + virtual bool onAppendStages(SkRasterPipeline*, SkColorSpace*, SkArenaAlloc*, + bool shaderIsOpaque) const; + + friend class SkColorSpaceXformer; friend class SkComposeColorFilter; |