Lines Matching defs:blob
60 const SkTextBlob::RunRecord* SkTextBlob::RunRecord::First(const SkTextBlob* blob) {
61 // The first record (if present) is stored following the blob object.
63 return reinterpret_cast<const RunRecord*>(SkAlignPtr((uintptr_t)(blob + 1)));
210 SkTextBlobRunIterator::SkTextBlobRunIterator(const SkTextBlob* blob)
211 : fCurrentRun(SkTextBlob::RunRecord::First(blob)) {
212 SkDEBUGCODE(fStorageTop = (uint8_t*)blob + blob->fStorageSize;)
254 // The easiest way to accomplish that is to use the blob destructor.
392 // the first allocation also includes blob storage
594 SkTextBlob* blob = new (fStorage.release()) SkTextBlob(fBounds);
595 SkDEBUGCODE(const_cast<SkTextBlob*>(blob)->fStorageSize = fStorageSize;)
600 for (const auto* run = SkTextBlob::RunRecord::First(blob); run;
604 run->validate(reinterpret_cast<const uint8_t*>(blob) + fStorageUsed);
618 return sk_sp<SkTextBlob>(blob);
691 void SkTextBlobPriv::Flatten(const SkTextBlob& blob, SkWriteBuffer& buffer) {
694 buffer.writeRect(blob.bounds());
696 SkTextBlobRunIterator it(&blob);