Chromium Code Reviews| Index: src/gpu/GrContext.cpp |
| diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp |
| index 83ef58f3debb4c6d642068c249d2431d0bba4ee7..7d7e7c9f08e8af78531606e60cfd3f4810a1b148 100755 |
| --- a/src/gpu/GrContext.cpp |
| +++ b/src/gpu/GrContext.cpp |
| @@ -255,20 +255,20 @@ GrTexture* GrContext::findAndRefTexture(const GrSurfaceDesc& desc, |
| const GrCacheID& cacheID, |
| const GrTextureParams* params) { |
| GrResourceKey resourceKey = GrTexturePriv::ComputeKey(fGpu, params, desc, cacheID); |
| - GrGpuResource* resource = fResourceCache->find(resourceKey); |
| + |
|
robertphillips
2014/11/07 20:32:12
Call findAndRefCachedResource here similar to how
bsalomon
2014/11/07 21:48:44
I think I got what you mean, can you check?
BTW I
robertphillips
2014/11/10 13:28:26
lgtm
|
| + GrGpuResource* resource = fResourceCache2->findAndRefContentResource(resourceKey); |
| if (resource) { |
| - resource->ref(); |
| + fResourceCache->makeResourceMRU(resource); |
| return static_cast<GrSurface*>(resource)->asTexture(); |
| - } else { |
| - return NULL; |
| } |
| + return NULL; |
| } |
| bool GrContext::isTextureInCache(const GrSurfaceDesc& desc, |
| const GrCacheID& cacheID, |
| const GrTextureParams* params) const { |
| GrResourceKey resourceKey = GrTexturePriv::ComputeKey(fGpu, params, desc, cacheID); |
| - return fResourceCache->hasKey(resourceKey); |
| + return fResourceCache2->hasContentKey(resourceKey); |
| } |
| void GrContext::addStencilBuffer(GrStencilBuffer* sb) { |
| @@ -280,12 +280,9 @@ void GrContext::addStencilBuffer(GrStencilBuffer* sb) { |
| fResourceCache->addResource(resourceKey, sb); |
| } |
| -GrStencilBuffer* GrContext::findStencilBuffer(int width, int height, |
| - int sampleCnt) { |
| - GrResourceKey resourceKey = GrStencilBuffer::ComputeKey(width, |
| - height, |
| - sampleCnt); |
| - GrGpuResource* resource = fResourceCache->find(resourceKey); |
| +GrStencilBuffer* GrContext::findAndRefStencilBuffer(int width, int height, int sampleCnt) { |
| + GrResourceKey resourceKey = GrStencilBuffer::ComputeKey(width, height, sampleCnt); |
| + GrGpuResource* resource = fResourceCache2->findAndRefContentResource(resourceKey); |
| return static_cast<GrStencilBuffer*>(resource); |
| } |
| @@ -1755,8 +1752,10 @@ void GrContext::addResourceToCache(const GrResourceKey& resourceKey, GrGpuResour |
| } |
| GrGpuResource* GrContext::findAndRefCachedResource(const GrResourceKey& resourceKey) { |
| - GrGpuResource* resource = fResourceCache->find(resourceKey); |
| - SkSafeRef(resource); |
| + GrGpuResource* resource = fResourceCache2->findAndRefContentResource(resourceKey); |
| + if (resource) { |
| + fResourceCache->makeResourceMRU(resource); |
| + } |
| return resource; |
| } |