sk_sp<SkPicture> SkPicture::MakeFromBuffer(SkReadBuffer& buffer) { SkPictInfo info; if (!InternalOnly_BufferIsSKP(&buffer, &info) || !buffer.readBool()) { return nullptr; } SkAutoTDelete<SkPictureData> data(SkPictureData::CreateFromBuffer(buffer, info)); return Forwardport(info, data, &buffer); }
SkPicture* SkPicture::CreateFromStream(SkStream* stream, InstallPixelRefProc proc) { SkPictInfo info; if (!InternalOnly_StreamIsSKP(stream, &info) || !stream->readBool()) { return nullptr; } SkAutoTDelete<SkPictureData> data(SkPictureData::CreateFromStream(stream, info, proc)); return Forwardport(info, data); }
sk_sp<SkPicture> SkPicture::MakeFromStream(SkStream* stream, InstallPixelRefProc proc, SkTypefacePlayback* typefaces) { SkPictInfo info; if (!InternalOnly_StreamIsSKP(stream, &info) || !stream->readBool()) { return nullptr; } SkAutoTDelete<SkPictureData> data( SkPictureData::CreateFromStream(stream, info, proc, typefaces)); return Forwardport(info, data, nullptr); }