| 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 | 
| (...skipping 22 matching lines...) Expand all  Loading... | 
| 33 | 33 | 
| 34 namespace SkRecords { | 34 namespace SkRecords { | 
| 35     class CollectLayers; | 35     class CollectLayers; | 
| 36 }; | 36 }; | 
| 37 | 37 | 
| 38 /** \class SkPicture | 38 /** \class SkPicture | 
| 39 | 39 | 
| 40     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 | 
| 41     be played back at a later time. | 41     be played back at a later time. | 
| 42 */ | 42 */ | 
| 43 class SK_API SkPicture : public SkRefCnt { | 43 class SK_API SkPicture : public SkNVRefCnt<SkPicture> { | 
| 44 public: | 44 public: | 
| 45     SK_DECLARE_INST_COUNT(SkPicture) |  | 
| 46 |  | 
| 47     // AccelData provides a base class for device-specific acceleration | 45     // AccelData provides a base class for device-specific acceleration | 
| 48     // data. It is added to the picture via EXPERIMENTAL_addAccelData. | 46     // data. It is added to the picture via EXPERIMENTAL_addAccelData. | 
| 49     class AccelData : public SkRefCnt { | 47     class AccelData : public SkRefCnt { | 
| 50     public: | 48     public: | 
| 51         typedef uint8_t Domain; | 49         typedef uint8_t Domain; | 
| 52         typedef uint32_t Key; | 50         typedef uint32_t Key; | 
| 53 | 51 | 
| 54         AccelData(Key key) : fKey(key) { } | 52         AccelData(Key key) : fKey(key) { } | 
| 55 | 53 | 
| 56         const Key& getKey() const { return fKey; } | 54         const Key& getKey() const { return fKey; } | 
| 57 | 55 | 
| 58         // This entry point allows user's to get a unique domain prefix | 56         // This entry point allows user's to get a unique domain prefix | 
| 59         // for their keys | 57         // for their keys | 
| 60         static Domain GenerateDomain(); | 58         static Domain GenerateDomain(); | 
| 61     private: | 59     private: | 
| 62         Key fKey; | 60         Key fKey; | 
| 63 |  | 
| 64         typedef SkRefCnt INHERITED; |  | 
| 65     }; | 61     }; | 
| 66 | 62 | 
| 67     /**  PRIVATE / EXPERIMENTAL -- do not call */ | 63     /**  PRIVATE / EXPERIMENTAL -- do not call */ | 
| 68     void EXPERIMENTAL_addAccelData(const AccelData*) const; | 64     void EXPERIMENTAL_addAccelData(const AccelData*) const; | 
| 69 | 65 | 
| 70     /**  PRIVATE / EXPERIMENTAL -- do not call */ | 66     /**  PRIVATE / EXPERIMENTAL -- do not call */ | 
| 71     const AccelData* EXPERIMENTAL_getAccelData(AccelData::Key) const; | 67     const AccelData* EXPERIMENTAL_getAccelData(AccelData::Key) const; | 
| 72 | 68 | 
| 73     /** | 69     /** | 
| 74      *  Function signature defining a function that sets up an SkBitmap from enc
     oded data. On | 70      *  Function signature defining a function that sets up an SkBitmap from enc
     oded data. On | 
| (...skipping 22 matching lines...) Expand all  Loading... | 
| 97     /** | 93     /** | 
| 98      *  Recreate a picture that was serialized into a buffer. If the creation re
     quires bitmap | 94      *  Recreate a picture that was serialized into a buffer. If the creation re
     quires bitmap | 
| 99      *  decoding, the decoder must be set on the SkReadBuffer parameter by calli
     ng | 95      *  decoding, the decoder must be set on the SkReadBuffer parameter by calli
     ng | 
| 100      *  SkReadBuffer::setBitmapDecoder() before calling SkPicture::CreateFromBuf
     fer(). | 96      *  SkReadBuffer::setBitmapDecoder() before calling SkPicture::CreateFromBuf
     fer(). | 
| 101      *  @param SkReadBuffer Serialized picture data. | 97      *  @param SkReadBuffer Serialized picture data. | 
| 102      *  @return A new SkPicture representing the serialized data, or NULL if the
      buffer is | 98      *  @return A new SkPicture representing the serialized data, or NULL if the
      buffer is | 
| 103      *          invalid. | 99      *          invalid. | 
| 104      */ | 100      */ | 
| 105     static SkPicture* CreateFromBuffer(SkReadBuffer&); | 101     static SkPicture* CreateFromBuffer(SkReadBuffer&); | 
| 106 | 102 | 
| 107     virtual ~SkPicture(); | 103     ~SkPicture(); | 
| 108 | 104 | 
| 109     /** Replays the drawing commands on the specified canvas. Note that | 105     /** Replays the drawing commands on the specified canvas. Note that | 
| 110         this has the effect of unfurling this picture into the destination | 106         this has the effect of unfurling this picture into the destination | 
| 111         canvas. Using the SkCanvas::drawPicture entry point gives the destinatio
     n | 107         canvas. Using the SkCanvas::drawPicture entry point gives the destinatio
     n | 
| 112         canvas the option of just taking a ref. | 108         canvas the option of just taking a ref. | 
| 113         @param canvas the canvas receiving the drawing commands. | 109         @param canvas the canvas receiving the drawing commands. | 
| 114         @param callback a callback that allows interruption of playback | 110         @param callback a callback that allows interruption of playback | 
| 115     */ | 111     */ | 
| 116     void playback(SkCanvas* canvas, SkDrawPictureCallback* = NULL) const; | 112     void playback(SkCanvas* canvas, SkDrawPictureCallback* = NULL) const; | 
| 117 | 113 | 
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 260     static bool IsValidPictInfo(const SkPictInfo& info); | 256     static bool IsValidPictInfo(const SkPictInfo& info); | 
| 261 | 257 | 
| 262     // Takes ownership of the SkRecord, refs the (optional) drawablePicts and BB
     H. | 258     // Takes ownership of the SkRecord, refs the (optional) drawablePicts and BB
     H. | 
| 263     SkPicture(const SkRect& cullRect, SkRecord*, SkData* drawablePicts, | 259     SkPicture(const SkRect& cullRect, SkRecord*, SkData* drawablePicts, | 
| 264               SkBBoxHierarchy*); | 260               SkBBoxHierarchy*); | 
| 265 | 261 | 
| 266     static SkPicture* Forwardport(const SkPictInfo&, const SkPictureData*); | 262     static SkPicture* Forwardport(const SkPictInfo&, const SkPictureData*); | 
| 267     static SkPictureData* Backport(const SkRecord&, const SkPictInfo&, | 263     static SkPictureData* Backport(const SkRecord&, const SkPictInfo&, | 
| 268                                    SkPicture const* const drawablePics[], int dr
     awableCount); | 264                                    SkPicture const* const drawablePics[], int dr
     awableCount); | 
| 269 | 265 | 
|  | 266     // uint32_t fRefCnt; from SkNVRefCnt<SkPicture> | 
|  | 267     mutable uint32_t fUniqueID; | 
| 270     const SkRect                          fCullRect; | 268     const SkRect                          fCullRect; | 
| 271     mutable SkAutoTUnref<const AccelData> fAccelData; | 269     mutable SkAutoTUnref<const AccelData> fAccelData; | 
| 272     mutable SkTDArray<DeletionListener*> fDeletionListeners;  // pointers are re
     fed | 270     mutable SkTDArray<DeletionListener*> fDeletionListeners;  // pointers are re
     fed | 
| 273     SkAutoTDelete<SkRecord>       fRecord; | 271     SkAutoTDelete<SkRecord>       fRecord; | 
| 274     SkAutoTUnref<SkBBoxHierarchy> fBBH; | 272     SkAutoTUnref<SkBBoxHierarchy> fBBH; | 
| 275     SkAutoTUnref<SkData>          fDrawablePicts; | 273     SkAutoTUnref<SkData>          fDrawablePicts; | 
| 276 | 274 | 
| 277     // helpers for fDrawablePicts | 275     // helpers for fDrawablePicts | 
| 278     int drawableCount() const; | 276     int drawableCount() const; | 
| 279     // will return NULL if drawableCount() returns 0 | 277     // will return NULL if drawableCount() returns 0 | 
| 280     SkPicture const* const* drawablePicts() const; | 278     SkPicture const* const* drawablePicts() const; | 
| 281 | 279 | 
| 282     struct PathCounter; | 280     struct PathCounter; | 
| 283 | 281 | 
| 284     struct Analysis { | 282     struct Analysis { | 
| 285         Analysis() {}  // Only used by SkPictureData codepath. | 283         Analysis() {}  // Only used by SkPictureData codepath. | 
| 286         explicit Analysis(const SkRecord&); | 284         explicit Analysis(const SkRecord&); | 
| 287 | 285 | 
| 288         bool suitableForGpuRasterization(const char** reason, int sampleCount) c
     onst; | 286         bool suitableForGpuRasterization(const char** reason, int sampleCount) c
     onst; | 
| 289 | 287 | 
| 290         bool        fWillPlaybackBitmaps; | 288         bool        fWillPlaybackBitmaps; | 
| 291         bool        fHasText; | 289         bool        fHasText; | 
| 292         int         fNumPaintWithPathEffectUses; | 290         int         fNumPaintWithPathEffectUses; | 
| 293         int         fNumFastPathDashEffects; | 291         int         fNumFastPathDashEffects; | 
| 294         int         fNumAAConcavePaths; | 292         int         fNumAAConcavePaths; | 
| 295         int         fNumAAHairlineConcavePaths; | 293         int         fNumAAHairlineConcavePaths; | 
| 296         int         fNumAADFEligibleConcavePaths; | 294         int         fNumAADFEligibleConcavePaths; | 
| 297     } fAnalysis; | 295     } fAnalysis; | 
| 298     mutable uint32_t fUniqueID; |  | 
| 299 | 296 | 
| 300     friend class SkPictureRecorder;            // SkRecord-based constructor. | 297     friend class SkPictureRecorder;            // SkRecord-based constructor. | 
| 301     friend class GrLayerHoister;               // access to fRecord | 298     friend class GrLayerHoister;               // access to fRecord | 
| 302     friend class ReplaceDraw; | 299     friend class ReplaceDraw; | 
| 303     friend class SkPictureUtils; | 300     friend class SkPictureUtils; | 
| 304 |  | 
| 305     typedef SkRefCnt INHERITED; |  | 
| 306 }; | 301 }; | 
|  | 302 SK_COMPILE_ASSERT(sizeof(SkPicture) <= 96, SkPictureSize); | 
| 307 | 303 | 
| 308 #endif | 304 #endif | 
| OLD | NEW | 
|---|