diff options
Diffstat (limited to 'src/gpu/ccpr/GrCCDrawPathsOp.cpp')
-rw-r--r-- | src/gpu/ccpr/GrCCDrawPathsOp.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gpu/ccpr/GrCCDrawPathsOp.cpp b/src/gpu/ccpr/GrCCDrawPathsOp.cpp index db5ea355aa..bbe3df29eb 100644 --- a/src/gpu/ccpr/GrCCDrawPathsOp.cpp +++ b/src/gpu/ccpr/GrCCDrawPathsOp.cpp @@ -337,7 +337,9 @@ void GrCCDrawPathsOp::onExecute(GrOpFlushState* flushState) { initArgs.fCaps = &flushState->caps(); initArgs.fResourceProvider = flushState->resourceProvider(); initArgs.fDstProxy = flushState->drawOpArgs().fDstProxy; - GrPipeline pipeline(initArgs, std::move(fProcessors), flushState->detachAppliedClip()); + auto clip = flushState->detachAppliedClip(); + GrPipeline::FixedDynamicState fixedDynamicState(clip.scissorState().rect()); + GrPipeline pipeline(initArgs, std::move(fProcessors), std::move(clip)); int baseInstance = fBaseInstance; SkASSERT(baseInstance >= 0); // Make sure setupResources() has been called. @@ -347,8 +349,8 @@ void GrCCDrawPathsOp::onExecute(GrOpFlushState* flushState) { GrCCPathProcessor pathProc(flushState->resourceProvider(), sk_ref_sp(range.fAtlasProxy), fViewMatrixIfUsingLocalCoords); - pathProc.drawPaths(flushState, pipeline, *resources, baseInstance, range.fEndInstanceIdx, - this->bounds()); + pathProc.drawPaths(flushState, pipeline, &fixedDynamicState, *resources, baseInstance, + range.fEndInstanceIdx, this->bounds()); baseInstance = range.fEndInstanceIdx; } |