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));