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

Side by Side Diff: cc/proto/skia_conversions.cc

Issue 2646623002: cc: Remove all blimp code from cc. (Closed)
Patch Set: test build Created 3 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
« no previous file with comments | « cc/proto/skia_conversions.h ('k') | cc/proto/skia_conversions_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "cc/proto/skia_conversions.h"
6
7 #include "base/logging.h"
8 #include "cc/proto/gfx_conversions.h"
9 #include "cc/proto/skclipop.pb.h"
10 #include "cc/proto/skrrect.pb.h"
11 #include "third_party/skia/include/core/SkRRect.h"
12 #include "ui/gfx/skia_util.h"
13
14 namespace cc {
15
16 namespace {
17
18 void SkPointToProto(const SkPoint& point, proto::PointF* proto) {
19 PointFToProto(gfx::PointF(point.x(), point.y()), proto);
20 }
21
22 SkPoint ProtoToSkPoint(const proto::PointF& proto) {
23 gfx::PointF point = ProtoToPointF(proto);
24 return SkPoint::Make(point.x(), point.y());
25 }
26
27 } // namespace
28
29 SkBlendMode SkXfermodeModeFromProto(proto::SkXfermode::Mode mode) {
30 switch (mode) {
31 case proto::SkXfermode::CLEAR_:
32 return SkBlendMode::kClear;
33 case proto::SkXfermode::SRC:
34 return SkBlendMode::kSrc;
35 case proto::SkXfermode::DST:
36 return SkBlendMode::kDst;
37 case proto::SkXfermode::SRC_OVER:
38 return SkBlendMode::kSrcOver;
39 case proto::SkXfermode::DST_OVER:
40 return SkBlendMode::kDstOver;
41 case proto::SkXfermode::SRC_IN:
42 return SkBlendMode::kSrcIn;
43 case proto::SkXfermode::DST_IN:
44 return SkBlendMode::kDstIn;
45 case proto::SkXfermode::SRC_OUT:
46 return SkBlendMode::kSrcOut;
47 case proto::SkXfermode::DST_OUT:
48 return SkBlendMode::kDstOut;
49 case proto::SkXfermode::SRC_A_TOP:
50 return SkBlendMode::kSrcATop;
51 case proto::SkXfermode::DST_A_TOP:
52 return SkBlendMode::kDstATop;
53 case proto::SkXfermode::XOR:
54 return SkBlendMode::kXor;
55 case proto::SkXfermode::PLUS:
56 return SkBlendMode::kPlus;
57 case proto::SkXfermode::MODULATE:
58 return SkBlendMode::kModulate;
59 case proto::SkXfermode::SCREEN:
60 return SkBlendMode::kScreen;
61 case proto::SkXfermode::OVERLAY:
62 return SkBlendMode::kOverlay;
63 case proto::SkXfermode::DARKEN:
64 return SkBlendMode::kDarken;
65 case proto::SkXfermode::LIGHTEN:
66 return SkBlendMode::kLighten;
67 case proto::SkXfermode::COLOR_DODGE:
68 return SkBlendMode::kColorDodge;
69 case proto::SkXfermode::COLOR_BURN:
70 return SkBlendMode::kColorBurn;
71 case proto::SkXfermode::HARD_LIGHT:
72 return SkBlendMode::kHardLight;
73 case proto::SkXfermode::SOFT_LIGHT:
74 return SkBlendMode::kSoftLight;
75 case proto::SkXfermode::DIFFERENCE_:
76 return SkBlendMode::kDifference;
77 case proto::SkXfermode::EXCLUSION:
78 return SkBlendMode::kExclusion;
79 case proto::SkXfermode::MULTIPLY:
80 return SkBlendMode::kMultiply;
81 case proto::SkXfermode::HUE:
82 return SkBlendMode::kHue;
83 case proto::SkXfermode::SATURATION:
84 return SkBlendMode::kSaturation;
85 case proto::SkXfermode::COLOR:
86 return SkBlendMode::kColor;
87 case proto::SkXfermode::LUMINOSITY:
88 return SkBlendMode::kLuminosity;
89 }
90 return SkBlendMode::kClear;
91 }
92
93 proto::SkXfermode::Mode SkXfermodeModeToProto(SkBlendMode mode) {
94 switch (mode) {
95 case SkBlendMode::kClear:
96 return proto::SkXfermode::CLEAR_;
97 case SkBlendMode::kSrc:
98 return proto::SkXfermode::SRC;
99 case SkBlendMode::kDst:
100 return proto::SkXfermode::DST;
101 case SkBlendMode::kSrcOver:
102 return proto::SkXfermode::SRC_OVER;
103 case SkBlendMode::kDstOver:
104 return proto::SkXfermode::DST_OVER;
105 case SkBlendMode::kSrcIn:
106 return proto::SkXfermode::SRC_IN;
107 case SkBlendMode::kDstIn:
108 return proto::SkXfermode::DST_IN;
109 case SkBlendMode::kSrcOut:
110 return proto::SkXfermode::SRC_OUT;
111 case SkBlendMode::kDstOut:
112 return proto::SkXfermode::DST_OUT;
113 case SkBlendMode::kSrcATop:
114 return proto::SkXfermode::SRC_A_TOP;
115 case SkBlendMode::kDstATop:
116 return proto::SkXfermode::DST_A_TOP;
117 case SkBlendMode::kXor:
118 return proto::SkXfermode::XOR;
119 case SkBlendMode::kPlus:
120 return proto::SkXfermode::PLUS;
121 case SkBlendMode::kModulate:
122 return proto::SkXfermode::MODULATE;
123 case SkBlendMode::kScreen:
124 return proto::SkXfermode::SCREEN;
125 case SkBlendMode::kOverlay:
126 return proto::SkXfermode::OVERLAY;
127 case SkBlendMode::kDarken:
128 return proto::SkXfermode::DARKEN;
129 case SkBlendMode::kLighten:
130 return proto::SkXfermode::LIGHTEN;
131 case SkBlendMode::kColorDodge:
132 return proto::SkXfermode::COLOR_DODGE;
133 case SkBlendMode::kColorBurn:
134 return proto::SkXfermode::COLOR_BURN;
135 case SkBlendMode::kHardLight:
136 return proto::SkXfermode::HARD_LIGHT;
137 case SkBlendMode::kSoftLight:
138 return proto::SkXfermode::SOFT_LIGHT;
139 case SkBlendMode::kDifference:
140 return proto::SkXfermode::DIFFERENCE_;
141 case SkBlendMode::kExclusion:
142 return proto::SkXfermode::EXCLUSION;
143 case SkBlendMode::kMultiply:
144 return proto::SkXfermode::MULTIPLY;
145 case SkBlendMode::kHue:
146 return proto::SkXfermode::HUE;
147 case SkBlendMode::kSaturation:
148 return proto::SkXfermode::SATURATION;
149 case SkBlendMode::kColor:
150 return proto::SkXfermode::COLOR;
151 case SkBlendMode::kLuminosity:
152 return proto::SkXfermode::LUMINOSITY;
153 }
154 return proto::SkXfermode::CLEAR_;
155 }
156
157 void SkRRectToProto(const SkRRect& rect, proto::SkRRect* proto) {
158 RectFToProto(gfx::SkRectToRectF(rect.rect()), proto->mutable_rect());
159
160 SkPointToProto(rect.radii(SkRRect::kUpperLeft_Corner),
161 proto->mutable_radii_upper_left());
162 SkPointToProto(rect.radii(SkRRect::kUpperRight_Corner),
163 proto->mutable_radii_upper_right());
164 SkPointToProto(rect.radii(SkRRect::kLowerRight_Corner),
165 proto->mutable_radii_lower_right());
166 SkPointToProto(rect.radii(SkRRect::kLowerLeft_Corner),
167 proto->mutable_radii_lower_left());
168 }
169
170 SkRRect ProtoToSkRRect(const proto::SkRRect& proto) {
171 SkRect parsed_rect = gfx::RectFToSkRect(ProtoToRectF(proto.rect()));
172 SkVector parsed_radii[4];
173 parsed_radii[SkRRect::kUpperLeft_Corner] =
174 ProtoToSkPoint(proto.radii_upper_left());
175 parsed_radii[SkRRect::kUpperRight_Corner] =
176 ProtoToSkPoint(proto.radii_upper_right());
177 parsed_radii[SkRRect::kLowerRight_Corner] =
178 ProtoToSkPoint(proto.radii_lower_right());
179 parsed_radii[SkRRect::kLowerLeft_Corner] =
180 ProtoToSkPoint(proto.radii_lower_left());
181 SkRRect rect;
182 rect.setRectRadii(parsed_rect, parsed_radii);
183 return rect;
184 }
185
186 } // namespace cc
OLDNEW
« no previous file with comments | « cc/proto/skia_conversions.h ('k') | cc/proto/skia_conversions_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698