| Index: src/effects/SkMorphologyImageFilter.cpp
|
| diff --git a/src/effects/SkMorphologyImageFilter.cpp b/src/effects/SkMorphologyImageFilter.cpp
|
| index d2ec036ba79add76c51722b41c4ee30ad3e3d9d1..8c46aae757447e97b6a0a69b9f6a98a8d0a05937 100644
|
| --- a/src/effects/SkMorphologyImageFilter.cpp
|
| +++ b/src/effects/SkMorphologyImageFilter.cpp
|
| @@ -563,7 +563,6 @@
|
|
|
| void apply_morphology_rect(GrContext* context,
|
| GrRenderTarget* rt,
|
| - const GrClip& clip,
|
| GrTexture* texture,
|
| const SkIRect& srcRect,
|
| const SkIRect& dstRect,
|
| @@ -577,13 +576,12 @@
|
| radius,
|
| morphType,
|
| bounds))->unref();
|
| - context->drawNonAARectToRect(rt, clip, paint, SkMatrix::I(), SkRect::Make(dstRect),
|
| + context->drawNonAARectToRect(rt, paint, SkMatrix::I(), SkRect::Make(dstRect),
|
| SkRect::Make(srcRect));
|
| }
|
|
|
| void apply_morphology_rect_no_bounds(GrContext* context,
|
| GrRenderTarget* rt,
|
| - const GrClip& clip,
|
| GrTexture* texture,
|
| const SkIRect& srcRect,
|
| const SkIRect& dstRect,
|
| @@ -595,13 +593,12 @@
|
| direction,
|
| radius,
|
| morphType))->unref();
|
| - context->drawNonAARectToRect(rt, clip, paint, SkMatrix::I(), SkRect::Make(dstRect),
|
| + context->drawNonAARectToRect(rt, paint, SkMatrix::I(), SkRect::Make(dstRect),
|
| SkRect::Make(srcRect));
|
| }
|
|
|
| void apply_morphology_pass(GrContext* context,
|
| GrRenderTarget* rt,
|
| - const GrClip& clip,
|
| GrTexture* texture,
|
| const SkIRect& srcRect,
|
| const SkIRect& dstRect,
|
| @@ -633,16 +630,16 @@
|
| }
|
| if (middleSrcRect.fLeft - middleSrcRect.fRight >= 0) {
|
| // radius covers srcRect; use bounds over entire draw
|
| - apply_morphology_rect(context, rt, clip, texture, srcRect, dstRect, radius,
|
| + apply_morphology_rect(context, rt, texture, srcRect, dstRect, radius,
|
| morphType, bounds, direction);
|
| } else {
|
| // Draw upper and lower margins with bounds; middle without.
|
| - apply_morphology_rect(context, rt, clip, texture, lowerSrcRect, lowerDstRect, radius,
|
| + apply_morphology_rect(context, rt,texture, lowerSrcRect, lowerDstRect, radius,
|
| morphType, bounds, direction);
|
| - apply_morphology_rect(context, rt, clip, texture, upperSrcRect, upperDstRect, radius,
|
| + apply_morphology_rect(context, rt, texture, upperSrcRect, upperDstRect, radius,
|
| morphType, bounds, direction);
|
| - apply_morphology_rect_no_bounds(context, rt, clip, texture, middleSrcRect, middleDstRect,
|
| - radius, morphType, direction);
|
| + apply_morphology_rect_no_bounds(context, rt, texture, middleSrcRect, middleDstRect, radius,
|
| + morphType, direction);
|
| }
|
| }
|
|
|
| @@ -655,9 +652,8 @@
|
| SkASSERT(srcTexture);
|
| GrContext* context = srcTexture->getContext();
|
|
|
| - // setup new clip
|
| - GrClip clip(SkRect::MakeWH(SkIntToScalar(srcTexture->width()),
|
| - SkIntToScalar(srcTexture->height())));
|
| + GrContext::AutoClip acs(context, SkRect::MakeWH(SkIntToScalar(srcTexture->width()),
|
| + SkIntToScalar(srcTexture->height())));
|
|
|
| SkIRect dstRect = SkIRect::MakeWH(rect.width(), rect.height());
|
| GrSurfaceDesc desc;
|
| @@ -672,9 +668,8 @@
|
| if (NULL == texture) {
|
| return false;
|
| }
|
| - apply_morphology_pass(context, texture->asRenderTarget(), clip, srcTexture,
|
| - srcRect, dstRect, radius.fWidth, morphType,
|
| - Gr1DKernelEffect::kX_Direction);
|
| + apply_morphology_pass(context, texture->asRenderTarget(), srcTexture, srcRect, dstRect,
|
| + radius.fWidth, morphType, Gr1DKernelEffect::kX_Direction);
|
| SkIRect clearRect = SkIRect::MakeXYWH(dstRect.fLeft, dstRect.fBottom,
|
| dstRect.width(), radius.fHeight);
|
| GrColor clearColor = GrMorphologyEffect::kErode_MorphologyType == morphType ?
|
| @@ -689,9 +684,8 @@
|
| if (NULL == texture) {
|
| return false;
|
| }
|
| - apply_morphology_pass(context, texture->asRenderTarget(), clip, srcTexture,
|
| - srcRect, dstRect, radius.fHeight, morphType,
|
| - Gr1DKernelEffect::kY_Direction);
|
| + apply_morphology_pass(context, texture->asRenderTarget(), srcTexture, srcRect, dstRect,
|
| + radius.fHeight, morphType, Gr1DKernelEffect::kY_Direction);
|
| srcTexture.reset(texture);
|
| }
|
| SkImageFilter::WrapTexture(srcTexture, rect.width(), rect.height(), dst);
|
|
|