| Index: src/core/SkImageCacherator.cpp | 
| diff --git a/src/core/SkImageCacherator.cpp b/src/core/SkImageCacherator.cpp | 
| index 03e358a5684b398135446eb78b69639fa95c81ed..5c0d05451dc7824468e9e8d54cf8b7cdad668abc 100644 | 
| --- a/src/core/SkImageCacherator.cpp | 
| +++ b/src/core/SkImageCacherator.cpp | 
| @@ -18,7 +18,7 @@ | 
| #include "GrContext.h" | 
| #include "GrGpuResourcePriv.h" | 
| #include "GrResourceKey.h" | 
| -#include "GrTextureAccess.h" | 
| +#include "GrTextureParams.h" | 
| #include "GrYUVProvider.h" | 
| #include "SkGr.h" | 
| #include "SkGrPriv.h" | 
| @@ -140,7 +140,7 @@ bool SkImageCacherator::lockAsBitmap(SkBitmap* bitmap, const SkImage* client) { | 
| { | 
| ScopedGenerator generator(this); | 
| SkIRect subset = SkIRect::MakeXYWH(fOrigin.x(), fOrigin.y(), fInfo.width(), fInfo.height()); | 
| -        tex.reset(generator->generateTexture(nullptr, kUntiled_SkImageUsageType, &subset)); | 
| +        tex.reset(generator->generateTexture(nullptr, GrTextureParams::ClampNoFilter(), &subset)); | 
| } | 
| if (!tex) { | 
| bitmap->reset(); | 
| @@ -212,12 +212,12 @@ static GrTexture* set_key_and_return(GrTexture* tex, const GrUniqueKey& key) { | 
| *  We have a 5 ways to try to return a texture (in sorted order) | 
| * | 
| *  1. Check the cache for a pre-existing one | 
| - *  2. Ask the genreator to natively create one | 
| + *  2. Ask the generator to natively create one | 
| *  3. Ask the generator to return a compressed form that the GPU might support | 
| *  4. Ask the generator to return YUV planes, which the GPU can convert | 
| *  5. Ask the generator to return RGB(A) data, which the GPU can convert | 
| */ | 
| -GrTexture* SkImageCacherator::lockUnstretchedTexture(GrContext* ctx, SkImageUsageType usage, | 
| +GrTexture* SkImageCacherator::lockUnstretchedTexture(GrContext* ctx, const GrTextureParams& params, | 
| const SkImage* client) { | 
| // textures (at least the texture-key) only support 16bit dimensions, so abort early | 
| // if we're too big. | 
| @@ -227,7 +227,7 @@ GrTexture* SkImageCacherator::lockUnstretchedTexture(GrContext* ctx, SkImageUsag | 
|  | 
| GrUniqueKey key; | 
| GrMakeKeyFromImageID(&key, fUniqueID, SkIRect::MakeWH(fInfo.width(), fInfo.height()), | 
| -                         *ctx->caps(), usage); | 
| +                         *ctx->caps(), params); | 
|  | 
| // 1. Check the cache for a pre-existing one | 
| if (GrTexture* tex = ctx->textureProvider()->findAndRefTextureByUniqueKey(key)) { | 
| @@ -238,7 +238,7 @@ GrTexture* SkImageCacherator::lockUnstretchedTexture(GrContext* ctx, SkImageUsag | 
| { | 
| ScopedGenerator generator(this); | 
| SkIRect subset = SkIRect::MakeXYWH(fOrigin.x(), fOrigin.y(), fInfo.width(), fInfo.height()); | 
| -        if (GrTexture* tex = generator->generateTexture(ctx, usage, &subset)) { | 
| +        if (GrTexture* tex = generator->generateTexture(ctx, params, &subset)) { | 
| return set_key_and_return(tex, key); | 
| } | 
| } | 
| @@ -267,7 +267,7 @@ GrTexture* SkImageCacherator::lockUnstretchedTexture(GrContext* ctx, SkImageUsag | 
| // 5. Ask the generator to return RGB(A) data, which the GPU can convert | 
| SkBitmap bitmap; | 
| if (this->tryLockAsBitmap(&bitmap, client)) { | 
| -        return GrRefCachedBitmapTexture(ctx, bitmap, usage); | 
| +        return GrRefCachedBitmapTexture(ctx, bitmap, params); | 
| } | 
| return nullptr; | 
| } | 
| @@ -278,11 +278,11 @@ GrTexture* SkImageCacherator::lockUnstretchedTexture(GrContext* ctx, SkImageUsag | 
|  | 
| class Cacherator_GrTextureMaker : public GrTextureMaker { | 
| public: | 
| -    Cacherator_GrTextureMaker(SkImageCacherator* cacher, SkImageUsageType usage, | 
| +    Cacherator_GrTextureMaker(SkImageCacherator* cacher, const GrTextureParams& params, | 
| const SkImage* client, const GrUniqueKey& unstretchedKey) | 
| : INHERITED(cacher->info().width(), cacher->info().height()) | 
| , fCacher(cacher) | 
| -        , fUsage(usage) | 
| +        , fParams(params) | 
| , fClient(client) | 
| , fUnstretchedKey(unstretchedKey) | 
| {} | 
| @@ -293,7 +293,7 @@ protected: | 
| //    GrTexture* onGenerateStretchedTexture(GrContext*, const SkGrStretch&) override; | 
|  | 
| GrTexture* onRefUnstretchedTexture(GrContext* ctx) override { | 
| -        return fCacher->lockUnstretchedTexture(ctx, fUsage, fClient); | 
| +        return fCacher->lockUnstretchedTexture(ctx, fParams, fClient); | 
| } | 
|  | 
| bool onMakeStretchedKey(const SkGrStretch& stretch, GrUniqueKey* stretchedKey) override { | 
| @@ -312,14 +312,14 @@ protected: | 
|  | 
| private: | 
| SkImageCacherator*      fCacher; | 
| -    const SkImageUsageType  fUsage; | 
| +    const GrTextureParams&  fParams; | 
| const SkImage*          fClient; | 
| const GrUniqueKey       fUnstretchedKey; | 
|  | 
| typedef GrTextureMaker INHERITED; | 
| }; | 
|  | 
| -GrTexture* SkImageCacherator::lockAsTexture(GrContext* ctx, SkImageUsageType usage, | 
| +GrTexture* SkImageCacherator::lockAsTexture(GrContext* ctx, const GrTextureParams& params, | 
| const SkImage* client) { | 
| if (!ctx) { | 
| return nullptr; | 
| @@ -328,14 +328,14 @@ GrTexture* SkImageCacherator::lockAsTexture(GrContext* ctx, SkImageUsageType usa | 
| GrUniqueKey key; | 
| GrMakeKeyFromImageID(&key, this->uniqueID(), | 
| SkIRect::MakeWH(this->info().width(), this->info().height()), | 
| -                         *ctx->caps(), usage); | 
| +                         *ctx->caps(), params); | 
|  | 
| -    return Cacherator_GrTextureMaker(this, usage, client, key).refCachedTexture(ctx, usage); | 
| +    return Cacherator_GrTextureMaker(this, params, client, key).refCachedTexture(ctx, params); | 
| } | 
|  | 
| #else | 
|  | 
| -GrTexture* SkImageCacherator::lockAsTexture(GrContext* ctx, SkImageUsageType usage, | 
| +GrTexture* SkImageCacherator::lockAsTexture(GrContext* ctx, const GrTextureParams&, | 
| const SkImage* client) { | 
| return nullptr; | 
| } | 
|  |