aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/SkGr.cpp
diff options
context:
space:
mode:
authorGravatar Greg Daniel <egdaniel@google.com>2018-02-07 10:21:48 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-02-07 15:46:02 +0000
commita4ead65e2c80b6e649f31e28e8fa116aca83fad4 (patch)
treee707b3a79ab62bf9920daf47ff2bf8fabc07d086 /src/gpu/SkGr.cpp
parent2a223358ed19f3dd25f9b127aa21f1dd138cb9f0 (diff)
Add function to GrProxyProvider to lazily upload mip map data
Bug: skia: Change-Id: I906207727242bed8a109bf3ca10b5a6e8e4b952e Reviewed-on: https://skia-review.googlesource.com/104581 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
Diffstat (limited to 'src/gpu/SkGr.cpp')
-rw-r--r--src/gpu/SkGr.cpp44
1 files changed, 0 insertions, 44 deletions
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp
index 09ad206b50..1d210c4008 100644
--- a/src/gpu/SkGr.cpp
+++ b/src/gpu/SkGr.cpp
@@ -112,50 +112,6 @@ void GrInstallBitmapUniqueKeyInvalidator(const GrUniqueKey& key, SkPixelRef* pix
pixelRef->addGenIDChangeListener(new Invalidator(key));
}
-sk_sp<GrTextureProxy> GrGenerateMipMapsAndUploadToTextureProxy(GrProxyProvider* proxyProvider,
- const SkBitmap& bitmap,
- SkColorSpace* dstColorSpace) {
- SkDestinationSurfaceColorMode colorMode = dstColorSpace
- ? SkDestinationSurfaceColorMode::kGammaAndColorSpaceAware
- : SkDestinationSurfaceColorMode::kLegacy;
-
- if (!SkImageInfoIsValid(bitmap.info(), colorMode)) {
- return nullptr;
- }
-
- SkPixmap pixmap;
- if (!bitmap.peekPixels(&pixmap)) {
- return nullptr;
- }
-
- ATRACE_ANDROID_FRAMEWORK("Upload MipMap Texture [%ux%u]", pixmap.width(), pixmap.height());
- GrSurfaceDesc desc = GrImageInfoToSurfaceDesc(pixmap.info(), *proxyProvider->caps());
- std::unique_ptr<SkMipMap> mipmaps(SkMipMap::Build(pixmap, colorMode, nullptr));
- if (!mipmaps) {
- return nullptr;
- }
-
- const int mipLevelCount = mipmaps->countLevels() + 1;
- if (mipLevelCount < 1) {
- return nullptr;
- }
-
- std::unique_ptr<GrMipLevel[]> texels(new GrMipLevel[mipLevelCount]);
-
- texels[0].fPixels = pixmap.addr();
- texels[0].fRowBytes = pixmap.rowBytes();
-
- for (int i = 1; i < mipLevelCount; ++i) {
- SkMipMap::Level generatedMipLevel;
- mipmaps->getLevel(i - 1, &generatedMipLevel);
- texels[i].fPixels = generatedMipLevel.fPixmap.addr();
- texels[i].fRowBytes = generatedMipLevel.fPixmap.rowBytes();
- }
-
- return proxyProvider->createMipMapProxy(desc, SkBudgeted::kYes, texels.get(), mipLevelCount,
- colorMode);
-}
-
sk_sp<GrTextureProxy> GrCopyBaseMipMapToTextureProxy(GrContext* ctx, GrTextureProxy* baseProxy) {
SkASSERT(baseProxy);