diff options
author | bsalomon <bsalomon@google.com> | 2014-11-10 10:19:06 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-10 10:19:06 -0800 |
commit | 8b79d23f825cd9e0f9e3bf8aaa9e209940b17ef6 (patch) | |
tree | c67085dee293d8f43cb1c8fdd73f2aaaa769fece /src/gpu/GrContext.cpp | |
parent | 8e74b1565c5573a0be40060cebbc112fc156f26d (diff) |
Use GrResourceCache2 to service content key lookups
BUG=skia:2889
Review URL: https://codereview.chromium.org/707493002
Diffstat (limited to 'src/gpu/GrContext.cpp')
-rwxr-xr-x | src/gpu/GrContext.cpp | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp index 83ef58f3de..6f9395b5c3 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); + + GrGpuResource* resource = this->findAndRefCachedResource(resourceKey); if (resource) { - resource->ref(); + SkASSERT(static_cast<GrSurface*>(resource)->asTexture()); 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 = this->findAndRefCachedResource(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; } |