OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2016 Google Inc. | 2 * Copyright 2016 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 "SkCanvas.h" | 8 #include "SkCanvas.h" |
9 #include "SkDeduper.h" | 9 #include "SkDeduper.h" |
10 #include "SkPicture.h" | 10 #include "SkPicture.h" |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
261 const SkMatrix matrix = read_sparse_matrix(reader, tm); | 261 const SkMatrix matrix = read_sparse_matrix(reader, tm); |
262 if (packedVerb & kSetMatrix_ConcatMask) { | 262 if (packedVerb & kSetMatrix_ConcatMask) { |
263 canvas->setMatrix(matrix); | 263 canvas->setMatrix(matrix); |
264 } else { | 264 } else { |
265 canvas->concat(matrix); | 265 canvas->concat(matrix); |
266 } | 266 } |
267 } | 267 } |
268 | 268 |
269 static void clipRect_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanvas
* canvas) { | 269 static void clipRect_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanvas
* canvas) { |
270 SkASSERT(SkPipeVerb::kClipRect == unpack_verb(packedVerb)); | 270 SkASSERT(SkPipeVerb::kClipRect == unpack_verb(packedVerb)); |
271 SkRegion::Op op = (SkRegion::Op)(unpack_verb_extra(packedVerb) >> 1); | 271 SkCanvas::ClipOp op = (SkCanvas::ClipOp)(unpack_verb_extra(packedVerb) >> 1)
; |
272 bool isAA = unpack_verb_extra(packedVerb) & 1; | 272 bool isAA = unpack_verb_extra(packedVerb) & 1; |
273 canvas->clipRect(*skip<SkRect>(reader), op, isAA); | 273 canvas->clipRect(*skip<SkRect>(reader), op, isAA); |
274 } | 274 } |
275 | 275 |
276 static void clipRRect_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanva
s* canvas) { | 276 static void clipRRect_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanva
s* canvas) { |
277 SkASSERT(SkPipeVerb::kClipRRect == unpack_verb(packedVerb)); | 277 SkASSERT(SkPipeVerb::kClipRRect == unpack_verb(packedVerb)); |
278 SkRegion::Op op = (SkRegion::Op)(unpack_verb_extra(packedVerb) >> 1); | 278 SkCanvas::ClipOp op = (SkCanvas::ClipOp)(unpack_verb_extra(packedVerb) >> 1)
; |
279 bool isAA = unpack_verb_extra(packedVerb) & 1; | 279 bool isAA = unpack_verb_extra(packedVerb) & 1; |
280 canvas->clipRRect(read_rrect(reader), op, isAA); | 280 canvas->clipRRect(read_rrect(reader), op, isAA); |
281 } | 281 } |
282 | 282 |
283 static void clipPath_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanvas
* canvas) { | 283 static void clipPath_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanvas
* canvas) { |
284 SkASSERT(SkPipeVerb::kClipPath == unpack_verb(packedVerb)); | 284 SkASSERT(SkPipeVerb::kClipPath == unpack_verb(packedVerb)); |
285 SkRegion::Op op = (SkRegion::Op)(unpack_verb_extra(packedVerb) >> 1); | 285 SkCanvas::ClipOp op = (SkCanvas::ClipOp)(unpack_verb_extra(packedVerb) >> 1)
; |
286 bool isAA = unpack_verb_extra(packedVerb) & 1; | 286 bool isAA = unpack_verb_extra(packedVerb) & 1; |
287 SkPath path; | 287 SkPath path; |
288 reader.readPath(&path); | 288 reader.readPath(&path); |
289 canvas->clipPath(path, op, isAA); | 289 canvas->clipPath(path, op, isAA); |
290 } | 290 } |
291 | 291 |
292 static void clipRegion_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanv
as* canvas) { | 292 static void clipRegion_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanv
as* canvas) { |
293 SkASSERT(SkPipeVerb::kClipRegion == unpack_verb(packedVerb)); | 293 SkASSERT(SkPipeVerb::kClipRegion == unpack_verb(packedVerb)); |
294 SkRegion::Op op = (SkRegion::Op)(unpack_verb_extra(packedVerb) >> 1); | 294 SkCanvas::ClipOp op = (SkCanvas::ClipOp)(unpack_verb_extra(packedVerb) >> 1)
; |
295 SkRegion region; | 295 SkRegion region; |
296 reader.readRegion(®ion); | 296 reader.readRegion(®ion); |
297 canvas->clipRegion(region, op); | 297 canvas->clipRegion(region, op); |
298 } | 298 } |
299 | 299 |
300 static void drawArc_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanvas*
canvas) { | 300 static void drawArc_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanvas*
canvas) { |
301 SkASSERT(SkPipeVerb::kDrawArc == unpack_verb(packedVerb)); | 301 SkASSERT(SkPipeVerb::kDrawArc == unpack_verb(packedVerb)); |
302 const bool useCenter = (bool)(unpack_verb_extra(packedVerb) & 1); | 302 const bool useCenter = (bool)(unpack_verb_extra(packedVerb) & 1); |
303 const SkScalar* scalars = skip<SkScalar>(reader, 6); // bounds[0..3], sta
rt[4], sweep[5] | 303 const SkScalar* scalars = skip<SkScalar>(reader, 6); // bounds[0..3], sta
rt[4], sweep[5] |
304 const SkRect* bounds = (const SkRect*)scalars; | 304 const SkRect* bounds = (const SkRect*)scalars; |
(...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
957 | 957 |
958 bool SkPipeDeserializer::playback(const void* data, size_t size, SkCanvas* canva
s) { | 958 bool SkPipeDeserializer::playback(const void* data, size_t size, SkCanvas* canva
s) { |
959 SkPipeInflator inflator(&fImpl->fImages, &fImpl->fPictures, | 959 SkPipeInflator inflator(&fImpl->fImages, &fImpl->fPictures, |
960 &fImpl->fTypefaces, &fImpl->fFactories, | 960 &fImpl->fTypefaces, &fImpl->fFactories, |
961 fImpl->fTFDeserializer); | 961 fImpl->fTFDeserializer); |
962 SkPipeReader reader(this, data, size); | 962 SkPipeReader reader(this, data, size); |
963 reader.setInflator(&inflator); | 963 reader.setInflator(&inflator); |
964 return do_playback(reader, canvas); | 964 return do_playback(reader, canvas); |
965 } | 965 } |
966 | 966 |
OLD | NEW |