• 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 #ifndef SkMultiPictureDocument_DEFINED
8 #define SkMultiPictureDocument_DEFINED
9 
10 /*
11   This format is not intended to be used in production.
12 
13   For clients looking for a way to represent a document in memory,
14 
15     struct Doc {
16         std::vector<sk_sp<SkPicture>> fPages;
17         std::vector<SkSize> fPageSizes;
18     };
19 
20   or
21 
22     struct Page {
23         sk_sp<SkPicture> fPage;
24         SkSize fPageSize;
25     };
26     std::vector<Page> pages;
27 
28   would work much better.
29 
30   Multi-SkPicture (MSKP) files are still useful for debugging and
31   testing.
32 
33   The downsides of this format are currently:
34   - no way to extract a single page; must read the entire file at once.
35   - must use `dm` to convert to another format before passing into
36     standard skp tools.
37   - `dm` can extract the first page to skp, but no others.
38 
39   TODO(halcanary): replace with somthing that addresses these issues.
40  */
41 
42 #include "SkDocument.h"
43 
44 /** Writes into an experimental, undocumented file format that is
45     useful for debugging documents printed via Skia. */
46 SK_API sk_sp<SkDocument> SkMakeMultiPictureDocument(SkWStream* dst);
47 
48 #endif  // SkMultiPictureDocument_DEFINED
49