Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(141)

Unified Diff: src/effects/SkBlurDrawLooper.cpp

Issue 253633003: add asAShadowBlur for android to drawlooper (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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));
}

Powered by Google App Engine
This is Rietveld 408576698