diff --git a/src/core/SkImageCacherator.cpp b/src/core/SkImageCacherator.cpp index 7b5ff22677..bb389e986b 100644 --- a/src/core/SkImageCacherator.cpp +++ b/src/core/SkImageCacherator.cpp @@ -303,10 +303,11 @@ GrTexture* SkImageCacherator::lockTexture(GrContext* ctx, const GrUniqueKey& key SkBitmap bitmap; if (this->tryLockAsBitmap(&bitmap, client, chint)) { GrTexture* tex = nullptr; + // disable mipmapping until we generate anisotropic mipmap levels + willBeMipped = false; if (willBeMipped) { tex = GrGenerateMipMapsAndUploadToTexture(ctx, bitmap); - } - if (!tex) { + } else { tex = GrUploadBitmapToTexture(ctx, bitmap); } if (tex) { diff --git a/src/gpu/GrImageIDTextureAdjuster.cpp b/src/gpu/GrImageIDTextureAdjuster.cpp index 6cfee90c14..5ba99d20de 100644 --- a/src/gpu/GrImageIDTextureAdjuster.cpp +++ b/src/gpu/GrImageIDTextureAdjuster.cpp @@ -90,10 +90,11 @@ GrTexture* GrBitmapTextureMaker::refOriginalTexture(bool willBeMipped) { return tex; } } + // disable mipmapping until we generate anisotropic mipmap levels + willBeMipped = false; if (willBeMipped) { tex = GrGenerateMipMapsAndUploadToTexture(this->context(), fBitmap); - } - if (!tex) { + } else { tex = GrUploadBitmapToTexture(this->context(), fBitmap); } if (tex && fOriginalKey.isValid()) { diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp index 71d9e620e3..701e763b1e 100644 --- a/src/gpu/SkGr.cpp +++ b/src/gpu/SkGr.cpp @@ -344,12 +344,6 @@ GrTexture* GrGenerateMipMapsAndUploadToTexture(GrContext* ctx, const SkBitmap& b return texture; } - // SkMipMap::Build doesn't handle sRGB data correctly (yet). - // Failover to the GL code-path for now. - if (kLinear_SkColorProfileType != bitmap.profileType()) { - return nullptr; - } - SkASSERT(sizeof(int) <= sizeof(uint32_t)); if (bitmap.width() < 0 || bitmap.height() < 0) { return nullptr;