1 /* 2 * Copyright 2018 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 SkPicturePriv_DEFINED 9 #define SkPicturePriv_DEFINED 10 11 #include "SkPicture.h" 12 13 class SkReadBuffer; 14 class SkWriteBuffer; 15 16 class SkPicturePriv { 17 public: 18 /** 19 * Recreate a picture that was serialized into a buffer. If the creation requires bitmap 20 * decoding, the decoder must be set on the SkReadBuffer parameter by calling 21 * SkReadBuffer::setBitmapDecoder() before calling SkPicture::MakeFromBuffer(). 22 * @param buffer Serialized picture data. 23 * @return A new SkPicture representing the serialized data, or NULL if the buffer is 24 * invalid. 25 */ 26 static sk_sp<SkPicture> MakeFromBuffer(SkReadBuffer& buffer); 27 28 /** 29 * Serialize to a buffer. 30 */ 31 static void Flatten(const sk_sp<const SkPicture> , SkWriteBuffer& buffer); 32 33 // Returns NULL if this is not an SkBigPicture. AsSkBigPicture(const sk_sp<const SkPicture> picture)34 static const SkBigPicture* AsSkBigPicture(const sk_sp<const SkPicture> picture) { 35 return picture->asSkBigPicture(); 36 } 37 }; 38 39 #endif 40