aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects
diff options
context:
space:
mode:
Diffstat (limited to 'src/effects')
-rw-r--r--src/effects/SkBlurMaskFilter.cpp5
-rw-r--r--src/effects/SkRRectsGaussianEdgeMaskFilter.cpp25
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;