Index: src/core/SkBBoxRecord.h |
diff --git a/src/core/SkBBoxRecord.h b/src/core/SkBBoxRecord.h |
index f3d72b044857a2f2810a8adcd13d02f81c7a72d2..a6edc98f13db28f578b16694e7e66f83ba74e7a8 100644 |
--- a/src/core/SkBBoxRecord.h |
+++ b/src/core/SkBBoxRecord.h |
@@ -10,6 +10,7 @@ |
#define SkBBoxRecord_DEFINED |
#include "SkPictureRecord.h" |
+#include "SkTDArray.h" |
/** |
* This is an abstract SkPictureRecord subclass that intercepts draw calls and computes an |
@@ -22,7 +23,7 @@ public: |
SkBBoxRecord(const SkISize& size, uint32_t recordFlags) |
: INHERITED(size, recordFlags) { |
} |
- virtual ~SkBBoxRecord() { } |
+ virtual ~SkBBoxRecord(); |
/** |
* This is called each time we get a bounding box, it will be axis-aligned, |
@@ -66,6 +67,9 @@ protected: |
virtual void onDrawTextOnPath(const void* text, size_t byteLength, const SkPath& path, |
const SkMatrix* matrix, const SkPaint&) SK_OVERRIDE; |
virtual void onDrawPicture(const SkPicture* picture) SK_OVERRIDE; |
+ virtual void willSave() SK_OVERRIDE; |
+ virtual SaveLayerStrategy willSaveLayer(const SkRect*, const SkPaint*, SaveFlags) SK_OVERRIDE; |
+ virtual void willRestore() SK_OVERRIDE; |
private: |
/** |
@@ -75,6 +79,12 @@ private: |
**/ |
bool transformBounds(const SkRect& bounds, const SkPaint* paint); |
+ /** |
+ * Paints from currently-active saveLayers that need to be applied to bounding boxes of all |
+ * primitives drawn inside them. We own these pointers. |
+ **/ |
+ SkTDArray<const SkPaint*> fSaveStack; |
+ |
typedef SkPictureRecord INHERITED; |
}; |