1/* 2 * Copyright 2016 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8#ifndef SkMultiPictureDocument_DEFINED 9#define SkMultiPictureDocument_DEFINED 10 11#include "SkDocument.h" 12 13struct SkDeserialProcs; 14struct SkSerialProcs; 15class SkStreamSeekable; 16 17/** 18 * Writes into a file format that is similar to SkPicture::serialize() 19 */ 20SK_API sk_sp<SkDocument> SkMakeMultiPictureDocument(SkWStream* dst, const SkSerialProcs* = nullptr); 21 22struct SkDocumentPage { 23 sk_sp<SkPicture> fPicture; 24 SkSize fSize; 25}; 26 27/** 28 * Returns the number of pages in the SkMultiPictureDocument. 29 */ 30SK_API int SkMultiPictureDocumentReadPageCount(SkStreamSeekable* src); 31 32/** 33 * Read the SkMultiPictureDocument into the provided array of pages. 34 * dstArrayCount must equal SkMultiPictureDocumentReadPageCount(). 35 * Return false on error. 36 */ 37SK_API bool SkMultiPictureDocumentRead(SkStreamSeekable* src, 38 SkDocumentPage* dstArray, 39 int dstArrayCount, 40 const SkDeserialProcs* = nullptr); 41 42#endif // SkMultiPictureDocument_DEFINED 43