Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1275)

Unified Diff: src/gpu/SkGr.cpp

Issue 1107973004: Pull cache out of GrContext (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fixpicturerenderer.cpp Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/SkGpuDevice.cpp ('k') | src/gpu/SkGrPixelRef.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/SkGr.cpp
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp
index 3161c81604ade16970253dfb1c419829aaa0bd6a..5df8c53febfbd2738a663f529e6c09d82a6c17d3 100644
--- a/src/gpu/SkGr.cpp
+++ b/src/gpu/SkGr.cpp
@@ -177,11 +177,11 @@ static GrTexture* create_texture_for_bmp(GrContext* ctx,
SkPixelRef* pixelRefForInvalidationNotification,
const void* pixels,
size_t rowBytes) {
- GrTexture* result = ctx->createTexture(desc, true, pixels, rowBytes);
+ GrTexture* result = ctx->textureProvider()->createTexture(desc, true, pixels, rowBytes);
if (result && optionalKey.isValid()) {
BitmapInvalidator* listener = SkNEW_ARGS(BitmapInvalidator, (optionalKey));
pixelRefForInvalidationNotification->addGenIDChangeListener(listener);
- ctx->addResourceToCache(optionalKey, result);
+ ctx->textureProvider()->assignUniqueKeyToTexture(optionalKey, result);
}
return result;
}
@@ -368,9 +368,9 @@ static GrTexture* load_yuv_texture(GrContext* ctx, const GrUniqueKey& optionalKe
bool needsExactTexture =
(yuvDesc.fWidth != yuvInfo.fSize[0].fWidth) ||
(yuvDesc.fHeight != yuvInfo.fSize[0].fHeight);
- yuvTextures[i].reset(ctx->refScratchTexture(yuvDesc,
- needsExactTexture ? GrContext::kExact_ScratchTexMatch :
- GrContext::kApprox_ScratchTexMatch));
+ yuvTextures[i].reset(ctx->textureProvider()->refScratchTexture(yuvDesc,
+ needsExactTexture ? GrTextureProvider::kExact_ScratchTexMatch :
+ GrTextureProvider::kApprox_ScratchTexMatch));
if (!yuvTextures[i] ||
!yuvTextures[i]->writePixels(0, 0, yuvDesc.fWidth, yuvDesc.fHeight,
yuvDesc.fConfig, planes[i], yuvInfo.fRowBytes[i])) {
@@ -471,7 +471,7 @@ static GrTexture* create_bitmap_texture(GrContext* ctx,
SkAutoTUnref<GrTexture> unstretched;
// Check if we have the unstretched version in the cache, if not create it.
if (unstretchedKey.isValid()) {
- unstretched.reset(ctx->findAndRefCachedTexture(unstretchedKey));
+ unstretched.reset(ctx->textureProvider()->findAndRefTextureByUniqueKey(unstretchedKey));
}
if (!unstretched) {
unstretched.reset(create_unstretched_bitmap_texture(ctx, bmp, unstretchedKey));
@@ -509,7 +509,7 @@ bool GrIsBitmapInCache(const GrContext* ctx,
}
GrUniqueKey stretchedKey;
make_stretched_key(key, stretch, &stretchedKey);
- return ctx->isResourceInCache(stretchedKey);
+ return ctx->textureProvider()->existsTextureWithUniqueKey(stretchedKey);
}
// We don't cache volatile bitmaps
@@ -519,7 +519,8 @@ bool GrIsBitmapInCache(const GrContext* ctx,
GrUniqueKey key, stretchedKey;
make_bitmap_keys(bitmap, stretch, &key, &stretchedKey);
- return ctx->isResourceInCache((kNo_Stretch == stretch) ? key : stretchedKey);
+ return ctx->textureProvider()->existsTextureWithUniqueKey(
+ (kNo_Stretch == stretch) ? key : stretchedKey);
}
GrTexture* GrRefCachedBitmapTexture(GrContext* ctx,
@@ -539,7 +540,8 @@ GrTexture* GrRefCachedBitmapTexture(GrContext* ctx,
const GrUniqueKey& key = result->getUniqueKey();
if (key.isValid()) {
make_stretched_key(key, stretch, &stretchedKey);
- GrTexture* stretched = ctx->findAndRefCachedTexture(stretchedKey);
+ GrTexture* stretched =
+ ctx->textureProvider()->findAndRefTextureByUniqueKey(stretchedKey);
if (stretched) {
return stretched;
}
@@ -554,7 +556,8 @@ GrTexture* GrRefCachedBitmapTexture(GrContext* ctx,
// If the bitmap isn't changing try to find a cached copy first.
make_bitmap_keys(bitmap, stretch, &key, &resizedKey);
- result = ctx->findAndRefCachedTexture(resizedKey.isValid() ? resizedKey : key);
+ result = ctx->textureProvider()->findAndRefTextureByUniqueKey(
+ resizedKey.isValid() ? resizedKey : key);
if (result) {
return result;
}
« no previous file with comments | « src/gpu/SkGpuDevice.cpp ('k') | src/gpu/SkGrPixelRef.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698