| /* | |
| * Copyright 2011 Google Inc. | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #ifndef SkArithmeticMode_DEFINED | |
| #define SkArithmeticMode_DEFINED | |
| #include "SkFlattenable.h" | |
| #include "SkScalar.h" | |
| class SkXfermode; | |
| class SK_API SkArithmeticMode { | |
| public: | |
| /** | |
| * result = clamp[k1 * src * dst + k2 * src + k3 * dst + k4] | |
| * | |
| * src and dst are treated as being [0.0 .. 1.0]. The polynomial is | |
| * evaluated on their unpremultiplied components. | |
| * | |
| * k1=k2=k3=0, k4=1.0 results in returning opaque white | |
| * k1=k3=k4=0, k2=1.0 results in returning the src | |
| * k1=k2=k4=0, k3=1.0 results in returning the dst | |
| */ | |
| static SkXfermode* Create(SkScalar k1, SkScalar k2, | |
| SkScalar k3, SkScalar k4, | |
| bool enforcePMColor = true); | |
| SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP(); | |
| private: | |
| SkArithmeticMode(); // can't be instantiated | |
| }; | |
| #endif |