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