OLD | NEW |
1 | |
2 /* | 1 /* |
3 * Copyright 2012 Google Inc. | 2 * Copyright 2012 Google Inc. |
4 * | 3 * |
5 * 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 |
6 * found in the LICENSE file. | 5 * found in the LICENSE file. |
7 */ | 6 */ |
8 | 7 |
9 #ifndef SKDRAWCOMMAND_H_ | 8 #ifndef SKDRAWCOMMAND_H_ |
10 #define SKDRAWCOMMAND_H_ | 9 #define SKDRAWCOMMAND_H_ |
11 | 10 |
12 #include "SkCanvas.h" | 11 #include "SkCanvas.h" |
13 #include "SkTLazy.h" | 12 #include "SkTLazy.h" |
14 #include "SkPath.h" | 13 #include "SkPath.h" |
15 #include "SkRRect.h" | 14 #include "SkRRect.h" |
16 #include "SkString.h" | 15 #include "SkString.h" |
17 #include "SkTDArray.h" | 16 #include "SkTDArray.h" |
18 #include "SkJSONCPP.h" | 17 #include "SkJSONCPP.h" |
| 18 #include "UrlDataManager.h" |
19 | 19 |
20 class SK_API SkDrawCommand { | 20 class SK_API SkDrawCommand { |
21 public: | 21 public: |
22 enum OpType { | 22 enum OpType { |
23 kBeginDrawPicture_OpType, | 23 kBeginDrawPicture_OpType, |
24 kClipPath_OpType, | 24 kClipPath_OpType, |
25 kClipRegion_OpType, | 25 kClipRegion_OpType, |
26 kClipRect_OpType, | 26 kClipRect_OpType, |
27 kClipRRect_OpType, | 27 kClipRRect_OpType, |
28 kConcat_OpType, | 28 kConcat_OpType, |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 kPushLayer_Action, | 93 kPushLayer_Action, |
94 }; | 94 }; |
95 virtual Action action() const { return kNone_Action; } | 95 virtual Action action() const { return kNone_Action; } |
96 virtual void setActive(bool active) {} | 96 virtual void setActive(bool active) {} |
97 virtual bool active() const { return false; } | 97 virtual bool active() const { return false; } |
98 | 98 |
99 OpType getType() const { return fOpType; } | 99 OpType getType() const { return fOpType; } |
100 | 100 |
101 virtual bool render(SkCanvas* canvas) const { return false; } | 101 virtual bool render(SkCanvas* canvas) const { return false; } |
102 | 102 |
103 virtual Json::Value toJSON() const; | 103 virtual Json::Value toJSON(UrlDataManager& urlDataManager) const; |
104 | 104 |
105 /* Converts a JSON representation of a command into a newly-allocated SkDraw
Command object. It | 105 /* Converts a JSON representation of a command into a newly-allocated SkDraw
Command object. It |
106 * is the caller's responsibility to delete this object. This method may ret
urn null if an error | 106 * is the caller's responsibility to delete this object. This method may ret
urn null if an error |
107 * occurs. | 107 * occurs. |
108 */ | 108 */ |
109 static SkDrawCommand* fromJSON(Json::Value& command); | 109 static SkDrawCommand* fromJSON(Json::Value& command, UrlDataManager& urlData
Manager); |
110 | 110 |
111 static const char* GetCommandString(OpType type); | 111 static const char* GetCommandString(OpType type); |
112 | 112 |
113 protected: | 113 protected: |
114 SkTDArray<SkString*> fInfo; | 114 SkTDArray<SkString*> fInfo; |
115 | 115 |
116 private: | 116 private: |
117 OpType fOpType; | 117 OpType fOpType; |
118 bool fVisible; | 118 bool fVisible; |
119 }; | 119 }; |
120 | 120 |
121 class SkRestoreCommand : public SkDrawCommand { | 121 class SkRestoreCommand : public SkDrawCommand { |
122 public: | 122 public: |
123 SkRestoreCommand(); | 123 SkRestoreCommand(); |
124 void execute(SkCanvas* canvas) const override; | 124 void execute(SkCanvas* canvas) const override; |
125 Action action() const override { return kPopLayer_Action; } | 125 Action action() const override { return kPopLayer_Action; } |
126 static SkRestoreCommand* fromJSON(Json::Value& command); | 126 static SkRestoreCommand* fromJSON(Json::Value& command, UrlDataManager& urlD
ataManager); |
127 | 127 |
128 private: | 128 private: |
129 typedef SkDrawCommand INHERITED; | 129 typedef SkDrawCommand INHERITED; |
130 }; | 130 }; |
131 | 131 |
132 class SkClearCommand : public SkDrawCommand { | 132 class SkClearCommand : public SkDrawCommand { |
133 public: | 133 public: |
134 SkClearCommand(SkColor color); | 134 SkClearCommand(SkColor color); |
135 void execute(SkCanvas* canvas) const override; | 135 void execute(SkCanvas* canvas) const override; |
136 Json::Value toJSON() const override; | 136 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
137 static SkClearCommand* fromJSON(Json::Value& command); | 137 static SkClearCommand* fromJSON(Json::Value& command, UrlDataManager& urlDat
aManager); |
138 | 138 |
139 private: | 139 private: |
140 SkColor fColor; | 140 SkColor fColor; |
141 | 141 |
142 typedef SkDrawCommand INHERITED; | 142 typedef SkDrawCommand INHERITED; |
143 }; | 143 }; |
144 | 144 |
145 class SkClipPathCommand : public SkDrawCommand { | 145 class SkClipPathCommand : public SkDrawCommand { |
146 public: | 146 public: |
147 SkClipPathCommand(const SkPath& path, SkRegion::Op op, bool doAA); | 147 SkClipPathCommand(const SkPath& path, SkRegion::Op op, bool doAA); |
148 void execute(SkCanvas* canvas) const override; | 148 void execute(SkCanvas* canvas) const override; |
149 bool render(SkCanvas* canvas) const override; | 149 bool render(SkCanvas* canvas) const override; |
150 Json::Value toJSON() const override; | 150 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
151 static SkClipPathCommand* fromJSON(Json::Value& command); | 151 static SkClipPathCommand* fromJSON(Json::Value& command, UrlDataManager& url
DataManager); |
152 | 152 |
153 private: | 153 private: |
154 SkPath fPath; | 154 SkPath fPath; |
155 SkRegion::Op fOp; | 155 SkRegion::Op fOp; |
156 bool fDoAA; | 156 bool fDoAA; |
157 | 157 |
158 typedef SkDrawCommand INHERITED; | 158 typedef SkDrawCommand INHERITED; |
159 }; | 159 }; |
160 | 160 |
161 class SkClipRegionCommand : public SkDrawCommand { | 161 class SkClipRegionCommand : public SkDrawCommand { |
162 public: | 162 public: |
163 SkClipRegionCommand(const SkRegion& region, SkRegion::Op op); | 163 SkClipRegionCommand(const SkRegion& region, SkRegion::Op op); |
164 void execute(SkCanvas* canvas) const override; | 164 void execute(SkCanvas* canvas) const override; |
165 Json::Value toJSON() const override; | 165 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
166 static SkClipRegionCommand* fromJSON(Json::Value& command); | 166 static SkClipRegionCommand* fromJSON(Json::Value& command, UrlDataManager& u
rlDataManager); |
167 | 167 |
168 private: | 168 private: |
169 SkRegion fRegion; | 169 SkRegion fRegion; |
170 SkRegion::Op fOp; | 170 SkRegion::Op fOp; |
171 | 171 |
172 typedef SkDrawCommand INHERITED; | 172 typedef SkDrawCommand INHERITED; |
173 }; | 173 }; |
174 | 174 |
175 class SkClipRectCommand : public SkDrawCommand { | 175 class SkClipRectCommand : public SkDrawCommand { |
176 public: | 176 public: |
177 SkClipRectCommand(const SkRect& rect, SkRegion::Op op, bool doAA); | 177 SkClipRectCommand(const SkRect& rect, SkRegion::Op op, bool doAA); |
178 void execute(SkCanvas* canvas) const override; | 178 void execute(SkCanvas* canvas) const override; |
179 Json::Value toJSON() const override; | 179 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
180 static SkClipRectCommand* fromJSON(Json::Value& command); | 180 static SkClipRectCommand* fromJSON(Json::Value& command, UrlDataManager& url
DataManager); |
181 | 181 |
182 const SkRect& rect() const { return fRect; } | 182 const SkRect& rect() const { return fRect; } |
183 SkRegion::Op op() const { return fOp; } | 183 SkRegion::Op op() const { return fOp; } |
184 bool doAA() const { return fDoAA; } | 184 bool doAA() const { return fDoAA; } |
185 | 185 |
186 private: | 186 private: |
187 SkRect fRect; | 187 SkRect fRect; |
188 SkRegion::Op fOp; | 188 SkRegion::Op fOp; |
189 bool fDoAA; | 189 bool fDoAA; |
190 | 190 |
191 typedef SkDrawCommand INHERITED; | 191 typedef SkDrawCommand INHERITED; |
192 }; | 192 }; |
193 | 193 |
194 class SkClipRRectCommand : public SkDrawCommand { | 194 class SkClipRRectCommand : public SkDrawCommand { |
195 public: | 195 public: |
196 SkClipRRectCommand(const SkRRect& rrect, SkRegion::Op op, bool doAA); | 196 SkClipRRectCommand(const SkRRect& rrect, SkRegion::Op op, bool doAA); |
197 void execute(SkCanvas* canvas) const override; | 197 void execute(SkCanvas* canvas) const override; |
198 bool render(SkCanvas* canvas) const override; | 198 bool render(SkCanvas* canvas) const override; |
199 Json::Value toJSON() const override; | 199 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
200 static SkClipRRectCommand* fromJSON(Json::Value& command); | 200 static SkClipRRectCommand* fromJSON(Json::Value& command, UrlDataManager& ur
lDataManager); |
201 | 201 |
202 const SkRRect& rrect() const { return fRRect; } | 202 const SkRRect& rrect() const { return fRRect; } |
203 SkRegion::Op op() const { return fOp; } | 203 SkRegion::Op op() const { return fOp; } |
204 bool doAA() const { return fDoAA; } | 204 bool doAA() const { return fDoAA; } |
205 | 205 |
206 private: | 206 private: |
207 SkRRect fRRect; | 207 SkRRect fRRect; |
208 SkRegion::Op fOp; | 208 SkRegion::Op fOp; |
209 bool fDoAA; | 209 bool fDoAA; |
210 | 210 |
211 typedef SkDrawCommand INHERITED; | 211 typedef SkDrawCommand INHERITED; |
212 }; | 212 }; |
213 | 213 |
214 class SkConcatCommand : public SkDrawCommand { | 214 class SkConcatCommand : public SkDrawCommand { |
215 public: | 215 public: |
216 SkConcatCommand(const SkMatrix& matrix); | 216 SkConcatCommand(const SkMatrix& matrix); |
217 void execute(SkCanvas* canvas) const override; | 217 void execute(SkCanvas* canvas) const override; |
218 Json::Value toJSON() const override; | 218 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
219 static SkConcatCommand* fromJSON(Json::Value& command); | 219 static SkConcatCommand* fromJSON(Json::Value& command, UrlDataManager& urlDa
taManager); |
220 | 220 |
221 private: | 221 private: |
222 SkMatrix fMatrix; | 222 SkMatrix fMatrix; |
223 | 223 |
224 typedef SkDrawCommand INHERITED; | 224 typedef SkDrawCommand INHERITED; |
225 }; | 225 }; |
226 | 226 |
227 class SkDrawBitmapCommand : public SkDrawCommand { | 227 class SkDrawBitmapCommand : public SkDrawCommand { |
228 public: | 228 public: |
229 SkDrawBitmapCommand(const SkBitmap& bitmap, SkScalar left, SkScalar top, | 229 SkDrawBitmapCommand(const SkBitmap& bitmap, SkScalar left, SkScalar top, |
230 const SkPaint* paint); | 230 const SkPaint* paint); |
231 void execute(SkCanvas* canvas) const override; | 231 void execute(SkCanvas* canvas) const override; |
232 bool render(SkCanvas* canvas) const override; | 232 bool render(SkCanvas* canvas) const override; |
233 Json::Value toJSON() const override; | 233 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
234 static SkDrawBitmapCommand* fromJSON(Json::Value& command); | 234 static SkDrawBitmapCommand* fromJSON(Json::Value& command, UrlDataManager& u
rlDataManager); |
235 | 235 |
236 private: | 236 private: |
237 SkBitmap fBitmap; | 237 SkBitmap fBitmap; |
238 SkScalar fLeft; | 238 SkScalar fLeft; |
239 SkScalar fTop; | 239 SkScalar fTop; |
240 SkPaint fPaint; | 240 SkPaint fPaint; |
241 SkPaint* fPaintPtr; | 241 SkPaint* fPaintPtr; |
242 | 242 |
243 typedef SkDrawCommand INHERITED; | 243 typedef SkDrawCommand INHERITED; |
244 }; | 244 }; |
245 | 245 |
246 class SkDrawBitmapNineCommand : public SkDrawCommand { | 246 class SkDrawBitmapNineCommand : public SkDrawCommand { |
247 public: | 247 public: |
248 SkDrawBitmapNineCommand(const SkBitmap& bitmap, const SkIRect& center, | 248 SkDrawBitmapNineCommand(const SkBitmap& bitmap, const SkIRect& center, |
249 const SkRect& dst, const SkPaint* paint); | 249 const SkRect& dst, const SkPaint* paint); |
250 void execute(SkCanvas* canvas) const override; | 250 void execute(SkCanvas* canvas) const override; |
251 bool render(SkCanvas* canvas) const override; | 251 bool render(SkCanvas* canvas) const override; |
252 Json::Value toJSON() const override; | 252 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
253 static SkDrawBitmapNineCommand* fromJSON(Json::Value& command); | 253 static SkDrawBitmapNineCommand* fromJSON(Json::Value& command, UrlDataManage
r& urlDataManager); |
254 | 254 |
255 private: | 255 private: |
256 SkBitmap fBitmap; | 256 SkBitmap fBitmap; |
257 SkIRect fCenter; | 257 SkIRect fCenter; |
258 SkRect fDst; | 258 SkRect fDst; |
259 SkPaint fPaint; | 259 SkPaint fPaint; |
260 SkPaint* fPaintPtr; | 260 SkPaint* fPaintPtr; |
261 | 261 |
262 typedef SkDrawCommand INHERITED; | 262 typedef SkDrawCommand INHERITED; |
263 }; | 263 }; |
264 | 264 |
265 class SkDrawBitmapRectCommand : public SkDrawCommand { | 265 class SkDrawBitmapRectCommand : public SkDrawCommand { |
266 public: | 266 public: |
267 SkDrawBitmapRectCommand(const SkBitmap& bitmap, const SkRect* src, | 267 SkDrawBitmapRectCommand(const SkBitmap& bitmap, const SkRect* src, |
268 const SkRect& dst, const SkPaint* paint, | 268 const SkRect& dst, const SkPaint* paint, |
269 SkCanvas::SrcRectConstraint); | 269 SkCanvas::SrcRectConstraint); |
270 void execute(SkCanvas* canvas) const override; | 270 void execute(SkCanvas* canvas) const override; |
271 bool render(SkCanvas* canvas) const override; | 271 bool render(SkCanvas* canvas) const override; |
272 Json::Value toJSON() const override; | 272 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
273 static SkDrawBitmapRectCommand* fromJSON(Json::Value& command); | 273 static SkDrawBitmapRectCommand* fromJSON(Json::Value& command, UrlDataManage
r& urlDataManager); |
274 | 274 |
275 const SkBitmap& bitmap() const { return fBitmap; } | 275 const SkBitmap& bitmap() const { return fBitmap; } |
276 | 276 |
277 // The non-const 'paint' method allows modification of this object's | 277 // The non-const 'paint' method allows modification of this object's |
278 // SkPaint. For this reason the ctor and setPaint method make a local copy. | 278 // SkPaint. For this reason the ctor and setPaint method make a local copy. |
279 // The 'fPaintPtr' member acts a signal that the local SkPaint is valid | 279 // The 'fPaintPtr' member acts a signal that the local SkPaint is valid |
280 // (since only an SkPaint* is passed into the ctor). | 280 // (since only an SkPaint* is passed into the ctor). |
281 const SkPaint* paint() const { return fPaintPtr; } | 281 const SkPaint* paint() const { return fPaintPtr; } |
282 SkPaint* paint() { return fPaintPtr; } | 282 SkPaint* paint() { return fPaintPtr; } |
283 | 283 |
(...skipping 17 matching lines...) Expand all Loading... |
301 SkCanvas::SrcRectConstraint fConstraint; | 301 SkCanvas::SrcRectConstraint fConstraint; |
302 | 302 |
303 typedef SkDrawCommand INHERITED; | 303 typedef SkDrawCommand INHERITED; |
304 }; | 304 }; |
305 | 305 |
306 class SkDrawImageCommand : public SkDrawCommand { | 306 class SkDrawImageCommand : public SkDrawCommand { |
307 public: | 307 public: |
308 SkDrawImageCommand(const SkImage* image, SkScalar left, SkScalar top, const
SkPaint* paint); | 308 SkDrawImageCommand(const SkImage* image, SkScalar left, SkScalar top, const
SkPaint* paint); |
309 void execute(SkCanvas* canvas) const override; | 309 void execute(SkCanvas* canvas) const override; |
310 bool render(SkCanvas* canvas) const override; | 310 bool render(SkCanvas* canvas) const override; |
311 Json::Value toJSON() const override; | 311 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
312 static SkDrawImageCommand* fromJSON(Json::Value& command); | 312 static SkDrawImageCommand* fromJSON(Json::Value& command, UrlDataManager& ur
lDataManager); |
313 | 313 |
314 private: | 314 private: |
315 SkAutoTUnref<const SkImage> fImage; | 315 SkAutoTUnref<const SkImage> fImage; |
316 SkScalar fLeft; | 316 SkScalar fLeft; |
317 SkScalar fTop; | 317 SkScalar fTop; |
318 SkTLazy<SkPaint> fPaint; | 318 SkTLazy<SkPaint> fPaint; |
319 | 319 |
320 typedef SkDrawCommand INHERITED; | 320 typedef SkDrawCommand INHERITED; |
321 }; | 321 }; |
322 | 322 |
323 class SkDrawImageRectCommand : public SkDrawCommand { | 323 class SkDrawImageRectCommand : public SkDrawCommand { |
324 public: | 324 public: |
325 SkDrawImageRectCommand(const SkImage* image, const SkRect* src, const SkRect
& dst, | 325 SkDrawImageRectCommand(const SkImage* image, const SkRect* src, const SkRect
& dst, |
326 const SkPaint* paint, SkCanvas::SrcRectConstraint con
straint); | 326 const SkPaint* paint, SkCanvas::SrcRectConstraint con
straint); |
327 void execute(SkCanvas* canvas) const override; | 327 void execute(SkCanvas* canvas) const override; |
328 bool render(SkCanvas* canvas) const override; | 328 bool render(SkCanvas* canvas) const override; |
329 Json::Value toJSON() const override; | 329 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
330 static SkDrawImageRectCommand* fromJSON(Json::Value& command); | 330 static SkDrawImageRectCommand* fromJSON(Json::Value& command, UrlDataManager
& urlDataManager); |
331 | 331 |
332 private: | 332 private: |
333 SkAutoTUnref<const SkImage> fImage; | 333 SkAutoTUnref<const SkImage> fImage; |
334 SkTLazy<SkRect> fSrc; | 334 SkTLazy<SkRect> fSrc; |
335 SkRect fDst; | 335 SkRect fDst; |
336 SkTLazy<SkPaint> fPaint; | 336 SkTLazy<SkPaint> fPaint; |
337 SkCanvas::SrcRectConstraint fConstraint; | 337 SkCanvas::SrcRectConstraint fConstraint; |
338 | 338 |
339 typedef SkDrawCommand INHERITED; | 339 typedef SkDrawCommand INHERITED; |
340 }; | 340 }; |
341 | 341 |
342 class SkDrawOvalCommand : public SkDrawCommand { | 342 class SkDrawOvalCommand : public SkDrawCommand { |
343 public: | 343 public: |
344 SkDrawOvalCommand(const SkRect& oval, const SkPaint& paint); | 344 SkDrawOvalCommand(const SkRect& oval, const SkPaint& paint); |
345 void execute(SkCanvas* canvas) const override; | 345 void execute(SkCanvas* canvas) const override; |
346 bool render(SkCanvas* canvas) const override; | 346 bool render(SkCanvas* canvas) const override; |
347 Json::Value toJSON() const override; | 347 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
348 static SkDrawOvalCommand* fromJSON(Json::Value& command); | 348 static SkDrawOvalCommand* fromJSON(Json::Value& command, UrlDataManager& url
DataManager); |
349 | 349 |
350 private: | 350 private: |
351 SkRect fOval; | 351 SkRect fOval; |
352 SkPaint fPaint; | 352 SkPaint fPaint; |
353 | 353 |
354 typedef SkDrawCommand INHERITED; | 354 typedef SkDrawCommand INHERITED; |
355 }; | 355 }; |
356 | 356 |
357 class SkDrawPaintCommand : public SkDrawCommand { | 357 class SkDrawPaintCommand : public SkDrawCommand { |
358 public: | 358 public: |
359 SkDrawPaintCommand(const SkPaint& paint); | 359 SkDrawPaintCommand(const SkPaint& paint); |
360 void execute(SkCanvas* canvas) const override; | 360 void execute(SkCanvas* canvas) const override; |
361 bool render(SkCanvas* canvas) const override; | 361 bool render(SkCanvas* canvas) const override; |
362 Json::Value toJSON() const override; | 362 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
363 static SkDrawPaintCommand* fromJSON(Json::Value& command); | 363 static SkDrawPaintCommand* fromJSON(Json::Value& command, UrlDataManager& ur
lDataManager); |
364 | 364 |
365 private: | 365 private: |
366 SkPaint fPaint; | 366 SkPaint fPaint; |
367 | 367 |
368 typedef SkDrawCommand INHERITED; | 368 typedef SkDrawCommand INHERITED; |
369 }; | 369 }; |
370 | 370 |
371 class SkDrawPathCommand : public SkDrawCommand { | 371 class SkDrawPathCommand : public SkDrawCommand { |
372 public: | 372 public: |
373 SkDrawPathCommand(const SkPath& path, const SkPaint& paint); | 373 SkDrawPathCommand(const SkPath& path, const SkPaint& paint); |
374 void execute(SkCanvas* canvas) const override; | 374 void execute(SkCanvas* canvas) const override; |
375 bool render(SkCanvas* canvas) const override; | 375 bool render(SkCanvas* canvas) const override; |
376 Json::Value toJSON() const override; | 376 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
377 static SkDrawPathCommand* fromJSON(Json::Value& command); | 377 static SkDrawPathCommand* fromJSON(Json::Value& command, UrlDataManager& url
DataManager); |
378 | 378 |
379 private: | 379 private: |
380 SkPath fPath; | 380 SkPath fPath; |
381 SkPaint fPaint; | 381 SkPaint fPaint; |
382 | 382 |
383 typedef SkDrawCommand INHERITED; | 383 typedef SkDrawCommand INHERITED; |
384 }; | 384 }; |
385 | 385 |
386 class SkBeginDrawPictureCommand : public SkDrawCommand { | 386 class SkBeginDrawPictureCommand : public SkDrawCommand { |
387 public: | 387 public: |
(...skipping 24 matching lines...) Expand all Loading... |
412 typedef SkDrawCommand INHERITED; | 412 typedef SkDrawCommand INHERITED; |
413 }; | 413 }; |
414 | 414 |
415 class SkDrawPointsCommand : public SkDrawCommand { | 415 class SkDrawPointsCommand : public SkDrawCommand { |
416 public: | 416 public: |
417 SkDrawPointsCommand(SkCanvas::PointMode mode, size_t count, const SkPoint pt
s[], | 417 SkDrawPointsCommand(SkCanvas::PointMode mode, size_t count, const SkPoint pt
s[], |
418 const SkPaint& paint); | 418 const SkPaint& paint); |
419 virtual ~SkDrawPointsCommand() { delete [] fPts; } | 419 virtual ~SkDrawPointsCommand() { delete [] fPts; } |
420 void execute(SkCanvas* canvas) const override; | 420 void execute(SkCanvas* canvas) const override; |
421 bool render(SkCanvas* canvas) const override; | 421 bool render(SkCanvas* canvas) const override; |
422 Json::Value toJSON() const override; | 422 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
423 static SkDrawPointsCommand* fromJSON(Json::Value& command); | 423 static SkDrawPointsCommand* fromJSON(Json::Value& command, UrlDataManager& u
rlDataManager); |
424 | 424 |
425 private: | 425 private: |
426 SkCanvas::PointMode fMode; | 426 SkCanvas::PointMode fMode; |
427 size_t fCount; | 427 size_t fCount; |
428 SkPoint* fPts; | 428 SkPoint* fPts; |
429 SkPaint fPaint; | 429 SkPaint fPaint; |
430 | 430 |
431 typedef SkDrawCommand INHERITED; | 431 typedef SkDrawCommand INHERITED; |
432 }; | 432 }; |
433 | 433 |
434 class SkDrawTextCommand : public SkDrawCommand { | 434 class SkDrawTextCommand : public SkDrawCommand { |
435 public: | 435 public: |
436 SkDrawTextCommand(const void* text, size_t byteLength, SkScalar x, SkScalar
y, | 436 SkDrawTextCommand(const void* text, size_t byteLength, SkScalar x, SkScalar
y, |
437 const SkPaint& paint); | 437 const SkPaint& paint); |
438 virtual ~SkDrawTextCommand() { delete [] fText; } | 438 virtual ~SkDrawTextCommand() { delete [] fText; } |
439 void execute(SkCanvas* canvas) const override; | 439 void execute(SkCanvas* canvas) const override; |
440 Json::Value toJSON() const override; | 440 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
441 static SkDrawTextCommand* fromJSON(Json::Value& command); | 441 static SkDrawTextCommand* fromJSON(Json::Value& command, UrlDataManager& url
DataManager); |
442 | 442 |
443 private: | 443 private: |
444 char* fText; | 444 char* fText; |
445 size_t fByteLength; | 445 size_t fByteLength; |
446 SkScalar fX; | 446 SkScalar fX; |
447 SkScalar fY; | 447 SkScalar fY; |
448 SkPaint fPaint; | 448 SkPaint fPaint; |
449 | 449 |
450 typedef SkDrawCommand INHERITED; | 450 typedef SkDrawCommand INHERITED; |
451 }; | 451 }; |
452 | 452 |
453 class SkDrawPosTextCommand : public SkDrawCommand { | 453 class SkDrawPosTextCommand : public SkDrawCommand { |
454 public: | 454 public: |
455 SkDrawPosTextCommand(const void* text, size_t byteLength, const SkPoint pos[
], | 455 SkDrawPosTextCommand(const void* text, size_t byteLength, const SkPoint pos[
], |
456 const SkPaint& paint); | 456 const SkPaint& paint); |
457 virtual ~SkDrawPosTextCommand() { delete [] fPos; delete [] fText; } | 457 virtual ~SkDrawPosTextCommand() { delete [] fPos; delete [] fText; } |
458 void execute(SkCanvas* canvas) const override; | 458 void execute(SkCanvas* canvas) const override; |
459 Json::Value toJSON() const override; | 459 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
460 static SkDrawPosTextCommand* fromJSON(Json::Value& command); | 460 static SkDrawPosTextCommand* fromJSON(Json::Value& command, UrlDataManager&
urlDataManager); |
461 | 461 |
462 private: | 462 private: |
463 char* fText; | 463 char* fText; |
464 size_t fByteLength; | 464 size_t fByteLength; |
465 SkPoint* fPos; | 465 SkPoint* fPos; |
466 SkPaint fPaint; | 466 SkPaint fPaint; |
467 | 467 |
468 typedef SkDrawCommand INHERITED; | 468 typedef SkDrawCommand INHERITED; |
469 }; | 469 }; |
470 | 470 |
471 class SkDrawTextOnPathCommand : public SkDrawCommand { | 471 class SkDrawTextOnPathCommand : public SkDrawCommand { |
472 public: | 472 public: |
473 SkDrawTextOnPathCommand(const void* text, size_t byteLength, const SkPath& p
ath, | 473 SkDrawTextOnPathCommand(const void* text, size_t byteLength, const SkPath& p
ath, |
474 const SkMatrix* matrix, const SkPaint& paint); | 474 const SkMatrix* matrix, const SkPaint& paint); |
475 virtual ~SkDrawTextOnPathCommand() { delete [] fText; } | 475 virtual ~SkDrawTextOnPathCommand() { delete [] fText; } |
476 void execute(SkCanvas* canvas) const override; | 476 void execute(SkCanvas* canvas) const override; |
477 Json::Value toJSON() const override; | 477 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
478 static SkDrawTextOnPathCommand* fromJSON(Json::Value& command); | 478 static SkDrawTextOnPathCommand* fromJSON(Json::Value& command, UrlDataManage
r& urlDataManager); |
479 | 479 |
480 private: | 480 private: |
481 char* fText; | 481 char* fText; |
482 size_t fByteLength; | 482 size_t fByteLength; |
483 SkPath fPath; | 483 SkPath fPath; |
484 SkMatrix fMatrix; | 484 SkMatrix fMatrix; |
485 SkPaint fPaint; | 485 SkPaint fPaint; |
486 | 486 |
487 typedef SkDrawCommand INHERITED; | 487 typedef SkDrawCommand INHERITED; |
488 }; | 488 }; |
(...skipping 14 matching lines...) Expand all Loading... |
503 | 503 |
504 typedef SkDrawCommand INHERITED; | 504 typedef SkDrawCommand INHERITED; |
505 }; | 505 }; |
506 | 506 |
507 class SkDrawTextBlobCommand : public SkDrawCommand { | 507 class SkDrawTextBlobCommand : public SkDrawCommand { |
508 public: | 508 public: |
509 SkDrawTextBlobCommand(const SkTextBlob* blob, SkScalar x, SkScalar y, const
SkPaint& paint); | 509 SkDrawTextBlobCommand(const SkTextBlob* blob, SkScalar x, SkScalar y, const
SkPaint& paint); |
510 | 510 |
511 void execute(SkCanvas* canvas) const override; | 511 void execute(SkCanvas* canvas) const override; |
512 bool render(SkCanvas* canvas) const override; | 512 bool render(SkCanvas* canvas) const override; |
513 Json::Value toJSON() const override; | 513 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
514 static SkDrawTextBlobCommand* fromJSON(Json::Value& command); | 514 static SkDrawTextBlobCommand* fromJSON(Json::Value& command, UrlDataManager&
urlDataManager); |
515 | 515 |
516 private: | 516 private: |
517 SkAutoTUnref<const SkTextBlob> fBlob; | 517 SkAutoTUnref<const SkTextBlob> fBlob; |
518 SkScalar fXPos; | 518 SkScalar fXPos; |
519 SkScalar fYPos; | 519 SkScalar fYPos; |
520 SkPaint fPaint; | 520 SkPaint fPaint; |
521 | 521 |
522 typedef SkDrawCommand INHERITED; | 522 typedef SkDrawCommand INHERITED; |
523 }; | 523 }; |
524 | 524 |
525 class SkDrawPatchCommand : public SkDrawCommand { | 525 class SkDrawPatchCommand : public SkDrawCommand { |
526 public: | 526 public: |
527 SkDrawPatchCommand(const SkPoint cubics[12], const SkColor colors[4], | 527 SkDrawPatchCommand(const SkPoint cubics[12], const SkColor colors[4], |
528 const SkPoint texCoords[4], SkXfermode* xmode, | 528 const SkPoint texCoords[4], SkXfermode* xmode, |
529 const SkPaint& paint); | 529 const SkPaint& paint); |
530 void execute(SkCanvas* canvas) const override; | 530 void execute(SkCanvas* canvas) const override; |
531 Json::Value toJSON() const override; | 531 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
532 static SkDrawPatchCommand* fromJSON(Json::Value& command); | 532 static SkDrawPatchCommand* fromJSON(Json::Value& command, UrlDataManager& ur
lDataManager); |
533 | 533 |
534 private: | 534 private: |
535 SkPoint fCubics[12]; | 535 SkPoint fCubics[12]; |
536 SkColor* fColorsPtr; | 536 SkColor* fColorsPtr; |
537 SkColor fColors[4]; | 537 SkColor fColors[4]; |
538 SkPoint* fTexCoordsPtr; | 538 SkPoint* fTexCoordsPtr; |
539 SkPoint fTexCoords[4]; | 539 SkPoint fTexCoords[4]; |
540 SkAutoTUnref<SkXfermode> fXfermode; | 540 SkAutoTUnref<SkXfermode> fXfermode; |
541 SkPaint fPaint; | 541 SkPaint fPaint; |
542 | 542 |
543 typedef SkDrawCommand INHERITED; | 543 typedef SkDrawCommand INHERITED; |
544 }; | 544 }; |
545 | 545 |
546 | 546 |
547 class SkDrawRectCommand : public SkDrawCommand { | 547 class SkDrawRectCommand : public SkDrawCommand { |
548 public: | 548 public: |
549 SkDrawRectCommand(const SkRect& rect, const SkPaint& paint); | 549 SkDrawRectCommand(const SkRect& rect, const SkPaint& paint); |
550 void execute(SkCanvas* canvas) const override; | 550 void execute(SkCanvas* canvas) const override; |
551 Json::Value toJSON() const override; | 551 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
552 static SkDrawRectCommand* fromJSON(Json::Value& command); | 552 static SkDrawRectCommand* fromJSON(Json::Value& command, UrlDataManager& url
DataManager); |
553 | 553 |
554 const SkRect& rect() const { return fRect; } | 554 const SkRect& rect() const { return fRect; } |
555 const SkPaint& paint() const { return fPaint; } | 555 const SkPaint& paint() const { return fPaint; } |
556 private: | 556 private: |
557 SkRect fRect; | 557 SkRect fRect; |
558 SkPaint fPaint; | 558 SkPaint fPaint; |
559 | 559 |
560 typedef SkDrawCommand INHERITED; | 560 typedef SkDrawCommand INHERITED; |
561 }; | 561 }; |
562 | 562 |
563 class SkDrawRRectCommand : public SkDrawCommand { | 563 class SkDrawRRectCommand : public SkDrawCommand { |
564 public: | 564 public: |
565 SkDrawRRectCommand(const SkRRect& rrect, const SkPaint& paint); | 565 SkDrawRRectCommand(const SkRRect& rrect, const SkPaint& paint); |
566 void execute(SkCanvas* canvas) const override; | 566 void execute(SkCanvas* canvas) const override; |
567 bool render(SkCanvas* canvas) const override; | 567 bool render(SkCanvas* canvas) const override; |
568 Json::Value toJSON() const override; | 568 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
569 static SkDrawRRectCommand* fromJSON(Json::Value& command); | 569 static SkDrawRRectCommand* fromJSON(Json::Value& command, UrlDataManager& ur
lDataManager); |
570 | 570 |
571 private: | 571 private: |
572 SkRRect fRRect; | 572 SkRRect fRRect; |
573 SkPaint fPaint; | 573 SkPaint fPaint; |
574 | 574 |
575 typedef SkDrawCommand INHERITED; | 575 typedef SkDrawCommand INHERITED; |
576 }; | 576 }; |
577 | 577 |
578 class SkDrawDRRectCommand : public SkDrawCommand { | 578 class SkDrawDRRectCommand : public SkDrawCommand { |
579 public: | 579 public: |
580 SkDrawDRRectCommand(const SkRRect& outer, const SkRRect& inner, | 580 SkDrawDRRectCommand(const SkRRect& outer, const SkRRect& inner, |
581 const SkPaint& paint); | 581 const SkPaint& paint); |
582 void execute(SkCanvas* canvas) const override; | 582 void execute(SkCanvas* canvas) const override; |
583 bool render(SkCanvas* canvas) const override; | 583 bool render(SkCanvas* canvas) const override; |
584 Json::Value toJSON() const override; | 584 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
585 static SkDrawDRRectCommand* fromJSON(Json::Value& command); | 585 static SkDrawDRRectCommand* fromJSON(Json::Value& command, UrlDataManager& u
rlDataManager); |
586 | 586 |
587 private: | 587 private: |
588 SkRRect fOuter; | 588 SkRRect fOuter; |
589 SkRRect fInner; | 589 SkRRect fInner; |
590 SkPaint fPaint; | 590 SkPaint fPaint; |
591 | 591 |
592 typedef SkDrawCommand INHERITED; | 592 typedef SkDrawCommand INHERITED; |
593 }; | 593 }; |
594 | 594 |
595 class SkDrawVerticesCommand : public SkDrawCommand { | 595 class SkDrawVerticesCommand : public SkDrawCommand { |
(...skipping 18 matching lines...) Expand all Loading... |
614 SkPaint fPaint; | 614 SkPaint fPaint; |
615 | 615 |
616 typedef SkDrawCommand INHERITED; | 616 typedef SkDrawCommand INHERITED; |
617 }; | 617 }; |
618 | 618 |
619 class SkSaveCommand : public SkDrawCommand { | 619 class SkSaveCommand : public SkDrawCommand { |
620 public: | 620 public: |
621 SkSaveCommand(); | 621 SkSaveCommand(); |
622 void execute(SkCanvas* canvas) const override; | 622 void execute(SkCanvas* canvas) const override; |
623 Action action() const override { return kPushLayer_Action; } | 623 Action action() const override { return kPushLayer_Action; } |
624 static SkSaveCommand* fromJSON(Json::Value& command); | 624 static SkSaveCommand* fromJSON(Json::Value& command, UrlDataManager& urlData
Manager); |
625 | 625 |
626 private: | 626 private: |
627 typedef SkDrawCommand INHERITED; | 627 typedef SkDrawCommand INHERITED; |
628 }; | 628 }; |
629 | 629 |
630 class SkSaveLayerCommand : public SkDrawCommand { | 630 class SkSaveLayerCommand : public SkDrawCommand { |
631 public: | 631 public: |
632 SkSaveLayerCommand(const SkCanvas::SaveLayerRec&); | 632 SkSaveLayerCommand(const SkCanvas::SaveLayerRec&); |
633 virtual ~SkSaveLayerCommand(); | 633 virtual ~SkSaveLayerCommand(); |
634 void execute(SkCanvas* canvas) const override; | 634 void execute(SkCanvas* canvas) const override; |
635 Json::Value toJSON() const override; | 635 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
636 static SkSaveLayerCommand* fromJSON(Json::Value& command); | 636 static SkSaveLayerCommand* fromJSON(Json::Value& command, UrlDataManager& ur
lDataManager); |
637 void vizExecute(SkCanvas* canvas) const override; | 637 void vizExecute(SkCanvas* canvas) const override; |
638 Action action() const override{ return kPushLayer_Action; } | 638 Action action() const override{ return kPushLayer_Action; } |
639 void setActive(bool active) override { fActive = active; } | 639 void setActive(bool active) override { fActive = active; } |
640 bool active() const override { return fActive; } | 640 bool active() const override { return fActive; } |
641 | 641 |
642 const SkPaint* paint() const { return fPaintPtr; } | 642 const SkPaint* paint() const { return fPaintPtr; } |
643 | 643 |
644 private: | 644 private: |
645 SkRect fBounds; | 645 SkRect fBounds; |
646 SkPaint fPaint; | 646 SkPaint fPaint; |
647 SkPaint* fPaintPtr; | 647 SkPaint* fPaintPtr; |
648 const SkImageFilter* fBackdrop; | 648 const SkImageFilter* fBackdrop; |
649 uint32_t fSaveLayerFlags; | 649 uint32_t fSaveLayerFlags; |
650 | 650 |
651 bool fActive; | 651 bool fActive; |
652 | 652 |
653 typedef SkDrawCommand INHERITED; | 653 typedef SkDrawCommand INHERITED; |
654 }; | 654 }; |
655 | 655 |
656 class SkSetMatrixCommand : public SkDrawCommand { | 656 class SkSetMatrixCommand : public SkDrawCommand { |
657 public: | 657 public: |
658 SkSetMatrixCommand(const SkMatrix& matrix); | 658 SkSetMatrixCommand(const SkMatrix& matrix); |
659 void setUserMatrix(const SkMatrix&) override; | 659 void setUserMatrix(const SkMatrix&) override; |
660 void execute(SkCanvas* canvas) const override; | 660 void execute(SkCanvas* canvas) const override; |
661 Json::Value toJSON() const override; | 661 Json::Value toJSON(UrlDataManager& urlDataManager) const override; |
662 static SkSetMatrixCommand* fromJSON(Json::Value& command); | 662 static SkSetMatrixCommand* fromJSON(Json::Value& command, UrlDataManager& ur
lDataManager); |
663 | 663 |
664 private: | 664 private: |
665 SkMatrix fUserMatrix; | 665 SkMatrix fUserMatrix; |
666 SkMatrix fMatrix; | 666 SkMatrix fMatrix; |
667 | 667 |
668 typedef SkDrawCommand INHERITED; | 668 typedef SkDrawCommand INHERITED; |
669 }; | 669 }; |
670 | 670 |
671 #endif | 671 #endif |
OLD | NEW |