Use GrSurfaceProxyView in RenderTasks.

Bug: skia:9556
Change-Id: Ibe0ae6981e87909848e5af73fc716aac7c8a591f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249232
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/GrTextureResolveRenderTask.cpp b/src/gpu/GrTextureResolveRenderTask.cpp
index e12bbc8..8c326d3 100644
--- a/src/gpu/GrTextureResolveRenderTask.cpp
+++ b/src/gpu/GrTextureResolveRenderTask.cpp
@@ -17,14 +17,14 @@
 GrTextureResolveRenderTask::~GrTextureResolveRenderTask() {
     for (const auto& resolve : fResolves) {
         // Ensure the proxy doesn't keep hold of a dangling back pointer.
-        resolve.fProxy->setLastRenderTask(nullptr);
+        resolve.fProxyView.proxy()->setLastRenderTask(nullptr);
     }
 }
 
 void GrTextureResolveRenderTask::addProxy(
-        sk_sp<GrSurfaceProxy> proxyHolder, GrSurfaceProxy::ResolveFlags flags, const GrCaps& caps) {
-    fResolves.emplace_back(std::move(proxyHolder), flags);
-    GrSurfaceProxy* proxy = fResolves.back().fProxy.get();
+        GrSurfaceProxyView proxyView, GrSurfaceProxy::ResolveFlags flags, const GrCaps& caps) {
+    fResolves.emplace_back(std::move(proxyView), flags);
+    GrSurfaceProxy* proxy = fResolves.back().fProxyView.proxy();
 
     // Ensure the last render task that operated on the proxy is closed. That's where msaa and
     // mipmaps should have been marked dirty.
@@ -58,7 +58,7 @@
     // manipulate the resolve proxies.
     auto fakeOp = alloc->curOp();
     for (const auto& resolve : fResolves) {
-        alloc->addInterval(resolve.fProxy.get(), fakeOp, fakeOp,
+        alloc->addInterval(resolve.fProxyView.proxy(), fakeOp, fakeOp,
                            GrResourceAllocator::ActualUse::kYes);
     }
     alloc->incOps();
@@ -68,10 +68,11 @@
     // Resolve all msaa back-to-back, before regenerating mipmaps.
     for (const auto& resolve : fResolves) {
         if (GrSurfaceProxy::ResolveFlags::kMSAA & resolve.fFlags) {
+            GrSurfaceProxy* proxy = resolve.fProxyView.proxy();
             // peekRenderTarget might be null if there was an instantiation error.
-            if (GrRenderTarget* renderTarget = resolve.fProxy->peekRenderTarget()) {
+            if (GrRenderTarget* renderTarget = proxy->peekRenderTarget()) {
                 flushState->gpu()->resolveRenderTarget(renderTarget, resolve.fMSAAResolveRect,
-                                                       resolve.fProxy->origin(),
+                                                       resolve.fProxyView.origin(),
                                                        GrGpu::ForExternalIO::kNo);
             }
         }
@@ -80,7 +81,7 @@
     for (const auto& resolve : fResolves) {
         if (GrSurfaceProxy::ResolveFlags::kMipMaps & resolve.fFlags) {
             // peekTexture might be null if there was an instantiation error.
-            GrTexture* texture = resolve.fProxy->peekTexture();
+            GrTexture* texture = resolve.fProxyView.proxy()->peekTexture();
             if (texture && texture->texturePriv().mipMapsAreDirty()) {
                 flushState->gpu()->regenerateMipMapLevels(texture);
                 SkASSERT(!texture->texturePriv().mipMapsAreDirty());
@@ -94,7 +95,7 @@
 #ifdef SK_DEBUG
 void GrTextureResolveRenderTask::visitProxies_debugOnly(const VisitSurfaceProxyFunc& fn) const {
     for (const auto& resolve : fResolves) {
-        fn(resolve.fProxy.get(), GrMipMapped::kNo);
+        fn(resolve.fProxyView.proxy(), GrMipMapped::kNo);
     }
 }
 #endif