Index: src/gpu/GrClip.cpp |
diff --git a/src/gpu/GrClip.cpp b/src/gpu/GrClip.cpp |
index d74d93558597030f7fde31fa06c66d7aa857ff07..b0577c51222814a0c8f1df815ad9bd0686ca5a2b 100644 |
--- a/src/gpu/GrClip.cpp |
+++ b/src/gpu/GrClip.cpp |
@@ -44,6 +44,7 @@ void GrFixedClip::getConservativeBounds(int width, int height, SkIRect* devResul |
bool GrFixedClip::apply(GrContext*, const GrPipelineBuilder& pipelineBuilder, |
GrDrawContext* drawContext, |
const SkRect* devBounds, GrAppliedClip* out) const { |
+ SkASSERT(!fDeviceBounds.isLargest()); |
if (fScissorState.enabled()) { |
SkIRect tightScissor; |
if (!tightScissor.intersect(fScissorState.rect(), |
@@ -53,11 +54,15 @@ bool GrFixedClip::apply(GrContext*, const GrPipelineBuilder& pipelineBuilder, |
if (devBounds && !devBounds->intersects(SkRect::Make(tightScissor))) { |
return false; |
} |
- out->makeScissoredStencil(fHasStencilClip, tightScissor); |
+ if (fHasStencilClip) { |
+ out->makeScissoredStencil(tightScissor, &fDeviceBounds); |
+ } else { |
+ out->makeScissored(tightScissor); |
+ } |
return true; |
} |
- out->makeStencil(fHasStencilClip); |
+ out->makeStencil(fHasStencilClip, fDeviceBounds); |
return true; |
} |