Expand SkImage::MakeFromCompressed to support mipMapping
Bug: skia:9680
Change-Id: I41357439cdc087e4cc98d5d1659ae2ee19f49004
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/264398
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/GrProxyProvider.cpp b/src/gpu/GrProxyProvider.cpp
index aa23eb7..f26dbfc 100644
--- a/src/gpu/GrProxyProvider.cpp
+++ b/src/gpu/GrProxyProvider.cpp
@@ -496,8 +496,8 @@
}
sk_sp<GrTextureProxy> GrProxyProvider::createCompressedTextureProxy(
- SkISize dimensions, SkBudgeted budgeted, SkImage::CompressionType compressionType,
- sk_sp<SkData> data) {
+ SkISize dimensions, SkBudgeted budgeted, GrMipMapped mipMapped,
+ SkImage::CompressionType compressionType, sk_sp<SkData> data) {
ASSERT_SINGLE_OWNER
if (this->isAbandoned()) {
return nullptr;
@@ -514,14 +514,17 @@
return nullptr;
}
+ GrMipMapsStatus mipMapsStatus = (GrMipMapped::kYes == mipMapped)
+ ? GrMipMapsStatus::kValid
+ : GrMipMapsStatus::kNotAllocated;
+
sk_sp<GrTextureProxy> proxy = this->createLazyProxy(
- [dimensions, format, budgeted,
- data](GrResourceProvider* resourceProvider) {
+ [dimensions, format, budgeted, mipMapped, data](GrResourceProvider* resourceProvider) {
return LazyCallbackResult(resourceProvider->createCompressedTexture(
- dimensions, format, budgeted, data.get()));
+ dimensions, format, budgeted, mipMapped, data.get()));
},
- format, desc, GrRenderable::kNo, 1, kTopLeft_GrSurfaceOrigin, GrMipMapped::kNo,
- GrMipMapsStatus::kNotAllocated, GrInternalSurfaceFlags::kReadOnly, SkBackingFit::kExact,
+ format, desc, GrRenderable::kNo, 1, kTopLeft_GrSurfaceOrigin, mipMapped,
+ mipMapsStatus, GrInternalSurfaceFlags::kReadOnly, SkBackingFit::kExact,
SkBudgeted::kYes, GrProtected::kNo, UseAllocator::kYes);
if (!proxy) {