• Home
  • Raw
  • Download

Lines Matching full:reader

51 static const SkRect* get_rect_ptr(SkReadBuffer* reader, SkRect* storage) {  in get_rect_ptr()  argument
52 if (reader->readBool()) { in get_rect_ptr()
53 reader->readRect(storage); in get_rect_ptr()
66 SkReadBuffer reader(fPictureData->opData()->bytes(), in draw() local
68 reader.setVersion(fPictureData->info().getVersion()); in draw()
75 while (!reader.eof() && reader.isValid()) { in draw()
80 fCurOffset = reader.offset(); in draw()
82 uint32_t bits = reader.readInt(); in draw()
86 size = reader.readInt(); in draw()
89 if (!reader.validate(size > 0 && op > UNUSED && op <= LAST_DRAWTYPE_ENUM)) { in draw()
93 this->handleOp(&reader, (DrawType)op, size, canvas, initialMatrix); in draw()
96 // need to propagate invalid state to the parent reader in draw()
98 buffer->validate(reader.isValid()); in draw()
102 static void validate_offsetToRestore(SkReadBuffer* reader, size_t offsetToRestore) { in validate_offsetToRestore() argument
104 reader->validate(SkIsAlign4(offsetToRestore) && offsetToRestore >= reader->offset()); in validate_offsetToRestore()
108 static bool do_clip_op(SkReadBuffer* reader, SkCanvas* canvas, SkRegion::Op op, in do_clip_op() argument
118 SkASSERT(reader->isVersionLT(SkPicturePriv::kNoExpandingClipOps)); in do_clip_op()
124 SkASSERT(reader->isVersionLT(SkPicturePriv::kNoExpandingClipOps)); in do_clip_op()
129 void SkPicturePlayback::handleOp(SkReadBuffer* reader, in handleOp() argument
139 reader->skip(size - 4); in handleOp()
144 const SkPath& path = fPictureData->getPath(reader); in handleOp()
145 uint32_t packed = reader->readInt(); in handleOp()
146 SkRegion::Op rgnOp = ClipParams_unpackRegionOp(reader, packed); in handleOp()
148 size_t offsetToRestore = reader->readInt(); in handleOp()
149 validate_offsetToRestore(reader, offsetToRestore); in handleOp()
150 BREAK_ON_READ_ERROR(reader); in handleOp()
153 if (do_clip_op(reader, canvas, rgnOp, &clipOp)) { in handleOp()
157 reader->skip(offsetToRestore - reader->offset()); in handleOp()
162 reader->readRegion(&region); in handleOp()
163 uint32_t packed = reader->readInt(); in handleOp()
164 SkRegion::Op rgnOp = ClipParams_unpackRegionOp(reader, packed); in handleOp()
165 size_t offsetToRestore = reader->readInt(); in handleOp()
166 validate_offsetToRestore(reader, offsetToRestore); in handleOp()
167 BREAK_ON_READ_ERROR(reader); in handleOp()
170 if (do_clip_op(reader, canvas, rgnOp, &clipOp)) { in handleOp()
174 reader->skip(offsetToRestore - reader->offset()); in handleOp()
179 reader->readRect(&rect); in handleOp()
180 uint32_t packed = reader->readInt(); in handleOp()
181 SkRegion::Op rgnOp = ClipParams_unpackRegionOp(reader, packed); in handleOp()
183 size_t offsetToRestore = reader->readInt(); in handleOp()
184 validate_offsetToRestore(reader, offsetToRestore); in handleOp()
185 BREAK_ON_READ_ERROR(reader); in handleOp()
188 if (do_clip_op(reader, canvas, rgnOp, &clipOp)) { in handleOp()
192 reader->skip(offsetToRestore - reader->offset()); in handleOp()
197 reader->readRRect(&rrect); in handleOp()
198 uint32_t packed = reader->readInt(); in handleOp()
199 SkRegion::Op rgnOp = ClipParams_unpackRegionOp(reader, packed); in handleOp()
201 size_t offsetToRestore = reader->readInt(); in handleOp()
202 validate_offsetToRestore(reader, offsetToRestore); in handleOp()
203 BREAK_ON_READ_ERROR(reader); in handleOp()
206 if (do_clip_op(reader, canvas, rgnOp, &clipOp)) { in handleOp()
210 reader->skip(offsetToRestore - reader->offset()); in handleOp()
214 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
217 SkClipOp clipOp = reader->checkRange(SkClipOp::kDifference, SkClipOp::kIntersect); in handleOp()
218 BREAK_ON_READ_ERROR(reader); in handleOp()
232 reader->readMatrix(&matrix); in handleOp()
233 BREAK_ON_READ_ERROR(reader); in handleOp()
239 const SkScalar* colMaj = reader->skipT<SkScalar>(16); in handleOp()
240 BREAK_ON_READ_ERROR(reader); in handleOp()
246 reader->readRect(&rect); in handleOp()
248 reader->readString(&key); in handleOp()
249 sk_sp<SkData> data = reader->readByteArrayAsData(); in handleOp()
250 BREAK_ON_READ_ERROR(reader); in handleOp()
256 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
258 reader->readRect(&rect); in handleOp()
259 SkScalar startAngle = reader->readScalar(); in handleOp()
260 SkScalar sweepAngle = reader->readScalar(); in handleOp()
261 int useCenter = reader->readInt(); in handleOp()
262 BREAK_ON_READ_ERROR(reader); in handleOp()
267 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
268 const SkImage* atlas = fPictureData->getImage(reader); in handleOp()
269 const uint32_t flags = reader->readUInt(); in handleOp()
270 const int count = reader->readUInt(); in handleOp()
271 const SkRSXform* xform = (const SkRSXform*)reader->skip(count, sizeof(SkRSXform)); in handleOp()
272 const SkRect* tex = (const SkRect*)reader->skip(count, sizeof(SkRect)); in handleOp()
276 colors = (const SkColor*)reader->skip(count, sizeof(SkColor)); in handleOp()
277 mode = reader->read32LE(SkBlendMode::kLastMode); in handleOp()
278 BREAK_ON_READ_ERROR(reader); in handleOp()
282 cull = (const SkRect*)reader->skip(sizeof(SkRect)); in handleOp()
284 BREAK_ON_READ_ERROR(reader); in handleOp()
288 sampling = reader->readSampling(); in handleOp()
289 BREAK_ON_READ_ERROR(reader); in handleOp()
294 auto c = reader->readInt(); in handleOp()
295 BREAK_ON_READ_ERROR(reader); in handleOp()
301 size_t length = reader->readInt(); in handleOp()
302 (void)reader->skip(length); in handleOp()
306 auto* d = fPictureData->getDrawable(reader); in handleOp()
307 BREAK_ON_READ_ERROR(reader); in handleOp()
313 reader->readMatrix(&matrix); in handleOp()
314 SkDrawable* drawable = fPictureData->getDrawable(reader); in handleOp()
315 BREAK_ON_READ_ERROR(reader); in handleOp()
320 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
322 reader->readRRect(&outer); in handleOp()
323 reader->readRRect(&inner); in handleOp()
324 BREAK_ON_READ_ERROR(reader); in handleOp()
330 reader->readRect(&rect); in handleOp()
331 SkCanvas::QuadAAFlags aaFlags = static_cast<SkCanvas::QuadAAFlags>(reader->read32()); in handleOp()
333 reader->readColor4f(&color); in handleOp()
334 SkBlendMode blend = reader->read32LE(SkBlendMode::kLastMode); in handleOp()
335 BREAK_ON_READ_ERROR(reader); in handleOp()
336 bool hasClip = reader->readInt(); in handleOp()
339 clip = (const SkPoint*) reader->skip(4, sizeof(SkPoint)); in handleOp()
341 BREAK_ON_READ_ERROR(reader); in handleOp()
350 int cnt = reader->readInt(); in handleOp()
351 if (!reader->validate(cnt >= 0)) { in handleOp()
354 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
358 sampling = reader->readSampling(); in handleOp()
364 reader->checkRange(SkCanvas::kStrict_SrcRectConstraint, in handleOp()
367 if (!reader->validate(SkSafeMath::Mul(cnt, kEntryReadSize) <= reader->available())) { in handleOp()
376 for (int i = 0; i < cnt && reader->isValid(); ++i) { in handleOp()
377 set[i].fImage = sk_ref_sp(fPictureData->getImage(reader)); in handleOp()
378 reader->readRect(&set[i].fSrcRect); in handleOp()
379 reader->readRect(&set[i].fDstRect); in handleOp()
380 set[i].fMatrixIndex = reader->readInt(); in handleOp()
381 set[i].fAlpha = reader->readScalar(); in handleOp()
382 set[i].fAAFlags = reader->readUInt(); in handleOp()
383 set[i].fHasClip = reader->readInt(); in handleOp()
391 int dstClipPointCount = reader->readInt(); in handleOp()
393 if (!reader->validate(dstClipPointCount >= 0) || in handleOp()
394 !reader->validate(expectedClipPointCount == dstClipPointCount)) { in handleOp()
400 dstClips = (const SkPoint*) reader->skip(dstClipPointCount, sizeof(SkPoint)); in handleOp()
402 // Not enough bytes remaining so the reader has been invalidated in handleOp()
406 int matrixCount = reader->readInt(); in handleOp()
407 if (!reader->validate(matrixCount >= 0) || in handleOp()
408 !reader->validate(maxMatrixIndex == (matrixCount - 1)) || in handleOp()
409 !reader->validate( in handleOp()
410 SkSafeMath::Mul(matrixCount, kMatrixSize) <= reader->available())) { in handleOp()
416 for (int i = 0; i < matrixCount && reader->isValid(); ++i) { in handleOp()
417 reader->readMatrix(&matrices.push_back()); in handleOp()
419 BREAK_ON_READ_ERROR(reader); in handleOp()
425 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
426 const SkImage* image = fPictureData->getImage(reader); in handleOp()
428 reader->readPoint(&loc); in handleOp()
429 BREAK_ON_READ_ERROR(reader); in handleOp()
436 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
437 const SkImage* image = fPictureData->getImage(reader); in handleOp()
439 reader->readPoint(&loc); in handleOp()
440 SkSamplingOptions sampling = reader->readSampling(); in handleOp()
441 BREAK_ON_READ_ERROR(reader); in handleOp()
446 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
447 const SkImage* image = fPictureData->getImage(reader); in handleOp()
449 (void)SkCanvasPriv::ReadLattice(*reader, &lattice); in handleOp()
450 const SkRect* dst = reader->skipT<SkRect>(); in handleOp()
451 BREAK_ON_READ_ERROR(reader); in handleOp()
456 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
457 const SkImage* image = fPictureData->getImage(reader); in handleOp()
459 (void)SkCanvasPriv::ReadLattice(*reader, &lattice); in handleOp()
460 const SkRect* dst = reader->skipT<SkRect>(); in handleOp()
461 SkFilterMode filter = reader->read32LE(SkFilterMode::kLinear); in handleOp()
462 BREAK_ON_READ_ERROR(reader); in handleOp()
467 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
468 const SkImage* image = fPictureData->getImage(reader); in handleOp()
470 reader->readIRect(&center); in handleOp()
472 reader->readRect(&dst); in handleOp()
473 BREAK_ON_READ_ERROR(reader); in handleOp()
478 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
479 const SkImage* image = fPictureData->getImage(reader); in handleOp()
481 const SkRect* src = get_rect_ptr(reader, &storage); // may be null in handleOp()
483 reader->readRect(&dst); // required in handleOp()
488 constraint = reader->checkRange(SkCanvas::kStrict_SrcRectConstraint, in handleOp()
491 BREAK_ON_READ_ERROR(reader); in handleOp()
501 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
502 const SkImage* image = fPictureData->getImage(reader); in handleOp()
503 SkRect src = reader->readRect(); in handleOp()
504 SkRect dst = reader->readRect(); in handleOp()
505 SkSamplingOptions sampling = reader->readSampling(); in handleOp()
506 auto constraint = reader->read32LE(SkCanvas::kFast_SrcRectConstraint); in handleOp()
507 BREAK_ON_READ_ERROR(reader); in handleOp()
512 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
514 reader->readRect(&rect); in handleOp()
515 BREAK_ON_READ_ERROR(reader); in handleOp()
520 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
521 BREAK_ON_READ_ERROR(reader); in handleOp()
526 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
527 BREAK_ON_READ_ERROR(reader); in handleOp()
532 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
534 const SkPoint* cubics = (const SkPoint*)reader->skip(SkPatchUtils::kNumCtrlPts, in handleOp()
536 uint32_t flag = reader->readInt(); in handleOp()
539 colors = (const SkColor*)reader->skip(SkPatchUtils::kNumCorners, sizeof(SkColor)); in handleOp()
543 texCoords = (const SkPoint*)reader->skip(SkPatchUtils::kNumCorners, in handleOp()
548 unsigned mode = reader->readInt(); in handleOp()
553 BREAK_ON_READ_ERROR(reader); in handleOp()
558 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
559 const auto& path = fPictureData->getPath(reader); in handleOp()
560 BREAK_ON_READ_ERROR(reader); in handleOp()
565 const auto* pic = fPictureData->getPicture(reader); in handleOp()
566 BREAK_ON_READ_ERROR(reader); in handleOp()
571 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
573 reader->readMatrix(&matrix); in handleOp()
574 const SkPicture* pic = fPictureData->getPicture(reader); in handleOp()
575 BREAK_ON_READ_ERROR(reader); in handleOp()
580 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
581 SkCanvas::PointMode mode = reader->checkRange(SkCanvas::kPoints_PointMode, in handleOp()
583 size_t count = reader->readInt(); in handleOp()
584 const SkPoint* pts = (const SkPoint*)reader->skip(count, sizeof(SkPoint)); in handleOp()
585 BREAK_ON_READ_ERROR(reader); in handleOp()
590 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
592 reader->readRect(&rect); in handleOp()
593 BREAK_ON_READ_ERROR(reader); in handleOp()
598 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
600 reader->readRegion(&region); in handleOp()
601 BREAK_ON_READ_ERROR(reader); in handleOp()
606 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
608 reader->readRRect(&rrect); in handleOp()
609 BREAK_ON_READ_ERROR(reader); in handleOp()
614 const auto& path = fPictureData->getPath(reader); in handleOp()
616 reader->readPoint3(&rec.fZPlaneParams); in handleOp()
617 reader->readPoint3(&rec.fLightPos); in handleOp()
618 rec.fLightRadius = reader->readScalar(); in handleOp()
619 rec.fAmbientColor = reader->read32(); in handleOp()
620 rec.fSpotColor = reader->read32(); in handleOp()
621 rec.fFlags = reader->read32(); in handleOp()
622 BREAK_ON_READ_ERROR(reader); in handleOp()
627 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
628 const SkTextBlob* blob = fPictureData->getTextBlob(reader); in handleOp()
629 SkScalar x = reader->readScalar(); in handleOp()
630 SkScalar y = reader->readScalar(); in handleOp()
631 BREAK_ON_READ_ERROR(reader); in handleOp()
636 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
637 const sktext::gpu::Slug* slug = fPictureData->getSlug(reader); in handleOp()
638 BREAK_ON_READ_ERROR(reader); in handleOp()
643 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
644 const SkVertices* vertices = fPictureData->getVertices(reader); in handleOp()
645 const int boneCount = reader->readInt(); in handleOp()
646 (void)reader->skip(boneCount, sizeof(SkVertices_DeprecatedBone)); in handleOp()
647 SkBlendMode bmode = reader->read32LE(SkBlendMode::kLastMode); in handleOp()
648 BREAK_ON_READ_ERROR(reader); in handleOp()
658 auto deg = reader->readScalar(); in handleOp()
665 uint32_t flags = reader->readInt(); in handleOp()
669 reader->readRect(&storage); in handleOp()
676 const uint32_t flatFlags = reader->readInt(); in handleOp()
680 reader->readRect(&bounds); in handleOp()
684 rec.fPaint = &fPictureData->requiredPaint(reader); in handleOp()
687 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
691 rec.fSaveLayerFlags = reader->readInt(); in handleOp()
694 (void)fPictureData->getImage(reader); in handleOp()
698 reader->readMatrix(&clipMatrix_ignored); in handleOp()
700 if (!reader->isVersionLT(SkPicturePriv::Version::kBackdropScaleFactor) && in handleOp()
702 SkCanvasPriv::SetBackdropScaleFactor(&rec, reader->readScalar()); in handleOp()
704 if (!reader->isVersionLT(SkPicturePriv::Version::kMultipleFiltersOnSaveLayer) && in handleOp()
706 int filterCount = reader->readUInt(); in handleOp()
707 reader->validate(filterCount > 0 && filterCount <= SkCanvas::kMaxFiltersPerLayer); in handleOp()
708 BREAK_ON_READ_ERROR(reader); in handleOp()
711 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
716 BREAK_ON_READ_ERROR(reader); in handleOp()
721 SkScalar sx = reader->readScalar(); in handleOp()
722 SkScalar sy = reader->readScalar(); in handleOp()
727 reader->read(&m); in handleOp()
732 reader->readMatrix(&matrix); in handleOp()
736 SkScalar sx = reader->readScalar(); in handleOp()
737 SkScalar sy = reader->readScalar(); in handleOp()
741 SkScalar dx = reader->readScalar(); in handleOp()
742 SkScalar dy = reader->readScalar(); in handleOp()
746 reader->validate(false); // unknown op in handleOp()