Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(196)

Unified Diff: src/effects/SkArithmeticMode.cpp

Issue 1585813004: SkValue: SkXfermode (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: response, also dump Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698