OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/proto/skia_conversions.h" | 5 #include "cc/proto/skia_conversions.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "cc/proto/gfx_conversions.h" | 8 #include "cc/proto/gfx_conversions.h" |
9 #include "cc/proto/skrrect.pb.h" | 9 #include "cc/proto/skrrect.pb.h" |
10 #include "third_party/skia/include/core/SkRRect.h" | 10 #include "third_party/skia/include/core/SkRRect.h" |
11 #include "ui/gfx/skia_util.h" | 11 #include "ui/gfx/skia_util.h" |
12 | 12 |
13 namespace cc { | 13 namespace cc { |
14 | 14 |
15 namespace { | 15 namespace { |
16 | 16 |
17 void SkPointToProto(const SkPoint& point, proto::PointF* proto) { | 17 void SkPointToProto(const SkPoint& point, proto::PointF* proto) { |
18 PointFToProto(gfx::PointF(point.x(), point.y()), proto); | 18 PointFToProto(gfx::PointF(point.x(), point.y()), proto); |
19 } | 19 } |
20 | 20 |
21 SkPoint ProtoToSkPoint(const proto::PointF& proto) { | 21 SkPoint ProtoToSkPoint(const proto::PointF& proto) { |
22 gfx::PointF point = ProtoToPointF(proto); | 22 gfx::PointF point = ProtoToPointF(proto); |
23 return SkPoint::Make(point.x(), point.y()); | 23 return SkPoint::Make(point.x(), point.y()); |
24 } | 24 } |
25 | 25 |
26 } // namespace | 26 } // namespace |
27 | 27 |
28 SkRegion::Op SkRegionOpFromProto(proto::SkRegion::Op op) { | 28 SkRegion::Op SkRegionOpFromProto(proto::SkRegion::Op op) { |
29 switch (op) { | 29 switch (op) { |
30 case proto::SkRegion::Op_Difference: | 30 case proto::SkRegion::DIFFERENCE_: |
31 return SkRegion::Op::kDifference_Op; | 31 return SkRegion::Op::kDifference_Op; |
32 case proto::SkRegion::Op_Intersect: | 32 case proto::SkRegion::INTERSECT: |
33 return SkRegion::Op::kIntersect_Op; | 33 return SkRegion::Op::kIntersect_Op; |
34 case proto::SkRegion::Op_Union: | 34 case proto::SkRegion::UNION: |
35 return SkRegion::Op::kUnion_Op; | 35 return SkRegion::Op::kUnion_Op; |
36 case proto::SkRegion::Op_XOR: | 36 case proto::SkRegion::XOR: |
37 return SkRegion::Op::kXOR_Op; | 37 return SkRegion::Op::kXOR_Op; |
38 case proto::SkRegion::Op_ReverseDifference: | 38 case proto::SkRegion::REVERSE_DIFFERENCE: |
39 return SkRegion::Op::kReverseDifference_Op; | 39 return SkRegion::Op::kReverseDifference_Op; |
40 case proto::SkRegion::Op_Replace: | 40 case proto::SkRegion::REPLACE: |
41 return SkRegion::Op::kReplace_Op; | 41 return SkRegion::Op::kReplace_Op; |
42 } | 42 } |
43 return SkRegion::Op::kDifference_Op; | 43 return SkRegion::Op::kDifference_Op; |
44 } | 44 } |
45 | 45 |
46 proto::SkRegion::Op SkRegionOpToProto(SkRegion::Op op) { | 46 proto::SkRegion::Op SkRegionOpToProto(SkRegion::Op op) { |
47 switch (op) { | 47 switch (op) { |
48 case SkRegion::Op::kDifference_Op: | 48 case SkRegion::Op::kDifference_Op: |
49 return proto::SkRegion::Op_Difference; | 49 return proto::SkRegion::DIFFERENCE_; |
50 case SkRegion::Op::kIntersect_Op: | 50 case SkRegion::Op::kIntersect_Op: |
51 return proto::SkRegion::Op_Intersect; | 51 return proto::SkRegion::INTERSECT; |
52 case SkRegion::Op::kUnion_Op: | 52 case SkRegion::Op::kUnion_Op: |
53 return proto::SkRegion::Op_Union; | 53 return proto::SkRegion::UNION; |
54 case SkRegion::Op::kXOR_Op: | 54 case SkRegion::Op::kXOR_Op: |
55 return proto::SkRegion::Op_XOR; | 55 return proto::SkRegion::XOR; |
56 case SkRegion::Op::kReverseDifference_Op: | 56 case SkRegion::Op::kReverseDifference_Op: |
57 return proto::SkRegion::Op_ReverseDifference; | 57 return proto::SkRegion::REVERSE_DIFFERENCE; |
58 case SkRegion::Op::kReplace_Op: | 58 case SkRegion::Op::kReplace_Op: |
59 return proto::SkRegion::Op_Replace; | 59 return proto::SkRegion::REPLACE; |
60 } | 60 } |
61 return proto::SkRegion::Op_Difference; | 61 return proto::SkRegion::DIFFERENCE_; |
62 } | 62 } |
63 | 63 |
64 SkXfermode::Mode SkXfermodeModeFromProto(proto::SkXfermode::Mode mode) { | 64 SkXfermode::Mode SkXfermodeModeFromProto(proto::SkXfermode::Mode mode) { |
65 switch (mode) { | 65 switch (mode) { |
66 case proto::SkXfermode::Mode_Clear: | 66 case proto::SkXfermode::CLEAR_: |
67 return SkXfermode::Mode::kClear_Mode; | 67 return SkXfermode::Mode::kClear_Mode; |
68 case proto::SkXfermode::Mode_Src: | 68 case proto::SkXfermode::SRC: |
69 return SkXfermode::Mode::kSrc_Mode; | 69 return SkXfermode::Mode::kSrc_Mode; |
70 case proto::SkXfermode::Mode_Dst: | 70 case proto::SkXfermode::DST: |
71 return SkXfermode::Mode::kDst_Mode; | 71 return SkXfermode::Mode::kDst_Mode; |
72 case proto::SkXfermode::Mode_SrcOver: | 72 case proto::SkXfermode::SRC_OVER: |
73 return SkXfermode::Mode::kSrcOver_Mode; | 73 return SkXfermode::Mode::kSrcOver_Mode; |
74 case proto::SkXfermode::Mode_DstOver: | 74 case proto::SkXfermode::DST_OVER: |
75 return SkXfermode::Mode::kDstOver_Mode; | 75 return SkXfermode::Mode::kDstOver_Mode; |
76 case proto::SkXfermode::Mode_SrcIn: | 76 case proto::SkXfermode::SRC_IN: |
77 return SkXfermode::Mode::kSrcIn_Mode; | 77 return SkXfermode::Mode::kSrcIn_Mode; |
78 case proto::SkXfermode::Mode_DstIn: | 78 case proto::SkXfermode::DST_IN: |
79 return SkXfermode::Mode::kDstIn_Mode; | 79 return SkXfermode::Mode::kDstIn_Mode; |
80 case proto::SkXfermode::Mode_SrcOut: | 80 case proto::SkXfermode::SRC_OUT: |
81 return SkXfermode::Mode::kSrcOut_Mode; | 81 return SkXfermode::Mode::kSrcOut_Mode; |
82 case proto::SkXfermode::Mode_DstOut: | 82 case proto::SkXfermode::DST_OUT: |
83 return SkXfermode::Mode::kDstOut_Mode; | 83 return SkXfermode::Mode::kDstOut_Mode; |
84 case proto::SkXfermode::Mode_SrcATop: | 84 case proto::SkXfermode::SRC_A_TOP: |
85 return SkXfermode::Mode::kSrcATop_Mode; | 85 return SkXfermode::Mode::kSrcATop_Mode; |
86 case proto::SkXfermode::Mode_DstATop: | 86 case proto::SkXfermode::DST_A_TOP: |
87 return SkXfermode::Mode::kDstATop_Mode; | 87 return SkXfermode::Mode::kDstATop_Mode; |
88 case proto::SkXfermode::Mode_XOR: | 88 case proto::SkXfermode::XOR: |
89 return SkXfermode::Mode::kXor_Mode; | 89 return SkXfermode::Mode::kXor_Mode; |
90 case proto::SkXfermode::Mode_Plus: | 90 case proto::SkXfermode::PLUS: |
91 return SkXfermode::Mode::kPlus_Mode; | 91 return SkXfermode::Mode::kPlus_Mode; |
92 case proto::SkXfermode::Mode_Modulate: | 92 case proto::SkXfermode::MODULATE: |
93 return SkXfermode::Mode::kModulate_Mode; | 93 return SkXfermode::Mode::kModulate_Mode; |
94 case proto::SkXfermode::Mode_Screen: | 94 case proto::SkXfermode::SCREEN: |
95 return SkXfermode::Mode::kScreen_Mode; | 95 return SkXfermode::Mode::kScreen_Mode; |
96 case proto::SkXfermode::Mode_Overlay: | 96 case proto::SkXfermode::OVERLAY: |
97 return SkXfermode::Mode::kOverlay_Mode; | 97 return SkXfermode::Mode::kOverlay_Mode; |
98 case proto::SkXfermode::Mode_Darken: | 98 case proto::SkXfermode::DARKEN: |
99 return SkXfermode::Mode::kDarken_Mode; | 99 return SkXfermode::Mode::kDarken_Mode; |
100 case proto::SkXfermode::Mode_Lighten: | 100 case proto::SkXfermode::LIGHTEN: |
101 return SkXfermode::Mode::kLighten_Mode; | 101 return SkXfermode::Mode::kLighten_Mode; |
102 case proto::SkXfermode::Mode_ColorDodge: | 102 case proto::SkXfermode::COLOR_DODGE: |
103 return SkXfermode::Mode::kColorDodge_Mode; | 103 return SkXfermode::Mode::kColorDodge_Mode; |
104 case proto::SkXfermode::Mode_ColorBurn: | 104 case proto::SkXfermode::COLOR_BURN: |
105 return SkXfermode::Mode::kColorBurn_Mode; | 105 return SkXfermode::Mode::kColorBurn_Mode; |
106 case proto::SkXfermode::Mode_HardLight: | 106 case proto::SkXfermode::HARD_LIGHT: |
107 return SkXfermode::Mode::kHardLight_Mode; | 107 return SkXfermode::Mode::kHardLight_Mode; |
108 case proto::SkXfermode::Mode_SoftLight: | 108 case proto::SkXfermode::SOFT_LIGHT: |
109 return SkXfermode::Mode::kSoftLight_Mode; | 109 return SkXfermode::Mode::kSoftLight_Mode; |
110 case proto::SkXfermode::Mode_Difference: | 110 case proto::SkXfermode::DIFFERENCE_: |
111 return SkXfermode::Mode::kDifference_Mode; | 111 return SkXfermode::Mode::kDifference_Mode; |
112 case proto::SkXfermode::Mode_Exclusion: | 112 case proto::SkXfermode::EXCLUSION: |
113 return SkXfermode::Mode::kExclusion_Mode; | 113 return SkXfermode::Mode::kExclusion_Mode; |
114 case proto::SkXfermode::Mode_Multiply: | 114 case proto::SkXfermode::MULTIPLY: |
115 return SkXfermode::Mode::kMultiply_Mode; | 115 return SkXfermode::Mode::kMultiply_Mode; |
116 case proto::SkXfermode::Mode_Hue: | 116 case proto::SkXfermode::HUE: |
117 return SkXfermode::Mode::kHue_Mode; | 117 return SkXfermode::Mode::kHue_Mode; |
118 case proto::SkXfermode::Mode_Saturation: | 118 case proto::SkXfermode::SATURATION: |
119 return SkXfermode::Mode::kSaturation_Mode; | 119 return SkXfermode::Mode::kSaturation_Mode; |
120 case proto::SkXfermode::Mode_Color: | 120 case proto::SkXfermode::COLOR: |
121 return SkXfermode::Mode::kColor_Mode; | 121 return SkXfermode::Mode::kColor_Mode; |
122 case proto::SkXfermode::Mode_Luminosity: | 122 case proto::SkXfermode::LUMINOSITY: |
123 return SkXfermode::Mode::kLuminosity_Mode; | 123 return SkXfermode::Mode::kLuminosity_Mode; |
124 } | 124 } |
125 return SkXfermode::Mode::kClear_Mode; | 125 return SkXfermode::Mode::kClear_Mode; |
126 } | 126 } |
127 | 127 |
128 proto::SkXfermode::Mode SkXfermodeModeToProto(SkXfermode::Mode mode) { | 128 proto::SkXfermode::Mode SkXfermodeModeToProto(SkXfermode::Mode mode) { |
129 switch (mode) { | 129 switch (mode) { |
130 case SkXfermode::Mode::kClear_Mode: | 130 case SkXfermode::Mode::kClear_Mode: |
131 return proto::SkXfermode::Mode_Clear; | 131 return proto::SkXfermode::CLEAR_; |
132 case SkXfermode::Mode::kSrc_Mode: | 132 case SkXfermode::Mode::kSrc_Mode: |
133 return proto::SkXfermode::Mode_Src; | 133 return proto::SkXfermode::SRC; |
134 case SkXfermode::Mode::kDst_Mode: | 134 case SkXfermode::Mode::kDst_Mode: |
135 return proto::SkXfermode::Mode_Dst; | 135 return proto::SkXfermode::DST; |
136 case SkXfermode::Mode::kSrcOver_Mode: | 136 case SkXfermode::Mode::kSrcOver_Mode: |
137 return proto::SkXfermode::Mode_SrcOver; | 137 return proto::SkXfermode::SRC_OVER; |
138 case SkXfermode::Mode::kDstOver_Mode: | 138 case SkXfermode::Mode::kDstOver_Mode: |
139 return proto::SkXfermode::Mode_DstOver; | 139 return proto::SkXfermode::DST_OVER; |
140 case SkXfermode::Mode::kSrcIn_Mode: | 140 case SkXfermode::Mode::kSrcIn_Mode: |
141 return proto::SkXfermode::Mode_SrcIn; | 141 return proto::SkXfermode::SRC_IN; |
142 case SkXfermode::Mode::kDstIn_Mode: | 142 case SkXfermode::Mode::kDstIn_Mode: |
143 return proto::SkXfermode::Mode_DstIn; | 143 return proto::SkXfermode::DST_IN; |
144 case SkXfermode::Mode::kSrcOut_Mode: | 144 case SkXfermode::Mode::kSrcOut_Mode: |
145 return proto::SkXfermode::Mode_SrcOut; | 145 return proto::SkXfermode::SRC_OUT; |
146 case SkXfermode::Mode::kDstOut_Mode: | 146 case SkXfermode::Mode::kDstOut_Mode: |
147 return proto::SkXfermode::Mode_DstOut; | 147 return proto::SkXfermode::DST_OUT; |
148 case SkXfermode::Mode::kSrcATop_Mode: | 148 case SkXfermode::Mode::kSrcATop_Mode: |
149 return proto::SkXfermode::Mode_SrcATop; | 149 return proto::SkXfermode::SRC_A_TOP; |
150 case SkXfermode::Mode::kDstATop_Mode: | 150 case SkXfermode::Mode::kDstATop_Mode: |
151 return proto::SkXfermode::Mode_DstATop; | 151 return proto::SkXfermode::DST_A_TOP; |
152 case SkXfermode::Mode::kXor_Mode: | 152 case SkXfermode::Mode::kXor_Mode: |
153 return proto::SkXfermode::Mode_XOR; | 153 return proto::SkXfermode::XOR; |
154 case SkXfermode::Mode::kPlus_Mode: | 154 case SkXfermode::Mode::kPlus_Mode: |
155 return proto::SkXfermode::Mode_Plus; | 155 return proto::SkXfermode::PLUS; |
156 case SkXfermode::Mode::kModulate_Mode: | 156 case SkXfermode::Mode::kModulate_Mode: |
157 return proto::SkXfermode::Mode_Modulate; | 157 return proto::SkXfermode::MODULATE; |
158 case SkXfermode::Mode::kScreen_Mode: | 158 case SkXfermode::Mode::kScreen_Mode: |
159 return proto::SkXfermode::Mode_Screen; | 159 return proto::SkXfermode::SCREEN; |
160 case SkXfermode::Mode::kOverlay_Mode: | 160 case SkXfermode::Mode::kOverlay_Mode: |
161 return proto::SkXfermode::Mode_Overlay; | 161 return proto::SkXfermode::OVERLAY; |
162 case SkXfermode::Mode::kDarken_Mode: | 162 case SkXfermode::Mode::kDarken_Mode: |
163 return proto::SkXfermode::Mode_Darken; | 163 return proto::SkXfermode::DARKEN; |
164 case SkXfermode::Mode::kLighten_Mode: | 164 case SkXfermode::Mode::kLighten_Mode: |
165 return proto::SkXfermode::Mode_Lighten; | 165 return proto::SkXfermode::LIGHTEN; |
166 case SkXfermode::Mode::kColorDodge_Mode: | 166 case SkXfermode::Mode::kColorDodge_Mode: |
167 return proto::SkXfermode::Mode_ColorDodge; | 167 return proto::SkXfermode::COLOR_DODGE; |
168 case SkXfermode::Mode::kColorBurn_Mode: | 168 case SkXfermode::Mode::kColorBurn_Mode: |
169 return proto::SkXfermode::Mode_ColorBurn; | 169 return proto::SkXfermode::COLOR_BURN; |
170 case SkXfermode::Mode::kHardLight_Mode: | 170 case SkXfermode::Mode::kHardLight_Mode: |
171 return proto::SkXfermode::Mode_HardLight; | 171 return proto::SkXfermode::HARD_LIGHT; |
172 case SkXfermode::Mode::kSoftLight_Mode: | 172 case SkXfermode::Mode::kSoftLight_Mode: |
173 return proto::SkXfermode::Mode_SoftLight; | 173 return proto::SkXfermode::SOFT_LIGHT; |
174 case SkXfermode::Mode::kDifference_Mode: | 174 case SkXfermode::Mode::kDifference_Mode: |
175 return proto::SkXfermode::Mode_Difference; | 175 return proto::SkXfermode::DIFFERENCE_; |
176 case SkXfermode::Mode::kExclusion_Mode: | 176 case SkXfermode::Mode::kExclusion_Mode: |
177 return proto::SkXfermode::Mode_Exclusion; | 177 return proto::SkXfermode::EXCLUSION; |
178 case SkXfermode::Mode::kMultiply_Mode: | 178 case SkXfermode::Mode::kMultiply_Mode: |
179 return proto::SkXfermode::Mode_Multiply; | 179 return proto::SkXfermode::MULTIPLY; |
180 case SkXfermode::Mode::kHue_Mode: | 180 case SkXfermode::Mode::kHue_Mode: |
181 return proto::SkXfermode::Mode_Hue; | 181 return proto::SkXfermode::HUE; |
182 case SkXfermode::Mode::kSaturation_Mode: | 182 case SkXfermode::Mode::kSaturation_Mode: |
183 return proto::SkXfermode::Mode_Saturation; | 183 return proto::SkXfermode::SATURATION; |
184 case SkXfermode::Mode::kColor_Mode: | 184 case SkXfermode::Mode::kColor_Mode: |
185 return proto::SkXfermode::Mode_Color; | 185 return proto::SkXfermode::COLOR; |
186 case SkXfermode::Mode::kLuminosity_Mode: | 186 case SkXfermode::Mode::kLuminosity_Mode: |
187 return proto::SkXfermode::Mode_Luminosity; | 187 return proto::SkXfermode::LUMINOSITY; |
188 } | 188 } |
189 return proto::SkXfermode::Mode_Clear; | 189 return proto::SkXfermode::CLEAR_; |
190 } | 190 } |
191 | 191 |
192 void SkRRectToProto(const SkRRect& rect, proto::SkRRect* proto) { | 192 void SkRRectToProto(const SkRRect& rect, proto::SkRRect* proto) { |
193 RectFToProto(gfx::SkRectToRectF(rect.rect()), proto->mutable_rect()); | 193 RectFToProto(gfx::SkRectToRectF(rect.rect()), proto->mutable_rect()); |
194 | 194 |
195 SkPointToProto(rect.radii(SkRRect::kUpperLeft_Corner), | 195 SkPointToProto(rect.radii(SkRRect::kUpperLeft_Corner), |
196 proto->mutable_radii_upper_left()); | 196 proto->mutable_radii_upper_left()); |
197 SkPointToProto(rect.radii(SkRRect::kUpperRight_Corner), | 197 SkPointToProto(rect.radii(SkRRect::kUpperRight_Corner), |
198 proto->mutable_radii_upper_right()); | 198 proto->mutable_radii_upper_right()); |
199 SkPointToProto(rect.radii(SkRRect::kLowerRight_Corner), | 199 SkPointToProto(rect.radii(SkRRect::kLowerRight_Corner), |
(...skipping 12 matching lines...) Expand all Loading... |
212 parsed_radii[SkRRect::kLowerRight_Corner] = | 212 parsed_radii[SkRRect::kLowerRight_Corner] = |
213 ProtoToSkPoint(proto.radii_lower_right()); | 213 ProtoToSkPoint(proto.radii_lower_right()); |
214 parsed_radii[SkRRect::kLowerLeft_Corner] = | 214 parsed_radii[SkRRect::kLowerLeft_Corner] = |
215 ProtoToSkPoint(proto.radii_lower_left()); | 215 ProtoToSkPoint(proto.radii_lower_left()); |
216 SkRRect rect; | 216 SkRRect rect; |
217 rect.setRectRadii(parsed_rect, parsed_radii); | 217 rect.setRectRadii(parsed_rect, parsed_radii); |
218 return rect; | 218 return rect; |
219 } | 219 } |
220 | 220 |
221 } // namespace cc | 221 } // namespace cc |
OLD | NEW |