Lines Matching refs:buffer
25 // Note: in the read/write buffer versions, we have a slightly different convention:
106 bool SkPicture::BufferIsSKP(SkReadBuffer* buffer, SkPictInfo* pInfo) {
109 if (!buffer->readByteArray(&info.fMagic, sizeof(kMagic))) {
113 info.setVersion(buffer->readUInt());
114 buffer->readRect(&info.fCullRect);
125 SkReadBuffer* buffer) {
134 playback.draw(r.beginRecording(info.fCullRect), nullptr/*no callback*/, buffer);
197 sk_sp<SkPicture> SkPicturePriv::MakeFromBuffer(SkReadBuffer& buffer) {
199 if (!SkPicture::BufferIsSKP(&buffer, &info)) {
203 int32_t ssize = buffer.read32();
205 const SkDeserialProcs& procs = buffer.getDeserialProcs();
210 return procs.fPictureProc(buffer.skip(size), size, procs.fPictureCtx);
216 std::unique_ptr<SkPictureData> data(SkPictureData::CreateFromBuffer(buffer, info));
217 return SkPicture::Forwardport(info, data.get(), &buffer);
298 void SkPicturePriv::Flatten(const sk_sp<const SkPicture> picture, SkWriteBuffer& buffer) {
302 buffer.writeByteArray(&info.fMagic, sizeof(info.fMagic));
303 buffer.writeUInt(info.getVersion());
304 buffer.writeRect(info.fCullRect);
306 if (auto custom = custom_serialize(picture.get(), buffer.fProcs)) {
308 buffer.write32(-size); // negative for custom format
309 buffer.writePad32(custom->data(), size);
314 buffer.write32(1); // special size meaning SkPictureData
315 data->flatten(buffer);
317 buffer.write32(0); // signal no content