From: bsalomon Date: Tue, 3 Feb 2015 01:25:26 +0000 (-0800) Subject: make getContentKey() available in GrGpuResource public interface X-Git-Tag: accepted/tizen/5.0/unified/20181102.025319~3765 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=563ff60b33fa50b9c6a48dd048b8b36a88596668;p=platform%2Fupstream%2FlibSkiaSharp.git make getContentKey() available in GrGpuResource public interface TBR=robertphillips@google.com Committed: https://skia.googlesource.com/skia/+/85ed2db092e75db41b711b9116a8d5b465fc2b0c Review URL: https://codereview.chromium.org/886313005 --- diff --git a/include/gpu/GrGpuResource.h b/include/gpu/GrGpuResource.h index bdf6257..7896ab3 100644 --- a/include/gpu/GrGpuResource.h +++ b/include/gpu/GrGpuResource.h @@ -188,6 +188,10 @@ public: */ uint32_t getUniqueID() const { return fUniqueID; } + /** Returns the current content key for the resource. It will be invalid if the resource has not + been cached by its contents. */ + const GrContentKey& getContentKey() const { return fContentKey; } + /** * Attach a custom data object to this resource. The data will remain attached * for the lifetime of this resource (until it is abandoned or released). diff --git a/src/gpu/GrGpuResourceCacheAccess.h b/src/gpu/GrGpuResourceCacheAccess.h index aa2337d..867252d 100644 --- a/src/gpu/GrGpuResourceCacheAccess.h +++ b/src/gpu/GrGpuResourceCacheAccess.h @@ -33,7 +33,7 @@ public: * key, and does not have a content key. */ bool isScratch() const { - return !this->getContentKey().isValid() && fResource->fScratchKey.isValid() && + return !fResource->getContentKey().isValid() && fResource->fScratchKey.isValid() && this->isBudgeted(); } @@ -51,11 +51,6 @@ public: void removeScratchKey() const { fResource->removeScratchKey(); } /** - * If the resource is currently cached by a content key, the key is returned, otherwise NULL. - */ - const GrContentKey& getContentKey() const { return fResource->fContentKey; } - - /** * Is the resource object wrapping an externally allocated GPU resource? */ bool isWrapped() const { return GrGpuResource::kWrapped_LifeCycle == fResource->fLifeCycle; } @@ -65,7 +60,7 @@ public: */ bool isBudgeted() const { bool ret = GrGpuResource::kCached_LifeCycle == fResource->fLifeCycle; - SkASSERT(ret || !this->getContentKey().isValid()); + SkASSERT(ret || !fResource->getContentKey().isValid()); return ret; } diff --git a/src/gpu/GrResourceCache2.cpp b/src/gpu/GrResourceCache2.cpp index 65894d3..99c4270 100644 --- a/src/gpu/GrResourceCache2.cpp +++ b/src/gpu/GrResourceCache2.cpp @@ -132,8 +132,8 @@ void GrResourceCache2::removeResource(GrGpuResource* resource) { if (resource->cacheAccess().getScratchKey().isValid()) { fScratchMap.remove(resource->cacheAccess().getScratchKey(), resource); } - if (resource->cacheAccess().getContentKey().isValid()) { - fContentHash.remove(resource->cacheAccess().getContentKey()); + if (resource->getContentKey().isValid()) { + fContentHash.remove(resource->getContentKey()); } this->validate(); } @@ -225,9 +225,9 @@ bool GrResourceCache2::didSetContentKey(GrGpuResource* resource) { SkASSERT(!fPurging); SkASSERT(resource); SkASSERT(this->isInCache(resource)); - SkASSERT(resource->cacheAccess().getContentKey().isValid()); + SkASSERT(resource->getContentKey().isValid()); - GrGpuResource* res = fContentHash.find(resource->cacheAccess().getContentKey()); + GrGpuResource* res = fContentHash.find(resource->getContentKey()); if (NULL != res) { return false; } @@ -281,7 +281,7 @@ void GrResourceCache2::notifyPurgeable(GrGpuResource* resource) { // Also purge if the resource has neither a valid scratch key nor a content key. bool noKey = !resource->cacheAccess().getScratchKey().isValid() && - !resource->cacheAccess().getContentKey().isValid(); + !resource->getContentKey().isValid(); if (overBudget || noKey) { release = true; } @@ -435,18 +435,18 @@ void GrResourceCache2::validate() const { } if (resource->cacheAccess().isScratch()) { - SkASSERT(!resource->cacheAccess().getContentKey().isValid()); + SkASSERT(!resource->getContentKey().isValid()); ++scratch; SkASSERT(fScratchMap.countForKey(resource->cacheAccess().getScratchKey())); SkASSERT(!resource->cacheAccess().isWrapped()); } else if (resource->cacheAccess().getScratchKey().isValid()) { SkASSERT(!resource->cacheAccess().isBudgeted() || - resource->cacheAccess().getContentKey().isValid()); + resource->getContentKey().isValid()); ++couldBeScratch; SkASSERT(fScratchMap.countForKey(resource->cacheAccess().getScratchKey())); SkASSERT(!resource->cacheAccess().isWrapped()); } - const GrContentKey& contentKey = resource->cacheAccess().getContentKey(); + const GrContentKey& contentKey = resource->getContentKey(); if (contentKey.isValid()) { ++content; SkASSERT(fContentHash.find(contentKey) == resource); diff --git a/src/gpu/GrResourceCache2.h b/src/gpu/GrResourceCache2.h index d5c4182..9c9900a 100644 --- a/src/gpu/GrResourceCache2.h +++ b/src/gpu/GrResourceCache2.h @@ -194,7 +194,7 @@ private: struct ContentHashTraits { static const GrContentKey& GetKey(const GrGpuResource& r) { - return r.cacheAccess().getContentKey(); + return r.getContentKey(); } static uint32_t Hash(const GrContentKey& key) { return key.hash(); }