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

Side by Side Diff: src/core/SkPictureRecord.h

Issue 459043002: Cleaning up SkPicture-related classes (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 4 months 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
« no previous file with comments | « src/core/SkPictureFlat.h ('k') | src/core/SkPictureRecord.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2011 Google Inc. 2 * Copyright 2011 Google Inc.
3 * 3 *
4 * 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
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef SkPictureRecord_DEFINED 8 #ifndef SkPictureRecord_DEFINED
9 #define SkPictureRecord_DEFINED 9 #define SkPictureRecord_DEFINED
10 10
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 * allocation overhead but could lead to more wasted space (the tail 136 * allocation overhead but could lead to more wasted space (the tail
137 * end of blocks could go unused). Possibly add a second addDraw that 137 * end of blocks could go unused). Possibly add a second addDraw that
138 * operates in this manner. 138 * operates in this manner.
139 */ 139 */
140 size_t addDraw(DrawType drawType, size_t* size) { 140 size_t addDraw(DrawType drawType, size_t* size) {
141 size_t offset = fWriter.bytesWritten(); 141 size_t offset = fWriter.bytesWritten();
142 142
143 this->predrawNotify(); 143 this->predrawNotify();
144 fContentInfo.addOperation(); 144 fContentInfo.addOperation();
145 145
146 #ifdef SK_DEBUG_TRACE
147 SkDebugf("add %s\n", DrawTypeToString(drawType));
148 #endif
149
150 SkASSERT(0 != *size); 146 SkASSERT(0 != *size);
151 SkASSERT(((uint8_t) drawType) == drawType); 147 SkASSERT(((uint8_t) drawType) == drawType);
152 148
153 if (0 != (*size & ~MASK_24) || *size == MASK_24) { 149 if (0 != (*size & ~MASK_24) || *size == MASK_24) {
154 fWriter.writeInt(PACK_8_24(drawType, MASK_24)); 150 fWriter.writeInt(PACK_8_24(drawType, MASK_24));
155 *size += 1; 151 *size += 1;
156 fWriter.writeInt(SkToU32(*size)); 152 fWriter.writeInt(SkToU32(*size));
157 } else { 153 } else {
158 fWriter.writeInt(PACK_8_24(drawType, SkToU32(*size))); 154 fWriter.writeInt(PACK_8_24(drawType, SkToU32(*size)));
159 } 155 }
(...skipping 22 matching lines...) Expand all
182 void addRect(const SkRect& rect); 178 void addRect(const SkRect& rect);
183 void addRectPtr(const SkRect* rect); 179 void addRectPtr(const SkRect* rect);
184 void addIRect(const SkIRect& rect); 180 void addIRect(const SkIRect& rect);
185 void addIRectPtr(const SkIRect* rect); 181 void addIRectPtr(const SkIRect* rect);
186 void addRRect(const SkRRect&); 182 void addRRect(const SkRRect&);
187 void addRegion(const SkRegion& region); 183 void addRegion(const SkRegion& region);
188 void addText(const void* text, size_t byteLength); 184 void addText(const void* text, size_t byteLength);
189 185
190 int find(const SkBitmap& bitmap); 186 int find(const SkBitmap& bitmap);
191 187
192 #ifdef SK_DEBUG_DUMP 188 protected:
193 public:
194 void dumpMatrices();
195 void dumpPaints();
196 #endif
197
198 #ifdef SK_DEBUG_SIZE
199 public:
200 size_t size() const;
201 int bitmaps(size_t* size) const;
202 int matrices(size_t* size) const;
203 int paints(size_t* size) const;
204 int paths(size_t* size) const;
205 int regions(size_t* size) const;
206 size_t streamlen() const;
207
208 size_t fPointBytes, fRectBytes, fTextBytes;
209 int fPointWrites, fRectWrites, fTextWrites;
210 #endif
211
212 #ifdef SK_DEBUG_VALIDATE
213 public:
214 void validate(size_t initialOffset, uint32_t size) const;
215 private:
216 void validateBitmaps() const;
217 void validateMatrices() const;
218 void validatePaints() const;
219 void validatePaths() const;
220 void validateRegions() const;
221 #else
222 public:
223 void validate(size_t initialOffset, size_t size) const { 189 void validate(size_t initialOffset, size_t size) const {
224 SkASSERT(fWriter.bytesWritten() == initialOffset + size); 190 SkASSERT(fWriter.bytesWritten() == initialOffset + size);
225 } 191 }
226 #endif
227 192
228 protected:
229 virtual SkSurface* onNewSurface(const SkImageInfo&) SK_OVERRIDE; 193 virtual SkSurface* onNewSurface(const SkImageInfo&) SK_OVERRIDE;
230 const void* onPeekPixels(SkImageInfo*, size_t*) SK_OVERRIDE { 194 const void* onPeekPixels(SkImageInfo*, size_t*) SK_OVERRIDE {
231 return NULL; 195 return NULL;
232 } 196 }
233 197
234 virtual void willSave() SK_OVERRIDE; 198 virtual void willSave() SK_OVERRIDE;
235 virtual SaveLayerStrategy willSaveLayer(const SkRect*, const SkPaint*, SaveF lags) SK_OVERRIDE; 199 virtual SaveLayerStrategy willSaveLayer(const SkRect*, const SkPaint*, SaveF lags) SK_OVERRIDE;
236 virtual void willRestore() SK_OVERRIDE; 200 virtual void willRestore() SK_OVERRIDE;
237 201
238 virtual void didConcat(const SkMatrix&) SK_OVERRIDE; 202 virtual void didConcat(const SkMatrix&) SK_OVERRIDE;
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 261
298 // These are set to NULL in our constructor, but may be changed by 262 // These are set to NULL in our constructor, but may be changed by
299 // subclasses, in which case they will be SkSafeUnref'd in our destructor. 263 // subclasses, in which case they will be SkSafeUnref'd in our destructor.
300 SkBBoxHierarchy* fBoundingHierarchy; 264 SkBBoxHierarchy* fBoundingHierarchy;
301 SkPictureStateTree* fStateTree; 265 SkPictureStateTree* fStateTree;
302 266
303 // Allocated in the constructor and managed by this class. 267 // Allocated in the constructor and managed by this class.
304 SkBitmapHeap* fBitmapHeap; 268 SkBitmapHeap* fBitmapHeap;
305 269
306 private: 270 private:
307 friend class MatrixClipState; // for access to *Impl methods
308
309 SkPictureContentInfo fContentInfo; 271 SkPictureContentInfo fContentInfo;
310 SkAutoTUnref<SkPathHeap> fPathHeap; 272 SkAutoTUnref<SkPathHeap> fPathHeap;
311 273
312 SkChunkFlatController fFlattenableHeap; 274 SkChunkFlatController fFlattenableHeap;
313 275
314 SkPaintDictionary fPaints; 276 SkPaintDictionary fPaints;
315 277
316 SkWriter32 fWriter; 278 SkWriter32 fWriter;
317 279
318 // we ref each item in these arrays 280 // we ref each item in these arrays
319 SkTDArray<const SkPicture*> fPictureRefs; 281 SkTDArray<const SkPicture*> fPictureRefs;
320 282
321 uint32_t fRecordFlags; 283 uint32_t fRecordFlags;
322 bool fOptsEnabled; 284 bool fOptsEnabled;
323 int fInitialSaveCount; 285 int fInitialSaveCount;
324 286
325 friend class SkPictureData; // for SkPictureData's SkPictureRecord-based c onstructor 287 friend class SkPictureData; // for SkPictureData's SkPictureRecord-based c onstructor
326 friend class SkPictureTester; // for unit testing 288 friend class SkPictureTester; // for unit testing
327 289
328 typedef SkCanvas INHERITED; 290 typedef SkCanvas INHERITED;
329 }; 291 };
330 292
331 #endif 293 #endif
OLDNEW
« no previous file with comments | « src/core/SkPictureFlat.h ('k') | src/core/SkPictureRecord.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698