Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(259)

Side by Side Diff: include/core/SkPicture.h

Issue 741793002: Add SkNVRefCnt, prune down SkPicture's size (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: notes Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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) 45 SK_DECLARE_INST_COUNT(SkPicture)
46 46
47 // AccelData provides a base class for device-specific acceleration 47 // AccelData provides a base class for device-specific acceleration
48 // data. It is added to the picture via EXPERIMENTAL_addAccelData. 48 // data. It is added to the picture via EXPERIMENTAL_addAccelData.
49 class AccelData : public SkRefCnt { 49 class AccelData : public SkRefCnt {
50 public: 50 public:
51 typedef uint8_t Domain; 51 typedef uint8_t Domain;
52 typedef uint32_t Key; 52 typedef uint32_t Key;
53 53
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 /** 97 /**
98 * Recreate a picture that was serialized into a buffer. If the creation re quires bitmap 98 * 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 99 * decoding, the decoder must be set on the SkReadBuffer parameter by calli ng
100 * SkReadBuffer::setBitmapDecoder() before calling SkPicture::CreateFromBuf fer(). 100 * SkReadBuffer::setBitmapDecoder() before calling SkPicture::CreateFromBuf fer().
101 * @param SkReadBuffer Serialized picture data. 101 * @param SkReadBuffer Serialized picture data.
102 * @return A new SkPicture representing the serialized data, or NULL if the buffer is 102 * @return A new SkPicture representing the serialized data, or NULL if the buffer is
103 * invalid. 103 * invalid.
104 */ 104 */
105 static SkPicture* CreateFromBuffer(SkReadBuffer&); 105 static SkPicture* CreateFromBuffer(SkReadBuffer&);
106 106
107 virtual ~SkPicture(); 107 ~SkPicture();
108 108
109 /** Replays the drawing commands on the specified canvas. Note that 109 /** Replays the drawing commands on the specified canvas. Note that
110 this has the effect of unfurling this picture into the destination 110 this has the effect of unfurling this picture into the destination
111 canvas. Using the SkCanvas::drawPicture entry point gives the destinatio n 111 canvas. Using the SkCanvas::drawPicture entry point gives the destinatio n
112 canvas the option of just taking a ref. 112 canvas the option of just taking a ref.
113 @param canvas the canvas receiving the drawing commands. 113 @param canvas the canvas receiving the drawing commands.
114 @param callback a callback that allows interruption of playback 114 @param callback a callback that allows interruption of playback
115 */ 115 */
116 void playback(SkCanvas* canvas, SkDrawPictureCallback* = NULL) const; 116 void playback(SkCanvas* canvas, SkDrawPictureCallback* = NULL) const;
117 117
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 bool suitableForGpuRasterization(const char** reason, int sampleCount) c onst; 288 bool suitableForGpuRasterization(const char** reason, int sampleCount) c onst;
289 289
290 bool fWillPlaybackBitmaps; 290 bool fWillPlaybackBitmaps;
291 bool fHasText; 291 bool fHasText;
292 int fNumPaintWithPathEffectUses; 292 int fNumPaintWithPathEffectUses;
293 int fNumFastPathDashEffects; 293 int fNumFastPathDashEffects;
294 int fNumAAConcavePaths; 294 int fNumAAConcavePaths;
295 int fNumAAHairlineConcavePaths; 295 int fNumAAHairlineConcavePaths;
296 int fNumAADFEligibleConcavePaths; 296 int fNumAADFEligibleConcavePaths;
297 } fAnalysis; 297 } fAnalysis;
298 mutable uint32_t fUniqueID; 298 mutable uint32_t fUniqueID;
tomhudson 2014/11/19 18:59:06 Follow-on CL to move this up top for better packin
mtklein 2014/11/19 19:19:14 Done.
299 299
300 friend class SkPictureRecorder; // SkRecord-based constructor. 300 friend class SkPictureRecorder; // SkRecord-based constructor.
301 friend class GrLayerHoister; // access to fRecord 301 friend class GrLayerHoister; // access to fRecord
302 friend class ReplaceDraw; 302 friend class ReplaceDraw;
303 friend class SkPictureUtils; 303 friend class SkPictureUtils;
304 304
305 typedef SkRefCnt INHERITED; 305 typedef SkRefCnt INHERITED;
306 }; 306 };
307 307
308 #endif 308 #endif
OLDNEW
« no previous file with comments | « gm/gmmain.cpp ('k') | include/core/SkRefCnt.h » ('j') | include/core/SkRefCnt.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698