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

Unified Diff: src/effects/SkBlurMaskFilter.cpp

Issue 2214163003: Minor clean up related to blur mask filters (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Add comment Created 4 years, 4 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
« no previous file with comments | « gm/occludedrrectblur.cpp ('k') | src/gpu/SkGpuDevice.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/effects/SkBlurMaskFilter.cpp
diff --git a/src/effects/SkBlurMaskFilter.cpp b/src/effects/SkBlurMaskFilter.cpp
index 38b5313be34f246489dc6848cadcbf697df7b24e..421573349260ac7d03c2d09a768dd15502fdd371 100644
--- a/src/effects/SkBlurMaskFilter.cpp
+++ b/src/effects/SkBlurMaskFilter.cpp
@@ -89,6 +89,10 @@ protected:
bool filterRRectMask(SkMask* dstM, const SkRRect& r, const SkMatrix& matrix,
SkIPoint* margin, SkMask::CreateMode createMode) const;
+ bool ignoreXform() const {
+ return SkToBool(fBlurFlags & SkBlurMaskFilter::kIgnoreTransform_BlurFlag);
+ }
+
private:
// To avoid unseemly allocation requests (esp. for finite platforms like
// handset) we limit the radius so something manageable. (as opposed to
@@ -108,9 +112,7 @@ private:
void flatten(SkWriteBuffer&) const override;
SkScalar computeXformedSigma(const SkMatrix& ctm) const {
- bool ignoreTransform = SkToBool(fBlurFlags & SkBlurMaskFilter::kIgnoreTransform_BlurFlag);
-
- SkScalar xformedSigma = ignoreTransform ? fSigma : ctm.mapRadius(fSigma);
+ SkScalar xformedSigma = this->ignoreXform() ? fSigma : ctm.mapRadius(fSigma);
return SkMinScalar(xformedSigma, kMAX_BLUR_SIGMA);
}
@@ -128,9 +130,9 @@ sk_sp<SkMaskFilter> SkBlurMaskFilter::Make(SkBlurStyle style, SkScalar sigma, ui
if ((unsigned)style > (unsigned)kLastEnum_SkBlurStyle) {
return nullptr;
}
- if (flags > SkBlurMaskFilter::kAll_BlurFlag) {
- return nullptr;
- }
+ SkASSERT(flags <= SkBlurMaskFilter::kAll_BlurFlag);
+ flags &= SkBlurMaskFilter::kAll_BlurFlag;
+
return sk_sp<SkMaskFilter>(new SkBlurMaskFilterImpl(sigma, style, flags));
}
@@ -150,7 +152,7 @@ SkMask::Format SkBlurMaskFilterImpl::getFormat() const {
}
bool SkBlurMaskFilterImpl::asABlur(BlurRec* rec) const {
- if (fBlurFlags & SkBlurMaskFilter::kIgnoreTransform_BlurFlag) {
+ if (this->ignoreXform()) {
return false;
}
@@ -1169,10 +1171,6 @@ bool SkBlurMaskFilterImpl::directFilterRRectMaskGPU(GrTextureProvider* texProvid
}
SkScalar xformedSigma = this->computeXformedSigma(viewMatrix);
- float extra=3.f*SkScalarCeilToScalar(xformedSigma-1/6.0f);
-
- SkRect proxyRect = rrect.rect();
- proxyRect.outset(extra, extra);
sk_sp<GrFragmentProcessor> fp(GrRRectBlurEffect::Make(texProvider, xformedSigma, rrect));
if (!fp) {
@@ -1186,6 +1184,11 @@ bool SkBlurMaskFilterImpl::directFilterRRectMaskGPU(GrTextureProvider* texProvid
return false;
}
+ float extra=3.f*SkScalarCeilToScalar(xformedSigma-1/6.0f);
+
+ SkRect proxyRect = rrect.rect();
+ proxyRect.outset(extra, extra);
+
drawContext->fillRectWithLocalMatrix(clip, *grp, SkMatrix::I(), proxyRect, inverse);
return true;
}
« no previous file with comments | « gm/occludedrrectblur.cpp ('k') | src/gpu/SkGpuDevice.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698