diff options
author | bsalomon <bsalomon@google.com> | 2016-07-08 11:31:22 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-07-08 11:31:23 -0700 |
commit | 6cc9006a907bf166b94468bf5c0e915cc0b14532 (patch) | |
tree | d968ab914a08e8dda52df5e88a2d9cf23156d362 /src/gpu/GrClip.cpp | |
parent | 8e9e45a69b804ee6b817baf1657e5efa0636ff52 (diff) |
Use clipped bounds for reordering decisions
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2137543002
NOTREECHECKS=true
NOPRESUBMIT=true
Review-Url: https://codereview.chromium.org/2137543002
Diffstat (limited to 'src/gpu/GrClip.cpp')
-rw-r--r-- | src/gpu/GrClip.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gpu/GrClip.cpp b/src/gpu/GrClip.cpp index d74d935585..b0577c5122 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; } |