/* * Copyright 2017 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkColorSpaceXformer_DEFINED #define SkColorSpaceXformer_DEFINED #include "SkColorSpaceXform.h" #include "SkImage.h" #include "SkShader.h" class SkColorSpaceXformer : public SkNoncopyable { public: static std::unique_ptr Make(sk_sp dst); sk_sp apply(const SkImage* src); sk_sp apply(const SkBitmap& bitmap); sk_sp apply(const SkColorFilter* filter); const SkPaint* apply(const SkPaint* src); const SkPaint& apply(const SkPaint& src); void apply(SkColor dst[], const SkColor src[], int n); SkColor apply(SkColor srgb); sk_sp dst() const { return fDst; } private: SkColorSpaceXformer() {} sk_sp fDst; std::unique_ptr fFromSRGB; SkPaint fDstPaint; }; #endif