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 "SkRefCnt.h" | 14 #include "SkRefCnt.h" |
15 | 15 |
16 class SkBBoxHierarchy; | 16 class SkBBoxHierarchy; |
17 class SkCanvas; | 17 class SkCanvas; |
18 class SkData; | |
18 class SkPicturePlayback; | 19 class SkPicturePlayback; |
19 class SkPictureRecord; | 20 class SkPictureRecord; |
20 class SkStream; | 21 class SkStream; |
21 class SkWStream; | 22 class SkWStream; |
22 | 23 |
23 /** \class SkPicture | 24 /** \class SkPicture |
24 | 25 |
25 The SkPicture class records the drawing commands made to a canvas, to | 26 The SkPicture class records the drawing commands made to a canvas, to |
26 be played back at a later time. | 27 be played back at a later time. |
27 */ | 28 */ |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
161 */ | 162 */ |
162 int width() const { return fWidth; } | 163 int width() const { return fWidth; } |
163 | 164 |
164 /** Return the height of the picture's recording canvas. This | 165 /** Return the height of the picture's recording canvas. This |
165 value reflects what was passed to setSize(), and does not necessarily | 166 value reflects what was passed to setSize(), and does not necessarily |
166 reflect the bounds of what has been recorded into the picture. | 167 reflect the bounds of what has been recorded into the picture. |
167 @return the height of the picture's recording canvas | 168 @return the height of the picture's recording canvas |
168 */ | 169 */ |
169 int height() const { return fHeight; } | 170 int height() const { return fHeight; } |
170 | 171 |
172 enum RecordPixelRefOffset { | |
173 kYes_RecordPixelRefOffset, | |
174 kNo_RecordPixelRefOffset, | |
175 }; | |
176 | |
171 /** | 177 /** |
172 * Function to encode an SkBitmap to an SkWStream. A function with this | 178 * Function to encode an SkBitmap to an SkData. A function with this |
173 * signature can be passed to serialize() and SkOrderedWriteBuffer. The | 179 * signature can be passed to serialize() and SkOrderedWriteBuffer. |
174 * function should return true if it succeeds. Otherwise it should return | 180 * Returning NULL will tell the SkOrderedWriteBuffer to use |
175 * false so that SkOrderedWriteBuffer can switch to another method of | 181 * SkBitmap::flatten() to store the bitmap. |
176 * storing SkBitmaps. | 182 * @param RecordPixelRefOffset Output parameter, telling the |
183 * SkOrderedWriteBuffer whether to record the bitmap's pixelRefOffset. | |
184 * If set to kYes_RecordPixelRefOffset, the returned SkData contains | |
185 * compressed data containing the entire image, so the pixelRefOffset | |
186 * should also be recorded to the stream. If set to | |
187 * kNo_RecordPixelRefOffset, only the extracted subset is written to | |
188 * the returned SkData, so the offset should not be written to the | |
189 * stream. | |
190 * @return SkData If non-NULL, holds encoded data representing the passed | |
191 * in bitmap. The caller is responsible for calling unref(). | |
177 */ | 192 */ |
178 typedef bool (*EncodeBitmap)(SkWStream*, const SkBitmap&); | 193 typedef SkData* (*EncodeBitmap)(RecordPixelRefOffset*, const SkBitmap&); |
scroggo
2013/05/20 19:50:52
Mike, you mentioned perhaps wanting to use the sam
| |
179 | 194 |
180 /** | 195 /** |
181 * Serialize to a stream. If non NULL, encoder will be used to encode | 196 * Serialize to a stream. If non NULL, encoder will be used to encode |
182 * any bitmaps in the picture. | 197 * any bitmaps in the picture. |
183 */ | 198 */ |
184 void serialize(SkWStream*, EncodeBitmap encoder = NULL) const; | 199 void serialize(SkWStream*, EncodeBitmap encoder = NULL) const; |
185 | 200 |
186 #ifdef SK_BUILD_FOR_ANDROID | 201 #ifdef SK_BUILD_FOR_ANDROID |
187 /** Signals that the caller is prematurely done replaying the drawing | 202 /** Signals that the caller is prematurely done replaying the drawing |
188 commands. This can be called from a canvas virtual while the picture | 203 commands. This can be called from a canvas virtual while the picture |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
241 */ | 256 */ |
242 SkCanvas* getRecordingCanvas() const { return fCanvas; } | 257 SkCanvas* getRecordingCanvas() const { return fCanvas; } |
243 | 258 |
244 private: | 259 private: |
245 SkPicture* fPicture; | 260 SkPicture* fPicture; |
246 SkCanvas* fCanvas; | 261 SkCanvas* fCanvas; |
247 }; | 262 }; |
248 | 263 |
249 | 264 |
250 #endif | 265 #endif |
OLD | NEW |