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

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

Issue 1090943004: O(1) SkPictureUtils::ApproxBytesUsed() (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: const Created 5 years, 8 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 | « no previous file | src/core/SkPicture.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 2007 The Android Open Source Project 2 * Copyright 2007 The Android Open Source Project
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 8
9 #ifndef SkPicture_DEFINED 9 #ifndef SkPicture_DEFINED
10 #define SkPicture_DEFINED 10 #define SkPicture_DEFINED
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 static const uint32_t MIN_PICTURE_VERSION = 35; // Produced by Chrome M3 9. 253 static const uint32_t MIN_PICTURE_VERSION = 35; // Produced by Chrome M3 9.
254 static const uint32_t CURRENT_PICTURE_VERSION = 41; 254 static const uint32_t CURRENT_PICTURE_VERSION = 41;
255 255
256 static_assert(MIN_PICTURE_VERSION <= 41, 256 static_assert(MIN_PICTURE_VERSION <= 41,
257 "Remove kFontFileName and related code from SkFontDescriptor.c pp."); 257 "Remove kFontFileName and related code from SkFontDescriptor.c pp.");
258 258
259 void createHeader(SkPictInfo* info) const; 259 void createHeader(SkPictInfo* info) const;
260 static bool IsValidPictInfo(const SkPictInfo& info); 260 static bool IsValidPictInfo(const SkPictInfo& info);
261 261
262 // Takes ownership of the SkRecord and (optional) SnapshotArray, refs the (o ptional) BBH. 262 // Takes ownership of the SkRecord and (optional) SnapshotArray, refs the (o ptional) BBH.
263 SkPicture(const SkRect& cullRect, SkRecord*, SnapshotArray*, SkBBoxHierarchy *); 263 SkPicture(const SkRect& cullRect,
264 SkRecord*,
265 SnapshotArray*,
266 SkBBoxHierarchy*,
267 size_t approxBytesUsedBySubPictures);
264 268
265 static SkPicture* Forwardport(const SkPictInfo&, const SkPictureData*); 269 static SkPicture* Forwardport(const SkPictInfo&, const SkPictureData*);
266 static SkPictureData* Backport(const SkRecord&, const SkPictInfo&, 270 static SkPictureData* Backport(const SkRecord&, const SkPictInfo&,
267 SkPicture const* const drawablePics[], int dr awableCount); 271 SkPicture const* const drawablePics[], int dr awableCount);
268 272
269 // uint32_t fRefCnt; from SkNVRefCnt<SkPicture> 273 // uint32_t fRefCnt; from SkNVRefCnt<SkPicture>
270 mutable uint32_t fUniqueID; 274 mutable uint32_t fUniqueID;
271 const SkRect fCullRect; 275 const SkRect fCullRect;
272 mutable SkAutoTUnref<const AccelData> fAccelData; 276 mutable SkAutoTUnref<const AccelData> fAccelData;
273 SkAutoTUnref<const SkRecord> fRecord; 277 SkAutoTUnref<const SkRecord> fRecord;
274 SkAutoTUnref<const SkBBoxHierarchy> fBBH; 278 SkAutoTUnref<const SkBBoxHierarchy> fBBH;
275 SkAutoTDelete<const SnapshotArray> fDrawablePicts; 279 SkAutoTDelete<const SnapshotArray> fDrawablePicts;
280 const size_t fApproxBytesUsedBySubPictures;
276 281
277 // helpers for fDrawablePicts 282 // helpers for fDrawablePicts
278 int drawableCount() const; 283 int drawableCount() const;
279 // will return NULL if drawableCount() returns 0 284 // will return NULL if drawableCount() returns 0
280 SkPicture const* const* drawablePicts() const; 285 SkPicture const* const* drawablePicts() const;
281 286
282 struct PathCounter; 287 struct PathCounter;
283 288
284 struct Analysis { 289 struct Analysis {
285 Analysis() {} // Only used by SkPictureData codepath. 290 Analysis() {} // Only used by SkPictureData codepath.
286 explicit Analysis(const SkRecord&); 291 explicit Analysis(const SkRecord&);
287 292
288 bool suitableForGpuRasterization(const char** reason, int sampleCount) c onst; 293 bool suitableForGpuRasterization(const char** reason, int sampleCount) c onst;
289 294
290 bool fWillPlaybackBitmaps; 295 bool fWillPlaybackBitmaps;
291 bool fHasText; 296 bool fHasText;
292 int fNumPaintWithPathEffectUses; 297 int fNumPaintWithPathEffectUses;
293 int fNumFastPathDashEffects; 298 int fNumFastPathDashEffects;
294 int fNumAAConcavePaths; 299 int fNumAAConcavePaths;
295 int fNumAAHairlineConcavePaths; 300 int fNumAAHairlineConcavePaths;
296 int fNumAADFEligibleConcavePaths; 301 int fNumAADFEligibleConcavePaths;
297 } fAnalysis; 302 } fAnalysis;
298 303
299 friend class SkPictureRecorder; // SkRecord-based constructor. 304 friend class SkPictureRecorder; // SkRecord-based constructor.
300 friend class GrLayerHoister; // access to fRecord 305 friend class GrLayerHoister; // access to fRecord
301 friend class ReplaceDraw; 306 friend class ReplaceDraw;
302 friend class SkPictureUtils; 307 friend class SkPictureUtils;
303 friend class SkRecordedDrawable; 308 friend class SkRecordedDrawable;
304 }; 309 };
305 SK_COMPILE_ASSERT(sizeof(SkPicture) <= 96, SkPictureSize); 310 SK_COMPILE_ASSERT(sizeof(SkPicture) <= 104, SkPictureSize);
306 311
307 #endif 312 #endif
OLDNEW
« no previous file with comments | « no previous file | src/core/SkPicture.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698