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

Side by Side Diff: src/effects/SkArithmeticMode.cpp

Issue 1585813004: SkValue: SkXfermode (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: 2016-01-14 (Thursday) 16:27:56 EST 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SkArithmeticMode.h" 8 #include "SkArithmeticMode.h"
9 #include "SkColorPriv.h" 9 #include "SkColorPriv.h"
10 #include "SkReadBuffer.h" 10 #include "SkReadBuffer.h"
11 #include "SkWriteBuffer.h" 11 #include "SkWriteBuffer.h"
12 #include "SkString.h" 12 #include "SkString.h"
13 #include "SkUnPreMultiply.h" 13 #include "SkUnPreMultiply.h"
14 #include "SkValueKeys.h"
14 #if SK_SUPPORT_GPU 15 #if SK_SUPPORT_GPU
15 #include "SkArithmeticMode_gpu.h" 16 #include "SkArithmeticMode_gpu.h"
16 #endif 17 #endif
17 18
18 static const bool gUseUnpremul = false; 19 static const bool gUseUnpremul = false;
19 20
20 class SkArithmeticMode_scalar : public SkXfermode { 21 class SkArithmeticMode_scalar : public SkXfermode {
21 public: 22 public:
22 static SkArithmeticMode_scalar* Create(SkScalar k1, SkScalar k2, SkScalar k3 , SkScalar k4, 23 static SkArithmeticMode_scalar* Create(SkScalar k1, SkScalar k2, SkScalar k3 , SkScalar k4,
23 bool enforcePMColor) { 24 bool enforcePMColor) {
24 return new SkArithmeticMode_scalar(k1, k2, k3, k4, enforcePMColor); 25 return new SkArithmeticMode_scalar(k1, k2, k3, k4, enforcePMColor);
25 } 26 }
26 27
27 virtual void xfer32(SkPMColor dst[], const SkPMColor src[], int count, 28 virtual void xfer32(SkPMColor dst[], const SkPMColor src[], int count,
28 const SkAlpha aa[]) const override; 29 const SkAlpha aa[]) const override;
29 30
30 SK_TO_STRING_OVERRIDE() 31 SK_TO_STRING_OVERRIDE()
31 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkArithmeticMode_scalar) 32 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkArithmeticMode_scalar)
32 33
33 #if SK_SUPPORT_GPU 34 #if SK_SUPPORT_GPU
34 bool asFragmentProcessor(const GrFragmentProcessor**, 35 bool asFragmentProcessor(const GrFragmentProcessor**,
35 const GrFragmentProcessor* dst) const override; 36 const GrFragmentProcessor* dst) const override;
36 37
37 bool asXPFactory(GrXPFactory**) const override; 38 bool asXPFactory(GrXPFactory**) const override;
38 #endif 39 #endif
39 40
41 SkValue represent() const override {
mtklein 2016/01/14 22:58:28 I don't yet see a need for key enums to be visible
hal.canary 2016/01/14 23:43:10 done.
42 auto value = SkValue::Object(SkValue::ArithmeticXfermode);
43 value.set(SkValueKeys::ArithmeticXfermode_K0, SkValue::FromF32(fK[0]));
44 value.set(SkValueKeys::ArithmeticXfermode_K1, SkValue::FromF32(fK[1]));
45 value.set(SkValueKeys::ArithmeticXfermode_K2, SkValue::FromF32(fK[2]));
46 value.set(SkValueKeys::ArithmeticXfermode_K3, SkValue::FromF32(fK[3]));
47 value.set(SkValueKeys::ArithmeticXfermode_EnforcePMColor,
48 SkValue::FromS32(fEnforcePMColor ? 1 : 0));
49 return value;
50 }
51
40 private: 52 private:
41 SkArithmeticMode_scalar(SkScalar k1, SkScalar k2, SkScalar k3, SkScalar k4, bool enforcePMColor) { 53 SkArithmeticMode_scalar(SkScalar k1, SkScalar k2, SkScalar k3, SkScalar k4, bool enforcePMColor) {
42 fK[0] = k1; 54 fK[0] = k1;
43 fK[1] = k2; 55 fK[1] = k2;
44 fK[2] = k3; 56 fK[2] = k3;
45 fK[3] = k4; 57 fK[3] = k4;
46 fEnforcePMColor = enforcePMColor; 58 fEnforcePMColor = enforcePMColor;
47 } 59 }
48 60
49 void flatten(SkWriteBuffer& buffer) const override { 61 void flatten(SkWriteBuffer& buffer) const override {
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 fEnforcePMColor); 269 fEnforcePMColor);
258 } 270 }
259 return true; 271 return true;
260 } 272 }
261 273
262 #endif 274 #endif
263 275
264 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkArithmeticMode) 276 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkArithmeticMode)
265 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkArithmeticMode_scalar) 277 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkArithmeticMode_scalar)
266 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END 278 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698