Index: include/core/SkDrawLooper.h |
diff --git a/include/core/SkDrawLooper.h b/include/core/SkDrawLooper.h |
index cc42952d07acc289ce21ee2cbd75de5a0a74c4e9..b92baccc0838c19ae84edc110d48c10ec90d63bd 100644 |
--- a/include/core/SkDrawLooper.h |
+++ b/include/core/SkDrawLooper.h |
@@ -10,7 +10,10 @@ |
#ifndef SkDrawLooper_DEFINED |
#define SkDrawLooper_DEFINED |
+#include "SkBlurTypes.h" |
#include "SkFlattenable.h" |
+#include "SkPoint.h" |
+#include "SkColor.h" |
class SkCanvas; |
class SkPaint; |
@@ -88,6 +91,24 @@ public: |
virtual void computeFastBounds(const SkPaint& paint, |
const SkRect& src, SkRect* dst) const; |
+ struct BlurShadowRec { |
+ SkScalar fSigma; |
+ SkVector fOffset; |
+ SkColor fColor; |
+ SkBlurStyle fStyle; |
+ SkBlurQuality fQuality; |
+ }; |
+ /** |
+ * If this looper can be interpreted as having two layers, such that |
+ * 1. The first layer (bottom most) just has a blur and translate |
+ * 2. The second layer has no modifications to either paint or canvas |
+ * 3. No other layers. |
+ * then return true, and if not null, fill out the BlurShadowRec). |
+ * |
+ * If any of the above are not met, return false and ignore the BlurShadowRec parameter. |
+ */ |
+ virtual bool asABlurShadow(BlurShadowRec*) const; |
+ |
SK_TO_STRING_PUREVIRT() |
SK_DEFINE_FLATTENABLE_TYPE(SkDrawLooper) |