aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects/SkBlurMaskFilter.cpp
diff options
context:
space:
mode:
authorGravatar joshualitt <joshualitt@chromium.org>2014-12-17 15:50:11 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2014-12-17 15:50:11 -0800
commit5531d51ce7426bdae7563547326fcf0bf926a083 (patch)
tree111625235b55e016756b32d9904d6d3bf059c73c /src/effects/SkBlurMaskFilter.cpp
parent1b28a3a4890e3b84b43181b3fe3690ac565930dc (diff)
remove view matrix from context
Diffstat (limited to 'src/effects/SkBlurMaskFilter.cpp')
-rw-r--r--src/effects/SkBlurMaskFilter.cpp25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/effects/SkBlurMaskFilter.cpp b/src/effects/SkBlurMaskFilter.cpp
index 7c0bbb851d..d880d28304 100644
--- a/src/effects/SkBlurMaskFilter.cpp
+++ b/src/effects/SkBlurMaskFilter.cpp
@@ -50,10 +50,12 @@ public:
SkRect* maskRect) const SK_OVERRIDE;
virtual bool directFilterMaskGPU(GrContext* context,
GrPaint* grp,
+ const SkMatrix& viewMatrix,
const SkStrokeRec& strokeRec,
const SkPath& path) const SK_OVERRIDE;
virtual bool directFilterRRectMaskGPU(GrContext* context,
GrPaint* grp,
+ const SkMatrix& viewMatrix,
const SkStrokeRec& strokeRec,
const SkRRect& rrect) const SK_OVERRIDE;
@@ -835,6 +837,7 @@ GrFragmentProcessor* GrRectBlurEffect::TestCreate(SkRandom* random,
bool SkBlurMaskFilterImpl::directFilterMaskGPU(GrContext* context,
GrPaint* grp,
+ const SkMatrix& viewMatrix,
const SkStrokeRec& strokeRec,
const SkPath& path) const {
if (fBlurStyle != kNormal_SkBlurStyle) {
@@ -850,7 +853,7 @@ bool SkBlurMaskFilterImpl::directFilterMaskGPU(GrContext* context,
return false;
}
- SkMatrix ctm = context->getMatrix();
+ SkMatrix ctm = viewMatrix;
SkScalar xformedSigma = this->computeXformedSigma(ctm);
int pad=SkScalarCeilToInt(6*xformedSigma)/2;
@@ -861,14 +864,13 @@ bool SkBlurMaskFilterImpl::directFilterMaskGPU(GrContext* context,
return false;
}
- GrContext::AutoMatrix am;
- if (!am.setIdentity(context, grp)) {
- return false;
+ if (!grp->localCoordChangeInverse(viewMatrix)) {
+ return false;
}
grp->addCoverageProcessor(fp);
- context->drawRect(*grp, rect);
+ context->drawRect(*grp, SkMatrix::I(), rect);
return true;
}
@@ -1122,6 +1124,7 @@ GrGLFragmentProcessor* GrRRectBlurEffect::createGLInstance() const {
bool SkBlurMaskFilterImpl::directFilterRRectMaskGPU(GrContext* context,
GrPaint* grp,
+ const SkMatrix& viewMatrix,
const SkStrokeRec& strokeRec,
const SkRRect& rrect) const {
if (fBlurStyle != kNormal_SkBlurStyle) {
@@ -1133,7 +1136,7 @@ bool SkBlurMaskFilterImpl::directFilterRRectMaskGPU(GrContext* context,
}
SkRect proxy_rect = rrect.rect();
- SkMatrix ctm = context->getMatrix();
+ SkMatrix ctm = viewMatrix;
SkScalar xformedSigma = this->computeXformedSigma(ctm);
float extra=3.f*SkScalarCeilToScalar(xformedSigma-1/6.0f);
proxy_rect.outset(extra, extra);
@@ -1143,14 +1146,13 @@ bool SkBlurMaskFilterImpl::directFilterRRectMaskGPU(GrContext* context,
return false;
}
- GrContext::AutoMatrix am;
- if (!am.setIdentity(context, grp)) {
- return false;
+ if (!grp->localCoordChangeInverse(viewMatrix)) {
+ return false;
}
grp->addCoverageProcessor(fp);
- context->drawRect(*grp, proxy_rect);
+ context->drawRect(*grp, SkMatrix::I(), proxy_rect);
return true;
}
@@ -1215,7 +1217,6 @@ bool SkBlurMaskFilterImpl::filterMaskGPU(GrTexture* src,
}
if (!isNormalBlur) {
- context->setIdentityMatrix();
GrPaint paint;
SkMatrix matrix;
matrix.setIDiv(src->width(), src->height());
@@ -1234,7 +1235,7 @@ bool SkBlurMaskFilterImpl::filterMaskGPU(GrTexture* src,
// = 0 * src + (1 - src) * dst
paint.setPorterDuffXPFactory(kZero_GrBlendCoeff, kISC_GrBlendCoeff);
}
- context->drawRect(paint, clipRect);
+ context->drawRect(paint, SkMatrix::I(), clipRect);
}
return true;