Index: src/effects/SkBlurDrawLooper.cpp |
diff --git a/src/effects/SkBlurDrawLooper.cpp b/src/effects/SkBlurDrawLooper.cpp |
index 78506690a88d8efcae78dd82a5a441d6af2f62ac..6a6b9c04d78052d349b9bb32610b05c1a88e1284 100644 |
--- a/src/effects/SkBlurDrawLooper.cpp |
+++ b/src/effects/SkBlurDrawLooper.cpp |
@@ -33,6 +33,7 @@ void SkBlurDrawLooper::init(SkScalar sigma, SkScalar dx, SkScalar dy, |
SkColor color, uint32_t flags) { |
fDx = dx; |
fDy = dy; |
+ fSigma = sigma; |
fBlurColor = color; |
fBlurFlags = flags; |
@@ -91,6 +92,21 @@ void SkBlurDrawLooper::flatten(SkWriteBuffer& buffer) const { |
buffer.writeUInt(fBlurFlags); |
} |
+bool SkBlurDrawLooper::asABlurShadow(BlurShadowRec* rec) const { |
+ if (fSigma <= 0.5f) { |
+ return false; |
+ } |
+ |
+ if (rec) { |
+ rec->fRadius = SkBlurMask::ConvertSigmaToRadius(fSigma); |
+ rec->fColor = fBlurColor; |
+ rec->fOffset.set(fDx, fDy); |
+ } |
+ return true; |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////////////// |
+ |
SkDrawLooper::Context* SkBlurDrawLooper::createContext(SkCanvas*, void* storage) const { |
return SkNEW_PLACEMENT_ARGS(storage, BlurDrawLooperContext, (this)); |
} |