Pass GrBackendFormat to GrResourceProvider and GrGpu texture create
functions.
Change-Id: Ie3fe9d56fdbf369ccacd0188a3d3d73ce1d30d48
Bug: skia:6718
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/232141
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/GrResourceProvider.cpp b/src/gpu/GrResourceProvider.cpp
index d9b4f92..2413c64 100644
--- a/src/gpu/GrResourceProvider.cpp
+++ b/src/gpu/GrResourceProvider.cpp
@@ -77,6 +77,7 @@
}
sk_sp<GrTexture> GrResourceProvider::createTexture(const GrSurfaceDesc& desc,
+ const GrBackendFormat& format,
GrRenderable renderable,
int renderTargetSampleCnt, SkBudgeted budgeted,
GrProtected isProtected,
@@ -112,18 +113,19 @@
h = std::max(h / 2, 1);
}
}
- return fGpu->createTexture(desc, renderable, renderTargetSampleCnt, budgeted, isProtected,
- tmpTexels.get(), mipLevelCount);
+ return fGpu->createTexture(desc, format, renderable, renderTargetSampleCnt, budgeted,
+ isProtected, tmpTexels.get(), mipLevelCount);
}
sk_sp<GrTexture> GrResourceProvider::getExactScratch(const GrSurfaceDesc& desc,
+ const GrBackendFormat& format,
GrRenderable renderable,
int renderTargetSampleCnt,
SkBudgeted budgeted,
GrProtected isProtected,
Flags flags) {
- sk_sp<GrTexture> tex(
- this->refScratchTexture(desc, renderable, renderTargetSampleCnt, isProtected, flags));
+ sk_sp<GrTexture> tex(this->refScratchTexture(desc, format, renderable, renderTargetSampleCnt,
+ isProtected, flags));
if (tex && SkBudgeted::kNo == budgeted) {
tex->resourcePriv().makeUnbudgeted();
}
@@ -132,6 +134,7 @@
}
sk_sp<GrTexture> GrResourceProvider::createTexture(const GrSurfaceDesc& desc,
+ const GrBackendFormat& format,
GrRenderable renderable,
int renderTargetSampleCnt,
SkBudgeted budgeted,
@@ -170,9 +173,9 @@
GrColorType colorType = GrPixelConfigToColorType(desc.fConfig);
sk_sp<GrTexture> tex =
(SkBackingFit::kApprox == fit)
- ? this->createApproxTexture(desc, renderable, renderTargetSampleCnt,
+ ? this->createApproxTexture(desc, format, renderable, renderTargetSampleCnt,
isProtected, flags)
- : this->createTexture(desc, renderable, renderTargetSampleCnt, budgeted,
+ : this->createTexture(desc, format, renderable, renderTargetSampleCnt, budgeted,
isProtected, flags);
if (!tex) {
return nullptr;
@@ -208,6 +211,7 @@
}
sk_sp<GrTexture> GrResourceProvider::createTexture(const GrSurfaceDesc& desc,
+ const GrBackendFormat& format,
GrRenderable renderable,
int renderTargetSampleCnt,
SkBudgeted budgeted,
@@ -224,8 +228,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, renderTargetSampleCnt,
- budgeted, isProtected, flags);
+ sk_sp<GrTexture> tex = this->getExactScratch(
+ desc, format, renderable, renderTargetSampleCnt, budgeted, isProtected, flags);
if (tex) {
return tex;
}
@@ -238,11 +242,12 @@
GrMipLevel level;
level.fRowBytes = rowBytes;
level.fPixels = zeros.get();
- return fGpu->createTexture(desc, renderable, renderTargetSampleCnt, budgeted, isProtected,
- &level, 1);
+ return fGpu->createTexture(desc, format, renderable, renderTargetSampleCnt, budgeted,
+ isProtected, &level, 1);
}
- return fGpu->createTexture(desc, renderable, renderTargetSampleCnt, budgeted, isProtected);
+ return fGpu->createTexture(desc, format, renderable, renderTargetSampleCnt, budgeted,
+ isProtected);
}
// Map 'value' to a larger multiple of 2. Values <= 'kMagicTol' will pop up to
@@ -272,9 +277,11 @@
}
sk_sp<GrTexture> GrResourceProvider::createApproxTexture(const GrSurfaceDesc& desc,
+ const GrBackendFormat& format,
GrRenderable renderable,
int renderTargetSampleCnt,
- GrProtected isProtected, Flags flags) {
+ GrProtected isProtected,
+ Flags flags) {
ASSERT_SINGLE_OWNER
SkASSERT(Flags::kNone == flags || Flags::kNoPendingIO == flags);
@@ -291,8 +298,8 @@
return nullptr;
}
- if (auto tex = this->refScratchTexture(desc, renderable, renderTargetSampleCnt, isProtected,
- flags)) {
+ if (auto tex = this->refScratchTexture(desc, format, renderable, renderTargetSampleCnt,
+ isProtected, flags)) {
return tex;
}
@@ -305,7 +312,7 @@
wdesc->fHeight = MakeApprox(wdesc->fHeight);
}
- if (auto tex = this->refScratchTexture(*copyDesc, renderable, renderTargetSampleCnt,
+ if (auto tex = this->refScratchTexture(*copyDesc, format, renderable, renderTargetSampleCnt,
isProtected, flags)) {
return tex;
}
@@ -317,14 +324,15 @@
GrMipLevel level;
level.fRowBytes = rowBytes;
level.fPixels = zeros.get();
- return fGpu->createTexture(*copyDesc, renderable, renderTargetSampleCnt, SkBudgeted::kYes,
- isProtected, &level, 1);
+ return fGpu->createTexture(*copyDesc, format, renderable, renderTargetSampleCnt,
+ SkBudgeted::kYes, isProtected, &level, 1);
}
- return fGpu->createTexture(*copyDesc, renderable, renderTargetSampleCnt, SkBudgeted::kYes,
- isProtected);
+ return fGpu->createTexture(*copyDesc, format, renderable, renderTargetSampleCnt,
+ SkBudgeted::kYes, isProtected);
}
sk_sp<GrTexture> GrResourceProvider::refScratchTexture(const GrSurfaceDesc& desc,
+ const GrBackendFormat& format,
GrRenderable renderable,
int renderTargetSampleCnt,
GrProtected isProtected,