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

Unified Diff: src/core/SkPictureContentInfo.h

Issue 464433002: Add layer counting to SkPictureRecord (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Clean up 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/core/SkPictureContentInfo.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/core/SkPictureContentInfo.h
diff --git a/src/core/SkPictureContentInfo.h b/src/core/SkPictureContentInfo.h
index cfeedcf48312317ca0c4684b7cb536c5c78aa297..63320ccd23a0e625104a9d35a791141b031c3740 100644
--- a/src/core/SkPictureContentInfo.h
+++ b/src/core/SkPictureContentInfo.h
@@ -27,6 +27,12 @@ public:
void onAddPaintPtr(const SkPaint* paint);
void onDrawText() { ++fNumTexts; }
+ void onSaveLayer();
+ void onSave();
+ void onRestore();
+ void rescindLastSave();
+ void rescindLastSaveLayer();
+
void set(const SkPictureContentInfo& src);
void reset();
void swap(SkPictureContentInfo* other);
@@ -49,6 +55,25 @@ private:
// This field is incremented every time a drawPath call is
// issued for a hairline stroked concave path.
int fNumAAHairlineConcavePaths;
+ // These fields track the different layer flavors. fNumLayers is just
+ // a count of all saveLayers, fNumNestingLayers is the number of layers
+ // with a layer inside them, fNumLeafLayers is the number of layers with
+ // no layer inside them.
+ int fNumLayers;
+ int fNumNestingLayers;
+ int fNumLeafLayers;
+
+ enum Flags {
+ kSave_Flag = 0x1,
+ kSaveLayer_Flag = 0x2,
+
+ // Did the current save or saveLayer contain another saveLayer.
+ // Percolated back down the save stack.
+ kContainedSaveLayer_Flag = 0x4
+ };
+
+ // Stack of save vs saveLayer information to track nesting
+ SkTDArray<int> fSaveStack;
bsalomon 2014/08/11 20:07:38 I think we usually use uint32_t for bitfields.
robertphillips 2014/08/11 20:53:27 Done.
};
#endif
« no previous file with comments | « no previous file | src/core/SkPictureContentInfo.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698