diff options
Diffstat (limited to 'src/effects')
-rw-r--r-- | src/effects/SkBlurMaskFilter.cpp | 5 | ||||
-rw-r--r-- | src/effects/SkRRectsGaussianEdgeMaskFilter.cpp | 25 |
2 files changed, 16 insertions, 14 deletions
diff --git a/src/effects/SkBlurMaskFilter.cpp b/src/effects/SkBlurMaskFilter.cpp index 7992d97d78..9d7df43d62 100644 --- a/src/effects/SkBlurMaskFilter.cpp +++ b/src/effects/SkBlurMaskFilter.cpp @@ -10,6 +10,7 @@ #include "SkGpuBlurUtils.h" #include "SkMaskFilterBase.h" #include "SkReadBuffer.h" +#include "SkRRectPriv.h" #include "SkWriteBuffer.h" #include "SkMaskFilter.h" #include "SkRRect.h" @@ -828,7 +829,7 @@ bool SkBlurMaskFilterImpl::directFilterRRectMaskGPU(GrContext* context, GrProxyProvider* proxyProvider = context->contextPriv().proxyProvider(); SkScalar xformedSigma = this->computeXformedSigma(viewMatrix); - if (devRRect.isRect() || devRRect.isCircle()) { + if (devRRect.isRect() || SkRRectPriv::IsCircle(devRRect)) { std::unique_ptr<GrFragmentProcessor> fp; if (devRRect.isRect()) { SkScalar pad = 3.0f * xformedSigma; @@ -924,7 +925,7 @@ bool SkBlurMaskFilterImpl::canFilterMaskGPU(const SkRRect& devRRect, } // We always do circles and simple circular rrects on the GPU - if (!devRRect.isCircle() && !devRRect.isSimpleCircular()) { + if (!SkRRectPriv::IsCircle(devRRect) && !SkRRectPriv::IsSimpleCircular(devRRect)) { static const SkScalar kMIN_GPU_BLUR_SIZE = SkIntToScalar(64); static const SkScalar kMIN_GPU_BLUR_SIGMA = SkIntToScalar(32); diff --git a/src/effects/SkRRectsGaussianEdgeMaskFilter.cpp b/src/effects/SkRRectsGaussianEdgeMaskFilter.cpp index 850e440099..856076f5ce 100644 --- a/src/effects/SkRRectsGaussianEdgeMaskFilter.cpp +++ b/src/effects/SkRRectsGaussianEdgeMaskFilter.cpp @@ -8,7 +8,7 @@ #include "SkMaskFilterBase.h" #include "SkRRectsGaussianEdgeMaskFilter.h" #include "SkReadBuffer.h" -#include "SkRRect.h" +#include "SkRRectPriv.h" #include "SkWriteBuffer.h" #if SK_SUPPORT_GPU @@ -66,7 +66,7 @@ static SkScalar compute_rrect_normalized_dist(const SkRRect& rr, const SkPoint& SkScalar halfH = 0.5f * rr.rect().height(); SkScalar invRad = 1.0f/rad; - const SkVector& radii = rr.getSimpleRadii(); + const SkVector& radii = SkRRectPriv::GetSimpleRadii(rr); SkASSERT(SkScalarNearlyEqual(radii.fX, radii.fY)); switch (rr.getType()) { @@ -428,8 +428,10 @@ private: // This is a bit of overkill since fX should equal fY for both round rects but it // makes the shader code simpler. pdman.set4f(fRadiiUni, - first.getSimpleRadii().fX, first.getSimpleRadii().fY, - second.getSimpleRadii().fX, second.getSimpleRadii().fY); + SkRRectPriv::GetSimpleRadii(first).fX, + SkRRectPriv::GetSimpleRadii(first).fY, + SkRRectPriv::GetSimpleRadii(second).fX, + SkRRectPriv::GetSimpleRadii(second).fY); } pdman.set1f(fRadiusUni, edgeFP.radius()); @@ -480,12 +482,12 @@ private: } static Mode ComputeMode(const SkRRect& rr) { - if (rr.isCircle()) { + if (SkRRectPriv::IsCircle(rr)) { return kCircle_Mode; } else if (rr.isRect()) { return kRect_Mode; } else { - SkASSERT(rr.isSimpleCircular()); + SkASSERT(SkRRectPriv::IsSimpleCircular(rr)); return kSimpleCircular_Mode; } } @@ -548,15 +550,15 @@ sk_sp<SkFlattenable> SkRRectsGaussianEdgeMaskFilterImpl::CreateProc(SkReadBuffer void SkRRectsGaussianEdgeMaskFilterImpl::flatten(SkWriteBuffer& buf) const { INHERITED::flatten(buf); - SkASSERT(fFirst.isRect() || fFirst.isCircle() || fFirst.isSimpleCircular()); + SkASSERT(SkRRectPriv::EqualRadii(fFirst)); buf.writeRect(fFirst.rect()); - const SkVector& radii1 = fFirst.getSimpleRadii(); + const SkVector radii1 = SkRRectPriv::GetSimpleRadii(fFirst); buf.writeScalar(radii1.fX); buf.writeScalar(radii1.fY); - SkASSERT(fSecond.isRect() || fSecond.isCircle() || fSecond.isSimpleCircular()); + SkASSERT(SkRRectPriv::EqualRadii(fSecond)); buf.writeRect(fSecond.rect()); - const SkVector& radii2 = fSecond.getSimpleRadii(); + const SkVector radii2 = SkRRectPriv::GetSimpleRadii(fSecond); buf.writeScalar(radii2.fX); buf.writeScalar(radii2.fY); @@ -568,8 +570,7 @@ void SkRRectsGaussianEdgeMaskFilterImpl::flatten(SkWriteBuffer& buf) const { sk_sp<SkMaskFilter> SkRRectsGaussianEdgeMaskFilter::Make(const SkRRect& first, const SkRRect& second, SkScalar radius) { - if ((!first.isRect() && !first.isCircle() && !first.isSimpleCircular()) || - (!second.isRect() && !second.isCircle() && !second.isSimpleCircular())) { + if (!SkRRectPriv::EqualRadii(first) || !SkRRectPriv::EqualRadii(second)) { // we only deal with the shapes where the x & y radii are equal // and the same for all four corners return nullptr; |