Home | History | Annotate | Download | only in utils
      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 
     13 struct SkDeserialProcs;
     14 struct SkSerialProcs;
     15 class SkStreamSeekable;
     16 
     17 /**
     18  *  Writes into a file format that is similar to SkPicture::serialize()
     19  */
     20 SK_API sk_sp<SkDocument> SkMakeMultiPictureDocument(SkWStream* dst, const SkSerialProcs* = nullptr);
     21 
     22 struct SkDocumentPage {
     23     sk_sp<SkPicture> fPicture;
     24     SkSize fSize;
     25 };
     26 
     27 /**
     28  *  Returns the number of pages in the SkMultiPictureDocument.
     29  */
     30 SK_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  */
     37 SK_API bool SkMultiPictureDocumentRead(SkStreamSeekable* src,
     38                                        SkDocumentPage* dstArray,
     39                                        int dstArrayCount,
     40                                        const SkDeserialProcs* = nullptr);
     41 
     42 #endif  // SkMultiPictureDocument_DEFINED
     43