diff options
Diffstat (limited to 'include/core/SkDevice.h')
-rw-r--r-- | include/core/SkDevice.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/include/core/SkDevice.h b/include/core/SkDevice.h index d9a4fde4c2..46bcf1a105 100644 --- a/include/core/SkDevice.h +++ b/include/core/SkDevice.h @@ -155,6 +155,31 @@ public: virtual void setMatrixClip(const SkMatrix&, const SkRegion&, const SkClipStack&); + /** + * Observer interface for listening to the calls to + * SkDevice::setMatrixClip(...). Users of SkDevice instances should + * implement matrixClipChanged(...) to receive notifications. + */ + class SkMatrixClipObserver : public SkRefCnt { + public: + virtual void matrixClipChanged(const SkMatrix&, const SkRegion&, + const SkClipStack&) = 0; + }; + + /** Assign the clip observer. Note that an extra reference is added to the + * observer, and removed at SkDevice construction, or re-assignment of a + * different observer. + */ + void setMatrixClipObserver(SkMatrixClipObserver* observer); + + /** Return the device's associated SkMatrixClipObserver, or NULL. + * If non-null is returned, the reference count of the object is not + * modified. + */ + SkMatrixClipObserver* getMatrixClipObserver() const { + return fMatrixClipObserver; + } + /** Called when this device gains focus (i.e becomes the current device for drawing). */ @@ -281,6 +306,8 @@ private: SkIPoint fOrigin; SkMetaData* fMetaData; + SkMatrixClipObserver* fMatrixClipObserver; + SkDeviceFactory* fCachedDeviceFactory; }; |