Move GrProtected off GrSurfaceDesc and pass separately.


Change-Id: If628c13bb0e5aa885e4249a37432ba572e65d920
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/228440
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/GrResourceProvider.cpp b/src/gpu/GrResourceProvider.cpp
index d49721c..ed3565b 100644
--- a/src/gpu/GrResourceProvider.cpp
+++ b/src/gpu/GrResourceProvider.cpp
@@ -78,6 +78,7 @@
 
 sk_sp<GrTexture> GrResourceProvider::createTexture(const GrSurfaceDesc& desc,
                                                    GrRenderable renderable, SkBudgeted budgeted,
+                                                   GrProtected isProtected,
                                                    const GrMipLevel texels[], int mipLevelCount) {
     ASSERT_SINGLE_OWNER
 
@@ -110,13 +111,14 @@
             h = std::max(h / 2, 1);
         }
     }
-    return fGpu->createTexture(desc, renderable, budgeted, tmpTexels.get(), mipLevelCount);
+    return fGpu->createTexture(desc, renderable, budgeted, isProtected, tmpTexels.get(),
+                               mipLevelCount);
 }
 
 sk_sp<GrTexture> GrResourceProvider::getExactScratch(const GrSurfaceDesc& desc,
                                                      GrRenderable renderable, SkBudgeted budgeted,
-                                                     Flags flags) {
-    sk_sp<GrTexture> tex(this->refScratchTexture(desc, renderable, flags));
+                                                     GrProtected isProtected, Flags flags) {
+    sk_sp<GrTexture> tex(this->refScratchTexture(desc, renderable, isProtected, flags));
     if (tex && SkBudgeted::kNo == budgeted) {
         tex->resourcePriv().makeUnbudgeted();
     }
@@ -128,6 +130,7 @@
                                                    GrRenderable renderable,
                                                    SkBudgeted budgeted,
                                                    SkBackingFit fit,
+                                                   GrProtected isProtected,
                                                    const GrMipLevel& mipLevel,
                                                    Flags flags) {
     ASSERT_SINGLE_OWNER
@@ -159,9 +162,10 @@
     }
 
     GrColorType colorType = GrPixelConfigToColorType(desc.fConfig);
-    sk_sp<GrTexture> tex = (SkBackingFit::kApprox == fit)
-                                   ? this->createApproxTexture(desc, renderable, flags)
-                                   : this->createTexture(desc, renderable, budgeted, flags);
+    sk_sp<GrTexture> tex =
+            (SkBackingFit::kApprox == fit)
+                    ? this->createApproxTexture(desc, renderable, isProtected, flags)
+                    : this->createTexture(desc, renderable, budgeted, isProtected, flags);
     if (!tex) {
         return nullptr;
     }
@@ -197,7 +201,7 @@
 
 sk_sp<GrTexture> GrResourceProvider::createTexture(const GrSurfaceDesc& desc,
                                                    GrRenderable renderable, SkBudgeted budgeted,
-                                                   Flags flags) {
+                                                   GrProtected isProtected, Flags flags) {
     ASSERT_SINGLE_OWNER
     if (this->isAbandoned()) {
         return nullptr;
@@ -209,7 +213,8 @@
 
     // Compressed textures are read-only so they don't support re-use for scratch.
     if (!GrPixelConfigIsCompressed(desc.fConfig)) {
-        sk_sp<GrTexture> tex = this->getExactScratch(desc, renderable, budgeted, flags);
+        sk_sp<GrTexture> tex =
+                this->getExactScratch(desc, renderable, budgeted, isProtected, flags);
         if (tex) {
             return tex;
         }
@@ -222,10 +227,10 @@
         GrMipLevel level;
         level.fRowBytes = rowBytes;
         level.fPixels = zeros.get();
-        return fGpu->createTexture(desc, renderable, budgeted, &level, 1);
+        return fGpu->createTexture(desc, renderable, budgeted, isProtected, &level, 1);
     }
 
-    return fGpu->createTexture(desc, renderable, budgeted);
+    return fGpu->createTexture(desc, renderable, budgeted, isProtected);
 }
 
 // Map 'value' to a larger multiple of 2. Values <= 'kMagicTol' will pop up to
@@ -255,7 +260,8 @@
 }
 
 sk_sp<GrTexture> GrResourceProvider::createApproxTexture(const GrSurfaceDesc& desc,
-                                                         GrRenderable renderable, Flags flags) {
+                                                         GrRenderable renderable,
+                                                         GrProtected isProtected, Flags flags) {
     ASSERT_SINGLE_OWNER
     SkASSERT(Flags::kNone == flags || Flags::kNoPendingIO == flags);
 
@@ -272,7 +278,7 @@
         return nullptr;
     }
 
-    if (auto tex = this->refScratchTexture(desc, renderable, flags)) {
+    if (auto tex = this->refScratchTexture(desc, renderable, isProtected, flags)) {
         return tex;
     }
 
@@ -285,7 +291,7 @@
         wdesc->fHeight = MakeApprox(wdesc->fHeight);
     }
 
-    if (auto tex = this->refScratchTexture(*copyDesc, renderable, flags)) {
+    if (auto tex = this->refScratchTexture(*copyDesc, renderable, isProtected, flags)) {
         return tex;
     }
 
@@ -296,13 +302,14 @@
         GrMipLevel level;
         level.fRowBytes = rowBytes;
         level.fPixels = zeros.get();
-        return fGpu->createTexture(*copyDesc, renderable, SkBudgeted::kYes, &level, 1);
+        return fGpu->createTexture(*copyDesc, renderable, SkBudgeted::kYes, isProtected, &level, 1);
     }
-    return fGpu->createTexture(*copyDesc, renderable, SkBudgeted::kYes);
+    return fGpu->createTexture(*copyDesc, renderable, SkBudgeted::kYes, isProtected);
 }
 
 sk_sp<GrTexture> GrResourceProvider::refScratchTexture(const GrSurfaceDesc& desc,
-                                                       GrRenderable renderable, Flags flags) {
+                                                       GrRenderable renderable,
+                                                       GrProtected isProtected, Flags flags) {
     ASSERT_SINGLE_OWNER
     SkASSERT(!this->isAbandoned());
     SkASSERT(!GrPixelConfigIsCompressed(desc.fConfig));