Patch by Mike Lawther (mikelawther@chromium.org).
The HTML5 canvas client of BlurDrawLooper needs the option to not apply the
canvas transform to the blur offset.
see
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-elemen...
- "The shadowOffsetX and shadowOffsetY attributes specify the distance that the
shadow will be offset in the positive horizontal and positive vertical distance
respectively. Their values are in coordinate space units. They are not affected
by the current transformation matrix."
This patch is part of fixing
http://code.google.com/p/chromium/issues/detail?id=64647.
Review URL: http://codereview.appspot.com/3391041/
git-svn-id: http://skia.googlecode.com/svn/trunk@631 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/include/effects/SkBlurMaskFilter.h b/include/effects/SkBlurMaskFilter.h
index b90ea5e..0a68f54 100644
--- a/include/effects/SkBlurMaskFilter.h
+++ b/include/effects/SkBlurMaskFilter.h
@@ -32,12 +32,22 @@
kBlurStyleCount
};
+ enum BlurFlags {
+ kNone_BlurFlag = 0x00,
+ /** The blur layer's radius is not affected by transforms */
+ kIgnoreTransform_BlurFlag = 0x01,
+ /** mask for all blur flags */
+ kAll_BlurFlag = 0x01
+ };
+
/** Create a blur maskfilter.
@param radius The radius to extend the blur from the original mask. Must be > 0.
@param style The BlurStyle to use
+ @param flags Flags to use - defaults to none
@return The new blur maskfilter
*/
- static SkMaskFilter* Create(SkScalar radius, BlurStyle style);
+ static SkMaskFilter* Create(SkScalar radius, BlurStyle style,
+ uint32_t flags = kNone_BlurFlag);
/** Create an emboss maskfilter
@param direction array of 3 scalars [x, y, z] specifying the direction of the light source