| 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 |