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

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

Issue 395603002: Simplify flattening to just write enough to call the factory (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: rebase Created 6 years, 4 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
« no previous file with comments | « src/effects/SkAlphaThresholdFilter.cpp ('k') | src/effects/SkAvoidXfermode.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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"
(...skipping 29 matching lines...) Expand all
40 40
41 private: 41 private:
42 SkArithmeticMode_scalar(SkScalar k1, SkScalar k2, SkScalar k3, SkScalar k4, bool enforcePMColor) { 42 SkArithmeticMode_scalar(SkScalar k1, SkScalar k2, SkScalar k3, SkScalar k4, bool enforcePMColor) {
43 fK[0] = k1; 43 fK[0] = k1;
44 fK[1] = k2; 44 fK[1] = k2;
45 fK[2] = k3; 45 fK[2] = k3;
46 fK[3] = k4; 46 fK[3] = k4;
47 fEnforcePMColor = enforcePMColor; 47 fEnforcePMColor = enforcePMColor;
48 } 48 }
49 49
50 #ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING
50 SkArithmeticMode_scalar(SkReadBuffer& buffer) : INHERITED(buffer) { 51 SkArithmeticMode_scalar(SkReadBuffer& buffer) : INHERITED(buffer) {
51 fK[0] = buffer.readScalar(); 52 fK[0] = buffer.readScalar();
52 fK[1] = buffer.readScalar(); 53 fK[1] = buffer.readScalar();
53 fK[2] = buffer.readScalar(); 54 fK[2] = buffer.readScalar();
54 fK[3] = buffer.readScalar(); 55 fK[3] = buffer.readScalar();
55 fEnforcePMColor = buffer.readBool(); 56 fEnforcePMColor = buffer.readBool();
56 } 57 }
58 #endif
57 59
58 virtual void flatten(SkWriteBuffer& buffer) const SK_OVERRIDE { 60 virtual void flatten(SkWriteBuffer& buffer) const SK_OVERRIDE {
59 INHERITED::flatten(buffer);
60 buffer.writeScalar(fK[0]); 61 buffer.writeScalar(fK[0]);
61 buffer.writeScalar(fK[1]); 62 buffer.writeScalar(fK[1]);
62 buffer.writeScalar(fK[2]); 63 buffer.writeScalar(fK[2]);
63 buffer.writeScalar(fK[3]); 64 buffer.writeScalar(fK[3]);
64 buffer.writeBool(fEnforcePMColor); 65 buffer.writeBool(fEnforcePMColor);
65 } 66 }
66 SkScalar fK[4]; 67 SkScalar fK[4];
67 bool fEnforcePMColor; 68 bool fEnforcePMColor;
68 69
70 friend class SkArithmeticMode;
71
69 typedef SkXfermode INHERITED; 72 typedef SkXfermode INHERITED;
70 }; 73 };
71 74
75 SkFlattenable* SkArithmeticMode_scalar::CreateProc(SkReadBuffer& buffer) {
76 const SkScalar k1 = buffer.readScalar();
77 const SkScalar k2 = buffer.readScalar();
78 const SkScalar k3 = buffer.readScalar();
79 const SkScalar k4 = buffer.readScalar();
80 const bool enforcePMColor = buffer.readBool();
81 return Create(k1, k2, k3, k4, enforcePMColor);
82 }
83
72 static int pinToByte(int value) { 84 static int pinToByte(int value) {
73 if (value < 0) { 85 if (value < 0) {
74 value = 0; 86 value = 0;
75 } else if (value > 255) { 87 } else if (value > 255) {
76 value = 255; 88 value = 255;
77 } 89 }
78 return value; 90 return value;
79 } 91 }
80 92
81 static int arith(SkScalar k1, SkScalar k2, SkScalar k3, SkScalar k4, 93 static int arith(SkScalar k1, SkScalar k2, SkScalar k3, SkScalar k4,
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 background); 448 background);
437 } 449 }
438 return true; 450 return true;
439 } 451 }
440 452
441 #endif 453 #endif
442 454
443 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkArithmeticMode) 455 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkArithmeticMode)
444 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkArithmeticMode_scalar) 456 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkArithmeticMode_scalar)
445 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END 457 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END
OLDNEW
« no previous file with comments | « src/effects/SkAlphaThresholdFilter.cpp ('k') | src/effects/SkAvoidXfermode.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698