aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrClip.cpp
diff options
context:
space:
mode:
authorGravatar bsalomon <bsalomon@google.com>2016-07-08 11:31:22 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-07-08 11:31:23 -0700
commit6cc9006a907bf166b94468bf5c0e915cc0b14532 (patch)
treed968ab914a08e8dda52df5e88a2d9cf23156d362 /src/gpu/GrClip.cpp
parent8e9e45a69b804ee6b817baf1657e5efa0636ff52 (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.cpp9
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;
}