Index: src/core/SkPictureRecord.h |
=================================================================== |
--- src/core/SkPictureRecord.h (revision 13386) |
+++ src/core/SkPictureRecord.h (working copy) |
@@ -10,6 +10,9 @@ |
#include "SkCanvas.h" |
#include "SkFlattenable.h" |
+#ifdef SK_COLLAPSE_MATRIX_CLIP_STATE |
+#include "SkMatrixClipStateMgr.h" |
+#endif |
#include "SkPathHeap.h" |
#include "SkPicture.h" |
#include "SkPictureFlat.h" |
@@ -111,11 +114,13 @@ |
int recordRestoreOffsetPlaceholder(SkRegion::Op); |
void fillRestoreOffsetPlaceholdersForCurrentStackLevel(uint32_t restoreOffset); |
+#ifndef SK_COLLAPSE_MATRIX_CLIP_STATE |
SkTDArray<int32_t> fRestoreOffsetStack; |
int fFirstSavedLayerIndex; |
enum { |
kNoSavedLayerIndex = -1 |
}; |
+#endif |
/* |
* Write the 'drawType' operation and chunk size to the skp. 'size' |
@@ -250,7 +255,7 @@ |
int recordClipRegion(const SkRegion& region, SkRegion::Op op); |
void recordSave(SaveFlags flags); |
void recordSaveLayer(const SkRect* bounds, const SkPaint* paint, SaveFlags flags); |
- void recordRestore(); |
+ void recordRestore(bool fillInSkips = true); |
// These are set to NULL in our constructor, but may be changed by |
// subclasses, in which case they will be SkSafeUnref'd in our destructor. |
@@ -261,6 +266,9 @@ |
SkBitmapHeap* fBitmapHeap; |
private: |
+ friend class MatrixClipState; // for access to *Impl methods |
+ friend class SkMatrixClipStateMgr; // for access to *Impl methods |
+ |
SkChunkFlatController fFlattenableHeap; |
SkPaintDictionary fPaints; |
@@ -277,6 +285,10 @@ |
friend class SkPicturePlayback; |
friend class SkPictureTester; // for unit testing |
+#ifdef SK_COLLAPSE_MATRIX_CLIP_STATE |
+ SkMatrixClipStateMgr fMCMgr; |
+#endif |
+ |
typedef SkCanvas INHERITED; |
}; |