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); }
SkPicture* SkPicture::CreateFromStream(SkStream* stream, InstallPixelRefProc proc) { SkPictInfo info; if (!InternalOnly_StreamIsSKP(stream, &info)) { return NULL; } SkPicturePlayback* playback; // Check to see if there is a playback to recreate. if (stream->readBool()) { playback = SkPicturePlayback::CreateFromStream(stream, info, proc); if (NULL == playback) { return NULL; } } else { playback = NULL; } return SkNEW_ARGS(SkPicture, (playback, info.fWidth, info.fHeight)); }