OLD | NEW |
1 | |
2 /* | 1 /* |
3 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
4 * | 3 * |
5 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 5 * found in the LICENSE file. |
7 */ | 6 */ |
8 | 7 |
9 | 8 |
10 | 9 |
11 #ifndef SkGPipe_DEFINED | 10 #ifndef SkGPipe_DEFINED |
12 #define SkGPipe_DEFINED | 11 #define SkGPipe_DEFINED |
13 | 12 |
| 13 #include "SkFlattenable.h" |
| 14 #include "SkPicture.h" |
14 #include "SkWriter32.h" | 15 #include "SkWriter32.h" |
15 #include "SkFlattenable.h" | |
16 | 16 |
17 class SkCanvas; | 17 class SkCanvas; |
18 | 18 |
19 // XLib.h might have defined Status already (ugh) | 19 // XLib.h might have defined Status already (ugh) |
20 #ifdef Status | 20 #ifdef Status |
21 #undef Status | 21 #undef Status |
22 #endif | 22 #endif |
23 | 23 |
24 class SkGPipeReader { | 24 class SkGPipeReader { |
25 public: | 25 public: |
26 SkGPipeReader(); | 26 SkGPipeReader(); |
27 SkGPipeReader(SkCanvas* target); | 27 SkGPipeReader(SkCanvas* target); |
28 ~SkGPipeReader(); | 28 ~SkGPipeReader(); |
29 | 29 |
30 enum Status { | 30 enum Status { |
31 kDone_Status, //!< no more data expected from reader | 31 kDone_Status, //!< no more data expected from reader |
32 kEOF_Status, //!< need more data from reader | 32 kEOF_Status, //!< need more data from reader |
33 kError_Status, //!< encountered error | 33 kError_Status, //!< encountered error |
34 kReadAtom_Status//!< finished reading an atom | 34 kReadAtom_Status//!< finished reading an atom |
35 }; | 35 }; |
36 | 36 |
37 enum PlaybackFlags { | 37 enum PlaybackFlags { |
38 kReadAtom_PlaybackFlag = 0x1, //!< playback a single command from the st
ream | 38 kReadAtom_PlaybackFlag = 0x1, //!< playback a single command from the st
ream |
39 kSilent_PlaybackFlag = 0x2, //!< playback without drawing | 39 kSilent_PlaybackFlag = 0x2, //!< playback without drawing |
40 }; | 40 }; |
41 | 41 |
42 void setCanvas(SkCanvas*); | 42 void setCanvas(SkCanvas*); |
| 43 |
| 44 /** |
| 45 * Set a function for decoding bitmaps that have encoded data. |
| 46 */ |
| 47 void setBitmapDecoder(SkPicture::InstallPixelRefProc proc) { fProc = proc; } |
| 48 |
43 // data must be 4-byte aligned | 49 // data must be 4-byte aligned |
44 // length must be a multiple of 4 | 50 // length must be a multiple of 4 |
45 Status playback(const void* data, size_t length, uint32_t playbackFlags = 0, | 51 Status playback(const void* data, size_t length, uint32_t playbackFlags = 0, |
46 size_t* bytesRead = NULL); | 52 size_t* bytesRead = NULL); |
47 private: | 53 private: |
48 SkCanvas* fCanvas; | 54 SkCanvas* fCanvas; |
49 class SkGPipeState* fState; | 55 class SkGPipeState* fState; |
| 56 SkPicture::InstallPixelRefProc fProc; |
50 }; | 57 }; |
51 | 58 |
52 /////////////////////////////////////////////////////////////////////////////// | 59 /////////////////////////////////////////////////////////////////////////////// |
53 | 60 |
54 class SkGPipeCanvas; | 61 class SkGPipeCanvas; |
55 | 62 |
56 class SkGPipeController { | 63 class SkGPipeController { |
57 public: | 64 public: |
58 SkGPipeController() : fCanvas(NULL) {} | 65 SkGPipeController() : fCanvas(NULL) {} |
59 virtual ~SkGPipeController(); | 66 virtual ~SkGPipeController(); |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 private: | 159 private: |
153 enum { | 160 enum { |
154 kDefaultRecordingCanvasSize = 32767, | 161 kDefaultRecordingCanvasSize = 32767, |
155 }; | 162 }; |
156 | 163 |
157 SkGPipeCanvas* fCanvas; | 164 SkGPipeCanvas* fCanvas; |
158 SkWriter32 fWriter; | 165 SkWriter32 fWriter; |
159 }; | 166 }; |
160 | 167 |
161 #endif | 168 #endif |
OLD | NEW |