| Index: src/effects/SkArithmeticMode.cpp
|
| diff --git a/src/effects/SkArithmeticMode.cpp b/src/effects/SkArithmeticMode.cpp
|
| index 87af82efdbc6d51a1c014c1f8cbfdd9c37012014..8a0c429509bc047d5906ffa9907e18e4e4a43dc7 100644
|
| --- a/src/effects/SkArithmeticMode.cpp
|
| +++ b/src/effects/SkArithmeticMode.cpp
|
| @@ -11,12 +11,21 @@
|
| #include "SkWriteBuffer.h"
|
| #include "SkString.h"
|
| #include "SkUnPreMultiply.h"
|
| +#include "SkValue.h"
|
| #if SK_SUPPORT_GPU
|
| #include "SkArithmeticMode_gpu.h"
|
| #endif
|
|
|
| static const bool gUseUnpremul = false;
|
|
|
| +enum {
|
| + ArithmeticXfermode_K0,
|
| + ArithmeticXfermode_K1,
|
| + ArithmeticXfermode_K2,
|
| + ArithmeticXfermode_K3,
|
| + ArithmeticXfermode_EnforcePMColor
|
| +};
|
| +
|
| class SkArithmeticMode_scalar : public SkXfermode {
|
| public:
|
| static SkArithmeticMode_scalar* Create(SkScalar k1, SkScalar k2, SkScalar k3, SkScalar k4,
|
| @@ -37,6 +46,18 @@ public:
|
| bool asXPFactory(GrXPFactory**) const override;
|
| #endif
|
|
|
| +
|
| + SkValue asValue() const override {
|
| + auto value = SkValue::Object(SkValue::ArithmeticXfermode);
|
| + value.set(ArithmeticXfermode_K0, SkValue::FromF32(fK[0]));
|
| + value.set(ArithmeticXfermode_K1, SkValue::FromF32(fK[1]));
|
| + value.set(ArithmeticXfermode_K2, SkValue::FromF32(fK[2]));
|
| + value.set(ArithmeticXfermode_K3, SkValue::FromF32(fK[3]));
|
| + value.set(ArithmeticXfermode_EnforcePMColor,
|
| + SkValue::FromS32(fEnforcePMColor ? 1 : 0));
|
| + return value;
|
| + }
|
| +
|
| private:
|
| SkArithmeticMode_scalar(SkScalar k1, SkScalar k2, SkScalar k3, SkScalar k4, bool enforcePMColor) {
|
| fK[0] = k1;
|
|
|