Index: src/core/SkImageFilter.cpp |
diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp |
index 99a1d135486c1da80132906ba099582f2172225d..969d0b76aeb74a0e40baf1a879e53e9c74562fc8 100644 |
--- a/src/core/SkImageFilter.cpp |
+++ b/src/core/SkImageFilter.cpp |
@@ -227,7 +227,7 @@ bool SkImageFilter::canFilterImageGPU() const { |
} |
bool SkImageFilter::filterImageGPU(Proxy* proxy, const SkBitmap& src, const Context& ctx, |
- SkBitmap* result, SkIPoint* offset) const { |
+ const GrClip&, SkBitmap* result, SkIPoint* offset) const { |
#if SK_SUPPORT_GPU |
SkBitmap input = src; |
SkASSERT(fInputCount == 1); |
@@ -257,7 +257,9 @@ bool SkImageFilter::filterImageGPU(Proxy* proxy, const SkBitmap& src, const Cont |
return false; |
} |
- GrContext::AutoClip acs(context, dstRect); |
+ // setup new clip |
+ GrClip clip(dstRect); |
+ |
GrFragmentProcessor* fp; |
offset->fX = bounds.left(); |
offset->fY = bounds.top(); |
@@ -268,7 +270,8 @@ bool SkImageFilter::filterImageGPU(Proxy* proxy, const SkBitmap& src, const Cont |
SkASSERT(fp); |
GrPaint paint; |
paint.addColorProcessor(fp)->unref(); |
- context->drawNonAARectToRect(dst->asRenderTarget(), paint, SkMatrix::I(), dstRect, srcRect); |
+ context->drawNonAARectToRect(dst->asRenderTarget(), clip, paint, SkMatrix::I(), dstRect, |
+ srcRect); |
WrapTexture(dst, bounds.width(), bounds.height(), result); |
return true; |
@@ -382,9 +385,9 @@ bool SkImageFilter::getInputResultGPU(SkImageFilter::Proxy* proxy, |
// matrix with no clip and that the matrix, clip, and render target set before this function was |
// called are restored before we return to the caller. |
GrContext* context = src.getTexture()->getContext(); |
- GrContext::AutoWideOpenIdentityDraw awoid(context); |
+ |
if (this->canFilterImageGPU()) { |
- return this->filterImageGPU(proxy, src, ctx, result, offset); |
+ return this->filterImageGPU(proxy, src, ctx, GrClip::WideOpen(), result, offset); |
} else { |
if (this->filterImage(proxy, src, ctx, result, offset)) { |
if (!result->getTexture()) { |