Lines Matching refs:reader
52 static const SkRect* get_rect_ptr(SkReadBuffer* reader, SkRect* storage) { in get_rect_ptr() argument
53 if (reader->readBool()) { in get_rect_ptr()
54 reader->readRect(storage); in get_rect_ptr()
67 SkReadBuffer reader(fPictureData->opData()->bytes(), in draw() local
69 reader.setVersion(fPictureData->info().getVersion()); in draw()
76 while (!reader.eof() && reader.isValid()) { in draw()
81 fCurOffset = reader.offset(); in draw()
83 uint32_t bits = reader.readInt(); in draw()
87 size = reader.readInt(); in draw()
90 if (!reader.validate(size > 0 && op > UNUSED && op <= LAST_DRAWTYPE_ENUM)) { in draw()
94 this->handleOp(&reader, (DrawType)op, size, canvas, initialMatrix); in draw()
99 buffer->validate(reader.isValid()); in draw()
103 static void validate_offsetToRestore(SkReadBuffer* reader, size_t offsetToRestore) { in validate_offsetToRestore() argument
105 reader->validate(SkIsAlign4(offsetToRestore) && offsetToRestore >= reader->offset()); in validate_offsetToRestore()
109 static bool do_clip_op(SkReadBuffer* reader, SkCanvas* canvas, SkRegion::Op op, in do_clip_op() argument
119 SkASSERT(reader->isVersionLT(SkPicturePriv::kNoExpandingClipOps)); in do_clip_op()
125 SkASSERT(reader->isVersionLT(SkPicturePriv::kNoExpandingClipOps)); in do_clip_op()
130 void SkPicturePlayback::handleOp(SkReadBuffer* reader, in handleOp() argument
140 reader->skip(size - 4); in handleOp()
145 const SkPath& path = fPictureData->getPath(reader); in handleOp()
146 uint32_t packed = reader->readInt(); in handleOp()
147 SkRegion::Op rgnOp = ClipParams_unpackRegionOp(reader, packed); in handleOp()
149 size_t offsetToRestore = reader->readInt(); in handleOp()
150 validate_offsetToRestore(reader, offsetToRestore); in handleOp()
151 BREAK_ON_READ_ERROR(reader); in handleOp()
154 if (do_clip_op(reader, canvas, rgnOp, &clipOp)) { in handleOp()
158 reader->skip(offsetToRestore - reader->offset()); in handleOp()
163 reader->readRegion(®ion); in handleOp()
164 uint32_t packed = reader->readInt(); in handleOp()
165 SkRegion::Op rgnOp = ClipParams_unpackRegionOp(reader, packed); in handleOp()
166 size_t offsetToRestore = reader->readInt(); in handleOp()
167 validate_offsetToRestore(reader, offsetToRestore); in handleOp()
168 BREAK_ON_READ_ERROR(reader); in handleOp()
171 if (do_clip_op(reader, canvas, rgnOp, &clipOp)) { in handleOp()
175 reader->skip(offsetToRestore - reader->offset()); in handleOp()
180 reader->readRect(&rect); in handleOp()
181 uint32_t packed = reader->readInt(); in handleOp()
182 SkRegion::Op rgnOp = ClipParams_unpackRegionOp(reader, packed); in handleOp()
184 size_t offsetToRestore = reader->readInt(); in handleOp()
185 validate_offsetToRestore(reader, offsetToRestore); in handleOp()
186 BREAK_ON_READ_ERROR(reader); in handleOp()
189 if (do_clip_op(reader, canvas, rgnOp, &clipOp)) { in handleOp()
193 reader->skip(offsetToRestore - reader->offset()); in handleOp()
198 reader->readRRect(&rrect); in handleOp()
199 uint32_t packed = reader->readInt(); in handleOp()
200 SkRegion::Op rgnOp = ClipParams_unpackRegionOp(reader, packed); in handleOp()
202 size_t offsetToRestore = reader->readInt(); in handleOp()
203 validate_offsetToRestore(reader, offsetToRestore); in handleOp()
204 BREAK_ON_READ_ERROR(reader); in handleOp()
207 if (do_clip_op(reader, canvas, rgnOp, &clipOp)) { in handleOp()
211 reader->skip(offsetToRestore - reader->offset()); in handleOp()
215 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
218 SkClipOp clipOp = reader->checkRange(SkClipOp::kDifference, SkClipOp::kIntersect); in handleOp()
219 BREAK_ON_READ_ERROR(reader); in handleOp()
233 reader->readMatrix(&matrix); in handleOp()
234 BREAK_ON_READ_ERROR(reader); in handleOp()
240 const SkScalar* colMaj = reader->skipT<SkScalar>(16); in handleOp()
241 BREAK_ON_READ_ERROR(reader); in handleOp()
247 reader->readRect(&rect); in handleOp()
249 reader->readString(&key); in handleOp()
250 sk_sp<SkData> data = reader->readByteArrayAsData(); in handleOp()
251 BREAK_ON_READ_ERROR(reader); in handleOp()
257 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
259 reader->readRect(&rect); in handleOp()
260 SkScalar startAngle = reader->readScalar(); in handleOp()
261 SkScalar sweepAngle = reader->readScalar(); in handleOp()
262 int useCenter = reader->readInt(); in handleOp()
263 BREAK_ON_READ_ERROR(reader); in handleOp()
268 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
269 const SkImage* atlas = fPictureData->getImage(reader); in handleOp()
270 const uint32_t flags = reader->readUInt(); in handleOp()
271 const int count = reader->readUInt(); in handleOp()
272 const SkRSXform* xform = (const SkRSXform*)reader->skip(count, sizeof(SkRSXform)); in handleOp()
273 const SkRect* tex = (const SkRect*)reader->skip(count, sizeof(SkRect)); in handleOp()
277 colors = (const SkColor*)reader->skip(count, sizeof(SkColor)); in handleOp()
278 mode = reader->read32LE(SkBlendMode::kLastMode); in handleOp()
279 BREAK_ON_READ_ERROR(reader); in handleOp()
283 cull = (const SkRect*)reader->skip(sizeof(SkRect)); in handleOp()
285 BREAK_ON_READ_ERROR(reader); in handleOp()
289 sampling = reader->readSampling(); in handleOp()
290 BREAK_ON_READ_ERROR(reader); in handleOp()
295 auto c = reader->readInt(); in handleOp()
296 BREAK_ON_READ_ERROR(reader); in handleOp()
302 size_t length = reader->readInt(); in handleOp()
303 (void)reader->skip(length); in handleOp()
307 auto* d = fPictureData->getDrawable(reader); in handleOp()
308 BREAK_ON_READ_ERROR(reader); in handleOp()
314 reader->readMatrix(&matrix); in handleOp()
315 SkDrawable* drawable = fPictureData->getDrawable(reader); in handleOp()
316 BREAK_ON_READ_ERROR(reader); in handleOp()
321 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
323 reader->readRRect(&outer); in handleOp()
324 reader->readRRect(&inner); in handleOp()
325 BREAK_ON_READ_ERROR(reader); in handleOp()
331 reader->readRect(&rect); in handleOp()
332 SkCanvas::QuadAAFlags aaFlags = static_cast<SkCanvas::QuadAAFlags>(reader->read32()); in handleOp()
334 reader->readColor4f(&color); in handleOp()
335 SkBlendMode blend = reader->read32LE(SkBlendMode::kLastMode); in handleOp()
336 BREAK_ON_READ_ERROR(reader); in handleOp()
337 bool hasClip = reader->readInt(); in handleOp()
340 clip = (const SkPoint*) reader->skip(4, sizeof(SkPoint)); in handleOp()
342 BREAK_ON_READ_ERROR(reader); in handleOp()
351 int cnt = reader->readInt(); in handleOp()
352 if (!reader->validate(cnt >= 0)) { in handleOp()
355 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
359 sampling = reader->readSampling(); in handleOp()
365 reader->checkRange(SkCanvas::kStrict_SrcRectConstraint, in handleOp()
368 if (!reader->validate(SkSafeMath::Mul(cnt, kEntryReadSize) <= reader->available())) { in handleOp()
377 for (int i = 0; i < cnt && reader->isValid(); ++i) { in handleOp()
378 set[i].fImage = sk_ref_sp(fPictureData->getImage(reader)); in handleOp()
379 reader->readRect(&set[i].fSrcRect); in handleOp()
380 reader->readRect(&set[i].fDstRect); in handleOp()
381 set[i].fMatrixIndex = reader->readInt(); in handleOp()
382 set[i].fAlpha = reader->readScalar(); in handleOp()
383 set[i].fAAFlags = reader->readUInt(); in handleOp()
384 set[i].fHasClip = reader->readInt(); in handleOp()
392 int dstClipPointCount = reader->readInt(); in handleOp()
394 if (!reader->validate(dstClipPointCount >= 0) || in handleOp()
395 !reader->validate(expectedClipPointCount == dstClipPointCount)) { in handleOp()
401 dstClips = (const SkPoint*) reader->skip(dstClipPointCount, sizeof(SkPoint)); in handleOp()
407 int matrixCount = reader->readInt(); in handleOp()
408 if (!reader->validate(matrixCount >= 0) || in handleOp()
409 !reader->validate(maxMatrixIndex == (matrixCount - 1)) || in handleOp()
410 !reader->validate( in handleOp()
411 SkSafeMath::Mul(matrixCount, kMatrixSize) <= reader->available())) { in handleOp()
417 for (int i = 0; i < matrixCount && reader->isValid(); ++i) { in handleOp()
418 reader->readMatrix(&matrices.push_back()); in handleOp()
420 BREAK_ON_READ_ERROR(reader); in handleOp()
426 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
427 const SkImage* image = fPictureData->getImage(reader); in handleOp()
429 reader->readPoint(&loc); in handleOp()
430 BREAK_ON_READ_ERROR(reader); in handleOp()
437 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
438 const SkImage* image = fPictureData->getImage(reader); in handleOp()
440 reader->readPoint(&loc); in handleOp()
441 SkSamplingOptions sampling = reader->readSampling(); in handleOp()
442 BREAK_ON_READ_ERROR(reader); in handleOp()
447 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
448 const SkImage* image = fPictureData->getImage(reader); in handleOp()
450 (void)SkCanvasPriv::ReadLattice(*reader, &lattice); in handleOp()
451 const SkRect* dst = reader->skipT<SkRect>(); in handleOp()
452 BREAK_ON_READ_ERROR(reader); in handleOp()
457 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
458 const SkImage* image = fPictureData->getImage(reader); in handleOp()
460 (void)SkCanvasPriv::ReadLattice(*reader, &lattice); in handleOp()
461 const SkRect* dst = reader->skipT<SkRect>(); in handleOp()
462 SkFilterMode filter = reader->read32LE(SkFilterMode::kLinear); in handleOp()
463 BREAK_ON_READ_ERROR(reader); in handleOp()
468 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
469 const SkImage* image = fPictureData->getImage(reader); in handleOp()
471 reader->readIRect(¢er); in handleOp()
473 reader->readRect(&dst); in handleOp()
474 BREAK_ON_READ_ERROR(reader); in handleOp()
479 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
480 const SkImage* image = fPictureData->getImage(reader); in handleOp()
482 const SkRect* src = get_rect_ptr(reader, &storage); // may be null in handleOp()
484 reader->readRect(&dst); // required in handleOp()
489 constraint = reader->checkRange(SkCanvas::kStrict_SrcRectConstraint, in handleOp()
492 BREAK_ON_READ_ERROR(reader); in handleOp()
502 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
503 const SkImage* image = fPictureData->getImage(reader); in handleOp()
504 SkRect src = reader->readRect(); in handleOp()
505 SkRect dst = reader->readRect(); in handleOp()
506 SkSamplingOptions sampling = reader->readSampling(); in handleOp()
507 auto constraint = reader->read32LE(SkCanvas::kFast_SrcRectConstraint); in handleOp()
508 BREAK_ON_READ_ERROR(reader); in handleOp()
513 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
515 reader->readRect(&rect); in handleOp()
516 BREAK_ON_READ_ERROR(reader); in handleOp()
521 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
522 BREAK_ON_READ_ERROR(reader); in handleOp()
527 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
528 BREAK_ON_READ_ERROR(reader); in handleOp()
533 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
535 const SkPoint* cubics = (const SkPoint*)reader->skip(SkPatchUtils::kNumCtrlPts, in handleOp()
537 uint32_t flag = reader->readInt(); in handleOp()
540 colors = (const SkColor*)reader->skip(SkPatchUtils::kNumCorners, sizeof(SkColor)); in handleOp()
544 texCoords = (const SkPoint*)reader->skip(SkPatchUtils::kNumCorners, in handleOp()
549 unsigned mode = reader->readInt(); in handleOp()
554 BREAK_ON_READ_ERROR(reader); in handleOp()
559 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
560 const auto& path = fPictureData->getPath(reader); in handleOp()
561 BREAK_ON_READ_ERROR(reader); in handleOp()
566 const auto* pic = fPictureData->getPicture(reader); in handleOp()
567 BREAK_ON_READ_ERROR(reader); in handleOp()
572 const SkPaint* paint = fPictureData->optionalPaint(reader); in handleOp()
574 reader->readMatrix(&matrix); in handleOp()
575 const SkPicture* pic = fPictureData->getPicture(reader); in handleOp()
576 BREAK_ON_READ_ERROR(reader); in handleOp()
581 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
582 SkCanvas::PointMode mode = reader->checkRange(SkCanvas::kPoints_PointMode, in handleOp()
584 size_t count = reader->readInt(); in handleOp()
585 const SkPoint* pts = (const SkPoint*)reader->skip(count, sizeof(SkPoint)); in handleOp()
586 BREAK_ON_READ_ERROR(reader); in handleOp()
591 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
593 reader->readRect(&rect); in handleOp()
594 BREAK_ON_READ_ERROR(reader); in handleOp()
599 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
601 reader->readRegion(®ion); in handleOp()
602 BREAK_ON_READ_ERROR(reader); in handleOp()
607 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
609 reader->readRRect(&rrect); in handleOp()
610 BREAK_ON_READ_ERROR(reader); in handleOp()
615 const auto& path = fPictureData->getPath(reader); in handleOp()
617 reader->readPoint3(&rec.fZPlaneParams); in handleOp()
618 reader->readPoint3(&rec.fLightPos); in handleOp()
619 rec.fLightRadius = reader->readScalar(); in handleOp()
620 rec.fAmbientColor = reader->read32(); in handleOp()
621 rec.fSpotColor = reader->read32(); in handleOp()
622 rec.fFlags = reader->read32(); in handleOp()
623 BREAK_ON_READ_ERROR(reader); in handleOp()
628 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
629 const SkTextBlob* blob = fPictureData->getTextBlob(reader); in handleOp()
630 SkScalar x = reader->readScalar(); in handleOp()
631 SkScalar y = reader->readScalar(); in handleOp()
632 BREAK_ON_READ_ERROR(reader); in handleOp()
637 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
638 const sktext::gpu::Slug* slug = fPictureData->getSlug(reader); in handleOp()
639 BREAK_ON_READ_ERROR(reader); in handleOp()
644 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
645 const SkVertices* vertices = fPictureData->getVertices(reader); in handleOp()
646 const int boneCount = reader->readInt(); in handleOp()
647 (void)reader->skip(boneCount, sizeof(SkVertices_DeprecatedBone)); in handleOp()
648 SkBlendMode bmode = reader->read32LE(SkBlendMode::kLastMode); in handleOp()
649 BREAK_ON_READ_ERROR(reader); in handleOp()
659 auto deg = reader->readScalar(); in handleOp()
666 uint32_t flags = reader->readInt(); in handleOp()
670 reader->readRect(&storage); in handleOp()
677 const uint32_t flatFlags = reader->readInt(); in handleOp()
681 reader->readRect(&bounds); in handleOp()
685 rec.fPaint = &fPictureData->requiredPaint(reader); in handleOp()
688 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
692 rec.fSaveLayerFlags = reader->readInt(); in handleOp()
695 (void)fPictureData->getImage(reader); in handleOp()
699 reader->readMatrix(&clipMatrix_ignored); in handleOp()
701 if (!reader->isVersionLT(SkPicturePriv::Version::kBackdropScaleFactor) && in handleOp()
703 SkCanvasPriv::SetBackdropScaleFactor(&rec, reader->readScalar()); in handleOp()
705 if (!reader->isVersionLT(SkPicturePriv::Version::kMultipleFiltersOnSaveLayer) && in handleOp()
707 int filterCount = reader->readUInt(); in handleOp()
708 reader->validate(filterCount > 0 && filterCount <= SkCanvas::kMaxFiltersPerLayer); in handleOp()
709 BREAK_ON_READ_ERROR(reader); in handleOp()
712 const SkPaint& paint = fPictureData->requiredPaint(reader); in handleOp()
717 if (!reader->isVersionLT(SkPicturePriv::Version::kSaveLayerBackdropTileMode) && in handleOp()
719 rec.fBackdropTileMode = reader->read32LE(SkTileMode::kLastTileMode); in handleOp()
721 BREAK_ON_READ_ERROR(reader); in handleOp()
726 SkScalar sx = reader->readScalar(); in handleOp()
727 SkScalar sy = reader->readScalar(); in handleOp()
732 reader->read(&m); in handleOp()
737 reader->readMatrix(&matrix); in handleOp()
741 SkScalar sx = reader->readScalar(); in handleOp()
742 SkScalar sy = reader->readScalar(); in handleOp()
746 SkScalar dx = reader->readScalar(); in handleOp()
747 SkScalar dy = reader->readScalar(); in handleOp()
751 reader->validate(false); // unknown op in handleOp()