• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "include/core/SkDocument.h"
12 #include "include/core/SkPicture.h"
13 #include "include/core/SkSize.h"
14 
15 struct SkDeserialProcs;
16 struct SkSerialProcs;
17 class SkStreamSeekable;
18 
19 /**
20  *  Writes into a file format that is similar to SkPicture::serialize()
21  */
22 SK_API sk_sp<SkDocument> SkMakeMultiPictureDocument(SkWStream* dst, const SkSerialProcs* = nullptr);
23 
24 struct SkDocumentPage {
25     sk_sp<SkPicture> fPicture;
26     SkSize fSize;
27 };
28 
29 /**
30  *  Returns the number of pages in the SkMultiPictureDocument.
31  */
32 SK_API int SkMultiPictureDocumentReadPageCount(SkStreamSeekable* src);
33 
34 /**
35  *  Read the SkMultiPictureDocument into the provided array of pages.
36  *  dstArrayCount must equal SkMultiPictureDocumentReadPageCount().
37  *  Return false on error.
38  */
39 SK_API bool SkMultiPictureDocumentRead(SkStreamSeekable* src,
40                                        SkDocumentPage* dstArray,
41                                        int dstArrayCount,
42                                        const SkDeserialProcs* = nullptr);
43 
44 #endif  // SkMultiPictureDocument_DEFINED
45