Move GrAppliedClip into GrPipeline

Change-Id: I522c2fd52bea9813baba7cdb3f11b63e7ab96b50
Reviewed-on: https://skia-review.googlesource.com/28861
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/GrPipeline.cpp b/src/gpu/GrPipeline.cpp
index f684896..a6e8fba 100644
--- a/src/gpu/GrPipeline.cpp
+++ b/src/gpu/GrPipeline.cpp
@@ -17,20 +17,19 @@
 
 #include "ops/GrOp.h"
 
-GrPipeline::GrPipeline(const InitArgs& args, GrProcessorSet&& processors) {
+GrPipeline::GrPipeline(const InitArgs& args, GrProcessorSet&& processors,
+                       GrAppliedClip&& appliedClip) {
     SkASSERT(args.fProxy);
     SkASSERT(processors.isFinalized());
 
     fProxy.reset(args.fProxy);
 
     fFlags = args.fFlags;
-    if (args.fAppliedClip) {
-        fScissorState = args.fAppliedClip->scissorState();
-        if (args.fAppliedClip->hasStencilClip()) {
-            fFlags |= kHasStencilClip_Flag;
-        }
-        fWindowRectsState = args.fAppliedClip->windowRectsState();
+    fScissorState = appliedClip.scissorState();
+    if (appliedClip.hasStencilClip()) {
+        fFlags |= kHasStencilClip_Flag;
     }
+    fWindowRectsState = appliedClip.windowRectsState();
     if (!args.fUserStencil->isDisabled(fFlags & kHasStencilClip_Flag)) {
         fFlags |= kStencilEnabled_Flag;
     }
@@ -52,7 +51,8 @@
     fNumColorProcessors = processors.numColorFragmentProcessors();
     int numTotalProcessors =
             fNumColorProcessors + processors.numCoverageFragmentProcessors();
-    if (args.fAppliedClip && args.fAppliedClip->clipCoverageFragmentProcessor()) {
+    auto clipFP = appliedClip.detachClipCoverageFragmentProcessor();
+    if (clipFP) {
         ++numTotalProcessors;
     }
     fFragmentProcessors.reset(numTotalProcessors);
@@ -72,12 +72,10 @@
             this->markAsBad();
         }
     }
-    if (args.fAppliedClip) {
-        if (const GrFragmentProcessor* fp = args.fAppliedClip->clipCoverageFragmentProcessor()) {
-            fFragmentProcessors[currFPIdx].reset(fp);
-            if (!fp->instantiate(args.fResourceProvider)) {
-                this->markAsBad();
-            }
+    if (clipFP) {
+        fFragmentProcessors[currFPIdx].reset(clipFP.get());
+        if (!fFragmentProcessors[currFPIdx]->instantiate(args.fResourceProvider)) {
+            this->markAsBad();
         }
     }
 }