| 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;
|
| }
|
|
|
|
|