Home | History | Annotate | Download | only in core

Lines Matching refs:reader

38  * Read the next op code and chunk size from 'reader'. The returned size
44 DrawType SkPicturePlayback::ReadOpAndSize(SkReadBuffer* reader, uint32_t* size) {
45 uint32_t temp = reader->readInt();
54 *size = reader->readInt();
61 static const SkRect* get_rect_ptr(SkReadBuffer* reader, SkRect* storage) {
62 if (reader->readBool()) {
63 reader->readRect(storage);
72 TextContainer(SkReadBuffer* reader, const SkPaint* paint) {
73 if (reader->validate(paint != nullptr)) {
74 fByteLength = reader->readInt();
75 fText = (const char*)reader->skip(fByteLength);
76 if (reader->isValid()) {
81 reader->validate(fCount > 0);
105 std::unique_ptr<SkReadBuffer> reader;
107 reader.reset(buffer->clone(fPictureData->opData()->bytes(),
110 reader.reset(new SkReadBuffer(fPictureData->opData()->bytes(),
119 while (!reader->eof()) {
124 fCurOffset = reader->offset();
126 DrawType op = ReadOpAndSize(reader.get(), &size);
127 if (!reader->validate(op > UNUSED && op <= LAST_DRAWTYPE_ENUM)) {
131 this->handleOp(reader.get(), op, size, canvas, initialMatrix);
134 // need to propagate invalid state to the parent reader
136 buffer->validate(reader->isValid());
140 static void validate_offsetToRestore(SkReadBuffer* reader, size_t offsetToRestore) {
142 reader->validate(SkIsAlign4(offsetToRestore) && offsetToRestore >= reader->offset());
146 void SkPicturePlayback::handleOp(SkReadBuffer* reader,
156 reader->skip(size - 4);
162 const SkPath& path = fPictureData->getPath(reader);
163 uint32_t packed = reader->readInt();
164 SkClipOp clipOp = ClipParams_unpackRegionOp(reader, packed);
166 size_t offsetToRestore = reader->readInt();
167 validate_offsetToRestore(reader, offsetToRestore);
168 BREAK_ON_READ_ERROR(reader);
172 reader->skip(offsetToRestore - reader->offset());
177 reader->readRegion(&region);
178 uint32_t packed = reader->readInt();
179 SkClipOp clipOp = ClipParams_unpackRegionOp(reader, packed);
180 size_t offsetToRestore = reader->readInt();
181 validate_offsetToRestore(reader, offsetToRestore);
182 BREAK_ON_READ_ERROR(reader);
186 reader->skip(offsetToRestore - reader->offset());
191 reader->readRect(&rect);
192 uint32_t packed = reader->readInt();
193 SkClipOp clipOp = ClipParams_unpackRegionOp(reader, packed);
195 size_t offsetToRestore = reader->readInt();
196 validate_offsetToRestore(reader, offsetToRestore);
197 BREAK_ON_READ_ERROR(reader);
201 reader->skip(offsetToRestore - reader->offset());
206 reader->readRRect(&rrect);
207 uint32_t packed = reader->readInt();
208 SkClipOp clipOp = ClipParams_unpackRegionOp(reader, packed);
210 size_t offsetToRestore = reader->readInt();
211 validate_offsetToRestore(reader, offsetToRestore);
212 BREAK_ON_READ_ERROR(reader);
216 reader->skip(offsetToRestore - reader->offset());
223 reader->readMatrix(&matrix);
224 BREAK_ON_READ_ERROR(reader);
231 reader->readRect(&rect);
233 reader->readString(&key);
234 sk_sp<SkData> data = reader->readByteArrayAsData();
235 BREAK_ON_READ_ERROR(reader);
240 const SkPaint* paint = fPictureData->getPaint(reader);
242 reader->readRect(&rect);
243 SkScalar startAngle = reader->readScalar();
244 SkScalar sweepAngle = reader->readScalar();
245 int useCenter = reader->readInt();
246 BREAK_ON_READ_ERROR(reader);
253 const SkPaint* paint = fPictureData->getPaint(reader);
254 const SkImage* atlas = fPictureData->getImage(reader);
255 const uint32_t flags = reader->readUInt();
256 const int count = reader->readUInt();
257 const SkRSXform* xform = (const SkRSXform*)reader->skip(count, sizeof(SkRSXform));
258 const SkRect* tex = (const SkRect*)reader->skip(count, sizeof(SkRect));
262 colors = (const SkColor*)reader->skip(count, sizeof(SkColor));
263 mode = (SkBlendMode)reader->readUInt();
267 cull = (const SkRect*)reader->skip(sizeof(SkRect));
269 BREAK_ON_READ_ERROR(reader);
274 const SkPaint* paint = fPictureData->getPaint(reader);
275 const SkImage* image = fPictureData->getBitmapAsImage(reader);
277 reader->readPoint(&loc);
278 BREAK_ON_READ_ERROR(reader);
283 const SkPaint* paint = fPictureData->getPaint(reader);
284 const SkImage* image = fPictureData->getBitmapAsImage(reader);
286 const SkRect* src = get_rect_ptr(reader, &storage); // may be null
288 reader->readRect(&dst); // required
289 SkCanvas::SrcRectConstraint constraint = (SkCanvas::SrcRectConstraint)reader->readInt();
290 BREAK_ON_READ_ERROR(reader);
299 const SkPaint* paint = fPictureData->getPaint(reader);
300 const SkImage* image = fPictureData->getBitmapAsImage(reader);
302 reader->readMatrix(&matrix);
303 BREAK_ON_READ_ERROR(reader);
310 const SkPaint* paint = fPictureData->getPaint(reader);
311 const SkImage* image = fPictureData->getBitmapAsImage(reader);
313 reader->readIRect(&src);
315 reader->readRect(&dst);
316 BREAK_ON_READ_ERROR(reader);
321 auto c = reader->readInt();
322 BREAK_ON_READ_ERROR(reader);
328 size_t length = reader->readInt();
329 (void)reader->skip(length);
333 auto* d = fPictureData->getDrawable(reader);
334 BREAK_ON_READ_ERROR(reader);
340 reader->readMatrix(&matrix);
341 SkDrawable* drawable = fPictureData->getDrawable(reader);
342 BREAK_ON_READ_ERROR(reader);
347 const SkPaint* paint = fPictureData->getPaint(reader);
349 reader->readRRect(&outer);
350 reader->readRRect(&inner);
351 BREAK_ON_READ_ERROR(reader);
358 const SkPaint* paint = fPictureData->getPaint(reader);
359 const SkImage* image = fPictureData->getImage(reader);
361 reader->readPoint(&loc);
362 BREAK_ON_READ_ERROR(reader);
367 const SkPaint* paint = fPictureData->getPaint(reader);
368 const SkImage* image = fPictureData->getImage(reader);
370 (void)SkCanvasPriv::ReadLattice(*reader, &lattice);
371 const SkRect* dst = reader->skipT<SkRect>();
372 BREAK_ON_READ_ERROR(reader);
377 const SkPaint* paint = fPictureData->getPaint(reader);
378 const SkImage* image = fPictureData->getImage(reader);
380 reader->readIRect(&center);
382 reader->readRect(&dst);
383 BREAK_ON_READ_ERROR(reader);
388 const SkPaint* paint = fPictureData->getPaint(reader);
389 const SkImage* image = fPictureData->getImage(reader);
391 const SkRect* src = get_rect_ptr(reader, &storage); // may be null
393 reader->readRect(&dst); // required
398 constraint = (SkCanvas::SrcRectConstraint)reader->readInt();
400 BREAK_ON_READ_ERROR(reader);
405 const SkPaint* paint = fPictureData->getPaint(reader);
407 reader->readRect(&rect);
408 BREAK_ON_READ_ERROR(reader);
415 const SkPaint* paint = fPictureData->getPaint(reader);
416 BREAK_ON_READ_ERROR(reader);
423 const SkPaint* paint = fPictureData->getPaint(reader);
425 const SkPoint* cubics = (const SkPoint*)reader->skip(SkPatchUtils::kNumCtrlPts,
427 uint32_t flag = reader->readInt();
430 colors = (const SkColor*)reader->skip(SkPatchUtils::kNumCorners, sizeof(SkColor));
434 texCoords = (const SkPoint*)reader->skip(SkPatchUtils::kNumCorners,
439 unsigned mode = reader->readInt();
444 BREAK_ON_READ_ERROR(reader);
451 const SkPaint* paint = fPictureData->getPaint(reader);
452 const auto& path = fPictureData->getPath(reader);
453 BREAK_ON_READ_ERROR(reader);
460 const auto* pic = fPictureData->getPicture(reader);
461 BREAK_ON_READ_ERROR(reader);
466 const SkPaint* paint = fPictureData->getPaint(reader);
468 reader->readMatrix(&matrix);
469 const SkPicture* pic = fPictureData->getPicture(reader);
470 BREAK_ON_READ_ERROR(reader);
475 const SkPaint* paint = fPictureData->getPaint(reader);
476 SkCanvas::PointMode mode = (SkCanvas::PointMode)reader->readInt();
477 size_t count = reader->readInt();
478 const SkPoint* pts = (const SkPoint*)reader->skip(count, sizeof(SkPoint));
479 BREAK_ON_READ_ERROR(reader);
486 const SkPaint* paint = fPictureData->getPaint(reader);
487 TextContainer text(reader, paint);
488 size_t points = reader->readInt();
489 reader->validate(points == text.count());
490 const SkPoint* pos = (const SkPoint*)reader->skip(points, sizeof(SkPoint));
491 BREAK_ON_READ_ERROR(reader);
498 const SkPaint* paint = fPictureData->getPaint(reader);
499 TextContainer text(reader, paint);
500 size_t points = reader->readInt();
501 reader->validate(points == text.count());
502 const SkPoint* pos = (const SkPoint*)reader->skip(points, sizeof(SkPoint));
503 const SkScalar top = reader->readScalar();
504 const SkScalar bottom = reader->readScalar();
505 BREAK_ON_READ_ERROR(reader);
513 const SkPaint* paint = fPictureData->getPaint(reader);
514 TextContainer text(reader, paint);
515 size_t xCount = reader->readInt();
516 reader->validate(xCount == text.count());
517 const SkScalar constY = reader->readScalar();
518 const SkScalar* xpos = (const SkScalar*)reader->skip(xCount, sizeof(SkScalar));
519 BREAK_ON_READ_ERROR(reader);
526 const SkPaint* paint = fPictureData->getPaint(reader);
527 TextContainer text(reader, paint);
528 size_t xCount = reader->readInt();
529 reader->validate(xCount == text.count());
530 const SkScalar* xpos = (const SkScalar*)reader->skip(SkSafeMath::Add(3, xCount),
532 BREAK_ON_READ_ERROR(reader);
543 const SkPaint* paint = fPictureData->getPaint(reader);
545 reader->readRect(&rect);
546 BREAK_ON_READ_ERROR(reader);
553 const SkPaint* paint = fPictureData->getPaint(reader);
555 reader->readRegion(&region);
556 BREAK_ON_READ_ERROR(reader);
563 const SkPaint* paint = fPictureData->getPaint(reader);
565 reader->readRRect(&rrect);
566 BREAK_ON_READ_ERROR(reader);
573 const auto& path = fPictureData->getPath(reader);
575 reader->readPoint3(&rec.fZPlaneParams);
576 reader->readPoint3(&rec.fLightPos);
577 rec.fLightRadius = reader->readScalar();
578 if (reader->isVersionLT(SkReadBuffer::kTwoColorDrawShadow_Version)) {
579 SkScalar ambientAlpha = reader->readScalar();
580 SkScalar spotAlpha = reader->readScalar();
581 SkColor color = reader->read32();
585 rec.fAmbientColor = reader->read32();
586 rec.fSpotColor = reader->read32();
588 rec.fFlags = reader->read32();
589 BREAK_ON_READ_ERROR(reader);
594 /* const SkPaint* paint = */ fPictureData->getPaint(reader);
595 /* const SkImage* image = */ fPictureData->getBitmapAsImage(reader);
596 /* int left = */ reader->readInt();
597 /* int top = */ reader->readInt();
601 const SkPaint* paint = fPictureData->getPaint(reader);
602 TextContainer text(reader, paint);
603 SkScalar x = reader->readScalar();
604 SkScalar y = reader->readScalar();
605 BREAK_ON_READ_ERROR(reader);
612 const SkPaint* paint = fPictureData->getPaint(reader);
613 const SkTextBlob* blob = fPictureData->getTextBlob(reader);
614 SkScalar x = reader->readScalar();
615 SkScalar y = reader->readScalar();
616 BREAK_ON_READ_ERROR(reader);
623 const SkPaint* paint = fPictureData->getPaint(reader);
624 TextContainer text(reader, paint);
625 const SkScalar* ptr = (const SkScalar*)reader->skip(4 * sizeof(SkScalar));
626 BREAK_ON_READ_ERROR(reader);
640 const SkPaint* paint = fPictureData->getPaint(reader);
641 TextContainer text(reader, paint);
642 const SkPath& path = fPictureData->getPath(reader);
644 reader->readMatrix(&matrix);
645 BREAK_ON_READ_ERROR(reader);
652 const SkPaint* paint = fPictureData->getPaint(reader);
653 uint32_t count = reader->readUInt();
654 uint32_t flags = reader->readUInt();
655 TextContainer text(reader, paint);
656 const SkRSXform* xform = (const SkRSXform*)reader->skip(count, sizeof(SkRSXform));
659 cull = (const SkRect*)reader->skip(sizeof(SkRect));
661 reader->validate(count == text.count());
662 BREAK_ON_READ_ERROR(reader);
669 const SkPaint* paint = fPictureData->getPaint(reader);
670 const SkVertices* vertices = fPictureData->getVertices(reader);
671 SkBlendMode bmode = reader->read32LE(SkBlendMode::kLastMode);
672 BREAK_ON_READ_ERROR(reader);
682 auto deg = reader->readScalar();
690 const SkRect* boundsPtr = get_rect_ptr(reader, &storage);
691 const SkPaint* paint = fPictureData->getPaint(reader);
692 auto flags = SkCanvas::LegacySaveFlagsToSaveLayerFlags(reader->readInt());
693 BREAK_ON_READ_ERROR(reader);
700 const uint32_t flatFlags = reader->readInt();
703 reader->readRect(&bounds);
707 rec.fPaint = fPictureData->getPaint(reader);
710 if (const auto* paint = fPictureData->getPaint(reader)) {
715 rec.fSaveLayerFlags = reader->readInt();
718 rec.fClipMask = fPictureData->getImage(reader);
721 reader->readMatrix(&clipMatrix);
724 BREAK_ON_READ_ERROR(reader);
729 SkScalar sx = reader->readScalar();
730 SkScalar sy = reader->readScalar();
735 reader->readMatrix(&matrix);
740 SkScalar sx = reader->readScalar();
741 SkScalar sy = reader->readScalar();
745 SkScalar dx = reader->readScalar();
746 SkScalar dy = reader->readScalar();
750 reader->validate(false); // unknown op