| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2007 The Android Open Source Project | 3 * Copyright 2007 The Android Open Source Project |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 | 9 |
| 10 #ifndef SkPicture_DEFINED | 10 #ifndef SkPicture_DEFINED |
| 11 #define SkPicture_DEFINED | 11 #define SkPicture_DEFINED |
| 12 | 12 |
| 13 #include "SkBitmap.h" | 13 #include "SkBitmap.h" |
| 14 #include "SkDrawPictureCallback.h" | 14 #include "SkDrawPictureCallback.h" |
| 15 #include "SkImageDecoder.h" | 15 #include "SkImageDecoder.h" |
| 16 #include "SkRefCnt.h" | 16 #include "SkRefCnt.h" |
| 17 #include "SkTDArray.h" | 17 #include "SkTDArray.h" |
| 18 | 18 |
| 19 #if SK_SUPPORT_GPU | 19 #if SK_SUPPORT_GPU |
| 20 class GrContext; | 20 class GrContext; |
| 21 #endif | 21 #endif |
| 22 | 22 |
| 23 class SkBBoxHierarchy; | 23 class SkBBoxHierarchy; |
| 24 class SkCanvas; | 24 class SkCanvas; |
| 25 class SkData; | 25 class SkData; |
| 26 class SkPictureData; | 26 class SkPictureData; |
| 27 class SkPixelSerializer; | |
| 28 class SkStream; | 27 class SkStream; |
| 29 class SkWStream; | 28 class SkWStream; |
| 30 | 29 |
| 31 struct SkPictInfo; | 30 struct SkPictInfo; |
| 32 | 31 |
| 33 class SkRecord; | 32 class SkRecord; |
| 34 | 33 |
| 35 namespace SkRecords { | 34 namespace SkRecords { |
| 36 class CollectLayers; | 35 class CollectLayers; |
| 37 }; | 36 }; |
| 38 | 37 |
| 39 //#define SK_LEGACY_ENCODE_BITMAP | |
| 40 | |
| 41 /** \class SkPicture | 38 /** \class SkPicture |
| 42 | 39 |
| 43 The SkPicture class records the drawing commands made to a canvas, to | 40 The SkPicture class records the drawing commands made to a canvas, to |
| 44 be played back at a later time. | 41 be played back at a later time. |
| 45 */ | 42 */ |
| 46 class SK_API SkPicture : public SkNVRefCnt<SkPicture> { | 43 class SK_API SkPicture : public SkNVRefCnt<SkPicture> { |
| 47 public: | 44 public: |
| 48 // AccelData provides a base class for device-specific acceleration | 45 // AccelData provides a base class for device-specific acceleration |
| 49 // data. It is added to the picture via EXPERIMENTAL_addAccelData. | 46 // data. It is added to the picture via EXPERIMENTAL_addAccelData. |
| 50 class AccelData : public SkRefCnt { | 47 class AccelData : public SkRefCnt { |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 | 134 |
| 138 /** | 135 /** |
| 139 * Function to encode an SkBitmap to an SkData. A function with this | 136 * Function to encode an SkBitmap to an SkData. A function with this |
| 140 * signature can be passed to serialize() and SkWriteBuffer. | 137 * signature can be passed to serialize() and SkWriteBuffer. |
| 141 * Returning NULL will tell the SkWriteBuffer to use | 138 * Returning NULL will tell the SkWriteBuffer to use |
| 142 * SkBitmap::flatten() to store the bitmap. | 139 * SkBitmap::flatten() to store the bitmap. |
| 143 * | 140 * |
| 144 * @param pixelRefOffset DEPRECATED -- caller assumes it will return 0. | 141 * @param pixelRefOffset DEPRECATED -- caller assumes it will return 0. |
| 145 * @return SkData If non-NULL, holds encoded data representing the passed | 142 * @return SkData If non-NULL, holds encoded data representing the passed |
| 146 * in bitmap. The caller is responsible for calling unref(). | 143 * in bitmap. The caller is responsible for calling unref(). |
| 147 * | |
| 148 * TODO: No longer used by SkPicture (except when SK_LEGACY_ENCODE_BITMAP | |
| 149 * is defined. Still used by PDF though. Move into PDF. | |
| 150 */ | 144 */ |
| 151 typedef SkData* (*EncodeBitmap)(size_t* pixelRefOffset, const SkBitmap& bm); | 145 typedef SkData* (*EncodeBitmap)(size_t* pixelRefOffset, const SkBitmap& bm); |
| 152 | 146 |
| 153 #ifdef SK_LEGACY_ENCODE_BITMAP | |
| 154 /** | 147 /** |
| 155 * Serialize to a stream. If non NULL, encoder will be used to encode | 148 * Serialize to a stream. If non NULL, encoder will be used to encode |
| 156 * any bitmaps in the picture. | 149 * any bitmaps in the picture. |
| 157 * encoder will never be called with a NULL pixelRefOffset. | 150 * encoder will never be called with a NULL pixelRefOffset. |
| 158 * DEPRECATED - use serialize(SkWStream*, SkPixelSerializer* serializer) | |
| 159 * instead. | |
| 160 */ | 151 */ |
| 161 void serialize(SkWStream* wStream, EncodeBitmap encoder) const; | 152 void serialize(SkWStream*, EncodeBitmap encoder = NULL) const; |
| 162 #endif | |
| 163 | |
| 164 /** | |
| 165 * Serialize to a stream. If non NULL, serializer will be used to serialize | |
| 166 * any bitmaps in the picture. | |
| 167 * | |
| 168 * TODO: Use serializer to serialize SkImages as well. | |
| 169 */ | |
| 170 void serialize(SkWStream*, SkPixelSerializer* serializer = NULL) const; | |
| 171 | 153 |
| 172 /** | 154 /** |
| 173 * Serialize to a buffer. | 155 * Serialize to a buffer. |
| 174 */ | 156 */ |
| 175 void flatten(SkWriteBuffer&) const; | 157 void flatten(SkWriteBuffer&) const; |
| 176 | 158 |
| 177 /** | 159 /** |
| 178 * Returns true if any bitmaps may be produced when this SkPicture | 160 * Returns true if any bitmaps may be produced when this SkPicture |
| 179 * is replayed. | 161 * is replayed. |
| 180 */ | 162 */ |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 315 | 297 |
| 316 friend class SkPictureRecorder; // SkRecord-based constructor. | 298 friend class SkPictureRecorder; // SkRecord-based constructor. |
| 317 friend class GrLayerHoister; // access to fRecord | 299 friend class GrLayerHoister; // access to fRecord |
| 318 friend class ReplaceDraw; | 300 friend class ReplaceDraw; |
| 319 friend class SkPictureUtils; | 301 friend class SkPictureUtils; |
| 320 friend class SkRecordedDrawable; | 302 friend class SkRecordedDrawable; |
| 321 }; | 303 }; |
| 322 SK_COMPILE_ASSERT(sizeof(SkPicture) <= 96, SkPictureSize); | 304 SK_COMPILE_ASSERT(sizeof(SkPicture) <= 96, SkPictureSize); |
| 323 | 305 |
| 324 #endif | 306 #endif |
| OLD | NEW |