/* * 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); const SkPaint* apply(const SkPaint* src); const SkPaint& apply(const SkPaint& src); void apply(SkColor dst[], const SkColor src[], int n); private: SkColor apply(SkColor srgb); sk_sp apply(const SkShader* shader); SkColorSpaceXformer() {} sk_sp fDst; std::unique_ptr fFromSRGB; SkPaint fDstPaint; }; #endif