diff options
Diffstat (limited to 'src/gpu/GrClip.cpp')
-rw-r--r-- | src/gpu/GrClip.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/gpu/GrClip.cpp b/src/gpu/GrClip.cpp index b0577c5122..ab2acb9834 100644 --- a/src/gpu/GrClip.cpp +++ b/src/gpu/GrClip.cpp @@ -54,12 +54,14 @@ bool GrFixedClip::apply(GrContext*, const GrPipelineBuilder& pipelineBuilder, if (devBounds && !devBounds->intersects(SkRect::Make(tightScissor))) { return false; } - if (fHasStencilClip) { - out->makeScissoredStencil(tightScissor, &fDeviceBounds); - } else { - out->makeScissored(tightScissor); + if (!devBounds || !CanIgnoreScissor(fScissorState.rect(), *devBounds)) { + if (fHasStencilClip) { + out->makeScissoredStencil(tightScissor, &fDeviceBounds); + } else { + out->makeScissored(tightScissor); + } + return true; } - return true; } out->makeStencil(fHasStencilClip, fDeviceBounds); |