Reland "Update FragmentProcessor TextureSampler to hold an GrSurfaceProxyView."

This reverts commit c5c024791bb7a587223b807e00ffba4a3eb5fdb7.

Reason for revert: Doh

Original change's description:
> Revert "Update FragmentProcessor TextureSampler to hold an GrSurfaceProxyView."
> 
> This reverts commit acf5929ae0addc5188117142fd3fb39828baa8d5.
> 
> Reason for revert: May be blocking Chrome roll
> Original change's description:
> > Update FragmentProcessor TextureSampler to hold an GrSurfaceProxyView.
> > 
> > In future CLs I will update the Ops that create the TextureSamplers to pass
> > the GrSurfaceProxyView in.
> > 
> > Bug: skia:9556
> > Change-Id: I550dab64974d32e4c3047188063efa2d0832328e
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259164
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
> > Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> 
> TBR=egdaniel@google.com,michaelludwig@google.com
> 
> Change-Id: Ic804a52c5c6d16a13a9cc2d85bb959f305134177
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:9556
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259433
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>

TBR=egdaniel@google.com,robertphillips@google.com,michaelludwig@google.com

Change-Id: If2af5b5b323858e59c0c8db3b75477d74d78abfd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:9556
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259434
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/GrFragmentProcessor.cpp b/src/gpu/GrFragmentProcessor.cpp
index b836be4..6760aa7 100644
--- a/src/gpu/GrFragmentProcessor.cpp
+++ b/src/gpu/GrFragmentProcessor.cpp
@@ -50,7 +50,7 @@
 void GrFragmentProcessor::visitProxies(const GrOp::VisitProxyFunc& func) {
     for (auto [sampler, fp] : FPTextureSamplerRange(*this)) {
         bool mipped = (GrSamplerState::Filter::kMipMap == sampler.samplerState().filter());
-        func(sampler.proxy(), GrMipMapped(mipped));
+        func(sampler.view().proxy(), GrMipMapped(mipped));
     }
 }
 
@@ -412,17 +412,39 @@
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-GrFragmentProcessor::TextureSampler::TextureSampler(sk_sp<GrSurfaceProxy> proxy,
-                                                    const GrSamplerState& samplerState) {
-    this->reset(std::move(proxy), samplerState);
-}
-
-void GrFragmentProcessor::TextureSampler::reset(sk_sp<GrSurfaceProxy> proxy,
-                                                const GrSamplerState& samplerState) {
-    SkASSERT(proxy->asTextureProxy());
-    fProxy = std::move(proxy);
-    fSamplerState = samplerState;
+GrFragmentProcessor::TextureSampler::TextureSampler(GrSurfaceProxyView view,
+                                                    const GrSamplerState& samplerState)
+        : fView(std::move(view))
+        , fSamplerState(samplerState) {
+    GrSurfaceProxy* proxy = this->proxy();
     fSamplerState.setFilterMode(
             SkTMin(samplerState.filter(),
-                   GrTextureProxy::HighestFilterMode(fProxy->backendFormat().textureType())));
+                   GrTextureProxy::HighestFilterMode(proxy->backendFormat().textureType())));
 }
+
+GrFragmentProcessor::TextureSampler::TextureSampler(sk_sp<GrSurfaceProxy> proxy,
+                                                    const GrSamplerState& samplerState) {
+    SkASSERT(proxy->asTextureProxy());
+    GrSurfaceOrigin origin = proxy->origin();
+    GrSwizzle swizzle = proxy->textureSwizzle();
+    fView = GrSurfaceProxyView(std::move(proxy), origin, swizzle);
+
+    fSamplerState = samplerState;
+    GrSurfaceProxy* surfProxy = this->proxy();
+    fSamplerState.setFilterMode(
+            SkTMin(samplerState.filter(),
+                   GrTextureProxy::HighestFilterMode(surfProxy->backendFormat().textureType())));
+}
+
+#if GR_TEST_UTILS
+void GrFragmentProcessor::TextureSampler::set(GrSurfaceProxyView view,
+                                              const GrSamplerState& samplerState) {
+    SkASSERT(view.proxy()->asTextureProxy());
+    fView = std::move(view);
+    fSamplerState = samplerState;
+
+    fSamplerState.setFilterMode(
+            SkTMin(samplerState.filter(),
+                   GrTextureProxy::HighestFilterMode(this->proxy()->backendFormat().textureType())));
+}
+#endif