diff options
author | Brian Osman <brianosman@google.com> | 2017-01-26 09:32:33 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-01-26 15:27:49 +0000 |
commit | 964dec3948721808491b21b4ff4ff41a466443ec (patch) | |
tree | 57e3d48e97aecafc872a9cce6285e9edea775cf8 /tools/sk_tool_utils.cpp | |
parent | d6016013bdf843013f7fb8648fc5a64ce7e77005 (diff) |
Move SkGammaColorFilter to tools, limit to sRGB
Similarly, limit GrGammaEffect to sRGB (and rename it).
BUG=skia:
Change-Id: I88feef11ab7040bca2fa4c2eed71923ded87a0d0
Reviewed-on: https://skia-review.googlesource.com/7375
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'tools/sk_tool_utils.cpp')
-rw-r--r-- | tools/sk_tool_utils.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tools/sk_tool_utils.cpp b/tools/sk_tool_utils.cpp index 93f5b107f2..0383897bd8 100644 --- a/tools/sk_tool_utils.cpp +++ b/tools/sk_tool_utils.cpp @@ -22,6 +22,38 @@ DEFINE_bool(portableFonts, false, "Use portable fonts"); +#if SK_SUPPORT_GPU +#include "effects/GrSRGBEffect.h" +#include "SkColorFilter.h" + +// Color filter that just wraps GrSRGBEffect +class SkSRGBColorFilter : public SkColorFilter { +public: + static sk_sp<SkColorFilter> Make(GrSRGBEffect::Mode mode) { + return sk_sp<SkColorFilter>(new SkSRGBColorFilter(mode)); + } + + sk_sp<GrFragmentProcessor> asFragmentProcessor(GrContext*, SkColorSpace*) const override { + return GrSRGBEffect::Make(fMode); + } + + void filterSpan(const SkPMColor src[], int count, SkPMColor dst[]) const override { + SK_ABORT("SkSRGBColorFilter is only implemented for GPU"); + } + Factory getFactory() const override { return nullptr; } + +#ifndef SK_IGNORE_TO_STRING + void toString(SkString* str) const override {} +#endif + +private: + SkSRGBColorFilter(GrSRGBEffect::Mode mode) : fMode(mode) {} + + GrSRGBEffect::Mode fMode; + typedef SkColorFilter INHERITED; +}; +#endif + namespace sk_tool_utils { /* these are the default fonts chosen by Chrome for serif, sans-serif, and monospace */ @@ -586,4 +618,14 @@ void copy_to_g8(SkBitmap* dst, const SkBitmap& src) { } } +#if SK_SUPPORT_GPU +sk_sp<SkColorFilter> MakeLinearToSRGBColorFilter() { + return SkSRGBColorFilter::Make(GrSRGBEffect::Mode::kLinearToSRGB); +} + +sk_sp<SkColorFilter> MakeSRGBToLinearColorFilter() { + return SkSRGBColorFilter::Make(GrSRGBEffect::Mode::kSRGBToLinear); +} +#endif + } // namespace sk_tool_utils |