SkMultiPictureDocument.h 1.2 KB

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